about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--wqflask/maintenance/dataset/.gitignore2
-rw-r--r--wqflask/maintenance/dataset/__init__.py0
-rw-r--r--wqflask/maintenance/dataset/calculate.py7
-rw-r--r--wqflask/maintenance/dataset/correlations.py47
-rw-r--r--wqflask/maintenance/dataset/datasampledir/load_genotypes/config.ini7
-rw-r--r--wqflask/maintenance/dataset/datasampledir/load_genotypes/sample.geno12
-rw-r--r--wqflask/maintenance/dataset/datasampledir/load_phenotypes/config.ini4
-rw-r--r--wqflask/maintenance/dataset/datasampledir/load_phenotypes/sample_data.txt10
-rw-r--r--wqflask/maintenance/dataset/datasampledir/load_phenotypes/sample_meta.txt4
-rw-r--r--wqflask/maintenance/dataset/datastructure.py155
-rw-r--r--wqflask/maintenance/dataset/fetch.py11
-rw-r--r--wqflask/maintenance/dataset/genotypes.py48
-rw-r--r--wqflask/maintenance/dataset/load_genotypes.py157
-rw-r--r--wqflask/maintenance/dataset/load_phenotypes.py171
-rw-r--r--wqflask/maintenance/dataset/phenotypes.py100
-rw-r--r--wqflask/maintenance/dataset/probesets.py90
-rw-r--r--wqflask/maintenance/dataset/specials1.py53
-rw-r--r--wqflask/maintenance/dataset/specials2.py139
-rw-r--r--wqflask/maintenance/dataset/specials3.py117
-rw-r--r--wqflask/maintenance/dataset/utilities.py89
-rwxr-xr-xwqflask/maintenance/quick_search_table.py509
-rwxr-xr-xwqflask/other_config/nginx_conf/gn2_zach.conf5
-rwxr-xr-xwqflask/wqflask/correlation/corr_scatter_plot.py1
-rwxr-xr-xwqflask/wqflask/correlation/correlation_plot.py53
-rw-r--r--wqflask/wqflask/heatmap/heatmap.py1
-rwxr-xr-xwqflask/wqflask/interval_mapping/__init__.py0
-rwxr-xr-xwqflask/wqflask/interval_mapping/interval_mapping.py183
-rw-r--r--wqflask/wqflask/my_pylmm/README.md37
-rwxr-xr-xwqflask/wqflask/my_pylmm/__init__.py0
-rwxr-xr-xwqflask/wqflask/my_pylmm/data/__init__.py0
-rwxr-xr-xwqflask/wqflask/my_pylmm/data/geno_to_ped.py22
-rwxr-xr-xwqflask/wqflask/my_pylmm/data/genofile_parser.py195
-rwxr-xr-xwqflask/wqflask/my_pylmm/data/load_genotypes_lei.py181
-rwxr-xr-xwqflask/wqflask/my_pylmm/data/prep_data.py80
-rwxr-xr-xwqflask/wqflask/my_pylmm/scripts/example.py58
-rwxr-xr-xwqflask/wqflask/my_pylmm/scripts/pylmmGWAS.py346
-rwxr-xr-xwqflask/wqflask/my_pylmm/scripts/pylmmKinship.py186
-rwxr-xr-xwqflask/wqflask/my_pylmm/scripts/run_pylmm.py77
-rw-r--r--wqflask/wqflask/static/new/css/charts.css28
-rwxr-xr-xwqflask/wqflask/static/new/css/interval_mapping.css32
-rwxr-xr-xwqflask/wqflask/static/new/css/table.css36
-rw-r--r--wqflask/wqflask/static/new/javascript/chr_interval_map.coffee230
-rw-r--r--wqflask/wqflask/static/new/javascript/chr_interval_map.js224
-rw-r--r--wqflask/wqflask/static/new/javascript/create_interval_map.coffee80
-rw-r--r--wqflask/wqflask/static/new/javascript/create_interval_map.js67
-rw-r--r--wqflask/wqflask/static/new/javascript/interval_map_new.coffee91
-rw-r--r--wqflask/wqflask/static/new/javascript/interval_map_new.js53
-rwxr-xr-xwqflask/wqflask/static/new/javascript/interval_mapping.coffee297
-rwxr-xr-xwqflask/wqflask/static/new/javascript/interval_mapping.js297
-rw-r--r--wqflask/wqflask/static/new/javascript/manhattan_plot.coffee372
-rw-r--r--wqflask/wqflask/static/new/javascript/manhattan_plot.js341
-rwxr-xr-xwqflask/wqflask/static/new/javascript/marker_regression.coffee512
-rwxr-xr-xwqflask/wqflask/static/new/javascript/marker_regression.js454
-rwxr-xr-xwqflask/wqflask/static/new/javascript/marker_regression_old.coffee212
-rwxr-xr-xwqflask/wqflask/static/new/javascript/marker_regression_old.js218
l---------wqflask/wqflask/static/new/javascript/node_modules/.bin/cake1
l---------wqflask/wqflask/static/new/javascript/node_modules/.bin/coffee1
-rw-r--r--wqflask/wqflask/static/new/javascript/show_corr.coffee4
-rw-r--r--wqflask/wqflask/static/new/javascript/show_corr.js8
-rwxr-xr-xwqflask/wqflask/static/new/packages/ValidationPlugin/demo/ajaxSubmit-intergration-demo.html80
-rwxr-xr-xwqflask/wqflask/static/new/packages/ValidationPlugin/demo/captcha/captcha.js27
-rwxr-xr-xwqflask/wqflask/static/new/packages/ValidationPlugin/demo/captcha/fonts/Anorexia.ttfbin14300 -> 0 bytes
-rwxr-xr-xwqflask/wqflask/static/new/packages/ValidationPlugin/demo/captcha/image_req.php6
-rwxr-xr-xwqflask/wqflask/static/new/packages/ValidationPlugin/demo/captcha/images/button.pngbin1546 -> 0 bytes
-rwxr-xr-xwqflask/wqflask/static/new/packages/ValidationPlugin/demo/captcha/images/image.php35
-rwxr-xr-xwqflask/wqflask/static/new/packages/ValidationPlugin/demo/captcha/index.php66
-rwxr-xr-xwqflask/wqflask/static/new/packages/ValidationPlugin/demo/captcha/newsession.php12
-rwxr-xr-xwqflask/wqflask/static/new/packages/ValidationPlugin/demo/captcha/process.php14
-rwxr-xr-xwqflask/wqflask/static/new/packages/ValidationPlugin/demo/captcha/rand.php11
-rwxr-xr-xwqflask/wqflask/static/new/packages/ValidationPlugin/demo/captcha/style.css140
-rwxr-xr-xwqflask/wqflask/static/new/packages/ValidationPlugin/demo/css/chili.css15
-rwxr-xr-xwqflask/wqflask/static/new/packages/ValidationPlugin/demo/css/cmxform.css46
-rwxr-xr-xwqflask/wqflask/static/new/packages/ValidationPlugin/demo/css/cmxformTemplate.css55
-rwxr-xr-xwqflask/wqflask/static/new/packages/ValidationPlugin/demo/css/core.css21
-rwxr-xr-xwqflask/wqflask/static/new/packages/ValidationPlugin/demo/css/reset.css61
-rwxr-xr-xwqflask/wqflask/static/new/packages/ValidationPlugin/demo/css/screen.css11
-rwxr-xr-xwqflask/wqflask/static/new/packages/ValidationPlugin/demo/custom-messages-metadata-demo.html92
-rwxr-xr-xwqflask/wqflask/static/new/packages/ValidationPlugin/demo/custom-methods-demo.html116
-rwxr-xr-xwqflask/wqflask/static/new/packages/ValidationPlugin/demo/dynamic-totals.html145
-rwxr-xr-xwqflask/wqflask/static/new/packages/ValidationPlugin/demo/errorcontainer-demo.html155
-rwxr-xr-xwqflask/wqflask/static/new/packages/ValidationPlugin/demo/file_input.html53
-rwxr-xr-xwqflask/wqflask/static/new/packages/ValidationPlugin/demo/form.php10
-rwxr-xr-xwqflask/wqflask/static/new/packages/ValidationPlugin/demo/form.phps10
-rwxr-xr-xwqflask/wqflask/static/new/packages/ValidationPlugin/demo/images/bg.gifbin1175 -> 0 bytes
-rwxr-xr-xwqflask/wqflask/static/new/packages/ValidationPlugin/demo/images/checked.gifbin220 -> 0 bytes
-rwxr-xr-xwqflask/wqflask/static/new/packages/ValidationPlugin/demo/images/cmxform-divider.gifbin43 -> 0 bytes
-rwxr-xr-xwqflask/wqflask/static/new/packages/ValidationPlugin/demo/images/cmxform-fieldset.gifbin314 -> 0 bytes
-rwxr-xr-xwqflask/wqflask/static/new/packages/ValidationPlugin/demo/images/loading.gifbin418 -> 0 bytes
-rwxr-xr-xwqflask/wqflask/static/new/packages/ValidationPlugin/demo/images/unchecked.gifbin223 -> 0 bytes
-rwxr-xr-xwqflask/wqflask/static/new/packages/ValidationPlugin/demo/index.html228
-rwxr-xr-xwqflask/wqflask/static/new/packages/ValidationPlugin/demo/jquerymobile.html71
-rwxr-xr-xwqflask/wqflask/static/new/packages/ValidationPlugin/demo/js/chili-1.7.pack.js1
-rwxr-xr-xwqflask/wqflask/static/new/packages/ValidationPlugin/demo/login/images/bg.gifbin89 -> 0 bytes
-rwxr-xr-xwqflask/wqflask/static/new/packages/ValidationPlugin/demo/login/images/header1.jpgbin442 -> 0 bytes
-rwxr-xr-xwqflask/wqflask/static/new/packages/ValidationPlugin/demo/login/images/page.gifbin664 -> 0 bytes
-rwxr-xr-xwqflask/wqflask/static/new/packages/ValidationPlugin/demo/login/images/required_star.gifbin121 -> 0 bytes
-rwxr-xr-xwqflask/wqflask/static/new/packages/ValidationPlugin/demo/login/index.html76
-rwxr-xr-xwqflask/wqflask/static/new/packages/ValidationPlugin/demo/login/screen.css457
-rwxr-xr-xwqflask/wqflask/static/new/packages/ValidationPlugin/demo/marketo/emails.php10
-rwxr-xr-xwqflask/wqflask/static/new/packages/ValidationPlugin/demo/marketo/emails.phps10
-rwxr-xr-xwqflask/wqflask/static/new/packages/ValidationPlugin/demo/marketo/ie6.css35
-rwxr-xr-xwqflask/wqflask/static/new/packages/ValidationPlugin/demo/marketo/images/backRequiredGray.gifbin137 -> 0 bytes
-rwxr-xr-xwqflask/wqflask/static/new/packages/ValidationPlugin/demo/marketo/images/back_green-fade.gifbin2421 -> 0 bytes
-rwxr-xr-xwqflask/wqflask/static/new/packages/ValidationPlugin/demo/marketo/images/back_nav_blue.gifbin1668 -> 0 bytes
-rwxr-xr-xwqflask/wqflask/static/new/packages/ValidationPlugin/demo/marketo/images/blank.gifbin799 -> 0 bytes
-rwxr-xr-xwqflask/wqflask/static/new/packages/ValidationPlugin/demo/marketo/images/button-submit.gifbin4527 -> 0 bytes
-rwxr-xr-xwqflask/wqflask/static/new/packages/ValidationPlugin/demo/marketo/images/favicon.icobin1150 -> 0 bytes
-rwxr-xr-xwqflask/wqflask/static/new/packages/ValidationPlugin/demo/marketo/images/help.pngbin1615 -> 0 bytes
-rwxr-xr-xwqflask/wqflask/static/new/packages/ValidationPlugin/demo/marketo/images/left-nav-callout-long.pngbin1381 -> 0 bytes
-rwxr-xr-xwqflask/wqflask/static/new/packages/ValidationPlugin/demo/marketo/images/login-sprite.gifbin2017 -> 0 bytes
-rwxr-xr-xwqflask/wqflask/static/new/packages/ValidationPlugin/demo/marketo/images/logo_marketo.gifbin8363 -> 0 bytes
-rwxr-xr-xwqflask/wqflask/static/new/packages/ValidationPlugin/demo/marketo/images/sf.pngbin3745 -> 0 bytes
-rwxr-xr-xwqflask/wqflask/static/new/packages/ValidationPlugin/demo/marketo/images/step1-24.gifbin1357 -> 0 bytes
-rwxr-xr-xwqflask/wqflask/static/new/packages/ValidationPlugin/demo/marketo/images/step2-24.gifbin1355 -> 0 bytes
-rwxr-xr-xwqflask/wqflask/static/new/packages/ValidationPlugin/demo/marketo/images/step3-24.gifbin1362 -> 0 bytes
-rwxr-xr-xwqflask/wqflask/static/new/packages/ValidationPlugin/demo/marketo/images/tab-sprite.gifbin4710 -> 0 bytes
-rwxr-xr-xwqflask/wqflask/static/new/packages/ValidationPlugin/demo/marketo/images/tab_green.gifbin1652 -> 0 bytes
-rwxr-xr-xwqflask/wqflask/static/new/packages/ValidationPlugin/demo/marketo/images/time.pngbin793 -> 0 bytes
-rwxr-xr-xwqflask/wqflask/static/new/packages/ValidationPlugin/demo/marketo/images/toggle.gifbin845 -> 0 bytes
-rwxr-xr-xwqflask/wqflask/static/new/packages/ValidationPlugin/demo/marketo/images/warning.gifbin234 -> 0 bytes
-rwxr-xr-xwqflask/wqflask/static/new/packages/ValidationPlugin/demo/marketo/index.html242
-rwxr-xr-xwqflask/wqflask/static/new/packages/ValidationPlugin/demo/marketo/jquery.maskedinput.js267
-rwxr-xr-xwqflask/wqflask/static/new/packages/ValidationPlugin/demo/marketo/mktSignup.js125
-rwxr-xr-xwqflask/wqflask/static/new/packages/ValidationPlugin/demo/marketo/step2.htm291
-rwxr-xr-xwqflask/wqflask/static/new/packages/ValidationPlugin/demo/marketo/stylesheet.css1179
-rwxr-xr-xwqflask/wqflask/static/new/packages/ValidationPlugin/demo/milk/bg.gifbin73 -> 0 bytes
-rwxr-xr-xwqflask/wqflask/static/new/packages/ValidationPlugin/demo/milk/emails.php10
-rwxr-xr-xwqflask/wqflask/static/new/packages/ValidationPlugin/demo/milk/emails.phps10
-rwxr-xr-xwqflask/wqflask/static/new/packages/ValidationPlugin/demo/milk/index.html230
-rwxr-xr-xwqflask/wqflask/static/new/packages/ValidationPlugin/demo/milk/left_white.pngbin538 -> 0 bytes
-rwxr-xr-xwqflask/wqflask/static/new/packages/ValidationPlugin/demo/milk/milk.css236
-rwxr-xr-xwqflask/wqflask/static/new/packages/ValidationPlugin/demo/milk/milk.pngbin5121 -> 0 bytes
-rwxr-xr-xwqflask/wqflask/static/new/packages/ValidationPlugin/demo/milk/right_white.pngbin1579 -> 0 bytes
-rwxr-xr-xwqflask/wqflask/static/new/packages/ValidationPlugin/demo/milk/users.php12
-rwxr-xr-xwqflask/wqflask/static/new/packages/ValidationPlugin/demo/milk/users.phps10
-rwxr-xr-xwqflask/wqflask/static/new/packages/ValidationPlugin/demo/multipart/index.html412
-rwxr-xr-xwqflask/wqflask/static/new/packages/ValidationPlugin/demo/multipart/js/jquery.maskedinput-1.0.js246
-rwxr-xr-xwqflask/wqflask/static/new/packages/ValidationPlugin/demo/multipart/js/ui.accordion.js477
-rwxr-xr-xwqflask/wqflask/static/new/packages/ValidationPlugin/demo/multipart/js/ui.core.js519
-rwxr-xr-xwqflask/wqflask/static/new/packages/ValidationPlugin/demo/multipart/style.css705
-rwxr-xr-xwqflask/wqflask/static/new/packages/ValidationPlugin/demo/radio-checkbox-select-demo.html149
-rwxr-xr-xwqflask/wqflask/static/new/packages/ValidationPlugin/demo/tabs/index.html152
-rwxr-xr-xwqflask/wqflask/static/new/packages/ValidationPlugin/demo/themerollered.html229
-rwxr-xr-xwqflask/wqflask/static/new/packages/ValidationPlugin/demo/tinymce/index.html76
-rwxr-xr-xwqflask/wqflask/static/new/packages/ValidationPlugin/demo/tinymce/themes/simple/editor_template.js1
-rwxr-xr-xwqflask/wqflask/static/new/packages/ValidationPlugin/demo/tinymce/themes/simple/img/icons.gifbin1440 -> 0 bytes
-rwxr-xr-xwqflask/wqflask/static/new/packages/ValidationPlugin/demo/tinymce/themes/simple/langs/en.js11
-rwxr-xr-xwqflask/wqflask/static/new/packages/ValidationPlugin/demo/tinymce/themes/simple/skins/default/ui.css32
-rwxr-xr-xwqflask/wqflask/static/new/packages/ValidationPlugin/demo/tinymce/tiny_mce.js1
-rwxr-xr-xwqflask/wqflask/static/new/packages/ValidationPlugin/jquery-validation-1.10.0.zipbin805601 -> 0 bytes
-rwxr-xr-xwqflask/wqflask/static/packages/bootstrap-old/css/bootstrap-responsive.css1058
-rwxr-xr-xwqflask/wqflask/static/packages/bootstrap-old/css/bootstrap-responsive.min.css9
-rwxr-xr-xwqflask/wqflask/static/packages/bootstrap-old/css/bootstrap.css5774
-rwxr-xr-xwqflask/wqflask/static/packages/bootstrap-old/css/bootstrap.min.css9
-rwxr-xr-xwqflask/wqflask/static/packages/bootstrap-old/css/docs.css1001
-rwxr-xr-xwqflask/wqflask/static/packages/bootstrap-old/img/glyphicons-halflings-white.pngbin8777 -> 0 bytes
-rwxr-xr-xwqflask/wqflask/static/packages/bootstrap-old/img/glyphicons-halflings.pngbin12799 -> 0 bytes
-rwxr-xr-xwqflask/wqflask/static/packages/bootstrap-old/js/bootstrap.js2027
-rwxr-xr-xwqflask/wqflask/static/packages/bootstrap-old/js/bootstrap.min.js6
-rwxr-xr-xwqflask/wqflask/static/packages/colorbox/example1/colorbox.css69
-rwxr-xr-xwqflask/wqflask/static/packages/colorbox/example1/images/border.pngbin112 -> 0 bytes
-rwxr-xr-xwqflask/wqflask/static/packages/colorbox/example1/images/controls.pngbin2893 -> 0 bytes
-rwxr-xr-xwqflask/wqflask/static/packages/colorbox/example1/images/loading.gifbin9427 -> 0 bytes
-rwxr-xr-xwqflask/wqflask/static/packages/colorbox/example1/images/loading_background.pngbin157 -> 0 bytes
-rwxr-xr-xwqflask/wqflask/static/packages/colorbox/example1/images/overlay.pngbin182 -> 0 bytes
-rwxr-xr-xwqflask/wqflask/static/packages/colorbox/example1/index.html95
-rwxr-xr-xwqflask/wqflask/static/packages/colorbox/example2/colorbox.css49
-rwxr-xr-xwqflask/wqflask/static/packages/colorbox/example2/images/controls.pngbin570 -> 0 bytes
-rwxr-xr-xwqflask/wqflask/static/packages/colorbox/example2/images/loading.gifbin9427 -> 0 bytes
-rwxr-xr-xwqflask/wqflask/static/packages/colorbox/example2/index.html95
-rwxr-xr-xwqflask/wqflask/static/packages/colorbox/example3/colorbox.css44
-rwxr-xr-xwqflask/wqflask/static/packages/colorbox/example3/images/controls.pngbin1633 -> 0 bytes
-rwxr-xr-xwqflask/wqflask/static/packages/colorbox/example3/images/loading.gifbin9427 -> 0 bytes
-rwxr-xr-xwqflask/wqflask/static/packages/colorbox/example3/index.html95
-rwxr-xr-xwqflask/wqflask/static/packages/colorbox/example4/colorbox.css65
-rwxr-xr-xwqflask/wqflask/static/packages/colorbox/example4/images/border1.pngbin1057 -> 0 bytes
-rwxr-xr-xwqflask/wqflask/static/packages/colorbox/example4/images/border2.pngbin170 -> 0 bytes
-rwxr-xr-xwqflask/wqflask/static/packages/colorbox/example4/images/loading.gifbin9427 -> 0 bytes
-rwxr-xr-xwqflask/wqflask/static/packages/colorbox/example4/index.html95
-rwxr-xr-xwqflask/wqflask/static/packages/colorbox/example5/colorbox.css57
-rwxr-xr-xwqflask/wqflask/static/packages/colorbox/example5/images/border.pngbin163 -> 0 bytes
-rwxr-xr-xwqflask/wqflask/static/packages/colorbox/example5/images/controls.pngbin2033 -> 0 bytes
-rwxr-xr-xwqflask/wqflask/static/packages/colorbox/example5/images/loading.gifbin9427 -> 0 bytes
-rwxr-xr-xwqflask/wqflask/static/packages/colorbox/example5/images/loading_background.pngbin166 -> 0 bytes
-rwxr-xr-xwqflask/wqflask/static/packages/colorbox/example5/index.html95
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/KCPsample4.csv25
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/ages.json5
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/ajax-loader.gifbin3208 -> 0 bytes
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/area.html229
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/axisLabelTests.html157
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/axisLabelsRotatedText.html229
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/axisScalingForceTickAt.html242
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/bandedLine.html310
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/bar-charts.html219
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/barLineAnimated.html165
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/barTest.html299
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/bezierCurve.html125
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/blockPlot.html199
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/bubble-plots.html213
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/bubbleChart.html264
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/candlestick-charts.html209
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/candlestick.html322
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/canvas-overlay.html231
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/colorpicker/README140
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/colorpicker/TODO14
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/colorpicker/images/bar-alpha.pngbin2195 -> 0 bytes
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/colorpicker/images/bar-opacity.pngbin134 -> 0 bytes
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/colorpicker/images/bar-pointer.pngbin198 -> 0 bytes
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/colorpicker/images/bar.pngbin382 -> 0 bytes
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/colorpicker/images/map-opacity.pngbin139 -> 0 bytes
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/colorpicker/images/map-pointer.pngbin344 -> 0 bytes
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/colorpicker/images/map.pngbin78245 -> 0 bytes
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/colorpicker/images/preview-opacity.pngbin135 -> 0 bytes
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/colorpicker/images/ui-colorpicker.pngbin494 -> 0 bytes
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/colorpicker/index.html85
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/colorpicker/jquery.colorpicker.css129
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/colorpicker/jquery.colorpicker.js1654
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/cursor-highlighter.html137
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/customHighlighterCursorTrendline.html104
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/dashboardWidget.html212
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/dashedLines.html227
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/data-renderers.html144
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/date-axes.html107
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/dateAxisLogAxisZooming.html101
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/dateAxisRenderer.html292
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/example.js114
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/example.min.js1
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/examples.css140
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/examples.min.css1
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/fillBetweenLines.html134
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/hiddenPlotsInTabs.html225
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/images/logo.jpgbin14632 -> 0 bytes
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/images/ui-colorpicker.pngbin494 -> 0 bytes
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/index.html108
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/smoothness/images/ui-bg_flat_0_aaaaaa_40x100.pngbin180 -> 0 bytes
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/smoothness/images/ui-bg_flat_75_ffffff_40x100.pngbin178 -> 0 bytes
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/smoothness/images/ui-bg_glass_55_fbf9ee_1x400.pngbin120 -> 0 bytes
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/smoothness/images/ui-bg_glass_65_ffffff_1x400.pngbin105 -> 0 bytes
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/smoothness/images/ui-bg_glass_75_dadada_1x400.pngbin111 -> 0 bytes
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/smoothness/images/ui-bg_glass_75_e6e6e6_1x400.pngbin110 -> 0 bytes
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/smoothness/images/ui-bg_glass_95_fef1ec_1x400.pngbin119 -> 0 bytes
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/smoothness/images/ui-bg_highlight-soft_75_cccccc_1x100.pngbin101 -> 0 bytes
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/smoothness/images/ui-icons_222222_256x240.pngbin4369 -> 0 bytes
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/smoothness/images/ui-icons_2e83ff_256x240.pngbin4369 -> 0 bytes
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/smoothness/images/ui-icons_454545_256x240.pngbin4369 -> 0 bytes
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/smoothness/images/ui-icons_888888_256x240.pngbin4369 -> 0 bytes
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/smoothness/images/ui-icons_cd0a0a_256x240.pngbin4369 -> 0 bytes
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/smoothness/jquery-ui.css568
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/smoothness/jquery-ui.min.css1
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/ui-lightness/images/ui-bg_diagonals-thick_18_b81900_40x40.pngbin260 -> 0 bytes
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/ui-lightness/images/ui-bg_diagonals-thick_20_666666_40x40.pngbin251 -> 0 bytes
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/ui-lightness/images/ui-bg_flat_10_000000_40x100.pngbin178 -> 0 bytes
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/ui-lightness/images/ui-bg_glass_100_f6f6f6_1x400.pngbin104 -> 0 bytes
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/ui-lightness/images/ui-bg_glass_100_fdf5ce_1x400.pngbin125 -> 0 bytes
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/ui-lightness/images/ui-bg_glass_65_ffffff_1x400.pngbin105 -> 0 bytes
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/ui-lightness/images/ui-bg_gloss-wave_35_f6a828_500x100.pngbin3762 -> 0 bytes
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/ui-lightness/images/ui-bg_highlight-soft_100_eeeeee_1x100.pngbin90 -> 0 bytes
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/ui-lightness/images/ui-bg_highlight-soft_75_ffe45c_1x100.pngbin129 -> 0 bytes
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/ui-lightness/images/ui-icons_228ef1_256x240.pngbin4369 -> 0 bytes
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/ui-lightness/images/ui-icons_ef8c08_256x240.pngbin4369 -> 0 bytes
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/ui-lightness/images/ui-icons_ffd27a_256x240.pngbin4369 -> 0 bytes
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/ui-lightness/images/ui-icons_ffffff_256x240.pngbin4369 -> 0 bytes
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/ui-lightness/jquery-ui-1.9pre.css612
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/ui-lightness/jquery-ui-1.9pre.min.css10
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/ui-lightness/jquery-ui.css568
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/ui-lightness/jquery-ui.min.css1
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/jquery-ui/js/jquery-ui-1.9pre.min.js473
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/jquery-ui/js/jquery-ui.js11767
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/jquery-ui/js/jquery-ui.min.js791
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/jquery-ui/js/jquery.effects.blind.js80
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/jquery-ui/js/jquery.effects.blind.min.js14
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/jquery-ui/js/jquery.effects.core.js890
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/jquery-ui/js/jquery.effects.core.min.js32
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/jquery.print.js103
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/jquery.printElement.min.js28
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/jsondata.txt1
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/kcp.print.js136
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/kcp_area.html284
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/kcp_area2.html217
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/kcp_area2.json2
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/kcp_cdf.html351
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/kcp_engel.html256
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/kcp_lorenz.html528
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/kcp_pdf.html387
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/kcp_pyramid.html590
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/kcp_pyramid2.html578
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/kcp_pyramid_by_age.html859
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/kcp_pyramid_by_age.php862
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/kcp_quintiles.html663
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/line-charts.html193
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/mekkoCharts.html269
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/meritOrder.html103
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/meterGauge.html179
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/multipleBarColors.html131
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/nav.inc40
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/pie-donut-charts.html160
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/pieTest.html187
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/pieTest2.js80
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/pieTest4.html258
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/point-labels.html193
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/quintiles.json348
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/resizablePlot.html196
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/rotated-tick-labels.html216
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/rotatedTickLabelsZoom.html118
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/selectorSyntax.html157
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/smoothedLine.html137
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/syntaxhighlighter/LGPL-LICENSE165
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/syntaxhighlighter/MIT-LICENSE20
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/syntaxhighlighter/scripts/shAutoloader.js17
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/syntaxhighlighter/scripts/shAutoloader.min.js1
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/syntaxhighlighter/scripts/shBrushJScript.js52
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/syntaxhighlighter/scripts/shBrushJScript.min.js1
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/syntaxhighlighter/scripts/shBrushXml.js69
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/syntaxhighlighter/scripts/shBrushXml.min.js1
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/syntaxhighlighter/scripts/shCore.js17
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/syntaxhighlighter/scripts/shCore.min.js1
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/syntaxhighlighter/styles/shCore.css226
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/syntaxhighlighter/styles/shCore.min.css1
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/syntaxhighlighter/styles/shCoreDefault.css328
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/syntaxhighlighter/styles/shCoreDefault.min.css1
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/syntaxhighlighter/styles/shThemeDefault.css117
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/syntaxhighlighter/styles/shThemeDefault.min.css1
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/syntaxhighlighter/styles/shThemejqPlot.css138
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/syntaxhighlighter/styles/shThemejqPlot.min.css1
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/theming.html519
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/topbanner.inc9
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/waterfall.html162
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/waterfall2.html231
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/yahooData.js1807
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/yahooData.min.js1
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/zoom1.html149
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/zoomOptions.html176
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/zoomProxy.html161
-rwxr-xr-xwqflask/wqflask/static/packages/jqplot/examples/zooming.html209
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/.gitignore27
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/.jshintrc3
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/GruntFile.js106
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/LICENSE.md49
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/Makefile72
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/README.md105
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/bower.json35
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/build.bat6
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/bar.html198
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/bar.js250
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/charts/cumulativeLineChart.js174
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/charts/discreteBarChart.js157
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/charts/lineChart.js159
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/charts/lineChartDaily.js168
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/charts/stackedAreaChart.js177
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/cumulativeLine.html171
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/cumulativeLine.js334
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/discreteBarChartWithEnabledTooltip.html129
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/discreteBarChartWithEnabledTooltip.js222
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/discreteBarWithAxes.html172
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/discreteBarWithAxes.js152
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/lineChart-old.html83
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/lineChartDaily.html109
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/linePlusBar.html173
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/linePlusBar.js250
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/lineWithFocus.html137
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/lineWithFocus.js354
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/lineWithFourAxes.html144
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/lineWithFourAxes.js218
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/lineWithLegend.html142
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/lineWithLegend.js176
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/monthendAxis.html99
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/multiBarHorizontalWithLegend.html258
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/multiBarHorizontalWithLegend.js226
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/multiBarWithLegend.html162
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/multiBarWithLegend.js249
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/pie.js263
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/scatterChart.html110
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/scatterChart.js293
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/scatterFisheyeChart.js418
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/scatterWithLegend.html167
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/scatterWithLegend.js261
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/stackedArea.js286
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/stackedAreaChart.html183
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/stackedAreaChart_old.html137
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/stackedAreaWithLegend.html222
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/stackedAreaWithLegend.js297
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/bullet.html97
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/bulletChart.html116
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/crossfilter.html167
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/crossfilterWithDimentions.html180
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/crossfilterWithTables.html288
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/cumulativeLineChart.html200
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/discreteBarChart.html117
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/historicalBar.html158
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/historicalBarChart.html106
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/horizon.html163
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/images/grey-minus.pngbin290 -> 0 bytes
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/images/grey-plus.pngbin325 -> 0 bytes
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/images/nvd3_sampleLineChart1.pngbin52653 -> 0 bytes
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/indentedtree.html127
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/index.html98
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/legend.html76
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/line.html96
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/lineChart.html132
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/lineChartSVGResize.html151
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/linePlusBarChart.html115
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/linePlusBarWithFocusChart.html129
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/lineWithFisheyeChart.html101
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/lineWithFocusChart.html87
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/multiBar.html94
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/multiBarChart.html105
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/multiBarHorizontalChart.html389
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/multiChart.html96
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/nations.json1
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/parallelCoordinates.html4125
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/pie.html94
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/pieChart.html122
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/scatter.html96
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/scatterChart.html118
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/scatterPlusLineChart.html115
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/sparkline.html62
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/sparklinePlus.html86
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/stackedArea.html156
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/stackedAreaChart.html250
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/stream_layers.js35
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/lib/cie.js155
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/lib/colorbrewer.js302
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/lib/crossfilter.js1180
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/lib/crossfilter.min.js1
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/lib/d3.v2.js7033
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/lib/d3.v2.min.js4
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/lib/d3.v3.js8436
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/lib/fisheye.js86
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/lib/hive.js80
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/lib/horizon.js192
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/lib/sankey.js292
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/nv.d3.css769
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/nv.d3.js14346
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/nv.d3.min.css0
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/nv.d3.min.js6
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/package.json13
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/src/core.js125
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/src/interactiveLayer.js251
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/src/intro.js1
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/axis.js405
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/backup/bullet.js250
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/backup/bulletChart.js349
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/boilerplate.js104
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/bullet.js385
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/bulletChart.js343
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/cumulativeLineChart.js754
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/discreteBar.js349
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/discreteBarChart.js344
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/distribution.js148
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/historicalBar.js331
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/historicalBarChart.js419
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/indentedTree.js337
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/legend.js270
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/line.js274
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/lineChart.js465
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/linePlusBarChart.js433
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/linePlusBarWithFocusChart.js658
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/lineWithFisheye.js200
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/lineWithFisheyeChart.js297
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/lineWithFocusChart.js574
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/multiBar.js461
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/multiBarChart.js524
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/multiBarHorizontal.js447
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/multiBarHorizontalChart.js461
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/multiBarTimeSeries.js384
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/multiBarTimeSeriesChart.js405
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/multiChart.js452
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/ohlcBar.js380
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/parallelCoordinates.js239
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/pie.js409
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/pieChart.js292
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/scatter.js674
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/scatterChart.js628
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/scatterPlusLineChart.js620
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/sparkline.js194
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/sparklinePlus.js295
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/stackedArea.js368
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/stackedAreaChart.js635
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/src/nv.d3.css769
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/src/outro.js1
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/src/tooltip.js490
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/src/utils.js152
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/test/ScatterChartTest.html256
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/test/interactiveBisectTest.html158
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/test/lineChartTest.html475
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/test/multiBarChartTest.html148
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/test/pieChartTest.html177
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/test/polylinearTest.html192
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/test/realTimeChartTest.html102
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/test/stackedAreaChartTest.html322
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/test/testScript.js20
-rwxr-xr-xwqflask/wqflask/static/packages/novus-nvd3-d51729c/test/teststyle.css39
-rwxr-xr-xwqflask/wqflask/templates/all_results.html134
-rw-r--r--wqflask/wqflask/templates/marker_regression_old.html106
-rwxr-xr-xwqflask/wqflask/templates/quick_search.html300
-rwxr-xr-xwqflask/wqflask/templates/show_trait.html9
-rwxr-xr-xwqflask/wqflask/templates/show_trait_mapping_tools.html2
-rwxr-xr-xwqflask/wqflask/templates/show_trait_statistics.html578
-rwxr-xr-xwqflask/wqflask/templates/show_trait_statistics_new.html155
-rwxr-xr-xwqflask/wqflask/templates/whats_new.html18
-rwxr-xr-xwqflask/wqflask/views.py58
501 files changed, 158 insertions, 132022 deletions
diff --git a/wqflask/maintenance/dataset/.gitignore b/wqflask/maintenance/dataset/.gitignore
deleted file mode 100644
index 4910042e..00000000
--- a/wqflask/maintenance/dataset/.gitignore
+++ /dev/null
@@ -1,2 +0,0 @@
-*.pyc
-datadir/
diff --git a/wqflask/maintenance/dataset/__init__.py b/wqflask/maintenance/dataset/__init__.py
deleted file mode 100644
index e69de29b..00000000
--- a/wqflask/maintenance/dataset/__init__.py
+++ /dev/null
diff --git a/wqflask/maintenance/dataset/calculate.py b/wqflask/maintenance/dataset/calculate.py
deleted file mode 100644
index 6aada827..00000000
--- a/wqflask/maintenance/dataset/calculate.py
+++ /dev/null
@@ -1,7 +0,0 @@
-import scipy.stats
-
-def correlation(a1, a2):
-    re = []
-    re.append(scipy.stats.pearsonr(a1, a2))
-    re.append(scipy.stats.spearmanr(a1, a2))
-    return re
diff --git a/wqflask/maintenance/dataset/correlations.py b/wqflask/maintenance/dataset/correlations.py
deleted file mode 100644
index b089e446..00000000
--- a/wqflask/maintenance/dataset/correlations.py
+++ /dev/null
@@ -1,47 +0,0 @@
-# Author:               Lei Yan
-# Create Date:          2014-01-21
-# Last Update Date:     2014-01-24
-
-# import
-import sys
-import os
-import re
-import MySQLdb
-import ConfigParser
-
-def main(argv):
-
-    # load configuration from configuration file
-    config = ConfigParser.ConfigParser()
-    config.read(argv[1])
-    genofile = config.get('configuration', 'genofile')
-
-    # parse genofile
-    genotypes = []
-    file_geno = open(genofile, 'r')
-    for line in file_geno:
-        line = line.strip()
-        if line.startswith('#'):
-            continue
-        if line.startswith('@'):
-            continue
-        cells = line.split()
-        if line.startswith("Chr"):
-            strains = cells[4:]
-            continue
-        genotype = {}
-        genotype['chr'] = cells[0]
-        genotype['locus'] = cells[1]
-        genotype['cm'] = cells[2]
-        genotype['mb'] = cells[3]
-        genotype['values'] = cells[4:]
-        genotypes.append(genotype)
-    print "get %d strains:\t%s" % (len(strains), strains)
-    print "load %d genotypes" % len(genotypes)
-
-    # phenotypes
-
-# main
-if __name__ == "__main__":
-    main(sys.argv)
-    print "exit successfully"
diff --git a/wqflask/maintenance/dataset/datasampledir/load_genotypes/config.ini b/wqflask/maintenance/dataset/datasampledir/load_genotypes/config.ini
deleted file mode 100644
index abff371b..00000000
--- a/wqflask/maintenance/dataset/datasampledir/load_genotypes/config.ini
+++ /dev/null
@@ -1,7 +0,0 @@
-[config]
-inbredsetid = 1
-genofile = datasampledir/load_genotypes/sample.geno
-genovalue_U = x
-genovalue_H = 0
-genovalue_B = -1
-genovalue_D = 1
diff --git a/wqflask/maintenance/dataset/datasampledir/load_genotypes/sample.geno b/wqflask/maintenance/dataset/datasampledir/load_genotypes/sample.geno
deleted file mode 100644
index 0024ffd1..00000000
--- a/wqflask/maintenance/dataset/datasampledir/load_genotypes/sample.geno
+++ /dev/null
@@ -1,12 +0,0 @@
-@name:BXD
-@type:riset
-@mat:B
-@pat:D
-@het:H
-@unk:U
-Chr	Locus	cM	Mb	BXD1	BXD2	BXD5	BXD6	BXD8
-1	rs6269442	0	3.482275	D	B	D	D	D
-2	rs6365999	0.3	4.811062	B	B	D	D	D
-3	rs6376963	0.895	5.008089	B	B	D	D	D
-4	rs3677817	1.185	5.176058	B	B	D	D	D
-5	rs8236463	2.081	5.579193	B	B	D	D	D
diff --git a/wqflask/maintenance/dataset/datasampledir/load_phenotypes/config.ini b/wqflask/maintenance/dataset/datasampledir/load_phenotypes/config.ini
deleted file mode 100644
index 638c3bd8..00000000
--- a/wqflask/maintenance/dataset/datasampledir/load_phenotypes/config.ini
+++ /dev/null
@@ -1,4 +0,0 @@
-[config]
-inbredsetid = 1
-datafile = datasampledir/load_phenotypes/sample_data.txt
-metafile = datasampledir/load_phenotypes/sample_meta.txt
diff --git a/wqflask/maintenance/dataset/datasampledir/load_phenotypes/sample_data.txt b/wqflask/maintenance/dataset/datasampledir/load_phenotypes/sample_data.txt
deleted file mode 100644
index a39fd3be..00000000
--- a/wqflask/maintenance/dataset/datasampledir/load_phenotypes/sample_data.txt
+++ /dev/null
@@ -1,10 +0,0 @@
-CaseID	BXD1	BXD2	BXD3	BXD4	BXD5
-Value	1	2	3	4	5
-SE	6	7	8	9	10
-N	11	12	13	14	15
-Sex	16	17	18	19	20
-SE	21	22	23	24	25
-N	26	27	28	29	30
-Age	31	32	33	34	35
-SE	36	37	38	39	40
-N	41	42	43	44	45
diff --git a/wqflask/maintenance/dataset/datasampledir/load_phenotypes/sample_meta.txt b/wqflask/maintenance/dataset/datasampledir/load_phenotypes/sample_meta.txt
deleted file mode 100644
index 5172223f..00000000
--- a/wqflask/maintenance/dataset/datasampledir/load_phenotypes/sample_meta.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-Pubmed ID	Pre Publication Description	Post Publication Description	Original Description	Pre Publication Abbreviation	Post Publication Abbreviation	Lab Code	Submitter	Owner	Authorized Users	Authors	Title	Abstract	Journal	Volume	Pages	Month	Year	Units
-x	Pre Publication Description 1	Post Publication Description 1	Original Description 1	Pre Publication Abbreviation 1	Post Publication Abbreviation 1	Lab Code 1	Submitter 1	Owner 1	Authorized Users 1	Authors 1	Title 1	Abstract 1	Journal 1	Volume 1	Pages 1	Month 1	2001	unit 1
-x	Pre Publication Description 2	Post Publication Description 2	Original Description 2	Pre Publication Abbreviation 2	Post Publication Abbreviation 2	Lab Code 2	Submitter 2	Owner 2	Authorized Users 2	Authors 2	Title 2	Abstract 2	Journal 2	Volume 2	Pages 2	Month 2	2002	unit 2
-19958391	Pre Publication Description 3	Post Publication Description 3	Original Description 3	Pre Publication Abbreviation 3	Post Publication Abbreviation 3	Lab Code 3	Submitter 3	Owner 3	Authorized Users 3	Authors 3	Title 3	Abstract 3	Journal 3	Volume 3	Pages 3	Month 3	2003	unit 3
diff --git a/wqflask/maintenance/dataset/datastructure.py b/wqflask/maintenance/dataset/datastructure.py
deleted file mode 100644
index 7139856f..00000000
--- a/wqflask/maintenance/dataset/datastructure.py
+++ /dev/null
@@ -1,155 +0,0 @@
-import utilities
-
-def get_probesetfreezes(inbredsetid):
-    cursor, con = utilities.get_cursor()
-    sql = """
-        SELECT ProbeSetFreeze.`Id`, ProbeSetFreeze.`Name`, ProbeSetFreeze.`FullName`
-        FROM ProbeSetFreeze, ProbeFreeze
-        WHERE ProbeSetFreeze.`ProbeFreezeId`=ProbeFreeze.`Id`
-        AND ProbeFreeze.`InbredSetId`=%s
-        """
-    cursor.execute(sql, (inbredsetid))
-    return cursor.fetchall()
-
-def get_probesetfreeze(probesetfreezeid):
-    cursor, con = utilities.get_cursor()
-    sql = """
-        SELECT ProbeSetFreeze.`Id`, ProbeSetFreeze.`Name`, ProbeSetFreeze.`FullName`
-        FROM ProbeSetFreeze
-        WHERE ProbeSetFreeze.`Id`=%s
-        """
-    cursor.execute(sql, (probesetfreezeid))
-    return cursor.fetchone()
-    
-def get_strains(inbredsetid):
-    cursor, con = utilities.get_cursor()
-    sql = """
-        SELECT Strain.`Id`, Strain.`Name`
-        FROM StrainXRef, Strain
-        WHERE StrainXRef.`InbredSetId`=%s
-        AND StrainXRef.`StrainId`=Strain.`Id`
-        ORDER BY StrainXRef.`OrderId`
-        """
-    cursor.execute(sql, (inbredsetid))
-    return cursor.fetchall()
-
-def get_inbredset(probesetfreezeid):
-    cursor, con = utilities.get_cursor()
-    sql = """
-        SELECT InbredSet.`Id`, InbredSet.`Name`, InbredSet.`FullName`
-        FROM InbredSet, ProbeFreeze, ProbeSetFreeze
-        WHERE InbredSet.`Id`=ProbeFreeze.`InbredSetId`
-        AND ProbeFreeze.`Id`=ProbeSetFreeze.`ProbeFreezeId`
-        AND ProbeSetFreeze.`Id`=%s
-        """
-    cursor.execute(sql, (probesetfreezeid))
-    return cursor.fetchone()
-    
-def get_species(inbredsetid):
-    cursor, con = utilities.get_cursor()
-    sql = """
-        SELECT Species.`Id`, Species.`Name`, Species.`MenuName`, Species.`FullName`
-        FROM InbredSet, Species
-        WHERE InbredSet.`Id`=%s
-        AND InbredSet.`SpeciesId`=Species.`Id`
-        """
-    cursor.execute(sql, (inbredsetid))
-    return cursor.fetchone()
-    
-def get_genofreeze_byinbredsetid(inbredsetid):
-    cursor, con = utilities.get_cursor()
-    sql = """
-        SELECT GenoFreeze.`Id`, GenoFreeze.`Name`, GenoFreeze.`FullName`, GenoFreeze.`InbredSetId`
-        FROM GenoFreeze
-        WHERE GenoFreeze.`InbredSetId`=%s
-        """
-    cursor.execute(sql, (inbredsetid))
-    return cursor.fetchone()
-
-def get_nextdataid_genotype():
-    cursor, con = utilities.get_cursor()
-    sql = """
-        SELECT GenoData.`Id`
-        FROM GenoData
-        ORDER BY GenoData.`Id` DESC
-        LIMIT 1
-        """
-    cursor.execute(sql)
-    re = cursor.fetchone()
-    dataid = re[0]
-    dataid += 1
-    return dataid
-    
-def get_nextdataid_phenotype():
-    cursor, con = utilities.get_cursor()
-    sql = """
-        SELECT PublishData.`Id`
-        FROM PublishData
-        ORDER BY PublishData.`Id` DESC
-        LIMIT 1
-        """
-    cursor.execute(sql)
-    re = cursor.fetchone()
-    dataid = re[0]
-    dataid += 1
-    return dataid
-
-def insert_strain(inbredsetid, strainname, updatestrainxref=None):
-    speciesid = get_species(inbredsetid)[0]
-    cursor, con = utilities.get_cursor()
-    sql = """
-        INSERT INTO Strain
-        SET
-        Strain.`Name`=%s,
-        Strain.`Name2`=%s,
-        Strain.`SpeciesId`=%s
-        """
-    cursor.execute(sql, (strainname, strainname, speciesid))
-    strainid = con.insert_id()
-    if updatestrainxref:
-        sql = """
-            SELECT StrainXRef.`OrderId`
-            FROM StrainXRef
-            where StrainXRef.`InbredSetId`=%s
-            ORDER BY StrainXRef.`OrderId` DESC
-            LIMIT 1
-            """
-        cursor.execute(sql, (inbredsetid))
-        re = cursor.fetchone()
-        orderid = re[0] + 1
-        #
-        sql = """
-            INSERT INTO StrainXRef
-            SET
-            StrainXRef.`InbredSetId`=%s,
-            StrainXRef.`StrainId`=%s,
-            StrainXRef.`OrderId`=%s,
-            StrainXRef.`Used_for_mapping`=%s,
-            StrainXRef.`PedigreeStatus`=%s
-            """
-        cursor.execute(sql, (inbredsetid, strainid, orderid, "N", None))
-
-def get_strain(inbredsetid, strainname):
-    speciesid = get_species(inbredsetid)[0]
-    cursor, con = utilities.get_cursor()
-    sql = """
-        SELECT Strain.`Id`, Strain.`Name`
-        FROM Strain
-        WHERE Strain.`SpeciesId`=%s
-        AND Strain.`Name` LIKE %s
-        """
-    cursor.execute(sql, (speciesid, strainname))
-    return cursor.fetchone()
-
-def get_strain_sure(inbredsetid, strainname, updatestrainxref=None):
-    strain = get_strain(inbredsetid, strainname)
-    if not strain:
-        insert_strain(inbredsetid, strainname, updatestrainxref)
-        strain = get_strain(inbredsetid, strainname)
-    return strain
-
-def get_strains_bynames(inbredsetid, strainnames, updatestrainxref=None):
-    strains = []
-    for strainname in strainnames:
-        strains.append(get_strain_sure(inbredsetid, strainname, updatestrainxref))
-    return strains
diff --git a/wqflask/maintenance/dataset/fetch.py b/wqflask/maintenance/dataset/fetch.py
deleted file mode 100644
index fcb2d2d8..00000000
--- a/wqflask/maintenance/dataset/fetch.py
+++ /dev/null
@@ -1,11 +0,0 @@
-import sys
-
-inputfile = open(sys.argv[1], 'r')
-
-for line in inputfile:
-	cells = line.split()
-	#print cells[int(sys.argv[2])]
-	i = len(cells)
-	print i
-
-inputfile.close()
diff --git a/wqflask/maintenance/dataset/genotypes.py b/wqflask/maintenance/dataset/genotypes.py
deleted file mode 100644
index b57d4651..00000000
--- a/wqflask/maintenance/dataset/genotypes.py
+++ /dev/null
@@ -1,48 +0,0 @@
-import utilities
-
-def get_geno(inbredsetid, name):
-    cursor = utilities.get_cursor()
-    sql = """
-        SELECT Geno.`Id`, Geno.`Name`, Geno.`Chr`, Geno.`Mb`
-        FROM (Geno, InbredSet)
-        WHERE Geno.`SpeciesId`=InbredSet.`SpeciesId`
-        AND InbredSet.`Id`=%s
-        AND Geno.`Name` LIKE %s
-        """
-    cursor.execute(sql, (inbredsetid, name))
-    return cursor.fetchone()
-
-def load_genos(file):
-    genotypes = []
-    file_geno = open(file, 'r')
-    for line in file_geno:
-        line = line.strip()
-        if line.startswith('#'):
-            continue
-        if line.startswith('@'):
-            continue
-        cells = line.split()
-        if line.startswith("Chr"):
-            strains = cells[4:]
-            strains = [strain.lower() for strain in strains]
-            continue
-        genotype = {}
-        genotype['chr'] = cells[0]
-        genotype['locus'] = cells[1]
-        genotype['cm'] = cells[2]
-        genotype['mb'] = cells[3]
-        values = cells[4:]
-        values = [to_number(value) for value in values]
-        genotype['values'] = values
-        genotype['dicvalues'] = utilities.to_dic(strains, values)
-        genotypes.append(genotype)
-    return strains, genotypes
-    
-def to_number(char):
-    dic = {
-        'b': -1,
-        'd': 1,
-        'h': 0,
-        'u': None,
-        }
-    return dic.get(char.lower(), None)
diff --git a/wqflask/maintenance/dataset/load_genotypes.py b/wqflask/maintenance/dataset/load_genotypes.py
deleted file mode 100644
index 4697382b..00000000
--- a/wqflask/maintenance/dataset/load_genotypes.py
+++ /dev/null
@@ -1,157 +0,0 @@
-from __future__ import absolute_import, print_function, division
-
-import sys
-import re
-import argparse
-
-import utilities
-import datastructure
-
-def main(argv):
-    config = utilities.get_config(argv[1])
-    print("config file:")
-    for item in config.items('config'):
-        print("\t", str(item))
-    parse_genofile(config, fetch_parameters(config))
-
-def fetch_parameters(config):
-    config_dic = {}
-    config_dic['inbredsetid'] = config.get('config', 'inbredsetid')
-    config_dic["speciesid"] = datastructure.get_species(config_dic['inbredsetid'])[0]
-    config_dic['genofreezeid'] = datastructure.get_genofreeze_byinbredsetid(config_dic['inbredsetid'])[0]
-    config_dic['dataid'] = datastructure.get_nextdataid_genotype()
-    config_dic['genofile'] = config.get('config', 'genofile')
-    print("config dictionary:")
-    for k, v in config_dic.items():
-        print("\t%s: %s" % (k, v))
-    return config_dic
-
-def parse_genofile(config, config_dic):
-    genofile = open(config_dic['genofile'], 'r')
-    meta_dic = {}
-    for line in genofile:
-        line = line.strip()
-        if len(line) == 0:
-            continue
-        if line.startswith('#'):
-            continue
-        if line.startswith('@'):
-            line = line.strip('@')
-            items = line.split(';')
-            for item in items:
-                kv = re.split(':|=', item)
-                meta_dic[kv[0].strip()] = kv[1].strip()
-            continue
-        if line.lower().startswith("chr"):
-            #
-            print("geno file meta dictionary:")
-            for k, v in meta_dic.items():
-                print("\t%s: %s" % (k, v))
-            #
-            print("geno file head:\n\t%s" % line)
-            strainnames = line.split()[4:]
-            config_dic['strains'] = datastructure.get_strains_bynames(inbredsetid=config_dic['inbredsetid'], strainnames=strainnames, updatestrainxref="yes")
-            continue
-        # geno file line, marker
-        marker_dic = parse_marker(line)
-        marker_dic['genoid'] = check_or_insert_geno(config_dic, marker_dic)
-        if check_genoxref(config_dic, marker_dic):
-            continue
-        insert_genodata(config, config_dic, marker_dic)
-        insert_genoxref(config_dic, marker_dic)
-        config_dic['dataid'] += 1
-    genofile.close()
-
-def parse_marker(line):
-    marker_dic = {}
-    cells = line.split()
-    marker_dic['chromosome'] = cells[0]
-    marker_dic['locus'] = cells[1]
-    marker_dic['cm'] = cells[2]
-    marker_dic['mb'] = cells[3]
-    marker_dic['values'] = cells[4:]
-    return marker_dic
-        
-def check_or_insert_geno(config_dic, marker_dic):
-    cursor, con = utilities.get_cursor()
-    sql = """
-        SELECT Geno.`Id`
-        FROM Geno
-        WHERE Geno.`SpeciesId`=%s
-        AND Geno.`Name` like %s
-        """
-    cursor.execute(sql, (config_dic["speciesid"], marker_dic['locus']))
-    result = cursor.fetchone()
-    if result:
-        genoid = result[0]
-        print("get geno record: %d" % genoid)
-    else:
-        sql = """
-            INSERT INTO Geno
-            SET
-            Geno.`SpeciesId`=%s,
-            Geno.`Name`=%s,
-            Geno.`Marker_Name`=%s,
-            Geno.`Chr`=%s,
-            Geno.`Mb`=%s
-            """
-        cursor.execute(sql, (config_dic['speciesid'], marker_dic['locus'], marker_dic['locus'], marker_dic['chromosome'], marker_dic['mb']))
-        rowcount = cursor.rowcount
-        genoid = con.insert_id()
-        print("INSERT INTO Geno: %d record: %d" % (rowcount, genoid))
-    return genoid
-
-def check_genoxref(config_dic, marker_dic):
-    cursor, con = utilities.get_cursor()
-    sql = """
-        select GenoXRef.*
-        from GenoXRef
-        where GenoXRef.`GenoFreezeId`=%s
-        AND GenoXRef.`GenoId`=%s
-        """
-    cursor.execute(sql, (config_dic['genofreezeid'], marker_dic['genoid']))
-    rowcount = cursor.rowcount
-    return rowcount
-
-def insert_genodata(config, config_dic, marker_dic):
-    cursor, con = utilities.get_cursor()
-    for index, strain in enumerate(config_dic['strains']):
-        strainid = strain[0]
-        value = utilities.to_db_string(marker_dic['values'][index], None)
-        if not value:
-            continue
-        value = config.get('config', "genovalue_" + value)
-        try:
-            number = int(value)
-        except:
-            continue
-        if not number in [-1, 0, 1]:
-            continue
-        sql = """
-            INSERT INTO GenoData
-            SET
-            GenoData.`Id`=%s,
-            GenoData.`StrainId`=%s,
-            GenoData.`value`=%s
-            """
-        cursor.execute(sql, (config_dic['dataid'], strainid, number))
-
-def insert_genoxref(config_dic, marker_dic):
-    cursor, con = utilities.get_cursor()
-    sql = """
-        INSERT INTO GenoXRef
-        SET
-        GenoXRef.`GenoFreezeId`=%s,
-        GenoXRef.`GenoId`=%s,
-        GenoXRef.`DataId`=%s,
-        GenoXRef.`cM`=%s,
-        GenoXRef.`Used_for_mapping`=%s
-        """
-    cursor.execute(sql, (config_dic['genofreezeid'], marker_dic['genoid'], config_dic['dataid'], marker_dic['cm'], 'N'))
-    rowcount = cursor.rowcount
-    print("INSERT INTO GenoXRef: %d record" % (rowcount))
-
-if __name__ == "__main__":
-    print("command line arguments:\n\t%s" % sys.argv)
-    main(sys.argv)
-    print("exit successfully")
diff --git a/wqflask/maintenance/dataset/load_phenotypes.py b/wqflask/maintenance/dataset/load_phenotypes.py
deleted file mode 100644
index 27e340f8..00000000
--- a/wqflask/maintenance/dataset/load_phenotypes.py
+++ /dev/null
@@ -1,171 +0,0 @@
-import sys
-import csv
-
-import utilities
-import datastructure
-
-def main(argv):
-    # config
-    config = utilities.get_config(argv[1])
-    print "config:"
-    for item in config.items('config'):
-        print "\t%s" % (str(item))
-    # var
-    inbredsetid = config.get('config', 'inbredsetid')
-    print "inbredsetid: %s" % inbredsetid
-    species = datastructure.get_species(inbredsetid)
-    speciesid = species[0]
-    print "speciesid: %s" % speciesid
-    dataid = datastructure.get_nextdataid_phenotype()
-    print "next data id: %s" % dataid
-    cursor, con = utilities.get_cursor()
-    # datafile
-    datafile = open(config.get('config', 'datafile'), 'r')
-    phenotypedata = csv.reader(datafile, delimiter='\t', quotechar='"')
-    phenotypedata_head = phenotypedata.next()
-    print "phenotypedata head:\n\t%s" % phenotypedata_head
-    strainnames = phenotypedata_head[1:]
-    strains = datastructure.get_strains_bynames(inbredsetid=inbredsetid, strainnames=strainnames, updatestrainxref=None)
-    # metafile
-    metafile = open(config.get('config', 'metafile'), 'r')
-    phenotypemeta = csv.reader(metafile, delimiter='\t', quotechar='"')
-    phenotypemeta_head = phenotypemeta.next()
-    print "phenotypemeta head:\n\t%s" % phenotypemeta_head
-    print
-    # load
-    for metarow in phenotypemeta:
-        #
-        datarow_value = phenotypedata.next()
-        datarow_se = phenotypedata.next()
-        datarow_n = phenotypedata.next()
-        # Phenotype
-        sql = """
-            INSERT INTO Phenotype
-            SET
-            Phenotype.`Pre_publication_description`=%s,
-            Phenotype.`Post_publication_description`=%s,
-            Phenotype.`Original_description`=%s,
-            Phenotype.`Pre_publication_abbreviation`=%s,
-            Phenotype.`Post_publication_abbreviation`=%s,
-            Phenotype.`Lab_code`=%s,
-            Phenotype.`Submitter`=%s,
-            Phenotype.`Owner`=%s,
-            Phenotype.`Authorized_Users`=%s,
-            Phenotype.`Units`=%s
-            """
-        cursor.execute(sql, (
-            utilities.to_db_string(metarow[1], None),
-            utilities.to_db_string(metarow[2], None),
-            utilities.to_db_string(metarow[3], None),
-            utilities.to_db_string(metarow[4], None),
-            utilities.to_db_string(metarow[5], None),
-            utilities.to_db_string(metarow[6], None),
-            utilities.to_db_string(metarow[7], None),
-            utilities.to_db_string(metarow[8], None),
-            utilities.to_db_string(metarow[9], ""),
-            utilities.to_db_string(metarow[18], None),
-            ))
-        rowcount = cursor.rowcount
-        phenotypeid = con.insert_id()
-        print "INSERT INTO Phenotype: %d record: %d" % (rowcount, phenotypeid)
-        # Publication
-        publicationid = None # reset
-        pubmed_id = utilities.to_db_string(metarow[0], None)
-        if pubmed_id:
-            sql = """
-                SELECT Publication.`Id`
-                FROM Publication
-                WHERE Publication.`PubMed_ID`=%s
-                """
-            cursor.execute(sql, (pubmed_id))
-            re = cursor.fetchone()
-            if re:
-                publicationid = re[0]
-                print "get Publication record: %d" % publicationid
-        if not publicationid:
-            sql = """
-                INSERT INTO Publication
-                SET
-                Publication.`PubMed_ID`=%s,
-                Publication.`Abstract`=%s,
-                Publication.`Authors`=%s,
-                Publication.`Title`=%s,
-                Publication.`Journal`=%s,
-                Publication.`Volume`=%s,
-                Publication.`Pages`=%s,
-                Publication.`Month`=%s,
-                Publication.`Year`=%s
-                """
-            cursor.execute(sql, (
-                utilities.to_db_string(metarow[0], None),
-                utilities.to_db_string(metarow[12], None),
-                utilities.to_db_string(metarow[10], ""),
-                utilities.to_db_string(metarow[11], None),
-                utilities.to_db_string(metarow[13], None),
-                utilities.to_db_string(metarow[14], None),
-                utilities.to_db_string(metarow[15], None),
-                utilities.to_db_string(metarow[16], None),
-                utilities.to_db_string(metarow[17], None),
-                ))
-            rowcount = cursor.rowcount
-            publicationid = con.insert_id()
-            print "INSERT INTO Publication: %d record: %d" % (rowcount, publicationid)
-        # data
-        for index, strain in enumerate(strains):
-            #
-            strainid = strain[0]
-            value   = utilities.to_db_float(datarow_value[index+1], None)
-            se      = utilities.to_db_float(datarow_se[index+1], None)
-            n       = utilities.to_db_int(datarow_n[index+1], None)
-            #
-            if value:
-                sql = """
-                    INSERT INTO PublishData
-                    SET
-                    PublishData.`Id`=%s,
-                    PublishData.`StrainId`=%s,
-                    PublishData.`value`=%s
-                    """
-                cursor.execute(sql, (dataid, strainid, value))
-            if se:
-                sql = """
-                    INSERT INTO PublishSE
-                    SET
-                    PublishSE.`DataId`=%s,
-                    PublishSE.`StrainId`=%s,
-                    PublishSE.`error`=%s
-                    """
-                cursor.execute(sql, (dataid, strainid, se))
-            if n:
-                sql = """
-                    INSERT INTO NStrain
-                    SET
-                    NStrain.`DataId`=%s,
-                    NStrain.`StrainId`=%s,
-                    NStrain.`count`=%s
-                    """
-                cursor.execute(sql, (dataid, strainid, n))
-        # PublishXRef
-        sql = """
-            INSERT INTO PublishXRef
-            SET
-            PublishXRef.`InbredSetId`=%s,
-            PublishXRef.`PhenotypeId`=%s,
-            PublishXRef.`PublicationId`=%s,
-            PublishXRef.`DataId`=%s,
-            PublishXRef.`comments`=%s
-            """
-        cursor.execute(sql, (inbredsetid, phenotypeid, publicationid, dataid, ""))
-        rowcount = cursor.rowcount
-        publishxrefid = con.insert_id()
-        print "INSERT INTO PublishXRef: %d record: %d" % (rowcount, publishxrefid)
-        # for loop next
-        dataid += 1
-        print
-    # release
-    con.close()
-
-if __name__ == "__main__":
-    print "command line arguments:\n\t%s" % sys.argv
-    main(sys.argv)
-    print "exit successfully"
diff --git a/wqflask/maintenance/dataset/phenotypes.py b/wqflask/maintenance/dataset/phenotypes.py
deleted file mode 100644
index ed30f33f..00000000
--- a/wqflask/maintenance/dataset/phenotypes.py
+++ /dev/null
@@ -1,100 +0,0 @@
-import utilities
-
-def fetch():
-    # parameters
-    inbredsetid = 1
-    phenotypesfile = open('bxdphenotypes.txt', 'w+')
-    #
-    phenotypesfile.write("id\tAuthors\tOriginal_description\tPre_publication_description\tPost_publication_description\t")
-    # open db
-    cursor = utilities.get_cursor()
-    # get strain list
-    strains = []
-    sql = """
-        SELECT Strain.`Name`
-        FROM StrainXRef, Strain
-        WHERE StrainXRef.`StrainId`=Strain.`Id`
-        AND StrainXRef.`InbredSetId`=%s
-        ORDER BY StrainXRef.`OrderId`
-        """
-    cursor.execute(sql, (inbredsetid))
-    results = cursor.fetchall()
-    for row in results:
-        strain = row[0]
-        strain = strain.lower()
-        strains.append(strain)
-    print "get %d strains: %s" % (len(strains), strains)
-    phenotypesfile.write('\t'.join([strain.upper() for strain in strains]))
-    phenotypesfile.write('\n')
-    phenotypesfile.flush()
-    # phenotypes
-    sql = """
-        SELECT PublishXRef.`Id`, Publication.`Authors`, Phenotype.`Original_description`, Phenotype.`Pre_publication_description`, Phenotype.`Post_publication_description`
-        FROM (PublishXRef, Phenotype, Publication)
-        WHERE PublishXRef.`InbredSetId`=%s
-        AND PublishXRef.`PhenotypeId`=Phenotype.`Id`
-        AND PublishXRef.`PublicationId`=Publication.`Id`
-        """
-    cursor.execute(sql, (inbredsetid))
-    results = cursor.fetchall()
-    print "get %d phenotypes" % (len(results))
-    for phenotyperow in results:
-        publishxrefid = phenotyperow[0]
-        authors = utilities.clearspaces(phenotyperow[1])
-        original_description = utilities.clearspaces(phenotyperow[2])
-        pre_publication_description = utilities.clearspaces(phenotyperow[3])
-        post_publication_description = utilities.clearspaces(phenotyperow[4])
-        phenotypesfile.write("%s\t%s\t%s\t%s\t%s\t" % (publishxrefid, authors, original_description, pre_publication_description, post_publication_description))
-        sql = """
-            SELECT Strain.Name, PublishData.value
-            FROM (PublishXRef, PublishData, Strain)
-            WHERE PublishXRef.`InbredSetId`=%s
-            AND PublishXRef.Id=%s
-            AND PublishXRef.DataId=PublishData.Id
-            AND PublishData.StrainId=Strain.Id
-        """
-        cursor.execute(sql, (inbredsetid, publishxrefid))
-        results = cursor.fetchall()
-        print "get %d values" % (len(results))
-        strainvaluedic = {}
-        for strainvalue in results:
-            strainname = strainvalue[0]
-            strainname = strainname.lower()
-            value = strainvalue[1]
-            strainvaluedic[strainname] = value
-        for strain in strains:
-            if strain in strainvaluedic:
-                phenotypesfile.write(str(strainvaluedic[strain]))
-            else:
-                phenotypesfile.write('x')
-            phenotypesfile.write('\t')
-        phenotypesfile.write('\n')
-        phenotypesfile.flush()
-    # release
-    phenotypesfile.close()
-
-def delete(publishxrefid, inbredsetid):
-    cursor = utilities.get_cursor()
-    sql = """
-        DELETE Phenotype
-        FROM PublishXRef,Phenotype
-        WHERE PublishXRef.`Id`=%s
-        AND PublishXRef.`InbredSetId`=%s
-        AND PublishXRef.`PhenotypeId`=Phenotype.`Id`
-        """
-    cursor.execute(sql, (publishxrefid, inbredsetid))
-    sql = """
-        DELETE PublishData
-        FROM PublishXRef,PublishData
-        WHERE PublishXRef.`Id`=%s
-        AND PublishXRef.`InbredSetId`=%s
-        AND PublishXRef.`DataId`=PublishData.`Id`
-        """
-    cursor.execute(sql, (publishxrefid, inbredsetid))
-    sql = """
-        DELETE PublishXRef
-        FROM PublishXRef
-        WHERE PublishXRef.`Id`=%s
-        AND PublishXRef.`InbredSetId`=%s
-        """
-    cursor.execute(sql, (publishxrefid, inbredsetid))
diff --git a/wqflask/maintenance/dataset/probesets.py b/wqflask/maintenance/dataset/probesets.py
deleted file mode 100644
index 97bb5bdf..00000000
--- a/wqflask/maintenance/dataset/probesets.py
+++ /dev/null
@@ -1,90 +0,0 @@
-import utilities
-import datastructure
-import genotypes
-
-def get_probesetxref(probesetfreezeid):
-    cursor = utilities.get_cursor()
-    sql = """
-        SELECT ProbeSetXRef.`ProbeSetId`, ProbeSetXRef.`DataId`
-        FROM ProbeSetXRef
-        WHERE ProbeSetXRef.`ProbeSetFreezeId`=%s
-        """
-    cursor.execute(sql, (probesetfreezeid))
-    return cursor.fetchall()
-    
-def get_probeset(probesetid):
-    cursor = utilities.get_cursor()
-    sql = """
-        SELECT ProbeSet.`Id`, ProbeSet.`Name`, ProbeSet.`Symbol`, ProbeSet.`description`, ProbeSet.`Probe_Target_Description`, ProbeSet.`Chr`, ProbeSet.`Mb`
-        FROM ProbeSet
-        WHERE ProbeSet.`Id`=%s
-        """
-    cursor.execute(sql, (probesetid))
-    return cursor.fetchone()
-    
-def get_probesetdata(probesetdataid):
-    cursor = utilities.get_cursor()
-    sql = """
-        SELECT Strain.`Id`, Strain.`Name`, ProbeSetData.`value`
-        FROM ProbeSetData, Strain
-        WHERE ProbeSetData.`Id`=%s
-        AND ProbeSetData.`StrainId`=Strain.`Id`;
-        """
-    cursor.execute(sql, (probesetdataid))
-    return cursor.fetchall()
-
-def get_probesetxref_probesetfreezeid(locus, probesetfreezeid):
-    cursor = utilities.get_cursor()
-    sql = """
-        SELECT ProbeSetXRef.`ProbeSetId`
-        FROM ProbeSetXRef
-        WHERE ProbeSetXRef.`ProbeSetFreezeId`=%s
-        AND ProbeSetXRef.`Locus` LIKE %s
-        """
-    cursor.execute(sql, (probesetfreezeid, locus))
-    return cursor.fetchall()
-    
-def get_probesetxref_inbredsetid(locus, inbredsetid):
-    cursor = utilities.get_cursor()
-    sql = """
-        SELECT ProbeSetXRef.`ProbeSetId`, ProbeSetXRef.`mean`, ProbeSetXRef.`LRS`, ProbeSetXRef.`Locus`, ProbeSetXRef.`ProbeSetFreezeId`
-        FROM (ProbeSetXRef, ProbeSetFreeze, ProbeFreeze)
-        WHERE ProbeSetXRef.`ProbeSetFreezeId`=ProbeSetFreeze.`Id`
-        AND ProbeSetFreeze.`ProbeFreezeId`=ProbeFreeze.`Id`
-        AND ProbeFreeze.`InbredSetId`=%s
-        AND ProbeSetXRef.`Locus` LIKE %s
-        """
-    cursor.execute(sql, (inbredsetid, locus))
-    return cursor.fetchall()
-
-def get_normalized_probeset(locus, inbredsetid):
-    normalized_probesets = []
-    probesetxrefs = get_probesetxref_inbredsetid(locus, inbredsetid)
-    for probesetxref in probesetxrefs:
-        normalized_probeset = []
-        #
-        probesetfreezeid = probesetxref[4]
-        probesetfreeze = datastructure.get_probesetfreeze(probesetfreezeid)
-        normalized_probeset.append(probesetfreeze[0])
-        normalized_probeset.append(probesetfreeze[1])
-        normalized_probeset.append(probesetfreeze[2])
-        #
-        probesetid = probesetxref[0]
-        probeset = get_probeset(probesetid)
-        normalized_probeset.append(probeset[1])
-        normalized_probeset.append(probeset[2])
-        normalized_probeset.append(probeset[3])
-        normalized_probeset.append(probeset[4])
-        normalized_probeset.append(probeset[5])
-        normalized_probeset.append(probeset[6])
-        #
-        normalized_probeset.append(probesetxref[1])
-        normalized_probeset.append(probesetxref[2])
-        #
-        locus = probesetxref[3]
-        geno = genotypes.get_geno(inbredsetid=inbredsetid, name=locus)
-        normalized_probeset.append(geno[2])
-        normalized_probeset.append(geno[3])
-        #
-        normalized_probesets.append(normalized_probeset)
-    return normalized_probesets
diff --git a/wqflask/maintenance/dataset/specials1.py b/wqflask/maintenance/dataset/specials1.py
deleted file mode 100644
index 9159fd7f..00000000
--- a/wqflask/maintenance/dataset/specials1.py
+++ /dev/null
@@ -1,53 +0,0 @@
-import utilities
-import datastructure
-import genotypes
-import probesets
-import calculate
-
-"""
-For:    Rob, GeneNetwork
-Date:   2014-02-04
-Function:
-    For BXD group, fetch probesets with given locus (mapping info).
-
-locus="rs3663871"
-"""
-def bxd_probesets_locus(locus, inbredsetid):
-    #
-    file = open('probesets_%s.txt' % (locus), 'w+')
-    file.write("GN Dataset ID\t")
-    file.write("Dataset Full Name\t")
-    file.write("ProbeSet Name\t")
-    file.write("Symbol\t")
-    file.write("ProbeSet Description\t")
-    file.write("Probe Target Description\t")
-    file.write("ProbeSet Chr\t")
-    file.write("ProbeSet Mb\t")
-    file.write("Mean\t")
-    file.write("LRS\t")
-    file.write("Geno Chr\t")
-    file.write("Geno Mb\t")
-    file.write("\n")
-    file.flush()
-    #
-    results = probesets.get_normalized_probeset(locus=locus, inbredsetid=inbredsetid)
-    for row in results:
-        file.write("%s\t" % (row[0]))
-        file.write("%s\t" % (utilities.clearspaces(row[2], default='')))
-        file.write("%s\t" % (utilities.clearspaces(row[3], default='')))
-        file.write("%s\t" % (utilities.clearspaces(row[4], default='')))
-        file.write("%s\t" % (utilities.clearspaces(row[5], default='')))
-        file.write("%s\t" % (utilities.clearspaces(row[6], default='')))
-        file.write("%s\t" % (utilities.clearspaces(row[7], default='')))
-        file.write("%s\t" % (row[8]))
-        file.write("%s\t" % (row[9]))
-        file.write("%s\t" % (row[10]))
-        file.write("%s\t" % (utilities.clearspaces(row[11], default='')))
-        file.write("%s\t" % (row[12]))
-        file.write('\n')
-        file.flush()
-    file.close()
-
-locus='rs3663871'
-inbredsetid=1
-bxd_probesets_locus(locus=locus, inbredsetid=inbredsetid)
diff --git a/wqflask/maintenance/dataset/specials2.py b/wqflask/maintenance/dataset/specials2.py
deleted file mode 100644
index 2438af43..00000000
--- a/wqflask/maintenance/dataset/specials2.py
+++ /dev/null
@@ -1,139 +0,0 @@
-import utilities
-import datastructure
-import genotypes
-import probesets
-import calculate
-
-"""
-For:    Ash
-Date:   2014-02-07
-Function:
-    For BXD group, get a probesetfreeze name list.
-"""
-def probesetfreeze_list():
-    #
-    inbredsetid = 1
-    outputdir = "/home/leiyan/gn2/wqflask/maintenance/dataset/datadir/20140205_Ash_correlations/output"
-    #
-    probesetfreezes = datastructure.get_probesetfreezes(inbredsetid)
-    print "From DB, get %d probesetfreezes" % (len(probesetfreezes))
-    file = open(outputdir + '/' + 'probesetfreezes.txt', 'w+')
-    #
-    for probesetfreeze in probesetfreezes:
-        #
-        print probesetfreeze
-        probesetfreezeid = probesetfreeze[0]
-        probesetfreezename = probesetfreeze[1]
-        probesetfreezefullname = probesetfreeze[2]
-        #
-        file.write("%s\t" % probesetfreezeid)
-        file.write("%s" % probesetfreezefullname)
-        file.write("\n")
-        file.flush()
-        #
-    file.close()
-        
-"""
-For:    Ash
-Date:   2014-02-05
-Function:
-    For BXD group, calculate correlations with genotypes and probesets.
-"""
-def bxd_correlations():
-    #
-    inbredsetid = 1
-    genofile = "/home/leiyan/gn/web/genotypes/BXD.geno"
-    outputdir = "/home/leiyan/gn2/wqflask/maintenance/dataset/datadir/20140205_Ash_correlations/output"
-    #
-    t = genotypes.load_genos(genofile)
-    genostrains = t[0]
-    genos = t[1]
-    print "From geno file, get %d strains" % (len(genostrains))
-    print "From geno file, get %d genos" % (len(genos))
-    #
-    probesetfreezes = datastructure.get_probesetfreezes(inbredsetid)
-    print "From DB, get %d probesetfreezes" % (len(probesetfreezes))
-    for probesetfreeze in probesetfreezes:
-        correlations(outputdir=outputdir, genos=genos, probesetfreeze=probesetfreeze)
-    
-def correlations(outputdir, genos, probesetfreeze):
-    print probesetfreeze
-    probesetfreezeid = probesetfreeze[0]
-    probesetfreezename = probesetfreeze[1]
-    probesetfreezefullname = probesetfreeze[2]
-    #
-    outputfile = open("%s/%d_%s.txt" % (outputdir, probesetfreezeid, probesetfreezename), "w+")
-    outputfile.write("%s\t" % "ProbeSet Id")
-    outputfile.write("%s\t" % "ProbeSet Name")
-    outputfile.write("%s\t" % "Geno Name")
-    outputfile.write("%s\t" % "Overlap Number")
-    outputfile.write("%s\t" % "Pearson r")
-    outputfile.write("%s\t" % "Pearson p")
-    outputfile.write("%s\t" % "Spearman r")
-    outputfile.write("%s\t" % "Spearman p")
-    outputfile.write("\n")
-    outputfile.flush()
-    #
-    probesetxrefs = probesets.get_probesetxref(probesetfreezeid)
-    print "Get %d probesetxrefs" % (len(probesetxrefs))
-    #
-    for probesetxref in probesetxrefs:
-        #
-        probesetid = probesetxref[0]
-        probesetdataid = probesetxref[1]
-        probeset = probesets.get_probeset(probesetid)
-        probesetname = probeset[1]
-        probesetdata = probesets.get_probesetdata(probesetdataid)
-        probesetdata = zip(*probesetdata)
-        probesetdata = utilities.to_dic([strain.lower() for strain in probesetdata[1]], probesetdata[2])
-        #
-        for geno in genos:
-            genoname = geno['locus']
-            outputfile.write("%s\t" % probesetid)
-            outputfile.write("%s\t" % probesetname)
-            outputfile.write("%s\t" % genoname)
-            #
-            dic1 = geno['dicvalues']
-            dic2 = probesetdata
-            keys, values1, values2 = utilities.overlap(dic1, dic2)
-            rs = calculate.correlation(values1, values2)
-            #
-            outputfile.write("%s\t" % len(keys))
-            outputfile.write("%s\t" % rs[0][0])
-            outputfile.write("%s\t" % rs[0][1])
-            outputfile.write("%s\t" % rs[1][0])
-            outputfile.write("%s\t" % rs[1][1])
-            outputfile.write("\n")
-            outputfile.flush()
-    #
-    outputfile.close()
-    
-"""
-For:    Ash
-Date:   2014-02-10
-Function:
-    For BXD group, calculate correlations with genotypes and probesets.
-    given probesetfreezes
-"""
-def bxd_correlations_givenprobesetfreezes(probesetfreezesfile):
-    #
-    inbredsetid = 1
-    genofile = "/home/leiyan/gn/web/genotypes/BXD.geno"
-    outputdir = "/home/leiyan/gn2/wqflask/maintenance/dataset/datadir/20140205_Ash_correlations/output"
-    #
-    t = genotypes.load_genos(genofile)
-    genostrains = t[0]
-    genos = t[1]
-    print "From geno file, get %d strains" % (len(genostrains))
-    print "From geno file, get %d genos" % (len(genos))
-    #
-    file = open(probesetfreezesfile, 'r')
-    for line in file:
-        line = line.strip()
-        cells = line.split()
-        probesetfreezeid = cells[0]
-        probesetfreeze = datastructure.get_probesetfreeze(probesetfreezeid)
-        correlations(outputdir=outputdir, genos=genos, probesetfreeze=probesetfreeze)
-    file.close()
-
-bxd_correlations_givenprobesetfreezes('/home/leiyan/gn2/wqflask/maintenance/dataset/datadir/20140205_Ash_correlations/output/probesetfreezes_filter.txt')
diff --git a/wqflask/maintenance/dataset/specials3.py b/wqflask/maintenance/dataset/specials3.py
deleted file mode 100644
index 237df27e..00000000
--- a/wqflask/maintenance/dataset/specials3.py
+++ /dev/null
@@ -1,117 +0,0 @@
-import utilities
-import datastructure
-import genotypes
-import probesets
-import calculate
-
-def correlations(outputdir, genos, probesetfreeze):
-    print probesetfreeze
-    probesetfreezeid = probesetfreeze[0]
-    probesetfreezename = probesetfreeze[1]
-    probesetfreezefullname = probesetfreeze[2]
-    #
-    outputfile = open("%s/%d_%s.txt" % (outputdir, probesetfreezeid, probesetfreezename), "w+")
-    outputfile.write("%s\t" % "ProbeSet Id")
-    outputfile.write("%s\t" % "ProbeSet Name")
-    outputfile.write("%s\t" % "Geno Name")
-    outputfile.write("%s\t" % "Overlap Number")
-    outputfile.write("%s\t" % "Pearson r")
-    outputfile.write("%s\t" % "Pearson p")
-    outputfile.write("%s\t" % "Spearman r")
-    outputfile.write("%s\t" % "Spearman p")
-    outputfile.write("\n")
-    outputfile.flush()
-    #
-    probesetxrefs = probesets.get_probesetxref(probesetfreezeid)
-    print "Get %d probesetxrefs" % (len(probesetxrefs))
-    #
-    for probesetxref in probesetxrefs:
-        #
-        probesetid = probesetxref[0]
-        probesetdataid = probesetxref[1]
-        probeset = probesets.get_probeset(probesetid)
-        probesetname = probeset[1]
-        probesetdata = probesets.get_probesetdata(probesetdataid)
-        probesetdata = zip(*probesetdata)
-        probesetdata = utilities.to_dic([strain.lower() for strain in probesetdata[1]], probesetdata[2])
-        #
-        for geno in genos:
-            genoname = geno['locus']
-            outputfile.write("%s\t" % probesetid)
-            outputfile.write("%s\t" % probesetname)
-            outputfile.write("%s\t" % genoname)
-            #
-            dic1 = geno['dicvalues']
-            dic2 = probesetdata
-            keys, values1, values2 = utilities.overlap(dic1, dic2)
-            rs = calculate.correlation(values1, values2)
-            #
-            outputfile.write("%s\t" % len(keys))
-            outputfile.write("%s\t" % rs[0][0])
-            outputfile.write("%s\t" % rs[0][1])
-            outputfile.write("%s\t" % rs[1][0])
-            outputfile.write("%s\t" % rs[1][1])
-            outputfile.write("\n")
-            outputfile.flush()
-    #
-    outputfile.close()
-    
-"""
-For:    Ash
-Date:   2014-02-12
-Function:
-    Generate probeset data files.
-    given probesetfreeze list.
-"""
-def generate_probesets(probesetfreezesfile, outputdir):
-    file = open(probesetfreezesfile, 'r')
-    for line in file:
-        line = line.strip()
-        cells = line.split()
-        probesetfreezeid = cells[0]
-        probesetfreeze = datastructure.get_probesetfreeze(probesetfreezeid)
-        probesetfreezeid = probesetfreeze[0]
-        probesetfreezename = probesetfreeze[1]
-        inbredset = datastructure.get_inbredset(probesetfreezeid)
-        inbredsetid = inbredset[0]
-        strains = datastructure.get_strains(inbredsetid)
-        #
-        outputfile = open("%s/%d_%s.txt" % (outputdir, probesetfreezeid, probesetfreezename), "w+")
-        outputfile.write("%s\t" % "ProbeSet Id")
-        outputfile.write("%s\t" % "ProbeSet Name")
-        outputfile.write('\t'.join([strain[1].upper() for strain in strains]))
-        outputfile.write("\n")
-        outputfile.flush()
-        #
-        probesetxrefs = probesets.get_probesetxref(probesetfreezeid)
-        print probesetfreeze
-        print len(probesetxrefs)
-        for probesetxref in probesetxrefs:
-            probesetid = probesetxref[0]
-            probesetdataid = probesetxref[1]
-            probeset = probesets.get_probeset(probesetid)
-            probesetname = probeset[1]
-            probesetdata = probesets.get_probesetdata(probesetdataid)
-            probesetdata = zip(*probesetdata)
-            probesetdata = utilities.to_dic([strain.lower() for strain in probesetdata[1]], probesetdata[2])
-            #
-            outputfile.write("%s\t" % probesetid)
-            outputfile.write("%s\t" % probesetname)
-            #
-            for strain in strains:
-                strainname = strain[1]
-                strainname = strainname.lower()
-                if strainname in probesetdata:
-                    value = probesetdata[strainname]
-                else:
-                    value = 'x'
-                outputfile.write("%s\t" % value)
-            outputfile.write("\n")
-            outputfile.flush()
-        #
-        outputfile.close()
-    file.close()
-
-probesetfreezesfile = "/home/leiyan/gn2/wqflask/maintenance/dataset/datadir/20140205_Ash_correlations/output2/probesetfreezes_filter.txt"
-outputdir           = "/home/leiyan/gn2/wqflask/maintenance/dataset/datadir/20140205_Ash_correlations/output2"
-generate_probesets(probesetfreezesfile, outputdir)
diff --git a/wqflask/maintenance/dataset/utilities.py b/wqflask/maintenance/dataset/utilities.py
deleted file mode 100644
index 787c9481..00000000
--- a/wqflask/maintenance/dataset/utilities.py
+++ /dev/null
@@ -1,89 +0,0 @@
-import MySQLdb
-import re
-import ConfigParser
-
-def get_cursor():
-    host = 'localhost'
-    user = 'gn2'
-    passwd = 'UhHJuiS6gC8hj4a'
-    db = 'db_webqtl'
-    con = MySQLdb.Connect(db=db, host=host, user=user, passwd=passwd)
-    cursor = con.cursor()
-    return cursor, con
-
-def clearspaces(s, default=None):
-    if s:
-        s = re.sub('\s+', ' ', s)
-        s = s.strip()
-        return s
-    else:
-        return default
-        
-def to_dic(keys, values):
-    dic = {}
-    for i in range(len(keys)):
-        key = keys[i]
-        value = values[i]
-        dic[key] = value
-    return dic
-
-def overlap(dic1, dic2):
-    keys = []
-    values1 = []
-    values2 = []
-    for key in dic1.keys():
-        if key in dic2:
-            value1 = dic1[key]
-            value2 = dic2[key]
-            if value1 and value2:
-                keys.append(key)
-                values1.append(value1)
-                values2.append(value2)
-    return keys, values1, values2
-
-def to_db_string(s, default):
-    if s:
-        s = s.strip()
-        if len(s) == 0:
-            return default
-        elif s == 'x':
-            return default
-        else:
-            return s
-    else:
-        return default
-
-def to_db_float(s, default):
-    if s:
-        s = s.strip()
-        if len(s) == 0:
-            return default
-        elif s == 'x':
-            return default
-        else:
-            try:
-                return float(s)
-            except:
-                return default
-    else:
-        return default
-        
-def to_db_int(s, default):
-    if s:
-        s = s.strip()
-        if len(s) == 0:
-            return default
-        elif s == 'x':
-            return default
-        else:
-            try:
-                return int(s)
-            except:
-                return default
-    else:
-        return default
-
-def get_config(configfile):
-    config = ConfigParser.ConfigParser()
-    config.read(configfile)
-    return config
diff --git a/wqflask/maintenance/quick_search_table.py b/wqflask/maintenance/quick_search_table.py
deleted file mode 100755
index f0075df0..00000000
--- a/wqflask/maintenance/quick_search_table.py
+++ /dev/null
@@ -1,509 +0,0 @@
-"""Creates a table used for the quick search feature.
-
-One column contains the terms to match the user's search against. Another contains the result
-fields in json format
-
-Results will be returned for each of several trait types: mRNA assays, phenotypes, genotypes, and
-(maybe later) genes
-
-For each trait type, the results for each species should be given This table will then list
-each trait, its dataset, and several columns determined by its trait type (phenotype, genotype, etc)
-
-"""
-
-from __future__ import absolute_import, division, print_function
-
-	# We do this here so we can use zach_settings
-# Not to avoid other absoulte_imports
-import sys
-sys.path.append("../../..")
-
-import simplejson as json
-
-import sqlalchemy as sa
-from sqlalchemy.orm import scoped_session, sessionmaker
-from sqlalchemy.ext.declarative import declarative_base
-
-#from pprint import pformat as pf
-
-import zach_settings as settings
-
-Engine = sa.create_engine(settings.SQLALCHEMY_DATABASE_URI,
-                       #encoding='utf-8',
-                       #client_encoding='utf-8',
-                       #echo="debug",w
-                       )
-
-Session = scoped_session(sessionmaker(bind=Engine)) #, extension=VersionedListener()))
-
-Base = declarative_base(bind=Engine)
-Metadata = sa.MetaData()
-Metadata.bind = Engine
-
-class PublishXRef(Base):
-    """Class that corresponds with the PublishXRef table in the database.
-    
-    The PublishXRef table links phenotype traits and their publications.
-    
-    This class is used to add phenotype traits to the quick search table.
-    
-    """
-    
-    __tablename__ = 'PublishXRef'
-
-    Id = sa.Column(sa.Integer, primary_key=True)
-    InbredSetId = sa.Column(sa.Integer, primary_key=True)
-    PhenotypeId = sa.Column(sa.Integer)
-    PublicationId = sa.Column(sa.Integer)
-    DataId = sa.Column(sa.Integer)
-    Locus = sa.Column(sa.Text)
-    LRS = sa.Column(sa.Float)
-    additive = sa.Column(sa.Float)
-    Sequence = sa.Column(sa.Integer)
-    comments = sa.Column(sa.Text)
-
-    @classmethod
-    def run(cls):
-        """Connects to database and inserts phenotype trait info into the Quicksearch table."""
-        conn = Engine.connect()
-        counter = 0
-        for pub_row in page_query(Session.query(cls)):   #all()
-            values = {}
-            values['table_name'] = cls.__tablename__
-            values['the_key'] = json.dumps([pub_row.Id, pub_row.InbredSetId])
-            values['terms'] = cls.get_unique_terms(pub_row.Id, pub_row.InbredSetId)
-            print("terms is:", values['terms'])
-            if values['terms']:
-                values['result_fields'] = cls.get_result_fields(pub_row.Id, pub_row.InbredSetId)
-                ins = QuickSearch.insert().values(**values)
-                conn.execute(ins)
-            counter += 1
-            print("Done:", counter)
-
-    @staticmethod
-    def get_unique_terms(publishxref_id, inbredset_id):
-        """Finds unique terms for each item in the PublishXRef table to match a query against"""
-        results = Session.query(
-                "pre_publication_description",
-                "post_publication_description",
-                "pre_publication_abbreviation",
-                "post_publication_abbreviation",
-                "publication_title"
-            ).from_statement(
-                "SELECT Phenotype.Pre_publication_description as pre_publication_description, "
-                "Phenotype.Post_publication_description as post_publication_description, "
-                "Phenotype.Pre_publication_abbreviation as pre_publication_abbreviation, "
-                "Phenotype.Post_publication_abbreviation as post_publication_abbreviation, "
-                "Publication.Title as publication_title "
-                "FROM Phenotype, Publication, PublishXRef "
-                "WHERE PublishXRef.Id = :publishxref_id and "
-                "PublishXRef.InbredSetId = :inbredset_id and "
-                "PublishXRef.PhenotypeId = Phenotype.Id and "
-                "PublishXRef.PublicationId = Publication.Id ").params(publishxref_id=publishxref_id,
-                                                            inbredset_id=inbredset_id).all()
-
-        unique = set()
-        print("results: ", results)
-        if len(results):
-            for item in results[0]:
-                #print("locals:", locals())
-                if not item:
-                    continue
-                for token in item.split():
-                    if token.startswith(('(','[')):
-                        token = token[1:]
-                    if token.endswith((')', ']')):
-                        token = token[:-1]
-                    if token.endswith(';'):
-                        token = token[:-1]
-                    if len(token) > 2:
-                        try:
-                            # This hopefully ensures that the token is utf-8
-                            token = token.encode('utf-8')
-                            print(" ->", token)
-                        except UnicodeDecodeError:
-                            print("\n-- UDE \n")
-                            # Can't get it into utf-8, we won't use it
-                            continue 
-    
-                        unique.add(token)
-        #print("\nUnique terms are: {}\n".format(unique))
-        return " ".join(unique)            
-
-    @staticmethod
-    def get_result_fields(publishxref_id, inbredset_id):
-        """Gets the result fields (columns) that appear on the result page as a json string"""
-        results = Session.query(
-                "phenotype_id",
-                "species",
-                "group_name",
-                "description",
-                "lrs",
-                "publication_id",
-                "pubmed_id",
-                "year",
-                "authors"
-            ).from_statement(
-                "SELECT PublishXRef.PhenotypeId as phenotype_id, "
-                "Species.Name as species, "
-                "InbredSet.Name as group_name, "
-                "Phenotype.Original_description as description, "
-                "PublishXRef.LRS as lrs, "
-                "PublishXRef.PublicationId as publication_id, "
-                "Publication.PubMed_ID as pubmed_id, "
-                "Publication.Year as year, "
-                "Publication.Authors as authors "
-                "FROM PublishXRef, "
-                "Phenotype, "
-                "Publication, "
-                "InbredSet, "
-                "Species "
-                "WHERE PublishXRef.Id = :publishxref_id and "
-                "PublishXRef.InbredSetId = :inbredset_id and "
-                "PublishXRef.PhenotypeId = Phenotype.Id and "
-                "PublishXRef.PublicationId = Publication.Id and "
-                "InbredSet.Id = :inbredset_id and "
-                "Species.Id = InbredSet.SpeciesId ").params(publishxref_id=publishxref_id,
-                                                            inbredset_id=inbredset_id).all()
-
-        assert len(set(result for result in results)) == 1, "Different results or no results"
-
-        result = results[0]
-        result = row2dict(result)
-        try:
-            json_results = json.dumps(result, sort_keys=True)
-        except UnicodeDecodeError:
-            print("\n\nTrying to massage unicode\n\n")
-            for key, value in result.iteritems():
-                print("\tkey is:", key)
-                print("\tvalue is:", value)
-                if isinstance(value, basestring):
-                    result[key] = value.decode('utf-8', errors='ignore')
-            json_results = json.dumps(result, sort_keys=True)
-
-        return json_results
-
-
-class GenoXRef(Base):
-    """Class that corresponds with the GenoXRef table in the database.
-    
-    The GenoXRef table links genotype traits and their data.
-    
-    This class is used to add genotype traits to the quick search table.
-    
-    """
-    
-    __tablename__ = 'GenoXRef'
-    
-    GenoFreezeId = sa.Column(sa.Integer, primary_key=True)
-    GenoId = sa.Column(sa.Integer, primary_key=True)
-    DataId = sa.Column(sa.Integer)
-    cM = sa.Column(sa.Float)
-    Used_for_mapping = sa.Column(sa.Text)
-
-    @classmethod
-    def run(cls):
-        """Connects to database and inserts genotype trait info into the Quicksearch table."""
-        conn = Engine.connect()
-        counter = 0
-        for item in page_query(Session.query(cls)):   #all()
-            values = {}
-            values['table_name'] = cls.__tablename__
-            values['the_key'] = json.dumps([item.GenoId, item.GenoFreezeId])
-            values['terms'] = cls.get_unique_terms(item.GenoId)
-            print("terms is:", values['terms'])
-            if values['terms']:
-                values['result_fields'] = cls.get_result_fields(item.GenoId, item.GenoFreezeId)
-                ins = QuickSearch.insert().values(**values)
-                conn.execute(ins)
-            counter += 1
-            print("Done:", counter)
-
-    @staticmethod
-    def get_unique_terms(geno_id):
-        """Finds unique terms for each item in the GenoXRef table to match a query against"""
-        print("geno_id: ", geno_id)
-        results = Session.query(
-                "name",
-                "marker_name"
-            ).from_statement(
-                "SELECT Geno.Name as name, "
-                "Geno.Marker_Name as marker_name "
-                "FROM Geno "
-                "WHERE Geno.Id = :geno_id ").params(geno_id=geno_id).all()
-        
-        unique = set()
-        if len(results):
-            for item in results[0]:
-                #print("locals:", locals())
-                if not item:
-                    continue
-                for token in item.split():
-                    if len(token) > 2:
-                        try:
-                            # This hopefully ensures that the token is utf-8
-                            token = token.encode('utf-8')
-                            print(" ->", token)
-                        except UnicodeDecodeError:
-                            print("\n-- UDE \n")
-                            # Can't get it into utf-8, we won't use it
-                            continue 
-                        
-                        unique.add(token)
-        return " ".join(unique)
-
-
-    @staticmethod
-    def get_result_fields(geno_id, dataset_id):
-        """Gets the result fields (columns) that appear on the result page as a json string"""
-        results = Session.query(
-                "name",
-                "marker_name",
-                "group_name",
-                "species",
-                "dataset",
-                "dataset_name",
-                "chr", "mb",
-                "source"
-            ).from_statement(
-                "SELECT Geno.Name as name, "
-                "Geno.Marker_Name as marker_name, "
-                "InbredSet.Name as group_name, "
-                "Species.Name as species, "
-                "GenoFreeze.Name as dataset, "
-                "GenoFreeze.FullName as dataset_name, "
-                "Geno.Chr as chr, "
-                "Geno.Mb as mb, "
-                "Geno.Source as source "
-                "FROM Geno, "
-                "GenoXRef, "
-                "GenoFreeze, "
-                "InbredSet, "
-                "Species "
-                "WHERE Geno.Id = :geno_id and "
-                "GenoXRef.GenoId = Geno.Id and "
-                "GenoFreeze.Id = :dataset_id and "
-                "GenoXRef.GenoFreezeId = GenoFreeze.Id and "
-                "InbredSet.Id = GenoFreeze.InbredSetId and "
-                "InbredSet.SpeciesId = Species.Id ").params(geno_id=geno_id,
-                                                                    dataset_id=dataset_id).all()
-        assert len(set(result for result in results)) == 1, "Different results"
-        
-        result = results[0]
-        result = row2dict(result)
-        try:
-            json_results = json.dumps(result, sort_keys=True)
-        except UnicodeDecodeError:
-            print("\n\nTrying to massage unicode\n\n")
-            for key, value in result.iteritems():
-                print("\tkey is:", key)
-                print("\tvalue is:", value)
-                if isinstance(value, basestring):
-                    result[key] = value.decode('utf-8', errors='ignore')
-            json_results = json.dumps(result, sort_keys=True)
-
-        return json_results    
-
-class ProbeSetXRef(Base):
-    """Class that corresponds with the ProbeSetXRef table in the database.
-    
-    The ProbeSetXRef table links mRNA expression traits and their sample data.
-    
-    This class is used to add mRNA expression traits to the quick search table.
-    
-    """
-    
-    __tablename__ = 'ProbeSetXRef'
-    
-    ProbeSetFreezeId = sa.Column(sa.Integer, primary_key=True)
-    ProbeSetId = sa.Column(sa.Integer, primary_key=True)
-    DataId = sa.Column(sa.Integer, unique=True)
-    Locus_old = sa.Column(sa.Text)
-    LRS_old = sa.Column(sa.Float)
-    pValue_old = sa.Column(sa.Float)
-    mean = sa.Column(sa.Float)
-    se = sa.Column(sa.Float)
-    Locus = sa.Column(sa.Text)
-    LRS = sa.Column(sa.Float)
-    pValue = sa.Column(sa.Float)
-    additive = sa.Column(sa.Float)
-    h2 = sa.Column(sa.Float)
-
-    @classmethod
-    def run(cls):
-        """Connects to db and inserts mRNA expression trait info into the Quicksearch table."""
-        conn = Engine.connect()
-        counter = 0
-        for ps_row in page_query(Session.query(cls)):   #all()
-            values = {}
-            values['table_name'] = cls.__tablename__
-            values['the_key'] = json.dumps([ps_row.ProbeSetId, ps_row.ProbeSetFreezeId])
-            values['terms'] = cls.get_unique_terms(ps_row.ProbeSetId)
-            print("terms is:", values['terms'])
-            values['result_fields'] = cls.get_result_fields(ps_row.ProbeSetId,
-                                                            ps_row.ProbeSetFreezeId)
-            if values['result_fields'] == None:
-                continue
-            ins = QuickSearch.insert().values(**values)
-            conn.execute(ins)
-            counter += 1
-            print("Done:", counter)
-    
-    @staticmethod
-    def get_unique_terms(probeset_id):
-        """Finds unique terms for each item in the ProbeSetXRef table to match a query against"""
-        results = Session.query(
-                "name",
-                "symbol",
-                "description",
-                "alias"
-            ).from_statement(
-                "SELECT ProbeSet.Name as name, "
-                "ProbeSet.Symbol as symbol, "
-                "ProbeSet.description as description, "
-                "ProbeSet.alias as alias "
-                "FROM ProbeSet "
-                "WHERE ProbeSet.Id = :probeset_id ").params(probeset_id=probeset_id).all()
-
-        unique = set()
-        if len(results):
-            for item in results[0]:
-                if not item:
-                    continue
-                for token in item.split():
-                    if token.startswith(('(','[')):
-                        token = token[1:]
-                    if token.endswith((')', ']')):
-                        token = token[:-1]
-                    if token.endswith(';'):
-                        token = token[:-1]
-                    if len(token) > 2:
-                        try:
-                            # This hopefully ensures that the token is utf-8
-                            token = token.encode('utf-8')
-                            print(" ->", token)
-                        except UnicodeDecodeError:
-                            print("\n-- UDE \n")
-                            # Can't get it into utf-8, we won't use it
-                            continue 
-                        
-                        unique.add(token)
-            return " ".join(unique)
-
-
-    @staticmethod
-    def get_result_fields(probeset_id, dataset_id):
-        """Gets the result fields (columns) that appear on the result page as a json string"""
-        print("probeset_id: ", probeset_id)
-        print("dataset_id: ", dataset_id)
-        results = Session.query(
-                "name",
-                "species",
-                "group_name",
-                "dataset",
-                "dataset_name",
-                "symbol",
-                "description",
-                "chr", "mb",
-                "lrs", "mean",
-                "genbank_id",
-                "gene_id",
-                "chip_id",
-                "chip_name"
-            ).from_statement(
-                "SELECT ProbeSet.Name as name, "
-                "Species.Name as species, "
-                "InbredSet.Name as group_name, "
-                "ProbeSetFreeze.Name as dataset, "
-                "ProbeSetFreeze.FullName as dataset_name, "
-                "ProbeSet.Symbol as symbol, "
-                "ProbeSet.description as description, "
-                "ProbeSet.Chr as chr, "
-                "ProbeSet.Mb as mb, "
-                "ProbeSetXRef.LRS as lrs, "
-                "ProbeSetXRef.mean as mean, "
-                "ProbeSet.GenbankId as genbank_id, "
-                "ProbeSet.GeneId as gene_id, "
-                "ProbeSet.ChipId as chip_id, "
-                "GeneChip.Name as chip_name "
-                "FROM ProbeSet, "
-                "ProbeSetXRef, "
-                "ProbeSetFreeze, "
-                "ProbeFreeze, "
-                "InbredSet, "
-                "Species, "
-                "GeneChip "
-                "WHERE ProbeSetXRef.ProbeSetId = :probeset_id and "
-                "ProbeSetXRef.ProbeSetFreezeId = :dataset_id and "
-                "ProbeSetXRef.ProbeSetId = ProbeSet.Id and "
-                "ProbeSet.ChipId = GeneChip.Id and "
-                "ProbeSetXRef.ProbeSetFreezeId = ProbeSetFreeze.Id and "
-                "ProbeSetFreeze.ProbeFreezeId = ProbeFreeze.Id and "
-                "ProbeFreeze.InbredSetId = InbredSet.Id and "
-                "InbredSet.SpeciesId = Species.Id ").params(probeset_id=probeset_id,
-                                                                    dataset_id=dataset_id).all()
-            
-        if len(set(result for result in results)) != 1:
-            return None
-
-        result = results[0]
-        result = row2dict(result)
-        try:
-            json_results = json.dumps(result, sort_keys=True)
-        except UnicodeDecodeError:
-            print("\n\nTrying to massage unicode\n\n")
-            for key, value in result.iteritems():
-                print("\tkey is:", key)
-                print("\tvalue is:", value)
-                if isinstance(value, basestring):
-                    result[key] = value.decode('utf-8', errors='ignore')
-            json_results = json.dumps(result, sort_keys=True)
-
-        return json_results    
-
-QuickSearch = sa.Table("QuickSearch", Metadata,
-        # table_name is the table that item is inserted from
-        sa.Column('table_name', sa.String(15),
-                  primary_key=True, nullable=False, autoincrement=False), 
-        sa.Column('the_key', sa.String(30),
-                  primary_key=True, nullable=False, autoincrement=False), # key in database table
-        sa.Column('terms', sa.Text), # terms to compare search string with
-        sa.Column('result_fields', sa.Text),  # json
-        mysql_engine = 'MyISAM',
-                    )
-
-QuickSearch.drop(Engine, checkfirst=True)
-Metadata.create_all(Engine)
-
-
-def row2dict(row):
-    """From http://stackoverflow.com/a/2848519/1175849"""
-    return dict(zip(row.keys(), row))
-
-
-def page_query(query):
-    """From http://stackoverflow.com/a/1217947/1175849"""
-    offset = 0
-    while True:
-        rrr = False
-        for elem in query.limit(1000).offset(offset):
-            rrr = True
-            yield elem
-        offset += 1000
-        if not rrr:
-            break
-
-
-def main():
-    """Populate the QuickSearch table that is used with the quick search features.
-    
-    Add all items from the ProbeSetXRef, GenoXRef, and PublishXRef tables to the QuickSearch tables.
-    
-    """
-
-    GenoXRef.run()
-    PublishXRef.run()
-    ProbeSetXRef.run()
-
-if __name__ == "__main__":
-    main()
diff --git a/wqflask/other_config/nginx_conf/gn2_zach.conf b/wqflask/other_config/nginx_conf/gn2_zach.conf
index 23f3995f..1614bcb4 100755
--- a/wqflask/other_config/nginx_conf/gn2_zach.conf
+++ b/wqflask/other_config/nginx_conf/gn2_zach.conf
@@ -33,6 +33,11 @@ server {
 		autoindex on;
 	}
 
+	location /download/ {
+		root /home/zas1024/gene/wqflask/wqflask/;
+		autoindex on;
+	}
+
     location / {
             proxy_pass         http://127.0.0.1:5002/;
             proxy_redirect     off;
diff --git a/wqflask/wqflask/correlation/corr_scatter_plot.py b/wqflask/wqflask/correlation/corr_scatter_plot.py
index eef1cdc0..702ff723 100755
--- a/wqflask/wqflask/correlation/corr_scatter_plot.py
+++ b/wqflask/wqflask/correlation/corr_scatter_plot.py
@@ -7,6 +7,7 @@ from scipy import stats
 import numpy as np
 
 class CorrScatterPlot(object):
+    """Page that displays a correlation scatterplot with a line fitted to it"""
 
     def __init__(self, params):
         self.data_set_1 = data_set.create_dataset(params['dataset_1'])
diff --git a/wqflask/wqflask/correlation/correlation_plot.py b/wqflask/wqflask/correlation/correlation_plot.py
deleted file mode 100755
index c2b64d70..00000000
--- a/wqflask/wqflask/correlation/correlation_plot.py
+++ /dev/null
@@ -1,53 +0,0 @@
-#!/usr/bin/python
-
-from __future__ import print_function, division
-
-from base.trait import GeneralTrait
-from base import data_set
-from wqflask.show_trait.SampleList import SampleList
-
-class CorrelationPlot(object):
-    """Page that displays a correlation scatterplot with a line fitted to it"""
-
-    def __init__(self, start_vars):
-        self.dataset1 = data_set.create_dataset(start_vars['dataset1'])
-        self.trait1 = GeneralTrait(dataset=self.dataset1.name,
-                                   name=start_vars['trait1'])        
-
-        self.dataset2 = data_set.create_dataset(start_vars['dataset2'])
-        self.trait2 = GeneralTrait(dataset=self.dataset2.name,
-                                   name=start_vars['trait2'])
-
-        sample_names_1 = self.get_sample_names(self.dataset1)
-        sample_names_2 = self.get_sample_names(self.dataset2)
-        
-        self.samples_1 = self.get_samples(self.dataset1, sample_names_1, self.trait1)
-        self.samples_2 = self.get_samples(self.dataset2, sample_names_2, self.trait2)
-
-        coords = {}
-        for sample in self.samples_1:
-            coords[sample.name] = (sample.val)
-
-
-    def get_sample_names(self, dataset):
-        if dataset.group.parlist:
-            sample_names = (dataset.group.parlist +
-                                   dataset.group.f1list +
-                                   dataset.group.samplelist)
-        elif dataset.group.f1list:
-            sample_names = dataset.group.f1list + dataset.group.samplelist
-        else:
-            sample_names = dataset.group.samplelist
-
-        return sample_names
-
-
-    def get_samples(self, dataset, sample_names, trait):
-        samples = SampleList(dataset = dataset,
-                            sample_names=sample_names,
-                            this_trait=trait,
-                            sample_group_type='primary',
-                            header="%s Only" % (dataset.group.name))
-
-        return samples
-        
\ No newline at end of file
diff --git a/wqflask/wqflask/heatmap/heatmap.py b/wqflask/wqflask/heatmap/heatmap.py
index 035736fd..40f518f0 100644
--- a/wqflask/wqflask/heatmap/heatmap.py
+++ b/wqflask/wqflask/heatmap/heatmap.py
@@ -28,7 +28,6 @@ from base import data_set
 from base import species
 from base import webqtlConfig
 from utility import webqtlUtil
-from wqflask.my_pylmm.data import prep_data
 # from wqflask.my_pylmm.pyLMM import lmm
 # from wqflask.my_pylmm.pyLMM import input
 from utility import helper_functions
diff --git a/wqflask/wqflask/interval_mapping/__init__.py b/wqflask/wqflask/interval_mapping/__init__.py
deleted file mode 100755
index e69de29b..00000000
--- a/wqflask/wqflask/interval_mapping/__init__.py
+++ /dev/null
diff --git a/wqflask/wqflask/interval_mapping/interval_mapping.py b/wqflask/wqflask/interval_mapping/interval_mapping.py
deleted file mode 100755
index e8ac99d7..00000000
--- a/wqflask/wqflask/interval_mapping/interval_mapping.py
+++ /dev/null
@@ -1,183 +0,0 @@
-from __future__ import absolute_import, print_function, division
-
-from base.trait import GeneralTrait
-from base import data_set  #import create_dataset
-
-from pprint import pformat as pf
-
-import string
-import sys
-import os
-import collections
-
-import numpy as np
-from scipy import linalg
-import rpy2.robjects
-
-import simplejson as json
-
-#from redis import Redis
-
-
-from base.trait import GeneralTrait
-from base import data_set
-from base import species
-from base import webqtlConfig
-from utility import webqtlUtil
-from utility import helper_functions
-from utility import Plot, Bunch
-from utility import temp_data
-
-from utility.benchmark import Bench
-
-
-class IntervalMapping(object):
-
-    def __init__(self, start_vars, temp_uuid):
-
-        #Currently only getting trait data for one trait, but will need
-        #to change this to accept multiple traits once the collection page is implemented
-        helper_functions.get_species_dataset_trait(self, start_vars)
-
-        tempdata = temp_data.TempData(temp_uuid)
-        
-        self.samples = [] # Want only ones with values
-        self.vals = []
-
-        for sample in self.dataset.group.samplelist:
-            value = start_vars['value:' + sample]
-            self.samples.append(str(sample))
-            self.vals.append(value)
- 
-        print("start_vars:", start_vars)
- 
-        self.set_options(start_vars)
- 
-        self.score_type = "LRS"
-        self.cutoff = 3
-
-        self.json_data = {}
-        self.json_data['lodnames'] = ['lod.hk']
-        self.gen_reaper_results()
-
-        #Get chromosome lengths for drawing the interval map plot
-        chromosome_mb_lengths = {}
-        self.json_data['chrnames'] = []
-        for key in self.species.chromosomes.chromosomes.keys():
-            self.json_data['chrnames'].append([self.species.chromosomes.chromosomes[key].name, self.species.chromosomes.chromosomes[key].mb_length])
-            
-            chromosome_mb_lengths[key] = self.species.chromosomes.chromosomes[key].mb_length
-        
-        print("JSON DATA:", self.json_data)
-        
-        json_filename = webqtlUtil.genRandStr(prefix="intmap_")
-        json.dumps(self.json_data, webqtlConfig.TMPDIR + json_filename)
-
-        self.js_data = dict(
-            result_score_type = self.score_type,
-            manhattan_plot = self.manhattan_plot,
-            chromosomes = chromosome_mb_lengths,
-            qtl_results = self.qtl_results,
-            json_data = self.json_data
-        )
-
-    def set_options(self, start_vars):
-        """Sets various options (physical/genetic mapping, # permutations, which chromosome"""
-        
-        if start_vars['num_perm'] == "":
-            self.num_permutations = 0
-        else:
-            self.num_permutations = int(start_vars['num_perm'])
-        if start_vars['manhattan_plot'] == "true":
-            self.manhattan_plot = True
-        else:
-            self.manhattan_plot = False
-        #ZS: Commenting this out until we can fix the issue with positive/negative additive effects being colored properly
-        #if start_vars['display_additive'] == "yes":
-        #    self.additive = True
-        #else:
-        self.additive = False
-        if 'control_locus' in start_vars:
-            self.control_locus = start_vars['control_locus']
-        else:
-            self.control_locus = None
-
-
-    def gen_reaper_results(self):
-        genotype = self.dataset.group.read_genotype_file()
-
-        samples, values, variances = self.this_trait.export_informative()
-
-        trimmed_samples = []
-        trimmed_values = []
-        for i in range(0, len(samples)):
-            if samples[i] in self.dataset.group.samplelist:
-                trimmed_samples.append(samples[i])
-                trimmed_values.append(values[i])
-                
-        self.lrs_array = genotype.permutation(strains = trimmed_samples,
-                                                   trait = trimmed_values, 
-                                                   nperm= self.num_permutations)
-        
-        self.suggestive = self.lrs_array[int(self.num_permutations*0.37-1)]
-        self.significant = self.lrs_array[int(self.num_permutations*0.95-1)]
-        self.json_data['suggestive'] = self.suggestive
-        self.json_data['significant'] = self.significant
-
-        print("samples:", trimmed_samples)
-
-        if self.control_locus:
-            reaper_results = genotype.regression(strains = trimmed_samples,
-                                                          trait = trimmed_values,
-                                                          control = self.control_locus)
-        else:
-            reaper_results = genotype.regression(strains = trimmed_samples,
-                                                          trait = trimmed_values)
-
-        self.json_data['chr'] = []
-        self.json_data['pos'] = []
-        self.json_data['lod.hk'] = []
-        self.json_data['markernames'] = []
-        if self.additive:
-            self.json_data['additive'] = []
-
-        #Need to convert the QTL objects that qtl reaper returns into a json serializable dictionary
-        self.qtl_results = []
-        for qtl in reaper_results:
-            reaper_locus = qtl.locus
-            self.json_data['chr'].append(reaper_locus.chr)
-            self.json_data['pos'].append(reaper_locus.Mb)
-            self.json_data['lod.hk'].append(qtl.lrs)
-            self.json_data['markernames'].append(reaper_locus.name)
-            if self.additive:
-                self.json_data['additive'].append(qtl.additive)
-            locus = {"name":reaper_locus.name, "chr":reaper_locus.chr, "cM":reaper_locus.cM, "Mb":reaper_locus.Mb}
-            qtl = {"lrs_value": qtl.lrs, "chr":reaper_locus.chr, "Mb":reaper_locus.Mb,
-                   "cM":reaper_locus.cM, "name":reaper_locus.name, "additive":qtl.additive, "dominance":qtl.dominance}
-            self.qtl_results.append(qtl)
-
-
-    def identify_empty_samples(self):
-        no_val_samples = []
-        for sample_count, val in enumerate(self.vals):
-            if val == "x":
-                no_val_samples.append(sample_count)
-        return no_val_samples
-        
-        
-    def trim_genotypes(self, genotype_data, no_value_samples):
-        trimmed_genotype_data = []
-        for marker in genotype_data:
-            new_genotypes = []
-            for item_count, genotype in enumerate(marker):
-                if item_count in no_value_samples:
-                    continue
-                try:
-                    genotype = float(genotype)
-                except ValueError:
-                    genotype = np.nan
-                    pass
-                new_genotypes.append(genotype)
-            trimmed_genotype_data.append(new_genotypes)
-        return trimmed_genotype_data
-
diff --git a/wqflask/wqflask/my_pylmm/README.md b/wqflask/wqflask/my_pylmm/README.md
deleted file mode 100644
index b844c845..00000000
--- a/wqflask/wqflask/my_pylmm/README.md
+++ /dev/null
@@ -1,37 +0,0 @@
-# Genenetwork2/pylmm RELEASE NOTES 
-
-## 0.51-gn2 (April 19, 2015)
-
-- Improved GN2 integration
-- Less matrix transposes
-- Able to run pylmm standalone without Redis again (still requires
-  the modules)
-
-## 0.50-gn2 (April 2nd, 2015)
-
-- Replaced the GN2 genotype normalization
-
-## 0.50-gn2-pre2 (March 18, 2015)
-
-- Added abstractions for progress meter and info/debug statements;
-  Redis perc_complete is now updated through a lambda
-
-## 0.50-gn2-pre1 (release, March 17, 2015)
-
-- This is the first test release of multi-core pylmm into GN2. Both
-  kinship calculation and GWAS have been made multi-threaded by
-  introducing the Python multiprocessing module. Note that only
-  run_other has been updated to use the new routines (so human is
-  still handled the old way). I have taken care that we can still run
-  both old-style and new-style LMM (through passing the 'new_code'
-  boolean). This could be an option in the web server for users to
-  select and test for any unexpected differences (of which there
-  should be none, naturally ;).
-
-- The current version can handle missing phenotypes, but as they are
-  removed there is no way for GN2 to know what SNPs the P-values
-  belong to. A future version will pass a SNP index to allow for
-  missing phenotypes.
-
-
-  
\ No newline at end of file
diff --git a/wqflask/wqflask/my_pylmm/__init__.py b/wqflask/wqflask/my_pylmm/__init__.py
deleted file mode 100755
index e69de29b..00000000
--- a/wqflask/wqflask/my_pylmm/__init__.py
+++ /dev/null
diff --git a/wqflask/wqflask/my_pylmm/data/__init__.py b/wqflask/wqflask/my_pylmm/data/__init__.py
deleted file mode 100755
index e69de29b..00000000
--- a/wqflask/wqflask/my_pylmm/data/__init__.py
+++ /dev/null
diff --git a/wqflask/wqflask/my_pylmm/data/geno_to_ped.py b/wqflask/wqflask/my_pylmm/data/geno_to_ped.py
deleted file mode 100755
index 9091ad9a..00000000
--- a/wqflask/wqflask/my_pylmm/data/geno_to_ped.py
+++ /dev/null
@@ -1,22 +0,0 @@
-from __future__ import absolute_import, division, print_function
-
-import csv
-
-class ConvertToPed(object):
-
-    def __init__(self, input_file, output_file):
-        self.input_file = input_file
-        self.output_file = output_file
-        
-    def convert(self):
-    
-        self.haplotype_notation = {
-        '@mat': "1",
-        '@pat': "0",
-        '@het': "0.5",
-        '@unk': "NA"
-        }
-        
-        with open(self.output_file, "w") as self.output_fh:
-            self.process_csv()
-        
\ No newline at end of file
diff --git a/wqflask/wqflask/my_pylmm/data/genofile_parser.py b/wqflask/wqflask/my_pylmm/data/genofile_parser.py
deleted file mode 100755
index 61a00136..00000000
--- a/wqflask/wqflask/my_pylmm/data/genofile_parser.py
+++ /dev/null
@@ -1,195 +0,0 @@
-#!/usr/bin/python
-
-"""
-Convert .geno files to json
-
-This file goes through all of the genofiles in the genofile directory (.geno)
-and converts them to json files that are used when running the marker regression
-code
-
-"""
-
-from __future__ import print_function, division, absolute_import
-import sys
-sys.path.append("..")
-import os
-import glob
-import traceback
-import gzip
-
-#import numpy as np
-#from pyLMM import lmm
-
-import simplejson as json
-
-from pprint import pformat as pf
-
-class EmptyConfigurations(Exception): pass
-
-        
-
-class Marker(object):
-    def __init__(self):
-        self.name = None
-        self.chr = None
-        self.cM = None
-        self.Mb = None
-        self.genotypes = []
-
-class ConvertGenoFile(object):
-
-    def __init__(self, input_file, output_file):
-        
-        self.input_file = input_file
-        self.output_file = output_file
-        
-        self.mb_exists = False
-        self.cm_exists = False
-        self.markers = []
-        
-        self.latest_row_pos = None
-        self.latest_col_pos = None
-        
-        self.latest_row_value = None
-        self.latest_col_value = None
-        
-    def convert(self):
-
-        self.haplotype_notation = {
-            '@mat': "1",
-            '@pat': "0",
-            '@het': "0.5",
-            '@unk': "NA"
-            }
-        
-        self.configurations = {}
-        #self.skipped_cols = 3
-        
-        #if self.input_file.endswith(".geno.gz"):
-        #    print("self.input_file: ", self.input_file)
-        #    self.input_fh = gzip.open(self.input_file)
-        #else:
-        self.input_fh = open(self.input_file)
-        
-        with open(self.output_file, "w") as self.output_fh:
-            #if self.file_type == "geno":
-            self.process_csv()
-            #elif self.file_type == "snps":
-            #    self.process_snps_file()
-
-
-    def process_csv(self):
-        for row_count, row in enumerate(self.process_rows()):
-            row_items = row.split("\t")
-
-            this_marker = Marker()
-            this_marker.name = row_items[1]
-            this_marker.chr = row_items[0]
-            if self.cm_exists and self.mb_exists:
-                this_marker.cM = row_items[2]
-                this_marker.Mb = row_items[3]
-                genotypes = row_items[4:]
-            elif self.cm_exists:
-                this_marker.cM = row_items[2]
-                genotypes = row_items[3:]
-            elif self.mb_exists:
-                this_marker.Mb = row_items[2]
-                genotypes = row_items[3:]
-            else:
-                genotypes = row_items[2:]
-            for item_count, genotype in enumerate(genotypes):
-                if genotype.upper() in self.configurations:
-                    this_marker.genotypes.append(self.configurations[genotype.upper()])
-                else:
-                    this_marker.genotypes.append("NA")
-                
-            #print("this_marker is:", pf(this_marker.__dict__))   
-            #if this_marker.chr == "14":
-            self.markers.append(this_marker.__dict__)
-
-        with open(self.output_file, 'w') as fh:
-            json.dump(self.markers, fh, indent="   ", sort_keys=True)
-                
-                # print('configurations:', str(configurations))
-                #self.latest_col_pos = item_count + self.skipped_cols
-                #self.latest_col_value = item
-                
-                #if item_count != 0:
-                #    self.output_fh.write(" ")
-                #self.output_fh.write(self.configurations[item.upper()])
-                    
-            #self.output_fh.write("\n")
-
-
-    def process_rows(self):
-        for self.latest_row_pos, row in enumerate(self.input_fh):
-            #if self.input_file.endswith(".geno.gz"):
-            #    print("row: ", row)
-            self.latest_row_value = row
-            # Take care of headers
-            if not row.strip():
-                continue
-            if row.startswith('#'):
-                continue
-            if row.startswith('Chr'):
-                if 'Mb' in row.split():
-                    self.mb_exists = True
-                if 'cM' in row.split():
-                    self.cm_exists = True
-                continue
-            if row.startswith('@'):
-                key, _separater, value = row.partition(':')
-                key = key.strip()
-                value = value.strip()
-                if key in self.haplotype_notation:
-                    self.configurations[value] = self.haplotype_notation[key]
-                continue
-            if not len(self.configurations):
-                raise EmptyConfigurations
-            yield row
-
-    @classmethod
-    def process_all(cls, old_directory, new_directory):
-        os.chdir(old_directory)
-        for input_file in glob.glob("*"):
-            if not input_file.endswith(('geno', '.geno.gz')):
-                continue
-            group_name = input_file.split('.')[0]
-            output_file = os.path.join(new_directory, group_name + ".json")
-            print("%s -> %s" % (
-                os.path.join(old_directory, input_file), output_file))
-            convertob = ConvertGenoFile(input_file, output_file)
-            try:
-                convertob.convert()
-            except EmptyConfigurations as why:
-                print("  No config info? Continuing...")
-                #excepted = True
-                continue
-            except Exception as why:
-
-                print("  Exception:", why)
-                print(traceback.print_exc())
-                print("    Found in row %s at tabular column %s" % (convertob.latest_row_pos,
-                                                                convertob.latest_col_pos))
-                print("    Column is:", convertob.latest_col_value)
-                print("    Row is:", convertob.latest_row_value)
-                break
-            
-    #def process_snps_file(cls, snps_file, new_directory):
-    #    output_file = os.path.join(new_directory, "mouse_families.json")
-    #    print("%s -> %s" % (snps_file, output_file))
-    #    convertob = ConvertGenoFile(input_file, output_file)
-        
-
-
-if __name__=="__main__":
-    Old_Geno_Directory = """/home/zas1024/gene/genotype_files/genotypes/"""
-    New_Geno_Directory = """/home/zas1024/gene/genotype_files/new_genotypes/"""
-    #Input_File = """/home/zas1024/gene/genotype_files/genotypes/BXD.geno"""
-    #Output_File = """/home/zas1024/gene/wqflask/wqflask/pylmm/data/bxd.snps"""
-    #convertob = ConvertGenoFile("/home/zas1024/gene/genotype_files/genotypes/SRxSHRSPF2.geno", "/home/zas1024/gene/genotype_files/new_genotypes/SRxSHRSPF2.json")
-    #convertob.convert()
-    ConvertGenoFile.process_all(Old_Geno_Directory, New_Geno_Directory)
-    #ConvertGenoFiles(Geno_Directory)
-    
-    #process_csv(Input_File, Output_File)
\ No newline at end of file
diff --git a/wqflask/wqflask/my_pylmm/data/load_genotypes_lei.py b/wqflask/wqflask/my_pylmm/data/load_genotypes_lei.py
deleted file mode 100755
index e3144733..00000000
--- a/wqflask/wqflask/my_pylmm/data/load_genotypes_lei.py
+++ /dev/null
@@ -1,181 +0,0 @@
-"""
-Do whatever else is needed with the Marker object
-Probably create Genofile object as well
-Make sure rest of code works with params object (though
-everything in the params object should probably just be the parameters of
-the Genofile object)
-
-Continue to rename variables in ways that make sense and to add underscores between words
-
-Look at genofile_parser.py that I (Zach) wrote a while back and how much of it can just be reused
-
-Get rid of/improve uninformative comments
-
-"""
-
-
-from __future__ import absolute_import, print_function, division
-
-import sys
-import re
-import argparse
-
-import utilities
-import datastructure
-
-def main():
-    parser = argparse.ArgumentParser(description='Load Genotypes')
-    parser.add_argument('-c', '--config')
-    opts = parser.parse_args()
-    config = opts.config
-    # config
-    config = utilities.get_config(config)
-    print("config:")
-    for item in config.items('config'):
-        print("\t", str(item))
-    parse_genofile(fetch_parameters(config))
-
-def fetch_parameters(config):
-    # variables
-    params = {}
-    params['inbredsetid'] = config.get('config', 'inbredsetid')
-    species = datastructure.get_species(params['inbredsetid'])
-    params["speciesid"] = species[0]
-    genofreeze = datastructure.get_genofreeze_byinbredsetid(params['inbredsetid'])
-    params['genofreezeid'] = genofreeze[0]
-    params['dataid'] = datastructure.get_nextdataid_genotype()
-    params['genofile'] = config.get('config', 'genofile')
-    
-    return params
-    
-def parse_genofile(params):
-    # genofile
-    with open(params['genofile']) as genofile:
-        meta_data = {}
-        print()
-        # parse genofile
-        for line in genofile:
-            line = line.strip()
-            if not line:
-                pass
-            elif line.startswith('#'):
-                pass
-            elif line.startswith('@'):
-                line = line.strip('@')
-                for item in line.split(';'):
-                    kv = re.split(':|=', item)
-                    meta_data[kv[0].strip()] = kv[1].strip()
-            
-            elif line.lower().startswith("chr"):
-                print("geno file meta:")
-                for key, value in meta_data.iteritems():
-                    print("\t{}: {}".format(key, value))
-                print("geno file head:\n\t{}\n".format(line))
-                strain_names = line.split()[4:]
-                strains = datastructure.get_strains_bynames(inbredsetid=inbredsetid,
-                                                            strain_names=strain_names,
-                                                            updatestrainxref="yes")
-               
-            else:
-                # geno file line
-                marker = Marker(line)
-                #
-                geno_id = check_or_insert_geno(params, marker)
-    
-                if check_genoxref(params): #Check if this can go earlier
-                    continue
-                
-                insert_genodata(params)
-                insert_genoxref(params)
-                data_id += 1
-    
-    
-class Marker(object):
-    def __init__(self, line):
-        self.cells = line.split()
-        self.chromosome = cells[0]
-        self.locus = cells[1]
-        self.cm = cells[2]
-        self.mb = cells[3]
-        self.values = cells[4:]
-        
-def check_or_insert_geno(params, marker):
-    cursor, con = utilities.get_cursor()
-    sql = """
-        SELECT Geno.`Id`
-        FROM Geno
-        WHERE Geno.`SpeciesId`=%s
-        AND Geno.`Name` like %s
-        """
-    cursor.execute(sql, (speciesid, locus)) #This is correct
-    result = cursor.fetchone()
-    if result:
-        geno_id = result[0]
-        print("get geno record: ", geno_id)
-    else:
-        sql = """
-            INSERT INTO Geno
-            SET
-            Geno.`SpeciesId`=%s,
-            Geno.`Name`=%s,
-            Geno.`Marker_Name`=%s,
-            Geno.`Chr`=%s,
-            Geno.`Mb`=%s
-            """
-        cursor.execute(sql, (species_id, locus, locus, chr, mb))
-        row_count = cursor.rowcount
-        geno_id = con.insert_id()
-        print("INSERT INTO Geno: %d record: %d" % (row_count, geno_id))
-    return geno_id
-
-def check_GenoXRef():
-    sql = """
-        select GenoXRef.*
-        from GenoXRef
-        where GenoXRef.`GenoFreezeId`=%s
-        AND GenoXRef.`GenoId`=%s
-        """
-    cursor.execute(sql, (geno_freeze_id, geno_id))
-    row_count = cursor.rowcount
-    return row_count
-    
-def insert_genodata():
-    for index, strain in enumerate(strains):
-        strain_id = strain[0]
-        value = utilities.to_db_string(values[index], None)
-        if not value:
-            continue
-        value = config.get('config', "genovalue_" + value)
-        try:
-            number = int(value)
-        except ValueError:
-            continue
-        if number not in [-1, 0, 1]:
-            continue
-        sql = """
-            INSERT INTO GenoData
-            SET
-            GenoData.`Id`=%s,
-            GenoData.`StrainId`=%s,
-            GenoData.`value`=%s
-            """
-        cursor.execute(sql, (dataid, strainid, number))
-
-def insert_genoxref():
-    sql = """
-        INSERT INTO GenoXRef
-        SET
-        GenoXRef.`GenoFreezeId`=%s,
-        GenoXRef.`GenoId`=%s,
-        GenoXRef.`DataId`=%s,
-        GenoXRef.`cM`=%s,
-        GenoXRef.`Used_for_mapping`=%s
-        """
-    cursor.execute(sql, (genofreezeid, genoid, dataid, cm, 'N'))
-    rowcount = cursor.rowcount
-    print("INSERT INTO GenoXRef: %d record" % (rowcount))
-
-if __name__ == "__main__":
-    print("command line arguments:\n\t%s" % sys.argv)
-    main()
-    print("exit successfully")
diff --git a/wqflask/wqflask/my_pylmm/data/prep_data.py b/wqflask/wqflask/my_pylmm/data/prep_data.py
deleted file mode 100755
index ef42a297..00000000
--- a/wqflask/wqflask/my_pylmm/data/prep_data.py
+++ /dev/null
@@ -1,80 +0,0 @@
-#!/usr/bin/python
-
-from __future__ import absolute_import, print_function, division
-import os
-
-import numpy
-
-from base import webqtlConfig
-
-
-class PrepData(object):
-    def __init__(self, pheno_vector, group_name):
-        self.pheno_vector = pheno_vector
-        self.group_name = group_name
-        self.no_val_samples = set()
-        #self.identify_no_genotype_samples()
-        self.identify_empty_samples()
-        self.trim_files()
-
-    def identify_empty_samples(self):
-        for sample_count, val in enumerate(self.pheno_vector):
-            if val == "x":
-                self.no_val_samples.add(sample_count)
-        print("self.no_val_samples:", self.no_val_samples)
-        #nums = set(range(0, 176))
-        #print("not included:", nums-self.empty_columns)
-            
-    #def identify_no_genotype_samples(self):
-    #    #for this_file in (self.exprs_file, self.snps_file):
-    #        #with open(this_file) as fh:
-    #        no_geno_samples = []
-    #        has_genotypes = False
-    #        with open(self.snps_file) as fh:
-    #            for line in fh:
-    #                num_samples = len(line.split())
-    #                break
-    #            for sample in range (num_samples):
-    #                for line in fh:
-    #                    if line.split()[sample] != "NA":
-    #                        has_genotypes = True
-    #                        break
-    #                if has_genotypes == False:
-    #                    no_geno_samples.append(sample)
-    #                    
-    #        print(no_geno_samples)
-
-    def trim_files(self):
-        input_file = open(os.path.join(webqtlConfig.NEWGENODIR, self.group_name+'.snps'))
-        output_file = os.path.join(webqtlConfig.TMPDIR, self.group_name + '.snps.new')
-        with open(output_file, "w") as output_file:
-            for line in input_file:
-                data_to_write = []
-                for pos, item in enumerate(line.split()):
-                    if pos in self.no_val_samples:
-                        continue
-                    else:
-                        data_to_write.append("%s" % (item))
-                output_file.write(" ".join(data_to_write) + "\n")
-        
-        print("Done writing:", output_file)
-        
-        #for this_file in (self.exprs_file, self.genotype_file):
-        #    input_file = open(this_file)
-        #    this_file_name_output = this_file + ".new"
-        #    with open(this_file_name_output, "w") as output_file:
-        #        for line in input_file:
-        #            data_wanted = []
-        #            for pos, item in enumerate(line.split()):
-        #                if pos in self.empty_columns:
-        #                    continue
-        #                else:
-        #                    data_wanted.append("%2s" % (item))
-        #            #print("data_wanted is", data_wanted)
-        #            output_file.write(" ".join(data_wanted) + "\n")
-        #    print("Done writing file:", this_file_name_output)
-
-if __name__=="__main__":
-    exprs_file = """/home/zas1024/gene/wqflask/wqflask/pylmm/data/mdp.exprs.1"""
-    genotype_file = """/home/zas1024/gene/wqflask/wqflask/pylmm/data/mdp.snps.1000"""
-    PrepData(pheno_vector, genotype_file)
\ No newline at end of file
diff --git a/wqflask/wqflask/my_pylmm/scripts/example.py b/wqflask/wqflask/my_pylmm/scripts/example.py
deleted file mode 100755
index 8b30debd..00000000
--- a/wqflask/wqflask/my_pylmm/scripts/example.py
+++ /dev/null
@@ -1,58 +0,0 @@
-#!/usr/bin/python
-
-from __future__ import absolute_import, print_function, division
-
-import sys
-import time
-
-import numpy as np
-from pyLMM import lmm
-
-from pprint import pformat as pf
-
-
-Y = np.genfromtxt('data/mdp.exprs.1.new')
-print("exprs is:", pf(Y.shape))
-
-# Loading npdump and first 1000 snps for speed
-#K = np.load('data/hmdp.liver.K.npdump')
-#snps = np.load('data/hmdp.liver.snps.1000.npdump').T
-
-# These three lines will load all SNPs (from npdump or from txt) and 
-# calculate the kinship
-snps = np.genfromtxt('/home/zas1024/gene/web/new_genotypers/mdp.snps.1000.new').T
-print("snps is:", pf(snps.shape))
-#snps = snps[~np.isnan(snps).all(axis=1)]
-#print ("snps is now:", pf(snps))
-np.savetxt("/home/zas1024/gene/wqflask/wqflask/pylmm/data/mdp.snps.trimmed", snps, fmt='%s', delimiter=' ')
-#snps = np.load('data/hmdp.liver.snps.npdump').T
-K = lmm.calculateKinship(snps)
-#print("K is:", pf(K))
-#print("Y is:", pf(Y.shape))
-
-# Instantiate a LMM object for the phentoype Y and fit the null model
-L = lmm.LMM(Y,K)
-L.fit()
-
-# Manually calculate the association at one SNP
-X = snps[:,0]
-X[np.isnan(X)] = X[True - np.isnan(X)].mean() # Fill missing with MAF
-X = X.reshape(len(X),1)
-if X.var() == 0: ts,ps = (np.nan,np.nan)
-else: ts,ps = L.association(X)
-
-# If I want to refit the variance component
-L.fit(X=X)
-ts,ps = L.association(X)
-
-# If I want to do a genome-wide scan over the 1000 SNPs.
-# This call will use REML (REML = False means use ML).
-# It will also refit the variance components for each SNP.
-# Setting refit = False will cause the program to fit the model once
-# and hold those variance component estimates for each SNP.
-begin = time.time()
-TS,PS = lmm.GWAS(Y,snps,K,REML=True,refit=False)
-print("TS is:", pf(TS))
-print("PS is:", pf(PS))
-end = time.time()
-sys.stderr.write("Total time for 1000 SNPs: %0.3f\n" % (end- begin))
\ No newline at end of file
diff --git a/wqflask/wqflask/my_pylmm/scripts/pylmmGWAS.py b/wqflask/wqflask/my_pylmm/scripts/pylmmGWAS.py
deleted file mode 100755
index 74b58dd6..00000000
--- a/wqflask/wqflask/my_pylmm/scripts/pylmmGWAS.py
+++ /dev/null
@@ -1,346 +0,0 @@
-#!/usr/bin/python
-
-# pylmm is a python-based linear mixed-model solver with applications to GWAS
-
-# Copyright (C) 2013  Nicholas A. Furlotte (nick.furlotte@gmail.com)
-
-#The program is free for academic use. Please contact Nick Furlotte
-#<nick.furlotte@gmail.com> if you are interested in using the software for
-#commercial purposes.
-
-#The software must not be modified and distributed without prior
-#permission of the author.
-
-#THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-#"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-#LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-#A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR
-#CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
-#EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
-#PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
-#PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
-#LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-#NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-#SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-import pdb
-import time
-import sys
-
-def printOutHead(): out.write("\t".join(["SNP_ID","BETA","BETA_SD","F_STAT","P_VALUE"]) + "\n")
-
-def formatResult(id,beta,betaSD,ts,ps):
-   return "\t".join([str(x) for x in [id,beta,betaSD,ts,ps]]) + "\n"
-   
-def outputResult(id,beta,betaSD,ts,ps):
-   out.write(formatResult(id,beta,betaSD,ts,ps))
-
-from optparse import OptionParser,OptionGroup
-usage = """usage: %prog [options] --kfile kinshipFile --[tfile | bfile] plinkFileBase outfileBase
-
-This program provides basic genome-wide association (GWAS) functionality.  You provide a phenotype and genotype file as well as a pre-computed (use pylmmKinship.py) kinship matrix and the program outputs a result file with information about each SNP, including the association p-value.  
-The input file are all standard plink formatted with the first two columns specifiying the individual and family ID.  For the phenotype file, we accept either NA or -9 to denote missing values.  
-
-Basic usage:
-
-      python pylmmGWAS.py -v --bfile plinkFile --kfile preComputedKinship.kin --phenofile plinkFormattedPhenotypeFile resultFile
-
-	    """
-parser = OptionParser(usage=usage)
-
-basicGroup = OptionGroup(parser, "Basic Options")
-advancedGroup = OptionGroup(parser, "Advanced Options")
-experimentalGroup = OptionGroup(parser, "Experimental Options")
-
-#basicGroup.add_option("--pfile", dest="pfile",
-#                  help="The base for a PLINK ped file")
-basicGroup.add_option("--tfile", dest="tfile",
-                  help="The base for a PLINK tped file")
-basicGroup.add_option("--bfile", dest="bfile",
-                  help="The base for a PLINK binary bed file")
-basicGroup.add_option("--phenofile", dest="phenoFile", default=None,
-                  help="Without this argument the program will look for a file with .pheno that has the plinkFileBase root.  If you want to specify an alternative phenotype file, then use this argument.  This file should be in plink format. ")
-
-# EMMA Options
-basicGroup.add_option("--emmaSNP", dest="emmaFile", default=None,
-                  help="For backwards compatibility with emma, we allow for \"EMMA\" file formats.  This is just a text file with individuals on the columns and snps on the rows.")
-basicGroup.add_option("--emmaPHENO", dest="emmaPheno", default=None,
-                  help="For backwards compatibility with emma, we allow for \"EMMA\" file formats.  This is just a text file with each phenotype as one row.")
-basicGroup.add_option("--emmaCOV", dest="emmaCov", default=None,
-                  help="For backwards compatibility with emma, we allow for \"EMMA\" file formats.  This is just a text file with each covariate as one row.")
-
-basicGroup.add_option("--kfile", dest="kfile",
-                  help="The location of a kinship file.  This is an nxn plain text file and can be computed with the pylmmKinship program.")
-basicGroup.add_option("--covfile", dest="covfile",
-                  help="The location of a covariate file file.  This is a plink formatted covariate file.")
-basicGroup.add_option("-p", type="int", dest="pheno", help="The phenotype index to be used in association.", default=0)
-
-
-
-advancedGroup.add_option("--removeMissingGenotypes",
-                  action="store_false", dest="normalizeGenotype", default=True,
-                  help="By default the program replaces missing genotypes with the minor allele frequency.  This option overrides that behavior making the program remove missing individuals.  NOTE: This can increase running time due to the need to recompute the eigendecomposition for each SNP with missing values.")
-advancedGroup.add_option("--refit",
-                  action="store_true", dest="refit", default=False,
-                  help="Refit the variance components at each SNP (default is to lock in the variance components under the null).")
-
-advancedGroup.add_option("--REML",
-                  action="store_true", dest="REML", default=False,
-                  help="Use restricted maximum-likelihood (REML) (default is maximum-likelihood).")
-#advancedGroup.add_option("-e", "--efile", dest="saveEig", help="Save eigendecomposition to this file.")
-advancedGroup.add_option("--eigen", dest="eigenfile",
-                  help="The location of the precomputed eigendecomposition for the kinship file.  These can be computed with pylmmKinship.py.")
-advancedGroup.add_option("--noMean", dest="noMean", default=False,action="store_true",
-                  help="This option only applies when --cofile is used.  When covfile is provided, the program will automatically add a global mean covariate to the model unless this option is specified.")
-
-basicGroup.add_option("-t", "--nthreads", dest="numThreads", help="maximum number of threads to use")
-
-advancedGroup.add_option("-v", "--verbose",
-                  action="store_true", dest="verbose", default=False,
-                  help="Print extra info")
-
-# Experimental Group Options
-experimentalGroup.add_option("--kfile2", dest="kfile2", 
-                  help="The location of a second kinship file.  This file has the same format as the first kinship.  This might be used if you want to correct for another form of confounding.")
-
-parser.add_option_group(basicGroup)
-parser.add_option_group(advancedGroup)
-parser.add_option_group(experimentalGroup)
-
-(options, args) = parser.parse_args()
-
-import sys
-import os
-import numpy as np
-from scipy import linalg
-from pylmm.lmm import LMM
-from pylmm import input
-
-import multiprocessing as mp # Multiprocessing is part of the Python stdlib
-import Queue 
-
-if len(args) != 1:  
-   parser.print_help()
-   sys.exit()
-
-outFile = args[0]
-
-if not options.tfile and not options.bfile and not options.emmaFile: 
-#if not options.pfile and not options.tfile and not options.bfile: 
-   parser.error("You must provide at least one PLINK input file base (--tfile or --bfile) or an EMMA formatted file (--emmaSNP).")
-if not options.kfile:
-   parser.error("Please provide a pre-computed kinship file")
-
-numThreads = None
-if options.numThreads:
-   numThreads = int(options.numThreads)
-
-# READING PLINK input
-if options.verbose: sys.stderr.write("Reading SNP input...\n")
-if options.bfile: IN = input.plink(options.bfile,type='b', phenoFile=options.phenoFile,normGenotype=options.normalizeGenotype)
-elif options.tfile: IN = input.plink(options.tfile,type='t', phenoFile=options.phenoFile,normGenotype=options.normalizeGenotype)
-#elif options.pfile: IN = input.plink(options.pfile,type='p', phenoFile=options.phenoFile,normGenotype=options.normalizeGenotype)
-elif options.emmaFile: IN = input.plink(options.emmaFile,type='emma', phenoFile=options.phenoFile,normGenotype=options.normalizeGenotype)
-else: parser.error("You must provide at least one PLINK input file base")
-
-if not os.path.isfile(options.phenoFile or IN.fbase + '.phenos') and not os.path.isfile(options.emmaPheno):
-   parser.error("No .pheno file exist for %s.  Please provide a phenotype file using the --phenofile or --emmaPHENO argument." % (options.phenoFile or IN.fbase + '.phenos'))
-
-# Read the emma phenotype file if provided.
-# Format should be rows are phenotypes and columns are individuals.
-if options.emmaPheno:
-   f = open(options.emmaPheno,'r')
-   P = []
-   for line in f:
-      v = line.strip().split()
-      p = []
-      for x in v:
-	 try:
-	    p.append(float(x))
-	 except: p.append(np.nan)
-      P.append(p)
-   f.close()
-   IN.phenos = np.array(P).T
-
-# READING Covariate File
-if options.covfile: 
-   if options.verbose: 
-      sys.stderr.write("Reading covariate file...\n")
-   P = IN.getCovariates(options.covfile) 
-   if options.noMean: 
-      X0 = P
-   else: 
-      X0 = np.hstack([np.ones((IN.phenos.shape[0],1)),P])
-elif options.emmaCov:
-   if options.verbose: 
-      sys.stderr.write("Reading covariate file...\n")
-   P = IN.getCovariatesEMMA(options.emmaCov) 
-   if options.noMean: 
-      X0 = P
-   else: 
-      X0 = np.hstack([np.ones((IN.phenos.shape[0],1)),P])
-else: 
-   X0 = np.ones((IN.phenos.shape[0],1))
-
-if np.isnan(X0).sum(): 
-      parser.error("The covariate file %s contains missing values. At this time we are not dealing with this case.  Either remove those individuals with missing values or replace them in some way.")
-
-# READING Kinship - major bottleneck for large datasets
-if options.verbose: sys.stderr.write("Reading kinship...\n")
-begin = time.time()
-# This method seems to be the fastest and works if you already know the size of the matrix
-if options.kfile[-3:] == '.gz':
-   import gzip
-   f = gzip.open(options.kfile,'r')
-   F = f.read() # might exhaust mem if the file is huge
-   K = np.fromstring(F,sep=' ') # Assume that space separated
-   f.close()
-else: 
-   K = np.fromfile(open(options.kfile,'r'),sep=" ")
-K.resize((len(IN.indivs),len(IN.indivs)))
-end = time.time()
-# Other slower ways
-#K = np.loadtxt(options.kfile)
-#K = np.genfromtxt(options.kfile)
-if options.verbose: sys.stderr.write("Read the %d x %d kinship matrix in %0.3fs \n" % (K.shape[0],K.shape[1],end-begin))
-
-if options.kfile2:
-   if options.verbose: sys.stderr.write("Reading second kinship...\n")
-   begin = time.time()
-   # This method seems to be the fastest and works if you already know the size of the matrix
-   if options.kfile2[-3:] == '.gz':
-      import gzip
-      f = gzip.open(options.kfile2,'r')
-      F = f.read() # might exhaust mem if the file is huge
-      K2 = np.fromstring(F,sep=' ') # Assume that space separated
-      f.close()
-   else: K2 = np.fromfile(open(options.kfile2,'r'),sep=" ")
-   K2.resize((len(IN.indivs),len(IN.indivs)))
-   end = time.time()
-   if options.verbose: sys.stderr.write("Read the %d x %d second kinship matrix in %0.3fs \n" % (K2.shape[0],K2.shape[1],end-begin))
-
-# PROCESS the phenotype data -- Remove missing phenotype values
-# Keep will now index into the "full" data to select what we keep (either everything or a subset of non missing data
-Y = IN.phenos[:,options.pheno]
-v = np.isnan(Y)
-keep = True - v
-if v.sum():
-   if options.verbose: sys.stderr.write("Cleaning the phenotype vector by removing %d individuals...\n" % (v.sum()))
-   Y = Y[keep]
-   X0 = X0[keep,:]
-   K = K[keep,:][:,keep]
-   if options.kfile2: K2 = K2[keep,:][:,keep]
-   Kva = []
-   Kve = []
-
-# Only load the decomposition if we did not remove individuals.
-# Otherwise it would not be correct and we would have to compute it again.
-if not v.sum() and options.eigenfile:
-   if options.verbose: sys.stderr.write("Loading pre-computed eigendecomposition...\n")
-   Kva = np.load(options.eigenfile + ".Kva")
-   Kve = np.load(options.eigenfile + ".Kve")
-else: 
-   Kva = []
-   Kve = []
-
-# CREATE LMM object for association
-n = K.shape[0]
-if not options.kfile2:  L = LMM(Y,K,Kva,Kve,X0,verbose=options.verbose)
-else:  L = LMM_withK2(Y,K,Kva,Kve,X0,verbose=options.verbose,K2=K2)
-
-# Fit the null model -- if refit is true we will refit for each SNP, so no reason to run here
-if not options.refit: 
-   if options.verbose: sys.stderr.write("Computing fit for null model\n")
-   L.fit()
-   if options.verbose and not options.kfile2: sys.stderr.write("\t heritability=%0.3f, sigma=%0.3f\n" % (L.optH,L.optSigma))
-   if options.verbose and options.kfile2: sys.stderr.write("\t heritability=%0.3f, sigma=%0.3f, w=%0.3f\n" % (L.optH,L.optSigma,L.optW))
-
-def compute_snp(collect):
-   snp = collect[0]
-   id = collect[1]
-   # result = []
-   # Check SNPs for missing values
-   x = snp[keep].reshape((n,1))  # all the SNPs
-   v = np.isnan(x).reshape((-1,))
-   if v.sum():
-      keeps = True - v
-      xs = x[keeps,:]
-      if keeps.sum() <= 1 or xs.var() <= 1e-6: 
-         # PS.append(np.nan)
-         # TS.append(np.nan)
-         # result.append(formatResult(id,np.nan,np.nan,np.nan,np.nan))
-         # continue
-         return formatResult(id,np.nan,np.nan,np.nan,np.nan)
-
-      # Its ok to center the genotype -  I used options.normalizeGenotype to 
-      # force the removal of missing genotypes as opposed to replacing them with MAF.
-      if not options.normalizeGenotype:
-         xs = (xs - xs.mean()) / np.sqrt(xs.var())
-      Ys = Y[keeps]
-      X0s = X0[keeps,:]
-      Ks = K[keeps,:][:,keeps]
-      if options.kfile2:
-         K2s = K2[keeps,:][:,keeps]
-         Ls = LMM_withK2(Ys,Ks,X0=X0s,verbose=options.verbose,K2=K2s)
-      else:
-         Ls = LMM(Ys,Ks,X0=X0s,verbose=options.verbose)
-      if options.refit:
-        Ls.fit(X=xs,REML=options.REML)
-      else:
-         #try:
-         Ls.fit(REML=options.REML)
-         #except: pdb.set_trace()
-      ts,ps,beta,betaVar = Ls.association(xs,REML=options.REML,returnBeta=True)
-   else:
-      if x.var() == 0: 
-         # PS.append(np.nan)
-         # TS.append(np.nan)
-         # result.append(formatResult(id,np.nan,np.nan,np.nan,np.nan)) # writes nan values
-         return formatResult(id,np.nan,np.nan,np.nan,np.nan)
-         # continue
-
-      if options.refit:
-         L.fit(X=x,REML=options.REML)
-      # This is where it happens
-      ts,ps,beta,betaVar = L.association(x,REML=options.REML,returnBeta=True)
-   
-   return formatResult(id,beta,np.sqrt(betaVar).sum(),ts,ps)
-   # PS.append(ps)
-   # TS.append(ts)
-   # return len(result)
-   # compute.q.put(result)
-   # return None
-
-def f_init(q):
-   compute_snp.q = q
-
-# Set up the pool
-# mp.set_start_method('spawn')
-q = mp.Queue()
-p = mp.Pool(numThreads, f_init, [q])
-collect = []
-   
-# Buffers for pvalues and t-stats
-# PS = []
-# TS = []
-count = 0
-out = open(outFile,'w')
-printOutHead()
-
-for snp_id in IN:
-   count += 1
-   if count % 1000 == 0:
-      if options.verbose:
-         sys.stderr.write("At SNP %d\n" % count)
-      # if count>8000 :
-      #    break         # for testing only
-   if count % 100 == 0:
-      for line in p.imap(compute_snp,collect):
-         out.write(line)
-      collect = []
-      
-   collect.append(snp_id)
-for line in p.imap(compute_snp,collect):
-   out.write(line)
-
-
diff --git a/wqflask/wqflask/my_pylmm/scripts/pylmmKinship.py b/wqflask/wqflask/my_pylmm/scripts/pylmmKinship.py
deleted file mode 100755
index c9a73ece..00000000
--- a/wqflask/wqflask/my_pylmm/scripts/pylmmKinship.py
+++ /dev/null
@@ -1,186 +0,0 @@
-#!/usr/bin/python
-
-# pylmm is a python-based linear mixed-model solver with applications to GWAS
-
-# Copyright (C) 2013  Nicholas A. Furlotte (nick.furlotte@gmail.com)
-
-#The program is free for academic use. Please contact Nick Furlotte
-#<nick.furlotte@gmail.com> if you are interested in using the software for
-#commercial purposes.
-
-#The software must not be modified and distributed without prior
-#permission of the author.
-
-#THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-#"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-#LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-#A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR
-#CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
-#EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
-#PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
-#PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
-#LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-#NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-#SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-import sys
-import pdb
-
-from optparse import OptionParser,OptionGroup
-usage = """usage: %prog [options] --[tfile | bfile] plinkFileBase outfile
-
-"""
-
-parser = OptionParser(usage=usage)
-
-basicGroup = OptionGroup(parser, "Basic Options")
-#advancedGroup = OptionGroup(parser, "Advanced Options")
-
-#basicGroup.add_option("--pfile", dest="pfile",
-#                  help="The base for a PLINK ped file")
-basicGroup.add_option("--tfile", dest="tfile",
-                  help="The base for a PLINK tped file")
-basicGroup.add_option("--bfile", dest="bfile",
-                  help="The base for a PLINK binary ped file")
-basicGroup.add_option("--emmaSNP", dest="emmaFile", default=None,
-                  help="For backwards compatibility with emma, we allow for \"EMMA\" file formats.  This is just a text file with individuals on the rows and snps on the columns.")
-basicGroup.add_option("--emmaNumSNPs", dest="numSNPs", type="int", default=0,
-		     help="When providing the emmaSNP file you need to specify how many snps are in the file")
-
-basicGroup.add_option("-e", "--efile", dest="saveEig", help="Save eigendecomposition to this file.")
-basicGroup.add_option("-n", default=1000,dest="computeSize", type="int", help="The maximum number of SNPs to read into memory at once (default 1000).  This is important when there is a large number of SNPs, because memory could be an issue.")
-basicGroup.add_option("-t", "--nthreads", dest="numThreads", help="maximum number of threads to use")
-
-basicGroup.add_option("-v", "--verbose",
-                  action="store_true", dest="verbose", default=False,
-                  help="Print extra info")
-
-parser.add_option_group(basicGroup)
-#parser.add_option_group(advancedGroup)
-
-(options, args) = parser.parse_args()
-if len(args) != 1: 
-   parser.print_help()
-   sys.exit()
-
-outFile = args[0]
-
-import sys
-import os
-import numpy as np
-from scipy import linalg
-from pylmm.lmm import calculateKinship
-from pylmm import input
-import multiprocessing as mp # Multiprocessing is part of the Python stdlib
-import Queue 
-
-if not options.tfile and not options.bfile and not options.emmaFile: 
-   parser.error("You must provide at least one PLINK input file base (--tfile or --bfile) or an emma formatted file (--emmaSNP).")
-
-numThreads = None
-if options.numThreads:
-   numThreads = int(options.numThreads)
-   
-if options.verbose: sys.stderr.write("Reading PLINK input...\n")
-if options.bfile: IN = input.plink(options.bfile,type='b')
-elif options.tfile: IN = input.plink(options.tfile,type='t')
-#elif options.pfile: IN = input.plink(options.pfile,type='p')
-elif options.emmaFile: 
-   if not options.numSNPs: parser.error("You must provide the number of SNPs when specifying an emma formatted file.")
-   IN = input.plink(options.emmaFile,type='emma')
-else: parser.error("You must provide at least one PLINK input file base (--tfile or --bfile) or an emma formatted file (--emmaSNP).")
-
-def compute_W(job):
-   """
-   Read 1000 SNPs at a time into matrix and return the result
-   """
-   n = len(IN.indivs)
-   m = options.computeSize
-   W = np.ones((n,m)) * np.nan # W matrix has dimensions individuals x SNPs (initially all NaNs)
-   for j in range(0,options.computeSize):
-      row = job*m + j
-      if row >= IN.numSNPs:
-         W = W[:,range(0,j)]
-         break
-      snp,id = IN.next()
-      if snp.var() == 0:
-         continue
-      W[:,j] = snp  # set row to list of SNPs
-   return W
-
-def compute_dgemm(job,W):
-   """
-   Compute Kinship(W)*j
-
-   For every set of SNPs dgemm is used to multiply matrices T(W)*W
-   """
-   res = None
-   try:
-      res = linalg.fblas.dgemm(alpha=1.,a=W.T,b=W.T,trans_a=True,trans_b=False)
-   except AttributeError:
-      res = np.dot(W,W.T) 
-   compute_dgemm.q.put([job,res])
-   return job
-
-def f_init(q):
-    compute_dgemm.q = q
-
-n = len(IN.indivs)
-# m = options.computeSize
-# jobsize=m
-
-IN.getSNPIterator()
-# Annoying hack to get around the fact that it is expensive to determine the number of SNPs in an emma file
-if options.emmaFile: IN.numSNPs = options.numSNPs
-# i = 0
-
-# mp.set_start_method('spawn')
-q = mp.Queue()
-p = mp.Pool(numThreads, f_init, [q])
-iterations = IN.numSNPs/options.computeSize+1
-# jobs = range(0,8) # range(0,iterations)
-
-results = []
-
-K = np.zeros((n,n))  # The Kinship matrix has dimension individuals x individuals
-
-completed = 0
-
-# for job in range(8):
-for job in range(iterations):
-   if options.verbose:
-      sys.stderr.write("Processing job %d first %d SNPs\n" % (job, ((job+1)*options.computeSize)))
-   W = compute_W(job)
-   results.append(p.apply_async(compute_dgemm, (job,W)))   
-   # Do we have a result?
-   try: 
-     j,x = q.get_nowait()
-     if options.verbose: sys.stderr.write("Job "+str(j)+" finished\n")
-     K_j = x
-     # print j,K_j[:,0]
-     K = K + K_j
-     completed += 1
-   except Queue.Empty:
-     pass
-
-for job in range(len(results)-completed):
-   j,x = q.get()
-   if options.verbose: sys.stderr.write("Job "+str(j)+" finished\n")
-   K_j = x
-   # print j,K_j[:,0]
-   K = K + K_j
-        
-K = K / float(IN.numSNPs)
-if options.verbose: sys.stderr.write("Saving Kinship file to %s\n" % outFile)
-np.savetxt(outFile,K)
-
-if options.saveEig:
-   if options.verbose: sys.stderr.write("Obtaining Eigendecomposition\n")
-   Kva,Kve = linalg.eigh(K)
-   if options.verbose: sys.stderr.write("Saving eigendecomposition to %s.[kva | kve]\n" % outFile)
-   np.savetxt(outFile+".kva",Kva)
-   np.savetxt(outFile+".kve",Kve)
-      
-
-
-
diff --git a/wqflask/wqflask/my_pylmm/scripts/run_pylmm.py b/wqflask/wqflask/my_pylmm/scripts/run_pylmm.py
deleted file mode 100755
index 0c96d986..00000000
--- a/wqflask/wqflask/my_pylmm/scripts/run_pylmm.py
+++ /dev/null
@@ -1,77 +0,0 @@
-from __future__ import absolute_import, print_function, division

-

-from base import data_set

-from base.species import TheSpecies

-    

-    def run(dataset_name, vals, temp_uuid):

-        """Generates p-values for each marker"""

-

-        tempdata = temp_data.TempData(temp_uuid)

-        

-        dataset = data_set.create_dataset(dataset_name)

-        species = TheSpecies(dataset=dataset)

-

-        samples = [] # Want only ones with values

-        vals = vals

-

-        for sample in dataset.group.samplelist:

-            samples.append(str(sample))

-            

-        gen_data(dataset, vals, tempdata)

-

-

-    def gen_data(dataset, vals)

-        dataset.group.get_markers()

-

-        pheno_vector = np.array([val == "x" and np.nan or float(val) for val in vals])

-

-        if dataset.group.species == "human":

-            p_values, t_stats = gen_human_results(pheno_vector, tempdata)

-        else:

-            genotype_data = [marker['genotypes'] for marker in dataset.group.markers.markers]

-            

-            no_val_samples = self.identify_empty_samples()

-            trimmed_genotype_data = self.trim_genotypes(genotype_data, no_val_samples)

-            

-            genotype_matrix = np.array(trimmed_genotype_data).T

-            

-            #print("pheno_vector: ", pf(pheno_vector))

-            #print("genotype_matrix: ", pf(genotype_matrix))

-            #print("genotype_matrix.shape: ", pf(genotype_matrix.shape))

-            

-            t_stats, p_values = lmm.run(

-                pheno_vector,

-                genotype_matrix,

-                restricted_max_likelihood=True,

-                refit=False,

-                temp_data=tempdata

-            )

-            #print("p_values:", p_values)

-        

-        self.dataset.group.markers.add_pvalues(p_values)

-        return self.dataset.group.markers.markers

-

-

-    def gen_human_results(self, pheno_vector, tempdata):

-        file_base = os.path.join(webqtlConfig.PYLMM_PATH, self.dataset.group.name)

-

-        plink_input = input.plink(file_base, type='b')

-        input_file_name = os.path.join(webqtlConfig.SNP_PATH, self.dataset.group.name + ".snps.gz")

-

-        pheno_vector = pheno_vector.reshape((len(pheno_vector), 1))

-        covariate_matrix = np.ones((pheno_vector.shape[0],1))

-        kinship_matrix = np.fromfile(open(file_base + '.kin','r'),sep=" ")

-        kinship_matrix.resize((len(plink_input.indivs),len(plink_input.indivs)))

-

-        p_values, t_stats = lmm.run_human(

-                pheno_vector,

-                covariate_matrix,

-                input_file_name,

-                kinship_matrix,

-                loading_progress=tempdata

-            )

-

-        return p_values, t_stats

-    

-if __name__ == '__main__':

-    run(dataset_name, vals, temp_uuid)
\ No newline at end of file
diff --git a/wqflask/wqflask/static/new/css/charts.css b/wqflask/wqflask/static/new/css/charts.css
deleted file mode 100644
index 0ce88c15..00000000
--- a/wqflask/wqflask/static/new/css/charts.css
+++ /dev/null
@@ -1,28 +0,0 @@
-body {

-  font-family: sans-serif;

-}

-

-svg {

-  margin-top:  10px;

-  margin-left: 50px;

-}

-

-.line {

-  stroke-width: 1;

-  fill: none;

-}

-

-text {

- font-family: sans-serif;

- font-size: 11pt;

-}

-

-p {

- font-family: sans-serif;

- font-size: 12pt;

-}

-

-p#caption {

-  margin-left: 100px;

-  width: 500px;

-}
\ No newline at end of file
diff --git a/wqflask/wqflask/static/new/css/interval_mapping.css b/wqflask/wqflask/static/new/css/interval_mapping.css
deleted file mode 100755
index 4a55d2e3..00000000
--- a/wqflask/wqflask/static/new/css/interval_mapping.css
+++ /dev/null
@@ -1,32 +0,0 @@
-.chr_interval_map .y_axis path,

-.chr_interval_map .y_axis line {

-    fill: none;

-    stroke: black;

-    shape-rendering: crispEdges;

-}

-.chr_interval_map .y_axis text {

-    font-family: sans-serif;

-    font-size: 14px;

-}

-

-.chr_interval_map .x_axis path,

-.chr_interval_map .x_axis line {

-    fill: none;

-    stroke: black;

-    shape-rendering: crispEdges;

-}

-.chr_interval_map .x_axis text {

-    text-anchor: end;

-    font-family: sans-serif;

-    font-size: 8px;

-}

-/*

-interval_map rect {

-    stroke: WhiteSmoke;

-    fill: white;

-}

-

-interval_map path {

-    stroke: steelblue;

-    stroke-width: 1;

-}*/
\ No newline at end of file
diff --git a/wqflask/wqflask/static/new/css/table.css b/wqflask/wqflask/static/new/css/table.css
deleted file mode 100755
index 1910ef88..00000000
--- a/wqflask/wqflask/static/new/css/table.css
+++ /dev/null
@@ -1,36 +0,0 @@
-/* Adapted from http://coding.smashingmagazine.com/2008/08/13/top-10-css-table-designs/ */
-
-.one-column-emphasis
-{
-    font-family: "Lucida Sans Unicode", "Lucida Grande", Sans-Serif;
-    font-size: 12px;
-    line-height: 1.6em;
-    margin: 45px;
-    width: 480px;
-    text-align: left;
-    border-collapse: collapse;
-}
-.one-column-emphasis th
-{
-    font-size: 14px;
-    font-weight: normal;
-    padding: 12px 15px;
-    color: #039;
-}
-.one-column-emphasis td
-{
-    padding: 10px 15px;
-    color: #669;
-    border-top: 1px solid #e8edff;
-}
-.oce-first
-{
-    background: #d0dafd;
-    border-right: 10px solid transparent;
-    border-left: 10px solid transparent;
-}
-.one-column-emphasis tr:hover td
-{
-    color: #339;
-    background: #eff2ff;
-}
diff --git a/wqflask/wqflask/static/new/javascript/chr_interval_map.coffee b/wqflask/wqflask/static/new/javascript/chr_interval_map.coffee
deleted file mode 100644
index e1993032..00000000
--- a/wqflask/wqflask/static/new/javascript/chr_interval_map.coffee
+++ /dev/null
@@ -1,230 +0,0 @@
-class Chr_Interval_Map

-    constructor: (@plot_height, @plot_width, @chr) ->

-        @qtl_results = js_data.qtl_results

-        console.log("qtl_results are:", @qtl_results)

-        console.log("chr is:", @chr)

-        

-        @get_max_chr()

-

-        @filter_qtl_results()

-        console.log("filtered results:", @these_results)

-        @get_qtl_count()

-

-        @x_coords = []

-        @y_coords = []

-        @marker_names = []

-

-        console.time('Create coordinates')

-        @create_coordinates()

-        console.log("@x_coords: ", @x_coords)

-        console.log("@y_coords: ", @y_coords)

-        console.timeEnd('Create coordinates')

-        

-        # Buffer to allow for the ticks/labels to be drawn

-        @x_buffer = @plot_width/30

-        @y_buffer = @plot_height/20

-        

-        @x_max = d3.max(@x_coords)

-        @y_max = d3.max(@y_coords) * 1.2

-    

-        @y_threshold = @get_lod_threshold()

-    

-        @svg = @create_svg()

-

-        @plot_coordinates = _.zip(@x_coords, @y_coords, @marker_names)

-        console.log("coordinates:", @plot_coordinates)

-

-        @plot_height -= @y_buffer

-

-        @create_scales()

-

-        console.time('Create graph')

-        @create_graph()

-        console.timeEnd('Create graph')

-       

-    get_max_chr: () ->

-        @max_chr = 0

-        for key of js_data.chromosomes

-            console.log("key is:", key)

-            if parseInt(key) > @max_chr

-                @max_chr = parseInt(key)

-        

-    filter_qtl_results: () ->

-        @these_results = []

-        this_chr = 100

-        for result in @qtl_results

-            if result.chr == "X"

-                this_chr = @max_chr

-            else

-                this_chr = result.chr

-            console.log("this_chr is:", this_chr)

-            console.log("@chr[0] is:", parseInt(@chr[0]))

-            if this_chr > parseInt(@chr[0])

-                break

-            if parseInt(this_chr) == parseInt(@chr[0])

-                @these_results.push(result)

-

-    get_qtl_count: () ->

-        high_qtl_count = 0

-        for result in @these_results

-            if result.lrs_value > 1

-                high_qtl_count += 1

-        console.log("high_qtl_count:", high_qtl_count)

-        

-        #if high_qtl_count > 10000

-        @y_axis_filter = 2

-        #else if high_qtl_count > 1000

-        #    @y_axis_filter = 1

-        #else

-        #    @y_axis_filter = 0

-

-    create_coordinates: () ->

-        for result in @these_results

-            @x_coords.push(parseFloat(result.Mb))

-            @y_coords.push(result.lrs_value)

-            @marker_names.push(result.name)

-            

-    create_svg: () ->

-        svg = d3.select("#topchart")

-            .append("svg")

-            .attr("class", "chr_interval_map")

-            .attr("width", @plot_width+@x_buffer)

-            .attr("height", @plot_height+@y_buffer)

-            .append("g")

-        return svg

-

-    create_scales: () ->

-        console.log("chr[1] is:", @chr[1])

-        @x_scale = d3.scale.linear()

-            .domain([0, @chr[1]])

-            .range([@x_buffer, @plot_width])

-        @y_scale = d3.scale.linear()

-            .domain([0, @y_max])

-            .range([@plot_height, @y_buffer])

-            

-    get_lod_threshold: () ->

-        if @y_max/2 > 2

-            return @y_max/2

-        else

-            return 2

-

-    create_graph: () ->

-        @add_border()

-        @add_x_axis()

-        @add_y_axis()

-        @add_title()

-        @add_back_button()

-        @add_path()

-

-    add_border: () ->

-        border_coords = [[@y_buffer, @plot_height, @x_buffer, @x_buffer],

-                         [@y_buffer, @plot_height, @plot_width, @plot_width],

-                         [@y_buffer, @y_buffer, @x_buffer, @plot_width],

-                         [@plot_height, @plot_height, @x_buffer, @plot_width]]

-            

-        @svg.selectAll("line")

-            .data(border_coords)

-            .enter()

-            .append("line")

-            .attr("y1", (d) =>

-                return d[0]

-            )

-            .attr("y2", (d) =>

-                return d[1]

-            )

-            .attr("x1", (d) =>

-                return d[2]

-            )

-            .attr("x2", (d) =>

-                return d[3]

-            )             

-            .style("stroke", "#000")

-

-    add_x_axis: () ->

-        @xAxis = d3.svg.axis()

-                .scale(@x_scale)

-                .orient("bottom")

-                .ticks(20)

-

-        @xAxis.tickFormat((d) =>

-            d3.format("d") #format as integer

-            return (d)

-        )

-

-        @svg.append("g")

-            .attr("class", "x_axis")

-            .attr("transform", "translate(0," + @plot_height + ")")

-            .call(@xAxis)

-            .selectAll("text")

-                .attr("text-anchor", "right")

-                .attr("font-size", "12px")

-                .attr("dx", "-1.6em")

-                .attr("transform", (d) =>

-                    return "translate(-12,0) rotate(-90)"

-                )

-                

-    add_y_axis: () ->

-        @yAxis = d3.svg.axis()

-                .scale(@y_scale)

-                .orient("left")

-                .ticks(5)

-        

-        @svg.append("g")

-            .attr("class", "y_axis")

-            .attr("transform", "translate(" + @x_buffer + ",0)")

-            .call(@yAxis)

-

-    add_title: () ->

-        @svg.append("text")

-            .attr("class", "title")

-            .text("Chr " + @chr[0])

-            .attr("x", (d) =>

-                return (@plot_width + @x_buffer)/2

-            )

-            .attr("y", @y_buffer + 20)

-            .attr("dx", "0em")

-            .attr("text-anchor", "middle")

-            .attr("font-family", "sans-serif")

-            .attr("font-size", "18px")

-            .attr("fill", "black")

-

-    add_back_button: () ->

-        @svg.append("text")

-            .attr("class", "back")

-            .text("Return to full view")

-            .attr("x", @x_buffer*2)

-            .attr("y", @y_buffer/2)

-            .attr("dx", "0em")

-            .attr("text-anchor", "middle")

-            .attr("font-family", "sans-serif")

-            .attr("font-size", "18px")

-            .attr("cursor", "pointer")

-            .attr("fill", "black")

-            .on("click", @return_to_full_view)

-

-    add_path: () ->

-        line_function = d3.svg.line()

-                            .x( (d) => return @x_scale(d[0]))

-                            .y( (d) => return @y_scale(d[1]))

-                            .interpolate("linear")

-                            

-        line_graph = @svg.append("path")

-                        .attr("d", line_function(@plot_coordinates))

-                        .attr("stroke", "blue")

-                        .attr("stroke-width", 1)

-                        .attr("fill", "none")

-

-    return_to_full_view: () ->

-        $('#topchart').remove()

-        $('#chart_container').append('<div class="qtlcharts" id="topchart"></div>')

-        create_interval_map()

-

-    show_marker_in_table: (marker_info) ->

-        console.log("in show_marker_in_table")

-        ### Searches for the select marker in the results table below ###

-        if marker_info

-            marker_name = marker_info[2]

-            $("#qtl_results_filter").find("input:first").val(marker_name).change()

-        #else

-        #    marker_name = ""

-        #$("#qtl_results_filter").find("input:first").val(marker_name).change()

diff --git a/wqflask/wqflask/static/new/javascript/chr_interval_map.js b/wqflask/wqflask/static/new/javascript/chr_interval_map.js
deleted file mode 100644
index d1caed7b..00000000
--- a/wqflask/wqflask/static/new/javascript/chr_interval_map.js
+++ /dev/null
@@ -1,224 +0,0 @@
-// Generated by CoffeeScript 1.8.0
-var Chr_Interval_Map;
-
-Chr_Interval_Map = (function() {
-  function Chr_Interval_Map(plot_height, plot_width, chr) {
-    this.plot_height = plot_height;
-    this.plot_width = plot_width;
-    this.chr = chr;
-    this.qtl_results = js_data.qtl_results;
-    console.log("qtl_results are:", this.qtl_results);
-    console.log("chr is:", this.chr);
-    this.get_max_chr();
-    this.filter_qtl_results();
-    console.log("filtered results:", this.these_results);
-    this.get_qtl_count();
-    this.x_coords = [];
-    this.y_coords = [];
-    this.marker_names = [];
-    console.time('Create coordinates');
-    this.create_coordinates();
-    console.log("@x_coords: ", this.x_coords);
-    console.log("@y_coords: ", this.y_coords);
-    console.timeEnd('Create coordinates');
-    this.x_buffer = this.plot_width / 30;
-    this.y_buffer = this.plot_height / 20;
-    this.x_max = d3.max(this.x_coords);
-    this.y_max = d3.max(this.y_coords) * 1.2;
-    this.y_threshold = this.get_lod_threshold();
-    this.svg = this.create_svg();
-    this.plot_coordinates = _.zip(this.x_coords, this.y_coords, this.marker_names);
-    console.log("coordinates:", this.plot_coordinates);
-    this.plot_height -= this.y_buffer;
-    this.create_scales();
-    console.time('Create graph');
-    this.create_graph();
-    console.timeEnd('Create graph');
-  }
-
-  Chr_Interval_Map.prototype.get_max_chr = function() {
-    var key, _results;
-    this.max_chr = 0;
-    _results = [];
-    for (key in js_data.chromosomes) {
-      console.log("key is:", key);
-      if (parseInt(key) > this.max_chr) {
-        _results.push(this.max_chr = parseInt(key));
-      } else {
-        _results.push(void 0);
-      }
-    }
-    return _results;
-  };
-
-  Chr_Interval_Map.prototype.filter_qtl_results = function() {
-    var result, this_chr, _i, _len, _ref, _results;
-    this.these_results = [];
-    this_chr = 100;
-    _ref = this.qtl_results;
-    _results = [];
-    for (_i = 0, _len = _ref.length; _i < _len; _i++) {
-      result = _ref[_i];
-      if (result.chr === "X") {
-        this_chr = this.max_chr;
-      } else {
-        this_chr = result.chr;
-      }
-      console.log("this_chr is:", this_chr);
-      console.log("@chr[0] is:", parseInt(this.chr[0]));
-      if (this_chr > parseInt(this.chr[0])) {
-        break;
-      }
-      if (parseInt(this_chr) === parseInt(this.chr[0])) {
-        _results.push(this.these_results.push(result));
-      } else {
-        _results.push(void 0);
-      }
-    }
-    return _results;
-  };
-
-  Chr_Interval_Map.prototype.get_qtl_count = function() {
-    var high_qtl_count, result, _i, _len, _ref;
-    high_qtl_count = 0;
-    _ref = this.these_results;
-    for (_i = 0, _len = _ref.length; _i < _len; _i++) {
-      result = _ref[_i];
-      if (result.lrs_value > 1) {
-        high_qtl_count += 1;
-      }
-    }
-    console.log("high_qtl_count:", high_qtl_count);
-    return this.y_axis_filter = 2;
-  };
-
-  Chr_Interval_Map.prototype.create_coordinates = function() {
-    var result, _i, _len, _ref, _results;
-    _ref = this.these_results;
-    _results = [];
-    for (_i = 0, _len = _ref.length; _i < _len; _i++) {
-      result = _ref[_i];
-      this.x_coords.push(parseFloat(result.Mb));
-      this.y_coords.push(result.lrs_value);
-      _results.push(this.marker_names.push(result.name));
-    }
-    return _results;
-  };
-
-  Chr_Interval_Map.prototype.create_svg = function() {
-    var svg;
-    svg = d3.select("#topchart").append("svg").attr("class", "chr_interval_map").attr("width", this.plot_width + this.x_buffer).attr("height", this.plot_height + this.y_buffer).append("g");
-    return svg;
-  };
-
-  Chr_Interval_Map.prototype.create_scales = function() {
-    console.log("chr[1] is:", this.chr[1]);
-    this.x_scale = d3.scale.linear().domain([0, this.chr[1]]).range([this.x_buffer, this.plot_width]);
-    return this.y_scale = d3.scale.linear().domain([0, this.y_max]).range([this.plot_height, this.y_buffer]);
-  };
-
-  Chr_Interval_Map.prototype.get_lod_threshold = function() {
-    if (this.y_max / 2 > 2) {
-      return this.y_max / 2;
-    } else {
-      return 2;
-    }
-  };
-
-  Chr_Interval_Map.prototype.create_graph = function() {
-    this.add_border();
-    this.add_x_axis();
-    this.add_y_axis();
-    this.add_title();
-    this.add_back_button();
-    return this.add_path();
-  };
-
-  Chr_Interval_Map.prototype.add_border = function() {
-    var border_coords;
-    border_coords = [[this.y_buffer, this.plot_height, this.x_buffer, this.x_buffer], [this.y_buffer, this.plot_height, this.plot_width, this.plot_width], [this.y_buffer, this.y_buffer, this.x_buffer, this.plot_width], [this.plot_height, this.plot_height, this.x_buffer, this.plot_width]];
-    return this.svg.selectAll("line").data(border_coords).enter().append("line").attr("y1", (function(_this) {
-      return function(d) {
-        return d[0];
-      };
-    })(this)).attr("y2", (function(_this) {
-      return function(d) {
-        return d[1];
-      };
-    })(this)).attr("x1", (function(_this) {
-      return function(d) {
-        return d[2];
-      };
-    })(this)).attr("x2", (function(_this) {
-      return function(d) {
-        return d[3];
-      };
-    })(this)).style("stroke", "#000");
-  };
-
-  Chr_Interval_Map.prototype.add_x_axis = function() {
-    this.xAxis = d3.svg.axis().scale(this.x_scale).orient("bottom").ticks(20);
-    this.xAxis.tickFormat((function(_this) {
-      return function(d) {
-        d3.format("d");
-        return d;
-      };
-    })(this));
-    return this.svg.append("g").attr("class", "x_axis").attr("transform", "translate(0," + this.plot_height + ")").call(this.xAxis).selectAll("text").attr("text-anchor", "right").attr("font-size", "12px").attr("dx", "-1.6em").attr("transform", (function(_this) {
-      return function(d) {
-        return "translate(-12,0) rotate(-90)";
-      };
-    })(this));
-  };
-
-  Chr_Interval_Map.prototype.add_y_axis = function() {
-    this.yAxis = d3.svg.axis().scale(this.y_scale).orient("left").ticks(5);
-    return this.svg.append("g").attr("class", "y_axis").attr("transform", "translate(" + this.x_buffer + ",0)").call(this.yAxis);
-  };
-
-  Chr_Interval_Map.prototype.add_title = function() {
-    return this.svg.append("text").attr("class", "title").text("Chr " + this.chr[0]).attr("x", (function(_this) {
-      return function(d) {
-        return (_this.plot_width + _this.x_buffer) / 2;
-      };
-    })(this)).attr("y", this.y_buffer + 20).attr("dx", "0em").attr("text-anchor", "middle").attr("font-family", "sans-serif").attr("font-size", "18px").attr("fill", "black");
-  };
-
-  Chr_Interval_Map.prototype.add_back_button = function() {
-    return this.svg.append("text").attr("class", "back").text("Return to full view").attr("x", this.x_buffer * 2).attr("y", this.y_buffer / 2).attr("dx", "0em").attr("text-anchor", "middle").attr("font-family", "sans-serif").attr("font-size", "18px").attr("cursor", "pointer").attr("fill", "black").on("click", this.return_to_full_view);
-  };
-
-  Chr_Interval_Map.prototype.add_path = function() {
-    var line_function, line_graph;
-    line_function = d3.svg.line().x((function(_this) {
-      return function(d) {
-        return _this.x_scale(d[0]);
-      };
-    })(this)).y((function(_this) {
-      return function(d) {
-        return _this.y_scale(d[1]);
-      };
-    })(this)).interpolate("linear");
-    return line_graph = this.svg.append("path").attr("d", line_function(this.plot_coordinates)).attr("stroke", "blue").attr("stroke-width", 1).attr("fill", "none");
-  };
-
-  Chr_Interval_Map.prototype.return_to_full_view = function() {
-    $('#topchart').remove();
-    $('#chart_container').append('<div class="qtlcharts" id="topchart"></div>');
-    return create_interval_map();
-  };
-
-  Chr_Interval_Map.prototype.show_marker_in_table = function(marker_info) {
-    var marker_name;
-    console.log("in show_marker_in_table");
-
-    /* Searches for the select marker in the results table below */
-    if (marker_info) {
-      marker_name = marker_info[2];
-      return $("#qtl_results_filter").find("input:first").val(marker_name).change();
-    }
-  };
-
-  return Chr_Interval_Map;
-
-})();
diff --git a/wqflask/wqflask/static/new/javascript/create_interval_map.coffee b/wqflask/wqflask/static/new/javascript/create_interval_map.coffee
deleted file mode 100644
index b01e2651..00000000
--- a/wqflask/wqflask/static/new/javascript/create_interval_map.coffee
+++ /dev/null
@@ -1,80 +0,0 @@
-create_interval_map = () ->

-    h = 500

-    w = 1200

-    margin = {left:60, top:40, right:40, bottom: 40, inner:5}

-    halfh = (h+margin.top+margin.bottom)

-    totalh = halfh*2

-    totalw = (w+margin.left+margin.right)

-    

-    # simplest use

-    #d3.json "data.json", (data) ->

-    mychart = lodchart().lodvarname("lod.hk")

-                        .height(h)

-                        .width(w)

-                        .margin(margin)

-                            

-    data = js_data.json_data

-    

-    d3.select("div#topchart")

-      .datum(data)

-      .call(mychart)

-    

-    # grab chromosome rectangles; color pink on hover

-    chrrect = mychart.chrSelect()

-    chrrect.on "mouseover", ->

-                d3.select(this).attr("fill", "#E9CFEC")

-           .on "mouseout", (d,i) ->

-                d3.select(this).attr("fill", ->

-                      return "#F1F1F9"  if i % 2

-                      "#FBFBFF")

-    

-    # animate points at markers on click

-    mychart.markerSelect()

-              .on "click", (d) ->

-                    r = d3.select(this).attr("r")

-                    d3.select(this)

-                      .transition().duration(500).attr("r", r*3)

-                      .transition().duration(500).attr("r", r)

-

-create_interval_map()

-

-$("#export").click =>

-    

-    #Get d3 SVG element

-    svg = $("#topchart").find("svg")[0]

-    

-    #Extract SVG text string

-    svg_xml = (new XMLSerializer).serializeToString(svg)

-    console.log("svg_xml:", svg_xml)

-        

-    #Set filename

-    filename = "interval_map_" + js_data.this_trait

-

-    #Make a form with the SVG data

-    form = $("#exportform")

-    form.find("#data").val(svg_xml)

-    form.find("#filename").val(filename)

-    form.submit()

-    

-

-$("#export_pdf").click =>

-    

-    #$('#topchart').remove()

-    #$('#chart_container').append('<div class="qtlcharts" id="topchart"></div>')

-    #create_interval_map()

-    

-    #Get d3 SVG element

-    svg = $("#topchart").find("svg")[0]

-    

-    #Extract SVG text string

-    svg_xml = (new XMLSerializer).serializeToString(svg)

-    console.log("svg_xml:", svg_xml)

-        

-    #Set filename

-    filename = "interval_map_pdf"

-

-    #Make a form with the SVG data

-    form = $("#exportpdfform")

-    form.find("#data").val(svg_xml)

-    form.find("#filename").val(filename)

-    form.submit()

diff --git a/wqflask/wqflask/static/new/javascript/create_interval_map.js b/wqflask/wqflask/static/new/javascript/create_interval_map.js
deleted file mode 100644
index b06a27a0..00000000
--- a/wqflask/wqflask/static/new/javascript/create_interval_map.js
+++ /dev/null
@@ -1,67 +0,0 @@
-// Generated by CoffeeScript 1.8.0
-var create_interval_map;
-
-create_interval_map = function() {
-  var chrrect, data, h, halfh, margin, mychart, totalh, totalw, w;
-  h = 500;
-  w = 1200;
-  margin = {
-    left: 60,
-    top: 40,
-    right: 40,
-    bottom: 40,
-    inner: 5
-  };
-  halfh = h + margin.top + margin.bottom;
-  totalh = halfh * 2;
-  totalw = w + margin.left + margin.right;
-  mychart = lodchart().lodvarname("lod.hk").height(h).width(w).margin(margin);
-  data = js_data.json_data;
-  d3.select("div#topchart").datum(data).call(mychart);
-  chrrect = mychart.chrSelect();
-  chrrect.on("mouseover", function() {
-    return d3.select(this).attr("fill", "#E9CFEC");
-  }).on("mouseout", function(d, i) {
-    return d3.select(this).attr("fill", function() {
-      if (i % 2) {
-        return "#F1F1F9";
-      }
-      return "#FBFBFF";
-    });
-  });
-  return mychart.markerSelect().on("click", function(d) {
-    var r;
-    r = d3.select(this).attr("r");
-    return d3.select(this).transition().duration(500).attr("r", r * 3).transition().duration(500).attr("r", r);
-  });
-};
-
-create_interval_map();
-
-$("#export").click((function(_this) {
-  return function() {
-    var filename, form, svg, svg_xml;
-    svg = $("#topchart").find("svg")[0];
-    svg_xml = (new XMLSerializer).serializeToString(svg);
-    console.log("svg_xml:", svg_xml);
-    filename = "interval_map_" + js_data.this_trait;
-    form = $("#exportform");
-    form.find("#data").val(svg_xml);
-    form.find("#filename").val(filename);
-    return form.submit();
-  };
-})(this));
-
-$("#export_pdf").click((function(_this) {
-  return function() {
-    var filename, form, svg, svg_xml;
-    svg = $("#topchart").find("svg")[0];
-    svg_xml = (new XMLSerializer).serializeToString(svg);
-    console.log("svg_xml:", svg_xml);
-    filename = "interval_map_pdf";
-    form = $("#exportpdfform");
-    form.find("#data").val(svg_xml);
-    form.find("#filename").val(filename);
-    return form.submit();
-  };
-})(this));
diff --git a/wqflask/wqflask/static/new/javascript/interval_map_new.coffee b/wqflask/wqflask/static/new/javascript/interval_map_new.coffee
deleted file mode 100644
index d60b900d..00000000
--- a/wqflask/wqflask/static/new/javascript/interval_map_new.coffee
+++ /dev/null
@@ -1,91 +0,0 @@
-create_interval_map = ->

-    h = 500

-    w = 1200

-    margin = {left:60, top:40, right:40, bottom: 40, inner:5}

-    halfh = (h+margin.top+margin.bottom)

-    totalh = halfh*2

-    totalw = (w+margin.left+margin.right)

-    

-    # simplest use

-    #d3.json "data.json", (data) ->

-    mychart = lodchart().lodvarname("lod.hk")

-                        .height(h)

-                        .width(w)

-                        .margin(margin)

-    

-    data = js_data.json_data

-    

-    d3.select("div#topchart")

-      .datum(data)

-      .call(mychart)

-    

-    # grab chromosome rectangles; color pink on hover

-    chrrect = mychart.chrSelect()

-    chrrect.on "mouseover", ->

-                d3.select(this).attr("fill", "#E9CFEC")

-           .on "mouseout", (d,i) ->

-                d3.select(this).attr("fill", ->

-                      return "#F1F1F9"  if i % 2

-                      "#FBFBFF")

-    

-    # animate points at markers on click

-    mychart.markerSelect()

-              .on "click", (d) ->

-                    r = d3.select(this).attr("r")

-                    d3.select(this)

-                      .transition().duration(500).attr("r", r*3)

-                      .transition().duration(500).attr("r", r)

-

-create_interval_map()

-

-$("#export").click =>

-    #Get d3 SVG element

-    svg = $("#topchart").find("svg")[0]

-    

-    #Extract SVG text string

-    svg_xml = (new XMLSerializer).serializeToString(svg)

-    console.log("svg_xml:", svg_xml)

-        

-    #Set filename

-    filename = "manhattan_plot_" + js_data.this_trait

-

-    #Make a form with the SVG data

-    form = $("#exportform")

-    form.find("#data").val(svg_xml)

-    form.find("#filename").val(filename)

-    form.submit()

-

-# two LOD charts within one SVG

-#d3.json "data.json", (data) ->

-#  mychart_em = lodchart().lodvarname("lod.em")

-#                         .height(h)

-#                         .width(w)

-#                         .margin(margin)

-#                         .ylab("LOD score (by EM)")

-#                         .pointsize(1)

-#                         .nyticks(9)

-#                         .title("Standard interval mapping")

-#  mychart_hk = lodchart().lodvarname("lod.hk")

-#                         .height(h)

-#                         .width(w)

-#                         .margin(margin)

-#                         .ylab("LOD score (by H-K)")

-#                         .linecolor("Crimson")

-#                         .yticks([0, 1, 2, 4, 6, 8])

-#                         .title("Haley-Knott regression")

-#

-#  svg = d3.select("div#bottomchart")

-#          .append("svg")

-#          .attr("height", totalh)

-#          .attr("width", totalw)

-#

-#  chart1 = svg.append("g").attr("id", "chart1")

-#

-#  chart2 = svg.append("g").attr("id", "chart2")

-#              .attr("transform", "translate(0, #{halfh})")

-#

-#  chart1.datum(data)

-#    .call(mychart_em)

-#

-#  chart2.datum(data)

-#    .call(mychart_hk)
\ No newline at end of file
diff --git a/wqflask/wqflask/static/new/javascript/interval_map_new.js b/wqflask/wqflask/static/new/javascript/interval_map_new.js
deleted file mode 100644
index 002f592d..00000000
--- a/wqflask/wqflask/static/new/javascript/interval_map_new.js
+++ /dev/null
@@ -1,53 +0,0 @@
-// Generated by CoffeeScript 1.8.0
-var create_interval_map;
-
-create_interval_map = function() {
-  var chrrect, data, h, halfh, margin, mychart, totalh, totalw, w;
-  h = 500;
-  w = 1200;
-  margin = {
-    left: 60,
-    top: 40,
-    right: 40,
-    bottom: 40,
-    inner: 5
-  };
-  halfh = h + margin.top + margin.bottom;
-  totalh = halfh * 2;
-  totalw = w + margin.left + margin.right;
-  mychart = lodchart().lodvarname("lod.hk").height(h).width(w).margin(margin);
-  data = js_data.json_data;
-  d3.select("div#topchart").datum(data).call(mychart);
-  chrrect = mychart.chrSelect();
-  chrrect.on("mouseover", function() {
-    return d3.select(this).attr("fill", "#E9CFEC");
-  }).on("mouseout", function(d, i) {
-    return d3.select(this).attr("fill", function() {
-      if (i % 2) {
-        return "#F1F1F9";
-      }
-      return "#FBFBFF";
-    });
-  });
-  return mychart.markerSelect().on("click", function(d) {
-    var r;
-    r = d3.select(this).attr("r");
-    return d3.select(this).transition().duration(500).attr("r", r * 3).transition().duration(500).attr("r", r);
-  });
-};
-
-create_interval_map();
-
-$("#export").click((function(_this) {
-  return function() {
-    var filename, form, svg, svg_xml;
-    svg = $("#topchart").find("svg")[0];
-    svg_xml = (new XMLSerializer).serializeToString(svg);
-    console.log("svg_xml:", svg_xml);
-    filename = "manhattan_plot_" + js_data.this_trait;
-    form = $("#exportform");
-    form.find("#data").val(svg_xml);
-    form.find("#filename").val(filename);
-    return form.submit();
-  };
-})(this));
diff --git a/wqflask/wqflask/static/new/javascript/interval_mapping.coffee b/wqflask/wqflask/static/new/javascript/interval_mapping.coffee
deleted file mode 100755
index 81db186b..00000000
--- a/wqflask/wqflask/static/new/javascript/interval_mapping.coffee
+++ /dev/null
@@ -1,297 +0,0 @@
-$ ->

-

-    class Interval_Map

-        constructor: (@plot_height, @plot_width) ->

-            @qtl_results = js_data.qtl_results

-            console.log("qtl_results are:", @qtl_results)

-            @chromosomes = js_data.chromosomes

-

-            @total_length = 0

-

-            @max_chr = @get_max_chr()

-

-            @x_coords = []

-            @y_coords = []

-            @marker_names = []

-            console.time('Create coordinates')

-            @create_coordinates()

-            console.log("@x_coords: ", @x_coords)

-            console.log("@y_coords: ", @y_coords)

-            console.timeEnd('Create coordinates')

-            [@chr_lengths, @cumulative_chr_lengths] = @get_chr_lengths()

-

-            # Buffer to allow for the ticks/labels to be drawn

-            @x_buffer = @plot_width/30

-            @y_buffer = @plot_height/20

-            

-            #@x_max = d3.max(@x_coords)

-            @x_max = @total_length

-            console.log("@x_max: ", @x_max)

-            console.log("@x_buffer: ", @x_buffer)

-            @y_max = d3.max(@y_coords) * 1.2

-

-            @svg = @create_svg()

-            @plot_coordinates = _.zip(@x_coords, @y_coords, @marker_names)

-            

-            @plot_height -= @y_buffer

-            @create_scales()

-            console.time('Create graph')

-            @create_graph()

-            console.timeEnd('Create graph')

-

-        get_max_chr: () ->

-            max_chr = 0

-            for result in @qtl_results

-                chr = parseInt(result.chr)

-                if not _.isNaN(chr) 

-                    if chr > max_chr

-                        max_chr = chr

-            return max_chr

-

-        get_chr_lengths: () ->

-            ###

-            #Gets a list of both individual and cumulative (the position of one on the graph

-            #is its own length plus the lengths of all preceding chromosomes) lengths in order

-            #to draw the vertical lines separating chromosomes and the chromosome labels

-            #

-            ###

-            

-            console.log("@chromosomes: ", @chromosomes)

-            

-            cumulative_chr_lengths = []

-            chr_lengths = []

-            total_length = 0

-            for key of @chromosomes

-                this_length = @chromosomes[key]

-                chr_lengths.push(this_length)

-                cumulative_chr_lengths.push(total_length + this_length)

-                total_length += this_length

-    

-            console.log("chr_lengths: ", chr_lengths)

-    

-            return [chr_lengths, cumulative_chr_lengths]

-    

-        create_coordinates: () -> 

-            chr_lengths = []

-            chr_seen = []

-            for result in js_data.qtl_results

-                if result.chr == "X"

-                    chr_length = parseFloat(@chromosomes[20])

-                else

-                    chr_length = parseFloat(@chromosomes[result.chr])

-                if not(result.chr in chr_seen)

-                    chr_seen.push(result.chr) 

-                    chr_lengths.push(chr_length) 

-                    if result.chr != "1"

-                        @total_length += parseFloat(chr_lengths[chr_lengths.length - 2])

-                @x_coords.push(@total_length + parseFloat(result.Mb))

-                @y_coords.push(result.lrs_value)

-                @marker_names.push(result.name)

-            @total_length += parseFloat(chr_lengths[chr_lengths.length-1])

-            #console.log("chr_lengths: ", chr_lengths)

-    

-        create_svg: () ->

-            svg = d3.select("#interval_map")

-                .append("svg")

-                .attr("class", "interval_map")

-                .attr("width", @plot_width+@x_buffer)

-                .attr("height", @plot_height+@y_buffer)

-            

-            return svg

-    

-        create_graph: () ->

-            @add_border()

-            @add_x_axis()

-            @add_y_axis()

-            @add_chr_lines()

-            @fill_chr_areas()

-            @add_chr_labels()

-            @connect_markers()

-    

-        add_border: () ->

-            border_coords = [[@y_buffer, @plot_height, @x_buffer, @x_buffer],

-                             [@y_buffer, @plot_height, @plot_width, @plot_width],

-                             [@y_buffer, @y_buffer, @x_buffer, @plot_width],

-                             [@plot_height, @plot_height, @x_buffer, @plot_width]]

-    

-            @svg.selectAll("line")

-                .data(border_coords)

-                .enter()

-                .append("line")

-                .attr("y1", (d) =>

-                    return d[0]

-                )

-                .attr("y2", (d) =>

-                    return d[1]

-                )

-                .attr("x1", (d) =>

-                    return d[2]

-                )

-                .attr("x2", (d) =>

-                    return d[3]

-                )             

-                .style("stroke", "#000")

-    

-        create_scales: () ->

-            @x_scale = d3.scale.linear()

-                .domain([0, d3.max(@x_coords)])

-                .range([@x_buffer, @plot_width])

-    

-            @y_scale = d3.scale.linear()

-                .domain([0, @y_max])

-                .range([@plot_height, @y_buffer])

-    

-        create_x_axis_tick_values: () ->

-            tick_vals = []

-            for val in [25..@cumulative_chr_lengths[0]] when val%25 == 0

-                tick_vals.push(val)

-                

-            for length, i in @cumulative_chr_lengths

-                if i == 0

-                    continue

-                chr_ticks = []

-                tick_count = Math.floor(@chr_lengths[i]/25)

-                tick_val = parseInt(@cumulative_chr_lengths[i-1])

-                for tick in [0..(tick_count-1)]

-                    tick_val += 25

-                    chr_ticks.push(tick_val)

-                Array::push.apply tick_vals, chr_ticks    

-                    

-            #console.log("tick_vals:", tick_vals)

-            return tick_vals

-    

-        add_x_axis: () ->

-            xAxis = d3.svg.axis()

-                    .scale(@x_scale)

-                    .orient("bottom")

-                    .tickValues(@create_x_axis_tick_values())

-    

-            next_chr = 1

-            tmp_tick_val = 0

-            xAxis.tickFormat((d) =>

-                d3.format("d") #format as integer

-                if d < @cumulative_chr_lengths[0]

-                    tick_val = d

-                else

-                    next_chr_length = @cumulative_chr_lengths[next_chr]

-                    if d > next_chr_length

-                        next_chr += 1

-                        tmp_tick_val = 25

-                        tick_val = tmp_tick_val

-                    else

-                        tmp_tick_val += 25

-                        tick_val = tmp_tick_val

-                return (tick_val)

-            )

-    

-            @svg.append("g")

-                .attr("class", "x_axis")

-                .attr("transform", "translate(0," + @plot_height + ")")

-                .call(xAxis)

-                .selectAll("text")

-                    .attr("text-anchor", "right")

-                    .attr("dx", "-1.6em")

-                    .attr("transform", (d) =>

-                        return "translate(-12,0) rotate(-90)"

-                    )

-                    #.attr("dy", "-1.0em")                        

-                                    

-    

-        add_y_axis: () ->

-            yAxis = d3.svg.axis()

-                    .scale(@y_scale)

-                    .orient("left")

-                    .ticks(5)

-            

-            @svg.append("g")

-                .attr("class", "y_axis")

-                .attr("transform", "translate(" + @x_buffer + ",0)")

-                .call(yAxis)

-    

-        add_chr_lines: () ->

-            @svg.selectAll("line")

-                .data(@cumulative_chr_lengths, (d) =>

-                    return d

-                )

-                .enter()

-                .append("line")

-                .attr("y1", @y_buffer)

-                .attr("y2", @plot_height)

-                .attr("x1", @x_scale)

-                .attr("x2", @x_scale)

-                .style("stroke", "#ccc")

-                

-        fill_chr_areas: () ->

-            @svg.selectAll("rect.chr_fill_area_1")

-                .data(_.zip(@chr_lengths, @cumulative_chr_lengths), (d) =>

-                    return d

-                )

-                .enter()

-                .append("rect")

-                .attr("class", "chr_fill_area_1")

-                .attr("x", (d, i) =>

-                    if i == 0

-                        return @x_scale(0)

-                    else

-                        return @x_scale(@cumulative_chr_lengths[i-1])

-                )

-                .attr("y", @y_buffer)

-                .attr("width", (d) =>

-                    return @x_scale(d[0])

-                )

-                .attr("height", @plot_height-@y_buffer)

-                .attr("fill", "white")

-    

-        add_chr_labels: () ->

-            chr_names = []

-            for key of @chromosomes

-                chr_names.push(key)

-            chr_info = _.zip(chr_names, @chr_lengths, @cumulative_chr_lengths)

-            @svg.selectAll("text")

-                .data(chr_info, (d) =>

-                    return d

-                )

-                .enter()

-                .append("text")

-                .text((d) =>

-                    return d[0]

-                )

-                .attr("x", (d) =>

-                    return @x_scale(d[2] - d[1]/2)

-                )

-                .attr("y", @plot_height * 0.1)

-                .attr("dx", "0em")

-                .attr("text-anchor", "middle")

-                .attr("font-family", "sans-serif")

-                .attr("font-size", "18px")

-                #.attr("fill", "grey")

-    

-        connect_markers: () ->

-            @svg.selectAll("line")

-                .data(@plot_coordinates)

-                .enter()

-                .append("line")

-                .attr("x1", (d, i) =>

-                    if i == 0

-                        return @x_buffer

-                    else

-                        return parseFloat(@x_buffer) + ((parseFloat(@plot_width)-parseFloat(@x_buffer)) * @plot_coordinates[i-1][0]/parseFloat(@x_max))

-                )

-                .attr("y1", (d, i) =>

-                    if i == 0

-                        return @plot_height

-                    else

-                        return @plot_height - ((@plot_height-@y_buffer) * @plot_coordinates[i-1][1]/@y_max)

-                )

-                .attr("x2", (d) =>

-                    return parseFloat(@x_buffer) + ((parseFloat(@plot_width)-parseFloat(@x_buffer)) * d[0]/parseFloat(@x_max))

-                )

-                .attr("y2", (d) =>

-                    return @plot_height - ((@plot_height-@y_buffer) * d[1]/@y_max)

-                )

-                .style("stroke", "black")

-    

-    console.time('Create interval map')

-    console.log("TESTING")

-    new Interval_Map(600, 1200)

-    console.timeEnd('Create interval map')
\ No newline at end of file
diff --git a/wqflask/wqflask/static/new/javascript/interval_mapping.js b/wqflask/wqflask/static/new/javascript/interval_mapping.js
deleted file mode 100755
index aa9cc228..00000000
--- a/wqflask/wqflask/static/new/javascript/interval_mapping.js
+++ /dev/null
@@ -1,297 +0,0 @@
-// Generated by CoffeeScript 1.8.0
-var __indexOf = [].indexOf || function(item) { for (var i = 0, l = this.length; i < l; i++) { if (i in this && this[i] === item) return i; } return -1; };
-
-$(function() {
-  var Interval_Map;
-  Interval_Map = (function() {
-    function Interval_Map(plot_height, plot_width) {
-      var _ref;
-      this.plot_height = plot_height;
-      this.plot_width = plot_width;
-      this.qtl_results = js_data.qtl_results;
-      console.log("qtl_results are:", this.qtl_results);
-      this.chromosomes = js_data.chromosomes;
-      this.total_length = 0;
-      this.max_chr = this.get_max_chr();
-      this.x_coords = [];
-      this.y_coords = [];
-      this.marker_names = [];
-      console.time('Create coordinates');
-      this.create_coordinates();
-      console.log("@x_coords: ", this.x_coords);
-      console.log("@y_coords: ", this.y_coords);
-      console.timeEnd('Create coordinates');
-      _ref = this.get_chr_lengths(), this.chr_lengths = _ref[0], this.cumulative_chr_lengths = _ref[1];
-      this.x_buffer = this.plot_width / 30;
-      this.y_buffer = this.plot_height / 20;
-      this.x_max = this.total_length;
-      console.log("@x_max: ", this.x_max);
-      console.log("@x_buffer: ", this.x_buffer);
-      this.y_max = d3.max(this.y_coords) * 1.2;
-      this.svg = this.create_svg();
-      this.plot_coordinates = _.zip(this.x_coords, this.y_coords, this.marker_names);
-      this.plot_height -= this.y_buffer;
-      this.create_scales();
-      console.time('Create graph');
-      this.create_graph();
-      console.timeEnd('Create graph');
-    }
-
-    Interval_Map.prototype.get_max_chr = function() {
-      var chr, max_chr, result, _i, _len, _ref;
-      max_chr = 0;
-      _ref = this.qtl_results;
-      for (_i = 0, _len = _ref.length; _i < _len; _i++) {
-        result = _ref[_i];
-        chr = parseInt(result.chr);
-        if (!_.isNaN(chr)) {
-          if (chr > max_chr) {
-            max_chr = chr;
-          }
-        }
-      }
-      return max_chr;
-    };
-
-    Interval_Map.prototype.get_chr_lengths = function() {
-
-      /*
-       *Gets a list of both individual and cumulative (the position of one on the graph
-       *is its own length plus the lengths of all preceding chromosomes) lengths in order
-       *to draw the vertical lines separating chromosomes and the chromosome labels
-       *
-       */
-      var chr_lengths, cumulative_chr_lengths, key, this_length, total_length;
-      console.log("@chromosomes: ", this.chromosomes);
-      cumulative_chr_lengths = [];
-      chr_lengths = [];
-      total_length = 0;
-      for (key in this.chromosomes) {
-        this_length = this.chromosomes[key];
-        chr_lengths.push(this_length);
-        cumulative_chr_lengths.push(total_length + this_length);
-        total_length += this_length;
-      }
-      console.log("chr_lengths: ", chr_lengths);
-      return [chr_lengths, cumulative_chr_lengths];
-    };
-
-    Interval_Map.prototype.create_coordinates = function() {
-      var chr_length, chr_lengths, chr_seen, result, _i, _len, _ref, _ref1;
-      chr_lengths = [];
-      chr_seen = [];
-      _ref = js_data.qtl_results;
-      for (_i = 0, _len = _ref.length; _i < _len; _i++) {
-        result = _ref[_i];
-        if (result.chr === "X") {
-          chr_length = parseFloat(this.chromosomes[20]);
-        } else {
-          chr_length = parseFloat(this.chromosomes[result.chr]);
-        }
-        if (!(_ref1 = result.chr, __indexOf.call(chr_seen, _ref1) >= 0)) {
-          chr_seen.push(result.chr);
-          chr_lengths.push(chr_length);
-          if (result.chr !== "1") {
-            this.total_length += parseFloat(chr_lengths[chr_lengths.length - 2]);
-          }
-        }
-        this.x_coords.push(this.total_length + parseFloat(result.Mb));
-        this.y_coords.push(result.lrs_value);
-        this.marker_names.push(result.name);
-      }
-      return this.total_length += parseFloat(chr_lengths[chr_lengths.length - 1]);
-    };
-
-    Interval_Map.prototype.create_svg = function() {
-      var svg;
-      svg = d3.select("#interval_map").append("svg").attr("class", "interval_map").attr("width", this.plot_width + this.x_buffer).attr("height", this.plot_height + this.y_buffer);
-      return svg;
-    };
-
-    Interval_Map.prototype.create_graph = function() {
-      this.add_border();
-      this.add_x_axis();
-      this.add_y_axis();
-      this.add_chr_lines();
-      this.fill_chr_areas();
-      this.add_chr_labels();
-      return this.connect_markers();
-    };
-
-    Interval_Map.prototype.add_border = function() {
-      var border_coords;
-      border_coords = [[this.y_buffer, this.plot_height, this.x_buffer, this.x_buffer], [this.y_buffer, this.plot_height, this.plot_width, this.plot_width], [this.y_buffer, this.y_buffer, this.x_buffer, this.plot_width], [this.plot_height, this.plot_height, this.x_buffer, this.plot_width]];
-      return this.svg.selectAll("line").data(border_coords).enter().append("line").attr("y1", (function(_this) {
-        return function(d) {
-          return d[0];
-        };
-      })(this)).attr("y2", (function(_this) {
-        return function(d) {
-          return d[1];
-        };
-      })(this)).attr("x1", (function(_this) {
-        return function(d) {
-          return d[2];
-        };
-      })(this)).attr("x2", (function(_this) {
-        return function(d) {
-          return d[3];
-        };
-      })(this)).style("stroke", "#000");
-    };
-
-    Interval_Map.prototype.create_scales = function() {
-      this.x_scale = d3.scale.linear().domain([0, d3.max(this.x_coords)]).range([this.x_buffer, this.plot_width]);
-      return this.y_scale = d3.scale.linear().domain([0, this.y_max]).range([this.plot_height, this.y_buffer]);
-    };
-
-    Interval_Map.prototype.create_x_axis_tick_values = function() {
-      var chr_ticks, i, length, tick, tick_count, tick_val, tick_vals, val, _i, _j, _k, _len, _ref, _ref1, _ref2;
-      tick_vals = [];
-      for (val = _i = 25, _ref = this.cumulative_chr_lengths[0]; 25 <= _ref ? _i <= _ref : _i >= _ref; val = 25 <= _ref ? ++_i : --_i) {
-        if (val % 25 === 0) {
-          tick_vals.push(val);
-        }
-      }
-      _ref1 = this.cumulative_chr_lengths;
-      for (i = _j = 0, _len = _ref1.length; _j < _len; i = ++_j) {
-        length = _ref1[i];
-        if (i === 0) {
-          continue;
-        }
-        chr_ticks = [];
-        tick_count = Math.floor(this.chr_lengths[i] / 25);
-        tick_val = parseInt(this.cumulative_chr_lengths[i - 1]);
-        for (tick = _k = 0, _ref2 = tick_count - 1; 0 <= _ref2 ? _k <= _ref2 : _k >= _ref2; tick = 0 <= _ref2 ? ++_k : --_k) {
-          tick_val += 25;
-          chr_ticks.push(tick_val);
-        }
-        Array.prototype.push.apply(tick_vals, chr_ticks);
-      }
-      return tick_vals;
-    };
-
-    Interval_Map.prototype.add_x_axis = function() {
-      var next_chr, tmp_tick_val, xAxis;
-      xAxis = d3.svg.axis().scale(this.x_scale).orient("bottom").tickValues(this.create_x_axis_tick_values());
-      next_chr = 1;
-      tmp_tick_val = 0;
-      xAxis.tickFormat((function(_this) {
-        return function(d) {
-          var next_chr_length, tick_val;
-          d3.format("d");
-          if (d < _this.cumulative_chr_lengths[0]) {
-            tick_val = d;
-          } else {
-            next_chr_length = _this.cumulative_chr_lengths[next_chr];
-            if (d > next_chr_length) {
-              next_chr += 1;
-              tmp_tick_val = 25;
-              tick_val = tmp_tick_val;
-            } else {
-              tmp_tick_val += 25;
-              tick_val = tmp_tick_val;
-            }
-          }
-          return tick_val;
-        };
-      })(this));
-      return this.svg.append("g").attr("class", "x_axis").attr("transform", "translate(0," + this.plot_height + ")").call(xAxis).selectAll("text").attr("text-anchor", "right").attr("dx", "-1.6em").attr("transform", (function(_this) {
-        return function(d) {
-          return "translate(-12,0) rotate(-90)";
-        };
-      })(this));
-    };
-
-    Interval_Map.prototype.add_y_axis = function() {
-      var yAxis;
-      yAxis = d3.svg.axis().scale(this.y_scale).orient("left").ticks(5);
-      return this.svg.append("g").attr("class", "y_axis").attr("transform", "translate(" + this.x_buffer + ",0)").call(yAxis);
-    };
-
-    Interval_Map.prototype.add_chr_lines = function() {
-      return this.svg.selectAll("line").data(this.cumulative_chr_lengths, (function(_this) {
-        return function(d) {
-          return d;
-        };
-      })(this)).enter().append("line").attr("y1", this.y_buffer).attr("y2", this.plot_height).attr("x1", this.x_scale).attr("x2", this.x_scale).style("stroke", "#ccc");
-    };
-
-    Interval_Map.prototype.fill_chr_areas = function() {
-      return this.svg.selectAll("rect.chr_fill_area_1").data(_.zip(this.chr_lengths, this.cumulative_chr_lengths), (function(_this) {
-        return function(d) {
-          return d;
-        };
-      })(this)).enter().append("rect").attr("class", "chr_fill_area_1").attr("x", (function(_this) {
-        return function(d, i) {
-          if (i === 0) {
-            return _this.x_scale(0);
-          } else {
-            return _this.x_scale(_this.cumulative_chr_lengths[i - 1]);
-          }
-        };
-      })(this)).attr("y", this.y_buffer).attr("width", (function(_this) {
-        return function(d) {
-          return _this.x_scale(d[0]);
-        };
-      })(this)).attr("height", this.plot_height - this.y_buffer).attr("fill", "white");
-    };
-
-    Interval_Map.prototype.add_chr_labels = function() {
-      var chr_info, chr_names, key;
-      chr_names = [];
-      for (key in this.chromosomes) {
-        chr_names.push(key);
-      }
-      chr_info = _.zip(chr_names, this.chr_lengths, this.cumulative_chr_lengths);
-      return this.svg.selectAll("text").data(chr_info, (function(_this) {
-        return function(d) {
-          return d;
-        };
-      })(this)).enter().append("text").text((function(_this) {
-        return function(d) {
-          return d[0];
-        };
-      })(this)).attr("x", (function(_this) {
-        return function(d) {
-          return _this.x_scale(d[2] - d[1] / 2);
-        };
-      })(this)).attr("y", this.plot_height * 0.1).attr("dx", "0em").attr("text-anchor", "middle").attr("font-family", "sans-serif").attr("font-size", "18px");
-    };
-
-    Interval_Map.prototype.connect_markers = function() {
-      return this.svg.selectAll("line").data(this.plot_coordinates).enter().append("line").attr("x1", (function(_this) {
-        return function(d, i) {
-          if (i === 0) {
-            return _this.x_buffer;
-          } else {
-            return parseFloat(_this.x_buffer) + ((parseFloat(_this.plot_width) - parseFloat(_this.x_buffer)) * _this.plot_coordinates[i - 1][0] / parseFloat(_this.x_max));
-          }
-        };
-      })(this)).attr("y1", (function(_this) {
-        return function(d, i) {
-          if (i === 0) {
-            return _this.plot_height;
-          } else {
-            return _this.plot_height - ((_this.plot_height - _this.y_buffer) * _this.plot_coordinates[i - 1][1] / _this.y_max);
-          }
-        };
-      })(this)).attr("x2", (function(_this) {
-        return function(d) {
-          return parseFloat(_this.x_buffer) + ((parseFloat(_this.plot_width) - parseFloat(_this.x_buffer)) * d[0] / parseFloat(_this.x_max));
-        };
-      })(this)).attr("y2", (function(_this) {
-        return function(d) {
-          return _this.plot_height - ((_this.plot_height - _this.y_buffer) * d[1] / _this.y_max);
-        };
-      })(this)).style("stroke", "black");
-    };
-
-    return Interval_Map;
-
-  })();
-  console.time('Create interval map');
-  console.log("TESTING");
-  new Interval_Map(600, 1200);
-  return console.timeEnd('Create interval map');
-});
diff --git a/wqflask/wqflask/static/new/javascript/manhattan_plot.coffee b/wqflask/wqflask/static/new/javascript/manhattan_plot.coffee
deleted file mode 100644
index d637183d..00000000
--- a/wqflask/wqflask/static/new/javascript/manhattan_plot.coffee
+++ /dev/null
@@ -1,372 +0,0 @@
-lodchart = () ->

-    width = 800

-    height = 500

-    margin = {left:60, top:40, right:40, bottom: 40, inner:5}

-    axispos = {xtitle:25, ytitle:30, xlabel:5, ylabel:5}

-    titlepos = 20

-    ylim = null

-    nyticks = 5

-    yticks = null

-    chrGap = 8

-    darkrect = "#F1F1F9"

-    lightrect = "#FBFBFF" 

-    lodlinecolor = "darkslateblue"

-    linewidth = 2

-    pointcolor = "darkslateblue" # pink

-    pointhover = "#E9CFEC" # pink

-    pointsize = 2 # default = no visible points at markers

-    pointstroke = "black"

-    title = ""

-    xlab = "Chromosome"

-    ylab = "LOD score"

-    rotate_ylab = null

-    yscale = d3.scale.linear()

-    xscale = null

-    pad4heatmap = false

-    lodcurve = null

-    lodvarname = null

-    markerSelect = null

-    chrSelect = null

-    pointsAtMarkers = true

-  

-    ## the main function

-    chart = (selection) ->

-      selection.each (data) ->

-        

-          

-        lodvarname = lodvarname ? data.lodnames[0]

-        data[lodvarname] = (Math.abs(x) for x in data[lodvarname]) # take absolute values

-        ylim = ylim ? [0, d3.max(data[lodvarname])]

-        lodvarnum = data.lodnames.indexOf(lodvarname)

-  

-        # Select the svg element, if it exists.

-        svg = d3.select(this).selectAll("svg").data([data])

-  

-        # Otherwise, create the skeletal chart.

-        gEnter = svg.enter().append("svg").append("g")

-  

-        # Update the outer dimensions.

-        svg.attr("width", width+margin.left+margin.right)

-           .attr("height", height+margin.top+margin.bottom)

-  

-        # Update the inner dimensions.

-        g = svg.select("g")

-  

-        # box

-        g.append("rect")

-         .attr("x", margin.left)

-         .attr("y", margin.top)

-         .attr("height", height)

-         .attr("width", width)

-         .attr("fill", darkrect)

-         .attr("stroke", "none")

-  

-        yscale.domain(ylim)

-              .range([height+margin.top, margin.top+margin.inner])

-  

-        # if yticks not provided, use nyticks to choose pretty ones

-        yticks = yticks ? yscale.ticks(nyticks)

-  

-        console.log("data:", data)

-  

-        # reorganize lod,pos by chromosomes

-        data = reorgLodData(data, lodvarname)

-  

-        # add chromosome scales (for x-axis)

-        data = chrscales(data, width, chrGap, margin.left, pad4heatmap)

-        xscale = data.xscale

-  

-        # chr rectangles

-        chrSelect =

-                  g.append("g").attr("class", "chrRect")

-                   .selectAll("empty")

-                   .data(data.chrnames)

-                   .enter()

-                   .append("rect")

-                   .attr("id", (d) -> "chrrect#{d[0]}")

-                   .attr("x", (d,i) ->

-                     return data.chrStart[i] if i==0 and pad4heatmap

-                     data.chrStart[i]-chrGap/2)

-                   .attr("width", (d,i) ->

-                      return data.chrEnd[i] - data.chrStart[i]+chrGap/2 if (i==0 or i+1 == data.chrnames.length) and pad4heatmap

-                      data.chrEnd[i] - data.chrStart[i]+chrGap)

-                   .attr("y", margin.top)

-                   .attr("height", height)

-                   .attr("fill", (d,i) ->

-                      return darkrect if i % 2

-                      lightrect)

-                   .attr("stroke", "none")

-                   .on("click", (d) ->

-                      redraw_plot(d)

-                    )   

-  

-        # x-axis labels

-        xaxis = g.append("g").attr("class", "x axis")

-        xaxis.selectAll("empty")

-             .data(data.chrnames)

-             .enter()

-             .append("text")

-             .text((d) -> d[0])

-             .attr("x", (d,i) -> (data.chrStart[i]+data.chrEnd[i])/2)

-             .attr("y", margin.top+height+axispos.xlabel)

-             .attr("dominant-baseline", "hanging")

-             .attr("text-anchor", "middle")

-             .attr("cursor", "pointer")

-             .on("click", (d) ->

-                 redraw_plot(d)

-              )   

-

-        xaxis.append("text").attr("class", "title")

-             .attr("y", margin.top+height+axispos.xtitle)

-             .attr("x", margin.left+width/2)

-             .attr("fill", "slateblue")

-             .text(xlab)

-

-

-        redraw_plot = (chr_ob) ->

-             console.log("chr_name is:", chr_ob[0])

-             console.log("chr_length is:", chr_ob[1])

-             $('#topchart').remove()

-             $('#chart_container').append('<div class="qtlcharts" id="topchart"></div>')

-             chr_plot = new Chr_Manhattan_Plot(600, 1200, chr_ob)

-

-

-        # y-axis

-        rotate_ylab = rotate_ylab ? (ylab.length > 1)

-        yaxis = g.append("g").attr("class", "y axis")

-        yaxis.selectAll("empty")

-             .data(yticks)

-             .enter()

-             .append("line")

-             .attr("y1", (d) -> yscale(d))

-             .attr("y2", (d) -> yscale(d))

-             .attr("x1", margin.left)

-             .attr("x2", margin.left+7)

-             .attr("fill", "none")

-             .attr("stroke", "white")

-             .attr("stroke-width", 1)

-             .style("pointer-events", "none")

-             

-        yaxis.selectAll("empty")

-             .data(yticks)

-             .enter()

-             .append("text")

-             .attr("y", (d) -> yscale(d))

-             .attr("x", margin.left-axispos.ylabel)

-             .attr("fill", "blue")

-             .attr("dominant-baseline", "middle")

-             .attr("text-anchor", "end")

-             .text((d) -> formatAxis(yticks)(d))

-             

-        yaxis.append("text").attr("class", "title")

-             .attr("y", margin.top+height/2)

-             .attr("x", margin.left-axispos.ytitle)

-             .text(ylab)

-             .attr("transform", if rotate_ylab then "rotate(270,#{margin.left-axispos.ytitle},#{margin.top+height/2})" else "")

-             .attr("text-anchor", "middle")

-             .attr("fill", "slateblue")

-

-

-        # points at markers

-        if pointsize > 0

-          markerpoints = g.append("g").attr("id", "markerpoints_visible")

-          markerpoints.selectAll("empty")

-                      .data(data.markers)

-                      .enter()

-                      .append("circle")

-                      .attr("cx", (d) -> xscale[d.chr](d.pos))

-                      .attr("cy", (d) -> yscale(d.lod))

-                      .attr("r", pointsize)

-                      .attr("fill", pointcolor)

-                      .attr("stroke", pointstroke)

-                      .attr("pointer-events", "hidden")

-  

-        # title

-        titlegrp = g.append("g").attr("class", "title")

-         .append("text")

-         .attr("x", margin.left+width/2)

-         .attr("y", margin.top-titlepos)

-         .text(title)

-  

-        # another box around edge

-        g.append("rect")

-         .attr("x", margin.left)

-         .attr("y", margin.top)

-         .attr("height", height)

-         .attr("width", () ->

-            return(data.chrEnd[-1..][0]-margin.left) if pad4heatmap

-            data.chrEnd[-1..][0]-margin.left+chrGap/2)

-         .attr("fill", "none")

-         .attr("stroke", "black")

-         .attr("stroke-width", "none")

-         

-        if pointsAtMarkers

-          # these hidden points are what gets selected...a bit larger

-          hiddenpoints = g.append("g").attr("id", "markerpoints_hidden")

-  

-          markertip = d3.tip()

-                        .attr('class', 'd3-tip')

-                        .html((d) ->

-                          [d.name, " LOD = #{d3.format('.2f')(d.lod)}"])

-                        .direction("e")

-                        .offset([0,10])

-          svg.call(markertip)

-  

-          markerSelect =

-            hiddenpoints.selectAll("empty")

-                        .data(data.markers)

-                        .enter()

-                        .append("circle")

-                        .attr("cx", (d) -> xscale[d.chr](d.pos))

-                        .attr("cy", (d) -> yscale(d.lod))

-                        .attr("id", (d) -> d.name)

-                        .attr("r", d3.max([pointsize*2, 3]))

-                        .attr("opacity", 0)

-                        .attr("fill", pointhover)

-                        .attr("stroke", pointstroke)

-                        .attr("stroke-width", "1")

-                        .on "mouseover.paneltip", (d) ->

-                           d3.select(this).attr("opacity", 1)

-                           markertip.show(d)

-                        .on "mouseout.paneltip", ->

-                           d3.select(this).attr("opacity", 0)

-                                          .call(markertip.hide)

-  

-    ## configuration parameters

-    chart.width = (value) ->

-      return width unless arguments.length

-      width = value

-      chart

-  

-    chart.height = (value) ->

-      return height unless arguments.length

-      height = value

-      chart

-  

-    chart.margin = (value) ->

-      return margin unless arguments.length

-      margin = value

-      chart

-  

-    chart.titlepos = (value) ->

-      return titlepos unless arguments.length

-      titlepos

-      chart

-  

-    chart.axispos = (value) ->

-      return axispos unless arguments.length

-      axispos = value

-      chart

-  

-    chart.ylim = (value) ->

-      return ylim unless arguments.length

-      ylim = value

-      chart

-      

-    chart.nyticks = (value) ->

-      return nyticks unless arguments.length

-      nyticks = value

-      chart

-  

-    chart.yticks = (value) ->

-      return yticks unless arguments.length

-      yticks = value

-      chart

-  

-    chart.chrGap = (value) ->

-      return chrGap unless arguments.length

-      chrGap = value

-      chart

-  

-    chart.darkrect = (value) ->

-      return darkrect unless arguments.length

-      darkrect = value

-      chart

-  

-    chart.lightrect = (value) ->

-      return lightrect unless arguments.length

-      lightrect = value

-      chart

-  

-    chart.linecolor = (value) ->

-      return linecolor unless arguments.length

-      linecolor = value

-      chart

-  

-    chart.linewidth = (value) ->

-      return linewidth unless arguments.length

-      linewidth = value

-      chart

-  

-    chart.pointcolor = (value) ->

-      return pointcolor unless arguments.length

-      pointcolor = value

-      chart

-  

-    chart.pointhover = (value) ->

-      return pointhover unless arguments.length

-      pointhover = value

-      chart

-  

-    chart.pointsize = (value) ->

-      return pointsize unless arguments.length

-      pointsize = value

-      chart

-  

-    chart.pointstroke = (value) ->

-      return pointstroke unless arguments.length

-      pointstroke = value

-      chart

-  

-    chart.title = (value) ->

-      return title unless arguments.length

-      title = value

-      chart

-  

-    chart.xlab = (value) ->

-      return xlab unless arguments.length

-      xlab = value

-      chart

-  

-    chart.ylab = (value) ->

-      return ylab unless arguments.length

-      ylab = value

-      chart

-  

-    chart.rotate_ylab = (value) ->

-      return rotate_ylab if !arguments.length

-      rotate_ylab = value

-      chart

-  

-    chart.lodvarname = (value) ->

-      return lodvarname unless arguments.length

-      lodvarname = value

-      chart

-  

-    chart.pad4heatmap = (value) ->

-      return pad4heatmap unless arguments.length

-      pad4heatmap = value

-      chart

-  

-    chart.pointsAtMarkers = (value) ->

-      return pointsAtMarkers unless arguments.length

-      pointsAtMarkers = value

-      chart

-  

-    chart.yscale = () ->

-      return yscale

-  

-    chart.xscale = () ->

-      return xscale

-  

-    #chart.lodcurve = () ->

-    #  return lodcurve

-  

-    chart.markerSelect = () ->

-      return markerSelect

-  

-    chart.chrSelect = () ->

-      return chrSelect

-  

-    # return the chart function

-    chart

diff --git a/wqflask/wqflask/static/new/javascript/manhattan_plot.js b/wqflask/wqflask/static/new/javascript/manhattan_plot.js
deleted file mode 100644
index 06004a1b..00000000
--- a/wqflask/wqflask/static/new/javascript/manhattan_plot.js
+++ /dev/null
@@ -1,341 +0,0 @@
-// Generated by CoffeeScript 1.8.0
-var lodchart;
-
-lodchart = function() {
-  var axispos, chart, chrGap, chrSelect, darkrect, height, lightrect, linewidth, lodcurve, lodlinecolor, lodvarname, margin, markerSelect, nyticks, pad4heatmap, pointcolor, pointhover, pointsAtMarkers, pointsize, pointstroke, rotate_ylab, title, titlepos, width, xlab, xscale, ylab, ylim, yscale, yticks;
-  width = 800;
-  height = 500;
-  margin = {
-    left: 60,
-    top: 40,
-    right: 40,
-    bottom: 40,
-    inner: 5
-  };
-  axispos = {
-    xtitle: 25,
-    ytitle: 30,
-    xlabel: 5,
-    ylabel: 5
-  };
-  titlepos = 20;
-  ylim = null;
-  nyticks = 5;
-  yticks = null;
-  chrGap = 8;
-  darkrect = "#F1F1F9";
-  lightrect = "#FBFBFF";
-  lodlinecolor = "darkslateblue";
-  linewidth = 2;
-  pointcolor = "darkslateblue";
-  pointhover = "#E9CFEC";
-  pointsize = 2;
-  pointstroke = "black";
-  title = "";
-  xlab = "Chromosome";
-  ylab = "LOD score";
-  rotate_ylab = null;
-  yscale = d3.scale.linear();
-  xscale = null;
-  pad4heatmap = false;
-  lodcurve = null;
-  lodvarname = null;
-  markerSelect = null;
-  chrSelect = null;
-  pointsAtMarkers = true;
-  chart = function(selection) {
-    return selection.each(function(data) {
-      var g, gEnter, hiddenpoints, lodvarnum, markerpoints, markertip, redraw_plot, svg, titlegrp, x, xaxis, yaxis;
-      lodvarname = lodvarname != null ? lodvarname : data.lodnames[0];
-      data[lodvarname] = (function() {
-        var _i, _len, _ref, _results;
-        _ref = data[lodvarname];
-        _results = [];
-        for (_i = 0, _len = _ref.length; _i < _len; _i++) {
-          x = _ref[_i];
-          _results.push(Math.abs(x));
-        }
-        return _results;
-      })();
-      ylim = ylim != null ? ylim : [0, d3.max(data[lodvarname])];
-      lodvarnum = data.lodnames.indexOf(lodvarname);
-      svg = d3.select(this).selectAll("svg").data([data]);
-      gEnter = svg.enter().append("svg").append("g");
-      svg.attr("width", width + margin.left + margin.right).attr("height", height + margin.top + margin.bottom);
-      g = svg.select("g");
-      g.append("rect").attr("x", margin.left).attr("y", margin.top).attr("height", height).attr("width", width).attr("fill", darkrect).attr("stroke", "none");
-      yscale.domain(ylim).range([height + margin.top, margin.top + margin.inner]);
-      yticks = yticks != null ? yticks : yscale.ticks(nyticks);
-      console.log("data:", data);
-      data = reorgLodData(data, lodvarname);
-      data = chrscales(data, width, chrGap, margin.left, pad4heatmap);
-      xscale = data.xscale;
-      chrSelect = g.append("g").attr("class", "chrRect").selectAll("empty").data(data.chrnames).enter().append("rect").attr("id", function(d) {
-        return "chrrect" + d[0];
-      }).attr("x", function(d, i) {
-        if (i === 0 && pad4heatmap) {
-          return data.chrStart[i];
-        }
-        return data.chrStart[i] - chrGap / 2;
-      }).attr("width", function(d, i) {
-        if ((i === 0 || i + 1 === data.chrnames.length) && pad4heatmap) {
-          return data.chrEnd[i] - data.chrStart[i] + chrGap / 2;
-        }
-        return data.chrEnd[i] - data.chrStart[i] + chrGap;
-      }).attr("y", margin.top).attr("height", height).attr("fill", function(d, i) {
-        if (i % 2) {
-          return darkrect;
-        }
-        return lightrect;
-      }).attr("stroke", "none").on("click", function(d) {
-        return redraw_plot(d);
-      });
-      xaxis = g.append("g").attr("class", "x axis");
-      xaxis.selectAll("empty").data(data.chrnames).enter().append("text").text(function(d) {
-        return d[0];
-      }).attr("x", function(d, i) {
-        return (data.chrStart[i] + data.chrEnd[i]) / 2;
-      }).attr("y", margin.top + height + axispos.xlabel).attr("dominant-baseline", "hanging").attr("text-anchor", "middle").attr("cursor", "pointer").on("click", function(d) {
-        return redraw_plot(d);
-      });
-      xaxis.append("text").attr("class", "title").attr("y", margin.top + height + axispos.xtitle).attr("x", margin.left + width / 2).attr("fill", "slateblue").text(xlab);
-      redraw_plot = function(chr_ob) {
-        var chr_plot;
-        console.log("chr_name is:", chr_ob[0]);
-        console.log("chr_length is:", chr_ob[1]);
-        $('#topchart').remove();
-        $('#chart_container').append('<div class="qtlcharts" id="topchart"></div>');
-        return chr_plot = new Chr_Manhattan_Plot(600, 1200, chr_ob);
-      };
-      rotate_ylab = rotate_ylab != null ? rotate_ylab : ylab.length > 1;
-      yaxis = g.append("g").attr("class", "y axis");
-      yaxis.selectAll("empty").data(yticks).enter().append("line").attr("y1", function(d) {
-        return yscale(d);
-      }).attr("y2", function(d) {
-        return yscale(d);
-      }).attr("x1", margin.left).attr("x2", margin.left + 7).attr("fill", "none").attr("stroke", "white").attr("stroke-width", 1).style("pointer-events", "none");
-      yaxis.selectAll("empty").data(yticks).enter().append("text").attr("y", function(d) {
-        return yscale(d);
-      }).attr("x", margin.left - axispos.ylabel).attr("fill", "blue").attr("dominant-baseline", "middle").attr("text-anchor", "end").text(function(d) {
-        return formatAxis(yticks)(d);
-      });
-      yaxis.append("text").attr("class", "title").attr("y", margin.top + height / 2).attr("x", margin.left - axispos.ytitle).text(ylab).attr("transform", rotate_ylab ? "rotate(270," + (margin.left - axispos.ytitle) + "," + (margin.top + height / 2) + ")" : "").attr("text-anchor", "middle").attr("fill", "slateblue");
-      if (pointsize > 0) {
-        markerpoints = g.append("g").attr("id", "markerpoints_visible");
-        markerpoints.selectAll("empty").data(data.markers).enter().append("circle").attr("cx", function(d) {
-          return xscale[d.chr](d.pos);
-        }).attr("cy", function(d) {
-          return yscale(d.lod);
-        }).attr("r", pointsize).attr("fill", pointcolor).attr("stroke", pointstroke).attr("pointer-events", "hidden");
-      }
-      titlegrp = g.append("g").attr("class", "title").append("text").attr("x", margin.left + width / 2).attr("y", margin.top - titlepos).text(title);
-      g.append("rect").attr("x", margin.left).attr("y", margin.top).attr("height", height).attr("width", function() {
-        if (pad4heatmap) {
-          return data.chrEnd.slice(-1)[0] - margin.left;
-        }
-        return data.chrEnd.slice(-1)[0] - margin.left + chrGap / 2;
-      }).attr("fill", "none").attr("stroke", "black").attr("stroke-width", "none");
-      if (pointsAtMarkers) {
-        hiddenpoints = g.append("g").attr("id", "markerpoints_hidden");
-        markertip = d3.tip().attr('class', 'd3-tip').html(function(d) {
-          return [d.name, " LOD = " + (d3.format('.2f')(d.lod))];
-        }).direction("e").offset([0, 10]);
-        svg.call(markertip);
-        return markerSelect = hiddenpoints.selectAll("empty").data(data.markers).enter().append("circle").attr("cx", function(d) {
-          return xscale[d.chr](d.pos);
-        }).attr("cy", function(d) {
-          return yscale(d.lod);
-        }).attr("id", function(d) {
-          return d.name;
-        }).attr("r", d3.max([pointsize * 2, 3])).attr("opacity", 0).attr("fill", pointhover).attr("stroke", pointstroke).attr("stroke-width", "1").on("mouseover.paneltip", function(d) {
-          d3.select(this).attr("opacity", 1);
-          return markertip.show(d);
-        }).on("mouseout.paneltip", function() {
-          return d3.select(this).attr("opacity", 0).call(markertip.hide);
-        });
-      }
-    });
-  };
-  chart.width = function(value) {
-    if (!arguments.length) {
-      return width;
-    }
-    width = value;
-    return chart;
-  };
-  chart.height = function(value) {
-    if (!arguments.length) {
-      return height;
-    }
-    height = value;
-    return chart;
-  };
-  chart.margin = function(value) {
-    if (!arguments.length) {
-      return margin;
-    }
-    margin = value;
-    return chart;
-  };
-  chart.titlepos = function(value) {
-    if (!arguments.length) {
-      return titlepos;
-    }
-    titlepos;
-    return chart;
-  };
-  chart.axispos = function(value) {
-    if (!arguments.length) {
-      return axispos;
-    }
-    axispos = value;
-    return chart;
-  };
-  chart.ylim = function(value) {
-    if (!arguments.length) {
-      return ylim;
-    }
-    ylim = value;
-    return chart;
-  };
-  chart.nyticks = function(value) {
-    if (!arguments.length) {
-      return nyticks;
-    }
-    nyticks = value;
-    return chart;
-  };
-  chart.yticks = function(value) {
-    if (!arguments.length) {
-      return yticks;
-    }
-    yticks = value;
-    return chart;
-  };
-  chart.chrGap = function(value) {
-    if (!arguments.length) {
-      return chrGap;
-    }
-    chrGap = value;
-    return chart;
-  };
-  chart.darkrect = function(value) {
-    if (!arguments.length) {
-      return darkrect;
-    }
-    darkrect = value;
-    return chart;
-  };
-  chart.lightrect = function(value) {
-    if (!arguments.length) {
-      return lightrect;
-    }
-    lightrect = value;
-    return chart;
-  };
-  chart.linecolor = function(value) {
-    var linecolor;
-    if (!arguments.length) {
-      return linecolor;
-    }
-    linecolor = value;
-    return chart;
-  };
-  chart.linewidth = function(value) {
-    if (!arguments.length) {
-      return linewidth;
-    }
-    linewidth = value;
-    return chart;
-  };
-  chart.pointcolor = function(value) {
-    if (!arguments.length) {
-      return pointcolor;
-    }
-    pointcolor = value;
-    return chart;
-  };
-  chart.pointhover = function(value) {
-    if (!arguments.length) {
-      return pointhover;
-    }
-    pointhover = value;
-    return chart;
-  };
-  chart.pointsize = function(value) {
-    if (!arguments.length) {
-      return pointsize;
-    }
-    pointsize = value;
-    return chart;
-  };
-  chart.pointstroke = function(value) {
-    if (!arguments.length) {
-      return pointstroke;
-    }
-    pointstroke = value;
-    return chart;
-  };
-  chart.title = function(value) {
-    if (!arguments.length) {
-      return title;
-    }
-    title = value;
-    return chart;
-  };
-  chart.xlab = function(value) {
-    if (!arguments.length) {
-      return xlab;
-    }
-    xlab = value;
-    return chart;
-  };
-  chart.ylab = function(value) {
-    if (!arguments.length) {
-      return ylab;
-    }
-    ylab = value;
-    return chart;
-  };
-  chart.rotate_ylab = function(value) {
-    if (!arguments.length) {
-      return rotate_ylab;
-    }
-    rotate_ylab = value;
-    return chart;
-  };
-  chart.lodvarname = function(value) {
-    if (!arguments.length) {
-      return lodvarname;
-    }
-    lodvarname = value;
-    return chart;
-  };
-  chart.pad4heatmap = function(value) {
-    if (!arguments.length) {
-      return pad4heatmap;
-    }
-    pad4heatmap = value;
-    return chart;
-  };
-  chart.pointsAtMarkers = function(value) {
-    if (!arguments.length) {
-      return pointsAtMarkers;
-    }
-    pointsAtMarkers = value;
-    return chart;
-  };
-  chart.yscale = function() {
-    return yscale;
-  };
-  chart.xscale = function() {
-    return xscale;
-  };
-  chart.markerSelect = function() {
-    return markerSelect;
-  };
-  chart.chrSelect = function() {
-    return chrSelect;
-  };
-  return chart;
-};
diff --git a/wqflask/wqflask/static/new/javascript/marker_regression.coffee b/wqflask/wqflask/static/new/javascript/marker_regression.coffee
deleted file mode 100755
index d522b667..00000000
--- a/wqflask/wqflask/static/new/javascript/marker_regression.coffee
+++ /dev/null
@@ -1,512 +0,0 @@
-root = exports ? this
-
-class Lod_Chart

-

-    darkrect = "#F1F1F9"

-    lightrect = "#FBFBFF"

-    hoverrect = "#E9CFEC"

-
-    constructor: (@height = 800, @width = 1200) ->
-        @qtl_results = js_data.qtl_results
-        console.log("qtl_results are:", @qtl_results)
-        @chromosomes = js_data.chromosomes
-        console.log("chromosomes are:", @chromosomes)

-        

-        #For the description in the legend

-        @this_trait = js_data.this_trait

-        @data_set = js_data.data_set

-        @maf = js_data.maf #Minor allele frequency

-        

-        @suggestive = js_data.suggestive

-        @significant = js_data.significant

-        
-        @total_length = 0
-
-        @max_chr = @get_max_chr()
-
-        @x_coords = []
-        @y_coords = []
-        @marker_names = []
-        console.time('Create coordinates')
-        @get_qtl_count()
-        @create_coordinates()
-        console.log("@x_coords: ", @x_coords)
-        console.log("@y_coords: ", @y_coords)
-        console.timeEnd('Create coordinates')
-        [@chr_lengths, @cumulative_chr_lengths] = @get_chr_lengths()
-
-        # Buffer to allow for the ticks/labels to be drawn
-        @x_buffer = @width/30
-        @y_buffer = @height/20

-        @legend_buffer = 30 #Height minus buffer for legend
-        
-        #@x_max = d3.max(@x_coords)
-        @x_max = @total_length
-        console.log("@x_max: ", @x_max)
-        console.log("@x_buffer: ", @x_buffer)
-        @y_max = d3.max(@y_coords) * 1.2
-
-        #@y_threshold = @get_lod_threshold()
-
-        @svg = @create_svg()
-        console.log("svg created")
-
-        @plot_coordinates = _.zip(@x_coords, @y_coords, @marker_names)
-        console.log("coordinates:", @plot_coordinates)
-        
-        @height -= @y_buffer
-
-        @create_scales()
-
-        console.time('Create graph')
-        @create_graph()
-        console.timeEnd('Create graph')
-
-    get_max_chr: () ->
-        max_chr = 0
-        for result in @qtl_results
-            chr = parseInt(result.chr)
-            if not _.isNaN(chr) 
-                if chr > max_chr
-                    max_chr = chr

-                    

-        console.log("max_chr", max_chr)
-        return max_chr
-
-    get_chr_lengths: () ->
-        ###
-        #Gets a list of both individual and cumulative (the position of one on the graph
-        #is its own length plus the lengths of all preceding chromosomes) lengths in order
-        #to draw the vertical lines separating chromosomes and the chromosome labels
-        #
-        ###
-        
-        cumulative_chr_lengths = []
-        chr_lengths = []
-        total_length = 0
-        for key of @chromosomes
-            this_length = @chromosomes[key]
-            chr_lengths.push(this_length)
-            cumulative_chr_lengths.push(total_length + this_length)
-            total_length += this_length
-
-        console.log("chr_lengths: ", chr_lengths)
-
-        return [chr_lengths, cumulative_chr_lengths]
-
-    get_qtl_count: () ->
-        high_qtl_count = 0
-        for result in js_data.qtl_results
-            if result.lod_score > 1
-                high_qtl_count += 1
-        console.log("high_qtl_count:", high_qtl_count)
-        
-        #if high_qtl_count > 10000
-        @y_axis_filter = 0
-        #else if high_qtl_count > 1000
-        #    @y_axis_filter = 1
-        #else
-        #    @y_axis_filter = 0
-
-
-    create_coordinates: () -> 
-        chr_lengths = []
-        chr_seen = []
-        for result in js_data.qtl_results
-            if result.chr == "X"
-                chr_length = parseFloat(@chromosomes[13])
-            else
-                chr_length = parseFloat(@chromosomes[result.chr])
-            if not(result.chr in chr_seen)
-                chr_seen.push(result.chr) 
-                chr_lengths.push(chr_length)
-                console.log("result.chr:", result.chr)
-                console.log("total_length:", @total_length)
-                if parseInt(result.chr) != 1
-                    console.log("plus:", chr_lengths.length - 2)

-                    console.log("chr_lengths.length", chr_lengths.length)
-                    @total_length += parseFloat(chr_lengths[chr_lengths.length - 2])
-            if result.lod_score > @y_axis_filter
-                @x_coords.push(@total_length + parseFloat(result.Mb))
-                @y_coords.push(result.lod_score)
-                @marker_names.push(result.name)
-        @total_length += parseFloat(chr_lengths[chr_lengths.length-1])
-
-    show_marker_in_table: (marker_info) ->
-        console.log("in show_marker_in_table")
-        ### Searches for the select marker in the results table below ###
-        if marker_info
-            marker_name = marker_info[2]
-            $("#qtl_results_filter").find("input:first").val(marker_name).trigger('change')
-        #else
-        #    marker_name = ""
-        #$("#qtl_results_filter").find("input:first").val(marker_name).change()
-
-    create_svg: () ->
-        svg = d3.select("#manhattan_plot")
-            .append("svg")
-            .attr("class", "manhattan_plot")
-            .attr("width", @width+@x_buffer)
-            .attr("height", @height+@y_buffer)
-            .append("g")
-            #.call(d3.behavior.zoom().x(@x_scale).y(@y_scale).scaleExtent([1,8]).on("zoom", () ->
-            #    @svg.selectAll("circle")
-            #        .attr("transform", transform)
-            #))
-        return svg
-
-    #zoom: () ->
-    #    #@svg.selectAll.attr("transform", @transform)
-    #    @svg.selectAll("circle")
-    #        .attr("transform", transform)
-    #        
-    #transform: (d) ->
-    #    return "translate(" + @x_scale(d[0]) + "," + @y_scale(d[1]) + ")"
-
-    create_graph: () ->

-        @create_legend()
-        @add_border()
-        @add_x_axis()
-        @add_y_axis()
-        @add_axis_labels()
-        @add_chr_lines()
-        @fill_chr_areas()
-        @add_chr_labels()
-        @add_plot_points()
-        
-        #@create_zoom_pane()
-

-    create_legend: () ->

-        @svg.append("text")

-            .attr("class", "legend")

-            .text("Trait: " + @this_trait + " : " + @data_set)

-            .attr("x", @x_buffer)

-            .attr("y", 20)

-            .attr("dx", "0em")

-            .attr("text-anchor", "left")

-            .attr("font-family", "sans-serif")

-            .attr("font-size", "16px")

-            .attr("fill", "black")

-            

-        @svg.append("text")

-            .attr("class", "legend")

-            .text("MAF: " + @maf)

-            .attr("x", @x_buffer)

-            .attr("y", 38)

-            .attr("dx", "0em")

-            .attr("text-anchor", "left")

-            .attr("font-family", "sans-serif")

-            .attr("font-size", "16px")

-            .attr("fill", "black")

-            

-
-    add_border: () ->
-        border_coords = [[@y_buffer + @legend_buffer, @height, @x_buffer, @x_buffer],
-                         [@y_buffer + @legend_buffer, @height, @width, @width],
-                         [@y_buffer + @legend_buffer, @y_buffer + @legend_buffer, @x_buffer, @width],
-                         [@height, @height, @x_buffer, @width]]
-
-        @svg.selectAll("line")
-            .data(border_coords)
-            .enter()
-            .append("line")
-            .attr("y1", (d) =>
-                return d[0]
-            )
-            .attr("y2", (d) =>
-                return d[1]
-            )
-            .attr("x1", (d) =>
-                return d[2]
-            )
-            .attr("x2", (d) =>
-                return d[3]
-            )             
-            .style("stroke", "#000")
-
-    create_scales: () ->
-        #@x_scale = d3.scale.linear()
-        #    .domain([0, d3.max(@x_coords)])
-        #    .range([@x_buffer, @width])

-        console.log("y_axis_filter:", @y_axis_filter)
-        if '24' of @chromosomes
-            console.log("@chromosomes[24]:", @chromosomes['24'])
-            console.log("@chromosomes[23]:", @chromosomes['23'])
-            console.log("@total_length:", @total_length)
-            console.log("d3.max(@xcoords):", d3.max(@x_coords))
-            @x_scale = d3.scale.linear()
-                .domain([0, (@total_length + @chromosomes['24'])])
-                .range([@x_buffer, @width])
-        else
-            @x_scale = d3.scale.linear()
-                .domain([0, (@total_length + @chromosomes['20'])])
-                .range([@x_buffer, @width])
-        @y_scale = d3.scale.linear()
-            .domain([@y_axis_filter, @y_max])
-            .range([@height, @y_buffer + @legend_buffer])
-
-    create_x_axis_tick_values: () ->
-        tick_vals = []
-        for val in [25..@cumulative_chr_lengths[0]] when val%25 == 0
-            tick_vals.push(val)
-            
-        for length, i in @cumulative_chr_lengths
-            if i == 0
-                continue
-            chr_ticks = []
-            tick_count = Math.floor(@chr_lengths[i]/25)
-            tick_val = parseInt(@cumulative_chr_lengths[i-1])
-            for tick in [0..(tick_count-1)]
-                tick_val += 25
-                chr_ticks.push(tick_val)
-            Array::push.apply tick_vals, chr_ticks    
-                
-        #console.log("tick_vals:", tick_vals)
-        return tick_vals
-
-    add_x_axis: () ->
-        @xAxis = d3.svg.axis()
-                .scale(@x_scale)
-                .orient("bottom")
-                .tickValues(@create_x_axis_tick_values())
-
-        next_chr = 1
-        tmp_tick_val = 0
-        @xAxis.tickFormat((d) =>
-            d3.format("d") #format as integer
-            if d < @cumulative_chr_lengths[0]
-                tick_val = d
-            else
-                next_chr_length = @cumulative_chr_lengths[next_chr]
-                if d > next_chr_length
-                    next_chr += 1
-                    tmp_tick_val = 25
-                    tick_val = tmp_tick_val
-                else
-                    tmp_tick_val += 25
-                    tick_val = tmp_tick_val
-            return (tick_val)
-        )
-
-        @svg.append("g")
-            .attr("class", "x_axis")
-            .attr("transform", "translate(0," + @height + ")")
-            .call(@xAxis)
-            .selectAll("text")
-                .attr("text-anchor", "right")
-                .attr("dx", "-1.6em")
-                .attr("transform", (d) =>
-                    return "translate(-12,0) rotate(-90)"
-                )
-                #.attr("dy", "-1.0em")
-
-    add_y_axis: () ->
-        @yAxis = d3.svg.axis()
-            .scale(@y_scale)
-            .orient("left")
-            .ticks(5)
-        
-        @svg.append("g")
-            .attr("class", "y_axis")
-            .attr("transform", "translate(" + @x_buffer + ",0)")
-            .call(@yAxis)
-
-    add_axis_labels: () ->
-        @svg.append("text")
-            .attr("transform","rotate(-90)")
-            .attr("y", 0 - (@height / 2))
-            .attr("x", @x_buffer)
-            .attr("dy", "1em")
-            .style("text-anchor", "middle")
-            .text("LOD Score")
-
-    add_chr_lines: () ->
-        @svg.selectAll("line")
-            .data(@cumulative_chr_lengths, (d) =>
-                return d
-            )
-            .enter()
-            .append("line")
-            .attr("x1", @x_scale)
-            .attr("x2", @x_scale)
-            .attr("y1", @y_buffer + @legend_buffer)
-            .attr("y2", @height)
-            .style("stroke", "#ccc")
-            
-            
-    fill_chr_areas: () ->
-        console.log("cumu_chr_lengths:", @cumulative_chr_lengths)
-        console.log("example:", @x_scale(@cumulative_chr_lengths[0]))
-        @svg.selectAll("rect.chr_fill_area")
-            .data(_.zip(@chr_lengths, @cumulative_chr_lengths), (d) =>
-                return d
-            )
-            .enter()
-            .append("rect")

-            .attr("id", (d, i) =>

-                return "chr_fill_area_" + i)
-            .attr("x", (d, i) =>
-                return @x_scale(d[1] - d[0])
-            )
-            .attr("y", @y_buffer + @legend_buffer + 2)
-            .attr("width", (d, i) =>
-                starting = @x_scale(d[1] - d[0])
-                ending = @x_scale(@cumulative_chr_lengths[i])
-                width = ending - starting
-                console.log("width:", d[0])
-                return width
-            )
-            .attr("height", @height-@y_buffer - @legend_buffer-3)
-            .attr("fill", (d, i) =>
-                if (i+1)%2
-                    return darkrect
-                else
-                    return lightrect
-            )

-            .on("mouseover", (d, i) =>

-                this_id = "chr_fill_area_" + i

-                console.log("this_id:", this_id)

-                d3.select("#" + this_id)

-                    .attr("fill", hoverrect)

-            )

-            .on("mouseout", (d, i) =>

-                this_id = "chr_fill_area_" + i

-                d3.select("#" + this_id)

-                    .attr("fill", () =>

-                        if (i+1)%2

-                            return darkrect

-                        else

-                            return lightrect

-                    )

-            )
-
-    add_chr_labels: () ->
-        chr_names = []
-        for key of @chromosomes
-            chr_names.push(key)
-        chr_info = _.zip(chr_names, @chr_lengths, @cumulative_chr_lengths)
-        @svg.selectAll("text")
-            .data(chr_info, (d) =>
-                return d
-            )
-            .enter()
-            .append("text")
-            .attr("class", "chr_label")
-            .text((d) =>

-                if @max_chr == 23
-                    if d[0] == "23"
-                        return "X"
-                    else if d[0] == "24"
-                        return "X/Y"

-                    else

-                        return d[0]

-                else if @max_chr == 19

-                    if d[0] == "20"

-                        return "X"
-                    else
-                        return d[0]
-            )
-            .attr("x", (d) =>
-                return @x_scale(d[2] - d[1]/2)
-            )
-            .attr("y", @height * 0.1 + @legend_buffer)
-            .attr("dx", "0em")
-            .attr("text-anchor", "middle")
-            .attr("font-family", "sans-serif")
-            .attr("font-size", "18px")
-            .attr("cursor", "pointer")
-            .attr("fill", "black")
-            .on("click", (d) =>
-                @redraw_plot(d)
-            )
-
-    add_plot_points: () ->
-        @plot_point = @svg.selectAll("circle")
-            .data(@plot_coordinates)
-            .enter()
-            .append("circle")
-            .attr("cx", (d) =>
-                return @x_scale(d[0])
-            )
-            .attr("cy", (d) =>
-                return @y_scale(d[1])
-            )
-            .attr("r", (d) =>
-                #if d[1] > 3
-                #    return 3
-                #else
-                return 2
-            )
-            .attr("fill", (d) =>
-                #if d[1] > 3
-                #    return "white"
-                #else
-                return "black"
-            )
-            .attr("stroke", "black")
-            .attr("stroke-width", "1")
-            .attr("id", (d) =>
-                return "point_" + String(d[2])
-            )
-            .classed("circle", true)
-            .on("mouseover", (d) =>
-                console.log("d3.event is:", d3.event)
-                console.log("d is:", d)
-                this_id = "point_" + String(d[2])
-                d3.select("#" + this_id).classed("d3_highlight", true)
-                    .attr("r", 5)
-                    .attr("stroke", "none")
-                    .attr("fill", "blue")
-                    .call(@show_marker_in_table(d))
-            )
-            .on("mouseout", (d) =>
-                this_id = "point_" + String(d[2])
-                d3.select("#" + this_id).classed("d3_highlight", false)
-                    .attr("r", (d) =>
-                        #if d[1] > 2
-                        #    return 3
-                        #else
-                        return 2
-                    )
-                    .attr("fill", (d) =>
-                        #if d[1] > 2
-                        #    return "white"
-                        #else
-                        return "black"
-                    )
-                    .attr("stroke", "black")
-                    .attr("stroke-width", "1")
-            )
-            .append("svg:title")
-                .text((d) =>
-                    return d[2]
-                )
-            
-    redraw_plot: (chr_ob) ->
-        console.log("chr_name is:", chr_ob[0])
-        console.log("chr_length is:", chr_ob[1])
-        $('#manhattan_plot').remove()
-        $('#manhattan_plot_container').append('<div id="manhattan_plot"></div>')
-        root.chr_plot = new Chr_Manhattan_Plot(600, 1200, chr_ob)
-        
-
-    create_zoom_pane: () ->
-        zoom = d3.behavior.zoom()
-            .on("zoom", draw);
-            
-        @svg.append("rect")
-            .attr("class", "pane")
-            .attr("width", @width)
-            .attr("height", @height)
-            .call(zoom)
-    
-    draw: () ->
-      @svg.select("g.x_axis").call(@xAxis);
-      @svg.select("g.y_axis").call(@yAxis);
-      @svg.select("path.area").attr("d", area);
-      @svg.select("path.line").attr("d", line);
-    
-    
-#root.LodChart = Lod_Chart
-
-new Lod_Chart(600, 1200)
\ No newline at end of file
diff --git a/wqflask/wqflask/static/new/javascript/marker_regression.js b/wqflask/wqflask/static/new/javascript/marker_regression.js
deleted file mode 100755
index ba79df67..00000000
--- a/wqflask/wqflask/static/new/javascript/marker_regression.js
+++ /dev/null
@@ -1,454 +0,0 @@
-// Generated by CoffeeScript 1.8.0
-var Lod_Chart, root,
-  __indexOf = [].indexOf || function(item) { for (var i = 0, l = this.length; i < l; i++) { if (i in this && this[i] === item) return i; } return -1; };
-
-root = typeof exports !== "undefined" && exports !== null ? exports : this;
-
-Lod_Chart = (function() {
-  var darkrect, hoverrect, lightrect;
-
-  darkrect = "#F1F1F9";
-
-  lightrect = "#FBFBFF";
-
-  hoverrect = "#E9CFEC";
-
-  function Lod_Chart(height, width) {
-    var _ref;
-    this.height = height != null ? height : 800;
-    this.width = width != null ? width : 1200;
-    this.qtl_results = js_data.qtl_results;
-    console.log("qtl_results are:", this.qtl_results);
-    this.chromosomes = js_data.chromosomes;
-    console.log("chromosomes are:", this.chromosomes);
-    this.this_trait = js_data.this_trait;
-    this.data_set = js_data.data_set;
-    this.maf = js_data.maf;
-    this.suggestive = js_data.suggestive;
-    this.significant = js_data.significant;
-    this.total_length = 0;
-    this.max_chr = this.get_max_chr();
-    this.x_coords = [];
-    this.y_coords = [];
-    this.marker_names = [];
-    console.time('Create coordinates');
-    this.get_qtl_count();
-    this.create_coordinates();
-    console.log("@x_coords: ", this.x_coords);
-    console.log("@y_coords: ", this.y_coords);
-    console.timeEnd('Create coordinates');
-    _ref = this.get_chr_lengths(), this.chr_lengths = _ref[0], this.cumulative_chr_lengths = _ref[1];
-    this.x_buffer = this.width / 30;
-    this.y_buffer = this.height / 20;
-    this.legend_buffer = 30;
-    this.x_max = this.total_length;
-    console.log("@x_max: ", this.x_max);
-    console.log("@x_buffer: ", this.x_buffer);
-    this.y_max = d3.max(this.y_coords) * 1.2;
-    this.svg = this.create_svg();
-    console.log("svg created");
-    this.plot_coordinates = _.zip(this.x_coords, this.y_coords, this.marker_names);
-    console.log("coordinates:", this.plot_coordinates);
-    this.height -= this.y_buffer;
-    this.create_scales();
-    console.time('Create graph');
-    this.create_graph();
-    console.timeEnd('Create graph');
-  }
-
-  Lod_Chart.prototype.get_max_chr = function() {
-    var chr, max_chr, result, _i, _len, _ref;
-    max_chr = 0;
-    _ref = this.qtl_results;
-    for (_i = 0, _len = _ref.length; _i < _len; _i++) {
-      result = _ref[_i];
-      chr = parseInt(result.chr);
-      if (!_.isNaN(chr)) {
-        if (chr > max_chr) {
-          max_chr = chr;
-        }
-      }
-    }
-    console.log("max_chr", max_chr);
-    return max_chr;
-  };
-
-  Lod_Chart.prototype.get_chr_lengths = function() {
-
-    /*
-     *Gets a list of both individual and cumulative (the position of one on the graph
-     *is its own length plus the lengths of all preceding chromosomes) lengths in order
-     *to draw the vertical lines separating chromosomes and the chromosome labels
-     *
-     */
-    var chr_lengths, cumulative_chr_lengths, key, this_length, total_length;
-    cumulative_chr_lengths = [];
-    chr_lengths = [];
-    total_length = 0;
-    for (key in this.chromosomes) {
-      this_length = this.chromosomes[key];
-      chr_lengths.push(this_length);
-      cumulative_chr_lengths.push(total_length + this_length);
-      total_length += this_length;
-    }
-    console.log("chr_lengths: ", chr_lengths);
-    return [chr_lengths, cumulative_chr_lengths];
-  };
-
-  Lod_Chart.prototype.get_qtl_count = function() {
-    var high_qtl_count, result, _i, _len, _ref;
-    high_qtl_count = 0;
-    _ref = js_data.qtl_results;
-    for (_i = 0, _len = _ref.length; _i < _len; _i++) {
-      result = _ref[_i];
-      if (result.lod_score > 1) {
-        high_qtl_count += 1;
-      }
-    }
-    console.log("high_qtl_count:", high_qtl_count);
-    return this.y_axis_filter = 0;
-  };
-
-  Lod_Chart.prototype.create_coordinates = function() {
-    var chr_length, chr_lengths, chr_seen, result, _i, _len, _ref, _ref1;
-    chr_lengths = [];
-    chr_seen = [];
-    _ref = js_data.qtl_results;
-    for (_i = 0, _len = _ref.length; _i < _len; _i++) {
-      result = _ref[_i];
-      if (result.chr === "X") {
-        chr_length = parseFloat(this.chromosomes[13]);
-      } else {
-        chr_length = parseFloat(this.chromosomes[result.chr]);
-      }
-      if (!(_ref1 = result.chr, __indexOf.call(chr_seen, _ref1) >= 0)) {
-        chr_seen.push(result.chr);
-        chr_lengths.push(chr_length);
-        console.log("result.chr:", result.chr);
-        console.log("total_length:", this.total_length);
-        if (parseInt(result.chr) !== 1) {
-          console.log("plus:", chr_lengths.length - 2);
-          console.log("chr_lengths.length", chr_lengths.length);
-          this.total_length += parseFloat(chr_lengths[chr_lengths.length - 2]);
-        }
-      }
-      if (result.lod_score > this.y_axis_filter) {
-        this.x_coords.push(this.total_length + parseFloat(result.Mb));
-        this.y_coords.push(result.lod_score);
-        this.marker_names.push(result.name);
-      }
-    }
-    return this.total_length += parseFloat(chr_lengths[chr_lengths.length - 1]);
-  };
-
-  Lod_Chart.prototype.show_marker_in_table = function(marker_info) {
-    var marker_name;
-    console.log("in show_marker_in_table");
-
-    /* Searches for the select marker in the results table below */
-    if (marker_info) {
-      marker_name = marker_info[2];
-      return $("#qtl_results_filter").find("input:first").val(marker_name).trigger('change');
-    }
-  };
-
-  Lod_Chart.prototype.create_svg = function() {
-    var svg;
-    svg = d3.select("#manhattan_plot").append("svg").attr("class", "manhattan_plot").attr("width", this.width + this.x_buffer).attr("height", this.height + this.y_buffer).append("g");
-    return svg;
-  };
-
-  Lod_Chart.prototype.create_graph = function() {
-    this.create_legend();
-    this.add_border();
-    this.add_x_axis();
-    this.add_y_axis();
-    this.add_axis_labels();
-    this.add_chr_lines();
-    this.fill_chr_areas();
-    this.add_chr_labels();
-    return this.add_plot_points();
-  };
-
-  Lod_Chart.prototype.create_legend = function() {
-    this.svg.append("text").attr("class", "legend").text("Trait: " + this.this_trait + " : " + this.data_set).attr("x", this.x_buffer).attr("y", 20).attr("dx", "0em").attr("text-anchor", "left").attr("font-family", "sans-serif").attr("font-size", "16px").attr("fill", "black");
-    return this.svg.append("text").attr("class", "legend").text("MAF: " + this.maf).attr("x", this.x_buffer).attr("y", 38).attr("dx", "0em").attr("text-anchor", "left").attr("font-family", "sans-serif").attr("font-size", "16px").attr("fill", "black");
-  };
-
-  Lod_Chart.prototype.add_border = function() {
-    var border_coords;
-    border_coords = [[this.y_buffer + this.legend_buffer, this.height, this.x_buffer, this.x_buffer], [this.y_buffer + this.legend_buffer, this.height, this.width, this.width], [this.y_buffer + this.legend_buffer, this.y_buffer + this.legend_buffer, this.x_buffer, this.width], [this.height, this.height, this.x_buffer, this.width]];
-    return this.svg.selectAll("line").data(border_coords).enter().append("line").attr("y1", (function(_this) {
-      return function(d) {
-        return d[0];
-      };
-    })(this)).attr("y2", (function(_this) {
-      return function(d) {
-        return d[1];
-      };
-    })(this)).attr("x1", (function(_this) {
-      return function(d) {
-        return d[2];
-      };
-    })(this)).attr("x2", (function(_this) {
-      return function(d) {
-        return d[3];
-      };
-    })(this)).style("stroke", "#000");
-  };
-
-  Lod_Chart.prototype.create_scales = function() {
-    console.log("y_axis_filter:", this.y_axis_filter);
-    if ('24' in this.chromosomes) {
-      console.log("@chromosomes[24]:", this.chromosomes['24']);
-      console.log("@chromosomes[23]:", this.chromosomes['23']);
-      console.log("@total_length:", this.total_length);
-      console.log("d3.max(@xcoords):", d3.max(this.x_coords));
-      this.x_scale = d3.scale.linear().domain([0, this.total_length + this.chromosomes['24']]).range([this.x_buffer, this.width]);
-    } else {
-      this.x_scale = d3.scale.linear().domain([0, this.total_length + this.chromosomes['20']]).range([this.x_buffer, this.width]);
-    }
-    return this.y_scale = d3.scale.linear().domain([this.y_axis_filter, this.y_max]).range([this.height, this.y_buffer + this.legend_buffer]);
-  };
-
-  Lod_Chart.prototype.create_x_axis_tick_values = function() {
-    var chr_ticks, i, length, tick, tick_count, tick_val, tick_vals, val, _i, _j, _k, _len, _ref, _ref1, _ref2;
-    tick_vals = [];
-    for (val = _i = 25, _ref = this.cumulative_chr_lengths[0]; 25 <= _ref ? _i <= _ref : _i >= _ref; val = 25 <= _ref ? ++_i : --_i) {
-      if (val % 25 === 0) {
-        tick_vals.push(val);
-      }
-    }
-    _ref1 = this.cumulative_chr_lengths;
-    for (i = _j = 0, _len = _ref1.length; _j < _len; i = ++_j) {
-      length = _ref1[i];
-      if (i === 0) {
-        continue;
-      }
-      chr_ticks = [];
-      tick_count = Math.floor(this.chr_lengths[i] / 25);
-      tick_val = parseInt(this.cumulative_chr_lengths[i - 1]);
-      for (tick = _k = 0, _ref2 = tick_count - 1; 0 <= _ref2 ? _k <= _ref2 : _k >= _ref2; tick = 0 <= _ref2 ? ++_k : --_k) {
-        tick_val += 25;
-        chr_ticks.push(tick_val);
-      }
-      Array.prototype.push.apply(tick_vals, chr_ticks);
-    }
-    return tick_vals;
-  };
-
-  Lod_Chart.prototype.add_x_axis = function() {
-    var next_chr, tmp_tick_val;
-    this.xAxis = d3.svg.axis().scale(this.x_scale).orient("bottom").tickValues(this.create_x_axis_tick_values());
-    next_chr = 1;
-    tmp_tick_val = 0;
-    this.xAxis.tickFormat((function(_this) {
-      return function(d) {
-        var next_chr_length, tick_val;
-        d3.format("d");
-        if (d < _this.cumulative_chr_lengths[0]) {
-          tick_val = d;
-        } else {
-          next_chr_length = _this.cumulative_chr_lengths[next_chr];
-          if (d > next_chr_length) {
-            next_chr += 1;
-            tmp_tick_val = 25;
-            tick_val = tmp_tick_val;
-          } else {
-            tmp_tick_val += 25;
-            tick_val = tmp_tick_val;
-          }
-        }
-        return tick_val;
-      };
-    })(this));
-    return this.svg.append("g").attr("class", "x_axis").attr("transform", "translate(0," + this.height + ")").call(this.xAxis).selectAll("text").attr("text-anchor", "right").attr("dx", "-1.6em").attr("transform", (function(_this) {
-      return function(d) {
-        return "translate(-12,0) rotate(-90)";
-      };
-    })(this));
-  };
-
-  Lod_Chart.prototype.add_y_axis = function() {
-    this.yAxis = d3.svg.axis().scale(this.y_scale).orient("left").ticks(5);
-    return this.svg.append("g").attr("class", "y_axis").attr("transform", "translate(" + this.x_buffer + ",0)").call(this.yAxis);
-  };
-
-  Lod_Chart.prototype.add_axis_labels = function() {
-    return this.svg.append("text").attr("transform", "rotate(-90)").attr("y", 0 - (this.height / 2)).attr("x", this.x_buffer).attr("dy", "1em").style("text-anchor", "middle").text("LOD Score");
-  };
-
-  Lod_Chart.prototype.add_chr_lines = function() {
-    return this.svg.selectAll("line").data(this.cumulative_chr_lengths, (function(_this) {
-      return function(d) {
-        return d;
-      };
-    })(this)).enter().append("line").attr("x1", this.x_scale).attr("x2", this.x_scale).attr("y1", this.y_buffer + this.legend_buffer).attr("y2", this.height).style("stroke", "#ccc");
-  };
-
-  Lod_Chart.prototype.fill_chr_areas = function() {
-    console.log("cumu_chr_lengths:", this.cumulative_chr_lengths);
-    console.log("example:", this.x_scale(this.cumulative_chr_lengths[0]));
-    return this.svg.selectAll("rect.chr_fill_area").data(_.zip(this.chr_lengths, this.cumulative_chr_lengths), (function(_this) {
-      return function(d) {
-        return d;
-      };
-    })(this)).enter().append("rect").attr("id", (function(_this) {
-      return function(d, i) {
-        return "chr_fill_area_" + i;
-      };
-    })(this)).attr("x", (function(_this) {
-      return function(d, i) {
-        return _this.x_scale(d[1] - d[0]);
-      };
-    })(this)).attr("y", this.y_buffer + this.legend_buffer + 2).attr("width", (function(_this) {
-      return function(d, i) {
-        var ending, starting, width;
-        starting = _this.x_scale(d[1] - d[0]);
-        ending = _this.x_scale(_this.cumulative_chr_lengths[i]);
-        width = ending - starting;
-        console.log("width:", d[0]);
-        return width;
-      };
-    })(this)).attr("height", this.height - this.y_buffer - this.legend_buffer - 3).attr("fill", (function(_this) {
-      return function(d, i) {
-        if ((i + 1) % 2) {
-          return darkrect;
-        } else {
-          return lightrect;
-        }
-      };
-    })(this)).on("mouseover", (function(_this) {
-      return function(d, i) {
-        var this_id;
-        this_id = "chr_fill_area_" + i;
-        console.log("this_id:", this_id);
-        return d3.select("#" + this_id).attr("fill", hoverrect);
-      };
-    })(this)).on("mouseout", (function(_this) {
-      return function(d, i) {
-        var this_id;
-        this_id = "chr_fill_area_" + i;
-        return d3.select("#" + this_id).attr("fill", function() {
-          if ((i + 1) % 2) {
-            return darkrect;
-          } else {
-            return lightrect;
-          }
-        });
-      };
-    })(this));
-  };
-
-  Lod_Chart.prototype.add_chr_labels = function() {
-    var chr_info, chr_names, key;
-    chr_names = [];
-    for (key in this.chromosomes) {
-      chr_names.push(key);
-    }
-    chr_info = _.zip(chr_names, this.chr_lengths, this.cumulative_chr_lengths);
-    return this.svg.selectAll("text").data(chr_info, (function(_this) {
-      return function(d) {
-        return d;
-      };
-    })(this)).enter().append("text").attr("class", "chr_label").text((function(_this) {
-      return function(d) {
-        if (_this.max_chr === 23) {
-          if (d[0] === "23") {
-            return "X";
-          } else if (d[0] === "24") {
-            return "X/Y";
-          } else {
-            return d[0];
-          }
-        } else if (_this.max_chr === 19) {
-          if (d[0] === "20") {
-            return "X";
-          } else {
-            return d[0];
-          }
-        }
-      };
-    })(this)).attr("x", (function(_this) {
-      return function(d) {
-        return _this.x_scale(d[2] - d[1] / 2);
-      };
-    })(this)).attr("y", this.height * 0.1 + this.legend_buffer).attr("dx", "0em").attr("text-anchor", "middle").attr("font-family", "sans-serif").attr("font-size", "18px").attr("cursor", "pointer").attr("fill", "black").on("click", (function(_this) {
-      return function(d) {
-        return _this.redraw_plot(d);
-      };
-    })(this));
-  };
-
-  Lod_Chart.prototype.add_plot_points = function() {
-    return this.plot_point = this.svg.selectAll("circle").data(this.plot_coordinates).enter().append("circle").attr("cx", (function(_this) {
-      return function(d) {
-        return _this.x_scale(d[0]);
-      };
-    })(this)).attr("cy", (function(_this) {
-      return function(d) {
-        return _this.y_scale(d[1]);
-      };
-    })(this)).attr("r", (function(_this) {
-      return function(d) {
-        return 2;
-      };
-    })(this)).attr("fill", (function(_this) {
-      return function(d) {
-        return "black";
-      };
-    })(this)).attr("stroke", "black").attr("stroke-width", "1").attr("id", (function(_this) {
-      return function(d) {
-        return "point_" + String(d[2]);
-      };
-    })(this)).classed("circle", true).on("mouseover", (function(_this) {
-      return function(d) {
-        var this_id;
-        console.log("d3.event is:", d3.event);
-        console.log("d is:", d);
-        this_id = "point_" + String(d[2]);
-        return d3.select("#" + this_id).classed("d3_highlight", true).attr("r", 5).attr("stroke", "none").attr("fill", "blue").call(_this.show_marker_in_table(d));
-      };
-    })(this)).on("mouseout", (function(_this) {
-      return function(d) {
-        var this_id;
-        this_id = "point_" + String(d[2]);
-        return d3.select("#" + this_id).classed("d3_highlight", false).attr("r", function(d) {
-          return 2;
-        }).attr("fill", function(d) {
-          return "black";
-        }).attr("stroke", "black").attr("stroke-width", "1");
-      };
-    })(this)).append("svg:title").text((function(_this) {
-      return function(d) {
-        return d[2];
-      };
-    })(this));
-  };
-
-  Lod_Chart.prototype.redraw_plot = function(chr_ob) {
-    console.log("chr_name is:", chr_ob[0]);
-    console.log("chr_length is:", chr_ob[1]);
-    $('#manhattan_plot').remove();
-    $('#manhattan_plot_container').append('<div id="manhattan_plot"></div>');
-    return root.chr_plot = new Chr_Manhattan_Plot(600, 1200, chr_ob);
-  };
-
-  Lod_Chart.prototype.create_zoom_pane = function() {
-    var zoom;
-    zoom = d3.behavior.zoom().on("zoom", draw);
-    return this.svg.append("rect").attr("class", "pane").attr("width", this.width).attr("height", this.height).call(zoom);
-  };
-
-  Lod_Chart.prototype.draw = function() {
-    this.svg.select("g.x_axis").call(this.xAxis);
-    this.svg.select("g.y_axis").call(this.yAxis);
-    this.svg.select("path.area").attr("d", area);
-    return this.svg.select("path.line").attr("d", line);
-  };
-
-  return Lod_Chart;
-
-})();
-
-new Lod_Chart(600, 1200);
diff --git a/wqflask/wqflask/static/new/javascript/marker_regression_old.coffee b/wqflask/wqflask/static/new/javascript/marker_regression_old.coffee
deleted file mode 100755
index 7eb62ec1..00000000
--- a/wqflask/wqflask/static/new/javascript/marker_regression_old.coffee
+++ /dev/null
@@ -1,212 +0,0 @@
-$ ->
-    sort_number = (a, b) ->
-        return a - b
-
-
-    class Permutation_Histogram
-        constructor: ->
-            @process_data()
-            @display_graph()
-            
-        process_data: ->
-            # Put the data in a format needed for graphing 
-            # The permutation count for a particular integer range (10-11 or 12-13 for example)
-            # will be on the y-axis; LRS values will be on the x-axis
-            lrs_array = js_data.lrs_array
-            bars = {}
-            for lrs in lrs_array
-                floored = Math.floor(lrs)
-                if floored not of bars
-                    bars[floored] = 0
-                bars[floored] += 1
-    
-            # Now we need to take the unordered hash
-            # And order the keys
-            keys = []
-            for key of bars
-                keys.push(key)
-        
-            keys.sort(sort_number)
-            
-    
-            # Now that we have the ordered keys above
-            # We can build an array of arrays that jqPlot will use
-            @bars_ordered = []
-            for key in keys
-                @bars_ordered.push([parseInt(key), bars[key]])
-    
-            console.log("bars is:", bars)
-            console.log("keys are:", keys)
-            console.log("bars_ordered are:", @bars_ordered)
-            #return bars_ordered
-    
-        display_graph: ->
-        
-            $.jqplot('permutation_histogram',  [@bars_ordered],
-                title: 'Permutation Histogram'     
-                seriesDefaults:
-                    renderer:$.jqplot.BarRenderer
-                    rendererOptions: 
-                        barWidth: 15
-                    pointLabels: 
-                        show: true
-                axesDefaults:
-                    labelRenderer: $.jqplot.CanvasAxisLabelRenderer
-                axes: 
-                    xaxis: 
-                      min: 0
-                      label: "LRS"
-                      pad: 1.1
-                    yaxis:
-                      min: 0
-                      label: "Frequency"
-            )
-        
-    #process_qtl_results = ->
-    #    qtl_results = js_data.qtl_results
-        
-    #display_manhattan_plot = ->
-
-
-
-    #bars_ordered = process_lrs_array()
-    #display_permutation_histogram(bars_ordered)
-    
-    class Chromosome
-        constructor:  (@name) ->
-            @max_mb = 0
-            @plot_points = []
-            
-        process_point: (mb, lrs) ->
-            if mb > @max_mb
-                @max_mb = mb
-            @plot_points.push([mb, lrs])
-            
-        display_graph: (max_lrs) ->
-            div_name = 'manhattan_plot_' + @name
-            console.log("div_name:", div_name)
-        
-            #console.log("max_lrs is", max_lrs)
-        
-        
-            x_axis_max = Math.ceil(@max_mb/25) * 25
-            x_axis_ticks = []
-            x_tick = 0
-            while (x_tick <= x_axis_max)
-                x_axis_ticks.push(x_tick)
-                x_tick += 25
-                
-            
-            plot_options = 
-                title: @name
-                seriesDefaults:
-                    showLine: false
-                    markerRenderer: $.jqplot.MarkerRenderer
-                    markerOptions:
-                        style: "filledCircle"
-                        size: 3
-                axesDefaults:
-                    tickRenderer: $.jqplot.CanvasAxisTickRenderer
-                    labelRenderer: $.jqplot.CanvasAxisLabelRenderer
-                axes: 
-                    xaxis: 
-                        min: 0
-                        max: x_axis_max
-                        ticks: x_axis_ticks
-                        tickOptions:
-                            angle: 90
-                            showGridline: false
-                            formatString: '%d' 
-                        label: "Megabases"
-
-            
-            if @name == "1"
-                plot_options.axes.yaxis =
-                    min: 0
-                    max: Math.floor(max_lrs + 0.1 * max_lrs)
-                    tickInterval: 1
-                    label: "LRS"
-                    tickOptions:
-                        formatString: '%d' 
-                        showGridline: false    
-            else
-                plot_options.axes.yaxis =
-                    show: false
-                    min: 0
-                    max: Math.floor(max_lrs + 0.1 * max_lrs)
-                    tickInterval: 1
-                    tickOptions:
-                        formatString: '%d' 
-                        showGridline: false                        
-                    
-            $.jqplot(div_name,  [@plot_points], plot_options)
-
-    class Manhattan_Plot
-        constructor: ->
-            @max_lrs = 0
-            
-            @chromosomes = {}   
-            @build_chromosomes()
-            
-            @display_graphs()
-
-        build_chromosomes: ->
-            for result in js_data.qtl_results
-                #if result.locus.chromosome == '1'
-                chromosome = result.locus.chromosome
-                if chromosome not of @chromosomes
-                    @chromosomes[chromosome] = new Chromosome(chromosome)
-                mb = parseInt(result.locus.mb)
-                if result.lrs > @max_lrs
-                    @max_lrs = result.lrs
-                @chromosomes[chromosome].process_point(mb, result.lrs)
-
-        display_graphs: ->
-            ### Call display_graph for each chromosome ###
-            
-            # First get everything in the right order
-            numbered_keys = []
-            extra_keys = []
-            for key of @chromosomes
-                if isNaN(key)
-                    extra_keys.push(key)
-                else
-                    numbered_keys.push(key)
-        
-            numbered_keys.sort(sort_number)
-            extra_keys.sort()
-            keys = numbered_keys.concat(extra_keys)
-            console.log("keys are:", keys)
-            
-            for key in keys
-                this_class = "manhattan_plot_segment"
-                if key != "1"
-                    this_class += " no_y_axis"
-                html = """<div id="manhattan_plot_#{ key }" class=#{ this_class }></div>"""
-                console.log("html is:", html)
-                $("#manhattan_plots").append(html)
-                @chromosomes[key].display_graph(@max_lrs)
-
-            $('.jqplot-yaxis').hide()
-            $('#manhattan_plot_1').find('.jqplot-yaxis').show()
-            
-            #$(".jqplot-yaxis").hide()
-            #$(".jqplot-yaxis-tick").hide()
-            
-            
-        #process_data: ->
-        #    qtl_results = js_data.qtl_results
-        #    #console.log("qtl_results: ", qtl_results)
-        #    @plot_points = []
-        #    @max_mb = 0
-        #    for result in qtl_results
-        #        if result.locus.chromosome == '1'
-        #            mb = parseInt(result.locus.mb)
-        #            if mb > @max_mb
-        #                @max_mb = mb
-        #            @plot_points.push([mb, result.lrs])
-                
-
-
-    new Permutation_Histogram
-    new Manhattan_Plot
\ No newline at end of file
diff --git a/wqflask/wqflask/static/new/javascript/marker_regression_old.js b/wqflask/wqflask/static/new/javascript/marker_regression_old.js
deleted file mode 100755
index c2d41863..00000000
--- a/wqflask/wqflask/static/new/javascript/marker_regression_old.js
+++ /dev/null
@@ -1,218 +0,0 @@
-// Generated by CoffeeScript 1.8.0
-$(function() {
-  var Chromosome, Manhattan_Plot, Permutation_Histogram, sort_number;
-  sort_number = function(a, b) {
-    return a - b;
-  };
-  Permutation_Histogram = (function() {
-    function Permutation_Histogram() {
-      this.process_data();
-      this.display_graph();
-    }
-
-    Permutation_Histogram.prototype.process_data = function() {
-      var bars, floored, key, keys, lrs, lrs_array, _i, _j, _len, _len1;
-      lrs_array = js_data.lrs_array;
-      bars = {};
-      for (_i = 0, _len = lrs_array.length; _i < _len; _i++) {
-        lrs = lrs_array[_i];
-        floored = Math.floor(lrs);
-        if (!(floored in bars)) {
-          bars[floored] = 0;
-        }
-        bars[floored] += 1;
-      }
-      keys = [];
-      for (key in bars) {
-        keys.push(key);
-      }
-      keys.sort(sort_number);
-      this.bars_ordered = [];
-      for (_j = 0, _len1 = keys.length; _j < _len1; _j++) {
-        key = keys[_j];
-        this.bars_ordered.push([parseInt(key), bars[key]]);
-      }
-      console.log("bars is:", bars);
-      console.log("keys are:", keys);
-      return console.log("bars_ordered are:", this.bars_ordered);
-    };
-
-    Permutation_Histogram.prototype.display_graph = function() {
-      return $.jqplot('permutation_histogram', [this.bars_ordered], {
-        title: 'Permutation Histogram',
-        seriesDefaults: {
-          renderer: $.jqplot.BarRenderer,
-          rendererOptions: {
-            barWidth: 15
-          },
-          pointLabels: {
-            show: true
-          }
-        },
-        axesDefaults: {
-          labelRenderer: $.jqplot.CanvasAxisLabelRenderer
-        },
-        axes: {
-          xaxis: {
-            min: 0,
-            label: "LRS",
-            pad: 1.1
-          },
-          yaxis: {
-            min: 0,
-            label: "Frequency"
-          }
-        }
-      });
-    };
-
-    return Permutation_Histogram;
-
-  })();
-  Chromosome = (function() {
-    function Chromosome(name) {
-      this.name = name;
-      this.max_mb = 0;
-      this.plot_points = [];
-    }
-
-    Chromosome.prototype.process_point = function(mb, lrs) {
-      if (mb > this.max_mb) {
-        this.max_mb = mb;
-      }
-      return this.plot_points.push([mb, lrs]);
-    };
-
-    Chromosome.prototype.display_graph = function(max_lrs) {
-      var div_name, plot_options, x_axis_max, x_axis_ticks, x_tick;
-      div_name = 'manhattan_plot_' + this.name;
-      console.log("div_name:", div_name);
-      x_axis_max = Math.ceil(this.max_mb / 25) * 25;
-      x_axis_ticks = [];
-      x_tick = 0;
-      while (x_tick <= x_axis_max) {
-        x_axis_ticks.push(x_tick);
-        x_tick += 25;
-      }
-      plot_options = {
-        title: this.name,
-        seriesDefaults: {
-          showLine: false,
-          markerRenderer: $.jqplot.MarkerRenderer,
-          markerOptions: {
-            style: "filledCircle",
-            size: 3
-          }
-        },
-        axesDefaults: {
-          tickRenderer: $.jqplot.CanvasAxisTickRenderer,
-          labelRenderer: $.jqplot.CanvasAxisLabelRenderer
-        },
-        axes: {
-          xaxis: {
-            min: 0,
-            max: x_axis_max,
-            ticks: x_axis_ticks,
-            tickOptions: {
-              angle: 90,
-              showGridline: false,
-              formatString: '%d'
-            },
-            label: "Megabases"
-          }
-        }
-      };
-      if (this.name === "1") {
-        plot_options.axes.yaxis = {
-          min: 0,
-          max: Math.floor(max_lrs + 0.1 * max_lrs),
-          tickInterval: 1,
-          label: "LRS",
-          tickOptions: {
-            formatString: '%d',
-            showGridline: false
-          }
-        };
-      } else {
-        plot_options.axes.yaxis = {
-          show: false,
-          min: 0,
-          max: Math.floor(max_lrs + 0.1 * max_lrs),
-          tickInterval: 1,
-          tickOptions: {
-            formatString: '%d',
-            showGridline: false
-          }
-        };
-      }
-      return $.jqplot(div_name, [this.plot_points], plot_options);
-    };
-
-    return Chromosome;
-
-  })();
-  Manhattan_Plot = (function() {
-    function Manhattan_Plot() {
-      this.max_lrs = 0;
-      this.chromosomes = {};
-      this.build_chromosomes();
-      this.display_graphs();
-    }
-
-    Manhattan_Plot.prototype.build_chromosomes = function() {
-      var chromosome, mb, result, _i, _len, _ref, _results;
-      _ref = js_data.qtl_results;
-      _results = [];
-      for (_i = 0, _len = _ref.length; _i < _len; _i++) {
-        result = _ref[_i];
-        chromosome = result.locus.chromosome;
-        if (!(chromosome in this.chromosomes)) {
-          this.chromosomes[chromosome] = new Chromosome(chromosome);
-        }
-        mb = parseInt(result.locus.mb);
-        if (result.lrs > this.max_lrs) {
-          this.max_lrs = result.lrs;
-        }
-        _results.push(this.chromosomes[chromosome].process_point(mb, result.lrs));
-      }
-      return _results;
-    };
-
-    Manhattan_Plot.prototype.display_graphs = function() {
-
-      /* Call display_graph for each chromosome */
-      var extra_keys, html, key, keys, numbered_keys, this_class, _i, _len;
-      numbered_keys = [];
-      extra_keys = [];
-      for (key in this.chromosomes) {
-        if (isNaN(key)) {
-          extra_keys.push(key);
-        } else {
-          numbered_keys.push(key);
-        }
-      }
-      numbered_keys.sort(sort_number);
-      extra_keys.sort();
-      keys = numbered_keys.concat(extra_keys);
-      console.log("keys are:", keys);
-      for (_i = 0, _len = keys.length; _i < _len; _i++) {
-        key = keys[_i];
-        this_class = "manhattan_plot_segment";
-        if (key !== "1") {
-          this_class += " no_y_axis";
-        }
-        html = "<div id=\"manhattan_plot_" + key + "\" class=" + this_class + "></div>";
-        console.log("html is:", html);
-        $("#manhattan_plots").append(html);
-        this.chromosomes[key].display_graph(this.max_lrs);
-      }
-      $('.jqplot-yaxis').hide();
-      return $('#manhattan_plot_1').find('.jqplot-yaxis').show();
-    };
-
-    return Manhattan_Plot;
-
-  })();
-  new Permutation_Histogram;
-  return new Manhattan_Plot;
-});
diff --git a/wqflask/wqflask/static/new/javascript/node_modules/.bin/cake b/wqflask/wqflask/static/new/javascript/node_modules/.bin/cake
deleted file mode 120000
index d95f32af..00000000
--- a/wqflask/wqflask/static/new/javascript/node_modules/.bin/cake
+++ /dev/null
@@ -1 +0,0 @@
-../coffee-script/bin/cake
\ No newline at end of file
diff --git a/wqflask/wqflask/static/new/javascript/node_modules/.bin/coffee b/wqflask/wqflask/static/new/javascript/node_modules/.bin/coffee
deleted file mode 120000
index b57f275d..00000000
--- a/wqflask/wqflask/static/new/javascript/node_modules/.bin/coffee
+++ /dev/null
@@ -1 +0,0 @@
-../coffee-script/bin/coffee
\ No newline at end of file
diff --git a/wqflask/wqflask/static/new/javascript/show_corr.coffee b/wqflask/wqflask/static/new/javascript/show_corr.coffee
deleted file mode 100644
index 727d3d86..00000000
--- a/wqflask/wqflask/static/new/javascript/show_corr.coffee
+++ /dev/null
@@ -1,4 +0,0 @@
-root = exports ? this
-
-$ ->
-    root.scatter_plot = new Scatter_Plot()
diff --git a/wqflask/wqflask/static/new/javascript/show_corr.js b/wqflask/wqflask/static/new/javascript/show_corr.js
deleted file mode 100644
index 900b2033..00000000
--- a/wqflask/wqflask/static/new/javascript/show_corr.js
+++ /dev/null
@@ -1,8 +0,0 @@
-// Generated by CoffeeScript 1.8.0
-var root;
-
-root = typeof exports !== "undefined" && exports !== null ? exports : this;
-
-$(function() {
-  return root.scatter_plot = new Scatter_Plot();
-});
diff --git a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/ajaxSubmit-intergration-demo.html b/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/ajaxSubmit-intergration-demo.html
deleted file mode 100755
index 14bdb5a6..00000000
--- a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/ajaxSubmit-intergration-demo.html
+++ /dev/null
@@ -1,80 +0,0 @@
-<!DOCTYPE html>
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
-<title>Test for jQuery validate() plugin</title>
-<link rel="stylesheet" type="text/css" media="screen" href="css/screen.css" />
-<style type="text/css">
-.warning { color: red; }
-</style>
-<script src="../lib/jquery.js" type="text/javascript"></script>
-<script src="../lib/jquery.form.js" type="text/javascript"></script>
-<script src="../jquery.validate.js" type="text/javascript"></script>
-
-<script type="text/javascript">
-	jQuery(function() {
-		// show a simple loading indicator
-		var loader = jQuery('<div id="loader"><img src="images/loading.gif" alt="loading..." /></div>')
-			.css({position: "relative", top: "1em", left: "25em", display: "inline"})
-			.appendTo("body")
-			.hide();
-		jQuery().ajaxStart(function() {
-			loader.show();
-		}).ajaxStop(function() {
-			loader.hide();
-		}).ajaxError(function(a, b, e) {
-			throw e;
-		});
-
-		var v = jQuery("#form").validate({
-			submitHandler: function(form) {
-				jQuery(form).ajaxSubmit({
-					target: "#result"
-				});
-			}
-		});
-
-		jQuery("#reset").click(function() {
-			v.resetForm();
-		});
-	});
-</script>
-
-</head>
-<body>
-
-<h1 id="banner"><a href="http://bassistance.de/jquery-plugins/jquery-plugin-validation/">jQuery Validation Plugin</a> Demo</h1>
-<div id="main">
-
-<form method="post" class="cmxform" id="form" action="form.php">
-	<fieldset>
-		<legend>Login Form (Enter "foobar" as password)</legend>
-		<p>
-			<label for="user">Username</label>
-			<input id="user" name="user" title="Please enter your username (at least 3 characters)" class="required" minlength="3" />
-		</p>
-		<p>
-			<label for="pass">Password</label>
-			<input type="password" name="password" id="password" class="required" minlength"5" />
-		</p>
-		<p>
-			<input class="submit" type="submit" value="Login"/>
-		</p>
-	</fieldset>
-</form>
-
-<div id="result">Please login!</div>
-
-<br/>
-
-<button id="reset">Programmatically reset above form!</button>
-
-<p>Backend file: <a href="form.phps">form.phps</a></p>
-
-<a href="index.html">Back to main page</a>
-
-</div>
-
-
-</body>
-</html>
diff --git a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/captcha/captcha.js b/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/captcha/captcha.js
deleted file mode 100755
index 245bc45a..00000000
--- a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/captcha/captcha.js
+++ /dev/null
@@ -1,27 +0,0 @@
-$(function(){
-	$("#refreshimg").click(function(){
-		$.post('newsession.php');
-		$("#captchaimage").load('image_req.php');
-		return false;
-	});
-	
-	$("#captchaform").validate({
-		rules: {
-			captcha: {
-				required: true,
-				remote: "process.php"
-			}
-		},
-		messages: {
-			captcha: "Correct captcha is required. Click the captcha to generate a new one"	
-		},
-		submitHandler: function() {
-			alert("Correct captcha!");
-		},
-		success: function(label) {
-			label.addClass("valid").text("Valid captcha!")
-		},
-		onkeyup: false
-	});
-	
-});
diff --git a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/captcha/fonts/Anorexia.ttf b/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/captcha/fonts/Anorexia.ttf
deleted file mode 100755
index 453eeb00..00000000
--- a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/captcha/fonts/Anorexia.ttf
+++ /dev/null
Binary files differdiff --git a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/captcha/image_req.php b/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/captcha/image_req.php
deleted file mode 100755
index 6a65774c..00000000
--- a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/captcha/image_req.php
+++ /dev/null
@@ -1,6 +0,0 @@
-<?php
-
-// Echo the image - timestamp appended to prevent caching
-echo '<a href="index.php" onclick="refreshimg(); return false;" title="Click to refresh image"><img src="images/image.jpg?' . time() . '" width="132" height="46" alt="Captcha image" /></a>';
-
-?>
\ No newline at end of file
diff --git a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/captcha/images/button.png b/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/captcha/images/button.png
deleted file mode 100755
index 7ef79de5..00000000
--- a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/captcha/images/button.png
+++ /dev/null
Binary files differdiff --git a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/captcha/images/image.php b/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/captcha/images/image.php
deleted file mode 100755
index bc571ab5..00000000
--- a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/captcha/images/image.php
+++ /dev/null
@@ -1,35 +0,0 @@
-<?php
-
-// Begin the session
-session_start();
-
-// If the session is not present, set the variable to an error message
-if(!isset($_SESSION['captcha_id']))
-	$str = 'ERROR!';
-// Else if it is present, set the variable to the session contents
-else
-	$str = $_SESSION['captcha_id'];
-
-// Set the content type
-//header('Content-type: image/png');
-header('Cache-control: no-cache');
-
-// Create an image from button.png
-$image = imagecreatefrompng('button.png');
-
-// Set the font colour
-$colour = imagecolorallocate($image, 183, 178, 152);
-
-// Set the font
-$font = '../fonts/Anorexia.ttf';
-
-// Set a random integer for the rotation between -15 and 15 degrees
-$rotate = rand(-15, 15);
-
-// Create an image using our original image and adding the detail
-imagettftext($image, 14, $rotate, 18, 30, $colour, $font, $str);
-
-// Output the image as a png
-imagepng($image);
-
-?>
\ No newline at end of file
diff --git a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/captcha/index.php b/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/captcha/index.php
deleted file mode 100755
index 74bd54f5..00000000
--- a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/captcha/index.php
+++ /dev/null
@@ -1,66 +0,0 @@
-<?php
-
-// Make the page validate
-ini_set('session.use_trans_sid', '0');
-
-// Include the random string file
-require 'rand.php';
-
-// Begin the session
-session_start();
-
-// Set the session contents
-$_SESSION['captcha_id'] = $str;
-
-?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-
-<head>
- <title>AJAX CAPTCHA</title>
- <meta http-equiv="Content-type" content="text/html; charset=utf-8" />
- <meta name="keywords" content="AJAX,JHR,PHP,CAPTCHA,download,PHP CAPTCHA,AJAX CAPTCHA,AJAX PHP CAPTCHA,download AJAX CAPTCHA,download AJAX PHP CAPTCHA" />
- <meta name="description" content="An AJAX CAPTCHA script, written in PHP" />
- 
- <script type="text/javascript" src="../../lib/jquery.js"></script>
- <script type="text/javascript" src="../../jquery.validate.js"></script>
- <script type="text/javascript" src="captcha.js"></script>
- 
- <link rel="stylesheet" type="text/css" href="style.css" />
- <style type="text/css">
-  img { border: 1px solid #eee; }
-  p#statusgreen { font-size: 1.2em; background-color: #fff; color: #0a0; }
-  p#statusred { font-size: 1.2em; background-color: #fff; color: #a00; }
-  fieldset label { display: block; }
-  fieldset div#captchaimage { float: left; margin-right: 15px; }
-  fieldset input#captcha { width: 25%; border: 1px solid #ddd; padding: 2px; }
-  fieldset input#submit { display: block; margin: 2% 0% 0% 0%; }
-  #captcha.success {
-  	border: 1px solid #49c24f;
-	background: #bcffbf;
-  }
-  #captcha.error {
-  	border: 1px solid #c24949;
-	background: #ffbcbc;
-  }
- </style>
-</head>
-
-<body>
-
-<h1><acronym title="Asynchronous JavaScript And XML">AJAX</acronym> <acronym title="Completely Automated Public Turing test to tell Computers and Humans Apart">CAPTCHA</acronym>, based on <a href="http://psyrens.com/captcha/">http://psyrens.com/captcha/</a></h1>
-
-<form id="captchaform" action="">
-<fieldset>
- <div id="captchaimage"><a href="<?php echo $_SERVER['PHP_SELF']; ?>" id="refreshimg" title="Click to refresh image"><img src="images/image.php?<?php echo time(); ?>" width="132" height="46" alt="Captcha image" /></a></div>
- <label for="captcha">Enter the characters as seen on the image above (case insensitive):</label>
- <input type="text" maxlength="6" name="captcha" id="captcha" />
- <input type="submit" name="submit" id="submit" value="Check" />
-</fieldset>
-</form>
-
-<p>If you can&#39;t decipher the text on the image, click it to dynamically generate a new one.</p>
-
-</body>
-
-</html>
\ No newline at end of file
diff --git a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/captcha/newsession.php b/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/captcha/newsession.php
deleted file mode 100755
index 36ff45e2..00000000
--- a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/captcha/newsession.php
+++ /dev/null
@@ -1,12 +0,0 @@
-<?php
-
-// Include the random string file
-require 'rand.php';
-
-// Begin a new session
-session_start();
-
-// Set the session contents
-$_SESSION['captcha_id'] = $str;
-
-?>
\ No newline at end of file
diff --git a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/captcha/process.php b/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/captcha/process.php
deleted file mode 100755
index 24fe3a8b..00000000
--- a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/captcha/process.php
+++ /dev/null
@@ -1,14 +0,0 @@
-<?php
-
-// Begin the session
-session_start();
-
-// To avoid case conflicts, make the input uppercase and check against the session value
-// If it's correct, echo '1' as a string
-if(strtoupper($_GET['captcha']) == $_SESSION['captcha_id'])
-	echo 'true';
-// Else echo '0' as a string
-else
-	echo 'false';
-
-?>
\ No newline at end of file
diff --git a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/captcha/rand.php b/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/captcha/rand.php
deleted file mode 100755
index 88b595e7..00000000
--- a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/captcha/rand.php
+++ /dev/null
@@ -1,11 +0,0 @@
-<?php
-
-// Create a random string, leaving out 'o' to avoid confusion with '0'
-$char = strtoupper(substr(str_shuffle('abcdefghjkmnpqrstuvwxyz'), 0, 4));
-
-// Concatenate the random string onto the random numbers
-// The font 'Anorexia' doesn't have a character for '8', so the numbers will only go up to 7
-// '0' is left out to avoid confusion with 'O'
-$str = rand(1, 7) . rand(1, 7) . $char;
-
-?>
\ No newline at end of file
diff --git a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/captcha/style.css b/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/captcha/style.css
deleted file mode 100755
index c0bbe5f9..00000000
--- a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/captcha/style.css
+++ /dev/null
@@ -1,140 +0,0 @@
-body {
-	margin: 3% 5%;
-	padding: 0;
-	background-color: #fff;
-	color: #333;
-	font: 0.9em/1.3 Helvetica, Arial, Verdana, Sans-serif;
-}
-
-a:link, a:visited {
-	background-color: #fff;
-	color: #333;
-	text-decoration: underline;
-}
-
-a:hover, a:focus, a:active {
-	background-color: #ffb;
-	color: #454545;
-	text-decoration: underline;
-}
-
-h1 {
-	margin: 2% 0%;
-	padding: 1%;
-	border-bottom: 1px solid #ddd;
-	background-color: #f8f8f8;
-	color: #666;
-	font: normal 1.5em Helvetica, Arial, Verdana, Sans-serif;
-}
-
-h2 {
-	margin: 2% 0%;
-	padding: 1%;
-	border-bottom: 1px solid #ddd;
-	background-color: #f8f8f8;
-	color: #666;
-	font: normal 1.3em Helvetica, Arial, Verdana, Sans-serif;
-}
-
-h3 {
-	margin: 2% 0%;
-	padding: 1%;
-	border-bottom: 1px solid #ddd;
-	background-color: #f8f8f8;
-	color: #666;
-	font: normal 1.2em Helvetica, Arial, Verdana, Sans-serif;
-}
-
-table {
-	margin: 0;
-	padding: 0;
-	width: 100%;
-}
-
-table th {
-	border: 1px solid #ddd;
-	font-weight: bold;
-	text-align: left;
-	padding: 1%;
-}
-
-table td {
-	border: 1px solid #ddd;
-	padding: 1%;
-}
-
-dl, dt, dd {
-	margin: 0;
-	padding: 0;
-}
-
-form {
-	margin: 0;
-	padding: 0;
-}
-
-fieldset {
-	border: 1px solid #ddd;
-	margin: 0% 0% 2% 0%;
-	padding: 2%;
-}
-
-fieldset legend {
-	margin: 0;
-	padding: 0 4px;
-	background-color: inherit;
-	color: #333;
-}
-
-code {
-	font: 1em "Courier New", Courier, Monospace;
-}
-
-pre code {
-	font: 1.1em "Courier New", Courier, Monospace;
-	border-bottom: 1px solid #eee;
-}
-
-img {
- 	border: 1px solid #eee;
-}
-
-p#statusgreen {
-	font-size: 1.2em;
-	background-color: #fff;
-	color: #0a0;
-}
-
-p#statusred {
-	font-size: 1.2em;
-	background-color: #fff;
-	color: #a00;
-}
-
-fieldset label {
-	display: block;
-}
-
-fieldset label.error {
-	color: red;	
-}
-
-fieldset label.valid {
-	color: green;
-}
-
-fieldset div#captchaimage {
-	float: left;
-	margin-right: 15px;
-}
-
-fieldset input#captcha {
-	width: 25%;
-	border: 1px solid #ddd;
-	padding: 2px;
-}
-
-fieldset input#submit {
-	display: block;
-	margin: 2% 0% 0% 0%;
-}
\ No newline at end of file
diff --git a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/css/chili.css b/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/css/chili.css
deleted file mode 100755
index 6990449f..00000000
--- a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/css/chili.css
+++ /dev/null
@@ -1,15 +0,0 @@
-.jscom, .mix htcom   { color: #4040c2; }
-.com      { color: green; }
-.regexp   { color: maroon; }
-.string   { color: teal; }
-.keywords { color: blue; }
-.global   { color: #008; }
-.numbers  { color: #880; }
-.comm     { color: green; }
-.tag      { color: blue; }
-.entity   { color: blue; }
-.string   { color: teal; }
-.aname    { color: maroon; }
-.avalue   { color: maroon; }
-.jquery   { color: #00a; }
-.plugin   { color: red; }
\ No newline at end of file
diff --git a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/css/cmxform.css b/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/css/cmxform.css
deleted file mode 100755
index 120f5a47..00000000
--- a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/css/cmxform.css
+++ /dev/null
@@ -1,46 +0,0 @@
-/**********************************
-
-Name: cmxform Styles
-
-***********************************/
-form.cmxform {
-	width: 370px;
-	font-size: 1.0em;
-	color: #333;
-}
-
-form.cmxform legend {
-	padding-left: 0;
-}
-
-form.cmxform legend, form.cmxform label {
-	color: #333;
-}
-
-form.cmxform fieldset {
-	border: none;
-	border-top: 1px solid #C9DCA6;
-	background: url(../images/cmxform-fieldset.gif) left bottom repeat-x;
-	background-color: #F8FDEF;
-}
-
-form.cmxform fieldset fieldset {
-	background: none;
-}
-
-form.cmxform fieldset p, form.cmxform fieldset fieldset {
-	padding: 5px 10px 7px;
-	background: url(../images/cmxform-divider.gif) left bottom repeat-x;
-}
-
-form.cmxform label.error, label.error {
-	/* remove the next line when you have trouble in IE6 with labels in list */
-	color: red;
-	font-style: italic
-}
-div.error { display: none; }
-input {	border: 1px solid black; }
-input.checkbox { border: none }
-input:focus { border: 1px dotted black; }
-input.error { border: 1px dotted red; }
-form.cmxform .gray * { color: gray; }
\ No newline at end of file
diff --git a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/css/cmxformTemplate.css b/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/css/cmxformTemplate.css
deleted file mode 100755
index ac52f71b..00000000
--- a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/css/cmxformTemplate.css
+++ /dev/null
@@ -1,55 +0,0 @@
-/**********************************
-
-Use: cmxform template
-
-***********************************/
-form.cmxform fieldset {
-	margin-bottom: 10px;
-}
-
-form.cmxform legend {
-	padding: 0 2px;
-	font-weight: bold;
-	_margin: 0 -7px; /* IE Win */
-}
-
-form.cmxform label {
-	display: inline-block;
-	line-height: 1.8;
-	vertical-align: top;
-	cursor: hand;
-}
-
-form.cmxform fieldset p {
-	list-style: none;
-	padding: 5px;
-	margin: 0;
-}
-
-form.cmxform fieldset fieldset {
-	border: none;
-	margin: 3px 0 0;
-}
-
-form.cmxform fieldset fieldset legend {
-	padding: 0 0 5px;
-	font-weight: normal;
-}
-
-form.cmxform fieldset fieldset label {
-	display: block;
-	width: auto;
-}
-
-form.cmxform label { width: 100px; } /* Width of labels */
-form.cmxform fieldset fieldset label { margin-left: 103px; } /* Width plus 3 (html space) */
-form.cmxform label.error {
-	margin-left: 103px;
-	width: 220px;
-}
-
-form.cmxform input.submit {
-	margin-left: 103px;
-}
-
-/*\*//*/ form.cmxform legend { display: inline-block; } /* IE Mac legend fix */
\ No newline at end of file
diff --git a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/css/core.css b/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/css/core.css
deleted file mode 100755
index 84494e87..00000000
--- a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/css/core.css
+++ /dev/null
@@ -1,21 +0,0 @@
-body, div { font-family: 'lucida grande', helvetica, verdana, arial, sans-serif }
-body { margin: 0; padding: 0; font-size: small; color: #333 }
-h1, h2 { font-family: 'trebuchet ms', verdana, arial; padding: 10px; margin: 0 }
-h1 { font-size: large }
-#main { padding: 1em; }
-#banner { padding: 15px; background-color: #06b; color: white; font-size: large; border-bottom: 1px solid #ccc;
-    background: url(../images/bg.gif) repeat-x; text-align: center }
-#banner a { color: white; }
-	
-p { margin: 10px 0; }
-
-li { margin-left: 10px; }
-
-h3 { margin: 1em 0 0; }
-
-h1 { font-size: 2em; }
-h2 { font-size: 1.8em; }
-h3 { font-size: 1.6em; }
-h4 { font-size: 1.4em; }
-h5 { font-size: 1.2em; }
-
diff --git a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/css/reset.css b/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/css/reset.css
deleted file mode 100755
index 5c376b37..00000000
--- a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/css/reset.css
+++ /dev/null
@@ -1,61 +0,0 @@
-/**********************************
-
-Use: Reset Styles for all browsers
-
-***********************************/
-	
-body, p, blockquote {
-	margin: 0;
-	padding: 0;
-}
-
-a img, iframe { border: none; }
-	
-/* Headers
-------------------------------*/
-
-h1, h2, h3, h4, h5, h6 {
-	margin: 0;
-	padding: 0;
-	font-size: 100%;
-}
-	
-/* Lists
-------------------------------*/
-	
-ul, ol, dl, li, dt, dd {
-	margin: 0;
-	padding: 0;
-}
-	
-/* Links
-------------------------------*/
-
-a, a:link {}
-a:visited {}
-a:hover {}
-a:active {}
-
-/* Forms
-------------------------------*/
-
-form, fieldset {
-	margin: 0;
-	padding: 0;
-}
-	
-fieldset { border: 1px solid #000; }
-
-legend {
-	padding: 0;
-	color: #000;
-}
-
-input, textarea, select {
-	margin: 0;
-	padding: 1px;
-	font-size: 100%;
-	font-family: inherit;
-}
-	
-select { padding: 0; }
\ No newline at end of file
diff --git a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/css/screen.css b/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/css/screen.css
deleted file mode 100755
index 840f572b..00000000
--- a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/css/screen.css
+++ /dev/null
@@ -1,11 +0,0 @@
-/**********************************
-
-Use: Main Screen Import
-
-***********************************/
-
-@import "reset.css";
-@import "core.css";
-
-@import "cmxformTemplate.css";
-@import "cmxform.css";
\ No newline at end of file
diff --git a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/custom-messages-metadata-demo.html b/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/custom-messages-metadata-demo.html
deleted file mode 100755
index 13952654..00000000
--- a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/custom-messages-metadata-demo.html
+++ /dev/null
@@ -1,92 +0,0 @@
-<!DOCTYPE html>
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
-<title>jQuery validation plug-in - comment form example</title>
-
-<link rel="stylesheet" type="text/css" media="screen" href="css/screen.css" />
-
-<script src="../lib/jquery.js" type="text/javascript"></script>
-<script src="../jquery.validate.js" type="text/javascript"></script>
-<script src="../lib/jquery.metadata.js" type="text/javascript"></script>
-
-<script type="text/javascript">
-$(document).ready(function() {
-	$("#commentForm").validate({meta: "validate"});
-	$("#commentForm2").validate();
-	$("#commentForm3").validate({
-		messages: {
-			email: {
-				required: 'Enter this!'
-			}
-		}		
-	});
-
-});
-</script>
-
-<style type="text/css">
-form { width: 500px; }
-form label { width: 250px; }
-form label.error, 
-form input.submit { margin-left: 253px; }
-</style>
-
-</head>
-<body>
-	
-<h1 id="banner"><a href="http://bassistance.de/jquery-plugins/jquery-plugin-validation/">jQuery Validation Plugin</a> Demo</h1>
-<div id="main">
-
-<p>Take a look at the source to see how messages can be customized with metadata.</p>	
-
-<!-- Custom messages with custom "meta" setting -->
-<form class="cmxform" id="commentForm" method="post" action="">
-	<fieldset>
-		<legend>Please enter your email address</legend>
-		<p>
-
-			<label for="cemail">E-Mail *</label>
-			<input id="cemail" name="email" class="{validate:{required:true, email:true, messages:{required:'Please enter your email address', email:'Please enter a valid email address'}}}"/>
-		</p>
-		<p>
-			<input class="submit" type="submit" value="Submit"/>
-		</p>
-	</fieldset>
-</form>
-<!-- Custom messages with default "meta" setting -->
-<form class="cmxform" id="commentForm2" method="post" action="">
-	<fieldset>
-		<legend>Please enter your email address</legend>
-		<p>
-
-			<label for="cemail">E-Mail *</label>
-			<input id="cemail" name="email" class="{required:true, email:true, messages:{required:'Please enter your email address', email:'Please enter a valid email address'}}"/>
-		</p>
-		<p>
-			<input class="submit" type="submit" value="Submit"/>
-		</p>
-	</fieldset>
-</form>
-<!-- Custom message for "required" in metadata is overriden by a validate option -->
-<form class="cmxform" id="commentForm3" method="post" action="">
-	<fieldset>
-		<legend>Please enter your email address</legend>
-		<p>
-
-			<label for="cemail">E-Mail *</label>
-			<input id="cemail" name="email" class="{required:true, email:true, messages:{email:'Please enter a valid email address'}}"/>
-		</p>
-		<p>
-			<input class="submit" type="submit" value="Submit"/>
-		</p>
-	</fieldset>
-</form>
-
-<a href="index.html">Back to main page</a>
-
-<script src="http://www.google-analytics.com/urchin.js" type="text/javascript"></script>
-<script type="text/javascript">_uacct = "UA-2623402-1";urchinTracker();</script>
-
-</body>
-</html>
diff --git a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/custom-methods-demo.html b/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/custom-methods-demo.html
deleted file mode 100755
index 12397888..00000000
--- a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/custom-methods-demo.html
+++ /dev/null
@@ -1,116 +0,0 @@
-<!DOCTYPE html>
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
-<title>Test for jQuery validate() plugin</title>
-
-<link rel="stylesheet" type="text/css" media="screen" href="css/screen.css" />
-
-<script src="../lib/jquery.js" type="text/javascript"></script>
-<script src="../jquery.validate.js" type="text/javascript"></script>
-
-<script type="text/javascript">
-	// extend the current rules with new groovy ones
-	
-	// this one requires the text "buga", we define a default message, too
-	$.validator.addMethod("buga", function(value) {
-		return value == "buga";
-	}, 'Please enter "buga"!');
-	
-	// this one requires the value to be the same as the first parameter
-	$.validator.methods.equal = function(value, element, param) {
-		return value == param;
-	};
-	
-	$().ready(function() {
-		var validator = $("#texttests").bind("invalid-form.validate", function() {
-			$("#summary").html("Your form contains " + validator.numberOfInvalids() + " errors, see details below.");
-		}).validate({
-			debug: true,
-			errorElement: "em",
-			errorContainer: $("#warning, #summary"),
-			errorPlacement: function(error, element) {
-				error.appendTo( element.parent("td").next("td") );
-			},
-			success: function(label) {
-				label.text("ok!").addClass("success");
-			},
-			rules: {
-				number: {
-					required:true,
-					minlength:3,
-					maxlength:15,
-					number:true	
-				},
-				secret: "buga",
-				math: {
-					equal: 11	
-				}
-			}
-		});
-		
-	});
-</script>
-
-<style type="text/css">
-form.cmxform { width: 50em; }
-em.error {
-  background:url("images/unchecked.gif") no-repeat 0px 0px;
-  padding-left: 16px;
-}
-em.success {
-  background:url("images/checked.gif") no-repeat 0px 0px;
-  padding-left: 16px;
-}
-
-form.cmxform label.error {
-	margin-left: auto;
-	width: 250px;
-}
-em.error { color: black; }
-#warning { display: none; }
-</style>
-
-</head>
-<body>
-
-<h1 id="banner"><a href="http://bassistance.de/jquery-plugins/jquery-plugin-validation/">jQuery Validation Plugin</a> Demo</h1>
-<div id="main">
-
-<form class="cmxform" id="texttests" method="get" action="foo.html">
-	<h2 id="summary"></h2>
-
-	<fieldset>
-		<legend>Example with custom methods and heavily customized error display</legend>
-		<table>
-			<tr>
-				<td><label for="number">textarea</label></td>
-				<td><input id="number" name="number"
-					title="Please enter a number with at least 3 and max 15 characters!" />
-				</td>
-				<td></td>
-			</tr>
-			<tr>
-				<td><label for="secret">Secret</label></td>
-				<td><input name="secret" id="secret" /></td>
-				<td></td>
-			</tr>
-			<tr>
-				<td><label for="math">7 + 4 = </label></td>
-				<td><input id="math" name="math" title="Please enter the correct result!" /></td>
-				<td></td>
-			</tr>
-		</table>
-		<input class="submit" type="submit" value="Submit"/>
-	</fieldset>
-</form>
-
-<h3 id="warning">Your form contains tons of errors! Please try again.</h3>
-
-<p><a href="index.html">Back to main page</a></p>
-
-</div>
-
-
-</body>
-</html>
diff --git a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/dynamic-totals.html b/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/dynamic-totals.html
deleted file mode 100755
index 95e8c0a6..00000000
--- a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/dynamic-totals.html
+++ /dev/null
@@ -1,145 +0,0 @@
-<!DOCTYPE html>
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
-<title>jQuery validation plug-in - dynamic forms demo</title>
-
-<link rel="stylesheet" type="text/css" media="screen" href="css/screen.css" />
-
-<script src="../lib/jquery.js" type="text/javascript"></script>
-<script src="../jquery.validate.js" type="text/javascript"></script>
-
-<script type="text/javascript">
-// only for demo purposes
-$.validator.setDefaults({
-	submitHandler: function() {
-		alert("submitted!");
-	}
-});
-$.validator.messages.max = jQuery.format("Your totals musn't exceed {0}!");
-
-$.validator.addMethod("quantity", function(value, element) {
-	return !this.optional(element) && !this.optional($(element).parent().prev().children("select")[0]);
-}, "Please select both the item and its amount.");
-
-$().ready(function() {
-	$("#orderform").validate({
-		errorPlacement: function(error, element) {
-			error.appendTo( element.parent().next() );
-		},
-		highlight: function(element, errorClass) {
-			$(element).addClass(errorClass).parent().prev().children("select").addClass(errorClass);
-		}
-	});
-	
-	var template = jQuery.format($("#template").val());
-	function addRow() {
-		$(template(i++)).appendTo("#orderitems tbody");
-	}
-	
-	var i = 1;
-	// start with one row
-	addRow();
-	// add more rows on click
-	$("#add").click(addRow);
-	
-	// check keyup on quantity inputs to update totals field
-	$("#orderform").validateDelegate("input.quantity", "keyup", function(event) {
-		var totals = 0;
-		$("#orderitems input.quantity").each(function() {
-			totals += +this.value;
-		});
-		$("#totals").attr("value", totals).valid();
-	});
-	
-});
-</script>
-
-<style type="text/css">
-form.cmxform { width: 50em; }
-em.error {
-  background:url("images/unchecked.gif") no-repeat 0px 0px;
-  padding-left: 16px;
-}
-em.success {
-  background:url("images/checked.gif") no-repeat 0px 0px;
-  padding-left: 16px;
-}
-
-form.cmxform label.error {
-	margin-left: auto;
-	width: 250px;
-}
-form.cmxform input.submit {
-	margin-left: 0;
-}
-em.error { color: black; }
-#warning { display: none; }
-select.error {
-	border: 1px dotted red;
-}
-</style>
-
-</head>
-<body>
-
-<h1 id="banner"><a href="http://bassistance.de/jquery-plugins/jquery-plugin-validation/">jQuery Validation Plugin</a> Demo</h1>
-<div id="main">
-
-<textarea style="display:none" id="template">
-	<tr>
-		<td>
-			<label>{0}. Item</label>
-		</td>
-		<td class='type'>
-			<select name="item-type-{0}">
-				<option value="">Select...</option>
-				<option value="0">Learning jQuery</option>
-				<option value="1">jQuery Reference Guide</option>
-				<option value="2">jQuery Cookbook</option>
-				<option vlaue="3">jQuery In Action</option>
-				<option value="4">jQuery For Designers</option>
-			</select>
-		</td>
-		<td class='quantity'>
-			<input size='4' class="quantity" min="1" id="item-quantity-{0}" name="item-quantity-{0}" />
-		</td>
-		<td class='quantity-error'></td>
-	</tr>
-</textarea>
-
-<form id="orderform" class="cmxform" method="get" action="foo.html">
-	<h2 id="summary"></h2>
-	
-	<fieldset>
-		<legend>Example with custom methods and heavily customized error display</legend>
-		<table id="orderitems">
-			<tbody>
-				
-			</tbody>
-			<tfoot>
-				<tr>
-					<td colspan="2"><label>Totals (max 25)</label></td>
-					<td class="totals"><input id="totals" name="totals" value="0" max="25" readonly="readonly" size='4' /></td>
-					<td class="totals-error"></td>
-				</tr>
-				<tr>
-					<td colspan="2">&nbsp;</td>
-					<td><input class="submit" type="submit" value="Submit"/></td>
-				</tr>
-			</tfoot>
-		</table>
-	</fieldset>
-</form>
-
-<button id="add">Add another input to the form</button>
-
-<h1 id="warning">Your form contains tons of errors! Please try again.</h1>
-
-<p><a href="index.html">Back to main page</a></p>
-
-</div>
-
-
-</body>
-</html>
diff --git a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/errorcontainer-demo.html b/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/errorcontainer-demo.html
deleted file mode 100755
index 58230261..00000000
--- a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/errorcontainer-demo.html
+++ /dev/null
@@ -1,155 +0,0 @@
-<!DOCTYPE html>
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
-<title>Test for jQuery validate() plugin</title>
-
-<link rel="stylesheet" type="text/css" media="screen" href="css/screen.css" />
-
-<script src="../lib/jquery.js" type="text/javascript"></script>
-<script src="../lib/jquery.metadata.js" type="text/javascript"></script>
-<script src="../jquery.validate.js" type="text/javascript"></script>
-
-<style type="text/css">
-.cmxform fieldset p.error label { color: red; }
-div.container {
-	background-color: #eee;
-	border: 1px solid red;
-	margin: 5px;
-	padding: 5px;
-}
-div.container ol li {
-	list-style-type: disc;
-	margin-left: 20px;
-}
-div.container { display: none }
-.container label.error {
-	display: inline;
-}
-form.cmxform { width: 30em; }
-form.cmxform label.error {
-	display: block;
-	margin-left: 1em;
-	width: auto;
-}
-</style>
-
-<script type="text/javascript">
-// only for demo purposes
-$.validator.setDefaults({
-	submitHandler: function() {
-		alert("submitted! (skipping validation for cancel button)");
-	}
-});
-
-$().ready(function() {
-	$("#form1").validate({
-		errorLabelContainer: $("#form1 div.error")
-	});
-	
-	var container = $('div.container');
-	// validate the form when it is submitted
-	var validator = $("#form2").validate({
-		errorContainer: container,
-		errorLabelContainer: $("ol", container),
-		wrapper: 'li',
-		meta: "validate"
-	});
-	
-	$(".cancel").click(function() {
-		validator.resetForm();
-	});
-});
-</script>
-
-</head>
-<body>
-
-<h1 id="banner"><a href="http://bassistance.de/jquery-plugins/jquery-plugin-validation/">jQuery Validation Plugin</a> Demo</h1>
-<div id="main">
-
-<form method="get" class="cmxform" id="form1" action="">
-	<fieldset>
-		<legend>Login Form</legend>
-		<p>
-			<label>Username</label>
-			<input name="user" title="Please enter your username (at least 3 characters)" class="{required:true,minlength:3}" />
-		</p>
-		<p>
-			<label>Password</label>
-			<input type="password" maxlength="12" name="password" title="Please enter your password, between 5 and 12 characters" class="{required:true,minlength:5}" />
-		</p>
-		<div class="error">
-		</div>
-		<p>
-			<input class="submit" type="submit" value="Login"/>
-		</p>
-	</fieldset>
-</form>
-
-<!-- our error container -->
-<div class="container">
-	<h4>There are serious errors in your form submission, please see below for details.</h4>
-	<ol>
-		<li><label for="email" class="error">Please enter your email address</label></li>
-		<li><label for="phone" class="error">Please enter your phone <b>number</b> (between 2 and 8 characters)</label></li>
-		<li><label for="address" class="error">Please enter your address (at least 3 characters)</label></li>
-		<li><label for="avatar" class="error">Please select an image (png, jpg, jpeg, gif)</label></li>
-		<li><label for="cv" class="error">Please select a document (doc, docx, txt, pdf)</label></li>
-	</ol>
-</div>
-
-<form class="cmxform" id="form2" method="get" action="">
-	<fieldset>
-		<legend>Validating a complete form</legend>
-		<p>
-			<label for="email">Email</label>
-			<input id="email" name="email" class="{validate:{required:true,email:true}}" />
-		</p>
-		<p>
-			<label for="agree">Favorite Color</label>
-			<select id="color" name="color" title="Please select your favorite color!" class="{validate:{required:true}}">
-				<option></option>
-				<option>Red</option>
-				<option>Blue</option>
-				<option>Yellow</option>
-			</select>
-		</p>
-		<p>
-			<label for="phone">Phone</label>
-			<input id="phone" name="phone" class="some styles {validate:{required:true,number:true, rangelength:[2,8]}}" />
-		</p>
-		<p>
-			<label for="address">Address</label>
-			<input id="address" name="address" class="some other styles {validate:{required:true,minlength:3}}" />
-		</p>
-		<p>
-			<label for="avatar">Avatar</label>
-			<input type="file" id="avatar" name="avatar" class="{validate:{required:true,accept:true}}" />
-		</p>
-		<p>
-			<label for="agree">Please agree to our policy</label>
-			<input type="checkbox" class="checkbox" id="agree" title="Please agree to our policy!" name="agree" class="{validate:{required:true}}" />
-		</p>
-		<p>
-			<label for="cv">CV</label>
-			<input type="file" id="cv" name="cv" class="{validate:{required:true,accept:'docx?|txt|pdf'}}" />
-		</p>
-		<p>
-			<input class="submit" type="submit" value="Submit"/>
-			<input class="cancel" type="submit" value="Cancel"/>
-		</p>
-	</fieldset>
-</form>
-
-<div class="container">
-	<h4>There are serious errors in your form submission, please see details above the form!</h4>
-</div>
-
-<a href="index.html">Back to main page</a>
-
-</div>
-
-
-</body>
-</html>
diff --git a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/file_input.html b/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/file_input.html
deleted file mode 100755
index a162aaf0..00000000
--- a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/file_input.html
+++ /dev/null
@@ -1,53 +0,0 @@
-<!DOCTYPE html>
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
-<title>jQuery validation plug-in - comment form example</title>
-
-<link rel="stylesheet" href="css/screen.css" />
-<link rel="stylesheet" href="css/cmxform.css" />
-
-<script src="../lib/jquery.js"></script>
-<script src="../jquery.validate.js"></script>
-<script src="../additional-methods.js"></script>
-
-<script type="text/javascript">
-$(document).ready(function() {
-	$("#fileForm").validate();
-});
-</script>
-
-</head>
-<body>
-
-<form class="cmxform" id="fileForm" method="post" action="">
-	<fieldset>
-		<legend>Select the indicated type of files?</legend>
-		<p>
-			<label for="file1">Select a plain text file (e.g. *.txt)</label>
-			<input type="file" id="file1" name="file1" class="required" accept="text/plain" />
-		</p>
-		<p>
-			<label for="file2">Select any image file</label>
-			<input type="file" id="file2" name="file2" class="required" accept="image/*"/>
-		</p>
-		<p>
-			<label for="file3">Select either a PDF or a EPS file</label>
-			<input type="file" id="file3" name="file3" class="required" accept="image/x-eps,application/pdf"/>
-		</p>
-		<p>
-			<label for="file4">Select any audio or image file</label>
-			<input type="file" id="file4" name="file4" class="required" accept="image/*,audio/*"/>
-		</p>
-		<p>
-			<label for="file5">Select one or more plain text files (e.g. *.txt)</label>
-			<input type="file" id="file5" name="file5" class="required" multiple accept="text/plain" />
-		</p>
-		<p>
-			<input class="submit" type="submit" value="Submit"/>
-		</p>
-	</fieldset>
-</form>
-
-</body>
-</html>
diff --git a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/form.php b/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/form.php
deleted file mode 100755
index b25c6ef4..00000000
--- a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/form.php
+++ /dev/null
@@ -1,10 +0,0 @@
-<?php
-// wait a second to simulate a some latency
-usleep(500000);
-$user = $_REQUEST['user'];
-$pw = $_REQUEST['password'];
-if($user && $pw && $pw == "foobar")
-	echo "Hi $user, welcome back.";
-else
-	echo "Your password is wrong (must be foobar).";
-?>
\ No newline at end of file
diff --git a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/form.phps b/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/form.phps
deleted file mode 100755
index b25c6ef4..00000000
--- a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/form.phps
+++ /dev/null
@@ -1,10 +0,0 @@
-<?php
-// wait a second to simulate a some latency
-usleep(500000);
-$user = $_REQUEST['user'];
-$pw = $_REQUEST['password'];
-if($user && $pw && $pw == "foobar")
-	echo "Hi $user, welcome back.";
-else
-	echo "Your password is wrong (must be foobar).";
-?>
\ No newline at end of file
diff --git a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/images/bg.gif b/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/images/bg.gif
deleted file mode 100755
index 846add07..00000000
--- a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/images/bg.gif
+++ /dev/null
Binary files differdiff --git a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/images/checked.gif b/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/images/checked.gif
deleted file mode 100755
index 5e33a78d..00000000
--- a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/images/checked.gif
+++ /dev/null
Binary files differdiff --git a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/images/cmxform-divider.gif b/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/images/cmxform-divider.gif
deleted file mode 100755
index 718a977c..00000000
--- a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/images/cmxform-divider.gif
+++ /dev/null
Binary files differdiff --git a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/images/cmxform-fieldset.gif b/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/images/cmxform-fieldset.gif
deleted file mode 100755
index 9c48ea4b..00000000
--- a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/images/cmxform-fieldset.gif
+++ /dev/null
Binary files differdiff --git a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/images/loading.gif b/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/images/loading.gif
deleted file mode 100755
index 93c46a6c..00000000
--- a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/images/loading.gif
+++ /dev/null
Binary files differdiff --git a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/images/unchecked.gif b/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/images/unchecked.gif
deleted file mode 100755
index 06ecaba1..00000000
--- a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/images/unchecked.gif
+++ /dev/null
Binary files differdiff --git a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/index.html b/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/index.html
deleted file mode 100755
index ff8040f1..00000000
--- a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/index.html
+++ /dev/null
@@ -1,228 +0,0 @@
-<!DOCTYPE html>
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
-<title>jQuery validation plug-in - main demo</title>
-
-<link rel="stylesheet" type="text/css" media="screen" href="css/screen.css" />
-
-<script src="../lib/jquery-1.7.2.js" type="text/javascript"></script>
-<script src="../jquery.validate.js" type="text/javascript"></script>
-
-<script type="text/javascript">
-$.validator.setDefaults({
-	submitHandler: function() { alert("submitted!"); }
-});
-
-$().ready(function() {
-	// validate the comment form when it is submitted
-	$("#commentForm").validate();
-
-	// validate signup form on keyup and submit
-	$("#signupForm").validate({
-		rules: {
-			firstname: "required",
-			lastname: "required",
-			username: {
-				required: true,
-				minlength: 2
-			},
-			password: {
-				required: true,
-				minlength: 5
-			},
-			confirm_password: {
-				required: true,
-				minlength: 5,
-				equalTo: "#password"
-			},
-			email: {
-				required: true,
-				email: true
-			},
-			topic: {
-				required: "#newsletter:checked",
-				minlength: 2
-			},
-			agree: "required"
-		},
-		messages: {
-			firstname: "Please enter your firstname",
-			lastname: "Please enter your lastname",
-			username: {
-				required: "Please enter a username",
-				minlength: "Your username must consist of at least 2 characters"
-			},
-			password: {
-				required: "Please provide a password",
-				minlength: "Your password must be at least 5 characters long"
-			},
-			confirm_password: {
-				required: "Please provide a password",
-				minlength: "Your password must be at least 5 characters long",
-				equalTo: "Please enter the same password as above"
-			},
-			email: "Please enter a valid email address",
-			agree: "Please accept our policy"
-		}
-	});
-
-	// propose username by combining first- and lastname
-	$("#username").focus(function() {
-		var firstname = $("#firstname").val();
-		var lastname = $("#lastname").val();
-		if(firstname && lastname && !this.value) {
-			this.value = firstname + "." + lastname;
-		}
-	});
-
-	//code to hide topic selection, disable for demo
-	var newsletter = $("#newsletter");
-	// newsletter topics are optional, hide at first
-	var inital = newsletter.is(":checked");
-	var topics = $("#newsletter_topics")[inital ? "removeClass" : "addClass"]("gray");
-	var topicInputs = topics.find("input").attr("disabled", !inital);
-	// show when newsletter is checked
-	newsletter.click(function() {
-		topics[this.checked ? "removeClass" : "addClass"]("gray");
-		topicInputs.attr("disabled", !this.checked);
-	});
-});
-</script>
-
-<style type="text/css">
-#commentForm { width: 500px; }
-#commentForm label { width: 250px; }
-#commentForm label.error, #commentForm input.submit { margin-left: 253px; }
-#signupForm { width: 670px; }
-#signupForm label.error {
-	margin-left: 10px;
-	width: auto;
-	display: inline;
-}
-#newsletter_topics label.error {
-	display: none;
-	margin-left: 103px;
-}
-</style>
-
-</head>
-<body>
-
-<h1 id="banner"><a href="http://bassistance.de/jquery-plugins/jquery-plugin-validation/">jQuery Validation Plugin</a> Demo</h1>
-<div id="main">
-
-<p>Default submitHandler is set to display an alert into of submitting the form</p>
-
-<form class="cmxform" id="commentForm" method="get" action="">
-	<fieldset>
-		<legend>Please provide your name, email address (won't be published) and a comment</legend>
-		<p>
-			<label for="cname">Name (required, at least 2 characters)</label>
-			<input id="cname" name="name" minlength="2" type="text" required />
-		<p>
-			<label for="cemail">E-Mail (required)</label>
-			<input id="cemail" type="email" name="email" required />
-		</p>
-		<p>
-			<label for="curl">URL (optional)</label>
-			<input id="curl" type="url" name="url" />
-		</p>
-		<p>
-			<label for="ccomment">Your comment (required)</label>
-			<textarea id="ccomment" name="comment" required></textarea>
-		</p>
-		<p>
-			<input class="submit" type="submit" value="Submit"/>
-		</p>
-	</fieldset>
-</form>
-
-<form class="cmxform" id="signupForm" method="get" action="">
-	<fieldset>
-		<legend>Validating a complete form</legend>
-		<p>
-			<label for="firstname">Firstname</label>
-			<input id="firstname" name="firstname" type="text" />
-		</p>
-		<p>
-			<label for="lastname">Lastname</label>
-			<input id="lastname" name="lastname" type="text" />
-		</p>
-		<p>
-			<label for="username">Username</label>
-			<input id="username" name="username" type="text" />
-		</p>
-		<p>
-			<label for="password">Password</label>
-			<input id="password" name="password" type="password" />
-		</p>
-		<p>
-			<label for="confirm_password">Confirm password</label>
-			<input id="confirm_password" name="confirm_password" type="password" />
-		</p>
-		<p>
-			<label for="email">Email</label>
-			<input id="email" name="email" type="email" />
-		</p>
-		<p>
-			<label for="agree">Please agree to our policy</label>
-			<input type="checkbox" class="checkbox" id="agree" name="agree" />
-		</p>
-		<p>
-			<label for="newsletter">I'd like to receive the newsletter</label>
-			<input type="checkbox" class="checkbox" id="newsletter" name="newsletter" />
-		</p>
-		<fieldset id="newsletter_topics">
-			<legend>Topics (select at least two) - note: would be hidden when newsletter isn't selected, but is visible here for the demo</legend>
-			<label for="topic_marketflash">
-				<input type="checkbox" id="topic_marketflash" value="marketflash" name="topic" />
-				Marketflash
-			</label>
-			<label for="topic_fuzz">
-				<input type="checkbox" id="topic_fuzz" value="fuzz" name="topic" />
-				Latest fuzz
-			</label>
-			<label for="topic_digester">
-				<input type="checkbox" id="topic_digester" value="digester" name="topic" />
-				Mailing list digester
-			</label>
-			<label for="topic" class="error">Please select at least two topics you'd like to receive.</label>
-		</fieldset>
-		<p>
-			<input class="submit" type="submit" value="Submit"/>
-		</p>
-	</fieldset>
-</form>
-
-<h3>Syntetic examples</h3>
-<ul>
-	<li><a href="errorcontainer-demo.html">Error message containers in action</a></li>
-	<li><a href="custom-messages-metadata-demo.html">Custom Messages as Metadata</a></li>
-	<li><a href="radio-checkbox-select-demo.html">Radio and checkbox buttons and selects</a></li>
-	<li><a href="ajaxSubmit-intergration-demo.html">Integration with Form Plugin (AJAX submit)</a></li>
-	<li><a href="custom-methods-demo.html">Custom methods and message display.</a></li>
-	<li><a href="dynamic-totals.html">Dynamic forms</a></li>
-	<li><a href="themerollered.html">Forms styled with jQuery UI Themeroller</a></li>
-	<li><a href="tinymce/">TinyMCE Demo</a></li>
-	<li><a href="file_input.html">File inputs</a></li>
-	<li><a href="jquerymobile.html">jQuery Mobile Form Validation</a></li>
-</ul>
-<h3>Real-world examples</h3>
-<ul>
-	<li><a href="milk/">Remember The Milk signup form</a></li>
-	<li><a href="marketo/">Marketo signup form</a></li>
-	<li><a href="multipart/">Buy and Sell a House multipart form</a></li>
-	<li><a href="captcha/">Remote captcha validation</a></li>
-</ul>
-
-<h3>Testsuite</h3>
-<ul>
-	<li><a href="../test/">Validation Testsuite</a></li>
-</ul>
-
-</div>
-
-
-</body>
-</html>
diff --git a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/jquerymobile.html b/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/jquerymobile.html
deleted file mode 100755
index 90a84577..00000000
--- a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/jquerymobile.html
+++ /dev/null
@@ -1,71 +0,0 @@
-<!DOCTYPE html>
-<html>
-	<head>
-	<title>My Page</title>
-	<meta name="viewport" content="width=device-width, initial-scale=1">
-	<link rel="stylesheet" href="http://code.jquery.com/mobile/1.1.0/jquery.mobile-1.1.0.min.css" />
-	<script src="http://code.jquery.com/jquery-1.7.1.min.js"></script>
-	<script src="http://code.jquery.com/mobile/1.1.0/jquery.mobile-1.1.0.min.js"></script>
-	<script src="../jquery.validate.js"></script>
-	<style>
-		label.error {
-				color: red;
-				font-size: 16px;
-				font-weight: normal;
-				line-height: 1.4;
-				margin-top: 0.5em;
-				width: 100%;
-				float: none;
-		}
-
-		@media screen and (orientation: portrait){
-				label.error { margin-left: 0; display: block; }
-		}
-
-		@media screen and (orientation: landscape){
-				label.error { display: inline-block; margin-left: 22%; }
-		}
-
-		em { color: red; font-weight: bold; padding-right: .25em; }
-	</style>
-</head>
-<body>
-
-	<div id="page1" data-role="page">
-
-		<div data-role="header">
-			<h1>Welcome</h1>
-		</div>
-
-		<div data-role="content">
-			<form method="GET">
-				<div data-role="fieldcontain">
-					<label for="email">Email:</label>
-					<input type="email" name="email" id="email" />
-				</div>
-				<div data-role="fieldcontain">
-					<label for="password">Password:</label>
-					<input type="password" name="password" id="password" />
-				</div>
-				<input data-role="submit" type="submit" value="Login" />
-			</form>
-		</div>
-
-	</div>
-
-	<script>
-		$('#page1').bind('pageinit', function(event) {
-			$('form').validate({
-				rules: {
-					email: {
-						required: true
-					},
-					password: {
-						required: true
-					}
-				}
-			});
-		});
-	</script>
-</body>
-</html>
diff --git a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/js/chili-1.7.pack.js b/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/js/chili-1.7.pack.js
deleted file mode 100755
index 90e7735c..00000000
--- a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/js/chili-1.7.pack.js
+++ /dev/null
@@ -1 +0,0 @@
-eval(function(p,a,c,k,e,d){e=function(c){return(c<a?"":e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)d[e(c)]=k[c]||e(c);k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1;};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p;}('8={3b:"1.6",2o:"1B.1Y,1B.23,1B.2e",2i:"",2H:1a,12:"",2C:1a,Z:"",2a:\'<H V="$0">$$</H>\',R:"&#F;",1j:"&#F;&#F;&#F;&#F;",1f:"&#F;<1W/>",3c:5(){9 $(y).39("1k")[0]},I:{},N:{}};(5($){$(5(){5 1J(l,a){5 2I(A,h){4 3=(1v h.3=="1h")?h.3:h.3.1w;k.1m({A:A,3:"("+3+")",u:1+(3.c(/\\\\./g,"%").c(/\\[.*?\\]/g,"%").3a(/\\((?!\\?)/g)||[]).u,z:(h.z)?h.z:8.2a})}5 2z(){4 1E=0;4 1x=x 2A;Q(4 i=0;i<k.u;i++){4 3=k[i].3;3=3.c(/\\\\\\\\|\\\\(\\d+)/g,5(m,1F){9!1F?m:"\\\\"+(1E+1+1t(1F))});1x.1m(3);1E+=k[i].u}4 1w=1x.3d("|");9 x 1u(1w,(a.3g)?"2j":"g")}5 1S(o){9 o.c(/&/g,"&3h;").c(/</g,"&3e;")}5 1R(o){9 o.c(/ +/g,5(1X){9 1X.c(/ /g,R)})}5 G(o){o=1S(o);7(R){o=1R(o)}9 o}5 2m(2E){4 i=0;4 j=1;4 h;19(h=k[i++]){4 1b=D;7(1b[j]){4 1U=/(\\\\\\$)|(?:\\$\\$)|(?:\\$(\\d+))/g;4 z=h.z.c(1U,5(m,1V,K){4 3f=\'\';7(1V){9"$"}v 7(!K){9 G(1b[j])}v 7(K=="0"){9 h.A}v{9 G(1b[j+1t(K,10)])}});4 1A=D[D.u-2];4 2h=D[D.u-1];4 2G=2h.2v(11,1A);11=1A+2E.u;14+=G(2G)+z;9 z}v{j+=h.u}}}4 R=8.R;4 k=x 2A;Q(4 A 2r a.k){2I(A,a.k[A])}4 14="";4 11=0;l.c(2z(),2m);4 2y=l.2v(11,l.u);14+=G(2y);9 14}5 2B(X){7(!8.N[X]){4 Y=\'<Y 32="1p" 33="p/2u"\'+\' 30="\'+X+\'">\';8.N[X]=1H;7($.31.34){4 W=J.1L(Y);4 $W=$(W);$("2d").1O($W)}v{$("2d").1O(Y)}}}5 1q(e,a){4 l=e&&e.1g&&e.1g[0]&&e.1g[0].37;7(!l)l="";l=l.c(/\\r\\n?/g,"\\n");4 C=1J(l,a);7(8.1j){C=C.c(/\\t/g,8.1j)}7(8.1f){C=C.c(/\\n/g,8.1f)}$(e).38(C)}5 1o(q,13){4 1l={12:8.12,2x:q+".1d",Z:8.Z,2w:q+".2u"};4 B;7(13&&1v 13=="2l")B=$.35(1l,13);v B=1l;9{a:B.12+B.2x,1p:B.Z+B.2w}}7($.2q)$.2q({36:"2l.15"});4 2n=x 1u("\\\\b"+8.2i+"\\\\b","2j");4 1e=[];$(8.2o).2D(5(){4 e=y;4 1n=$(e).3i("V");7(!1n){9}4 q=$.3u(1n.c(2n,""));7(\'\'!=q){1e.1m(e);4 f=1o(q,e.15);7(8.2H||e.15){7(!8.N[f.a]){1D{8.N[f.a]=1H;$.3v(f.a,5(M){M.f=f.a;8.I[f.a]=M;7(8.2C){2B(f.1p)}$("."+q).2D(5(){4 f=1o(q,y.15);7(M.f==f.a){1q(y,M)}})})}1I(3s){3t("a 3w Q: "+q+\'@\'+3z)}}}v{4 a=8.I[f.a];7(a){1q(e,a)}}}});7(J.1i&&J.1i.29){5 22(p){7(\'\'==p){9""}1z{4 16=(x 3A()).2k()}19(p.3x(16)>-1);p=p.c(/\\<1W[^>]*?\\>/3y,16);4 e=J.1L(\'<1k>\');e.3l=p;p=e.3m.c(x 1u(16,"g"),\'\\r\\n\');9 p}4 T="";4 18=1G;$(1e).3j().G("1k").U("2c",5(){18=y}).U("1M",5(){7(18==y)T=J.1i.29().3k});$("3n").U("3q",5(){7(\'\'!=T){2p.3r.3o(\'3p\',22(T));2V.2R=1a}}).U("2c",5(){T=""}).U("1M",5(){18=1G})}})})(1Z);8.I["1Y.1d"]={k:{2M:{3:/\\/\\*[^*]*\\*+(?:[^\\/][^*]*\\*+)*\\//},25:{3:/\\<!--(?:.|\\n)*?--\\>/},2f:{3:/\\/\\/.*/},2P:{3:/2L|2T|2J|2O|2N|2X|2K|2Z|2U|2S|2W|2Y|2Q|51|c-50/},53:{3:/\\/[^\\/\\\\\\n]*(?:\\\\.[^\\/\\\\\\n]*)*\\/[52]*/},1h:{3:/(?:\\\'[^\\\'\\\\\\n]*(?:\\\\.[^\\\'\\\\\\n]*)*\\\')|(?:\\"[^\\"\\\\\\n]*(?:\\\\.[^\\"\\\\\\n]*)*\\")/},27:{3:/\\b[+-]?(?:\\d*\\.?\\d+|\\d+\\.?\\d*)(?:[1r][+-]?\\d+)?\\b/},4X:{3:/\\b(D|1N|1K|1I|2t|2s|4W|1z|v|1a|Q|5|7|2r|4Z|x|1G|9|1Q|y|1H|1D|1v|4|4Y|19|59)\\b/},1y:{3:/\\b(58|2k|2p|5b|5a|55|J|54|57|1t|56|4L|4K|4N|4M|4H|4G|4J)\\b/},1C:{3:/(?:\\<\\w+)|(?:\\>)|(?:\\<\\/\\w+\\>)|(?:\\/\\>)/},26:{3:/\\s+\\w+(?=\\s*=)/},20:{3:/([\\"\\\'])(?:(?:[^\\1\\\\\\r\\n]*?(?:\\1\\1|\\\\.))*[^\\1\\\\\\r\\n]*?)\\1/},21:{3:/&[\\w#]+?;/},4I:{3:/(\\$|1Z)/}}};8.I["23.1d"]={k:{25:{3:/\\<!--(?:.|\\n)*?--\\>/},1h:{3:/(?:\\\'[^\\\'\\\\\\n]*(?:\\\\.[^\\\'\\\\\\n]*)*\\\')|(?:\\"[^\\"\\\\\\n]*(?:\\\\.[^\\"\\\\\\n]*)*\\")/},27:{3:/\\b[+-]?(?:\\d*\\.?\\d+|\\d+\\.?\\d*)(?:[1r][+-]?\\d+)?\\b/},1C:{3:/(?:\\<\\w+)|(?:\\>)|(?:\\<\\/\\w+\\>)|(?:\\/\\>)/},26:{3:/\\s+\\w+(?=\\s*=)/},20:{3:/([\\"\\\'])(?:(?:[^\\1\\\\\\r\\n]*?(?:\\1\\1|\\\\.))*[^\\1\\\\\\r\\n]*?)\\1/},21:{3:/&[\\w#]+?;/}}};8.I["2e.1d"]={k:{4S:{3:/\\/\\*[^*]*\\*+([^\\/][^*]*\\*+)*\\//},2f:{3:/(?:\\/\\/.*)|(?:[^\\\\]\\#.*)/},4V:{3:/\\\'[^\\\'\\\\]*(?:\\\\.[^\\\'\\\\]*)*\\\'/},4U:{3:/\\"[^\\"\\\\]*(?:\\\\.[^\\"\\\\]*)*\\"/},4P:{3:/\\b(?:[4O][2b][1s][1s]|[4R][4Q][2b][1P]|[5c][5v][1s][5u][1P])\\b/},5x:{3:/\\b[+-]?(\\d*\\.?\\d+|\\d+\\.?\\d*)([1r][+-]?\\d+)?\\b/},5y:{3:/\\b(?:5z|5w(?:5A|5E(?:5F(?:17|1c)|5G(?:17|1c))|17|1T|5B|5C|5D(?:17|1T|1c)|1c)|P(?:5h(?:5k|5j)|5e(?:5d|5g(?:5f|5l)|5r|E(?:5t|5s)|5n(?:5m|5p)|L(?:3X|3W)|O(?:S|3Y(?:3T|3S|3V))|3U|S(?:44|47|46)|41))|40)\\b/},1y:{3:/(?:\\$43|\\$42|\\$3R|\\$3G|\\$3F|\\$3I|\\$3H|\\$3C|\\$3B|\\$3D)\\b/},28:{3:/\\b(?:3O|3N|3P|3K|3J|3M|3L|48|4v|1N|1K|1I|4u|V|4x|4w|2t|4r|2s|4q|1z|4t|v|4s|4D|4C|4F|4E|4z|4y|4B|4A|4p|4d|2F|2F|4g|Q|4f|5|1y|7|4a|4m|4l|4o|4i|4k|x|4j|4h|4n|4b|4c|49|4e|3Q|3E|9|45|1Q|y|3Z|1D|5o|5q|4|19|5i)\\b/},2g:{3:/\\$(\\w+)/,z:\'<H V="28">$</H><H V="2g">$1</H>\'},1C:{3:/(?:\\<\\?[24][4T][24])|(?:\\<\\?)|(?:\\?\\>)/}}}',62,353,'|||exp|var|function||if|ChiliBook|return|recipe||replace||el|path||step|||steps|ingredients|||str|text|recipeName||||length|else||new|this|replacement|stepName|settings|dish|arguments||160|filter|span|recipes|document|||recipeLoaded|required|||for|replaceSpace||insidePRE|bind|class|domLink|stylesheetPath|link|stylesheetFolder||lastIndex|recipeFolder|options|perfect|chili|newline|ERROR|downPRE|while|false|aux|WARNING|js|codes|replaceNewLine|childNodes|string|selection|replaceTab|pre|settingsDef|push|elClass|getPath|stylesheet|makeDish|eE|Ll|parseInt|RegExp|typeof|source|exps|global|do|offset|code|tag|try|prevLength|aNum|null|true|catch|cook|case|createElement|mouseup|break|append|Ee|switch|replaceSpaces|escapeHTML|NOTICE|pattern|escaped|br|spaces|mix|jQuery|avalue|entity|preformatted|xml|Pp|htcom|aname|numbers|keyword|createRange|defaultReplacement|Uu|mousedown|head|php|com|variable|input|elementClass|gi|valueOf|object|chef|selectClass|elementPath|window|metaobjects|in|default|continue|css|substring|stylesheetFile|recipeFile|lastUnmatched|knowHow|Array|checkCSS|stylesheetLoading|each|matched|extends|unmatched|recipeLoading|prepareStep|unblockUI|ajaxSubmit|silverlight|jscom|unblock|block|plugin|clearFields|returnValue|fieldValue|blockUI|formSerialize|event|resetForm|ajaxForm|clearForm|fieldSerialize|href|browser|rel|type|msie|extend|selector|data|html|next|match|version|getPRE|join|lt|bit|ignoreCase|amp|attr|parents|htmlText|innerHTML|innerText|body|setData|Text|copy|clipboardData|recipeNotAvailable|alert|trim|getJSON|unavailable|indexOf|ig|recipePath|Date|_SESSION|_SERVER|php_errormsg|require_once|_GET|_FILES|_REQUEST|_POST|__METHOD__|__LINE__|and|abstract|__FILE__|__CLASS__|__FUNCTION__|require|_ENV|END|CONT|PREFIX|START|OCALSTATEDIR|IBDIR|UTPUT_HANDLER_|throw|__COMPILER_HALT_OFFSET__|VERSION|_COOKIE|GLOBALS|API|static|YSCONFDIR|HLIB_SUFFIX|array|protected|implements|print|private|exit|public|foreach|final|or|isset|old_function|list|include_once|include|php_user_filter|interface|exception|die|declare|elseif|echo|cfunction|as|const|clone|endswitch|endif|eval|endwhile|enddeclare|empty|endforeach|endfor|isNaN|NaN|jquery|Infinity|clearTimeout|setTimeout|clearInterval|setInterval|Nn|value|Rr|Tt|mlcom|Hh|string2|string1|delete|keywords|void|instanceof|content|taconite|gim|regexp|escape|constructor|parseFloat|unescape|toString|with|prototype|element|Ff|BINDIR|HP_|PATH|CONFIG_FILE_|EAR_|xor|INSTALL_DIR|EXTENSION_DIR|SCAN_DIR|MAX|INT_|unset|SIZE|use|DATADIR|XTENSION_DIR|OL|Ss|Aa|E_|number|const1|DEFAULT_INCLUDE_PATH|ALL|PARSE|STRICT|USER_|CO|MPILE_|RE_'.split('|'),0,{}))
diff --git a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/login/images/bg.gif b/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/login/images/bg.gif
deleted file mode 100755
index 12662a47..00000000
--- a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/login/images/bg.gif
+++ /dev/null
Binary files differdiff --git a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/login/images/header1.jpg b/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/login/images/header1.jpg
deleted file mode 100755
index 70986716..00000000
--- a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/login/images/header1.jpg
+++ /dev/null
Binary files differdiff --git a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/login/images/page.gif b/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/login/images/page.gif
deleted file mode 100755
index 1717731b..00000000
--- a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/login/images/page.gif
+++ /dev/null
Binary files differdiff --git a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/login/images/required_star.gif b/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/login/images/required_star.gif
deleted file mode 100755
index e4c16ebf..00000000
--- a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/login/images/required_star.gif
+++ /dev/null
Binary files differdiff --git a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/login/index.html b/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/login/index.html
deleted file mode 100755
index 63ae90f6..00000000
--- a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/login/index.html
+++ /dev/null
@@ -1,76 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-	<title>Login Form with Email Password Link</title>
-	<meta http-equiv="content-type" content="text/html; charset=utf-8" />
-	<link rel="stylesheet" type="text/css" media="screen" href="screen.css" />
-	
-	<script type="text/javascript" src="../../lib/jquery.js"></script>
-	<script type="text/javascript" src="../../jquery.validate.js"></script>
-
-	<script type="text/javascript">
-		
-	$(function() {
-		// highlight 
-		var elements = $("input[type!='submit'], textarea, select");
-		elements.focus(function(){
-			$(this).parents('li').addClass('highlight');
-		});
-		elements.blur(function(){
-			$(this).parents('li').removeClass('highlight');
-		});
-		
-		$("#forgotpassword").click(function() {
-			$("#password").removeClass("required");
-			$("#login").submit();
-			$("#password").addClass("required");
-			return false;
-		});
-		
-		$("#login").validate()
-	});
-	</script>
-	
-</head>
-<body>
-	<div id="page">
-
-		<div id="header">
-			<h1>Login</h1>
-		</div>
-
-		<div id="content">
-			<p id="status"></p>
-			<form action="" method="get" id="login">
-				<fieldset>
-					<legend>User details</legend>
-					<ul>
-						<li>
-							<label for="email"><span class="required">Email address</span></label>
-							<input id="email" name="email" class="text required email" type="text" />
-							<label for="email" class="error">This must be a valid email address</label>
-						</li>
-						
-						<li>
-							<label for="password"><span class="required">Password</span></label>
-							<input name="password" type="password" class="text required" id="password" minlength="4" maxlength="20" />
-						</li>
-
-						<li>
-							<label class="centered info"><a id="forgotpassword" href="#">Email my password...</a></label>
-						</li>
-					</ul>
-				</fieldset>
-				
-				<fieldset class="submit">
-					<input type="submit" class="button" value="Login..." />
-				</fieldset>
-				
-				<div class="clear"></div>
-			</form>
-			
-			</div>
-	</div>
-	
-</body>
-</html>
diff --git a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/login/screen.css b/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/login/screen.css
deleted file mode 100755
index e023a533..00000000
--- a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/login/screen.css
+++ /dev/null
@@ -1,457 +0,0 @@
-/*******************************************************************************
-********************************************************************************
-**
-* - GENERAL
-*
-* - PAGE CONTAINERS
-*
-* - HEADER
-*
-* - CONTENT
-**
-********************************************************************************
- ******************************************************************************/
-
-
-
-
-/* GENERAL ------------------------------------------------------------------ */
-
-	html
-		{
-		height: 100%;
-	}
-	
-	/* Zero default margin & padding around common elements */
-	body, dd, dl, dt, form, h1, h2, h3, h4, h5, h6, ul, ol, li, p
-		{
-		margin: 0;
-		border: none;
-		padding: 0;
-		}
-	
-	body
-		{
-		height: 100%;
-		background-color: #333333;
-		background-image: url(images/bg.gif);
-		background-position: 0% 0;
-		color: #000000;
-		line-height: 1.5;
-		font-family: Arial, Helvetica, sans-serif;
-		font-size: 62.5%;
-		text-align: center;
-		overflow:auto;
-		}
-	
-	a:link
-		{
-		color: #003399;
-		}
-	
-	a:visited
-		{
-		color: #B266B2;
-		}
-	
-	a:hover
-		{
-		text-decoration: none;
-		}
-	
-	
-	
-	
-	/* PAGE CONTAINERS ---------------------------------------------------------- */
-	
-	#page
-		{
-		width: 636px;
-		w\idth: 600px;
-		min-height: 100%;
-		margin: 17px auto;
-		padding: 0 18px;
-		background-image: url(images/page.gif);
-		background-repeat: repeat-y;
-		text-align: left;
-		}
-	
-	* html #page
-		{
-		height: 100%;
-		}
-	
-	
-	
-	
-	/* HEADER ------------------------------------------------------------------- */
-	
-	#header
-		{
-		height: 90px;
-		background-color: #B2DD32;
-		background-image: url(images/header1.jpg);
-		background-repeat: repeat-x;
-		}
-	
-	h1
-		{
-		padding: 0 35px;
-		font-size: 2.2em;
-		font-weight: normal;
-		line-height: 82px;
-		}
-	
-	
-	
-	
-	/* CONTENT ------------------------------------------------------------------ */
-	
-	#content
-		{
-		padding: 0 25px;
-		}
-	
-	p
-		{
-		font-size:1.1em;
-		margin-top: 1.5em;
-		}
-	
-	form
-		{
-		margin-top: 1.5em;
-		}
-	
-	
-
-	/*** MASTER FORM WIDTHS - CUSTOMIZE THIS TO CHANGE THE FORM LAYOUT ***/
-
-	/*
-	form width:		550px
-	left column:	190px / 180px + 10px padding
-	mid column:		200px
-	right column:	160px
-	*/
-
-	form{
-		width:550px !important;
-		}
-
-	fieldset.submit
-		{
-		padding-left: 190px !important;
-		}
-
-	form label{
-		padding:0px 10px;
-		width: 160px;
-		}
-
-	form label.error,
-	form input.submit
-		{
-		margin-left:180px !important;
-		}		
-
-	form fieldset fieldset label.error
-		{
-		margin-left:0px !important;
-		width:200px !important;
-		}		
-
-
-	form .centered{
-		margin-left:180px !important;
-		width:200px !important;
-		}
-	
-	form .text, 
-	form .button,
-	form .group,
-	form .control,
-	form .submit,
-	form textarea,
-	form select
-		{
-		width: 200px !important;
-		}
-		
-
-
-
-/*** FIELDSETS AND LEGENDS ***/
-
-	form{
-		width:550px;
-		margin-bottom:25px;
-		clear:both;
-		}
-
-	form fieldset
-		{
-		margin: 0 0 1.5em 0;
-		padding: 0 0 10px 0px;
-		
-		border: 1px solid #BFBAB0;
-		
-		background-color: #F2EFE9;
-		background-image: url(images/fieldset_gradient.jpg);
-		background-repeat: repeat-x;
-		
-		background-color: #fff;
-		background-image: url(images/fieldset-gradient-02.jpg);
-		background-position:bottom;
-		
-		float: left;
-		clear: both;
-		width: 100%;
-		
-		}
-	
-	form fieldset.submit
-		{
-		padding: 0px 10px 10px 190px;
-		border-style: none;
-		
-		background-color: transparent;
-		background-image: none;
-		
-		float: none;
-		width: auto;
-		
-		}
-	
-	form legend
-		{
-		color: #000000;
-		
-		font-size:1.3em;
-		font-weight: bold;
-		font-variant:small-caps;
-		
-		margin-left: 1em;
-		padding:0px 5px;
-		}
-		
-	form fieldset p{
- 		margin:10px 0px 0px 10px;
- 		}
-	
-/*** FORM BLOCKS ***/
-
-	form ul
-		{
-		padding:5px 10px;
-		list-style: none;
-		}
-	
-	form li
-		{
-		width: 100%;
-		
-		padding:5px 0px 10px 0;
-		border-top:1px dotted #ccc;
-		
-		display:block;
-		float: left;
-		clear: left;
-	}
-	
-	form li:first-child
-		{
-		border:none;
-		}
-
-	
-/*** FORM BLOCK ELEMENTS ***/
-
-	form label
-		{
-		padding:0px 10px;
-		width: 160px;
-		float: left;
-		}
-		
-	form .error{
-		color: #c00;
-		}
-		
-	form label.error
-		{
-		color: #c00;
-		
-		font-size: 100%;
-		font-weight: bold;
-		font-variant:small-caps;
-		
-		width:308px;
-		display: none;
-
-		margin:8px 0px 0px 180px;
-		padding:3px 0px 0px 5px;
-		border-top:1px dotted #ccc;
-		
-		clear:both;
-		}
-		
-	form label.info{
-		font-size: 100%;
-		font-weight: bold;
-		font-variant:small-caps;
-		
-		margin:8px 0px 0px 180px;
-		padding:3px 0px 0px 5px;
-		}
-
-	form fieldset fieldset,
-	form .group
-		{
-		width:200px;
-		
-		margin: 0;
-		border:none;
-		
-		background:none;
-		
-		float:left;
-		clear: none;
-		
-		}
-		
-	form fieldset fieldset label
-		{
-		width:auto !important;
-		white-space:nowrap;
-		padding:0px;
-		margin:0px;
-		display:block;
-		clear:both;
-		}
-		
-	form label label.error{
-		margin-left:0px;
-		}
-
-	form label.centered{
-		padding:0px 0px;
-		width:200px !important;
-		}
-		
-	/* see also the error class at the foot of the page */
-	
-	form fieldset fieldset label.spaced
-		{
-		margin-bottom:3px;
-		}
-
-/*** FORM ELEMENT COLUMNS ***/
-
-	.col-1,
-	fieldset fieldset.col-1 label
-		{
-		width:100%;
-		}
-
-	.col-2,
-	fieldset fieldset.col-2 label
-		{
-		width:50%;
-		}
-
-	.col-3,
-	fieldset fieldset.col-3 label
-		{
-		width:33%;
-		}
-
-	.col-4,
-	fieldset fieldset.col-4 label
-		{
-		width:25%;
-		}
-
-
-
-
-/*** FORM ELEMENTS ***/
-
-	form input.submit{
-		margin:10px 0px 10px 180px;
-		padding:0px 2px;
-		}
-
-	form input, textarea, select, 
-	form label
-		{
-		font-size:1.1em;
-		line-height:1.6em;
-		}
-
-	form input, textarea, select
-		{
-		font-family: Verdana, Arial, Helvetica, sans-serif;
-		}
-
-	form .input[type="text"],
-	form textarea
-		{
-		padding:1px;
-		}
-		
-	form .input[type="radio"],
-	form .input[type="checkbox"]
-		{
-		margin:0px;
-		padding:0px;
-		position:relative;
-		top:3px;
-		}
-		
-/*** SUPPORTING CLASSES ***/
-
-	form label.required{
-		background-image:url(images/required_star.gif);
-		background-position:right;
-		background-repeat:no-repeat;
-		}
-	
-	form span.required{
-		padding-right:15px;
-		}
-		
-	form .clean
-		{
-		border:none;
-		}
-		
-	form .info{
-		padding-top:0.5em;
-		font-size:80%;
-		line-height:100%;
-		color:#aaa;
-		}
-		
-	form .indent{
- 		padding:2px 20px; 
-		width:auto !important;
-		white-space:nowrap;
-		padding-left: 25px !important;
- 		}
-		
-	form label.disabled{
-		color:#aaa;
-		}
-	
-	form .highlight{
-		background-color:#e2e2e2;
-		}
-	
-	.off{
-		display:none !important;
-		}
-		
-	.clear{
-		clear:both;
-		}
-		
\ No newline at end of file
diff --git a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/marketo/emails.php b/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/marketo/emails.php
deleted file mode 100755
index fc45dbd2..00000000
--- a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/marketo/emails.php
+++ /dev/null
@@ -1,10 +0,0 @@
-<?php
-$request = trim(strtolower($_REQUEST['email']));
-$emails = array('glen@marketo.com', 'george@bush.gov', 'me@god.com', 'aboutface@cooper.com', 'steam@valve.com', 'bill@gates.com');
-$valid = 'true';
-foreach($emails as $email) {
-	if( strtolower($email) == $request )
-		$valid = 'false';
-}
-echo $valid;
-?>
\ No newline at end of file
diff --git a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/marketo/emails.phps b/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/marketo/emails.phps
deleted file mode 100755
index d2219cc9..00000000
--- a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/marketo/emails.phps
+++ /dev/null
@@ -1,10 +0,0 @@
-<?php
-$request = trim(strtolower($_REQUEST['value']));
-$emails = array('glen@marketo.com', 'george@bush.gov', 'me@god.com', 'aboutface@cooper.com', 'steam@valve.com', 'bill@gates.com');
-$valid = 'true';
-foreach($emails as $email) {
-	if( strtolower($email) == $request )
-		$valid = 'false';
-}
-echo $valid;
-?>
\ No newline at end of file
diff --git a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/marketo/ie6.css b/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/marketo/ie6.css
deleted file mode 100755
index a1a24b4f..00000000
--- a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/marketo/ie6.css
+++ /dev/null
@@ -1,35 +0,0 @@
-img.png {
-    background-image: expression(
-        this.runtimeStyle.backgroundImage = "none",
-        this.runtimeStyle.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + this.src + "', sizingMethod='image')",
-        this.src = "images/blank.gif"
-    );
-}
-
-
-
-.hidden {
-  display:none
-}
-
-
-
-div.login { width: 120px;}
-div.nav-global LI,
-div.nav-global LI A {  display:inline !important;  zoom: 1;}
-
-div.nav-global LI A:hover,
-div.nav-left li a:hover {  text-decoration: none;}
-
-div.buttonSubmit {  height: 36px;}
-
-div.buttonSubmit input {  position: absolute;}
-
-div.offerHeader {margin-left: 3px;}
-
-#col-left {  height: 340px;}
-
-span#cancellation {
-  position: relative;
-  top: 20px;
-}
\ No newline at end of file
diff --git a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/marketo/images/backRequiredGray.gif b/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/marketo/images/backRequiredGray.gif
deleted file mode 100755
index 61d29adf..00000000
--- a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/marketo/images/backRequiredGray.gif
+++ /dev/null
Binary files differdiff --git a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/marketo/images/back_green-fade.gif b/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/marketo/images/back_green-fade.gif
deleted file mode 100755
index 30774527..00000000
--- a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/marketo/images/back_green-fade.gif
+++ /dev/null
Binary files differdiff --git a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/marketo/images/back_nav_blue.gif b/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/marketo/images/back_nav_blue.gif
deleted file mode 100755
index 3d3da3a8..00000000
--- a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/marketo/images/back_nav_blue.gif
+++ /dev/null
Binary files differdiff --git a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/marketo/images/blank.gif b/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/marketo/images/blank.gif
deleted file mode 100755
index 3b042d8b..00000000
--- a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/marketo/images/blank.gif
+++ /dev/null
Binary files differdiff --git a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/marketo/images/button-submit.gif b/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/marketo/images/button-submit.gif
deleted file mode 100755
index 54d291cd..00000000
--- a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/marketo/images/button-submit.gif
+++ /dev/null
Binary files differdiff --git a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/marketo/images/favicon.ico b/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/marketo/images/favicon.ico
deleted file mode 100755
index 0f57c530..00000000
--- a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/marketo/images/favicon.ico
+++ /dev/null
Binary files differdiff --git a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/marketo/images/help.png b/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/marketo/images/help.png
deleted file mode 100755
index 73817ffb..00000000
--- a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/marketo/images/help.png
+++ /dev/null
Binary files differdiff --git a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/marketo/images/left-nav-callout-long.png b/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/marketo/images/left-nav-callout-long.png
deleted file mode 100755
index c5b8fad7..00000000
--- a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/marketo/images/left-nav-callout-long.png
+++ /dev/null
Binary files differdiff --git a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/marketo/images/login-sprite.gif b/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/marketo/images/login-sprite.gif
deleted file mode 100755
index 799b1960..00000000
--- a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/marketo/images/login-sprite.gif
+++ /dev/null
Binary files differdiff --git a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/marketo/images/logo_marketo.gif b/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/marketo/images/logo_marketo.gif
deleted file mode 100755
index 62663bca..00000000
--- a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/marketo/images/logo_marketo.gif
+++ /dev/null
Binary files differdiff --git a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/marketo/images/sf.png b/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/marketo/images/sf.png
deleted file mode 100755
index 962bf2a5..00000000
--- a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/marketo/images/sf.png
+++ /dev/null
Binary files differdiff --git a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/marketo/images/step1-24.gif b/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/marketo/images/step1-24.gif
deleted file mode 100755
index 9ddf1e36..00000000
--- a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/marketo/images/step1-24.gif
+++ /dev/null
Binary files differdiff --git a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/marketo/images/step2-24.gif b/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/marketo/images/step2-24.gif
deleted file mode 100755
index bada27f1..00000000
--- a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/marketo/images/step2-24.gif
+++ /dev/null
Binary files differdiff --git a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/marketo/images/step3-24.gif b/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/marketo/images/step3-24.gif
deleted file mode 100755
index 8a45393f..00000000
--- a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/marketo/images/step3-24.gif
+++ /dev/null
Binary files differdiff --git a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/marketo/images/tab-sprite.gif b/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/marketo/images/tab-sprite.gif
deleted file mode 100755
index 048b9b00..00000000
--- a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/marketo/images/tab-sprite.gif
+++ /dev/null
Binary files differdiff --git a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/marketo/images/tab_green.gif b/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/marketo/images/tab_green.gif
deleted file mode 100755
index ef1c0847..00000000
--- a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/marketo/images/tab_green.gif
+++ /dev/null
Binary files differdiff --git a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/marketo/images/time.png b/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/marketo/images/time.png
deleted file mode 100755
index 911da3f1..00000000
--- a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/marketo/images/time.png
+++ /dev/null
Binary files differdiff --git a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/marketo/images/toggle.gif b/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/marketo/images/toggle.gif
deleted file mode 100755
index ad1bf0fa..00000000
--- a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/marketo/images/toggle.gif
+++ /dev/null
Binary files differdiff --git a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/marketo/images/warning.gif b/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/marketo/images/warning.gif
deleted file mode 100755
index 60da04c2..00000000
--- a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/marketo/images/warning.gif
+++ /dev/null
Binary files differdiff --git a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/marketo/index.html b/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/marketo/index.html
deleted file mode 100755
index f3d659bb..00000000
--- a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/marketo/index.html
+++ /dev/null
@@ -1,242 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/2000/REC-xhtml1-200000126/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-<meta name="title" content="Subscription Signup | Marketo" />
-<meta name="robots" content="index, follow" />
-<meta name="description" content="Marketo Search Marketing application" />
-<meta name="keywords" content="Marketo, Search Marketing" />
-<meta name="language" content="en" />
-<title>Subscription Signup | Marketo</title>
-
-<link rel="shortcut icon" href="/favicon.ico" />
-
-<script src="../../lib/jquery.js" type="text/javascript"></script>
-<script src="../../jquery.validate.js" type="text/javascript"></script>
-
-<script type="text/javascript" src="jquery.maskedinput.js"></script>
-<script type="text/javascript" src="mktSignup.js"></script>
-
-<link rel="stylesheet" type="text/css" media="screen" href="stylesheet.css" />
-</head>
-<body>
-<!--[if lte IE 6]>
-  <link rel="stylesheet" type="text/css" media="all" href="ie6.css" />
-<![endif]-->
-
-<!-- start page wrapper --><div id="letterbox">
-
-<!-- start header container -->
-<div id="header-background">
-        <div class="nav-global-container">
-
-                <div class="login"><a href="#"><span></span>Customer Login</a></div>
-                <div class="logo"><a href="#"><img src="images/logo_marketo.gif" width="168" height="73"  alt="Marketo" /></a></div>
-		<div class="nav-global">
-				<ul>
-      		<li><a href="#" class="nav-g01"><span></span>Home</a></li>
-    			<li><a href="#" class="nav-g02"><span></span>Products</a></li>
-    			<li><a href="#" class="nav-g04"><span></span>B2B Marketing Resources</a></li>
-
-    			<li><a href="#" class="nav-g05"><span></span>About Marketo</a></li>
-			</ul>
-		</div>
-
-	</div>
-</div>
-<!-- end header container -->
-<div class="line-grey-tier"></div>
-
-<!-- start page container 2 div-->
-<div id="page-container" class="resize"><div id="page-content-inner" class="resize">
-
-<!-- start col-main -->
-
-<div id="col-main" class="resize" style="">
-
-
-
-  <!-- start main content  -->
-  <div class="main-content resize">
-
-  <div class="action-container" style="display:none;"></div>
-
-
-<h1>Step 1 of 2 </h1>
-<p>
-</p>
-<br clear="all" />
-<div>
-  <form id="profileForm" type="actionForm" action="step2.htm" method="get" >
-
-
-    <div class="error" style="display:none;">
-      <img src="images/warning.gif" alt="Warning!" width="24" height="24" style="float:left; margin: -5px 10px 0px 0px; " />
-
-      <span></span>.<br clear="all"/>
-    </div>
-
-
-    <table cellpadding="0" cellspacing="0" border="0">
-      <tr>
-        <td class="label"><label for="co_name">Company Name:</label></td>
-        <td class="field">
-          <input id="co_name" class="required" maxlength="40" name="co_name" size="20" type="text" tabindex="1" value="" />
-        </td>
-      </tr>
-      <tr>
-        <td class="label"><label for="co_url">Company URL:</label></td>
-        <td class="field">
-          <input id="co_url" class="required defaultInvalid url" maxlength="40" name="co_url" style="width:163px" type="text" tabindex="2" value="http://" />
-        </td>
-      </tr>
-      <tr>
-        <td/><td/>
-      </tr>
-      <tr>
-        <td class="label"><label for="first_name">First Name:</label></td>
-        <td class="field">
-          <input id="first_name" class="required" maxlength="40" name="first_name" size="20" type="text" tabindex="3" value="" />
-        </td>
-      </tr>
-      <tr>
-        <td class="label"><label for="last_name">Last Name:</label></td>
-        <td class="field">
-          <input id="last_name" class="required" maxlength="40" name="last_name" size="20" type="text" tabindex="4" value="" />
-        </td>
-      </tr>
-      <tr>
-        <td class="label"><label for="address1">Company Address:</label></td>
-        <td class="field">
-          <input  maxlength="40" class="required" name="address1" size="20" type="text" tabindex="5" value="" />
-        </td>
-      </tr>
-      <tr>
-        <td class="label"></td>
-        <td class="field">
-          <input  maxlength="40" name="address2" size="20" type="text" tabindex="6" value="" />
-        </td>
-      </tr>
-      <tr>
-        <td class="label"><label for="city">City:</label></td>
-        <td class="field">
-          <input  maxlength="40" class="required" name="city" size="20" type="text" tabindex="7" value="" />
-        </td>
-      </tr>
-      <tr>
-        <td class="label"><label for="state">State:</label></td>
-        <td class="field">
-          <select id="state" class="required" name="state" style="margin-left: 4px;" tabindex="8">
-            <option value="">Choose State:</option>
-            <option value="AL">Alabama</option><option value="AK">Alaska</option><option value="AZ">Arizona</option><option value="AR">Arkansas</option><option value="CA">California</option><option value="CO">Colorado</option><option value="CT">Connecticut</option><option value="DE">Delaware</option><option value="FL">Florida</option><option value="GA">Georgia</option><option value="HI">Hawaii</option><option value="ID">Idaho</option><option value="IL">Illinois</option><option value="IN">Indiana</option><option value="IA">Iowa</option><option value="KS">Kansas</option><option value="KY">Kentucky</option><option value="LA">Louisiana</option><option value="ME">Maine</option><option value="MD">Maryland</option><option value="MA">Massachusetts</option><option value="MI">Michigan</option><option value="MN">Minnesota</option><option value="MS">Mississippi</option><option value="MO">Missouri</option><option value="MT">Montana</option><option value="NE">Nebraska</option><option value="NV">Nevada</option><option value="NH">New Hampshire</option><option value="NJ">New Jersey</option><option value="NM">New Mexico</option><option value="NY">New York</option><option value="NC">North Carolina</option><option value="ND">North Dakota</option><option value="OH">Ohio</option><option value="OK">Oklahoma</option><option value="OR">Oregon</option><option value="PA">Pennsylvania</option><option value="RI">Rhode Island</option><option value="SC">South Carolina</option><option value="SD">South Dakota</option><option value="TN">Tennessee</option><option value="TX">Texas</option><option value="UT">Utah</option><option value="VT">Vermont</option><option value="VA">Virginia</option><option value="WA">Washington</option><option value="WV">West Virginia</option><option value="WI">Wisconsin</option><option value="WY">Wyoming</option>
-          </select>
-        </td>
-      </tr>
-
-      <tr>
-        <td class="label"><label for="zip">Zip:</label></td>
-        <td class="field">
-          <input  maxlength="10" name="zip" style="width: 100px" type="text" class="required zipcode" tabindex="9" value="" />
-        </td>
-      </tr>
-      <tr>
-        <td class="label"><label for="phone">Phone:</label></td>
-        <td class="field">
-          <input id="phone" maxlength="14" name="phone" type="text" class="required phone" tabindex="10" value="" />
-        </td>
-      </tr>
-
-
-
-      <tr>
-        <td colspan="2">
-          <h2 style="border-bottom: 1px solid #CCCCCC;">Login Information</h2>
-        </td>
-      </tr>
-
-
-      <tr>
-        <td class="label"><label for="email">Email:</label></td>
-        <td class="field">
-          <input id="email" class="required email" remote="emails.php" maxlength="40" name="email" size="20" type="text" tabindex="11" value="" />
-        </td>
-      </tr>
-
-      <tr>
-        <td class="label"><label for="password1">Password:</label></td>
-        <td class="field">
-        	<input id="password1" class="required password" maxlength="40" name="password1" size="20" type="password" tabindex="12" value="" />
-        </td>
-      </tr>
-      <tr>
-        <td class="label"><label for="password2">Retype Password:</label></td>
-        <td class="field">
-          <input id="password2" class="required" equalTo="#password1" maxlength="40" name="password2"  size="20" type="password" tabindex="13" value="" />
-          <div class="formError"></div>
-        </td>
-      </tr>
-      <tr>
-        <td></td>
-        <td>
-          <div class="buttonSubmit">
-            <span></span>
-            <input class="formButton" type="submit" value="Next" style="width: 140px" tabindex="14" />
-          </div>
-
-        </td>
-      </tr>
-    </table><br /><br />
-  </form>
-  <br clear="all"/>
-
-
-</div>
-
-
-
-	</div>	<!-- end main content  -->
-	<br />
-</div> <!-- end col-main -->
-
-<!-- start left col -->
-<div id="col-left" class="nav-left-back empty resize" style="position: absolute; min-height: 450px;">
-  <div class="col-left-header-tab" style="position: absolute;">Signup</div>
-  <div class="nav-left">
-
-  </div>
-
-
-      <div class="left-nav-callout png" style="top: 15px; margin-bottom: 100px;">
-        <img src="images/left-nav-callout-long.png"  class="png" alt="" />
-        <h6>Sign Up Process</h6>
-        <a style="background-image: url(images/step1-24.gif); font-weight: normal; text-decoration: none; cursor: default;">Sign up with a valid credit card.</a>
-        <a style="background-image: url(images/step2-24.gif); font-weight: normal; text-decoration: none; cursor: default;">Connect to your Google AdWords account.  You will need your AdWords Customer ID.</a>
-        <a style="background-image: url(images/step3-24.gif); font-weight: normal; text-decoration: none; cursor: default;">Start your 30 day trial.  No payments until trial ends.</a>
-      </div>
-
-<div class="footerAddress">
-<b>Marketo Inc.</b><br />
-1710 S. Amphlett Blvd.<br />
-San Mateo, CA 94402 USA<br />
-</div>
-<br clear="all"/>
-</div>	<!-- end left col -->
-
-</div>  </div>  <!-- end page container 2 divs-->
-
-  <div id="footer-container" align="center">
-   <div class="footer">
-    <ul>
-    <li><a href="..">Home</a></li>
-    <li class="line-off"><a href="step2.htm">Second step</a></li>
-    </ul>
-    </div></div>
-
-
-
-<!-- end page wrapper -->
-</div>
-
-    </body>
-</html>
diff --git a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/marketo/jquery.maskedinput.js b/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/marketo/jquery.maskedinput.js
deleted file mode 100755
index 0cd5cfcd..00000000
--- a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/marketo/jquery.maskedinput.js
+++ /dev/null
@@ -1,267 +0,0 @@
-/*
- * Copyright (c) 2007 Josh Bush (digitalbush.com)
- * 
- * Permission is hereby granted, free of charge, to any person
- * obtaining a copy of this software and associated documentation
- * files (the "Software"), to deal in the Software without
- * restriction, including without limitation the rights to use,
- * copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following
- * conditions:
-
- * The above copyright notice and this permission notice shall be
- * included in all copies or substantial portions of the Software.
- * 
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
- * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
- * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
- * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
- * OTHER DEALINGS IN THE SOFTWARE. 
- */
- 
-/*
- * Version: 1.1
- * Release: 2007-09-08
- */ 
-(function($) {
-	//Helper Functions for Caret positioning
-	function getCaretPosition(ctl){
-		var res = {begin: 0, end: 0 };
-		if (ctl.setSelectionRange){
-			res.begin = ctl.selectionStart;
-			res.end = ctl.selectionEnd;
-		}else if (document.selection && document.selection.createRange){
-			var range = document.selection.createRange();			
-			res.begin = 0 - range.duplicate().moveStart('character', -100000);
-			res.end = res.begin + range.text.length;
-		}
-		return res;
-	};
-
-	function setCaretPosition(ctl, pos){		
-		if(ctl.setSelectionRange){
-			ctl.focus();
-			ctl.setSelectionRange(pos,pos);
-		}else if (ctl.createTextRange){
-			var range = ctl.createTextRange();
-			range.collapse(true);
-			range.moveEnd('character', pos);
-			range.moveStart('character', pos);
-			range.select();
-		}
-	};
-	
-	//Predefined character definitions
-	var charMap={
-		'9':"[0-9]",
-		'a':"[A-Za-z]",
-		'*':"[A-Za-z0-9]"
-	};
-	
-	//Helper method to inject character definitions
-	$.mask={
-		addPlaceholder : function(c,r){
-			charMap[c]=r;
-		}
-	};
-	
-	$.fn.unmask=function(){
-		return this.trigger("unmask");
-	};
-	
-	//Main Method
-	$.fn.mask = function(mask,settings) {	
-		settings = $.extend({
-			placeholder: "_",
-			completed: null
-		}, settings);
-			
-		//Build Regex for format validation
-		var reString="^";	
-		for(var i=0;i<mask.length;i++)
-			reString+=(charMap[mask.charAt(i)] || ("\\"+mask.charAt(i)));					
-		reString+="$";
-		var re = new RegExp(reString);
-
-		return this.each(function(){		
-			var input=$(this);
-			var buffer=new Array(mask.length);
-			var locked=new Array(mask.length);		
-
-			//Build buffer layout from mask
-			for(var i=0;i<mask.length;i++){
-				locked[i]=charMap[mask.charAt(i)]==null;
-				buffer[i]=locked[i]?mask.charAt(i):settings.placeholder;					
-			}
-			
-			/*Event Bindings*/
-			function focusEvent(){					
-				checkVal();
-				writeBuffer();
-				setTimeout(function(){
-					setCaretPosition(input[0],0);
-				},0);
-			};			
-			input.bind("focus",focusEvent);
-
-			input.bind("blur",checkVal);
-			
-			//Paste events for IE and Mozilla thanks to Kristinn Sigmundsson
-			if ($.browser.msie) 
-				this.onpaste= function(){setTimeout(checkVal,0);};                     
-			else if ($.browser.mozilla)
-				this.addEventListener('input',checkVal,false);
-			
-			var ignore=false;  //Variable for ignoring control keys
-			
-			function keydownEvent(e){
-				var pos=getCaretPosition(this);													
-				var k = e.keyCode;
-				ignore=(k < 16 || (k > 16 && k < 32 ) || (k > 32 && k < 41));
-				
-				//delete selection before proceeding
-				if((pos.begin-pos.end)!=0 && (!ignore || k==8 || k==46)){
-					clearBuffer(pos.begin,pos.end);
-				}	
-				//backspace and delete get special treatment
-				if(k==8){//backspace					
-					while(pos.begin-->=0){
-						if(!locked[pos.begin]){								
-							buffer[pos.begin]=settings.placeholder;
-							if($.browser.opera){
-								//Opera won't let you cancel the backspace, so we'll let it backspace over a dummy character.								
-								writeBuffer(pos.begin);
-								setCaretPosition(this,pos.begin+1);
-							}else{
-								writeBuffer();
-								setCaretPosition(this,pos.begin);
-							}									
-							return false;								
-						}
-					}						
-				}else if(k==46){//delete
-					clearBuffer(pos.begin,pos.begin+1);
-					writeBuffer();
-					setCaretPosition(this,pos.begin);
-					return false;
-				}else if (k==27){
-					clearBuffer(0,mask.length);
-					writeBuffer();
-					setCaretPosition(this,0);
-					return false;
-				}
-									
-			};
-			input.bind("keydown",keydownEvent);
-
-			function keypressEvent(e){					
-				if(ignore){
-					ignore=false;
-					return;
-				}
-				e=e||window.event;
-				var k=e.charCode||e.keyCode||e.which;
-
-				var pos=getCaretPosition(this);					
-				var caretPos=pos.begin;	
-				
-				if(e.ctrlKey || e.altKey){//Ignore
-					return true;
-				}else if ((k>=41 && k<=122) ||k==32 || k>186){//typeable characters
-					while(pos.begin<mask.length){	
-						var reString=charMap[mask.charAt(pos.begin)];
-						var match;
-						if(reString){
-							var reChar=new RegExp(reString);
-							match=String.fromCharCode(k).match(reChar);
-						}else{//we're on a mask char, go forward and try again
-							pos.begin+=1;
-							pos.end=pos.begin;
-							caretPos+=1;
-							continue;
-						}
-
-						if(match)
-							buffer[pos.begin]=String.fromCharCode(k);
-						else
-							return false;//reject char
-
-						while(++caretPos<mask.length){//seek forward to next typable position
-							if(!locked[caretPos])							
-								break;							
-						}
-						break;
-					}
-				}else
-					return false;								
-
-				writeBuffer();
-				if(settings.completed && caretPos>=buffer.length)
-					settings.completed.call(input);
-				else
-					setCaretPosition(this,caretPos);
-				
-				return false;				
-			};
-			input.bind("keypress",keypressEvent);
-
-			/*Helper Methods*/
-			function clearBuffer(start,end){
-				for(var i=start;i<end;i++){
-					if(!locked[i])
-						buffer[i]=settings.placeholder;
-				}				
-			};
-			
-			function writeBuffer(pos){
-				var s="";
-				for(var i=0;i<mask.length;i++){
-					s+=buffer[i];
-					if(i==pos)
-						s+=settings.placeholder;
-				}
-				input.val(s);
-				return s;
-			};
-			
-			function checkVal(){	
-				//try to place charcters where they belong
-				var test=input.val();
-				var pos=0;
-				for(var i=0;i<mask.length;i++){
-					if(!locked[i]){
-						while(pos++<test.length){
-							//Regex Test each char here.
-							var reChar=new RegExp(charMap[mask.charAt(i)]);
-							if(test.charAt(pos-1).match(reChar)){
-								buffer[i]=test.charAt(pos-1);
-								break;
-							}									
-						}
-					}
-				}
-				var s=writeBuffer();
-				if(!s.match(re)){							
-					input.val("");	
-					clearBuffer(0,mask.length);
-				}					
-			};
-			
-			input.one("unmask",function(){
-				input.unbind("focus",focusEvent);
-				input.unbind("blur",checkVal);
-				input.unbind("keydown",keydownEvent);
-				input.unbind("keypress",keypressEvent);
-				if ($.browser.msie) 
-					this.onpaste= null;                     
-				else if ($.browser.mozilla)
-					this.removeEventListener('input',checkVal,false);
-			});
-							
-		});
-	};
-})(jQuery);
\ No newline at end of file
diff --git a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/marketo/mktSignup.js b/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/marketo/mktSignup.js
deleted file mode 100755
index b86a43f4..00000000
--- a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/marketo/mktSignup.js
+++ /dev/null
@@ -1,125 +0,0 @@
- $(document).ready(function(){
- 	
-	jQuery.validator.addMethod("password", function( value, element ) {
-		var result = this.optional(element) || value.length >= 6 && /\d/.test(value) && /[a-z]/i.test(value);
-		if (!result) {
-			element.value = "";
-			var validator = this;
-			setTimeout(function() {
-				validator.blockFocusCleanup = true;
-				element.focus();
-				validator.blockFocusCleanup = false;
-			}, 1);
-		}
-		return result;
-	}, "Your password must be at least 6 characters long and contain at least one number and one character.");
-	
-	// a custom method making the default value for companyurl ("http://") invalid, without displaying the "invalid url" message
-	jQuery.validator.addMethod("defaultInvalid", function(value, element) {
-		return value != element.defaultValue;
-	}, "");
-	
-	jQuery.validator.addMethod("billingRequired", function(value, element) {
-		if ($("#bill_to_co").is(":checked"))
-			return $(element).parents(".subTable").length;
-		return !this.optional(element);
-	}, "");
-	
-	jQuery.validator.messages.required = "";
-	$("form").validate({
-		invalidHandler: function(e, validator) {
-			var errors = validator.numberOfInvalids();
-			if (errors) {
-				var message = errors == 1
-					? 'You missed 1 field. It has been highlighted below'
-					: 'You missed ' + errors + ' fields.  They have been highlighted below';
-				$("div.error span").html(message);
-				$("div.error").show();
-			} else {
-				$("div.error").hide();
-			}
-		},
-		onkeyup: false,
-		submitHandler: function() {
-			$("div.error").hide();
-			alert("submit! use link below to go to the other step");
-		},
-		messages: {
-			password2: {
-				required: " ",
-				equalTo: "Please enter the same password as above"	
-			},
-			email: {
-				required: " ",
-				email: "Please enter a valid email address, example: you@yourdomain.com",
-				remote: jQuery.validator.format("{0} is already taken, please enter a different address.")	
-			}
-		},
-		debug:true
-	});
-	
-  $(".resize").vjustify();
-  $("div.buttonSubmit").hoverClass("buttonSubmitHover");
-
-  if ($.browser.safari) {
-    $("body").addClass("safari");
-  }
-  
-  $("input.phone").mask("(999) 999-9999");
-  $("input.zipcode").mask("99999");
-  var creditcard = $("#creditcard").mask("9999 9999 9999 9999");
-
-  $("#cc_type").change(
-    function() {
-      switch ($(this).val()){
-        case 'amex':
-          creditcard.unmask().mask("9999 999999 99999");
-          break;
-        default:
-          creditcard.unmask().mask("9999 9999 9999 9999");
-          break;
-      }
-    }
-  );
-
-  // toggle optional billing address
-  var subTableDiv = $("div.subTableDiv");
-  var toggleCheck = $("input.toggleCheck");
-  toggleCheck.is(":checked")
-  	? subTableDiv.hide()
-	: subTableDiv.show();
-  $("input.toggleCheck").click(function() {
-      if (this.checked == true) {
-        subTableDiv.slideUp("medium");
-        $("form").valid();
-      } else {
-        subTableDiv.slideDown("medium");
-      }
-  });
-
-
-});
-
-$.fn.vjustify = function() {
-    var maxHeight=0;
-    $(".resize").css("height","auto");
-    this.each(function(){
-        if (this.offsetHeight > maxHeight) {
-          maxHeight = this.offsetHeight;
-        }
-    });
-    this.each(function(){
-        $(this).height(maxHeight);
-        if (this.offsetHeight > maxHeight) {
-            $(this).height((maxHeight-(this.offsetHeight-maxHeight)));
-        }
-    });
-};
-
-$.fn.hoverClass = function(classname) {
-	return this.hover(function() {
-		$(this).addClass(classname);
-	}, function() {
-		$(this).removeClass(classname);
-	});
-};
\ No newline at end of file
diff --git a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/marketo/step2.htm b/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/marketo/step2.htm
deleted file mode 100755
index 933d6826..00000000
--- a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/marketo/step2.htm
+++ /dev/null
@@ -1,291 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/2000/REC-xhtml1-200000126/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-<meta name="title" content="Subscription Signup | Marketo" />
-<meta name="robots" content="index, follow" />
-<meta name="description" content="Marketo Search Marketing application" />
-<meta name="keywords" content="Marketo, Search Marketing" />
-<meta name="language" content="en" />
-<title>Subscription Signup | Marketo</title>
-
-<link rel="shortcut icon" href="/favicon.ico" />
-
-
-<script src="../../lib/jquery.js" type="text/javascript"></script>
-<script src="../../lib/jquery.metadata.js" type="text/javascript"></script>
-<script src="../../lib/jquery.ajaxQueue.js" type="text/javascript"></script>
-<script src="../../lib/jquery.delegate.js" type="text/javascript"></script>
-<script src="../../jquery.validate.js" type="text/javascript"></script>
-
-<script type="text/javascript" src="jquery.maskedinput.js"></script>
-<script type="text/javascript" src="mktSignup.js"></script>
-
-<link rel="stylesheet" type="text/css" media="screen" href="stylesheet.css" />
-</head>
-<body>
-<!--[if lte IE 6]>
-  <link rel="stylesheet" type="text/css" media="all" href="ie6.css" />
-<![endif]-->
-
-
-
-<!-- start page wrapper --><div id="letterbox">
-
-<!-- start header container -->
-<div id="header-background">
-        <div class="nav-global-container">
-
-                <div class="login"><a href="https://app.marketo.com"><span></span>Customer Login</a></div>
-                <div class="logo"><a href="#"><img src="images/logo_marketo.gif" width="168" height="73"  alt="Marketo" /></a></div>
-		<div class="nav-global">
-				<ul>
-      		<li><a href="#" class="nav-g01"><span></span>Home</a></li>
-    			<li><a href="#" class="nav-g02"><span></span>Products</a></li>
-    			<li><a href="#" class="nav-g04"><span></span>B2B Marketing Resources</a></li>
-
-    			<li><a href="#" class="nav-g05"><span></span>About Marketo</a></li>
-			</ul>
-		</div>
-
-	</div>
-</div>
-<!-- end header container -->
-<div class="line-grey-tier"></div>
-
-<!-- start page container 2 div-->
-<div id="page-container" class="resize"><div id="page-content-inner" class="resize">
-
-<!-- start col-main -->
-
-<div id="col-main" class="resize" style="">
-
-
-
-  <!-- start main content  -->
-  <div class="main-content resize">
-
-  <div class="action-container" style="display:none;"></div>
-
-
-<h1>Step 2 of 2</h1>
-<h2>Billing Information</h2>
-<p>
-</p>
-<br clear="all" />
-<div>
-  <form id="billingForm" action="" method="get" >
-
-    <div class="error" style="display:none;">
-      <img src="images/warning.gif" alt="Warning!" width="24" height="24" style="float:left; margin: -5px 10px 0px 0px; " />
-
-      <span></span>.<br clear="all" />
-    </div>
-    <table cellpadding="0" cellspacing="0" border="0">
-      <tr>
-        <td class="label" style="vertical-align: top; padding-top: 8px;">Billing Address:</td>
-        <td class="field" style="font-weight: normal">
-          <div class="billingAddressControl">
-
-            <input type="checkbox" id="bill_to_co" name="bill_to_co" class="toggleCheck" checked="checked" style="width: auto;" tabindex="1" />
-            <label for="bill_to_co" style="cursor:pointer">Same as Company Address</label>
-          </div>
-        </td>
-      </tr>
-      <tr class="subTable">
-        <td colspan="2">
-          <div style="background-color: #EEEEEE; border: 1px solid #CCCCCC; padding: 10px;" class="subTableDiv">
-            <table cellpadding="0" cellspacing="0" border="0">
-              <tr>
-                <td class="label"><label for="bill_first_name">First Name:</label></td>
-                <td class="field">
-                  <input  maxlength="40" class="billingRequired" name="bill_first_name" size="20" type="text" tabindex="2" value="" />
-                </td>
-              </tr>
-              <tr>
-                <td class="label"><label for="bill_last_name">Last Name:</label></td>
-                <td class="field">
-                  <input  maxlength="40" class="billingRequired" name="bill_last_name" size="20" type="text" tabindex="3" value="" />
-                </td>
-              </tr>
-              <tr>
-                <td class="label"><label for="bill_email">Email:</label></td>
-                <td class="field">
-                  <input  maxlength="40" class="billingRequired email" remote="emails.php" name="email" size="20" type="text" tabindex="4" value="" />
-                  <div class="formError"></div>
-                </td>
-              </tr>
-              <tr>
-                <td class="label"><label for="bill_address1">Address:</label></td>
-                <td class="field">
-                  <input  maxlength="40" class="billingRequired" name="bill_address1" size="20" type="text" tabindex="5" value="" />
-                </td>
-              </tr>
-              <tr>
-                <td class="label"></td>
-                <td class="field">
-                  <input  maxlength="40" name="bill_address2" size="20" type="text" tabindex="6" value="" />
-                </td>
-              </tr>
-              <tr>
-                <td class="label"><label for="bill_city">City:</label></td>
-                <td class="field">
-                  <input  maxlength="40" class="billingRequired" name="bill_city" size="20" type="text" tabindex="7" value="" />
-                </td>
-              </tr>
-              <tr>
-                <td class="label"><label for="bill_state">State:</label></td>
-                <td class="field">
-                  <select id="bill_state" class="billingRequired" name="bill_state" style="margin-left: 4px;" tabindex="8">
-					<option value="">Choose State</option>
-                    <option value="AL">Alabama</option><option value="AK">Alaska</option><option value="AZ">Arizona</option><option value="AR">Arkansas</option><option value="CA">California</option><option value="CO">Colorado</option><option value="CT">Connecticut</option><option value="DE">Delaware</option><option value="FL">Florida</option><option value="GA">Georgia</option><option value="HI">Hawaii</option><option value="ID">Idaho</option><option value="IL">Illinois</option><option value="IN">Indiana</option><option value="IA">Iowa</option><option value="KS">Kansas</option><option value="KY">Kentucky</option><option value="LA">Louisiana</option><option value="ME">Maine</option><option value="MD">Maryland</option><option value="MA">Massachusetts</option><option value="MI">Michigan</option><option value="MN">Minnesota</option><option value="MS">Mississippi</option><option value="MO">Missouri</option><option value="MT">Montana</option><option value="NE">Nebraska</option><option value="NV">Nevada</option><option value="NH">New Hampshire</option><option value="NJ">New Jersey</option><option value="NM">New Mexico</option><option value="NY">New York</option><option value="NC">North Carolina</option><option value="ND">North Dakota</option><option value="OH">Ohio</option><option value="OK">Oklahoma</option><option value="OR">Oregon</option><option value="PA">Pennsylvania</option><option value="RI">Rhode Island</option><option value="SC">South Carolina</option><option value="SD">South Dakota</option><option value="TN">Tennessee</option><option value="TX">Texas</option><option value="UT">Utah</option><option value="VT">Vermont</option><option value="VA">Virginia</option><option value="WA">Washington</option><option value="WV">West Virginia</option><option value="WI">Wisconsin</option><option value="WY">Wyoming</option>
-                  </select>
-                </td>
-              </tr>
-
-              <tr>
-                <td class="label"><label for="bill_zip">Zip:</label></td>
-                <td class="field">
-                  <input  maxlength="10" class="billingRequired zipcode" name="bill_zip"  style="width: 100px" type="text" class="zipcode" tabindex="9" value="" />
-                </td>
-              </tr>
-
-              <tr>
-                <td class="label"><label for="bill_phone">Phone:</label></td>
-                <td class="field">
-                  <input  maxlength="14" class="billingRequired phone" name="bill_phone" style="width: 100px" type="text" class="phone" tabindex="10" value="" />
-                </td>
-              </tr>
-            </table>
-          </div>
-        </td>
-      </tr>
-      <tr>
-        <td class="label">Credit Card Type:</td>
-        <td class="field">
-          <select id="cc_type" class="required" name="cc_type" class="creditCardType" tabindex="11">
-            <option value="">Choose Credit Card</option>
-            <option value="amex">American Express</option>
-            <option value="discover">Discover</option>
-            <option value="mastercard">MasterCard</option>
-            <option value="visa">Visa</option>
-          </select>
-        </td>
-      </tr>
-      <tr>
-        <td class="label">Expiration:</td>
-        <td class="field">
-          <select id="cc_exp_month" name="cc_exp_month" title="ExpirationMonth" tabindex="12">
-            <option value="01">01 - Jan</option>
-            <option value="02">02 - Feb</option>
-            <option value="03">03 - Mar</option>
-            <option value="04">04 - Apr</option>
-            <option value="05">05 - May</option>
-            <option value="06">06 - Jun</option>
-            <option value="07">07 - Jul</option>
-            <option value="08">08 - Aug</option>
-            <option value="09">09 - Sep</option>
-            <option value="10">10 - Oct</option>
-            <option value="11">11 - Nov</option>
-            <option value="12">12 - Dec</option>
-          </select>
-          <select id="cc_exp_year" name="cc_exp_year" title="ExpirationYear" tabindex="13">
-            <option value="2007">2007</option>
-            <option value="2008" selected="selected">2008</option>
-            <option value="2009">2009</option>
-            <option value="2010">2010</option>
-            <option value="2011">2011</option>
-            <option value="2012">2012</option>
-            <option value="2013">2013</option>
-            <option value="2014">2014</option>
-            <option value="2015">2015</option>
-            <option value="2016">2016</option>
-          </select>
-        </td>
-      </tr>
-      <tr>
-        <td class="label"><label for="credit_card">Credit Card Number:</label></td>
-        <td class="field">
-          <input maxlength="40" id="creditcard" class="required" name="credit_card" size="20" type="text" tabindex="14" />
-        </td>
-      </tr>
-      <tr>
-        <td class="label"><label for="cc_cvv">Security Code:</label></td>
-        <td class="field">
-          <input id="ccNumber" class="required" maxlength="4" name="cc_cvv" style="width: 30px;" type="text" style="vertical-align: top;" tabindex="16" value="" />
-        </td>
-      </tr>
-      <tr>
-        <td></td>
-        <td>
-          <div class="buttonSubmit">
-            <span></span>
-            <input class="formButton" type="submit" value="Finish" style="width: 180px" />
-          </div><br clear="all"/>
-
-        </td>
-      </tr>
-    </table>
-  </form>
-  <br clear="all" />
-
-</div>
-
-
-
-	</div>	<!-- end main content  -->
-	<br />
-</div> <!-- end col-main -->
-
-<!-- start left col -->
-<div id="col-left" class="nav-left-back empty resize" style="position: absolute; min-height: 450px;">
-  <div class="col-left-header-tab" style="position: absolute;">Signup</div>
-  <div class="nav-left">
-
-
-  </div>
-
-
-      <div class="left-nav-callout png" style="top: 15px; margin-bottom: 100px;">
-        <img src="images/left-nav-callout-long.png"  class="png" alt="" />
-        <h6>Sign Up Process</h6>
-        <a style="background-image: url(images/step1-24.gif); font-weight: normal; text-decoration: none; cursor: default;">Sign up with a valid credit card.</a>
-        <a style="background-image: url(images/step2-24.gif); font-weight: normal; text-decoration: none; cursor: default;">Connect to your Google AdWords account.  You will need your AdWords Customer ID.</a>
-
-        <a target="_blank" style="background-image: url(images/step3-24.gif); font-weight: normal; text-decoration: none; cursor: default;">Start your 30 day trial.  No payments until trial ends.</a>
-      </div>
-
-<div class="footerAddress">
-<b>Marketo Inc.</b><br />
-1710 S. Amphlett Blvd.<br />
-San Mateo, CA 94402 USA<br />
-</div>
-<br clear="all"/>
-</div>	<!-- end left col -->
-
-</div>  </div>  <!-- end page container 2 divs-->
-
-  <div id="footer-container" align="center">
-   <div class="footer">
-		<ul>
-		<li><a href="..">Home</a></li>
-		<li class="line-off"><a href=".">Back to first step</a></li>
-		</ul>
-		</div></div>
-
-
-
-<!-- end page wrapper -->
-</div>
-
-
-<script src="http://www.google-analytics.com/urchin.js" type="text/javascript">
-</script>
-<script type="text/javascript">
-_uacct = "UA-2623402-1";
-urchinTracker();
-</script>
-
-    </body>
-</html>
diff --git a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/marketo/stylesheet.css b/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/marketo/stylesheet.css
deleted file mode 100755
index 7040c4fb..00000000
--- a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/marketo/stylesheet.css
+++ /dev/null
@@ -1,1179 +0,0 @@
-:-moz-any-link :focus {
-	outline: none;
-}
-
-:focus {
-	-moz-outline-style: none;
-	outline: none;
-}
-
-body {
-	font-size: 80%;
-	margin: 0;
-	padding: 0;
-	font-family: tahoma, geneva, sans-serif;
-	background-color: #000000;
-}
-
-a {
-	color: #0653AB;
-	outline: 0px;
-	text-decoration: none;
-}
-
-a:hover {
-	outline: 0px;
-	text-decoration: underline;
-}
-
-img {
-	border: 0px;
-}
-
-/* s1.0 - Page Containers */
-#letterbox {
-	margin: 10px auto;
-	width: 883px;
-	background-color: #364158;
-	border: 8px solid #D4D4D4;
-	padding: 1px 1px 10px 1px;
-}
-
-#header-background {
-	background: url(images/back_nav_blue.gif) repeat-x;
-	margin: 0px auto;
-	padding: 0px;
-	height: 73px;
-	width: 883px;
-	border-top: 4px solid #CCEAFE;
-	border-bottom: 4px solid #D4D4D4;
-}
-
-#page-container {
-	width: 866px;
-	margin: 0px auto;
-	margin-top: 33px; /* pad from top menu to actions buts*/
-	margin-bottom: -11px;
-	padding-top: 8px;
-	padding-bottom: 8px;
-	background-color: #D4D4D4; /* light grey*/
-	border-right: 1px solid #464646;
-}
-
-#page-content-inner {
-	width: 849px;
-	margin: 0px auto;
-	border-top: 1px solid #9F9FA0;
-	border-left: 1px solid #A2A09A;
-	background-color: #F4F1E9;
-	position: relative;
-}
-
-#page-content-inner #col-left {
-	width: 210px;
-	float: left;
-	background-color: #F4F1E9;
-}
-
-#page-content-inner #col-main {
-	width: 639px;
-	background-color: #ffffff;
-	position: absolute;
-	right: 0px;
-	top: 0px;
-}
-
-#footer-container {
-	width: 866px;
-	position: relative;
-	left: 8px;
-	padding: 2px 0px 10px 0px;
-	background-color: #D4D4D4; /* light grey*/
-}
-
-/* s2.0 - Global navigation bar */
-.nav-global-container {
-	width: 880px;
-	margin: 0px auto;
-	position: relative;
-}
-
-* html .nav-global-container { /* ie6 fix*/
-	margin-bottom: -6px;
-}
-
-.login {
-	position: absolute;
-	right: 20px;
-	text-align: center;
-}
-
-.login a,.login a span {
-	display: block;
-	height: 18px;
-	font-size: 11px;
-	background: url(images/login-sprite.gif) right -5px no-repeat;
-	text-decoration: none;
-	font-weight: bold;
-	padding: 5px 10px 5px 10px;
-	position: relative;
-}
-
-.login a:hover {
-	color: #000000;
-	text-decoration: underline;
-}
-
-div.login a span {
-	background-position: left -105px;
-	width: 4px;
-	position: absolute;
-	top: 0px;
-	left: 0px;
-	padding: 5px 0px 5px 0px;;
-}
-
-div.login a:hover span {
-	
-}
-
-.logo {
-	float: left;
-	margin: 0px 0px -5px 0px; /* neg marging for ie6 */
-}
-
-.logo img {
-	border: 0px;
-	margin-left: -1px;
-}
-
-.nav-global {
-	float: left;
-	width: 645px;
-	margin: 40px 0px 0px 40px;
-	background-color: transparent;
-}
-
-.nav-global ul {
-	margin: 0px;
-	padding: 0px;
-	list-style: none;
-}
-
-.nav-global li {
-	float: left;
-	white-space: nowrap;
-}
-
-div.nav-global li a,div.nav-global li a span {
-	background-image: url(images/tab-sprite.gif);
-	background-position: right 100px;
-	background-repeat: no-repeat;
-	height: 32px;
-	color: #666666;
-	text-decoration: none;
-	font: bold 16px 'trebuchet ms';
-	margin-right: 15px;
-	display: block;
-	position: relative;
-	padding: 7px 15px 0px 15px;
-}
-
-div.nav-global li a:hover {
-	background-position: right 0px;
-	color: #333333;
-}
-
-div.nav-global li a:hover span {
-	background-position: left -100px;
-	display: block !important;
-}
-
-div.nav-global li a span {
-	background-position: left 150px;
-	width: 4px;
-	position: absolute;
-	left: 0px;
-	top: 0px;
-	padding: 7px 0px 0px 0px;
-}
-
-body.safari div.nav-global li a span {
-	display: none;
-}
-
-div.nav-global li a.on,div.nav-global li a.on:hover {
-	background-position: right -55px;
-	color: #FFFFFF;
-}
-
-div.nav-global li a.on span,div.nav-global li a.on:hover span {
-	background-position: left -155px;
-	display: block !important;
-}
-
-div.action-container {
-	position: relative;
-	top: -45px;
-	cursor: pointer;
-}
-
-div.action-icon-container {
-	position: absolute;
-	top: -17px;
-	left: -17px;
-	z-index: 10;
-	width: 100px;
-	height: 100px;
-	overflow: hidden;
-}
-
-div.action-icon {
-	border: 0px;
-	position: absolute;
-	top: -0px;
-	left: 0px;
-}
-
-div.action-button-container {
-	height: 106px;
-	width: 180px;
-	overflow: hidden;
-	position: absolute;
-	top: 0px;
-	left: 0px;
-	z-index: 5;
-}
-
-img.action-icon {
-	border: 0px;
-	position: absolute;
-	top: 0px;
-	left: 0px;
-	z-index: 0
-}
-
-div.action-text {
-	z-index: 20;
-	color: #FFFFFF;
-	position: absolute;
-	left: 40px;
-	top: 12px;
-	font: 14px tahoma, geneva;
-	padding-top: 30px;
-}
-
-div.bigbuttons {
-	top: -20px;
-}
-
-div.action-header {
-	z-index: 21;
-	position: absolute;
-	left: 40px;
-	top: 10px;
-}
-
-div.action-header b {
-	font: bold 17px tahoma, geneva;
-	display: block;
-	margin-bottom: 10px;
-	color: #0b2c89;
-	position: absolute;
-	top: 0px;
-	left: 0px;
-	width: 130px;
-}
-
-div.action-header b.shadow {
-	top: 1px;
-	left: 1px;
-	color: #d5d5d5;
-}
-
-img.action-button {
-	position: relative;
-}
-
-div.hover img.action-button {
-	top: -131px;
-}
-
-div.on img.action-button {
-	top: -261px;
-}
-
-/* s3.0 - top of content Action Buttons */
-.action-buttons {
-	width: 100%; /* ie6 requires */
-}
-
-.action-buttons ul {
-	position: relative;
-	padding: 0px;
-}
-
-.action-buttons li {
-	position: relative; /* ie6 fix */
-	float: left;
-	list-style: none;
-	text-align: center;
-	line-height: 16px;
-	margin: -61px 0px 0px 0px;
-}
-
-.action-home li {
-	margin: -49px 0px 0px 0px;
-}
-
-.action-buttons  a {
-	display: block;
-	height: 110px;
-	width: 175px;
-	padding: 14px 0px 0px 25px;
-	text-decoration: none;
-	font-size: 12px;
-	font-weight: bold;
-	color: #ffffff;
-}
-
-.action-buttons li span {
-	color: #053880;
-	line-height: 47px;
-	font-size: 17px;
-}
-
-div.action-bottom {
-	margin: 15px 0px 10px 0px;
-	float: left;
-}
-
-div.action-bottom a {
-	height: 61px;
-	width: 178px;
-	border: 0px;
-	background: url(images/action-bottom.gif) no-repeat 0px 0px;
-	color: #0b2c89;
-	float: left;
-	position: relative;
-	font: bold 17px tahoma, geneva;
-	text-decoration: none;
-	margin-right: 10px;
-}
-
-div.action-bottom a span {
-	position: absolute;
-	top: 15px;
-	left: 40px;
-}
-
-div.action-bottom a span.shadow {
-	top: 16px;
-	left: 41px;
-	color: #d4d4d4;
-}
-
-.line-grey {
-	background: url(images/line-grey.gif) 0 0 repeat-x;
-	height: 2px;
-	margin: 8px 25px 20px 0;
-}
-
-/* s4.0 - Home Hero Area */
-.hero-background {
-	position: relative;
-	width: 880px;
-	background: url(images/back_home-hero.jpg) 10px 0px no-repeat;
-	height: 211px;
-	margin: -20px 0px 45px 0px;
-}
-
-.hero-text {
-	float: right;
-	width: 626px;
-	margin-top: 26px;
-}
-
-.hero-text a { /* Sign Up Now Button */
-	padding: 5px 32px 0px 0px;
-	float: right;
-}
-
-.hero-text h1 {
-	font-size: 2.3em;
-	line-height: 1.2em;
-	color: #333333;
-	font-family: Trebuchet MS;
-	margin: 12px 0px 10px 10px;
-}
-
-.hero-text h2 {
-	margin: 0px;
-	font-weight: normal;
-	font-size: 1.35em;
-	margin: 5px 0px 13px 10px
-}
-
-/* s4.1 - Home Left Header tab */
-.col-left-header-tab {
-	position: relative; /* ie6 fix */
-	background: url(images/tab_green.gif) 0 0 no-repeat;
-	height: 30px;
-	width: 166px;
-	text-align: center;
-	color: #ffffff;
-	font: 20px 'trebuchet ms';
-	padding-top: 2px;
-	margin-top: -41px;
-	margin-left: 20px;
-	line-height: 29px;
-	margin-bottom: 8px;
-	display: block;
-}
-
-.col-left-header-tab a {
-	color: #FFFFFF;
-}
-
-.callout-green {
-	background: url(images/back_green-fade.gif) 0 0 repeat-x;
-	font-size: 1.2em;
-	padding: 10px 15px 20px 13px;
-	color: #303B52;
-	line-height: 1.4em;
-}
-
-/* s4.2 - Home Left Quote */
-.callout-tan {
-	color: #666666;
-}
-
-.callout-tan h1 {
-	background: #F4F1E9 url(images/back_tan-fade.gif) 0 0 repeat-y;
-	font-size: 1.1em;
-	text-align: center;
-	margin: 0px;
-	padding: 11px 5px 11px 2px;
-	color: #333333;
-}
-
-.callout-tan p {
-	margin: 0px;
-	margin-top: 5px;
-	line-height: 1.4em;
-	padding: 5px 10px 7px 13px;
-}
-
-.callout-tan p img {
-	float: left;
-	margin: 5px 10px 5px 0px;
-}
-
-.callout-tan div {
-	text-align: left;
-	padding: 5px 10px 7px 0px;
-	font-weight: bold;
-}
-
-/* s4.3 - purple home boxes */
-.box-purple {
-	background: #C6C8E3 url(images/back_home-icons.png) 0px 0px repeat-x;
-	border-left: 1px solid #ffffff;
-	color: #333333;
-	width: 581px;
-	padding: 10px 15px 20px 15px;
-}
-
-div.box-purple a {
-	
-}
-
-.box-purple h1 {
-	font-size: 1.5em;
-	margin: 10px 0px -15px 0px;
-}
-
-.box-purple li {
-	margin: 0px 0px 0px -23px;
-	line-height: 1.6em;
-	font-size: 1em;
-}
-
-.box-purple  div {
-	padding: 0px 0px 0px 110px;
-}
-
-.icon-text01 {
-	background-image: url(images/icon_search-engine-market.png);
-	background-repeat: no-repeat;
-}
-
-* html .icon-text01 {
-	width: 460px; /* must have a width or heigh tag for ie6*/
-	background-image: none;
-	filter: progid : DXImageTransform . Microsoft .
-		AlphaImageLoader(src = "images/icon_search-engine-market.png",
-		sizingMethod = "crop");
-}
-
-.icon-text02 {
-	background: url(images/icon_landing-pages.png) 0 0 no-repeat;
-}
-
-* html .icon-text02 {
-	width: 460px; /* must have a width or heigh tag for ie6*/
-	background-image: none;
-	filter: progid : DXImageTransform . Microsoft .
-		AlphaImageLoader(src = "images/icon_landing-pages.png", sizingMethod =
-		"crop");
-}
-
-.icon-text03 {
-	background: url(images/icon_salesforce.png) 0 0 no-repeat;
-}
-
-* html .icon-text03 {
-	width: 460px; /* must have a width or heigh tag for ie6*/
-	background-image: none;
-	filter: progid : DXImageTransform . Microsoft .
-		AlphaImageLoader(src = "images/icon_salesforce.png", sizingMethod =
-		"crop");
-}
-
-/* s4.4 - news home boxes */
-.callout-news {
-	color: #555555;
-	float: left;
-	width: 49%;
-	margin: 10px 1px 0px 0px;
-	padding-bottom: 20px;
-	text-align: left;
-}
-
-.line-news-r {
-	border-right: 1px solid #D4D4D4;
-}
-
-.callout-news h1 {
-	background-color: #EEEEEE;
-	font-size: 1.2em;
-	margin: 0px;
-	padding: 11px 5px 11px 15px;
-	color: #333333;
-}
-
-.callout-news p {
-	margin: 10px 0px 0px 10px;
-	padding: 0px 10px 7px 20px;
-	background: url(images/news.gif) no-repeat left 1px;
-}
-
-.callout-news p a {
-	
-}
-
-.callout-news ul {
-	list-style-type: none;
-	padding: 0;
-	margin: 10px 0 0 10px;
-}
-
-.callout-news li {
-	background: url(images/icon_news.gif) no-repeat left 2px;
-	padding: 0px 5px 5px 20px;
-}
-
-.callout-news li a {
-	display: block;
-	margin-bottom: 5px;
-}
-
-.callout-news div {
-	text-align: right;
-}
-
-#scrollup {
-	position: relative;
-	overflow: hidden;
-	height: 440px;
-	width: 200px
-}
-
-.headline {
-	position: absolute;
-	top: 600px;
-	left: 5px;
-	height: 585px;
-	width: 190px;
-	font: normal 12px tahoma, geneva !important;
-}
-
-div.more {
-	margin: 5px 0px 0px 0px;
-	padding: 0px 10px 0px 0px;
-	letter-spacing: inherit;
-}
-
-div.more a {
-	background: transparent url(images/arrow_r-blue.gif) no-repeat right 2px
-		;
-	font-weight: bold;
-	padding: 0px 20px 0px 0px;
-	font-weight: bold;
-	text-decoration: none;
-}
-
-div.more a:hover {
-	text-decoration: underline;
-}
-
-/* sX.0 - Left Nav */
-.nav-left-back {
-	background: url(images/back_nav_side.gif) 0 0 repeat-x;
-}
-
-div.empty {
-	background: #F1F0E5 url(images/back_green-fade.gif) 0 0 repeat-x;
-}
-
-div.empty div.callout-green {
-	
-}
-
-.nav-left {
-	padding-top: 12px;
-	/*background: url(images/logo_marketo_square.gif) 0 0 no-repeat;*/
-	width: 210px;
-}
-
-.nav-left ul {
-	margin: 0px;
-	padding: 0px;
-	list-style: none;
-}
-
-.nav-left li a {
-	display: block;
-	height: 24px;
-	text-decoration: none;
-	font-size: 12px;
-	font-weight: bold;
-	color: #ffffff;
-	border-top: 1px solid #B3D38D;
-	border-bottom: 1px solid #7CA84E;
-	border-left: 1px solid #97B973;
-	padding: 6px 0px 0px 20px;
-}
-
-.nav-left a:hover,.nav-left a.active:hover,#nav-left-sub a:hover {
-	color: #4C6F28;
-	background-color: #F4F1E9;
-}
-
-.nav-left a.open {
-	background-image: url(images/arrow_d-green.gif);
-	background-repeat: no-repeat;
-	background-position: 6px 11px;
-}
-
-.nav-left-header-tab {
-	position: relative; /* ie6 fix */
-	background: url(images/tab_green.gif) 0 0 no-repeat;
-	height: 32px;
-	width: 166px;
-	text-align: center;
-	color: #ffffff;
-	margin: -41px 0px 0px 22px;
-	line-height: 22px;
-	margin-bottom: 8px;
-	display: block;
-}
-
-div.empty div.nav-left-header-tab {
-	background: url(images/tab_green2.gif) 0 0 no-repeat;
-}
-
-.nav-left a.active {
-	/* background: url(images/arrow_d-green.gif) 5px 10px no-repeat; */
-	display: block;
-	height: 24px;
-	text-decoration: none;
-	font-size: 12px;
-	font-weight: bold;
-	background-color: #F4F1E9;
-	color: #4C6F28;
-	border-top: 1px solid #D1E5BB;
-	border-bottom: 1px solid #B0CB95;
-	border-left: 1px solid #DADADA;
-	padding: 6px 0px 0px 20px;
-}
-
-#nav-left-sub a {
-	display: block;
-	height: 24px;
-	text-decoration: none;
-	font-size: 12px;
-	font-weight: bold;
-	background-color: #D6E8C4;
-	color: #4C6F28;
-	border-top: 1px solid #D6E8C4;
-	border-bottom: 1px solid #B0CB95;
-	border-left: 1px solid #97B973;
-	border-right: 1px solid #8DBE5A;
-	padding: 6px 0px 0px 30px;
-}
-
-* html #nav-left-sub { /* ie6 fix */
-	margin-top: -1px;
-}
-
-*+html #nav-left-sub { /* ie7 fix */
-	margin-top: -1px;
-}
-
-#nav-left-sub a.active-page {
-	display: block;
-	height: 24px;
-	text-decoration: none;
-	font-size: 12px;
-	font-weight: bold;
-	background-color: #ffffff;
-	color: #666666;
-	border-top: 0px solid #7CA84E;
-	border-bottom: 1px solid #B0CB95;
-	border-left: 1px solid #97B973;
-	border-right: 0px solid #8DBE5A;
-	padding: 6px 0px 0px 30px;
-	cursor: default; /* turns off hand icon for link */
-}
-
-/* sX.0 -  Main Content */
-.main-content {
-	color: #666666;
-	position: absolute;
-	right: 20px;
-	padding-top: 20px;
-	width: 585px;
-	padding-bottom: 20px;
-}
-
-div.main-content div.main-content {
-	
-}
-
-.main-content h1 {
-	color: #5890D1;
-	font-size: 1.9em;
-	font-family: Trebuchet MS;
-	border-bottom: 1px solid #cccccc;
-	margin: 0px 10px 0px 0px;
-}
-
-.main-content h2 {
-	color: #666666;
-	font-size: 1.3em;
-	font-weight: normal;
-	margin: 10px 10px 5px 0px;
-}
-
-.main-content p {
-	margin: 10px 10px 10px 0px;
-	line-height: 1.55em;
-}
-
-/* sX.1 -  Main Content Sub Styles */
-.sub-grey {
-	border-top: 1px solid #D4D4D4;
-	border-bottom: 1px solid #D4D4D4;
-	background-color: #F4F4F4;
-	margin: 10px 10px 0px 0px;
-	padding: 0px 10px 20px 15px;
-}
-
-.sub-white {
-	margin: 10px 10px 0px 0px;
-	padding: 0px 10px 20px 15px;
-}
-
-img.screen-grab-r {
-	margin-right: -8px;
-	text-align: right;
-	padding: 0px 0px 0px 10px;
-}
-
-div.main-content a.screenshot {
-	float: right;
-	padding: 10px 10px 0px 0px
-}
-
-.content-foot {
-	border-top: 1px solid #D4D4D4;
-	font-size: .9em;
-	line-height: 1.45em;
-	margin: 10px 20px 0px 0px;
-	padding: 10px 10px 30px 0px;
-}
-
-div.main-content ul {
-	position: relative;
-	left: -25px;
-}
-
-div.main-content li {
-	margin-bottom: 5px;
-	list-style-type: disc
-}
-
-div.main-content li a {
-	color: #6A6CB0;
-}
-
-/* sX.0 - Footer */
-div.footer {
-	color: #666666;
-	font-size: .85em;
-	font-weight: normal;
-	height: 18px;
-	margin: 0px auto;
-	font-family: Tahoma, Geneva, sans-serif;
-	margin-top: 10px;
-}
-
-.footer ul {
-	list-style-type: none;
-}
-
-.footer li {
-	float: left;
-	border-right: 1px solid #666666;
-	padding: 0px 7px 0px 7px;
-	margin-top: 3px;
-}
-
-.footer a {
-	color: #666666;
-	text-decoration: none;
-}
-
-.footer a:hover {
-	color: #0653AB;
-	text-decoration: none;
-}
-
-.footer li.line-off {
-	border-right: 0px solid #ffffff;
-}
-
-div.footer strong {
-	font-weight: normal;
-}
-
-/* sX.0 - General Colors */
-.line-grey,.line-grey-tier {
-	border-top: 1px solid #A3A3A2;
-}
-
-.line-grey-tier {
-	padding-bottom: 25px;
-}
-
-.bottom {
-	height: 10px;
-}
-
-div.p10bottom {
-	padding-bottom: 10px;
-}
-
-.clear {
-	clear: both;
-}
-
-table.grid {
-	background: #EEEEEE;
-}
-
-table.grid th {
-	background-color: #F4F4F4;
-}
-
-table.grid td {
-	background-color: #FFFFFF;
-}
-
-div.buttonSubmit {
-	position: relative;
-}
-
-div.buttonSubmit input,div.buttonSubmit span {
-	height: 36px;
-	position: relative;
-	background-image: url(images/button-submit.gif);
-	background-repeat: no-repeat;
-	background-position: right 0px;
-	float: left;
-	color: #FFFFFF;
-	font-weight: bold;
-	padding: 0px 15px 2px 15px;
-	margin: 20px 0px 20px 0px;
-	border: 0px;
-	cursor: pointer;
-	z-index: 5;
-}
-
-div.buttonSubmit input {
-	width: auto;
-}
-
-div.buttonSubmit span {
-	width: 4px;
-	position: absolute;
-	left: 0px;
-	top: 0px;
-	background-position: left -36px;
-	padding: 0px 0px 0px 0px;
-	z-index: 10;
-}
-
-body.safari div.buttonSubmit span {
-	display: none
-}
-
-div.buttonSubmitHover input {
-	background-position: right -72px;
-}
-
-div.buttonSubmitHover span {
-	background-position: left -108px;
-}
-
-a.demoLink {
-	padding: 1px 10px 0px 17px;
-	height: 24px;
-	background: url(images/bullet_triangle_blue.gif) no-repeat 0px 4px;
-	display: block;
-	float: left;
-}
-
-div.callout-tan a {
-	background: none;
-	color: #0653AB;
-	margin: auto;
-	display: block;
-}
-
-div.callout-tan a:hover {
-	background: none;
-	color: #0653AB;
-}
-
-label.error {
-	display: block;
-	color: red;
-	font-style: italic;
-	font-weight: normal;
-}
-
-input.error {
-	border: 2px solid red;
-}
-
-p.demoBlock {
-	border-bottom: 1px solid #DDDDDD;
-	padding-bottom: 10px;
-}
-
-div.left-nav-callout {
-	height: 200px;
-	width: 190px;
-	top: 55px;
-	left: 5px;
-	position: relative;
-	padding-left: 9px;
-	padding-top: 13px;
-}
-
-div.left-nav-callout img.png {
-	position: absolute;
-	z-index: 0;
-	top: 0px;
-	left: 0px;
-}
-
-div.left-nav-callout h6 {
-	font: bold 14px tahoma, geneva;
-	color: #333333;
-	height: 36px;
-	padding-left: 5px;
-	margin: 0px;
-	position: relative;
-	z-index: 10;
-}
-
-div.left-nav-callout a {
-	background: url(images/monitor24.gif) no-repeat 0px center;
-	padding: 5px 0px 5px 30px;
-	display: block;
-	font: bold 12px tahoma, geneva;
-	color: #336699;
-	margin-bottom: 5px;
-	position: relative;
-	z-index: 10;
-	width: 140px;
-}
-
-form table td {
-	padding: 5px;
-}
-
-form table input {
-	width: 200px;
-	padding: 3px;
-	margin: 0px;
-}
-
-textarea {
-	width: 400px
-}
-
-td.label {
-	width: 150px;
-}
-
-tr.required td.label {
-	font-weight: bold;
-	background: url(/images/forms/backRequiredGray.gif) no-repeat right
-		center;
-}
-
-div.subTableDiv {
-	width: 500px;
-}
-
-div.subTableDiv td.label {
-	width: 135px;
-}
-
-ul#homeBlog li div.description {
-	display: none;
-}
-
-td.field input.error, td.field select.error, tr.errorRow td.field input,tr.errorRow td.field select {
-	border: 2px solid red;
-	background-color: #FFFFD5;
-	margin: 0px;
-	color: red;
-}
-
-tr td.field div.formError {
-	display: none;
-	color: #FF0000;
-}
-
-tr.errorRow td.field div.formError {
-	display: block;
-	font-weight: normal;
-}
-
-div.error {
-	color: red;
-}
-
-div.error a {
-	color: #336699;
-	font-size: 12px;
-	text-decoration: underline
-}
-
-div.tooltip {
-	position: absolute;
-	left: 30px;
-	bottom: 0px;
-	display: none; /* in case javascript is disabled */
-	width: 170px;
-	background-color: #F4F1E9;
-	z-index: 100;
-	padding: 10px;
-	border: 1px solid #CCCCCC;
-}
-
-div.offerbox {
-	width: 125px;
-	float: left;
-	position: relative;
-}
-
-div.offerbox h3 {
-	font: bold 17px tahoma, geneva;
-	color: #333333;
-	height: 55px;
-	margin: 0px auto;
-	text-align: center;
-}
-
-div.offerbox h4 {
-	height: 100px;
-	font: normal 13px tahoma, geneva;
-	margin: 0px;
-}
-
-div.offerbox h5 {
-	font: bold 14px tahoma, geneva;
-	margin: 0px;
-	height: 55px;
-}
-
-div.offerbox h5 small {
-	float: left;
-	font-weight: normal;
-	font-size: 10px;
-}
-
-div.offerbox div.learnmore {
-	padding-left: 25px;
-}
-
-div#marketoEditions {
-	background: url(images/buynowBack.gif) no-repeat;
-	width: 584px;
-	height: 376px;
-	float: left;
-	position: relative;
-	margin-bottom: 10px;
-}
-
-div.offerHeader {
-	background: #0D8BBD;
-	position: absolute;
-	top: 20px;
-	width: 266px;
-	height: 34px;
-	border: 1px solid #e1e4e2;
-}
-
-div.offerHeader span {
-	font: 20px 'trebuchet ms';
-	color: #FFFFFF;
-	position: absolute;
-	left: 0px;
-	top: 0px;
-}
-
-div.offerHeader span.shadow {
-	font: 20px 'trebuchet ms';
-	color: #333333;
-	position: absolute;
-}
-
-div.offerbox div.buttonSubmit {
-	margin: 5px 0px 0px 10px;
-}
-
-div.footerAddress {
-	position: absolute;
-	bottom: 30px;
-	left: 20px;
-	color: #666666;
-	font-size: 11px;
-	display: none;
-}
\ No newline at end of file
diff --git a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/milk/bg.gif b/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/milk/bg.gif
deleted file mode 100755
index 2c7c3587..00000000
--- a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/milk/bg.gif
+++ /dev/null
Binary files differdiff --git a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/milk/emails.php b/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/milk/emails.php
deleted file mode 100755
index 059ac14d..00000000
--- a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/milk/emails.php
+++ /dev/null
@@ -1,10 +0,0 @@
-<?php
-$request = trim(strtolower($_REQUEST['email']));
-$emails = array('glen@marketo.com', 'george@bush.gov', 'me@god.com', 'aboutface@cooper.com', 'steam@valve.com', 'bill@gates.com');
-$valid = 'true';
-foreach($emails as $email) {
-	if( strtolower($email) == $request )
-		$valid = '"Thats already taken."';
-}
-echo $valid;
-?>
\ No newline at end of file
diff --git a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/milk/emails.phps b/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/milk/emails.phps
deleted file mode 100755
index d2219cc9..00000000
--- a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/milk/emails.phps
+++ /dev/null
@@ -1,10 +0,0 @@
-<?php
-$request = trim(strtolower($_REQUEST['value']));
-$emails = array('glen@marketo.com', 'george@bush.gov', 'me@god.com', 'aboutface@cooper.com', 'steam@valve.com', 'bill@gates.com');
-$valid = 'true';
-foreach($emails as $email) {
-	if( strtolower($email) == $request )
-		$valid = 'false';
-}
-echo $valid;
-?>
\ No newline at end of file
diff --git a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/milk/index.html b/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/milk/index.html
deleted file mode 100755
index dcc7836d..00000000
--- a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/milk/index.html
+++ /dev/null
@@ -1,230 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
-<title>Remember The Milk signup form - jQuery Validate plugin demo - with friendly permission from the RTM team</title>
-
-<link rel="stylesheet" type="text/css" media="screen" href="milk.css" />
-<link rel="stylesheet" type="text/css" media="screen" href="../css/chili.css" />
-
-<script src="../../lib/jquery.js" type="text/javascript"></script>
-<script src="../../jquery.validate.js" type="text/javascript"></script>
-
-<style type="text/css">
-	pre { text-align: left; }
-</style>
-
-<script id="demo" type="text/javascript">
-$(document).ready(function() {
-	// validate signup form on keyup and submit
-	var validator = $("#signupform").validate({
-		rules: {
-			firstname: "required",
-			lastname: "required",
-			username: {
-				required: true,
-				minlength: 2,
-				remote: "users.php"
-			},
-			password: {
-				required: true,
-				minlength: 5
-			},
-			password_confirm: {
-				required: true,
-				minlength: 5,
-				equalTo: "#password"
-			},
-			email: {
-				required: true,
-				email: true,
-				remote: "emails.php"
-			},
-			dateformat: "required",
-			terms: "required"
-		},
-		messages: {
-			firstname: "Enter your firstname",
-			lastname: "Enter your lastname",
-			username: {
-				required: "Enter a username",
-				minlength: jQuery.format("Enter at least {0} characters"),
-				remote: jQuery.format("{0} is already in use")
-			},
-			password: {
-				required: "Provide a password",
-				rangelength: jQuery.format("Enter at least {0} characters")
-			},
-			password_confirm: {
-				required: "Repeat your password",
-				minlength: jQuery.format("Enter at least {0} characters"),
-				equalTo: "Enter the same password as above"
-			},
-			email: {
-				required: "Please enter a valid email address",
-				minlength: "Please enter a valid email address",
-				remote: jQuery.format("{0} is already in use")
-			},
-			dateformat: "Choose your preferred dateformat",
-			terms: " "
-		},
-		// the errorPlacement has to take the table layout into account
-		errorPlacement: function(error, element) {
-			if ( element.is(":radio") )
-				error.appendTo( element.parent().next().next() );
-			else if ( element.is(":checkbox") )
-				error.appendTo ( element.next() );
-			else
-				error.appendTo( element.parent().next() );
-		},
-		// specifying a submitHandler prevents the default submit, good for the demo
-		submitHandler: function() {
-			alert("submitted!");
-		},
-		// set this class to error-labels to indicate valid fields
-		success: function(label) {
-			// set &nbsp; as text for IE
-			label.html("&nbsp;").addClass("checked");
-		}
-	});
-	
-	// propose username by combining first- and lastname
-	$("#username").focus(function() {
-		var firstname = $("#firstname").val();
-		var lastname = $("#lastname").val();
-		if(firstname && lastname && !this.value) {
-			this.value = firstname + "." + lastname;
-		}
-	});
-
-});
-</script>
-
-</head>
-<body>
-
-<h1 id="banner"><a href="http://bassistance.de/jquery-plugins/jquery-plugin-validation/">jQuery Validation Plugin</a> Demo</h1>
-<div id="main">
-
-<div id="content">
-
-<div id="header">
-  <div id="headerlogo"><img src="milk.png" alt="Remember The Milk" /></div>
-</div>
-<div style="clear: both;"><div></div></div>
-
-
-<div class="content">
-    <div id="signupbox">
-       <div id="signuptab">
-        <ul>
-          <li id="signupcurrent"><a href=" ">Signup</a></li>
-        </ul>
-      </div>
-      <div id="signupwrap">
-      		<form id="signupform" autocomplete="off" method="get" action="">
-	  		  <table>
-	  		  <tr>
-	  		  	<td class="label"><label id="lfirstname" for="firstname">First Name</label></td>
-	  		  	<td class="field"><input id="firstname" name="firstname" type="text" value="" maxlength="100" /></td>
-	  		  	<td class="status"></td>
-	  		  </tr>
-	  		  <tr>
-	  			<td class="label"><label id="llastname" for="lastname">Last Name</label></td>
-	  			<td class="field"><input id="lastname" name="lastname" type="text" value="" maxlength="100" /></td>
-	  			<td class="status"></td>
-	  		  </tr>
-	  		  <tr>
-	  			<td class="label"><label id="lusername" for="username">Username</label></td>
-	  			<td class="field"><input id="username" name="username" type="text" value="" maxlength="50" /></td>
-	  			<td class="status"></td>
-	  		  </tr>
-	  		  <tr>
-	  			<td class="label"><label id="lpassword" for="password">Password</label></td>
-	  			<td class="field"><input id="password" name="password" type="password" maxlength="50" value="" /></td>
-	  			<td class="status"></td>
-	  		  </tr>
-	  		  <tr>
-	  			<td class="label"><label id="lpassword_confirm" for="password_confirm">Confirm Password</label></td>
-	  			<td class="field"><input id="password_confirm" name="password_confirm" type="password" maxlength="50" value="" /></td>
-	  			<td class="status"></td>
-	  		  </tr>
-	  		  <tr>
-	  			<td class="label"><label id="lemail" for="email">Email Address</label></td>
-	  			<td class="field"><input id="email" name="email" type="text" value="" maxlength="150" /></td>
-	  			<td class="status"></td>
-	  		  </tr>
-              	  		  <tr>
-	  			<td class="label"><label>Which Looks Right</label></td>
-	  			<td class="field" colspan="2" style="vertical-align: top; padding-top: 2px;">
-	  			<table>
-	  			<tbody>
-
-	  			<tr>
-	  				<td style="padding-right: 5px;">
-		  				<input id="dateformat_eu" name="dateformat" type="radio" value="0" />
-			            <label id="ldateformat_eu" for="dateformat_eu">14/02/07</label>
-	  				</td>
-	  				<td style="padding-left: 5px;">
-		  				<input id="dateformat_am" name="dateformat" type="radio" value="1"  />
-			            <label id="ldateformat_am" for="dateformat_am">02/14/07</label>
-	  				</td>
-	  				<td>
-	  				</td>
-	  			</tr>
-	  			</tbody>
-	  			</table>
-	  			</td>
-	  		  </tr>
-
-	  		  <tr>
-	  			<td class="label">&nbsp;</td>
-	  			<td class="field" colspan="2">
-		  			<div id="termswrap">
-			  			<input id="terms" type="checkbox" name="terms" />
-			            <label id="lterms" for="terms">I have read and accept the Terms of Use.</label>
-		            </div> <!-- /termswrap -->
-	  			</td>
-	  		  </tr>
-	  		  <tr>
-	  			<td class="label"><label id="lsignupsubmit" for="signupsubmit">Signup</label></td>
-	  			<td class="field" colspan="2">
-	            <input id="signupsubmit" name="signup" type="submit" value="Signup" />
-	  			</td>
-	  		  </tr>
-
-	  		  </table>
-          </form>
-      </div>
-    </div>
-</div>
-
-</div>
-
-</div>
-
-
-
-<script type="text/javascript">
-$(document).ready(function() {
-	$("<a href='#'>Show script used on this page</a><br/>").appendTo("body").click(function() {
-		script.toggle();
-		return false;
-	});
-	$("<a href='#'>Show serverside script</a>").appendTo("body").click(function() {
-			serverscript.toggle();
-			return false;
-		});
-	var script = $("<code class='mix'>").html( $("#demo").html() ).wrap("<pre></pre>").parent().hide().appendTo("body");
-	var serverscript;
-	$.get("users.phps", function(response) {
-		serverscript = $("<pre>").hide().html( response ).appendTo("body");
-	})
-	
-});
-</script>
-
-<script src="../js/chili-1.7.pack.js" type="text/javascript"></script>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/milk/left_white.png b/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/milk/left_white.png
deleted file mode 100755
index b889960c..00000000
--- a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/milk/left_white.png
+++ /dev/null
Binary files differdiff --git a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/milk/milk.css b/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/milk/milk.css
deleted file mode 100755
index d5f128bf..00000000
--- a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/milk/milk.css
+++ /dev/null
@@ -1,236 +0,0 @@
-/* GENERAL ELEMENTS */
-
-* { margin: 0; padding: 0; }
-
-body, input, select, textarea { font-family: verdana, arial, helvetica, sans-serif; font-size: 11px; }
-body { color: #333;  background-color: #fff; text-align: center; }
-
-a:link { color:#0060BF; text-decoration: underline; }
-a:visited { color:#0060BF; text-decoration: underline; }
-a:active { color:#0060BF; text-decoration: underline; }
-a:hover { color:#000000; text-decoration: underline; }
-	
-h1, h2, h3, h4, h5, h6 { font-family: "Lucida Grande", "Lucida Sans Unicode", geneva, verdana, arial, helvetica, sans-serif; font-weight: bold; color: #666; }
-h1 { font-size: 1.8em; margin: 0em 0em 0.6em 0em; color: #EC5800; }
-h2 { font-size: 1.5em; margin: 1.2em 0em 0.4em 0em; }
-h3 { font-size: 1.4em; margin: 1.2em 0em 0.4em 0em; color: #EC5800; }
-h4 { font-size: 1.2em; margin: 1.2em 0em 0.4em 0em; }
-h5 { font-size: 1.0em; margin: 1.2em 0em 0.4em 0em; }
-h6 { font-size: 0.8em; margin: 1.2em 0em 0.4em 0em; }
-
-img { border: 0px; }
-
-p { font-size: 1.0em; line-height: 1.3em; margin: 1.2em 0em 1.2em 0em; }
-li > p { margin-top: 0.2em; }
-pre { font-family: monospace; font-size: 1.0em; }
-strong, b { font-weight: bold; }
-
-/* PAGE ELEMENTS */
-
-/* Content */
-
-#content { margin: 0em auto; width: 765px; padding: 10px 0 10px 0; text-align: left; /* Win IE5 */ }
-.content { margin-left: 4.5em; margin-right: 4.5em; }
-.content ol, .content ul, .content li { font-size: 1.0em; line-height: 1.3em; margin: 0.2em 0 0.1em 1.5em; }
-.content ol.terms li { margin-bottom: 1em; }
-
-/* Header */
-
-#header { padding-bottom: 10em; }
-#headerlogo { float: left; }
-#headerlogo img { width: 188px; height: 83px;  }
-#headernav { float: right; }
-
-label { font-weight: bold; }
-#reminders label { font-weight: normal; }
-
-table.tabbedtable { padding-left: 3em; }
-table.tabbedtable td { padding-bottom: 5px; }
-table.tabbedtable label { text-align: right; padding-right: 9px; }
-.hiddenlabel { visibility: hidden; }
-.largelink { border: 1px solid #cacaca; padding: 10px; background-color: #E8EEF7; font-size: 1.2em; font-weight: bold; }
-.largelinkwrap { padding-top: 10px; padding-bottom: 10px; }
-
-
-
-#signuptab {
-  float:left;
-  width:100%;
-  background:#fff url("bg.gif") repeat-x bottom;
-  font-size: 1.0em;
-  line-height: normal;
-}
-#signuptab ul {
-  margin:0;
-  padding: 0px 10px 0px 10px;
-  list-style:none;
-}
-#signuptab li {
-  float:left;
-  background:url("left_white.png") no-repeat left top;
-  margin:0;
-  padding:0 3px 0 9px;
-  border-bottom:1px solid #CACACA;
-}
-#signuptab a {
-  float:left;
-  display:block;
-  width:.1em;
-  background:url("right_white.png") no-repeat right top;
-  padding:2px 15px 0px 6px;
-  text-decoration:none;
-  font-weight:bold;
-  color:#fff;
-  white-space: nowrap;
-}
-#signuptab > ul a {width:auto;}
-/* Commented Backslash Hack hides rule from IE5-Mac \*/
-#signuptab a {float:none;}
-/* End IE5-Mac hack */
-#signuptab a:hover {
-  color:#333;
-}
-#signuptab #signupcurrent {
-  background-position:0 -150px;
-  border-width:0;
-}
-#signuptab #signupcurrent a {
-  background-position:100% -150px;
-  padding-bottom:1px;
-  color:#000;
-}
-#signuptab li:hover, #signuptab li:hover a {
-  background-position:0% -150px;
-  color:#000;
-}
-#signuptab li:hover a {
-  background-position:100% -150px;
-}
-
-/* Signup box */
-
-#signupbox {
-  width: 100%;
-  text-align: center;
-  margin: 0em auto;
-}
-
-#signupwrap {
-  border: 1px solid #CACACA;
-  border-top: 0;
-  text-align: left;
-  padding: 35px 10px 20px 30px;
-  clear: both;
-}
-
-/* Unsupported browsers */
-
-.orange_rbcontent { padding: 0.4em; }
-.orange_rbroundbox { width: 100%; }
-
-#unsupported {
-  font-weight: bold;
-  text-align: left;
-}
-
-/*#content {
-  padding-top: 15px;
-}*/
-
-/* Signup form */
-
-#signupform table {
-  border-spacing: 0px;
-  border-collapse: collapse;
-  empty-cells: show;
-}
-
-#signupform .label {
-  padding-top: 2px;
-  padding-right: 8px;
-  vertical-align: top;
-  text-align: right;
-  width: 125px;
-  white-space: nowrap;
-}
-
-#signupform .field {
-  padding-bottom: 10px;
-  white-space: nowrap;
-}
-
-#signupform .status {
-  padding-top: 2px;
-  padding-left: 8px;
-  vertical-align: top;
-  width: 246px;
-  white-space: nowrap;
-}
-
-#signupform .textfield {
-  width: 150px;
-}
-
-#signupform label.error {
-  background:url("../images/unchecked.gif") no-repeat 0px 0px;
-  padding-left: 16px;
-  padding-bottom: 2px;
-  font-weight: bold;
-  color: #EA5200;
-}
-
-#signupform label.checked {
-  background:url("../images/checked.gif") no-repeat 0px 0px;
-}
-
-#signupform .success_msg {
-  font-weight: bold;
-  color: #0060BF;
-  margin-left: 19px;
-}
-
-#signupform #dateformatStatus, #signupform #termsStatus {
-  margin-left: 6px;
-}
-
-#signupform #dateformat_eu {
- vertical-align: middle;
-}
-
-#signupform #ldateformat_eu {
-  font-weight: normal;
-  vertical-align: middle;
-}
-
-#signupform #dateformat_am {
-  vertical-align: middle;
-}
-
-#signupform #ldateformat_am {
-  font-weight: normal;
-  vertical-align: middle;
-}
-
-#signupform #termswrap {
-  float: left;
-}
-
-#signupform #terms {
-  vertical-align: middle;
-  float: left;
-  display: block;
-  margin-right: 5px;
-}
-
-#signupform #lterms {
-  font-weight: normal;
-  vertical-align: middle;
-  float: left;
-  display: block;
-  width: 350px;
-  white-space: normal;
-}
-
-#signupform #lsignupsubmit {
-  visibility: hidden;
-}
\ No newline at end of file
diff --git a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/milk/milk.png b/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/milk/milk.png
deleted file mode 100755
index b5e71515..00000000
--- a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/milk/milk.png
+++ /dev/null
Binary files differdiff --git a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/milk/right_white.png b/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/milk/right_white.png
deleted file mode 100755
index 393bbe2b..00000000
--- a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/milk/right_white.png
+++ /dev/null
Binary files differdiff --git a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/milk/users.php b/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/milk/users.php
deleted file mode 100755
index 4fef967f..00000000
--- a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/milk/users.php
+++ /dev/null
@@ -1,12 +0,0 @@
-<?php
-$request = trim(strtolower($_REQUEST['username']));
-//sleep(2);
-usleep(150000);
-$users = array('asdf', 'Peter', 'Peter2', 'George');
-$valid = 'true';
-foreach($users as $user) {
-	if( strtolower($user) == $request )
-		$valid = 'false';
-}
-echo $valid;
-?>
\ No newline at end of file
diff --git a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/milk/users.phps b/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/milk/users.phps
deleted file mode 100755
index dfe4c8e9..00000000
--- a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/milk/users.phps
+++ /dev/null
@@ -1,10 +0,0 @@
-<?php
-$request = trim(strtolower($_REQUEST['value']));
-$users = array('asdf', 'Peter', 'Peter2', 'George');
-$valid = 'true';
-foreach($users as $user) {
-	if( strtolower($user) == $request )
-		$valid = 'false';
-}
-echo $valid;
-?>
\ No newline at end of file
diff --git a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/multipart/index.html b/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/multipart/index.html
deleted file mode 100755
index 2fc5973d..00000000
--- a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/multipart/index.html
+++ /dev/null
@@ -1,412 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-
-<title>jQuery accordion form with validation</title>
-
-<link rel="stylesheet" href="../assets/demo_blue.css" type="text/css" />
-
-<script type="text/javascript" src="../../lib/jquery.js"></script>
-<script type="text/javascript" src="../../jquery.validate.js"></script>
-<script type="text/javascript" src="js/jquery.maskedinput-1.0.js"></script>
-<script type="text/javascript" src="js/ui.core.js"></script>
-<script type="text/javascript" src="js/ui.accordion.js"></script>
-
-<script type="text/javascript">
-$(document).ready(function(){
-
-	$("#recordClientPhone").mask("(999) 999-9999");
-	$("#recordClientPhoneAlt").mask("(999) 999-9999");
-	$("#recordClientZip").mask("99999");
-	$("#recordPropertyZip").mask("99999");	
-	$("#recordPurchaseZip").mask("99999");	
-
-	// add * to required field labels
-	$('label.required').append('&nbsp;<strong>*</strong>&nbsp;');
-
-	// accordion functions
-	var accordion = $("#stepForm").accordion(); 
-	var current = 0;
-	
-	$.validator.addMethod("pageRequired", function(value, element) {
-		var $element = $(element)
-		function match(index) {
-			return current == index && $(element).parents("#sf" + (index + 1)).length;
-		}
-		if (match(0) || match(1) || match(2)) {
-			return !this.optional(element);
-		}
-		return "dependency-mismatch";
-	}, $.validator.messages.required)
-	
-	var v = $("#cmaForm").validate({
-		errorClass: "warning",
-		onkeyup: false,
-		onblur: false,
-		submitHandler: function() {
-			alert("Submitted, thanks!");
-		}
-	});
-	
-	// back buttons do not need to run validation
-	$("#sf2 .prevbutton").click(function(){
-		accordion.accordion("activate", 0);
-		current = 0;
-	}); 
-	$("#sf3 .prevbutton").click(function(){
-		accordion.accordion("activate", 1);
-		current = 1;
-	}); 
-	// these buttons all run the validation, overridden by specific targets above
-	$(".open2").click(function() {
-	  if (v.form()) {
-	    accordion.accordion("activate", 2);
-	    current = 2;
-	  }
-	});
-	$(".open1").click(function() {
-	  if (v.form()) {
-	    accordion.accordion("activate", 1);
-	    current = 1;
-	  }
-	});
-	$(".open0").click(function() {
-	  if (v.form()) {
-	    accordion.accordion("activate", 0);
-	    current = 0;
-	  }
-	});
- 
-});
-</script>
-
-<link rel="stylesheet" type="text/css" media="screen" href="style.css" />
-</head>
-<body>
-
-<div id="wrap">
-<div id="main">
-
-<h1 class="top bottom"><span>Help me</span> Buy and Sell a House</h1>
-<h2>This form is quick &amp; easy to complete - in only 3 steps!</h2>
-<form name="cmaForm" id="cmaForm" method="post">
-<input type="hidden" name="recordRequestPrimaryServiceID" id="recordRequestPrimaryServiceID" value="100" />
-<input type="hidden" name="recordClientServices" id="recordClientServices" value="1,3" />
-<ul id="stepForm" class="ui-accordion-container">
-	<li id="sf1"><a href='#' class="ui-accordion-link"> </a>
-	<div>
-	<fieldset><legend> Step 1 of 3 </legend>
-	<div class="requiredNotice">*Required Field</div>
-	<h3 class="stepHeader">Tell us about the property you're buying</h3>
-	<label for="recordPurchaseMetRealtor" class="input required">Are you currently working with a<br />
-	real estate agent? </label> &nbsp;&nbsp;No: <input name="recordPurchaseMetRealtor" type="radio" checked="checked" class="inputclass" value="0" /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Yes: <input name="recordPurchaseMetRealtor" type="radio" class="inputclass pageRequired" value="1" title="Please choose Yes or No" />
-	<div class="formspacer"></div>
-	<label for="recordPurchaseTimeFrameID" class="input required">When would you like to move?</label> <select name="recordPurchaseTimeFrameID" id="recordPurchaseTimeFrameID" class="inputclass pageRequired" title="Select a Time Frame">
-		<option value="">-Select-</option>
-		<option value="1">Less than 3 months</option>
-		<option value="2">3-6 months</option>
-		<option value="3">6-9 months</option>
-		<option value="4">9-12 months</option>
-		<option value="5">Over 12 months</option>
-	</select> <br />
-	<label for="recordPurchasePriceRangeID" class="input required">Purchase price range:</label> <select name="recordPurchasePriceRangeID" id="recordPurchasePriceRangeID" class="inputclass pageRequired" title="Select a Price Range">
-		<option value="">-Select-</option>
-		<option value="1"></option>
-		<option value="2">$75,000 - $100,000</option>
-		<option value="3">$100,000 - $125,000</option>
-		<option value="4">$125,000 - $150,000</option>
-		<option value="5">$150,000 - $200,000</option>
-		<option value="6">$200,000 - $250,000</option>
-		<option value="7">$250,000 - $300,000</option>
-		<option value="8">$300,000 - $350,000</option>
-		<option value="9">$350,000 - $400,000</option>
-		<option value="10">$400,000 - $500,000</option>
-		<option value="11">$500,000 - $700,000</option>
-		<option value="12">$700,000 - $900,000</option>
-		<option value="13">> $900,000</option>
-	</select> <br />
-	<label for="recordPurchaseState" class="input required">State:</label> <select name="recordPurchaseState" id="recordPurchaseState" class="inputclass pageRequired" title="Select a State">
-		<option value="">-Select-</option>
-		<option value="AL">Alabama</option>
-		<option value="AK">Alaska</option>
-		<option value="AZ">Arizona</option>
-		<option value="AR">Arkansas</option>
-		<option value="CA">California</option>
-		<option value="CO">Colorado</option>
-		<option value="CT">Connecticut</option>
-		<option value="DE">Delaware</option>
-		<option value="DC">Dist of Columbia</option>
-		<option value="FL">Florida</option>
-		<option value="GA">Georgia</option>
-		<option value="HI">Hawaii</option>
-		<option value="ID">Idaho</option>
-		<option value="IL">Illinois</option>
-		<option value="IN">Indiana</option>
-		<option value="IA">Iowa</option>
-		<option value="KS">Kansas</option>
-		<option value="KY">Kentucky</option>
-		<option value="LA">Louisiana</option>
-		<option value="ME">Maine</option>
-		<option value="MD">Maryland</option>
-		<option value="MA">Massachusetts</option>
-		<option value="MI">Michigan</option>
-		<option value="MN">Minnesota</option>
-		<option value="MS">Mississippi</option>
-		<option value="MO">Missouri</option>
-		<option value="MT">Montana</option>
-		<option value="NE">Nebraska</option>
-		<option value="NV">Nevada</option>
-		<option value="NH">New Hampshire</option>
-		<option value="NJ">New Jersey</option>
-		<option value="NM">New Mexico</option>
-		<option value="NY">New York</option>
-		<option value="NC">North Carolina</option>
-		<option value="ND">North Dakota</option>
-		<option value="OH">Ohio</option>
-		<option value="OK">Oklahoma</option>
-		<option value="OR">Oregon</option>
-		<option value="PA" selected="selected">Pennsylvania</option>
-		<option value="RI">Rhode Island</option>
-		<option value="SC">South Carolina</option>
-		<option value="SD">South Dakota</option>
-		<option value="TN">Tennessee</option>
-		<option value="TX">Texas</option>
-		<option value="UT">Utah</option>
-		<option value="VT">Vermont</option>
-		<option value="VA">Virginia</option>
-		<option value="WA">Washington</option>
-		<option value="WV">West Virginia</option>
-		<option value="WI">Wisconsin</option>
-		<option value="WY">Wyoming</option>
-	</select> <br />
-
-	<label for="recordPurchasePropertyTypeID" class="input">Desired property type:</label> <select name="recordPurchasePropertyTypeID" id="recordPurchasePropertyTypeID" class="inputclass" title="Select a Property Type">
-		<option value="">-Select-</option>
-		<option value="1">Single Family Detached</option>
-		<option value="2">Condo</option>
-		<option value="3">Townhouse</option>
-		<option value="4">Rental</option>
-		<option value="5">Multi-Family</option>
-		<option value="6">Vacation Home</option>
-		<option value="7">Other</option>
-	</select> <br />
-	<div class="buttonWrapper"><input name="formNext1" type="button" class="open1 nextbutton" value="Next" alt="Next" title="Next" /></div>
-	</fieldset>
-	</div>
-	</li>
-	<li id="sf2">
-	<a href='#' class="ui-accordion-link">
-	</a>
-	<div>
-	<fieldset><legend> Step 2 of 3 </legend>
-	<div class="requiredNotice">*Required Field</div>
-	<h3 class="stepHeader">Tell us about the property you're selling</h3>
-	<label for="recordClientTimeFrameID" class="input required">When would you like to sell?</label> <select name="recordClientTimeFrameID" id="recordClientTimeFrameID" class="inputclass pageRequired" title="Select a Time Frame">
-		<option value="">-Select-</option>
-		<option value="1">Less than 3 months</option>
-		<option value="2">3-6 months</option>
-		<option value="3">6-9 months</option>
-		<option value="4">9-12 months</option>
-		<option value="5">Over 12 months</option>
-	</select> <br />
-	<label for="recordClientHomeTypeID" class="input required">Type of property you are selling:</label> <select name="recordClientHomeTypeID" id="recordClientHomeTypeID" class="inputclass pageRequired" title="Select a Property Type">
-		<option value="">-Select-</option>
-		<option value="1">Single Family Detached</option>
-		<option value="2">Condo</option>
-		<option value="3">Townhouse</option>
-		<option value="4">Rental</option>
-		<option value="5">Multi-Family</option>
-		<option value="6">Vacation Home</option>
-		<option value="7">Other</option>
-	</select> <br />
-	<label for="recordPropertyAddress1" class="input required">Property Street Address:</label> <input name="recordPropertyAddress1" id="recordPropertyAddress1" class="inputclass pageRequired" title="Street Address is required" maxlength="254" onblur="recordClientAddress1.value = this.value" /><br />
-	<label for="recordPropertyAddress2" class="input">Address (2):</label> <input name="recordPropertyAddress2" id="recordPropertyAddress2" class="inputclass" maxlength="254" onblur="recordClientAddress2.value = this.value" /><br />
-	<label for="recordPropertyCity" class="input required">City:</label> <input name="recordPropertyCity" id="recordPropertyCity" class="inputclass pageRequired" title="City is required" maxlength="254" onblur="recordClientCity.value = this.value" /><br />
-	<label for="recordPropertyState" class="input required">State:</label> <select name="recordPropertyState" id="recordPropertyState" class="inputclass pageRequired" title="Select a State" onchange="recordClientState.value = this.value">
-		<option value="">-Select-</option>
-		<option value="AL">Alabama</option>
-		<option value="AK">Alaska</option>
-		<option value="AZ">Arizona</option>
-		<option value="AR">Arkansas</option>
-		<option value="CA">California</option>
-		<option value="CO">Colorado</option>
-		<option value="CT">Connecticut</option>
-		<option value="DE">Delaware</option>
-		<option value="DC">Dist of Columbia</option>
-		<option value="FL">Florida</option>
-		<option value="GA">Georgia</option>
-		<option value="HI">Hawaii</option>
-		<option value="ID">Idaho</option>
-		<option value="IL">Illinois</option>
-		<option value="IN">Indiana</option>
-		<option value="IA">Iowa</option>
-		<option value="KS">Kansas</option>
-		<option value="KY">Kentucky</option>
-		<option value="LA">Louisiana</option>
-		<option value="ME">Maine</option>
-		<option value="MD">Maryland</option>
-		<option value="MA">Massachusetts</option>
-		<option value="MI">Michigan</option>
-		<option value="MN">Minnesota</option>
-		<option value="MS">Mississippi</option>
-		<option value="MO">Missouri</option>
-		<option value="MT">Montana</option>
-		<option value="NE">Nebraska</option>
-		<option value="NV">Nevada</option>
-		<option value="NH">New Hampshire</option>
-		<option value="NJ">New Jersey</option>
-		<option value="NM">New Mexico</option>
-		<option value="NY">New York</option>
-		<option value="NC">North Carolina</option>
-		<option value="ND">North Dakota</option>
-		<option value="OH">Ohio</option>
-		<option value="OK">Oklahoma</option>
-		<option value="OR">Oregon</option>
-		<option value="PA" selected="selected">Pennsylvania</option>
-		<option value="RI">Rhode Island</option>
-		<option value="SC">South Carolina</option>
-		<option value="SD">South Dakota</option>
-		<option value="TN">Tennessee</option>
-		<option value="TX">Texas</option>
-		<option value="UT">Utah</option>
-		<option value="VT">Vermont</option>
-		<option value="VA">Virginia</option>
-		<option value="WA">Washington</option>
-		<option value="WV">West Virginia</option>
-		<option value="WI">Wisconsin</option>
-		<option value="WY">Wyoming</option>
-	</select> <br />
-	<label for="recordPropertyZip" class="input required">Zip:</label> <input name="recordPropertyZip" id="recordPropertyZip" class="inputclass pageRequired" title="Zip Code is required" maxlength="254" onblur="recordClientZip.value = this.value" /><br />
-
-	<label for="recordClientPropertyValueID" class="input required">Estimated Market Value:</label> <select name="recordClientPropertyValueID" id="recordClientPropertyValueID" class="inputclass pageRequired" title="Select a Price Range">
-		<option value="">-Select-</option>
-		<option value="1">Less Than $75K</option>
-		<option value="2">$75-$100K</option>
-		<option value="3">$100-$125K</option>
-		<option value="4">$125-$150K</option>
-		<option value="5">$150-$200K</option>
-		<option value="6">$200-$250K</option>
-		<option value="7">$250-$300K</option>
-		<option value="8">$300-$350K</option>
-		<option value="9">$350-$400K</option>
-		<option value="10">$400-$500K</option>
-		<option value="11">$500-$700K</option>
-		<option value="12">$700-$900K</option>
-		<option value="13">Over $900K</option>
-	</select> <br />
-	<label for="recordPropertyBedroomsID" class="input">Bedrooms:</label> <select name="recordPropertyBedroomsID" id="recordPropertyBedroomsID" class="inputclass">
-		<option value="">-Select-</option>
-		<option value="1">1</option>
-		<option value="2">2</option>
-		<option value="3">3</option>
-		<option value="4">4</option>
-		<option value="5">5+</option>
-	</select> <br />
-	<label for="recordPropertyBathroomsId" class="input">Bathrooms:</label> <select name="recordPropertyBathroomsId" id="recordPropertyBathroomsId" class="inputclass">
-		<option value="">-Select-</option>
-		<option value="1">1</option>
-		<option value="2">1.5</option>
-		<option value="3">2</option>
-		<option value="4">2.5</option>
-		<option value="5">3</option>
-		<option value="6">3.5</option>
-		<option value="7">4+</option>
-	</select> <br />
-	<label for="recordPropertyAgeId" class="input">Approx. Age of Home:</label> <select name="recordPropertyAgeId" id="recordPropertyAgeId" class="inputclass">
-		<option value="">-Select-</option>
-		<option value="1">Less Than 1 year</option>
-		<option value="2">1-5 years</option>
-		<option value="3">6-10 years</option>
-		<option value="4">11-15 years</option>
-		<option value="5">More than 15 years</option>
-	</select> <br />
-	<label for="recordPropertySqFt" class="input">Approx. Square Footage:</label> <input name="recordPropertySqFt" id="recordPropertySqFt" class="inputclass" maxlength="254" /><br />
-	<div class="buttonWrapper"><input name="formBack0" type="button" class="open0 prevbutton" value="Back" alt="Back" title="Back" /> <input name="formNext2" type="button" class="open2 nextbutton" value="Next" alt="Next" title="Next" /></div>
-	</fieldset>
-	</div>
-	</li>
-	<li id="sf3">
-	<a href='#' class="ui-accordion-link">
-	</a>
-	<div>
-	<fieldset><legend> Step 3 of 3 </legend>
-	<div class="requiredNotice">*Required Field</div>
-	<h3 class="stepHeader">Tell us about yourself</h3>
-	<label for="recordClientNameFirst" class="input required">First Name:</label> <input name="recordClientNameFirst" id="recordClientNameFirst" class="inputclass pageRequired" title="First Name is required" maxlength="254" /> <br />
-	<label for="recordClientNameLast" class="input required">Last Name:</label> <input name="recordClientNameLast" id="recordClientNameLast" class="inputclass pageRequired" maxlength="254" title="Last Name is required" /> <br />
-	<label for="recordClientAddress1" class="input required">Current Address:</label> <input name="recordClientAddress1" id="recordClientAddress1" class="inputclass pageRequired" maxlength="254" title="Address is required" /> <br />
-	<label for="recordClientAddress2" class="input">Address (2):</label> <input name="recordClientAddress2" id="recordClientAddress2" class="inputclass" maxlength="254" /> <br />
-	<label for="recordClientCity" class="input required">City:</label> <input name="recordClientCity" id="recordClientCity" class="inputclass pageRequired" maxlength="254" title="City is required" /> <br />
-	<label for="recordClientState" class="input required">State:</label> <select name="recordClientState" id="recordClientState" class="inputclass pageRequired" title="Select a State">
-		<option value="">-Select-</option>
-		<option value="AL">Alabama</option>
-		<option value="AK">Alaska</option>
-		<option value="AZ">Arizona</option>
-		<option value="AR">Arkansas</option>
-		<option value="CA">California</option>
-		<option value="CO">Colorado</option>
-		<option value="CT">Connecticut</option>
-		<option value="DE">Delaware</option>
-		<option value="DC">Dist of Columbia</option>
-		<option value="FL">Florida</option>
-		<option value="GA">Georgia</option>
-		<option value="HI">Hawaii</option>
-		<option value="ID">Idaho</option>
-		<option value="IL">Illinois</option>
-		<option value="IN">Indiana</option>
-		<option value="IA">Iowa</option>
-		<option value="KS">Kansas</option>
-		<option value="KY">Kentucky</option>
-		<option value="LA">Louisiana</option>
-		<option value="ME">Maine</option>
-		<option value="MD">Maryland</option>
-		<option value="MA">Massachusetts</option>
-		<option value="MI">Michigan</option>
-		<option value="MN">Minnesota</option>
-		<option value="MS">Mississippi</option>
-		<option value="MO">Missouri</option>
-		<option value="MT">Montana</option>
-		<option value="NE">Nebraska</option>
-		<option value="NV">Nevada</option>
-		<option value="NH">New Hampshire</option>
-		<option value="NJ">New Jersey</option>
-		<option value="NM">New Mexico</option>
-		<option value="NY">New York</option>
-		<option value="NC">North Carolina</option>
-		<option value="ND">North Dakota</option>
-		<option value="OH">Ohio</option>
-		<option value="OK">Oklahoma</option>
-		<option value="OR">Oregon</option>
-		<option value="PA" selected="selected">Pennsylvania</option>
-		<option value="RI">Rhode Island</option>
-		<option value="SC">South Carolina</option>
-		<option value="SD">South Dakota</option>
-		<option value="TN">Tennessee</option>
-		<option value="TX">Texas</option>
-		<option value="UT">Utah</option>
-		<option value="VT">Vermont</option>
-		<option value="VA">Virginia</option>
-		<option value="WA">Washington</option>
-		<option value="WV">West Virginia</option>
-		<option value="WI">Wisconsin</option>
-		<option value="WY">Wyoming</option>
-	</select> <br />
-	<label for="recordClientZip" class="input required">Zip:</label> <input name="recordClientZip" id="recordClientZip" class="inputclass pageRequired" maxlength="12" title="Zip Code is required" /> <br />
-	<label for="recordClientPhone" class="input required">Phone Number:</label> <input name="recordClientPhone" id="recordClientPhone" class="inputclass pageRequired" maxlength="254" title="Phone Number is required" /> <br />
-	<label for="recordClientPhoneAlt" class="input">Alternate Number:</label> <input name="recordClientPhoneAlt" id="recordClientPhoneAlt" class="inputclass" maxlength="254" /> <br />
-	<label for="recordClientEmail" class="input required">Email Address:</label> <input name="recordClientEmail" id="recordClientEmail" class="inputclass pageRequired email" maxlength="254" title="Email address is required" /> <br />
-	<label for="recordClientEmail1" class="input required">Confirm Email:</label> <input name="recordClientEmail1" id="recordClientEmail1" class="inputclass pageRequired" equalTo:"'#recordClientEmail" maxlength="254" title="Please confirm your email address" /> <br />
-	<br />
-	<p class="formDisclaimer">This is a sample form, no information is sent anywhere.</p>
-	<div class="buttonWrapper"><input name="formBack1" type="button" class="open1 prevbutton" value="Back" alt="Back" title="Back" /> <input name="submit" type="submit" id="submit" value="Submit" class="submitbutton" alt="Submit" title="Submit"></div>
-	</fieldset>
-	</div>
-	</li>
-</ul>
-</form>
-
-</div>
-</div>
-
-</body>
-</html>
diff --git a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/multipart/js/jquery.maskedinput-1.0.js b/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/multipart/js/jquery.maskedinput-1.0.js
deleted file mode 100755
index 9ba3ecfa..00000000
--- a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/multipart/js/jquery.maskedinput-1.0.js
+++ /dev/null
@@ -1,246 +0,0 @@
-/*
- * Copyright (c) 2007 Josh Bush (digitalbush.com)
- * 
- * Permission is hereby granted, free of charge, to any person
- * obtaining a copy of this software and associated documentation
- * files (the "Software"), to deal in the Software without
- * restriction, including without limitation the rights to use,
- * copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following
- * conditions:
-
- * The above copyright notice and this permission notice shall be
- * included in all copies or substantial portions of the Software.
- * 
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
- * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
- * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
- * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
- * OTHER DEALINGS IN THE SOFTWARE. 
- */
- 
-/*
- * Version: 1.0
- * Release: 2007-07-25
- */ 
-(function($) {
-	//Helper Functions for Caret positioning
-	function getCaretPosition(ctl){
-		var res = {begin: 0, end: 0 };
-		if (ctl.setSelectionRange){
-			res.begin = ctl.selectionStart;
-			res.end = ctl.selectionEnd;
-		}else if (document.selection && document.selection.createRange){
-			var range = document.selection.createRange();			
-			res.begin = 0 - range.duplicate().moveStart('character', -100000);
-			res.end = res.begin + range.text.length;
-		}
-		return res;
-	};
-
-	function setCaretPosition(ctl, pos){
-		if(ctl.setSelectionRange){
-			ctl.focus();
-			ctl.setSelectionRange(pos,pos);
-		}else if (ctl.createTextRange){
-			var range = ctl.createTextRange();
-			range.collapse(true);
-			range.moveEnd('character', pos);
-			range.moveStart('character', pos);
-			range.select();
-		}
-	};
-	
-	//Predefined character definitions
-	var charMap={
-		'9':"[0-9]",
-		'a':"[A-Za-z]",
-		'*':"[A-Za-z0-9]"
-	};
-	
-	//Helper method to inject character definitions
-	$.mask={
-		addPlaceholder : function(c,r){
-			charMap[c]=r;
-		}
-	};
-	
-	//Main Method
-	$.fn.mask = function(mask,settings) {	
-		settings = $.extend({
-			placeholder: "_",
-			completed: null
-		}, settings);
-			
-		//Build Regex for format validation
-		var reString="^";	
-		for(var i=0;i<mask.length;i++)
-			reString+=(charMap[mask.charAt(i)] || ("\\"+mask.charAt(i)));					
-		reString+="$";
-		var re = new RegExp(reString);
-
-		return this.each(function(){		
-			var input=$(this);
-			var buffer=new Array(mask.length);
-			var locked=new Array(mask.length);		
-
-			//Build buffer layout from mask
-			for(var i=0;i<mask.length;i++){
-				locked[i]=charMap[mask.charAt(i)]==null;
-				buffer[i]=locked[i]?mask.charAt(i):settings.placeholder;					
-			}
-			
-			/*Event Bindings*/
-			input.focus(function(){					
-				checkVal();
-				writeBuffer();
-				setCaretPosition(this,0);		
-			});
-
-			input.blur(checkVal);
-			
-			//Paste events for IE and Mozilla thanks to Kristinn Sigmundsson
-			if ($.browser.msie) 
-				this.onpaste= function(){setTimeout(checkVal,0);};                     
-			else if ($.browser.mozilla)
-				this.addEventListener('input',checkVal,false);
-			
-			var ignore=false;  //Variable for ignoring control keys
-			
-			input.keydown(function(e){
-				var pos=getCaretPosition(this);													
-				var k = e.keyCode;
-				ignore=(k < 16 || (k > 16 && k < 32 ) || (k > 32 && k < 41));
-				
-				//delete selection before proceeding
-				if((pos.begin-pos.end)!=0 && (!ignore || k==8 || k==46)){
-					clearBuffer(pos.begin,pos.end);
-				}	
-				//backspace and delete get special treatment
-				if(k==8){//backspace					
-					while(pos.begin-->=0){
-						if(!locked[pos.begin]){								
-							buffer[pos.begin]=settings.placeholder;
-							if($.browser.opera){
-								//Opera won't let you cancel the backspace, so we'll let it backspace over a dummy character.								
-								writeBuffer(pos.begin);
-								setCaretPosition(this,pos.begin+1);
-							}else{
-								writeBuffer();
-								setCaretPosition(this,pos.begin);
-							}									
-							return false;								
-						}
-					}						
-				}else if(k==46){//delete
-					clearBuffer(pos.begin,pos.begin+1);
-					writeBuffer();
-					setCaretPosition(this,pos.begin);
-					return false;
-				}else if (k==27){
-					clearBuffer(0,mask.length);
-					writeBuffer();
-					setCaretPosition(this,0);
-					return false;
-				}
-									
-			});
-
-			input.keypress(function(e){					
-				if(ignore){
-					ignore=false;
-					return;
-				}
-				e=e||window.event;
-				var k=e.charCode||e.keyCode||e.which;
-
-				var pos=getCaretPosition(this);					
-				var caretPos=pos.begin;	
-				
-				if(e.ctrlKey || e.altKey){//Ignore
-					return true;
-				}else if ((k>=41 && k<=122) ||k==32 || k>186){//typeable characters
-					while(pos.begin<mask.length){	
-						var reString=charMap[mask.charAt(pos.begin)];
-						var match;
-						if(reString){
-							var reChar=new RegExp(reString);
-							match=String.fromCharCode(k).match(reChar);
-						}else{//we're on a mask char, go forward and try again
-							pos.begin+=1;
-							pos.end=pos.begin;
-							caretPos+=1;
-							continue;
-						}
-
-						if(match)
-							buffer[pos.begin]=String.fromCharCode(k);
-						else
-							return false;//reject char
-
-						while(++caretPos<mask.length){//seek forward to next typable position
-							if(!locked[caretPos])							
-								break;							
-						}
-						break;
-					}
-				}else
-					return false;								
-
-				writeBuffer();
-				if(settings.completed && caretPos>=buffer.length)
-					settings.completed.call(input);
-				else
-					setCaretPosition(this,caretPos);
-				
-				return false;				
-			});
-
-			/*Helper Methods*/
-			function clearBuffer(start,end){
-				for(var i=start;i<end;i++){
-					if(!locked[i])
-						buffer[i]=settings.placeholder;
-				}				
-			};
-			
-			function writeBuffer(pos){
-				var s="";
-				for(var i=0;i<mask.length;i++){
-					s+=buffer[i];
-					if(i==pos)
-						s+=settings.placeholder;
-				}
-				input.val(s);
-				return s;
-			};
-			
-			function checkVal(){	
-				//try to place charcters where they belong
-				var test=input.val();
-				var pos=0;
-				for(var i=0;i<mask.length;i++){
-					if(!locked[i]){
-						while(pos++<test.length){
-							//Regex Test each char here.
-							var reChar=new RegExp(charMap[mask.charAt(i)]);
-							if(test.charAt(pos-1).match(reChar)){
-								buffer[i]=test.charAt(pos-1);
-								break;
-							}									
-						}
-					}
-				}
-				var s=writeBuffer();
-				if(!s.match(re)){							
-					input.val("");	
-					clearBuffer(0,mask.length);
-				}					
-			};				
-		});
-	};
-})(jQuery);
\ No newline at end of file
diff --git a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/multipart/js/ui.accordion.js b/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/multipart/js/ui.accordion.js
deleted file mode 100755
index 0e94df16..00000000
--- a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/multipart/js/ui.accordion.js
+++ /dev/null
@@ -1,477 +0,0 @@
-/*
- * jQuery UI Accordion 1.7.1
- *
- * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT (MIT-LICENSE.txt)
- * and GPL (GPL-LICENSE.txt) licenses.
- *
- * http://docs.jquery.com/UI/Accordion
- *
- * Depends:
- *	ui.core.js
- */
-(function($) {
-
-$.widget("ui.accordion", {
-
-	_init: function() {
-
-		var o = this.options, self = this;
-		this.running = 0;
-
-		// if the user set the alwaysOpen option on init
-		// then we need to set the collapsible option
-		// if they set both on init, collapsible will take priority
-		if (o.collapsible == $.ui.accordion.defaults.collapsible &&
-			o.alwaysOpen != $.ui.accordion.defaults.alwaysOpen) {
-			o.collapsible = !o.alwaysOpen;
-		}
-
-		if ( o.navigation ) {
-			var current = this.element.find("a").filter(o.navigationFilter);
-			if ( current.length ) {
-				if ( current.filter(o.header).length ) {
-					this.active = current;
-				} else {
-					this.active = current.parent().parent().prev();
-					current.addClass("ui-accordion-content-active");
-				}
-			}
-		}
-
-		this.element.addClass("ui-accordion ui-widget ui-helper-reset");
-		
-		// in lack of child-selectors in CSS we need to mark top-LIs in a UL-accordion for some IE-fix
-		if (this.element[0].nodeName == "UL") {
-			this.element.children("li").addClass("ui-accordion-li-fix");
-		}
-
-		this.headers = this.element.find(o.header).addClass("ui-accordion-header ui-helper-reset ui-state-default ui-corner-all")
-			.bind("mouseenter.accordion", function(){ $(this).addClass('ui-state-hover'); })
-			.bind("mouseleave.accordion", function(){ $(this).removeClass('ui-state-hover'); })
-			.bind("focus.accordion", function(){ $(this).addClass('ui-state-focus'); })
-			.bind("blur.accordion", function(){ $(this).removeClass('ui-state-focus'); });
-
-		this.headers
-			.next()
-				.addClass("ui-accordion-content ui-helper-reset ui-widget-content ui-corner-bottom");
-
-		this.active = this._findActive(this.active || o.active).toggleClass("ui-state-default").toggleClass("ui-state-active").toggleClass("ui-corner-all").toggleClass("ui-corner-top");
-		this.active.next().addClass('ui-accordion-content-active');
-
-		//Append icon elements
-		$("<span/>").addClass("ui-icon " + o.icons.header).prependTo(this.headers);
-		this.active.find(".ui-icon").toggleClass(o.icons.header).toggleClass(o.icons.headerSelected);
-
-		// IE7-/Win - Extra vertical space in lists fixed
-		if ($.browser.msie) {
-			this.element.find('a').css('zoom', '1');
-		}
-
-		this.resize();
-
-		//ARIA
-		this.element.attr('role','tablist');
-
-		this.headers
-			.attr('role','tab')
-			.bind('keydown', function(event) { return self._keydown(event); })
-			.next()
-			.attr('role','tabpanel');
-
-		this.headers
-			.not(this.active || "")
-			.attr('aria-expanded','false')
-			.attr("tabIndex", "-1")
-			.next()
-			.hide();
-
-		// make sure at least one header is in the tab order
-		if (!this.active.length) {
-			this.headers.eq(0).attr('tabIndex','0');
-		} else {
-			this.active
-				.attr('aria-expanded','true')
-				.attr('tabIndex', '0');
-		}
-
-		// only need links in taborder for Safari
-		if (!$.browser.safari)
-			this.headers.find('a').attr('tabIndex','-1');
-
-		if (o.event) {
-			this.headers.bind((o.event) + ".accordion", function(event) { return self._clickHandler.call(self, event, this); });
-		}
-
-	},
-
-	destroy: function() {
-		var o = this.options;
-
-		this.element
-			.removeClass("ui-accordion ui-widget ui-helper-reset")
-			.removeAttr("role")
-			.unbind('.accordion')
-			.removeData('accordion');
-
-		this.headers
-			.unbind(".accordion")
-			.removeClass("ui-accordion-header ui-helper-reset ui-state-default ui-corner-all ui-state-active ui-corner-top")
-			.removeAttr("role").removeAttr("aria-expanded").removeAttr("tabindex");
-
-		this.headers.find("a").removeAttr("tabindex");
-		this.headers.children(".ui-icon").remove();
-		var contents = this.headers.next().css("display", "").removeAttr("role").removeClass("ui-helper-reset ui-widget-content ui-corner-bottom ui-accordion-content ui-accordion-content-active");
-		if (o.autoHeight || o.fillHeight) {
-			contents.css("height", "");
-		}
-	},
-	
-	_setData: function(key, value) {
-		if(key == 'alwaysOpen') { key = 'collapsible'; value = !value; }
-		$.widget.prototype._setData.apply(this, arguments);	
-	},
-
-	_keydown: function(event) {
-
-		var o = this.options, keyCode = $.ui.keyCode;
-
-		if (o.disabled || event.altKey || event.ctrlKey)
-			return;
-
-		var length = this.headers.length;
-		var currentIndex = this.headers.index(event.target);
-		var toFocus = false;
-
-		switch(event.keyCode) {
-			case keyCode.RIGHT:
-			case keyCode.DOWN:
-				toFocus = this.headers[(currentIndex + 1) % length];
-				break;
-			case keyCode.LEFT:
-			case keyCode.UP:
-				toFocus = this.headers[(currentIndex - 1 + length) % length];
-				break;
-			case keyCode.SPACE:
-			case keyCode.ENTER:
-				return this._clickHandler({ target: event.target }, event.target);
-		}
-
-		if (toFocus) {
-			$(event.target).attr('tabIndex','-1');
-			$(toFocus).attr('tabIndex','0');
-			toFocus.focus();
-			return false;
-		}
-
-		return true;
-
-	},
-
-	resize: function() {
-
-		var o = this.options, maxHeight;
-
-		if (o.fillSpace) {
-			
-			if($.browser.msie) { var defOverflow = this.element.parent().css('overflow'); this.element.parent().css('overflow', 'hidden'); }
-			maxHeight = this.element.parent().height();
-			if($.browser.msie) { this.element.parent().css('overflow', defOverflow); }
-	
-			this.headers.each(function() {
-				maxHeight -= $(this).outerHeight();
-			});
-
-			var maxPadding = 0;
-			this.headers.next().each(function() {
-				maxPadding = Math.max(maxPadding, $(this).innerHeight() - $(this).height());
-			}).height(Math.max(0, maxHeight - maxPadding))
-			.css('overflow', 'auto');
-
-		} else if ( o.autoHeight ) {
-			maxHeight = 0;
-			this.headers.next().each(function() {
-				maxHeight = Math.max(maxHeight, $(this).outerHeight());
-			}).height(maxHeight);
-		}
-
-	},
-
-	activate: function(index) {
-		// call clickHandler with custom event
-		var active = this._findActive(index)[0];
-		this._clickHandler({ target: active }, active);
-	},
-
-	_findActive: function(selector) {
-		return selector
-			? typeof selector == "number"
-				? this.headers.filter(":eq(" + selector + ")")
-				: this.headers.not(this.headers.not(selector))
-			: selector === false
-				? $([])
-				: this.headers.filter(":eq(0)");
-	},
-
-	_clickHandler: function(event, target) {
-
-		var o = this.options;
-		if (o.disabled) return false;
-
-		// called only when using activate(false) to close all parts programmatically
-		if (!event.target && o.collapsible) {
-			this.active.removeClass("ui-state-active ui-corner-top").addClass("ui-state-default ui-corner-all")
-				.find(".ui-icon").removeClass(o.icons.headerSelected).addClass(o.icons.header);
-			this.active.next().addClass('ui-accordion-content-active');
-			var toHide = this.active.next(),
-				data = {
-					options: o,
-					newHeader: $([]),
-					oldHeader: o.active,
-					newContent: $([]),
-					oldContent: toHide
-				},
-				toShow = (this.active = $([]));
-			this._toggle(toShow, toHide, data);
-			return false;
-		}
-
-		// get the click target
-		var clicked = $(event.currentTarget || target);
-		var clickedIsActive = clicked[0] == this.active[0];
-
-		// if animations are still active, or the active header is the target, ignore click
-		if (this.running || (!o.collapsible && clickedIsActive)) {
-			return false;
-		}
-
-		// switch classes
-		this.active.removeClass("ui-state-active ui-corner-top").addClass("ui-state-default ui-corner-all")
-			.find(".ui-icon").removeClass(o.icons.headerSelected).addClass(o.icons.header);
-		this.active.next().addClass('ui-accordion-content-active');
-		if (!clickedIsActive) {
-			clicked.removeClass("ui-state-default ui-corner-all").addClass("ui-state-active ui-corner-top")
-				.find(".ui-icon").removeClass(o.icons.header).addClass(o.icons.headerSelected);
-			clicked.next().addClass('ui-accordion-content-active');
-		}
-
-		// find elements to show and hide
-		var toShow = clicked.next(),
-			toHide = this.active.next(),
-			data = {
-				options: o,
-				newHeader: clickedIsActive && o.collapsible ? $([]) : clicked,
-				oldHeader: this.active,
-				newContent: clickedIsActive && o.collapsible ? $([]) : toShow.find('> *'),
-				oldContent: toHide.find('> *')
-			},
-			down = this.headers.index( this.active[0] ) > this.headers.index( clicked[0] );
-
-		this.active = clickedIsActive ? $([]) : clicked;
-		this._toggle(toShow, toHide, data, clickedIsActive, down);
-
-		return false;
-
-	},
-
-	_toggle: function(toShow, toHide, data, clickedIsActive, down) {
-
-		var o = this.options, self = this;
-
-		this.toShow = toShow;
-		this.toHide = toHide;
-		this.data = data;
-
-		var complete = function() { if(!self) return; return self._completed.apply(self, arguments); };
-
-		// trigger changestart event
-		this._trigger("changestart", null, this.data);
-
-		// count elements to animate
-		this.running = toHide.size() === 0 ? toShow.size() : toHide.size();
-
-		if (o.animated) {
-
-			var animOptions = {};
-
-			if ( o.collapsible && clickedIsActive ) {
-				animOptions = {
-					toShow: $([]),
-					toHide: toHide,
-					complete: complete,
-					down: down,
-					autoHeight: o.autoHeight || o.fillSpace
-				};
-			} else {
-				animOptions = {
-					toShow: toShow,
-					toHide: toHide,
-					complete: complete,
-					down: down,
-					autoHeight: o.autoHeight || o.fillSpace
-				};
-			}
-
-			if (!o.proxied) {
-				o.proxied = o.animated;
-			}
-
-			if (!o.proxiedDuration) {
-				o.proxiedDuration = o.duration;
-			}
-
-			o.animated = $.isFunction(o.proxied) ?
-				o.proxied(animOptions) : o.proxied;
-
-			o.duration = $.isFunction(o.proxiedDuration) ?
-				o.proxiedDuration(animOptions) : o.proxiedDuration;
-
-			var animations = $.ui.accordion.animations,
-				duration = o.duration,
-				easing = o.animated;
-
-			if (!animations[easing]) {
-				animations[easing] = function(options) {
-					this.slide(options, {
-						easing: easing,
-						duration: duration || 700
-					});
-				};
-			}
-
-			animations[easing](animOptions);
-
-		} else {
-
-			if (o.collapsible && clickedIsActive) {
-				toShow.toggle();
-			} else {
-				toHide.hide();
-				toShow.show();
-			}
-
-			complete(true);
-
-		}
-
-		toHide.prev().attr('aria-expanded','false').attr("tabIndex", "-1").blur();
-		toShow.prev().attr('aria-expanded','true').attr("tabIndex", "0").focus();
-
-	},
-
-	_completed: function(cancel) {
-
-		var o = this.options;
-
-		this.running = cancel ? 0 : --this.running;
-		if (this.running) return;
-
-		if (o.clearStyle) {
-			this.toShow.add(this.toHide).css({
-				height: "",
-				overflow: ""
-			});
-		}
-
-		this._trigger('change', null, this.data);
-	}
-
-});
-
-
-$.extend($.ui.accordion, {
-	version: "1.7.1",
-	defaults: {
-		active: null,
-		alwaysOpen: true, //deprecated, use collapsible
-		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();
-		}
-	},
-	animations: {
-		slide: function(options, additions) {
-			options = $.extend({
-				easing: "swing",
-				duration: 300
-			}, options, additions);
-			if ( !options.toHide.size() ) {
-				options.toShow.animate({height: "show"}, options);
-				return;
-			}
-			if ( !options.toShow.size() ) {
-				options.toHide.animate({height: "hide"}, options);
-				return;
-			}
-			var overflow = options.toShow.css('overflow'),
-				percentDone,
-				showProps = {},
-				hideProps = {},
-				fxAttrs = [ "height", "paddingTop", "paddingBottom" ],
-				originalWidth;
-			// fix width before calculating height of hidden element
-			var s = options.toShow;
-			originalWidth = s[0].style.width;
-			s.width( parseInt(s.parent().width(),10) - parseInt(s.css("paddingLeft"),10) - parseInt(s.css("paddingRight"),10) - (parseInt(s.css("borderLeftWidth"),10) || 0) - (parseInt(s.css("borderRightWidth"),10) || 0) );
-			
-			$.each(fxAttrs, function(i, prop) {
-				hideProps[prop] = 'hide';
-				
-				var parts = ('' + $.css(options.toShow[0], prop)).match(/^([\d+-.]+)(.*)$/);
-				showProps[prop] = {
-					value: parts[1],
-					unit: parts[2] || 'px'
-				};
-			});
-			options.toShow.css({ height: 0, overflow: 'hidden' }).show();
-			options.toHide.filter(":hidden").each(options.complete).end().filter(":visible").animate(hideProps,{
-				step: function(now, settings) {
-					// only calculate the percent when animating height
-					// IE gets very inconsistent results when animating elements
-					// with small values, which is common for padding
-					if (settings.prop == 'height') {
-						percentDone = (settings.now - settings.start) / (settings.end - settings.start);
-					}
-					
-					options.toShow[0].style[settings.prop] =
-						(percentDone * showProps[settings.prop].value) + showProps[settings.prop].unit;
-				},
-				duration: options.duration,
-				easing: options.easing,
-				complete: function() {
-					if ( !options.autoHeight ) {
-						options.toShow.css("height", "");
-					}
-					options.toShow.css("width", originalWidth);
-					options.toShow.css({overflow: overflow});
-					options.complete();
-				}
-			});
-		},
-		bounceslide: function(options) {
-			this.slide(options, {
-				easing: options.down ? "easeOutBounce" : "swing",
-				duration: options.down ? 1000 : 200
-			});
-		},
-		easeslide: function(options) {
-			this.slide(options, {
-				easing: "easeinout",
-				duration: 700
-			});
-		}
-	}
-});
-
-})(jQuery);
diff --git a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/multipart/js/ui.core.js b/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/multipart/js/ui.core.js
deleted file mode 100755
index 6be9993b..00000000
--- a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/multipart/js/ui.core.js
+++ /dev/null
@@ -1,519 +0,0 @@
-/*
- * jQuery UI 1.7.1
- *
- * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT (MIT-LICENSE.txt)
- * and GPL (GPL-LICENSE.txt) licenses.
- *
- * http://docs.jquery.com/UI
- */
-;jQuery.ui || (function($) {
-
-var _remove = $.fn.remove,
-	isFF2 = $.browser.mozilla && (parseFloat($.browser.version) < 1.9);
-
-//Helper functions and ui object
-$.ui = {
-	version: "1.7.1",
-
-	// $.ui.plugin is deprecated.  Use the proxy pattern instead.
-	plugin: {
-		add: function(module, option, set) {
-			var proto = $.ui[module].prototype;
-			for(var i in set) {
-				proto.plugins[i] = proto.plugins[i] || [];
-				proto.plugins[i].push([option, set[i]]);
-			}
-		},
-		call: function(instance, name, args) {
-			var set = instance.plugins[name];
-			if(!set || !instance.element[0].parentNode) { return; }
-
-			for (var i = 0; i < set.length; i++) {
-				if (instance.options[set[i][0]]) {
-					set[i][1].apply(instance.element, args);
-				}
-			}
-		}
-	},
-
-	contains: function(a, b) {
-		return document.compareDocumentPosition
-			? a.compareDocumentPosition(b) & 16
-			: a !== b && a.contains(b);
-	},
-
-	hasScroll: function(el, a) {
-
-		//If overflow is hidden, the element might have extra content, but the user wants to hide it
-		if ($(el).css('overflow') == 'hidden') { return false; }
-
-		var scroll = (a && a == 'left') ? 'scrollLeft' : 'scrollTop',
-			has = false;
-
-		if (el[scroll] > 0) { return true; }
-
-		// TODO: determine which cases actually cause this to happen
-		// if the element doesn't have the scroll set, see if it's possible to
-		// set the scroll
-		el[scroll] = 1;
-		has = (el[scroll] > 0);
-		el[scroll] = 0;
-		return has;
-	},
-
-	isOverAxis: function(x, reference, size) {
-		//Determines when x coordinate is over "b" element axis
-		return (x > reference) && (x < (reference + size));
-	},
-
-	isOver: function(y, x, top, left, height, width) {
-		//Determines when x, y coordinates is over "b" element
-		return $.ui.isOverAxis(y, top, height) && $.ui.isOverAxis(x, left, width);
-	},
-
-	keyCode: {
-		BACKSPACE: 8,
-		CAPS_LOCK: 20,
-		COMMA: 188,
-		CONTROL: 17,
-		DELETE: 46,
-		DOWN: 40,
-		END: 35,
-		ENTER: 13,
-		ESCAPE: 27,
-		HOME: 36,
-		INSERT: 45,
-		LEFT: 37,
-		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
-	}
-};
-
-// WAI-ARIA normalization
-if (isFF2) {
-	var attr = $.attr,
-		removeAttr = $.fn.removeAttr,
-		ariaNS = "http://www.w3.org/2005/07/aaa",
-		ariaState = /^aria-/,
-		ariaRole = /^wairole:/;
-
-	$.attr = function(elem, name, value) {
-		var set = value !== undefined;
-
-		return (name == 'role'
-			? (set
-				? attr.call(this, elem, name, "wairole:" + value)
-				: (attr.apply(this, arguments) || "").replace(ariaRole, ""))
-			: (ariaState.test(name)
-				? (set
-					? elem.setAttributeNS(ariaNS,
-						name.replace(ariaState, "aaa:"), value)
-					: attr.call(this, elem, name.replace(ariaState, "aaa:")))
-				: attr.apply(this, arguments)));
-	};
-
-	$.fn.removeAttr = function(name) {
-		return (ariaState.test(name)
-			? this.each(function() {
-				this.removeAttributeNS(ariaNS, name.replace(ariaState, ""));
-			}) : removeAttr.call(this, name));
-	};
-}
-
-//jQuery plugins
-$.fn.extend({
-	remove: function() {
-		// Safari has a native remove event which actually removes DOM elements,
-		// so we have to use triggerHandler instead of trigger (#3037).
-		$("*", this).add(this).each(function() {
-			$(this).triggerHandler("remove");
-		});
-		return _remove.apply(this, arguments );
-	},
-
-	enableSelection: function() {
-		return this
-			.attr('unselectable', 'off')
-			.css('MozUserSelect', '')
-			.unbind('selectstart.ui');
-	},
-
-	disableSelection: function() {
-		return this
-			.attr('unselectable', 'on')
-			.css('MozUserSelect', 'none')
-			.bind('selectstart.ui', function() { return false; });
-	},
-
-	scrollParent: function() {
-		var scrollParent;
-		if(($.browser.msie && (/(static|relative)/).test(this.css('position'))) || (/absolute/).test(this.css('position'))) {
-			scrollParent = this.parents().filter(function() {
-				return (/(relative|absolute|fixed)/).test($.curCSS(this,'position',1)) && (/(auto|scroll)/).test($.curCSS(this,'overflow',1)+$.curCSS(this,'overflow-y',1)+$.curCSS(this,'overflow-x',1));
-			}).eq(0);
-		} else {
-			scrollParent = this.parents().filter(function() {
-				return (/(auto|scroll)/).test($.curCSS(this,'overflow',1)+$.curCSS(this,'overflow-y',1)+$.curCSS(this,'overflow-x',1));
-			}).eq(0);
-		}
-
-		return (/fixed/).test(this.css('position')) || !scrollParent.length ? $(document) : scrollParent;
-	}
-});
-
-
-//Additional selectors
-$.extend($.expr[':'], {
-	data: function(elem, i, match) {
-		return !!$.data(elem, match[3]);
-	},
-
-	focusable: function(element) {
-		var nodeName = element.nodeName.toLowerCase(),
-			tabIndex = $.attr(element, 'tabindex');
-		return (/input|select|textarea|button|object/.test(nodeName)
-			? !element.disabled
-			: 'a' == nodeName || 'area' == nodeName
-				? element.href || !isNaN(tabIndex)
-				: !isNaN(tabIndex))
-			// the element and all of its ancestors must be visible
-			// the browser may report that the area is hidden
-			&& !$(element)['area' == nodeName ? 'parents' : 'closest'](':hidden').length;
-	},
-
-	tabbable: function(element) {
-		var tabIndex = $.attr(element, 'tabindex');
-		return (isNaN(tabIndex) || tabIndex >= 0) && $(element).is(':focusable');
-	}
-});
-
-
-// $.widget is a factory to create jQuery plugins
-// taking some boilerplate code out of the plugin code
-function getter(namespace, plugin, method, args) {
-	function getMethods(type) {
-		var methods = $[namespace][plugin][type] || [];
-		return (typeof methods == 'string' ? methods.split(/,?\s+/) : methods);
-	}
-
-	var methods = getMethods('getter');
-	if (args.length == 1 && typeof args[0] == 'string') {
-		methods = methods.concat(getMethods('getterSetter'));
-	}
-	return ($.inArray(method, methods) != -1);
-}
-
-$.widget = function(name, prototype) {
-	var namespace = name.split(".")[0];
-	name = name.split(".")[1];
-
-	// create plugin method
-	$.fn[name] = function(options) {
-		var isMethodCall = (typeof options == 'string'),
-			args = Array.prototype.slice.call(arguments, 1);
-
-		// prevent calls to internal methods
-		if (isMethodCall && options.substring(0, 1) == '_') {
-			return this;
-		}
-
-		// handle getter methods
-		if (isMethodCall && getter(namespace, name, options, args)) {
-			var instance = $.data(this[0], name);
-			return (instance ? instance[options].apply(instance, args)
-				: undefined);
-		}
-
-		// handle initialization and non-getter methods
-		return this.each(function() {
-			var instance = $.data(this, name);
-
-			// constructor
-			(!instance && !isMethodCall &&
-				$.data(this, name, new $[namespace][name](this, options))._init());
-
-			// method call
-			(instance && isMethodCall && $.isFunction(instance[options]) &&
-				instance[options].apply(instance, args));
-		});
-	};
-
-	// create widget constructor
-	$[namespace] = $[namespace] || {};
-	$[namespace][name] = function(element, options) {
-		var self = this;
-
-		this.namespace = namespace;
-		this.widgetName = name;
-		this.widgetEventPrefix = $[namespace][name].eventPrefix || name;
-		this.widgetBaseClass = namespace + '-' + name;
-
-		this.options = $.extend({},
-			$.widget.defaults,
-			$[namespace][name].defaults,
-			$.metadata && $.metadata.get(element)[name],
-			options);
-
-		this.element = $(element)
-			.bind('setData.' + name, function(event, key, value) {
-				if (event.target == element) {
-					return self._setData(key, value);
-				}
-			})
-			.bind('getData.' + name, function(event, key) {
-				if (event.target == element) {
-					return self._getData(key);
-				}
-			})
-			.bind('remove', function() {
-				return self.destroy();
-			});
-	};
-
-	// add widget prototype
-	$[namespace][name].prototype = $.extend({}, $.widget.prototype, prototype);
-
-	// TODO: merge getter and getterSetter properties from widget prototype
-	// and plugin prototype
-	$[namespace][name].getterSetter = 'option';
-};
-
-$.widget.prototype = {
-	_init: function() {},
-	destroy: function() {
-		this.element.removeData(this.widgetName)
-			.removeClass(this.widgetBaseClass + '-disabled' + ' ' + this.namespace + '-state-disabled')
-			.removeAttr('aria-disabled');
-	},
-
-	option: function(key, value) {
-		var options = key,
-			self = this;
-
-		if (typeof key == "string") {
-			if (value === undefined) {
-				return this._getData(key);
-			}
-			options = {};
-			options[key] = value;
-		}
-
-		$.each(options, function(key, value) {
-			self._setData(key, value);
-		});
-	},
-	_getData: function(key) {
-		return this.options[key];
-	},
-	_setData: function(key, value) {
-		this.options[key] = value;
-
-		if (key == 'disabled') {
-			this.element
-				[value ? 'addClass' : 'removeClass'](
-					this.widgetBaseClass + '-disabled' + ' ' +
-					this.namespace + '-state-disabled')
-				.attr("aria-disabled", value);
-		}
-	},
-
-	enable: function() {
-		this._setData('disabled', false);
-	},
-	disable: function() {
-		this._setData('disabled', true);
-	},
-
-	_trigger: function(type, event, data) {
-		var callback = this.options[type],
-			eventName = (type == this.widgetEventPrefix
-				? type : this.widgetEventPrefix + type);
-
-		event = $.Event(event);
-		event.type = eventName;
-
-		// copy original event properties over to the new event
-		// this would happen if we could call $.event.fix instead of $.Event
-		// but we don't have a way to force an event to be fixed multiple times
-		if (event.originalEvent) {
-			for (var i = $.event.props.length, prop; i;) {
-				prop = $.event.props[--i];
-				event[prop] = event.originalEvent[prop];
-			}
-		}
-
-		this.element.trigger(event, data);
-
-		return !($.isFunction(callback) && callback.call(this.element[0], event, data) === false
-			|| event.isDefaultPrevented());
-	}
-};
-
-$.widget.defaults = {
-	disabled: false
-};
-
-
-/** Mouse Interaction Plugin **/
-
-$.ui.mouse = {
-	_mouseInit: function() {
-		var self = this;
-
-		this.element
-			.bind('mousedown.'+this.widgetName, function(event) {
-				return self._mouseDown(event);
-			})
-			.bind('click.'+this.widgetName, function(event) {
-				if(self._preventClickEvent) {
-					self._preventClickEvent = false;
-					event.stopImmediatePropagation();
-					return false;
-				}
-			});
-
-		// Prevent text selection in IE
-		if ($.browser.msie) {
-			this._mouseUnselectable = this.element.attr('unselectable');
-			this.element.attr('unselectable', 'on');
-		}
-
-		this.started = false;
-	},
-
-	// TODO: make sure destroying one instance of mouse doesn't mess with
-	// other instances of mouse
-	_mouseDestroy: function() {
-		this.element.unbind('.'+this.widgetName);
-
-		// Restore text selection in IE
-		($.browser.msie
-			&& this.element.attr('unselectable', this._mouseUnselectable));
-	},
-
-	_mouseDown: function(event) {
-		// don't let more than one widget handle mouseStart
-		// TODO: figure out why we have to use originalEvent
-		event.originalEvent = event.originalEvent || {};
-		if (event.originalEvent.mouseHandled) { return; }
-
-		// we may have missed mouseup (out of window)
-		(this._mouseStarted && this._mouseUp(event));
-
-		this._mouseDownEvent = event;
-
-		var self = this,
-			btnIsLeft = (event.which == 1),
-			elIsCancel = (typeof this.options.cancel == "string" ? $(event.target).parents().add(event.target).filter(this.options.cancel).length : false);
-		if (!btnIsLeft || elIsCancel || !this._mouseCapture(event)) {
-			return true;
-		}
-
-		this.mouseDelayMet = !this.options.delay;
-		if (!this.mouseDelayMet) {
-			this._mouseDelayTimer = setTimeout(function() {
-				self.mouseDelayMet = true;
-			}, this.options.delay);
-		}
-
-		if (this._mouseDistanceMet(event) && this._mouseDelayMet(event)) {
-			this._mouseStarted = (this._mouseStart(event) !== false);
-			if (!this._mouseStarted) {
-				event.preventDefault();
-				return true;
-			}
-		}
-
-		// these delegates are required to keep context
-		this._mouseMoveDelegate = function(event) {
-			return self._mouseMove(event);
-		};
-		this._mouseUpDelegate = function(event) {
-			return self._mouseUp(event);
-		};
-		$(document)
-			.bind('mousemove.'+this.widgetName, this._mouseMoveDelegate)
-			.bind('mouseup.'+this.widgetName, this._mouseUpDelegate);
-
-		// preventDefault() is used to prevent the selection of text here -
-		// however, in Safari, this causes select boxes not to be selectable
-		// anymore, so this fix is needed
-		($.browser.safari || event.preventDefault());
-
-		event.originalEvent.mouseHandled = true;
-		return true;
-	},
-
-	_mouseMove: function(event) {
-		// IE mouseup check - mouseup happened when mouse was out of window
-		if ($.browser.msie && !event.button) {
-			return this._mouseUp(event);
-		}
-
-		if (this._mouseStarted) {
-			this._mouseDrag(event);
-			return event.preventDefault();
-		}
-
-		if (this._mouseDistanceMet(event) && this._mouseDelayMet(event)) {
-			this._mouseStarted =
-				(this._mouseStart(this._mouseDownEvent, event) !== false);
-			(this._mouseStarted ? this._mouseDrag(event) : this._mouseUp(event));
-		}
-
-		return !this._mouseStarted;
-	},
-
-	_mouseUp: function(event) {
-		$(document)
-			.unbind('mousemove.'+this.widgetName, this._mouseMoveDelegate)
-			.unbind('mouseup.'+this.widgetName, this._mouseUpDelegate);
-
-		if (this._mouseStarted) {
-			this._mouseStarted = false;
-			this._preventClickEvent = (event.target == this._mouseDownEvent.target);
-			this._mouseStop(event);
-		}
-
-		return false;
-	},
-
-	_mouseDistanceMet: function(event) {
-		return (Math.max(
-				Math.abs(this._mouseDownEvent.pageX - event.pageX),
-				Math.abs(this._mouseDownEvent.pageY - event.pageY)
-			) >= this.options.distance
-		);
-	},
-
-	_mouseDelayMet: function(event) {
-		return this.mouseDelayMet;
-	},
-
-	// These are placeholder methods, to be overriden by extending plugin
-	_mouseStart: function(event) {},
-	_mouseDrag: function(event) {},
-	_mouseStop: function(event) {},
-	_mouseCapture: function(event) { return true; }
-};
-
-$.ui.mouse.defaults = {
-	cancel: null,
-	distance: 1,
-	delay: 0
-};
-
-})(jQuery);
diff --git a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/multipart/style.css b/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/multipart/style.css
deleted file mode 100755
index fbf08c24..00000000
--- a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/multipart/style.css
+++ /dev/null
@@ -1,705 +0,0 @@
-/********************************************
-   AUTHOR:  			Erwin Aligam 
-   WEBSITE:   			http://www.styleshout.com/
-   TEMPLATE NAME: 	Techmania 1.0
-	TEMPLATE CODE: 	S-0003
-    VERSION:         1.1          	
- *******************************************/
-	/********************************************
-   HTML ELEMENTS
-********************************************/ /* Top elements */
-	/** { margin:0; padding: 0; }*/
-body {
-	background-color: #000;
-	color: #555;
-	font: 78%/ 1.6 Verdana, 'Trebuchet MS', arial, sans-serif;
-	text-align: center;
-	margin: 15px 0;
-}
-
-/* links */
-a {
-	color: #213540;
-	background: inherit;
-	text-decoration: none;
-}
-
-a:hover {
-	color: #3e4255;
-	text-decoration: underline;
-	background: inherit;
-}
-
-/* headers */
-h1,h2,h3 {
-	font-family: 'Trebuchet MS', Arial, sans-serif;
-	font-weight: bold;
-}
-
-h1 {
-	font-size: 1.5em;
-	margin: 10px 15px;
-}
-
-h2 {
-	font-size: 1.3em;
-	text-transform: uppercase;
-	color: #339900;
-	margin: 10px 15px;
-}
-
-h3 {
-	font-size: 1.1em;
-	color: #333;
-	margin: 16px 0 0 18px;
-}
-
-h1,h2,h3 {
-	padding: 0;
-}
-
-p {
-	line-height: 1.4em;
-	padding: 0 15px;
-}
-
-p.error {
-	color: #CC0033;
-}
-
-ul,ol {
-	margin: 10px 6px;
-	padding: 0 15px;
-	color: #006699;
-}
-
-ul span,ol span {
-	color: #666666;
-}
-
-/* images */
-img {
-	border: 2px solid #CCC;
-}
-
-img.float-right {
-	margin: 5px 0px 10px 10px;
-}
-
-img.float-left {
-	margin: 5px 10px 10px 0px;
-}
-
-code {
-	margin: 5px 0;
-	padding: 10px;
-	text-align: left;
-	display: block;
-	overflow: auto;
-	font: 500 1em/ 1.5em 'Lucida Console', 'courier new', monospace;
-	/* white-space: pre; */
-	background: #FAFAFA;
-	border: 1px solid #EAEAEA;
-	border-left: 5px solid #72A545;
-}
-
-acronym {
-	cursor: help;
-	border-bottom: 1px solid #777;
-}
-
-blockquote {
-	margin: 15px;
-	padding: 0 0 0 32px;
-	background: #FAFAFA url(quote.gif) no-repeat 5px 10px !important;
-	background-position: 8px 10px;
-	border: 1px solid #EAEAEA;
-	border-left: 5px solid #72A545;
-	font-weight: bold;
-}
-
-/* form elements */
-fieldset {
-	margin: 12px 12px 18px;
-	padding-left: 6px;
-	border: 1px solid #004080;
-	color: #006699;
-}
-
-fieldset fieldset {
-	border: 1px solid #9ea190;
-	margin: 17px 14px;
-}
-
-form {
-	margin: 10px 15px;
-	padding: 0;
-}
-
-label {
-	font-weight: bold;
-	margin: 5px 3px 0 0;
-	width: 160px;
-	text-align: right;
-	float: left;
-}
-
-legend {
-	font-size: 1.2em;
-	padding: 0 12px;
-	font-weight: 900;
-	background-color: #F9F9F9;
-}
-
-fieldset fieldset legend {
-	font-size: 1em;
-	color: #1a2129;
-	padding: 0 18px;
-	margin-left: 75px;
-}
-
-input {
-	padding: 3px;
-	margin: 4px 0;
-	border: 1px solid #CFCED3;
-	font: normal 1em Verdana, sans-serif;
-	color: #777;
-}
-
-textarea {
-	width: 400px;
-	padding: 4px;
-	font: normal 1em Verdana, sans-serif;
-	border: 1px solid #eee;
-	height: 100px;
-	display: block;
-	color: #777;
-}
-
-input.button {
-	margin: 0;
-	font: bold 12px Arial, Sans-serif;
-	border: 1px solid #EAEAEA;
-	padding: 3px 4px;
-	background: #CCC url(buttonbg.gif) repeat-x left bottom;
-	color: #333; /* color: #339900; */
-	cursor: pointer;
-}
-
-input.submitbutton {
-	background-color: #006699;
-	color: #FFF;
-	background-image: none;
-	font-weight: 900;
-	border: 1px solid #EAEAEA;
-	margin: 0 0 0 200px;
-}
-
-/* search */
-#sidebar #search {
-	background: #f2f2f2;
-	margin: 0 15px;
-	padding: 5px 0;
-}
-
-#sidebar #search img {
-	vertical-align: bottom;
-}
-
-#sidebar #search .textbox {
-	background: #FFF url(input.png) no-repeat top left;
-	border: 1px solid #EAEAEA;
-	font-size: 11px;
-	padding: 3px;
-	width: 110px;
-}
-
-#sidebar #search input.searchbutton {
-	margin: 0;
-	font: bold 100% Arial, Sans-serif;
-	border: 1px solid #CCC;
-	background: #CCC url(buttonbg.gif) repeat-x left bottom;
-	padding: 1px;
-	height: 25px;
-	color: #333;
-	width: 55px;
-}
-
-/*****************************
-      LAYOUT 
-******************************/
-#wrap {
-	margin: 0 auto;
-	padding: 0;
-	text-align: left;
-	background-color: #FFF;
-	width: 790px;
-}
-
-#content-wrap {
-	clear: both;
-	margin: 0;
-	padding: 0;
-	width: 790px;
-}
-
-/* header */
-#header {
-	position: relative;
-	clear: left;
-	width: 790px;
-	height: 137px;
-	margin: 0;
-	padding: 0;
-	background: #000 url(headerbg.jpg) no-repeat left bottom;
-}
-
-#header h1#logo-text {
-	float: right;
-	margin: 39px 58px 0 0;
-	padding: 0;
-	font: bolder 3.2em 'Trebuchet MS', Arial, Sans-serif;
-	letter-spacing: -2px;
-	color: #FFF;
-	text-transform: none;
-	/* change the values of top and right to adjust the position of the logo*/
-	top: 35px;
-	right: 30px;
-}
-
-#header h2#slogan {
-	float: right;
-	margin: 0 38px 0 0;
-	padding: 0;
-	font: bold 1.5em 'Trebuchet MS', Arial, Sans-serif;
-	text-transform: none;
-	letter-spacing: 1px;
-	color: #FFF;
-	clear: both;
-	text-align: right;
-}
-
-#header h1#logo-text span {
-	color: #CFCED3;
-}
-
-/* menu tabs */
-#header #header-tabs {
-	position: absolute;
-	top: 0;
-	left: 0;
-	width: 100%;
-	height: 25px;
-	background: #000;
-	font: bold 1.1em Verdana, Tahoma, 'Trebuchet MS', Sans-serif;
-}
-
-#header-tabs ul {
-	margin: 0;
-	padding: 2px 0px 0px 0px;
-	list-style: none;
-}
-
-#header-tabs li {
-	display: inline;
-	margin: 0;
-	padding: 0;
-}
-
-#header-tabs a {
-	float: left;
-	background: url(tableft.gif) no-repeat left top;
-	margin: 0;
-	padding: 0 0 0 4px;
-	text-decoration: none;
-}
-
-#header-tabs a span {
-	float: left;
-	display: block;
-	background: url(tabright.gif) no-repeat right top;
-	padding: 7px 15px 4px 8px;
-	color: #CCC;
-}
-
-/* Commented Backslash Hack hides rule from IE5-Mac \*/
-#header-tabs a span {
-	float: none;
-}
-
-/* End IE5-Mac hack */
-#header-tabs a:hover span {
-	color: #FFF;
-}
-
-#header-tabs a:hover {
-	background-position: 0% -42px;
-}
-
-#header-tabs a:hover span {
-	background-position: 100% -42px;
-}
-
-#header-tabs #current a {
-	background-position: 0% -42px;
-}
-
-#header-tabs #current a span {
-	background-position: 100% -42px;
-	color: #FFF;
-}
-
-/* main content */
-#main {
-	width: 748px;
-	margin: 0;
-	padding: 8px 16px;
-	background-color: #F9F9F9;
-	border-left: 5px solid #000;
-	border-right: 5px solid #000;
-}
-
-#main h1 {
-	padding: 8px 0 3px 25px;
-	text-transform: none;
-	border-bottom: 2px solid #f2f2f2;
-	color: #339900;
-}
-
-/* sidebar */
-#sidebar { /*	float: right;
-	width: 245px;
-	margin: 0 0 10px 0; padding: 0;
-	background-color: inherit;	*/
-	display: none;
-}
-
-#sidebar h1 {
-	padding: 8px 0px 3px 25px;
-	background: url(square_arrow.gif) no-repeat 0% .7em;
-	text-transform: none;
-	color: #339900;
-}
-
-#sidebar ul.sidemenu {
-	list-style: none;
-	margin: 10px 15px;
-	padding: 0;
-}
-
-#sidebar ul.sidemenu li {
-	margin-bottom: 1px;
-	border: 1px solid #f2f2f2;
-}
-
-#sidebar ul.sidemenu a {
-	display: block;
-	font-weight: bold;
-	color: #333;
-	text-decoration: none;
-	padding: 2px 5px 2px 10px;
-	background: #f2f2f2;
-	border-left: 5px solid #CCC;
-	min-height: 18px;
-}
-
-* html body #sidebar ul.sidemenu a {
-	height: 18px;
-}
-
-#sidebar ul.sidemenu a:hover {
-	padding: 2px 5px 2px 10px;
-	background: #f2f2f2;
-	color: #339900;
-	border-left: 5px solid #72A545;
-}
-
-/* footer */
-#footer {
-	clear: both;
-	height: 40px;
-	color: #CCC;
-	background: #000;
-	margin: 0;
-	font-size: 92%;
-}
-
-#footer a {
-	text-decoration: none;
-	font-weight: bold;
-	color: #FFF;
-}
-
-#footer #footer-left {
-	width: 68%;
-	float: left;
-	text-align: left;
-	margin: 0;
-	padding: 10px;
-}
-
-#footer #footer-right {
-	width: 25%;
-	float: right;
-	text-align: right;
-	margin: 0;
-	padding: 10px;
-}
-
-/* alignment classes */
-.float-left {
-	float: left;
-}
-
-.float-right {
-	float: right;
-}
-
-.align-left {
-	text-align: left;
-}
-
-.align-right {
-	text-align: right;
-}
-
-/* additional classes */
-.clear {
-	clear: both;
-}
-
-.hide {
-	display: none;
-}
-
-.gray {
-	color: #CCC;
-}
-
-.comments {
-	color: #333;
-	background: #FFF;
-	text-align: right;
-	border-top: 1px dashed #EFF0F1;
-	border-bottom: 1px dashed #EFF0F1;
-	padding: 5px 0;
-	margin-top: 20px;
-}
-
-html {
-	min-height: 100.1%;
-}
-
-/* ------ one ------------*/
-body .mainText {
-	font-family: Arial, Helvetica, sans-serif;
-	font-size: 12px;
-}
-
-#demoText h1,.mainText h1 {
-	font-size: 130%;
-	color: #0099FF;
-	text-decoration: none;
-	font-family: Arial, Helvetica, sans-serif;
-	margin: 5px 4px 5px 24px;
-	background: none;
-	padding: 0;
-	border: none;
-	text-transform: capitalize;
-}
-
-.mainText h2 {
-	font-size: 110%;
-	color: #000033;
-	font-family: Arial, Helvetica, sans-serif;
-	text-decoration: none;
-	background: none;
-	margin: 4px 32px 6px 22px;
-	text-transform: capitalize;
-}
-
-.mainText h3 {
-	font-size: 120%;
-	font-weight: 900;
-	margin: 14px 0 0 0;
-	text-align: center;
-	color: #000033;
-}
-
-.mainText table {
-	width: 95%;
-	border: 1px solid #0099FF;
-	border-collapse: collapse;
-	margin: 18px 7px;
-}
-
-.mainText table td {
-	background-color: #99CCFF;
-	color: #000033;
-	padding: 4px;
-}
-
-.mainText table th {
-	background-color: #000033;
-	color: #99CCFF;
-	padding: 4px;
-}
-
-.mainText .linkPar a {
-	color: #000033;
-	text-decoration: underline;
-}
-
-.mainText .linkPar a:hover {
-	color: #660033;
-	text-decoration: none;
-	font-weight: 900;
-}
-
-.pusher {
-	cursor: pointer;
-	padding: 3px 10px 3px 22px;
-	font-weight: 900;
-	font-size: 14px;
-}
-
-/* ------------- form specific styles are here  -------------- */
-fieldset {
-	margin: 0;
-	border: 1px solid #C3DE00;
-	padding: 10px;
-	/*border:none;
-padding:0;*/
-	color: #7563A5;
-}
-
-legend {
-	background-color: #FFFFFF;
-	text-align: center;
-	color: #097981;
-	padding: 0 12px;
-}
-
-label {
-	text-align: right;
-	width: 298px;
-	border-right: 1px dotted #099;
-	padding-right: 5px;
-	margin: 0 0 8px 0;
-	float: left;
-	clear: left;
-	display: block;
-	color: #7563A5;
-}
-
-label.checkbox,label.textarea {
-	border: none;
-}
-
-label.lgfield {
-	border: none;
-	text-align: center;
-	clear: both;
-	float: none;
-	width: 100%;
-}
-
-fieldset input,fieldset select,fieldset textarea {
-	margin-left: 10px;
-	margin-bottom: 8px;
-}
-
-select.longfield {
-	margin: 0 0 0 115px;
-}
-
-input [type="radio"],input [type="checkbox"] {
-	margin: 2px 0 0 4px;
-}
-
-textarea {
-	width: 250px;
-	float: left;
-}
-
-/*Get Help Form Styles*/
-p.formDisclaimer {
-	text-align: center;
-	margin: 32px 24px 12px 0;
-	font-style: italic;
-}
-
-div.buttonWrapper {
-	margin: 28px 0 14px 0;
-	clear: both;
-	text-align: center;
-}
-
-.formspacer {
-	height: 1em;
-	clear: both;
-}
-
-.hideField {
-	display: none;
-}
-
-.pushOpen {
-	height: 18em;
-}
-
-/* ----- error message for field validation ----- */
-#stepForm label.warning {
-	text-align: left;
-	width: auto;
-	padding: 0;
-	margin: 0 0 0 10px;
-	float: none;
-	clear: none;
-	display: inline;
-	color: #CC3366;
-	font-size: 10px;
-	border: none;
-	border-top: 1px dotted #CC3366;
-}
-
-div.requiredNotice {
-	width: 140px;
-	float: right;
-	margin: 0 24px 0 0;
-	padding: 0;
-}
-
-h3.stepHeader {
-	text-align: left;
-	font-size: 16px;
-	font-weight: bold;
-	margin: 0 0 24px 24px;
-	color: #676cac;
-}
-
-ul#stepForm,ul#stepForm li {
-	margin: 0;
-	padding: 0;
-}
-
-ul#stepForm li {
-	list-style: none;
-}
-
-/* Form Buttons  */
-input.submitbutton,.nextbutton,.prevbutton {
-	width: 100px;
-	height: 40px;
-	background-color: #663399;
-	padding: 4px;
-	border: 1px solid #339933;
-	cursor: pointer;
-	text-align: center;
-	color: #FFFFFF;
-	margin: 7px;
-}
-
-input.submitbutton {
-	background-color: #006699;
-}
\ No newline at end of file
diff --git a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/radio-checkbox-select-demo.html b/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/radio-checkbox-select-demo.html
deleted file mode 100755
index f8e128b2..00000000
--- a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/radio-checkbox-select-demo.html
+++ /dev/null
@@ -1,149 +0,0 @@
-<!DOCTYPE html>
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
-<title>Test for jQuery validate() plugin</title>
-
-<link rel="stylesheet" type="text/css" media="screen" href="css/screen.css" />
-
-<script src="../lib/jquery.js" type="text/javascript"></script>
-<script src="../lib/jquery.metadata.js" type="text/javascript"></script>
-<script src="../jquery.validate.js" type="text/javascript"></script>
-
-<script type="text/javascript">
-// only for demo purposes
-$.validator.setDefaults({
-	submitHandler: function() {
-		alert("submitted!");
-	}
-});
-	
-$.metadata.setType("attr", "validate");
-
-$(document).ready(function() {
-	$("#form1").validate();
-	$("#selecttest").validate();
-});
-</script>
-
-<style type="text/css">
-.block { display: block; }
-form.cmxform label.error { display: none; }	
-</style>
-
-</head>
-<body>
-
-<h1 id="banner"><a href="http://bassistance.de/jquery-plugins/jquery-plugin-validation/">jQuery Validation Plugin</a> Demo</h1>
-<div id="main">
-
-<form class="cmxform" id="form1" method="get" action="">
-	<fieldset>
-		<legend>Validating a form with a radio and checkbox buttons</legend>
-		<fieldset>
-			<legend>Gender</legend>
-			<label for="gender_male">
-				<input  type="radio" id="gender_male" value="m" name="gender" validate="required:true" />
-				Male
-			</label>
-			<label for="gender_female">
-				<input  type="radio" id="gender_female" value="f" name="gender"/>
-				Female
-			</label>
-			<label for="gender" class="error">Please select your gender</label>
-		</fieldset>
-		<fieldset>
-			<legend>Family</legend>
-			<label for="family_single">
-				<input  type="radio" id="family_single" value="s" name="family" validate="required:true" />
-				Single
-			</label>
-			<label for="family_married">
-				<input  type="radio" id="family_married" value="m" name="family" />
-				Married
-			</label>
-			<label for="family_other">
-				<input  type="radio" id="family_other" value="o" name="family" />
-				Other
-			</label>
-			<label for="family" class="error">Please select your family status.</label>
-		</fieldset>
-		<p>
-			<label for="agree">Please agree to our policy</label>
-			<input type="checkbox" class="checkbox" id="agree" name="agree" validate="required:true" />
-			<br/>
-			<label for="agree" class="error block">Please agree to our policy!</label>
-		</p>
-		<fieldset>
-			<legend>Spam</legend>
-			<label for="spam_email">
-				<input type="checkbox" class="checkbox" id="spam_email" value="email" name="spam[]" validate="required:true, minlength:2" />
-				Spam via E-Mail
-			</label>
-			<label for="spam_phone">
-				<input type="checkbox" class="checkbox" id="spam_phone" value="phone" name="spam[]" />
-				Spam via Phone
-			</label>
-			<label for="spam_mail">
-				<input type="checkbox" class="checkbox" id="spam_mail" value="mail" name="spam[]" />
-				Spam via Mail
-			</label>
-			<label for="spam[]" class="error">Please select at least two types of spam.</label>
-		</fieldset>
-		<p>
-			<input class="submit" type="submit" value="Submit"/>
-		</p>
-	</fieldset>
-</form>
-
-<form id="selecttest">
-	<h2>Some tests with selects</h2>
-	<p>
-		<label for="jungle">Please select a jungle noun</label><br/>
-		<select id="jungle" name="jungle" title="Please select something!" validate="required:true">
-			<option value=""></option>
-			<option value="1">Buga</option>
-			<option value="2">Baga</option>
-			<option value="3">Oi</option>
-		</select>
-	</p>
-	
-	<p>
-		<label for="fruit">Please select at least two fruits</label><br/>
-		<select id="fruit" name="fruit" title="Please select at least two fruits" validate="required:true, minlength:2" multiple="multiple">
-			<option value="b">Banana</option>
-			<option value="a">Apple</option>
-			<option value="p">Peach</option>
-			<option value="t">Turtle</option>
-		</select>
-	</p>
-	
-	<p>
-		<label for="vegetables">Please select no more than two vergetables</label><br/>
-		<select id="vegetables" name="vegetables" title="Please select no more than two vergetables" validate="required:true, maxlength:2" multiple="multiple">
-			<option value="p">Potato</option>
-			<option value="t">Tomato</option>
-			<option value="s">Salad</option>
-		</select>
-	</p>
-	
-	<p>
-		<label for="cars">Please select at least two cars, but no more than three</label><br/>
-		<select id="cars" name="cars" title="Please select at least two cars, but no more than three" validate="required:true, rangelength:[2,3]" multiple="multiple">
-			<option value="m_sl">Mercedes SL</option>
-			<option value="o_c">Opel Corsa</option>
-			<option value="vw_p">VW Polo</option>
-			<option value="t_s">Titanic Skoda</option>
-		</select>
-	</p>
-	
-	<p><input type="submit" value="Validate Selecttests"/></p>
-</form>
-
-<a href="index.html">Back to main page</a>
-
-</div>
-
-
-</body>
-</html>
diff --git a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/tabs/index.html b/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/tabs/index.html
deleted file mode 100755
index fe58499d..00000000
--- a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/tabs/index.html
+++ /dev/null
@@ -1,152 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
-<title>jQuery UI tabs integration demo</title>
-
-<link rel="stylesheet" type="text/css" media="screen" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.1/themes/base/jquery-ui.css" />
-
-<script src="../../lib/jquery.js" type="text/javascript"></script>
-<script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.1/jquery-ui.min.js" type="text/javascript"></script>
-<script src="../../jquery.validate.js" type="text/javascript"></script>
-
-<script id="demo" type="text/javascript">
-$(document).ready(function() {
-	var tabs = $("#tabs").tabs();
-	var validator = $("#signupform").validate({
-		groups: {
-			birthdate: "birthdateDay birthdateMonth birthdateYear"
-		},
-		errorPlacement: function(label, element) {
-			if (/^birthdate/.test(element[0].name)) {
-				label.insertAfter("#birthdateYear");
-			} else {
-				label.insertAfter(element);
-			}
-		}
-	});
-	
-	// validate the other two selects when one changes to update the whole group
-	var birthdaySelects = $("#birthdateGroup select").click(function() {
-		birthdaySelects.not(this).valid();
-	})
-	
-	// overwrite focusInvalid to activate tab with invalid elements
-	validator.focusInvalid = function() {
-		if( this.settings.focusInvalid ) {
-			try {
-				var focused = $(this.findLastActive() || this.errorList.length && this.errorList[0].element || []).filter(":visible");
-				tabs.tabs("select", tabs.find(">div").index(focused.parent().parent()));
-				focused.focus();
-			} catch(e) {
-				// ignore IE throwing errors when focusing hidden elements
-			}
-		}
-	};
-});
-</script>
-
-<style>
-	body { font-size: 65.2% }
-	label { display: inline-block; width: 8em; }
-	label.error { color: red; margin-left: 0.5em; width: 20em; }
-</style>
-
-</head>
-<body>
-	
-<form id="signupform">
-	
-	<div id="tabs">
-		<ul>
-			<li><a href="#logindata">Login data</a></li>
-			<li><a href="#personaldata">Personal data</a></li>
-			<li><a href="#subscriptions">Subscriptions</a></li>
-		</ul>
-		<div id="logindata">
-			<p>
-				<label for="username">Username</label>
-				<input id="username" name="username" class="required" minlength="3" maxlength="20" type="text" />
-			</p>
-			<p>
-				<label for="email">Email address</label>
-				<input id="email" name="email" class="required email" type="text" />
-			</p>
-			<p>
-				<label for="password">Password</label>
-				<input name="password" type="password" class="required" id="password" minlength="4" maxlength="50" />
-			</p>
-			<p>
-				<label for="confirmpassword">Confirm Password</label>
-				<input name="confirmpassword" type="password" class="required" equalTo="#password" id="confirmpassword" />
-			</p>
-		</div>
-		<div id="personaldata">
-			<p>
-				<label for="street">Street</label>
-				<input id="street" name="street" class="required" minlength="3" maxlength="50" type="text" />
-			</p>
-			<p>
-				<label for="city">City</label>
-				<input id="city" name="city" class="required" minlength="3" maxlength="50" type="text" />
-			</p>
-			<p id="birthdateGroup">
-				<label for="birthdateDay">Birthdate</label>
-				<select id="birthdateDay" name="birthdateDay" class="required">
-					<option value="">Day</option>
-					<option>1</option>
-					<option>2</option>
-					<option>3</option>
-					<option>...</option>
-				</select>
-				<select id="birthdateMonth" name="birthdateMonth" class="required">
-					<option value="">Month</option>
-					<option>1</option>
-					<option>2</option>
-					<option>3</option>
-					<option>4</option>
-					<option>5</option>
-					<option>6</option>
-					<option>7</option>
-					<option>8</option>
-					<option>9</option>
-					<option>10</option>
-					<option>11</option>
-					<option>12</option>
-				</select>
-				<select id="birthdateYear" name="birthdateYear" class="required">
-					<option value="">Year</option>
-					<option>1950</option>
-					<option>1951</option>
-					<option>1952</option>
-					<option>1953</option>
-					<option>1954</option>
-					<option>1955</option>
-					<option>...</option>
-				</select>
-			</p>
-		</div>
-		<div id="subscriptions">
-			<p>
-				<label for="weekly">Weekly Newsletter</label>
-				<input id="weekly" name="weekly" type="checkbox" />
-			</p>
-			<p>
-				<label for="updates">Product Updates</label>
-				<input id="updates" name="updates" type="checkbox" />
-			</p>
-			<p>
-				<label for="terms">Terms and conditions</label>
-				<input id="terms" name="terms" class="required" type="checkbox" />
-			</p>
-		</div>
-	</div>
-
-	<input type="submit" />
-</form>
-
-
-
-
-</body>
-</html>
\ No newline at end of file
diff --git a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/themerollered.html b/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/themerollered.html
deleted file mode 100755
index fe58a1af..00000000
--- a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/themerollered.html
+++ /dev/null
@@ -1,229 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
-<title>jQuery validation plug-in - ThemeRolldered demo</title>
-
-<link rel="stylesheet" type="text/css" media="screen" href="http://code.jquery.com/ui/jquery-ui-git.css" />
-
-<style type="text/css">
-body { font-size: 62.5%; }
-label { display: inline-block; width: 100px; }
-legend { padding: 0.5em; }
-fieldset fieldset label { display: block; }
-#commentForm { width: 500px; }
-#commentForm label { width: 250px; }
-#commentForm label.error, #commentForm button.submit { margin-left: 253px; }
-#signupForm { width: 670px; }
-#signupForm label.error {
-	margin-left: 10px;
-	width: auto;
-	display: inline;
-}
-#newsletter_topics label.error {
-	display: none;
-	margin-left: 103px;
-}
-</style>
-
-</head>
-<body>
-
-<form class="cmxform" id="commentForm" method="get" action="">
-	<fieldset class="ui-widget ui-widget-content ui-corner-all">
-		<legend class="ui-widget ui-widget-header ui-corner-all">Please provide your name, email address (won't be published) and a comment</legend>
-		<p>
-			<label for="cname">Name (required, at least 2 characters)</label>
-			<input id="cname" name="name" class="ui-widget-content" minlength="2" required type="text" />
-		<p>
-			<label for="cemail">E-Mail (required)</label>
-			<input id="cemail" name="email" class="ui-widget-content" type="email" required />
-		</p>
-		<p>
-			<label for="curl">URL (optional)</label>
-			<input id="curl" name="url" class="ui-widget-content" value="" type="url" />
-		</p>
-		<p>
-			<label for="ccomment">Your comment (required)</label>
-			<textarea id="ccomment" name="comment" class="ui-widget-content" required></textarea>
-		</p>
-		<p>
-			<button class="submit" type="submit">Submit</button>
-		</p>
-	</fieldset>
-</form>
-
-<form class="cmxform" id="signupForm" method="get" action="">
-	<fieldset class="ui-widget ui-widget-content ui-corner-all">
-		<legend class="ui-widget ui-widget-header ui-corner-all">Validating a complete form</legend>
-		<p>
-			<label for="firstname">Firstname</label>
-			<input id="firstname" name="firstname" type="text" />
-		</p>
-		<p>
-			<label for="lastname">Lastname</label>
-			<input id="lastname" name="lastname" type="text" />
-		</p>
-		<p>
-			<label for="username">Username</label>
-			<input id="username" name="username" type="text" />
-		</p>
-		<p>
-			<label for="password">Password</label>
-			<input id="password" name="password" type="password" />
-		</p>
-		<p>
-			<label for="confirm_password">Confirm password</label>
-			<input id="confirm_password" name="confirm_password" type="password" />
-		</p>
-		<p>
-			<label for="email">Email</label>
-			<input id="email" name="email" type="email" />
-		</p>
-		<p>
-			<label for="agree">Please agree to our policy</label>
-			<input type="checkbox" class="checkbox" id="agree" name="agree" />
-		</p>
-		<p>
-			<label for="newsletter">I'd like to receive the newsletter</label>
-			<input type="checkbox" class="checkbox" id="newsletter" name="newsletter" />
-		</p>
-		<fieldset id="newsletter_topics" class="ui-widget-content ui-corner-all">
-			<legend class="ui-widget-header ui-corner-all">Topics (select at least two) - note: would be hidden when newsletter isn't selected, but is visible here for the demo</legend>
-			<label for="topic_marketflash">
-				<input type="checkbox" id="topic_marketflash" value="marketflash" name="topic" />
-				Marketflash
-			</label>
-			<label for="topic_fuzz">
-				<input type="checkbox" id="topic_fuzz" value="fuzz" name="topic" />
-				Latest fuzz
-			</label>
-			<label for="topic_digester">
-				<input type="checkbox" id="topic_digester" value="digester" name="topic" />
-				Mailing list digester
-			</label>
-			<label for="topic" class="error">Please select at least two topics you'd like to receive.</label>
-		</fieldset>
-		<p>
-			<button class="submit" type="submit">Submit</button>
-		</p>
-	</fieldset>
-</form>
-
-<script src="../lib/jquery-1.6.1.js" type="text/javascript"></script>
-<script src="../jquery.validate.js" type="text/javascript"></script>
-<script src="http://code.jquery.com/ui/jquery-ui-git.js"></script>
-<script type="text/javascript">
-$.validator.setDefaults({
-	submitHandler: function() { alert("submitted!"); },
-	showErrors: function(map, list) {
-		// there's probably a way to simplify this
-		var focussed = document.activeElement;
-		if (focussed && $(focussed).is("input, textarea")) {
-			$(this.currentForm).tooltip("close", { currentTarget: focussed }, true)
-		}
-		this.currentElements.removeAttr("title").removeClass("ui-state-highlight");
-		$.each(list, function(index, error) {
-			$(error.element).attr("title", error.message).addClass("ui-state-highlight");
-		});
-		if (focussed && $(focussed).is("input, textarea")) {
-			$(this.currentForm).tooltip("open", { target: focussed });
-		}
-	}
-});
-
-(function() {
-	// use custom tooltip; disable animations for now to work around lack of refresh method on tooltip
-	$("#commentForm, #signupForm").tooltip({
-		show: false,
-		hide: false
-	});
-
-	// validate the comment form when it is submitted
-	$("#commentForm").validate();
-
-	// validate signup form on keyup and submit
-	$("#signupForm").validate({
-		rules: {
-			firstname: "required",
-			lastname: "required",
-			username: {
-				required: true,
-				minlength: 2
-			},
-			password: {
-				required: true,
-				minlength: 5
-			},
-			confirm_password: {
-				required: true,
-				minlength: 5,
-				equalTo: "#password"
-			},
-			email: {
-				required: true,
-				email: true
-			},
-			topic: {
-				required: "#newsletter:checked",
-				minlength: 2
-			},
-			agree: "required"
-		},
-		messages: {
-			firstname: "Please enter your firstname",
-			lastname: "Please enter your lastname",
-			username: {
-				required: "Please enter a username",
-				minlength: "Your username must consist of at least 2 characters"
-			},
-			password: {
-				required: "Please provide a password",
-				minlength: "Your password must be at least 5 characters long"
-			},
-			confirm_password: {
-				required: "Please provide a password",
-				minlength: "Your password must be at least 5 characters long",
-				equalTo: "Please enter the same password as above"
-			},
-			email: "Please enter a valid email address",
-			agree: "Please accept our policy"
-		}
-	});
-
-	// propose username by combining first- and lastname
-	$("#username").focus(function() {
-		var firstname = $("#firstname").val();
-		var lastname = $("#lastname").val();
-		if(firstname && lastname && !this.value) {
-			this.value = firstname + "." + lastname;
-		}
-	});
-
-	//code to hide topic selection, disable for demo
-	var newsletter = $("#newsletter");
-	// newsletter topics are optional, hide at first
-	var inital = newsletter.is(":checked");
-	var topics = $("#newsletter_topics")[inital ? "removeClass" : "addClass"]("gray");
-	var topicInputs = topics.find("input").attr("disabled", !inital);
-	// show when newsletter is checked
-	newsletter.click(function() {
-		topics[this.checked ? "removeClass" : "addClass"]("gray");
-		topicInputs.attr("disabled", !this.checked);
-	});
-
-	$("#signupForm input:not(:submit)").addClass("ui-widget-content");
-
-	$(":submit").button();
-})();
-</script>
-<script src="http://jqueryui.com/themeroller/themeswitchertool/"></script>
-<script>
-$.fn.themeswitcher && $('<div/>').css({
-		position: "absolute",
-		right: 10,
-		top: 10
-	}).appendTo(document.body).themeswitcher();
-</script>
-</body>
-</html>
\ No newline at end of file
diff --git a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/tinymce/index.html b/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/tinymce/index.html
deleted file mode 100755
index 54ac852e..00000000
--- a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/tinymce/index.html
+++ /dev/null
@@ -1,76 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<title>jQuery Validation plugin: integration with TinyMCE</title>
-
-<script type="text/javascript" src="../../lib/jquery.js"></script>
-<script type="text/javascript" src="../../jquery.validate.js"></script>
-<script type="text/javascript" src="tiny_mce.js"></script>
-<script type="text/javascript">
-	tinyMCE.init({
-		mode : "textareas",
-		theme : "simple",
-		// update validation status on change
-		onchange_callback: function(editor) {
-			tinyMCE.triggerSave();
-			$("#" + editor.id).valid();
-		}
-	});
-	$(function() {
-		var validator = $("#myform").submit(function() {
-			// update underlying textarea before submit validation
-			tinyMCE.triggerSave();
-		}).validate({
-			ignore: "",
-			rules: {
-				title: "required",
-				content: "required"
-			},
-			errorPlacement: function(label, element) {
-				// position error label after generated textarea
-				if (element.is("textarea")) {
-					label.insertAfter(element.next());
-				} else {
-					label.insertAfter(element)
-				}
-			}
-		});
-		validator.focusInvalid = function() {
-			// put focus on tinymce on submit validation
-			if( this.settings.focusInvalid ) {
-				try {
-					var toFocus = $(this.findLastActive() || this.errorList.length && this.errorList[0].element || []);
-					if (toFocus.is("textarea")) {
-						tinyMCE.get(toFocus.attr("id")).focus();
-					} else {
-						toFocus.filter(":visible").focus();
-					}
-				} catch(e) {
-					// ignore IE throwing errors when focusing hidden elements
-				}
-			}
-		}
-	})
-</script>
-<!-- /TinyMCE -->
-
-</head>
-<body>
-
-<form id="myform" action="">
-	<h3>TinyMCE and Validation Plugin integration example</h3>
-
-	<label>Some other field</label>
-	<input name="title" />
-
-	<br/>
-	
-	<label>Some richt text</label>
-	<textarea id="content" name="content" rows="15" cols="80" style="width: 80%"></textarea>
-
-	<br />
-	<input type="submit" name="save" value="Submit" />
-</form>
-
-</body>
-</html>
diff --git a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/tinymce/themes/simple/editor_template.js b/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/tinymce/themes/simple/editor_template.js
deleted file mode 100755
index d19fb53f..00000000
--- a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/tinymce/themes/simple/editor_template.js
+++ /dev/null
@@ -1 +0,0 @@
-(function(){var DOM=tinymce.DOM;tinymce.ThemeManager.requireLangPack('simple');tinymce.create('tinymce.themes.SimpleTheme',{init:function(ed,url){var t=this,states=['Bold','Italic','Underline','Strikethrough','InsertUnorderedList','InsertOrderedList'],s=ed.settings;t.editor=ed;ed.onInit.add(function(){ed.onNodeChange.add(function(ed,cm){tinymce.each(states,function(c){cm.get(c.toLowerCase()).setActive(ed.queryCommandState(c));});});ed.dom.loadCSS(url+"/skins/"+s.skin+"/content.css");});DOM.loadCSS((s.editor_css?ed.documentBaseURI.toAbsolute(s.editor_css):'')||url+"/skins/"+s.skin+"/ui.css");},renderUI:function(o){var t=this,n=o.targetNode,ic,tb,ed=t.editor,cf=ed.controlManager,sc;n=DOM.insertAfter(DOM.create('span',{id:ed.id+'_container','class':'mceEditor '+ed.settings.skin+'SimpleSkin'}),n);n=sc=DOM.add(n,'table',{cellPadding:0,cellSpacing:0,'class':'mceLayout'});n=tb=DOM.add(n,'tbody');n=DOM.add(tb,'tr');n=ic=DOM.add(DOM.add(n,'td'),'div',{'class':'mceIframeContainer'});n=DOM.add(DOM.add(tb,'tr',{'class':'last'}),'td',{'class':'mceToolbar mceLast',align:'center'});tb=t.toolbar=cf.createToolbar("tools1");tb.add(cf.createButton('bold',{title:'simple.bold_desc',cmd:'Bold'}));tb.add(cf.createButton('italic',{title:'simple.italic_desc',cmd:'Italic'}));tb.add(cf.createButton('underline',{title:'simple.underline_desc',cmd:'Underline'}));tb.add(cf.createButton('strikethrough',{title:'simple.striketrough_desc',cmd:'Strikethrough'}));tb.add(cf.createSeparator());tb.add(cf.createButton('undo',{title:'simple.undo_desc',cmd:'Undo'}));tb.add(cf.createButton('redo',{title:'simple.redo_desc',cmd:'Redo'}));tb.add(cf.createSeparator());tb.add(cf.createButton('cleanup',{title:'simple.cleanup_desc',cmd:'mceCleanup'}));tb.add(cf.createSeparator());tb.add(cf.createButton('insertunorderedlist',{title:'simple.bullist_desc',cmd:'InsertUnorderedList'}));tb.add(cf.createButton('insertorderedlist',{title:'simple.numlist_desc',cmd:'InsertOrderedList'}));tb.renderTo(n);return{iframeContainer:ic,editorContainer:ed.id+'_container',sizeContainer:sc,deltaHeight:-20};},getInfo:function(){return{longname:'Simple theme',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',version:tinymce.majorVersion+"."+tinymce.minorVersion}}});tinymce.ThemeManager.add('simple',tinymce.themes.SimpleTheme);})();
\ No newline at end of file
diff --git a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/tinymce/themes/simple/img/icons.gif b/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/tinymce/themes/simple/img/icons.gif
deleted file mode 100755
index 16af141f..00000000
--- a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/tinymce/themes/simple/img/icons.gif
+++ /dev/null
Binary files differdiff --git a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/tinymce/themes/simple/langs/en.js b/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/tinymce/themes/simple/langs/en.js
deleted file mode 100755
index 6f095311..00000000
--- a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/tinymce/themes/simple/langs/en.js
+++ /dev/null
@@ -1,11 +0,0 @@
-tinyMCE.addI18n('en.simple',{
-bold_desc:"Bold (Ctrl+B)",
-italic_desc:"Italic (Ctrl+I)",
-underline_desc:"Underline (Ctrl+U)",
-striketrough_desc:"Strikethrough",
-bullist_desc:"Unordered list",
-numlist_desc:"Ordered list",
-undo_desc:"Undo (Ctrl+Z)",
-redo_desc:"Redo (Ctrl+Y)",
-cleanup_desc:"Cleanup messy code"
-});
\ No newline at end of file
diff --git a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/tinymce/themes/simple/skins/default/ui.css b/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/tinymce/themes/simple/skins/default/ui.css
deleted file mode 100755
index 32feae62..00000000
--- a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/tinymce/themes/simple/skins/default/ui.css
+++ /dev/null
@@ -1,32 +0,0 @@
-/* Reset */
-.defaultSimpleSkin table, .defaultSimpleSkin tbody, .defaultSimpleSkin a, .defaultSimpleSkin img, .defaultSimpleSkin tr, .defaultSimpleSkin div, .defaultSimpleSkin td, .defaultSimpleSkin iframe, .defaultSimpleSkin span, .defaultSimpleSkin * {border:0; margin:0; padding:0; background:transparent; white-space:nowrap; text-decoration:none; font-weight:normal; cursor:default; color:#000}
-
-/* Containers */
-.defaultSimpleSkin {position:relative}
-.defaultSimpleSkin table.mceLayout {background:#F0F0EE; border:1px solid #CCC;}
-.defaultSimpleSkin iframe {display:block; background:#FFF; border-bottom:1px solid #CCC;}
-.defaultSimpleSkin .mceToolbar {height:24px;}
-
-/* Layout */
-.defaultSimpleSkin span.mceIcon, .defaultSimpleSkin img.mceIcon {display:block; width:20px; height:20px}
-.defaultSimpleSkin .mceIcon {background:url(../../img/icons.gif) no-repeat 20px 20px}
-
-/* Button */
-.defaultSimpleSkin .mceButton {display:block; border:1px solid #F0F0EE; width:20px; height:20px}
-.defaultSimpleSkin a.mceButtonEnabled:hover {border:1px solid #0A246A; background-color:#B2BBD0}
-.defaultSimpleSkin a.mceButtonActive {border:1px solid #0A246A; background-color:#C2CBE0}
-.defaultSimpleSkin .mceButtonDisabled span {opacity:0.3; -ms-filter:'alpha(opacity=30)'; filter:alpha(opacity=30)}
-
-/* Separator */
-.defaultSimpleSkin .mceSeparator {display:block; background:url(../../img/icons.gif) -180px 0; width:2px; height:20px; margin:0 2px 0 4px}
-
-/* Theme */
-.defaultSimpleSkin span.mce_bold {background-position:0 0}
-.defaultSimpleSkin span.mce_italic {background-position:-60px 0}
-.defaultSimpleSkin span.mce_underline {background-position:-140px 0}
-.defaultSimpleSkin span.mce_strikethrough {background-position:-120px 0}
-.defaultSimpleSkin span.mce_undo {background-position:-160px 0}
-.defaultSimpleSkin span.mce_redo {background-position:-100px 0}
-.defaultSimpleSkin span.mce_cleanup {background-position:-40px 0}
-.defaultSimpleSkin span.mce_insertunorderedlist {background-position:-20px 0}
-.defaultSimpleSkin span.mce_insertorderedlist {background-position:-80px 0}
diff --git a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/tinymce/tiny_mce.js b/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/tinymce/tiny_mce.js
deleted file mode 100755
index 55aba6e3..00000000
--- a/wqflask/wqflask/static/new/packages/ValidationPlugin/demo/tinymce/tiny_mce.js
+++ /dev/null
@@ -1 +0,0 @@
-var tinymce={majorVersion:'3',minorVersion:'2.1.1',releaseDate:'2008-11-27',_init:function(){var t=this,d=document,w=window,na=navigator,ua=na.userAgent,i,nl,n,base,p,v;t.isOpera=w.opera&&opera.buildNumber;t.isWebKit=/WebKit/.test(ua);t.isOldWebKit=t.isWebKit&&!w.getSelection().getRangeAt;t.isIE=!t.isWebKit&&!t.isOpera&&(/MSIE/gi).test(ua)&&(/Explorer/gi).test(na.appName);t.isIE6=t.isIE&&/MSIE [56]/.test(ua);t.isGecko=!t.isWebKit&&/Gecko/.test(ua);t.isMac=ua.indexOf('Mac')!=-1;t.isAir=/adobeair/i.test(ua);if(w.tinyMCEPreInit){t.suffix=tinyMCEPreInit.suffix;t.baseURL=tinyMCEPreInit.base;t.query=tinyMCEPreInit.query;return;}t.suffix='';nl=d.getElementsByTagName('base');for(i=0;i<nl.length;i++){if(v=nl[i].href){if(/^https?:\/\/[^\/]+$/.test(v))v+='/';base=v?v.match(/.*\//)[0]:'';}}function getBase(n){if(n.src&&/tiny_mce(|_dev|_src|_gzip|_jquery|_prototype).js/.test(n.src)){if(/_(src|dev)\.js/g.test(n.src))t.suffix='_src';if((p=n.src.indexOf('?'))!=-1)t.query=n.src.substring(p+1);t.baseURL=n.src.substring(0,n.src.lastIndexOf('/'));if(base&&t.baseURL.indexOf('://')==-1)t.baseURL=base+t.baseURL;return t.baseURL;}return null;};nl=d.getElementsByTagName('script');for(i=0;i<nl.length;i++){if(getBase(nl[i]))return;}n=d.getElementsByTagName('head')[0];if(n){nl=n.getElementsByTagName('script');for(i=0;i<nl.length;i++){if(getBase(nl[i]))return;}}return;},is:function(o,t){var n=typeof(o);if(!t)return n!='undefined';if(t=='array'&&(o instanceof Array))return true;return n==t;},each:function(o,cb,s){var n,l;if(!o)return 0;s=s||o;if(typeof(o.length)!='undefined'){for(n=0,l=o.length;n<l;n++){if(cb.call(s,o[n],n,o)===false)return 0;}}else{for(n in o){if(o.hasOwnProperty(n)){if(cb.call(s,o[n],n,o)===false)return 0;}}}return 1;},map:function(a,f){var o=[];tinymce.each(a,function(v){o.push(f(v));});return o;},grep:function(a,f){var o=[];tinymce.each(a,function(v){if(!f||f(v))o.push(v);});return o;},inArray:function(a,v){var i,l;if(a){for(i=0,l=a.length;i<l;i++){if(a[i]===v)return i;}}return-1;},extend:function(o,e){var i,a=arguments;for(i=1;i<a.length;i++){e=a[i];tinymce.each(e,function(v,n){if(typeof(v)!=='undefined')o[n]=v;});}return o;},trim:function(s){return(s?''+s:'').replace(/^\s*|\s*$/g,'');},create:function(s,p){var t=this,sp,ns,cn,scn,c,de=0;s=/^((static) )?([\w.]+)(:([\w.]+))?/.exec(s);cn=s[3].match(/(^|\.)(\w+)$/i)[2];ns=t.createNS(s[3].replace(/\.\w+$/,''));if(ns[cn])return;if(s[2]=='static'){ns[cn]=p;if(this.onCreate)this.onCreate(s[2],s[3],ns[cn]);return;}if(!p[cn]){p[cn]=function(){};de=1;}ns[cn]=p[cn];t.extend(ns[cn].prototype,p);if(s[5]){sp=t.resolve(s[5]).prototype;scn=s[5].match(/\.(\w+)$/i)[1];c=ns[cn];if(de){ns[cn]=function(){return sp[scn].apply(this,arguments);};}else{ns[cn]=function(){this.parent=sp[scn];return c.apply(this,arguments);};}ns[cn].prototype[cn]=ns[cn];t.each(sp,function(f,n){ns[cn].prototype[n]=sp[n];});t.each(p,function(f,n){if(sp[n]){ns[cn].prototype[n]=function(){this.parent=sp[n];return f.apply(this,arguments);};}else{if(n!=cn)ns[cn].prototype[n]=f;}});}t.each(p['static'],function(f,n){ns[cn][n]=f;});if(this.onCreate)this.onCreate(s[2],s[3],ns[cn].prototype);},walk:function(o,f,n,s){s=s||this;if(o){if(n)o=o[n];tinymce.each(o,function(o,i){if(f.call(s,o,i,n)===false)return false;tinymce.walk(o,f,n,s);});}},createNS:function(n,o){var i,v;o=o||window;n=n.split('.');for(i=0;i<n.length;i++){v=n[i];if(!o[v])o[v]={};o=o[v];}return o;},resolve:function(n,o){var i,l;o=o||window;n=n.split('.');for(i=0,l=n.length;i<l;i++){o=o[n[i]];if(!o)break;}return o;},addUnload:function(f,s){var t=this,w=window;f={func:f,scope:s||this};if(!t.unloads){function unload(){var li=t.unloads,o,n;if(li){for(n in li){o=li[n];if(o&&o.func)o.func.call(o.scope,1);}if(w.detachEvent){w.detachEvent('onbeforeunload',fakeUnload);w.detachEvent('onunload',unload);}else if(w.removeEventListener)w.removeEventListener('unload',unload,false);t.unloads=o=li=w=unload=null;if(window.CollectGarbage)window.CollectGarbage();}};function fakeUnload(){var d=document;if(d.readyState=='interactive'){function stop(){d.detachEvent('onstop',stop);unload();d=null;};d.attachEvent('onstop',stop);window.setTimeout(function(){d.detachEvent('onstop',stop);},0);}};if(w.attachEvent){w.attachEvent('onunload',unload);w.attachEvent('onbeforeunload',fakeUnload);}else if(w.addEventListener)w.addEventListener('unload',unload,false);t.unloads=[f];}else t.unloads.push(f);return f;},removeUnload:function(f){var u=this.unloads,r=null;tinymce.each(u,function(o,i){if(o&&o.func==f){u.splice(i,1);r=f;return false;}});return r;},explode:function(s,d){return s?tinymce.map(s.split(d||','),tinymce.trim):s;},_addVer:function(u){var v;if(!this.query)return u;v=(u.indexOf('?')==-1?'?':'&')+this.query;if(u.indexOf('#')==-1)return u+v;return u.replace('#',v+'#');}};window.tinymce=tinymce;tinymce._init();tinymce.create('tinymce.util.Dispatcher',{scope:null,listeners:null,Dispatcher:function(s){this.scope=s||this;this.listeners=[];},add:function(cb,s){this.listeners.push({cb:cb,scope:s||this.scope});return cb;},addToTop:function(cb,s){this.listeners.unshift({cb:cb,scope:s||this.scope});return cb;},remove:function(cb){var l=this.listeners,o=null;tinymce.each(l,function(c,i){if(cb==c.cb){o=cb;l.splice(i,1);return false;}});return o;},dispatch:function(){var s,a=arguments,i,li=this.listeners,c;for(i=0;i<li.length;i++){c=li[i];s=c.cb.apply(c.scope,a);if(s===false)break;}return s;}});(function(){var each=tinymce.each;tinymce.create('tinymce.util.URI',{URI:function(u,s){var t=this,o,a,b;s=t.settings=s||{};if(/^(mailto|news|javascript|about):/i.test(u)||/^\s*#/.test(u)){t.source=u;return;}if(u.indexOf('/')===0&&u.indexOf('//')!==0)u=(s.base_uri?s.base_uri.protocol||'http':'http')+'://mce_host'+u;if(u.indexOf(':/')===-1&&u.indexOf('//')!==0)u=(s.base_uri.protocol||'http')+'://mce_host'+t.toAbsPath(s.base_uri.path,u);u=u.replace(/@@/g,'(mce_at)');u=/^(?:(?![^:@]+:[^:@\/]*@)([^:\/?#.]+):)?(?:\/\/)?((?:(([^:@]*):?([^:@]*))?@)?([^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/.exec(u);each(["source","protocol","authority","userInfo","user","password","host","port","relative","path","directory","file","query","anchor"],function(v,i){var s=u[i];if(s)s=s.replace(/\(mce_at\)/g,'@@');t[v]=s;});if(b=s.base_uri){if(!t.protocol)t.protocol=b.protocol;if(!t.userInfo)t.userInfo=b.userInfo;if(!t.port&&t.host=='mce_host')t.port=b.port;if(!t.host||t.host=='mce_host')t.host=b.host;t.source='';}},setPath:function(p){var t=this;p=/^(.*?)\/?(\w+)?$/.exec(p);t.path=p[0];t.directory=p[1];t.file=p[2];t.source='';t.getURI();},toRelative:function(u){var t=this,o;if(u==="./")return u;u=new tinymce.util.URI(u,{base_uri:t});if((u.host!='mce_host'&&t.host!=u.host&&u.host)||t.port!=u.port||t.protocol!=u.protocol)return u.getURI();o=t.toRelPath(t.path,u.path);if(u.query)o+='?'+u.query;if(u.anchor)o+='#'+u.anchor;return o;},toAbsolute:function(u,nh){var u=new tinymce.util.URI(u,{base_uri:this});return u.getURI(this.host==u.host?nh:0);},toRelPath:function(base,path){var items,bp=0,out='',i,l;base=base.substring(0,base.lastIndexOf('/'));base=base.split('/');items=path.split('/');if(base.length>=items.length){for(i=0,l=base.length;i<l;i++){if(i>=items.length||base[i]!=items[i]){bp=i+1;break;}}}if(base.length<items.length){for(i=0,l=items.length;i<l;i++){if(i>=base.length||base[i]!=items[i]){bp=i+1;break;}}}if(bp==1)return path;for(i=0,l=base.length-(bp-1);i<l;i++)out+="../";for(i=bp-1,l=items.length;i<l;i++){if(i!=bp-1)out+="/"+items[i];else out+=items[i];}return out;},toAbsPath:function(base,path){var i,nb=0,o=[];base=base.split('/');path=path.split('/');each(base,function(k){if(k)o.push(k);});base=o;for(i=path.length-1,o=[];i>=0;i--){if(path[i].length==0||path[i]==".")continue;if(path[i]=='..'){nb++;continue;}if(nb>0){nb--;continue;}o.push(path[i]);}i=base.length-nb;if(i<=0)return'/'+o.reverse().join('/');return'/'+base.slice(0,i).join('/')+'/'+o.reverse().join('/');},getURI:function(nh){var s,t=this;if(!t.source||nh){s='';if(!nh){if(t.protocol)s+=t.protocol+'://';if(t.userInfo)s+=t.userInfo+'@';if(t.host)s+=t.host;if(t.port)s+=':'+t.port;}if(t.path)s+=t.path;if(t.query)s+='?'+t.query;if(t.anchor)s+='#'+t.anchor;t.source=s;}return t.source;}});})();(function(){var each=tinymce.each;tinymce.create('static tinymce.util.Cookie',{getHash:function(n){var v=this.get(n),h;if(v){each(v.split('&'),function(v){v=v.split('=');h=h||{};h[unescape(v[0])]=unescape(v[1]);});}return h;},setHash:function(n,v,e,p,d,s){var o='';each(v,function(v,k){o+=(!o?'':'&')+escape(k)+'='+escape(v);});this.set(n,o,e,p,d,s);},get:function(n){var c=document.cookie,e,p=n+"=",b;if(!c)return;b=c.indexOf("; "+p);if(b==-1){b=c.indexOf(p);if(b!=0)return null;}else b+=2;e=c.indexOf(";",b);if(e==-1)e=c.length;return unescape(c.substring(b+p.length,e));},set:function(n,v,e,p,d,s){document.cookie=n+"="+escape(v)+((e)?"; expires="+e.toGMTString():"")+((p)?"; path="+escape(p):"")+((d)?"; domain="+d:"")+((s)?"; secure":"");},remove:function(n,p){var d=new Date();d.setTime(d.getTime()-1000);this.set(n,'',d,p,d);}});})();tinymce.create('static tinymce.util.JSON',{serialize:function(o){var i,v,s=tinymce.util.JSON.serialize,t;if(o==null)return'null';t=typeof o;if(t=='string'){v='\bb\tt\nn\ff\rr\""\'\'\\\\';return'"'+o.replace(/([\u0080-\uFFFF\x00-\x1f\"])/g,function(a,b){i=v.indexOf(b);if(i+1)return'\\'+v.charAt(i+1);a=b.charCodeAt().toString(16);return'\\u'+'0000'.substring(a.length)+a;})+'"';}if(t=='object'){if(o instanceof Array){for(i=0,v='[';i<o.length;i++)v+=(i>0?',':'')+s(o[i]);return v+']';}v='{';for(i in o)v+=typeof o[i]!='function'?(v.length>1?',"':'"')+i+'":'+s(o[i]):'';return v+'}';}return''+o;},parse:function(s){try{return eval('('+s+')');}catch(ex){}}});tinymce.create('static tinymce.util.XHR',{send:function(o){var x,t,w=window,c=0;o.scope=o.scope||this;o.success_scope=o.success_scope||o.scope;o.error_scope=o.error_scope||o.scope;o.async=o.async===false?false:true;o.data=o.data||'';function get(s){x=0;try{x=new ActiveXObject(s);}catch(ex){}return x;};x=w.XMLHttpRequest?new XMLHttpRequest():get('Microsoft.XMLHTTP')||get('Msxml2.XMLHTTP');if(x){if(x.overrideMimeType)x.overrideMimeType(o.content_type);x.open(o.type||(o.data?'POST':'GET'),o.url,o.async);if(o.content_type)x.setRequestHeader('Content-Type',o.content_type);x.send(o.data);function ready(){if(!o.async||x.readyState==4||c++>10000){if(o.success&&c<10000&&x.status==200)o.success.call(o.success_scope,''+x.responseText,x,o);else if(o.error)o.error.call(o.error_scope,c>10000?'TIMED_OUT':'GENERAL',x,o);x=null;}else w.setTimeout(ready,10);};if(!o.async)return ready();t=w.setTimeout(ready,10);}}});(function(){var extend=tinymce.extend,JSON=tinymce.util.JSON,XHR=tinymce.util.XHR;tinymce.create('tinymce.util.JSONRequest',{JSONRequest:function(s){this.settings=extend({},s);this.count=0;},send:function(o){var ecb=o.error,scb=o.success;o=extend(this.settings,o);o.success=function(c,x){c=JSON.parse(c);if(typeof(c)=='undefined'){c={error:'JSON Parse error.'};}if(c.error)ecb.call(o.error_scope||o.scope,c.error,x);else scb.call(o.success_scope||o.scope,c.result);};o.error=function(ty,x){ecb.call(o.error_scope||o.scope,ty,x);};o.data=JSON.serialize({id:o.id||'c'+(this.count++),method:o.method,params:o.params});o.content_type='application/json';XHR.send(o);},'static':{sendRPC:function(o){return new tinymce.util.JSONRequest().send(o);}}});}());(function(){var each=tinymce.each,is=tinymce.is;var isWebKit=tinymce.isWebKit,isIE=tinymce.isIE;tinymce.create('tinymce.dom.DOMUtils',{doc:null,root:null,files:null,listeners:{},pixelStyles:/^(top|left|bottom|right|width|height|borderWidth)$/,cache:{},idPattern:/^#[\w]+$/,elmPattern:/^[\w_*]+$/,elmClassPattern:/^([\w_]*)\.([\w_]+)$/,props:{"for":"htmlFor","class":"className",className:"className",checked:"checked",disabled:"disabled",maxlength:"maxLength",readonly:"readOnly",selected:"selected",value:"value",id:"id",name:"name",type:"type"},DOMUtils:function(d,s){var t=this;t.doc=d;t.win=window;t.files={};t.cssFlicker=false;t.counter=0;t.boxModel=!tinymce.isIE||d.compatMode=="CSS1Compat";t.stdMode=d.documentMode===8;this.settings=s=tinymce.extend({keep_values:false,hex_colors:1,process_html:1},s);if(tinymce.isIE6){try{d.execCommand('BackgroundImageCache',false,true);}catch(e){t.cssFlicker=true;}}tinymce.addUnload(t.destroy,t);},getRoot:function(){var t=this,s=t.settings;return(s&&t.get(s.root_element))||t.doc.body;},getViewPort:function(w){var d,b;w=!w?this.win:w;d=w.document;b=this.boxModel?d.documentElement:d.body;return{x:w.pageXOffset||b.scrollLeft,y:w.pageYOffset||b.scrollTop,w:w.innerWidth||b.clientWidth,h:w.innerHeight||b.clientHeight};},getRect:function(e){var p,t=this,sr;e=t.get(e);p=t.getPos(e);sr=t.getSize(e);return{x:p.x,y:p.y,w:sr.w,h:sr.h};},getSize:function(e){var t=this,w,h;e=t.get(e);w=t.getStyle(e,'width');h=t.getStyle(e,'height');if(w.indexOf('px')===-1)w=0;if(h.indexOf('px')===-1)h=0;return{w:parseInt(w)||e.offsetWidth||e.clientWidth,h:parseInt(h)||e.offsetHeight||e.clientHeight};},getParent:function(n,f,r){var na,se=this.settings;n=this.get(n);if(se.strict_root)r=r||this.getRoot();if(is(f,'string')){na=f.toUpperCase();f=function(n){var s=false;if(n.nodeType==1&&na==='*'){s=true;return false;}each(na.split(','),function(v){if(n.nodeType==1&&((se.strict&&n.nodeName.toUpperCase()==v)||n.nodeName.toUpperCase()==v)){s=true;return false;}});return s;};}while(n){if(n==r)return null;if(f(n))return n;n=n.parentNode;}return null;},get:function(e){var n;if(e&&this.doc&&typeof(e)=='string'){n=e;e=this.doc.getElementById(e);if(e&&e.id!==n)return this.doc.getElementsByName(n)[1];}return e;},select:function(pa,s){var t=this,cs,c,pl,o=[],x,i,l,n,xp;s=t.get(s)||t.doc;if(s.querySelectorAll){if(s!=t.doc){i=s.id;s.id='_mc_tmp';pa='#_mc_tmp '+pa;}l=tinymce.grep(s.querySelectorAll(pa));s.id=i;return l;}if(!t.selectorRe)t.selectorRe=/^([\w\\*]+)?(?:#([\w\\]+))?(?:\.([\w\\\.]+))?(?:\[\@([\w\\]+)([\^\$\*!]?=)([\w\\]+)\])?(?:\:([\w\\]+))?/i;;if(tinymce.isAir){each(tinymce.explode(pa),function(v){if(!(xp=t.cache[v])){xp='';each(v.split(' '),function(v){v=t.selectorRe.exec(v);xp+=v[1]?'//'+v[1]:'//*';if(v[2])xp+="[@id='"+v[2]+"']";if(v[3]){each(v[3].split('.'),function(n){xp+="[@class = '"+n+"' or contains(concat(' ', @class, ' '), ' "+n+" ')]";});}});t.cache[v]=xp;}xp=t.doc.evaluate(xp,s,null,4,null);while(n=xp.iterateNext())o.push(n);});return o;}if(t.settings.strict){function get(s,n){return s.getElementsByTagName(n.toLowerCase());};}else{function get(s,n){return s.getElementsByTagName(n);};}if(t.elmPattern.test(pa)){x=get(s,pa);for(i=0,l=x.length;i<l;i++)o.push(x[i]);return o;}if(t.elmClassPattern.test(pa)){pl=t.elmClassPattern.exec(pa);x=get(s,pl[1]||'*');c=' '+pl[2]+' ';for(i=0,l=x.length;i<l;i++){n=x[i];if(n.className&&(' '+n.className+' ').indexOf(c)!==-1)o.push(n);}return o;}function collect(n){if(!n.mce_save){n.mce_save=1;o.push(n);}};function collectIE(n){if(!n.getAttribute('mce_save')){n.setAttribute('mce_save','1');o.push(n);}};function find(n,f,r){var i,l,nl=get(r,n);for(i=0,l=nl.length;i<l;i++)f(nl[i]);};each(pa.split(','),function(v,i){v=tinymce.trim(v);if(t.elmPattern.test(v)){each(get(s,v),function(n){collect(n);});return;}if(t.elmClassPattern.test(v)){x=t.elmClassPattern.exec(v);each(get(s,x[1]),function(n){if(t.hasClass(n,x[2]))collect(n);});return;}if(!(cs=t.cache[pa])){cs='x=(function(cf, s) {';pl=v.split(' ');each(pl,function(v){var p=t.selectorRe.exec(v);p[1]=p[1]||'*';cs+='find("'+p[1]+'", function(n) {';if(p[2])cs+='if (n.id !== "'+p[2]+'") return;';if(p[3]){cs+='var c = " " + n.className + " ";';cs+='if (';c='';each(p[3].split('.'),function(v){if(v)c+=(c?'||':'')+'c.indexOf(" '+v+' ") === -1';});cs+=c+') return;';}});cs+='cf(n);';for(i=pl.length-1;i>=0;i--)cs+='}, '+(i?'n':'s')+');';cs+='})';t.cache[pa]=cs=eval(cs);}cs(isIE?collectIE:collect,s);});each(o,function(n){if(isIE)n.removeAttribute('mce_save');else delete n.mce_save;});return o;},add:function(p,n,a,h,c){var t=this;return this.run(p,function(p){var e,k;e=is(n,'string')?t.doc.createElement(n):n;t.setAttribs(e,a);if(h){if(h.nodeType)e.appendChild(h);else t.setHTML(e,h);}return!c?p.appendChild(e):e;});},create:function(n,a,h){return this.add(this.doc.createElement(n),n,a,h,1);},createHTML:function(n,a,h){var o='',t=this,k;o+='<'+n;for(k in a){if(a.hasOwnProperty(k))o+=' '+k+'="'+t.encode(a[k])+'"';}if(tinymce.is(h))return o+'>'+h+'</'+n+'>';return o+' />';},remove:function(n,k){return this.run(n,function(n){var p,g;p=n.parentNode;if(!p)return null;if(k){each(n.childNodes,function(c){p.insertBefore(c.cloneNode(true),n);});}return p.removeChild(n);});},setStyle:function(n,na,v){var t=this;return t.run(n,function(e){var s,i;s=e.style;na=na.replace(/-(\D)/g,function(a,b){return b.toUpperCase();});if(t.pixelStyles.test(na)&&(tinymce.is(v,'number')||/^[\-0-9\.]+$/.test(v)))v+='px';switch(na){case'opacity':if(isIE){s.filter=v===''?'':"alpha(opacity="+(v*100)+")";if(!n.currentStyle||!n.currentStyle.hasLayout)s.display='inline-block';}s[na]=s['-moz-opacity']=s['-khtml-opacity']=v||'';break;case'float':isIE?s.styleFloat=v:s.cssFloat=v;break;default:s[na]=v||'';}if(t.settings.update_styles)t.setAttrib(e,'mce_style');});},getStyle:function(n,na,c){n=this.get(n);if(!n)return false;if(this.doc.defaultView&&c){na=na.replace(/[A-Z]/g,function(a){return'-'+a;});try{return this.doc.defaultView.getComputedStyle(n,null).getPropertyValue(na);}catch(ex){return null;}}na=na.replace(/-(\D)/g,function(a,b){return b.toUpperCase();});if(na=='float')na=isIE?'styleFloat':'cssFloat';if(n.currentStyle&&c)return n.currentStyle[na];return n.style[na];},setStyles:function(e,o){var t=this,s=t.settings,ol;ol=s.update_styles;s.update_styles=0;each(o,function(v,n){t.setStyle(e,n,v);});s.update_styles=ol;if(s.update_styles)t.setAttrib(e,s.cssText);},setAttrib:function(e,n,v){var t=this;if(!e||!n)return;if(t.settings.strict)n=n.toLowerCase();return this.run(e,function(e){var s=t.settings;switch(n){case"style":if(!is(v,'string')){each(v,function(v,n){t.setStyle(e,n,v);});return;}if(s.keep_values){if(v&&!t._isRes(v))e.setAttribute('mce_style',v,2);else e.removeAttribute('mce_style',2);}e.style.cssText=v;break;case"class":e.className=v||'';break;case"src":case"href":if(s.keep_values){if(s.url_converter)v=s.url_converter.call(s.url_converter_scope||t,v,n,e);t.setAttrib(e,'mce_'+n,v,2);}break;case"shape":e.setAttribute('mce_style',v);break;}if(is(v)&&v!==null&&v.length!==0)e.setAttribute(n,''+v,2);else e.removeAttribute(n,2);});},setAttribs:function(e,o){var t=this;return this.run(e,function(e){each(o,function(v,n){t.setAttrib(e,n,v);});});},getAttrib:function(e,n,dv){var v,t=this;e=t.get(e);if(!e||e.nodeType!==1)return false;if(!is(dv))dv='';if(/^(src|href|style|coords|shape)$/.test(n)){v=e.getAttribute("mce_"+n);if(v)return v;}if(isIE&&t.props[n]){v=e[t.props[n]];v=v&&v.nodeValue?v.nodeValue:v;}if(!v)v=e.getAttribute(n,2);if(n==='style'){v=v||e.style.cssText;if(v){v=t.serializeStyle(t.parseStyle(v));if(t.settings.keep_values&&!t._isRes(v))e.setAttribute('mce_style',v);}}if(isWebKit&&n==="class"&&v)v=v.replace(/(apple|webkit)\-[a-z\-]+/gi,'');if(isIE){switch(n){case'rowspan':case'colspan':if(v===1)v='';break;case'size':if(v==='+0'||v===20)v='';break;case'width':case'height':case'vspace':case'checked':case'disabled':case'readonly':if(v===0)v='';break;case'hspace':if(v===-1)v='';break;case'maxlength':case'tabindex':if(v===32768||v===2147483647||v==='32768')v='';break;case'compact':case'noshade':case'nowrap':if(v===65535)return n;return dv;case'shape':v=v.toLowerCase();break;default:if(n.indexOf('on')===0&&v)v=(''+v).replace(/^function\s+anonymous\(\)\s+\{\s+(.*)\s+\}$/,'$1');}}return(v!==undefined&&v!==null&&v!=='')?''+v:dv;},getPos:function(n){var t=this,x=0,y=0,e,d=t.doc,r;n=t.get(n);if(n&&isIE){n=n.getBoundingClientRect();e=t.boxModel?d.documentElement:d.body;x=t.getStyle(t.select('html')[0],'borderWidth');x=(x=='medium'||t.boxModel&&!t.isIE6)&&2||x;n.top+=t.win.self!=t.win.top?2:0;return{x:n.left+e.scrollLeft-x,y:n.top+e.scrollTop-x};}r=n;while(r){x+=r.offsetLeft||0;y+=r.offsetTop||0;r=r.offsetParent;}r=n;while(r){if(!/^table-row|inline.*/i.test(t.getStyle(r,"display",1))){x-=r.scrollLeft||0;y-=r.scrollTop||0;}r=r.parentNode;if(r==d.body)break;}return{x:x,y:y};},parseStyle:function(st){var t=this,s=t.settings,o={};if(!st)return o;function compress(p,s,ot){var t,r,b,l;t=o[p+'-top'+s];if(!t)return;r=o[p+'-right'+s];if(t!=r)return;b=o[p+'-bottom'+s];if(r!=b)return;l=o[p+'-left'+s];if(b!=l)return;o[ot]=l;delete o[p+'-top'+s];delete o[p+'-right'+s];delete o[p+'-bottom'+s];delete o[p+'-left'+s];};function compress2(ta,a,b,c){var t;t=o[a];if(!t)return;t=o[b];if(!t)return;t=o[c];if(!t)return;o[ta]=o[a]+' '+o[b]+' '+o[c];delete o[a];delete o[b];delete o[c];};st=st.replace(/&(#?[a-z0-9]+);/g,'&$1_MCE_SEMI_');each(st.split(';'),function(v){var sv,ur=[];if(v){v=v.replace(/_MCE_SEMI_/g,';');v=v.replace(/url\([^\)]+\)/g,function(v){ur.push(v);return'url('+ur.length+')';});v=v.split(':');sv=tinymce.trim(v[1]);sv=sv.replace(/url\(([^\)]+)\)/g,function(a,b){return ur[parseInt(b)-1];});sv=sv.replace(/rgb\([^\)]+\)/g,function(v){return t.toHex(v);});if(s.url_converter){sv=sv.replace(/url\([\'\"]?([^\)\'\"]+)[\'\"]?\)/g,function(x,c){return'url('+s.url_converter.call(s.url_converter_scope||t,t.decode(c),'style',null)+')';});}o[tinymce.trim(v[0]).toLowerCase()]=sv;}});compress("border","","border");compress("border","-width","border-width");compress("border","-color","border-color");compress("border","-style","border-style");compress("padding","","padding");compress("margin","","margin");compress2('border','border-width','border-style','border-color');if(isIE){if(o.border=='medium none')o.border='';}return o;},serializeStyle:function(o){var s='';each(o,function(v,k){if(k&&v){if(tinymce.isGecko&&k.indexOf('-moz-')===0)return;switch(k){case'color':case'background-color':v=v.toLowerCase();break;}s+=(s?' ':'')+k+': '+v+';';}});return s;},loadCSS:function(u){var t=this,d=t.doc;if(!u)u='';each(u.split(','),function(u){if(t.files[u])return;t.files[u]=true;t.add(t.select('head')[0],'link',{rel:'stylesheet',href:tinymce._addVer(u)});});},addClass:function(e,c){return this.run(e,function(e){var o;if(!c)return 0;if(this.hasClass(e,c))return e.className;o=this.removeClass(e,c);return e.className=(o!=''?(o+' '):'')+c;});},removeClass:function(e,c){var t=this,re;return t.run(e,function(e){var v;if(t.hasClass(e,c)){if(!re)re=new RegExp("(^|\\s+)"+c+"(\\s+|$)","g");v=e.className.replace(re,' ');return e.className=tinymce.trim(v!=' '?v:'');}return e.className;});},hasClass:function(n,c){n=this.get(n);if(!n||!c)return false;return(' '+n.className+' ').indexOf(' '+c+' ')!==-1;},show:function(e){return this.setStyle(e,'display','block');},hide:function(e){return this.setStyle(e,'display','none');},isHidden:function(e){e=this.get(e);return!e||e.style.display=='none'||this.getStyle(e,'display')=='none';},uniqueId:function(p){return(!p?'mce_':p)+(this.counter++);},setHTML:function(e,h){var t=this;return this.run(e,function(e){var x,i,nl,n,p,x;h=t.processHTML(h);if(isIE){function set(){try{e.innerHTML='<br />'+h;e.removeChild(e.firstChild);}catch(ex){while(e.firstChild)e.firstChild.removeNode();x=t.create('div');x.innerHTML='<br />'+h;each(x.childNodes,function(n,i){if(i)e.appendChild(n);});}};if(t.settings.fix_ie_paragraphs)h=h.replace(/<p><\/p>|<p([^>]+)><\/p>|<p[^\/+]\/>/gi,'<p$1 mce_keep="true">&nbsp;</p>');set();if(t.settings.fix_ie_paragraphs){nl=e.getElementsByTagName("p");for(i=nl.length-1,x=0;i>=0;i--){n=nl[i];if(!n.hasChildNodes()){if(!n.mce_keep){x=1;break;}n.removeAttribute('mce_keep');}}}if(x){h=h.replace(/<p ([^>]+)>|<p>/g,'<div $1 mce_tmp="1">');h=h.replace(/<\/p>/g,'</div>');set();if(t.settings.fix_ie_paragraphs){nl=e.getElementsByTagName("DIV");for(i=nl.length-1;i>=0;i--){n=nl[i];if(n.mce_tmp){p=t.doc.createElement('p');n.cloneNode(false).outerHTML.replace(/([a-z0-9\-_]+)=/gi,function(a,b){var v;if(b!=='mce_tmp'){v=n.getAttribute(b);if(!v&&b==='class')v=n.className;p.setAttribute(b,v);}});for(x=0;x<n.childNodes.length;x++)p.appendChild(n.childNodes[x].cloneNode(true));n.swapNode(p);}}}}}else e.innerHTML=h;return h;});},processHTML:function(h){var t=this,s=t.settings;if(!s.process_html)return h;if(tinymce.isGecko){h=h.replace(/<(\/?)strong>|<strong( [^>]+)>/gi,'<$1b$2>');h=h.replace(/<(\/?)em>|<em( [^>]+)>/gi,'<$1i$2>');}else if(isIE){h=h.replace(/&apos;/g,'&#39;');h=h.replace(/\s+(disabled|checked|readonly|selected)\s*=\s*[\"\']?(false|0)[\"\']?/gi,'');}h=h.replace(/<a( )([^>]+)\/>|<a\/>/gi,'<a$1$2></a>');if(s.keep_values){if(/<script|style/.test(h)){function trim(s){s=s.replace(/(<!--\[CDATA\[|\]\]-->)/g,'\n');s=s.replace(/^[\r\n]*|[\r\n]*$/g,'');s=s.replace(/^\s*(\/\/\s*<!--|\/\/\s*<!\[CDATA\[|<!--|<!\[CDATA\[)[\r\n]*/g,'');s=s.replace(/\s*(\/\/\s*\]\]>|\/\/\s*-->|\]\]>|-->|\]\]-->)\s*$/g,'');return s;};h=h.replace(/<script([^>]+|)>([\s\S]*?)<\/script>/g,function(v,a,b){b=trim(b);if(!a)a=' type="text/javascript"';if(b)b='<!--\n'+b+'\n// -->';return'<mce:script'+a+'>'+b+'</mce:script>';});h=h.replace(/<style([^>]+|)>([\s\S]*?)<\/style>/g,function(v,a,b){b=trim(b);return'<mce:style'+a+'><!--\n'+b+'\n--></mce:style><style'+a+' mce_bogus="1">'+b+'</style>';});}h=h.replace(/<!\[CDATA\[([\s\S]+)\]\]>/g,'<!--[CDATA[$1]]-->');h=h.replace(/<([\w:]+) [^>]*(src|href|style|shape|coords)[^>]*>/gi,function(a,n){function handle(m,b,c){var u=c;if(a.indexOf('mce_'+b)!=-1)return m;if(b=='style'){if(t._isRes(c))return m;if(s.hex_colors){u=u.replace(/rgb\([^\)]+\)/g,function(v){return t.toHex(v);});}if(s.url_converter){u=u.replace(/url\([\'\"]?([^\)\'\"]+)\)/g,function(x,c){return'url('+t.encode(s.url_converter.call(s.url_converter_scope||t,t.decode(c),b,n))+')';});}}else if(b!='coords'&&b!='shape'){if(s.url_converter)u=t.encode(s.url_converter.call(s.url_converter_scope||t,t.decode(c),b,n));}return' '+b+'="'+c+'" mce_'+b+'="'+u+'"';};a=a.replace(/ (src|href|style|coords|shape)=[\"]([^\"]+)[\"]/gi,handle);a=a.replace(/ (src|href|style|coords|shape)=[\']([^\']+)[\']/gi,handle);return a.replace(/ (src|href|style|coords|shape)=([^\s\"\'>]+)/gi,handle);});}return h;},getOuterHTML:function(e){var d;e=this.get(e);if(!e)return null;if(isIE)return e.outerHTML;d=(e.ownerDocument||this.doc).createElement("body");d.appendChild(e.cloneNode(true));return d.innerHTML;},setOuterHTML:function(e,h,d){var t=this;return this.run(e,function(e){var n,tp;e=t.get(e);d=d||e.ownerDocument||t.doc;if(isIE&&e.nodeType==1)e.outerHTML=h;else{tp=d.createElement("body");tp.innerHTML=h;n=tp.lastChild;while(n){t.insertAfter(n.cloneNode(true),e);n=n.previousSibling;}t.remove(e);}});},decode:function(s){var e,n,v;if(/&[^;]+;/.test(s)){e=this.doc.createElement("div");e.innerHTML=s;n=e.firstChild;v='';if(n){do{v+=n.nodeValue;}while(n.nextSibling);}return v||s;}return s;},encode:function(s){return s?(''+s).replace(/[<>&\"]/g,function(c,b){switch(c){case'&':return'&amp;';case'"':return'&quot;';case'<':return'&lt;';case'>':return'&gt;';}return c;}):s;},insertAfter:function(n,r){var t=this;r=t.get(r);return this.run(n,function(n){var p,ns;p=r.parentNode;ns=r.nextSibling;if(ns)p.insertBefore(n,ns);else p.appendChild(n);return n;});},isBlock:function(n){if(n.nodeType&&n.nodeType!==1)return false;n=n.nodeName||n;return/^(H[1-6]|HR|P|DIV|ADDRESS|PRE|FORM|TABLE|LI|OL|UL|TD|CAPTION|BLOCKQUOTE|CENTER|DL|DT|DD|DIR|FIELDSET|NOSCRIPT|NOFRAMES|MENU|ISINDEX|SAMP)$/.test(n);},replace:function(n,o,k){if(is(o,'array'))n=n.cloneNode(true);return this.run(o,function(o){if(k){each(o.childNodes,function(c){n.appendChild(c.cloneNode(true));});}return o.parentNode.replaceChild(n,o);});},toHex:function(s){var c=/^\s*rgb\s*?\(\s*?([0-9]+)\s*?,\s*?([0-9]+)\s*?,\s*?([0-9]+)\s*?\)\s*$/i.exec(s);function hex(s){s=parseInt(s).toString(16);return s.length>1?s:'0'+s;};if(c){s='#'+hex(c[1])+hex(c[2])+hex(c[3]);return s;}return s;},getClasses:function(){var t=this,cl=[],i,lo={},f=t.settings.class_filter,ov;if(t.classes)return t.classes;function addClasses(s){each(s.imports,function(r){addClasses(r);});each(s.cssRules||s.rules,function(r){switch(r.type||1){case 1:if(r.selectorText){each(r.selectorText.split(','),function(v){v=v.replace(/^\s*|\s*$|^\s\./g,"");if(/\.mce/.test(v)||!/\.[\w\-]+$/.test(v))return;ov=v;v=v.replace(/.*\.([a-z0-9_\-]+).*/i,'$1');if(f&&!(v=f(v,ov)))return;if(!lo[v]){cl.push({'class':v});lo[v]=1;}});}break;case 3:addClasses(r.styleSheet);break;}});};try{each(t.doc.styleSheets,addClasses);}catch(ex){}if(cl.length>0)t.classes=cl;return cl;},run:function(e,f,s){var t=this,o;if(t.doc&&typeof(e)==='string')e=t.get(e);if(!e)return false;s=s||this;if(!e.nodeType&&(e.length||e.length===0)){o=[];each(e,function(e,i){if(e){if(typeof(e)=='string')e=t.doc.getElementById(e);o.push(f.call(s,e,i));}});return o;}return f.call(s,e);},getAttribs:function(n){var o;n=this.get(n);if(!n)return[];if(isIE){o=[];if(n.nodeName=='OBJECT')return n.attributes;n.cloneNode(false).outerHTML.replace(/([a-z0-9\:\-_]+)=/gi,function(a,b){o.push({specified:1,nodeName:b});});return o;}return n.attributes;},destroy:function(s){var t=this;t.win=t.doc=t.root=null;if(!s)tinymce.removeUnload(t.destroy);},_isRes:function(c){return/^(top|left|bottom|right|width|height)/i.test(c)||/;\s*(top|left|bottom|right|width|height)/i.test(c);}});tinymce.DOM=new tinymce.dom.DOMUtils(document,{process_html:0});})();(function(){var each=tinymce.each,DOM=tinymce.DOM,isIE=tinymce.isIE,isWebKit=tinymce.isWebKit,Event;tinymce.create('static tinymce.dom.Event',{inits:[],events:[],add:function(o,n,f,s){var cb,t=this,el=t.events,r;if(o&&o instanceof Array){r=[];each(o,function(o){o=DOM.get(o);r.push(t.add(o,n,f,s));});return r;}o=DOM.get(o);if(!o)return;cb=function(e){e=e||window.event;if(e&&!e.target&&isIE)e.target=e.srcElement;if(!s)return f(e);return f.call(s,e);};if(n=='unload'){tinymce.unloads.unshift({func:cb});return cb;}if(n=='init'){if(t.domLoaded)cb();else t.inits.push(cb);return cb;}el.push({obj:o,name:n,func:f,cfunc:cb,scope:s});t._add(o,n,cb);return f;},remove:function(o,n,f){var t=this,a=t.events,s=false,r;if(o&&o instanceof Array){r=[];each(o,function(o){o=DOM.get(o);r.push(t.remove(o,n,f));});return r;}o=DOM.get(o);each(a,function(e,i){if(e.obj==o&&e.name==n&&(!f||(e.func==f||e.cfunc==f))){a.splice(i,1);t._remove(o,n,e.cfunc);s=true;return false;}});return s;},clear:function(o){var t=this,a=t.events,i,e;if(o){o=DOM.get(o);for(i=a.length-1;i>=0;i--){e=a[i];if(e.obj===o){t._remove(e.obj,e.name,e.cfunc);e.obj=e.cfunc=null;a.splice(i,1);}}}},cancel:function(e){if(!e)return false;this.stop(e);return this.prevent(e);},stop:function(e){if(e.stopPropagation)e.stopPropagation();else e.cancelBubble=true;return false;},prevent:function(e){if(e.preventDefault)e.preventDefault();else e.returnValue=false;return false;},_unload:function(){var t=Event;each(t.events,function(e,i){t._remove(e.obj,e.name,e.cfunc);e.obj=e.cfunc=null;});t.events=[];t=null;},_add:function(o,n,f){if(o.attachEvent)o.attachEvent('on'+n,f);else if(o.addEventListener)o.addEventListener(n,f,false);else o['on'+n]=f;},_remove:function(o,n,f){if(o){try{if(o.detachEvent)o.detachEvent('on'+n,f);else if(o.removeEventListener)o.removeEventListener(n,f,false);else o['on'+n]=null;}catch(ex){}}},_pageInit:function(){var e=Event;if(e.domLoaded)return;e._remove(window,'DOMContentLoaded',e._pageInit);e.domLoaded=true;each(e.inits,function(c){c();});e.inits=[];},_wait:function(){var t;if(window.tinyMCE_GZ&&tinyMCE_GZ.loaded){Event.domLoaded=1;return;}if(isIE&&document.location.protocol!='https:'){document.write('<script id=__ie_onload defer src=\'javascript:""\';><\/script>');DOM.get("__ie_onload").onreadystatechange=function(){if(this.readyState=="complete"){Event._pageInit();DOM.get("__ie_onload").onreadystatechange=null;}};}else{Event._add(window,'DOMContentLoaded',Event._pageInit,Event);if(isIE||isWebKit){t=setInterval(function(){if(/loaded|complete/.test(document.readyState)){clearInterval(t);Event._pageInit();}},10);}}}});Event=tinymce.dom.Event;Event._wait();tinymce.addUnload(Event._unload);})();(function(){var each=tinymce.each;tinymce.create('tinymce.dom.Element',{Element:function(id,s){var t=this,dom,el;s=s||{};t.id=id;t.dom=dom=s.dom||tinymce.DOM;t.settings=s;if(!tinymce.isIE)el=t.dom.get(t.id);each(['getPos','getRect','getParent','add','setStyle','getStyle','setStyles','setAttrib','setAttribs','getAttrib','addClass','removeClass','hasClass','getOuterHTML','setOuterHTML','remove','show','hide','isHidden','setHTML','get'],function(k){t[k]=function(){var a=arguments,o;if(tinymce.isOpera){a=[id];each(arguments,function(v){a.push(v);});}else Array.prototype.unshift.call(a,el||id);o=dom[k].apply(dom,a);t.update(k);return o;};});},on:function(n,f,s){return tinymce.dom.Event.add(this.id,n,f,s);},getXY:function(){return{x:parseInt(this.getStyle('left')),y:parseInt(this.getStyle('top'))};},getSize:function(){var n=this.dom.get(this.id);return{w:parseInt(this.getStyle('width')||n.clientWidth),h:parseInt(this.getStyle('height')||n.clientHeight)};},moveTo:function(x,y){this.setStyles({left:x,top:y});},moveBy:function(x,y){var p=this.getXY();this.moveTo(p.x+x,p.y+y);},resizeTo:function(w,h){this.setStyles({width:w,height:h});},resizeBy:function(w,h){var s=this.getSize();this.resizeTo(s.w+w,s.h+h);},update:function(k){var t=this,b,dom=t.dom;if(tinymce.isIE6&&t.settings.blocker){k=k||'';if(k.indexOf('get')===0||k.indexOf('has')===0||k.indexOf('is')===0)return;if(k=='remove'){dom.remove(t.blocker);return;}if(!t.blocker){t.blocker=dom.uniqueId();b=dom.add(t.settings.container||dom.getRoot(),'iframe',{id:t.blocker,style:'position:absolute;',frameBorder:0,src:'javascript:""'});dom.setStyle(b,'opacity',0);}else b=dom.get(t.blocker);dom.setStyle(b,'left',t.getStyle('left',1));dom.setStyle(b,'top',t.getStyle('top',1));dom.setStyle(b,'width',t.getStyle('width',1));dom.setStyle(b,'height',t.getStyle('height',1));dom.setStyle(b,'display',t.getStyle('display',1));dom.setStyle(b,'zIndex',parseInt(t.getStyle('zIndex',1)||0)-1);}}});})();(function(){function trimNl(s){return s.replace(/[\n\r]+/g,'');};var is=tinymce.is,isIE=tinymce.isIE,each=tinymce.each;tinymce.create('tinymce.dom.Selection',{Selection:function(dom,win,serializer){var t=this;t.dom=dom;t.win=win;t.serializer=serializer;each(['onBeforeSetContent','onBeforeGetContent','onSetContent','onGetContent'],function(e){t[e]=new tinymce.util.Dispatcher(t);});tinymce.addUnload(t.destroy,t);},getContent:function(s){var t=this,r=t.getRng(),e=t.dom.create("body"),se=t.getSel(),wb,wa,n;s=s||{};wb=wa='';s.get=true;s.format=s.format||'html';t.onBeforeGetContent.dispatch(t,s);if(s.format=='text')return t.isCollapsed()?'':(r.text||(se.toString?se.toString():''));if(r.cloneContents){n=r.cloneContents();if(n)e.appendChild(n);}else if(is(r.item)||is(r.htmlText))e.innerHTML=r.item?r.item(0).outerHTML:r.htmlText;else e.innerHTML=r.toString();if(/^\s/.test(e.innerHTML))wb=' ';if(/\s+$/.test(e.innerHTML))wa=' ';s.getInner=true;s.content=t.isCollapsed()?'':wb+t.serializer.serialize(e,s)+wa;t.onGetContent.dispatch(t,s);return s.content;},setContent:function(h,s){var t=this,r=t.getRng(),c,d=t.win.document;s=s||{format:'html'};s.set=true;h=s.content=t.dom.processHTML(h);t.onBeforeSetContent.dispatch(t,s);h=s.content;if(r.insertNode){h+='<span id="__caret">_</span>';r.deleteContents();r.insertNode(t.getRng().createContextualFragment(h));c=t.dom.get('__caret');r=d.createRange();r.setStartBefore(c);r.setEndAfter(c);t.setRng(r);d.execCommand('Delete',false,null);t.dom.remove('__caret');}else{if(r.item){d.execCommand('Delete',false,null);r=t.getRng();}r.pasteHTML(h);}t.onSetContent.dispatch(t,s);},getStart:function(){var t=this,r=t.getRng(),e;if(isIE){if(r.item)return r.item(0);r=r.duplicate();r.collapse(1);e=r.parentElement();if(e&&e.nodeName=='BODY')return e.firstChild;return e;}else{e=r.startContainer;if(e.nodeName=='BODY')return e.firstChild;return t.dom.getParent(e,function(n){return n.nodeType==1;});}},getEnd:function(){var t=this,r=t.getRng(),e;if(isIE){if(r.item)return r.item(0);r=r.duplicate();r.collapse(0);e=r.parentElement();if(e&&e.nodeName=='BODY')return e.lastChild;return e;}else{e=r.endContainer;if(e.nodeName=='BODY')return e.lastChild;return t.dom.getParent(e,function(n){return n.nodeType==1;});}},getBookmark:function(si){var t=this,r=t.getRng(),tr,sx,sy,vp=t.dom.getViewPort(t.win),e,sp,bp,le,c=-0xFFFFFF,s,ro=t.dom.getRoot(),wb=0,wa=0,nv;sx=vp.x;sy=vp.y;if(si=='simple')return{rng:r,scrollX:sx,scrollY:sy};if(isIE){if(r.item){e=r.item(0);each(t.dom.select(e.nodeName),function(n,i){if(e==n){sp=i;return false;}});return{tag:e.nodeName,index:sp,scrollX:sx,scrollY:sy};}tr=t.dom.doc.body.createTextRange();tr.moveToElementText(ro);tr.collapse(true);bp=Math.abs(tr.move('character',c));tr=r.duplicate();tr.collapse(true);sp=Math.abs(tr.move('character',c));tr=r.duplicate();tr.collapse(false);le=Math.abs(tr.move('character',c))-sp;return{start:sp-bp,length:le,scrollX:sx,scrollY:sy};}e=t.getNode();s=t.getSel();if(!s)return null;if(e&&e.nodeName=='IMG'){return{scrollX:sx,scrollY:sy};}function getPos(r,sn,en){var w=t.dom.doc.createTreeWalker(r,NodeFilter.SHOW_TEXT,null,false),n,p=0,d={};while((n=w.nextNode())!=null){if(n==sn)d.start=p;if(n==en){d.end=p;return d;}p+=trimNl(n.nodeValue||'').length;}return null;};if(s.anchorNode==s.focusNode&&s.anchorOffset==s.focusOffset){e=getPos(ro,s.anchorNode,s.focusNode);if(!e)return{scrollX:sx,scrollY:sy};trimNl(s.anchorNode.nodeValue||'').replace(/^\s+/,function(a){wb=a.length;});return{start:Math.max(e.start+s.anchorOffset-wb,0),end:Math.max(e.end+s.focusOffset-wb,0),scrollX:sx,scrollY:sy,beg:s.anchorOffset-wb==0};}else{e=getPos(ro,r.startContainer,r.endContainer);if(!e)return{scrollX:sx,scrollY:sy};return{start:Math.max(e.start+r.startOffset-wb,0),end:Math.max(e.end+r.endOffset-wa,0),scrollX:sx,scrollY:sy,beg:r.startOffset-wb==0};}},moveToBookmark:function(b){var t=this,r=t.getRng(),s=t.getSel(),ro=t.dom.getRoot(),sd,nvl,nv;function getPos(r,sp,ep){var w=t.dom.doc.createTreeWalker(r,NodeFilter.SHOW_TEXT,null,false),n,p=0,d={},o,v,wa,wb;while((n=w.nextNode())!=null){wa=wb=0;nv=n.nodeValue||'';nvl=trimNl(nv).length;p+=nvl;if(p>=sp&&!d.startNode){o=sp-(p-nvl);if(b.beg&&o>=nvl)continue;d.startNode=n;d.startOffset=o+wb;}if(p>=ep){d.endNode=n;d.endOffset=ep-(p-nvl)+wb;return d;}}return null;};if(!b)return false;t.win.scrollTo(b.scrollX,b.scrollY);if(isIE){if(r=b.rng){try{r.select();}catch(ex){}return true;}t.win.focus();if(b.tag){r=ro.createControlRange();each(t.dom.select(b.tag),function(n,i){if(i==b.index)r.addElement(n);});}else{try{if(b.start<0)return true;r=s.createRange();r.moveToElementText(ro);r.collapse(true);r.moveStart('character',b.start);r.moveEnd('character',b.length);}catch(ex2){return true;}}try{r.select();}catch(ex){}return true;}if(!s)return false;if(b.rng){s.removeAllRanges();s.addRange(b.rng);}else{if(is(b.start)&&is(b.end)){try{sd=getPos(ro,b.start,b.end);if(sd){r=t.dom.doc.createRange();r.setStart(sd.startNode,sd.startOffset);r.setEnd(sd.endNode,sd.endOffset);s.removeAllRanges();s.addRange(r);}if(!tinymce.isOpera)t.win.focus();}catch(ex){}}}},select:function(n,c){var t=this,r=t.getRng(),s=t.getSel(),b,fn,ln,d=t.win.document;function first(n){return n?d.createTreeWalker(n,NodeFilter.SHOW_TEXT,null,false).nextNode():null;};function last(n){var c,o,w;if(!n)return null;w=d.createTreeWalker(n,NodeFilter.SHOW_TEXT,null,false);while(c=w.nextNode())o=c;return o;};if(isIE){try{b=d.body;if(/^(IMG|TABLE)$/.test(n.nodeName)){r=b.createControlRange();r.addElement(n);}else{r=b.createTextRange();r.moveToElementText(n);}r.select();}catch(ex){}}else{if(c){fn=first(n);ln=last(n);if(fn&&ln){r=d.createRange();r.setStart(fn,0);r.setEnd(ln,ln.nodeValue.length);}else r.selectNode(n);}else r.selectNode(n);t.setRng(r);}return n;},isCollapsed:function(){var t=this,r=t.getRng(),s=t.getSel();if(!r||r.item)return false;return!s||r.boundingWidth==0||r.collapsed;},collapse:function(b){var t=this,r=t.getRng(),n;if(r.item){n=r.item(0);r=this.win.document.body.createTextRange();r.moveToElementText(n);}r.collapse(!!b);t.setRng(r);},getSel:function(){var t=this,w=this.win;return w.getSelection?w.getSelection():w.document.selection;},getRng:function(){var t=this,s=t.getSel(),r;try{if(s)r=s.rangeCount>0?s.getRangeAt(0):(s.createRange?s.createRange():t.win.document.createRange());}catch(ex){}if(!r)r=isIE?t.win.document.body.createTextRange():t.win.document.createRange();return r;},setRng:function(r){var s;if(!isIE){s=this.getSel();if(s){s.removeAllRanges();s.addRange(r);}}else{try{r.select();}catch(ex){}}},setNode:function(n){var t=this;t.setContent(t.dom.getOuterHTML(n));return n;},getNode:function(){var t=this,r=t.getRng(),s=t.getSel(),e;if(!isIE){if(!r)return t.dom.getRoot();e=r.commonAncestorContainer;if(!r.collapsed){if(tinymce.isWebKit&&s.anchorNode&&s.anchorNode.nodeType==1)return s.anchorNode.childNodes[s.anchorOffset];if(r.startContainer==r.endContainer){if(r.startOffset-r.endOffset<2){if(r.startContainer.hasChildNodes())e=r.startContainer.childNodes[r.startOffset];}}}return t.dom.getParent(e,function(n){return n.nodeType==1;});}return r.item?r.item(0):r.parentElement();},destroy:function(s){var t=this;t.win=null;if(!s)tinymce.removeUnload(t.destroy);}});})();(function(){tinymce.create('tinymce.dom.XMLWriter',{node:null,XMLWriter:function(s){function getXML(){var i=document.implementation;if(!i||!i.createDocument){try{return new ActiveXObject('MSXML2.DOMDocument');}catch(ex){}try{return new ActiveXObject('Microsoft.XmlDom');}catch(ex){}}else return i.createDocument('','',null);};this.doc=getXML();this.valid=tinymce.isOpera||tinymce.isWebKit;this.reset();},reset:function(){var t=this,d=t.doc;if(d.firstChild)d.removeChild(d.firstChild);t.node=d.appendChild(d.createElement("html"));},writeStartElement:function(n){var t=this;t.node=t.node.appendChild(t.doc.createElement(n));},writeAttribute:function(n,v){if(this.valid)v=v.replace(/>/g,'%MCGT%');this.node.setAttribute(n,v);},writeEndElement:function(){this.node=this.node.parentNode;},writeFullEndElement:function(){var t=this,n=t.node;n.appendChild(t.doc.createTextNode(""));t.node=n.parentNode;},writeText:function(v){if(this.valid)v=v.replace(/>/g,'%MCGT%');this.node.appendChild(this.doc.createTextNode(v));},writeCDATA:function(v){this.node.appendChild(this.doc.createCDATA(v));},writeComment:function(v){if(tinymce.isIE)v=v.replace(/^\-|\-$/g,' ');this.node.appendChild(this.doc.createComment(v.replace(/\-\-/g,' ')));},getContent:function(){var h;h=this.doc.xml||new XMLSerializer().serializeToString(this.doc);h=h.replace(/<\?[^?]+\?>|<html>|<\/html>|<html\/>|<!DOCTYPE[^>]+>/g,'');h=h.replace(/ ?\/>/g,' />');if(this.valid)h=h.replace(/\%MCGT%/g,'&gt;');return h;}});})();(function(){tinymce.create('tinymce.dom.StringWriter',{str:null,tags:null,count:0,settings:null,indent:null,StringWriter:function(s){this.settings=tinymce.extend({indent_char:' ',indentation:1},s);this.reset();},reset:function(){this.indent='';this.str="";this.tags=[];this.count=0;},writeStartElement:function(n){this._writeAttributesEnd();this.writeRaw('<'+n);this.tags.push(n);this.inAttr=true;this.count++;this.elementCount=this.count;},writeAttribute:function(n,v){var t=this;t.writeRaw(" "+t.encode(n)+'="'+t.encode(v)+'"');},writeEndElement:function(){var n;if(this.tags.length>0){n=this.tags.pop();if(this._writeAttributesEnd(1))this.writeRaw('</'+n+'>');if(this.settings.indentation>0)this.writeRaw('\n');}},writeFullEndElement:function(){if(this.tags.length>0){this._writeAttributesEnd();this.writeRaw('</'+this.tags.pop()+'>');if(this.settings.indentation>0)this.writeRaw('\n');}},writeText:function(v){this._writeAttributesEnd();this.writeRaw(this.encode(v));this.count++;},writeCDATA:function(v){this._writeAttributesEnd();this.writeRaw('<![CDATA['+v+']]>');this.count++;},writeComment:function(v){this._writeAttributesEnd();this.writeRaw('<!-- '+v+'-->');this.count++;},writeRaw:function(v){this.str+=v;},encode:function(s){return s.replace(/[<>&"]/g,function(v){switch(v){case'<':return'&lt;';case'>':return'&gt;';case'&':return'&amp;';case'"':return'&quot;';}return v;});},getContent:function(){return this.str;},_writeAttributesEnd:function(s){if(!this.inAttr)return;this.inAttr=false;if(s&&this.elementCount==this.count){this.writeRaw(' />');return false;}this.writeRaw('>');return true;}});})();(function(){var extend=tinymce.extend,each=tinymce.each,Dispatcher=tinymce.util.Dispatcher,isIE=tinymce.isIE,isGecko=tinymce.isGecko;function getIEAtts(n){var o=[];if(n.nodeName=='OBJECT')return n.attributes;n.cloneNode(false).outerHTML.replace(/([a-z0-9\:\-_]+)=/gi,function(a,b){o.push({specified:1,nodeName:b});});return o;};function wildcardToRE(s){return s.replace(/([?+*])/g,'.$1');};tinymce.create('tinymce.dom.Serializer',{Serializer:function(s){var t=this;t.key=0;t.onPreProcess=new Dispatcher(t);t.onPostProcess=new Dispatcher(t);if(tinymce.relaxedDomain&&tinymce.isGecko){t.writer=new tinymce.dom.StringWriter();}else{try{t.writer=new tinymce.dom.XMLWriter();}catch(ex){t.writer=new tinymce.dom.StringWriter();}}t.settings=s=extend({dom:tinymce.DOM,valid_nodes:0,node_filter:0,attr_filter:0,invalid_attrs:/^(mce_|_moz_)/,closed:/(br|hr|input|meta|img|link|param)/,entity_encoding:'named',entities:'160,nbsp,161,iexcl,162,cent,163,pound,164,curren,165,yen,166,brvbar,167,sect,168,uml,169,copy,170,ordf,171,laquo,172,not,173,shy,174,reg,175,macr,176,deg,177,plusmn,178,sup2,179,sup3,180,acute,181,micro,182,para,183,middot,184,cedil,185,sup1,186,ordm,187,raquo,188,frac14,189,frac12,190,frac34,191,iquest,192,Agrave,193,Aacute,194,Acirc,195,Atilde,196,Auml,197,Aring,198,AElig,199,Ccedil,200,Egrave,201,Eacute,202,Ecirc,203,Euml,204,Igrave,205,Iacute,206,Icirc,207,Iuml,208,ETH,209,Ntilde,210,Ograve,211,Oacute,212,Ocirc,213,Otilde,214,Ouml,215,times,216,Oslash,217,Ugrave,218,Uacute,219,Ucirc,220,Uuml,221,Yacute,222,THORN,223,szlig,224,agrave,225,aacute,226,acirc,227,atilde,228,auml,229,aring,230,aelig,231,ccedil,232,egrave,233,eacute,234,ecirc,235,euml,236,igrave,237,iacute,238,icirc,239,iuml,240,eth,241,ntilde,242,ograve,243,oacute,244,ocirc,245,otilde,246,ouml,247,divide,248,oslash,249,ugrave,250,uacute,251,ucirc,252,uuml,253,yacute,254,thorn,255,yuml,402,fnof,913,Alpha,914,Beta,915,Gamma,916,Delta,917,Epsilon,918,Zeta,919,Eta,920,Theta,921,Iota,922,Kappa,923,Lambda,924,Mu,925,Nu,926,Xi,927,Omicron,928,Pi,929,Rho,931,Sigma,932,Tau,933,Upsilon,934,Phi,935,Chi,936,Psi,937,Omega,945,alpha,946,beta,947,gamma,948,delta,949,epsilon,950,zeta,951,eta,952,theta,953,iota,954,kappa,955,lambda,956,mu,957,nu,958,xi,959,omicron,960,pi,961,rho,962,sigmaf,963,sigma,964,tau,965,upsilon,966,phi,967,chi,968,psi,969,omega,977,thetasym,978,upsih,982,piv,8226,bull,8230,hellip,8242,prime,8243,Prime,8254,oline,8260,frasl,8472,weierp,8465,image,8476,real,8482,trade,8501,alefsym,8592,larr,8593,uarr,8594,rarr,8595,darr,8596,harr,8629,crarr,8656,lArr,8657,uArr,8658,rArr,8659,dArr,8660,hArr,8704,forall,8706,part,8707,exist,8709,empty,8711,nabla,8712,isin,8713,notin,8715,ni,8719,prod,8721,sum,8722,minus,8727,lowast,8730,radic,8733,prop,8734,infin,8736,ang,8743,and,8744,or,8745,cap,8746,cup,8747,int,8756,there4,8764,sim,8773,cong,8776,asymp,8800,ne,8801,equiv,8804,le,8805,ge,8834,sub,8835,sup,8836,nsub,8838,sube,8839,supe,8853,oplus,8855,otimes,8869,perp,8901,sdot,8968,lceil,8969,rceil,8970,lfloor,8971,rfloor,9001,lang,9002,rang,9674,loz,9824,spades,9827,clubs,9829,hearts,9830,diams,338,OElig,339,oelig,352,Scaron,353,scaron,376,Yuml,710,circ,732,tilde,8194,ensp,8195,emsp,8201,thinsp,8204,zwnj,8205,zwj,8206,lrm,8207,rlm,8211,ndash,8212,mdash,8216,lsquo,8217,rsquo,8218,sbquo,8220,ldquo,8221,rdquo,8222,bdquo,8224,dagger,8225,Dagger,8240,permil,8249,lsaquo,8250,rsaquo,8364,euro',bool_attrs:/(checked|disabled|readonly|selected|nowrap)/,valid_elements:'*[*]',extended_valid_elements:0,valid_child_elements:0,invalid_elements:0,fix_table_elements:0,fix_list_elements:true,fix_content_duplication:true,convert_fonts_to_spans:false,font_size_classes:0,font_size_style_values:0,apply_source_formatting:0,indent_mode:'simple',indent_char:'\t',indent_levels:1,remove_linebreaks:1,remove_redundant_brs:1,element_format:'xhtml'},s);t.dom=s.dom;if(s.remove_redundant_brs){t.onPostProcess.add(function(se,o){o.content=o.content.replace(/<br \/>(\s*<\/li>)/g,'$1');});}if(s.element_format=='html'){t.onPostProcess.add(function(se,o){o.content=o.content.replace(/<([^>]+) \/>/g,'<$1>');});}if(s.fix_list_elements){t.onPreProcess.add(function(se,o){var nl,x,a=['ol','ul'],i,n,p,r=/^(OL|UL)$/,np;function prevNode(e,n){var a=n.split(','),i;while((e=e.previousSibling)!=null){for(i=0;i<a.length;i++){if(e.nodeName==a[i])return e;}}return null;};for(x=0;x<a.length;x++){nl=t.dom.select(a[x],o.node);for(i=0;i<nl.length;i++){n=nl[i];p=n.parentNode;if(r.test(p.nodeName)){np=prevNode(n,'LI');if(!np){np=t.dom.create('li');np.innerHTML='&nbsp;';np.appendChild(n);p.insertBefore(np,p.firstChild);}else np.appendChild(n);}}}});}if(s.fix_table_elements){t.onPreProcess.add(function(se,o){each(t.dom.select('table',o.node),function(e){var pa=t.dom.getParent(e,'H1,H2,H3,H4,H5,H6,P'),pa2,n,tm,pl=[],i,ns;if(pa){pa2=pa.cloneNode(false);pl.push(e);for(n=e;n=n.parentNode;){pl.push(n);if(n==pa)break;}tm=pa2;for(i=pl.length-1;i>=0;i--){if(i==pl.length-1){while(ns=pl[i-1].nextSibling)tm.appendChild(ns.parentNode.removeChild(ns));}else{n=pl[i].cloneNode(false);if(i!=0){while(ns=pl[i-1].nextSibling)n.appendChild(ns.parentNode.removeChild(ns));}tm=tm.appendChild(n);}}e=t.dom.insertAfter(e.parentNode.removeChild(e),pa);t.dom.insertAfter(e,pa);t.dom.insertAfter(pa2,e);}});});}},setEntities:function(s){var t=this,a,i,l={},re='',v;if(t.entityLookup)return;a=s.split(',');for(i=0;i<a.length;i+=2){v=a[i];if(v==34||v==38||v==60||v==62)continue;l[String.fromCharCode(a[i])]=a[i+1];v=parseInt(a[i]).toString(16);re+='\\u'+'0000'.substring(v.length)+v;}if(!re){t.settings.entity_encoding='raw';return;}t.entitiesRE=new RegExp('['+re+']','g');t.entityLookup=l;},setValidChildRules:function(s){this.childRules=null;this.addValidChildRules(s);},addValidChildRules:function(s){var t=this,inst,intr,bloc;if(!s)return;inst='A|BR|SPAN|BDO|MAP|OBJECT|IMG|TT|I|B|BIG|SMALL|EM|STRONG|DFN|CODE|Q|SAMP|KBD|VAR|CITE|ABBR|ACRONYM|SUB|SUP|#text|#comment';intr='A|BR|SPAN|BDO|OBJECT|APPLET|IMG|MAP|IFRAME|TT|I|B|U|S|STRIKE|BIG|SMALL|FONT|BASEFONT|EM|STRONG|DFN|CODE|Q|SAMP|KBD|VAR|CITE|ABBR|ACRONYM|SUB|SUP|INPUT|SELECT|TEXTAREA|LABEL|BUTTON|#text|#comment';bloc='H[1-6]|P|DIV|ADDRESS|PRE|FORM|TABLE|LI|OL|UL|TD|CAPTION|BLOCKQUOTE|CENTER|DL|DT|DD|DIR|FIELDSET|FORM|NOSCRIPT|NOFRAMES|MENU|ISINDEX|SAMP';each(s.split(','),function(s){var p=s.split(/\[|\]/),re;s='';each(p[1].split('|'),function(v){if(s)s+='|';switch(v){case'%itrans':v=intr;break;case'%itrans_na':v=intr.substring(2);break;case'%istrict':v=inst;break;case'%istrict_na':v=inst.substring(2);break;case'%btrans':v=bloc;break;case'%bstrict':v=bloc;break;}s+=v;});re=new RegExp('^('+s.toLowerCase()+')$','i');each(p[0].split('/'),function(s){t.childRules=t.childRules||{};t.childRules[s]=re;});});s='';each(t.childRules,function(v,k){if(s)s+='|';s+=k;});t.parentElementsRE=new RegExp('^('+s.toLowerCase()+')$','i');},setRules:function(s){var t=this;t._setup();t.rules={};t.wildRules=[];t.validElements={};return t.addRules(s);},addRules:function(s){var t=this,dr;if(!s)return;t._setup();each(s.split(','),function(s){var p=s.split(/\[|\]/),tn=p[0].split('/'),ra,at,wat,va=[];if(dr)at=tinymce.extend([],dr.attribs);if(p.length>1){each(p[1].split('|'),function(s){var ar={},i;at=at||[];s=s.replace(/::/g,'~');s=/^([!\-])?([\w*.?~_\-]+|)([=:<])?(.+)?$/.exec(s);s[2]=s[2].replace(/~/g,':');if(s[1]=='!'){ra=ra||[];ra.push(s[2]);}if(s[1]=='-'){for(i=0;i<at.length;i++){if(at[i].name==s[2]){at.splice(i,1);return;}}}switch(s[3]){case'=':ar.defaultVal=s[4]||'';break;case':':ar.forcedVal=s[4];break;case'<':ar.validVals=s[4].split('?');break;}if(/[*.?]/.test(s[2])){wat=wat||[];ar.nameRE=new RegExp('^'+wildcardToRE(s[2])+'$');wat.push(ar);}else{ar.name=s[2];at.push(ar);}va.push(s[2]);});}each(tn,function(s,i){var pr=s.charAt(0),x=1,ru={};if(dr){if(dr.noEmpty)ru.noEmpty=dr.noEmpty;if(dr.fullEnd)ru.fullEnd=dr.fullEnd;if(dr.padd)ru.padd=dr.padd;}switch(pr){case'-':ru.noEmpty=true;break;case'+':ru.fullEnd=true;break;case'#':ru.padd=true;break;default:x=0;}tn[i]=s=s.substring(x);t.validElements[s]=1;if(/[*.?]/.test(tn[0])){ru.nameRE=new RegExp('^'+wildcardToRE(tn[0])+'$');t.wildRules=t.wildRules||{};t.wildRules.push(ru);}else{ru.name=tn[0];if(tn[0]=='@')dr=ru;t.rules[s]=ru;}ru.attribs=at;if(ra)ru.requiredAttribs=ra;if(wat){s='';each(va,function(v){if(s)s+='|';s+='('+wildcardToRE(v)+')';});ru.validAttribsRE=new RegExp('^'+s.toLowerCase()+'$');ru.wildAttribs=wat;}});});s='';each(t.validElements,function(v,k){if(s)s+='|';if(k!='@')s+=k;});t.validElementsRE=new RegExp('^('+wildcardToRE(s.toLowerCase())+')$');},findRule:function(n){var t=this,rl=t.rules,i,r;t._setup();r=rl[n];if(r)return r;rl=t.wildRules;for(i=0;i<rl.length;i++){if(rl[i].nameRE.test(n))return rl[i];}return null;},findAttribRule:function(ru,n){var i,wa=ru.wildAttribs;for(i=0;i<wa.length;i++){if(wa[i].nameRE.test(n))return wa[i];}return null;},serialize:function(n,o){var h,t=this;t._setup();o=o||{};o.format=o.format||'html';t.processObj=o;n=n.cloneNode(true);t.key=''+(parseInt(t.key)+1);if(!o.no_events){o.node=n;t.onPreProcess.dispatch(t,o);}t.writer.reset();t._serializeNode(n,o.getInner);o.content=t.writer.getContent();if(!o.no_events)t.onPostProcess.dispatch(t,o);t._postProcess(o);o.node=null;return tinymce.trim(o.content);},_postProcess:function(o){var t=this,s=t.settings,h=o.content,sc=[],p;if(o.format=='html'){p=t._protect({content:h,patterns:[{pattern:/(<script[^>]*>)(.*?)(<\/script>)/g},{pattern:/(<style[^>]*>)(.*?)(<\/style>)/g},{pattern:/(<pre[^>]*>)(.*?)(<\/pre>)/g,encode:1},{pattern:/(<!--\[CDATA\[)(.*?)(\]\]-->)/g}]});h=p.content;if(s.entity_encoding!=='raw')h=t._encode(h);if(!o.set){h=h.replace(/<p>\s+<\/p>|<p([^>]+)>\s+<\/p>/g,s.entity_encoding=='numeric'?'<p$1>&#160;</p>':'<p$1>&nbsp;</p>');if(s.remove_linebreaks){h=h.replace(/\r?\n|\r/g,' ');h=h.replace(/(<[^>]+>)\s+/g,'$1 ');h=h.replace(/\s+(<\/[^>]+>)/g,' $1');h=h.replace(/<(p|h[1-6]|blockquote|hr|div|table|tbody|tr|td|body|head|html|title|meta|style|pre|script|link|object) ([^>]+)>\s+/g,'<$1 $2>');h=h.replace(/<(p|h[1-6]|blockquote|hr|div|table|tbody|tr|td|body|head|html|title|meta|style|pre|script|link|object)>\s+/g,'<$1>');h=h.replace(/\s+<\/(p|h[1-6]|blockquote|hr|div|table|tbody|tr|td|body|head|html|title|meta|style|pre|script|link|object)>/g,'</$1>');}if(s.apply_source_formatting&&s.indent_mode=='simple'){h=h.replace(/<(\/?)(ul|hr|table|meta|link|tbody|tr|object|body|head|html|map)(|[^>]+)>\s*/g,'\n<$1$2$3>\n');h=h.replace(/\s*<(p|h[1-6]|blockquote|div|title|style|pre|script|td|li|area)(|[^>]+)>/g,'\n<$1$2>');h=h.replace(/<\/(p|h[1-6]|blockquote|div|title|style|pre|script|td|li)>\s*/g,'</$1>\n');h=h.replace(/\n\n/g,'\n');}}h=t._unprotect(h,p);h=h.replace(/<!--\[CDATA\[([\s\S]+)\]\]-->/g,'<![CDATA[$1]]>');if(s.entity_encoding=='raw')h=h.replace(/<p>&nbsp;<\/p>|<p([^>]+)>&nbsp;<\/p>/g,'<p$1>\u00a0</p>');}o.content=h;},_serializeNode:function(n,inn){var t=this,s=t.settings,w=t.writer,hc,el,cn,i,l,a,at,no,v,nn,ru,ar,iv;if(!s.node_filter||s.node_filter(n)){switch(n.nodeType){case 1:if(n.hasAttribute?n.hasAttribute('mce_bogus'):n.getAttribute('mce_bogus'))return;iv=false;hc=n.hasChildNodes();nn=n.getAttribute('mce_name')||n.nodeName.toLowerCase();if(isIE){if(n.scopeName!=='HTML'&&n.scopeName!=='html')nn=n.scopeName+':'+nn;}if(nn.indexOf('mce:')===0)nn=nn.substring(4);if(!t.validElementsRE.test(nn)||(t.invalidElementsRE&&t.invalidElementsRE.test(nn))||inn){iv=true;break;}if(isIE){if(s.fix_content_duplication){if(n.mce_serialized==t.key)return;n.mce_serialized=t.key;}if(nn.charAt(0)=='/')nn=nn.substring(1);}else if(isGecko){if(n.nodeName==='BR'&&n.getAttribute('type')=='_moz')return;}if(t.childRules){if(t.parentElementsRE.test(t.elementName)){if(!t.childRules[t.elementName].test(nn)){iv=true;break;}}t.elementName=nn;}ru=t.findRule(nn);nn=ru.name||nn;if((!hc&&ru.noEmpty)||(isIE&&!nn)){iv=true;break;}if(ru.requiredAttribs){a=ru.requiredAttribs;for(i=a.length-1;i>=0;i--){if(this.dom.getAttrib(n,a[i])!=='')break;}if(i==-1){iv=true;break;}}w.writeStartElement(nn);if(ru.attribs){for(i=0,at=ru.attribs,l=at.length;i<l;i++){a=at[i];v=t._getAttrib(n,a);if(v!==null)w.writeAttribute(a.name,v);}}if(ru.validAttribsRE){at=isIE?getIEAtts(n):n.attributes;for(i=at.length-1;i>-1;i--){no=at[i];if(no.specified){a=no.nodeName.toLowerCase();if(s.invalid_attrs.test(a)||!ru.validAttribsRE.test(a))continue;ar=t.findAttribRule(ru,a);v=t._getAttrib(n,ar,a);if(v!==null)w.writeAttribute(a,v);}}}if(ru.padd){if(hc&&(cn=n.firstChild)&&cn.nodeType===1&&n.childNodes.length===1){if(cn.hasAttribute?cn.hasAttribute('mce_bogus'):cn.getAttribute('mce_bogus'))w.writeText('\u00a0');}else if(!hc)w.writeText('\u00a0');}break;case 3:if(t.childRules&&t.parentElementsRE.test(t.elementName)){if(!t.childRules[t.elementName].test(n.nodeName))return;}return w.writeText(n.nodeValue);case 4:return w.writeCDATA(n.nodeValue);case 8:return w.writeComment(n.nodeValue);}}else if(n.nodeType==1)hc=n.hasChildNodes();if(hc){cn=n.firstChild;while(cn){t._serializeNode(cn);t.elementName=nn;cn=cn.nextSibling;}}if(!iv){if(hc||!s.closed.test(nn))w.writeFullEndElement();else w.writeEndElement();}},_protect:function(o){var t=this;o.items=o.items||[];function enc(s){return s.replace(/[\r\n\\]/g,function(c){if(c==='\n')return'\\n';else if(c==='\\')return'\\\\';return'\\r';});};function dec(s){return s.replace(/\\[\\rn]/g,function(c){if(c==='\\n')return'\n';else if(c==='\\\\')return'\\';return'\r';});};each(o.patterns,function(p){o.content=dec(enc(o.content).replace(p.pattern,function(x,a,b,c){b=dec(b);if(p.encode)b=t._encode(b);o.items.push(b);return a+'<!--mce:'+(o.items.length-1)+'-->'+c;}));});return o;},_unprotect:function(h,o){h=h.replace(/\<!--mce:([0-9]+)--\>/g,function(a,b){return o.items[parseInt(b)];});o.items=[];return h;},_encode:function(h){var t=this,s=t.settings,l;if(s.entity_encoding!=='raw'){if(s.entity_encoding.indexOf('named')!=-1){t.setEntities(s.entities);l=t.entityLookup;h=h.replace(t.entitiesRE,function(a){var v;if(v=l[a])a='&'+v+';';return a;});}if(s.entity_encoding.indexOf('numeric')!=-1){h=h.replace(/[\u007E-\uFFFF]/g,function(a){return'&#'+a.charCodeAt(0)+';';});}}return h;},_setup:function(){var t=this,s=this.settings;if(t.done)return;t.done=1;t.setRules(s.valid_elements);t.addRules(s.extended_valid_elements);t.addValidChildRules(s.valid_child_elements);if(s.invalid_elements)t.invalidElementsRE=new RegExp('^('+wildcardToRE(s.invalid_elements.replace(/,/g,'|').toLowerCase())+')$');if(s.attrib_value_filter)t.attribValueFilter=s.attribValueFilter;},_getAttrib:function(n,a,na){var i,v;na=na||a.name;if(a.forcedVal&&(v=a.forcedVal)){if(v==='{$uid}')return this.dom.uniqueId();return v;}v=this.dom.getAttrib(n,na);if(this.settings.bool_attrs.test(na)&&v){v=(''+v).toLowerCase();if(v==='false'||v==='0')return null;v=na;}switch(na){case'rowspan':case'colspan':if(v=='1')v='';break;}if(this.attribValueFilter)v=this.attribValueFilter(na,v,n);if(a.validVals){for(i=a.validVals.length-1;i>=0;i--){if(v==a.validVals[i])break;}if(i==-1)return null;}if(v===''&&typeof(a.defaultVal)!='undefined'){v=a.defaultVal;if(v==='{$uid}')return this.dom.uniqueId();return v;}else{if(na=='class'&&this.processObj.get)v=v.replace(/\s?mceItem\w+\s?/g,'');}if(v==='')return null;return v;}});})();(function(){var each=tinymce.each,Event=tinymce.dom.Event;tinymce.create('tinymce.dom.ScriptLoader',{ScriptLoader:function(s){this.settings=s||{};this.queue=[];this.lookup={};},isDone:function(u){return this.lookup[u]?this.lookup[u].state==2:0;},markDone:function(u){this.lookup[u]={state:2,url:u};},add:function(u,cb,s,pr){var t=this,lo=t.lookup,o;if(o=lo[u]){if(cb&&o.state==2)cb.call(s||this);return o;}o={state:0,url:u,func:cb,scope:s||this};if(pr)t.queue.unshift(o);else t.queue.push(o);lo[u]=o;return o;},load:function(u,cb,s){var t=this,o;if(o=t.lookup[u]){if(cb&&o.state==2)cb.call(s||t);return o;}function loadScript(u){if(Event.domLoaded||t.settings.strict_mode){tinymce.util.XHR.send({url:tinymce._addVer(u),error:t.settings.error,async:false,success:function(co){t.eval(co);}});}else document.write('<script type="text/javascript" src="'+tinymce._addVer(u)+'"></script>');};if(!tinymce.is(u,'string')){each(u,function(u){loadScript(u);});if(cb)cb.call(s||t);}else{loadScript(u);if(cb)cb.call(s||t);}},loadQueue:function(cb,s){var t=this;if(!t.queueLoading){t.queueLoading=1;t.queueCallbacks=[];t.loadScripts(t.queue,function(){t.queueLoading=0;if(cb)cb.call(s||t);each(t.queueCallbacks,function(o){o.func.call(o.scope);});});}else if(cb)t.queueCallbacks.push({func:cb,scope:s||t});},eval:function(co){var w=window;if(!w.execScript){try{eval.call(w,co);}catch(ex){eval(co,w);}}else w.execScript(co);},loadScripts:function(sc,cb,s){var t=this,lo=t.lookup;function done(o){o.state=2;if(o.func)o.func.call(o.scope||t);};function allDone(){var l;l=sc.length;each(sc,function(o){o=lo[o.url];if(o.state===2){done(o);l--;}else load(o);});if(l===0&&cb){cb.call(s||t);cb=0;}};function load(o){if(o.state>0)return;o.state=1;tinymce.dom.ScriptLoader.loadScript(o.url,function(){done(o);allDone();});};each(sc,function(o){var u=o.url;if(!lo[u]){lo[u]=o;t.queue.push(o);}else o=lo[u];if(o.state>0)return;if(!Event.domLoaded&&!t.settings.strict_mode){var ix,ol='';if(cb||o.func){o.state=1;ix=tinymce.dom.ScriptLoader._addOnLoad(function(){done(o);allDone();});if(tinymce.isIE)ol=' onreadystatechange="';else ol=' onload="';ol+='tinymce.dom.ScriptLoader._onLoad(this,\''+u+'\','+ix+');"';}document.write('<script type="text/javascript" src="'+tinymce._addVer(u)+'"'+ol+'></script>');if(!o.func)done(o);}else load(o);});allDone();},'static':{_addOnLoad:function(f){var t=this;t._funcs=t._funcs||[];t._funcs.push(f);return t._funcs.length-1;},_onLoad:function(e,u,ix){if(!tinymce.isIE||e.readyState=='complete')this._funcs[ix].call(this);},loadScript:function(u,cb){var id=tinymce.DOM.uniqueId(),e;function done(){Event.clear(id);tinymce.DOM.remove(id);if(cb){cb.call(document,u);cb=0;}};if(tinymce.isIE){tinymce.util.XHR.send({url:tinymce._addVer(u),async:false,success:function(co){window.execScript(co);done();}});}else{e=tinymce.DOM.create('script',{id:id,type:'text/javascript',src:tinymce._addVer(u)});Event.add(e,'load',done);(document.getElementsByTagName('head')[0]||document.body).appendChild(e);}}}});tinymce.ScriptLoader=new tinymce.dom.ScriptLoader();})();(function(){var DOM=tinymce.DOM,is=tinymce.is;tinymce.create('tinymce.ui.Control',{Control:function(id,s){this.id=id;this.settings=s=s||{};this.rendered=false;this.onRender=new tinymce.util.Dispatcher(this);this.classPrefix='';this.scope=s.scope||this;this.disabled=0;this.active=0;},setDisabled:function(s){var e;if(s!=this.disabled){e=DOM.get(this.id);if(e&&this.settings.unavailable_prefix){if(s){this.prevTitle=e.title;e.title=this.settings.unavailable_prefix+": "+e.title;}else e.title=this.prevTitle;}this.setState('Disabled',s);this.setState('Enabled',!s);this.disabled=s;}},isDisabled:function(){return this.disabled;},setActive:function(s){if(s!=this.active){this.setState('Active',s);this.active=s;}},isActive:function(){return this.active;},setState:function(c,s){var n=DOM.get(this.id);c=this.classPrefix+c;if(s)DOM.addClass(n,c);else DOM.removeClass(n,c);},isRendered:function(){return this.rendered;},renderHTML:function(){},renderTo:function(n){DOM.setHTML(n,this.renderHTML());},postRender:function(){var t=this,b;if(is(t.disabled)){b=t.disabled;t.disabled=-1;t.setDisabled(b);}if(is(t.active)){b=t.active;t.active=-1;t.setActive(b);}},remove:function(){DOM.remove(this.id);this.destroy();},destroy:function(){tinymce.dom.Event.clear(this.id);}});})();tinymce.create('tinymce.ui.Container:tinymce.ui.Control',{Container:function(id,s){this.parent(id,s);this.controls=[];this.lookup={};},add:function(c){this.lookup[c.id]=c;this.controls.push(c);return c;},get:function(n){return this.lookup[n];}});tinymce.create('tinymce.ui.Separator:tinymce.ui.Control',{Separator:function(id,s){this.parent(id,s);this.classPrefix='mceSeparator';},renderHTML:function(){return tinymce.DOM.createHTML('span',{'class':this.classPrefix});}});(function(){var is=tinymce.is,DOM=tinymce.DOM,each=tinymce.each,walk=tinymce.walk;tinymce.create('tinymce.ui.MenuItem:tinymce.ui.Control',{MenuItem:function(id,s){this.parent(id,s);this.classPrefix='mceMenuItem';},setSelected:function(s){this.setState('Selected',s);this.selected=s;},isSelected:function(){return this.selected;},postRender:function(){var t=this;t.parent();if(is(t.selected))t.setSelected(t.selected);}});})();(function(){var is=tinymce.is,DOM=tinymce.DOM,each=tinymce.each,walk=tinymce.walk;tinymce.create('tinymce.ui.Menu:tinymce.ui.MenuItem',{Menu:function(id,s){var t=this;t.parent(id,s);t.items={};t.collapsed=false;t.menuCount=0;t.onAddItem=new tinymce.util.Dispatcher(this);},expand:function(d){var t=this;if(d){walk(t,function(o){if(o.expand)o.expand();},'items',t);}t.collapsed=false;},collapse:function(d){var t=this;if(d){walk(t,function(o){if(o.collapse)o.collapse();},'items',t);}t.collapsed=true;},isCollapsed:function(){return this.collapsed;},add:function(o){if(!o.settings)o=new tinymce.ui.MenuItem(o.id||DOM.uniqueId(),o);this.onAddItem.dispatch(this,o);return this.items[o.id]=o;},addSeparator:function(){return this.add({separator:true});},addMenu:function(o){if(!o.collapse)o=this.createMenu(o);this.menuCount++;return this.add(o);},hasMenus:function(){return this.menuCount!==0;},remove:function(o){delete this.items[o.id];},removeAll:function(){var t=this;walk(t,function(o){if(o.removeAll)o.removeAll();else o.remove();o.destroy();},'items',t);t.items={};},createMenu:function(o){var m=new tinymce.ui.Menu(o.id||DOM.uniqueId(),o);m.onAddItem.add(this.onAddItem.dispatch,this.onAddItem);return m;}});})();(function(){var is=tinymce.is,DOM=tinymce.DOM,each=tinymce.each,Event=tinymce.dom.Event,Element=tinymce.dom.Element;tinymce.create('tinymce.ui.DropMenu:tinymce.ui.Menu',{DropMenu:function(id,s){s=s||{};s.container=s.container||DOM.doc.body;s.offset_x=s.offset_x||0;s.offset_y=s.offset_y||0;s.vp_offset_x=s.vp_offset_x||0;s.vp_offset_y=s.vp_offset_y||0;if(is(s.icons)&&!s.icons)s['class']+=' mceNoIcons';this.parent(id,s);this.onShowMenu=new tinymce.util.Dispatcher(this);this.onHideMenu=new tinymce.util.Dispatcher(this);this.classPrefix='mceMenu';},createMenu:function(s){var t=this,cs=t.settings,m;s.container=s.container||cs.container;s.parent=t;s.constrain=s.constrain||cs.constrain;s['class']=s['class']||cs['class'];s.vp_offset_x=s.vp_offset_x||cs.vp_offset_x;s.vp_offset_y=s.vp_offset_y||cs.vp_offset_y;m=new tinymce.ui.DropMenu(s.id||DOM.uniqueId(),s);m.onAddItem.add(t.onAddItem.dispatch,t.onAddItem);return m;},update:function(){var t=this,s=t.settings,tb=DOM.get('menu_'+t.id+'_tbl'),co=DOM.get('menu_'+t.id+'_co'),tw,th;tw=s.max_width?Math.min(tb.clientWidth,s.max_width):tb.clientWidth;th=s.max_height?Math.min(tb.clientHeight,s.max_height):tb.clientHeight;if(!DOM.boxModel)t.element.setStyles({width:tw+2,height:th+2});else t.element.setStyles({width:tw,height:th});if(s.max_width)DOM.setStyle(co,'width',tw);if(s.max_height){DOM.setStyle(co,'height',th);if(tb.clientHeight<s.max_height)DOM.setStyle(co,'overflow','hidden');}},showMenu:function(x,y,px){var t=this,s=t.settings,co,vp=DOM.getViewPort(),w,h,mx,my,ot=2,dm,tb,cp=t.classPrefix;t.collapse(1);if(t.isMenuVisible)return;if(!t.rendered){co=DOM.add(t.settings.container,t.renderNode());each(t.items,function(o){o.postRender();});t.element=new Element('menu_'+t.id,{blocker:1,container:s.container});}else co=DOM.get('menu_'+t.id);if(!tinymce.isOpera)DOM.setStyles(co,{left:-0xFFFF,top:-0xFFFF});DOM.show(co);t.update();x+=s.offset_x||0;y+=s.offset_y||0;vp.w-=4;vp.h-=4;if(s.constrain){w=co.clientWidth-ot;h=co.clientHeight-ot;mx=vp.x+vp.w;my=vp.y+vp.h;if((x+s.vp_offset_x+w)>mx)x=px?px-w:Math.max(0,(mx-s.vp_offset_x)-w);if((y+s.vp_offset_y+h)>my)y=Math.max(0,(my-s.vp_offset_y)-h);}DOM.setStyles(co,{left:x,top:y});t.element.update();t.isMenuVisible=1;t.mouseClickFunc=Event.add(co,'click',function(e){var m;e=e.target;if(e&&(e=DOM.getParent(e,'TR'))&&!DOM.hasClass(e,cp+'ItemSub')){m=t.items[e.id];if(m.isDisabled())return;dm=t;while(dm){if(dm.hideMenu)dm.hideMenu();dm=dm.settings.parent;}if(m.settings.onclick)m.settings.onclick(e);return Event.cancel(e);}});if(t.hasMenus()){t.mouseOverFunc=Event.add(co,'mouseover',function(e){var m,r,mi;e=e.target;if(e&&(e=DOM.getParent(e,'TR'))){m=t.items[e.id];if(t.lastMenu)t.lastMenu.collapse(1);if(m.isDisabled())return;if(e&&DOM.hasClass(e,cp+'ItemSub')){r=DOM.getRect(e);m.showMenu((r.x+r.w-ot),r.y-ot,r.x);t.lastMenu=m;DOM.addClass(DOM.get(m.id).firstChild,cp+'ItemActive');}}});}t.onShowMenu.dispatch(t);if(s.keyboard_focus){Event.add(co,'keydown',t._keyHandler,t);DOM.select('a','menu_'+t.id)[0].focus();t._focusIdx=0;}},hideMenu:function(c){var t=this,co=DOM.get('menu_'+t.id),e;if(!t.isMenuVisible)return;Event.remove(co,'mouseover',t.mouseOverFunc);Event.remove(co,'click',t.mouseClickFunc);Event.remove(co,'keydown',t._keyHandler);DOM.hide(co);t.isMenuVisible=0;if(!c)t.collapse(1);if(t.element)t.element.hide();if(e=DOM.get(t.id))DOM.removeClass(e.firstChild,t.classPrefix+'ItemActive');t.onHideMenu.dispatch(t);},add:function(o){var t=this,co;o=t.parent(o);if(t.isRendered&&(co=DOM.get('menu_'+t.id)))t._add(DOM.select('tbody',co)[0],o);return o;},collapse:function(d){this.parent(d);this.hideMenu(1);},remove:function(o){DOM.remove(o.id);this.destroy();return this.parent(o);},destroy:function(){var t=this,co=DOM.get('menu_'+t.id);Event.remove(co,'mouseover',t.mouseOverFunc);Event.remove(co,'click',t.mouseClickFunc);if(t.element)t.element.remove();DOM.remove(co);},renderNode:function(){var t=this,s=t.settings,n,tb,co,w;w=DOM.create('div',{id:'menu_'+t.id,'class':s['class'],'style':'position:absolute;left:0;top:0;z-index:200000'});co=DOM.add(w,'div',{id:'menu_'+t.id+'_co','class':t.classPrefix+(s['class']?' '+s['class']:'')});t.element=new Element('menu_'+t.id,{blocker:1,container:s.container});if(s.menu_line)DOM.add(co,'span',{'class':t.classPrefix+'Line'});n=DOM.add(co,'table',{id:'menu_'+t.id+'_tbl',border:0,cellPadding:0,cellSpacing:0});tb=DOM.add(n,'tbody');each(t.items,function(o){t._add(tb,o);});t.rendered=true;return w;},_keyHandler:function(e){var t=this,kc=e.keyCode;function focus(d){var i=t._focusIdx+d,e=DOM.select('a','menu_'+t.id)[i];if(e){t._focusIdx=i;e.focus();}};switch(kc){case 38:focus(-1);return;case 40:focus(1);return;case 13:return;case 27:return this.hideMenu();}},_add:function(tb,o){var n,s=o.settings,a,ro,it,cp=this.classPrefix,ic;if(s.separator){ro=DOM.add(tb,'tr',{id:o.id,'class':cp+'ItemSeparator'});DOM.add(ro,'td',{'class':cp+'ItemSeparator'});if(n=ro.previousSibling)DOM.addClass(n,'mceLast');return;}n=ro=DOM.add(tb,'tr',{id:o.id,'class':cp+'Item '+cp+'ItemEnabled'});n=it=DOM.add(n,'td');n=a=DOM.add(n,'a',{href:'javascript:;',onclick:"return false;",onmousedown:'return false;'});DOM.addClass(it,s['class']);ic=DOM.add(n,'span',{'class':'mceIcon'+(s.icon?' mce_'+s.icon:'')});if(s.icon_src)DOM.add(ic,'img',{src:s.icon_src});n=DOM.add(n,s.element||'span',{'class':'mceText',title:o.settings.title},o.settings.title);if(o.settings.style)DOM.setAttrib(n,'style',o.settings.style);if(tb.childNodes.length==1)DOM.addClass(ro,'mceFirst');if((n=ro.previousSibling)&&DOM.hasClass(n,cp+'ItemSeparator'))DOM.addClass(ro,'mceFirst');if(o.collapse)DOM.addClass(ro,cp+'ItemSub');if(n=ro.previousSibling)DOM.removeClass(n,'mceLast');DOM.addClass(ro,'mceLast');}});})();(function(){var DOM=tinymce.DOM;tinymce.create('tinymce.ui.Button:tinymce.ui.Control',{Button:function(id,s){this.parent(id,s);this.classPrefix='mceButton';},renderHTML:function(){var cp=this.classPrefix,s=this.settings,h,l;l=DOM.encode(s.label||'');h='<a id="'+this.id+'" href="javascript:;" class="'+cp+' '+cp+'Enabled '+s['class']+(l?' '+cp+'Labeled':'')+'" onmousedown="return false;" onclick="return false;" title="'+DOM.encode(s.title)+'">';if(s.image)h+='<img class="mceIcon" src="'+s.image+'" />'+l+'</a>';else h+='<span class="mceIcon '+s['class']+'"></span>'+(l?'<span class="'+cp+'Label">'+l+'</span>':'')+'</a>';return h;},postRender:function(){var t=this,s=t.settings;tinymce.dom.Event.add(t.id,'click',function(e){if(!t.isDisabled())return s.onclick.call(s.scope,e);});}});})();(function(){var DOM=tinymce.DOM,Event=tinymce.dom.Event,each=tinymce.each,Dispatcher=tinymce.util.Dispatcher;tinymce.create('tinymce.ui.ListBox:tinymce.ui.Control',{ListBox:function(id,s){var t=this;t.parent(id,s);t.items=[];t.onChange=new Dispatcher(t);t.onPostRender=new Dispatcher(t);t.onAdd=new Dispatcher(t);t.onRenderMenu=new tinymce.util.Dispatcher(this);t.classPrefix='mceListBox';},select:function(va){var t=this,fv,f;if(va==undefined)return t.selectByIndex(-1);if(va&&va.call)f=va;else{f=function(v){return v==va;};}if(va!=t.selectedValue){each(t.items,function(o,i){if(f(o.value)){fv=1;t.selectByIndex(i);return false;}});if(!fv)t.selectByIndex(-1);}},selectByIndex:function(idx){var t=this,e,o;if(idx!=t.selectedIndex){e=DOM.get(t.id+'_text');o=t.items[idx];if(o){t.selectedValue=o.value;t.selectedIndex=idx;DOM.setHTML(e,DOM.encode(o.title));DOM.removeClass(e,'mceTitle');}else{DOM.setHTML(e,DOM.encode(t.settings.title));DOM.addClass(e,'mceTitle');t.selectedValue=t.selectedIndex=null;}e=0;}else t.selectedValue=t.selectedIndex=null;},add:function(n,v,o){var t=this;o=o||{};o=tinymce.extend(o,{title:n,value:v});t.items.push(o);t.onAdd.dispatch(t,o);},getLength:function(){return this.items.length;},renderHTML:function(){var h='',t=this,s=t.settings,cp=t.classPrefix;h='<table id="'+t.id+'" cellpadding="0" cellspacing="0" class="'+cp+' '+cp+'Enabled'+(s['class']?(' '+s['class']):'')+'"><tbody><tr>';h+='<td>'+DOM.createHTML('a',{id:t.id+'_text',href:'javascript:;','class':'mceText',onclick:"return false;",onmousedown:'return false;'},DOM.encode(t.settings.title))+'</td>';h+='<td>'+DOM.createHTML('a',{id:t.id+'_open',tabindex:-1,href:'javascript:;','class':'mceOpen',onclick:"return false;",onmousedown:'return false;'},'<span></span>')+'</td>';h+='</tr></tbody></table>';return h;},showMenu:function(){var t=this,p1,p2,e=DOM.get(this.id),m;if(t.isDisabled()||t.items.length==0)return;if(t.menu&&t.menu.isMenuVisible)return t.hideMenu();if(!t.isMenuRendered){t.renderMenu();t.isMenuRendered=true;}p1=DOM.getPos(this.settings.menu_container);p2=DOM.getPos(e);m=t.menu;m.settings.offset_x=p2.x;m.settings.offset_y=p2.y;m.settings.keyboard_focus=!tinymce.isOpera;if(t.oldID)m.items[t.oldID].setSelected(0);each(t.items,function(o){if(o.value===t.selectedValue){m.items[o.id].setSelected(1);t.oldID=o.id;}});m.showMenu(0,e.clientHeight);Event.add(DOM.doc,'mousedown',t.hideMenu,t);DOM.addClass(t.id,t.classPrefix+'Selected');},hideMenu:function(e){var t=this;if(e&&e.type=="mousedown"&&(e.target.id==t.id+'_text'||e.target.id==t.id+'_open'))return;if(!e||!DOM.getParent(e.target,function(n){return DOM.hasClass(n,'mceMenu');})){DOM.removeClass(t.id,t.classPrefix+'Selected');Event.remove(DOM.doc,'mousedown',t.hideMenu,t);if(t.menu)t.menu.hideMenu();}},renderMenu:function(){var t=this,m;m=t.settings.control_manager.createDropMenu(t.id+'_menu',{menu_line:1,'class':t.classPrefix+'Menu mceNoIcons',max_width:150,max_height:150});m.onHideMenu.add(t.hideMenu,t);m.add({title:t.settings.title,'class':'mceMenuItemTitle',onclick:function(){if(t.settings.onselect('')!==false)t.select('');}});each(t.items,function(o){o.id=DOM.uniqueId();o.onclick=function(){if(t.settings.onselect(o.value)!==false)t.select(o.value);};m.add(o);});t.onRenderMenu.dispatch(t,m);t.menu=m;},postRender:function(){var t=this,cp=t.classPrefix;Event.add(t.id,'click',t.showMenu,t);Event.add(t.id+'_text','focus',function(e){if(!t._focused){t.keyDownHandler=Event.add(t.id+'_text','keydown',function(e){var idx=-1,v,kc=e.keyCode;each(t.items,function(v,i){if(t.selectedValue==v.value)idx=i;});if(kc==38)v=t.items[idx-1];else if(kc==40)v=t.items[idx+1];else if(kc==13){v=t.selectedValue;t.selectedValue=null;t.settings.onselect(v);return Event.cancel(e);}if(v){t.hideMenu();t.select(v.value);}});}t._focused=1;});Event.add(t.id+'_text','blur',function(){Event.remove(t.id+'_text','keydown',t.keyDownHandler);t._focused=0;});if(tinymce.isIE6||!DOM.boxModel){Event.add(t.id,'mouseover',function(){if(!DOM.hasClass(t.id,cp+'Disabled'))DOM.addClass(t.id,cp+'Hover');});Event.add(t.id,'mouseout',function(){if(!DOM.hasClass(t.id,cp+'Disabled'))DOM.removeClass(t.id,cp+'Hover');});}t.onPostRender.dispatch(t,DOM.get(t.id));},destroy:function(){this.parent();Event.clear(this.id+'_text');}});})();(function(){var DOM=tinymce.DOM,Event=tinymce.dom.Event,each=tinymce.each,Dispatcher=tinymce.util.Dispatcher;tinymce.create('tinymce.ui.NativeListBox:tinymce.ui.ListBox',{NativeListBox:function(id,s){this.parent(id,s);this.classPrefix='mceNativeListBox';},setDisabled:function(s){DOM.get(this.id).disabled=s;},isDisabled:function(){return DOM.get(this.id).disabled;},select:function(va){var t=this,fv,f;if(va==undefined)return t.selectByIndex(-1);if(va&&va.call)f=va;else{f=function(v){return v==va;};}if(va!=t.selectedValue){each(t.items,function(o,i){if(f(o.value)){fv=1;t.selectByIndex(i);return false;}});if(!fv)t.selectByIndex(-1);}},selectByIndex:function(idx){DOM.get(this.id).selectedIndex=idx+1;this.selectedValue=this.items[idx]?this.items[idx].value:null;},add:function(n,v,a){var o,t=this;a=a||{};a.value=v;if(t.isRendered())DOM.add(DOM.get(this.id),'option',a,n);o={title:n,value:v,attribs:a};t.items.push(o);t.onAdd.dispatch(t,o);},getLength:function(){return DOM.get(this.id).options.length-1;},renderHTML:function(){var h,t=this;h=DOM.createHTML('option',{value:''},'-- '+t.settings.title+' --');each(t.items,function(it){h+=DOM.createHTML('option',{value:it.value},it.title);});h=DOM.createHTML('select',{id:t.id,'class':'mceNativeListBox'},h);return h;},postRender:function(){var t=this,ch;t.rendered=true;function onChange(e){var v=t.items[e.target.selectedIndex-1];if(v&&(v=v.value)){t.onChange.dispatch(t,v);if(t.settings.onselect)t.settings.onselect(v);}};Event.add(t.id,'change',onChange);Event.add(t.id,'keydown',function(e){var bf;Event.remove(t.id,'change',ch);bf=Event.add(t.id,'blur',function(){Event.add(t.id,'change',onChange);Event.remove(t.id,'blur',bf);});if(e.keyCode==13||e.keyCode==32){onChange(e);return Event.cancel(e);}});t.onPostRender.dispatch(t,DOM.get(t.id));}});})();(function(){var DOM=tinymce.DOM,Event=tinymce.dom.Event,each=tinymce.each;tinymce.create('tinymce.ui.MenuButton:tinymce.ui.Button',{MenuButton:function(id,s){this.parent(id,s);this.onRenderMenu=new tinymce.util.Dispatcher(this);s.menu_container=s.menu_container||DOM.doc.body;},showMenu:function(){var t=this,p1,p2,e=DOM.get(t.id),m;if(t.isDisabled())return;if(!t.isMenuRendered){t.renderMenu();t.isMenuRendered=true;}if(t.isMenuVisible)return t.hideMenu();p1=DOM.getPos(t.settings.menu_container);p2=DOM.getPos(e);m=t.menu;m.settings.offset_x=p2.x;m.settings.offset_y=p2.y;m.settings.vp_offset_x=p2.x;m.settings.vp_offset_y=p2.y;m.settings.keyboard_focus=t._focused;m.showMenu(0,e.clientHeight);Event.add(DOM.doc,'mousedown',t.hideMenu,t);t.setState('Selected',1);t.isMenuVisible=1;},renderMenu:function(){var t=this,m;m=t.settings.control_manager.createDropMenu(t.id+'_menu',{menu_line:1,'class':this.classPrefix+'Menu',icons:t.settings.icons});m.onHideMenu.add(t.hideMenu,t);t.onRenderMenu.dispatch(t,m);t.menu=m;},hideMenu:function(e){var t=this;if(e&&e.type=="mousedown"&&DOM.getParent(e.target,function(e){return e.id===t.id||e.id===t.id+'_open';}))return;if(!e||!DOM.getParent(e.target,function(n){return DOM.hasClass(n,'mceMenu');})){t.setState('Selected',0);Event.remove(DOM.doc,'mousedown',t.hideMenu,t);if(t.menu)t.menu.hideMenu();}t.isMenuVisible=0;},postRender:function(){var t=this,s=t.settings;Event.add(t.id,'click',function(){if(!t.isDisabled()){if(s.onclick)s.onclick(t.value);t.showMenu();}});}});})();(function(){var DOM=tinymce.DOM,Event=tinymce.dom.Event,each=tinymce.each;tinymce.create('tinymce.ui.SplitButton:tinymce.ui.MenuButton',{SplitButton:function(id,s){this.parent(id,s);this.classPrefix='mceSplitButton';},renderHTML:function(){var h,t=this,s=t.settings,h1;h='<tbody><tr>';if(s.image)h1=DOM.createHTML('img ',{src:s.image,'class':'mceAction '+s['class']});else h1=DOM.createHTML('span',{'class':'mceAction '+s['class']},'');h+='<td>'+DOM.createHTML('a',{id:t.id+'_action',href:'javascript:;','class':'mceAction '+s['class'],onclick:"return false;",onmousedown:'return false;',title:s.title},h1)+'</td>';h1=DOM.createHTML('span',{'class':'mceOpen '+s['class']});h+='<td>'+DOM.createHTML('a',{id:t.id+'_open',href:'javascript:;','class':'mceOpen '+s['class'],onclick:"return false;",onmousedown:'return false;',title:s.title},h1)+'</td>';h+='</tr></tbody>';return DOM.createHTML('table',{id:t.id,'class':'mceSplitButton mceSplitButtonEnabled '+s['class'],cellpadding:'0',cellspacing:'0',onmousedown:'return false;',title:s.title},h);},postRender:function(){var t=this,s=t.settings;if(s.onclick){Event.add(t.id+'_action','click',function(){if(!t.isDisabled())s.onclick(t.value);});}Event.add(t.id+'_open','click',t.showMenu,t);Event.add(t.id+'_open','focus',function(){t._focused=1;});Event.add(t.id+'_open','blur',function(){t._focused=0;});if(tinymce.isIE6||!DOM.boxModel){Event.add(t.id,'mouseover',function(){if(!DOM.hasClass(t.id,'mceSplitButtonDisabled'))DOM.addClass(t.id,'mceSplitButtonHover');});Event.add(t.id,'mouseout',function(){if(!DOM.hasClass(t.id,'mceSplitButtonDisabled'))DOM.removeClass(t.id,'mceSplitButtonHover');});}},destroy:function(){this.parent();Event.clear(this.id+'_action');Event.clear(this.id+'_open');}});})();(function(){var DOM=tinymce.DOM,Event=tinymce.dom.Event,is=tinymce.is,each=tinymce.each;tinymce.create('tinymce.ui.ColorSplitButton:tinymce.ui.SplitButton',{ColorSplitButton:function(id,s){var t=this;t.parent(id,s);t.settings=s=tinymce.extend({colors:'000000,993300,333300,003300,003366,000080,333399,333333,800000,FF6600,808000,008000,008080,0000FF,666699,808080,FF0000,FF9900,99CC00,339966,33CCCC,3366FF,800080,999999,FF00FF,FFCC00,FFFF00,00FF00,00FFFF,00CCFF,993366,C0C0C0,FF99CC,FFCC99,FFFF99,CCFFCC,CCFFFF,99CCFF,CC99FF,FFFFFF',grid_width:8,default_color:'#888888'},t.settings);t.onShowMenu=new tinymce.util.Dispatcher(t);t.onHideMenu=new tinymce.util.Dispatcher(t);t.value=s.default_color;},showMenu:function(){var t=this,r,p,e,p2;if(t.isDisabled())return;if(!t.isMenuRendered){t.renderMenu();t.isMenuRendered=true;}if(t.isMenuVisible)return t.hideMenu();e=DOM.get(t.id);DOM.show(t.id+'_menu');DOM.addClass(e,'mceSplitButtonSelected');p2=DOM.getPos(e);DOM.setStyles(t.id+'_menu',{left:p2.x,top:p2.y+e.clientHeight,zIndex:200000});e=0;Event.add(DOM.doc,'mousedown',t.hideMenu,t);if(t._focused){t._keyHandler=Event.add(t.id+'_menu','keydown',function(e){if(e.keyCode==27)t.hideMenu();});DOM.select('a',t.id+'_menu')[0].focus();}t.onShowMenu.dispatch(t);t.isMenuVisible=1;},hideMenu:function(e){var t=this;if(e&&e.type=="mousedown"&&DOM.getParent(e.target,function(e){return e.id===t.id+'_open';}))return;if(!e||!DOM.getParent(e.target,function(n){return DOM.hasClass(n,'mceSplitButtonMenu');})){DOM.removeClass(t.id,'mceSplitButtonSelected');Event.remove(DOM.doc,'mousedown',t.hideMenu,t);Event.remove(t.id+'_menu','keydown',t._keyHandler);DOM.hide(t.id+'_menu');}t.onHideMenu.dispatch(t);t.isMenuVisible=0;},renderMenu:function(){var t=this,m,i=0,s=t.settings,n,tb,tr,w;w=DOM.add(s.menu_container,'div',{id:t.id+'_menu','class':s['menu_class']+' '+s['class'],style:'position:absolute;left:0;top:-1000px;'});m=DOM.add(w,'div',{'class':s['class']+' mceSplitButtonMenu'});DOM.add(m,'span',{'class':'mceMenuLine'});n=DOM.add(m,'table',{'class':'mceColorSplitMenu'});tb=DOM.add(n,'tbody');i=0;each(is(s.colors,'array')?s.colors:s.colors.split(','),function(c){c=c.replace(/^#/,'');if(!i--){tr=DOM.add(tb,'tr');i=s.grid_width-1;}n=DOM.add(tr,'td');n=DOM.add(n,'a',{href:'javascript:;',style:{backgroundColor:'#'+c},mce_color:'#'+c});});if(s.more_colors_func){n=DOM.add(tb,'tr');n=DOM.add(n,'td',{colspan:s.grid_width,'class':'mceMoreColors'});n=DOM.add(n,'a',{id:t.id+'_more',href:'javascript:;',onclick:'return false;','class':'mceMoreColors'},s.more_colors_title);Event.add(n,'click',function(e){s.more_colors_func.call(s.more_colors_scope||this);return Event.cancel(e);});}DOM.addClass(m,'mceColorSplitMenu');Event.add(t.id+'_menu','click',function(e){var c;e=e.target;if(e.nodeName=='A'&&(c=e.getAttribute('mce_color')))t.setColor(c);return Event.cancel(e);});return w;},setColor:function(c){var t=this;DOM.setStyle(t.id+'_preview','backgroundColor',c);t.value=c;t.hideMenu();t.settings.onselect(c);},postRender:function(){var t=this,id=t.id;t.parent();DOM.add(id+'_action','div',{id:id+'_preview','class':'mceColorPreview'});DOM.setStyle(t.id+'_preview','backgroundColor',t.value);},destroy:function(){this.parent();Event.clear(this.id+'_menu');Event.clear(this.id+'_more');DOM.remove(this.id+'_menu');}});})();tinymce.create('tinymce.ui.Toolbar:tinymce.ui.Container',{renderHTML:function(){var t=this,h='',c,co,dom=tinymce.DOM,s=t.settings,i,pr,nx,cl;cl=t.controls;for(i=0;i<cl.length;i++){co=cl[i];pr=cl[i-1];nx=cl[i+1];if(i===0){c='mceToolbarStart';if(co.Button)c+=' mceToolbarStartButton';else if(co.SplitButton)c+=' mceToolbarStartSplitButton';else if(co.ListBox)c+=' mceToolbarStartListBox';h+=dom.createHTML('td',{'class':c},dom.createHTML('span',null,'<!-- IE -->'));}if(pr&&co.ListBox){if(pr.Button||pr.SplitButton)h+=dom.createHTML('td',{'class':'mceToolbarEnd'},dom.createHTML('span',null,'<!-- IE -->'));}if(dom.stdMode)h+='<td style="position: relative">'+co.renderHTML()+'</td>';else h+='<td>'+co.renderHTML()+'</td>';if(nx&&co.ListBox){if(nx.Button||nx.SplitButton)h+=dom.createHTML('td',{'class':'mceToolbarStart'},dom.createHTML('span',null,'<!-- IE -->'));}}c='mceToolbarEnd';if(co.Button)c+=' mceToolbarEndButton';else if(co.SplitButton)c+=' mceToolbarEndSplitButton';else if(co.ListBox)c+=' mceToolbarEndListBox';h+=dom.createHTML('td',{'class':c},dom.createHTML('span',null,'<!-- IE -->'));return dom.createHTML('table',{id:t.id,'class':'mceToolbar'+(s['class']?' '+s['class']:''),cellpadding:'0',cellspacing:'0',align:t.settings.align||''},'<tbody><tr>'+h+'</tr></tbody>');}});(function(){var Dispatcher=tinymce.util.Dispatcher,each=tinymce.each;tinymce.create('tinymce.AddOnManager',{items:[],urls:{},lookup:{},onAdd:new Dispatcher(this),get:function(n){return this.lookup[n];},requireLangPack:function(n){var u,s=tinymce.EditorManager.settings;if(s&&s.language){u=this.urls[n]+'/langs/'+s.language+'.js';if(!tinymce.dom.Event.domLoaded&&!s.strict_mode)tinymce.ScriptLoader.load(u);else tinymce.ScriptLoader.add(u);}},add:function(id,o){this.items.push(o);this.lookup[id]=o;this.onAdd.dispatch(this,id,o);return o;},load:function(n,u,cb,s){var t=this;if(t.urls[n])return;if(u.indexOf('/')!=0&&u.indexOf('://')==-1)u=tinymce.baseURL+'/'+u;t.urls[n]=u.substring(0,u.lastIndexOf('/'));tinymce.ScriptLoader.add(u,cb,s);}});tinymce.PluginManager=new tinymce.AddOnManager();tinymce.ThemeManager=new tinymce.AddOnManager();}());(function(){var each=tinymce.each,extend=tinymce.extend,DOM=tinymce.DOM,Event=tinymce.dom.Event,ThemeManager=tinymce.ThemeManager,PluginManager=tinymce.PluginManager,explode=tinymce.explode;tinymce.create('static tinymce.EditorManager',{editors:{},i18n:{},activeEditor:null,preInit:function(){var t=this,lo=window.location;tinymce.documentBaseURL=lo.href.replace(/[\?#].*$/,'').replace(/[\/\\][^\/]+$/,'');if(!/[\/\\]$/.test(tinymce.documentBaseURL))tinymce.documentBaseURL+='/';tinymce.baseURL=new tinymce.util.URI(tinymce.documentBaseURL).toAbsolute(tinymce.baseURL);tinymce.EditorManager.baseURI=new tinymce.util.URI(tinymce.baseURL);if(document.domain&&lo.hostname!=document.domain)tinymce.relaxedDomain=document.domain;if(!tinymce.relaxedDomain&&tinymce.EditorManager.baseURI.host!=lo.hostname&&lo.hostname)document.domain=tinymce.relaxedDomain=lo.hostname.replace(/.*\.(.+\..+)$/,'$1');t.onBeforeUnload=new tinymce.util.Dispatcher(t);Event.add(window,'beforeunload',function(e){t.onBeforeUnload.dispatch(t,e);});},init:function(s){var t=this,pl,sl=tinymce.ScriptLoader,c,e,el=[],ed;function execCallback(se,n,s){var f=se[n];if(!f)return;if(tinymce.is(f,'string')){s=f.replace(/\.\w+$/,'');s=s?tinymce.resolve(s):0;f=tinymce.resolve(f);}return f.apply(s||this,Array.prototype.slice.call(arguments,2));};s=extend({theme:"simple",language:"en",strict_loading_mode:document.contentType=='application/xhtml+xml'},s);t.settings=s;if(!Event.domLoaded&&!s.strict_loading_mode){if(s.language)sl.add(tinymce.baseURL+'/langs/'+s.language+'.js');if(s.theme&&s.theme.charAt(0)!='-'&&!ThemeManager.urls[s.theme])ThemeManager.load(s.theme,'themes/'+s.theme+'/editor_template'+tinymce.suffix+'.js');if(s.plugins){pl=explode(s.plugins);if(tinymce.inArray(pl,'compat2x')!=-1)PluginManager.load('compat2x','plugins/compat2x/editor_plugin'+tinymce.suffix+'.js');each(pl,function(v){if(v&&v.charAt(0)!='-'&&!PluginManager.urls[v]){if(!tinymce.isWebKit&&v=='safari')return;PluginManager.load(v,'plugins/'+v+'/editor_plugin'+tinymce.suffix+'.js');}});}sl.loadQueue();}Event.add(document,'init',function(){var l,co;execCallback(s,'onpageload');if(s.browsers){l=false;each(explode(s.browsers),function(v){switch(v){case'ie':case'msie':if(tinymce.isIE)l=true;break;case'gecko':if(tinymce.isGecko)l=true;break;case'safari':case'webkit':if(tinymce.isWebKit)l=true;break;case'opera':if(tinymce.isOpera)l=true;break;}});if(!l)return;}switch(s.mode){case"exact":l=s.elements||'';if(l.length>0){each(explode(l),function(v){if(DOM.get(v)){ed=new tinymce.Editor(v,s);el.push(ed);ed.render(1);}else{c=0;each(document.forms,function(f){each(f.elements,function(e){if(e.name===v){v='mce_editor_'+c;DOM.setAttrib(e,'id',v);ed=new tinymce.Editor(v,s);el.push(ed);ed.render(1);}});});}});}break;case"textareas":case"specific_textareas":function hasClass(n,c){return c.constructor===RegExp?c.test(n.className):DOM.hasClass(n,c);};each(DOM.select('textarea'),function(v){if(s.editor_deselector&&hasClass(v,s.editor_deselector))return;if(!s.editor_selector||hasClass(v,s.editor_selector)){e=DOM.get(v.name);if(!v.id&&!e)v.id=v.name;if(!v.id||t.get(v.id))v.id=DOM.uniqueId();ed=new tinymce.Editor(v.id,s);el.push(ed);ed.render(1);}});break;}if(s.oninit){l=co=0;each(el,function(ed){co++;if(!ed.initialized){ed.onInit.add(function(){l++;if(l==co)execCallback(s,'oninit');});}else l++;if(l==co)execCallback(s,'oninit');});}});},get:function(id){return this.editors[id];},getInstanceById:function(id){return this.get(id);},add:function(e){this.editors[e.id]=e;this._setActive(e);return e;},remove:function(e){var t=this;if(!t.editors[e.id])return null;delete t.editors[e.id];if(t.activeEditor==e){each(t.editors,function(e){t._setActive(e);return false;});}e.destroy();return e;},execCommand:function(c,u,v){var t=this,ed=t.get(v),w;switch(c){case"mceFocus":ed.focus();return true;case"mceAddEditor":case"mceAddControl":if(!t.get(v))new tinymce.Editor(v,t.settings).render();return true;case"mceAddFrameControl":w=v.window;w.tinyMCE=tinyMCE;w.tinymce=tinymce;tinymce.DOM.doc=w.document;tinymce.DOM.win=w;ed=new tinymce.Editor(v.element_id,v);ed.render();if(tinymce.isIE){function clr(){ed.destroy();w.detachEvent('onunload',clr);w=w.tinyMCE=w.tinymce=null;};w.attachEvent('onunload',clr);}v.page_window=null;return true;case"mceRemoveEditor":case"mceRemoveControl":if(ed)ed.remove();return true;case'mceToggleEditor':if(!ed){t.execCommand('mceAddControl',0,v);return true;}if(ed.isHidden())ed.show();else ed.hide();return true;}if(t.activeEditor)return t.activeEditor.execCommand(c,u,v);return false;},execInstanceCommand:function(id,c,u,v){var ed=this.get(id);if(ed)return ed.execCommand(c,u,v);return false;},triggerSave:function(){each(this.editors,function(e){e.save();});},addI18n:function(p,o){var lo,i18n=this.i18n;if(!tinymce.is(p,'string')){each(p,function(o,lc){each(o,function(o,g){each(o,function(o,k){if(g==='common')i18n[lc+'.'+k]=o;else i18n[lc+'.'+g+'.'+k]=o;});});});}else{each(o,function(o,k){i18n[p+'.'+k]=o;});}},_setActive:function(e){this.selectedInstance=this.activeEditor=e;}});tinymce.EditorManager.preInit();})();var tinyMCE=window.tinyMCE=tinymce.EditorManager;(function(){var DOM=tinymce.DOM,Event=tinymce.dom.Event,extend=tinymce.extend,Dispatcher=tinymce.util.Dispatcher;var each=tinymce.each,isGecko=tinymce.isGecko,isIE=tinymce.isIE,isWebKit=tinymce.isWebKit;var is=tinymce.is,ThemeManager=tinymce.ThemeManager,PluginManager=tinymce.PluginManager,EditorManager=tinymce.EditorManager;var inArray=tinymce.inArray,grep=tinymce.grep,explode=tinymce.explode;tinymce.create('tinymce.Editor',{Editor:function(id,s){var t=this;t.id=t.editorId=id;t.execCommands={};t.queryStateCommands={};t.queryValueCommands={};t.plugins={};each(['onPreInit','onBeforeRenderUI','onPostRender','onInit','onRemove','onActivate','onDeactivate','onClick','onEvent','onMouseUp','onMouseDown','onDblClick','onKeyDown','onKeyUp','onKeyPress','onContextMenu','onSubmit','onReset','onPaste','onPreProcess','onPostProcess','onBeforeSetContent','onBeforeGetContent','onSetContent','onGetContent','onLoadContent','onSaveContent','onNodeChange','onChange','onBeforeExecCommand','onExecCommand','onUndo','onRedo','onVisualAid','onSetProgressState'],function(e){t[e]=new Dispatcher(t);});t.settings=s=extend({id:id,language:'en',docs_language:'en',theme:'simple',skin:'default',delta_width:0,delta_height:0,popup_css:'',plugins:'',document_base_url:tinymce.documentBaseURL,add_form_submit_trigger:1,submit_patch:1,add_unload_trigger:1,convert_urls:1,relative_urls:1,remove_script_host:1,table_inline_editing:0,object_resizing:1,cleanup:1,accessibility_focus:1,custom_shortcuts:1,custom_undo_redo_keyboard_shortcuts:1,custom_undo_redo_restore_selection:1,custom_undo_redo:1,doctype:'<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">',visual_table_class:'mceItemTable',visual:1,inline_styles:true,convert_fonts_to_spans:true,font_size_style_values:'xx-small,x-small,small,medium,large,x-large,xx-large',apply_source_formatting:1,directionality:'ltr',forced_root_block:'p',valid_elements:'@[id|class|style|title|dir<ltr?rtl|lang|xml::lang|onclick|ondblclick|onmousedown|onmouseup|onmouseover|onmousemove|onmouseout|onkeypress|onkeydown|onkeyup],a[rel|rev|charset|hreflang|tabindex|accesskey|type|name|href|target|title|class|onfocus|onblur],strong/b,em/i,strike,u,#p[align],-ol[type|compact],-ul[type|compact],-li,br,img[longdesc|usemap|src|border|alt=|title|hspace|vspace|width|height|align],-sub,-sup,-blockquote[cite],-table[border=0|cellspacing|cellpadding|width|frame|rules|height|align|summary|bgcolor|background|bordercolor],-tr[rowspan|width|height|align|valign|bgcolor|background|bordercolor],tbody,thead,tfoot,#td[colspan|rowspan|width|height|align|valign|bgcolor|background|bordercolor|scope],#th[colspan|rowspan|width|height|align|valign|scope],caption,-div,-span,-code,-pre,address,-h1,-h2,-h3,-h4,-h5,-h6,hr[size|noshade],-font[face|size|color],dd,dl,dt,cite,abbr,acronym,del[datetime|cite],ins[datetime|cite],object[classid|width|height|codebase|*],param[name|value],embed[type|width|height|src|*],script[src|type],map[name],area[shape|coords|href|alt|target],bdo,button,col[align|char|charoff|span|valign|width],colgroup[align|char|charoff|span|valign|width],dfn,fieldset,form[action|accept|accept-charset|enctype|method],input[accept|alt|checked|disabled|maxlength|name|readonly|size|src|type|value|tabindex|accesskey],kbd,label[for],legend,noscript,optgroup[label|disabled],option[disabled|label|selected|value],q[cite],samp,select[disabled|multiple|name|size],small,textarea[cols|rows|disabled|name|readonly],tt,var,big',hidden_input:1,padd_empty_editor:1,render_ui:1,init_theme:1,force_p_newlines:1,indentation:'30px',keep_styles:1},s);t.documentBaseURI=new tinymce.util.URI(s.document_base_url||tinymce.documentBaseURL,{base_uri:tinyMCE.baseURI});t.baseURI=EditorManager.baseURI;t.execCallback('setup',t);},render:function(nst){var t=this,s=t.settings,id=t.id,sl=tinymce.ScriptLoader;if(!Event.domLoaded){Event.add(document,'init',function(){t.render();});return;}if(!nst){s.strict_loading_mode=1;tinyMCE.settings=s;}if(!t.getElement())return;if(s.strict_loading_mode){sl.settings.strict_mode=s.strict_loading_mode;tinymce.DOM.settings.strict=1;}if(!/TEXTAREA|INPUT/i.test(t.getElement().nodeName)&&s.hidden_input&&DOM.getParent(id,'form'))DOM.insertAfter(DOM.create('input',{type:'hidden',name:id}),id);t.windowManager=new tinymce.WindowManager(t);if(s.encoding=='xml'){t.onGetContent.add(function(ed,o){if(o.save)o.content=DOM.encode(o.content);});}if(s.add_form_submit_trigger){t.onSubmit.addToTop(function(){if(t.initialized){t.save();t.isNotDirty=1;}});}if(s.add_unload_trigger&&!s.ask){t._beforeUnload=tinyMCE.onBeforeUnload.add(function(){if(t.initialized&&!t.destroyed&&!t.isHidden())t.save({format:'raw',no_events:true});});}tinymce.addUnload(t.destroy,t);if(s.submit_patch){t.onBeforeRenderUI.add(function(){var n=t.getElement().form;if(!n)return;if(n._mceOldSubmit)return;if(!n.submit.nodeType&&!n.submit.length){t.formElement=n;n._mceOldSubmit=n.submit;n.submit=function(){EditorManager.triggerSave();t.isNotDirty=1;return this._mceOldSubmit(this);};}n=null;});}function loadScripts(){if(s.language)sl.add(tinymce.baseURL+'/langs/'+s.language+'.js');if(s.theme.charAt(0)!='-'&&!ThemeManager.urls[s.theme])ThemeManager.load(s.theme,'themes/'+s.theme+'/editor_template'+tinymce.suffix+'.js');each(explode(s.plugins),function(p){if(p&&p.charAt(0)!='-'&&!PluginManager.urls[p]){if(!isWebKit&&p=='safari')return;PluginManager.load(p,'plugins/'+p+'/editor_plugin'+tinymce.suffix+'.js');}});sl.loadQueue(function(){if(s.ask){function ask(){window.setTimeout(function(){Event.remove(t.id,'focus',ask);t.windowManager.confirm(t.getLang('edit_confirm'),function(s){if(s)t.init();});},0);};Event.add(t.id,'focus',ask);return;}if(!t.removed)t.init();});};if(s.plugins.indexOf('compat2x')!=-1){PluginManager.load('compat2x','plugins/compat2x/editor_plugin'+tinymce.suffix+'.js');sl.loadQueue(loadScripts);}else loadScripts();},init:function(){var n,t=this,s=t.settings,w,h,e=t.getElement(),o,ti,u,bi,bc,re;EditorManager.add(t);s.theme=s.theme.replace(/-/,'');o=ThemeManager.get(s.theme);t.theme=new o();if(t.theme.init&&s.init_theme)t.theme.init(t,ThemeManager.urls[s.theme]||tinymce.documentBaseURL.replace(/\/$/,''));each(explode(s.plugins.replace(/\-/g,'')),function(p){var c=PluginManager.get(p),u=PluginManager.urls[p]||tinymce.documentBaseURL.replace(/\/$/,''),po;if(c){po=new c(t,u);t.plugins[p]=po;if(po.init)po.init(t,u);}});if(s.popup_css!==false){if(s.popup_css)s.popup_css=t.documentBaseURI.toAbsolute(s.popup_css);else s.popup_css=t.baseURI.toAbsolute("themes/"+s.theme+"/skins/"+s.skin+"/dialog.css");}if(s.popup_css_add)s.popup_css+=','+t.documentBaseURI.toAbsolute(s.popup_css_add);t.controlManager=new tinymce.ControlManager(t);t.undoManager=new tinymce.UndoManager(t);t.undoManager.onAdd.add(function(um,l){if(!l.initial)return t.onChange.dispatch(t,l,um);});t.undoManager.onUndo.add(function(um,l){return t.onUndo.dispatch(t,l,um);});t.undoManager.onRedo.add(function(um,l){return t.onRedo.dispatch(t,l,um);});if(s.custom_undo_redo){t.onExecCommand.add(function(ed,cmd,ui,val,a){if(cmd!='Undo'&&cmd!='Redo'&&cmd!='mceRepaint'&&(!a||!a.skip_undo))t.undoManager.add();});}t.onExecCommand.add(function(ed,c){if(!/^(FontName|FontSize)$/.test(c))t.nodeChanged();});if(isGecko){function repaint(a,o){if(!o||!o.initial)t.execCommand('mceRepaint');};t.onUndo.add(repaint);t.onRedo.add(repaint);t.onSetContent.add(repaint);}t.onBeforeRenderUI.dispatch(t,t.controlManager);if(s.render_ui){w=s.width||e.style.width||e.offsetWidth;h=s.height||e.style.height||e.offsetHeight;t.orgDisplay=e.style.display;re=/^[0-9\.]+(|px)$/i;if(re.test(''+w))w=Math.max(parseInt(w)+(o.deltaWidth||0),100);if(re.test(''+h))h=Math.max(parseInt(h)+(o.deltaHeight||0),100);o=t.theme.renderUI({targetNode:e,width:w,height:h,deltaWidth:s.delta_width,deltaHeight:s.delta_height});t.editorContainer=o.editorContainer;}DOM.setStyles(o.sizeContainer||o.editorContainer,{width:w,height:h});h=(o.iframeHeight||h)+(typeof(h)=='number'?(o.deltaHeight||0):'');if(h<100)h=100;t.iframeHTML=s.doctype+'<html><head xmlns="http://www.w3.org/1999/xhtml"><base href="'+t.documentBaseURI.getURI()+'" />';t.iframeHTML+='<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />';if(tinymce.relaxedDomain)t.iframeHTML+='<script type="text/javascript">document.domain = "'+tinymce.relaxedDomain+'";</script>';bi=s.body_id||'tinymce';if(bi.indexOf('=')!=-1){bi=t.getParam('body_id','','hash');bi=bi[t.id]||bi;}bc=s.body_class||'';if(bc.indexOf('=')!=-1){bc=t.getParam('body_class','','hash');bc=bc[t.id]||'';}t.iframeHTML+='</head><body id="'+bi+'" class="mceContentBody '+bc+'"></body></html>';if(tinymce.relaxedDomain){if(isIE||(tinymce.isOpera&&parseFloat(opera.version())>=9.5))u='javascript:(function(){document.open();document.domain="'+document.domain+'";var ed = window.parent.tinyMCE.get("'+t.id+'");document.write(ed.iframeHTML);document.close();ed.setupIframe();})()';else if(tinymce.isOpera)u='javascript:(function(){document.open();document.domain="'+document.domain+'";document.close();ed.setupIframe();})()';}n=DOM.add(o.iframeContainer,'iframe',{id:t.id+"_ifr",src:u||'javascript:""',frameBorder:'0',style:{width:'100%',height:h}});t.contentAreaContainer=o.iframeContainer;DOM.get(o.editorContainer).style.display=t.orgDisplay;DOM.get(t.id).style.display='none';if(tinymce.isOldWebKit){Event.add(n,'load',t.setupIframe,t);n.src=tinymce.baseURL+'/plugins/safari/blank.htm';}else{if(!isIE||!tinymce.relaxedDomain)t.setupIframe();e=n=o=null;}},setupIframe:function(){var t=this,s=t.settings,e=DOM.get(t.id),d=t.getDoc(),h,b;if(!isIE||!tinymce.relaxedDomain){d.open();d.write(t.iframeHTML);d.close();}if(!isIE){try{if(!s.readonly)d.designMode='On';}catch(ex){}}if(isIE){b=t.getBody();DOM.hide(b);if(!s.readonly)b.contentEditable=true;DOM.show(b);}t.dom=new tinymce.DOM.DOMUtils(t.getDoc(),{keep_values:true,url_converter:t.convertURL,url_converter_scope:t,hex_colors:s.force_hex_style_colors,class_filter:s.class_filter,update_styles:1,fix_ie_paragraphs:1});t.serializer=new tinymce.dom.Serializer({entity_encoding:s.entity_encoding,entities:s.entities,valid_elements:s.verify_html===false?'*[*]':s.valid_elements,extended_valid_elements:s.extended_valid_elements,valid_child_elements:s.valid_child_elements,invalid_elements:s.invalid_elements,fix_table_elements:s.fix_table_elements,fix_list_elements:s.fix_list_elements,fix_content_duplication:s.fix_content_duplication,convert_fonts_to_spans:s.convert_fonts_to_spans,font_size_classes:s.font_size_classes,font_size_style_values:s.font_size_style_values,apply_source_formatting:s.apply_source_formatting,remove_linebreaks:s.remove_linebreaks,element_format:s.element_format,dom:t.dom});t.selection=new tinymce.dom.Selection(t.dom,t.getWin(),t.serializer);t.forceBlocks=new tinymce.ForceBlocks(t,{forced_root_block:s.forced_root_block});t.editorCommands=new tinymce.EditorCommands(t);t.serializer.onPreProcess.add(function(se,o){return t.onPreProcess.dispatch(t,o,se);});t.serializer.onPostProcess.add(function(se,o){return t.onPostProcess.dispatch(t,o,se);});t.onPreInit.dispatch(t);if(!s.gecko_spellcheck)t.getBody().spellcheck=0;if(!s.readonly)t._addEvents();t.controlManager.onPostRender.dispatch(t,t.controlManager);t.onPostRender.dispatch(t);if(s.directionality)t.getBody().dir=s.directionality;if(s.nowrap)t.getBody().style.whiteSpace="nowrap";if(s.auto_resize)t.onNodeChange.add(t.resizeToContent,t);if(s.custom_elements){function handleCustom(ed,o){each(explode(s.custom_elements),function(v){var n;if(v.indexOf('~')===0){v=v.substring(1);n='span';}else n='div';o.content=o.content.replace(new RegExp('<('+v+')([^>]*)>','g'),'<'+n+' mce_name="$1"$2>');o.content=o.content.replace(new RegExp('</('+v+')>','g'),'</'+n+'>');});};t.onBeforeSetContent.add(handleCustom);t.onPostProcess.add(function(ed,o){if(o.set)handleCustom(ed,o)});}if(s.handle_node_change_callback){t.onNodeChange.add(function(ed,cm,n){t.execCallback('handle_node_change_callback',t.id,n,-1,-1,true,t.selection.isCollapsed());});}if(s.save_callback){t.onSaveContent.add(function(ed,o){var h=t.execCallback('save_callback',t.id,o.content,t.getBody());if(h)o.content=h;});}if(s.onchange_callback){t.onChange.add(function(ed,l){t.execCallback('onchange_callback',t,l);});}if(s.convert_newlines_to_brs){t.onBeforeSetContent.add(function(ed,o){if(o.initial)o.content=o.content.replace(/\r?\n/g,'<br />');});}if(s.fix_nesting&&isIE){t.onBeforeSetContent.add(function(ed,o){o.content=t._fixNesting(o.content);});}if(s.preformatted){t.onPostProcess.add(function(ed,o){o.content=o.content.replace(/^\s*<pre.*?>/,'');o.content=o.content.replace(/<\/pre>\s*$/,'');if(o.set)o.content='<pre class="mceItemHidden">'+o.content+'</pre>';});}if(s.verify_css_classes){t.serializer.attribValueFilter=function(n,v){var s,cl;if(n=='class'){if(!t.classesRE){cl=t.dom.getClasses();if(cl.length>0){s='';each(cl,function(o){s+=(s?'|':'')+o['class'];});t.classesRE=new RegExp('('+s+')','gi');}}return!t.classesRE||/(\bmceItem\w+\b|\bmceTemp\w+\b)/g.test(v)||t.classesRE.test(v)?v:'';}return v;};}if(s.convert_fonts_to_spans)t._convertFonts();if(s.inline_styles)t._convertInlineElements();if(s.cleanup_callback){t.onBeforeSetContent.add(function(ed,o){o.content=t.execCallback('cleanup_callback','insert_to_editor',o.content,o);});t.onPreProcess.add(function(ed,o){if(o.set)t.execCallback('cleanup_callback','insert_to_editor_dom',o.node,o);if(o.get)t.execCallback('cleanup_callback','get_from_editor_dom',o.node,o);});t.onPostProcess.add(function(ed,o){if(o.set)o.content=t.execCallback('cleanup_callback','insert_to_editor',o.content,o);if(o.get)o.content=t.execCallback('cleanup_callback','get_from_editor',o.content,o);});}if(s.save_callback){t.onGetContent.add(function(ed,o){if(o.save)o.content=t.execCallback('save_callback',t.id,o.content,t.getBody());});}if(s.handle_event_callback){t.onEvent.add(function(ed,e,o){if(t.execCallback('handle_event_callback',e,ed,o)===false)Event.cancel(e);});}t.onSetContent.add(function(){t.addVisual(t.getBody());});if(s.padd_empty_editor){t.onPostProcess.add(function(ed,o){o.content=o.content.replace(/^(<p[^>]*>(&nbsp;|&#160;|\s|\u00a0|)<\/p>[\r\n]*|<br \/>[\r\n]*)$/,'');});}if(isGecko&&!s.readonly){try{d.designMode='Off';d.designMode='On';}catch(ex){}}setTimeout(function(){if(t.removed)return;t.load({initial:true,format:(s.cleanup_on_startup?'html':'raw')});t.startContent=t.getContent({format:'raw'});t.undoManager.add({initial:true});t.initialized=true;t.onInit.dispatch(t);t.execCallback('setupcontent_callback',t.id,t.getBody(),t.getDoc());t.execCallback('init_instance_callback',t);t.focus(true);t.nodeChanged({initial:1});if(s.content_css){tinymce.each(explode(s.content_css),function(u){t.dom.loadCSS(t.documentBaseURI.toAbsolute(u));});}if(s.auto_focus){setTimeout(function(){var ed=EditorManager.get(s.auto_focus);ed.selection.select(ed.getBody(),1);ed.selection.collapse(1);ed.getWin().focus();},100);}},1);e=null;},focus:function(sf){var oed,t=this,ce=t.settings.content_editable;if(!sf){if(!ce&&(!isIE||t.selection.getNode().ownerDocument!=t.getDoc()))t.getWin().focus();}if(EditorManager.activeEditor!=t){if((oed=EditorManager.activeEditor)!=null)oed.onDeactivate.dispatch(oed,t);t.onActivate.dispatch(t,oed);}EditorManager._setActive(t);},execCallback:function(n){var t=this,f=t.settings[n],s;if(!f)return;if(t.callbackLookup&&(s=t.callbackLookup[n])){f=s.func;s=s.scope;}if(is(f,'string')){s=f.replace(/\.\w+$/,'');s=s?tinymce.resolve(s):0;f=tinymce.resolve(f);t.callbackLookup=t.callbackLookup||{};t.callbackLookup[n]={func:f,scope:s};}return f.apply(s||t,Array.prototype.slice.call(arguments,1));},translate:function(s){var c=this.settings.language||'en',i18n=EditorManager.i18n;if(!s)return'';return i18n[c+'.'+s]||s.replace(/{\#([^}]+)\}/g,function(a,b){return i18n[c+'.'+b]||'{#'+b+'}';});},getLang:function(n,dv){return EditorManager.i18n[(this.settings.language||'en')+'.'+n]||(is(dv)?dv:'{#'+n+'}');},getParam:function(n,dv,ty){var tr=tinymce.trim,v=is(this.settings[n])?this.settings[n]:dv,o;if(ty==='hash'){o={};if(is(v,'string')){each(v.indexOf('=')>0?v.split(/[;,](?![^=;,]*(?:[;,]|$))/):v.split(','),function(v){v=v.split('=');if(v.length>1)o[tr(v[0])]=tr(v[1]);else o[tr(v[0])]=tr(v);});}else o=v;return o;}return v;},nodeChanged:function(o){var t=this,s=t.selection,n=s.getNode()||t.getBody();if(t.initialized){t.onNodeChange.dispatch(t,o?o.controlManager||t.controlManager:t.controlManager,isIE&&n.ownerDocument!=t.getDoc()?t.getBody():n,s.isCollapsed(),o);}},addButton:function(n,s){var t=this;t.buttons=t.buttons||{};t.buttons[n]=s;},addCommand:function(n,f,s){this.execCommands[n]={func:f,scope:s||this};},addQueryStateHandler:function(n,f,s){this.queryStateCommands[n]={func:f,scope:s||this};},addQueryValueHandler:function(n,f,s){this.queryValueCommands[n]={func:f,scope:s||this};},addShortcut:function(pa,desc,cmd_func,sc){var t=this,c;if(!t.settings.custom_shortcuts)return false;t.shortcuts=t.shortcuts||{};if(is(cmd_func,'string')){c=cmd_func;cmd_func=function(){t.execCommand(c,false,null);};}if(is(cmd_func,'object')){c=cmd_func;cmd_func=function(){t.execCommand(c[0],c[1],c[2]);};}each(explode(pa),function(pa){var o={func:cmd_func,scope:sc||this,desc:desc,alt:false,ctrl:false,shift:false};each(explode(pa,'+'),function(v){switch(v){case'alt':case'ctrl':case'shift':o[v]=true;break;default:o.charCode=v.charCodeAt(0);o.keyCode=v.toUpperCase().charCodeAt(0);}});t.shortcuts[(o.ctrl?'ctrl':'')+','+(o.alt?'alt':'')+','+(o.shift?'shift':'')+','+o.keyCode]=o;});return true;},execCommand:function(cmd,ui,val,a){var t=this,s=0,o,st;if(!/^(mceAddUndoLevel|mceEndUndoLevel|mceBeginUndoLevel|mceRepaint|SelectAll)$/.test(cmd)&&(!a||!a.skip_focus))t.focus();o={};t.onBeforeExecCommand.dispatch(t,cmd,ui,val,o);if(o.terminate)return false;if(t.execCallback('execcommand_callback',t.id,t.selection.getNode(),cmd,ui,val)){t.onExecCommand.dispatch(t,cmd,ui,val,a);return true;}if(o=t.execCommands[cmd]){st=o.func.call(o.scope,ui,val);if(st!==true){t.onExecCommand.dispatch(t,cmd,ui,val,a);return st;}}each(t.plugins,function(p){if(p.execCommand&&p.execCommand(cmd,ui,val)){t.onExecCommand.dispatch(t,cmd,ui,val,a);s=1;return false;}});if(s)return true;if(t.theme.execCommand&&t.theme.execCommand(cmd,ui,val)){t.onExecCommand.dispatch(t,cmd,ui,val,a);return true;}if(t.editorCommands.execCommand(cmd,ui,val)){t.onExecCommand.dispatch(t,cmd,ui,val,a);return true;}t.getDoc().execCommand(cmd,ui,val);t.onExecCommand.dispatch(t,cmd,ui,val,a);},queryCommandState:function(c){var t=this,o,s;if(t._isHidden())return;if(o=t.queryStateCommands[c]){s=o.func.call(o.scope);if(s!==true)return s;}o=t.editorCommands.queryCommandState(c);if(o!==-1)return o;try{return this.getDoc().queryCommandState(c);}catch(ex){}},queryCommandValue:function(c){var t=this,o,s;if(t._isHidden())return;if(o=t.queryValueCommands[c]){s=o.func.call(o.scope);if(s!==true)return s;}o=t.editorCommands.queryCommandValue(c);if(is(o))return o;try{return this.getDoc().queryCommandValue(c);}catch(ex){}},show:function(){var t=this;DOM.show(t.getContainer());DOM.hide(t.id);t.load();},hide:function(){var t=this,d=t.getDoc();if(isIE&&d)d.execCommand('SelectAll');t.save();DOM.hide(t.getContainer());DOM.setStyle(t.id,'display',t.orgDisplay);},isHidden:function(){return!DOM.isHidden(this.id);},setProgressState:function(b,ti,o){this.onSetProgressState.dispatch(this,b,ti,o);return b;},resizeToContent:function(){var t=this;DOM.setStyle(t.id+"_ifr",'height',t.getBody().scrollHeight);},load:function(o){var t=this,e=t.getElement(),h;if(e){o=o||{};o.load=true;h=t.setContent(is(e.value)?e.value:e.innerHTML,o);o.element=e;if(!o.no_events)t.onLoadContent.dispatch(t,o);o.element=e=null;return h;}},save:function(o){var t=this,e=t.getElement(),h,f;if(!e||!t.initialized)return;o=o||{};o.save=true;if(!o.no_events){t.undoManager.typing=0;t.undoManager.add();}o.element=e;h=o.content=t.getContent(o);if(!o.no_events)t.onSaveContent.dispatch(t,o);h=o.content;if(!/TEXTAREA|INPUT/i.test(e.nodeName)){e.innerHTML=h;if(f=DOM.getParent(t.id,'form')){each(f.elements,function(e){if(e.name==t.id){e.value=h;return false;}});}}else e.value=h;o.element=e=null;return h;},setContent:function(h,o){var t=this;o=o||{};o.format=o.format||'html';o.set=true;o.content=h;if(!o.no_events)t.onBeforeSetContent.dispatch(t,o);if(!tinymce.isIE&&(h.length===0||/^\s+$/.test(h))){o.content=t.dom.setHTML(t.getBody(),'<br mce_bogus="1" />');o.format='raw';}o.content=t.dom.setHTML(t.getBody(),tinymce.trim(o.content));if(o.format!='raw'&&t.settings.cleanup){o.getInner=true;o.content=t.dom.setHTML(t.getBody(),t.serializer.serialize(t.getBody(),o));}if(!o.no_events)t.onSetContent.dispatch(t,o);return o.content;},getContent:function(o){var t=this,h;o=o||{};o.format=o.format||'html';o.get=true;if(!o.no_events)t.onBeforeGetContent.dispatch(t,o);if(o.format!='raw'&&t.settings.cleanup){o.getInner=true;h=t.serializer.serialize(t.getBody(),o);}else h=t.getBody().innerHTML;h=h.replace(/^\s*|\s*$/g,'');o.content=h;if(!o.no_events)t.onGetContent.dispatch(t,o);return o.content;},isDirty:function(){var t=this;return tinymce.trim(t.startContent)!=tinymce.trim(t.getContent({format:'raw',no_events:1}))&&!t.isNotDirty;},getContainer:function(){var t=this;if(!t.container)t.container=DOM.get(t.editorContainer||t.id+'_parent');return t.container;},getContentAreaContainer:function(){return this.contentAreaContainer;},getElement:function(){return DOM.get(this.settings.content_element||this.id);},getWin:function(){var t=this,e;if(!t.contentWindow){e=DOM.get(t.id+"_ifr");if(e)t.contentWindow=e.contentWindow;}return t.contentWindow;},getDoc:function(){var t=this,w;if(!t.contentDocument){w=t.getWin();if(w)t.contentDocument=w.document;}return t.contentDocument;},getBody:function(){return this.bodyElement||this.getDoc().body;},convertURL:function(u,n,e){var t=this,s=t.settings;if(s.urlconverter_callback)return t.execCallback('urlconverter_callback',u,e,true,n);if(!s.convert_urls||(e&&e.nodeName=='LINK')||u.indexOf('file:')===0)return u;if(s.relative_urls)return t.documentBaseURI.toRelative(u);u=t.documentBaseURI.toAbsolute(u,s.remove_script_host);return u;},addVisual:function(e){var t=this,s=t.settings;e=e||t.getBody();if(!is(t.hasVisual))t.hasVisual=s.visual;each(t.dom.select('table,a',e),function(e){var v;switch(e.nodeName){case'TABLE':v=t.dom.getAttrib(e,'border');if(!v||v=='0'){if(t.hasVisual)t.dom.addClass(e,s.visual_table_class);else t.dom.removeClass(e,s.visual_table_class);}return;case'A':v=t.dom.getAttrib(e,'name');if(v){if(t.hasVisual)t.dom.addClass(e,'mceItemAnchor');else t.dom.removeClass(e,'mceItemAnchor');}return;}});t.onVisualAid.dispatch(t,e,t.hasVisual);},remove:function(){var t=this,e=t.getContainer();t.removed=1;t.hide();t.execCallback('remove_instance_callback',t);t.onRemove.dispatch(t);t.onExecCommand.listeners=[];EditorManager.remove(t);DOM.remove(e);},destroy:function(s){var t=this;if(t.destroyed)return;if(!s){tinymce.removeUnload(t.destroy);tinyMCE.onBeforeUnload.remove(t._beforeUnload);if(t.theme.destroy)t.theme.destroy();t.controlManager.destroy();t.selection.destroy();t.dom.destroy();if(!t.settings.content_editable){Event.clear(t.getWin());Event.clear(t.getDoc());}Event.clear(t.getBody());Event.clear(t.formElement);}if(t.formElement){t.formElement.submit=t.formElement._mceOldSubmit;t.formElement._mceOldSubmit=null;}t.contentAreaContainer=t.formElement=t.container=t.settings.content_element=t.bodyElement=t.contentDocument=t.contentWindow=null;if(t.selection)t.selection=t.selection.win=t.selection.dom=t.selection.dom.doc=null;t.destroyed=1;},_addEvents:function(){var t=this,i,s=t.settings,lo={mouseup:'onMouseUp',mousedown:'onMouseDown',click:'onClick',keyup:'onKeyUp',keydown:'onKeyDown',keypress:'onKeyPress',submit:'onSubmit',reset:'onReset',contextmenu:'onContextMenu',dblclick:'onDblClick',paste:'onPaste'};function eventHandler(e,o){var ty=e.type;if(t.removed)return;if(t.onEvent.dispatch(t,e,o)!==false){t[lo[e.fakeType||e.type]].dispatch(t,e,o);}};each(lo,function(v,k){switch(k){case'contextmenu':if(tinymce.isOpera){Event.add(t.getBody(),'mousedown',function(e){if(e.ctrlKey){e.fakeType='contextmenu';eventHandler(e);}});}else Event.add(t.getBody(),k,eventHandler);break;case'paste':Event.add(t.getBody(),k,function(e){var tx,h,el,r;if(e.clipboardData)tx=e.clipboardData.getData('text/plain');else if(tinymce.isIE)tx=t.getWin().clipboardData.getData('Text');eventHandler(e,{text:tx,html:h});});break;case'submit':case'reset':Event.add(t.getElement().form||DOM.getParent(t.id,'form'),k,eventHandler);break;default:Event.add(s.content_editable?t.getBody():t.getDoc(),k,eventHandler);}});Event.add(s.content_editable?t.getBody():(isGecko?t.getDoc():t.getWin()),'focus',function(e){t.focus(true);});if(tinymce.isGecko){Event.add(t.getDoc(),'DOMNodeInserted',function(e){var v;e=e.target;if(e.nodeType===1&&e.nodeName==='IMG'&&(v=e.getAttribute('mce_src')))e.src=t.documentBaseURI.toAbsolute(v);});}if(isGecko){function setOpts(){var t=this,d=t.getDoc(),s=t.settings;if(isGecko&&!s.readonly){if(t._isHidden()){try{if(!s.content_editable)d.designMode='On';}catch(ex){}}try{d.execCommand("styleWithCSS",0,false);}catch(ex){if(!t._isHidden())try{d.execCommand("useCSS",0,true);}catch(ex){}}if(!s.table_inline_editing)try{d.execCommand('enableInlineTableEditing',false,false);}catch(ex){}if(!s.object_resizing)try{d.execCommand('enableObjectResizing',false,false);}catch(ex){}}};t.onBeforeExecCommand.add(setOpts);t.onMouseDown.add(setOpts);}t.onMouseUp.add(t.nodeChanged);t.onClick.add(t.nodeChanged);t.onKeyUp.add(function(ed,e){var c=e.keyCode;if((c>=33&&c<=36)||(c>=37&&c<=40)||c==13||c==45||c==46||c==8||(tinymce.isMac&&(c==91||c==93))||e.ctrlKey)t.nodeChanged();});t.onReset.add(function(){t.setContent(t.startContent,{format:'raw'});});if(t.getParam('tab_focus')){function tabCancel(ed,e){if(e.keyCode===9)return Event.cancel(e);};function tabHandler(ed,e){var x,i,f,el,v;function find(d){f=DOM.getParent(ed.id,'form');el=f.elements;if(f){each(el,function(e,i){if(e.id==ed.id){x=i;return false;}});if(d>0){for(i=x+1;i<el.length;i++){if(el[i].type!='hidden')return el[i];}}else{for(i=x-1;i>=0;i--){if(el[i].type!='hidden')return el[i];}}}return null;};if(e.keyCode===9){v=explode(ed.getParam('tab_focus'));if(v.length==1){v[1]=v[0];v[0]=':prev';}if(e.shiftKey){if(v[0]==':prev')el=find(-1);else el=DOM.get(v[0]);}else{if(v[1]==':next')el=find(1);else el=DOM.get(v[1]);}if(el){if(ed=EditorManager.get(el.id||el.name))ed.focus();else window.setTimeout(function(){window.focus();el.focus();},10);return Event.cancel(e);}}};t.onKeyUp.add(tabCancel);if(isGecko){t.onKeyPress.add(tabHandler);t.onKeyDown.add(tabCancel);}else t.onKeyDown.add(tabHandler);}if(s.custom_shortcuts){if(s.custom_undo_redo_keyboard_shortcuts){t.addShortcut('ctrl+z',t.getLang('undo_desc'),'Undo');t.addShortcut('ctrl+y',t.getLang('redo_desc'),'Redo');}if(isGecko){t.addShortcut('ctrl+b',t.getLang('bold_desc'),'Bold');t.addShortcut('ctrl+i',t.getLang('italic_desc'),'Italic');t.addShortcut('ctrl+u',t.getLang('underline_desc'),'Underline');}for(i=1;i<=6;i++)t.addShortcut('ctrl+'+i,'',['FormatBlock',false,'<h'+i+'>']);t.addShortcut('ctrl+7','',['FormatBlock',false,'<p>']);t.addShortcut('ctrl+8','',['FormatBlock',false,'<div>']);t.addShortcut('ctrl+9','',['FormatBlock',false,'<address>']);function find(e){var v=null;if(!e.altKey&&!e.ctrlKey&&!e.metaKey)return v;each(t.shortcuts,function(o){if(tinymce.isMac&&o.ctrl!=e.metaKey)return;else if(!tinymce.isMac&&o.ctrl!=e.ctrlKey)return;if(o.alt!=e.altKey)return;if(o.shift!=e.shiftKey)return;if(e.keyCode==o.keyCode||(e.charCode&&e.charCode==o.charCode)){v=o;return false;}});return v;};t.onKeyUp.add(function(ed,e){var o=find(e);if(o)return Event.cancel(e);});t.onKeyPress.add(function(ed,e){var o=find(e);if(o)return Event.cancel(e);});t.onKeyDown.add(function(ed,e){var o=find(e);if(o){o.func.call(o.scope);return Event.cancel(e);}});}if(tinymce.isIE){Event.add(t.getDoc(),'controlselect',function(e){var re=t.resizeInfo,cb;e=e.target;if(e.nodeName!=='IMG')return;if(re)Event.remove(re.node,re.ev,re.cb);if(!t.dom.hasClass(e,'mceItemNoResize')){ev='resizeend';cb=Event.add(e,ev,function(e){var v;e=e.target;if(v=t.dom.getStyle(e,'width')){t.dom.setAttrib(e,'width',v.replace(/[^0-9%]+/g,''));t.dom.setStyle(e,'width','');}if(v=t.dom.getStyle(e,'height')){t.dom.setAttrib(e,'height',v.replace(/[^0-9%]+/g,''));t.dom.setStyle(e,'height','');}});}else{ev='resizestart';cb=Event.add(e,'resizestart',Event.cancel,Event);}re=t.resizeInfo={node:e,ev:ev,cb:cb};});t.onKeyDown.add(function(ed,e){switch(e.keyCode){case 8:if(t.selection.getRng().item){t.selection.getRng().item(0).removeNode();return Event.cancel(e);}}});}if(tinymce.isOpera){t.onClick.add(function(ed,e){Event.prevent(e);});}if(s.custom_undo_redo){function addUndo(){t.undoManager.typing=0;t.undoManager.add();};if(tinymce.isIE){Event.add(t.getWin(),'blur',function(e){var n;if(t.selection){n=t.selection.getNode();if(!t.removed&&n.ownerDocument&&n.ownerDocument!=t.getDoc())addUndo();}});}else{Event.add(t.getDoc(),'blur',function(){if(t.selection&&!t.removed)addUndo();});}t.onMouseDown.add(addUndo);t.onKeyUp.add(function(ed,e){if((e.keyCode>=33&&e.keyCode<=36)||(e.keyCode>=37&&e.keyCode<=40)||e.keyCode==13||e.keyCode==45||e.ctrlKey){t.undoManager.typing=0;t.undoManager.add();}});t.onKeyDown.add(function(ed,e){if((e.keyCode>=33&&e.keyCode<=36)||(e.keyCode>=37&&e.keyCode<=40)||e.keyCode==13||e.keyCode==45){if(t.undoManager.typing){t.undoManager.add();t.undoManager.typing=0;}return;}if(!t.undoManager.typing){t.undoManager.add();t.undoManager.typing=1;}});}},_convertInlineElements:function(){var t=this,s=t.settings,dom=t.dom,v,e,na,st,sp;function convert(ed,o){if(!s.inline_styles)return;if(o.get){each(t.dom.select('table,u,strike',o.node),function(n){switch(n.nodeName){case'TABLE':if(v=dom.getAttrib(n,'height')){dom.setStyle(n,'height',v);dom.setAttrib(n,'height','');}break;case'U':case'STRIKE':n.style.textDecoration=n.nodeName=='U'?'underline':'line-through';dom.setAttrib(n,'mce_style','');dom.setAttrib(n,'mce_name','span');break;}});}else if(o.set){each(t.dom.select('table,span',o.node).reverse(),function(n){if(n.nodeName=='TABLE'){if(v=dom.getStyle(n,'height'))dom.setAttrib(n,'height',v.replace(/[^0-9%]+/g,''));}else{if(n.style.textDecoration=='underline')na='u';else if(n.style.textDecoration=='line-through')na='strike';else na='';if(na){n.style.textDecoration='';dom.setAttrib(n,'mce_style','');e=dom.create(na,{style:dom.getAttrib(n,'style')});dom.replace(e,n,1);}}});}};t.onPreProcess.add(convert);if(!s.cleanup_on_startup){t.onSetContent.add(function(ed,o){if(o.initial)convert(t,{node:t.getBody(),set:1});});}},_convertFonts:function(){var t=this,s=t.settings,dom=t.dom,fz,fzn,sl,cl;if(!s.inline_styles)return;fz=[8,10,12,14,18,24,36];fzn=['xx-small','x-small','small','medium','large','x-large','xx-large'];if(sl=s.font_size_style_values)sl=explode(sl);if(cl=s.font_size_classes)cl=explode(cl);function process(no){var n,sp,nl,x;if(!s.inline_styles)return;nl=t.dom.select('font',no);for(x=nl.length-1;x>=0;x--){n=nl[x];sp=dom.create('span',{style:dom.getAttrib(n,'style'),'class':dom.getAttrib(n,'class')});dom.setStyles(sp,{fontFamily:dom.getAttrib(n,'face'),color:dom.getAttrib(n,'color'),backgroundColor:n.style.backgroundColor});if(n.size){if(sl)dom.setStyle(sp,'fontSize',sl[parseInt(n.size)-1]);else dom.setAttrib(sp,'class',cl[parseInt(n.size)-1]);}dom.setAttrib(sp,'mce_style','');dom.replace(sp,n,1);}};t.onPreProcess.add(function(ed,o){if(o.get)process(o.node);});t.onSetContent.add(function(ed,o){if(o.initial)process(o.node);});},_isHidden:function(){var s;if(!isGecko)return 0;s=this.selection.getSel();return(!s||!s.rangeCount||s.rangeCount==0);},_fixNesting:function(s){var d=[],i;s=s.replace(/<(\/)?([^\s>]+)[^>]*?>/g,function(a,b,c){var e;if(b==='/'){if(!d.length)return'';if(c!==d[d.length-1].tag){for(i=d.length-1;i>=0;i--){if(d[i].tag===c){d[i].close=1;break;}}return'';}else{d.pop();if(d.length&&d[d.length-1].close){a=a+'</'+d[d.length-1].tag+'>';d.pop();}}}else{if(/^(br|hr|input|meta|img|link|param)$/i.test(c))return a;if(/\/>$/.test(a))return a;d.push({tag:c});}return a;});for(i=d.length-1;i>=0;i--)s+='</'+d[i].tag+'>';return s;}});})();(function(){var each=tinymce.each,isIE=tinymce.isIE,isGecko=tinymce.isGecko,isOpera=tinymce.isOpera,isWebKit=tinymce.isWebKit;function isBlock(n){return/^(H[1-6]|HR|P|DIV|ADDRESS|PRE|FORM|TABLE|OL|UL|TD|CAPTION|BLOCKQUOTE|CENTER|DL|DT|DD|DIR|FIELDSET|NOSCRIPT|NOFRAMES|MENU|ISINDEX|SAMP)$/.test(n.nodeName);};tinymce.create('tinymce.EditorCommands',{EditorCommands:function(ed){this.editor=ed;},execCommand:function(cmd,ui,val){var t=this,ed=t.editor,f;switch(cmd){case'Cut':case'Copy':case'Paste':try{ed.getDoc().execCommand(cmd,ui,val);}catch(ex){if(isGecko){ed.windowManager.confirm(ed.getLang('clipboard_msg'),function(s){if(s)window.open('http://www.mozilla.org/editor/midasdemo/securityprefs.html','mceExternal');});}else ed.windowManager.alert(ed.getLang('clipboard_no_support'));}return true;case'mceResetDesignMode':case'mceBeginUndoLevel':return true;case'unlink':t.UnLink();return true;case'JustifyLeft':case'JustifyCenter':case'JustifyRight':case'JustifyFull':t.mceJustify(cmd,cmd.substring(7).toLowerCase());return true;case'mceEndUndoLevel':case'mceAddUndoLevel':ed.undoManager.add();return true;default:f=this[cmd];if(f){f.call(this,ui,val);return true;}}return false;},Indent:function(){var ed=this.editor,d=ed.dom,s=ed.selection,e,iv,iu;iv=ed.settings.indentation;iu=/[a-z%]+$/i.exec(iv);iv=parseInt(iv);if(ed.settings.inline_styles&&(!this.queryStateInsertUnorderedList()&&!this.queryStateInsertOrderedList())){each(this._getSelectedBlocks(),function(e){d.setStyle(e,'paddingLeft',(parseInt(e.style.paddingLeft||0)+iv)+iu);});return;}ed.getDoc().execCommand('Indent',false,null);if(isIE){d.getParent(s.getNode(),function(n){if(n.nodeName=='BLOCKQUOTE'){n.dir=n.style.cssText='';}});}},Outdent:function(){var ed=this.editor,d=ed.dom,s=ed.selection,e,v,iv,iu;iv=ed.settings.indentation;iu=/[a-z%]+$/i.exec(iv);iv=parseInt(iv);if(ed.settings.inline_styles&&(!this.queryStateInsertUnorderedList()&&!this.queryStateInsertOrderedList())){each(this._getSelectedBlocks(),function(e){v=Math.max(0,parseInt(e.style.paddingLeft||0)-iv);d.setStyle(e,'paddingLeft',v?v+iu:'');});return;}ed.getDoc().execCommand('Outdent',false,null);},mceSetAttribute:function(u,v){var ed=this.editor,d=ed.dom,e;if(e=d.getParent(ed.selection.getNode(),d.isBlock))d.setAttrib(e,v.name,v.value);},mceSetContent:function(u,v){this.editor.setContent(v);},mceToggleVisualAid:function(){var ed=this.editor;ed.hasVisual=!ed.hasVisual;ed.addVisual();},mceReplaceContent:function(u,v){var s=this.editor.selection;s.setContent(v.replace(/\{\$selection\}/g,s.getContent({format:'text'})));},mceInsertLink:function(u,v){var ed=this.editor,s=ed.selection,e=ed.dom.getParent(s.getNode(),'A');if(tinymce.is(v,'string'))v={href:v};function set(e){each(v,function(v,k){ed.dom.setAttrib(e,k,v);});};if(!e){ed.execCommand('CreateLink',false,'javascript:mctmp(0);');each(ed.dom.select('a'),function(e){if(e.href=='javascript:mctmp(0);')set(e);});}else{if(v.href)set(e);else ed.dom.remove(e,1);}},UnLink:function(){var ed=this.editor,s=ed.selection;if(s.isCollapsed())s.select(s.getNode());ed.getDoc().execCommand('unlink',false,null);s.collapse(0);},FontName:function(u,v){var t=this,ed=t.editor,s=ed.selection,e;if(!v){if(s.isCollapsed())s.select(s.getNode());t.RemoveFormat();}else{if(ed.settings.convert_fonts_to_spans)t._applyInlineStyle('span',{style:{fontFamily:v}});else ed.getDoc().execCommand('FontName',false,v);}},FontSize:function(u,v){var ed=this.editor,s=ed.settings,fc,fs;if(s.convert_fonts_to_spans&&v>=1&&v<=7){fs=tinymce.explode(s.font_size_style_values);fc=tinymce.explode(s.font_size_classes);if(fc)v=fc[v-1]||v;else v=fs[v-1]||v;}if(v>=1&&v<=7)ed.getDoc().execCommand('FontSize',false,v);else this._applyInlineStyle('span',{style:{fontSize:v}});},queryCommandValue:function(c){var f=this['queryValue'+c];if(f)return f.call(this,c);return false;},queryCommandState:function(cmd){var f;switch(cmd){case'JustifyLeft':case'JustifyCenter':case'JustifyRight':case'JustifyFull':return this.queryStateJustify(cmd,cmd.substring(7).toLowerCase());default:if(f=this['queryState'+cmd])return f.call(this,cmd);}return-1;},_queryState:function(c){try{return this.editor.getDoc().queryCommandState(c);}catch(ex){}},_queryVal:function(c){try{return this.editor.getDoc().queryCommandValue(c);}catch(ex){}},queryValueFontSize:function(){var ed=this.editor,v=0,p;if(p=ed.dom.getParent(ed.selection.getNode(),'SPAN'))v=p.style.fontSize;if(!v&&(isOpera||isWebKit)){if(p=ed.dom.getParent(ed.selection.getNode(),'FONT'))v=p.size;return v;}return v||this._queryVal('FontSize');},queryValueFontName:function(){var ed=this.editor,v=0,p;if(p=ed.dom.getParent(ed.selection.getNode(),'FONT'))v=p.face;if(p=ed.dom.getParent(ed.selection.getNode(),'SPAN'))v=p.style.fontFamily.replace(/, /g,',').replace(/[\'\"]/g,'').toLowerCase();if(!v)v=this._queryVal('FontName');return v;},mceJustify:function(c,v){var ed=this.editor,se=ed.selection,n=se.getNode(),nn=n.nodeName,bl,nb,dom=ed.dom,rm;if(ed.settings.inline_styles&&this.queryStateJustify(c,v))rm=1;bl=dom.getParent(n,ed.dom.isBlock);if(nn=='IMG'){if(v=='full')return;if(rm){if(v=='center')dom.setStyle(bl||n.parentNode,'textAlign','');dom.setStyle(n,'float','');this.mceRepaint();return;}if(v=='center'){if(bl&&/^(TD|TH)$/.test(bl.nodeName))bl=0;if(!bl||bl.childNodes.length>1){nb=dom.create('p');nb.appendChild(n.cloneNode(false));if(bl)dom.insertAfter(nb,bl);else dom.insertAfter(nb,n);dom.remove(n);n=nb.firstChild;bl=nb;}dom.setStyle(bl,'textAlign',v);dom.setStyle(n,'float','');}else{dom.setStyle(n,'float',v);dom.setStyle(bl||n.parentNode,'textAlign','');}this.mceRepaint();return;}if(ed.settings.inline_styles&&ed.settings.forced_root_block){if(rm)v='';each(this._getSelectedBlocks(dom.getParent(se.getStart(),dom.isBlock),dom.getParent(se.getEnd(),dom.isBlock)),function(e){dom.setAttrib(e,'align','');dom.setStyle(e,'textAlign',v=='full'?'justify':v);});return;}else if(!rm)ed.getDoc().execCommand(c,false,null);if(ed.settings.inline_styles){if(rm){dom.getParent(ed.selection.getNode(),function(n){if(n.style&&n.style.textAlign)dom.setStyle(n,'textAlign','');});return;}each(dom.select('*'),function(n){var v=n.align;if(v){if(v=='full')v='justify';dom.setStyle(n,'textAlign',v);dom.setAttrib(n,'align','');}});}},mceSetCSSClass:function(u,v){this.mceSetStyleInfo(0,{command:'setattrib',name:'class',value:v});},getSelectedElement:function(){var t=this,ed=t.editor,dom=ed.dom,se=ed.selection,r=se.getRng(),r1,r2,sc,ec,so,eo,e,sp,ep,re;if(se.isCollapsed()||r.item)return se.getNode();re=ed.settings.merge_styles_invalid_parents;if(tinymce.is(re,'string'))re=new RegExp(re,'i');if(isIE){r1=r.duplicate();r1.collapse(true);sc=r1.parentElement();r2=r.duplicate();r2.collapse(false);ec=r2.parentElement();if(sc!=ec){r1.move('character',1);sc=r1.parentElement();}if(sc==ec){r1=r.duplicate();r1.moveToElementText(sc);if(r1.compareEndPoints('StartToStart',r)==0&&r1.compareEndPoints('EndToEnd',r)==0)return re&&re.test(sc.nodeName)?null:sc;}}else{function getParent(n){return dom.getParent(n,function(n){return n.nodeType==1;});};sc=r.startContainer;ec=r.endContainer;so=r.startOffset;eo=r.endOffset;if(!r.collapsed){if(sc==ec){if(so-eo<2){if(sc.hasChildNodes()){sp=sc.childNodes[so];return re&&re.test(sp.nodeName)?null:sp;}}}}if(sc.nodeType!=3||ec.nodeType!=3)return null;if(so==0){sp=getParent(sc);if(sp&&sp.firstChild!=sc)sp=null;}if(so==sc.nodeValue.length){e=sc.nextSibling;if(e&&e.nodeType==1)sp=sc.nextSibling;}if(eo==0){e=ec.previousSibling;if(e&&e.nodeType==1)ep=e;}if(eo==ec.nodeValue.length){ep=getParent(ec);if(ep&&ep.lastChild!=ec)ep=null;}if(sp==ep)return re&&sp&&re.test(sp.nodeName)?null:sp;}return null;},InsertHorizontalRule:function(){if(isGecko||isIE)this.editor.selection.setContent('<hr />');else this.editor.getDoc().execCommand('InsertHorizontalRule',false,'');},RemoveFormat:function(){var t=this,ed=t.editor,s=ed.selection,b;if(isWebKit)s.setContent(s.getContent({format:'raw'}).replace(/(<(span|b|i|strong|em|strike) [^>]+>|<(span|b|i|strong|em|strike)>|<\/(span|b|i|strong|em|strike)>|)/g,''),{format:'raw'});else ed.getDoc().execCommand('RemoveFormat',false,null);t.mceSetStyleInfo(0,{command:'removeformat'});ed.addVisual();},mceSetStyleInfo:function(u,v){var t=this,ed=t.editor,d=ed.getDoc(),dom=ed.dom,e,b,s=ed.selection,nn=v.wrapper||'span',b=s.getBookmark(),re;function set(n,e){if(n.nodeType==1){switch(v.command){case'setattrib':return dom.setAttrib(n,v.name,v.value);case'setstyle':return dom.setStyle(n,v.name,v.value);case'removeformat':return dom.setAttrib(n,'class','');}}};re=ed.settings.merge_styles_invalid_parents;if(tinymce.is(re,'string'))re=new RegExp(re,'i');if((e=t.getSelectedElement())&&!ed.settings.force_span_wrappers)set(e,1);else{d.execCommand('FontName',false,'__');each(isWebKit?dom.select('span'):dom.select('font'),function(n){var sp,e;if(dom.getAttrib(n,'face')=='__'||n.style.fontFamily==='__'){sp=dom.create(nn,{mce_new:'1'});set(sp);each(n.childNodes,function(n){sp.appendChild(n.cloneNode(true));});dom.replace(sp,n);}});}each(dom.select(nn).reverse(),function(n){var p=n.parentNode;if(!dom.getAttrib(n,'mce_new')){p=dom.getParent(n,function(n){return n.nodeType==1&&dom.getAttrib(n,'mce_new');});if(p)dom.remove(n,1);}});each(dom.select(nn).reverse(),function(n){var p=n.parentNode;if(!p||!dom.getAttrib(n,'mce_new'))return;if(ed.settings.force_span_wrappers&&p.nodeName!='SPAN')return;if(p.nodeName==nn.toUpperCase()&&p.childNodes.length==1)return dom.remove(p,1);if(n.nodeType==1&&(!re||!re.test(p.nodeName))&&p.childNodes.length==1){set(p);dom.setAttrib(n,'class','');}});each(dom.select(nn).reverse(),function(n){if(dom.getAttrib(n,'mce_new')||(dom.getAttribs(n).length<=1&&n.className==='')){if(!dom.getAttrib(n,'class')&&!dom.getAttrib(n,'style'))return dom.remove(n,1);dom.setAttrib(n,'mce_new','');}});s.moveToBookmark(b);},queryStateJustify:function(c,v){var ed=this.editor,n=ed.selection.getNode(),dom=ed.dom;if(n&&n.nodeName=='IMG'){if(dom.getStyle(n,'float')==v)return 1;return n.parentNode.style.textAlign==v;}n=dom.getParent(ed.selection.getStart(),function(n){return n.nodeType==1&&n.style.textAlign;});if(v=='full')v='justify';if(ed.settings.inline_styles)return(n&&n.style.textAlign==v);return this._queryState(c);},ForeColor:function(ui,v){var ed=this.editor;if(ed.settings.convert_fonts_to_spans){this._applyInlineStyle('span',{style:{color:v}});return;}else ed.getDoc().execCommand('ForeColor',false,v);},HiliteColor:function(ui,val){var t=this,ed=t.editor,d=ed.getDoc();if(ed.settings.convert_fonts_to_spans){this._applyInlineStyle('span',{style:{backgroundColor:val}});return;}function set(s){if(!isGecko)return;try{d.execCommand("styleWithCSS",0,s);}catch(ex){d.execCommand("useCSS",0,!s);}};if(isGecko||isOpera){set(true);d.execCommand('hilitecolor',false,val);set(false);}else d.execCommand('BackColor',false,val);},Undo:function(){var ed=this.editor;if(ed.settings.custom_undo_redo){ed.undoManager.undo();ed.nodeChanged();}else ed.getDoc().execCommand('Undo',false,null);},Redo:function(){var ed=this.editor;if(ed.settings.custom_undo_redo){ed.undoManager.redo();ed.nodeChanged();}else ed.getDoc().execCommand('Redo',false,null);},FormatBlock:function(ui,val){var t=this,ed=t.editor,s=ed.selection,dom=ed.dom,bl,nb,b;function isBlock(n){return/^(P|DIV|H[1-6]|ADDRESS|BLOCKQUOTE|PRE)$/.test(n.nodeName);};bl=dom.getParent(s.getNode(),function(n){return isBlock(n);});if(bl){if((isIE&&isBlock(bl.parentNode))||bl.nodeName=='DIV'){nb=ed.dom.create(val);each(dom.getAttribs(bl),function(v){dom.setAttrib(nb,v.nodeName,dom.getAttrib(bl,v.nodeName));});b=s.getBookmark();dom.replace(nb,bl,1);s.moveToBookmark(b);ed.nodeChanged();return;}}val=ed.settings.forced_root_block?(val||'<p>'):val;if(val.indexOf('<')==-1)val='<'+val+'>';if(tinymce.isGecko)val=val.replace(/<(div|blockquote|code|dt|dd|dl|samp)>/gi,'$1');ed.getDoc().execCommand('FormatBlock',false,val);},mceCleanup:function(){var ed=this.editor,s=ed.selection,b=s.getBookmark();ed.setContent(ed.getContent());s.moveToBookmark(b);},mceRemoveNode:function(ui,val){var ed=this.editor,s=ed.selection,b,n=val||s.getNode();if(n==ed.getBody())return;b=s.getBookmark();ed.dom.remove(n,1);s.moveToBookmark(b);ed.nodeChanged();},mceSelectNodeDepth:function(ui,val){var ed=this.editor,s=ed.selection,c=0;ed.dom.getParent(s.getNode(),function(n){if(n.nodeType==1&&c++==val){s.select(n);ed.nodeChanged();return false;}},ed.getBody());},mceSelectNode:function(u,v){this.editor.selection.select(v);},mceInsertContent:function(ui,val){this.editor.selection.setContent(val);},mceInsertRawHTML:function(ui,val){var ed=this.editor;ed.selection.setContent('tiny_mce_marker');ed.setContent(ed.getContent().replace(/tiny_mce_marker/g,val));},mceRepaint:function(){var s,b,e=this.editor;if(tinymce.isGecko){try{s=e.selection;b=s.getBookmark(true);if(s.getSel())s.getSel().selectAllChildren(e.getBody());s.collapse(true);s.moveToBookmark(b);}catch(ex){}}},queryStateUnderline:function(){var ed=this.editor,n=ed.selection.getNode();if(n&&n.nodeName=='A')return false;return this._queryState('Underline');},queryStateOutdent:function(){var ed=this.editor,n;if(ed.settings.inline_styles){if((n=ed.dom.getParent(ed.selection.getStart(),ed.dom.isBlock))&&parseInt(n.style.paddingLeft)>0)return true;if((n=ed.dom.getParent(ed.selection.getEnd(),ed.dom.isBlock))&&parseInt(n.style.paddingLeft)>0)return true;}return this.queryStateInsertUnorderedList()||this.queryStateInsertOrderedList()||(!ed.settings.inline_styles&&!!ed.dom.getParent(ed.selection.getNode(),'BLOCKQUOTE'));},queryStateInsertUnorderedList:function(){return this.editor.dom.getParent(this.editor.selection.getNode(),'UL');},queryStateInsertOrderedList:function(){return this.editor.dom.getParent(this.editor.selection.getNode(),'OL');},queryStatemceBlockQuote:function(){return!!this.editor.dom.getParent(this.editor.selection.getStart(),function(n){return n.nodeName==='BLOCKQUOTE';});},mceBlockQuote:function(){var t=this,ed=t.editor,s=ed.selection,dom=ed.dom,sb,eb,n,bm,bq,r,bq2,i,nl;function getBQ(e){return dom.getParent(e,function(n){return n.nodeName==='BLOCKQUOTE';});};sb=dom.getParent(s.getStart(),isBlock);eb=dom.getParent(s.getEnd(),isBlock);if(bq=getBQ(sb)){if(sb!=eb||sb.childNodes.length>1||(sb.childNodes.length==1&&sb.firstChild.nodeName!='BR'))bm=s.getBookmark();if(getBQ(eb)){bq2=bq.cloneNode(false);while(n=eb.nextSibling)bq2.appendChild(n.parentNode.removeChild(n));}if(bq2)dom.insertAfter(bq2,bq);nl=t._getSelectedBlocks(sb,eb);for(i=nl.length-1;i>=0;i--){dom.insertAfter(nl[i],bq);}if(/^\s*$/.test(bq.innerHTML))dom.remove(bq,1);if(bq2&&/^\s*$/.test(bq2.innerHTML))dom.remove(bq2,1);if(!bm){if(!isIE){r=ed.getDoc().createRange();r.setStart(sb,0);r.setEnd(sb,0);s.setRng(r);}else{s.select(sb);s.collapse(0);if(dom.getParent(s.getStart(),isBlock)!=sb){r=s.getRng();r.move('character',-1);r.select();}}}else t.editor.selection.moveToBookmark(bm);return;}if(isIE&&!sb&&!eb){t.editor.getDoc().execCommand('Indent');n=getBQ(s.getNode());n.style.margin=n.dir='';return;}if(!sb||!eb)return;if(sb!=eb||sb.childNodes.length>1||(sb.childNodes.length==1&&sb.firstChild.nodeName!='BR'))bm=s.getBookmark();each(t._getSelectedBlocks(getBQ(s.getStart()),getBQ(s.getEnd())),function(e){if(e.nodeName=='BLOCKQUOTE'&&!bq){bq=e;return;}if(!bq){bq=dom.create('blockquote');e.parentNode.insertBefore(bq,e);}if(e.nodeName=='BLOCKQUOTE'&&bq){n=e.firstChild;while(n){bq.appendChild(n.cloneNode(true));n=n.nextSibling;}dom.remove(e);return;}bq.appendChild(dom.remove(e));});if(!bm){if(!isIE){r=ed.getDoc().createRange();r.setStart(sb,0);r.setEnd(sb,0);s.setRng(r);}else{s.select(sb);s.collapse(1);}}else s.moveToBookmark(bm);},_applyInlineStyle:function(na,at,op){var t=this,ed=t.editor,dom=ed.dom,bm,lo={},kh;na=na.toUpperCase();if(op&&op.check_classes&&at['class'])op.check_classes.push(at['class']);function replaceFonts(){var bm;each(dom.select(tinymce.isWebKit&&!tinymce.isAir?'span':'font'),function(n){if(n.style.fontFamily=='mceinline'||n.face=='mceinline'){if(!bm)bm=ed.selection.getBookmark();at._mce_new='1';dom.replace(dom.create(na,at),n,1);}});each(dom.select(na),function(n){if(n.getAttribute('_mce_new')){function removeStyle(n){if(n.nodeType==1){each(at.style,function(v,k){dom.setStyle(n,k,'');});if(at['class']&&n.className&&op){each(op.check_classes,function(c){if(dom.hasClass(n,c))dom.removeClass(n,c);});}}};each(dom.select(na,n),removeStyle);if(n.parentNode&&n.parentNode.nodeType==1&&n.parentNode.childNodes.length==1)removeStyle(n.parentNode);dom.getParent(n.parentNode,function(pn){if(pn.nodeType==1){if(at.style){each(at.style,function(v,k){var sv;if(!lo[k]&&(sv=dom.getStyle(pn,k))){if(sv===v)dom.setStyle(n,k,'');lo[k]=1;}});}if(at['class']&&pn.className&&op){each(op.check_classes,function(c){if(dom.hasClass(pn,c))dom.removeClass(n,c);});}}return false;});n.removeAttribute('_mce_new');}});each(dom.select(na).reverse(),function(n){var c=0;each(dom.getAttribs(n),function(an){if(an.nodeName.substring(0,1)!='_'&&dom.getAttrib(n,an.nodeName)!=''){c++;}});if(c==0)dom.remove(n,1);});ed.selection.moveToBookmark(bm);return!!bm;};ed.focus();ed.getDoc().execCommand('FontName',false,'mceinline');replaceFonts();if(kh=t._applyInlineStyle.keyhandler){ed.onKeyUp.remove(kh);ed.onKeyPress.remove(kh);ed.onKeyDown.remove(kh);ed.onSetContent.remove(t._applyInlineStyle.chandler);}if(ed.selection.isCollapsed()){t._pendingStyles=tinymce.extend(t._pendingStyles||{},at.style);t._applyInlineStyle.chandler=ed.onSetContent.add(function(){delete t._pendingStyles;});t._applyInlineStyle.keyhandler=kh=function(e){if(t._pendingStyles){at.style=t._pendingStyles;delete t._pendingStyles;}if(replaceFonts()){ed.onKeyDown.remove(t._applyInlineStyle.keyhandler);ed.onKeyPress.remove(t._applyInlineStyle.keyhandler);}if(e.type=='keyup')ed.onKeyUp.remove(t._applyInlineStyle.keyhandler);};ed.onKeyDown.add(kh);ed.onKeyPress.add(kh);ed.onKeyUp.add(kh);}else t._pendingStyles=0;},_getSelectedBlocks:function(st,en){var ed=this.editor,dom=ed.dom,s=ed.selection,sb,eb,n,bl=[];sb=dom.getParent(st||s.getStart(),isBlock);eb=dom.getParent(en||s.getEnd(),isBlock);if(sb)bl.push(sb);if(sb&&eb&&sb!=eb){n=sb;while((n=n.nextSibling)&&n!=eb){if(isBlock(n))bl.push(n);}}if(eb&&sb!=eb)bl.push(eb);return bl;}});})();tinymce.create('tinymce.UndoManager',{index:0,data:null,typing:0,UndoManager:function(ed){var t=this,Dispatcher=tinymce.util.Dispatcher;t.editor=ed;t.data=[];t.onAdd=new Dispatcher(this);t.onUndo=new Dispatcher(this);t.onRedo=new Dispatcher(this);},add:function(l){var t=this,i,ed=t.editor,b,s=ed.settings,la;l=l||{};l.content=l.content||ed.getContent({format:'raw',no_events:1});l.content=l.content.replace(/^\s*|\s*$/g,'');la=t.data[t.index>0&&(t.index==0||t.index==t.data.length)?t.index-1:t.index];if(!l.initial&&la&&l.content==la.content)return null;if(s.custom_undo_redo_levels){if(t.data.length>s.custom_undo_redo_levels){for(i=0;i<t.data.length-1;i++)t.data[i]=t.data[i+1];t.data.length--;t.index=t.data.length;}}if(s.custom_undo_redo_restore_selection&&!l.initial)l.bookmark=b=l.bookmark||ed.selection.getBookmark();if(t.index<t.data.length)t.index++;if(t.data.length===0&&!l.initial)return null;t.data.length=t.index+1;t.data[t.index++]=l;if(l.initial)t.index=0;if(t.data.length==2&&t.data[0].initial)t.data[0].bookmark=b;t.onAdd.dispatch(t,l);ed.isNotDirty=0;return l;},undo:function(){var t=this,ed=t.editor,l=l,i;if(t.typing){t.add();t.typing=0;}if(t.index>0){if(t.index==t.data.length&&t.index>1){i=t.index;t.typing=0;if(!t.add())t.index=i;--t.index;}l=t.data[--t.index];ed.setContent(l.content,{format:'raw'});ed.selection.moveToBookmark(l.bookmark);t.onUndo.dispatch(t,l);}return l;},redo:function(){var t=this,ed=t.editor,l=null;if(t.index<t.data.length-1){l=t.data[++t.index];ed.setContent(l.content,{format:'raw'});ed.selection.moveToBookmark(l.bookmark);t.onRedo.dispatch(t,l);}return l;},clear:function(){var t=this;t.data=[];t.index=0;t.typing=0;t.add({initial:true});},hasUndo:function(){return this.index!=0||this.typing;},hasRedo:function(){return this.index<this.data.length-1;}});(function(){var Event,isIE,isGecko,isOpera,each,extend;Event=tinymce.dom.Event;isIE=tinymce.isIE;isGecko=tinymce.isGecko;isOpera=tinymce.isOpera;each=tinymce.each;extend=tinymce.extend;tinymce.create('tinymce.ForceBlocks',{ForceBlocks:function(ed){var t=this,s=ed.settings,elm;t.editor=ed;t.dom=ed.dom;elm=(s.forced_root_block||'p').toLowerCase();s.element=elm.toUpperCase();ed.onPreInit.add(t.setup,t);t.reOpera=new RegExp('(\\u00a0|&#160;|&nbsp;)<\/'+elm+'>','gi');t.rePadd=new RegExp('<p( )([^>]+)><\\\/p>|<p( )([^>]+)\\\/>|<p( )([^>]+)>\\s+<\\\/p>|<p><\\\/p>|<p\\\/>|<p>\\s+<\\\/p>'.replace(/p/g,elm),'gi');t.reNbsp2BR1=new RegExp('<p( )([^>]+)>[\\s\\u00a0]+<\\\/p>|<p>[\\s\\u00a0]+<\\\/p>'.replace(/p/g,elm),'gi');t.reNbsp2BR2=new RegExp('<p( )([^>]+)>(&nbsp;|&#160;)<\\\/p>|<p>(&nbsp;|&#160;)<\\\/p>'.replace(/p/g,elm),'gi');t.reBR2Nbsp=new RegExp('<p( )([^>]+)>\\s*<br \\\/>\\s*<\\\/p>|<p>\\s*<br \\\/>\\s*<\\\/p>'.replace(/p/g,elm),'gi');t.reTrailBr=new RegExp('\\s*<br \\/>\\s*<\\\/p>'.replace(/p/g,elm),'gi');function padd(ed,o){if(isOpera)o.content=o.content.replace(t.reOpera,'</'+elm+'>');o.content=o.content.replace(t.rePadd,'<'+elm+'$1$2$3$4$5$6>\u00a0</'+elm+'>');if(!isIE&&!isOpera&&o.set){o.content=o.content.replace(t.reNbsp2BR1,'<'+elm+'$1$2><br /></'+elm+'>');o.content=o.content.replace(t.reNbsp2BR2,'<'+elm+'$1$2><br /></'+elm+'>');}else{o.content=o.content.replace(t.reBR2Nbsp,'<'+elm+'$1$2>\u00a0</'+elm+'>');o.content=o.content.replace(t.reTrailBr,'</'+elm+'>');}};ed.onBeforeSetContent.add(padd);ed.onPostProcess.add(padd);if(s.forced_root_block){ed.onInit.add(t.forceRoots,t);ed.onSetContent.add(t.forceRoots,t);ed.onBeforeGetContent.add(t.forceRoots,t);}},setup:function(){var t=this,ed=t.editor,s=ed.settings;if(s.forced_root_block){ed.onKeyUp.add(t.forceRoots,t);ed.onPreProcess.add(t.forceRoots,t);}if(s.force_br_newlines){if(isIE){ed.onKeyPress.add(function(ed,e){var n,s=ed.selection;if(e.keyCode==13&&s.getNode().nodeName!='LI'){s.setContent('<br id="__" /> ',{format:'raw'});n=ed.dom.get('__');n.removeAttribute('id');s.select(n);s.collapse();return Event.cancel(e);}});}return;}if(!isIE&&s.force_p_newlines){ed.onKeyPress.add(function(ed,e){if(e.keyCode==13&&!e.shiftKey){if(!t.insertPara(e))Event.cancel(e);}});if(isGecko){ed.onKeyDown.add(function(ed,e){if((e.keyCode==8||e.keyCode==46)&&!e.shiftKey)t.backspaceDelete(e,e.keyCode==8);});}}function ren(rn,na){var ne=ed.dom.create(na);each(rn.attributes,function(a){if(a.specified&&a.nodeValue)ne.setAttribute(a.nodeName.toLowerCase(),a.nodeValue);});each(rn.childNodes,function(n){ne.appendChild(n.cloneNode(true));});rn.parentNode.replaceChild(ne,rn);return ne;};if(isIE&&s.element!='P'){ed.onKeyPress.add(function(ed,e){t.lastElm=ed.selection.getNode().nodeName;});ed.onKeyUp.add(function(ed,e){var bl,sel=ed.selection,n=sel.getNode(),b=ed.getBody();if(b.childNodes.length===1&&n.nodeName=='P'){n=ren(n,s.element);sel.select(n);sel.collapse();ed.nodeChanged();}else if(e.keyCode==13&&!e.shiftKey&&t.lastElm!='P'){bl=ed.dom.getParent(n,'P');if(bl){ren(bl,s.element);ed.nodeChanged();}}});}},find:function(n,t,s){var ed=this.editor,w=ed.getDoc().createTreeWalker(n,4,null,false),c=-1;while(n=w.nextNode()){c++;if(t==0&&n==s)return c;if(t==1&&c==s)return n;}return-1;},forceRoots:function(ed,e){var t=this,ed=t.editor,b=ed.getBody(),d=ed.getDoc(),se=ed.selection,s=se.getSel(),r=se.getRng(),si=-2,ei,so,eo,tr,c=-0xFFFFFF;var nx,bl,bp,sp,le,nl=b.childNodes,i,n,eid;for(i=nl.length-1;i>=0;i--){nx=nl[i];if(nx.nodeType==3||(!t.dom.isBlock(nx)&&nx.nodeType!=8)){if(!bl){if(nx.nodeType!=3||/[^\s]/g.test(nx.nodeValue)){if(si==-2&&r){if(!isIE){if(r.startContainer.nodeType==1&&(n=r.startContainer.childNodes[r.startOffset])&&n.nodeType==1){eid=n.getAttribute("id");n.setAttribute("id","__mce");}else{if(ed.dom.getParent(r.startContainer,function(e){return e===b;})){so=r.startOffset;eo=r.endOffset;si=t.find(b,0,r.startContainer);ei=t.find(b,0,r.endContainer);}}}else{tr=d.body.createTextRange();tr.moveToElementText(b);tr.collapse(1);bp=tr.move('character',c)*-1;tr=r.duplicate();tr.collapse(1);sp=tr.move('character',c)*-1;tr=r.duplicate();tr.collapse(0);le=(tr.move('character',c)*-1)-sp;si=sp-bp;ei=le;}}bl=ed.dom.create(ed.settings.forced_root_block);bl.appendChild(nx.cloneNode(1));nx.parentNode.replaceChild(bl,nx);}}else{if(bl.hasChildNodes())bl.insertBefore(nx,bl.firstChild);else bl.appendChild(nx);}}else bl=null;}if(si!=-2){if(!isIE){bl=b.getElementsByTagName(ed.settings.element)[0];r=d.createRange();if(si!=-1)r.setStart(t.find(b,1,si),so);else r.setStart(bl,0);if(ei!=-1)r.setEnd(t.find(b,1,ei),eo);else r.setEnd(bl,0);if(s){s.removeAllRanges();s.addRange(r);}}else{try{r=s.createRange();r.moveToElementText(b);r.collapse(1);r.moveStart('character',si);r.moveEnd('character',ei);r.select();}catch(ex){}}}else if(!isIE&&(n=ed.dom.get('__mce'))){if(eid)n.setAttribute('id',eid);else n.removeAttribute('id');r=d.createRange();r.setStartBefore(n);r.setEndBefore(n);se.setRng(r);}},getParentBlock:function(n){var d=this.dom;return d.getParent(n,d.isBlock);},insertPara:function(e){var t=this,ed=t.editor,dom=ed.dom,d=ed.getDoc(),se=ed.settings,s=ed.selection.getSel(),r=s.getRangeAt(0),b=d.body;var rb,ra,dir,sn,so,en,eo,sb,eb,bn,bef,aft,sc,ec,n,vp=dom.getViewPort(ed.getWin()),y,ch,car;function isEmpty(n){n=n.innerHTML;n=n.replace(/<(img|hr|table)/gi,'-');n=n.replace(/<[^>]+>/g,'');return n.replace(/[ \t\r\n]+/g,'')=='';};rb=d.createRange();rb.setStart(s.anchorNode,s.anchorOffset);rb.collapse(true);ra=d.createRange();ra.setStart(s.focusNode,s.focusOffset);ra.collapse(true);dir=rb.compareBoundaryPoints(rb.START_TO_END,ra)<0;sn=dir?s.anchorNode:s.focusNode;so=dir?s.anchorOffset:s.focusOffset;en=dir?s.focusNode:s.anchorNode;eo=dir?s.focusOffset:s.anchorOffset;if(sn===en&&/^(TD|TH)$/.test(sn.nodeName)){dom.remove(sn.firstChild);ed.dom.add(sn,se.element,null,'<br />');aft=ed.dom.add(sn,se.element,null,'<br />');r=d.createRange();r.selectNodeContents(aft);r.collapse(1);ed.selection.setRng(r);return false;}if(sn==b&&en==b&&b.firstChild&&ed.dom.isBlock(b.firstChild)){sn=en=sn.firstChild;so=eo=0;rb=d.createRange();rb.setStart(sn,0);ra=d.createRange();ra.setStart(en,0);}sn=sn.nodeName=="HTML"?d.body:sn;sn=sn.nodeName=="BODY"?sn.firstChild:sn;en=en.nodeName=="HTML"?d.body:en;en=en.nodeName=="BODY"?en.firstChild:en;sb=t.getParentBlock(sn);eb=t.getParentBlock(en);bn=sb?sb.nodeName:se.element;if(t.dom.getParent(sb,function(n){return/OL|UL|PRE/.test(n.nodeName);}))return true;if(sb&&(sb.nodeName=='CAPTION'||/absolute|relative|static/gi.test(sb.style.position))){bn=se.element;sb=null;}if(eb&&(eb.nodeName=='CAPTION'||/absolute|relative|static/gi.test(eb.style.position))){bn=se.element;eb=null;}if(/(TD|TABLE|TH|CAPTION)/.test(bn)||(sb&&bn=="DIV"&&/left|right/gi.test(sb.style.cssFloat))){bn=se.element;sb=eb=null;}bef=(sb&&sb.nodeName==bn)?sb.cloneNode(0):ed.dom.create(bn);aft=(eb&&eb.nodeName==bn)?eb.cloneNode(0):ed.dom.create(bn);aft.removeAttribute('id');if(/^(H[1-6])$/.test(bn)&&sn.nodeValue&&so==sn.nodeValue.length)aft=ed.dom.create(se.element);n=sc=sn;do{if(n==b||n.nodeType==9||t.dom.isBlock(n)||/(TD|TABLE|TH|CAPTION)/.test(n.nodeName))break;sc=n;}while((n=n.previousSibling?n.previousSibling:n.parentNode));n=ec=en;do{if(n==b||n.nodeType==9||t.dom.isBlock(n)||/(TD|TABLE|TH|CAPTION)/.test(n.nodeName))break;ec=n;}while((n=n.nextSibling?n.nextSibling:n.parentNode));if(sc.nodeName==bn)rb.setStart(sc,0);else rb.setStartBefore(sc);rb.setEnd(sn,so);bef.appendChild(rb.cloneContents()||d.createTextNode(''));try{ra.setEndAfter(ec);}catch(ex){}ra.setStart(en,eo);aft.appendChild(ra.cloneContents()||d.createTextNode(''));r=d.createRange();if(!sc.previousSibling&&sc.parentNode.nodeName==bn){r.setStartBefore(sc.parentNode);}else{if(rb.startContainer.nodeName==bn&&rb.startOffset==0)r.setStartBefore(rb.startContainer);else r.setStart(rb.startContainer,rb.startOffset);}if(!ec.nextSibling&&ec.parentNode.nodeName==bn)r.setEndAfter(ec.parentNode);else r.setEnd(ra.endContainer,ra.endOffset);r.deleteContents();if(isOpera)ed.getWin().scrollTo(0,vp.y);if(bef.firstChild&&bef.firstChild.nodeName==bn)bef.innerHTML=bef.firstChild.innerHTML;if(aft.firstChild&&aft.firstChild.nodeName==bn)aft.innerHTML=aft.firstChild.innerHTML;if(isEmpty(bef))bef.innerHTML='<br />';function appendStyles(e,en){var nl=[],nn,n,i;e.innerHTML='';if(se.keep_styles){n=en;do{if(/^(SPAN|STRONG|B|EM|I|FONT|STRIKE|U)$/.test(n.nodeName)){nn=n.cloneNode(false);dom.setAttrib(nn,'id','');nl.push(nn);}}while(n=n.parentNode);}if(nl.length>0){for(i=nl.length-1,nn=e;i>=0;i--)nn=nn.appendChild(nl[i]);nl[0].innerHTML=isOpera?'&nbsp;':'<br />';return nl[0];}else e.innerHTML=isOpera?'&nbsp;':'<br />';};if(isEmpty(aft))car=appendStyles(aft,en);if(isOpera&&parseFloat(opera.version())<9.5){r.insertNode(bef);r.insertNode(aft);}else{r.insertNode(aft);r.insertNode(bef);}aft.normalize();bef.normalize();function first(n){return d.createTreeWalker(n,NodeFilter.SHOW_TEXT,null,false).nextNode()||n;};r=d.createRange();r.selectNodeContents(isGecko?first(car||aft):car||aft);r.collapse(1);s.removeAllRanges();s.addRange(r);y=ed.dom.getPos(aft).y;ch=aft.clientHeight;if(y<vp.y||y+ch>vp.y+vp.h){ed.getWin().scrollTo(0,y<vp.y?y:y-vp.h+25);}return false;},backspaceDelete:function(e,bs){var t=this,ed=t.editor,b=ed.getBody(),n,se=ed.selection,r=se.getRng(),sc=r.startContainer,n,w,tn;if(sc&&ed.dom.isBlock(sc)&&!/^(TD|TH)$/.test(sc.nodeName)&&bs){if(sc.childNodes.length==0||(sc.childNodes.length==1&&sc.firstChild.nodeName=='BR')){n=sc;while((n=n.previousSibling)&&!ed.dom.isBlock(n));if(n){if(sc!=b.firstChild){w=ed.dom.doc.createTreeWalker(n,NodeFilter.SHOW_TEXT,null,false);while(tn=w.nextNode())n=tn;r=ed.getDoc().createRange();r.setStart(n,n.nodeValue?n.nodeValue.length:0);r.setEnd(n,n.nodeValue?n.nodeValue.length:0);se.setRng(r);ed.dom.remove(sc);}return Event.cancel(e);}}}function handler(e){var pr;e=e.target;if(e&&e.parentNode&&e.nodeName=='BR'&&(n=t.getParentBlock(e))){pr=e.previousSibling;Event.remove(b,'DOMNodeInserted',handler);if(pr&&pr.nodeType==3&&/\s+$/.test(pr.nodeValue))return;if(e.previousSibling||e.nextSibling)ed.dom.remove(e);}};Event._add(b,'DOMNodeInserted',handler);window.setTimeout(function(){Event._remove(b,'DOMNodeInserted',handler);},1);}});})();(function(){var DOM=tinymce.DOM,Event=tinymce.dom.Event,each=tinymce.each,extend=tinymce.extend;tinymce.create('tinymce.ControlManager',{ControlManager:function(ed,s){var t=this,i;s=s||{};t.editor=ed;t.controls={};t.onAdd=new tinymce.util.Dispatcher(t);t.onPostRender=new tinymce.util.Dispatcher(t);t.prefix=s.prefix||ed.id+'_';t._cls={};t.onPostRender.add(function(){each(t.controls,function(c){c.postRender();});});},get:function(id){return this.controls[this.prefix+id]||this.controls[id];},setActive:function(id,s){var c=null;if(c=this.get(id))c.setActive(s);return c;},setDisabled:function(id,s){var c=null;if(c=this.get(id))c.setDisabled(s);return c;},add:function(c){var t=this;if(c){t.controls[c.id]=c;t.onAdd.dispatch(c,t);}return c;},createControl:function(n){var c,t=this,ed=t.editor;each(ed.plugins,function(p){if(p.createControl){c=p.createControl(n,t);if(c)return false;}});switch(n){case"|":case"separator":return t.createSeparator();}if(!c&&ed.buttons&&(c=ed.buttons[n]))return t.createButton(n,c);return t.add(c);},createDropMenu:function(id,s,cc){var t=this,ed=t.editor,c,bm,v,cls;s=extend({'class':'mceDropDown',constrain:ed.settings.constrain_menus},s);s['class']=s['class']+' '+ed.getParam('skin')+'Skin';if(v=ed.getParam('skin_variant'))s['class']+=' '+ed.getParam('skin')+'Skin'+v.substring(0,1).toUpperCase()+v.substring(1);id=t.prefix+id;cls=cc||t._cls.dropmenu||tinymce.ui.DropMenu;c=t.controls[id]=new cls(id,s);c.onAddItem.add(function(c,o){var s=o.settings;s.title=ed.getLang(s.title,s.title);if(!s.onclick){s.onclick=function(v){ed.execCommand(s.cmd,s.ui||false,s.value);};}});ed.onRemove.add(function(){c.destroy();});if(tinymce.isIE){c.onShowMenu.add(function(){bm=ed.selection.getBookmark(1);});c.onHideMenu.add(function(){if(bm)ed.selection.moveToBookmark(bm);});}return t.add(c);},createListBox:function(id,s,cc){var t=this,ed=t.editor,cmd,c,cls;if(t.get(id))return null;s.title=ed.translate(s.title);s.scope=s.scope||ed;if(!s.onselect){s.onselect=function(v){ed.execCommand(s.cmd,s.ui||false,v||s.value);};}s=extend({title:s.title,'class':'mce_'+id,scope:s.scope,control_manager:t},s);id=t.prefix+id;if(ed.settings.use_native_selects)c=new tinymce.ui.NativeListBox(id,s);else{cls=cc||t._cls.listbox||tinymce.ui.ListBox;c=new cls(id,s);}t.controls[id]=c;if(tinymce.isWebKit){c.onPostRender.add(function(c,n){Event.add(n,'mousedown',function(){ed.bookmark=ed.selection.getBookmark('simple');});Event.add(n,'focus',function(){ed.selection.moveToBookmark(ed.bookmark);ed.bookmark=null;});});}if(c.hideMenu)ed.onMouseDown.add(c.hideMenu,c);return t.add(c);},createButton:function(id,s,cc){var t=this,ed=t.editor,o,c,cls;if(t.get(id))return null;s.title=ed.translate(s.title);s.label=ed.translate(s.label);s.scope=s.scope||ed;if(!s.onclick&&!s.menu_button){s.onclick=function(){ed.execCommand(s.cmd,s.ui||false,s.value);};}s=extend({title:s.title,'class':'mce_'+id,unavailable_prefix:ed.getLang('unavailable',''),scope:s.scope,control_manager:t},s);id=t.prefix+id;if(s.menu_button){cls=cc||t._cls.menubutton||tinymce.ui.MenuButton;c=new cls(id,s);ed.onMouseDown.add(c.hideMenu,c);}else{cls=t._cls.button||tinymce.ui.Button;c=new cls(id,s);}return t.add(c);},createMenuButton:function(id,s,cc){s=s||{};s.menu_button=1;return this.createButton(id,s,cc);},createSplitButton:function(id,s,cc){var t=this,ed=t.editor,cmd,c,cls;if(t.get(id))return null;s.title=ed.translate(s.title);s.scope=s.scope||ed;if(!s.onclick){s.onclick=function(v){ed.execCommand(s.cmd,s.ui||false,v||s.value);};}if(!s.onselect){s.onselect=function(v){ed.execCommand(s.cmd,s.ui||false,v||s.value);};}s=extend({title:s.title,'class':'mce_'+id,scope:s.scope,control_manager:t},s);id=t.prefix+id;cls=cc||t._cls.splitbutton||tinymce.ui.SplitButton;c=t.add(new cls(id,s));ed.onMouseDown.add(c.hideMenu,c);return c;},createColorSplitButton:function(id,s,cc){var t=this,ed=t.editor,cmd,c,cls,bm;if(t.get(id))return null;s.title=ed.translate(s.title);s.scope=s.scope||ed;if(!s.onclick){s.onclick=function(v){ed.execCommand(s.cmd,s.ui||false,v||s.value);};}if(!s.onselect){s.onselect=function(v){ed.execCommand(s.cmd,s.ui||false,v||s.value);};}s=extend({title:s.title,'class':'mce_'+id,'menu_class':ed.getParam('skin')+'Skin',scope:s.scope,more_colors_title:ed.getLang('more_colors')},s);id=t.prefix+id;cls=cc||t._cls.colorsplitbutton||tinymce.ui.ColorSplitButton;c=new cls(id,s);ed.onMouseDown.add(c.hideMenu,c);ed.onRemove.add(function(){c.destroy();});if(tinymce.isIE){c.onShowMenu.add(function(){bm=ed.selection.getBookmark(1);});c.onHideMenu.add(function(){if(bm){ed.selection.moveToBookmark(bm);bm=0;}});}return t.add(c);},createToolbar:function(id,s,cc){var c,t=this,cls;id=t.prefix+id;cls=cc||t._cls.toolbar||tinymce.ui.Toolbar;c=new cls(id,s);if(t.get(id))return null;return t.add(c);},createSeparator:function(cc){var cls=cc||this._cls.separator||tinymce.ui.Separator;return new cls();},setControlType:function(n,c){return this._cls[n.toLowerCase()]=c;},destroy:function(){each(this.controls,function(c){c.destroy();});this.controls=null;}});})();(function(){var Dispatcher=tinymce.util.Dispatcher,each=tinymce.each,isIE=tinymce.isIE,isOpera=tinymce.isOpera;tinymce.create('tinymce.WindowManager',{WindowManager:function(ed){var t=this;t.editor=ed;t.onOpen=new Dispatcher(t);t.onClose=new Dispatcher(t);t.params={};t.features={};},open:function(s,p){var t=this,f='',x,y,mo=t.editor.settings.dialog_type=='modal',w,sw,sh,vp=tinymce.DOM.getViewPort(),u;s=s||{};p=p||{};sw=isOpera?vp.w:screen.width;sh=isOpera?vp.h:screen.height;s.name=s.name||'mc_'+new Date().getTime();s.width=parseInt(s.width||320);s.height=parseInt(s.height||240);s.resizable=true;s.left=s.left||parseInt(sw/ 2.0) - (s.width /2.0);s.top=s.top||parseInt(sh/ 2.0) - (s.height /2.0);p.inline=false;p.mce_width=s.width;p.mce_height=s.height;p.mce_auto_focus=s.auto_focus;if(mo){if(isIE){s.center=true;s.help=false;s.dialogWidth=s.width+'px';s.dialogHeight=s.height+'px';s.scroll=s.scrollbars||false;}}each(s,function(v,k){if(tinymce.is(v,'boolean'))v=v?'yes':'no';if(!/^(name|url)$/.test(k)){if(isIE&&mo)f+=(f?';':'')+k+':'+v;else f+=(f?',':'')+k+'='+v;}});t.features=s;t.params=p;t.onOpen.dispatch(t,s,p);u=s.url||s.file;if(tinymce.relaxedDomain)u+=(u.indexOf('?')==-1?'?':'&')+'mce_rdomain='+tinymce.relaxedDomain;u=tinymce._addVer(u);try{if(isIE&&mo){w=1;window.showModalDialog(u,window,f);}else w=window.open(u,s.name,f);}catch(ex){}if(!w)alert(t.editor.getLang('popup_blocked'));},close:function(w){w.close();this.onClose.dispatch(this);},createInstance:function(cl,a,b,c,d,e){var f=tinymce.resolve(cl);return new f(a,b,c,d,e);},confirm:function(t,cb,s,w){w=w||window;cb.call(s||this,w.confirm(this._decode(this.editor.getLang(t,t))));},alert:function(tx,cb,s,w){var t=this;w=w||window;w.alert(t._decode(t.editor.getLang(tx,tx)));if(cb)cb.call(s||t);},_decode:function(s){return tinymce.DOM.decode(s).replace(/\\n/g,'\n');}});}());
\ No newline at end of file
diff --git a/wqflask/wqflask/static/new/packages/ValidationPlugin/jquery-validation-1.10.0.zip b/wqflask/wqflask/static/new/packages/ValidationPlugin/jquery-validation-1.10.0.zip
deleted file mode 100755
index ffb75973..00000000
--- a/wqflask/wqflask/static/new/packages/ValidationPlugin/jquery-validation-1.10.0.zip
+++ /dev/null
Binary files differdiff --git a/wqflask/wqflask/static/packages/bootstrap-old/css/bootstrap-responsive.css b/wqflask/wqflask/static/packages/bootstrap-old/css/bootstrap-responsive.css
deleted file mode 100755
index 9259d26d..00000000
--- a/wqflask/wqflask/static/packages/bootstrap-old/css/bootstrap-responsive.css
+++ /dev/null
@@ -1,1058 +0,0 @@
-/*!
- * Bootstrap Responsive v2.1.1
- *
- * Copyright 2012 Twitter, Inc
- * Licensed under the Apache License v2.0
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Designed and built with all the love in the world @twitter by @mdo and @fat.
- */
-
-.clearfix {
-  *zoom: 1;
-}
-
-.clearfix:before,
-.clearfix:after {
-  display: table;
-  line-height: 0;
-  content: "";
-}
-
-.clearfix:after {
-  clear: both;
-}
-
-.hide-text {
-  font: 0/0 a;
-  color: transparent;
-  text-shadow: none;
-  background-color: transparent;
-  border: 0;
-}
-
-.input-block-level {
-  display: block;
-  width: 100%;
-  min-height: 30px;
-  -webkit-box-sizing: border-box;
-     -moz-box-sizing: border-box;
-          box-sizing: border-box;
-}
-
-.hidden {
-  display: none;
-  visibility: hidden;
-}
-
-.visible-phone {
-  display: none !important;
-}
-
-.visible-tablet {
-  display: none !important;
-}
-
-.hidden-desktop {
-  display: none !important;
-}
-
-.visible-desktop {
-  display: inherit !important;
-}
-
-@media (min-width: 768px) and (max-width: 979px) {
-  .hidden-desktop {
-    display: inherit !important;
-  }
-  .visible-desktop {
-    display: none !important ;
-  }
-  .visible-tablet {
-    display: inherit !important;
-  }
-  .hidden-tablet {
-    display: none !important;
-  }
-}
-
-@media (max-width: 767px) {
-  .hidden-desktop {
-    display: inherit !important;
-  }
-  .visible-desktop {
-    display: none !important;
-  }
-  .visible-phone {
-    display: inherit !important;
-  }
-  .hidden-phone {
-    display: none !important;
-  }
-}
-
-@media (min-width: 1200px) {
-  .row {
-    margin-left: -30px;
-    *zoom: 1;
-  }
-  .row:before,
-  .row:after {
-    display: table;
-    line-height: 0;
-    content: "";
-  }
-  .row:after {
-    clear: both;
-  }
-  [class*="span"] {
-    float: left;
-    min-height: 1px;
-    margin-left: 30px;
-  }
-  .container,
-  .navbar-static-top .container,
-  .navbar-fixed-top .container,
-  .navbar-fixed-bottom .container {
-    width: 1170px;
-  }
-  .span12 {
-    width: 1170px;
-  }
-  .span11 {
-    width: 1070px;
-  }
-  .span10 {
-    width: 970px;
-  }
-  .span9 {
-    width: 870px;
-  }
-  .span8 {
-    width: 770px;
-  }
-  .span7 {
-    width: 670px;
-  }
-  .span6 {
-    width: 570px;
-  }
-  .span5 {
-    width: 470px;
-  }
-  .span4 {
-    width: 370px;
-  }
-  .span3 {
-    width: 270px;
-  }
-  .span2 {
-    width: 170px;
-  }
-  .span1 {
-    width: 70px;
-  }
-  .offset12 {
-    margin-left: 1230px;
-  }
-  .offset11 {
-    margin-left: 1130px;
-  }
-  .offset10 {
-    margin-left: 1030px;
-  }
-  .offset9 {
-    margin-left: 930px;
-  }
-  .offset8 {
-    margin-left: 830px;
-  }
-  .offset7 {
-    margin-left: 730px;
-  }
-  .offset6 {
-    margin-left: 630px;
-  }
-  .offset5 {
-    margin-left: 530px;
-  }
-  .offset4 {
-    margin-left: 430px;
-  }
-  .offset3 {
-    margin-left: 330px;
-  }
-  .offset2 {
-    margin-left: 230px;
-  }
-  .offset1 {
-    margin-left: 130px;
-  }
-  .row-fluid {
-    width: 100%;
-    *zoom: 1;
-  }
-  .row-fluid:before,
-  .row-fluid:after {
-    display: table;
-    line-height: 0;
-    content: "";
-  }
-  .row-fluid:after {
-    clear: both;
-  }
-  .row-fluid [class*="span"] {
-    display: block;
-    float: left;
-    width: 100%;
-    min-height: 30px;
-    margin-left: 2.564102564102564%;
-    *margin-left: 2.5109110747408616%;
-    -webkit-box-sizing: border-box;
-       -moz-box-sizing: border-box;
-            box-sizing: border-box;
-  }
-  .row-fluid [class*="span"]:first-child {
-    margin-left: 0;
-  }
-  .row-fluid .span12 {
-    width: 100%;
-    *width: 99.94680851063829%;
-  }
-  .row-fluid .span11 {
-    width: 91.45299145299145%;
-    *width: 91.39979996362975%;
-  }
-  .row-fluid .span10 {
-    width: 82.90598290598291%;
-    *width: 82.8527914166212%;
-  }
-  .row-fluid .span9 {
-    width: 74.35897435897436%;
-    *width: 74.30578286961266%;
-  }
-  .row-fluid .span8 {
-    width: 65.81196581196582%;
-    *width: 65.75877432260411%;
-  }
-  .row-fluid .span7 {
-    width: 57.26495726495726%;
-    *width: 57.21176577559556%;
-  }
-  .row-fluid .span6 {
-    width: 48.717948717948715%;
-    *width: 48.664757228587014%;
-  }
-  .row-fluid .span5 {
-    width: 40.17094017094017%;
-    *width: 40.11774868157847%;
-  }
-  .row-fluid .span4 {
-    width: 31.623931623931625%;
-    *width: 31.570740134569924%;
-  }
-  .row-fluid .span3 {
-    width: 23.076923076923077%;
-    *width: 23.023731587561375%;
-  }
-  .row-fluid .span2 {
-    width: 14.52991452991453%;
-    *width: 14.476723040552828%;
-  }
-  .row-fluid .span1 {
-    width: 5.982905982905983%;
-    *width: 5.929714493544281%;
-  }
-  .row-fluid .offset12 {
-    margin-left: 105.12820512820512%;
-    *margin-left: 105.02182214948171%;
-  }
-  .row-fluid .offset12:first-child {
-    margin-left: 102.56410256410257%;
-    *margin-left: 102.45771958537915%;
-  }
-  .row-fluid .offset11 {
-    margin-left: 96.58119658119658%;
-    *margin-left: 96.47481360247316%;
-  }
-  .row-fluid .offset11:first-child {
-    margin-left: 94.01709401709402%;
-    *margin-left: 93.91071103837061%;
-  }
-  .row-fluid .offset10 {
-    margin-left: 88.03418803418803%;
-    *margin-left: 87.92780505546462%;
-  }
-  .row-fluid .offset10:first-child {
-    margin-left: 85.47008547008548%;
-    *margin-left: 85.36370249136206%;
-  }
-  .row-fluid .offset9 {
-    margin-left: 79.48717948717949%;
-    *margin-left: 79.38079650845607%;
-  }
-  .row-fluid .offset9:first-child {
-    margin-left: 76.92307692307693%;
-    *margin-left: 76.81669394435352%;
-  }
-  .row-fluid .offset8 {
-    margin-left: 70.94017094017094%;
-    *margin-left: 70.83378796144753%;
-  }
-  .row-fluid .offset8:first-child {
-    margin-left: 68.37606837606839%;
-    *margin-left: 68.26968539734497%;
-  }
-  .row-fluid .offset7 {
-    margin-left: 62.393162393162385%;
-    *margin-left: 62.28677941443899%;
-  }
-  .row-fluid .offset7:first-child {
-    margin-left: 59.82905982905982%;
-    *margin-left: 59.72267685033642%;
-  }
-  .row-fluid .offset6 {
-    margin-left: 53.84615384615384%;
-    *margin-left: 53.739770867430444%;
-  }
-  .row-fluid .offset6:first-child {
-    margin-left: 51.28205128205128%;
-    *margin-left: 51.175668303327875%;
-  }
-  .row-fluid .offset5 {
-    margin-left: 45.299145299145295%;
-    *margin-left: 45.1927623204219%;
-  }
-  .row-fluid .offset5:first-child {
-    margin-left: 42.73504273504273%;
-    *margin-left: 42.62865975631933%;
-  }
-  .row-fluid .offset4 {
-    margin-left: 36.75213675213675%;
-    *margin-left: 36.645753773413354%;
-  }
-  .row-fluid .offset4:first-child {
-    margin-left: 34.18803418803419%;
-    *margin-left: 34.081651209310785%;
-  }
-  .row-fluid .offset3 {
-    margin-left: 28.205128205128204%;
-    *margin-left: 28.0987452264048%;
-  }
-  .row-fluid .offset3:first-child {
-    margin-left: 25.641025641025642%;
-    *margin-left: 25.53464266230224%;
-  }
-  .row-fluid .offset2 {
-    margin-left: 19.65811965811966%;
-    *margin-left: 19.551736679396257%;
-  }
-  .row-fluid .offset2:first-child {
-    margin-left: 17.094017094017094%;
-    *margin-left: 16.98763411529369%;
-  }
-  .row-fluid .offset1 {
-    margin-left: 11.11111111111111%;
-    *margin-left: 11.004728132387708%;
-  }
-  .row-fluid .offset1:first-child {
-    margin-left: 8.547008547008547%;
-    *margin-left: 8.440625568285142%;
-  }
-  input,
-  textarea,
-  .uneditable-input {
-    margin-left: 0;
-  }
-  .controls-row [class*="span"] + [class*="span"] {
-    margin-left: 30px;
-  }
-  input.span12,
-  textarea.span12,
-  .uneditable-input.span12 {
-    width: 1156px;
-  }
-  input.span11,
-  textarea.span11,
-  .uneditable-input.span11 {
-    width: 1056px;
-  }
-  input.span10,
-  textarea.span10,
-  .uneditable-input.span10 {
-    width: 956px;
-  }
-  input.span9,
-  textarea.span9,
-  .uneditable-input.span9 {
-    width: 856px;
-  }
-  input.span8,
-  textarea.span8,
-  .uneditable-input.span8 {
-    width: 756px;
-  }
-  input.span7,
-  textarea.span7,
-  .uneditable-input.span7 {
-    width: 656px;
-  }
-  input.span6,
-  textarea.span6,
-  .uneditable-input.span6 {
-    width: 556px;
-  }
-  input.span5,
-  textarea.span5,
-  .uneditable-input.span5 {
-    width: 456px;
-  }
-  input.span4,
-  textarea.span4,
-  .uneditable-input.span4 {
-    width: 356px;
-  }
-  input.span3,
-  textarea.span3,
-  .uneditable-input.span3 {
-    width: 256px;
-  }
-  input.span2,
-  textarea.span2,
-  .uneditable-input.span2 {
-    width: 156px;
-  }
-  input.span1,
-  textarea.span1,
-  .uneditable-input.span1 {
-    width: 56px;
-  }
-  .thumbnails {
-    margin-left: -30px;
-  }
-  .thumbnails > li {
-    margin-left: 30px;
-  }
-  .row-fluid .thumbnails {
-    margin-left: 0;
-  }
-}
-
-@media (min-width: 768px) and (max-width: 979px) {
-  .row {
-    margin-left: -20px;
-    *zoom: 1;
-  }
-  .row:before,
-  .row:after {
-    display: table;
-    line-height: 0;
-    content: "";
-  }
-  .row:after {
-    clear: both;
-  }
-  [class*="span"] {
-    float: left;
-    min-height: 1px;
-    margin-left: 20px;
-  }
-  .container,
-  .navbar-static-top .container,
-  .navbar-fixed-top .container,
-  .navbar-fixed-bottom .container {
-    width: 724px;
-  }
-  .span12 {
-    width: 724px;
-  }
-  .span11 {
-    width: 662px;
-  }
-  .span10 {
-    width: 600px;
-  }
-  .span9 {
-    width: 538px;
-  }
-  .span8 {
-    width: 476px;
-  }
-  .span7 {
-    width: 414px;
-  }
-  .span6 {
-    width: 352px;
-  }
-  .span5 {
-    width: 290px;
-  }
-  .span4 {
-    width: 228px;
-  }
-  .span3 {
-    width: 166px;
-  }
-  .span2 {
-    width: 104px;
-  }
-  .span1 {
-    width: 42px;
-  }
-  .offset12 {
-    margin-left: 764px;
-  }
-  .offset11 {
-    margin-left: 702px;
-  }
-  .offset10 {
-    margin-left: 640px;
-  }
-  .offset9 {
-    margin-left: 578px;
-  }
-  .offset8 {
-    margin-left: 516px;
-  }
-  .offset7 {
-    margin-left: 454px;
-  }
-  .offset6 {
-    margin-left: 392px;
-  }
-  .offset5 {
-    margin-left: 330px;
-  }
-  .offset4 {
-    margin-left: 268px;
-  }
-  .offset3 {
-    margin-left: 206px;
-  }
-  .offset2 {
-    margin-left: 144px;
-  }
-  .offset1 {
-    margin-left: 82px;
-  }
-  .row-fluid {
-    width: 100%;
-    *zoom: 1;
-  }
-  .row-fluid:before,
-  .row-fluid:after {
-    display: table;
-    line-height: 0;
-    content: "";
-  }
-  .row-fluid:after {
-    clear: both;
-  }
-  .row-fluid [class*="span"] {
-    display: block;
-    float: left;
-    width: 100%;
-    min-height: 30px;
-    margin-left: 2.7624309392265194%;
-    *margin-left: 2.709239449864817%;
-    -webkit-box-sizing: border-box;
-       -moz-box-sizing: border-box;
-            box-sizing: border-box;
-  }
-  .row-fluid [class*="span"]:first-child {
-    margin-left: 0;
-  }
-  .row-fluid .span12 {
-    width: 100%;
-    *width: 99.94680851063829%;
-  }
-  .row-fluid .span11 {
-    width: 91.43646408839778%;
-    *width: 91.38327259903608%;
-  }
-  .row-fluid .span10 {
-    width: 82.87292817679558%;
-    *width: 82.81973668743387%;
-  }
-  .row-fluid .span9 {
-    width: 74.30939226519337%;
-    *width: 74.25620077583166%;
-  }
-  .row-fluid .span8 {
-    width: 65.74585635359117%;
-    *width: 65.69266486422946%;
-  }
-  .row-fluid .span7 {
-    width: 57.18232044198895%;
-    *width: 57.12912895262725%;
-  }
-  .row-fluid .span6 {
-    width: 48.61878453038674%;
-    *width: 48.56559304102504%;
-  }
-  .row-fluid .span5 {
-    width: 40.05524861878453%;
-    *width: 40.00205712942283%;
-  }
-  .row-fluid .span4 {
-    width: 31.491712707182323%;
-    *width: 31.43852121782062%;
-  }
-  .row-fluid .span3 {
-    width: 22.92817679558011%;
-    *width: 22.87498530621841%;
-  }
-  .row-fluid .span2 {
-    width: 14.3646408839779%;
-    *width: 14.311449394616199%;
-  }
-  .row-fluid .span1 {
-    width: 5.801104972375691%;
-    *width: 5.747913483013988%;
-  }
-  .row-fluid .offset12 {
-    margin-left: 105.52486187845304%;
-    *margin-left: 105.41847889972962%;
-  }
-  .row-fluid .offset12:first-child {
-    margin-left: 102.76243093922652%;
-    *margin-left: 102.6560479605031%;
-  }
-  .row-fluid .offset11 {
-    margin-left: 96.96132596685082%;
-    *margin-left: 96.8549429881274%;
-  }
-  .row-fluid .offset11:first-child {
-    margin-left: 94.1988950276243%;
-    *margin-left: 94.09251204890089%;
-  }
-  .row-fluid .offset10 {
-    margin-left: 88.39779005524862%;
-    *margin-left: 88.2914070765252%;
-  }
-  .row-fluid .offset10:first-child {
-    margin-left: 85.6353591160221%;
-    *margin-left: 85.52897613729868%;
-  }
-  .row-fluid .offset9 {
-    margin-left: 79.8342541436464%;
-    *margin-left: 79.72787116492299%;
-  }
-  .row-fluid .offset9:first-child {
-    margin-left: 77.07182320441989%;
-    *margin-left: 76.96544022569647%;
-  }
-  .row-fluid .offset8 {
-    margin-left: 71.2707182320442%;
-    *margin-left: 71.16433525332079%;
-  }
-  .row-fluid .offset8:first-child {
-    margin-left: 68.50828729281768%;
-    *margin-left: 68.40190431409427%;
-  }
-  .row-fluid .offset7 {
-    margin-left: 62.70718232044199%;
-    *margin-left: 62.600799341718584%;
-  }
-  .row-fluid .offset7:first-child {
-    margin-left: 59.94475138121547%;
-    *margin-left: 59.838368402492065%;
-  }
-  .row-fluid .offset6 {
-    margin-left: 54.14364640883978%;
-    *margin-left: 54.037263430116376%;
-  }
-  .row-fluid .offset6:first-child {
-    margin-left: 51.38121546961326%;
-    *margin-left: 51.27483249088986%;
-  }
-  .row-fluid .offset5 {
-    margin-left: 45.58011049723757%;
-    *margin-left: 45.47372751851417%;
-  }
-  .row-fluid .offset5:first-child {
-    margin-left: 42.81767955801105%;
-    *margin-left: 42.71129657928765%;
-  }
-  .row-fluid .offset4 {
-    margin-left: 37.01657458563536%;
-    *margin-left: 36.91019160691196%;
-  }
-  .row-fluid .offset4:first-child {
-    margin-left: 34.25414364640884%;
-    *margin-left: 34.14776066768544%;
-  }
-  .row-fluid .offset3 {
-    margin-left: 28.45303867403315%;
-    *margin-left: 28.346655695309746%;
-  }
-  .row-fluid .offset3:first-child {
-    margin-left: 25.69060773480663%;
-    *margin-left: 25.584224756083227%;
-  }
-  .row-fluid .offset2 {
-    margin-left: 19.88950276243094%;
-    *margin-left: 19.783119783707537%;
-  }
-  .row-fluid .offset2:first-child {
-    margin-left: 17.12707182320442%;
-    *margin-left: 17.02068884448102%;
-  }
-  .row-fluid .offset1 {
-    margin-left: 11.32596685082873%;
-    *margin-left: 11.219583872105325%;
-  }
-  .row-fluid .offset1:first-child {
-    margin-left: 8.56353591160221%;
-    *margin-left: 8.457152932878806%;
-  }
-  input,
-  textarea,
-  .uneditable-input {
-    margin-left: 0;
-  }
-  .controls-row [class*="span"] + [class*="span"] {
-    margin-left: 20px;
-  }
-  input.span12,
-  textarea.span12,
-  .uneditable-input.span12 {
-    width: 710px;
-  }
-  input.span11,
-  textarea.span11,
-  .uneditable-input.span11 {
-    width: 648px;
-  }
-  input.span10,
-  textarea.span10,
-  .uneditable-input.span10 {
-    width: 586px;
-  }
-  input.span9,
-  textarea.span9,
-  .uneditable-input.span9 {
-    width: 524px;
-  }
-  input.span8,
-  textarea.span8,
-  .uneditable-input.span8 {
-    width: 462px;
-  }
-  input.span7,
-  textarea.span7,
-  .uneditable-input.span7 {
-    width: 400px;
-  }
-  input.span6,
-  textarea.span6,
-  .uneditable-input.span6 {
-    width: 338px;
-  }
-  input.span5,
-  textarea.span5,
-  .uneditable-input.span5 {
-    width: 276px;
-  }
-  input.span4,
-  textarea.span4,
-  .uneditable-input.span4 {
-    width: 214px;
-  }
-  input.span3,
-  textarea.span3,
-  .uneditable-input.span3 {
-    width: 152px;
-  }
-  input.span2,
-  textarea.span2,
-  .uneditable-input.span2 {
-    width: 90px;
-  }
-  input.span1,
-  textarea.span1,
-  .uneditable-input.span1 {
-    width: 28px;
-  }
-}
-
-@media (max-width: 767px) {
-  body {
-    padding-right: 20px;
-    padding-left: 20px;
-  }
-  .navbar-fixed-top,
-  .navbar-fixed-bottom,
-  .navbar-static-top {
-    margin-right: -20px;
-    margin-left: -20px;
-  }
-  .container-fluid {
-    padding: 0;
-  }
-  .dl-horizontal dt {
-    float: none;
-    width: auto;
-    clear: none;
-    text-align: left;
-  }
-  .dl-horizontal dd {
-    margin-left: 0;
-  }
-  .container {
-    width: auto;
-  }
-  .row-fluid {
-    width: 100%;
-  }
-  .row,
-  .thumbnails {
-    margin-left: 0;
-  }
-  .thumbnails > li {
-    float: none;
-    margin-left: 0;
-  }
-  [class*="span"],
-  .row-fluid [class*="span"] {
-    display: block;
-    float: none;
-    width: 100%;
-    margin-left: 0;
-    -webkit-box-sizing: border-box;
-       -moz-box-sizing: border-box;
-            box-sizing: border-box;
-  }
-  .span12,
-  .row-fluid .span12 {
-    width: 100%;
-    -webkit-box-sizing: border-box;
-       -moz-box-sizing: border-box;
-            box-sizing: border-box;
-  }
-  .input-large,
-  .input-xlarge,
-  .input-xxlarge,
-  input[class*="span"],
-  select[class*="span"],
-  textarea[class*="span"],
-  .uneditable-input {
-    display: block;
-    width: 100%;
-    min-height: 30px;
-    -webkit-box-sizing: border-box;
-       -moz-box-sizing: border-box;
-            box-sizing: border-box;
-  }
-  .input-prepend input,
-  .input-append input,
-  .input-prepend input[class*="span"],
-  .input-append input[class*="span"] {
-    display: inline-block;
-    width: auto;
-  }
-  .controls-row [class*="span"] + [class*="span"] {
-    margin-left: 0;
-  }
-  .modal {
-    position: fixed;
-    top: 20px;
-    right: 20px;
-    left: 20px;
-    width: auto;
-    margin: 0;
-  }
-  .modal.fade.in {
-    top: auto;
-  }
-}
-
-@media (max-width: 480px) {
-  .nav-collapse {
-    -webkit-transform: translate3d(0, 0, 0);
-  }
-  .page-header h1 small {
-    display: block;
-    line-height: 20px;
-  }
-  input[type="checkbox"],
-  input[type="radio"] {
-    border: 1px solid #ccc;
-  }
-  .form-horizontal .control-label {
-    float: none;
-    width: auto;
-    padding-top: 0;
-    text-align: left;
-  }
-  .form-horizontal .controls {
-    margin-left: 0;
-  }
-  .form-horizontal .control-list {
-    padding-top: 0;
-  }
-  .form-horizontal .form-actions {
-    padding-right: 10px;
-    padding-left: 10px;
-  }
-  .modal {
-    top: 10px;
-    right: 10px;
-    left: 10px;
-  }
-  .modal-header .close {
-    padding: 10px;
-    margin: -10px;
-  }
-  .carousel-caption {
-    position: static;
-  }
-}
-
-@media (max-width: 979px) {
-  body {
-    padding-top: 0;
-  }
-  .navbar-fixed-top,
-  .navbar-fixed-bottom {
-    position: static;
-  }
-  .navbar-fixed-top {
-    margin-bottom: 20px;
-  }
-  .navbar-fixed-bottom {
-    margin-top: 20px;
-  }
-  .navbar-fixed-top .navbar-inner,
-  .navbar-fixed-bottom .navbar-inner {
-    padding: 5px;
-  }
-  .navbar .container {
-    width: auto;
-    padding: 0;
-  }
-  .navbar .brand {
-    padding-right: 10px;
-    padding-left: 10px;
-    margin: 0 0 0 -5px;
-  }
-  .nav-collapse {
-    clear: both;
-  }
-  .nav-collapse .nav {
-    float: none;
-    margin: 0 0 10px;
-  }
-  .nav-collapse .nav > li {
-    float: none;
-  }
-  .nav-collapse .nav > li > a {
-    margin-bottom: 2px;
-  }
-  .nav-collapse .nav > .divider-vertical {
-    display: none;
-  }
-  .nav-collapse .nav .nav-header {
-    color: #777777;
-    text-shadow: none;
-  }
-  .nav-collapse .nav > li > a,
-  .nav-collapse .dropdown-menu a {
-    padding: 9px 15px;
-    font-weight: bold;
-    color: #777777;
-    -webkit-border-radius: 3px;
-       -moz-border-radius: 3px;
-            border-radius: 3px;
-  }
-  .nav-collapse .btn {
-    padding: 4px 10px 4px;
-    font-weight: normal;
-    -webkit-border-radius: 4px;
-       -moz-border-radius: 4px;
-            border-radius: 4px;
-  }
-  .nav-collapse .dropdown-menu li + li a {
-    margin-bottom: 2px;
-  }
-  .nav-collapse .nav > li > a:hover,
-  .nav-collapse .dropdown-menu a:hover {
-    background-color: #f2f2f2;
-  }
-  .navbar-inverse .nav-collapse .nav > li > a:hover,
-  .navbar-inverse .nav-collapse .dropdown-menu a:hover {
-    background-color: #111111;
-  }
-  .nav-collapse.in .btn-group {
-    padding: 0;
-    margin-top: 5px;
-  }
-  .nav-collapse .dropdown-menu {
-    position: static;
-    top: auto;
-    left: auto;
-    display: block;
-    float: none;
-    max-width: none;
-    padding: 0;
-    margin: 0 15px;
-    background-color: transparent;
-    border: none;
-    -webkit-border-radius: 0;
-       -moz-border-radius: 0;
-            border-radius: 0;
-    -webkit-box-shadow: none;
-       -moz-box-shadow: none;
-            box-shadow: none;
-  }
-  .nav-collapse .dropdown-menu:before,
-  .nav-collapse .dropdown-menu:after {
-    display: none;
-  }
-  .nav-collapse .dropdown-menu .divider {
-    display: none;
-  }
-  .nav-collapse .nav > li > .dropdown-menu:before,
-  .nav-collapse .nav > li > .dropdown-menu:after {
-    display: none;
-  }
-  .nav-collapse .navbar-form,
-  .nav-collapse .navbar-search {
-    float: none;
-    padding: 10px 15px;
-    margin: 10px 0;
-    border-top: 1px solid #f2f2f2;
-    border-bottom: 1px solid #f2f2f2;
-    -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1);
-       -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1);
-            box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1);
-  }
-  .navbar-inverse .nav-collapse .navbar-form,
-  .navbar-inverse .nav-collapse .navbar-search {
-    border-top-color: #111111;
-    border-bottom-color: #111111;
-  }
-  .navbar .nav-collapse .nav.pull-right {
-    float: none;
-    margin-left: 0;
-  }
-  .nav-collapse,
-  .nav-collapse.collapse {
-    height: 0;
-    overflow: hidden;
-  }
-  .navbar .btn-navbar {
-    display: block;
-  }
-  .navbar-static .navbar-inner {
-    padding-right: 10px;
-    padding-left: 10px;
-  }
-}
-
-@media (min-width: 980px) {
-  .nav-collapse.collapse {
-    height: auto !important;
-    overflow: visible !important;
-  }
-}
diff --git a/wqflask/wqflask/static/packages/bootstrap-old/css/bootstrap-responsive.min.css b/wqflask/wqflask/static/packages/bootstrap-old/css/bootstrap-responsive.min.css
deleted file mode 100755
index 7b0158da..00000000
--- a/wqflask/wqflask/static/packages/bootstrap-old/css/bootstrap-responsive.min.css
+++ /dev/null
@@ -1,9 +0,0 @@
-/*!
- * Bootstrap Responsive v2.1.1
- *
- * Copyright 2012 Twitter, Inc
- * Licensed under the Apache License v2.0
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Designed and built with all the love in the world @twitter by @mdo and @fat.
- */.clearfix{*zoom:1}.clearfix:before,.clearfix:after{display:table;line-height:0;content:""}.clearfix:after{clear:both}.hide-text{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.input-block-level{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.hidden{display:none;visibility:hidden}.visible-phone{display:none!important}.visible-tablet{display:none!important}.hidden-desktop{display:none!important}.visible-desktop{display:inherit!important}@media(min-width:768px) and (max-width:979px){.hidden-desktop{display:inherit!important}.visible-desktop{display:none!important}.visible-tablet{display:inherit!important}.hidden-tablet{display:none!important}}@media(max-width:767px){.hidden-desktop{display:inherit!important}.visible-desktop{display:none!important}.visible-phone{display:inherit!important}.hidden-phone{display:none!important}}@media(min-width:1200px){.row{margin-left:-30px;*zoom:1}.row:before,.row:after{display:table;line-height:0;content:""}.row:after{clear:both}[class*="span"]{float:left;min-height:1px;margin-left:30px}.container,.navbar-static-top .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:1170px}.span12{width:1170px}.span11{width:1070px}.span10{width:970px}.span9{width:870px}.span8{width:770px}.span7{width:670px}.span6{width:570px}.span5{width:470px}.span4{width:370px}.span3{width:270px}.span2{width:170px}.span1{width:70px}.offset12{margin-left:1230px}.offset11{margin-left:1130px}.offset10{margin-left:1030px}.offset9{margin-left:930px}.offset8{margin-left:830px}.offset7{margin-left:730px}.offset6{margin-left:630px}.offset5{margin-left:530px}.offset4{margin-left:430px}.offset3{margin-left:330px}.offset2{margin-left:230px}.offset1{margin-left:130px}.row-fluid{width:100%;*zoom:1}.row-fluid:before,.row-fluid:after{display:table;line-height:0;content:""}.row-fluid:after{clear:both}.row-fluid [class*="span"]{display:block;float:left;width:100%;min-height:30px;margin-left:2.564102564102564%;*margin-left:2.5109110747408616%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.row-fluid [class*="span"]:first-child{margin-left:0}.row-fluid .span12{width:100%;*width:99.94680851063829%}.row-fluid .span11{width:91.45299145299145%;*width:91.39979996362975%}.row-fluid .span10{width:82.90598290598291%;*width:82.8527914166212%}.row-fluid .span9{width:74.35897435897436%;*width:74.30578286961266%}.row-fluid .span8{width:65.81196581196582%;*width:65.75877432260411%}.row-fluid .span7{width:57.26495726495726%;*width:57.21176577559556%}.row-fluid .span6{width:48.717948717948715%;*width:48.664757228587014%}.row-fluid .span5{width:40.17094017094017%;*width:40.11774868157847%}.row-fluid .span4{width:31.623931623931625%;*width:31.570740134569924%}.row-fluid .span3{width:23.076923076923077%;*width:23.023731587561375%}.row-fluid .span2{width:14.52991452991453%;*width:14.476723040552828%}.row-fluid .span1{width:5.982905982905983%;*width:5.929714493544281%}.row-fluid .offset12{margin-left:105.12820512820512%;*margin-left:105.02182214948171%}.row-fluid .offset12:first-child{margin-left:102.56410256410257%;*margin-left:102.45771958537915%}.row-fluid .offset11{margin-left:96.58119658119658%;*margin-left:96.47481360247316%}.row-fluid .offset11:first-child{margin-left:94.01709401709402%;*margin-left:93.91071103837061%}.row-fluid .offset10{margin-left:88.03418803418803%;*margin-left:87.92780505546462%}.row-fluid .offset10:first-child{margin-left:85.47008547008548%;*margin-left:85.36370249136206%}.row-fluid .offset9{margin-left:79.48717948717949%;*margin-left:79.38079650845607%}.row-fluid .offset9:first-child{margin-left:76.92307692307693%;*margin-left:76.81669394435352%}.row-fluid .offset8{margin-left:70.94017094017094%;*margin-left:70.83378796144753%}.row-fluid .offset8:first-child{margin-left:68.37606837606839%;*margin-left:68.26968539734497%}.row-fluid .offset7{margin-left:62.393162393162385%;*margin-left:62.28677941443899%}.row-fluid .offset7:first-child{margin-left:59.82905982905982%;*margin-left:59.72267685033642%}.row-fluid .offset6{margin-left:53.84615384615384%;*margin-left:53.739770867430444%}.row-fluid .offset6:first-child{margin-left:51.28205128205128%;*margin-left:51.175668303327875%}.row-fluid .offset5{margin-left:45.299145299145295%;*margin-left:45.1927623204219%}.row-fluid .offset5:first-child{margin-left:42.73504273504273%;*margin-left:42.62865975631933%}.row-fluid .offset4{margin-left:36.75213675213675%;*margin-left:36.645753773413354%}.row-fluid .offset4:first-child{margin-left:34.18803418803419%;*margin-left:34.081651209310785%}.row-fluid .offset3{margin-left:28.205128205128204%;*margin-left:28.0987452264048%}.row-fluid .offset3:first-child{margin-left:25.641025641025642%;*margin-left:25.53464266230224%}.row-fluid .offset2{margin-left:19.65811965811966%;*margin-left:19.551736679396257%}.row-fluid .offset2:first-child{margin-left:17.094017094017094%;*margin-left:16.98763411529369%}.row-fluid .offset1{margin-left:11.11111111111111%;*margin-left:11.004728132387708%}.row-fluid .offset1:first-child{margin-left:8.547008547008547%;*margin-left:8.440625568285142%}input,textarea,.uneditable-input{margin-left:0}.controls-row [class*="span"]+[class*="span"]{margin-left:30px}input.span12,textarea.span12,.uneditable-input.span12{width:1156px}input.span11,textarea.span11,.uneditable-input.span11{width:1056px}input.span10,textarea.span10,.uneditable-input.span10{width:956px}input.span9,textarea.span9,.uneditable-input.span9{width:856px}input.span8,textarea.span8,.uneditable-input.span8{width:756px}input.span7,textarea.span7,.uneditable-input.span7{width:656px}input.span6,textarea.span6,.uneditable-input.span6{width:556px}input.span5,textarea.span5,.uneditable-input.span5{width:456px}input.span4,textarea.span4,.uneditable-input.span4{width:356px}input.span3,textarea.span3,.uneditable-input.span3{width:256px}input.span2,textarea.span2,.uneditable-input.span2{width:156px}input.span1,textarea.span1,.uneditable-input.span1{width:56px}.thumbnails{margin-left:-30px}.thumbnails>li{margin-left:30px}.row-fluid .thumbnails{margin-left:0}}@media(min-width:768px) and (max-width:979px){.row{margin-left:-20px;*zoom:1}.row:before,.row:after{display:table;line-height:0;content:""}.row:after{clear:both}[class*="span"]{float:left;min-height:1px;margin-left:20px}.container,.navbar-static-top .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:724px}.span12{width:724px}.span11{width:662px}.span10{width:600px}.span9{width:538px}.span8{width:476px}.span7{width:414px}.span6{width:352px}.span5{width:290px}.span4{width:228px}.span3{width:166px}.span2{width:104px}.span1{width:42px}.offset12{margin-left:764px}.offset11{margin-left:702px}.offset10{margin-left:640px}.offset9{margin-left:578px}.offset8{margin-left:516px}.offset7{margin-left:454px}.offset6{margin-left:392px}.offset5{margin-left:330px}.offset4{margin-left:268px}.offset3{margin-left:206px}.offset2{margin-left:144px}.offset1{margin-left:82px}.row-fluid{width:100%;*zoom:1}.row-fluid:before,.row-fluid:after{display:table;line-height:0;content:""}.row-fluid:after{clear:both}.row-fluid [class*="span"]{display:block;float:left;width:100%;min-height:30px;margin-left:2.7624309392265194%;*margin-left:2.709239449864817%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.row-fluid [class*="span"]:first-child{margin-left:0}.row-fluid .span12{width:100%;*width:99.94680851063829%}.row-fluid .span11{width:91.43646408839778%;*width:91.38327259903608%}.row-fluid .span10{width:82.87292817679558%;*width:82.81973668743387%}.row-fluid .span9{width:74.30939226519337%;*width:74.25620077583166%}.row-fluid .span8{width:65.74585635359117%;*width:65.69266486422946%}.row-fluid .span7{width:57.18232044198895%;*width:57.12912895262725%}.row-fluid .span6{width:48.61878453038674%;*width:48.56559304102504%}.row-fluid .span5{width:40.05524861878453%;*width:40.00205712942283%}.row-fluid .span4{width:31.491712707182323%;*width:31.43852121782062%}.row-fluid .span3{width:22.92817679558011%;*width:22.87498530621841%}.row-fluid .span2{width:14.3646408839779%;*width:14.311449394616199%}.row-fluid .span1{width:5.801104972375691%;*width:5.747913483013988%}.row-fluid .offset12{margin-left:105.52486187845304%;*margin-left:105.41847889972962%}.row-fluid .offset12:first-child{margin-left:102.76243093922652%;*margin-left:102.6560479605031%}.row-fluid .offset11{margin-left:96.96132596685082%;*margin-left:96.8549429881274%}.row-fluid .offset11:first-child{margin-left:94.1988950276243%;*margin-left:94.09251204890089%}.row-fluid .offset10{margin-left:88.39779005524862%;*margin-left:88.2914070765252%}.row-fluid .offset10:first-child{margin-left:85.6353591160221%;*margin-left:85.52897613729868%}.row-fluid .offset9{margin-left:79.8342541436464%;*margin-left:79.72787116492299%}.row-fluid .offset9:first-child{margin-left:77.07182320441989%;*margin-left:76.96544022569647%}.row-fluid .offset8{margin-left:71.2707182320442%;*margin-left:71.16433525332079%}.row-fluid .offset8:first-child{margin-left:68.50828729281768%;*margin-left:68.40190431409427%}.row-fluid .offset7{margin-left:62.70718232044199%;*margin-left:62.600799341718584%}.row-fluid .offset7:first-child{margin-left:59.94475138121547%;*margin-left:59.838368402492065%}.row-fluid .offset6{margin-left:54.14364640883978%;*margin-left:54.037263430116376%}.row-fluid .offset6:first-child{margin-left:51.38121546961326%;*margin-left:51.27483249088986%}.row-fluid .offset5{margin-left:45.58011049723757%;*margin-left:45.47372751851417%}.row-fluid .offset5:first-child{margin-left:42.81767955801105%;*margin-left:42.71129657928765%}.row-fluid .offset4{margin-left:37.01657458563536%;*margin-left:36.91019160691196%}.row-fluid .offset4:first-child{margin-left:34.25414364640884%;*margin-left:34.14776066768544%}.row-fluid .offset3{margin-left:28.45303867403315%;*margin-left:28.346655695309746%}.row-fluid .offset3:first-child{margin-left:25.69060773480663%;*margin-left:25.584224756083227%}.row-fluid .offset2{margin-left:19.88950276243094%;*margin-left:19.783119783707537%}.row-fluid .offset2:first-child{margin-left:17.12707182320442%;*margin-left:17.02068884448102%}.row-fluid .offset1{margin-left:11.32596685082873%;*margin-left:11.219583872105325%}.row-fluid .offset1:first-child{margin-left:8.56353591160221%;*margin-left:8.457152932878806%}input,textarea,.uneditable-input{margin-left:0}.controls-row [class*="span"]+[class*="span"]{margin-left:20px}input.span12,textarea.span12,.uneditable-input.span12{width:710px}input.span11,textarea.span11,.uneditable-input.span11{width:648px}input.span10,textarea.span10,.uneditable-input.span10{width:586px}input.span9,textarea.span9,.uneditable-input.span9{width:524px}input.span8,textarea.span8,.uneditable-input.span8{width:462px}input.span7,textarea.span7,.uneditable-input.span7{width:400px}input.span6,textarea.span6,.uneditable-input.span6{width:338px}input.span5,textarea.span5,.uneditable-input.span5{width:276px}input.span4,textarea.span4,.uneditable-input.span4{width:214px}input.span3,textarea.span3,.uneditable-input.span3{width:152px}input.span2,textarea.span2,.uneditable-input.span2{width:90px}input.span1,textarea.span1,.uneditable-input.span1{width:28px}}@media(max-width:767px){body{padding-right:20px;padding-left:20px}.navbar-fixed-top,.navbar-fixed-bottom,.navbar-static-top{margin-right:-20px;margin-left:-20px}.container-fluid{padding:0}.dl-horizontal dt{float:none;width:auto;clear:none;text-align:left}.dl-horizontal dd{margin-left:0}.container{width:auto}.row-fluid{width:100%}.row,.thumbnails{margin-left:0}.thumbnails>li{float:none;margin-left:0}[class*="span"],.row-fluid [class*="span"]{display:block;float:none;width:100%;margin-left:0;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.span12,.row-fluid .span12{width:100%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.input-large,.input-xlarge,.input-xxlarge,input[class*="span"],select[class*="span"],textarea[class*="span"],.uneditable-input{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.input-prepend input,.input-append input,.input-prepend input[class*="span"],.input-append input[class*="span"]{display:inline-block;width:auto}.controls-row [class*="span"]+[class*="span"]{margin-left:0}.modal{position:fixed;top:20px;right:20px;left:20px;width:auto;margin:0}.modal.fade.in{top:auto}}@media(max-width:480px){.nav-collapse{-webkit-transform:translate3d(0,0,0)}.page-header h1 small{display:block;line-height:20px}input[type="checkbox"],input[type="radio"]{border:1px solid #ccc}.form-horizontal .control-label{float:none;width:auto;padding-top:0;text-align:left}.form-horizontal .controls{margin-left:0}.form-horizontal .control-list{padding-top:0}.form-horizontal .form-actions{padding-right:10px;padding-left:10px}.modal{top:10px;right:10px;left:10px}.modal-header .close{padding:10px;margin:-10px}.carousel-caption{position:static}}@media(max-width:979px){body{padding-top:0}.navbar-fixed-top,.navbar-fixed-bottom{position:static}.navbar-fixed-top{margin-bottom:20px}.navbar-fixed-bottom{margin-top:20px}.navbar-fixed-top .navbar-inner,.navbar-fixed-bottom .navbar-inner{padding:5px}.navbar .container{width:auto;padding:0}.navbar .brand{padding-right:10px;padding-left:10px;margin:0 0 0 -5px}.nav-collapse{clear:both}.nav-collapse .nav{float:none;margin:0 0 10px}.nav-collapse .nav>li{float:none}.nav-collapse .nav>li>a{margin-bottom:2px}.nav-collapse .nav>.divider-vertical{display:none}.nav-collapse .nav .nav-header{color:#777;text-shadow:none}.nav-collapse .nav>li>a,.nav-collapse .dropdown-menu a{padding:9px 15px;font-weight:bold;color:#777;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.nav-collapse .btn{padding:4px 10px 4px;font-weight:normal;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.nav-collapse .dropdown-menu li+li a{margin-bottom:2px}.nav-collapse .nav>li>a:hover,.nav-collapse .dropdown-menu a:hover{background-color:#f2f2f2}.navbar-inverse .nav-collapse .nav>li>a:hover,.navbar-inverse .nav-collapse .dropdown-menu a:hover{background-color:#111}.nav-collapse.in .btn-group{padding:0;margin-top:5px}.nav-collapse .dropdown-menu{position:static;top:auto;left:auto;display:block;float:none;max-width:none;padding:0;margin:0 15px;background-color:transparent;border:0;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.nav-collapse .dropdown-menu:before,.nav-collapse .dropdown-menu:after{display:none}.nav-collapse .dropdown-menu .divider{display:none}.nav-collapse .nav>li>.dropdown-menu:before,.nav-collapse .nav>li>.dropdown-menu:after{display:none}.nav-collapse .navbar-form,.nav-collapse .navbar-search{float:none;padding:10px 15px;margin:10px 0;border-top:1px solid #f2f2f2;border-bottom:1px solid #f2f2f2;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1)}.navbar-inverse .nav-collapse .navbar-form,.navbar-inverse .nav-collapse .navbar-search{border-top-color:#111;border-bottom-color:#111}.navbar .nav-collapse .nav.pull-right{float:none;margin-left:0}.nav-collapse,.nav-collapse.collapse{height:0;overflow:hidden}.navbar .btn-navbar{display:block}.navbar-static .navbar-inner{padding-right:10px;padding-left:10px}}@media(min-width:980px){.nav-collapse.collapse{height:auto!important;overflow:visible!important}}
diff --git a/wqflask/wqflask/static/packages/bootstrap-old/css/bootstrap.css b/wqflask/wqflask/static/packages/bootstrap-old/css/bootstrap.css
deleted file mode 100755
index 9fa6f766..00000000
--- a/wqflask/wqflask/static/packages/bootstrap-old/css/bootstrap.css
+++ /dev/null
@@ -1,5774 +0,0 @@
-/*!
- * Bootstrap v2.1.1
- *
- * Copyright 2012 Twitter, Inc
- * Licensed under the Apache License v2.0
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Designed and built with all the love in the world @twitter by @mdo and @fat.
- */
-
-article,
-aside,
-details,
-figcaption,
-figure,
-footer,
-header,
-hgroup,
-nav,
-section {
-  display: block;
-}
-
-audio,
-canvas,
-video {
-  display: inline-block;
-  *display: inline;
-  *zoom: 1;
-}
-
-audio:not([controls]) {
-  display: none;
-}
-
-html {
-  font-size: 100%;
-  -webkit-text-size-adjust: 100%;
-      -ms-text-size-adjust: 100%;
-}
-
-a:focus {
-  outline: thin dotted #333;
-  outline: 5px auto -webkit-focus-ring-color;
-  outline-offset: -2px;
-}
-
-a:hover,
-a:active {
-  outline: 0;
-}
-
-sub,
-sup {
-  position: relative;
-  font-size: 75%;
-  line-height: 0;
-  vertical-align: baseline;
-}
-
-sup {
-  top: -0.5em;
-}
-
-sub {
-  bottom: -0.25em;
-}
-
-img {
-  width: auto\9;
-  height: auto;
-  max-width: 100%;
-  vertical-align: middle;
-  border: 0;
-  -ms-interpolation-mode: bicubic;
-}
-
-#map_canvas img {
-  max-width: none;
-}
-
-button,
-input,
-select,
-textarea {
-  margin: 0;
-  font-size: 100%;
-  vertical-align: middle;
-}
-
-button,
-input {
-  *overflow: visible;
-  line-height: normal;
-}
-
-button::-moz-focus-inner,
-input::-moz-focus-inner {
-  padding: 0;
-  border: 0;
-}
-
-button,
-input[type="button"],
-input[type="reset"],
-input[type="submit"] {
-  cursor: pointer;
-  -webkit-appearance: button;
-}
-
-input[type="search"] {
-  -webkit-box-sizing: content-box;
-     -moz-box-sizing: content-box;
-          box-sizing: content-box;
-  -webkit-appearance: textfield;
-}
-
-input[type="search"]::-webkit-search-decoration,
-input[type="search"]::-webkit-search-cancel-button {
-  -webkit-appearance: none;
-}
-
-textarea {
-  overflow: auto;
-  vertical-align: top;
-}
-
-.clearfix {
-  *zoom: 1;
-}
-
-.clearfix:before,
-.clearfix:after {
-  display: table;
-  line-height: 0;
-  content: "";
-}
-
-.clearfix:after {
-  clear: both;
-}
-
-.hide-text {
-  font: 0/0 a;
-  color: transparent;
-  text-shadow: none;
-  background-color: transparent;
-  border: 0;
-}
-
-.input-block-level {
-  display: block;
-  width: 100%;
-  min-height: 30px;
-  -webkit-box-sizing: border-box;
-     -moz-box-sizing: border-box;
-          box-sizing: border-box;
-}
-
-body {
-  margin: 0;
-  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
-  font-size: 14px;
-  line-height: 20px;
-  color: #333333;
-  background-color: #ffffff;
-}
-
-a {
-  color: #0088cc;
-  text-decoration: none;
-}
-
-a:hover {
-  color: #005580;
-  text-decoration: underline;
-}
-
-.img-rounded {
-  -webkit-border-radius: 6px;
-     -moz-border-radius: 6px;
-          border-radius: 6px;
-}
-
-.img-polaroid {
-  padding: 4px;
-  background-color: #fff;
-  border: 1px solid #ccc;
-  border: 1px solid rgba(0, 0, 0, 0.2);
-  -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
-     -moz-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
-          box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
-}
-
-.img-circle {
-  -webkit-border-radius: 500px;
-     -moz-border-radius: 500px;
-          border-radius: 500px;
-}
-
-.row {
-  margin-left: -20px;
-  *zoom: 1;
-}
-
-.row:before,
-.row:after {
-  display: table;
-  line-height: 0;
-  content: "";
-}
-
-.row:after {
-  clear: both;
-}
-
-[class*="span"] {
-  float: left;
-  min-height: 1px;
-  margin-left: 20px;
-}
-
-.container,
-.navbar-static-top .container,
-.navbar-fixed-top .container,
-.navbar-fixed-bottom .container {
-  width: 940px;
-}
-
-.span12 {
-  width: 940px;
-}
-
-.span11 {
-  width: 860px;
-}
-
-.span10 {
-  width: 780px;
-}
-
-.span9 {
-  width: 700px;
-}
-
-.span8 {
-  width: 620px;
-}
-
-.span7 {
-  width: 540px;
-}
-
-.span6 {
-  width: 460px;
-}
-
-.span5 {
-  width: 380px;
-}
-
-.span4 {
-  width: 300px;
-}
-
-.span3 {
-  width: 220px;
-}
-
-.span2 {
-  width: 140px;
-}
-
-.span1 {
-  width: 60px;
-}
-
-.offset12 {
-  margin-left: 980px;
-}
-
-.offset11 {
-  margin-left: 900px;
-}
-
-.offset10 {
-  margin-left: 820px;
-}
-
-.offset9 {
-  margin-left: 740px;
-}
-
-.offset8 {
-  margin-left: 660px;
-}
-
-.offset7 {
-  margin-left: 580px;
-}
-
-.offset6 {
-  margin-left: 500px;
-}
-
-.offset5 {
-  margin-left: 420px;
-}
-
-.offset4 {
-  margin-left: 340px;
-}
-
-.offset3 {
-  margin-left: 260px;
-}
-
-.offset2 {
-  margin-left: 180px;
-}
-
-.offset1 {
-  margin-left: 100px;
-}
-
-.row-fluid {
-  width: 100%;
-  *zoom: 1;
-}
-
-.row-fluid:before,
-.row-fluid:after {
-  display: table;
-  line-height: 0;
-  content: "";
-}
-
-.row-fluid:after {
-  clear: both;
-}
-
-.row-fluid [class*="span"] {
-  display: block;
-  float: left;
-  width: 100%;
-  min-height: 30px;
-  margin-left: 2.127659574468085%;
-  *margin-left: 2.074468085106383%;
-  -webkit-box-sizing: border-box;
-     -moz-box-sizing: border-box;
-          box-sizing: border-box;
-}
-
-.row-fluid [class*="span"]:first-child {
-  margin-left: 0;
-}
-
-.row-fluid .span12 {
-  width: 100%;
-  *width: 99.94680851063829%;
-}
-
-.row-fluid .span11 {
-  width: 91.48936170212765%;
-  *width: 91.43617021276594%;
-}
-
-.row-fluid .span10 {
-  width: 82.97872340425532%;
-  *width: 82.92553191489361%;
-}
-
-.row-fluid .span9 {
-  width: 74.46808510638297%;
-  *width: 74.41489361702126%;
-}
-
-.row-fluid .span8 {
-  width: 65.95744680851064%;
-  *width: 65.90425531914893%;
-}
-
-.row-fluid .span7 {
-  width: 57.44680851063829%;
-  *width: 57.39361702127659%;
-}
-
-.row-fluid .span6 {
-  width: 48.93617021276595%;
-  *width: 48.88297872340425%;
-}
-
-.row-fluid .span5 {
-  width: 40.42553191489362%;
-  *width: 40.37234042553192%;
-}
-
-.row-fluid .span4 {
-  width: 31.914893617021278%;
-  *width: 31.861702127659576%;
-}
-
-.row-fluid .span3 {
-  width: 23.404255319148934%;
-  *width: 23.351063829787233%;
-}
-
-.row-fluid .span2 {
-  width: 14.893617021276595%;
-  *width: 14.840425531914894%;
-}
-
-.row-fluid .span1 {
-  width: 6.382978723404255%;
-  *width: 6.329787234042553%;
-}
-
-.row-fluid .offset12 {
-  margin-left: 104.25531914893617%;
-  *margin-left: 104.14893617021275%;
-}
-
-.row-fluid .offset12:first-child {
-  margin-left: 102.12765957446808%;
-  *margin-left: 102.02127659574467%;
-}
-
-.row-fluid .offset11 {
-  margin-left: 95.74468085106382%;
-  *margin-left: 95.6382978723404%;
-}
-
-.row-fluid .offset11:first-child {
-  margin-left: 93.61702127659574%;
-  *margin-left: 93.51063829787232%;
-}
-
-.row-fluid .offset10 {
-  margin-left: 87.23404255319149%;
-  *margin-left: 87.12765957446807%;
-}
-
-.row-fluid .offset10:first-child {
-  margin-left: 85.1063829787234%;
-  *margin-left: 84.99999999999999%;
-}
-
-.row-fluid .offset9 {
-  margin-left: 78.72340425531914%;
-  *margin-left: 78.61702127659572%;
-}
-
-.row-fluid .offset9:first-child {
-  margin-left: 76.59574468085106%;
-  *margin-left: 76.48936170212764%;
-}
-
-.row-fluid .offset8 {
-  margin-left: 70.2127659574468%;
-  *margin-left: 70.10638297872339%;
-}
-
-.row-fluid .offset8:first-child {
-  margin-left: 68.08510638297872%;
-  *margin-left: 67.9787234042553%;
-}
-
-.row-fluid .offset7 {
-  margin-left: 61.70212765957446%;
-  *margin-left: 61.59574468085106%;
-}
-
-.row-fluid .offset7:first-child {
-  margin-left: 59.574468085106375%;
-  *margin-left: 59.46808510638297%;
-}
-
-.row-fluid .offset6 {
-  margin-left: 53.191489361702125%;
-  *margin-left: 53.085106382978715%;
-}
-
-.row-fluid .offset6:first-child {
-  margin-left: 51.063829787234035%;
-  *margin-left: 50.95744680851063%;
-}
-
-.row-fluid .offset5 {
-  margin-left: 44.68085106382979%;
-  *margin-left: 44.57446808510638%;
-}
-
-.row-fluid .offset5:first-child {
-  margin-left: 42.5531914893617%;
-  *margin-left: 42.4468085106383%;
-}
-
-.row-fluid .offset4 {
-  margin-left: 36.170212765957444%;
-  *margin-left: 36.06382978723405%;
-}
-
-.row-fluid .offset4:first-child {
-  margin-left: 34.04255319148936%;
-  *margin-left: 33.93617021276596%;
-}
-
-.row-fluid .offset3 {
-  margin-left: 27.659574468085104%;
-  *margin-left: 27.5531914893617%;
-}
-
-.row-fluid .offset3:first-child {
-  margin-left: 25.53191489361702%;
-  *margin-left: 25.425531914893618%;
-}
-
-.row-fluid .offset2 {
-  margin-left: 19.148936170212764%;
-  *margin-left: 19.04255319148936%;
-}
-
-.row-fluid .offset2:first-child {
-  margin-left: 17.02127659574468%;
-  *margin-left: 16.914893617021278%;
-}
-
-.row-fluid .offset1 {
-  margin-left: 10.638297872340425%;
-  *margin-left: 10.53191489361702%;
-}
-
-.row-fluid .offset1:first-child {
-  margin-left: 8.51063829787234%;
-  *margin-left: 8.404255319148938%;
-}
-
-[class*="span"].hide,
-.row-fluid [class*="span"].hide {
-  display: none;
-}
-
-[class*="span"].pull-right,
-.row-fluid [class*="span"].pull-right {
-  float: right;
-}
-
-.container {
-  margin-right: auto;
-  margin-left: auto;
-  *zoom: 1;
-}
-
-.container:before,
-.container:after {
-  display: table;
-  line-height: 0;
-  content: "";
-}
-
-.container:after {
-  clear: both;
-}
-
-.container-fluid {
-  padding-right: 20px;
-  padding-left: 20px;
-  *zoom: 1;
-}
-
-.container-fluid:before,
-.container-fluid:after {
-  display: table;
-  line-height: 0;
-  content: "";
-}
-
-.container-fluid:after {
-  clear: both;
-}
-
-p {
-  margin: 0 0 10px;
-}
-
-.lead {
-  margin-bottom: 20px;
-  font-size: 21px;
-  font-weight: 200;
-  line-height: 30px;
-}
-
-small {
-  font-size: 85%;
-}
-
-strong {
-  font-weight: bold;
-}
-
-em {
-  font-style: italic;
-}
-
-cite {
-  font-style: normal;
-}
-
-.muted {
-  color: #999999;
-}
-
-.text-warning {
-  color: #c09853;
-}
-
-.text-error {
-  color: #b94a48;
-}
-
-.text-info {
-  color: #3a87ad;
-}
-
-.text-success {
-  color: #468847;
-}
-
-h1,
-h2,
-h3,
-h4,
-h5,
-h6 {
-  margin: 10px 0;
-  font-family: inherit;
-  font-weight: bold;
-  line-height: 1;
-  color: inherit;
-  text-rendering: optimizelegibility;
-}
-
-h1 small,
-h2 small,
-h3 small,
-h4 small,
-h5 small,
-h6 small {
-  font-weight: normal;
-  line-height: 1;
-  color: #999999;
-}
-
-h1 {
-  font-size: 36px;
-  line-height: 40px;
-}
-
-h2 {
-  font-size: 30px;
-  line-height: 40px;
-}
-
-h3 {
-  font-size: 24px;
-  line-height: 40px;
-}
-
-h4 {
-  font-size: 18px;
-  line-height: 20px;
-}
-
-h5 {
-  font-size: 14px;
-  line-height: 20px;
-}
-
-h6 {
-  font-size: 12px;
-  line-height: 20px;
-}
-
-h1 small {
-  font-size: 24px;
-}
-
-h2 small {
-  font-size: 18px;
-}
-
-h3 small {
-  font-size: 14px;
-}
-
-h4 small {
-  font-size: 14px;
-}
-
-.page-header {
-  padding-bottom: 9px;
-  margin: 20px 0 30px;
-  border-bottom: 1px solid #eeeeee;
-}
-
-ul,
-ol {
-  padding: 0;
-  margin: 0 0 10px 25px;
-}
-
-ul ul,
-ul ol,
-ol ol,
-ol ul {
-  margin-bottom: 0;
-}
-
-li {
-  line-height: 20px;
-}
-
-ul.unstyled,
-ol.unstyled {
-  margin-left: 0;
-  list-style: none;
-}
-
-dl {
-  margin-bottom: 20px;
-}
-
-dt,
-dd {
-  line-height: 20px;
-}
-
-dt {
-  font-weight: bold;
-}
-
-dd {
-  margin-left: 10px;
-}
-
-.dl-horizontal {
-  *zoom: 1;
-}
-
-.dl-horizontal:before,
-.dl-horizontal:after {
-  display: table;
-  line-height: 0;
-  content: "";
-}
-
-.dl-horizontal:after {
-  clear: both;
-}
-
-.dl-horizontal dt {
-  float: left;
-  width: 160px;
-  overflow: hidden;
-  clear: left;
-  text-align: right;
-  text-overflow: ellipsis;
-  white-space: nowrap;
-}
-
-.dl-horizontal dd {
-  margin-left: 180px;
-}
-
-hr {
-  margin: 20px 0;
-  border: 0;
-  border-top: 1px solid #eeeeee;
-  border-bottom: 1px solid #ffffff;
-}
-
-abbr[title] {
-  cursor: help;
-  border-bottom: 1px dotted #999999;
-}
-
-abbr.initialism {
-  font-size: 90%;
-  text-transform: uppercase;
-}
-
-blockquote {
-  padding: 0 0 0 15px;
-  margin: 0 0 20px;
-  border-left: 5px solid #eeeeee;
-}
-
-blockquote p {
-  margin-bottom: 0;
-  font-size: 16px;
-  font-weight: 300;
-  line-height: 25px;
-}
-
-blockquote small {
-  display: block;
-  line-height: 20px;
-  color: #999999;
-}
-
-blockquote small:before {
-  content: '\2014 \00A0';
-}
-
-blockquote.pull-right {
-  float: right;
-  padding-right: 15px;
-  padding-left: 0;
-  border-right: 5px solid #eeeeee;
-  border-left: 0;
-}
-
-blockquote.pull-right p,
-blockquote.pull-right small {
-  text-align: right;
-}
-
-blockquote.pull-right small:before {
-  content: '';
-}
-
-blockquote.pull-right small:after {
-  content: '\00A0 \2014';
-}
-
-q:before,
-q:after,
-blockquote:before,
-blockquote:after {
-  content: "";
-}
-
-address {
-  display: block;
-  margin-bottom: 20px;
-  font-style: normal;
-  line-height: 20px;
-}
-
-code,
-pre {
-  padding: 0 3px 2px;
-  font-family: Monaco, Menlo, Consolas, "Courier New", monospace;
-  font-size: 12px;
-  color: #333333;
-  -webkit-border-radius: 3px;
-     -moz-border-radius: 3px;
-          border-radius: 3px;
-}
-
-code {
-  padding: 2px 4px;
-  color: #d14;
-  background-color: #f7f7f9;
-  border: 1px solid #e1e1e8;
-}
-
-pre {
-  display: block;
-  padding: 9.5px;
-  margin: 0 0 10px;
-  font-size: 13px;
-  line-height: 20px;
-  word-break: break-all;
-  word-wrap: break-word;
-  white-space: pre;
-  white-space: pre-wrap;
-  background-color: #f5f5f5;
-  border: 1px solid #ccc;
-  border: 1px solid rgba(0, 0, 0, 0.15);
-  -webkit-border-radius: 4px;
-     -moz-border-radius: 4px;
-          border-radius: 4px;
-}
-
-pre.prettyprint {
-  margin-bottom: 20px;
-}
-
-pre code {
-  padding: 0;
-  color: inherit;
-  background-color: transparent;
-  border: 0;
-}
-
-.pre-scrollable {
-  max-height: 340px;
-  overflow-y: scroll;
-}
-
-form {
-  margin: 0 0 20px;
-}
-
-fieldset {
-  padding: 0;
-  margin: 0;
-  border: 0;
-}
-
-legend {
-  display: block;
-  width: 100%;
-  padding: 0;
-  margin-bottom: 20px;
-  font-size: 21px;
-  line-height: 40px;
-  color: #333333;
-  border: 0;
-  border-bottom: 1px solid #e5e5e5;
-}
-
-legend small {
-  font-size: 15px;
-  color: #999999;
-}
-
-label,
-input,
-button,
-select,
-textarea {
-  font-size: 14px;
-  font-weight: normal;
-  line-height: 20px;
-}
-
-input,
-button,
-select,
-textarea {
-  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
-}
-
-label {
-  display: block;
-  margin-bottom: 5px;
-}
-
-select,
-textarea,
-input[type="text"],
-input[type="password"],
-input[type="datetime"],
-input[type="datetime-local"],
-input[type="date"],
-input[type="month"],
-input[type="time"],
-input[type="week"],
-input[type="number"],
-input[type="email"],
-input[type="url"],
-input[type="search"],
-input[type="tel"],
-input[type="color"],
-.uneditable-input {
-  display: inline-block;
-  height: 20px;
-  padding: 4px 6px;
-  margin-bottom: 9px;
-  font-size: 14px;
-  line-height: 20px;
-  color: #555555;
-  -webkit-border-radius: 3px;
-     -moz-border-radius: 3px;
-          border-radius: 3px;
-}
-
-input,
-textarea,
-.uneditable-input {
-  width: 206px;
-}
-
-textarea {
-  height: auto;
-}
-
-textarea,
-input[type="text"],
-input[type="password"],
-input[type="datetime"],
-input[type="datetime-local"],
-input[type="date"],
-input[type="month"],
-input[type="time"],
-input[type="week"],
-input[type="number"],
-input[type="email"],
-input[type="url"],
-input[type="search"],
-input[type="tel"],
-input[type="color"],
-.uneditable-input {
-  background-color: #ffffff;
-  border: 1px solid #cccccc;
-  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
-     -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
-          box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
-  -webkit-transition: border linear 0.2s, box-shadow linear 0.2s;
-     -moz-transition: border linear 0.2s, box-shadow linear 0.2s;
-       -o-transition: border linear 0.2s, box-shadow linear 0.2s;
-          transition: border linear 0.2s, box-shadow linear 0.2s;
-}
-
-textarea:focus,
-input[type="text"]:focus,
-input[type="password"]:focus,
-input[type="datetime"]:focus,
-input[type="datetime-local"]:focus,
-input[type="date"]:focus,
-input[type="month"]:focus,
-input[type="time"]:focus,
-input[type="week"]:focus,
-input[type="number"]:focus,
-input[type="email"]:focus,
-input[type="url"]:focus,
-input[type="search"]:focus,
-input[type="tel"]:focus,
-input[type="color"]:focus,
-.uneditable-input:focus {
-  border-color: rgba(82, 168, 236, 0.8);
-  outline: 0;
-  outline: thin dotted \9;
-  /* IE6-9 */
-
-  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.6);
-     -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.6);
-          box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.6);
-}
-
-input[type="radio"],
-input[type="checkbox"] {
-  margin: 4px 0 0;
-  margin-top: 1px \9;
-  *margin-top: 0;
-  line-height: normal;
-  cursor: pointer;
-}
-
-input[type="file"],
-input[type="image"],
-input[type="submit"],
-input[type="reset"],
-input[type="button"],
-input[type="radio"],
-input[type="checkbox"] {
-  width: auto;
-}
-
-select,
-input[type="file"] {
-  height: 30px;
-  /* In IE7, the height of the select element cannot be changed by height, only font-size */
-
-  *margin-top: 4px;
-  /* For IE7, add top margin to align select with labels */
-
-  line-height: 30px;
-}
-
-select {
-  width: 220px;
-  background-color: #ffffff;
-  border: 1px solid #cccccc;
-}
-
-select[multiple],
-select[size] {
-  height: auto;
-}
-
-select:focus,
-input[type="file"]:focus,
-input[type="radio"]:focus,
-input[type="checkbox"]:focus {
-  outline: thin dotted #333;
-  outline: 5px auto -webkit-focus-ring-color;
-  outline-offset: -2px;
-}
-
-.uneditable-input,
-.uneditable-textarea {
-  color: #999999;
-  cursor: not-allowed;
-  background-color: #fcfcfc;
-  border-color: #cccccc;
-  -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.025);
-     -moz-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.025);
-          box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.025);
-}
-
-.uneditable-input {
-  overflow: hidden;
-  white-space: nowrap;
-}
-
-.uneditable-textarea {
-  width: auto;
-  height: auto;
-}
-
-input:-moz-placeholder,
-textarea:-moz-placeholder {
-  color: #999999;
-}
-
-input:-ms-input-placeholder,
-textarea:-ms-input-placeholder {
-  color: #999999;
-}
-
-input::-webkit-input-placeholder,
-textarea::-webkit-input-placeholder {
-  color: #999999;
-}
-
-.radio,
-.checkbox {
-  min-height: 18px;
-  padding-left: 18px;
-}
-
-.radio input[type="radio"],
-.checkbox input[type="checkbox"] {
-  float: left;
-  margin-left: -18px;
-}
-
-.controls > .radio:first-child,
-.controls > .checkbox:first-child {
-  padding-top: 5px;
-}
-
-.radio.inline,
-.checkbox.inline {
-  display: inline-block;
-  padding-top: 5px;
-  margin-bottom: 0;
-  vertical-align: middle;
-}
-
-.radio.inline + .radio.inline,
-.checkbox.inline + .checkbox.inline {
-  margin-left: 10px;
-}
-
-.input-mini {
-  width: 60px;
-}
-
-.input-small {
-  width: 90px;
-}
-
-.input-medium {
-  width: 150px;
-}
-
-.input-large {
-  width: 210px;
-}
-
-.input-xlarge {
-  width: 270px;
-}
-
-.input-xxlarge {
-  width: 530px;
-}
-
-input[class*="span"],
-select[class*="span"],
-textarea[class*="span"],
-.uneditable-input[class*="span"],
-.row-fluid input[class*="span"],
-.row-fluid select[class*="span"],
-.row-fluid textarea[class*="span"],
-.row-fluid .uneditable-input[class*="span"] {
-  float: none;
-  margin-left: 0;
-}
-
-.input-append input[class*="span"],
-.input-append .uneditable-input[class*="span"],
-.input-prepend input[class*="span"],
-.input-prepend .uneditable-input[class*="span"],
-.row-fluid input[class*="span"],
-.row-fluid select[class*="span"],
-.row-fluid textarea[class*="span"],
-.row-fluid .uneditable-input[class*="span"],
-.row-fluid .input-prepend [class*="span"],
-.row-fluid .input-append [class*="span"] {
-  display: inline-block;
-}
-
-input,
-textarea,
-.uneditable-input {
-  margin-left: 0;
-}
-
-.controls-row [class*="span"] + [class*="span"] {
-  margin-left: 20px;
-}
-
-input.span12,
-textarea.span12,
-.uneditable-input.span12 {
-  width: 926px;
-}
-
-input.span11,
-textarea.span11,
-.uneditable-input.span11 {
-  width: 846px;
-}
-
-input.span10,
-textarea.span10,
-.uneditable-input.span10 {
-  width: 766px;
-}
-
-input.span9,
-textarea.span9,
-.uneditable-input.span9 {
-  width: 686px;
-}
-
-input.span8,
-textarea.span8,
-.uneditable-input.span8 {
-  width: 606px;
-}
-
-input.span7,
-textarea.span7,
-.uneditable-input.span7 {
-  width: 526px;
-}
-
-input.span6,
-textarea.span6,
-.uneditable-input.span6 {
-  width: 446px;
-}
-
-input.span5,
-textarea.span5,
-.uneditable-input.span5 {
-  width: 366px;
-}
-
-input.span4,
-textarea.span4,
-.uneditable-input.span4 {
-  width: 286px;
-}
-
-input.span3,
-textarea.span3,
-.uneditable-input.span3 {
-  width: 206px;
-}
-
-input.span2,
-textarea.span2,
-.uneditable-input.span2 {
-  width: 126px;
-}
-
-input.span1,
-textarea.span1,
-.uneditable-input.span1 {
-  width: 46px;
-}
-
-.controls-row {
-  *zoom: 1;
-}
-
-.controls-row:before,
-.controls-row:after {
-  display: table;
-  line-height: 0;
-  content: "";
-}
-
-.controls-row:after {
-  clear: both;
-}
-
-.controls-row [class*="span"] {
-  float: left;
-}
-
-input[disabled],
-select[disabled],
-textarea[disabled],
-input[readonly],
-select[readonly],
-textarea[readonly] {
-  cursor: not-allowed;
-  background-color: #eeeeee;
-}
-
-input[type="radio"][disabled],
-input[type="checkbox"][disabled],
-input[type="radio"][readonly],
-input[type="checkbox"][readonly] {
-  background-color: transparent;
-}
-
-.control-group.warning > label,
-.control-group.warning .help-block,
-.control-group.warning .help-inline {
-  color: #c09853;
-}
-
-.control-group.warning .checkbox,
-.control-group.warning .radio,
-.control-group.warning input,
-.control-group.warning select,
-.control-group.warning textarea {
-  color: #c09853;
-}
-
-.control-group.warning input,
-.control-group.warning select,
-.control-group.warning textarea {
-  border-color: #c09853;
-  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
-     -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
-          box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
-}
-
-.control-group.warning input:focus,
-.control-group.warning select:focus,
-.control-group.warning textarea:focus {
-  border-color: #a47e3c;
-  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #dbc59e;
-     -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #dbc59e;
-          box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #dbc59e;
-}
-
-.control-group.warning .input-prepend .add-on,
-.control-group.warning .input-append .add-on {
-  color: #c09853;
-  background-color: #fcf8e3;
-  border-color: #c09853;
-}
-
-.control-group.error > label,
-.control-group.error .help-block,
-.control-group.error .help-inline {
-  color: #b94a48;
-}
-
-.control-group.error .checkbox,
-.control-group.error .radio,
-.control-group.error input,
-.control-group.error select,
-.control-group.error textarea {
-  color: #b94a48;
-}
-
-.control-group.error input,
-.control-group.error select,
-.control-group.error textarea {
-  border-color: #b94a48;
-  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
-     -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
-          box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
-}
-
-.control-group.error input:focus,
-.control-group.error select:focus,
-.control-group.error textarea:focus {
-  border-color: #953b39;
-  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #d59392;
-     -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #d59392;
-          box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #d59392;
-}
-
-.control-group.error .input-prepend .add-on,
-.control-group.error .input-append .add-on {
-  color: #b94a48;
-  background-color: #f2dede;
-  border-color: #b94a48;
-}
-
-.control-group.success > label,
-.control-group.success .help-block,
-.control-group.success .help-inline {
-  color: #468847;
-}
-
-.control-group.success .checkbox,
-.control-group.success .radio,
-.control-group.success input,
-.control-group.success select,
-.control-group.success textarea {
-  color: #468847;
-}
-
-.control-group.success input,
-.control-group.success select,
-.control-group.success textarea {
-  border-color: #468847;
-  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
-     -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
-          box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
-}
-
-.control-group.success input:focus,
-.control-group.success select:focus,
-.control-group.success textarea:focus {
-  border-color: #356635;
-  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7aba7b;
-     -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7aba7b;
-          box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7aba7b;
-}
-
-.control-group.success .input-prepend .add-on,
-.control-group.success .input-append .add-on {
-  color: #468847;
-  background-color: #dff0d8;
-  border-color: #468847;
-}
-
-.control-group.info > label,
-.control-group.info .help-block,
-.control-group.info .help-inline {
-  color: #3a87ad;
-}
-
-.control-group.info .checkbox,
-.control-group.info .radio,
-.control-group.info input,
-.control-group.info select,
-.control-group.info textarea {
-  color: #3a87ad;
-}
-
-.control-group.info input,
-.control-group.info select,
-.control-group.info textarea {
-  border-color: #3a87ad;
-  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
-     -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
-          box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
-}
-
-.control-group.info input:focus,
-.control-group.info select:focus,
-.control-group.info textarea:focus {
-  border-color: #2d6987;
-  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7ab5d3;
-     -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7ab5d3;
-          box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7ab5d3;
-}
-
-.control-group.info .input-prepend .add-on,
-.control-group.info .input-append .add-on {
-  color: #3a87ad;
-  background-color: #d9edf7;
-  border-color: #3a87ad;
-}
-
-input:focus:required:invalid,
-textarea:focus:required:invalid,
-select:focus:required:invalid {
-  color: #b94a48;
-  border-color: #ee5f5b;
-}
-
-input:focus:required:invalid:focus,
-textarea:focus:required:invalid:focus,
-select:focus:required:invalid:focus {
-  border-color: #e9322d;
-  -webkit-box-shadow: 0 0 6px #f8b9b7;
-     -moz-box-shadow: 0 0 6px #f8b9b7;
-          box-shadow: 0 0 6px #f8b9b7;
-}
-
-.form-actions {
-  padding: 19px 20px 20px;
-  margin-top: 20px;
-  margin-bottom: 20px;
-  background-color: #f5f5f5;
-  border-top: 1px solid #e5e5e5;
-  *zoom: 1;
-}
-
-.form-actions:before,
-.form-actions:after {
-  display: table;
-  line-height: 0;
-  content: "";
-}
-
-.form-actions:after {
-  clear: both;
-}
-
-.help-block,
-.help-inline {
-  color: #595959;
-}
-
-.help-block {
-  display: block;
-  margin-bottom: 10px;
-}
-
-.help-inline {
-  display: inline-block;
-  *display: inline;
-  padding-left: 5px;
-  vertical-align: middle;
-  *zoom: 1;
-}
-
-.input-append,
-.input-prepend {
-  margin-bottom: 5px;
-  font-size: 0;
-  white-space: nowrap;
-}
-
-.input-append input,
-.input-prepend input,
-.input-append select,
-.input-prepend select,
-.input-append .uneditable-input,
-.input-prepend .uneditable-input {
-  position: relative;
-  margin-bottom: 0;
-  *margin-left: 0;
-  font-size: 14px;
-  vertical-align: top;
-  -webkit-border-radius: 0 3px 3px 0;
-     -moz-border-radius: 0 3px 3px 0;
-          border-radius: 0 3px 3px 0;
-}
-
-.input-append input:focus,
-.input-prepend input:focus,
-.input-append select:focus,
-.input-prepend select:focus,
-.input-append .uneditable-input:focus,
-.input-prepend .uneditable-input:focus {
-  z-index: 2;
-}
-
-.input-append .add-on,
-.input-prepend .add-on {
-  display: inline-block;
-  width: auto;
-  height: 20px;
-  min-width: 16px;
-  padding: 4px 5px;
-  font-size: 14px;
-  font-weight: normal;
-  line-height: 20px;
-  text-align: center;
-  text-shadow: 0 1px 0 #ffffff;
-  background-color: #eeeeee;
-  border: 1px solid #ccc;
-}
-
-.input-append .add-on,
-.input-prepend .add-on,
-.input-append .btn,
-.input-prepend .btn {
-  vertical-align: top;
-  -webkit-border-radius: 0;
-     -moz-border-radius: 0;
-          border-radius: 0;
-}
-
-.input-append .active,
-.input-prepend .active {
-  background-color: #a9dba9;
-  border-color: #46a546;
-}
-
-.input-prepend .add-on,
-.input-prepend .btn {
-  margin-right: -1px;
-}
-
-.input-prepend .add-on:first-child,
-.input-prepend .btn:first-child {
-  -webkit-border-radius: 3px 0 0 3px;
-     -moz-border-radius: 3px 0 0 3px;
-          border-radius: 3px 0 0 3px;
-}
-
-.input-append input,
-.input-append select,
-.input-append .uneditable-input {
-  -webkit-border-radius: 3px 0 0 3px;
-     -moz-border-radius: 3px 0 0 3px;
-          border-radius: 3px 0 0 3px;
-}
-
-.input-append .add-on,
-.input-append .btn {
-  margin-left: -1px;
-}
-
-.input-append .add-on:last-child,
-.input-append .btn:last-child {
-  -webkit-border-radius: 0 3px 3px 0;
-     -moz-border-radius: 0 3px 3px 0;
-          border-radius: 0 3px 3px 0;
-}
-
-.input-prepend.input-append input,
-.input-prepend.input-append select,
-.input-prepend.input-append .uneditable-input {
-  -webkit-border-radius: 0;
-     -moz-border-radius: 0;
-          border-radius: 0;
-}
-
-.input-prepend.input-append .add-on:first-child,
-.input-prepend.input-append .btn:first-child {
-  margin-right: -1px;
-  -webkit-border-radius: 3px 0 0 3px;
-     -moz-border-radius: 3px 0 0 3px;
-          border-radius: 3px 0 0 3px;
-}
-
-.input-prepend.input-append .add-on:last-child,
-.input-prepend.input-append .btn:last-child {
-  margin-left: -1px;
-  -webkit-border-radius: 0 3px 3px 0;
-     -moz-border-radius: 0 3px 3px 0;
-          border-radius: 0 3px 3px 0;
-}
-
-input.search-query {
-  padding-right: 14px;
-  padding-right: 4px \9;
-  padding-left: 14px;
-  padding-left: 4px \9;
-  /* IE7-8 doesn't have border-radius, so don't indent the padding */
-
-  margin-bottom: 0;
-  -webkit-border-radius: 15px;
-     -moz-border-radius: 15px;
-          border-radius: 15px;
-}
-
-/* Allow for input prepend/append in search forms */
-
-.form-search .input-append .search-query,
-.form-search .input-prepend .search-query {
-  -webkit-border-radius: 0;
-     -moz-border-radius: 0;
-          border-radius: 0;
-}
-
-.form-search .input-append .search-query {
-  -webkit-border-radius: 14px 0 0 14px;
-     -moz-border-radius: 14px 0 0 14px;
-          border-radius: 14px 0 0 14px;
-}
-
-.form-search .input-append .btn {
-  -webkit-border-radius: 0 14px 14px 0;
-     -moz-border-radius: 0 14px 14px 0;
-          border-radius: 0 14px 14px 0;
-}
-
-.form-search .input-prepend .search-query {
-  -webkit-border-radius: 0 14px 14px 0;
-     -moz-border-radius: 0 14px 14px 0;
-          border-radius: 0 14px 14px 0;
-}
-
-.form-search .input-prepend .btn {
-  -webkit-border-radius: 14px 0 0 14px;
-     -moz-border-radius: 14px 0 0 14px;
-          border-radius: 14px 0 0 14px;
-}
-
-.form-search input,
-.form-inline input,
-.form-horizontal input,
-.form-search textarea,
-.form-inline textarea,
-.form-horizontal textarea,
-.form-search select,
-.form-inline select,
-.form-horizontal select,
-.form-search .help-inline,
-.form-inline .help-inline,
-.form-horizontal .help-inline,
-.form-search .uneditable-input,
-.form-inline .uneditable-input,
-.form-horizontal .uneditable-input,
-.form-search .input-prepend,
-.form-inline .input-prepend,
-.form-horizontal .input-prepend,
-.form-search .input-append,
-.form-inline .input-append,
-.form-horizontal .input-append {
-  display: inline-block;
-  *display: inline;
-  margin-bottom: 0;
-  vertical-align: middle;
-  *zoom: 1;
-}
-
-.form-search .hide,
-.form-inline .hide,
-.form-horizontal .hide {
-  display: none;
-}
-
-.form-search label,
-.form-inline label,
-.form-search .btn-group,
-.form-inline .btn-group {
-  display: inline-block;
-}
-
-.form-search .input-append,
-.form-inline .input-append,
-.form-search .input-prepend,
-.form-inline .input-prepend {
-  margin-bottom: 0;
-}
-
-.form-search .radio,
-.form-search .checkbox,
-.form-inline .radio,
-.form-inline .checkbox {
-  padding-left: 0;
-  margin-bottom: 0;
-  vertical-align: middle;
-}
-
-.form-search .radio input[type="radio"],
-.form-search .checkbox input[type="checkbox"],
-.form-inline .radio input[type="radio"],
-.form-inline .checkbox input[type="checkbox"] {
-  float: left;
-  margin-right: 3px;
-  margin-left: 0;
-}
-
-.control-group {
-  margin-bottom: 10px;
-}
-
-legend + .control-group {
-  margin-top: 20px;
-  -webkit-margin-top-collapse: separate;
-}
-
-.form-horizontal .control-group {
-  margin-bottom: 20px;
-  *zoom: 1;
-}
-
-.form-horizontal .control-group:before,
-.form-horizontal .control-group:after {
-  display: table;
-  line-height: 0;
-  content: "";
-}
-
-.form-horizontal .control-group:after {
-  clear: both;
-}
-
-.form-horizontal .control-label {
-  float: left;
-  width: 160px;
-  padding-top: 5px;
-  text-align: right;
-}
-
-.form-horizontal .controls {
-  *display: inline-block;
-  *padding-left: 20px;
-  margin-left: 180px;
-  *margin-left: 0;
-}
-
-.form-horizontal .controls:first-child {
-  *padding-left: 180px;
-}
-
-.form-horizontal .help-block {
-  margin-bottom: 0;
-}
-
-.form-horizontal input + .help-block,
-.form-horizontal select + .help-block,
-.form-horizontal textarea + .help-block {
-  margin-top: 10px;
-}
-
-.form-horizontal .form-actions {
-  padding-left: 180px;
-}
-
-table {
-  max-width: 100%;
-  background-color: transparent;
-  border-collapse: collapse;
-  border-spacing: 0;
-}
-
-.table {
-  width: 100%;
-  margin-bottom: 20px;
-}
-
-.table th,
-.table td {
-  padding: 8px;
-  line-height: 20px;
-  text-align: left;
-  vertical-align: top;
-  border-top: 1px solid #dddddd;
-}
-
-.table th {
-  font-weight: bold;
-}
-
-.table thead th {
-  vertical-align: bottom;
-}
-
-.table caption + thead tr:first-child th,
-.table caption + thead tr:first-child td,
-.table colgroup + thead tr:first-child th,
-.table colgroup + thead tr:first-child td,
-.table thead:first-child tr:first-child th,
-.table thead:first-child tr:first-child td {
-  border-top: 0;
-}
-
-.table tbody + tbody {
-  border-top: 2px solid #dddddd;
-}
-
-.table-condensed th,
-.table-condensed td {
-  padding: 4px 5px;
-}
-
-.table-bordered {
-  border: 1px solid #dddddd;
-  border-collapse: separate;
-  *border-collapse: collapse;
-  border-left: 0;
-  -webkit-border-radius: 4px;
-     -moz-border-radius: 4px;
-          border-radius: 4px;
-}
-
-.table-bordered th,
-.table-bordered td {
-  border-left: 1px solid #dddddd;
-}
-
-.table-bordered caption + thead tr:first-child th,
-.table-bordered caption + tbody tr:first-child th,
-.table-bordered caption + tbody tr:first-child td,
-.table-bordered colgroup + thead tr:first-child th,
-.table-bordered colgroup + tbody tr:first-child th,
-.table-bordered colgroup + tbody tr:first-child td,
-.table-bordered thead:first-child tr:first-child th,
-.table-bordered tbody:first-child tr:first-child th,
-.table-bordered tbody:first-child tr:first-child td {
-  border-top: 0;
-}
-
-.table-bordered thead:first-child tr:first-child th:first-child,
-.table-bordered tbody:first-child tr:first-child td:first-child {
-  -webkit-border-top-left-radius: 4px;
-          border-top-left-radius: 4px;
-  -moz-border-radius-topleft: 4px;
-}
-
-.table-bordered thead:first-child tr:first-child th:last-child,
-.table-bordered tbody:first-child tr:first-child td:last-child {
-  -webkit-border-top-right-radius: 4px;
-          border-top-right-radius: 4px;
-  -moz-border-radius-topright: 4px;
-}
-
-.table-bordered thead:last-child tr:last-child th:first-child,
-.table-bordered tbody:last-child tr:last-child td:first-child,
-.table-bordered tfoot:last-child tr:last-child td:first-child {
-  -webkit-border-radius: 0 0 0 4px;
-     -moz-border-radius: 0 0 0 4px;
-          border-radius: 0 0 0 4px;
-  -webkit-border-bottom-left-radius: 4px;
-          border-bottom-left-radius: 4px;
-  -moz-border-radius-bottomleft: 4px;
-}
-
-.table-bordered thead:last-child tr:last-child th:last-child,
-.table-bordered tbody:last-child tr:last-child td:last-child,
-.table-bordered tfoot:last-child tr:last-child td:last-child {
-  -webkit-border-bottom-right-radius: 4px;
-          border-bottom-right-radius: 4px;
-  -moz-border-radius-bottomright: 4px;
-}
-
-.table-bordered caption + thead tr:first-child th:first-child,
-.table-bordered caption + tbody tr:first-child td:first-child,
-.table-bordered colgroup + thead tr:first-child th:first-child,
-.table-bordered colgroup + tbody tr:first-child td:first-child {
-  -webkit-border-top-left-radius: 4px;
-          border-top-left-radius: 4px;
-  -moz-border-radius-topleft: 4px;
-}
-
-.table-bordered caption + thead tr:first-child th:last-child,
-.table-bordered caption + tbody tr:first-child td:last-child,
-.table-bordered colgroup + thead tr:first-child th:last-child,
-.table-bordered colgroup + tbody tr:first-child td:last-child {
-  -webkit-border-top-right-radius: 4px;
-          border-top-right-radius: 4px;
-  -moz-border-radius-topleft: 4px;
-}
-
-.table-striped tbody tr:nth-child(odd) td,
-.table-striped tbody tr:nth-child(odd) th {
-  background-color: #f9f9f9;
-}
-
-.table-hover tbody tr:hover td,
-.table-hover tbody tr:hover th {
-  background-color: #f5f5f5;
-}
-
-table [class*=span],
-.row-fluid table [class*=span] {
-  display: table-cell;
-  float: none;
-  margin-left: 0;
-}
-
-.table .span1 {
-  float: none;
-  width: 44px;
-  margin-left: 0;
-}
-
-.table .span2 {
-  float: none;
-  width: 124px;
-  margin-left: 0;
-}
-
-.table .span3 {
-  float: none;
-  width: 204px;
-  margin-left: 0;
-}
-
-.table .span4 {
-  float: none;
-  width: 284px;
-  margin-left: 0;
-}
-
-.table .span5 {
-  float: none;
-  width: 364px;
-  margin-left: 0;
-}
-
-.table .span6 {
-  float: none;
-  width: 444px;
-  margin-left: 0;
-}
-
-.table .span7 {
-  float: none;
-  width: 524px;
-  margin-left: 0;
-}
-
-.table .span8 {
-  float: none;
-  width: 604px;
-  margin-left: 0;
-}
-
-.table .span9 {
-  float: none;
-  width: 684px;
-  margin-left: 0;
-}
-
-.table .span10 {
-  float: none;
-  width: 764px;
-  margin-left: 0;
-}
-
-.table .span11 {
-  float: none;
-  width: 844px;
-  margin-left: 0;
-}
-
-.table .span12 {
-  float: none;
-  width: 924px;
-  margin-left: 0;
-}
-
-.table .span13 {
-  float: none;
-  width: 1004px;
-  margin-left: 0;
-}
-
-.table .span14 {
-  float: none;
-  width: 1084px;
-  margin-left: 0;
-}
-
-.table .span15 {
-  float: none;
-  width: 1164px;
-  margin-left: 0;
-}
-
-.table .span16 {
-  float: none;
-  width: 1244px;
-  margin-left: 0;
-}
-
-.table .span17 {
-  float: none;
-  width: 1324px;
-  margin-left: 0;
-}
-
-.table .span18 {
-  float: none;
-  width: 1404px;
-  margin-left: 0;
-}
-
-.table .span19 {
-  float: none;
-  width: 1484px;
-  margin-left: 0;
-}
-
-.table .span20 {
-  float: none;
-  width: 1564px;
-  margin-left: 0;
-}
-
-.table .span21 {
-  float: none;
-  width: 1644px;
-  margin-left: 0;
-}
-
-.table .span22 {
-  float: none;
-  width: 1724px;
-  margin-left: 0;
-}
-
-.table .span23 {
-  float: none;
-  width: 1804px;
-  margin-left: 0;
-}
-
-.table .span24 {
-  float: none;
-  width: 1884px;
-  margin-left: 0;
-}
-
-.table tbody tr.success td {
-  background-color: #dff0d8;
-}
-
-.table tbody tr.error td {
-  background-color: #f2dede;
-}
-
-.table tbody tr.warning td {
-  background-color: #fcf8e3;
-}
-
-.table tbody tr.info td {
-  background-color: #d9edf7;
-}
-
-.table-hover tbody tr.success:hover td {
-  background-color: #d0e9c6;
-}
-
-.table-hover tbody tr.error:hover td {
-  background-color: #ebcccc;
-}
-
-.table-hover tbody tr.warning:hover td {
-  background-color: #faf2cc;
-}
-
-.table-hover tbody tr.info:hover td {
-  background-color: #c4e3f3;
-}
-
-[class^="icon-"],
-[class*=" icon-"] {
-  display: inline-block;
-  width: 14px;
-  height: 14px;
-  margin-top: 1px;
-  *margin-right: .3em;
-  line-height: 14px;
-  vertical-align: text-top;
-  background-image: url("../img/glyphicons-halflings.png");
-  background-position: 14px 14px;
-  background-repeat: no-repeat;
-}
-
-/* White icons with optional class, or on hover/active states of certain elements */
-
-.icon-white,
-.nav-tabs > .active > a > [class^="icon-"],
-.nav-tabs > .active > a > [class*=" icon-"],
-.nav-pills > .active > a > [class^="icon-"],
-.nav-pills > .active > a > [class*=" icon-"],
-.nav-list > .active > a > [class^="icon-"],
-.nav-list > .active > a > [class*=" icon-"],
-.navbar-inverse .nav > .active > a > [class^="icon-"],
-.navbar-inverse .nav > .active > a > [class*=" icon-"],
-.dropdown-menu > li > a:hover > [class^="icon-"],
-.dropdown-menu > li > a:hover > [class*=" icon-"],
-.dropdown-menu > .active > a > [class^="icon-"],
-.dropdown-menu > .active > a > [class*=" icon-"] {
-  background-image: url("../img/glyphicons-halflings-white.png");
-}
-
-.icon-glass {
-  background-position: 0      0;
-}
-
-.icon-music {
-  background-position: -24px 0;
-}
-
-.icon-search {
-  background-position: -48px 0;
-}
-
-.icon-envelope {
-  background-position: -72px 0;
-}
-
-.icon-heart {
-  background-position: -96px 0;
-}
-
-.icon-star {
-  background-position: -120px 0;
-}
-
-.icon-star-empty {
-  background-position: -144px 0;
-}
-
-.icon-user {
-  background-position: -168px 0;
-}
-
-.icon-film {
-  background-position: -192px 0;
-}
-
-.icon-th-large {
-  background-position: -216px 0;
-}
-
-.icon-th {
-  background-position: -240px 0;
-}
-
-.icon-th-list {
-  background-position: -264px 0;
-}
-
-.icon-ok {
-  background-position: -288px 0;
-}
-
-.icon-remove {
-  background-position: -312px 0;
-}
-
-.icon-zoom-in {
-  background-position: -336px 0;
-}
-
-.icon-zoom-out {
-  background-position: -360px 0;
-}
-
-.icon-off {
-  background-position: -384px 0;
-}
-
-.icon-signal {
-  background-position: -408px 0;
-}
-
-.icon-cog {
-  background-position: -432px 0;
-}
-
-.icon-trash {
-  background-position: -456px 0;
-}
-
-.icon-home {
-  background-position: 0 -24px;
-}
-
-.icon-file {
-  background-position: -24px -24px;
-}
-
-.icon-time {
-  background-position: -48px -24px;
-}
-
-.icon-road {
-  background-position: -72px -24px;
-}
-
-.icon-download-alt {
-  background-position: -96px -24px;
-}
-
-.icon-download {
-  background-position: -120px -24px;
-}
-
-.icon-upload {
-  background-position: -144px -24px;
-}
-
-.icon-inbox {
-  background-position: -168px -24px;
-}
-
-.icon-play-circle {
-  background-position: -192px -24px;
-}
-
-.icon-repeat {
-  background-position: -216px -24px;
-}
-
-.icon-refresh {
-  background-position: -240px -24px;
-}
-
-.icon-list-alt {
-  background-position: -264px -24px;
-}
-
-.icon-lock {
-  background-position: -287px -24px;
-}
-
-.icon-flag {
-  background-position: -312px -24px;
-}
-
-.icon-headphones {
-  background-position: -336px -24px;
-}
-
-.icon-volume-off {
-  background-position: -360px -24px;
-}
-
-.icon-volume-down {
-  background-position: -384px -24px;
-}
-
-.icon-volume-up {
-  background-position: -408px -24px;
-}
-
-.icon-qrcode {
-  background-position: -432px -24px;
-}
-
-.icon-barcode {
-  background-position: -456px -24px;
-}
-
-.icon-tag {
-  background-position: 0 -48px;
-}
-
-.icon-tags {
-  background-position: -25px -48px;
-}
-
-.icon-book {
-  background-position: -48px -48px;
-}
-
-.icon-bookmark {
-  background-position: -72px -48px;
-}
-
-.icon-print {
-  background-position: -96px -48px;
-}
-
-.icon-camera {
-  background-position: -120px -48px;
-}
-
-.icon-font {
-  background-position: -144px -48px;
-}
-
-.icon-bold {
-  background-position: -167px -48px;
-}
-
-.icon-italic {
-  background-position: -192px -48px;
-}
-
-.icon-text-height {
-  background-position: -216px -48px;
-}
-
-.icon-text-width {
-  background-position: -240px -48px;
-}
-
-.icon-align-left {
-  background-position: -264px -48px;
-}
-
-.icon-align-center {
-  background-position: -288px -48px;
-}
-
-.icon-align-right {
-  background-position: -312px -48px;
-}
-
-.icon-align-justify {
-  background-position: -336px -48px;
-}
-
-.icon-list {
-  background-position: -360px -48px;
-}
-
-.icon-indent-left {
-  background-position: -384px -48px;
-}
-
-.icon-indent-right {
-  background-position: -408px -48px;
-}
-
-.icon-facetime-video {
-  background-position: -432px -48px;
-}
-
-.icon-picture {
-  background-position: -456px -48px;
-}
-
-.icon-pencil {
-  background-position: 0 -72px;
-}
-
-.icon-map-marker {
-  background-position: -24px -72px;
-}
-
-.icon-adjust {
-  background-position: -48px -72px;
-}
-
-.icon-tint {
-  background-position: -72px -72px;
-}
-
-.icon-edit {
-  background-position: -96px -72px;
-}
-
-.icon-share {
-  background-position: -120px -72px;
-}
-
-.icon-check {
-  background-position: -144px -72px;
-}
-
-.icon-move {
-  background-position: -168px -72px;
-}
-
-.icon-step-backward {
-  background-position: -192px -72px;
-}
-
-.icon-fast-backward {
-  background-position: -216px -72px;
-}
-
-.icon-backward {
-  background-position: -240px -72px;
-}
-
-.icon-play {
-  background-position: -264px -72px;
-}
-
-.icon-pause {
-  background-position: -288px -72px;
-}
-
-.icon-stop {
-  background-position: -312px -72px;
-}
-
-.icon-forward {
-  background-position: -336px -72px;
-}
-
-.icon-fast-forward {
-  background-position: -360px -72px;
-}
-
-.icon-step-forward {
-  background-position: -384px -72px;
-}
-
-.icon-eject {
-  background-position: -408px -72px;
-}
-
-.icon-chevron-left {
-  background-position: -432px -72px;
-}
-
-.icon-chevron-right {
-  background-position: -456px -72px;
-}
-
-.icon-plus-sign {
-  background-position: 0 -96px;
-}
-
-.icon-minus-sign {
-  background-position: -24px -96px;
-}
-
-.icon-remove-sign {
-  background-position: -48px -96px;
-}
-
-.icon-ok-sign {
-  background-position: -72px -96px;
-}
-
-.icon-question-sign {
-  background-position: -96px -96px;
-}
-
-.icon-info-sign {
-  background-position: -120px -96px;
-}
-
-.icon-screenshot {
-  background-position: -144px -96px;
-}
-
-.icon-remove-circle {
-  background-position: -168px -96px;
-}
-
-.icon-ok-circle {
-  background-position: -192px -96px;
-}
-
-.icon-ban-circle {
-  background-position: -216px -96px;
-}
-
-.icon-arrow-left {
-  background-position: -240px -96px;
-}
-
-.icon-arrow-right {
-  background-position: -264px -96px;
-}
-
-.icon-arrow-up {
-  background-position: -289px -96px;
-}
-
-.icon-arrow-down {
-  background-position: -312px -96px;
-}
-
-.icon-share-alt {
-  background-position: -336px -96px;
-}
-
-.icon-resize-full {
-  background-position: -360px -96px;
-}
-
-.icon-resize-small {
-  background-position: -384px -96px;
-}
-
-.icon-plus {
-  background-position: -408px -96px;
-}
-
-.icon-minus {
-  background-position: -433px -96px;
-}
-
-.icon-asterisk {
-  background-position: -456px -96px;
-}
-
-.icon-exclamation-sign {
-  background-position: 0 -120px;
-}
-
-.icon-gift {
-  background-position: -24px -120px;
-}
-
-.icon-leaf {
-  background-position: -48px -120px;
-}
-
-.icon-fire {
-  background-position: -72px -120px;
-}
-
-.icon-eye-open {
-  background-position: -96px -120px;
-}
-
-.icon-eye-close {
-  background-position: -120px -120px;
-}
-
-.icon-warning-sign {
-  background-position: -144px -120px;
-}
-
-.icon-plane {
-  background-position: -168px -120px;
-}
-
-.icon-calendar {
-  background-position: -192px -120px;
-}
-
-.icon-random {
-  width: 16px;
-  background-position: -216px -120px;
-}
-
-.icon-comment {
-  background-position: -240px -120px;
-}
-
-.icon-magnet {
-  background-position: -264px -120px;
-}
-
-.icon-chevron-up {
-  background-position: -288px -120px;
-}
-
-.icon-chevron-down {
-  background-position: -313px -119px;
-}
-
-.icon-retweet {
-  background-position: -336px -120px;
-}
-
-.icon-shopping-cart {
-  background-position: -360px -120px;
-}
-
-.icon-folder-close {
-  background-position: -384px -120px;
-}
-
-.icon-folder-open {
-  width: 16px;
-  background-position: -408px -120px;
-}
-
-.icon-resize-vertical {
-  background-position: -432px -119px;
-}
-
-.icon-resize-horizontal {
-  background-position: -456px -118px;
-}
-
-.icon-hdd {
-  background-position: 0 -144px;
-}
-
-.icon-bullhorn {
-  background-position: -24px -144px;
-}
-
-.icon-bell {
-  background-position: -48px -144px;
-}
-
-.icon-certificate {
-  background-position: -72px -144px;
-}
-
-.icon-thumbs-up {
-  background-position: -96px -144px;
-}
-
-.icon-thumbs-down {
-  background-position: -120px -144px;
-}
-
-.icon-hand-right {
-  background-position: -144px -144px;
-}
-
-.icon-hand-left {
-  background-position: -168px -144px;
-}
-
-.icon-hand-up {
-  background-position: -192px -144px;
-}
-
-.icon-hand-down {
-  background-position: -216px -144px;
-}
-
-.icon-circle-arrow-right {
-  background-position: -240px -144px;
-}
-
-.icon-circle-arrow-left {
-  background-position: -264px -144px;
-}
-
-.icon-circle-arrow-up {
-  background-position: -288px -144px;
-}
-
-.icon-circle-arrow-down {
-  background-position: -312px -144px;
-}
-
-.icon-globe {
-  background-position: -336px -144px;
-}
-
-.icon-wrench {
-  background-position: -360px -144px;
-}
-
-.icon-tasks {
-  background-position: -384px -144px;
-}
-
-.icon-filter {
-  background-position: -408px -144px;
-}
-
-.icon-briefcase {
-  background-position: -432px -144px;
-}
-
-.icon-fullscreen {
-  background-position: -456px -144px;
-}
-
-.dropup,
-.dropdown {
-  position: relative;
-}
-
-.dropdown-toggle {
-  *margin-bottom: -3px;
-}
-
-.dropdown-toggle:active,
-.open .dropdown-toggle {
-  outline: 0;
-}
-
-.caret {
-  display: inline-block;
-  width: 0;
-  height: 0;
-  vertical-align: top;
-  border-top: 4px solid #000000;
-  border-right: 4px solid transparent;
-  border-left: 4px solid transparent;
-  content: "";
-}
-
-.dropdown .caret {
-  margin-top: 8px;
-  margin-left: 2px;
-}
-
-.dropdown-menu {
-  position: absolute;
-  top: 100%;
-  left: 0;
-  z-index: 1000;
-  display: none;
-  float: left;
-  min-width: 160px;
-  padding: 5px 0;
-  margin: 2px 0 0;
-  list-style: none;
-  background-color: #ffffff;
-  border: 1px solid #ccc;
-  border: 1px solid rgba(0, 0, 0, 0.2);
-  *border-right-width: 2px;
-  *border-bottom-width: 2px;
-  -webkit-border-radius: 6px;
-     -moz-border-radius: 6px;
-          border-radius: 6px;
-  -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
-     -moz-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
-          box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
-  -webkit-background-clip: padding-box;
-     -moz-background-clip: padding;
-          background-clip: padding-box;
-}
-
-.dropdown-menu.pull-right {
-  right: 0;
-  left: auto;
-}
-
-.dropdown-menu .divider {
-  *width: 100%;
-  height: 1px;
-  margin: 9px 1px;
-  *margin: -5px 0 5px;
-  overflow: hidden;
-  background-color: #e5e5e5;
-  border-bottom: 1px solid #ffffff;
-}
-
-.dropdown-menu a {
-  display: block;
-  padding: 3px 20px;
-  clear: both;
-  font-weight: normal;
-  line-height: 20px;
-  color: #333333;
-  white-space: nowrap;
-}
-
-.dropdown-menu li > a:hover,
-.dropdown-menu li > a:focus,
-.dropdown-submenu:hover > a {
-  color: #ffffff;
-  text-decoration: none;
-  background-color: #0088cc;
-  background-color: #0081c2;
-  background-image: -moz-linear-gradient(top, #0088cc, #0077b3);
-  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#0088cc), to(#0077b3));
-  background-image: -webkit-linear-gradient(top, #0088cc, #0077b3);
-  background-image: -o-linear-gradient(top, #0088cc, #0077b3);
-  background-image: linear-gradient(to bottom, #0088cc, #0077b3);
-  background-repeat: repeat-x;
-  filter: progid:dximagetransform.microsoft.gradient(startColorstr='#ff0088cc', endColorstr='#ff0077b3', GradientType=0);
-}
-
-.dropdown-menu .active > a,
-.dropdown-menu .active > a:hover {
-  color: #ffffff;
-  text-decoration: none;
-  background-color: #0088cc;
-  background-color: #0081c2;
-  background-image: linear-gradient(to bottom, #0088cc, #0077b3);
-  background-image: -moz-linear-gradient(top, #0088cc, #0077b3);
-  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#0088cc), to(#0077b3));
-  background-image: -webkit-linear-gradient(top, #0088cc, #0077b3);
-  background-image: -o-linear-gradient(top, #0088cc, #0077b3);
-  background-repeat: repeat-x;
-  outline: 0;
-  filter: progid:dximagetransform.microsoft.gradient(startColorstr='#ff0088cc', endColorstr='#ff0077b3', GradientType=0);
-}
-
-.dropdown-menu .disabled > a,
-.dropdown-menu .disabled > a:hover {
-  color: #999999;
-}
-
-.dropdown-menu .disabled > a:hover {
-  text-decoration: none;
-  cursor: default;
-  background-color: transparent;
-}
-
-.open {
-  *z-index: 1000;
-}
-
-.open > .dropdown-menu {
-  display: block;
-}
-
-.pull-right > .dropdown-menu {
-  right: 0;
-  left: auto;
-}
-
-.dropup .caret,
-.navbar-fixed-bottom .dropdown .caret {
-  border-top: 0;
-  border-bottom: 4px solid #000000;
-  content: "";
-}
-
-.dropup .dropdown-menu,
-.navbar-fixed-bottom .dropdown .dropdown-menu {
-  top: auto;
-  bottom: 100%;
-  margin-bottom: 1px;
-}
-
-.dropdown-submenu {
-  position: relative;
-}
-
-.dropdown-submenu > .dropdown-menu {
-  top: 0;
-  left: 100%;
-  margin-top: -6px;
-  margin-left: -1px;
-  -webkit-border-radius: 0 6px 6px 6px;
-     -moz-border-radius: 0 6px 6px 6px;
-          border-radius: 0 6px 6px 6px;
-}
-
-.dropdown-submenu:hover > .dropdown-menu {
-  display: block;
-}
-
-.dropdown-submenu > a:after {
-  display: block;
-  float: right;
-  width: 0;
-  height: 0;
-  margin-top: 5px;
-  margin-right: -10px;
-  border-color: transparent;
-  border-left-color: #cccccc;
-  border-style: solid;
-  border-width: 5px 0 5px 5px;
-  content: " ";
-}
-
-.dropdown-submenu:hover > a:after {
-  border-left-color: #ffffff;
-}
-
-.dropdown .dropdown-menu .nav-header {
-  padding-right: 20px;
-  padding-left: 20px;
-}
-
-.typeahead {
-  margin-top: 2px;
-  -webkit-border-radius: 4px;
-     -moz-border-radius: 4px;
-          border-radius: 4px;
-}
-
-.well {
-  min-height: 20px;
-  padding: 19px;
-  margin-bottom: 20px;
-  background-color: #f5f5f5;
-  border: 1px solid #e3e3e3;
-  -webkit-border-radius: 4px;
-     -moz-border-radius: 4px;
-          border-radius: 4px;
-  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);
-     -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);
-          box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);
-}
-
-.well blockquote {
-  border-color: #ddd;
-  border-color: rgba(0, 0, 0, 0.15);
-}
-
-.well-large {
-  padding: 24px;
-  -webkit-border-radius: 6px;
-     -moz-border-radius: 6px;
-          border-radius: 6px;
-}
-
-.well-small {
-  padding: 9px;
-  -webkit-border-radius: 3px;
-     -moz-border-radius: 3px;
-          border-radius: 3px;
-}
-
-.fade {
-  opacity: 0;
-  -webkit-transition: opacity 0.15s linear;
-     -moz-transition: opacity 0.15s linear;
-       -o-transition: opacity 0.15s linear;
-          transition: opacity 0.15s linear;
-}
-
-.fade.in {
-  opacity: 1;
-}
-
-.collapse {
-  position: relative;
-  height: 0;
-  overflow: hidden;
-  -webkit-transition: height 0.35s ease;
-     -moz-transition: height 0.35s ease;
-       -o-transition: height 0.35s ease;
-          transition: height 0.35s ease;
-}
-
-.collapse.in {
-  height: auto;
-}
-
-.close {
-  float: right;
-  font-size: 20px;
-  font-weight: bold;
-  line-height: 20px;
-  color: #000000;
-  text-shadow: 0 1px 0 #ffffff;
-  opacity: 0.2;
-  filter: alpha(opacity=20);
-}
-
-.close:hover {
-  color: #000000;
-  text-decoration: none;
-  cursor: pointer;
-  opacity: 0.4;
-  filter: alpha(opacity=40);
-}
-
-button.close {
-  padding: 0;
-  cursor: pointer;
-  background: transparent;
-  border: 0;
-  -webkit-appearance: none;
-}
-
-.btn {
-  display: inline-block;
-  *display: inline;
-  padding: 4px 14px;
-  margin-bottom: 0;
-  *margin-left: .3em;
-  font-size: 14px;
-  line-height: 20px;
-  *line-height: 20px;
-  color: #333333;
-  text-align: center;
-  text-shadow: 0 1px 1px rgba(255, 255, 255, 0.75);
-  vertical-align: middle;
-  cursor: pointer;
-  background-color: #f5f5f5;
-  *background-color: #e6e6e6;
-  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), to(#e6e6e6));
-  background-image: -webkit-linear-gradient(top, #ffffff, #e6e6e6);
-  background-image: -o-linear-gradient(top, #ffffff, #e6e6e6);
-  background-image: linear-gradient(to bottom, #ffffff, #e6e6e6);
-  background-image: -moz-linear-gradient(top, #ffffff, #e6e6e6);
-  background-repeat: repeat-x;
-  border: 1px solid #bbbbbb;
-  *border: 0;
-  border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
-  border-color: #e6e6e6 #e6e6e6 #bfbfbf;
-  border-bottom-color: #a2a2a2;
-  -webkit-border-radius: 4px;
-     -moz-border-radius: 4px;
-          border-radius: 4px;
-  filter: progid:dximagetransform.microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffe6e6e6', GradientType=0);
-  filter: progid:dximagetransform.microsoft.gradient(enabled=false);
-  *zoom: 1;
-  -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);
-     -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);
-          box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);
-}
-
-.btn:hover,
-.btn:active,
-.btn.active,
-.btn.disabled,
-.btn[disabled] {
-  color: #333333;
-  background-color: #e6e6e6;
-  *background-color: #d9d9d9;
-}
-
-.btn:active,
-.btn.active {
-  background-color: #cccccc \9;
-}
-
-.btn:first-child {
-  *margin-left: 0;
-}
-
-.btn:hover {
-  color: #333333;
-  text-decoration: none;
-  background-color: #e6e6e6;
-  *background-color: #d9d9d9;
-  /* Buttons in IE7 don't get borders, so darken on hover */
-
-  background-position: 0 -15px;
-  -webkit-transition: background-position 0.1s linear;
-     -moz-transition: background-position 0.1s linear;
-       -o-transition: background-position 0.1s linear;
-          transition: background-position 0.1s linear;
-}
-
-.btn:focus {
-  outline: thin dotted #333;
-  outline: 5px auto -webkit-focus-ring-color;
-  outline-offset: -2px;
-}
-
-.btn.active,
-.btn:active {
-  background-color: #e6e6e6;
-  background-color: #d9d9d9 \9;
-  background-image: none;
-  outline: 0;
-  -webkit-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);
-     -moz-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);
-          box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);
-}
-
-.btn.disabled,
-.btn[disabled] {
-  cursor: default;
-  background-color: #e6e6e6;
-  background-image: none;
-  opacity: 0.65;
-  filter: alpha(opacity=65);
-  -webkit-box-shadow: none;
-     -moz-box-shadow: none;
-          box-shadow: none;
-}
-
-.btn-large {
-  padding: 9px 14px;
-  font-size: 16px;
-  line-height: normal;
-  -webkit-border-radius: 5px;
-     -moz-border-radius: 5px;
-          border-radius: 5px;
-}
-
-.btn-large [class^="icon-"] {
-  margin-top: 2px;
-}
-
-.btn-small {
-  padding: 3px 9px;
-  font-size: 12px;
-  line-height: 18px;
-}
-
-.btn-small [class^="icon-"] {
-  margin-top: 0;
-}
-
-.btn-mini {
-  padding: 2px 6px;
-  font-size: 11px;
-  line-height: 17px;
-}
-
-.btn-block {
-  display: block;
-  width: 100%;
-  padding-right: 0;
-  padding-left: 0;
-  -webkit-box-sizing: border-box;
-     -moz-box-sizing: border-box;
-          box-sizing: border-box;
-}
-
-.btn-block + .btn-block {
-  margin-top: 5px;
-}
-
-input[type="submit"].btn-block,
-input[type="reset"].btn-block,
-input[type="button"].btn-block {
-  width: 100%;
-}
-
-.btn-primary.active,
-.btn-warning.active,
-.btn-danger.active,
-.btn-success.active,
-.btn-info.active,
-.btn-inverse.active {
-  color: rgba(255, 255, 255, 0.75);
-}
-
-.btn {
-  border-color: #c5c5c5;
-  border-color: rgba(0, 0, 0, 0.15) rgba(0, 0, 0, 0.15) rgba(0, 0, 0, 0.25);
-}
-
-.btn-primary {
-  color: #ffffff;
-  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
-  background-color: #006dcc;
-  *background-color: #0044cc;
-  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#0088cc), to(#0044cc));
-  background-image: -webkit-linear-gradient(top, #0088cc, #0044cc);
-  background-image: -o-linear-gradient(top, #0088cc, #0044cc);
-  background-image: linear-gradient(to bottom, #0088cc, #0044cc);
-  background-image: -moz-linear-gradient(top, #0088cc, #0044cc);
-  background-repeat: repeat-x;
-  border-color: #0044cc #0044cc #002a80;
-  border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
-  filter: progid:dximagetransform.microsoft.gradient(startColorstr='#ff0088cc', endColorstr='#ff0044cc', GradientType=0);
-  filter: progid:dximagetransform.microsoft.gradient(enabled=false);
-}
-
-.btn-primary:hover,
-.btn-primary:active,
-.btn-primary.active,
-.btn-primary.disabled,
-.btn-primary[disabled] {
-  color: #ffffff;
-  background-color: #0044cc;
-  *background-color: #003bb3;
-}
-
-.btn-primary:active,
-.btn-primary.active {
-  background-color: #003399 \9;
-}
-
-.btn-warning {
-  color: #ffffff;
-  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
-  background-color: #faa732;
-  *background-color: #f89406;
-  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#fbb450), to(#f89406));
-  background-image: -webkit-linear-gradient(top, #fbb450, #f89406);
-  background-image: -o-linear-gradient(top, #fbb450, #f89406);
-  background-image: linear-gradient(to bottom, #fbb450, #f89406);
-  background-image: -moz-linear-gradient(top, #fbb450, #f89406);
-  background-repeat: repeat-x;
-  border-color: #f89406 #f89406 #ad6704;
-  border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
-  filter: progid:dximagetransform.microsoft.gradient(startColorstr='#fffbb450', endColorstr='#fff89406', GradientType=0);
-  filter: progid:dximagetransform.microsoft.gradient(enabled=false);
-}
-
-.btn-warning:hover,
-.btn-warning:active,
-.btn-warning.active,
-.btn-warning.disabled,
-.btn-warning[disabled] {
-  color: #ffffff;
-  background-color: #f89406;
-  *background-color: #df8505;
-}
-
-.btn-warning:active,
-.btn-warning.active {
-  background-color: #c67605 \9;
-}
-
-.btn-danger {
-  color: #ffffff;
-  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
-  background-color: #da4f49;
-  *background-color: #bd362f;
-  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ee5f5b), to(#bd362f));
-  background-image: -webkit-linear-gradient(top, #ee5f5b, #bd362f);
-  background-image: -o-linear-gradient(top, #ee5f5b, #bd362f);
-  background-image: linear-gradient(to bottom, #ee5f5b, #bd362f);
-  background-image: -moz-linear-gradient(top, #ee5f5b, #bd362f);
-  background-repeat: repeat-x;
-  border-color: #bd362f #bd362f #802420;
-  border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
-  filter: progid:dximagetransform.microsoft.gradient(startColorstr='#ffee5f5b', endColorstr='#ffbd362f', GradientType=0);
-  filter: progid:dximagetransform.microsoft.gradient(enabled=false);
-}
-
-.btn-danger:hover,
-.btn-danger:active,
-.btn-danger.active,
-.btn-danger.disabled,
-.btn-danger[disabled] {
-  color: #ffffff;
-  background-color: #bd362f;
-  *background-color: #a9302a;
-}
-
-.btn-danger:active,
-.btn-danger.active {
-  background-color: #942a25 \9;
-}
-
-.btn-success {
-  color: #ffffff;
-  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
-  background-color: #5bb75b;
-  *background-color: #51a351;
-  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#62c462), to(#51a351));
-  background-image: -webkit-linear-gradient(top, #62c462, #51a351);
-  background-image: -o-linear-gradient(top, #62c462, #51a351);
-  background-image: linear-gradient(to bottom, #62c462, #51a351);
-  background-image: -moz-linear-gradient(top, #62c462, #51a351);
-  background-repeat: repeat-x;
-  border-color: #51a351 #51a351 #387038;
-  border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
-  filter: progid:dximagetransform.microsoft.gradient(startColorstr='#ff62c462', endColorstr='#ff51a351', GradientType=0);
-  filter: progid:dximagetransform.microsoft.gradient(enabled=false);
-}
-
-.btn-success:hover,
-.btn-success:active,
-.btn-success.active,
-.btn-success.disabled,
-.btn-success[disabled] {
-  color: #ffffff;
-  background-color: #51a351;
-  *background-color: #499249;
-}
-
-.btn-success:active,
-.btn-success.active {
-  background-color: #408140 \9;
-}
-
-.btn-info {
-  color: #ffffff;
-  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
-  background-color: #49afcd;
-  *background-color: #2f96b4;
-  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#5bc0de), to(#2f96b4));
-  background-image: -webkit-linear-gradient(top, #5bc0de, #2f96b4);
-  background-image: -o-linear-gradient(top, #5bc0de, #2f96b4);
-  background-image: linear-gradient(to bottom, #5bc0de, #2f96b4);
-  background-image: -moz-linear-gradient(top, #5bc0de, #2f96b4);
-  background-repeat: repeat-x;
-  border-color: #2f96b4 #2f96b4 #1f6377;
-  border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
-  filter: progid:dximagetransform.microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff2f96b4', GradientType=0);
-  filter: progid:dximagetransform.microsoft.gradient(enabled=false);
-}
-
-.btn-info:hover,
-.btn-info:active,
-.btn-info.active,
-.btn-info.disabled,
-.btn-info[disabled] {
-  color: #ffffff;
-  background-color: #2f96b4;
-  *background-color: #2a85a0;
-}
-
-.btn-info:active,
-.btn-info.active {
-  background-color: #24748c \9;
-}
-
-.btn-inverse {
-  color: #ffffff;
-  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
-  background-color: #363636;
-  *background-color: #222222;
-  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#444444), to(#222222));
-  background-image: -webkit-linear-gradient(top, #444444, #222222);
-  background-image: -o-linear-gradient(top, #444444, #222222);
-  background-image: linear-gradient(to bottom, #444444, #222222);
-  background-image: -moz-linear-gradient(top, #444444, #222222);
-  background-repeat: repeat-x;
-  border-color: #222222 #222222 #000000;
-  border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
-  filter: progid:dximagetransform.microsoft.gradient(startColorstr='#ff444444', endColorstr='#ff222222', GradientType=0);
-  filter: progid:dximagetransform.microsoft.gradient(enabled=false);
-}
-
-.btn-inverse:hover,
-.btn-inverse:active,
-.btn-inverse.active,
-.btn-inverse.disabled,
-.btn-inverse[disabled] {
-  color: #ffffff;
-  background-color: #222222;
-  *background-color: #151515;
-}
-
-.btn-inverse:active,
-.btn-inverse.active {
-  background-color: #080808 \9;
-}
-
-button.btn,
-input[type="submit"].btn {
-  *padding-top: 3px;
-  *padding-bottom: 3px;
-}
-
-button.btn::-moz-focus-inner,
-input[type="submit"].btn::-moz-focus-inner {
-  padding: 0;
-  border: 0;
-}
-
-button.btn.btn-large,
-input[type="submit"].btn.btn-large {
-  *padding-top: 7px;
-  *padding-bottom: 7px;
-}
-
-button.btn.btn-small,
-input[type="submit"].btn.btn-small {
-  *padding-top: 3px;
-  *padding-bottom: 3px;
-}
-
-button.btn.btn-mini,
-input[type="submit"].btn.btn-mini {
-  *padding-top: 1px;
-  *padding-bottom: 1px;
-}
-
-.btn-link,
-.btn-link:active,
-.btn-link[disabled] {
-  background-color: transparent;
-  background-image: none;
-  -webkit-box-shadow: none;
-     -moz-box-shadow: none;
-          box-shadow: none;
-}
-
-.btn-link {
-  color: #0088cc;
-  cursor: pointer;
-  border-color: transparent;
-  -webkit-border-radius: 0;
-     -moz-border-radius: 0;
-          border-radius: 0;
-}
-
-.btn-link:hover {
-  color: #005580;
-  text-decoration: underline;
-  background-color: transparent;
-}
-
-.btn-link[disabled]:hover {
-  color: #333333;
-  text-decoration: none;
-}
-
-.btn-group {
-  position: relative;
-  *margin-left: .3em;
-  font-size: 0;
-  white-space: nowrap;
-  vertical-align: middle;
-}
-
-.btn-group:first-child {
-  *margin-left: 0;
-}
-
-.btn-group + .btn-group {
-  margin-left: 5px;
-}
-
-.btn-toolbar {
-  margin-top: 10px;
-  margin-bottom: 10px;
-  font-size: 0;
-}
-
-.btn-toolbar .btn-group {
-  display: inline-block;
-  *display: inline;
-  /* IE7 inline-block hack */
-
-  *zoom: 1;
-}
-
-.btn-toolbar .btn + .btn,
-.btn-toolbar .btn-group + .btn,
-.btn-toolbar .btn + .btn-group {
-  margin-left: 5px;
-}
-
-.btn-group > .btn {
-  position: relative;
-  -webkit-border-radius: 0;
-     -moz-border-radius: 0;
-          border-radius: 0;
-}
-
-.btn-group > .btn + .btn {
-  margin-left: -1px;
-}
-
-.btn-group > .btn,
-.btn-group > .dropdown-menu {
-  font-size: 14px;
-}
-
-.btn-group > .btn-mini {
-  font-size: 11px;
-}
-
-.btn-group > .btn-small {
-  font-size: 12px;
-}
-
-.btn-group > .btn-large {
-  font-size: 16px;
-}
-
-.btn-group > .btn:first-child {
-  margin-left: 0;
-  -webkit-border-bottom-left-radius: 4px;
-          border-bottom-left-radius: 4px;
-  -webkit-border-top-left-radius: 4px;
-          border-top-left-radius: 4px;
-  -moz-border-radius-bottomleft: 4px;
-  -moz-border-radius-topleft: 4px;
-}
-
-.btn-group > .btn:last-child,
-.btn-group > .dropdown-toggle {
-  -webkit-border-top-right-radius: 4px;
-          border-top-right-radius: 4px;
-  -webkit-border-bottom-right-radius: 4px;
-          border-bottom-right-radius: 4px;
-  -moz-border-radius-topright: 4px;
-  -moz-border-radius-bottomright: 4px;
-}
-
-.btn-group > .btn.large:first-child {
-  margin-left: 0;
-  -webkit-border-bottom-left-radius: 6px;
-          border-bottom-left-radius: 6px;
-  -webkit-border-top-left-radius: 6px;
-          border-top-left-radius: 6px;
-  -moz-border-radius-bottomleft: 6px;
-  -moz-border-radius-topleft: 6px;
-}
-
-.btn-group > .btn.large:last-child,
-.btn-group > .large.dropdown-toggle {
-  -webkit-border-top-right-radius: 6px;
-          border-top-right-radius: 6px;
-  -webkit-border-bottom-right-radius: 6px;
-          border-bottom-right-radius: 6px;
-  -moz-border-radius-topright: 6px;
-  -moz-border-radius-bottomright: 6px;
-}
-
-.btn-group > .btn:hover,
-.btn-group > .btn:focus,
-.btn-group > .btn:active,
-.btn-group > .btn.active {
-  z-index: 2;
-}
-
-.btn-group .dropdown-toggle:active,
-.btn-group.open .dropdown-toggle {
-  outline: 0;
-}
-
-.btn-group > .btn + .dropdown-toggle {
-  *padding-top: 5px;
-  padding-right: 8px;
-  *padding-bottom: 5px;
-  padding-left: 8px;
-  -webkit-box-shadow: inset 1px 0 0 rgba(255, 255, 255, 0.125), inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);
-     -moz-box-shadow: inset 1px 0 0 rgba(255, 255, 255, 0.125), inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);
-          box-shadow: inset 1px 0 0 rgba(255, 255, 255, 0.125), inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);
-}
-
-.btn-group > .btn-mini + .dropdown-toggle {
-  *padding-top: 2px;
-  padding-right: 5px;
-  *padding-bottom: 2px;
-  padding-left: 5px;
-}
-
-.btn-group > .btn-small + .dropdown-toggle {
-  *padding-top: 5px;
-  *padding-bottom: 4px;
-}
-
-.btn-group > .btn-large + .dropdown-toggle {
-  *padding-top: 7px;
-  padding-right: 12px;
-  *padding-bottom: 7px;
-  padding-left: 12px;
-}
-
-.btn-group.open .dropdown-toggle {
-  background-image: none;
-  -webkit-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);
-     -moz-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);
-          box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);
-}
-
-.btn-group.open .btn.dropdown-toggle {
-  background-color: #e6e6e6;
-}
-
-.btn-group.open .btn-primary.dropdown-toggle {
-  background-color: #0044cc;
-}
-
-.btn-group.open .btn-warning.dropdown-toggle {
-  background-color: #f89406;
-}
-
-.btn-group.open .btn-danger.dropdown-toggle {
-  background-color: #bd362f;
-}
-
-.btn-group.open .btn-success.dropdown-toggle {
-  background-color: #51a351;
-}
-
-.btn-group.open .btn-info.dropdown-toggle {
-  background-color: #2f96b4;
-}
-
-.btn-group.open .btn-inverse.dropdown-toggle {
-  background-color: #222222;
-}
-
-.btn .caret {
-  margin-top: 8px;
-  margin-left: 0;
-}
-
-.btn-mini .caret,
-.btn-small .caret,
-.btn-large .caret {
-  margin-top: 6px;
-}
-
-.btn-large .caret {
-  border-top-width: 5px;
-  border-right-width: 5px;
-  border-left-width: 5px;
-}
-
-.dropup .btn-large .caret {
-  border-top: 0;
-  border-bottom: 5px solid #000000;
-}
-
-.btn-primary .caret,
-.btn-warning .caret,
-.btn-danger .caret,
-.btn-info .caret,
-.btn-success .caret,
-.btn-inverse .caret {
-  border-top-color: #ffffff;
-  border-bottom-color: #ffffff;
-}
-
-.btn-group-vertical {
-  display: inline-block;
-  *display: inline;
-  /* IE7 inline-block hack */
-
-  *zoom: 1;
-}
-
-.btn-group-vertical .btn {
-  display: block;
-  float: none;
-  width: 100%;
-  -webkit-border-radius: 0;
-     -moz-border-radius: 0;
-          border-radius: 0;
-}
-
-.btn-group-vertical .btn + .btn {
-  margin-top: -1px;
-  margin-left: 0;
-}
-
-.btn-group-vertical .btn:first-child {
-  -webkit-border-radius: 4px 4px 0 0;
-     -moz-border-radius: 4px 4px 0 0;
-          border-radius: 4px 4px 0 0;
-}
-
-.btn-group-vertical .btn:last-child {
-  -webkit-border-radius: 0 0 4px 4px;
-     -moz-border-radius: 0 0 4px 4px;
-          border-radius: 0 0 4px 4px;
-}
-
-.btn-group-vertical .btn-large:first-child {
-  -webkit-border-radius: 6px 6px 0 0;
-     -moz-border-radius: 6px 6px 0 0;
-          border-radius: 6px 6px 0 0;
-}
-
-.btn-group-vertical .btn-large:last-child {
-  -webkit-border-radius: 0 0 6px 6px;
-     -moz-border-radius: 0 0 6px 6px;
-          border-radius: 0 0 6px 6px;
-}
-
-.alert {
-  padding: 8px 35px 8px 14px;
-  margin-bottom: 20px;
-  color: #c09853;
-  text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5);
-  background-color: #fcf8e3;
-  border: 1px solid #fbeed5;
-  -webkit-border-radius: 4px;
-     -moz-border-radius: 4px;
-          border-radius: 4px;
-}
-
-.alert h4 {
-  margin: 0;
-}
-
-.alert .close {
-  position: relative;
-  top: -2px;
-  right: -21px;
-  line-height: 20px;
-}
-
-.alert-success {
-  color: #468847;
-  background-color: #dff0d8;
-  border-color: #d6e9c6;
-}
-
-.alert-danger,
-.alert-error {
-  color: #b94a48;
-  background-color: #f2dede;
-  border-color: #eed3d7;
-}
-
-.alert-info {
-  color: #3a87ad;
-  background-color: #d9edf7;
-  border-color: #bce8f1;
-}
-
-.alert-block {
-  padding-top: 14px;
-  padding-bottom: 14px;
-}
-
-.alert-block > p,
-.alert-block > ul {
-  margin-bottom: 0;
-}
-
-.alert-block p + p {
-  margin-top: 5px;
-}
-
-.nav {
-  margin-bottom: 20px;
-  margin-left: 0;
-  list-style: none;
-}
-
-.nav > li > a {
-  display: block;
-}
-
-.nav > li > a:hover {
-  text-decoration: none;
-  background-color: #eeeeee;
-}
-
-.nav > .pull-right {
-  float: right;
-}
-
-.nav-header {
-  display: block;
-  padding: 3px 15px;
-  font-size: 11px;
-  font-weight: bold;
-  line-height: 20px;
-  color: #999999;
-  text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5);
-  text-transform: uppercase;
-}
-
-.nav li + .nav-header {
-  margin-top: 9px;
-}
-
-.nav-list {
-  padding-right: 15px;
-  padding-left: 15px;
-  margin-bottom: 0;
-}
-
-.nav-list > li > a,
-.nav-list .nav-header {
-  margin-right: -15px;
-  margin-left: -15px;
-  text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5);
-}
-
-.nav-list > li > a {
-  padding: 3px 15px;
-}
-
-.nav-list > .active > a,
-.nav-list > .active > a:hover {
-  color: #ffffff;
-  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.2);
-  background-color: #0088cc;
-}
-
-.nav-list [class^="icon-"] {
-  margin-right: 2px;
-}
-
-.nav-list .divider {
-  *width: 100%;
-  height: 1px;
-  margin: 9px 1px;
-  *margin: -5px 0 5px;
-  overflow: hidden;
-  background-color: #e5e5e5;
-  border-bottom: 1px solid #ffffff;
-}
-
-.nav-tabs,
-.nav-pills {
-  *zoom: 1;
-}
-
-.nav-tabs:before,
-.nav-pills:before,
-.nav-tabs:after,
-.nav-pills:after {
-  display: table;
-  line-height: 0;
-  content: "";
-}
-
-.nav-tabs:after,
-.nav-pills:after {
-  clear: both;
-}
-
-.nav-tabs > li,
-.nav-pills > li {
-  float: left;
-}
-
-.nav-tabs > li > a,
-.nav-pills > li > a {
-  padding-right: 12px;
-  padding-left: 12px;
-  margin-right: 2px;
-  line-height: 14px;
-}
-
-.nav-tabs {
-  border-bottom: 1px solid #ddd;
-}
-
-.nav-tabs > li {
-  margin-bottom: -1px;
-}
-
-.nav-tabs > li > a {
-  padding-top: 8px;
-  padding-bottom: 8px;
-  line-height: 20px;
-  border: 1px solid transparent;
-  -webkit-border-radius: 4px 4px 0 0;
-     -moz-border-radius: 4px 4px 0 0;
-          border-radius: 4px 4px 0 0;
-}
-
-.nav-tabs > li > a:hover {
-  border-color: #eeeeee #eeeeee #dddddd;
-}
-
-.nav-tabs > .active > a,
-.nav-tabs > .active > a:hover {
-  color: #555555;
-  cursor: default;
-  background-color: #ffffff;
-  border: 1px solid #ddd;
-  border-bottom-color: transparent;
-}
-
-.nav-pills > li > a {
-  padding-top: 8px;
-  padding-bottom: 8px;
-  margin-top: 2px;
-  margin-bottom: 2px;
-  -webkit-border-radius: 5px;
-     -moz-border-radius: 5px;
-          border-radius: 5px;
-}
-
-.nav-pills > .active > a,
-.nav-pills > .active > a:hover {
-  color: #ffffff;
-  background-color: #0088cc;
-}
-
-.nav-stacked > li {
-  float: none;
-}
-
-.nav-stacked > li > a {
-  margin-right: 0;
-}
-
-.nav-tabs.nav-stacked {
-  border-bottom: 0;
-}
-
-.nav-tabs.nav-stacked > li > a {
-  border: 1px solid #ddd;
-  -webkit-border-radius: 0;
-     -moz-border-radius: 0;
-          border-radius: 0;
-}
-
-.nav-tabs.nav-stacked > li:first-child > a {
-  -webkit-border-top-right-radius: 4px;
-          border-top-right-radius: 4px;
-  -webkit-border-top-left-radius: 4px;
-          border-top-left-radius: 4px;
-  -moz-border-radius-topright: 4px;
-  -moz-border-radius-topleft: 4px;
-}
-
-.nav-tabs.nav-stacked > li:last-child > a {
-  -webkit-border-bottom-right-radius: 4px;
-          border-bottom-right-radius: 4px;
-  -webkit-border-bottom-left-radius: 4px;
-          border-bottom-left-radius: 4px;
-  -moz-border-radius-bottomright: 4px;
-  -moz-border-radius-bottomleft: 4px;
-}
-
-.nav-tabs.nav-stacked > li > a:hover {
-  z-index: 2;
-  border-color: #ddd;
-}
-
-.nav-pills.nav-stacked > li > a {
-  margin-bottom: 3px;
-}
-
-.nav-pills.nav-stacked > li:last-child > a {
-  margin-bottom: 1px;
-}
-
-.nav-tabs .dropdown-menu {
-  -webkit-border-radius: 0 0 6px 6px;
-     -moz-border-radius: 0 0 6px 6px;
-          border-radius: 0 0 6px 6px;
-}
-
-.nav-pills .dropdown-menu {
-  -webkit-border-radius: 6px;
-     -moz-border-radius: 6px;
-          border-radius: 6px;
-}
-
-.nav .dropdown-toggle .caret {
-  margin-top: 6px;
-  border-top-color: #0088cc;
-  border-bottom-color: #0088cc;
-}
-
-.nav .dropdown-toggle:hover .caret {
-  border-top-color: #005580;
-  border-bottom-color: #005580;
-}
-
-/* move down carets for tabs */
-
-.nav-tabs .dropdown-toggle .caret {
-  margin-top: 8px;
-}
-
-.nav .active .dropdown-toggle .caret {
-  border-top-color: #fff;
-  border-bottom-color: #fff;
-}
-
-.nav-tabs .active .dropdown-toggle .caret {
-  border-top-color: #555555;
-  border-bottom-color: #555555;
-}
-
-.nav > .dropdown.active > a:hover {
-  cursor: pointer;
-}
-
-.nav-tabs .open .dropdown-toggle,
-.nav-pills .open .dropdown-toggle,
-.nav > li.dropdown.open.active > a:hover {
-  color: #ffffff;
-  background-color: #999999;
-  border-color: #999999;
-}
-
-.nav li.dropdown.open .caret,
-.nav li.dropdown.open.active .caret,
-.nav li.dropdown.open a:hover .caret {
-  border-top-color: #ffffff;
-  border-bottom-color: #ffffff;
-  opacity: 1;
-  filter: alpha(opacity=100);
-}
-
-.tabs-stacked .open > a:hover {
-  border-color: #999999;
-}
-
-.tabbable {
-  *zoom: 1;
-}
-
-.tabbable:before,
-.tabbable:after {
-  display: table;
-  line-height: 0;
-  content: "";
-}
-
-.tabbable:after {
-  clear: both;
-}
-
-.tab-content {
-  overflow: auto;
-}
-
-.tabs-below > .nav-tabs,
-.tabs-right > .nav-tabs,
-.tabs-left > .nav-tabs {
-  border-bottom: 0;
-}
-
-.tab-content > .tab-pane,
-.pill-content > .pill-pane {
-  display: none;
-}
-
-.tab-content > .active,
-.pill-content > .active {
-  display: block;
-}
-
-.tabs-below > .nav-tabs {
-  border-top: 1px solid #ddd;
-}
-
-.tabs-below > .nav-tabs > li {
-  margin-top: -1px;
-  margin-bottom: 0;
-}
-
-.tabs-below > .nav-tabs > li > a {
-  -webkit-border-radius: 0 0 4px 4px;
-     -moz-border-radius: 0 0 4px 4px;
-          border-radius: 0 0 4px 4px;
-}
-
-.tabs-below > .nav-tabs > li > a:hover {
-  border-top-color: #ddd;
-  border-bottom-color: transparent;
-}
-
-.tabs-below > .nav-tabs > .active > a,
-.tabs-below > .nav-tabs > .active > a:hover {
-  border-color: transparent #ddd #ddd #ddd;
-}
-
-.tabs-left > .nav-tabs > li,
-.tabs-right > .nav-tabs > li {
-  float: none;
-}
-
-.tabs-left > .nav-tabs > li > a,
-.tabs-right > .nav-tabs > li > a {
-  min-width: 74px;
-  margin-right: 0;
-  margin-bottom: 3px;
-}
-
-.tabs-left > .nav-tabs {
-  float: left;
-  margin-right: 19px;
-  border-right: 1px solid #ddd;
-}
-
-.tabs-left > .nav-tabs > li > a {
-  margin-right: -1px;
-  -webkit-border-radius: 4px 0 0 4px;
-     -moz-border-radius: 4px 0 0 4px;
-          border-radius: 4px 0 0 4px;
-}
-
-.tabs-left > .nav-tabs > li > a:hover {
-  border-color: #eeeeee #dddddd #eeeeee #eeeeee;
-}
-
-.tabs-left > .nav-tabs .active > a,
-.tabs-left > .nav-tabs .active > a:hover {
-  border-color: #ddd transparent #ddd #ddd;
-  *border-right-color: #ffffff;
-}
-
-.tabs-right > .nav-tabs {
-  float: right;
-  margin-left: 19px;
-  border-left: 1px solid #ddd;
-}
-
-.tabs-right > .nav-tabs > li > a {
-  margin-left: -1px;
-  -webkit-border-radius: 0 4px 4px 0;
-     -moz-border-radius: 0 4px 4px 0;
-          border-radius: 0 4px 4px 0;
-}
-
-.tabs-right > .nav-tabs > li > a:hover {
-  border-color: #eeeeee #eeeeee #eeeeee #dddddd;
-}
-
-.tabs-right > .nav-tabs .active > a,
-.tabs-right > .nav-tabs .active > a:hover {
-  border-color: #ddd #ddd #ddd transparent;
-  *border-left-color: #ffffff;
-}
-
-.nav > .disabled > a {
-  color: #999999;
-}
-
-.nav > .disabled > a:hover {
-  text-decoration: none;
-  cursor: default;
-  background-color: transparent;
-}
-
-.navbar {
-  *position: relative;
-  *z-index: 2;
-  margin-bottom: 20px;
-  overflow: visible;
-  color: #777777;
-}
-
-.navbar-inner {
-  min-height: 40px;
-  padding-right: 20px;
-  padding-left: 20px;
-  background-color: #fafafa;
-  background-image: -moz-linear-gradient(top, #ffffff, #f2f2f2);
-  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), to(#f2f2f2));
-  background-image: -webkit-linear-gradient(top, #ffffff, #f2f2f2);
-  background-image: -o-linear-gradient(top, #ffffff, #f2f2f2);
-  background-image: linear-gradient(to bottom, #ffffff, #f2f2f2);
-  background-repeat: repeat-x;
-  border: 1px solid #d4d4d4;
-  -webkit-border-radius: 4px;
-     -moz-border-radius: 4px;
-          border-radius: 4px;
-  filter: progid:dximagetransform.microsoft.gradient(startColorstr='#ffffffff', endColorstr='#fff2f2f2', GradientType=0);
-  *zoom: 1;
-  -webkit-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.065);
-     -moz-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.065);
-          box-shadow: 0 1px 4px rgba(0, 0, 0, 0.065);
-}
-
-.navbar-inner:before,
-.navbar-inner:after {
-  display: table;
-  line-height: 0;
-  content: "";
-}
-
-.navbar-inner:after {
-  clear: both;
-}
-
-.navbar .container {
-  width: auto;
-}
-
-.nav-collapse.collapse {
-  height: auto;
-}
-
-.navbar .brand {
-  display: block;
-  float: left;
-  padding: 10px 20px 10px;
-  margin-left: -20px;
-  font-size: 20px;
-  font-weight: 200;
-  color: #777777;
-  text-shadow: 0 1px 0 #ffffff;
-}
-
-.navbar .brand:hover {
-  text-decoration: none;
-}
-
-.navbar-text {
-  margin-bottom: 0;
-  line-height: 40px;
-}
-
-.navbar-link {
-  color: #777777;
-}
-
-.navbar-link:hover {
-  color: #333333;
-}
-
-.navbar .divider-vertical {
-  height: 40px;
-  margin: 0 9px;
-  border-right: 1px solid #ffffff;
-  border-left: 1px solid #f2f2f2;
-}
-
-.navbar .btn,
-.navbar .btn-group {
-  margin-top: 5px;
-}
-
-.navbar .btn-group .btn,
-.navbar .input-prepend .btn,
-.navbar .input-append .btn {
-  margin-top: 0;
-}
-
-.navbar-form {
-  margin-bottom: 0;
-  *zoom: 1;
-}
-
-.navbar-form:before,
-.navbar-form:after {
-  display: table;
-  line-height: 0;
-  content: "";
-}
-
-.navbar-form:after {
-  clear: both;
-}
-
-.navbar-form input,
-.navbar-form select,
-.navbar-form .radio,
-.navbar-form .checkbox {
-  margin-top: 5px;
-}
-
-.navbar-form input,
-.navbar-form select,
-.navbar-form .btn {
-  display: inline-block;
-  margin-bottom: 0;
-}
-
-.navbar-form input[type="image"],
-.navbar-form input[type="checkbox"],
-.navbar-form input[type="radio"] {
-  margin-top: 3px;
-}
-
-.navbar-form .input-append,
-.navbar-form .input-prepend {
-  margin-top: 6px;
-  white-space: nowrap;
-}
-
-.navbar-form .input-append input,
-.navbar-form .input-prepend input {
-  margin-top: 0;
-}
-
-.navbar-search {
-  position: relative;
-  float: left;
-  margin-top: 5px;
-  margin-bottom: 0;
-}
-
-.navbar-search .search-query {
-  padding: 4px 14px;
-  margin-bottom: 0;
-  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
-  font-size: 13px;
-  font-weight: normal;
-  line-height: 1;
-  -webkit-border-radius: 15px;
-     -moz-border-radius: 15px;
-          border-radius: 15px;
-}
-
-.navbar-static-top {
-  position: static;
-  width: 100%;
-  margin-bottom: 0;
-}
-
-.navbar-static-top .navbar-inner {
-  -webkit-border-radius: 0;
-     -moz-border-radius: 0;
-          border-radius: 0;
-}
-
-.navbar-fixed-top,
-.navbar-fixed-bottom {
-  position: fixed;
-  right: 0;
-  left: 0;
-  z-index: 1030;
-  margin-bottom: 0;
-}
-
-.navbar-fixed-top .navbar-inner,
-.navbar-static-top .navbar-inner {
-  border-width: 0 0 1px;
-}
-
-.navbar-fixed-bottom .navbar-inner {
-  border-width: 1px 0 0;
-}
-
-.navbar-fixed-top .navbar-inner,
-.navbar-fixed-bottom .navbar-inner {
-  padding-right: 0;
-  padding-left: 0;
-  -webkit-border-radius: 0;
-     -moz-border-radius: 0;
-          border-radius: 0;
-}
-
-.navbar-static-top .container,
-.navbar-fixed-top .container,
-.navbar-fixed-bottom .container {
-  width: 940px;
-}
-
-.navbar-fixed-top {
-  top: 0;
-}
-
-.navbar-fixed-top .navbar-inner,
-.navbar-static-top .navbar-inner {
-  -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.1), 0 1px 10px rgba(0, 0, 0, 0.1);
-     -moz-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.1), 0 1px 10px rgba(0, 0, 0, 0.1);
-          box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.1), 0 1px 10px rgba(0, 0, 0, 0.1);
-}
-
-.navbar-fixed-bottom {
-  bottom: 0;
-}
-
-.navbar-fixed-bottom .navbar-inner {
-  -webkit-box-shadow: inset 0 1px 0 rgba(0, 0, 0, 0.1), 0 -1px 10px rgba(0, 0, 0, 0.1);
-     -moz-box-shadow: inset 0 1px 0 rgba(0, 0, 0, 0.1), 0 -1px 10px rgba(0, 0, 0, 0.1);
-          box-shadow: inset 0 1px 0 rgba(0, 0, 0, 0.1), 0 -1px 10px rgba(0, 0, 0, 0.1);
-}
-
-.navbar .nav {
-  position: relative;
-  left: 0;
-  display: block;
-  float: left;
-  margin: 0 10px 0 0;
-}
-
-.navbar .nav.pull-right {
-  float: right;
-  margin-right: 0;
-}
-
-.navbar .nav > li {
-  float: left;
-}
-
-.navbar .nav > li > a {
-  float: none;
-  padding: 10px 15px 10px;
-  color: #777777;
-  text-decoration: none;
-  text-shadow: 0 1px 0 #ffffff;
-}
-
-.navbar .nav .dropdown-toggle .caret {
-  margin-top: 8px;
-}
-
-.navbar .nav > li > a:focus,
-.navbar .nav > li > a:hover {
-  color: #333333;
-  text-decoration: none;
-  background-color: transparent;
-}
-
-.navbar .nav > .active > a,
-.navbar .nav > .active > a:hover,
-.navbar .nav > .active > a:focus {
-  color: #555555;
-  text-decoration: none;
-  background-color: #e5e5e5;
-  -webkit-box-shadow: inset 0 3px 8px rgba(0, 0, 0, 0.125);
-     -moz-box-shadow: inset 0 3px 8px rgba(0, 0, 0, 0.125);
-          box-shadow: inset 0 3px 8px rgba(0, 0, 0, 0.125);
-}
-
-.navbar .btn-navbar {
-  display: none;
-  float: right;
-  padding: 7px 10px;
-  margin-right: 5px;
-  margin-left: 5px;
-  color: #ffffff;
-  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
-  background-color: #ededed;
-  *background-color: #e5e5e5;
-  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#f2f2f2), to(#e5e5e5));
-  background-image: -webkit-linear-gradient(top, #f2f2f2, #e5e5e5);
-  background-image: -o-linear-gradient(top, #f2f2f2, #e5e5e5);
-  background-image: linear-gradient(to bottom, #f2f2f2, #e5e5e5);
-  background-image: -moz-linear-gradient(top, #f2f2f2, #e5e5e5);
-  background-repeat: repeat-x;
-  border-color: #e5e5e5 #e5e5e5 #bfbfbf;
-  border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
-  filter: progid:dximagetransform.microsoft.gradient(startColorstr='#fff2f2f2', endColorstr='#ffe5e5e5', GradientType=0);
-  filter: progid:dximagetransform.microsoft.gradient(enabled=false);
-  -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.075);
-     -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.075);
-          box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.075);
-}
-
-.navbar .btn-navbar:hover,
-.navbar .btn-navbar:active,
-.navbar .btn-navbar.active,
-.navbar .btn-navbar.disabled,
-.navbar .btn-navbar[disabled] {
-  color: #ffffff;
-  background-color: #e5e5e5;
-  *background-color: #d9d9d9;
-}
-
-.navbar .btn-navbar:active,
-.navbar .btn-navbar.active {
-  background-color: #cccccc \9;
-}
-
-.navbar .btn-navbar .icon-bar {
-  display: block;
-  width: 18px;
-  height: 2px;
-  background-color: #f5f5f5;
-  -webkit-border-radius: 1px;
-     -moz-border-radius: 1px;
-          border-radius: 1px;
-  -webkit-box-shadow: 0 1px 0 rgba(0, 0, 0, 0.25);
-     -moz-box-shadow: 0 1px 0 rgba(0, 0, 0, 0.25);
-          box-shadow: 0 1px 0 rgba(0, 0, 0, 0.25);
-}
-
-.btn-navbar .icon-bar + .icon-bar {
-  margin-top: 3px;
-}
-
-.navbar .nav > li > .dropdown-menu:before {
-  position: absolute;
-  top: -7px;
-  left: 9px;
-  display: inline-block;
-  border-right: 7px solid transparent;
-  border-bottom: 7px solid #ccc;
-  border-left: 7px solid transparent;
-  border-bottom-color: rgba(0, 0, 0, 0.2);
-  content: '';
-}
-
-.navbar .nav > li > .dropdown-menu:after {
-  position: absolute;
-  top: -6px;
-  left: 10px;
-  display: inline-block;
-  border-right: 6px solid transparent;
-  border-bottom: 6px solid #ffffff;
-  border-left: 6px solid transparent;
-  content: '';
-}
-
-.navbar-fixed-bottom .nav > li > .dropdown-menu:before {
-  top: auto;
-  bottom: -7px;
-  border-top: 7px solid #ccc;
-  border-bottom: 0;
-  border-top-color: rgba(0, 0, 0, 0.2);
-}
-
-.navbar-fixed-bottom .nav > li > .dropdown-menu:after {
-  top: auto;
-  bottom: -6px;
-  border-top: 6px solid #ffffff;
-  border-bottom: 0;
-}
-
-.navbar .nav li.dropdown.open > .dropdown-toggle,
-.navbar .nav li.dropdown.active > .dropdown-toggle,
-.navbar .nav li.dropdown.open.active > .dropdown-toggle {
-  color: #555555;
-  background-color: #e5e5e5;
-}
-
-.navbar .nav li.dropdown > .dropdown-toggle .caret {
-  border-top-color: #777777;
-  border-bottom-color: #777777;
-}
-
-.navbar .nav li.dropdown.open > .dropdown-toggle .caret,
-.navbar .nav li.dropdown.active > .dropdown-toggle .caret,
-.navbar .nav li.dropdown.open.active > .dropdown-toggle .caret {
-  border-top-color: #555555;
-  border-bottom-color: #555555;
-}
-
-.navbar .pull-right > li > .dropdown-menu,
-.navbar .nav > li > .dropdown-menu.pull-right {
-  right: 0;
-  left: auto;
-}
-
-.navbar .pull-right > li > .dropdown-menu:before,
-.navbar .nav > li > .dropdown-menu.pull-right:before {
-  right: 12px;
-  left: auto;
-}
-
-.navbar .pull-right > li > .dropdown-menu:after,
-.navbar .nav > li > .dropdown-menu.pull-right:after {
-  right: 13px;
-  left: auto;
-}
-
-.navbar .pull-right > li > .dropdown-menu .dropdown-menu,
-.navbar .nav > li > .dropdown-menu.pull-right .dropdown-menu {
-  right: 100%;
-  left: auto;
-  margin-right: -1px;
-  margin-left: 0;
-  -webkit-border-radius: 6px 0 6px 6px;
-     -moz-border-radius: 6px 0 6px 6px;
-          border-radius: 6px 0 6px 6px;
-}
-
-.navbar-inverse {
-  color: #999999;
-}
-
-.navbar-inverse .navbar-inner {
-  background-color: #1b1b1b;
-  background-image: -moz-linear-gradient(top, #222222, #111111);
-  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#222222), to(#111111));
-  background-image: -webkit-linear-gradient(top, #222222, #111111);
-  background-image: -o-linear-gradient(top, #222222, #111111);
-  background-image: linear-gradient(to bottom, #222222, #111111);
-  background-repeat: repeat-x;
-  border-color: #252525;
-  filter: progid:dximagetransform.microsoft.gradient(startColorstr='#ff222222', endColorstr='#ff111111', GradientType=0);
-}
-
-.navbar-inverse .brand,
-.navbar-inverse .nav > li > a {
-  color: #999999;
-  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
-}
-
-.navbar-inverse .brand:hover,
-.navbar-inverse .nav > li > a:hover {
-  color: #ffffff;
-}
-
-.navbar-inverse .nav > li > a:focus,
-.navbar-inverse .nav > li > a:hover {
-  color: #ffffff;
-  background-color: transparent;
-}
-
-.navbar-inverse .nav .active > a,
-.navbar-inverse .nav .active > a:hover,
-.navbar-inverse .nav .active > a:focus {
-  color: #ffffff;
-  background-color: #111111;
-}
-
-.navbar-inverse .navbar-link {
-  color: #999999;
-}
-
-.navbar-inverse .navbar-link:hover {
-  color: #ffffff;
-}
-
-.navbar-inverse .divider-vertical {
-  border-right-color: #222222;
-  border-left-color: #111111;
-}
-
-.navbar-inverse .nav li.dropdown.open > .dropdown-toggle,
-.navbar-inverse .nav li.dropdown.active > .dropdown-toggle,
-.navbar-inverse .nav li.dropdown.open.active > .dropdown-toggle {
-  color: #ffffff;
-  background-color: #111111;
-}
-
-.navbar-inverse .nav li.dropdown > .dropdown-toggle .caret {
-  border-top-color: #999999;
-  border-bottom-color: #999999;
-}
-
-.navbar-inverse .nav li.dropdown.open > .dropdown-toggle .caret,
-.navbar-inverse .nav li.dropdown.active > .dropdown-toggle .caret,
-.navbar-inverse .nav li.dropdown.open.active > .dropdown-toggle .caret {
-  border-top-color: #ffffff;
-  border-bottom-color: #ffffff;
-}
-
-.navbar-inverse .navbar-search .search-query {
-  color: #ffffff;
-  background-color: #515151;
-  border-color: #111111;
-  -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 0 rgba(255, 255, 255, 0.15);
-     -moz-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 0 rgba(255, 255, 255, 0.15);
-          box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 0 rgba(255, 255, 255, 0.15);
-  -webkit-transition: none;
-     -moz-transition: none;
-       -o-transition: none;
-          transition: none;
-}
-
-.navbar-inverse .navbar-search .search-query:-moz-placeholder {
-  color: #cccccc;
-}
-
-.navbar-inverse .navbar-search .search-query:-ms-input-placeholder {
-  color: #cccccc;
-}
-
-.navbar-inverse .navbar-search .search-query::-webkit-input-placeholder {
-  color: #cccccc;
-}
-
-.navbar-inverse .navbar-search .search-query:focus,
-.navbar-inverse .navbar-search .search-query.focused {
-  padding: 5px 15px;
-  color: #333333;
-  text-shadow: 0 1px 0 #ffffff;
-  background-color: #ffffff;
-  border: 0;
-  outline: 0;
-  -webkit-box-shadow: 0 0 3px rgba(0, 0, 0, 0.15);
-     -moz-box-shadow: 0 0 3px rgba(0, 0, 0, 0.15);
-          box-shadow: 0 0 3px rgba(0, 0, 0, 0.15);
-}
-
-.navbar-inverse .btn-navbar {
-  color: #ffffff;
-  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
-  background-color: #0e0e0e;
-  *background-color: #040404;
-  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#151515), to(#040404));
-  background-image: -webkit-linear-gradient(top, #151515, #040404);
-  background-image: -o-linear-gradient(top, #151515, #040404);
-  background-image: linear-gradient(to bottom, #151515, #040404);
-  background-image: -moz-linear-gradient(top, #151515, #040404);
-  background-repeat: repeat-x;
-  border-color: #040404 #040404 #000000;
-  border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
-  filter: progid:dximagetransform.microsoft.gradient(startColorstr='#ff151515', endColorstr='#ff040404', GradientType=0);
-  filter: progid:dximagetransform.microsoft.gradient(enabled=false);
-}
-
-.navbar-inverse .btn-navbar:hover,
-.navbar-inverse .btn-navbar:active,
-.navbar-inverse .btn-navbar.active,
-.navbar-inverse .btn-navbar.disabled,
-.navbar-inverse .btn-navbar[disabled] {
-  color: #ffffff;
-  background-color: #040404;
-  *background-color: #000000;
-}
-
-.navbar-inverse .btn-navbar:active,
-.navbar-inverse .btn-navbar.active {
-  background-color: #000000 \9;
-}
-
-.breadcrumb {
-  padding: 8px 15px;
-  margin: 0 0 20px;
-  list-style: none;
-  background-color: #f5f5f5;
-  -webkit-border-radius: 4px;
-     -moz-border-radius: 4px;
-          border-radius: 4px;
-}
-
-.breadcrumb li {
-  display: inline-block;
-  *display: inline;
-  text-shadow: 0 1px 0 #ffffff;
-  *zoom: 1;
-}
-
-.breadcrumb .divider {
-  padding: 0 5px;
-  color: #ccc;
-}
-
-.breadcrumb .active {
-  color: #999999;
-}
-
-.pagination {
-  height: 40px;
-  margin: 20px 0;
-}
-
-.pagination ul {
-  display: inline-block;
-  *display: inline;
-  margin-bottom: 0;
-  margin-left: 0;
-  -webkit-border-radius: 3px;
-     -moz-border-radius: 3px;
-          border-radius: 3px;
-  *zoom: 1;
-  -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
-     -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
-          box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
-}
-
-.pagination ul > li {
-  display: inline;
-}
-
-.pagination ul > li > a,
-.pagination ul > li > span {
-  float: left;
-  padding: 0 14px;
-  line-height: 38px;
-  text-decoration: none;
-  background-color: #ffffff;
-  border: 1px solid #dddddd;
-  border-left-width: 0;
-}
-
-.pagination ul > li > a:hover,
-.pagination ul > .active > a,
-.pagination ul > .active > span {
-  background-color: #f5f5f5;
-}
-
-.pagination ul > .active > a,
-.pagination ul > .active > span {
-  color: #999999;
-  cursor: default;
-}
-
-.pagination ul > .disabled > span,
-.pagination ul > .disabled > a,
-.pagination ul > .disabled > a:hover {
-  color: #999999;
-  cursor: default;
-  background-color: transparent;
-}
-
-.pagination ul > li:first-child > a,
-.pagination ul > li:first-child > span {
-  border-left-width: 1px;
-  -webkit-border-radius: 3px 0 0 3px;
-     -moz-border-radius: 3px 0 0 3px;
-          border-radius: 3px 0 0 3px;
-}
-
-.pagination ul > li:last-child > a,
-.pagination ul > li:last-child > span {
-  -webkit-border-radius: 0 3px 3px 0;
-     -moz-border-radius: 0 3px 3px 0;
-          border-radius: 0 3px 3px 0;
-}
-
-.pagination-centered {
-  text-align: center;
-}
-
-.pagination-right {
-  text-align: right;
-}
-
-.pager {
-  margin: 20px 0;
-  text-align: center;
-  list-style: none;
-  *zoom: 1;
-}
-
-.pager:before,
-.pager:after {
-  display: table;
-  line-height: 0;
-  content: "";
-}
-
-.pager:after {
-  clear: both;
-}
-
-.pager li {
-  display: inline;
-}
-
-.pager a,
-.pager span {
-  display: inline-block;
-  padding: 5px 14px;
-  background-color: #fff;
-  border: 1px solid #ddd;
-  -webkit-border-radius: 15px;
-     -moz-border-radius: 15px;
-          border-radius: 15px;
-}
-
-.pager a:hover {
-  text-decoration: none;
-  background-color: #f5f5f5;
-}
-
-.pager .next a,
-.pager .next span {
-  float: right;
-}
-
-.pager .previous a {
-  float: left;
-}
-
-.pager .disabled a,
-.pager .disabled a:hover,
-.pager .disabled span {
-  color: #999999;
-  cursor: default;
-  background-color: #fff;
-}
-
-.modal-open .modal .dropdown-menu {
-  z-index: 2050;
-}
-
-.modal-open .modal .dropdown.open {
-  *z-index: 2050;
-}
-
-.modal-open .modal .popover {
-  z-index: 2060;
-}
-
-.modal-open .modal .tooltip {
-  z-index: 2080;
-}
-
-.modal-backdrop {
-  position: fixed;
-  top: 0;
-  right: 0;
-  bottom: 0;
-  left: 0;
-  z-index: 1040;
-  background-color: #000000;
-}
-
-.modal-backdrop.fade {
-  opacity: 0;
-}
-
-.modal-backdrop,
-.modal-backdrop.fade.in {
-  opacity: 0.8;
-  filter: alpha(opacity=80);
-}
-
-.modal {
-  position: fixed;
-  top: 50%;
-  left: 50%;
-  z-index: 1050;
-  width: 560px;
-  margin: -250px 0 0 -280px;
-  overflow: auto;
-  background-color: #ffffff;
-  border: 1px solid #999;
-  border: 1px solid rgba(0, 0, 0, 0.3);
-  *border: 1px solid #999;
-  -webkit-border-radius: 6px;
-     -moz-border-radius: 6px;
-          border-radius: 6px;
-  -webkit-box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3);
-     -moz-box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3);
-          box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3);
-  -webkit-background-clip: padding-box;
-     -moz-background-clip: padding-box;
-          background-clip: padding-box;
-}
-
-.modal.fade {
-  top: -25%;
-  -webkit-transition: opacity 0.3s linear, top 0.3s ease-out;
-     -moz-transition: opacity 0.3s linear, top 0.3s ease-out;
-       -o-transition: opacity 0.3s linear, top 0.3s ease-out;
-          transition: opacity 0.3s linear, top 0.3s ease-out;
-}
-
-.modal.fade.in {
-  top: 50%;
-}
-
-.modal-header {
-  padding: 9px 15px;
-  border-bottom: 1px solid #eee;
-}
-
-.modal-header .close {
-  margin-top: 2px;
-}
-
-.modal-header h3 {
-  margin: 0;
-  line-height: 30px;
-}
-
-.modal-body {
-  max-height: 400px;
-  padding: 15px;
-  overflow-y: auto;
-}
-
-.modal-form {
-  margin-bottom: 0;
-}
-
-.modal-footer {
-  padding: 14px 15px 15px;
-  margin-bottom: 0;
-  text-align: right;
-  background-color: #f5f5f5;
-  border-top: 1px solid #ddd;
-  -webkit-border-radius: 0 0 6px 6px;
-     -moz-border-radius: 0 0 6px 6px;
-          border-radius: 0 0 6px 6px;
-  *zoom: 1;
-  -webkit-box-shadow: inset 0 1px 0 #ffffff;
-     -moz-box-shadow: inset 0 1px 0 #ffffff;
-          box-shadow: inset 0 1px 0 #ffffff;
-}
-
-.modal-footer:before,
-.modal-footer:after {
-  display: table;
-  line-height: 0;
-  content: "";
-}
-
-.modal-footer:after {
-  clear: both;
-}
-
-.modal-footer .btn + .btn {
-  margin-bottom: 0;
-  margin-left: 5px;
-}
-
-.modal-footer .btn-group .btn + .btn {
-  margin-left: -1px;
-}
-
-.tooltip {
-  position: absolute;
-  z-index: 1030;
-  display: block;
-  padding: 5px;
-  font-size: 11px;
-  opacity: 0;
-  filter: alpha(opacity=0);
-  visibility: visible;
-}
-
-.tooltip.in {
-  opacity: 0.8;
-  filter: alpha(opacity=80);
-}
-
-.tooltip.top {
-  margin-top: -3px;
-}
-
-.tooltip.right {
-  margin-left: 3px;
-}
-
-.tooltip.bottom {
-  margin-top: 3px;
-}
-
-.tooltip.left {
-  margin-left: -3px;
-}
-
-.tooltip-inner {
-  max-width: 200px;
-  padding: 3px 8px;
-  color: #ffffff;
-  text-align: center;
-  text-decoration: none;
-  background-color: #000000;
-  -webkit-border-radius: 4px;
-     -moz-border-radius: 4px;
-          border-radius: 4px;
-}
-
-.tooltip-arrow {
-  position: absolute;
-  width: 0;
-  height: 0;
-  border-color: transparent;
-  border-style: solid;
-}
-
-.tooltip.top .tooltip-arrow {
-  bottom: 0;
-  left: 50%;
-  margin-left: -5px;
-  border-top-color: #000000;
-  border-width: 5px 5px 0;
-}
-
-.tooltip.right .tooltip-arrow {
-  top: 50%;
-  left: 0;
-  margin-top: -5px;
-  border-right-color: #000000;
-  border-width: 5px 5px 5px 0;
-}
-
-.tooltip.left .tooltip-arrow {
-  top: 50%;
-  right: 0;
-  margin-top: -5px;
-  border-left-color: #000000;
-  border-width: 5px 0 5px 5px;
-}
-
-.tooltip.bottom .tooltip-arrow {
-  top: 0;
-  left: 50%;
-  margin-left: -5px;
-  border-bottom-color: #000000;
-  border-width: 0 5px 5px;
-}
-
-.popover {
-  position: absolute;
-  top: 0;
-  left: 0;
-  z-index: 1010;
-  display: none;
-  width: 236px;
-  padding: 1px;
-  background-color: #ffffff;
-  border: 1px solid #ccc;
-  border: 1px solid rgba(0, 0, 0, 0.2);
-  -webkit-border-radius: 6px;
-     -moz-border-radius: 6px;
-          border-radius: 6px;
-  -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
-     -moz-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
-          box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
-  -webkit-background-clip: padding-box;
-     -moz-background-clip: padding;
-          background-clip: padding-box;
-}
-
-.popover.top {
-  margin-bottom: 10px;
-}
-
-.popover.right {
-  margin-left: 10px;
-}
-
-.popover.bottom {
-  margin-top: 10px;
-}
-
-.popover.left {
-  margin-right: 10px;
-}
-
-.popover-title {
-  padding: 8px 14px;
-  margin: 0;
-  font-size: 14px;
-  font-weight: normal;
-  line-height: 18px;
-  background-color: #f7f7f7;
-  border-bottom: 1px solid #ebebeb;
-  -webkit-border-radius: 5px 5px 0 0;
-     -moz-border-radius: 5px 5px 0 0;
-          border-radius: 5px 5px 0 0;
-}
-
-.popover-content {
-  padding: 9px 14px;
-}
-
-.popover-content p,
-.popover-content ul,
-.popover-content ol {
-  margin-bottom: 0;
-}
-
-.popover .arrow,
-.popover .arrow:after {
-  position: absolute;
-  display: inline-block;
-  width: 0;
-  height: 0;
-  border-color: transparent;
-  border-style: solid;
-}
-
-.popover .arrow:after {
-  z-index: -1;
-  content: "";
-}
-
-.popover.top .arrow {
-  bottom: -10px;
-  left: 50%;
-  margin-left: -10px;
-  border-top-color: #ffffff;
-  border-width: 10px 10px 0;
-}
-
-.popover.top .arrow:after {
-  bottom: -1px;
-  left: -11px;
-  border-top-color: rgba(0, 0, 0, 0.25);
-  border-width: 11px 11px 0;
-}
-
-.popover.right .arrow {
-  top: 50%;
-  left: -10px;
-  margin-top: -10px;
-  border-right-color: #ffffff;
-  border-width: 10px 10px 10px 0;
-}
-
-.popover.right .arrow:after {
-  bottom: -11px;
-  left: -1px;
-  border-right-color: rgba(0, 0, 0, 0.25);
-  border-width: 11px 11px 11px 0;
-}
-
-.popover.bottom .arrow {
-  top: -10px;
-  left: 50%;
-  margin-left: -10px;
-  border-bottom-color: #ffffff;
-  border-width: 0 10px 10px;
-}
-
-.popover.bottom .arrow:after {
-  top: -1px;
-  left: -11px;
-  border-bottom-color: rgba(0, 0, 0, 0.25);
-  border-width: 0 11px 11px;
-}
-
-.popover.left .arrow {
-  top: 50%;
-  right: -10px;
-  margin-top: -10px;
-  border-left-color: #ffffff;
-  border-width: 10px 0 10px 10px;
-}
-
-.popover.left .arrow:after {
-  right: -1px;
-  bottom: -11px;
-  border-left-color: rgba(0, 0, 0, 0.25);
-  border-width: 11px 0 11px 11px;
-}
-
-.thumbnails {
-  margin-left: -20px;
-  list-style: none;
-  *zoom: 1;
-}
-
-.thumbnails:before,
-.thumbnails:after {
-  display: table;
-  line-height: 0;
-  content: "";
-}
-
-.thumbnails:after {
-  clear: both;
-}
-
-.row-fluid .thumbnails {
-  margin-left: 0;
-}
-
-.thumbnails > li {
-  float: left;
-  margin-bottom: 20px;
-  margin-left: 20px;
-}
-
-.thumbnail {
-  display: block;
-  padding: 4px;
-  line-height: 20px;
-  border: 1px solid #ddd;
-  -webkit-border-radius: 4px;
-     -moz-border-radius: 4px;
-          border-radius: 4px;
-  -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.055);
-     -moz-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.055);
-          box-shadow: 0 1px 3px rgba(0, 0, 0, 0.055);
-  -webkit-transition: all 0.2s ease-in-out;
-     -moz-transition: all 0.2s ease-in-out;
-       -o-transition: all 0.2s ease-in-out;
-          transition: all 0.2s ease-in-out;
-}
-
-a.thumbnail:hover {
-  border-color: #0088cc;
-  -webkit-box-shadow: 0 1px 4px rgba(0, 105, 214, 0.25);
-     -moz-box-shadow: 0 1px 4px rgba(0, 105, 214, 0.25);
-          box-shadow: 0 1px 4px rgba(0, 105, 214, 0.25);
-}
-
-.thumbnail > img {
-  display: block;
-  max-width: 100%;
-  margin-right: auto;
-  margin-left: auto;
-}
-
-.thumbnail .caption {
-  padding: 9px;
-  color: #555555;
-}
-
-.label,
-.badge {
-  font-size: 11.844px;
-  font-weight: bold;
-  line-height: 14px;
-  color: #ffffff;
-  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
-  white-space: nowrap;
-  vertical-align: baseline;
-  background-color: #999999;
-}
-
-.label {
-  padding: 1px 4px 2px;
-  -webkit-border-radius: 3px;
-     -moz-border-radius: 3px;
-          border-radius: 3px;
-}
-
-.badge {
-  padding: 1px 9px 2px;
-  -webkit-border-radius: 9px;
-     -moz-border-radius: 9px;
-          border-radius: 9px;
-}
-
-a.label:hover,
-a.badge:hover {
-  color: #ffffff;
-  text-decoration: none;
-  cursor: pointer;
-}
-
-.label-important,
-.badge-important {
-  background-color: #b94a48;
-}
-
-.label-important[href],
-.badge-important[href] {
-  background-color: #953b39;
-}
-
-.label-warning,
-.badge-warning {
-  background-color: #f89406;
-}
-
-.label-warning[href],
-.badge-warning[href] {
-  background-color: #c67605;
-}
-
-.label-success,
-.badge-success {
-  background-color: #468847;
-}
-
-.label-success[href],
-.badge-success[href] {
-  background-color: #356635;
-}
-
-.label-info,
-.badge-info {
-  background-color: #3a87ad;
-}
-
-.label-info[href],
-.badge-info[href] {
-  background-color: #2d6987;
-}
-
-.label-inverse,
-.badge-inverse {
-  background-color: #333333;
-}
-
-.label-inverse[href],
-.badge-inverse[href] {
-  background-color: #1a1a1a;
-}
-
-.btn .label,
-.btn .badge {
-  position: relative;
-  top: -1px;
-}
-
-.btn-mini .label,
-.btn-mini .badge {
-  top: 0;
-}
-
-@-webkit-keyframes progress-bar-stripes {
-  from {
-    background-position: 40px 0;
-  }
-  to {
-    background-position: 0 0;
-  }
-}
-
-@-moz-keyframes progress-bar-stripes {
-  from {
-    background-position: 40px 0;
-  }
-  to {
-    background-position: 0 0;
-  }
-}
-
-@-ms-keyframes progress-bar-stripes {
-  from {
-    background-position: 40px 0;
-  }
-  to {
-    background-position: 0 0;
-  }
-}
-
-@-o-keyframes progress-bar-stripes {
-  from {
-    background-position: 0 0;
-  }
-  to {
-    background-position: 40px 0;
-  }
-}
-
-@keyframes progress-bar-stripes {
-  from {
-    background-position: 40px 0;
-  }
-  to {
-    background-position: 0 0;
-  }
-}
-
-.progress {
-  height: 20px;
-  margin-bottom: 20px;
-  overflow: hidden;
-  background-color: #f7f7f7;
-  background-image: -moz-linear-gradient(top, #f5f5f5, #f9f9f9);
-  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#f5f5f5), to(#f9f9f9));
-  background-image: -webkit-linear-gradient(top, #f5f5f5, #f9f9f9);
-  background-image: -o-linear-gradient(top, #f5f5f5, #f9f9f9);
-  background-image: linear-gradient(to bottom, #f5f5f5, #f9f9f9);
-  background-repeat: repeat-x;
-  -webkit-border-radius: 4px;
-     -moz-border-radius: 4px;
-          border-radius: 4px;
-  filter: progid:dximagetransform.microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#fff9f9f9', GradientType=0);
-  -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
-     -moz-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
-          box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
-}
-
-.progress .bar {
-  float: left;
-  width: 0;
-  height: 100%;
-  font-size: 12px;
-  color: #ffffff;
-  text-align: center;
-  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
-  background-color: #0e90d2;
-  background-image: -moz-linear-gradient(top, #149bdf, #0480be);
-  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#149bdf), to(#0480be));
-  background-image: -webkit-linear-gradient(top, #149bdf, #0480be);
-  background-image: -o-linear-gradient(top, #149bdf, #0480be);
-  background-image: linear-gradient(to bottom, #149bdf, #0480be);
-  background-repeat: repeat-x;
-  filter: progid:dximagetransform.microsoft.gradient(startColorstr='#ff149bdf', endColorstr='#ff0480be', GradientType=0);
-  -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);
-     -moz-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);
-          box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);
-  -webkit-box-sizing: border-box;
-     -moz-box-sizing: border-box;
-          box-sizing: border-box;
-  -webkit-transition: width 0.6s ease;
-     -moz-transition: width 0.6s ease;
-       -o-transition: width 0.6s ease;
-          transition: width 0.6s ease;
-}
-
-.progress .bar + .bar {
-  -webkit-box-shadow: inset 1px 0 0 rgba(0, 0, 0, 0.15), inset 0 -1px 0 rgba(0, 0, 0, 0.15);
-     -moz-box-shadow: inset 1px 0 0 rgba(0, 0, 0, 0.15), inset 0 -1px 0 rgba(0, 0, 0, 0.15);
-          box-shadow: inset 1px 0 0 rgba(0, 0, 0, 0.15), inset 0 -1px 0 rgba(0, 0, 0, 0.15);
-}
-
-.progress-striped .bar {
-  background-color: #149bdf;
-  background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));
-  background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
-  background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
-  background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
-  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
-  -webkit-background-size: 40px 40px;
-     -moz-background-size: 40px 40px;
-       -o-background-size: 40px 40px;
-          background-size: 40px 40px;
-}
-
-.progress.active .bar {
-  -webkit-animation: progress-bar-stripes 2s linear infinite;
-     -moz-animation: progress-bar-stripes 2s linear infinite;
-      -ms-animation: progress-bar-stripes 2s linear infinite;
-       -o-animation: progress-bar-stripes 2s linear infinite;
-          animation: progress-bar-stripes 2s linear infinite;
-}
-
-.progress-danger .bar,
-.progress .bar-danger {
-  background-color: #dd514c;
-  background-image: -moz-linear-gradient(top, #ee5f5b, #c43c35);
-  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ee5f5b), to(#c43c35));
-  background-image: -webkit-linear-gradient(top, #ee5f5b, #c43c35);
-  background-image: -o-linear-gradient(top, #ee5f5b, #c43c35);
-  background-image: linear-gradient(to bottom, #ee5f5b, #c43c35);
-  background-repeat: repeat-x;
-  filter: progid:dximagetransform.microsoft.gradient(startColorstr='#ffee5f5b', endColorstr='#ffc43c35', GradientType=0);
-}
-
-.progress-danger.progress-striped .bar,
-.progress-striped .bar-danger {
-  background-color: #ee5f5b;
-  background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));
-  background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
-  background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
-  background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
-  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
-}
-
-.progress-success .bar,
-.progress .bar-success {
-  background-color: #5eb95e;
-  background-image: -moz-linear-gradient(top, #62c462, #57a957);
-  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#62c462), to(#57a957));
-  background-image: -webkit-linear-gradient(top, #62c462, #57a957);
-  background-image: -o-linear-gradient(top, #62c462, #57a957);
-  background-image: linear-gradient(to bottom, #62c462, #57a957);
-  background-repeat: repeat-x;
-  filter: progid:dximagetransform.microsoft.gradient(startColorstr='#ff62c462', endColorstr='#ff57a957', GradientType=0);
-}
-
-.progress-success.progress-striped .bar,
-.progress-striped .bar-success {
-  background-color: #62c462;
-  background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));
-  background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
-  background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
-  background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
-  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
-}
-
-.progress-info .bar,
-.progress .bar-info {
-  background-color: #4bb1cf;
-  background-image: -moz-linear-gradient(top, #5bc0de, #339bb9);
-  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#5bc0de), to(#339bb9));
-  background-image: -webkit-linear-gradient(top, #5bc0de, #339bb9);
-  background-image: -o-linear-gradient(top, #5bc0de, #339bb9);
-  background-image: linear-gradient(to bottom, #5bc0de, #339bb9);
-  background-repeat: repeat-x;
-  filter: progid:dximagetransform.microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff339bb9', GradientType=0);
-}
-
-.progress-info.progress-striped .bar,
-.progress-striped .bar-info {
-  background-color: #5bc0de;
-  background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));
-  background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
-  background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
-  background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
-  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
-}
-
-.progress-warning .bar,
-.progress .bar-warning {
-  background-color: #faa732;
-  background-image: -moz-linear-gradient(top, #fbb450, #f89406);
-  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#fbb450), to(#f89406));
-  background-image: -webkit-linear-gradient(top, #fbb450, #f89406);
-  background-image: -o-linear-gradient(top, #fbb450, #f89406);
-  background-image: linear-gradient(to bottom, #fbb450, #f89406);
-  background-repeat: repeat-x;
-  filter: progid:dximagetransform.microsoft.gradient(startColorstr='#fffbb450', endColorstr='#fff89406', GradientType=0);
-}
-
-.progress-warning.progress-striped .bar,
-.progress-striped .bar-warning {
-  background-color: #fbb450;
-  background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));
-  background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
-  background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
-  background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
-  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
-}
-
-.accordion {
-  margin-bottom: 20px;
-}
-
-.accordion-group {
-  margin-bottom: 2px;
-  border: 1px solid #e5e5e5;
-  -webkit-border-radius: 4px;
-     -moz-border-radius: 4px;
-          border-radius: 4px;
-}
-
-.accordion-heading {
-  border-bottom: 0;
-}
-
-.accordion-heading .accordion-toggle {
-  display: block;
-  padding: 8px 15px;
-}
-
-.accordion-toggle {
-  cursor: pointer;
-}
-
-.accordion-inner {
-  padding: 9px 15px;
-  border-top: 1px solid #e5e5e5;
-}
-
-.carousel {
-  position: relative;
-  margin-bottom: 20px;
-  line-height: 1;
-}
-
-.carousel-inner {
-  position: relative;
-  width: 100%;
-  overflow: hidden;
-}
-
-.carousel .item {
-  position: relative;
-  display: none;
-  -webkit-transition: 0.6s ease-in-out left;
-     -moz-transition: 0.6s ease-in-out left;
-       -o-transition: 0.6s ease-in-out left;
-          transition: 0.6s ease-in-out left;
-}
-
-.carousel .item > img {
-  display: block;
-  line-height: 1;
-}
-
-.carousel .active,
-.carousel .next,
-.carousel .prev {
-  display: block;
-}
-
-.carousel .active {
-  left: 0;
-}
-
-.carousel .next,
-.carousel .prev {
-  position: absolute;
-  top: 0;
-  width: 100%;
-}
-
-.carousel .next {
-  left: 100%;
-}
-
-.carousel .prev {
-  left: -100%;
-}
-
-.carousel .next.left,
-.carousel .prev.right {
-  left: 0;
-}
-
-.carousel .active.left {
-  left: -100%;
-}
-
-.carousel .active.right {
-  left: 100%;
-}
-
-.carousel-control {
-  position: absolute;
-  top: 40%;
-  left: 15px;
-  width: 40px;
-  height: 40px;
-  margin-top: -20px;
-  font-size: 60px;
-  font-weight: 100;
-  line-height: 30px;
-  color: #ffffff;
-  text-align: center;
-  background: #222222;
-  border: 3px solid #ffffff;
-  -webkit-border-radius: 23px;
-     -moz-border-radius: 23px;
-          border-radius: 23px;
-  opacity: 0.5;
-  filter: alpha(opacity=50);
-}
-
-.carousel-control.right {
-  right: 15px;
-  left: auto;
-}
-
-.carousel-control:hover {
-  color: #ffffff;
-  text-decoration: none;
-  opacity: 0.9;
-  filter: alpha(opacity=90);
-}
-
-.carousel-caption {
-  position: absolute;
-  right: 0;
-  bottom: 0;
-  left: 0;
-  padding: 15px;
-  background: #333333;
-  background: rgba(0, 0, 0, 0.75);
-}
-
-.carousel-caption h4,
-.carousel-caption p {
-  line-height: 20px;
-  color: #ffffff;
-}
-
-.carousel-caption h4 {
-  margin: 0 0 5px;
-}
-
-.carousel-caption p {
-  margin-bottom: 0;
-}
-
-.hero-unit {
-  padding: 60px;
-  margin-bottom: 30px;
-  background-color: #eeeeee;
-  -webkit-border-radius: 6px;
-     -moz-border-radius: 6px;
-          border-radius: 6px;
-}
-
-.hero-unit h1 {
-  margin-bottom: 0;
-  font-size: 60px;
-  line-height: 1;
-  letter-spacing: -1px;
-  color: inherit;
-}
-
-.hero-unit p {
-  font-size: 18px;
-  font-weight: 200;
-  line-height: 30px;
-  color: inherit;
-}
-
-.pull-right {
-  float: right;
-}
-
-.pull-left {
-  float: left;
-}
-
-.hide {
-  display: none;
-}
-
-.show {
-  display: block;
-}
-
-.invisible {
-  visibility: hidden;
-}
-
-.affix {
-  position: fixed;
-}
diff --git a/wqflask/wqflask/static/packages/bootstrap-old/css/bootstrap.min.css b/wqflask/wqflask/static/packages/bootstrap-old/css/bootstrap.min.css
deleted file mode 100755
index 31d8b960..00000000
--- a/wqflask/wqflask/static/packages/bootstrap-old/css/bootstrap.min.css
+++ /dev/null
@@ -1,9 +0,0 @@
-/*!
- * Bootstrap v2.1.1
- *
- * Copyright 2012 Twitter, Inc
- * Licensed under the Apache License v2.0
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Designed and built with all the love in the world @twitter by @mdo and @fat.
- */article,aside,details,figcaption,figure,footer,header,hgroup,nav,section{display:block}audio,canvas,video{display:inline-block;*display:inline;*zoom:1}audio:not([controls]){display:none}html{font-size:100%;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}a:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}a:hover,a:active{outline:0}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}img{width:auto\9;height:auto;max-width:100%;vertical-align:middle;border:0;-ms-interpolation-mode:bicubic}#map_canvas img{max-width:none}button,input,select,textarea{margin:0;font-size:100%;vertical-align:middle}button,input{*overflow:visible;line-height:normal}button::-moz-focus-inner,input::-moz-focus-inner{padding:0;border:0}button,input[type="button"],input[type="reset"],input[type="submit"]{cursor:pointer;-webkit-appearance:button}input[type="search"]{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;-webkit-appearance:textfield}input[type="search"]::-webkit-search-decoration,input[type="search"]::-webkit-search-cancel-button{-webkit-appearance:none}textarea{overflow:auto;vertical-align:top}.clearfix{*zoom:1}.clearfix:before,.clearfix:after{display:table;line-height:0;content:""}.clearfix:after{clear:both}.hide-text{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.input-block-level{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}body{margin:0;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:20px;color:#333;background-color:#fff}a{color:#08c;text-decoration:none}a:hover{color:#005580;text-decoration:underline}.img-rounded{-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.img-polaroid{padding:4px;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.2);-webkit-box-shadow:0 1px 3px rgba(0,0,0,0.1);-moz-box-shadow:0 1px 3px rgba(0,0,0,0.1);box-shadow:0 1px 3px rgba(0,0,0,0.1)}.img-circle{-webkit-border-radius:500px;-moz-border-radius:500px;border-radius:500px}.row{margin-left:-20px;*zoom:1}.row:before,.row:after{display:table;line-height:0;content:""}.row:after{clear:both}[class*="span"]{float:left;min-height:1px;margin-left:20px}.container,.navbar-static-top .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:940px}.span12{width:940px}.span11{width:860px}.span10{width:780px}.span9{width:700px}.span8{width:620px}.span7{width:540px}.span6{width:460px}.span5{width:380px}.span4{width:300px}.span3{width:220px}.span2{width:140px}.span1{width:60px}.offset12{margin-left:980px}.offset11{margin-left:900px}.offset10{margin-left:820px}.offset9{margin-left:740px}.offset8{margin-left:660px}.offset7{margin-left:580px}.offset6{margin-left:500px}.offset5{margin-left:420px}.offset4{margin-left:340px}.offset3{margin-left:260px}.offset2{margin-left:180px}.offset1{margin-left:100px}.row-fluid{width:100%;*zoom:1}.row-fluid:before,.row-fluid:after{display:table;line-height:0;content:""}.row-fluid:after{clear:both}.row-fluid [class*="span"]{display:block;float:left;width:100%;min-height:30px;margin-left:2.127659574468085%;*margin-left:2.074468085106383%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.row-fluid [class*="span"]:first-child{margin-left:0}.row-fluid .span12{width:100%;*width:99.94680851063829%}.row-fluid .span11{width:91.48936170212765%;*width:91.43617021276594%}.row-fluid .span10{width:82.97872340425532%;*width:82.92553191489361%}.row-fluid .span9{width:74.46808510638297%;*width:74.41489361702126%}.row-fluid .span8{width:65.95744680851064%;*width:65.90425531914893%}.row-fluid .span7{width:57.44680851063829%;*width:57.39361702127659%}.row-fluid .span6{width:48.93617021276595%;*width:48.88297872340425%}.row-fluid .span5{width:40.42553191489362%;*width:40.37234042553192%}.row-fluid .span4{width:31.914893617021278%;*width:31.861702127659576%}.row-fluid .span3{width:23.404255319148934%;*width:23.351063829787233%}.row-fluid .span2{width:14.893617021276595%;*width:14.840425531914894%}.row-fluid .span1{width:6.382978723404255%;*width:6.329787234042553%}.row-fluid .offset12{margin-left:104.25531914893617%;*margin-left:104.14893617021275%}.row-fluid .offset12:first-child{margin-left:102.12765957446808%;*margin-left:102.02127659574467%}.row-fluid .offset11{margin-left:95.74468085106382%;*margin-left:95.6382978723404%}.row-fluid .offset11:first-child{margin-left:93.61702127659574%;*margin-left:93.51063829787232%}.row-fluid .offset10{margin-left:87.23404255319149%;*margin-left:87.12765957446807%}.row-fluid .offset10:first-child{margin-left:85.1063829787234%;*margin-left:84.99999999999999%}.row-fluid .offset9{margin-left:78.72340425531914%;*margin-left:78.61702127659572%}.row-fluid .offset9:first-child{margin-left:76.59574468085106%;*margin-left:76.48936170212764%}.row-fluid .offset8{margin-left:70.2127659574468%;*margin-left:70.10638297872339%}.row-fluid .offset8:first-child{margin-left:68.08510638297872%;*margin-left:67.9787234042553%}.row-fluid .offset7{margin-left:61.70212765957446%;*margin-left:61.59574468085106%}.row-fluid .offset7:first-child{margin-left:59.574468085106375%;*margin-left:59.46808510638297%}.row-fluid .offset6{margin-left:53.191489361702125%;*margin-left:53.085106382978715%}.row-fluid .offset6:first-child{margin-left:51.063829787234035%;*margin-left:50.95744680851063%}.row-fluid .offset5{margin-left:44.68085106382979%;*margin-left:44.57446808510638%}.row-fluid .offset5:first-child{margin-left:42.5531914893617%;*margin-left:42.4468085106383%}.row-fluid .offset4{margin-left:36.170212765957444%;*margin-left:36.06382978723405%}.row-fluid .offset4:first-child{margin-left:34.04255319148936%;*margin-left:33.93617021276596%}.row-fluid .offset3{margin-left:27.659574468085104%;*margin-left:27.5531914893617%}.row-fluid .offset3:first-child{margin-left:25.53191489361702%;*margin-left:25.425531914893618%}.row-fluid .offset2{margin-left:19.148936170212764%;*margin-left:19.04255319148936%}.row-fluid .offset2:first-child{margin-left:17.02127659574468%;*margin-left:16.914893617021278%}.row-fluid .offset1{margin-left:10.638297872340425%;*margin-left:10.53191489361702%}.row-fluid .offset1:first-child{margin-left:8.51063829787234%;*margin-left:8.404255319148938%}[class*="span"].hide,.row-fluid [class*="span"].hide{display:none}[class*="span"].pull-right,.row-fluid [class*="span"].pull-right{float:right}.container{margin-right:auto;margin-left:auto;*zoom:1}.container:before,.container:after{display:table;line-height:0;content:""}.container:after{clear:both}.container-fluid{padding-right:20px;padding-left:20px;*zoom:1}.container-fluid:before,.container-fluid:after{display:table;line-height:0;content:""}.container-fluid:after{clear:both}p{margin:0 0 10px}.lead{margin-bottom:20px;font-size:21px;font-weight:200;line-height:30px}small{font-size:85%}strong{font-weight:bold}em{font-style:italic}cite{font-style:normal}.muted{color:#999}.text-warning{color:#c09853}.text-error{color:#b94a48}.text-info{color:#3a87ad}.text-success{color:#468847}h1,h2,h3,h4,h5,h6{margin:10px 0;font-family:inherit;font-weight:bold;line-height:1;color:inherit;text-rendering:optimizelegibility}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small{font-weight:normal;line-height:1;color:#999}h1{font-size:36px;line-height:40px}h2{font-size:30px;line-height:40px}h3{font-size:24px;line-height:40px}h4{font-size:18px;line-height:20px}h5{font-size:14px;line-height:20px}h6{font-size:12px;line-height:20px}h1 small{font-size:24px}h2 small{font-size:18px}h3 small{font-size:14px}h4 small{font-size:14px}.page-header{padding-bottom:9px;margin:20px 0 30px;border-bottom:1px solid #eee}ul,ol{padding:0;margin:0 0 10px 25px}ul ul,ul ol,ol ol,ol ul{margin-bottom:0}li{line-height:20px}ul.unstyled,ol.unstyled{margin-left:0;list-style:none}dl{margin-bottom:20px}dt,dd{line-height:20px}dt{font-weight:bold}dd{margin-left:10px}.dl-horizontal{*zoom:1}.dl-horizontal:before,.dl-horizontal:after{display:table;line-height:0;content:""}.dl-horizontal:after{clear:both}.dl-horizontal dt{float:left;width:160px;overflow:hidden;clear:left;text-align:right;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}hr{margin:20px 0;border:0;border-top:1px solid #eee;border-bottom:1px solid #fff}abbr[title]{cursor:help;border-bottom:1px dotted #999}abbr.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:0 0 0 15px;margin:0 0 20px;border-left:5px solid #eee}blockquote p{margin-bottom:0;font-size:16px;font-weight:300;line-height:25px}blockquote small{display:block;line-height:20px;color:#999}blockquote small:before{content:'\2014 \00A0'}blockquote.pull-right{float:right;padding-right:15px;padding-left:0;border-right:5px solid #eee;border-left:0}blockquote.pull-right p,blockquote.pull-right small{text-align:right}blockquote.pull-right small:before{content:''}blockquote.pull-right small:after{content:'\00A0 \2014'}q:before,q:after,blockquote:before,blockquote:after{content:""}address{display:block;margin-bottom:20px;font-style:normal;line-height:20px}code,pre{padding:0 3px 2px;font-family:Monaco,Menlo,Consolas,"Courier New",monospace;font-size:12px;color:#333;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}code{padding:2px 4px;color:#d14;background-color:#f7f7f9;border:1px solid #e1e1e8}pre{display:block;padding:9.5px;margin:0 0 10px;font-size:13px;line-height:20px;word-break:break-all;word-wrap:break-word;white-space:pre;white-space:pre-wrap;background-color:#f5f5f5;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.15);-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}pre.prettyprint{margin-bottom:20px}pre code{padding:0;color:inherit;background-color:transparent;border:0}.pre-scrollable{max-height:340px;overflow-y:scroll}form{margin:0 0 20px}fieldset{padding:0;margin:0;border:0}legend{display:block;width:100%;padding:0;margin-bottom:20px;font-size:21px;line-height:40px;color:#333;border:0;border-bottom:1px solid #e5e5e5}legend small{font-size:15px;color:#999}label,input,button,select,textarea{font-size:14px;font-weight:normal;line-height:20px}input,button,select,textarea{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif}label{display:block;margin-bottom:5px}select,textarea,input[type="text"],input[type="password"],input[type="datetime"],input[type="datetime-local"],input[type="date"],input[type="month"],input[type="time"],input[type="week"],input[type="number"],input[type="email"],input[type="url"],input[type="search"],input[type="tel"],input[type="color"],.uneditable-input{display:inline-block;height:20px;padding:4px 6px;margin-bottom:9px;font-size:14px;line-height:20px;color:#555;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}input,textarea,.uneditable-input{width:206px}textarea{height:auto}textarea,input[type="text"],input[type="password"],input[type="datetime"],input[type="datetime-local"],input[type="date"],input[type="month"],input[type="time"],input[type="week"],input[type="number"],input[type="email"],input[type="url"],input[type="search"],input[type="tel"],input[type="color"],.uneditable-input{background-color:#fff;border:1px solid #ccc;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-webkit-transition:border linear .2s,box-shadow linear .2s;-moz-transition:border linear .2s,box-shadow linear .2s;-o-transition:border linear .2s,box-shadow linear .2s;transition:border linear .2s,box-shadow linear .2s}textarea:focus,input[type="text"]:focus,input[type="password"]:focus,input[type="datetime"]:focus,input[type="datetime-local"]:focus,input[type="date"]:focus,input[type="month"]:focus,input[type="time"]:focus,input[type="week"]:focus,input[type="number"]:focus,input[type="email"]:focus,input[type="url"]:focus,input[type="search"]:focus,input[type="tel"]:focus,input[type="color"]:focus,.uneditable-input:focus{border-color:rgba(82,168,236,0.8);outline:0;outline:thin dotted \9;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(82,168,236,0.6);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(82,168,236,0.6);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(82,168,236,0.6)}input[type="radio"],input[type="checkbox"]{margin:4px 0 0;margin-top:1px \9;*margin-top:0;line-height:normal;cursor:pointer}input[type="file"],input[type="image"],input[type="submit"],input[type="reset"],input[type="button"],input[type="radio"],input[type="checkbox"]{width:auto}select,input[type="file"]{height:30px;*margin-top:4px;line-height:30px}select{width:220px;background-color:#fff;border:1px solid #ccc}select[multiple],select[size]{height:auto}select:focus,input[type="file"]:focus,input[type="radio"]:focus,input[type="checkbox"]:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.uneditable-input,.uneditable-textarea{color:#999;cursor:not-allowed;background-color:#fcfcfc;border-color:#ccc;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.025);-moz-box-shadow:inset 0 1px 2px rgba(0,0,0,0.025);box-shadow:inset 0 1px 2px rgba(0,0,0,0.025)}.uneditable-input{overflow:hidden;white-space:nowrap}.uneditable-textarea{width:auto;height:auto}input:-moz-placeholder,textarea:-moz-placeholder{color:#999}input:-ms-input-placeholder,textarea:-ms-input-placeholder{color:#999}input::-webkit-input-placeholder,textarea::-webkit-input-placeholder{color:#999}.radio,.checkbox{min-height:18px;padding-left:18px}.radio input[type="radio"],.checkbox input[type="checkbox"]{float:left;margin-left:-18px}.controls>.radio:first-child,.controls>.checkbox:first-child{padding-top:5px}.radio.inline,.checkbox.inline{display:inline-block;padding-top:5px;margin-bottom:0;vertical-align:middle}.radio.inline+.radio.inline,.checkbox.inline+.checkbox.inline{margin-left:10px}.input-mini{width:60px}.input-small{width:90px}.input-medium{width:150px}.input-large{width:210px}.input-xlarge{width:270px}.input-xxlarge{width:530px}input[class*="span"],select[class*="span"],textarea[class*="span"],.uneditable-input[class*="span"],.row-fluid input[class*="span"],.row-fluid select[class*="span"],.row-fluid textarea[class*="span"],.row-fluid .uneditable-input[class*="span"]{float:none;margin-left:0}.input-append input[class*="span"],.input-append .uneditable-input[class*="span"],.input-prepend input[class*="span"],.input-prepend .uneditable-input[class*="span"],.row-fluid input[class*="span"],.row-fluid select[class*="span"],.row-fluid textarea[class*="span"],.row-fluid .uneditable-input[class*="span"],.row-fluid .input-prepend [class*="span"],.row-fluid .input-append [class*="span"]{display:inline-block}input,textarea,.uneditable-input{margin-left:0}.controls-row [class*="span"]+[class*="span"]{margin-left:20px}input.span12,textarea.span12,.uneditable-input.span12{width:926px}input.span11,textarea.span11,.uneditable-input.span11{width:846px}input.span10,textarea.span10,.uneditable-input.span10{width:766px}input.span9,textarea.span9,.uneditable-input.span9{width:686px}input.span8,textarea.span8,.uneditable-input.span8{width:606px}input.span7,textarea.span7,.uneditable-input.span7{width:526px}input.span6,textarea.span6,.uneditable-input.span6{width:446px}input.span5,textarea.span5,.uneditable-input.span5{width:366px}input.span4,textarea.span4,.uneditable-input.span4{width:286px}input.span3,textarea.span3,.uneditable-input.span3{width:206px}input.span2,textarea.span2,.uneditable-input.span2{width:126px}input.span1,textarea.span1,.uneditable-input.span1{width:46px}.controls-row{*zoom:1}.controls-row:before,.controls-row:after{display:table;line-height:0;content:""}.controls-row:after{clear:both}.controls-row [class*="span"]{float:left}input[disabled],select[disabled],textarea[disabled],input[readonly],select[readonly],textarea[readonly]{cursor:not-allowed;background-color:#eee}input[type="radio"][disabled],input[type="checkbox"][disabled],input[type="radio"][readonly],input[type="checkbox"][readonly]{background-color:transparent}.control-group.warning>label,.control-group.warning .help-block,.control-group.warning .help-inline{color:#c09853}.control-group.warning .checkbox,.control-group.warning .radio,.control-group.warning input,.control-group.warning select,.control-group.warning textarea{color:#c09853}.control-group.warning input,.control-group.warning select,.control-group.warning textarea{border-color:#c09853;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.control-group.warning input:focus,.control-group.warning select:focus,.control-group.warning textarea:focus{border-color:#a47e3c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #dbc59e;-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #dbc59e;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #dbc59e}.control-group.warning .input-prepend .add-on,.control-group.warning .input-append .add-on{color:#c09853;background-color:#fcf8e3;border-color:#c09853}.control-group.error>label,.control-group.error .help-block,.control-group.error .help-inline{color:#b94a48}.control-group.error .checkbox,.control-group.error .radio,.control-group.error input,.control-group.error select,.control-group.error textarea{color:#b94a48}.control-group.error input,.control-group.error select,.control-group.error textarea{border-color:#b94a48;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.control-group.error input:focus,.control-group.error select:focus,.control-group.error textarea:focus{border-color:#953b39;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #d59392;-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #d59392;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #d59392}.control-group.error .input-prepend .add-on,.control-group.error .input-append .add-on{color:#b94a48;background-color:#f2dede;border-color:#b94a48}.control-group.success>label,.control-group.success .help-block,.control-group.success .help-inline{color:#468847}.control-group.success .checkbox,.control-group.success .radio,.control-group.success input,.control-group.success select,.control-group.success textarea{color:#468847}.control-group.success input,.control-group.success select,.control-group.success textarea{border-color:#468847;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.control-group.success input:focus,.control-group.success select:focus,.control-group.success textarea:focus{border-color:#356635;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7aba7b;-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7aba7b;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7aba7b}.control-group.success .input-prepend .add-on,.control-group.success .input-append .add-on{color:#468847;background-color:#dff0d8;border-color:#468847}.control-group.info>label,.control-group.info .help-block,.control-group.info .help-inline{color:#3a87ad}.control-group.info .checkbox,.control-group.info .radio,.control-group.info input,.control-group.info select,.control-group.info textarea{color:#3a87ad}.control-group.info input,.control-group.info select,.control-group.info textarea{border-color:#3a87ad;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.control-group.info input:focus,.control-group.info select:focus,.control-group.info textarea:focus{border-color:#2d6987;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7ab5d3;-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7ab5d3;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7ab5d3}.control-group.info .input-prepend .add-on,.control-group.info .input-append .add-on{color:#3a87ad;background-color:#d9edf7;border-color:#3a87ad}input:focus:required:invalid,textarea:focus:required:invalid,select:focus:required:invalid{color:#b94a48;border-color:#ee5f5b}input:focus:required:invalid:focus,textarea:focus:required:invalid:focus,select:focus:required:invalid:focus{border-color:#e9322d;-webkit-box-shadow:0 0 6px #f8b9b7;-moz-box-shadow:0 0 6px #f8b9b7;box-shadow:0 0 6px #f8b9b7}.form-actions{padding:19px 20px 20px;margin-top:20px;margin-bottom:20px;background-color:#f5f5f5;border-top:1px solid #e5e5e5;*zoom:1}.form-actions:before,.form-actions:after{display:table;line-height:0;content:""}.form-actions:after{clear:both}.help-block,.help-inline{color:#595959}.help-block{display:block;margin-bottom:10px}.help-inline{display:inline-block;*display:inline;padding-left:5px;vertical-align:middle;*zoom:1}.input-append,.input-prepend{margin-bottom:5px;font-size:0;white-space:nowrap}.input-append input,.input-prepend input,.input-append select,.input-prepend select,.input-append .uneditable-input,.input-prepend .uneditable-input{position:relative;margin-bottom:0;*margin-left:0;font-size:14px;vertical-align:top;-webkit-border-radius:0 3px 3px 0;-moz-border-radius:0 3px 3px 0;border-radius:0 3px 3px 0}.input-append input:focus,.input-prepend input:focus,.input-append select:focus,.input-prepend select:focus,.input-append .uneditable-input:focus,.input-prepend .uneditable-input:focus{z-index:2}.input-append .add-on,.input-prepend .add-on{display:inline-block;width:auto;height:20px;min-width:16px;padding:4px 5px;font-size:14px;font-weight:normal;line-height:20px;text-align:center;text-shadow:0 1px 0 #fff;background-color:#eee;border:1px solid #ccc}.input-append .add-on,.input-prepend .add-on,.input-append .btn,.input-prepend .btn{vertical-align:top;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.input-append .active,.input-prepend .active{background-color:#a9dba9;border-color:#46a546}.input-prepend .add-on,.input-prepend .btn{margin-right:-1px}.input-prepend .add-on:first-child,.input-prepend .btn:first-child{-webkit-border-radius:3px 0 0 3px;-moz-border-radius:3px 0 0 3px;border-radius:3px 0 0 3px}.input-append input,.input-append select,.input-append .uneditable-input{-webkit-border-radius:3px 0 0 3px;-moz-border-radius:3px 0 0 3px;border-radius:3px 0 0 3px}.input-append .add-on,.input-append .btn{margin-left:-1px}.input-append .add-on:last-child,.input-append .btn:last-child{-webkit-border-radius:0 3px 3px 0;-moz-border-radius:0 3px 3px 0;border-radius:0 3px 3px 0}.input-prepend.input-append input,.input-prepend.input-append select,.input-prepend.input-append .uneditable-input{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.input-prepend.input-append .add-on:first-child,.input-prepend.input-append .btn:first-child{margin-right:-1px;-webkit-border-radius:3px 0 0 3px;-moz-border-radius:3px 0 0 3px;border-radius:3px 0 0 3px}.input-prepend.input-append .add-on:last-child,.input-prepend.input-append .btn:last-child{margin-left:-1px;-webkit-border-radius:0 3px 3px 0;-moz-border-radius:0 3px 3px 0;border-radius:0 3px 3px 0}input.search-query{padding-right:14px;padding-right:4px \9;padding-left:14px;padding-left:4px \9;margin-bottom:0;-webkit-border-radius:15px;-moz-border-radius:15px;border-radius:15px}.form-search .input-append .search-query,.form-search .input-prepend .search-query{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.form-search .input-append .search-query{-webkit-border-radius:14px 0 0 14px;-moz-border-radius:14px 0 0 14px;border-radius:14px 0 0 14px}.form-search .input-append .btn{-webkit-border-radius:0 14px 14px 0;-moz-border-radius:0 14px 14px 0;border-radius:0 14px 14px 0}.form-search .input-prepend .search-query{-webkit-border-radius:0 14px 14px 0;-moz-border-radius:0 14px 14px 0;border-radius:0 14px 14px 0}.form-search .input-prepend .btn{-webkit-border-radius:14px 0 0 14px;-moz-border-radius:14px 0 0 14px;border-radius:14px 0 0 14px}.form-search input,.form-inline input,.form-horizontal input,.form-search textarea,.form-inline textarea,.form-horizontal textarea,.form-search select,.form-inline select,.form-horizontal select,.form-search .help-inline,.form-inline .help-inline,.form-horizontal .help-inline,.form-search .uneditable-input,.form-inline .uneditable-input,.form-horizontal .uneditable-input,.form-search .input-prepend,.form-inline .input-prepend,.form-horizontal .input-prepend,.form-search .input-append,.form-inline .input-append,.form-horizontal .input-append{display:inline-block;*display:inline;margin-bottom:0;vertical-align:middle;*zoom:1}.form-search .hide,.form-inline .hide,.form-horizontal .hide{display:none}.form-search label,.form-inline label,.form-search .btn-group,.form-inline .btn-group{display:inline-block}.form-search .input-append,.form-inline .input-append,.form-search .input-prepend,.form-inline .input-prepend{margin-bottom:0}.form-search .radio,.form-search .checkbox,.form-inline .radio,.form-inline .checkbox{padding-left:0;margin-bottom:0;vertical-align:middle}.form-search .radio input[type="radio"],.form-search .checkbox input[type="checkbox"],.form-inline .radio input[type="radio"],.form-inline .checkbox input[type="checkbox"]{float:left;margin-right:3px;margin-left:0}.control-group{margin-bottom:10px}legend+.control-group{margin-top:20px;-webkit-margin-top-collapse:separate}.form-horizontal .control-group{margin-bottom:20px;*zoom:1}.form-horizontal .control-group:before,.form-horizontal .control-group:after{display:table;line-height:0;content:""}.form-horizontal .control-group:after{clear:both}.form-horizontal .control-label{float:left;width:160px;padding-top:5px;text-align:right}.form-horizontal .controls{*display:inline-block;*padding-left:20px;margin-left:180px;*margin-left:0}.form-horizontal .controls:first-child{*padding-left:180px}.form-horizontal .help-block{margin-bottom:0}.form-horizontal input+.help-block,.form-horizontal select+.help-block,.form-horizontal textarea+.help-block{margin-top:10px}.form-horizontal .form-actions{padding-left:180px}table{max-width:100%;background-color:transparent;border-collapse:collapse;border-spacing:0}.table{width:100%;margin-bottom:20px}.table th,.table td{padding:8px;line-height:20px;text-align:left;vertical-align:top;border-top:1px solid #ddd}.table th{font-weight:bold}.table thead th{vertical-align:bottom}.table caption+thead tr:first-child th,.table caption+thead tr:first-child td,.table colgroup+thead tr:first-child th,.table colgroup+thead tr:first-child td,.table thead:first-child tr:first-child th,.table thead:first-child tr:first-child td{border-top:0}.table tbody+tbody{border-top:2px solid #ddd}.table-condensed th,.table-condensed td{padding:4px 5px}.table-bordered{border:1px solid #ddd;border-collapse:separate;*border-collapse:collapse;border-left:0;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.table-bordered th,.table-bordered td{border-left:1px solid #ddd}.table-bordered caption+thead tr:first-child th,.table-bordered caption+tbody tr:first-child th,.table-bordered caption+tbody tr:first-child td,.table-bordered colgroup+thead tr:first-child th,.table-bordered colgroup+tbody tr:first-child th,.table-bordered colgroup+tbody tr:first-child td,.table-bordered thead:first-child tr:first-child th,.table-bordered tbody:first-child tr:first-child th,.table-bordered tbody:first-child tr:first-child td{border-top:0}.table-bordered thead:first-child tr:first-child th:first-child,.table-bordered tbody:first-child tr:first-child td:first-child{-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-topleft:4px}.table-bordered thead:first-child tr:first-child th:last-child,.table-bordered tbody:first-child tr:first-child td:last-child{-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-moz-border-radius-topright:4px}.table-bordered thead:last-child tr:last-child th:first-child,.table-bordered tbody:last-child tr:last-child td:first-child,.table-bordered tfoot:last-child tr:last-child td:first-child{-webkit-border-radius:0 0 0 4px;-moz-border-radius:0 0 0 4px;border-radius:0 0 0 4px;-webkit-border-bottom-left-radius:4px;border-bottom-left-radius:4px;-moz-border-radius-bottomleft:4px}.table-bordered thead:last-child tr:last-child th:last-child,.table-bordered tbody:last-child tr:last-child td:last-child,.table-bordered tfoot:last-child tr:last-child td:last-child{-webkit-border-bottom-right-radius:4px;border-bottom-right-radius:4px;-moz-border-radius-bottomright:4px}.table-bordered caption+thead tr:first-child th:first-child,.table-bordered caption+tbody tr:first-child td:first-child,.table-bordered colgroup+thead tr:first-child th:first-child,.table-bordered colgroup+tbody tr:first-child td:first-child{-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-topleft:4px}.table-bordered caption+thead tr:first-child th:last-child,.table-bordered caption+tbody tr:first-child td:last-child,.table-bordered colgroup+thead tr:first-child th:last-child,.table-bordered colgroup+tbody tr:first-child td:last-child{-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-moz-border-radius-topleft:4px}.table-striped tbody tr:nth-child(odd) td,.table-striped tbody tr:nth-child(odd) th{background-color:#f9f9f9}.table-hover tbody tr:hover td,.table-hover tbody tr:hover th{background-color:#f5f5f5}table [class*=span],.row-fluid table [class*=span]{display:table-cell;float:none;margin-left:0}.table .span1{float:none;width:44px;margin-left:0}.table .span2{float:none;width:124px;margin-left:0}.table .span3{float:none;width:204px;margin-left:0}.table .span4{float:none;width:284px;margin-left:0}.table .span5{float:none;width:364px;margin-left:0}.table .span6{float:none;width:444px;margin-left:0}.table .span7{float:none;width:524px;margin-left:0}.table .span8{float:none;width:604px;margin-left:0}.table .span9{float:none;width:684px;margin-left:0}.table .span10{float:none;width:764px;margin-left:0}.table .span11{float:none;width:844px;margin-left:0}.table .span12{float:none;width:924px;margin-left:0}.table .span13{float:none;width:1004px;margin-left:0}.table .span14{float:none;width:1084px;margin-left:0}.table .span15{float:none;width:1164px;margin-left:0}.table .span16{float:none;width:1244px;margin-left:0}.table .span17{float:none;width:1324px;margin-left:0}.table .span18{float:none;width:1404px;margin-left:0}.table .span19{float:none;width:1484px;margin-left:0}.table .span20{float:none;width:1564px;margin-left:0}.table .span21{float:none;width:1644px;margin-left:0}.table .span22{float:none;width:1724px;margin-left:0}.table .span23{float:none;width:1804px;margin-left:0}.table .span24{float:none;width:1884px;margin-left:0}.table tbody tr.success td{background-color:#dff0d8}.table tbody tr.error td{background-color:#f2dede}.table tbody tr.warning td{background-color:#fcf8e3}.table tbody tr.info td{background-color:#d9edf7}.table-hover tbody tr.success:hover td{background-color:#d0e9c6}.table-hover tbody tr.error:hover td{background-color:#ebcccc}.table-hover tbody tr.warning:hover td{background-color:#faf2cc}.table-hover tbody tr.info:hover td{background-color:#c4e3f3}[class^="icon-"],[class*=" icon-"]{display:inline-block;width:14px;height:14px;margin-top:1px;*margin-right:.3em;line-height:14px;vertical-align:text-top;background-image:url("../img/glyphicons-halflings.png");background-position:14px 14px;background-repeat:no-repeat}.icon-white,.nav-tabs>.active>a>[class^="icon-"],.nav-tabs>.active>a>[class*=" icon-"],.nav-pills>.active>a>[class^="icon-"],.nav-pills>.active>a>[class*=" icon-"],.nav-list>.active>a>[class^="icon-"],.nav-list>.active>a>[class*=" icon-"],.navbar-inverse .nav>.active>a>[class^="icon-"],.navbar-inverse .nav>.active>a>[class*=" icon-"],.dropdown-menu>li>a:hover>[class^="icon-"],.dropdown-menu>li>a:hover>[class*=" icon-"],.dropdown-menu>.active>a>[class^="icon-"],.dropdown-menu>.active>a>[class*=" icon-"]{background-image:url("../img/glyphicons-halflings-white.png")}.icon-glass{background-position:0 0}.icon-music{background-position:-24px 0}.icon-search{background-position:-48px 0}.icon-envelope{background-position:-72px 0}.icon-heart{background-position:-96px 0}.icon-star{background-position:-120px 0}.icon-star-empty{background-position:-144px 0}.icon-user{background-position:-168px 0}.icon-film{background-position:-192px 0}.icon-th-large{background-position:-216px 0}.icon-th{background-position:-240px 0}.icon-th-list{background-position:-264px 0}.icon-ok{background-position:-288px 0}.icon-remove{background-position:-312px 0}.icon-zoom-in{background-position:-336px 0}.icon-zoom-out{background-position:-360px 0}.icon-off{background-position:-384px 0}.icon-signal{background-position:-408px 0}.icon-cog{background-position:-432px 0}.icon-trash{background-position:-456px 0}.icon-home{background-position:0 -24px}.icon-file{background-position:-24px -24px}.icon-time{background-position:-48px -24px}.icon-road{background-position:-72px -24px}.icon-download-alt{background-position:-96px -24px}.icon-download{background-position:-120px -24px}.icon-upload{background-position:-144px -24px}.icon-inbox{background-position:-168px -24px}.icon-play-circle{background-position:-192px -24px}.icon-repeat{background-position:-216px -24px}.icon-refresh{background-position:-240px -24px}.icon-list-alt{background-position:-264px -24px}.icon-lock{background-position:-287px -24px}.icon-flag{background-position:-312px -24px}.icon-headphones{background-position:-336px -24px}.icon-volume-off{background-position:-360px -24px}.icon-volume-down{background-position:-384px -24px}.icon-volume-up{background-position:-408px -24px}.icon-qrcode{background-position:-432px -24px}.icon-barcode{background-position:-456px -24px}.icon-tag{background-position:0 -48px}.icon-tags{background-position:-25px -48px}.icon-book{background-position:-48px -48px}.icon-bookmark{background-position:-72px -48px}.icon-print{background-position:-96px -48px}.icon-camera{background-position:-120px -48px}.icon-font{background-position:-144px -48px}.icon-bold{background-position:-167px -48px}.icon-italic{background-position:-192px -48px}.icon-text-height{background-position:-216px -48px}.icon-text-width{background-position:-240px -48px}.icon-align-left{background-position:-264px -48px}.icon-align-center{background-position:-288px -48px}.icon-align-right{background-position:-312px -48px}.icon-align-justify{background-position:-336px -48px}.icon-list{background-position:-360px -48px}.icon-indent-left{background-position:-384px -48px}.icon-indent-right{background-position:-408px -48px}.icon-facetime-video{background-position:-432px -48px}.icon-picture{background-position:-456px -48px}.icon-pencil{background-position:0 -72px}.icon-map-marker{background-position:-24px -72px}.icon-adjust{background-position:-48px -72px}.icon-tint{background-position:-72px -72px}.icon-edit{background-position:-96px -72px}.icon-share{background-position:-120px -72px}.icon-check{background-position:-144px -72px}.icon-move{background-position:-168px -72px}.icon-step-backward{background-position:-192px -72px}.icon-fast-backward{background-position:-216px -72px}.icon-backward{background-position:-240px -72px}.icon-play{background-position:-264px -72px}.icon-pause{background-position:-288px -72px}.icon-stop{background-position:-312px -72px}.icon-forward{background-position:-336px -72px}.icon-fast-forward{background-position:-360px -72px}.icon-step-forward{background-position:-384px -72px}.icon-eject{background-position:-408px -72px}.icon-chevron-left{background-position:-432px -72px}.icon-chevron-right{background-position:-456px -72px}.icon-plus-sign{background-position:0 -96px}.icon-minus-sign{background-position:-24px -96px}.icon-remove-sign{background-position:-48px -96px}.icon-ok-sign{background-position:-72px -96px}.icon-question-sign{background-position:-96px -96px}.icon-info-sign{background-position:-120px -96px}.icon-screenshot{background-position:-144px -96px}.icon-remove-circle{background-position:-168px -96px}.icon-ok-circle{background-position:-192px -96px}.icon-ban-circle{background-position:-216px -96px}.icon-arrow-left{background-position:-240px -96px}.icon-arrow-right{background-position:-264px -96px}.icon-arrow-up{background-position:-289px -96px}.icon-arrow-down{background-position:-312px -96px}.icon-share-alt{background-position:-336px -96px}.icon-resize-full{background-position:-360px -96px}.icon-resize-small{background-position:-384px -96px}.icon-plus{background-position:-408px -96px}.icon-minus{background-position:-433px -96px}.icon-asterisk{background-position:-456px -96px}.icon-exclamation-sign{background-position:0 -120px}.icon-gift{background-position:-24px -120px}.icon-leaf{background-position:-48px -120px}.icon-fire{background-position:-72px -120px}.icon-eye-open{background-position:-96px -120px}.icon-eye-close{background-position:-120px -120px}.icon-warning-sign{background-position:-144px -120px}.icon-plane{background-position:-168px -120px}.icon-calendar{background-position:-192px -120px}.icon-random{width:16px;background-position:-216px -120px}.icon-comment{background-position:-240px -120px}.icon-magnet{background-position:-264px -120px}.icon-chevron-up{background-position:-288px -120px}.icon-chevron-down{background-position:-313px -119px}.icon-retweet{background-position:-336px -120px}.icon-shopping-cart{background-position:-360px -120px}.icon-folder-close{background-position:-384px -120px}.icon-folder-open{width:16px;background-position:-408px -120px}.icon-resize-vertical{background-position:-432px -119px}.icon-resize-horizontal{background-position:-456px -118px}.icon-hdd{background-position:0 -144px}.icon-bullhorn{background-position:-24px -144px}.icon-bell{background-position:-48px -144px}.icon-certificate{background-position:-72px -144px}.icon-thumbs-up{background-position:-96px -144px}.icon-thumbs-down{background-position:-120px -144px}.icon-hand-right{background-position:-144px -144px}.icon-hand-left{background-position:-168px -144px}.icon-hand-up{background-position:-192px -144px}.icon-hand-down{background-position:-216px -144px}.icon-circle-arrow-right{background-position:-240px -144px}.icon-circle-arrow-left{background-position:-264px -144px}.icon-circle-arrow-up{background-position:-288px -144px}.icon-circle-arrow-down{background-position:-312px -144px}.icon-globe{background-position:-336px -144px}.icon-wrench{background-position:-360px -144px}.icon-tasks{background-position:-384px -144px}.icon-filter{background-position:-408px -144px}.icon-briefcase{background-position:-432px -144px}.icon-fullscreen{background-position:-456px -144px}.dropup,.dropdown{position:relative}.dropdown-toggle{*margin-bottom:-3px}.dropdown-toggle:active,.open .dropdown-toggle{outline:0}.caret{display:inline-block;width:0;height:0;vertical-align:top;border-top:4px solid #000;border-right:4px solid transparent;border-left:4px solid transparent;content:""}.dropdown .caret{margin-top:8px;margin-left:2px}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;list-style:none;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.2);*border-right-width:2px;*border-bottom-width:2px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,0.2);-moz-box-shadow:0 5px 10px rgba(0,0,0,0.2);box-shadow:0 5px 10px rgba(0,0,0,0.2);-webkit-background-clip:padding-box;-moz-background-clip:padding;background-clip:padding-box}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{*width:100%;height:1px;margin:9px 1px;*margin:-5px 0 5px;overflow:hidden;background-color:#e5e5e5;border-bottom:1px solid #fff}.dropdown-menu a{display:block;padding:3px 20px;clear:both;font-weight:normal;line-height:20px;color:#333;white-space:nowrap}.dropdown-menu li>a:hover,.dropdown-menu li>a:focus,.dropdown-submenu:hover>a{color:#fff;text-decoration:none;background-color:#08c;background-color:#0081c2;background-image:-moz-linear-gradient(top,#08c,#0077b3);background-image:-webkit-gradient(linear,0 0,0 100%,from(#08c),to(#0077b3));background-image:-webkit-linear-gradient(top,#08c,#0077b3);background-image:-o-linear-gradient(top,#08c,#0077b3);background-image:linear-gradient(to bottom,#08c,#0077b3);background-repeat:repeat-x;filter:progid:dximagetransform.microsoft.gradient(startColorstr='#ff0088cc',endColorstr='#ff0077b3',GradientType=0)}.dropdown-menu .active>a,.dropdown-menu .active>a:hover{color:#fff;text-decoration:none;background-color:#08c;background-color:#0081c2;background-image:linear-gradient(to bottom,#08c,#0077b3);background-image:-moz-linear-gradient(top,#08c,#0077b3);background-image:-webkit-gradient(linear,0 0,0 100%,from(#08c),to(#0077b3));background-image:-webkit-linear-gradient(top,#08c,#0077b3);background-image:-o-linear-gradient(top,#08c,#0077b3);background-repeat:repeat-x;outline:0;filter:progid:dximagetransform.microsoft.gradient(startColorstr='#ff0088cc',endColorstr='#ff0077b3',GradientType=0)}.dropdown-menu .disabled>a,.dropdown-menu .disabled>a:hover{color:#999}.dropdown-menu .disabled>a:hover{text-decoration:none;cursor:default;background-color:transparent}.open{*z-index:1000}.open>.dropdown-menu{display:block}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{border-top:0;border-bottom:4px solid #000;content:""}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:1px}.dropdown-submenu{position:relative}.dropdown-submenu>.dropdown-menu{top:0;left:100%;margin-top:-6px;margin-left:-1px;-webkit-border-radius:0 6px 6px 6px;-moz-border-radius:0 6px 6px 6px;border-radius:0 6px 6px 6px}.dropdown-submenu:hover>.dropdown-menu{display:block}.dropdown-submenu>a:after{display:block;float:right;width:0;height:0;margin-top:5px;margin-right:-10px;border-color:transparent;border-left-color:#ccc;border-style:solid;border-width:5px 0 5px 5px;content:" "}.dropdown-submenu:hover>a:after{border-left-color:#fff}.dropdown .dropdown-menu .nav-header{padding-right:20px;padding-left:20px}.typeahead{margin-top:2px;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);box-shadow:inset 0 1px 1px rgba(0,0,0,0.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,0.15)}.well-large{padding:24px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.well-small{padding:9px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.fade{opacity:0;-webkit-transition:opacity .15s linear;-moz-transition:opacity .15s linear;-o-transition:opacity .15s linear;transition:opacity .15s linear}.fade.in{opacity:1}.collapse{position:relative;height:0;overflow:hidden;-webkit-transition:height .35s ease;-moz-transition:height .35s ease;-o-transition:height .35s ease;transition:height .35s ease}.collapse.in{height:auto}.close{float:right;font-size:20px;font-weight:bold;line-height:20px;color:#000;text-shadow:0 1px 0 #fff;opacity:.2;filter:alpha(opacity=20)}.close:hover{color:#000;text-decoration:none;cursor:pointer;opacity:.4;filter:alpha(opacity=40)}button.close{padding:0;cursor:pointer;background:transparent;border:0;-webkit-appearance:none}.btn{display:inline-block;*display:inline;padding:4px 14px;margin-bottom:0;*margin-left:.3em;font-size:14px;line-height:20px;*line-height:20px;color:#333;text-align:center;text-shadow:0 1px 1px rgba(255,255,255,0.75);vertical-align:middle;cursor:pointer;background-color:#f5f5f5;*background-color:#e6e6e6;background-image:-webkit-gradient(linear,0 0,0 100%,from(#fff),to(#e6e6e6));background-image:-webkit-linear-gradient(top,#fff,#e6e6e6);background-image:-o-linear-gradient(top,#fff,#e6e6e6);background-image:linear-gradient(to bottom,#fff,#e6e6e6);background-image:-moz-linear-gradient(top,#fff,#e6e6e6);background-repeat:repeat-x;border:1px solid #bbb;*border:0;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);border-color:#e6e6e6 #e6e6e6 #bfbfbf;border-bottom-color:#a2a2a2;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;filter:progid:dximagetransform.microsoft.gradient(startColorstr='#ffffffff',endColorstr='#ffe6e6e6',GradientType=0);filter:progid:dximagetransform.microsoft.gradient(enabled=false);*zoom:1;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05)}.btn:hover,.btn:active,.btn.active,.btn.disabled,.btn[disabled]{color:#333;background-color:#e6e6e6;*background-color:#d9d9d9}.btn:active,.btn.active{background-color:#ccc \9}.btn:first-child{*margin-left:0}.btn:hover{color:#333;text-decoration:none;background-color:#e6e6e6;*background-color:#d9d9d9;background-position:0 -15px;-webkit-transition:background-position .1s linear;-moz-transition:background-position .1s linear;-o-transition:background-position .1s linear;transition:background-position .1s linear}.btn:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn.active,.btn:active{background-color:#e6e6e6;background-color:#d9d9d9 \9;background-image:none;outline:0;-webkit-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05)}.btn.disabled,.btn[disabled]{cursor:default;background-color:#e6e6e6;background-image:none;opacity:.65;filter:alpha(opacity=65);-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.btn-large{padding:9px 14px;font-size:16px;line-height:normal;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px}.btn-large [class^="icon-"]{margin-top:2px}.btn-small{padding:3px 9px;font-size:12px;line-height:18px}.btn-small [class^="icon-"]{margin-top:0}.btn-mini{padding:2px 6px;font-size:11px;line-height:17px}.btn-block{display:block;width:100%;padding-right:0;padding-left:0;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.btn-block+.btn-block{margin-top:5px}input[type="submit"].btn-block,input[type="reset"].btn-block,input[type="button"].btn-block{width:100%}.btn-primary.active,.btn-warning.active,.btn-danger.active,.btn-success.active,.btn-info.active,.btn-inverse.active{color:rgba(255,255,255,0.75)}.btn{border-color:#c5c5c5;border-color:rgba(0,0,0,0.15) rgba(0,0,0,0.15) rgba(0,0,0,0.25)}.btn-primary{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#006dcc;*background-color:#04c;background-image:-webkit-gradient(linear,0 0,0 100%,from(#08c),to(#04c));background-image:-webkit-linear-gradient(top,#08c,#04c);background-image:-o-linear-gradient(top,#08c,#04c);background-image:linear-gradient(to bottom,#08c,#04c);background-image:-moz-linear-gradient(top,#08c,#04c);background-repeat:repeat-x;border-color:#04c #04c #002a80;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:dximagetransform.microsoft.gradient(startColorstr='#ff0088cc',endColorstr='#ff0044cc',GradientType=0);filter:progid:dximagetransform.microsoft.gradient(enabled=false)}.btn-primary:hover,.btn-primary:active,.btn-primary.active,.btn-primary.disabled,.btn-primary[disabled]{color:#fff;background-color:#04c;*background-color:#003bb3}.btn-primary:active,.btn-primary.active{background-color:#039 \9}.btn-warning{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#faa732;*background-color:#f89406;background-image:-webkit-gradient(linear,0 0,0 100%,from(#fbb450),to(#f89406));background-image:-webkit-linear-gradient(top,#fbb450,#f89406);background-image:-o-linear-gradient(top,#fbb450,#f89406);background-image:linear-gradient(to bottom,#fbb450,#f89406);background-image:-moz-linear-gradient(top,#fbb450,#f89406);background-repeat:repeat-x;border-color:#f89406 #f89406 #ad6704;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:dximagetransform.microsoft.gradient(startColorstr='#fffbb450',endColorstr='#fff89406',GradientType=0);filter:progid:dximagetransform.microsoft.gradient(enabled=false)}.btn-warning:hover,.btn-warning:active,.btn-warning.active,.btn-warning.disabled,.btn-warning[disabled]{color:#fff;background-color:#f89406;*background-color:#df8505}.btn-warning:active,.btn-warning.active{background-color:#c67605 \9}.btn-danger{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#da4f49;*background-color:#bd362f;background-image:-webkit-gradient(linear,0 0,0 100%,from(#ee5f5b),to(#bd362f));background-image:-webkit-linear-gradient(top,#ee5f5b,#bd362f);background-image:-o-linear-gradient(top,#ee5f5b,#bd362f);background-image:linear-gradient(to bottom,#ee5f5b,#bd362f);background-image:-moz-linear-gradient(top,#ee5f5b,#bd362f);background-repeat:repeat-x;border-color:#bd362f #bd362f #802420;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:dximagetransform.microsoft.gradient(startColorstr='#ffee5f5b',endColorstr='#ffbd362f',GradientType=0);filter:progid:dximagetransform.microsoft.gradient(enabled=false)}.btn-danger:hover,.btn-danger:active,.btn-danger.active,.btn-danger.disabled,.btn-danger[disabled]{color:#fff;background-color:#bd362f;*background-color:#a9302a}.btn-danger:active,.btn-danger.active{background-color:#942a25 \9}.btn-success{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#5bb75b;*background-color:#51a351;background-image:-webkit-gradient(linear,0 0,0 100%,from(#62c462),to(#51a351));background-image:-webkit-linear-gradient(top,#62c462,#51a351);background-image:-o-linear-gradient(top,#62c462,#51a351);background-image:linear-gradient(to bottom,#62c462,#51a351);background-image:-moz-linear-gradient(top,#62c462,#51a351);background-repeat:repeat-x;border-color:#51a351 #51a351 #387038;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:dximagetransform.microsoft.gradient(startColorstr='#ff62c462',endColorstr='#ff51a351',GradientType=0);filter:progid:dximagetransform.microsoft.gradient(enabled=false)}.btn-success:hover,.btn-success:active,.btn-success.active,.btn-success.disabled,.btn-success[disabled]{color:#fff;background-color:#51a351;*background-color:#499249}.btn-success:active,.btn-success.active{background-color:#408140 \9}.btn-info{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#49afcd;*background-color:#2f96b4;background-image:-webkit-gradient(linear,0 0,0 100%,from(#5bc0de),to(#2f96b4));background-image:-webkit-linear-gradient(top,#5bc0de,#2f96b4);background-image:-o-linear-gradient(top,#5bc0de,#2f96b4);background-image:linear-gradient(to bottom,#5bc0de,#2f96b4);background-image:-moz-linear-gradient(top,#5bc0de,#2f96b4);background-repeat:repeat-x;border-color:#2f96b4 #2f96b4 #1f6377;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:dximagetransform.microsoft.gradient(startColorstr='#ff5bc0de',endColorstr='#ff2f96b4',GradientType=0);filter:progid:dximagetransform.microsoft.gradient(enabled=false)}.btn-info:hover,.btn-info:active,.btn-info.active,.btn-info.disabled,.btn-info[disabled]{color:#fff;background-color:#2f96b4;*background-color:#2a85a0}.btn-info:active,.btn-info.active{background-color:#24748c \9}.btn-inverse{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#363636;*background-color:#222;background-image:-webkit-gradient(linear,0 0,0 100%,from(#444),to(#222));background-image:-webkit-linear-gradient(top,#444,#222);background-image:-o-linear-gradient(top,#444,#222);background-image:linear-gradient(to bottom,#444,#222);background-image:-moz-linear-gradient(top,#444,#222);background-repeat:repeat-x;border-color:#222 #222 #000;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:dximagetransform.microsoft.gradient(startColorstr='#ff444444',endColorstr='#ff222222',GradientType=0);filter:progid:dximagetransform.microsoft.gradient(enabled=false)}.btn-inverse:hover,.btn-inverse:active,.btn-inverse.active,.btn-inverse.disabled,.btn-inverse[disabled]{color:#fff;background-color:#222;*background-color:#151515}.btn-inverse:active,.btn-inverse.active{background-color:#080808 \9}button.btn,input[type="submit"].btn{*padding-top:3px;*padding-bottom:3px}button.btn::-moz-focus-inner,input[type="submit"].btn::-moz-focus-inner{padding:0;border:0}button.btn.btn-large,input[type="submit"].btn.btn-large{*padding-top:7px;*padding-bottom:7px}button.btn.btn-small,input[type="submit"].btn.btn-small{*padding-top:3px;*padding-bottom:3px}button.btn.btn-mini,input[type="submit"].btn.btn-mini{*padding-top:1px;*padding-bottom:1px}.btn-link,.btn-link:active,.btn-link[disabled]{background-color:transparent;background-image:none;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.btn-link{color:#08c;cursor:pointer;border-color:transparent;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.btn-link:hover{color:#005580;text-decoration:underline;background-color:transparent}.btn-link[disabled]:hover{color:#333;text-decoration:none}.btn-group{position:relative;*margin-left:.3em;font-size:0;white-space:nowrap;vertical-align:middle}.btn-group:first-child{*margin-left:0}.btn-group+.btn-group{margin-left:5px}.btn-toolbar{margin-top:10px;margin-bottom:10px;font-size:0}.btn-toolbar .btn-group{display:inline-block;*display:inline;*zoom:1}.btn-toolbar .btn+.btn,.btn-toolbar .btn-group+.btn,.btn-toolbar .btn+.btn-group{margin-left:5px}.btn-group>.btn{position:relative;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.btn-group>.btn+.btn{margin-left:-1px}.btn-group>.btn,.btn-group>.dropdown-menu{font-size:14px}.btn-group>.btn-mini{font-size:11px}.btn-group>.btn-small{font-size:12px}.btn-group>.btn-large{font-size:16px}.btn-group>.btn:first-child{margin-left:0;-webkit-border-bottom-left-radius:4px;border-bottom-left-radius:4px;-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-bottomleft:4px;-moz-border-radius-topleft:4px}.btn-group>.btn:last-child,.btn-group>.dropdown-toggle{-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-webkit-border-bottom-right-radius:4px;border-bottom-right-radius:4px;-moz-border-radius-topright:4px;-moz-border-radius-bottomright:4px}.btn-group>.btn.large:first-child{margin-left:0;-webkit-border-bottom-left-radius:6px;border-bottom-left-radius:6px;-webkit-border-top-left-radius:6px;border-top-left-radius:6px;-moz-border-radius-bottomleft:6px;-moz-border-radius-topleft:6px}.btn-group>.btn.large:last-child,.btn-group>.large.dropdown-toggle{-webkit-border-top-right-radius:6px;border-top-right-radius:6px;-webkit-border-bottom-right-radius:6px;border-bottom-right-radius:6px;-moz-border-radius-topright:6px;-moz-border-radius-bottomright:6px}.btn-group>.btn:hover,.btn-group>.btn:focus,.btn-group>.btn:active,.btn-group>.btn.active{z-index:2}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group>.btn+.dropdown-toggle{*padding-top:5px;padding-right:8px;*padding-bottom:5px;padding-left:8px;-webkit-box-shadow:inset 1px 0 0 rgba(255,255,255,0.125),inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 1px 0 0 rgba(255,255,255,0.125),inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 1px 0 0 rgba(255,255,255,0.125),inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05)}.btn-group>.btn-mini+.dropdown-toggle{*padding-top:2px;padding-right:5px;*padding-bottom:2px;padding-left:5px}.btn-group>.btn-small+.dropdown-toggle{*padding-top:5px;*padding-bottom:4px}.btn-group>.btn-large+.dropdown-toggle{*padding-top:7px;padding-right:12px;*padding-bottom:7px;padding-left:12px}.btn-group.open .dropdown-toggle{background-image:none;-webkit-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05)}.btn-group.open .btn.dropdown-toggle{background-color:#e6e6e6}.btn-group.open .btn-primary.dropdown-toggle{background-color:#04c}.btn-group.open .btn-warning.dropdown-toggle{background-color:#f89406}.btn-group.open .btn-danger.dropdown-toggle{background-color:#bd362f}.btn-group.open .btn-success.dropdown-toggle{background-color:#51a351}.btn-group.open .btn-info.dropdown-toggle{background-color:#2f96b4}.btn-group.open .btn-inverse.dropdown-toggle{background-color:#222}.btn .caret{margin-top:8px;margin-left:0}.btn-mini .caret,.btn-small .caret,.btn-large .caret{margin-top:6px}.btn-large .caret{border-top-width:5px;border-right-width:5px;border-left-width:5px}.dropup .btn-large .caret{border-top:0;border-bottom:5px solid #000}.btn-primary .caret,.btn-warning .caret,.btn-danger .caret,.btn-info .caret,.btn-success .caret,.btn-inverse .caret{border-top-color:#fff;border-bottom-color:#fff}.btn-group-vertical{display:inline-block;*display:inline;*zoom:1}.btn-group-vertical .btn{display:block;float:none;width:100%;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.btn-group-vertical .btn+.btn{margin-top:-1px;margin-left:0}.btn-group-vertical .btn:first-child{-webkit-border-radius:4px 4px 0 0;-moz-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0}.btn-group-vertical .btn:last-child{-webkit-border-radius:0 0 4px 4px;-moz-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px}.btn-group-vertical .btn-large:first-child{-webkit-border-radius:6px 6px 0 0;-moz-border-radius:6px 6px 0 0;border-radius:6px 6px 0 0}.btn-group-vertical .btn-large:last-child{-webkit-border-radius:0 0 6px 6px;-moz-border-radius:0 0 6px 6px;border-radius:0 0 6px 6px}.alert{padding:8px 35px 8px 14px;margin-bottom:20px;color:#c09853;text-shadow:0 1px 0 rgba(255,255,255,0.5);background-color:#fcf8e3;border:1px solid #fbeed5;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.alert h4{margin:0}.alert .close{position:relative;top:-2px;right:-21px;line-height:20px}.alert-success{color:#468847;background-color:#dff0d8;border-color:#d6e9c6}.alert-danger,.alert-error{color:#b94a48;background-color:#f2dede;border-color:#eed3d7}.alert-info{color:#3a87ad;background-color:#d9edf7;border-color:#bce8f1}.alert-block{padding-top:14px;padding-bottom:14px}.alert-block>p,.alert-block>ul{margin-bottom:0}.alert-block p+p{margin-top:5px}.nav{margin-bottom:20px;margin-left:0;list-style:none}.nav>li>a{display:block}.nav>li>a:hover{text-decoration:none;background-color:#eee}.nav>.pull-right{float:right}.nav-header{display:block;padding:3px 15px;font-size:11px;font-weight:bold;line-height:20px;color:#999;text-shadow:0 1px 0 rgba(255,255,255,0.5);text-transform:uppercase}.nav li+.nav-header{margin-top:9px}.nav-list{padding-right:15px;padding-left:15px;margin-bottom:0}.nav-list>li>a,.nav-list .nav-header{margin-right:-15px;margin-left:-15px;text-shadow:0 1px 0 rgba(255,255,255,0.5)}.nav-list>li>a{padding:3px 15px}.nav-list>.active>a,.nav-list>.active>a:hover{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.2);background-color:#08c}.nav-list [class^="icon-"]{margin-right:2px}.nav-list .divider{*width:100%;height:1px;margin:9px 1px;*margin:-5px 0 5px;overflow:hidden;background-color:#e5e5e5;border-bottom:1px solid #fff}.nav-tabs,.nav-pills{*zoom:1}.nav-tabs:before,.nav-pills:before,.nav-tabs:after,.nav-pills:after{display:table;line-height:0;content:""}.nav-tabs:after,.nav-pills:after{clear:both}.nav-tabs>li,.nav-pills>li{float:left}.nav-tabs>li>a,.nav-pills>li>a{padding-right:12px;padding-left:12px;margin-right:2px;line-height:14px}.nav-tabs{border-bottom:1px solid #ddd}.nav-tabs>li{margin-bottom:-1px}.nav-tabs>li>a{padding-top:8px;padding-bottom:8px;line-height:20px;border:1px solid transparent;-webkit-border-radius:4px 4px 0 0;-moz-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0}.nav-tabs>li>a:hover{border-color:#eee #eee #ddd}.nav-tabs>.active>a,.nav-tabs>.active>a:hover{color:#555;cursor:default;background-color:#fff;border:1px solid #ddd;border-bottom-color:transparent}.nav-pills>li>a{padding-top:8px;padding-bottom:8px;margin-top:2px;margin-bottom:2px;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px}.nav-pills>.active>a,.nav-pills>.active>a:hover{color:#fff;background-color:#08c}.nav-stacked>li{float:none}.nav-stacked>li>a{margin-right:0}.nav-tabs.nav-stacked{border-bottom:0}.nav-tabs.nav-stacked>li>a{border:1px solid #ddd;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.nav-tabs.nav-stacked>li:first-child>a{-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-topright:4px;-moz-border-radius-topleft:4px}.nav-tabs.nav-stacked>li:last-child>a{-webkit-border-bottom-right-radius:4px;border-bottom-right-radius:4px;-webkit-border-bottom-left-radius:4px;border-bottom-left-radius:4px;-moz-border-radius-bottomright:4px;-moz-border-radius-bottomleft:4px}.nav-tabs.nav-stacked>li>a:hover{z-index:2;border-color:#ddd}.nav-pills.nav-stacked>li>a{margin-bottom:3px}.nav-pills.nav-stacked>li:last-child>a{margin-bottom:1px}.nav-tabs .dropdown-menu{-webkit-border-radius:0 0 6px 6px;-moz-border-radius:0 0 6px 6px;border-radius:0 0 6px 6px}.nav-pills .dropdown-menu{-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.nav .dropdown-toggle .caret{margin-top:6px;border-top-color:#08c;border-bottom-color:#08c}.nav .dropdown-toggle:hover .caret{border-top-color:#005580;border-bottom-color:#005580}.nav-tabs .dropdown-toggle .caret{margin-top:8px}.nav .active .dropdown-toggle .caret{border-top-color:#fff;border-bottom-color:#fff}.nav-tabs .active .dropdown-toggle .caret{border-top-color:#555;border-bottom-color:#555}.nav>.dropdown.active>a:hover{cursor:pointer}.nav-tabs .open .dropdown-toggle,.nav-pills .open .dropdown-toggle,.nav>li.dropdown.open.active>a:hover{color:#fff;background-color:#999;border-color:#999}.nav li.dropdown.open .caret,.nav li.dropdown.open.active .caret,.nav li.dropdown.open a:hover .caret{border-top-color:#fff;border-bottom-color:#fff;opacity:1;filter:alpha(opacity=100)}.tabs-stacked .open>a:hover{border-color:#999}.tabbable{*zoom:1}.tabbable:before,.tabbable:after{display:table;line-height:0;content:""}.tabbable:after{clear:both}.tab-content{overflow:auto}.tabs-below>.nav-tabs,.tabs-right>.nav-tabs,.tabs-left>.nav-tabs{border-bottom:0}.tab-content>.tab-pane,.pill-content>.pill-pane{display:none}.tab-content>.active,.pill-content>.active{display:block}.tabs-below>.nav-tabs{border-top:1px solid #ddd}.tabs-below>.nav-tabs>li{margin-top:-1px;margin-bottom:0}.tabs-below>.nav-tabs>li>a{-webkit-border-radius:0 0 4px 4px;-moz-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px}.tabs-below>.nav-tabs>li>a:hover{border-top-color:#ddd;border-bottom-color:transparent}.tabs-below>.nav-tabs>.active>a,.tabs-below>.nav-tabs>.active>a:hover{border-color:transparent #ddd #ddd #ddd}.tabs-left>.nav-tabs>li,.tabs-right>.nav-tabs>li{float:none}.tabs-left>.nav-tabs>li>a,.tabs-right>.nav-tabs>li>a{min-width:74px;margin-right:0;margin-bottom:3px}.tabs-left>.nav-tabs{float:left;margin-right:19px;border-right:1px solid #ddd}.tabs-left>.nav-tabs>li>a{margin-right:-1px;-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px}.tabs-left>.nav-tabs>li>a:hover{border-color:#eee #ddd #eee #eee}.tabs-left>.nav-tabs .active>a,.tabs-left>.nav-tabs .active>a:hover{border-color:#ddd transparent #ddd #ddd;*border-right-color:#fff}.tabs-right>.nav-tabs{float:right;margin-left:19px;border-left:1px solid #ddd}.tabs-right>.nav-tabs>li>a{margin-left:-1px;-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.tabs-right>.nav-tabs>li>a:hover{border-color:#eee #eee #eee #ddd}.tabs-right>.nav-tabs .active>a,.tabs-right>.nav-tabs .active>a:hover{border-color:#ddd #ddd #ddd transparent;*border-left-color:#fff}.nav>.disabled>a{color:#999}.nav>.disabled>a:hover{text-decoration:none;cursor:default;background-color:transparent}.navbar{*position:relative;*z-index:2;margin-bottom:20px;overflow:visible;color:#777}.navbar-inner{min-height:40px;padding-right:20px;padding-left:20px;background-color:#fafafa;background-image:-moz-linear-gradient(top,#fff,#f2f2f2);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fff),to(#f2f2f2));background-image:-webkit-linear-gradient(top,#fff,#f2f2f2);background-image:-o-linear-gradient(top,#fff,#f2f2f2);background-image:linear-gradient(to bottom,#fff,#f2f2f2);background-repeat:repeat-x;border:1px solid #d4d4d4;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;filter:progid:dximagetransform.microsoft.gradient(startColorstr='#ffffffff',endColorstr='#fff2f2f2',GradientType=0);*zoom:1;-webkit-box-shadow:0 1px 4px rgba(0,0,0,0.065);-moz-box-shadow:0 1px 4px rgba(0,0,0,0.065);box-shadow:0 1px 4px rgba(0,0,0,0.065)}.navbar-inner:before,.navbar-inner:after{display:table;line-height:0;content:""}.navbar-inner:after{clear:both}.navbar .container{width:auto}.nav-collapse.collapse{height:auto}.navbar .brand{display:block;float:left;padding:10px 20px 10px;margin-left:-20px;font-size:20px;font-weight:200;color:#777;text-shadow:0 1px 0 #fff}.navbar .brand:hover{text-decoration:none}.navbar-text{margin-bottom:0;line-height:40px}.navbar-link{color:#777}.navbar-link:hover{color:#333}.navbar .divider-vertical{height:40px;margin:0 9px;border-right:1px solid #fff;border-left:1px solid #f2f2f2}.navbar .btn,.navbar .btn-group{margin-top:5px}.navbar .btn-group .btn,.navbar .input-prepend .btn,.navbar .input-append .btn{margin-top:0}.navbar-form{margin-bottom:0;*zoom:1}.navbar-form:before,.navbar-form:after{display:table;line-height:0;content:""}.navbar-form:after{clear:both}.navbar-form input,.navbar-form select,.navbar-form .radio,.navbar-form .checkbox{margin-top:5px}.navbar-form input,.navbar-form select,.navbar-form .btn{display:inline-block;margin-bottom:0}.navbar-form input[type="image"],.navbar-form input[type="checkbox"],.navbar-form input[type="radio"]{margin-top:3px}.navbar-form .input-append,.navbar-form .input-prepend{margin-top:6px;white-space:nowrap}.navbar-form .input-append input,.navbar-form .input-prepend input{margin-top:0}.navbar-search{position:relative;float:left;margin-top:5px;margin-bottom:0}.navbar-search .search-query{padding:4px 14px;margin-bottom:0;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:13px;font-weight:normal;line-height:1;-webkit-border-radius:15px;-moz-border-radius:15px;border-radius:15px}.navbar-static-top{position:static;width:100%;margin-bottom:0}.navbar-static-top .navbar-inner{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.navbar-fixed-top,.navbar-fixed-bottom{position:fixed;right:0;left:0;z-index:1030;margin-bottom:0}.navbar-fixed-top .navbar-inner,.navbar-static-top .navbar-inner{border-width:0 0 1px}.navbar-fixed-bottom .navbar-inner{border-width:1px 0 0}.navbar-fixed-top .navbar-inner,.navbar-fixed-bottom .navbar-inner{padding-right:0;padding-left:0;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.navbar-static-top .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:940px}.navbar-fixed-top{top:0}.navbar-fixed-top .navbar-inner,.navbar-static-top .navbar-inner{-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.1),0 1px 10px rgba(0,0,0,0.1);-moz-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.1),0 1px 10px rgba(0,0,0,0.1);box-shadow:inset 0 -1px 0 rgba(0,0,0,0.1),0 1px 10px rgba(0,0,0,0.1)}.navbar-fixed-bottom{bottom:0}.navbar-fixed-bottom .navbar-inner{-webkit-box-shadow:inset 0 1px 0 rgba(0,0,0,0.1),0 -1px 10px rgba(0,0,0,0.1);-moz-box-shadow:inset 0 1px 0 rgba(0,0,0,0.1),0 -1px 10px rgba(0,0,0,0.1);box-shadow:inset 0 1px 0 rgba(0,0,0,0.1),0 -1px 10px rgba(0,0,0,0.1)}.navbar .nav{position:relative;left:0;display:block;float:left;margin:0 10px 0 0}.navbar .nav.pull-right{float:right;margin-right:0}.navbar .nav>li{float:left}.navbar .nav>li>a{float:none;padding:10px 15px 10px;color:#777;text-decoration:none;text-shadow:0 1px 0 #fff}.navbar .nav .dropdown-toggle .caret{margin-top:8px}.navbar .nav>li>a:focus,.navbar .nav>li>a:hover{color:#333;text-decoration:none;background-color:transparent}.navbar .nav>.active>a,.navbar .nav>.active>a:hover,.navbar .nav>.active>a:focus{color:#555;text-decoration:none;background-color:#e5e5e5;-webkit-box-shadow:inset 0 3px 8px rgba(0,0,0,0.125);-moz-box-shadow:inset 0 3px 8px rgba(0,0,0,0.125);box-shadow:inset 0 3px 8px rgba(0,0,0,0.125)}.navbar .btn-navbar{display:none;float:right;padding:7px 10px;margin-right:5px;margin-left:5px;color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#ededed;*background-color:#e5e5e5;background-image:-webkit-gradient(linear,0 0,0 100%,from(#f2f2f2),to(#e5e5e5));background-image:-webkit-linear-gradient(top,#f2f2f2,#e5e5e5);background-image:-o-linear-gradient(top,#f2f2f2,#e5e5e5);background-image:linear-gradient(to bottom,#f2f2f2,#e5e5e5);background-image:-moz-linear-gradient(top,#f2f2f2,#e5e5e5);background-repeat:repeat-x;border-color:#e5e5e5 #e5e5e5 #bfbfbf;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:dximagetransform.microsoft.gradient(startColorstr='#fff2f2f2',endColorstr='#ffe5e5e5',GradientType=0);filter:progid:dximagetransform.microsoft.gradient(enabled=false);-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.075);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.075);box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.075)}.navbar .btn-navbar:hover,.navbar .btn-navbar:active,.navbar .btn-navbar.active,.navbar .btn-navbar.disabled,.navbar .btn-navbar[disabled]{color:#fff;background-color:#e5e5e5;*background-color:#d9d9d9}.navbar .btn-navbar:active,.navbar .btn-navbar.active{background-color:#ccc \9}.navbar .btn-navbar .icon-bar{display:block;width:18px;height:2px;background-color:#f5f5f5;-webkit-border-radius:1px;-moz-border-radius:1px;border-radius:1px;-webkit-box-shadow:0 1px 0 rgba(0,0,0,0.25);-moz-box-shadow:0 1px 0 rgba(0,0,0,0.25);box-shadow:0 1px 0 rgba(0,0,0,0.25)}.btn-navbar .icon-bar+.icon-bar{margin-top:3px}.navbar .nav>li>.dropdown-menu:before{position:absolute;top:-7px;left:9px;display:inline-block;border-right:7px solid transparent;border-bottom:7px solid #ccc;border-left:7px solid transparent;border-bottom-color:rgba(0,0,0,0.2);content:''}.navbar .nav>li>.dropdown-menu:after{position:absolute;top:-6px;left:10px;display:inline-block;border-right:6px solid transparent;border-bottom:6px solid #fff;border-left:6px solid transparent;content:''}.navbar-fixed-bottom .nav>li>.dropdown-menu:before{top:auto;bottom:-7px;border-top:7px solid #ccc;border-bottom:0;border-top-color:rgba(0,0,0,0.2)}.navbar-fixed-bottom .nav>li>.dropdown-menu:after{top:auto;bottom:-6px;border-top:6px solid #fff;border-bottom:0}.navbar .nav li.dropdown.open>.dropdown-toggle,.navbar .nav li.dropdown.active>.dropdown-toggle,.navbar .nav li.dropdown.open.active>.dropdown-toggle{color:#555;background-color:#e5e5e5}.navbar .nav li.dropdown>.dropdown-toggle .caret{border-top-color:#777;border-bottom-color:#777}.navbar .nav li.dropdown.open>.dropdown-toggle .caret,.navbar .nav li.dropdown.active>.dropdown-toggle .caret,.navbar .nav li.dropdown.open.active>.dropdown-toggle .caret{border-top-color:#555;border-bottom-color:#555}.navbar .pull-right>li>.dropdown-menu,.navbar .nav>li>.dropdown-menu.pull-right{right:0;left:auto}.navbar .pull-right>li>.dropdown-menu:before,.navbar .nav>li>.dropdown-menu.pull-right:before{right:12px;left:auto}.navbar .pull-right>li>.dropdown-menu:after,.navbar .nav>li>.dropdown-menu.pull-right:after{right:13px;left:auto}.navbar .pull-right>li>.dropdown-menu .dropdown-menu,.navbar .nav>li>.dropdown-menu.pull-right .dropdown-menu{right:100%;left:auto;margin-right:-1px;margin-left:0;-webkit-border-radius:6px 0 6px 6px;-moz-border-radius:6px 0 6px 6px;border-radius:6px 0 6px 6px}.navbar-inverse{color:#999}.navbar-inverse .navbar-inner{background-color:#1b1b1b;background-image:-moz-linear-gradient(top,#222,#111);background-image:-webkit-gradient(linear,0 0,0 100%,from(#222),to(#111));background-image:-webkit-linear-gradient(top,#222,#111);background-image:-o-linear-gradient(top,#222,#111);background-image:linear-gradient(to bottom,#222,#111);background-repeat:repeat-x;border-color:#252525;filter:progid:dximagetransform.microsoft.gradient(startColorstr='#ff222222',endColorstr='#ff111111',GradientType=0)}.navbar-inverse .brand,.navbar-inverse .nav>li>a{color:#999;text-shadow:0 -1px 0 rgba(0,0,0,0.25)}.navbar-inverse .brand:hover,.navbar-inverse .nav>li>a:hover{color:#fff}.navbar-inverse .nav>li>a:focus,.navbar-inverse .nav>li>a:hover{color:#fff;background-color:transparent}.navbar-inverse .nav .active>a,.navbar-inverse .nav .active>a:hover,.navbar-inverse .nav .active>a:focus{color:#fff;background-color:#111}.navbar-inverse .navbar-link{color:#999}.navbar-inverse .navbar-link:hover{color:#fff}.navbar-inverse .divider-vertical{border-right-color:#222;border-left-color:#111}.navbar-inverse .nav li.dropdown.open>.dropdown-toggle,.navbar-inverse .nav li.dropdown.active>.dropdown-toggle,.navbar-inverse .nav li.dropdown.open.active>.dropdown-toggle{color:#fff;background-color:#111}.navbar-inverse .nav li.dropdown>.dropdown-toggle .caret{border-top-color:#999;border-bottom-color:#999}.navbar-inverse .nav li.dropdown.open>.dropdown-toggle .caret,.navbar-inverse .nav li.dropdown.active>.dropdown-toggle .caret,.navbar-inverse .nav li.dropdown.open.active>.dropdown-toggle .caret{border-top-color:#fff;border-bottom-color:#fff}.navbar-inverse .navbar-search .search-query{color:#fff;background-color:#515151;border-color:#111;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1),0 1px 0 rgba(255,255,255,0.15);-moz-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1),0 1px 0 rgba(255,255,255,0.15);box-shadow:inset 0 1px 2px rgba(0,0,0,0.1),0 1px 0 rgba(255,255,255,0.15);-webkit-transition:none;-moz-transition:none;-o-transition:none;transition:none}.navbar-inverse .navbar-search .search-query:-moz-placeholder{color:#ccc}.navbar-inverse .navbar-search .search-query:-ms-input-placeholder{color:#ccc}.navbar-inverse .navbar-search .search-query::-webkit-input-placeholder{color:#ccc}.navbar-inverse .navbar-search .search-query:focus,.navbar-inverse .navbar-search .search-query.focused{padding:5px 15px;color:#333;text-shadow:0 1px 0 #fff;background-color:#fff;border:0;outline:0;-webkit-box-shadow:0 0 3px rgba(0,0,0,0.15);-moz-box-shadow:0 0 3px rgba(0,0,0,0.15);box-shadow:0 0 3px rgba(0,0,0,0.15)}.navbar-inverse .btn-navbar{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#0e0e0e;*background-color:#040404;background-image:-webkit-gradient(linear,0 0,0 100%,from(#151515),to(#040404));background-image:-webkit-linear-gradient(top,#151515,#040404);background-image:-o-linear-gradient(top,#151515,#040404);background-image:linear-gradient(to bottom,#151515,#040404);background-image:-moz-linear-gradient(top,#151515,#040404);background-repeat:repeat-x;border-color:#040404 #040404 #000;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:dximagetransform.microsoft.gradient(startColorstr='#ff151515',endColorstr='#ff040404',GradientType=0);filter:progid:dximagetransform.microsoft.gradient(enabled=false)}.navbar-inverse .btn-navbar:hover,.navbar-inverse .btn-navbar:active,.navbar-inverse .btn-navbar.active,.navbar-inverse .btn-navbar.disabled,.navbar-inverse .btn-navbar[disabled]{color:#fff;background-color:#040404;*background-color:#000}.navbar-inverse .btn-navbar:active,.navbar-inverse .btn-navbar.active{background-color:#000 \9}.breadcrumb{padding:8px 15px;margin:0 0 20px;list-style:none;background-color:#f5f5f5;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.breadcrumb li{display:inline-block;*display:inline;text-shadow:0 1px 0 #fff;*zoom:1}.breadcrumb .divider{padding:0 5px;color:#ccc}.breadcrumb .active{color:#999}.pagination{height:40px;margin:20px 0}.pagination ul{display:inline-block;*display:inline;margin-bottom:0;margin-left:0;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;*zoom:1;-webkit-box-shadow:0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:0 1px 2px rgba(0,0,0,0.05);box-shadow:0 1px 2px rgba(0,0,0,0.05)}.pagination ul>li{display:inline}.pagination ul>li>a,.pagination ul>li>span{float:left;padding:0 14px;line-height:38px;text-decoration:none;background-color:#fff;border:1px solid #ddd;border-left-width:0}.pagination ul>li>a:hover,.pagination ul>.active>a,.pagination ul>.active>span{background-color:#f5f5f5}.pagination ul>.active>a,.pagination ul>.active>span{color:#999;cursor:default}.pagination ul>.disabled>span,.pagination ul>.disabled>a,.pagination ul>.disabled>a:hover{color:#999;cursor:default;background-color:transparent}.pagination ul>li:first-child>a,.pagination ul>li:first-child>span{border-left-width:1px;-webkit-border-radius:3px 0 0 3px;-moz-border-radius:3px 0 0 3px;border-radius:3px 0 0 3px}.pagination ul>li:last-child>a,.pagination ul>li:last-child>span{-webkit-border-radius:0 3px 3px 0;-moz-border-radius:0 3px 3px 0;border-radius:0 3px 3px 0}.pagination-centered{text-align:center}.pagination-right{text-align:right}.pager{margin:20px 0;text-align:center;list-style:none;*zoom:1}.pager:before,.pager:after{display:table;line-height:0;content:""}.pager:after{clear:both}.pager li{display:inline}.pager a,.pager span{display:inline-block;padding:5px 14px;background-color:#fff;border:1px solid #ddd;-webkit-border-radius:15px;-moz-border-radius:15px;border-radius:15px}.pager a:hover{text-decoration:none;background-color:#f5f5f5}.pager .next a,.pager .next span{float:right}.pager .previous a{float:left}.pager .disabled a,.pager .disabled a:hover,.pager .disabled span{color:#999;cursor:default;background-color:#fff}.modal-open .modal .dropdown-menu{z-index:2050}.modal-open .modal .dropdown.open{*z-index:2050}.modal-open .modal .popover{z-index:2060}.modal-open .modal .tooltip{z-index:2080}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000}.modal-backdrop.fade{opacity:0}.modal-backdrop,.modal-backdrop.fade.in{opacity:.8;filter:alpha(opacity=80)}.modal{position:fixed;top:50%;left:50%;z-index:1050;width:560px;margin:-250px 0 0 -280px;overflow:auto;background-color:#fff;border:1px solid #999;border:1px solid rgba(0,0,0,0.3);*border:1px solid #999;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 3px 7px rgba(0,0,0,0.3);-moz-box-shadow:0 3px 7px rgba(0,0,0,0.3);box-shadow:0 3px 7px rgba(0,0,0,0.3);-webkit-background-clip:padding-box;-moz-background-clip:padding-box;background-clip:padding-box}.modal.fade{top:-25%;-webkit-transition:opacity .3s linear,top .3s ease-out;-moz-transition:opacity .3s linear,top .3s ease-out;-o-transition:opacity .3s linear,top .3s ease-out;transition:opacity .3s linear,top .3s ease-out}.modal.fade.in{top:50%}.modal-header{padding:9px 15px;border-bottom:1px solid #eee}.modal-header .close{margin-top:2px}.modal-header h3{margin:0;line-height:30px}.modal-body{max-height:400px;padding:15px;overflow-y:auto}.modal-form{margin-bottom:0}.modal-footer{padding:14px 15px 15px;margin-bottom:0;text-align:right;background-color:#f5f5f5;border-top:1px solid #ddd;-webkit-border-radius:0 0 6px 6px;-moz-border-radius:0 0 6px 6px;border-radius:0 0 6px 6px;*zoom:1;-webkit-box-shadow:inset 0 1px 0 #fff;-moz-box-shadow:inset 0 1px 0 #fff;box-shadow:inset 0 1px 0 #fff}.modal-footer:before,.modal-footer:after{display:table;line-height:0;content:""}.modal-footer:after{clear:both}.modal-footer .btn+.btn{margin-bottom:0;margin-left:5px}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.tooltip{position:absolute;z-index:1030;display:block;padding:5px;font-size:11px;opacity:0;filter:alpha(opacity=0);visibility:visible}.tooltip.in{opacity:.8;filter:alpha(opacity=80)}.tooltip.top{margin-top:-3px}.tooltip.right{margin-left:3px}.tooltip.bottom{margin-top:3px}.tooltip.left{margin-left:-3px}.tooltip-inner{max-width:200px;padding:3px 8px;color:#fff;text-align:center;text-decoration:none;background-color:#000;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-top-color:#000;border-width:5px 5px 0}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-right-color:#000;border-width:5px 5px 5px 0}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-left-color:#000;border-width:5px 0 5px 5px}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-bottom-color:#000;border-width:0 5px 5px}.popover{position:absolute;top:0;left:0;z-index:1010;display:none;width:236px;padding:1px;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.2);-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,0.2);-moz-box-shadow:0 5px 10px rgba(0,0,0,0.2);box-shadow:0 5px 10px rgba(0,0,0,0.2);-webkit-background-clip:padding-box;-moz-background-clip:padding;background-clip:padding-box}.popover.top{margin-bottom:10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-right:10px}.popover-title{padding:8px 14px;margin:0;font-size:14px;font-weight:normal;line-height:18px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;-webkit-border-radius:5px 5px 0 0;-moz-border-radius:5px 5px 0 0;border-radius:5px 5px 0 0}.popover-content{padding:9px 14px}.popover-content p,.popover-content ul,.popover-content ol{margin-bottom:0}.popover .arrow,.popover .arrow:after{position:absolute;display:inline-block;width:0;height:0;border-color:transparent;border-style:solid}.popover .arrow:after{z-index:-1;content:""}.popover.top .arrow{bottom:-10px;left:50%;margin-left:-10px;border-top-color:#fff;border-width:10px 10px 0}.popover.top .arrow:after{bottom:-1px;left:-11px;border-top-color:rgba(0,0,0,0.25);border-width:11px 11px 0}.popover.right .arrow{top:50%;left:-10px;margin-top:-10px;border-right-color:#fff;border-width:10px 10px 10px 0}.popover.right .arrow:after{bottom:-11px;left:-1px;border-right-color:rgba(0,0,0,0.25);border-width:11px 11px 11px 0}.popover.bottom .arrow{top:-10px;left:50%;margin-left:-10px;border-bottom-color:#fff;border-width:0 10px 10px}.popover.bottom .arrow:after{top:-1px;left:-11px;border-bottom-color:rgba(0,0,0,0.25);border-width:0 11px 11px}.popover.left .arrow{top:50%;right:-10px;margin-top:-10px;border-left-color:#fff;border-width:10px 0 10px 10px}.popover.left .arrow:after{right:-1px;bottom:-11px;border-left-color:rgba(0,0,0,0.25);border-width:11px 0 11px 11px}.thumbnails{margin-left:-20px;list-style:none;*zoom:1}.thumbnails:before,.thumbnails:after{display:table;line-height:0;content:""}.thumbnails:after{clear:both}.row-fluid .thumbnails{margin-left:0}.thumbnails>li{float:left;margin-bottom:20px;margin-left:20px}.thumbnail{display:block;padding:4px;line-height:20px;border:1px solid #ddd;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:0 1px 3px rgba(0,0,0,0.055);-moz-box-shadow:0 1px 3px rgba(0,0,0,0.055);box-shadow:0 1px 3px rgba(0,0,0,0.055);-webkit-transition:all .2s ease-in-out;-moz-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out}a.thumbnail:hover{border-color:#08c;-webkit-box-shadow:0 1px 4px rgba(0,105,214,0.25);-moz-box-shadow:0 1px 4px rgba(0,105,214,0.25);box-shadow:0 1px 4px rgba(0,105,214,0.25)}.thumbnail>img{display:block;max-width:100%;margin-right:auto;margin-left:auto}.thumbnail .caption{padding:9px;color:#555}.label,.badge{font-size:11.844px;font-weight:bold;line-height:14px;color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);white-space:nowrap;vertical-align:baseline;background-color:#999}.label{padding:1px 4px 2px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.badge{padding:1px 9px 2px;-webkit-border-radius:9px;-moz-border-radius:9px;border-radius:9px}a.label:hover,a.badge:hover{color:#fff;text-decoration:none;cursor:pointer}.label-important,.badge-important{background-color:#b94a48}.label-important[href],.badge-important[href]{background-color:#953b39}.label-warning,.badge-warning{background-color:#f89406}.label-warning[href],.badge-warning[href]{background-color:#c67605}.label-success,.badge-success{background-color:#468847}.label-success[href],.badge-success[href]{background-color:#356635}.label-info,.badge-info{background-color:#3a87ad}.label-info[href],.badge-info[href]{background-color:#2d6987}.label-inverse,.badge-inverse{background-color:#333}.label-inverse[href],.badge-inverse[href]{background-color:#1a1a1a}.btn .label,.btn .badge{position:relative;top:-1px}.btn-mini .label,.btn-mini .badge{top:0}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-moz-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-ms-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-o-keyframes progress-bar-stripes{from{background-position:0 0}to{background-position:40px 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{height:20px;margin-bottom:20px;overflow:hidden;background-color:#f7f7f7;background-image:-moz-linear-gradient(top,#f5f5f5,#f9f9f9);background-image:-webkit-gradient(linear,0 0,0 100%,from(#f5f5f5),to(#f9f9f9));background-image:-webkit-linear-gradient(top,#f5f5f5,#f9f9f9);background-image:-o-linear-gradient(top,#f5f5f5,#f9f9f9);background-image:linear-gradient(to bottom,#f5f5f5,#f9f9f9);background-repeat:repeat-x;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;filter:progid:dximagetransform.microsoft.gradient(startColorstr='#fff5f5f5',endColorstr='#fff9f9f9',GradientType=0);-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1);-moz-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1);box-shadow:inset 0 1px 2px rgba(0,0,0,0.1)}.progress .bar{float:left;width:0;height:100%;font-size:12px;color:#fff;text-align:center;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#0e90d2;background-image:-moz-linear-gradient(top,#149bdf,#0480be);background-image:-webkit-gradient(linear,0 0,0 100%,from(#149bdf),to(#0480be));background-image:-webkit-linear-gradient(top,#149bdf,#0480be);background-image:-o-linear-gradient(top,#149bdf,#0480be);background-image:linear-gradient(to bottom,#149bdf,#0480be);background-repeat:repeat-x;filter:progid:dximagetransform.microsoft.gradient(startColorstr='#ff149bdf',endColorstr='#ff0480be',GradientType=0);-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);-moz-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;-webkit-transition:width .6s ease;-moz-transition:width .6s ease;-o-transition:width .6s ease;transition:width .6s ease}.progress .bar+.bar{-webkit-box-shadow:inset 1px 0 0 rgba(0,0,0,0.15),inset 0 -1px 0 rgba(0,0,0,0.15);-moz-box-shadow:inset 1px 0 0 rgba(0,0,0,0.15),inset 0 -1px 0 rgba(0,0,0,0.15);box-shadow:inset 1px 0 0 rgba(0,0,0,0.15),inset 0 -1px 0 rgba(0,0,0,0.15)}.progress-striped .bar{background-color:#149bdf;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);-webkit-background-size:40px 40px;-moz-background-size:40px 40px;-o-background-size:40px 40px;background-size:40px 40px}.progress.active .bar{-webkit-animation:progress-bar-stripes 2s linear infinite;-moz-animation:progress-bar-stripes 2s linear infinite;-ms-animation:progress-bar-stripes 2s linear infinite;-o-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-danger .bar,.progress .bar-danger{background-color:#dd514c;background-image:-moz-linear-gradient(top,#ee5f5b,#c43c35);background-image:-webkit-gradient(linear,0 0,0 100%,from(#ee5f5b),to(#c43c35));background-image:-webkit-linear-gradient(top,#ee5f5b,#c43c35);background-image:-o-linear-gradient(top,#ee5f5b,#c43c35);background-image:linear-gradient(to bottom,#ee5f5b,#c43c35);background-repeat:repeat-x;filter:progid:dximagetransform.microsoft.gradient(startColorstr='#ffee5f5b',endColorstr='#ffc43c35',GradientType=0)}.progress-danger.progress-striped .bar,.progress-striped .bar-danger{background-color:#ee5f5b;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent)}.progress-success .bar,.progress .bar-success{background-color:#5eb95e;background-image:-moz-linear-gradient(top,#62c462,#57a957);background-image:-webkit-gradient(linear,0 0,0 100%,from(#62c462),to(#57a957));background-image:-webkit-linear-gradient(top,#62c462,#57a957);background-image:-o-linear-gradient(top,#62c462,#57a957);background-image:linear-gradient(to bottom,#62c462,#57a957);background-repeat:repeat-x;filter:progid:dximagetransform.microsoft.gradient(startColorstr='#ff62c462',endColorstr='#ff57a957',GradientType=0)}.progress-success.progress-striped .bar,.progress-striped .bar-success{background-color:#62c462;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent)}.progress-info .bar,.progress .bar-info{background-color:#4bb1cf;background-image:-moz-linear-gradient(top,#5bc0de,#339bb9);background-image:-webkit-gradient(linear,0 0,0 100%,from(#5bc0de),to(#339bb9));background-image:-webkit-linear-gradient(top,#5bc0de,#339bb9);background-image:-o-linear-gradient(top,#5bc0de,#339bb9);background-image:linear-gradient(to bottom,#5bc0de,#339bb9);background-repeat:repeat-x;filter:progid:dximagetransform.microsoft.gradient(startColorstr='#ff5bc0de',endColorstr='#ff339bb9',GradientType=0)}.progress-info.progress-striped .bar,.progress-striped .bar-info{background-color:#5bc0de;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent)}.progress-warning .bar,.progress .bar-warning{background-color:#faa732;background-image:-moz-linear-gradient(top,#fbb450,#f89406);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fbb450),to(#f89406));background-image:-webkit-linear-gradient(top,#fbb450,#f89406);background-image:-o-linear-gradient(top,#fbb450,#f89406);background-image:linear-gradient(to bottom,#fbb450,#f89406);background-repeat:repeat-x;filter:progid:dximagetransform.microsoft.gradient(startColorstr='#fffbb450',endColorstr='#fff89406',GradientType=0)}.progress-warning.progress-striped .bar,.progress-striped .bar-warning{background-color:#fbb450;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent)}.accordion{margin-bottom:20px}.accordion-group{margin-bottom:2px;border:1px solid #e5e5e5;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.accordion-heading{border-bottom:0}.accordion-heading .accordion-toggle{display:block;padding:8px 15px}.accordion-toggle{cursor:pointer}.accordion-inner{padding:9px 15px;border-top:1px solid #e5e5e5}.carousel{position:relative;margin-bottom:20px;line-height:1}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel .item{position:relative;display:none;-webkit-transition:.6s ease-in-out left;-moz-transition:.6s ease-in-out left;-o-transition:.6s ease-in-out left;transition:.6s ease-in-out left}.carousel .item>img{display:block;line-height:1}.carousel .active,.carousel .next,.carousel .prev{display:block}.carousel .active{left:0}.carousel .next,.carousel .prev{position:absolute;top:0;width:100%}.carousel .next{left:100%}.carousel .prev{left:-100%}.carousel .next.left,.carousel .prev.right{left:0}.carousel .active.left{left:-100%}.carousel .active.right{left:100%}.carousel-control{position:absolute;top:40%;left:15px;width:40px;height:40px;margin-top:-20px;font-size:60px;font-weight:100;line-height:30px;color:#fff;text-align:center;background:#222;border:3px solid #fff;-webkit-border-radius:23px;-moz-border-radius:23px;border-radius:23px;opacity:.5;filter:alpha(opacity=50)}.carousel-control.right{right:15px;left:auto}.carousel-control:hover{color:#fff;text-decoration:none;opacity:.9;filter:alpha(opacity=90)}.carousel-caption{position:absolute;right:0;bottom:0;left:0;padding:15px;background:#333;background:rgba(0,0,0,0.75)}.carousel-caption h4,.carousel-caption p{line-height:20px;color:#fff}.carousel-caption h4{margin:0 0 5px}.carousel-caption p{margin-bottom:0}.hero-unit{padding:60px;margin-bottom:30px;background-color:#eee;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.hero-unit h1{margin-bottom:0;font-size:60px;line-height:1;letter-spacing:-1px;color:inherit}.hero-unit p{font-size:18px;font-weight:200;line-height:30px;color:inherit}.pull-right{float:right}.pull-left{float:left}.hide{display:none}.show{display:block}.invisible{visibility:hidden}.affix{position:fixed}
diff --git a/wqflask/wqflask/static/packages/bootstrap-old/css/docs.css b/wqflask/wqflask/static/packages/bootstrap-old/css/docs.css
deleted file mode 100755
index 7efd72cd..00000000
--- a/wqflask/wqflask/static/packages/bootstrap-old/css/docs.css
+++ /dev/null
@@ -1,1001 +0,0 @@
-/* Add additional stylesheets below
--------------------------------------------------- */
-/*
-  Bootstrap's documentation styles
-  Special styles for presenting Bootstrap's documentation and examples
-*/
-
-
-
-/* Body and structure
--------------------------------------------------- */
-
-body {
-  position: relative;
-  padding-top: 40px;
-}
-
-/* Code in headings */
-h3 code {
-  font-size: 14px;
-  font-weight: normal;
-}
-
-
-
-/* Tweak navbar brand link to be super sleek
--------------------------------------------------- */
-
-body > .navbar {
-  font-size: 13px;
-}
-
-/* Change the docs' brand */
-body > .navbar .brand {
-  padding-right: 0;
-  padding-left: 0;
-  margin-left: 20px;
-  float: right;
-  font-weight: bold;
-  color: #000;
-  text-shadow: 0 1px 0 rgba(255,255,255,.1), 0 0 30px rgba(255,255,255,.125);
-  -webkit-transition: all .2s linear;
-     -moz-transition: all .2s linear;
-          transition: all .2s linear;
-}
-body > .navbar .brand:hover {
-  text-decoration: none;
-  text-shadow: 0 1px 0 rgba(255,255,255,.1), 0 0 30px rgba(255,255,255,.4);
-}
-
-
-/* Sections
--------------------------------------------------- */
-
-/* padding for in-page bookmarks and fixed navbar */
-section {
-  padding-top: 30px;
-}
-section > .page-header,
-section > .lead {
-  color: #5a5a5a;
-}
-section > ul li {
-  margin-bottom: 5px;
-}
-
-/* Separators (hr) */
-.bs-docs-separator {
-  margin: 40px 0 39px;
-}
-
-/* Faded out hr */
-hr.soften {
-  height: 1px;
-  margin: 70px 0;
-  background-image: -webkit-linear-gradient(left, rgba(0,0,0,0), rgba(0,0,0,.1), rgba(0,0,0,0));
-  background-image:    -moz-linear-gradient(left, rgba(0,0,0,0), rgba(0,0,0,.1), rgba(0,0,0,0));
-  background-image:     -ms-linear-gradient(left, rgba(0,0,0,0), rgba(0,0,0,.1), rgba(0,0,0,0));
-  background-image:      -o-linear-gradient(left, rgba(0,0,0,0), rgba(0,0,0,.1), rgba(0,0,0,0));
-  border: 0;
-}
-
-
-
-/* Jumbotrons
--------------------------------------------------- */
-
-/* Base class
-------------------------- */
-.jumbotron {
-  position: relative;
-  padding: 40px 0;
-  color: #fff;
-  text-align: center;
-  text-shadow: 0 1px 3px rgba(0,0,0,.4), 0 0 30px rgba(0,0,0,.075);
-  background: #020031; /* Old browsers */
-  background: -moz-linear-gradient(45deg,  #020031 0%, #6d3353 100%); /* FF3.6+ */
-  background: -webkit-gradient(linear, left bottom, right top, color-stop(0%,#020031), color-stop(100%,#6d3353)); /* Chrome,Safari4+ */
-  background: -webkit-linear-gradient(45deg,  #020031 0%,#6d3353 100%); /* Chrome10+,Safari5.1+ */
-  background: -o-linear-gradient(45deg,  #020031 0%,#6d3353 100%); /* Opera 11.10+ */
-  background: -ms-linear-gradient(45deg,  #020031 0%,#6d3353 100%); /* IE10+ */
-  background: linear-gradient(45deg,  #020031 0%,#6d3353 100%); /* W3C */
-  filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#020031', endColorstr='#6d3353',GradientType=1 ); /* IE6-9 fallback on horizontal gradient */
-  -webkit-box-shadow: inset 0 3px 7px rgba(0,0,0,.2), inset 0 -3px 7px rgba(0,0,0,.2);
-     -moz-box-shadow: inset 0 3px 7px rgba(0,0,0,.2), inset 0 -3px 7px rgba(0,0,0,.2);
-          box-shadow: inset 0 3px 7px rgba(0,0,0,.2), inset 0 -3px 7px rgba(0,0,0,.2);
-}
-.jumbotron h1 {
-  font-size: 80px;
-  font-weight: bold;
-  letter-spacing: -1px;
-  line-height: 1;
-}
-.jumbotron p {
-  font-size: 24px;
-  font-weight: 300;
-  line-height: 30px;
-  margin-bottom: 30px;
-}
-
-/* Link styles (used on .masthead-links as well) */
-.jumbotron a {
-  color: #fff;
-  color: rgba(255,255,255,.5);
-  -webkit-transition: all .2s ease-in-out;
-     -moz-transition: all .2s ease-in-out;
-          transition: all .2s ease-in-out;
-}
-.jumbotron a:hover {
-  color: #fff;
-  text-shadow: 0 0 10px rgba(255,255,255,.25);
-}
-
-/* Download button */
-.masthead .btn {
-  padding: 14px 24px;
-  font-size: 24px;
-  font-weight: 200;
-  color: #fff; /* redeclare to override the `.jumbotron a` */
-  border: 0;
-  -webkit-border-radius: 6px;
-     -moz-border-radius: 6px;
-          border-radius: 6px;
-  -webkit-box-shadow: inset 0 1px 0 rgba(255,255,255,.1), 0 1px 5px rgba(0,0,0,.25);
-     -moz-box-shadow: inset 0 1px 0 rgba(255,255,255,.1), 0 1px 5px rgba(0,0,0,.25);
-          box-shadow: inset 0 1px 0 rgba(255,255,255,.1), 0 1px 5px rgba(0,0,0,.25);
-  -webkit-transition: none;
-     -moz-transition: none;
-          transition: none;
-}
-.masthead .btn:hover {
-  -webkit-box-shadow: inset 0 1px 0 rgba(255,255,255,.1), 0 1px 5px rgba(0,0,0,.25);
-     -moz-box-shadow: inset 0 1px 0 rgba(255,255,255,.1), 0 1px 5px rgba(0,0,0,.25);
-          box-shadow: inset 0 1px 0 rgba(255,255,255,.1), 0 1px 5px rgba(0,0,0,.25);
-}
-.masthead .btn:active {
-  -webkit-box-shadow: inset 0 2px 4px rgba(0,0,0,.1), 0 1px 0 rgba(255,255,255,.1);
-     -moz-box-shadow: inset 0 2px 4px rgba(0,0,0,.1), 0 1px 0 rgba(255,255,255,.1);
-          box-shadow: inset 0 2px 4px rgba(0,0,0,.1), 0 1px 0 rgba(255,255,255,.1);
-}
-
-
-/* Pattern overlay
-------------------------- */
-.jumbotron .container {
-  position: relative;
-  z-index: 2;
-}
-.jumbotron:after {
-  content: '';
-  display: block;
-  position: absolute;
-  top: 0;
-  right: 0;
-  bottom: 0;
-  left: 0;
-  background: url(../img/bs-docs-masthead-pattern.png) repeat center center;
-  opacity: .4;
-}
-
-/* Masthead (docs home)
-------------------------- */
-.masthead {
-  padding: 70px 0 80px;
-  margin-bottom: 0;
-  color: #fff;
-}
-.masthead h1 {
-  font-size: 120px;
-  line-height: 1;
-  letter-spacing: -2px;
-}
-.masthead p {
-  font-size: 40px;
-  font-weight: 200;
-  line-height: 1.25;
-}
-
-/* Textual links in masthead */
-.masthead-links {
-  margin: 0;
-  list-style: none;
-}
-.masthead-links li {
-  display: inline;
-  padding: 0 10px;
-  color: rgba(255,255,255,.25);
-}
-
-/* Social proof buttons from GitHub & Twitter */
-.bs-docs-social {
-  padding: 15px 0;
-  text-align: center;
-  background-color: #f5f5f5;
-  border-top: 1px solid #fff;
-  border-bottom: 1px solid #ddd;
-}
-
-/* Quick links on Home */
-.bs-docs-social-buttons {
-  margin-left: 0;
-  margin-bottom: 0;
-  padding-left: 0;
-  list-style: none;
-}
-.bs-docs-social-buttons li {
-  display: inline-block;
-  padding: 5px 8px;
-  line-height: 1;
-  *display: inline;
-  *zoom: 1;
-}
-
-/* Subhead (other pages)
-------------------------- */
-.subhead {
-  text-align: left;
-  border-bottom: 1px solid #ddd;
-}
-.subhead h1 {
-  font-size: 60px;
-}
-.subhead p {
-  margin-bottom: 20px;
-}
-.subhead .navbar {
-  display: none;
-}
-
-
-
-/* Marketing section of Overview
--------------------------------------------------- */
-
-.marketing {
-  text-align: center;
-  color: #5a5a5a;
-}
-.marketing h1 {
-  margin: 60px 0 10px;
-  font-size: 60px;
-  font-weight: 200;
-  line-height: 1;
-  letter-spacing: -1px;
-}
-.marketing h2 {
-  font-weight: 200;
-  margin-bottom: 5px;
-}
-.marketing p {
-  font-size: 16px;
-  line-height: 1.5;
-}
-.marketing .marketing-byline {
-  margin-bottom: 40px;
-  font-size: 20px;
-  font-weight: 300;
-  line-height: 25px;
-  color: #999;
-}
-.marketing img {
-  display: block;
-  margin: 0 auto 30px;
-}
-
-
-
-/* Footer
--------------------------------------------------- */
-
-.footer {
-  padding: 70px 0;
-  margin-top: 70px;
-  border-top: 1px solid #e5e5e5;
-  background-color: #f5f5f5;
-}
-.footer p {
-  margin-bottom: 0;
-  color: #777;
-}
-.footer-links {
-  margin: 10px 0;
-}
-.footer-links li {
-  display: inline;
-  margin-right: 10px;
-}
-
-
-
-/* Special grid styles
--------------------------------------------------- */
-
-.show-grid {
-  margin-top: 10px;
-  margin-bottom: 20px;
-}
-.show-grid [class*="span"] {
-  background-color: #eee;
-  text-align: center;
-  -webkit-border-radius: 3px;
-     -moz-border-radius: 3px;
-          border-radius: 3px;
-  min-height: 40px;
-  line-height: 40px;
-}
-.show-grid:hover [class*="span"] {
-  background: #ddd;
-}
-.show-grid .show-grid {
-  margin-top: 0;
-  margin-bottom: 0;
-}
-.show-grid .show-grid [class*="span"] {
-  background-color: #ccc;
-}
-
-
-
-/* Mini layout previews
--------------------------------------------------- */
-.mini-layout {
-  border: 1px solid #ddd;
-  -webkit-border-radius: 6px;
-     -moz-border-radius: 6px;
-          border-radius: 6px;
-  -webkit-box-shadow: 0 1px 2px rgba(0,0,0,.075);
-     -moz-box-shadow: 0 1px 2px rgba(0,0,0,.075);
-          box-shadow: 0 1px 2px rgba(0,0,0,.075);
-}
-.mini-layout,
-.mini-layout .mini-layout-body,
-.mini-layout.fluid .mini-layout-sidebar {
-  height: 300px;
-}
-.mini-layout {
-  margin-bottom: 20px;
-  padding: 9px;
-}
-.mini-layout div {
-  -webkit-border-radius: 3px;
-     -moz-border-radius: 3px;
-          border-radius: 3px;
-}
-.mini-layout .mini-layout-body {
-  background-color: #dceaf4;
-  margin: 0 auto;
-  width: 70%;
-}
-.mini-layout.fluid .mini-layout-sidebar,
-.mini-layout.fluid .mini-layout-header,
-.mini-layout.fluid .mini-layout-body {
-  float: left;
-}
-.mini-layout.fluid .mini-layout-sidebar {
-  background-color: #bbd8e9;
-  width: 20%;
-}
-.mini-layout.fluid .mini-layout-body {
-  width: 77.5%;
-  margin-left: 2.5%;
-}
-
-
-
-/* Download page
--------------------------------------------------- */
-
-.download .page-header {
-  margin-top: 36px;
-}
-.page-header .toggle-all {
-  margin-top: 5px;
-}
-
-/* Space out h3s when following a section */
-.download h3 {
-  margin-bottom: 5px;
-}
-.download-builder input + h3,
-.download-builder .checkbox + h3 {
-  margin-top: 9px;
-}
-
-/* Fields for variables */
-.download-builder input[type=text] {
-  margin-bottom: 9px;
-  font-family: Menlo, Monaco, "Courier New", monospace;
-  font-size: 12px;
-  color: #d14;
-}
-.download-builder input[type=text]:focus {
-  background-color: #fff;
-}
-
-/* Custom, larger checkbox labels */
-.download .checkbox {
-  padding: 6px 10px 6px 25px;
-  font-size: 13px;
-  line-height: 18px;
-  color: #555;
-  background-color: #f9f9f9;
-  -webkit-border-radius: 3px;
-     -moz-border-radius: 3px;
-          border-radius: 3px;
-  cursor: pointer;
-}
-.download .checkbox:hover {
-  color: #333;
-  background-color: #f5f5f5;
-}
-.download .checkbox small {
-  font-size: 12px;
-  color: #777;
-}
-
-/* Variables section */
-#variables label {
-  margin-bottom: 0;
-}
-
-/* Giant download button */
-.download-btn {
-  margin: 36px 0 108px;
-}
-#download p,
-#download h4 {
-  max-width: 50%;
-  margin: 0 auto;
-  color: #999;
-  text-align: center;
-}
-#download h4 {
-  margin-bottom: 0;
-}
-#download p {
-  margin-bottom: 18px;
-}
-.download-btn .btn {
-  display: block;
-  width: auto;
-  padding: 19px 24px;
-  margin-bottom: 27px;
-  font-size: 30px;
-  line-height: 1;
-  text-align: center;
-  -webkit-border-radius: 6px;
-     -moz-border-radius: 6px;
-          border-radius: 6px;
-}
-
-
-
-/* Misc
--------------------------------------------------- */
-
-/* Make tables spaced out a bit more */
-h2 + table,
-h3 + table,
-h4 + table,
-h2 + .row {
-  margin-top: 5px;
-}
-
-/* Example sites showcase */
-.example-sites {
-  xmargin-left: 20px;
-}
-.example-sites img {
-  max-width: 100%;
-  margin: 0 auto;
-}
-
-.scrollspy-example {
-  height: 200px;
-  overflow: auto;
-  position: relative;
-}
-
-
-/* Fake the :focus state to demo it */
-.focused {
-  border-color: rgba(82,168,236,.8);
-  -webkit-box-shadow: inset 0 1px 3px rgba(0,0,0,.1), 0 0 8px rgba(82,168,236,.6);
-     -moz-box-shadow: inset 0 1px 3px rgba(0,0,0,.1), 0 0 8px rgba(82,168,236,.6);
-          box-shadow: inset 0 1px 3px rgba(0,0,0,.1), 0 0 8px rgba(82,168,236,.6);
-  outline: 0;
-}
-
-/* For input sizes, make them display block */
-.docs-input-sizes select,
-.docs-input-sizes input[type=text] {
-  display: block;
-  margin-bottom: 9px;
-}
-
-/* Icons
-------------------------- */
-.the-icons {
-  margin-left: 0;
-  list-style: none;
-}
-.the-icons li {
-  float: left;
-  width: 25%;
-  line-height: 25px;
-}
-.the-icons i:hover {
-  background-color: rgba(255,0,0,.25);
-}
-
-/* Example page
-------------------------- */
-.bootstrap-examples p {
-  font-size: 13px;
-  line-height: 18px;
-}
-.bootstrap-examples .thumbnail {
-  margin-bottom: 9px;
-  background-color: #fff;
-}
-
-
-
-/* Bootstrap code examples
--------------------------------------------------- */
-
-/* Base class */
-.bs-docs-example {
-  position: relative;
-  margin: 15px 0;
-  padding: 39px 19px 14px;
-  *padding-top: 19px;
-  background-color: #fff;
-  border: 1px solid #ddd;
-  -webkit-border-radius: 4px;
-     -moz-border-radius: 4px;
-          border-radius: 4px;
-}
-
-/* Echo out a label for the example */
-.bs-docs-example:after {
-  content: "Results";
-  position: absolute;
-  top: -1px;
-  left: -1px;
-  padding: 3px 7px;
-  font-size: 12px;
-  font-weight: bold;
-  background-color: #f5f5f5;
-  border: 1px solid #ddd;
-  color: #9da0a4;
-  -webkit-border-radius: 4px 0 4px 0;
-     -moz-border-radius: 4px 0 4px 0;
-          border-radius: 4px 0 4px 0;
-}
-
-/* Remove spacing between an example and it's code */
-.bs-docs-example + .prettyprint {
-  margin-top: -20px;
-  padding-top: 15px;
-}
-
-/* Tweak examples
-------------------------- */
-.bs-docs-example > p:last-child {
-  margin-bottom: 0;
-}
-.bs-docs-example .table,
-.bs-docs-example .progress,
-.bs-docs-example .well,
-.bs-docs-example .alert,
-.bs-docs-example .hero-unit,
-.bs-docs-example .pagination,
-.bs-docs-example .navbar,
-.bs-docs-example > .nav,
-.bs-docs-example blockquote {
-  margin-bottom: 5px;
-}
-.bs-docs-example .pagination {
-  margin-top: 0;
-}
-.bs-navbar-top-example,
-.bs-navbar-bottom-example {
-  z-index: 1;
-  padding: 0;
-  height: 90px;
-  overflow: hidden; /* cut the drop shadows off */
-}
-.bs-navbar-top-example .navbar-fixed-top,
-.bs-navbar-bottom-example .navbar-fixed-bottom {
-  margin-left: 0;
-  margin-right: 0;
-}
-.bs-navbar-top-example {
-  -webkit-border-radius: 0 0 4px 4px;
-     -moz-border-radius: 0 0 4px 4px;
-          border-radius: 0 0 4px 4px;
-}
-.bs-navbar-top-example:after {
-  top: auto;
-  bottom: -1px;
-  -webkit-border-radius: 0 4px 0 4px;
-     -moz-border-radius: 0 4px 0 4px;
-          border-radius: 0 4px 0 4px;
-}
-.bs-navbar-bottom-example {
-  -webkit-border-radius: 4px 4px 0 0;
-     -moz-border-radius: 4px 4px 0 0;
-          border-radius: 4px 4px 0 0;
-}
-.bs-navbar-bottom-example .navbar {
-  margin-bottom: 0;
-}
-form.bs-docs-example {
-  padding-bottom: 19px;
-}
-
-/* Images */
-.bs-docs-example-images img {
-  margin: 10px;
-  display: inline-block;
-}
-
-/* Tooltips */
-.bs-docs-tooltip-examples {
-  text-align: center;
-  margin: 0 0 10px;
-  list-style: none;
-}
-.bs-docs-tooltip-examples li {
-  display: inline;
-  padding: 0 10px;
-}
-
-/* Popovers */
-.bs-docs-example-popover {
-  padding-bottom: 24px;
-  background-color: #f9f9f9;
-}
-.bs-docs-example-popover .popover {
-  position: relative;
-  display: block;
-  float: left;
-  width: 260px;
-  margin: 20px;
-}
-
-
-
-/* Responsive docs
--------------------------------------------------- */
-
-/* Utility classes table
-------------------------- */
-.responsive-utilities th small {
-  display: block;
-  font-weight: normal;
-  color: #999;
-}
-.responsive-utilities tbody th {
-  font-weight: normal;
-}
-.responsive-utilities td {
-  text-align: center;
-}
-.responsive-utilities td.is-visible {
-  color: #468847;
-  background-color: #dff0d8 !important;
-}
-.responsive-utilities td.is-hidden {
-  color: #ccc;
-  background-color: #f9f9f9 !important;
-}
-
-/* Responsive tests
-------------------------- */
-.responsive-utilities-test {
-  margin-top: 5px;
-  margin-left: 0;
-  list-style: none;
-  overflow: hidden; /* clear floats */
-}
-.responsive-utilities-test li {
-  position: relative;
-  float: left;
-  width: 25%;
-  height: 43px;
-  font-size: 14px;
-  font-weight: bold;
-  line-height: 43px;
-  color: #999;
-  text-align: center;
-  border: 1px solid #ddd;
-  -webkit-border-radius: 4px;
-     -moz-border-radius: 4px;
-          border-radius: 4px;
-}
-.responsive-utilities-test li + li {
-  margin-left: 10px;
-}
-.responsive-utilities-test span {
-  position: absolute;
-  top:    -1px;
-  left:   -1px;
-  right:  -1px;
-  bottom: -1px;
-  -webkit-border-radius: 4px;
-     -moz-border-radius: 4px;
-          border-radius: 4px;
-}
-.responsive-utilities-test span {
-  color: #468847;
-  background-color: #dff0d8;
-  border: 1px solid #d6e9c6;
-}
-
-
-
-/* Sidenav for Docs
--------------------------------------------------- */
-
-.bs-docs-sidenav {
-  width: 228px;
-  margin: 30px 0 0;
-  padding: 0;
-  background-color: #fff;
-  -webkit-border-radius: 6px;
-     -moz-border-radius: 6px;
-          border-radius: 6px;
-  -webkit-box-shadow: 0 1px 4px rgba(0,0,0,.065);
-     -moz-box-shadow: 0 1px 4px rgba(0,0,0,.065);
-          box-shadow: 0 1px 4px rgba(0,0,0,.065);
-}
-.bs-docs-sidenav > li > a {
-  display: block;
-  *width: 190px;
-  margin: 0 0 -1px;
-  padding: 8px 14px;
-  border: 1px solid #e5e5e5;
-}
-.bs-docs-sidenav > li:first-child > a {
-  -webkit-border-radius: 6px 6px 0 0;
-     -moz-border-radius: 6px 6px 0 0;
-          border-radius: 6px 6px 0 0;
-}
-.bs-docs-sidenav > li:last-child > a {
-  -webkit-border-radius: 0 0 6px 6px;
-     -moz-border-radius: 0 0 6px 6px;
-          border-radius: 0 0 6px 6px;
-}
-.bs-docs-sidenav > .active > a {
-  position: relative;
-  z-index: 2;
-  padding: 9px 15px;
-  border: 0;
-  text-shadow: 0 1px 0 rgba(0,0,0,.15);
-  -webkit-box-shadow: inset 1px 0 0 rgba(0,0,0,.1), inset -1px 0 0 rgba(0,0,0,.1);
-     -moz-box-shadow: inset 1px 0 0 rgba(0,0,0,.1), inset -1px 0 0 rgba(0,0,0,.1);
-          box-shadow: inset 1px 0 0 rgba(0,0,0,.1), inset -1px 0 0 rgba(0,0,0,.1);
-}
-/* Chevrons */
-.bs-docs-sidenav .icon-chevron-right {
-  float: right;
-  margin-top: 2px;
-  margin-right: -6px;
-  opacity: .25;
-}
-.bs-docs-sidenav > li > a:hover {
-  background-color: #f5f5f5;
-}
-.bs-docs-sidenav a:hover .icon-chevron-right {
-  opacity: .5;
-}
-.bs-docs-sidenav .active .icon-chevron-right,
-.bs-docs-sidenav .active a:hover .icon-chevron-right {
-  background-image: url(../img/glyphicons-halflings-white.png);
-  opacity: 1;
-}
-.bs-docs-sidenav.affix {
-  top: 40px;
-}
-.bs-docs-sidenav.affix-bottom {
-  position: absolute;
-  top: auto;
-  bottom: 270px;
-}
-
-
-
-
-/* Responsive
--------------------------------------------------- */
-
-/* Desktop large
-------------------------- */
-@media (min-width: 1200px) {
-  .bs-docs-container {
-    max-width: 970px;
-  }
-  .bs-docs-sidenav {
-    width: 258px;
-  }
-}
-
-/* Desktop
-------------------------- */
-@media (max-width: 980px) {
-  /* Unfloat brand */
-  body > .navbar-fixed-top .brand {
-    float: left;
-    margin-left: 0;
-    padding-left: 10px;
-    padding-right: 10px;
-  }
-
-  /* Inline-block quick links for more spacing */
-  .quick-links li {
-    display: inline-block;
-    margin: 5px;
-  }
-
-  /* When affixed, space properly */
-  .bs-docs-sidenav {
-    top: 0;
-    margin-top: 30px;
-    margin-right: 0;
-  }
-}
-
-/* Tablet to desktop
-------------------------- */
-@media (min-width: 768px) and (max-width: 980px) {
-  /* Remove any padding from the body */
-  body {
-    padding-top: 0;
-  }
-  /* Widen masthead and social buttons to fill body padding */
-  .jumbotron {
-    margin-top: -20px; /* Offset bottom margin on .navbar */
-  }
-  /* Adjust sidenav width */
-  .bs-docs-sidenav {
-    width: 166px;
-    margin-top: 20px;
-  }
-  .bs-docs-sidenav.affix {
-    top: 0;
-  }
-}
-
-/* Tablet
-------------------------- */
-@media (max-width: 767px) {
-  /* Remove any padding from the body */
-  body {
-    padding-top: 0;
-  }
-
-  /* Widen masthead and social buttons to fill body padding */
-  .jumbotron {
-    padding: 40px 20px;
-    margin-top:   -20px; /* Offset bottom margin on .navbar */
-    margin-right: -20px;
-    margin-left:  -20px;
-  }
-  .masthead h1 {
-    font-size: 90px;
-  }
-  .masthead p,
-  .masthead .btn {
-    font-size: 24px;
-  }
-  .marketing .span4 {
-    margin-bottom: 40px;
-  }
-  .bs-docs-social {
-    margin: 0 -20px;
-  }
-
-  /* Space out the show-grid examples */
-  .show-grid [class*="span"] {
-    margin-bottom: 5px;
-  }
-
-  /* Sidenav */
-  .bs-docs-sidenav {
-    width: auto;
-    margin-bottom: 20px;
-  }
-  .bs-docs-sidenav.affix {
-    position: static;
-    width: auto;
-    top: 0;
-  }
-
-  /* Unfloat the back to top link in footer */
-  .footer {
-    margin-left: -20px;
-    margin-right: -20px;
-    padding-left: 20px;
-    padding-right: 20px;
-  }
-  .footer p {
-    margin-bottom: 9px;
-  }
-}
-
-/* Landscape phones
-------------------------- */
-@media (max-width: 480px) {
-  /* Remove padding above jumbotron */
-  body {
-    padding-top: 0;
-  }
-
-  /* Change up some type stuff */
-  h2 small {
-    display: block;
-  }
-
-  /* Downsize the jumbotrons */
-  .jumbotron h1 {
-    font-size: 60px;
-  }
-  .jumbotron p,
-  .jumbotron .btn {
-    font-size: 20px;
-  }
-  .jumbotron .btn {
-    display: block;
-    margin: 0 auto;
-  }
-
-  /* center align subhead text like the masthead */
-  .subhead h1,
-  .subhead p {
-    text-align: center;
-  }
-
-  /* Marketing on home */
-  .marketing h1 {
-    font-size: 40px;
-  }
-
-  /* center example sites */
-  .example-sites {
-    margin-left: 0;
-  }
-  .example-sites > li {
-    float: none;
-    display: block;
-    max-width: 280px;
-    margin: 0 auto 18px;
-    text-align: center;
-  }
-  .example-sites .thumbnail > img {
-    max-width: 270px;
-  }
-
-  /* Do our best to make tables work in narrow viewports */
-  table code {
-    white-space: normal;
-    word-wrap: break-word;
-    word-break: break-all;
-  }
-
-  /* Modal example */
-  .modal-example .modal {
-    position: relative;
-    top: auto;
-    right: auto;
-    bottom: auto;
-    left: auto;
-  }
-
-  /* Unfloat the back to top in footer to prevent odd text wrapping */
-  .footer .pull-right {
-    float: none;
-  }
-}
diff --git a/wqflask/wqflask/static/packages/bootstrap-old/img/glyphicons-halflings-white.png b/wqflask/wqflask/static/packages/bootstrap-old/img/glyphicons-halflings-white.png
deleted file mode 100755
index 3bf6484a..00000000
--- a/wqflask/wqflask/static/packages/bootstrap-old/img/glyphicons-halflings-white.png
+++ /dev/null
Binary files differdiff --git a/wqflask/wqflask/static/packages/bootstrap-old/img/glyphicons-halflings.png b/wqflask/wqflask/static/packages/bootstrap-old/img/glyphicons-halflings.png
deleted file mode 100755
index a9969993..00000000
--- a/wqflask/wqflask/static/packages/bootstrap-old/img/glyphicons-halflings.png
+++ /dev/null
Binary files differdiff --git a/wqflask/wqflask/static/packages/bootstrap-old/js/bootstrap.js b/wqflask/wqflask/static/packages/bootstrap-old/js/bootstrap.js
deleted file mode 100755
index f73fcb8e..00000000
--- a/wqflask/wqflask/static/packages/bootstrap-old/js/bootstrap.js
+++ /dev/null
@@ -1,2027 +0,0 @@
-/* ===================================================
- * bootstrap-transition.js v2.1.1
- * http://twitter.github.com/bootstrap/javascript.html#transitions
- * ===================================================
- * Copyright 2012 Twitter, Inc.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ========================================================== */
-
-
-!function ($) {
-
-  $(function () {
-
-    "use strict"; // jshint ;_;
-
-
-    /* CSS TRANSITION SUPPORT (http://www.modernizr.com/)
-     * ======================================================= */
-
-    $.support.transition = (function () {
-
-      var transitionEnd = (function () {
-
-        var el = document.createElement('bootstrap')
-          , transEndEventNames = {
-               'WebkitTransition' : 'webkitTransitionEnd'
-            ,  'MozTransition'    : 'transitionend'
-            ,  'OTransition'      : 'oTransitionEnd otransitionend'
-            ,  'transition'       : 'transitionend'
-            }
-          , name
-
-        for (name in transEndEventNames){
-          if (el.style[name] !== undefined) {
-            return transEndEventNames[name]
-          }
-        }
-
-      }())
-
-      return transitionEnd && {
-        end: transitionEnd
-      }
-
-    })()
-
-  })
-
-}(window.jQuery);/* ==========================================================
- * bootstrap-alert.js v2.1.1
- * http://twitter.github.com/bootstrap/javascript.html#alerts
- * ==========================================================
- * Copyright 2012 Twitter, Inc.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ========================================================== */
-
-
-!function ($) {
-
-  "use strict"; // jshint ;_;
-
-
- /* ALERT CLASS DEFINITION
-  * ====================== */
-
-  var dismiss = '[data-dismiss="alert"]'
-    , Alert = function (el) {
-        $(el).on('click', dismiss, this.close)
-      }
-
-  Alert.prototype.close = function (e) {
-    var $this = $(this)
-      , selector = $this.attr('data-target')
-      , $parent
-
-    if (!selector) {
-      selector = $this.attr('href')
-      selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') //strip for ie7
-    }
-
-    $parent = $(selector)
-
-    e && e.preventDefault()
-
-    $parent.length || ($parent = $this.hasClass('alert') ? $this : $this.parent())
-
-    $parent.trigger(e = $.Event('close'))
-
-    if (e.isDefaultPrevented()) return
-
-    $parent.removeClass('in')
-
-    function removeElement() {
-      $parent
-        .trigger('closed')
-        .remove()
-    }
-
-    $.support.transition && $parent.hasClass('fade') ?
-      $parent.on($.support.transition.end, removeElement) :
-      removeElement()
-  }
-
-
- /* ALERT PLUGIN DEFINITION
-  * ======================= */
-
-  $.fn.alert = function (option) {
-    return this.each(function () {
-      var $this = $(this)
-        , data = $this.data('alert')
-      if (!data) $this.data('alert', (data = new Alert(this)))
-      if (typeof option == 'string') data[option].call($this)
-    })
-  }
-
-  $.fn.alert.Constructor = Alert
-
-
- /* ALERT DATA-API
-  * ============== */
-
-  $(function () {
-    $('body').on('click.alert.data-api', dismiss, Alert.prototype.close)
-  })
-
-}(window.jQuery);/* ============================================================
- * bootstrap-button.js v2.1.1
- * http://twitter.github.com/bootstrap/javascript.html#buttons
- * ============================================================
- * Copyright 2012 Twitter, Inc.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============================================================ */
-
-
-!function ($) {
-
-  "use strict"; // jshint ;_;
-
-
- /* BUTTON PUBLIC CLASS DEFINITION
-  * ============================== */
-
-  var Button = function (element, options) {
-    this.$element = $(element)
-    this.options = $.extend({}, $.fn.button.defaults, options)
-  }
-
-  Button.prototype.setState = function (state) {
-    var d = 'disabled'
-      , $el = this.$element
-      , data = $el.data()
-      , val = $el.is('input') ? 'val' : 'html'
-
-    state = state + 'Text'
-    data.resetText || $el.data('resetText', $el[val]())
-
-    $el[val](data[state] || this.options[state])
-
-    // push to event loop to allow forms to submit
-    setTimeout(function () {
-      state == 'loadingText' ?
-        $el.addClass(d).attr(d, d) :
-        $el.removeClass(d).removeAttr(d)
-    }, 0)
-  }
-
-  Button.prototype.toggle = function () {
-    var $parent = this.$element.closest('[data-toggle="buttons-radio"]')
-
-    $parent && $parent
-      .find('.active')
-      .removeClass('active')
-
-    this.$element.toggleClass('active')
-  }
-
-
- /* BUTTON PLUGIN DEFINITION
-  * ======================== */
-
-  $.fn.button = function (option) {
-    return this.each(function () {
-      var $this = $(this)
-        , data = $this.data('button')
-        , options = typeof option == 'object' && option
-      if (!data) $this.data('button', (data = new Button(this, options)))
-      if (option == 'toggle') data.toggle()
-      else if (option) data.setState(option)
-    })
-  }
-
-  $.fn.button.defaults = {
-    loadingText: 'loading...'
-  }
-
-  $.fn.button.Constructor = Button
-
-
- /* BUTTON DATA-API
-  * =============== */
-
-  $(function () {
-    $('body').on('click.button.data-api', '[data-toggle^=button]', function ( e ) {
-      var $btn = $(e.target)
-      if (!$btn.hasClass('btn')) $btn = $btn.closest('.btn')
-      $btn.button('toggle')
-    })
-  })
-
-}(window.jQuery);/* ==========================================================
- * bootstrap-carousel.js v2.1.1
- * http://twitter.github.com/bootstrap/javascript.html#carousel
- * ==========================================================
- * Copyright 2012 Twitter, Inc.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ========================================================== */
-
-
-!function ($) {
-
-  "use strict"; // jshint ;_;
-
-
- /* CAROUSEL CLASS DEFINITION
-  * ========================= */
-
-  var Carousel = function (element, options) {
-    this.$element = $(element)
-    this.options = options
-    this.options.slide && this.slide(this.options.slide)
-    this.options.pause == 'hover' && this.$element
-      .on('mouseenter', $.proxy(this.pause, this))
-      .on('mouseleave', $.proxy(this.cycle, this))
-  }
-
-  Carousel.prototype = {
-
-    cycle: function (e) {
-      if (!e) this.paused = false
-      this.options.interval
-        && !this.paused
-        && (this.interval = setInterval($.proxy(this.next, this), this.options.interval))
-      return this
-    }
-
-  , to: function (pos) {
-      var $active = this.$element.find('.item.active')
-        , children = $active.parent().children()
-        , activePos = children.index($active)
-        , that = this
-
-      if (pos > (children.length - 1) || pos < 0) return
-
-      if (this.sliding) {
-        return this.$element.one('slid', function () {
-          that.to(pos)
-        })
-      }
-
-      if (activePos == pos) {
-        return this.pause().cycle()
-      }
-
-      return this.slide(pos > activePos ? 'next' : 'prev', $(children[pos]))
-    }
-
-  , pause: function (e) {
-      if (!e) this.paused = true
-      if (this.$element.find('.next, .prev').length && $.support.transition.end) {
-        this.$element.trigger($.support.transition.end)
-        this.cycle()
-      }
-      clearInterval(this.interval)
-      this.interval = null
-      return this
-    }
-
-  , next: function () {
-      if (this.sliding) return
-      return this.slide('next')
-    }
-
-  , prev: function () {
-      if (this.sliding) return
-      return this.slide('prev')
-    }
-
-  , slide: function (type, next) {
-      var $active = this.$element.find('.item.active')
-        , $next = next || $active[type]()
-        , isCycling = this.interval
-        , direction = type == 'next' ? 'left' : 'right'
-        , fallback  = type == 'next' ? 'first' : 'last'
-        , that = this
-        , e = $.Event('slide', {
-            relatedTarget: $next[0]
-          })
-
-      this.sliding = true
-
-      isCycling && this.pause()
-
-      $next = $next.length ? $next : this.$element.find('.item')[fallback]()
-
-      if ($next.hasClass('active')) return
-
-      if ($.support.transition && this.$element.hasClass('slide')) {
-        this.$element.trigger(e)
-        if (e.isDefaultPrevented()) return
-        $next.addClass(type)
-        $next[0].offsetWidth // force reflow
-        $active.addClass(direction)
-        $next.addClass(direction)
-        this.$element.one($.support.transition.end, function () {
-          $next.removeClass([type, direction].join(' ')).addClass('active')
-          $active.removeClass(['active', direction].join(' '))
-          that.sliding = false
-          setTimeout(function () { that.$element.trigger('slid') }, 0)
-        })
-      } else {
-        this.$element.trigger(e)
-        if (e.isDefaultPrevented()) return
-        $active.removeClass('active')
-        $next.addClass('active')
-        this.sliding = false
-        this.$element.trigger('slid')
-      }
-
-      isCycling && this.cycle()
-
-      return this
-    }
-
-  }
-
-
- /* CAROUSEL PLUGIN DEFINITION
-  * ========================== */
-
-  $.fn.carousel = function (option) {
-    return this.each(function () {
-      var $this = $(this)
-        , data = $this.data('carousel')
-        , options = $.extend({}, $.fn.carousel.defaults, typeof option == 'object' && option)
-        , action = typeof option == 'string' ? option : options.slide
-      if (!data) $this.data('carousel', (data = new Carousel(this, options)))
-      if (typeof option == 'number') data.to(option)
-      else if (action) data[action]()
-      else if (options.interval) data.cycle()
-    })
-  }
-
-  $.fn.carousel.defaults = {
-    interval: 5000
-  , pause: 'hover'
-  }
-
-  $.fn.carousel.Constructor = Carousel
-
-
- /* CAROUSEL DATA-API
-  * ================= */
-
-  $(function () {
-    $('body').on('click.carousel.data-api', '[data-slide]', function ( e ) {
-      var $this = $(this), href
-        , $target = $($this.attr('data-target') || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '')) //strip for ie7
-        , options = !$target.data('modal') && $.extend({}, $target.data(), $this.data())
-      $target.carousel(options)
-      e.preventDefault()
-    })
-  })
-
-}(window.jQuery);/* =============================================================
- * bootstrap-collapse.js v2.1.1
- * http://twitter.github.com/bootstrap/javascript.html#collapse
- * =============================================================
- * Copyright 2012 Twitter, Inc.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============================================================ */
-
-
-!function ($) {
-
-  "use strict"; // jshint ;_;
-
-
- /* COLLAPSE PUBLIC CLASS DEFINITION
-  * ================================ */
-
-  var Collapse = function (element, options) {
-    this.$element = $(element)
-    this.options = $.extend({}, $.fn.collapse.defaults, options)
-
-    if (this.options.parent) {
-      this.$parent = $(this.options.parent)
-    }
-
-    this.options.toggle && this.toggle()
-  }
-
-  Collapse.prototype = {
-
-    constructor: Collapse
-
-  , dimension: function () {
-      var hasWidth = this.$element.hasClass('width')
-      return hasWidth ? 'width' : 'height'
-    }
-
-  , show: function () {
-      var dimension
-        , scroll
-        , actives
-        , hasData
-
-      if (this.transitioning) return
-
-      dimension = this.dimension()
-      scroll = $.camelCase(['scroll', dimension].join('-'))
-      actives = this.$parent && this.$parent.find('> .accordion-group > .in')
-
-      if (actives && actives.length) {
-        hasData = actives.data('collapse')
-        if (hasData && hasData.transitioning) return
-        actives.collapse('hide')
-        hasData || actives.data('collapse', null)
-      }
-
-      this.$element[dimension](0)
-      this.transition('addClass', $.Event('show'), 'shown')
-      $.support.transition && this.$element[dimension](this.$element[0][scroll])
-    }
-
-  , hide: function () {
-      var dimension
-      if (this.transitioning) return
-      dimension = this.dimension()
-      this.reset(this.$element[dimension]())
-      this.transition('removeClass', $.Event('hide'), 'hidden')
-      this.$element[dimension](0)
-    }
-
-  , reset: function (size) {
-      var dimension = this.dimension()
-
-      this.$element
-        .removeClass('collapse')
-        [dimension](size || 'auto')
-        [0].offsetWidth
-
-      this.$element[size !== null ? 'addClass' : 'removeClass']('collapse')
-
-      return this
-    }
-
-  , transition: function (method, startEvent, completeEvent) {
-      var that = this
-        , complete = function () {
-            if (startEvent.type == 'show') that.reset()
-            that.transitioning = 0
-            that.$element.trigger(completeEvent)
-          }
-
-      this.$element.trigger(startEvent)
-
-      if (startEvent.isDefaultPrevented()) return
-
-      this.transitioning = 1
-
-      this.$element[method]('in')
-
-      $.support.transition && this.$element.hasClass('collapse') ?
-        this.$element.one($.support.transition.end, complete) :
-        complete()
-    }
-
-  , toggle: function () {
-      this[this.$element.hasClass('in') ? 'hide' : 'show']()
-    }
-
-  }
-
-
- /* COLLAPSIBLE PLUGIN DEFINITION
-  * ============================== */
-
-  $.fn.collapse = function (option) {
-    return this.each(function () {
-      var $this = $(this)
-        , data = $this.data('collapse')
-        , options = typeof option == 'object' && option
-      if (!data) $this.data('collapse', (data = new Collapse(this, options)))
-      if (typeof option == 'string') data[option]()
-    })
-  }
-
-  $.fn.collapse.defaults = {
-    toggle: true
-  }
-
-  $.fn.collapse.Constructor = Collapse
-
-
- /* COLLAPSIBLE DATA-API
-  * ==================== */
-
-  $(function () {
-    $('body').on('click.collapse.data-api', '[data-toggle=collapse]', function (e) {
-      var $this = $(this), href
-        , target = $this.attr('data-target')
-          || e.preventDefault()
-          || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '') //strip for ie7
-        , option = $(target).data('collapse') ? 'toggle' : $this.data()
-      $this[$(target).hasClass('in') ? 'addClass' : 'removeClass']('collapsed')
-      $(target).collapse(option)
-    })
-  })
-
-}(window.jQuery);/* ============================================================
- * bootstrap-dropdown.js v2.1.1
- * http://twitter.github.com/bootstrap/javascript.html#dropdowns
- * ============================================================
- * Copyright 2012 Twitter, Inc.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============================================================ */
-
-
-!function ($) {
-
-  "use strict"; // jshint ;_;
-
-
- /* DROPDOWN CLASS DEFINITION
-  * ========================= */
-
-  var toggle = '[data-toggle=dropdown]'
-    , Dropdown = function (element) {
-        var $el = $(element).on('click.dropdown.data-api', this.toggle)
-        $('html').on('click.dropdown.data-api', function () {
-          $el.parent().removeClass('open')
-        })
-      }
-
-  Dropdown.prototype = {
-
-    constructor: Dropdown
-
-  , toggle: function (e) {
-      var $this = $(this)
-        , $parent
-        , isActive
-
-      if ($this.is('.disabled, :disabled')) return
-
-      $parent = getParent($this)
-
-      isActive = $parent.hasClass('open')
-
-      clearMenus()
-
-      if (!isActive) {
-        $parent.toggleClass('open')
-        $this.focus()
-      }
-
-      return false
-    }
-
-  , keydown: function (e) {
-      var $this
-        , $items
-        , $active
-        , $parent
-        , isActive
-        , index
-
-      if (!/(38|40|27)/.test(e.keyCode)) return
-
-      $this = $(this)
-
-      e.preventDefault()
-      e.stopPropagation()
-
-      if ($this.is('.disabled, :disabled')) return
-
-      $parent = getParent($this)
-
-      isActive = $parent.hasClass('open')
-
-      if (!isActive || (isActive && e.keyCode == 27)) return $this.click()
-
-      $items = $('[role=menu] li:not(.divider) a', $parent)
-
-      if (!$items.length) return
-
-      index = $items.index($items.filter(':focus'))
-
-      if (e.keyCode == 38 && index > 0) index--                                        // up
-      if (e.keyCode == 40 && index < $items.length - 1) index++                        // down
-      if (!~index) index = 0
-
-      $items
-        .eq(index)
-        .focus()
-    }
-
-  }
-
-  function clearMenus() {
-    getParent($(toggle))
-      .removeClass('open')
-  }
-
-  function getParent($this) {
-    var selector = $this.attr('data-target')
-      , $parent
-
-    if (!selector) {
-      selector = $this.attr('href')
-      selector = selector && /#/.test(selector) && selector.replace(/.*(?=#[^\s]*$)/, '') //strip for ie7
-    }
-
-    $parent = $(selector)
-    $parent.length || ($parent = $this.parent())
-
-    return $parent
-  }
-
-
-  /* DROPDOWN PLUGIN DEFINITION
-   * ========================== */
-
-  $.fn.dropdown = function (option) {
-    return this.each(function () {
-      var $this = $(this)
-        , data = $this.data('dropdown')
-      if (!data) $this.data('dropdown', (data = new Dropdown(this)))
-      if (typeof option == 'string') data[option].call($this)
-    })
-  }
-
-  $.fn.dropdown.Constructor = Dropdown
-
-
-  /* APPLY TO STANDARD DROPDOWN ELEMENTS
-   * =================================== */
-
-  $(function () {
-    $('html')
-      .on('click.dropdown.data-api touchstart.dropdown.data-api', clearMenus)
-    $('body')
-      .on('click.dropdown touchstart.dropdown.data-api', '.dropdown form', function (e) { e.stopPropagation() })
-      .on('click.dropdown.data-api touchstart.dropdown.data-api'  , toggle, Dropdown.prototype.toggle)
-      .on('keydown.dropdown.data-api touchstart.dropdown.data-api', toggle + ', [role=menu]' , Dropdown.prototype.keydown)
-  })
-
-}(window.jQuery);/* =========================================================
- * bootstrap-modal.js v2.1.1
- * http://twitter.github.com/bootstrap/javascript.html#modals
- * =========================================================
- * Copyright 2012 Twitter, Inc.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ========================================================= */
-
-
-!function ($) {
-
-  "use strict"; // jshint ;_;
-
-
- /* MODAL CLASS DEFINITION
-  * ====================== */
-
-  var Modal = function (element, options) {
-    this.options = options
-    this.$element = $(element)
-      .delegate('[data-dismiss="modal"]', 'click.dismiss.modal', $.proxy(this.hide, this))
-    this.options.remote && this.$element.find('.modal-body').load(this.options.remote)
-  }
-
-  Modal.prototype = {
-
-      constructor: Modal
-
-    , toggle: function () {
-        return this[!this.isShown ? 'show' : 'hide']()
-      }
-
-    , show: function () {
-        var that = this
-          , e = $.Event('show')
-
-        this.$element.trigger(e)
-
-        if (this.isShown || e.isDefaultPrevented()) return
-
-        $('body').addClass('modal-open')
-
-        this.isShown = true
-
-        this.escape()
-
-        this.backdrop(function () {
-          var transition = $.support.transition && that.$element.hasClass('fade')
-
-          if (!that.$element.parent().length) {
-            that.$element.appendTo(document.body) //don't move modals dom position
-          }
-
-          that.$element
-            .show()
-
-          if (transition) {
-            that.$element[0].offsetWidth // force reflow
-          }
-
-          that.$element
-            .addClass('in')
-            .attr('aria-hidden', false)
-            .focus()
-
-          that.enforceFocus()
-
-          transition ?
-            that.$element.one($.support.transition.end, function () { that.$element.trigger('shown') }) :
-            that.$element.trigger('shown')
-
-        })
-      }
-
-    , hide: function (e) {
-        e && e.preventDefault()
-
-        var that = this
-
-        e = $.Event('hide')
-
-        this.$element.trigger(e)
-
-        if (!this.isShown || e.isDefaultPrevented()) return
-
-        this.isShown = false
-
-        $('body').removeClass('modal-open')
-
-        this.escape()
-
-        $(document).off('focusin.modal')
-
-        this.$element
-          .removeClass('in')
-          .attr('aria-hidden', true)
-
-        $.support.transition && this.$element.hasClass('fade') ?
-          this.hideWithTransition() :
-          this.hideModal()
-      }
-
-    , enforceFocus: function () {
-        var that = this
-        $(document).on('focusin.modal', function (e) {
-          if (that.$element[0] !== e.target && !that.$element.has(e.target).length) {
-            that.$element.focus()
-          }
-        })
-      }
-
-    , escape: function () {
-        var that = this
-        if (this.isShown && this.options.keyboard) {
-          this.$element.on('keyup.dismiss.modal', function ( e ) {
-            e.which == 27 && that.hide()
-          })
-        } else if (!this.isShown) {
-          this.$element.off('keyup.dismiss.modal')
-        }
-      }
-
-    , hideWithTransition: function () {
-        var that = this
-          , timeout = setTimeout(function () {
-              that.$element.off($.support.transition.end)
-              that.hideModal()
-            }, 500)
-
-        this.$element.one($.support.transition.end, function () {
-          clearTimeout(timeout)
-          that.hideModal()
-        })
-      }
-
-    , hideModal: function (that) {
-        this.$element
-          .hide()
-          .trigger('hidden')
-
-        this.backdrop()
-      }
-
-    , removeBackdrop: function () {
-        this.$backdrop.remove()
-        this.$backdrop = null
-      }
-
-    , backdrop: function (callback) {
-        var that = this
-          , animate = this.$element.hasClass('fade') ? 'fade' : ''
-
-        if (this.isShown && this.options.backdrop) {
-          var doAnimate = $.support.transition && animate
-
-          this.$backdrop = $('<div class="modal-backdrop ' + animate + '" />')
-            .appendTo(document.body)
-
-          if (this.options.backdrop != 'static') {
-            this.$backdrop.click($.proxy(this.hide, this))
-          }
-
-          if (doAnimate) this.$backdrop[0].offsetWidth // force reflow
-
-          this.$backdrop.addClass('in')
-
-          doAnimate ?
-            this.$backdrop.one($.support.transition.end, callback) :
-            callback()
-
-        } else if (!this.isShown && this.$backdrop) {
-          this.$backdrop.removeClass('in')
-
-          $.support.transition && this.$element.hasClass('fade')?
-            this.$backdrop.one($.support.transition.end, $.proxy(this.removeBackdrop, this)) :
-            this.removeBackdrop()
-
-        } else if (callback) {
-          callback()
-        }
-      }
-  }
-
-
- /* MODAL PLUGIN DEFINITION
-  * ======================= */
-
-  $.fn.modal = function (option) {
-    return this.each(function () {
-      var $this = $(this)
-        , data = $this.data('modal')
-        , options = $.extend({}, $.fn.modal.defaults, $this.data(), typeof option == 'object' && option)
-      if (!data) $this.data('modal', (data = new Modal(this, options)))
-      if (typeof option == 'string') data[option]()
-      else if (options.show) data.show()
-    })
-  }
-
-  $.fn.modal.defaults = {
-      backdrop: true
-    , keyboard: true
-    , show: true
-  }
-
-  $.fn.modal.Constructor = Modal
-
-
- /* MODAL DATA-API
-  * ============== */
-
-  $(function () {
-    $('body').on('click.modal.data-api', '[data-toggle="modal"]', function ( e ) {
-      var $this = $(this)
-        , href = $this.attr('href')
-        , $target = $($this.attr('data-target') || (href && href.replace(/.*(?=#[^\s]+$)/, ''))) //strip for ie7
-        , option = $target.data('modal') ? 'toggle' : $.extend({ remote: !/#/.test(href) && href }, $target.data(), $this.data())
-
-      e.preventDefault()
-
-      $target
-        .modal(option)
-        .one('hide', function () {
-          $this.focus()
-        })
-    })
-  })
-
-}(window.jQuery);/* ===========================================================
- * bootstrap-tooltip.js v2.1.1
- * http://twitter.github.com/bootstrap/javascript.html#tooltips
- * Inspired by the original jQuery.tipsy by Jason Frame
- * ===========================================================
- * Copyright 2012 Twitter, Inc.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ========================================================== */
-
-
-!function ($) {
-
-  "use strict"; // jshint ;_;
-
-
- /* TOOLTIP PUBLIC CLASS DEFINITION
-  * =============================== */
-
-  var Tooltip = function (element, options) {
-    this.init('tooltip', element, options)
-  }
-
-  Tooltip.prototype = {
-
-    constructor: Tooltip
-
-  , init: function (type, element, options) {
-      var eventIn
-        , eventOut
-
-      this.type = type
-      this.$element = $(element)
-      this.options = this.getOptions(options)
-      this.enabled = true
-
-      if (this.options.trigger == 'click') {
-        this.$element.on('click.' + this.type, this.options.selector, $.proxy(this.toggle, this))
-      } else if (this.options.trigger != 'manual') {
-        eventIn = this.options.trigger == 'hover' ? 'mouseenter' : 'focus'
-        eventOut = this.options.trigger == 'hover' ? 'mouseleave' : 'blur'
-        this.$element.on(eventIn + '.' + this.type, this.options.selector, $.proxy(this.enter, this))
-        this.$element.on(eventOut + '.' + this.type, this.options.selector, $.proxy(this.leave, this))
-      }
-
-      this.options.selector ?
-        (this._options = $.extend({}, this.options, { trigger: 'manual', selector: '' })) :
-        this.fixTitle()
-    }
-
-  , getOptions: function (options) {
-      options = $.extend({}, $.fn[this.type].defaults, options, this.$element.data())
-
-      if (options.delay && typeof options.delay == 'number') {
-        options.delay = {
-          show: options.delay
-        , hide: options.delay
-        }
-      }
-
-      return options
-    }
-
-  , enter: function (e) {
-      var self = $(e.currentTarget)[this.type](this._options).data(this.type)
-
-      if (!self.options.delay || !self.options.delay.show) return self.show()
-
-      clearTimeout(this.timeout)
-      self.hoverState = 'in'
-      this.timeout = setTimeout(function() {
-        if (self.hoverState == 'in') self.show()
-      }, self.options.delay.show)
-    }
-
-  , leave: function (e) {
-      var self = $(e.currentTarget)[this.type](this._options).data(this.type)
-
-      if (this.timeout) clearTimeout(this.timeout)
-      if (!self.options.delay || !self.options.delay.hide) return self.hide()
-
-      self.hoverState = 'out'
-      this.timeout = setTimeout(function() {
-        if (self.hoverState == 'out') self.hide()
-      }, self.options.delay.hide)
-    }
-
-  , show: function () {
-      var $tip
-        , inside
-        , pos
-        , actualWidth
-        , actualHeight
-        , placement
-        , tp
-
-      if (this.hasContent() && this.enabled) {
-        $tip = this.tip()
-        this.setContent()
-
-        if (this.options.animation) {
-          $tip.addClass('fade')
-        }
-
-        placement = typeof this.options.placement == 'function' ?
-          this.options.placement.call(this, $tip[0], this.$element[0]) :
-          this.options.placement
-
-        inside = /in/.test(placement)
-
-        $tip
-          .remove()
-          .css({ top: 0, left: 0, display: 'block' })
-          .appendTo(inside ? this.$element : document.body)
-
-        pos = this.getPosition(inside)
-
-        actualWidth = $tip[0].offsetWidth
-        actualHeight = $tip[0].offsetHeight
-
-        switch (inside ? placement.split(' ')[1] : placement) {
-          case 'bottom':
-            tp = {top: pos.top + pos.height, left: pos.left + pos.width / 2 - actualWidth / 2}
-            break
-          case 'top':
-            tp = {top: pos.top - actualHeight, left: pos.left + pos.width / 2 - actualWidth / 2}
-            break
-          case 'left':
-            tp = {top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left - actualWidth}
-            break
-          case 'right':
-            tp = {top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left + pos.width}
-            break
-        }
-
-        $tip
-          .css(tp)
-          .addClass(placement)
-          .addClass('in')
-      }
-    }
-
-  , setContent: function () {
-      var $tip = this.tip()
-        , title = this.getTitle()
-
-      $tip.find('.tooltip-inner')[this.options.html ? 'html' : 'text'](title)
-      $tip.removeClass('fade in top bottom left right')
-    }
-
-  , hide: function () {
-      var that = this
-        , $tip = this.tip()
-
-      $tip.removeClass('in')
-
-      function removeWithAnimation() {
-        var timeout = setTimeout(function () {
-          $tip.off($.support.transition.end).remove()
-        }, 500)
-
-        $tip.one($.support.transition.end, function () {
-          clearTimeout(timeout)
-          $tip.remove()
-        })
-      }
-
-      $.support.transition && this.$tip.hasClass('fade') ?
-        removeWithAnimation() :
-        $tip.remove()
-
-      return this
-    }
-
-  , fixTitle: function () {
-      var $e = this.$element
-      if ($e.attr('title') || typeof($e.attr('data-original-title')) != 'string') {
-        $e.attr('data-original-title', $e.attr('title') || '').removeAttr('title')
-      }
-    }
-
-  , hasContent: function () {
-      return this.getTitle()
-    }
-
-  , getPosition: function (inside) {
-      return $.extend({}, (inside ? {top: 0, left: 0} : this.$element.offset()), {
-        width: this.$element[0].offsetWidth
-      , height: this.$element[0].offsetHeight
-      })
-    }
-
-  , getTitle: function () {
-      var title
-        , $e = this.$element
-        , o = this.options
-
-      title = $e.attr('data-original-title')
-        || (typeof o.title == 'function' ? o.title.call($e[0]) :  o.title)
-
-      return title
-    }
-
-  , tip: function () {
-      return this.$tip = this.$tip || $(this.options.template)
-    }
-
-  , validate: function () {
-      if (!this.$element[0].parentNode) {
-        this.hide()
-        this.$element = null
-        this.options = null
-      }
-    }
-
-  , enable: function () {
-      this.enabled = true
-    }
-
-  , disable: function () {
-      this.enabled = false
-    }
-
-  , toggleEnabled: function () {
-      this.enabled = !this.enabled
-    }
-
-  , toggle: function () {
-      this[this.tip().hasClass('in') ? 'hide' : 'show']()
-    }
-
-  , destroy: function () {
-      this.hide().$element.off('.' + this.type).removeData(this.type)
-    }
-
-  }
-
-
- /* TOOLTIP PLUGIN DEFINITION
-  * ========================= */
-
-  $.fn.tooltip = function ( option ) {
-    return this.each(function () {
-      var $this = $(this)
-        , data = $this.data('tooltip')
-        , options = typeof option == 'object' && option
-      if (!data) $this.data('tooltip', (data = new Tooltip(this, options)))
-      if (typeof option == 'string') data[option]()
-    })
-  }
-
-  $.fn.tooltip.Constructor = Tooltip
-
-  $.fn.tooltip.defaults = {
-    animation: true
-  , placement: 'top'
-  , selector: false
-  , template: '<div class="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>'
-  , trigger: 'hover'
-  , title: ''
-  , delay: 0
-  , html: true
-  }
-
-}(window.jQuery);
-/* ===========================================================
- * bootstrap-popover.js v2.1.1
- * http://twitter.github.com/bootstrap/javascript.html#popovers
- * ===========================================================
- * Copyright 2012 Twitter, Inc.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * =========================================================== */
-
-
-!function ($) {
-
-  "use strict"; // jshint ;_;
-
-
- /* POPOVER PUBLIC CLASS DEFINITION
-  * =============================== */
-
-  var Popover = function (element, options) {
-    this.init('popover', element, options)
-  }
-
-
-  /* NOTE: POPOVER EXTENDS BOOTSTRAP-TOOLTIP.js
-     ========================================== */
-
-  Popover.prototype = $.extend({}, $.fn.tooltip.Constructor.prototype, {
-
-    constructor: Popover
-
-  , setContent: function () {
-      var $tip = this.tip()
-        , title = this.getTitle()
-        , content = this.getContent()
-
-      $tip.find('.popover-title')[this.options.html ? 'html' : 'text'](title)
-      $tip.find('.popover-content > *')[this.options.html ? 'html' : 'text'](content)
-
-      $tip.removeClass('fade top bottom left right in')
-    }
-
-  , hasContent: function () {
-      return this.getTitle() || this.getContent()
-    }
-
-  , getContent: function () {
-      var content
-        , $e = this.$element
-        , o = this.options
-
-      content = $e.attr('data-content')
-        || (typeof o.content == 'function' ? o.content.call($e[0]) :  o.content)
-
-      return content
-    }
-
-  , tip: function () {
-      if (!this.$tip) {
-        this.$tip = $(this.options.template)
-      }
-      return this.$tip
-    }
-
-  , destroy: function () {
-      this.hide().$element.off('.' + this.type).removeData(this.type)
-    }
-
-  })
-
-
- /* POPOVER PLUGIN DEFINITION
-  * ======================= */
-
-  $.fn.popover = function (option) {
-    return this.each(function () {
-      var $this = $(this)
-        , data = $this.data('popover')
-        , options = typeof option == 'object' && option
-      if (!data) $this.data('popover', (data = new Popover(this, options)))
-      if (typeof option == 'string') data[option]()
-    })
-  }
-
-  $.fn.popover.Constructor = Popover
-
-  $.fn.popover.defaults = $.extend({} , $.fn.tooltip.defaults, {
-    placement: 'right'
-  , trigger: 'click'
-  , content: ''
-  , template: '<div class="popover"><div class="arrow"></div><div class="popover-inner"><h3 class="popover-title"></h3><div class="popover-content"><p></p></div></div></div>'
-  })
-
-}(window.jQuery);/* =============================================================
- * bootstrap-scrollspy.js v2.1.1
- * http://twitter.github.com/bootstrap/javascript.html#scrollspy
- * =============================================================
- * Copyright 2012 Twitter, Inc.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============================================================== */
-
-
-!function ($) {
-
-  "use strict"; // jshint ;_;
-
-
- /* SCROLLSPY CLASS DEFINITION
-  * ========================== */
-
-  function ScrollSpy(element, options) {
-    var process = $.proxy(this.process, this)
-      , $element = $(element).is('body') ? $(window) : $(element)
-      , href
-    this.options = $.extend({}, $.fn.scrollspy.defaults, options)
-    this.$scrollElement = $element.on('scroll.scroll-spy.data-api', process)
-    this.selector = (this.options.target
-      || ((href = $(element).attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '')) //strip for ie7
-      || '') + ' .nav li > a'
-    this.$body = $('body')
-    this.refresh()
-    this.process()
-  }
-
-  ScrollSpy.prototype = {
-
-      constructor: ScrollSpy
-
-    , refresh: function () {
-        var self = this
-          , $targets
-
-        this.offsets = $([])
-        this.targets = $([])
-
-        $targets = this.$body
-          .find(this.selector)
-          .map(function () {
-            var $el = $(this)
-              , href = $el.data('target') || $el.attr('href')
-              , $href = /^#\w/.test(href) && $(href)
-            return ( $href
-              && $href.length
-              && [[ $href.position().top, href ]] ) || null
-          })
-          .sort(function (a, b) { return a[0] - b[0] })
-          .each(function () {
-            self.offsets.push(this[0])
-            self.targets.push(this[1])
-          })
-      }
-
-    , process: function () {
-        var scrollTop = this.$scrollElement.scrollTop() + this.options.offset
-          , scrollHeight = this.$scrollElement[0].scrollHeight || this.$body[0].scrollHeight
-          , maxScroll = scrollHeight - this.$scrollElement.height()
-          , offsets = this.offsets
-          , targets = this.targets
-          , activeTarget = this.activeTarget
-          , i
-
-        if (scrollTop >= maxScroll) {
-          return activeTarget != (i = targets.last()[0])
-            && this.activate ( i )
-        }
-
-        for (i = offsets.length; i--;) {
-          activeTarget != targets[i]
-            && scrollTop >= offsets[i]
-            && (!offsets[i + 1] || scrollTop <= offsets[i + 1])
-            && this.activate( targets[i] )
-        }
-      }
-
-    , activate: function (target) {
-        var active
-          , selector
-
-        this.activeTarget = target
-
-        $(this.selector)
-          .parent('.active')
-          .removeClass('active')
-
-        selector = this.selector
-          + '[data-target="' + target + '"],'
-          + this.selector + '[href="' + target + '"]'
-
-        active = $(selector)
-          .parent('li')
-          .addClass('active')
-
-        if (active.parent('.dropdown-menu').length)  {
-          active = active.closest('li.dropdown').addClass('active')
-        }
-
-        active.trigger('activate')
-      }
-
-  }
-
-
- /* SCROLLSPY PLUGIN DEFINITION
-  * =========================== */
-
-  $.fn.scrollspy = function (option) {
-    return this.each(function () {
-      var $this = $(this)
-        , data = $this.data('scrollspy')
-        , options = typeof option == 'object' && option
-      if (!data) $this.data('scrollspy', (data = new ScrollSpy(this, options)))
-      if (typeof option == 'string') data[option]()
-    })
-  }
-
-  $.fn.scrollspy.Constructor = ScrollSpy
-
-  $.fn.scrollspy.defaults = {
-    offset: 10
-  }
-
-
- /* SCROLLSPY DATA-API
-  * ================== */
-
-  $(window).on('load', function () {
-    $('[data-spy="scroll"]').each(function () {
-      var $spy = $(this)
-      $spy.scrollspy($spy.data())
-    })
-  })
-
-}(window.jQuery);/* ========================================================
- * bootstrap-tab.js v2.1.1
- * http://twitter.github.com/bootstrap/javascript.html#tabs
- * ========================================================
- * Copyright 2012 Twitter, Inc.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ======================================================== */
-
-
-!function ($) {
-
-  "use strict"; // jshint ;_;
-
-
- /* TAB CLASS DEFINITION
-  * ==================== */
-
-  var Tab = function (element) {
-    this.element = $(element)
-  }
-
-  Tab.prototype = {
-
-    constructor: Tab
-
-  , show: function () {
-      var $this = this.element
-        , $ul = $this.closest('ul:not(.dropdown-menu)')
-        , selector = $this.attr('data-target')
-        , previous
-        , $target
-        , e
-
-      if (!selector) {
-        selector = $this.attr('href')
-        selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') //strip for ie7
-      }
-
-      if ( $this.parent('li').hasClass('active') ) return
-
-      previous = $ul.find('.active a').last()[0]
-
-      e = $.Event('show', {
-        relatedTarget: previous
-      })
-
-      $this.trigger(e)
-
-      if (e.isDefaultPrevented()) return
-
-      $target = $(selector)
-
-      this.activate($this.parent('li'), $ul)
-      this.activate($target, $target.parent(), function () {
-        $this.trigger({
-          type: 'shown'
-        , relatedTarget: previous
-        })
-      })
-    }
-
-  , activate: function ( element, container, callback) {
-      var $active = container.find('> .active')
-        , transition = callback
-            && $.support.transition
-            && $active.hasClass('fade')
-
-      function next() {
-        $active
-          .removeClass('active')
-          .find('> .dropdown-menu > .active')
-          .removeClass('active')
-
-        element.addClass('active')
-
-        if (transition) {
-          element[0].offsetWidth // reflow for transition
-          element.addClass('in')
-        } else {
-          element.removeClass('fade')
-        }
-
-        if ( element.parent('.dropdown-menu') ) {
-          element.closest('li.dropdown').addClass('active')
-        }
-
-        callback && callback()
-      }
-
-      transition ?
-        $active.one($.support.transition.end, next) :
-        next()
-
-      $active.removeClass('in')
-    }
-  }
-
-
- /* TAB PLUGIN DEFINITION
-  * ===================== */
-
-  $.fn.tab = function ( option ) {
-    return this.each(function () {
-      var $this = $(this)
-        , data = $this.data('tab')
-      if (!data) $this.data('tab', (data = new Tab(this)))
-      if (typeof option == 'string') data[option]()
-    })
-  }
-
-  $.fn.tab.Constructor = Tab
-
-
- /* TAB DATA-API
-  * ============ */
-
-  $(function () {
-    $('body').on('click.tab.data-api', '[data-toggle="tab"], [data-toggle="pill"]', function (e) {
-      e.preventDefault()
-      $(this).tab('show')
-    })
-  })
-
-}(window.jQuery);/* =============================================================
- * bootstrap-typeahead.js v2.1.1
- * http://twitter.github.com/bootstrap/javascript.html#typeahead
- * =============================================================
- * Copyright 2012 Twitter, Inc.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============================================================ */
-
-
-!function($){
-
-  "use strict"; // jshint ;_;
-
-
- /* TYPEAHEAD PUBLIC CLASS DEFINITION
-  * ================================= */
-
-  var Typeahead = function (element, options) {
-    this.$element = $(element)
-    this.options = $.extend({}, $.fn.typeahead.defaults, options)
-    this.matcher = this.options.matcher || this.matcher
-    this.sorter = this.options.sorter || this.sorter
-    this.highlighter = this.options.highlighter || this.highlighter
-    this.updater = this.options.updater || this.updater
-    this.$menu = $(this.options.menu).appendTo('body')
-    this.source = this.options.source
-    this.shown = false
-    this.listen()
-  }
-
-  Typeahead.prototype = {
-
-    constructor: Typeahead
-
-  , select: function () {
-      var val = this.$menu.find('.active').attr('data-value')
-      this.$element
-        .val(this.updater(val))
-        .change()
-      return this.hide()
-    }
-
-  , updater: function (item) {
-      return item
-    }
-
-  , show: function () {
-      var pos = $.extend({}, this.$element.offset(), {
-        height: this.$element[0].offsetHeight
-      })
-
-      this.$menu.css({
-        top: pos.top + pos.height
-      , left: pos.left
-      })
-
-      this.$menu.show()
-      this.shown = true
-      return this
-    }
-
-  , hide: function () {
-      this.$menu.hide()
-      this.shown = false
-      return this
-    }
-
-  , lookup: function (event) {
-      var items
-
-      this.query = this.$element.val()
-
-      if (!this.query || this.query.length < this.options.minLength) {
-        return this.shown ? this.hide() : this
-      }
-
-      items = $.isFunction(this.source) ? this.source(this.query, $.proxy(this.process, this)) : this.source
-
-      return items ? this.process(items) : this
-    }
-
-  , process: function (items) {
-      var that = this
-
-      items = $.grep(items, function (item) {
-        return that.matcher(item)
-      })
-
-      items = this.sorter(items)
-
-      if (!items.length) {
-        return this.shown ? this.hide() : this
-      }
-
-      return this.render(items.slice(0, this.options.items)).show()
-    }
-
-  , matcher: function (item) {
-      return ~item.toLowerCase().indexOf(this.query.toLowerCase())
-    }
-
-  , sorter: function (items) {
-      var beginswith = []
-        , caseSensitive = []
-        , caseInsensitive = []
-        , item
-
-      while (item = items.shift()) {
-        if (!item.toLowerCase().indexOf(this.query.toLowerCase())) beginswith.push(item)
-        else if (~item.indexOf(this.query)) caseSensitive.push(item)
-        else caseInsensitive.push(item)
-      }
-
-      return beginswith.concat(caseSensitive, caseInsensitive)
-    }
-
-  , highlighter: function (item) {
-      var query = this.query.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g, '\\$&')
-      return item.replace(new RegExp('(' + query + ')', 'ig'), function ($1, match) {
-        return '<strong>' + match + '</strong>'
-      })
-    }
-
-  , render: function (items) {
-      var that = this
-
-      items = $(items).map(function (i, item) {
-        i = $(that.options.item).attr('data-value', item)
-        i.find('a').html(that.highlighter(item))
-        return i[0]
-      })
-
-      items.first().addClass('active')
-      this.$menu.html(items)
-      return this
-    }
-
-  , next: function (event) {
-      var active = this.$menu.find('.active').removeClass('active')
-        , next = active.next()
-
-      if (!next.length) {
-        next = $(this.$menu.find('li')[0])
-      }
-
-      next.addClass('active')
-    }
-
-  , prev: function (event) {
-      var active = this.$menu.find('.active').removeClass('active')
-        , prev = active.prev()
-
-      if (!prev.length) {
-        prev = this.$menu.find('li').last()
-      }
-
-      prev.addClass('active')
-    }
-
-  , listen: function () {
-      this.$element
-        .on('blur',     $.proxy(this.blur, this))
-        .on('keypress', $.proxy(this.keypress, this))
-        .on('keyup',    $.proxy(this.keyup, this))
-
-      if ($.browser.chrome || $.browser.webkit || $.browser.msie) {
-        this.$element.on('keydown', $.proxy(this.keydown, this))
-      }
-
-      this.$menu
-        .on('click', $.proxy(this.click, this))
-        .on('mouseenter', 'li', $.proxy(this.mouseenter, this))
-    }
-
-  , move: function (e) {
-      if (!this.shown) return
-
-      switch(e.keyCode) {
-        case 9: // tab
-        case 13: // enter
-        case 27: // escape
-          e.preventDefault()
-          break
-
-        case 38: // up arrow
-          e.preventDefault()
-          this.prev()
-          break
-
-        case 40: // down arrow
-          e.preventDefault()
-          this.next()
-          break
-      }
-
-      e.stopPropagation()
-    }
-
-  , keydown: function (e) {
-      this.suppressKeyPressRepeat = !~$.inArray(e.keyCode, [40,38,9,13,27])
-      this.move(e)
-    }
-
-  , keypress: function (e) {
-      if (this.suppressKeyPressRepeat) return
-      this.move(e)
-    }
-
-  , keyup: function (e) {
-      switch(e.keyCode) {
-        case 40: // down arrow
-        case 38: // up arrow
-          break
-
-        case 9: // tab
-        case 13: // enter
-          if (!this.shown) return
-          this.select()
-          break
-
-        case 27: // escape
-          if (!this.shown) return
-          this.hide()
-          break
-
-        default:
-          this.lookup()
-      }
-
-      e.stopPropagation()
-      e.preventDefault()
-  }
-
-  , blur: function (e) {
-      var that = this
-      setTimeout(function () { that.hide() }, 150)
-    }
-
-  , click: function (e) {
-      e.stopPropagation()
-      e.preventDefault()
-      this.select()
-    }
-
-  , mouseenter: function (e) {
-      this.$menu.find('.active').removeClass('active')
-      $(e.currentTarget).addClass('active')
-    }
-
-  }
-
-
-  /* TYPEAHEAD PLUGIN DEFINITION
-   * =========================== */
-
-  $.fn.typeahead = function (option) {
-    return this.each(function () {
-      var $this = $(this)
-        , data = $this.data('typeahead')
-        , options = typeof option == 'object' && option
-      if (!data) $this.data('typeahead', (data = new Typeahead(this, options)))
-      if (typeof option == 'string') data[option]()
-    })
-  }
-
-  $.fn.typeahead.defaults = {
-    source: []
-  , items: 8
-  , menu: '<ul class="typeahead dropdown-menu"></ul>'
-  , item: '<li><a href="#"></a></li>'
-  , minLength: 1
-  }
-
-  $.fn.typeahead.Constructor = Typeahead
-
-
- /*   TYPEAHEAD DATA-API
-  * ================== */
-
-  $(function () {
-    $('body').on('focus.typeahead.data-api', '[data-provide="typeahead"]', function (e) {
-      var $this = $(this)
-      if ($this.data('typeahead')) return
-      e.preventDefault()
-      $this.typeahead($this.data())
-    })
-  })
-
-}(window.jQuery);
-/* ==========================================================
- * bootstrap-affix.js v2.1.1
- * http://twitter.github.com/bootstrap/javascript.html#affix
- * ==========================================================
- * Copyright 2012 Twitter, Inc.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ========================================================== */
-
-
-!function ($) {
-
-  "use strict"; // jshint ;_;
-
-
- /* AFFIX CLASS DEFINITION
-  * ====================== */
-
-  var Affix = function (element, options) {
-    this.options = $.extend({}, $.fn.affix.defaults, options)
-    this.$window = $(window).on('scroll.affix.data-api', $.proxy(this.checkPosition, this))
-    this.$element = $(element)
-    this.checkPosition()
-  }
-
-  Affix.prototype.checkPosition = function () {
-    if (!this.$element.is(':visible')) return
-
-    var scrollHeight = $(document).height()
-      , scrollTop = this.$window.scrollTop()
-      , position = this.$element.offset()
-      , offset = this.options.offset
-      , offsetBottom = offset.bottom
-      , offsetTop = offset.top
-      , reset = 'affix affix-top affix-bottom'
-      , affix
-
-    if (typeof offset != 'object') offsetBottom = offsetTop = offset
-    if (typeof offsetTop == 'function') offsetTop = offset.top()
-    if (typeof offsetBottom == 'function') offsetBottom = offset.bottom()
-
-    affix = this.unpin != null && (scrollTop + this.unpin <= position.top) ?
-      false    : offsetBottom != null && (position.top + this.$element.height() >= scrollHeight - offsetBottom) ?
-      'bottom' : offsetTop != null && scrollTop <= offsetTop ?
-      'top'    : false
-
-    if (this.affixed === affix) return
-
-    this.affixed = affix
-    this.unpin = affix == 'bottom' ? position.top - scrollTop : null
-
-    this.$element.removeClass(reset).addClass('affix' + (affix ? '-' + affix : ''))
-  }
-
-
- /* AFFIX PLUGIN DEFINITION
-  * ======================= */
-
-  $.fn.affix = function (option) {
-    return this.each(function () {
-      var $this = $(this)
-        , data = $this.data('affix')
-        , options = typeof option == 'object' && option
-      if (!data) $this.data('affix', (data = new Affix(this, options)))
-      if (typeof option == 'string') data[option]()
-    })
-  }
-
-  $.fn.affix.Constructor = Affix
-
-  $.fn.affix.defaults = {
-    offset: 0
-  }
-
-
- /* AFFIX DATA-API
-  * ============== */
-
-  $(window).on('load', function () {
-    $('[data-spy="affix"]').each(function () {
-      var $spy = $(this)
-        , data = $spy.data()
-
-      data.offset = data.offset || {}
-
-      data.offsetBottom && (data.offset.bottom = data.offsetBottom)
-      data.offsetTop && (data.offset.top = data.offsetTop)
-
-      $spy.affix(data)
-    })
-  })
-
-
-}(window.jQuery);
\ No newline at end of file
diff --git a/wqflask/wqflask/static/packages/bootstrap-old/js/bootstrap.min.js b/wqflask/wqflask/static/packages/bootstrap-old/js/bootstrap.min.js
deleted file mode 100755
index 0e33fb16..00000000
--- a/wqflask/wqflask/static/packages/bootstrap-old/js/bootstrap.min.js
+++ /dev/null
@@ -1,6 +0,0 @@
-/*!
-* Bootstrap.js by @fat & @mdo
-* Copyright 2012 Twitter, Inc.
-* http://www.apache.org/licenses/LICENSE-2.0.txt
-*/
-!function(e){e(function(){"use strict";e.support.transition=function(){var e=function(){var e=document.createElement("bootstrap"),t={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"},n;for(n in t)if(e.style[n]!==undefined)return t[n]}();return e&&{end:e}}()})}(window.jQuery),!function(e){"use strict";var t='[data-dismiss="alert"]',n=function(n){e(n).on("click",t,this.close)};n.prototype.close=function(t){function s(){i.trigger("closed").remove()}var n=e(this),r=n.attr("data-target"),i;r||(r=n.attr("href"),r=r&&r.replace(/.*(?=#[^\s]*$)/,"")),i=e(r),t&&t.preventDefault(),i.length||(i=n.hasClass("alert")?n:n.parent()),i.trigger(t=e.Event("close"));if(t.isDefaultPrevented())return;i.removeClass("in"),e.support.transition&&i.hasClass("fade")?i.on(e.support.transition.end,s):s()},e.fn.alert=function(t){return this.each(function(){var r=e(this),i=r.data("alert");i||r.data("alert",i=new n(this)),typeof t=="string"&&i[t].call(r)})},e.fn.alert.Constructor=n,e(function(){e("body").on("click.alert.data-api",t,n.prototype.close)})}(window.jQuery),!function(e){"use strict";var t=function(t,n){this.$element=e(t),this.options=e.extend({},e.fn.button.defaults,n)};t.prototype.setState=function(e){var t="disabled",n=this.$element,r=n.data(),i=n.is("input")?"val":"html";e+="Text",r.resetText||n.data("resetText",n[i]()),n[i](r[e]||this.options[e]),setTimeout(function(){e=="loadingText"?n.addClass(t).attr(t,t):n.removeClass(t).removeAttr(t)},0)},t.prototype.toggle=function(){var e=this.$element.closest('[data-toggle="buttons-radio"]');e&&e.find(".active").removeClass("active"),this.$element.toggleClass("active")},e.fn.button=function(n){return this.each(function(){var r=e(this),i=r.data("button"),s=typeof n=="object"&&n;i||r.data("button",i=new t(this,s)),n=="toggle"?i.toggle():n&&i.setState(n)})},e.fn.button.defaults={loadingText:"loading..."},e.fn.button.Constructor=t,e(function(){e("body").on("click.button.data-api","[data-toggle^=button]",function(t){var n=e(t.target);n.hasClass("btn")||(n=n.closest(".btn")),n.button("toggle")})})}(window.jQuery),!function(e){"use strict";var t=function(t,n){this.$element=e(t),this.options=n,this.options.slide&&this.slide(this.options.slide),this.options.pause=="hover"&&this.$element.on("mouseenter",e.proxy(this.pause,this)).on("mouseleave",e.proxy(this.cycle,this))};t.prototype={cycle:function(t){return t||(this.paused=!1),this.options.interval&&!this.paused&&(this.interval=setInterval(e.proxy(this.next,this),this.options.interval)),this},to:function(t){var n=this.$element.find(".item.active"),r=n.parent().children(),i=r.index(n),s=this;if(t>r.length-1||t<0)return;return this.sliding?this.$element.one("slid",function(){s.to(t)}):i==t?this.pause().cycle():this.slide(t>i?"next":"prev",e(r[t]))},pause:function(t){return t||(this.paused=!0),this.$element.find(".next, .prev").length&&e.support.transition.end&&(this.$element.trigger(e.support.transition.end),this.cycle()),clearInterval(this.interval),this.interval=null,this},next:function(){if(this.sliding)return;return this.slide("next")},prev:function(){if(this.sliding)return;return this.slide("prev")},slide:function(t,n){var r=this.$element.find(".item.active"),i=n||r[t](),s=this.interval,o=t=="next"?"left":"right",u=t=="next"?"first":"last",a=this,f=e.Event("slide",{relatedTarget:i[0]});this.sliding=!0,s&&this.pause(),i=i.length?i:this.$element.find(".item")[u]();if(i.hasClass("active"))return;if(e.support.transition&&this.$element.hasClass("slide")){this.$element.trigger(f);if(f.isDefaultPrevented())return;i.addClass(t),i[0].offsetWidth,r.addClass(o),i.addClass(o),this.$element.one(e.support.transition.end,function(){i.removeClass([t,o].join(" ")).addClass("active"),r.removeClass(["active",o].join(" ")),a.sliding=!1,setTimeout(function(){a.$element.trigger("slid")},0)})}else{this.$element.trigger(f);if(f.isDefaultPrevented())return;r.removeClass("active"),i.addClass("active"),this.sliding=!1,this.$element.trigger("slid")}return s&&this.cycle(),this}},e.fn.carousel=function(n){return this.each(function(){var r=e(this),i=r.data("carousel"),s=e.extend({},e.fn.carousel.defaults,typeof n=="object"&&n),o=typeof n=="string"?n:s.slide;i||r.data("carousel",i=new t(this,s)),typeof n=="number"?i.to(n):o?i[o]():s.interval&&i.cycle()})},e.fn.carousel.defaults={interval:5e3,pause:"hover"},e.fn.carousel.Constructor=t,e(function(){e("body").on("click.carousel.data-api","[data-slide]",function(t){var n=e(this),r,i=e(n.attr("data-target")||(r=n.attr("href"))&&r.replace(/.*(?=#[^\s]+$)/,"")),s=!i.data("modal")&&e.extend({},i.data(),n.data());i.carousel(s),t.preventDefault()})})}(window.jQuery),!function(e){"use strict";var t=function(t,n){this.$element=e(t),this.options=e.extend({},e.fn.collapse.defaults,n),this.options.parent&&(this.$parent=e(this.options.parent)),this.options.toggle&&this.toggle()};t.prototype={constructor:t,dimension:function(){var e=this.$element.hasClass("width");return e?"width":"height"},show:function(){var t,n,r,i;if(this.transitioning)return;t=this.dimension(),n=e.camelCase(["scroll",t].join("-")),r=this.$parent&&this.$parent.find("> .accordion-group > .in");if(r&&r.length){i=r.data("collapse");if(i&&i.transitioning)return;r.collapse("hide"),i||r.data("collapse",null)}this.$element[t](0),this.transition("addClass",e.Event("show"),"shown"),e.support.transition&&this.$element[t](this.$element[0][n])},hide:function(){var t;if(this.transitioning)return;t=this.dimension(),this.reset(this.$element[t]()),this.transition("removeClass",e.Event("hide"),"hidden"),this.$element[t](0)},reset:function(e){var t=this.dimension();return this.$element.removeClass("collapse")[t](e||"auto")[0].offsetWidth,this.$element[e!==null?"addClass":"removeClass"]("collapse"),this},transition:function(t,n,r){var i=this,s=function(){n.type=="show"&&i.reset(),i.transitioning=0,i.$element.trigger(r)};this.$element.trigger(n);if(n.isDefaultPrevented())return;this.transitioning=1,this.$element[t]("in"),e.support.transition&&this.$element.hasClass("collapse")?this.$element.one(e.support.transition.end,s):s()},toggle:function(){this[this.$element.hasClass("in")?"hide":"show"]()}},e.fn.collapse=function(n){return this.each(function(){var r=e(this),i=r.data("collapse"),s=typeof n=="object"&&n;i||r.data("collapse",i=new t(this,s)),typeof n=="string"&&i[n]()})},e.fn.collapse.defaults={toggle:!0},e.fn.collapse.Constructor=t,e(function(){e("body").on("click.collapse.data-api","[data-toggle=collapse]",function(t){var n=e(this),r,i=n.attr("data-target")||t.preventDefault()||(r=n.attr("href"))&&r.replace(/.*(?=#[^\s]+$)/,""),s=e(i).data("collapse")?"toggle":n.data();n[e(i).hasClass("in")?"addClass":"removeClass"]("collapsed"),e(i).collapse(s)})})}(window.jQuery),!function(e){"use strict";function r(){i(e(t)).removeClass("open")}function i(t){var n=t.attr("data-target"),r;return n||(n=t.attr("href"),n=n&&/#/.test(n)&&n.replace(/.*(?=#[^\s]*$)/,"")),r=e(n),r.length||(r=t.parent()),r}var t="[data-toggle=dropdown]",n=function(t){var n=e(t).on("click.dropdown.data-api",this.toggle);e("html").on("click.dropdown.data-api",function(){n.parent().removeClass("open")})};n.prototype={constructor:n,toggle:function(t){var n=e(this),s,o;if(n.is(".disabled, :disabled"))return;return s=i(n),o=s.hasClass("open"),r(),o||(s.toggleClass("open"),n.focus()),!1},keydown:function(t){var n,r,s,o,u,a;if(!/(38|40|27)/.test(t.keyCode))return;n=e(this),t.preventDefault(),t.stopPropagation();if(n.is(".disabled, :disabled"))return;o=i(n),u=o.hasClass("open");if(!u||u&&t.keyCode==27)return n.click();r=e("[role=menu] li:not(.divider) a",o);if(!r.length)return;a=r.index(r.filter(":focus")),t.keyCode==38&&a>0&&a--,t.keyCode==40&&a<r.length-1&&a++,~a||(a=0),r.eq(a).focus()}},e.fn.dropdown=function(t){return this.each(function(){var r=e(this),i=r.data("dropdown");i||r.data("dropdown",i=new n(this)),typeof t=="string"&&i[t].call(r)})},e.fn.dropdown.Constructor=n,e(function(){e("html").on("click.dropdown.data-api touchstart.dropdown.data-api",r),e("body").on("click.dropdown touchstart.dropdown.data-api",".dropdown form",function(e){e.stopPropagation()}).on("click.dropdown.data-api touchstart.dropdown.data-api",t,n.prototype.toggle).on("keydown.dropdown.data-api touchstart.dropdown.data-api",t+", [role=menu]",n.prototype.keydown)})}(window.jQuery),!function(e){"use strict";var t=function(t,n){this.options=n,this.$element=e(t).delegate('[data-dismiss="modal"]',"click.dismiss.modal",e.proxy(this.hide,this)),this.options.remote&&this.$element.find(".modal-body").load(this.options.remote)};t.prototype={constructor:t,toggle:function(){return this[this.isShown?"hide":"show"]()},show:function(){var t=this,n=e.Event("show");this.$element.trigger(n);if(this.isShown||n.isDefaultPrevented())return;e("body").addClass("modal-open"),this.isShown=!0,this.escape(),this.backdrop(function(){var n=e.support.transition&&t.$element.hasClass("fade");t.$element.parent().length||t.$element.appendTo(document.body),t.$element.show(),n&&t.$element[0].offsetWidth,t.$element.addClass("in").attr("aria-hidden",!1).focus(),t.enforceFocus(),n?t.$element.one(e.support.transition.end,function(){t.$element.trigger("shown")}):t.$element.trigger("shown")})},hide:function(t){t&&t.preventDefault();var n=this;t=e.Event("hide"),this.$element.trigger(t);if(!this.isShown||t.isDefaultPrevented())return;this.isShown=!1,e("body").removeClass("modal-open"),this.escape(),e(document).off("focusin.modal"),this.$element.removeClass("in").attr("aria-hidden",!0),e.support.transition&&this.$element.hasClass("fade")?this.hideWithTransition():this.hideModal()},enforceFocus:function(){var t=this;e(document).on("focusin.modal",function(e){t.$element[0]!==e.target&&!t.$element.has(e.target).length&&t.$element.focus()})},escape:function(){var e=this;this.isShown&&this.options.keyboard?this.$element.on("keyup.dismiss.modal",function(t){t.which==27&&e.hide()}):this.isShown||this.$element.off("keyup.dismiss.modal")},hideWithTransition:function(){var t=this,n=setTimeout(function(){t.$element.off(e.support.transition.end),t.hideModal()},500);this.$element.one(e.support.transition.end,function(){clearTimeout(n),t.hideModal()})},hideModal:function(e){this.$element.hide().trigger("hidden"),this.backdrop()},removeBackdrop:function(){this.$backdrop.remove(),this.$backdrop=null},backdrop:function(t){var n=this,r=this.$element.hasClass("fade")?"fade":"";if(this.isShown&&this.options.backdrop){var i=e.support.transition&&r;this.$backdrop=e('<div class="modal-backdrop '+r+'" />').appendTo(document.body),this.options.backdrop!="static"&&this.$backdrop.click(e.proxy(this.hide,this)),i&&this.$backdrop[0].offsetWidth,this.$backdrop.addClass("in"),i?this.$backdrop.one(e.support.transition.end,t):t()}else!this.isShown&&this.$backdrop?(this.$backdrop.removeClass("in"),e.support.transition&&this.$element.hasClass("fade")?this.$backdrop.one(e.support.transition.end,e.proxy(this.removeBackdrop,this)):this.removeBackdrop()):t&&t()}},e.fn.modal=function(n){return this.each(function(){var r=e(this),i=r.data("modal"),s=e.extend({},e.fn.modal.defaults,r.data(),typeof n=="object"&&n);i||r.data("modal",i=new t(this,s)),typeof n=="string"?i[n]():s.show&&i.show()})},e.fn.modal.defaults={backdrop:!0,keyboard:!0,show:!0},e.fn.modal.Constructor=t,e(function(){e("body").on("click.modal.data-api",'[data-toggle="modal"]',function(t){var n=e(this),r=n.attr("href"),i=e(n.attr("data-target")||r&&r.replace(/.*(?=#[^\s]+$)/,"")),s=i.data("modal")?"toggle":e.extend({remote:!/#/.test(r)&&r},i.data(),n.data());t.preventDefault(),i.modal(s).one("hide",function(){n.focus()})})})}(window.jQuery),!function(e){"use strict";var t=function(e,t){this.init("tooltip",e,t)};t.prototype={constructor:t,init:function(t,n,r){var i,s;this.type=t,this.$element=e(n),this.options=this.getOptions(r),this.enabled=!0,this.options.trigger=="click"?this.$element.on("click."+this.type,this.options.selector,e.proxy(this.toggle,this)):this.options.trigger!="manual"&&(i=this.options.trigger=="hover"?"mouseenter":"focus",s=this.options.trigger=="hover"?"mouseleave":"blur",this.$element.on(i+"."+this.type,this.options.selector,e.proxy(this.enter,this)),this.$element.on(s+"."+this.type,this.options.selector,e.proxy(this.leave,this))),this.options.selector?this._options=e.extend({},this.options,{trigger:"manual",selector:""}):this.fixTitle()},getOptions:function(t){return t=e.extend({},e.fn[this.type].defaults,t,this.$element.data()),t.delay&&typeof t.delay=="number"&&(t.delay={show:t.delay,hide:t.delay}),t},enter:function(t){var n=e(t.currentTarget)[this.type](this._options).data(this.type);if(!n.options.delay||!n.options.delay.show)return n.show();clearTimeout(this.timeout),n.hoverState="in",this.timeout=setTimeout(function(){n.hoverState=="in"&&n.show()},n.options.delay.show)},leave:function(t){var n=e(t.currentTarget)[this.type](this._options).data(this.type);this.timeout&&clearTimeout(this.timeout);if(!n.options.delay||!n.options.delay.hide)return n.hide();n.hoverState="out",this.timeout=setTimeout(function(){n.hoverState=="out"&&n.hide()},n.options.delay.hide)},show:function(){var e,t,n,r,i,s,o;if(this.hasContent()&&this.enabled){e=this.tip(),this.setContent(),this.options.animation&&e.addClass("fade"),s=typeof this.options.placement=="function"?this.options.placement.call(this,e[0],this.$element[0]):this.options.placement,t=/in/.test(s),e.remove().css({top:0,left:0,display:"block"}).appendTo(t?this.$element:document.body),n=this.getPosition(t),r=e[0].offsetWidth,i=e[0].offsetHeight;switch(t?s.split(" ")[1]:s){case"bottom":o={top:n.top+n.height,left:n.left+n.width/2-r/2};break;case"top":o={top:n.top-i,left:n.left+n.width/2-r/2};break;case"left":o={top:n.top+n.height/2-i/2,left:n.left-r};break;case"right":o={top:n.top+n.height/2-i/2,left:n.left+n.width}}e.css(o).addClass(s).addClass("in")}},setContent:function(){var e=this.tip(),t=this.getTitle();e.find(".tooltip-inner")[this.options.html?"html":"text"](t),e.removeClass("fade in top bottom left right")},hide:function(){function r(){var t=setTimeout(function(){n.off(e.support.transition.end).remove()},500);n.one(e.support.transition.end,function(){clearTimeout(t),n.remove()})}var t=this,n=this.tip();return n.removeClass("in"),e.support.transition&&this.$tip.hasClass("fade")?r():n.remove(),this},fixTitle:function(){var e=this.$element;(e.attr("title")||typeof e.attr("data-original-title")!="string")&&e.attr("data-original-title",e.attr("title")||"").removeAttr("title")},hasContent:function(){return this.getTitle()},getPosition:function(t){return e.extend({},t?{top:0,left:0}:this.$element.offset(),{width:this.$element[0].offsetWidth,height:this.$element[0].offsetHeight})},getTitle:function(){var e,t=this.$element,n=this.options;return e=t.attr("data-original-title")||(typeof n.title=="function"?n.title.call(t[0]):n.title),e},tip:function(){return this.$tip=this.$tip||e(this.options.template)},validate:function(){this.$element[0].parentNode||(this.hide(),this.$element=null,this.options=null)},enable:function(){this.enabled=!0},disable:function(){this.enabled=!1},toggleEnabled:function(){this.enabled=!this.enabled},toggle:function(){this[this.tip().hasClass("in")?"hide":"show"]()},destroy:function(){this.hide().$element.off("."+this.type).removeData(this.type)}},e.fn.tooltip=function(n){return this.each(function(){var r=e(this),i=r.data("tooltip"),s=typeof n=="object"&&n;i||r.data("tooltip",i=new t(this,s)),typeof n=="string"&&i[n]()})},e.fn.tooltip.Constructor=t,e.fn.tooltip.defaults={animation:!0,placement:"top",selector:!1,template:'<div class="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',trigger:"hover",title:"",delay:0,html:!0}}(window.jQuery),!function(e){"use strict";var t=function(e,t){this.init("popover",e,t)};t.prototype=e.extend({},e.fn.tooltip.Constructor.prototype,{constructor:t,setContent:function(){var e=this.tip(),t=this.getTitle(),n=this.getContent();e.find(".popover-title")[this.options.html?"html":"text"](t),e.find(".popover-content > *")[this.options.html?"html":"text"](n),e.removeClass("fade top bottom left right in")},hasContent:function(){return this.getTitle()||this.getContent()},getContent:function(){var e,t=this.$element,n=this.options;return e=t.attr("data-content")||(typeof n.content=="function"?n.content.call(t[0]):n.content),e},tip:function(){return this.$tip||(this.$tip=e(this.options.template)),this.$tip},destroy:function(){this.hide().$element.off("."+this.type).removeData(this.type)}}),e.fn.popover=function(n){return this.each(function(){var r=e(this),i=r.data("popover"),s=typeof n=="object"&&n;i||r.data("popover",i=new t(this,s)),typeof n=="string"&&i[n]()})},e.fn.popover.Constructor=t,e.fn.popover.defaults=e.extend({},e.fn.tooltip.defaults,{placement:"right",trigger:"click",content:"",template:'<div class="popover"><div class="arrow"></div><div class="popover-inner"><h3 class="popover-title"></h3><div class="popover-content"><p></p></div></div></div>'})}(window.jQuery),!function(e){"use strict";function t(t,n){var r=e.proxy(this.process,this),i=e(t).is("body")?e(window):e(t),s;this.options=e.extend({},e.fn.scrollspy.defaults,n),this.$scrollElement=i.on("scroll.scroll-spy.data-api",r),this.selector=(this.options.target||(s=e(t).attr("href"))&&s.replace(/.*(?=#[^\s]+$)/,"")||"")+" .nav li > a",this.$body=e("body"),this.refresh(),this.process()}t.prototype={constructor:t,refresh:function(){var t=this,n;this.offsets=e([]),this.targets=e([]),n=this.$body.find(this.selector).map(function(){var t=e(this),n=t.data("target")||t.attr("href"),r=/^#\w/.test(n)&&e(n);return r&&r.length&&[[r.position().top,n]]||null}).sort(function(e,t){return e[0]-t[0]}).each(function(){t.offsets.push(this[0]),t.targets.push(this[1])})},process:function(){var e=this.$scrollElement.scrollTop()+this.options.offset,t=this.$scrollElement[0].scrollHeight||this.$body[0].scrollHeight,n=t-this.$scrollElement.height(),r=this.offsets,i=this.targets,s=this.activeTarget,o;if(e>=n)return s!=(o=i.last()[0])&&this.activate(o);for(o=r.length;o--;)s!=i[o]&&e>=r[o]&&(!r[o+1]||e<=r[o+1])&&this.activate(i[o])},activate:function(t){var n,r;this.activeTarget=t,e(this.selector).parent(".active").removeClass("active"),r=this.selector+'[data-target="'+t+'"],'+this.selector+'[href="'+t+'"]',n=e(r).parent("li").addClass("active"),n.parent(".dropdown-menu").length&&(n=n.closest("li.dropdown").addClass("active")),n.trigger("activate")}},e.fn.scrollspy=function(n){return this.each(function(){var r=e(this),i=r.data("scrollspy"),s=typeof n=="object"&&n;i||r.data("scrollspy",i=new t(this,s)),typeof n=="string"&&i[n]()})},e.fn.scrollspy.Constructor=t,e.fn.scrollspy.defaults={offset:10},e(window).on("load",function(){e('[data-spy="scroll"]').each(function(){var t=e(this);t.scrollspy(t.data())})})}(window.jQuery),!function(e){"use strict";var t=function(t){this.element=e(t)};t.prototype={constructor:t,show:function(){var t=this.element,n=t.closest("ul:not(.dropdown-menu)"),r=t.attr("data-target"),i,s,o;r||(r=t.attr("href"),r=r&&r.replace(/.*(?=#[^\s]*$)/,""));if(t.parent("li").hasClass("active"))return;i=n.find(".active a").last()[0],o=e.Event("show",{relatedTarget:i}),t.trigger(o);if(o.isDefaultPrevented())return;s=e(r),this.activate(t.parent("li"),n),this.activate(s,s.parent(),function(){t.trigger({type:"shown",relatedTarget:i})})},activate:function(t,n,r){function o(){i.removeClass("active").find("> .dropdown-menu > .active").removeClass("active"),t.addClass("active"),s?(t[0].offsetWidth,t.addClass("in")):t.removeClass("fade"),t.parent(".dropdown-menu")&&t.closest("li.dropdown").addClass("active"),r&&r()}var i=n.find("> .active"),s=r&&e.support.transition&&i.hasClass("fade");s?i.one(e.support.transition.end,o):o(),i.removeClass("in")}},e.fn.tab=function(n){return this.each(function(){var r=e(this),i=r.data("tab");i||r.data("tab",i=new t(this)),typeof n=="string"&&i[n]()})},e.fn.tab.Constructor=t,e(function(){e("body").on("click.tab.data-api",'[data-toggle="tab"], [data-toggle="pill"]',function(t){t.preventDefault(),e(this).tab("show")})})}(window.jQuery),!function(e){"use strict";var t=function(t,n){this.$element=e(t),this.options=e.extend({},e.fn.typeahead.defaults,n),this.matcher=this.options.matcher||this.matcher,this.sorter=this.options.sorter||this.sorter,this.highlighter=this.options.highlighter||this.highlighter,this.updater=this.options.updater||this.updater,this.$menu=e(this.options.menu).appendTo("body"),this.source=this.options.source,this.shown=!1,this.listen()};t.prototype={constructor:t,select:function(){var e=this.$menu.find(".active").attr("data-value");return this.$element.val(this.updater(e)).change(),this.hide()},updater:function(e){return e},show:function(){var t=e.extend({},this.$element.offset(),{height:this.$element[0].offsetHeight});return this.$menu.css({top:t.top+t.height,left:t.left}),this.$menu.show(),this.shown=!0,this},hide:function(){return this.$menu.hide(),this.shown=!1,this},lookup:function(t){var n;return this.query=this.$element.val(),!this.query||this.query.length<this.options.minLength?this.shown?this.hide():this:(n=e.isFunction(this.source)?this.source(this.query,e.proxy(this.process,this)):this.source,n?this.process(n):this)},process:function(t){var n=this;return t=e.grep(t,function(e){return n.matcher(e)}),t=this.sorter(t),t.length?this.render(t.slice(0,this.options.items)).show():this.shown?this.hide():this},matcher:function(e){return~e.toLowerCase().indexOf(this.query.toLowerCase())},sorter:function(e){var t=[],n=[],r=[],i;while(i=e.shift())i.toLowerCase().indexOf(this.query.toLowerCase())?~i.indexOf(this.query)?n.push(i):r.push(i):t.push(i);return t.concat(n,r)},highlighter:function(e){var t=this.query.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&");return e.replace(new RegExp("("+t+")","ig"),function(e,t){return"<strong>"+t+"</strong>"})},render:function(t){var n=this;return t=e(t).map(function(t,r){return t=e(n.options.item).attr("data-value",r),t.find("a").html(n.highlighter(r)),t[0]}),t.first().addClass("active"),this.$menu.html(t),this},next:function(t){var n=this.$menu.find(".active").removeClass("active"),r=n.next();r.length||(r=e(this.$menu.find("li")[0])),r.addClass("active")},prev:function(e){var t=this.$menu.find(".active").removeClass("active"),n=t.prev();n.length||(n=this.$menu.find("li").last()),n.addClass("active")},listen:function(){this.$element.on("blur",e.proxy(this.blur,this)).on("keypress",e.proxy(this.keypress,this)).on("keyup",e.proxy(this.keyup,this)),(e.browser.chrome||e.browser.webkit||e.browser.msie)&&this.$element.on("keydown",e.proxy(this.keydown,this)),this.$menu.on("click",e.proxy(this.click,this)).on("mouseenter","li",e.proxy(this.mouseenter,this))},move:function(e){if(!this.shown)return;switch(e.keyCode){case 9:case 13:case 27:e.preventDefault();break;case 38:e.preventDefault(),this.prev();break;case 40:e.preventDefault(),this.next()}e.stopPropagation()},keydown:function(t){this.suppressKeyPressRepeat=!~e.inArray(t.keyCode,[40,38,9,13,27]),this.move(t)},keypress:function(e){if(this.suppressKeyPressRepeat)return;this.move(e)},keyup:function(e){switch(e.keyCode){case 40:case 38:break;case 9:case 13:if(!this.shown)return;this.select();break;case 27:if(!this.shown)return;this.hide();break;default:this.lookup()}e.stopPropagation(),e.preventDefault()},blur:function(e){var t=this;setTimeout(function(){t.hide()},150)},click:function(e){e.stopPropagation(),e.preventDefault(),this.select()},mouseenter:function(t){this.$menu.find(".active").removeClass("active"),e(t.currentTarget).addClass("active")}},e.fn.typeahead=function(n){return this.each(function(){var r=e(this),i=r.data("typeahead"),s=typeof n=="object"&&n;i||r.data("typeahead",i=new t(this,s)),typeof n=="string"&&i[n]()})},e.fn.typeahead.defaults={source:[],items:8,menu:'<ul class="typeahead dropdown-menu"></ul>',item:'<li><a href="#"></a></li>',minLength:1},e.fn.typeahead.Constructor=t,e(function(){e("body").on("focus.typeahead.data-api",'[data-provide="typeahead"]',function(t){var n=e(this);if(n.data("typeahead"))return;t.preventDefault(),n.typeahead(n.data())})})}(window.jQuery),!function(e){"use strict";var t=function(t,n){this.options=e.extend({},e.fn.affix.defaults,n),this.$window=e(window).on("scroll.affix.data-api",e.proxy(this.checkPosition,this)),this.$element=e(t),this.checkPosition()};t.prototype.checkPosition=function(){if(!this.$element.is(":visible"))return;var t=e(document).height(),n=this.$window.scrollTop(),r=this.$element.offset(),i=this.options.offset,s=i.bottom,o=i.top,u="affix affix-top affix-bottom",a;typeof i!="object"&&(s=o=i),typeof o=="function"&&(o=i.top()),typeof s=="function"&&(s=i.bottom()),a=this.unpin!=null&&n+this.unpin<=r.top?!1:s!=null&&r.top+this.$element.height()>=t-s?"bottom":o!=null&&n<=o?"top":!1;if(this.affixed===a)return;this.affixed=a,this.unpin=a=="bottom"?r.top-n:null,this.$element.removeClass(u).addClass("affix"+(a?"-"+a:""))},e.fn.affix=function(n){return this.each(function(){var r=e(this),i=r.data("affix"),s=typeof n=="object"&&n;i||r.data("affix",i=new t(this,s)),typeof n=="string"&&i[n]()})},e.fn.affix.Constructor=t,e.fn.affix.defaults={offset:0},e(window).on("load",function(){e('[data-spy="affix"]').each(function(){var t=e(this),n=t.data();n.offset=n.offset||{},n.offsetBottom&&(n.offset.bottom=n.offsetBottom),n.offsetTop&&(n.offset.top=n.offsetTop),t.affix(n)})})}(window.jQuery);
\ No newline at end of file
diff --git a/wqflask/wqflask/static/packages/colorbox/example1/colorbox.css b/wqflask/wqflask/static/packages/colorbox/example1/colorbox.css
deleted file mode 100755
index 1dedd90f..00000000
--- a/wqflask/wqflask/static/packages/colorbox/example1/colorbox.css
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
-    Colorbox Core Style:
-    The following CSS is consistent between example themes and should not be altered.
-*/
-#colorbox, #cboxOverlay, #cboxWrapper{position:absolute; top:0; left:0; z-index:9999; overflow:hidden;}
-#cboxOverlay{position:fixed; width:100%; height:100%;}
-#cboxMiddleLeft, #cboxBottomLeft{clear:left;}
-#cboxContent{position:relative;}
-#cboxLoadedContent{overflow:auto; -webkit-overflow-scrolling: touch;}
-#cboxTitle{margin:0;}
-#cboxLoadingOverlay, #cboxLoadingGraphic{position:absolute; top:0; left:0; width:100%; height:100%;}
-#cboxPrevious, #cboxNext, #cboxClose, #cboxSlideshow{cursor:pointer;}
-.cboxPhoto{float:left; margin:auto; border:0; display:block; max-width:none; -ms-interpolation-mode:bicubic;}
-.cboxIframe{width:100%; height:100%; display:block; border:0;}
-#colorbox, #cboxContent, #cboxLoadedContent{box-sizing:content-box; -moz-box-sizing:content-box; -webkit-box-sizing:content-box;}
-
-/* 
-    User Style:
-    Change the following styles to modify the appearance of Colorbox.  They are
-    ordered & tabbed in a way that represents the nesting of the generated HTML.
-*/
-#cboxOverlay{background:url(images/overlay.png) repeat 0 0;}
-#colorbox{outline:0;}
-    #cboxTopLeft{width:21px; height:21px; background:url(images/controls.png) no-repeat -101px 0;}
-    #cboxTopRight{width:21px; height:21px; background:url(images/controls.png) no-repeat -130px 0;}
-    #cboxBottomLeft{width:21px; height:21px; background:url(images/controls.png) no-repeat -101px -29px;}
-    #cboxBottomRight{width:21px; height:21px; background:url(images/controls.png) no-repeat -130px -29px;}
-    #cboxMiddleLeft{width:21px; background:url(images/controls.png) left top repeat-y;}
-    #cboxMiddleRight{width:21px; background:url(images/controls.png) right top repeat-y;}
-    #cboxTopCenter{height:21px; background:url(images/border.png) 0 0 repeat-x;}
-    #cboxBottomCenter{height:21px; background:url(images/border.png) 0 -29px repeat-x;}
-    #cboxContent{background:#fff; overflow:hidden;}
-        .cboxIframe{background:#fff;}
-        #cboxError{padding:50px; border:1px solid #ccc;}
-        #cboxLoadedContent{margin-bottom:28px;}
-        #cboxTitle{position:absolute; bottom:4px; left:0; text-align:center; width:100%; color:#949494;}
-        #cboxCurrent{position:absolute; bottom:4px; left:58px; color:#949494;}
-        #cboxLoadingOverlay{background:url(images/loading_background.png) no-repeat center center;}
-        #cboxLoadingGraphic{background:url(images/loading.gif) no-repeat center center;}
-
-        /* these elements are buttons, and may need to have additional styles reset to avoid unwanted base styles */
-        #cboxPrevious, #cboxNext, #cboxSlideshow, #cboxClose {border:0; padding:0; margin:0; overflow:visible; width:auto; background:none; }
-        
-        /* avoid outlines on :active (mouseclick), but preserve outlines on :focus (tabbed navigating) */
-        #cboxPrevious:active, #cboxNext:active, #cboxSlideshow:active, #cboxClose:active {outline:0;}
-
-        #cboxSlideshow{position:absolute; bottom:4px; right:30px; color:#0092ef;}
-        #cboxPrevious{position:absolute; bottom:0; left:0; background:url(images/controls.png) no-repeat -75px 0; width:25px; height:25px; text-indent:-9999px;}
-        #cboxPrevious:hover{background-position:-75px -25px;}
-        #cboxNext{position:absolute; bottom:0; left:27px; background:url(images/controls.png) no-repeat -50px 0; width:25px; height:25px; text-indent:-9999px;}
-        #cboxNext:hover{background-position:-50px -25px;}
-        #cboxClose{position:absolute; bottom:0; right:0; background:url(images/controls.png) no-repeat -25px 0; width:25px; height:25px; text-indent:-9999px;}
-        #cboxClose:hover{background-position:-25px -25px;}
-
-/*
-  The following fixes a problem where IE7 and IE8 replace a PNG's alpha transparency with a black fill
-  when an alpha filter (opacity change) is set on the element or ancestor element.  This style is not applied to or needed in IE9.
-  See: http://jacklmoore.com/notes/ie-transparency-problems/
-*/
-.cboxIE #cboxTopLeft,
-.cboxIE #cboxTopCenter,
-.cboxIE #cboxTopRight,
-.cboxIE #cboxBottomLeft,
-.cboxIE #cboxBottomCenter,
-.cboxIE #cboxBottomRight,
-.cboxIE #cboxMiddleLeft,
-.cboxIE #cboxMiddleRight {
-    filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#00FFFFFF,endColorstr=#00FFFFFF);
-}
\ No newline at end of file
diff --git a/wqflask/wqflask/static/packages/colorbox/example1/images/border.png b/wqflask/wqflask/static/packages/colorbox/example1/images/border.png
deleted file mode 100755
index f463a10d..00000000
--- a/wqflask/wqflask/static/packages/colorbox/example1/images/border.png
+++ /dev/null
Binary files differdiff --git a/wqflask/wqflask/static/packages/colorbox/example1/images/controls.png b/wqflask/wqflask/static/packages/colorbox/example1/images/controls.png
deleted file mode 100755
index dcfd6fb9..00000000
--- a/wqflask/wqflask/static/packages/colorbox/example1/images/controls.png
+++ /dev/null
Binary files differdiff --git a/wqflask/wqflask/static/packages/colorbox/example1/images/loading.gif b/wqflask/wqflask/static/packages/colorbox/example1/images/loading.gif
deleted file mode 100755
index b4695d81..00000000
--- a/wqflask/wqflask/static/packages/colorbox/example1/images/loading.gif
+++ /dev/null
Binary files differdiff --git a/wqflask/wqflask/static/packages/colorbox/example1/images/loading_background.png b/wqflask/wqflask/static/packages/colorbox/example1/images/loading_background.png
deleted file mode 100755
index 6ae83e69..00000000
--- a/wqflask/wqflask/static/packages/colorbox/example1/images/loading_background.png
+++ /dev/null
Binary files differdiff --git a/wqflask/wqflask/static/packages/colorbox/example1/images/overlay.png b/wqflask/wqflask/static/packages/colorbox/example1/images/overlay.png
deleted file mode 100755
index 53ea98f7..00000000
--- a/wqflask/wqflask/static/packages/colorbox/example1/images/overlay.png
+++ /dev/null
Binary files differdiff --git a/wqflask/wqflask/static/packages/colorbox/example1/index.html b/wqflask/wqflask/static/packages/colorbox/example1/index.html
deleted file mode 100755
index 39a76f67..00000000
--- a/wqflask/wqflask/static/packages/colorbox/example1/index.html
+++ /dev/null
@@ -1,95 +0,0 @@
-<!DOCTYPE html>
-<html>
-	<head>
-		<meta charset='utf-8'/>
-		<title>Colorbox Examples</title>
-		<style>
-			body{font:12px/1.2 Verdana, sans-serif; padding:0 10px;}
-			a:link, a:visited{text-decoration:none; color:#416CE5; border-bottom:1px solid #416CE5;}
-			h2{font-size:13px; margin:15px 0 0 0;}
-		</style>
-		<link rel="stylesheet" href="colorbox.css" />
-		<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
-		<script src="../jquery.colorbox.js"></script>
-		<script>
-			$(document).ready(function(){
-				//Examples of how to assign the Colorbox event to elements
-				$(".group1").colorbox({rel:'group1'});
-				$(".group2").colorbox({rel:'group2', transition:"fade"});
-				$(".group3").colorbox({rel:'group3', transition:"none", width:"75%", height:"75%"});
-				$(".group4").colorbox({rel:'group4', slideshow:true});
-				$(".ajax").colorbox();
-				$(".youtube").colorbox({iframe:true, innerWidth:425, innerHeight:344});
-				$(".vimeo").colorbox({iframe:true, innerWidth:500, innerHeight:409});
-				$(".iframe").colorbox({iframe:true, width:"80%", height:"80%"});
-				$(".inline").colorbox({inline:true, width:"50%"});
-				$(".callbacks").colorbox({
-					onOpen:function(){ alert('onOpen: colorbox is about to open'); },
-					onLoad:function(){ alert('onLoad: colorbox has started to load the targeted content'); },
-					onComplete:function(){ alert('onComplete: colorbox has displayed the loaded content'); },
-					onCleanup:function(){ alert('onCleanup: colorbox has begun the close process'); },
-					onClosed:function(){ alert('onClosed: colorbox has completely closed'); }
-				});
-
-				$('.non-retina').colorbox({rel:'group5', transition:'none'})
-				$('.retina').colorbox({rel:'group5', transition:'none', retinaImage:true, retinaUrl:true});
-				
-				//Example of preserving a JavaScript event for inline calls.
-				$("#click").click(function(){ 
-					$('#click').css({"background-color":"#f00", "color":"#fff", "cursor":"inherit"}).text("Open this window again and this message will still be here.");
-					return false;
-				});
-			});
-		</script>
-	</head>
-	<body>
-		<h1>Colorbox Demonstration</h1>
-		<h2>Elastic Transition</h2>
-		<p><a class="group1" href="../content/ohoopee1.jpg" title="Me and my grandfather on the Ohoopee.">Grouped Photo 1</a></p>
-		<p><a class="group1" href="../content/ohoopee2.jpg" title="On the Ohoopee as a child">Grouped Photo 2</a></p>
-		<p><a class="group1" href="../content/ohoopee3.jpg" title="On the Ohoopee as an adult">Grouped Photo 3</a></p>
-		
-		<h2>Fade Transition</h2>
-		<p><a class="group2" href="../content/ohoopee1.jpg" title="Me and my grandfather on the Ohoopee">Grouped Photo 1</a></p>
-		<p><a class="group2" href="../content/ohoopee2.jpg" title="On the Ohoopee as a child">Grouped Photo 2</a></p>
-		<p><a class="group2" href="../content/ohoopee3.jpg" title="On the Ohoopee as an adult">Grouped Photo 3</a></p>
-		
-		<h2>No Transition + fixed width and height (75% of screen size)</h2>
-		<p><a class="group3" href="../content/ohoopee1.jpg" title="Me and my grandfather on the Ohoopee.">Grouped Photo 1</a></p>
-		<p><a class="group3" href="../content/ohoopee2.jpg" title="On the Ohoopee as a child">Grouped Photo 2</a></p>
-		<p><a class="group3" href="../content/ohoopee3.jpg" title="On the Ohoopee as an adult">Grouped Photo 3</a></p>
-		
-		<h2>Slideshow</h2>
-		<p><a class="group4"  href="../content/ohoopee1.jpg" title="Me and my grandfather on the Ohoopee.">Grouped Photo 1</a></p>
-		<p><a class="group4"  href="../content/ohoopee2.jpg" title="On the Ohoopee as a child">Grouped Photo 2</a></p>
-		<p><a class="group4"  href="../content/ohoopee3.jpg" title="On the Ohoopee as an adult">Grouped Photo 3</a></p>
-		
-		<h2>Other Content Types</h2>
-		<p><a class='ajax' href="../content/ajax.html" title="Homer Defined">Outside HTML (Ajax)</a></p>
-		<p><a class='youtube' href="http://www.youtube.com/embed/617ANIA5Rqs?rel=0&amp;wmode=transparent" title="The Knife: We Share Our Mother's Health">Flash / Video (Iframe/Direct Link To YouTube)</a></p>
-		<p><a class='vimeo' href="http://player.vimeo.com/video/2285902" title="R&ouml;yksopp: Remind Me">Flash / Video (Iframe/Direct Link To Vimeo)</a></p>
-		<p><a class='iframe' href="http://wikipedia.com">Outside Webpage (Iframe)</a></p>
-		<p><a class='inline' href="#inline_content">Inline HTML</a></p>
-		
-		<h2>Demonstration of using callbacks</h2>
-		<p><a class='callbacks' href="../content/marylou.jpg" title="Marylou on Cumberland Island">Example with alerts</a>. Callbacks and event-hooks allow users to extend functionality without having to rewrite parts of the plugin.</p>
-		
-
-		<h2>Retina Images</h2>
-		<p><a class="retina" href="../content/daisy.jpg" title="Retina">Retina</a></p>
-		<p><a class="non-retina" href="../content/daisy.jpg" title="Non-Retina">Non-Retina</a></p>
-
-		<!-- This contains the hidden content for inline calls -->
-		<div style='display:none'>
-			<div id='inline_content' style='padding:10px; background:#fff;'>
-			<p><strong>This content comes from a hidden element on this page.</strong></p>
-			<p>The inline option preserves bound JavaScript events and changes, and it puts the content back where it came from when it is closed.</p>
-			<p><a id="click" href="#" style='padding:5px; background:#ccc;'>Click me, it will be preserved!</a></p>
-			
-			<p><strong>If you try to open a new Colorbox while it is already open, it will update itself with the new content.</strong></p>
-			<p>Updating Content Example:<br />
-			<a class="ajax" href="../content/ajax.html">Click here to load new content</a></p>
-			</div>
-		</div>
-	</body>
-</html>
\ No newline at end of file
diff --git a/wqflask/wqflask/static/packages/colorbox/example2/colorbox.css b/wqflask/wqflask/static/packages/colorbox/example2/colorbox.css
deleted file mode 100755
index b463110f..00000000
--- a/wqflask/wqflask/static/packages/colorbox/example2/colorbox.css
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
-    Colorbox Core Style:
-    The following CSS is consistent between example themes and should not be altered.
-*/
-#colorbox, #cboxOverlay, #cboxWrapper{position:absolute; top:0; left:0; z-index:9999; overflow:hidden;}
-#cboxOverlay{position:fixed; width:100%; height:100%;}
-#cboxMiddleLeft, #cboxBottomLeft{clear:left;}
-#cboxContent{position:relative;}
-#cboxLoadedContent{overflow:auto; -webkit-overflow-scrolling: touch;}
-#cboxTitle{margin:0;}
-#cboxLoadingOverlay, #cboxLoadingGraphic{position:absolute; top:0; left:0; width:100%; height:100%;}
-#cboxPrevious, #cboxNext, #cboxClose, #cboxSlideshow{cursor:pointer;}
-.cboxPhoto{float:left; margin:auto; border:0; display:block; max-width:none; -ms-interpolation-mode:bicubic;}
-.cboxIframe{width:100%; height:100%; display:block; border:0;}
-#colorbox, #cboxContent, #cboxLoadedContent{box-sizing:content-box; -moz-box-sizing:content-box; -webkit-box-sizing:content-box;}
-
-/* 
-    User Style:
-    Change the following styles to modify the appearance of Colorbox.  They are
-    ordered & tabbed in a way that represents the nesting of the generated HTML.
-*/
-#cboxOverlay{background:#fff;}
-#colorbox{outline:0;}
-    #cboxContent{margin-top:32px; overflow:visible; background:#000;}
-        .cboxIframe{background:#fff;}
-        #cboxError{padding:50px; border:1px solid #ccc;}
-        #cboxLoadedContent{background:#000; padding:1px;}
-        #cboxLoadingGraphic{background:url(images/loading.gif) no-repeat center center;}
-        #cboxLoadingOverlay{background:#000;}
-        #cboxTitle{position:absolute; top:-22px; left:0; color:#000;}
-        #cboxCurrent{position:absolute; top:-22px; right:205px; text-indent:-9999px;}
-
-        /* these elements are buttons, and may need to have additional styles reset to avoid unwanted base styles */
-        #cboxPrevious, #cboxNext, #cboxSlideshow, #cboxClose {border:0; padding:0; margin:0; overflow:visible; text-indent:-9999px; width:20px; height:20px; position:absolute; top:-20px; background:url(images/controls.png) no-repeat 0 0;}
-        
-        /* avoid outlines on :active (mouseclick), but preserve outlines on :focus (tabbed navigating) */
-        #cboxPrevious:active, #cboxNext:active, #cboxSlideshow:active, #cboxClose:active {outline:0;}
-
-        #cboxPrevious{background-position:0px 0px; right:44px;}
-        #cboxPrevious:hover{background-position:0px -25px;}
-        #cboxNext{background-position:-25px 0px; right:22px;}
-        #cboxNext:hover{background-position:-25px -25px;}
-        #cboxClose{background-position:-50px 0px; right:0;}
-        #cboxClose:hover{background-position:-50px -25px;}
-        .cboxSlideshow_on #cboxPrevious, .cboxSlideshow_off #cboxPrevious{right:66px;}
-        .cboxSlideshow_on #cboxSlideshow{background-position:-75px -25px; right:44px;}
-        .cboxSlideshow_on #cboxSlideshow:hover{background-position:-100px -25px;}
-        .cboxSlideshow_off #cboxSlideshow{background-position:-100px 0px; right:44px;}
-        .cboxSlideshow_off #cboxSlideshow:hover{background-position:-75px -25px;}
diff --git a/wqflask/wqflask/static/packages/colorbox/example2/images/controls.png b/wqflask/wqflask/static/packages/colorbox/example2/images/controls.png
deleted file mode 100755
index 8569b57f..00000000
--- a/wqflask/wqflask/static/packages/colorbox/example2/images/controls.png
+++ /dev/null
Binary files differdiff --git a/wqflask/wqflask/static/packages/colorbox/example2/images/loading.gif b/wqflask/wqflask/static/packages/colorbox/example2/images/loading.gif
deleted file mode 100755
index 19c67bbd..00000000
--- a/wqflask/wqflask/static/packages/colorbox/example2/images/loading.gif
+++ /dev/null
Binary files differdiff --git a/wqflask/wqflask/static/packages/colorbox/example2/index.html b/wqflask/wqflask/static/packages/colorbox/example2/index.html
deleted file mode 100755
index 39a76f67..00000000
--- a/wqflask/wqflask/static/packages/colorbox/example2/index.html
+++ /dev/null
@@ -1,95 +0,0 @@
-<!DOCTYPE html>
-<html>
-	<head>
-		<meta charset='utf-8'/>
-		<title>Colorbox Examples</title>
-		<style>
-			body{font:12px/1.2 Verdana, sans-serif; padding:0 10px;}
-			a:link, a:visited{text-decoration:none; color:#416CE5; border-bottom:1px solid #416CE5;}
-			h2{font-size:13px; margin:15px 0 0 0;}
-		</style>
-		<link rel="stylesheet" href="colorbox.css" />
-		<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
-		<script src="../jquery.colorbox.js"></script>
-		<script>
-			$(document).ready(function(){
-				//Examples of how to assign the Colorbox event to elements
-				$(".group1").colorbox({rel:'group1'});
-				$(".group2").colorbox({rel:'group2', transition:"fade"});
-				$(".group3").colorbox({rel:'group3', transition:"none", width:"75%", height:"75%"});
-				$(".group4").colorbox({rel:'group4', slideshow:true});
-				$(".ajax").colorbox();
-				$(".youtube").colorbox({iframe:true, innerWidth:425, innerHeight:344});
-				$(".vimeo").colorbox({iframe:true, innerWidth:500, innerHeight:409});
-				$(".iframe").colorbox({iframe:true, width:"80%", height:"80%"});
-				$(".inline").colorbox({inline:true, width:"50%"});
-				$(".callbacks").colorbox({
-					onOpen:function(){ alert('onOpen: colorbox is about to open'); },
-					onLoad:function(){ alert('onLoad: colorbox has started to load the targeted content'); },
-					onComplete:function(){ alert('onComplete: colorbox has displayed the loaded content'); },
-					onCleanup:function(){ alert('onCleanup: colorbox has begun the close process'); },
-					onClosed:function(){ alert('onClosed: colorbox has completely closed'); }
-				});
-
-				$('.non-retina').colorbox({rel:'group5', transition:'none'})
-				$('.retina').colorbox({rel:'group5', transition:'none', retinaImage:true, retinaUrl:true});
-				
-				//Example of preserving a JavaScript event for inline calls.
-				$("#click").click(function(){ 
-					$('#click').css({"background-color":"#f00", "color":"#fff", "cursor":"inherit"}).text("Open this window again and this message will still be here.");
-					return false;
-				});
-			});
-		</script>
-	</head>
-	<body>
-		<h1>Colorbox Demonstration</h1>
-		<h2>Elastic Transition</h2>
-		<p><a class="group1" href="../content/ohoopee1.jpg" title="Me and my grandfather on the Ohoopee.">Grouped Photo 1</a></p>
-		<p><a class="group1" href="../content/ohoopee2.jpg" title="On the Ohoopee as a child">Grouped Photo 2</a></p>
-		<p><a class="group1" href="../content/ohoopee3.jpg" title="On the Ohoopee as an adult">Grouped Photo 3</a></p>
-		
-		<h2>Fade Transition</h2>
-		<p><a class="group2" href="../content/ohoopee1.jpg" title="Me and my grandfather on the Ohoopee">Grouped Photo 1</a></p>
-		<p><a class="group2" href="../content/ohoopee2.jpg" title="On the Ohoopee as a child">Grouped Photo 2</a></p>
-		<p><a class="group2" href="../content/ohoopee3.jpg" title="On the Ohoopee as an adult">Grouped Photo 3</a></p>
-		
-		<h2>No Transition + fixed width and height (75% of screen size)</h2>
-		<p><a class="group3" href="../content/ohoopee1.jpg" title="Me and my grandfather on the Ohoopee.">Grouped Photo 1</a></p>
-		<p><a class="group3" href="../content/ohoopee2.jpg" title="On the Ohoopee as a child">Grouped Photo 2</a></p>
-		<p><a class="group3" href="../content/ohoopee3.jpg" title="On the Ohoopee as an adult">Grouped Photo 3</a></p>
-		
-		<h2>Slideshow</h2>
-		<p><a class="group4"  href="../content/ohoopee1.jpg" title="Me and my grandfather on the Ohoopee.">Grouped Photo 1</a></p>
-		<p><a class="group4"  href="../content/ohoopee2.jpg" title="On the Ohoopee as a child">Grouped Photo 2</a></p>
-		<p><a class="group4"  href="../content/ohoopee3.jpg" title="On the Ohoopee as an adult">Grouped Photo 3</a></p>
-		
-		<h2>Other Content Types</h2>
-		<p><a class='ajax' href="../content/ajax.html" title="Homer Defined">Outside HTML (Ajax)</a></p>
-		<p><a class='youtube' href="http://www.youtube.com/embed/617ANIA5Rqs?rel=0&amp;wmode=transparent" title="The Knife: We Share Our Mother's Health">Flash / Video (Iframe/Direct Link To YouTube)</a></p>
-		<p><a class='vimeo' href="http://player.vimeo.com/video/2285902" title="R&ouml;yksopp: Remind Me">Flash / Video (Iframe/Direct Link To Vimeo)</a></p>
-		<p><a class='iframe' href="http://wikipedia.com">Outside Webpage (Iframe)</a></p>
-		<p><a class='inline' href="#inline_content">Inline HTML</a></p>
-		
-		<h2>Demonstration of using callbacks</h2>
-		<p><a class='callbacks' href="../content/marylou.jpg" title="Marylou on Cumberland Island">Example with alerts</a>. Callbacks and event-hooks allow users to extend functionality without having to rewrite parts of the plugin.</p>
-		
-
-		<h2>Retina Images</h2>
-		<p><a class="retina" href="../content/daisy.jpg" title="Retina">Retina</a></p>
-		<p><a class="non-retina" href="../content/daisy.jpg" title="Non-Retina">Non-Retina</a></p>
-
-		<!-- This contains the hidden content for inline calls -->
-		<div style='display:none'>
-			<div id='inline_content' style='padding:10px; background:#fff;'>
-			<p><strong>This content comes from a hidden element on this page.</strong></p>
-			<p>The inline option preserves bound JavaScript events and changes, and it puts the content back where it came from when it is closed.</p>
-			<p><a id="click" href="#" style='padding:5px; background:#ccc;'>Click me, it will be preserved!</a></p>
-			
-			<p><strong>If you try to open a new Colorbox while it is already open, it will update itself with the new content.</strong></p>
-			<p>Updating Content Example:<br />
-			<a class="ajax" href="../content/ajax.html">Click here to load new content</a></p>
-			</div>
-		</div>
-	</body>
-</html>
\ No newline at end of file
diff --git a/wqflask/wqflask/static/packages/colorbox/example3/colorbox.css b/wqflask/wqflask/static/packages/colorbox/example3/colorbox.css
deleted file mode 100755
index f12844e1..00000000
--- a/wqflask/wqflask/static/packages/colorbox/example3/colorbox.css
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
-    Colorbox Core Style:
-    The following CSS is consistent between example themes and should not be altered.
-*/
-#colorbox, #cboxOverlay, #cboxWrapper{position:absolute; top:0; left:0; z-index:9999; overflow:hidden;}
-#cboxOverlay{position:fixed; width:100%; height:100%;}
-#cboxMiddleLeft, #cboxBottomLeft{clear:left;}
-#cboxContent{position:relative;}
-#cboxLoadedContent{overflow:auto; -webkit-overflow-scrolling: touch;}
-#cboxTitle{margin:0;}
-#cboxLoadingOverlay, #cboxLoadingGraphic{position:absolute; top:0; left:0; width:100%; height:100%;}
-#cboxPrevious, #cboxNext, #cboxClose, #cboxSlideshow{cursor:pointer;}
-.cboxPhoto{float:left; margin:auto; border:0; display:block; max-width:none; -ms-interpolation-mode:bicubic;}
-.cboxIframe{width:100%; height:100%; display:block; border:0;}
-#colorbox, #cboxContent, #cboxLoadedContent{box-sizing:content-box; -moz-box-sizing:content-box; -webkit-box-sizing:content-box;}
-
-/* 
-    User Style:
-    Change the following styles to modify the appearance of Colorbox.  They are
-    ordered & tabbed in a way that represents the nesting of the generated HTML.
-*/
-#cboxOverlay{background:#000;}
-#colorbox{outline:0;}
-    #cboxContent{margin-top:20px;background:#000;}
-        .cboxIframe{background:#fff;}
-        #cboxError{padding:50px; border:1px solid #ccc;}
-        #cboxLoadedContent{border:5px solid #000; background:#fff;}
-        #cboxTitle{position:absolute; top:-20px; left:0; color:#ccc;}
-        #cboxCurrent{position:absolute; top:-20px; right:0px; color:#ccc;}
-        #cboxLoadingGraphic{background:url(images/loading.gif) no-repeat center center;}
-
-        /* these elements are buttons, and may need to have additional styles reset to avoid unwanted base styles */
-        #cboxPrevious, #cboxNext, #cboxSlideshow, #cboxClose {border:0; padding:0; margin:0; overflow:visible; width:auto; background:none; }
-        
-        /* avoid outlines on :active (mouseclick), but preserve outlines on :focus (tabbed navigating) */
-        #cboxPrevious:active, #cboxNext:active, #cboxSlideshow:active, #cboxClose:active {outline:0;}
-        
-        #cboxSlideshow{position:absolute; top:-20px; right:90px; color:#fff;}
-        #cboxPrevious{position:absolute; top:50%; left:5px; margin-top:-32px; background:url(images/controls.png) no-repeat top left; width:28px; height:65px; text-indent:-9999px;}
-        #cboxPrevious:hover{background-position:bottom left;}
-        #cboxNext{position:absolute; top:50%; right:5px; margin-top:-32px; background:url(images/controls.png) no-repeat top right; width:28px; height:65px; text-indent:-9999px;}
-        #cboxNext:hover{background-position:bottom right;}
-        #cboxClose{position:absolute; top:5px; right:5px; display:block; background:url(images/controls.png) no-repeat top center; width:38px; height:19px; text-indent:-9999px;}
-        #cboxClose:hover{background-position:bottom center;}
diff --git a/wqflask/wqflask/static/packages/colorbox/example3/images/controls.png b/wqflask/wqflask/static/packages/colorbox/example3/images/controls.png
deleted file mode 100755
index e1e97982..00000000
--- a/wqflask/wqflask/static/packages/colorbox/example3/images/controls.png
+++ /dev/null
Binary files differdiff --git a/wqflask/wqflask/static/packages/colorbox/example3/images/loading.gif b/wqflask/wqflask/static/packages/colorbox/example3/images/loading.gif
deleted file mode 100755
index 19c67bbd..00000000
--- a/wqflask/wqflask/static/packages/colorbox/example3/images/loading.gif
+++ /dev/null
Binary files differdiff --git a/wqflask/wqflask/static/packages/colorbox/example3/index.html b/wqflask/wqflask/static/packages/colorbox/example3/index.html
deleted file mode 100755
index 39a76f67..00000000
--- a/wqflask/wqflask/static/packages/colorbox/example3/index.html
+++ /dev/null
@@ -1,95 +0,0 @@
-<!DOCTYPE html>
-<html>
-	<head>
-		<meta charset='utf-8'/>
-		<title>Colorbox Examples</title>
-		<style>
-			body{font:12px/1.2 Verdana, sans-serif; padding:0 10px;}
-			a:link, a:visited{text-decoration:none; color:#416CE5; border-bottom:1px solid #416CE5;}
-			h2{font-size:13px; margin:15px 0 0 0;}
-		</style>
-		<link rel="stylesheet" href="colorbox.css" />
-		<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
-		<script src="../jquery.colorbox.js"></script>
-		<script>
-			$(document).ready(function(){
-				//Examples of how to assign the Colorbox event to elements
-				$(".group1").colorbox({rel:'group1'});
-				$(".group2").colorbox({rel:'group2', transition:"fade"});
-				$(".group3").colorbox({rel:'group3', transition:"none", width:"75%", height:"75%"});
-				$(".group4").colorbox({rel:'group4', slideshow:true});
-				$(".ajax").colorbox();
-				$(".youtube").colorbox({iframe:true, innerWidth:425, innerHeight:344});
-				$(".vimeo").colorbox({iframe:true, innerWidth:500, innerHeight:409});
-				$(".iframe").colorbox({iframe:true, width:"80%", height:"80%"});
-				$(".inline").colorbox({inline:true, width:"50%"});
-				$(".callbacks").colorbox({
-					onOpen:function(){ alert('onOpen: colorbox is about to open'); },
-					onLoad:function(){ alert('onLoad: colorbox has started to load the targeted content'); },
-					onComplete:function(){ alert('onComplete: colorbox has displayed the loaded content'); },
-					onCleanup:function(){ alert('onCleanup: colorbox has begun the close process'); },
-					onClosed:function(){ alert('onClosed: colorbox has completely closed'); }
-				});
-
-				$('.non-retina').colorbox({rel:'group5', transition:'none'})
-				$('.retina').colorbox({rel:'group5', transition:'none', retinaImage:true, retinaUrl:true});
-				
-				//Example of preserving a JavaScript event for inline calls.
-				$("#click").click(function(){ 
-					$('#click').css({"background-color":"#f00", "color":"#fff", "cursor":"inherit"}).text("Open this window again and this message will still be here.");
-					return false;
-				});
-			});
-		</script>
-	</head>
-	<body>
-		<h1>Colorbox Demonstration</h1>
-		<h2>Elastic Transition</h2>
-		<p><a class="group1" href="../content/ohoopee1.jpg" title="Me and my grandfather on the Ohoopee.">Grouped Photo 1</a></p>
-		<p><a class="group1" href="../content/ohoopee2.jpg" title="On the Ohoopee as a child">Grouped Photo 2</a></p>
-		<p><a class="group1" href="../content/ohoopee3.jpg" title="On the Ohoopee as an adult">Grouped Photo 3</a></p>
-		
-		<h2>Fade Transition</h2>
-		<p><a class="group2" href="../content/ohoopee1.jpg" title="Me and my grandfather on the Ohoopee">Grouped Photo 1</a></p>
-		<p><a class="group2" href="../content/ohoopee2.jpg" title="On the Ohoopee as a child">Grouped Photo 2</a></p>
-		<p><a class="group2" href="../content/ohoopee3.jpg" title="On the Ohoopee as an adult">Grouped Photo 3</a></p>
-		
-		<h2>No Transition + fixed width and height (75% of screen size)</h2>
-		<p><a class="group3" href="../content/ohoopee1.jpg" title="Me and my grandfather on the Ohoopee.">Grouped Photo 1</a></p>
-		<p><a class="group3" href="../content/ohoopee2.jpg" title="On the Ohoopee as a child">Grouped Photo 2</a></p>
-		<p><a class="group3" href="../content/ohoopee3.jpg" title="On the Ohoopee as an adult">Grouped Photo 3</a></p>
-		
-		<h2>Slideshow</h2>
-		<p><a class="group4"  href="../content/ohoopee1.jpg" title="Me and my grandfather on the Ohoopee.">Grouped Photo 1</a></p>
-		<p><a class="group4"  href="../content/ohoopee2.jpg" title="On the Ohoopee as a child">Grouped Photo 2</a></p>
-		<p><a class="group4"  href="../content/ohoopee3.jpg" title="On the Ohoopee as an adult">Grouped Photo 3</a></p>
-		
-		<h2>Other Content Types</h2>
-		<p><a class='ajax' href="../content/ajax.html" title="Homer Defined">Outside HTML (Ajax)</a></p>
-		<p><a class='youtube' href="http://www.youtube.com/embed/617ANIA5Rqs?rel=0&amp;wmode=transparent" title="The Knife: We Share Our Mother's Health">Flash / Video (Iframe/Direct Link To YouTube)</a></p>
-		<p><a class='vimeo' href="http://player.vimeo.com/video/2285902" title="R&ouml;yksopp: Remind Me">Flash / Video (Iframe/Direct Link To Vimeo)</a></p>
-		<p><a class='iframe' href="http://wikipedia.com">Outside Webpage (Iframe)</a></p>
-		<p><a class='inline' href="#inline_content">Inline HTML</a></p>
-		
-		<h2>Demonstration of using callbacks</h2>
-		<p><a class='callbacks' href="../content/marylou.jpg" title="Marylou on Cumberland Island">Example with alerts</a>. Callbacks and event-hooks allow users to extend functionality without having to rewrite parts of the plugin.</p>
-		
-
-		<h2>Retina Images</h2>
-		<p><a class="retina" href="../content/daisy.jpg" title="Retina">Retina</a></p>
-		<p><a class="non-retina" href="../content/daisy.jpg" title="Non-Retina">Non-Retina</a></p>
-
-		<!-- This contains the hidden content for inline calls -->
-		<div style='display:none'>
-			<div id='inline_content' style='padding:10px; background:#fff;'>
-			<p><strong>This content comes from a hidden element on this page.</strong></p>
-			<p>The inline option preserves bound JavaScript events and changes, and it puts the content back where it came from when it is closed.</p>
-			<p><a id="click" href="#" style='padding:5px; background:#ccc;'>Click me, it will be preserved!</a></p>
-			
-			<p><strong>If you try to open a new Colorbox while it is already open, it will update itself with the new content.</strong></p>
-			<p>Updating Content Example:<br />
-			<a class="ajax" href="../content/ajax.html">Click here to load new content</a></p>
-			</div>
-		</div>
-	</body>
-</html>
\ No newline at end of file
diff --git a/wqflask/wqflask/static/packages/colorbox/example4/colorbox.css b/wqflask/wqflask/static/packages/colorbox/example4/colorbox.css
deleted file mode 100755
index 1a3b899a..00000000
--- a/wqflask/wqflask/static/packages/colorbox/example4/colorbox.css
+++ /dev/null
@@ -1,65 +0,0 @@
-/*
-    Colorbox Core Style:
-    The following CSS is consistent between example themes and should not be altered.
-*/
-#colorbox, #cboxOverlay, #cboxWrapper{position:absolute; top:0; left:0; z-index:9999; overflow:hidden;}
-#cboxOverlay{position:fixed; width:100%; height:100%;}
-#cboxMiddleLeft, #cboxBottomLeft{clear:left;}
-#cboxContent{position:relative;}
-#cboxLoadedContent{overflow:auto; -webkit-overflow-scrolling: touch;}
-#cboxTitle{margin:0;}
-#cboxLoadingOverlay, #cboxLoadingGraphic{position:absolute; top:0; left:0; width:100%; height:100%;}
-#cboxPrevious, #cboxNext, #cboxClose, #cboxSlideshow{cursor:pointer;}
-.cboxPhoto{float:left; margin:auto; border:0; display:block; max-width:none; -ms-interpolation-mode:bicubic;}
-.cboxIframe{width:100%; height:100%; display:block; border:0;}
-#colorbox, #cboxContent, #cboxLoadedContent{box-sizing:content-box; -moz-box-sizing:content-box; -webkit-box-sizing:content-box;}
-
-/* 
-    User Style:
-    Change the following styles to modify the appearance of Colorbox.  They are
-    ordered & tabbed in a way that represents the nesting of the generated HTML.
-*/
-#cboxOverlay{background:#fff;}
-#colorbox{outline:0;}
-    #cboxTopLeft{width:25px; height:25px; background:url(images/border1.png) no-repeat 0 0;}
-    #cboxTopCenter{height:25px; background:url(images/border1.png) repeat-x 0 -50px;}
-    #cboxTopRight{width:25px; height:25px; background:url(images/border1.png) no-repeat -25px 0;}
-    #cboxBottomLeft{width:25px; height:25px; background:url(images/border1.png) no-repeat 0 -25px;}
-    #cboxBottomCenter{height:25px; background:url(images/border1.png) repeat-x 0 -75px;}
-    #cboxBottomRight{width:25px; height:25px; background:url(images/border1.png) no-repeat -25px -25px;}
-    #cboxMiddleLeft{width:25px; background:url(images/border2.png) repeat-y 0 0;}
-    #cboxMiddleRight{width:25px; background:url(images/border2.png) repeat-y -25px 0;}
-    #cboxContent{background:#fff; overflow:hidden;}
-        .cboxIframe{background:#fff;}
-        #cboxError{padding:50px; border:1px solid #ccc;}
-        #cboxLoadedContent{margin-bottom:20px;}
-        #cboxTitle{position:absolute; bottom:0px; left:0; text-align:center; width:100%; color:#999;}
-        #cboxCurrent{position:absolute; bottom:0px; left:100px; color:#999;}
-        #cboxLoadingOverlay{background:#fff url(images/loading.gif) no-repeat 5px 5px;}
-
-        /* these elements are buttons, and may need to have additional styles reset to avoid unwanted base styles */
-        #cboxPrevious, #cboxNext, #cboxSlideshow, #cboxClose {border:0; padding:0; margin:0; overflow:visible; width:auto; background:none; }
-        
-        /* avoid outlines on :active (mouseclick), but preserve outlines on :focus (tabbed navigating) */
-        #cboxPrevious:active, #cboxNext:active, #cboxSlideshow:active, #cboxClose:active {outline:0;}
-
-        #cboxSlideshow{position:absolute; bottom:0px; right:42px; color:#444;}
-        #cboxPrevious{position:absolute; bottom:0px; left:0; color:#444;}
-        #cboxNext{position:absolute; bottom:0px; left:63px; color:#444;}
-        #cboxClose{position:absolute; bottom:0; right:0; display:block; color:#444;}
-
-/*
-  The following fixes a problem where IE7 and IE8 replace a PNG's alpha transparency with a black fill
-  when an alpha filter (opacity change) is set on the element or ancestor element.  This style is not applied to or needed in IE9.
-  See: http://jacklmoore.com/notes/ie-transparency-problems/
-*/
-.cboxIE #cboxTopLeft,
-.cboxIE #cboxTopCenter,
-.cboxIE #cboxTopRight,
-.cboxIE #cboxBottomLeft,
-.cboxIE #cboxBottomCenter,
-.cboxIE #cboxBottomRight,
-.cboxIE #cboxMiddleLeft,
-.cboxIE #cboxMiddleRight {
-    filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#00FFFFFF,endColorstr=#00FFFFFF);
-}
\ No newline at end of file
diff --git a/wqflask/wqflask/static/packages/colorbox/example4/images/border1.png b/wqflask/wqflask/static/packages/colorbox/example4/images/border1.png
deleted file mode 100755
index 0ddc7040..00000000
--- a/wqflask/wqflask/static/packages/colorbox/example4/images/border1.png
+++ /dev/null
Binary files differdiff --git a/wqflask/wqflask/static/packages/colorbox/example4/images/border2.png b/wqflask/wqflask/static/packages/colorbox/example4/images/border2.png
deleted file mode 100755
index aa62a0b7..00000000
--- a/wqflask/wqflask/static/packages/colorbox/example4/images/border2.png
+++ /dev/null
Binary files differdiff --git a/wqflask/wqflask/static/packages/colorbox/example4/images/loading.gif b/wqflask/wqflask/static/packages/colorbox/example4/images/loading.gif
deleted file mode 100755
index 602ce3c3..00000000
--- a/wqflask/wqflask/static/packages/colorbox/example4/images/loading.gif
+++ /dev/null
Binary files differdiff --git a/wqflask/wqflask/static/packages/colorbox/example4/index.html b/wqflask/wqflask/static/packages/colorbox/example4/index.html
deleted file mode 100755
index 39a76f67..00000000
--- a/wqflask/wqflask/static/packages/colorbox/example4/index.html
+++ /dev/null
@@ -1,95 +0,0 @@
-<!DOCTYPE html>
-<html>
-	<head>
-		<meta charset='utf-8'/>
-		<title>Colorbox Examples</title>
-		<style>
-			body{font:12px/1.2 Verdana, sans-serif; padding:0 10px;}
-			a:link, a:visited{text-decoration:none; color:#416CE5; border-bottom:1px solid #416CE5;}
-			h2{font-size:13px; margin:15px 0 0 0;}
-		</style>
-		<link rel="stylesheet" href="colorbox.css" />
-		<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
-		<script src="../jquery.colorbox.js"></script>
-		<script>
-			$(document).ready(function(){
-				//Examples of how to assign the Colorbox event to elements
-				$(".group1").colorbox({rel:'group1'});
-				$(".group2").colorbox({rel:'group2', transition:"fade"});
-				$(".group3").colorbox({rel:'group3', transition:"none", width:"75%", height:"75%"});
-				$(".group4").colorbox({rel:'group4', slideshow:true});
-				$(".ajax").colorbox();
-				$(".youtube").colorbox({iframe:true, innerWidth:425, innerHeight:344});
-				$(".vimeo").colorbox({iframe:true, innerWidth:500, innerHeight:409});
-				$(".iframe").colorbox({iframe:true, width:"80%", height:"80%"});
-				$(".inline").colorbox({inline:true, width:"50%"});
-				$(".callbacks").colorbox({
-					onOpen:function(){ alert('onOpen: colorbox is about to open'); },
-					onLoad:function(){ alert('onLoad: colorbox has started to load the targeted content'); },
-					onComplete:function(){ alert('onComplete: colorbox has displayed the loaded content'); },
-					onCleanup:function(){ alert('onCleanup: colorbox has begun the close process'); },
-					onClosed:function(){ alert('onClosed: colorbox has completely closed'); }
-				});
-
-				$('.non-retina').colorbox({rel:'group5', transition:'none'})
-				$('.retina').colorbox({rel:'group5', transition:'none', retinaImage:true, retinaUrl:true});
-				
-				//Example of preserving a JavaScript event for inline calls.
-				$("#click").click(function(){ 
-					$('#click').css({"background-color":"#f00", "color":"#fff", "cursor":"inherit"}).text("Open this window again and this message will still be here.");
-					return false;
-				});
-			});
-		</script>
-	</head>
-	<body>
-		<h1>Colorbox Demonstration</h1>
-		<h2>Elastic Transition</h2>
-		<p><a class="group1" href="../content/ohoopee1.jpg" title="Me and my grandfather on the Ohoopee.">Grouped Photo 1</a></p>
-		<p><a class="group1" href="../content/ohoopee2.jpg" title="On the Ohoopee as a child">Grouped Photo 2</a></p>
-		<p><a class="group1" href="../content/ohoopee3.jpg" title="On the Ohoopee as an adult">Grouped Photo 3</a></p>
-		
-		<h2>Fade Transition</h2>
-		<p><a class="group2" href="../content/ohoopee1.jpg" title="Me and my grandfather on the Ohoopee">Grouped Photo 1</a></p>
-		<p><a class="group2" href="../content/ohoopee2.jpg" title="On the Ohoopee as a child">Grouped Photo 2</a></p>
-		<p><a class="group2" href="../content/ohoopee3.jpg" title="On the Ohoopee as an adult">Grouped Photo 3</a></p>
-		
-		<h2>No Transition + fixed width and height (75% of screen size)</h2>
-		<p><a class="group3" href="../content/ohoopee1.jpg" title="Me and my grandfather on the Ohoopee.">Grouped Photo 1</a></p>
-		<p><a class="group3" href="../content/ohoopee2.jpg" title="On the Ohoopee as a child">Grouped Photo 2</a></p>
-		<p><a class="group3" href="../content/ohoopee3.jpg" title="On the Ohoopee as an adult">Grouped Photo 3</a></p>
-		
-		<h2>Slideshow</h2>
-		<p><a class="group4"  href="../content/ohoopee1.jpg" title="Me and my grandfather on the Ohoopee.">Grouped Photo 1</a></p>
-		<p><a class="group4"  href="../content/ohoopee2.jpg" title="On the Ohoopee as a child">Grouped Photo 2</a></p>
-		<p><a class="group4"  href="../content/ohoopee3.jpg" title="On the Ohoopee as an adult">Grouped Photo 3</a></p>
-		
-		<h2>Other Content Types</h2>
-		<p><a class='ajax' href="../content/ajax.html" title="Homer Defined">Outside HTML (Ajax)</a></p>
-		<p><a class='youtube' href="http://www.youtube.com/embed/617ANIA5Rqs?rel=0&amp;wmode=transparent" title="The Knife: We Share Our Mother's Health">Flash / Video (Iframe/Direct Link To YouTube)</a></p>
-		<p><a class='vimeo' href="http://player.vimeo.com/video/2285902" title="R&ouml;yksopp: Remind Me">Flash / Video (Iframe/Direct Link To Vimeo)</a></p>
-		<p><a class='iframe' href="http://wikipedia.com">Outside Webpage (Iframe)</a></p>
-		<p><a class='inline' href="#inline_content">Inline HTML</a></p>
-		
-		<h2>Demonstration of using callbacks</h2>
-		<p><a class='callbacks' href="../content/marylou.jpg" title="Marylou on Cumberland Island">Example with alerts</a>. Callbacks and event-hooks allow users to extend functionality without having to rewrite parts of the plugin.</p>
-		
-
-		<h2>Retina Images</h2>
-		<p><a class="retina" href="../content/daisy.jpg" title="Retina">Retina</a></p>
-		<p><a class="non-retina" href="../content/daisy.jpg" title="Non-Retina">Non-Retina</a></p>
-
-		<!-- This contains the hidden content for inline calls -->
-		<div style='display:none'>
-			<div id='inline_content' style='padding:10px; background:#fff;'>
-			<p><strong>This content comes from a hidden element on this page.</strong></p>
-			<p>The inline option preserves bound JavaScript events and changes, and it puts the content back where it came from when it is closed.</p>
-			<p><a id="click" href="#" style='padding:5px; background:#ccc;'>Click me, it will be preserved!</a></p>
-			
-			<p><strong>If you try to open a new Colorbox while it is already open, it will update itself with the new content.</strong></p>
-			<p>Updating Content Example:<br />
-			<a class="ajax" href="../content/ajax.html">Click here to load new content</a></p>
-			</div>
-		</div>
-	</body>
-</html>
\ No newline at end of file
diff --git a/wqflask/wqflask/static/packages/colorbox/example5/colorbox.css b/wqflask/wqflask/static/packages/colorbox/example5/colorbox.css
deleted file mode 100755
index fae0adef..00000000
--- a/wqflask/wqflask/static/packages/colorbox/example5/colorbox.css
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
-    Colorbox Core Style:
-    The following CSS is consistent between example themes and should not be altered.
-*/
-#colorbox, #cboxOverlay, #cboxWrapper{position:absolute; top:0; left:0; z-index:9999; overflow:hidden;}
-#cboxOverlay{position:fixed; width:100%; height:100%;}
-#cboxMiddleLeft, #cboxBottomLeft{clear:left;}
-#cboxContent{position:relative;}
-#cboxLoadedContent{overflow:auto; -webkit-overflow-scrolling: touch;}
-#cboxTitle{margin:0;}
-#cboxLoadingOverlay, #cboxLoadingGraphic{position:absolute; top:0; left:0; width:100%; height:100%;}
-#cboxPrevious, #cboxNext, #cboxClose, #cboxSlideshow{cursor:pointer;}
-.cboxPhoto{float:left; margin:auto; border:0; display:block; max-width:none; -ms-interpolation-mode:bicubic;}
-.cboxIframe{width:100%; height:100%; display:block; border:0;}
-#colorbox, #cboxContent, #cboxLoadedContent{box-sizing:content-box; -moz-box-sizing:content-box; -webkit-box-sizing:content-box;}
-
-/* 
-    User Style:
-    Change the following styles to modify the appearance of Colorbox.  They are
-    ordered & tabbed in a way that represents the nesting of the generated HTML.
-*/
-#cboxOverlay{background:#000;}
-#colorbox{outline:0;}
-    #cboxTopLeft{width:14px; height:14px; background:url(images/controls.png) no-repeat 0 0;}
-    #cboxTopCenter{height:14px; background:url(images/border.png) repeat-x top left;}
-    #cboxTopRight{width:14px; height:14px; background:url(images/controls.png) no-repeat -36px 0;}
-    #cboxBottomLeft{width:14px; height:43px; background:url(images/controls.png) no-repeat 0 -32px;}
-    #cboxBottomCenter{height:43px; background:url(images/border.png) repeat-x bottom left;}
-    #cboxBottomRight{width:14px; height:43px; background:url(images/controls.png) no-repeat -36px -32px;}
-    #cboxMiddleLeft{width:14px; background:url(images/controls.png) repeat-y -175px 0;}
-    #cboxMiddleRight{width:14px; background:url(images/controls.png) repeat-y -211px 0;}
-    #cboxContent{background:#fff; overflow:visible;}
-        .cboxIframe{background:#fff;}
-        #cboxError{padding:50px; border:1px solid #ccc;}
-        #cboxLoadedContent{margin-bottom:5px;}
-        #cboxLoadingOverlay{background:url(images/loading_background.png) no-repeat center center;}
-        #cboxLoadingGraphic{background:url(images/loading.gif) no-repeat center center;}
-        #cboxTitle{position:absolute; bottom:-25px; left:0; text-align:center; width:100%; font-weight:bold; color:#7C7C7C;}
-        #cboxCurrent{position:absolute; bottom:-25px; left:58px; font-weight:bold; color:#7C7C7C;}
-
-        /* these elements are buttons, and may need to have additional styles reset to avoid unwanted base styles */
-        #cboxPrevious, #cboxNext, #cboxSlideshow, #cboxClose {border:0; padding:0; margin:0; overflow:visible;  position:absolute; bottom:-29px; background:url(images/controls.png) no-repeat 0px 0px; width:23px; height:23px; text-indent:-9999px;}
-        
-        /* avoid outlines on :active (mouseclick), but preserve outlines on :focus (tabbed navigating) */
-        #cboxPrevious:active, #cboxNext:active, #cboxSlideshow:active, #cboxClose:active {outline:0;}
-
-        #cboxPrevious{left:0px; background-position: -51px -25px;}
-        #cboxPrevious:hover{background-position:-51px 0px;}
-        #cboxNext{left:27px; background-position:-75px -25px;}
-        #cboxNext:hover{background-position:-75px 0px;}
-        #cboxClose{right:0; background-position:-100px -25px;}
-        #cboxClose:hover{background-position:-100px 0px;}
-
-        .cboxSlideshow_on #cboxSlideshow{background-position:-125px 0px; right:27px;}
-        .cboxSlideshow_on #cboxSlideshow:hover{background-position:-150px 0px;}
-        .cboxSlideshow_off #cboxSlideshow{background-position:-150px -25px; right:27px;}
-        .cboxSlideshow_off #cboxSlideshow:hover{background-position:-125px 0px;}
\ No newline at end of file
diff --git a/wqflask/wqflask/static/packages/colorbox/example5/images/border.png b/wqflask/wqflask/static/packages/colorbox/example5/images/border.png
deleted file mode 100755
index df13bb6d..00000000
--- a/wqflask/wqflask/static/packages/colorbox/example5/images/border.png
+++ /dev/null
Binary files differdiff --git a/wqflask/wqflask/static/packages/colorbox/example5/images/controls.png b/wqflask/wqflask/static/packages/colorbox/example5/images/controls.png
deleted file mode 100755
index 65cfd1dc..00000000
--- a/wqflask/wqflask/static/packages/colorbox/example5/images/controls.png
+++ /dev/null
Binary files differdiff --git a/wqflask/wqflask/static/packages/colorbox/example5/images/loading.gif b/wqflask/wqflask/static/packages/colorbox/example5/images/loading.gif
deleted file mode 100755
index b4695d81..00000000
--- a/wqflask/wqflask/static/packages/colorbox/example5/images/loading.gif
+++ /dev/null
Binary files differdiff --git a/wqflask/wqflask/static/packages/colorbox/example5/images/loading_background.png b/wqflask/wqflask/static/packages/colorbox/example5/images/loading_background.png
deleted file mode 100755
index 9de11f46..00000000
--- a/wqflask/wqflask/static/packages/colorbox/example5/images/loading_background.png
+++ /dev/null
Binary files differdiff --git a/wqflask/wqflask/static/packages/colorbox/example5/index.html b/wqflask/wqflask/static/packages/colorbox/example5/index.html
deleted file mode 100755
index 39a76f67..00000000
--- a/wqflask/wqflask/static/packages/colorbox/example5/index.html
+++ /dev/null
@@ -1,95 +0,0 @@
-<!DOCTYPE html>
-<html>
-	<head>
-		<meta charset='utf-8'/>
-		<title>Colorbox Examples</title>
-		<style>
-			body{font:12px/1.2 Verdana, sans-serif; padding:0 10px;}
-			a:link, a:visited{text-decoration:none; color:#416CE5; border-bottom:1px solid #416CE5;}
-			h2{font-size:13px; margin:15px 0 0 0;}
-		</style>
-		<link rel="stylesheet" href="colorbox.css" />
-		<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
-		<script src="../jquery.colorbox.js"></script>
-		<script>
-			$(document).ready(function(){
-				//Examples of how to assign the Colorbox event to elements
-				$(".group1").colorbox({rel:'group1'});
-				$(".group2").colorbox({rel:'group2', transition:"fade"});
-				$(".group3").colorbox({rel:'group3', transition:"none", width:"75%", height:"75%"});
-				$(".group4").colorbox({rel:'group4', slideshow:true});
-				$(".ajax").colorbox();
-				$(".youtube").colorbox({iframe:true, innerWidth:425, innerHeight:344});
-				$(".vimeo").colorbox({iframe:true, innerWidth:500, innerHeight:409});
-				$(".iframe").colorbox({iframe:true, width:"80%", height:"80%"});
-				$(".inline").colorbox({inline:true, width:"50%"});
-				$(".callbacks").colorbox({
-					onOpen:function(){ alert('onOpen: colorbox is about to open'); },
-					onLoad:function(){ alert('onLoad: colorbox has started to load the targeted content'); },
-					onComplete:function(){ alert('onComplete: colorbox has displayed the loaded content'); },
-					onCleanup:function(){ alert('onCleanup: colorbox has begun the close process'); },
-					onClosed:function(){ alert('onClosed: colorbox has completely closed'); }
-				});
-
-				$('.non-retina').colorbox({rel:'group5', transition:'none'})
-				$('.retina').colorbox({rel:'group5', transition:'none', retinaImage:true, retinaUrl:true});
-				
-				//Example of preserving a JavaScript event for inline calls.
-				$("#click").click(function(){ 
-					$('#click').css({"background-color":"#f00", "color":"#fff", "cursor":"inherit"}).text("Open this window again and this message will still be here.");
-					return false;
-				});
-			});
-		</script>
-	</head>
-	<body>
-		<h1>Colorbox Demonstration</h1>
-		<h2>Elastic Transition</h2>
-		<p><a class="group1" href="../content/ohoopee1.jpg" title="Me and my grandfather on the Ohoopee.">Grouped Photo 1</a></p>
-		<p><a class="group1" href="../content/ohoopee2.jpg" title="On the Ohoopee as a child">Grouped Photo 2</a></p>
-		<p><a class="group1" href="../content/ohoopee3.jpg" title="On the Ohoopee as an adult">Grouped Photo 3</a></p>
-		
-		<h2>Fade Transition</h2>
-		<p><a class="group2" href="../content/ohoopee1.jpg" title="Me and my grandfather on the Ohoopee">Grouped Photo 1</a></p>
-		<p><a class="group2" href="../content/ohoopee2.jpg" title="On the Ohoopee as a child">Grouped Photo 2</a></p>
-		<p><a class="group2" href="../content/ohoopee3.jpg" title="On the Ohoopee as an adult">Grouped Photo 3</a></p>
-		
-		<h2>No Transition + fixed width and height (75% of screen size)</h2>
-		<p><a class="group3" href="../content/ohoopee1.jpg" title="Me and my grandfather on the Ohoopee.">Grouped Photo 1</a></p>
-		<p><a class="group3" href="../content/ohoopee2.jpg" title="On the Ohoopee as a child">Grouped Photo 2</a></p>
-		<p><a class="group3" href="../content/ohoopee3.jpg" title="On the Ohoopee as an adult">Grouped Photo 3</a></p>
-		
-		<h2>Slideshow</h2>
-		<p><a class="group4"  href="../content/ohoopee1.jpg" title="Me and my grandfather on the Ohoopee.">Grouped Photo 1</a></p>
-		<p><a class="group4"  href="../content/ohoopee2.jpg" title="On the Ohoopee as a child">Grouped Photo 2</a></p>
-		<p><a class="group4"  href="../content/ohoopee3.jpg" title="On the Ohoopee as an adult">Grouped Photo 3</a></p>
-		
-		<h2>Other Content Types</h2>
-		<p><a class='ajax' href="../content/ajax.html" title="Homer Defined">Outside HTML (Ajax)</a></p>
-		<p><a class='youtube' href="http://www.youtube.com/embed/617ANIA5Rqs?rel=0&amp;wmode=transparent" title="The Knife: We Share Our Mother's Health">Flash / Video (Iframe/Direct Link To YouTube)</a></p>
-		<p><a class='vimeo' href="http://player.vimeo.com/video/2285902" title="R&ouml;yksopp: Remind Me">Flash / Video (Iframe/Direct Link To Vimeo)</a></p>
-		<p><a class='iframe' href="http://wikipedia.com">Outside Webpage (Iframe)</a></p>
-		<p><a class='inline' href="#inline_content">Inline HTML</a></p>
-		
-		<h2>Demonstration of using callbacks</h2>
-		<p><a class='callbacks' href="../content/marylou.jpg" title="Marylou on Cumberland Island">Example with alerts</a>. Callbacks and event-hooks allow users to extend functionality without having to rewrite parts of the plugin.</p>
-		
-
-		<h2>Retina Images</h2>
-		<p><a class="retina" href="../content/daisy.jpg" title="Retina">Retina</a></p>
-		<p><a class="non-retina" href="../content/daisy.jpg" title="Non-Retina">Non-Retina</a></p>
-
-		<!-- This contains the hidden content for inline calls -->
-		<div style='display:none'>
-			<div id='inline_content' style='padding:10px; background:#fff;'>
-			<p><strong>This content comes from a hidden element on this page.</strong></p>
-			<p>The inline option preserves bound JavaScript events and changes, and it puts the content back where it came from when it is closed.</p>
-			<p><a id="click" href="#" style='padding:5px; background:#ccc;'>Click me, it will be preserved!</a></p>
-			
-			<p><strong>If you try to open a new Colorbox while it is already open, it will update itself with the new content.</strong></p>
-			<p>Updating Content Example:<br />
-			<a class="ajax" href="../content/ajax.html">Click here to load new content</a></p>
-			</div>
-		</div>
-	</body>
-</html>
\ No newline at end of file
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/KCPsample4.csv b/wqflask/wqflask/static/packages/jqplot/examples/KCPsample4.csv
deleted file mode 100755
index 453517b0..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/KCPsample4.csv
+++ /dev/null
@@ -1,25 +0,0 @@
-Product or service,v01,v02,v03,v04,v05,v06,v07,v08,v09,v10,v11,v12,v13,v14,v15,v16,v17,v18,v19,v20

-Rice,15.8442,13.0993,11.2898,10.7892,10.252,9.0165,8.5287,7.7442,6.9867,6.5213,5.9473,5.4766,4.9214,4.6398,3.8935,3.5228,3.0128,2.4847,2.0357,1.0672

-Bread and other cereals,1.7703,2.2535,2.2753,2.7927,2.2509,2.4341,2.5518,2.5547,2.4204,2.4186,2.4261,2.2927,2.4386,2.2295,2.2203,1.915,1.8791,1.7941,1.6567,0.9296

-Meat,8.3728,8.1221,8.3989,7.9758,8.8246,8.2377,8.432,7.8466,7.5343,7.1171,6.9801,6.9349,5.8307,5.7089,4.927,4.2237,3.6872,3.1429,2.581,1.3766

-Fish and seafood,9.1249,8.7326,7.6122,7.8577,7.1625,6.8527,6.5158,6.1715,6.1298,5.8702,5.3456,4.9906,4.4424,4.3022,3.5298,3.405,2.9977,2.4159,2.0832,1.1499

-Fruits and vegetables,8.0508,7.7875,7.6534,7.4448,7.3702,7.4188,7.3882,7.1647,6.9617,6.6576,6.6077,6.4823,5.9117,5.8149,5.505,5.5355,5.0907,4.569,4.3049,2.6325

-Other food products,10.4408,9.8278,9.9293,9.5176,9.6658,9.2359,9.2842,8.6497,8.7656,8.2962,8.155,7.7294,7.3674,6.9888,6.2995,5.7314,5.2703,4.6947,3.9614,2.2509

-Catering services,4.1883,4.7514,5.3198,5.8819,5.1732,5.5764,6.1713,6.7915,6.8511,7.2681,7.1461,8.109,9.2649,9.5322,11.2138,12.8299,12.9621,13.8936,13.7828,10.0525

-Non-alcoholic beverages,0.6641,0.8454,0.9018,1.0461,1.0113,1.235,1.279,1.3049,1.5024,1.4471,1.5358,1.5796,1.6471,1.6443,1.6562,1.6763,1.6097,1.5039,1.3752,0.864

-Alcoholic beverages,0.5221,0.6997,0.8513,0.8849,0.9168,0.9099,0.8339,0.9921,1.1169,1.1764,1.1936,1.1415,1.1181,1.2889,1.1378,1.023,1.1283,1.0417,0.9839,0.587

-Tobacco and narcotics,1.0969,1.188,1.0713,1.2803,1.1787,1.148,1.3229,1.1726,1.3764,1.3887,1.4011,1.3034,1.4368,1.5017,1.4899,1.4123,1.3168,1.1407,0.8458,0.38

-Clothing and footwear,2.275,2.5511,3.1025,2.9834,3.2857,3.7625,3.1928,3.7071,4.0364,3.629,3.9258,3.2208,3.7113,3.3166,3.4775,3.429,3.6121,3.4569,3.8416,4.1323

-Rentals (actual or imputed) and maintenance and repair of the dwelling,16.0654,15.719,16.3773,16.0175,15.8853,16.132,16.1309,16.3491,15.8512,16.4743,16.2862,15.7327,16.2793,16.6329,17.4903,17.4425,17.3413,18.3527,18.5029,15.2763

-Water supply and miscellaneous services related to the dwelling,1.1145,1.176,1.1183,1.0411,1.0058,1.0796,1.0321,1.0714,1.1117,1.0278,1.136,1.1397,1.1556,1.2206,1.2871,1.2361,1.2111,1.2312,1.1545,0.7881

-Electricity gas and other fuels,4.5928,4.7558,4.8855,4.4684,4.6677,4.6038,4.7789,4.6098,4.4171,4.5078,4.4137,4.4645,4.2693,4.2836,4.1709,4.159,3.8423,3.9957,3.6816,2.5785

-Furnishing household equipment and routine household maintenance,2.1027,2.1576,2.0721,2.0623,2.3498,2.2573,2.2866,2.3766,2.2488,2.3665,2.3445,2.2474,2.3345,2.2479,2.158,2.355,2.0744,2.2269,3.0474,3.8925

-Health,1.2709,1.6007,1.3996,1.612,1.4649,1.5875,1.7056,1.7315,1.7378,2.0401,2.3265,2.1096,2.0513,2.1548,2.0634,2.2206,1.8427,2.4817,2.3066,2.1685

-Transport,4.6414,5.6167,5.9571,6.5372,7.0242,7.6332,7.9823,8.3906,9.112,9.6872,10.2014,11.0074,11.375,11.6753,12.0489,12.0692,13.2962,13.2183,14.6559,32.0912

-Communication,0.2334,0.3642,0.5267,0.5911,0.8888,1.1633,1.0997,1.76,1.9811,2.1708,2.931,3.2634,3.6254,4.107,4.6944,5.0941,5.9984,6.2419,6.6059,5.8353

-Recreation and culture,2.2553,2.8903,2.9564,3.2839,3.4822,3.255,3.1666,3.4245,3.4066,3.8536,3.6333,4.0331,4.4847,4.3552,4.2768,4.1439,4.7196,4.6585,4.4286,3.921

-Education,0.3437,0.3282,0.4805,0.3881,0.4796,0.9766,0.6589,0.6443,1.0423,0.7941,1.064,1.5504,1.3977,1.5226,1.8344,1.9186,2.3022,2.8188,2.8424,2.7792

-Personal care,3.4466,3.5641,3.5711,3.4219,3.2835,3.3569,3.3416,3.4544,3.3675,3.2806,3.118,3.1881,3.2252,3.0588,3.0051,2.9868,3.0361,2.8972,2.9611,2.2867

-Other miscellaneous goods and services,1.5831,1.9691,2.2498,2.122,2.3766,2.1273,2.3165,2.0884,2.0421,2.0067,1.8809,2.0027,1.7115,1.7734,1.6204,1.6702,1.769,1.7391,2.3607,2.9604

-Food and non-alcoholic beverages,58.4561,55.4196,53.3806,53.3059,51.7105,50.007,50.1509,48.2276,47.1521,45.5962,44.1436,43.5952,41.8242,40.8606,39.2451,38.8396,36.5095,34.4988,31.7809,20.3231

-Non food,41.5439,44.5804,46.6194,46.6941,48.2895,49.993,49.8491,51.7724,52.8479,54.4038,55.8564,56.4048,58.1758,59.1394,60.7549,61.1604,63.4905,65.5012,68.2191,79.6769

diff --git a/wqflask/wqflask/static/packages/jqplot/examples/ages.json b/wqflask/wqflask/static/packages/jqplot/examples/ages.json
deleted file mode 100755
index 86916187..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/ages.json
+++ /dev/null
@@ -1,5 +0,0 @@
-[[1043353182,539695335,503657847,28.24,27.51,29.01,51.78], 
-[0.0085318435343400800,0.0088774027062416400,0.0094714560875224100,0.0101640893891056000,0.0108249758696292000,0.0113773174183149000,0.0117954271696904000,0.0120868766491156000,0.0122726357410028000,0.0123620512208843000,0.0124092312631522000,0.0123929933989534000,0.0123170841477326000,0.0121788940682660000,0.0119848553256476000,0.0117367932349178000,0.0114334768233470000,0.0110840887113746000,0.0107005336950161000,0.0102889073661635000,0.0098746874267631800,0.0094727992165526500,0.0091066817836288100,0.0087853078056091400,0.0085176451289595700,0.0082955898249666400,0.0081021034227657000,0.0079410857437656400,0.0078129432771183200,0.0077041517746791700,0.0076076629996558600,0.0075063773837400400,0.0074212932416191700,0.0073577960797626100,0.0073199937766648000,0.0072872222696609900,0.0072249036551971000,0.0071436496521446000,0.0070535868312601700,0.0069442503777637000,0.0068032069975035000,0.0066093294501292200,0.0063936409488174700,0.0061768176372133200,0.0059737878831400300,0.0057724507581444500,0.0055456647375558400,0.0053139201135624000,0.0050952395722700100,0.0048873227886988200,0.0046839194356973000,0.0044709211871979300,0.0042683374557587400,0.0040886232834079100,0.0039394433696905200,0.0038097165950705600,0.0036797119436340500,0.0035595490798891500,0.0034559622921317600,0.0033586853733251200,0.0032515219944251700,0.0031141174480235800,0.0029601056879342400,0.0027997057390388600,0.0026388958299152400,0.0024706340765107900,0.0022829305753990900,0.0020900571013307600,0.0019037152224417700,0.0017251049256371200,0.0015499961243315000,0.0013709889555399900,0.0011982773790103000,0.0010401790931594200,0.0009015220565900700,0.0007812832602556460,0.0006749752626942340,0.0005833580512023270,0.0005061657847658260,0.0004399544894590220,0.0003808034210932470,0.0003273788998735520,0.0002794993115460400,0.0002369793671257210,0.0001995479850687680,0.0001668101805315270,0.0001383186716039340,0.0001138075253115040,0.0000929924552954457,0.0000755223736670678,0.0000610047525059652,0.0000490638302928227,0.0000396489252832302,0.0000330891826825378,0.0000281195284929135,0.0001070412478036410],
-[0.0071192629623232800,0.0072839317935624000,0.0075693293189514500,0.0079091875498352200,0.0082360857829773300,0.0084979038169712600,0.0086893986451354100,0.0088353986277422900,0.0089633895658643000,0.0090878796761182500,0.0092337667384807200,0.0093792123312149900,0.0095192745279032600,0.0096463104169553400,0.0097588790000607600,0.0098544841215461300,0.0099282199747865200,0.0099763812248601700,0.0099957597226035700,0.0099801585489242500,0.0099375446097938400,0.0098709094654945100,0.0097926096630396900,0.0097014318757340600,0.0095968423362564000,0.0094699215837397400,0.0093120985109391200,0.0091337644254482100,0.0089445678055607600,0.0087423328014590000,0.0085321350430430500,0.0083104164267343500,0.0081040369311665900,0.0079207770770160300,0.0077675098774536000,0.0076284130950824500,0.0074765938644635800,0.0073237591351693500,0.0071772210497332700,0.0070244435483804400,0.0068550745015274400,0.0066526057090785200,0.0064404461001358000,0.0062305720357510500,0.0060342707683446500,0.0058408705961082800,0.0056264339860478000,0.0054065565344313600,0.0051920462742280000,0.0049765895152515200,0.0047558832991186200,0.0045207003388048400,0.0042899070487080500,0.0040745089551306800,0.0038817655555785800,0.0037053224400247200,0.0035332134254902200,0.0033727187145046400,0.0032284905944481100,0.0030937679725170100,0.0029582187048090100,0.0028081834596732200,0.0026513461722362800,0.0024926069125082600,0.0023353006048059200,0.0021744630786167700,0.0020021420693961100,0.0018298895084829500,0.0016671380010344600,0.0015153637133401800,0.0013712248188900700,0.0012284616818527500,0.0010934572254154500,0.0009707133813897040,0.0008622603131043950,0.0007661899219731710,0.0006786114871838230,0.0006005435486257860,0.0005322956370150040,0.0004715229254612440,0.0004158721219136000,0.0003645948643149670,0.0003176904909297340,0.0002751152300590630,0.0002367021156783720,0.0002021700726755280,0.0001712214234345020,0.0001437557719387760,0.0001197138111336940,0.0000989925882290494,0.0000814263200020563,0.0000667991474109870,0.0000549164545704749,0.0000455518367647343,0.0000384480445034309,0.0001437755914949950],
-[1.284165231,1.3059697282,1.3408259576,1.3770498469,1.4083776842,1.4346340126,1.4545779876,1.4658887137,1.4671638972,1.457608962,1.4400548643,1.4158684686,1.3864911961,1.3528812542,1.3159697978,1.27622903,1.2340137083,1.1905291022,1.1471037258,1.1047013276,1.0647737249,1.0283340659,0.9964942039,0.9703629438,0.9510519527,0.9386721807,0.932316307,0.9316292996,0.9359838821,0.9443012277,0.9554470086,0.9678781103,0.9812761433,0.9953894103,1.0098153246,1.0236249732,1.035479081,1.0451994053,1.0530930686,1.0593183708,1.0634438538,1.0645809137,1.0637641578,1.0623066923,1.0608111193,1.0589993944,1.0561690641,1.0531914677,1.0515722425,1.052330754,1.0553372965,1.0597522653,1.0661637808,1.0752634417,1.0874733411,1.1017415355,1.1159815378,1.1309096828,1.1470504754,1.1633078085,1.1777943775,1.1882903501,1.1963378464,1.2035708256,1.2108560457,1.2175013424,1.2218302494,1.2239011525,1.223611334,1.2198647763,1.2112533925,1.1958739376,1.1742717733,1.1482333683,1.1203430352,1.0926602484,1.0658097999,1.040887396,1.0189501507,0.9998112064,0.9811922123,0.9621730704,0.9427349027,0.9230154312,0.903354613,0.8841353287,0.8656369091,0.8483181293,0.8323701879,0.8174967062,0.8028084248,0.7870522949,0.7736454722,0.7783827557,0.7836945697,0.7977724963],
-[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,"95+", ""]]
\ No newline at end of file
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/ajax-loader.gif b/wqflask/wqflask/static/packages/jqplot/examples/ajax-loader.gif
deleted file mode 100755
index 3288d103..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/ajax-loader.gif
+++ /dev/null
Binary files differdiff --git a/wqflask/wqflask/static/packages/jqplot/examples/area.html b/wqflask/wqflask/static/packages/jqplot/examples/area.html
deleted file mode 100755
index 2aa52884..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/area.html
+++ /dev/null
@@ -1,229 +0,0 @@
-<!DOCTYPE html>
-
-<html>
-<head>
-	
-	<title>Filled (Area) Charts</title>
-
-    <link class="include" rel="stylesheet" type="text/css" href="../jquery.jqplot.min.css" />
-    <link rel="stylesheet" type="text/css" href="examples.min.css" />
-    <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shCoreDefault.min.css" />
-    <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shThemejqPlot.min.css" />
-  
-  <!--[if lt IE 9]><script language="javascript" type="text/javascript" src="../excanvas.js"></script><![endif]-->
-    <script class="include" type="text/javascript" src="../jquery.min.js"></script>
-    
-   
-</head>
-<body>
-    <div class="logo">
-   <div class="nav">
-   <a class="nav" href="../../../index.php"><span>&gt;</span>Home</a>
-   <a class="nav"  href="../../../docs/"><span>&gt;</span>Docs</a>
-   <a class="nav"  href="../../download/"><span>&gt;</span>Download</a>
-   <a class="nav" href="../../../info.php"><span>&gt;</span>Info</a>
-   <a class="nav"  href="../../../donate.php"><span>&gt;</span>Donate</a>
-   </div>
-</div>
-    <div class="example-content">
-
-    <div class="example-nav">
-  <a href="zooming.html">Previous</a> <a href="./">Examples</a> <a href="axisLabelTests.html">Next</a></div>
-
-      
-<!-- Example scripts go here -->
-
-<style type="text/css">
-.jqplot-target {
-    margin: 30px;
-}
-
-#customTooltipDiv {
-    position: absolute; 
-    display: none; 
-    color: #333333;
-    font-size: 0.8em;
-    border: 1px solid #666666; 
-    background-color: rgba(160, 160, 160, 0.2);
-    padding: 2px;
-}
-</style>
-
-<p>Area charts support highlighting and mouse events by default.  The options and handlers and callbacks are essentially the same as with bar, pie, donut and funnel charts.  One notable exception for area charts is that no data point index will be provided to the callback and the entire data set for the highlighted area will be returned.  This is because the area is not associated with one particular data point, but with the entire data set of the series.</p>
-
-<div><span>Moused Over: </span><span id="info1b">Nothing</span></div>
-
-<div id="chart1b" style="width:400px;height:260px;"></div>
-
-<p>For the chart below, mouseover has been disabled and click handling is enabled by setting "highlightMouseDown: true".  For "fillToZero" area charts that have both negative and positive values as shown below, clicking in either the positive of negative regions will generate the same result.</p> 
-
-<div><span>You Clicked: </span><span id="info1c">Nothing yet</span></div>
-
-<div id="chart1c" style="width:400px;height:260px;"></div>
-
-<div id="chart2" style="width:600px;height:260px;"></div>
-
-<div id="customTooltipDiv">I'm a tooltip.</div>
-  
-
-
-<script class="code" language="javascript" type="text/javascript">
-$(document).ready(function(){
-
-    var l2 = [11, 9, 5, 12, 14];
-    var l3 = [4, 8, 5, 3, 6];
-    var l4 = [12, 6, 13, 11, 2];    
-
-    
-    var plot1b = $.jqplot('chart1b',[l2, l3, l4],{
-       stackSeries: true,
-       showMarker: false,
-       seriesDefaults: {
-           fill: true
-       },
-       axes: {
-           xaxis: {
-               renderer: $.jqplot.CategoryAxisRenderer,
-               ticks: ["Mon", "Tue", "Wed", "Thr", "Fri"]
-           }
-       }
-    });
-    
-    $('#chart1b').bind('jqplotDataHighlight', 
-        function (ev, seriesIndex, pointIndex, data) {
-            $('#info1b').html('series: '+seriesIndex+', point: '+pointIndex+', data: '+data);
-        }
-    );
-    
-    $('#chart1b').bind('jqplotDataUnhighlight', 
-        function (ev) {
-            $('#info1b').html('Nothing');
-        }
-    );
-});
-</script>
- 
- 
-<script class="code" language="javascript" type="text/javascript">
-$(document).ready(function(){   
-    var l5 = [4, -3, 3, 6, 2, -2];
-    var plot1c = $.jqplot('chart1c',[l5],{
-       stackSeries: true,
-       showMarker: false,
-       seriesDefaults: {
-           fill: true,
-           fillToZero: true,
-           rendererOptions: {
-               highlightMouseDown: true
-           }
-       }
-    });
-
-    $('#chart1c').bind('jqplotDataClick', 
-        function (ev, seriesIndex, pointIndex, data) {
-            $('#info1c').html('series: '+seriesIndex+', point: '+pointIndex+', data: '+data);
-        }
-    );
-});
-</script>
-
-
-<script class="code" language="javascript" type="text/javascript">
-$(document).ready(function(){
-    var l6 = [11, 9, 5, 12, 14, 8, 7, 9, 6, 11, 9, 3, 4];
-    var l7 = [4, 8, 5, 3, 6, 5, 3, 2, 6, 7, 4, 3, 2];
-    var l8 = [12, 6, 13, 11, 2, 3, 4, 2, 1, 5, 7, 4, 8];
-
-    var ticks = [[1,'Dec 10'], [2,'Jan 11'], [3,'Feb 11'], [4,'Mar 11'], [5,'Apr 11'], [6,'May 11'], [7,'Jun 11'], [8,'Jul 11'], [9,'Aug 11'], [10,'Sep 11'], [11,'Oct 11'], [12,'Nov 11'], [13,'Dec 11']];  
-
-    
-    plot2 = $.jqplot('chart2',[l6, l7, l8],{
-       stackSeries: true,
-       showMarker: false,
-       highlighter: {
-        show: true,
-        showTooltip: false
-       },
-       seriesDefaults: {
-           fill: true,
-       },
-       series: [
-        {label: 'Beans'},
-        {label: 'Oranges'},
-        {label: 'Crackers'}
-       ],
-       legend: {
-        show: true,
-        placement: 'outsideGrid'
-       },
-       grid: {
-        drawBorder: false,
-        shadow: false
-       },
-       axes: {
-           xaxis: {
-              ticks: ticks,
-              tickRenderer: $.jqplot.CanvasAxisTickRenderer,
-              tickOptions: {
-                angle: -90 
-              },
-              drawMajorGridlines: false
-          }           
-        }
-    });
-    
-    // capture the highlighters highlight event and show a custom tooltip.
-    $('#chart2').bind('jqplotHighlighterHighlight', 
-        function (ev, seriesIndex, pointIndex, data, plot) {
-            // create some content for the tooltip.  Here we want the label of the tick,
-            // which is not supplied to the highlighters standard tooltip.
-            var content = plot.series[seriesIndex].label + ', ' + plot.series[seriesIndex]._xaxis.ticks[pointIndex][1] + ', ' + data[1];
-            // get a handle on our custom tooltip element, which was previously created
-            // and styled.  Be sure it is initiallly hidden!
-            var elem = $('#customTooltipDiv');
-            elem.html(content);
-            // Figure out where to position the tooltip.
-            var h = elem.outerHeight();
-            var w = elem.outerWidth();
-            var left = ev.pageX - w - 10;
-            var top = ev.pageY - h - 10;
-            // now stop any currently running animation, position the tooltip, and fade in.
-            elem.stop(true, true).css({left:left, top:top}).fadeIn(200);
-        }
-    );
-    
-    // Hide the tooltip when unhighliting.
-    $('#chart2').bind('jqplotHighlighterUnhighlight', 
-        function (ev) {
-            $('#customTooltipDiv').fadeOut(300);
-        }
-    );
-});
-</script>
-
-<!-- End example scripts -->
-
-<!-- Don't touch this! -->
-
-
-    <script class="include" type="text/javascript" src="../jquery.jqplot.min.js"></script>
-    <script type="text/javascript" src="syntaxhighlighter/scripts/shCore.min.js"></script>
-    <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushJScript.min.js"></script>
-    <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushXml.min.js"></script>
-<!-- Additional plugins go here -->
-
-  <script class="include" type="text/javascript" src="../plugins/jqplot.categoryAxisRenderer.min.js"></script>
-  <script class="include" type="text/javascript" src="../plugins/jqplot.highlighter.min.js"></script>
-  <script class="include" type="text/javascript" src="../plugins/jqplot.canvasTextRenderer.min.js"></script>
-  <script class="include" type="text/javascript" src="../plugins/jqplot.canvasAxisTickRenderer.min.js"></script>
-
-<!-- End additional plugins -->
-
-
-	</div>	
-	<script type="text/javascript" src="example.min.js"></script>
-
-</body>
-
-
-</html>
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/axisLabelTests.html b/wqflask/wqflask/static/packages/jqplot/examples/axisLabelTests.html
deleted file mode 100755
index 88d3fbb4..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/axisLabelTests.html
+++ /dev/null
@@ -1,157 +0,0 @@
-<!DOCTYPE html>
-
-<html>
-<head>
-	
-	<title>Line Charts and Options</title>
-
-    <link class="include" rel="stylesheet" type="text/css" href="../jquery.jqplot.min.css" />
-    <link rel="stylesheet" type="text/css" href="examples.min.css" />
-    <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shCoreDefault.min.css" />
-    <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shThemejqPlot.min.css" />
-  
-  <!--[if lt IE 9]><script language="javascript" type="text/javascript" src="../excanvas.js"></script><![endif]-->
-    <script class="include" type="text/javascript" src="../jquery.min.js"></script>
-    
-   
-</head>
-<body>
-    <div class="logo">
-   <div class="nav">
-   <a class="nav" href="../../../index.php"><span>&gt;</span>Home</a>
-   <a class="nav"  href="../../../docs/"><span>&gt;</span>Docs</a>
-   <a class="nav"  href="../../download/"><span>&gt;</span>Download</a>
-   <a class="nav" href="../../../info.php"><span>&gt;</span>Info</a>
-   <a class="nav"  href="../../../donate.php"><span>&gt;</span>Donate</a>
-   </div>
-</div>
-    <div class="example-content">
-
-    <div class="example-nav">
-  <a href="area.html">Previous</a> <a href="./">Examples</a> <a href="axisLabelsRotatedText.html">Next</a></div>
-
-      
-<!-- Example scripts go here -->
-
-<p>jqPlot support axis labels through the "label" option of each axis.  The default label renderer creates labels in div tags, which allows full css control over every label.  Labels are assigned css classes like "jqplot-axis_name-label" where "axis_name" will be xaxis, yaxis, etc.</p>
-
-<div id="chart1" style="height:300px; width:500px;"></div>
-
-<pre class="code prettyprint brush: js"></pre>
-
-
-<p>By including the "jqplot.canvasTextRenderer.min.js" and "jqplot.canvasAxisLabelRenderer.min.js" plugins, you can render label text directly onto canvas elements.  This allows text to be rotated and yaxes will have their labels rotated 90 degrees by default.   By default the labels will be rendered using the Hershey font metrics and not stroked as text.  Most recent browsers (include IE 9) support native text rendering in canvas elements.</p>
-
-<div id="chart2" style="height:300px; width:500px;"></div>
-
-<pre class="code prettyprint brush: js"></pre>
-
-      
-<p>If a visitors is using a browser suppporting native canvas fonts, the plot belowsupported browser, they will see the labels in the plot below rendered as 12 pt Georgia (or their system serif font if Georgia is unavailable).  If they are on an unsupported browser, they will see the default Hershey font.</p>
-
-<div id="chart3" style="height:300px; width:500px;"></div>
-
-<pre class="code prettyprint brush: js"></pre>
-
-
-  
-<script class="code" type="text/javascript">
-$(document).ready(function(){
-  var cosPoints = []; 
-  for (var i=0; i<2*Math.PI; i+=0.1){ 
-     cosPoints.push([i, Math.cos(i)]); 
-  } 
-  var plot1 = $.jqplot('chart1', [cosPoints], {  
-      series:[{showMarker:false}],
-      axes:{
-        xaxis:{
-          label:'Angle (radians)'
-        },
-        yaxis:{
-          label:'Cosine'
-        }
-      }
-  });
-});
-</script>
-  
-<script class="code" type="text/javascript">
-$(document).ready(function(){
-  var cosPoints = []; 
-  for (var i=0; i<2*Math.PI; i+=0.1){ 
-     cosPoints.push([i, Math.cos(i)]); 
-  } 
-  var plot2 = $.jqplot('chart2', [cosPoints], {  
-      series:[{showMarker:false}],
-      axes:{
-        xaxis:{
-          label:'Angle (radians)',
-          labelRenderer: $.jqplot.CanvasAxisLabelRenderer
-        },
-        yaxis:{
-          label:'Cosine',
-          labelRenderer: $.jqplot.CanvasAxisLabelRenderer
-        }
-      }
-  });
-});
-</script>
-  
-<script class="code" type="text/javascript">
-$(document).ready(function(){
-  var cosPoints = []; 
-  for (var i=0; i<2*Math.PI; i+=0.1){ 
-     cosPoints.push([i, Math.cos(i)]); 
-  } 
-  var plot3 = $.jqplot('chart3', [cosPoints], {  
-      series:[{showMarker:false}],
-      axes:{
-        xaxis:{
-          label:'Angle (radians)',
-          labelRenderer: $.jqplot.CanvasAxisLabelRenderer,
-          labelOptions: {
-            fontFamily: 'Georgia, Serif',
-            fontSize: '12pt'
-          }
-        },
-        yaxis:{
-          label:'Cosine',
-          labelRenderer: $.jqplot.CanvasAxisLabelRenderer,
-          labelOptions: {
-            fontFamily: 'Georgia, Serif',
-            fontSize: '12pt'
-          }
-        }
-      }
-  });
-});
-</script>
-
-
-
-<!-- End example scripts -->
-
-<!-- Don't touch this! -->
-
-
-    <script class="include" type="text/javascript" src="../jquery.jqplot.min.js"></script>
-    <script type="text/javascript" src="syntaxhighlighter/scripts/shCore.min.js"></script>
-    <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushJScript.min.js"></script>
-    <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushXml.min.js"></script>
-<!-- End Don't touch this! -->
-
-<!-- Additional plugins go here -->
-
-  <script class="include" type="text/javascript" src="../plugins/jqplot.canvasTextRenderer.min.js"></script>
-  <script class="include" type="text/javascript" src="../plugins/jqplot.canvasAxisLabelRenderer.min.js"></script>
-
-<!-- End additional plugins -->
-
-
-	</div>	
-	<script type="text/javascript" src="example.min.js"></script>
-
-</body>
-
-
-</html>
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/axisLabelsRotatedText.html b/wqflask/wqflask/static/packages/jqplot/examples/axisLabelsRotatedText.html
deleted file mode 100755
index 5f886ecc..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/axisLabelsRotatedText.html
+++ /dev/null
@@ -1,229 +0,0 @@
-<!DOCTYPE html>
-
-<html>
-<head>
-	
-	<title>Axis Labels and Rotated Text</title>
-
-    <link class="include" rel="stylesheet" type="text/css" href="../jquery.jqplot.min.css" />
-    <link rel="stylesheet" type="text/css" href="examples.min.css" />
-    <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shCoreDefault.min.css" />
-    <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shThemejqPlot.min.css" />
-  
-  <!--[if lt IE 9]><script language="javascript" type="text/javascript" src="../excanvas.js"></script><![endif]-->
-    <script class="include" type="text/javascript" src="../jquery.min.js"></script>
-    
-   
-</head>
-<body>
-    <div class="logo">
-   <div class="nav">
-   <a class="nav" href="../../../index.php"><span>&gt;</span>Home</a>
-   <a class="nav"  href="../../../docs/"><span>&gt;</span>Docs</a>
-   <a class="nav"  href="../../download/"><span>&gt;</span>Download</a>
-   <a class="nav" href="../../../info.php"><span>&gt;</span>Info</a>
-   <a class="nav"  href="../../../donate.php"><span>&gt;</span>Donate</a>
-   </div>
-</div>
-    <div class="example-content">
-
-    <div class="example-nav">
-  <a href="axisLabelTests.html">Previous</a> <a href="./">Examples</a> <a href="axisScalingForceTickAt.html">Next</a></div>
-
-    <div class="example-plot" id="chart1"></div><div class="example-plot" id="chart2"></div><div class="example-plot" id="chart3"></div><div class="example-plot" id="chart4"></div>  
-<!-- Example scripts go here -->
-
-    <style type="text/css">
-      .jqplot-point-label {white-space: nowrap;}
-/*    .jqplot-yaxis-label {font-size: 14pt;}*/
-/*    .jqplot-yaxis-tick {font-size: 7pt;}*/
-
-    div.jqplot-target {
-        height: 400px;
-        width: 750px;
-        margin: 70px;
-    }
-    </style>
-    
-    
-        <script class="code" type="text/javascript" language="javascript">
-$(document).ready(function(){
-    var line1 = [6.5, 9.2, 14, 19.65, 26.4, 35, 51];
-
-    var plot1 = $.jqplot('chart1', [line1], {
-        legend: {show:false},
-        axes:{
-          xaxis:{
-          tickOptions:{ 
-            angle: -30
-          },
-          tickRenderer:$.jqplot.CanvasAxisTickRenderer,
-            label:'Core Motor Amperage', 
-          labelOptions:{
-            fontFamily:'Helvetica',
-            fontSize: '14pt'
-          },
-          labelRenderer: $.jqplot.CanvasAxisLabelRenderer
-          }, 
-          yaxis:{
-            renderer:$.jqplot.LogAxisRenderer,
-            tickOptions:{
-                labelPosition: 'middle', 
-                angle:-30
-            },
-            tickRenderer:$.jqplot.CanvasAxisTickRenderer,
-            labelRenderer: $.jqplot.CanvasAxisLabelRenderer,
-            labelOptions:{
-                fontFamily:'Helvetica',
-                fontSize: '14pt'
-            },
-            label:'Core Motor Voltage'
-          }
-        }
-    });
-
-});
-</script>
-<script class="code" type="text/javascript" language="javascript">
-$(document).ready(function(){   
-    var line2 = [['1/1/2008', 42], ['2/14/2008', 56], ['3/7/2008', 39], ['4/22/2008', 81]];
-
-    var plot2 = $.jqplot('chart2', [line2], {
-      axes: {
-        xaxis: {
-          renderer: $.jqplot.DateAxisRenderer,
-          label: 'Incliment Occurrance',
-          labelRenderer: $.jqplot.CanvasAxisLabelRenderer,
-          tickRenderer: $.jqplot.CanvasAxisTickRenderer,
-          tickOptions: {
-              // labelPosition: 'middle',
-              angle: 15
-          }
-          
-        },
-        yaxis: {
-          label: 'Incliment Factor',
-          labelRenderer: $.jqplot.CanvasAxisLabelRenderer
-        }
-      }
-    });
-
-});
-</script>
-<script class="code" type="text/javascript" language="javascript">
-$(document).ready(function(){   
-    var line3 = [['Cup Holder Pinion Bob', 7], ['Generic Fog Lamp Marketing Gimmick', 9], 
-    ['HDTV Receiver', 15], ['8 Track Control Module', 12], 
-    ['SSPFM (Sealed Sludge Pump Fourier Modulator)', 3], 
-    ['Transcender/Spice Rack', 6], ['Hair Spray Rear View Mirror Danger Indicator', 18]];
-
-    var plot3 = $.jqplot('chart3', [line3], {
-      series:[{renderer:$.jqplot.BarRenderer}],
-      axes: {
-        xaxis: {
-          renderer: $.jqplot.CategoryAxisRenderer,
-          label: 'Warranty Concern',
-          labelRenderer: $.jqplot.CanvasAxisLabelRenderer,
-          tickRenderer: $.jqplot.CanvasAxisTickRenderer,
-          tickOptions: {
-              angle: -30,
-              fontFamily: 'Courier New',
-              fontSize: '9pt'
-          }
-          
-        },
-        yaxis: {
-          label: 'Occurance',
-          labelRenderer: $.jqplot.CanvasAxisLabelRenderer
-        }
-      }
-    });
-    
-    
-});
-</script>
-  
-    <script class="code" type="text/javascript" language="javascript">
-$(document).ready(function(){
-
-    var line = [['Cup Holder Pinion Bob', 7], ['Generic Fog Lamp', 9], ['HDTV Receiver', 15], 
-    ['8 Track Control Module', 12], [' Sludge Pump Fourier Modulator', 3], 
-    ['Transcender/Spice Rack', 6], ['Hair Spray Danger Indicator', 18]];
-
-    var line2 = [['Nickle', 28], ['Aluminum', 13], ['Xenon', 54], ['Silver', 47], 
-    ['Sulfer', 16], ['Silicon', 14], ['Vanadium', 23]];
-
-    var plot4 = $.jqplot('chart4', [line, line2], {
-        title: 'Concern vs. Occurrance',
-        series:[{renderer:$.jqplot.BarRenderer}, {xaxis:'x2axis', yaxis:'y2axis'}],
-        axes: {
-            xaxis: {
-                renderer: $.jqplot.CategoryAxisRenderer,
-                label: 'Warranty Concern',
-                labelRenderer: $.jqplot.CanvasAxisLabelRenderer,
-                tickRenderer: $.jqplot.CanvasAxisTickRenderer,
-                tickOptions: {
-                    angle: 30
-                }
-            },
-            x2axis: {
-                renderer: $.jqplot.CategoryAxisRenderer,
-                label: 'Metal',
-                labelRenderer: $.jqplot.CanvasAxisLabelRenderer,
-                tickRenderer: $.jqplot.CanvasAxisTickRenderer,
-                tickOptions: {
-                    angle: 30
-                }
-            },
-            yaxis: {
-                autoscale:true,
-                label: 'Occurance',
-                labelRenderer: $.jqplot.CanvasAxisLabelRenderer,
-                tickRenderer: $.jqplot.CanvasAxisTickRenderer,
-                tickOptions: {
-                    angle: 30
-                }
-            },
-            y2axis: {
-                autoscale:true,
-                label: 'Number',
-                labelRenderer: $.jqplot.CanvasAxisLabelRenderer,
-                tickRenderer: $.jqplot.CanvasAxisTickRenderer,
-                tickOptions: {
-                    angle: 30
-                }
-            }
-        }
-    });
-});
-    </script>
-
-<!-- End example scripts -->
-
-<!-- Don't touch this! -->
-
-
-    <script class="include" type="text/javascript" src="../jquery.jqplot.min.js"></script>
-    <script type="text/javascript" src="syntaxhighlighter/scripts/shCore.min.js"></script>
-    <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushJScript.min.js"></script>
-    <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushXml.min.js"></script>
-<!-- Additional plugins go here -->
-
-    <script class="include" type="text/javascript" src="../plugins/jqplot.logAxisRenderer.min.js"></script>
-    <script class="include" type="text/javascript" src="../plugins/jqplot.canvasTextRenderer.min.js"></script>
-    <script class="include" type="text/javascript" src="../plugins/jqplot.canvasAxisLabelRenderer.min.js"></script>
-    <script class="include" type="text/javascript" src="../plugins/jqplot.canvasAxisTickRenderer.min.js"></script>
-    <script class="include" type="text/javascript" src="../plugins/jqplot.dateAxisRenderer.min.js"></script>
-    <script class="include" type="text/javascript" src="../plugins/jqplot.categoryAxisRenderer.min.js"></script>
-    <script class="include" type="text/javascript" src="../plugins/jqplot.barRenderer.min.js"></script>
-
-<!-- End additional plugins -->
-
-
-	</div>	
-	<script type="text/javascript" src="example.min.js"></script>
-
-</body>
-
-
-</html>
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/axisScalingForceTickAt.html b/wqflask/wqflask/static/packages/jqplot/examples/axisScalingForceTickAt.html
deleted file mode 100755
index f9b8056b..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/axisScalingForceTickAt.html
+++ /dev/null
@@ -1,242 +0,0 @@
-<!DOCTYPE html>
-
-<html>
-<head>
-	
-	<title>Force Plot to Have Tick at 0 or 100</title>
-
-    <link class="include" rel="stylesheet" type="text/css" href="../jquery.jqplot.min.css" />
-    <link rel="stylesheet" type="text/css" href="examples.min.css" />
-    <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shCoreDefault.min.css" />
-    <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shThemejqPlot.min.css" />
-  
-  <!--[if lt IE 9]><script language="javascript" type="text/javascript" src="../excanvas.js"></script><![endif]-->
-    <script class="include" type="text/javascript" src="../jquery.min.js"></script>
-    
-   
-</head>
-<body>
-    <div class="logo">
-   <div class="nav">
-   <a class="nav" href="../../../index.php"><span>&gt;</span>Home</a>
-   <a class="nav"  href="../../../docs/"><span>&gt;</span>Docs</a>
-   <a class="nav"  href="../../download/"><span>&gt;</span>Download</a>
-   <a class="nav" href="../../../info.php"><span>&gt;</span>Info</a>
-   <a class="nav"  href="../../../donate.php"><span>&gt;</span>Donate</a>
-   </div>
-</div>
-    <div class="example-content">
-
-    <div class="example-nav">
-  <a href="axisLabelsRotatedText.html">Previous</a> <a href="./">Examples</a> <a href="bandedLine.html">Next</a></div>
-
-      
-<!-- Example scripts go here -->
-
-
-<script language="javascript" type="text/javascript">
-
-  function makeContinuousData(npoints, ybase, yvariation) {
-      var data = [];
-      if (yvariation == null) {
-          yvariation = ybase;
-          ybase = (Math.random() - 0.5) * 2 * yvariation;
-      }
-      for (j=0; j<npoints; j++) {
-          data.push([j, ybase]);
-          ybase += (Math.random() - 0.5) * 2 * yvariation;
-      }
-      return data;
-  }
-
-  function makeRandomData(npoints, yvariation) {
-      var data = [];
-      for (j=0; j<npoints; j++) {
-          var y = (Math.random() - 0.5) * 2 * yvariation;
-          data.push([j, y]);
-      }
-      return data;
-  }
-  function makeDualContinuousData(npoints, xbase, xvariation, ybase, yvariation) {
-      var data = [];
-      if (ybase == null && yvariation == null) {
-          xvariation = xbase;
-          yvariation = xvariation;
-          xbase = (Math.random() - 0.5) * 2 * xvariation;
-          ybase = (Math.random() - 0.5) * 2 * yvariation;
-      }
-      for (j=0; j<npoints; j++) {
-          data.push([xbase, ybase]);
-          xbase += (Math.random()) * xvariation;
-          ybase += (Math.random() - 0.5) * 2 * yvariation;
-      }
-      return data;
-  }
-
-  var plotOptions = {
-      axes: {
-          yaxis: {
-              rendererOptions: { forceTickAt0:  true, forceTickAt100: true }
-          }
-      }
-  };
-
-</script>
-
-<script class="code" type="text/javascript"> 
-$(document).ready(function(){
-  plot1 = $.jqplot('chart1',[makeContinuousData(100, 55)], {});
-});
-</script>
-
-<script class="code" type="text/javascript"> 
-$(document).ready(function(){
-  plot2 = $.jqplot('chart2',[makeContinuousData(100, 1, 0.001)], {});
-});
-</script>
-
-<script class="code" type="text/javascript"> 
-$(document).ready(function(){
-  plot3 = $.jqplot('chart3',[makeContinuousData(20, 40, 5)], {
-    axes: {
-      yaxis: {
-        rendererOptions: { forceTickAt0: true, forceTickAt100: true }
-      }
-    }
-  });
-});
-</script>
-
-<script class="code" type="text/javascript"> 
-$(document).ready(function(){
-  plot4 = $.jqplot('chart4',[makeContinuousData(20, 40, 5)], {
-    axesDefaults: {
-      pad: 0
-    },
-    axes: {
-      yaxis: {
-        rendererOptions: { forceTickAt0: true, forceTickAt100: true }
-      }
-    }
-  });
-});
-</script>
-
-<script class="code" type="text/javascript"> 
-$(document).ready(function(){
-  plot5 = $.jqplot('chart5',[makeContinuousData(20, 40, 5)], {
-    axes: {
-      xaxis: {
-        padMin: 0,
-        padMax: 1.2
-      },
-      yaxis: {
-        padMax: 0,
-        rendererOptions: { forceTickAt0: true, forceTickAt100: true }
-      }
-    }
-  });
-});
-</script>
-
-<script class="code" type="text/javascript"> 
-$(document).ready(function(){
-  plot6 = $.jqplot('chart6',[makeContinuousData(20, 40, 8)], {
-    axes: {
-      yaxis: {
-        rendererOptions: { forceTickAt0: true, forceTickAt100: true }
-      }
-    },
-    canvasOverlay: {
-      show: true,
-      objects: [
-        {horizontalLine: {
-          name: 'pebbles',
-          y: 0,
-          lineWidth: 3,
-          color: 'rgb(100, 55, 124)',
-          shadow: true,
-          lineCap: 'butt',
-          xOffset: 0
-        }},
-        {dashedHorizontalLine: {
-          name: 'bam-bam',
-          y: 100,
-          lineWidth: 4,
-          dashPattern: [8, 16],
-          lineCap: 'round',
-          xOffset: '25',
-          color: 'rgb(66, 98, 144)',
-          shadow: false
-        }}
-      ]
-    }
-  });
-});
-
-function lineup(plot, name) {
-    var co = plot.plugins.canvasOverlay;
-    var line = co.get(name);
-    line.options.y += 5;
-    co.draw(plot);
-}
-
-function linedown(plot, name) {
-    var co = plot.plugins.canvasOverlay;
-    var line = co.get(name);
-    line.options.y -= 5;
-    co.draw(plot);
-}
-
-</script>
-
-<div id="chart1" style="height:300px; width:600px;margin: 30px;"></div>
-<pre class="code brush: js"></pre>
-<div id="chart2" style="height:300px; width:600px;margin: 30px;"></div>
-<pre class="code brush: js"></pre>
-<div id="chart3" style="height:300px; width:600px;margin: 30px;"></div>
-<pre class="code brush: js"></pre>
-<div id="chart4" style="height:300px; width:600px;margin: 30px;"></div>
-<pre class="code brush: js"></pre>
-<div id="chart5" style="height:300px; width:600px;margin: 30px;"></div>
-<pre class="code brush: js"></pre>
-<div id="chart6" style="height:300px; width:600px;margin: 30px;"></div>
-
-<div>
-<button onclick="lineup(plot6, 'pebbles')">&nbsp;Pebbles Up&nbsp;&nbsp;</button>
-<button onclick="linedown(plot6, 'pebbles')">&nbsp;Pebbles Down&nbsp;</button>
-</div>
-<div>
-<button onclick="lineup(plot6, 'bam-bam')">Bam-Bam Up</button>
-<button onclick="linedown(plot6, 'bam-bam')">Bam-Bam Down</button>
-</div>
-
-<pre class="code brush: js"></pre>
-
-<!-- End example scripts -->
-
-<!-- Don't touch this! -->
-
-
-    <script class="include" type="text/javascript" src="../jquery.jqplot.min.js"></script>
-    <script type="text/javascript" src="syntaxhighlighter/scripts/shCore.min.js"></script>
-    <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushJScript.min.js"></script>
-    <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushXml.min.js"></script>
-<!-- Additional plugins go here -->
-
-
-  <script class="include" type="text/javascript" src="../jquery.jqplot.min.js"></script>
-  <script class="include" type="text/javascript" src="../plugins/jqplot.canvasAxisTickRenderer.min.js"></script>
-  <script class="include" type="text/javascript" src="../plugins/jqplot.canvasTextRenderer.min.js"></script>
-  <script class="include" type="text/javascript" src="../plugins/jqplot.canvasOverlay.min.js"></script>
-
-<!-- End additional plugins -->
-
-
-	</div>	
-	<script type="text/javascript" src="example.min.js"></script>
-
-</body>
-
-
-</html>
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/bandedLine.html b/wqflask/wqflask/static/packages/jqplot/examples/bandedLine.html
deleted file mode 100755
index 1da1926c..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/bandedLine.html
+++ /dev/null
@@ -1,310 +0,0 @@
-<!DOCTYPE html>
-
-<html>
-<head>
-	
-	<title>Error Bands and Confidence Intervals</title>
-
-    <link class="include" rel="stylesheet" type="text/css" href="../jquery.jqplot.min.css" />
-    <link rel="stylesheet" type="text/css" href="examples.min.css" />
-    <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shCoreDefault.min.css" />
-    <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shThemejqPlot.min.css" />
-  
-  <!--[if lt IE 9]><script language="javascript" type="text/javascript" src="../excanvas.js"></script><![endif]-->
-    <script class="include" type="text/javascript" src="../jquery.min.js"></script>
-    
-   
-</head>
-<body>
-    <div class="logo">
-   <div class="nav">
-   <a class="nav" href="../../../index.php"><span>&gt;</span>Home</a>
-   <a class="nav"  href="../../../docs/"><span>&gt;</span>Docs</a>
-   <a class="nav"  href="../../download/"><span>&gt;</span>Download</a>
-   <a class="nav" href="../../../info.php"><span>&gt;</span>Info</a>
-   <a class="nav"  href="../../../donate.php"><span>&gt;</span>Donate</a>
-   </div>
-</div>
-    <div class="example-content">
-
-    <div class="example-nav">
-  <a href="axisScalingForceTickAt.html">Previous</a> <a href="./">Examples</a> <a href="bar-charts.html">Next</a></div>
-
-      
-<!-- Example scripts go here -->
-<p>Bands (like confidence intervals or error bands) can be added to line charts through the "bands" option of the line renderer.  The band data can be automatically computed or manually assigned.  If assigned manually, the simpliest approach is to set the "rendererOptions: { bandData: [] }" array on the series.  Note that band data is taken into account when axes scale themselves so bands will not get clipped.</p>
-
-
-<p>Band data can be supplied as arrays of [x,y] values.  One array for the upper band line and one for the lower band line.</p>
-
- <div id="chart01" style="height:300px; width:600px;"></div>
-    <pre class="code brush:js"></pre>
-
-
-<p>The number of points in the band data arrays does not have to correspond to the number of points in the data series.  Also, band data will be drawn as smoothed lines if the data series is smoothed.</p>
-
- <div id="chart02" style="height:300px; width:600px;"></div>
-    <pre class="code brush:js"></pre>
-
-<p>In this example, band data is supplied as an array of arrays of y values for the low and hi bands.  X values for the bands are taken from the x values of the series.  The band data is of the form:  [ [y low 1, y hi 1], [y low 2, y hi 2], ... ] and there must be a corresponding array of low/hi y values for each x value in the data series.</p>
-
- <div id="chart1" style="height:300px; width:600px;"></div>
-    <pre class="code brush:js"></pre>
-
-<p>The band data can also be supplied as an array of [low y values], [hi y values].  In this case there must also be an equal number of low y values and hi y values as there are data points in the series.  X values for the low and hi bands will be taken from the series data.  Additionally, the order of low/hi values does not matter as long as they are consistent.  jqPlot will figure out which is the low values and which are the high values.</p>
-
- <div id="chart2" style="height:300px; width:600px;"></div>
-    <pre class="code brush:js"></pre>
-
-<p>Band data does not have to be provided.  By default, jqPlot will compute +/- 3% band intervals if the "rendererOptions: { bands: { show: true } }" option is set.  The band intervals can be customized as well through the "rendererOptions: { bands: { interval: [number|string|arry] } }" option.  Valid intervals are:</p>
-
-<ul>
-<li> '1.7' - will add bands at y +/- 1.7 above and below the line.</li>
-<li> '10%' - will compute +/- 10% interval bands.</li>
-<li> [3, '-10%'] - will add bands at y + 3 and y - 10% above and below the line.</li>
-</ul>
-
-<p>Examples of such interval specifications are shown below:</p>
-
- <div id="chart3" style="height:300px; width:600px;"></div>
-    <pre class="code brush:js"></pre>
- <div id="chart4" style="height:300px; width:600px;"></div>
-    <pre class="code brush:js"></pre>
-
- <div id="chart5" style="height:300px; width:600px;"></div>
-    <pre class="code brush:js"></pre>
-    
-<p>You can also customize the fill color of the bands and turn on/off band lines.  By default, bands respond to the mouse over event, but they can be set to respond to mouse down as well.</p>
- <div id="chart6" style="height:300px; width:600px;"></div>
-    <pre class="code brush:js"></pre>
-
-<p>Note, the plots on this page all extend the following pre-defined theme:</p>
-
-    <pre class="code brush:js"></pre>
-
-
-<script class="code" type="text/javascript">
-$(document).ready(function(){
-    // Band data in arrays of [x,y] values.
-    bdat = [[['7/1/2011', 8], ['7/2/2011', 9], ['7/3/2011', 8], ['7/4/2011', 13], ['7/5/2011', 11], ['7/6/2011', 13]], 
-    [['7/1/2011', 12], ['7/2/2011', 13], ['7/3/2011', 12], ['7/4/2011', 17], ['7/5/2011', 15], ['7/6/2011', 17]]];
-    
-    dat = [['7/1/2011', 10], ['7/2/2011', 11], ['7/3/2011', 10], ['7/4/2011', 15], ['7/5/2011', 13], ['7/6/2011', 15]];
-
-    plot01 = $.jqplot('chart01', [dat], $.extend(true, {}, myTheme, {
-        series: [{
-            rendererOptions: {
-                bandData: bdat
-            }
-        }],
-        axes: {
-            xaxis: {
-                renderer: $.jqplot.DateAxisRenderer,
-                min: '7/1/2011',
-                max: '7/6/2011',
-                tickInterval: '1 day'
-            }
-        }
-    }));
-});
-</script>
-
-<script class="code" type="text/javascript">
-$(document).ready(function(){
-    // Band data in arrays of [x,y] values.
-    // Here the low band line (1st array) has 5 points and the hi band line has 4 points.
-    bdat = [[['7/1/2011', 9], ['7/3/2011', 7], ['7/4/2011', 13], ['7/5/2011', 11], ['7/6/2011', 13]], 
-    [['7/1/2011', 12], ['7/3/2011', 14], ['7/4/2011', 18], ['7/6/2011', 16]]];
-    
-    dat = [['7/1/2011', 10], ['7/2/2011', 11], ['7/3/2011', 10], ['7/4/2011', 15], ['7/5/2011', 13], ['7/6/2011', 15]];
-
-    plot02 = $.jqplot('chart02', [dat], $.extend(true, {}, myTheme, {
-        series: [{
-            rendererOptions: {
-                bandData: bdat,
-
-                // turn on smoothing
-                smooth: true
-            }
-        }],
-        axes: {
-            xaxis: {
-                renderer: $.jqplot.DateAxisRenderer,
-                min: '7/1/2011',
-                max: '7/6/2011',
-                tickInterval: '1 day'
-            }
-        }
-    }));
-});
-</script>
-
-<script class="code" type="text/javascript">
-$(document).ready(function(){
-    // data points for line.
-    dat = [[0, 10], [1, 11], [2, 10], [3, 15], [4, 13], [5, 15]];
-
-    // band data in [[low_y_1, hi_y_1], [low_y_2, hi_y_2],...] format
-    bdat = [[7, 13], [8, 14], [7, 13], [12, 18], [10, 16], [12, 18]];
-
-    plot1 = $.jqplot('chart1', [dat], $.extend(true, {}, myTheme, {
-        series: [{
-            rendererOptions: {
-                // Set the band data on the series.
-                // Bands will be turned on automatically if
-                // valid band data is present.
-                bandData: bdat,
-                smooth: true
-            }
-        }]
-    }));
-});
-
-</script>
-
-
-<script class="code" type="text/javascript">
-
-$(document).ready(function(){
-    // here band data specified as an array of [low y values] and [hi y values]
-    bdat = [[7, 8, 7, 12, 10, 12], [13, 14, 13, 18, 16, 18]];
-
-    // Same plot as before with different band data specification and smoothed lines.
-    plot2 = $.jqplot('chart2', [dat], $.extend(true, {}, myTheme, {
-        series: [
-        {
-            rendererOptions: {
-                bandData: bdat,
-                smooth: true
-            }
-        }]
-    }));
-});
-
-</script>
-
-<script class="code" type="text/javascript">
-$(document).ready(function(){
-    plot3 = $.jqplot('chart3', [dat], $.extend(true, {}, myTheme, {
-        series: [{
-            rendererOptions: {
-                bands: {
-                    // draw bands at 1.7 "units" above and below line.
-                    interval: 1.7
-                },
-                smooth: true
-            }
-        }]
-    }));
-});
-
-</script>
-
-<script class="code" type="text/javascript">
-$(document).ready(function(){
-    plot4 = $.jqplot('chart4', [dat], $.extend(true, {}, myTheme, {
-        series: [{
-            rendererOptions: {
-                bands: {
-                    // draw interval at 10% above and below line.
-                    interval: '10%'
-                },
-                smooth: true
-            }
-        }]
-    }));
-});
-</script>
-
-<script class="code" type="text/javascript">
-$(document).ready(function(){
-    plot5 = $.jqplot('chart5', [dat], $.extend(true, {}, myTheme, {
-        series: [{
-            rendererOptions: {
-                bands: {
-                    // draw interval at 3 units above and 10% below line.
-                    interval: [3, '-10%']
-                },
-                smooth: true
-            }
-        }]
-    }));
-});
-</script>
-
-<script class="code" type="text/javascript">
-$(document).ready(function(){
-    plot6 = $.jqplot('chart6', [dat], $.extend(true, {}, myTheme, {
-        series: [{
-            rendererOptions: {
-                bands: {
-                    // draw interval at 3 units above and 10% below line.
-                    interval: 4,
-                    fillColor: 'rgba(198, 88, 88, 0.6)',
-                    showLines: true
-                },
-
-                // highlight the band on mouse down, not on mouse over.
-                highlightMouseDown: true,
-                smooth: true
-            }
-        }]
-    }));
-});
-</script>
-
-<script class="code" type="text/javascript">
-///////
-// A default set of reusable plot options.  Note that line
-// smoothing is turned on.  Bands will be drawn with the same 
-// smoothing as the line.
-//////
-myTheme = {
-  grid: {
-      drawBorder: false,
-      shadow: false,
-      background: 'rgba(255, 255, 255, 0.0)'
-  },
-  seriesDefaults: {
-    shadow: false,
-    showMarker: false
-  },
-  axes: {
-      xaxis: {
-          pad: 1.0,
-          tickOptions: {
-              showGridline: false
-          }
-      },
-      yaxis: {
-          pad: 1.05
-      }
-  }
-};
-</script>
-<!-- End example scripts -->
-
-<!-- Don't touch this! -->
-
-
-    <script class="include" type="text/javascript" src="../jquery.jqplot.min.js"></script>
-    <script type="text/javascript" src="syntaxhighlighter/scripts/shCore.min.js"></script>
-    <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushJScript.min.js"></script>
-    <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushXml.min.js"></script>
-<!-- Additional plugins go here -->
-
-    <script class="include" type="text/javascript" src="../plugins/jqplot.highlighter.min.js"></script>
-    <script class="include" type="text/javascript" src="../plugins/jqplot.cursor.min.js"></script>
-    <script class="include" type="text/javascript" src="../plugins/jqplot.pointLabels.min.js"></script>
-    <script class="include" type="text/javascript" src="../plugins/jqplot.dateAxisRenderer.min.js"></script>
-
-<!-- End additional plugins -->
-
-
-	</div>	
-	<script type="text/javascript" src="example.min.js"></script>
-
-</body>
-
-
-</html>
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/bar-charts.html b/wqflask/wqflask/static/packages/jqplot/examples/bar-charts.html
deleted file mode 100755
index 67e9dcca..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/bar-charts.html
+++ /dev/null
@@ -1,219 +0,0 @@
-<!DOCTYPE html>
-
-<html>
-<head>
-	
-	<title>Vertical and Horizontal Bar Charts</title>
-
-    <link class="include" rel="stylesheet" type="text/css" href="../jquery.jqplot.min.css" />
-    <link rel="stylesheet" type="text/css" href="examples.min.css" />
-    <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shCoreDefault.min.css" />
-    <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shThemejqPlot.min.css" />
-  
-  <!--[if lt IE 9]><script language="javascript" type="text/javascript" src="../excanvas.js"></script><![endif]-->
-    <script class="include" type="text/javascript" src="../jquery.min.js"></script>
-    
-   
-</head>
-<body>
-    <div class="logo">
-   <div class="nav">
-   <a class="nav" href="../../../index.php"><span>&gt;</span>Home</a>
-   <a class="nav"  href="../../../docs/"><span>&gt;</span>Docs</a>
-   <a class="nav"  href="../../download/"><span>&gt;</span>Download</a>
-   <a class="nav" href="../../../info.php"><span>&gt;</span>Info</a>
-   <a class="nav"  href="../../../donate.php"><span>&gt;</span>Donate</a>
-   </div>
-</div>
-    <div class="example-content">
-
-    <div class="example-nav">
-  <a href="bandedLine.html">Previous</a> <a href="./">Examples</a> <a href="barLineAnimated.html">Next</a></div>
-
-      
-<!-- Example scripts go here -->
-
-
-  <style type="text/css">
-    
-    .note {
-        font-size: 0.8em;
-    }
-    .jqplot-yaxis-tick {
-      white-space: nowrap;
-    }
-  </style>
-        
-    <div id="chart1" style="width:600px; height:250px;"></div>
-
-    <pre class="code brush: js"></pre>
-
-    <div id="chart2" style="width:400px; height:300px;"></div>
-
-    <pre class="code brush: js"></pre>
-
-    <p class="text">Click on a bar in the plot below to update the text box.</p>
-    <p class="text">You Clicked: 
-    <span id="info3">Nothing yet.</span>
-    </p>
-    <div id="chart3" style="width:400px; height:300px;"></div>
-
-    <pre class="code brush: js"></pre>
-
-  <script class="code" type="text/javascript">
-$(document).ready(function(){
-    var s1 = [200, 600, 700, 1000];
-    var s2 = [460, -210, 690, 820];
-    var s3 = [-260, -440, 320, 200];
-    // Can specify a custom tick Array.
-    // Ticks should match up one for each y value (category) in the series.
-    var ticks = ['May', 'June', 'July', 'August'];
-    
-    var plot1 = $.jqplot('chart1', [s1, s2, s3], {
-        // The "seriesDefaults" option is an options object that will
-        // be applied to all series in the chart.
-        seriesDefaults:{
-            renderer:$.jqplot.BarRenderer,
-            rendererOptions: {fillToZero: true}
-        },
-        // Custom labels for the series are specified with the "label"
-        // option on the series option.  Here a series option object
-        // is specified for each series.
-        series:[
-            {label:'Hotel'},
-            {label:'Event Regristration'},
-            {label:'Airfare'}
-        ],
-        // Show the legend and put it outside the grid, but inside the
-        // plot container, shrinking the grid to accomodate the legend.
-        // A value of "outside" would not shrink the grid and allow
-        // the legend to overflow the container.
-        legend: {
-            show: true,
-            placement: 'outsideGrid'
-        },
-        axes: {
-            // Use a category axis on the x axis and use our custom ticks.
-            xaxis: {
-                renderer: $.jqplot.CategoryAxisRenderer,
-                ticks: ticks
-            },
-            // Pad the y axis just a little so bars can get close to, but
-            // not touch, the grid boundaries.  1.2 is the default padding.
-            yaxis: {
-                pad: 1.05,
-                tickOptions: {formatString: '$%d'}
-            }
-        }
-    });
-});
-  </script>
-  
-
-<script class="code" type="text/javascript">
-$(document).ready(function(){
-    // For horizontal bar charts, x an y values must will be "flipped"
-    // from their vertical bar counterpart.
-    var plot2 = $.jqplot('chart2', [
-        [[2,1], [4,2], [6,3], [3,4]], 
-        [[5,1], [1,2], [3,3], [4,4]], 
-        [[4,1], [7,2], [1,3], [2,4]]], {
-        seriesDefaults: {
-            renderer:$.jqplot.BarRenderer,
-            // Show point labels to the right ('e'ast) of each bar.
-            // edgeTolerance of -15 allows labels flow outside the grid
-            // up to 15 pixels.  If they flow out more than that, they 
-            // will be hidden.
-            pointLabels: { show: true, location: 'e', edgeTolerance: -15 },
-            // Rotate the bar shadow as if bar is lit from top right.
-            shadowAngle: 135,
-            // Here's where we tell the chart it is oriented horizontally.
-            rendererOptions: {
-                barDirection: 'horizontal'
-            }
-        },
-        axes: {
-            yaxis: {
-                renderer: $.jqplot.CategoryAxisRenderer
-            }
-        }
-    });
-});
-</script>
-
-<script class="code" type="text/javascript">
-$(document).ready(function(){
-  var s1 = [2, 6, 7, 10];
-  var s2 = [7, 5, 3, 4];
-  var s3 = [14, 9, 3, 8];
-  plot3 = $.jqplot('chart3', [s1, s2, s3], {
-    // Tell the plot to stack the bars.
-    stackSeries: true,
-    captureRightClick: true,
-    seriesDefaults:{
-      renderer:$.jqplot.BarRenderer,
-      rendererOptions: {
-          // Put a 30 pixel margin between bars.
-          barMargin: 30,
-          // Highlight bars when mouse button pressed.
-          // Disables default highlighting on mouse over.
-          highlightMouseDown: true    
-      },
-      pointLabels: {show: true}
-    },
-    axes: {
-      xaxis: {
-          renderer: $.jqplot.CategoryAxisRenderer
-      },
-      yaxis: {
-        // Don't pad out the bottom of the data range.  By default,
-        // axes scaled as if data extended 10% above and below the
-        // actual range to prevent data points right on grid boundaries.
-        // Don't want to do that here.
-        padMin: 0
-      }
-    },
-    legend: {
-      show: true,
-      location: 'e',
-      placement: 'outside'
-    }      
-  });
-  // Bind a listener to the "jqplotDataClick" event.  Here, simply change
-  // the text of the info3 element to show what series and ponit were
-  // clicked along with the data for that point.
-  $('#chart3').bind('jqplotDataClick', 
-    function (ev, seriesIndex, pointIndex, data) {
-      $('#info3').html('series: '+seriesIndex+', point: '+pointIndex+', data: '+data);
-    }
-  ); 
-});
-</script>    
-
-<!-- End example scripts -->
-
-<!-- Don't touch this! -->
-
-
-    <script class="include" type="text/javascript" src="../jquery.jqplot.min.js"></script>
-    <script type="text/javascript" src="syntaxhighlighter/scripts/shCore.min.js"></script>
-    <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushJScript.min.js"></script>
-    <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushXml.min.js"></script>
-<!-- End Don't touch this! -->
-
-<!-- Additional plugins go here -->
-
-    <script class="include" language="javascript" type="text/javascript" src="../plugins/jqplot.barRenderer.min.js"></script>
-    <script class="include" language="javascript" type="text/javascript" src="../plugins/jqplot.categoryAxisRenderer.min.js"></script>
-    <script class="include" language="javascript" type="text/javascript" src="../plugins/jqplot.pointLabels.min.js"></script>
-
-<!-- End additional plugins -->
-
-
-	</div>	
-	<script type="text/javascript" src="example.min.js"></script>
-
-</body>
-
-
-</html>
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/barLineAnimated.html b/wqflask/wqflask/static/packages/jqplot/examples/barLineAnimated.html
deleted file mode 100755
index 7f485242..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/barLineAnimated.html
+++ /dev/null
@@ -1,165 +0,0 @@
-<!DOCTYPE html>
-
-<html>
-<head>
-	
-	<title>Animated Charts</title>
-
-    <link class="include" rel="stylesheet" type="text/css" href="../jquery.jqplot.min.css" />
-    <link rel="stylesheet" type="text/css" href="examples.min.css" />
-    <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shCoreDefault.min.css" />
-    <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shThemejqPlot.min.css" />
-  
-  <!--[if lt IE 9]><script language="javascript" type="text/javascript" src="../excanvas.js"></script><![endif]-->
-    <script class="include" type="text/javascript" src="../jquery.min.js"></script>
-    
-   
-</head>
-<body>
-    <div class="logo">
-   <div class="nav">
-   <a class="nav" href="../../../index.php"><span>&gt;</span>Home</a>
-   <a class="nav"  href="../../../docs/"><span>&gt;</span>Docs</a>
-   <a class="nav"  href="../../download/"><span>&gt;</span>Download</a>
-   <a class="nav" href="../../../info.php"><span>&gt;</span>Info</a>
-   <a class="nav"  href="../../../donate.php"><span>&gt;</span>Donate</a>
-   </div>
-</div>
-    <div class="example-content">
-
-    <div class="example-nav">
-  <a href="bar-charts.html">Previous</a> <a href="./">Examples</a> <a href="barTest.html">Next</a></div>
-
-      
-<!-- Example scripts go here -->
-
-    <div id="chart1" style="width:700px; height:300px"></div>
-
-    <p>This plot animates the bars bottom to top and the line series left to right upon initial page load.  Since the <code>animateReplot: true</code> option is set, the bars and line will also animate upon calls to <code>plot1.replot( { resetAxes: true } )</code>.</p>
-
-    <pre class="code brush:js"></pre>
-
-
- <script class="code" type="text/javascript">
-
-    $(document).ready(function () {
-        var s1 = [[2002, 112000], [2003, 122000], [2004, 104000], [2005, 99000], [2006, 121000], 
-        [2007, 148000], [2008, 114000], [2009, 133000], [2010, 161000], [2011, 173000]];
-        var s2 = [[2002, 10200], [2003, 10800], [2004, 11200], [2005, 11800], [2006, 12400], 
-        [2007, 12800], [2008, 13200], [2009, 12600], [2010, 13100]];
-
-        plot1 = $.jqplot("chart1", [s2, s1], {
-            // Turns on animatino for all series in this plot.
-            animate: true,
-            // Will animate plot on calls to plot1.replot({resetAxes:true})
-            animateReplot: true,
-            cursor: {
-                show: true,
-                zoom: true,
-                looseZoom: true,
-                showTooltip: false
-            },
-            series:[
-                {
-                    pointLabels: {
-                        show: true
-                    },
-                    renderer: $.jqplot.BarRenderer,
-                    showHighlight: false,
-                    yaxis: 'y2axis',
-                    rendererOptions: {
-                        // Speed up the animation a little bit.
-                        // This is a number of milliseconds.  
-                        // Default for bar series is 3000.  
-                        animation: {
-                            speed: 2500
-                        },
-                        barWidth: 15,
-                        barPadding: -15,
-                        barMargin: 0,
-                        highlightMouseOver: false
-                    }
-                }, 
-                {
-                    rendererOptions: {
-                        // speed up the animation a little bit.
-                        // This is a number of milliseconds.
-                        // Default for a line series is 2500.
-                        animation: {
-                            speed: 2000
-                        }
-                    }
-                }
-            ],
-            axesDefaults: {
-                pad: 0
-            },
-            axes: {
-                // These options will set up the x axis like a category axis.
-                xaxis: {
-                    tickInterval: 1,
-                    drawMajorGridlines: false,
-                    drawMinorGridlines: true,
-                    drawMajorTickMarks: false,
-                    rendererOptions: {
-                    tickInset: 0.5,
-                    minorTicks: 1
-                }
-                },
-                yaxis: {
-                    tickOptions: {
-                        formatString: "$%'d"
-                    },
-                    rendererOptions: {
-                        forceTickAt0: true
-                    }
-                },
-                y2axis: {
-                    tickOptions: {
-                        formatString: "$%'d"
-                    },
-                    rendererOptions: {
-                        // align the ticks on the y2 axis with the y axis.
-                        alignTicks: true,
-                        forceTickAt0: true
-                    }
-                }
-            },
-            highlighter: {
-                show: true, 
-                showLabel: true, 
-                tooltipAxes: 'y',
-                sizeAdjust: 7.5 , tooltipLocation : 'ne'
-            }
-        });
-      
-    });
-
-
-</script>
-<!-- End example scripts -->
-
-<!-- Don't touch this! -->
-
-
-    <script class="include" type="text/javascript" src="../jquery.jqplot.min.js"></script>
-    <script type="text/javascript" src="syntaxhighlighter/scripts/shCore.min.js"></script>
-    <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushJScript.min.js"></script>
-    <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushXml.min.js"></script>
-<!-- Additional plugins go here -->
-
-  <script class="include" type="text/javascript" src="../plugins/jqplot.barRenderer.min.js"></script>
-  <script class="include" type="text/javascript" src="../plugins/jqplot.highlighter.min.js"></script>
-  <script class="include" type="text/javascript" src="../plugins/jqplot.cursor.min.js"></script> 
-  <script class="include" type="text/javascript" src="../plugins/jqplot.pointLabels.min.js"></script>
-
-<!-- End additional plugins -->
-
-
-	</div>	
-	<script type="text/javascript" src="example.min.js"></script>
-
-</body>
-
-
-</html>
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/barTest.html b/wqflask/wqflask/static/packages/jqplot/examples/barTest.html
deleted file mode 100755
index f28ad688..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/barTest.html
+++ /dev/null
@@ -1,299 +0,0 @@
-<!DOCTYPE html>
-
-<html>
-<head>
-	
-	<title>Bar Charts</title>
-
-    <link class="include" rel="stylesheet" type="text/css" href="../jquery.jqplot.min.css" />
-    <link rel="stylesheet" type="text/css" href="examples.min.css" />
-    <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shCoreDefault.min.css" />
-    <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shThemejqPlot.min.css" />
-  
-  <!--[if lt IE 9]><script language="javascript" type="text/javascript" src="../excanvas.js"></script><![endif]-->
-    <script class="include" type="text/javascript" src="../jquery.min.js"></script>
-    
-   
-</head>
-<body>
-    <div class="logo">
-   <div class="nav">
-   <a class="nav" href="../../../index.php"><span>&gt;</span>Home</a>
-   <a class="nav"  href="../../../docs/"><span>&gt;</span>Docs</a>
-   <a class="nav"  href="../../download/"><span>&gt;</span>Download</a>
-   <a class="nav" href="../../../info.php"><span>&gt;</span>Info</a>
-   <a class="nav"  href="../../../donate.php"><span>&gt;</span>Donate</a>
-   </div>
-</div>
-    <div class="example-content">
-
-    <div class="example-nav">
-  <a href="barLineAnimated.html">Previous</a> <a href="./">Examples</a> <a href="bezierCurve.html">Next</a></div>
-
-      
-<!-- Example scripts go here -->
-
-    <p>Below is a default bar plot.  Bars will highlight on mouseover.  Events are triggered when you mouseover a bar and also when you click on a bar.  Here We capture the 'jqplotDataClick' event and display the clicked series index, point index and data values. When series data is assigned as a 1-dimensional array as in this example, jqPlot automatically converts it into a 2-dimensional array for plotting.  So a series defined as [2, 6, 7, 10] will become [[1,2], [2,6], [3,7], [4,10]].<p>
-    
-    <div><span>You Clicked: </span><span id="info1">Nothing yet</span></div>
-        
-    <div id="chart1" style="margin-top:20px; margin-left:20px; width:300px; height:300px;"></div>
-<pre class="code brush:js"></pre>
-
-    <p>The plot target also fires a 'jqplotDataMouseOver' when the cursor is moused over a bar even if highlighting is turned off.  This event will fire continuously as the user mouses over the bar.  'jqplotDataHighlight' fires only once when the user first passes over the bar.  Additionally, a 'jqplotDataUnhighlight' event is fired when the user moves out of a bar (if highlighting is enabled).<p>
-
-    <div><span>Moused Over: </span><span id="info2">Nothing</span></div>
-    
-    <div id="chart2" style="margin-top:20px; margin-left:20px; width:300px; height:300px;"></div>
-<pre class="code brush:js"></pre>
-    
-    <div><span>Moused Over: </span><span id="info2b">Nothing</span></div>
-    <div><span>Clicked: </span><span id="info2c">Nothing</span></div>
-    
-    <div id="chart2b" style="margin-top:20px; margin-left:20px; width:300px; height:300px;"></div>
-<pre class="code brush:js"></pre>
-    
-    <p>The next example has the plot's 'captureRightClick' option set to true.  This causes the plot to fire a 'jqplotRightClick' event the the user clicks the right mouse button over a bar.  Here, the 'highlightMouseDown' option is also set to true.  This will highlight a slice on mouse down instead of on move over.  Highlighting will occur for either left or right click.</p>
-
-    <div><span>You Right Clicked: </span><span id="info3">Nothing yet</span></div>
-    
-    <div id="chart3" style="margin-top:20px; margin-left:20px; width:300px; height:300px;"></div>
-<pre class="code brush:js"></pre>
-    
-    <div id="chart4" style="margin-top:20px; margin-left:20px; width:300px; height:300px;"></div>
-<pre class="code brush:js"></pre>
-    
-    <div id="chart5" style="margin-top:20px; margin-left:20px; width:300px; height:300px;"></div>
-<pre class="code brush:js"></pre>
-        
-<p>A pie chart is added to test for incompatibilities.</p>
-    <div id="chart6" style="margin-top:20px; margin-left:20px; width:300px; height:200px;"></div>
-<pre class="code brush:js"></pre>
-
-<p>The nex example shows the placement of point labels on negative bars. They shou be placed on the opposite position. That is, if it is placed 'north' to the positive bars, then it should be placed 'south' to the negative bars.</p>
-    <div id="chart7" style="margin-top:20px; margin-left:20px; width:300px; height:300px;"></div>
-<pre class="code brush:js"></pre>
-
-  <script class="code" type="text/javascript">$(document).ready(function(){
-        $.jqplot.config.enablePlugins = true;
-        var s1 = [2, 6, 7, 10];
-        var ticks = ['a', 'b', 'c', 'd'];
-        
-        plot1 = $.jqplot('chart1', [s1], {
-            // Only animate if we're not using excanvas (not in IE 7 or IE 8)..
-            animate: !$.jqplot.use_excanvas,
-            seriesDefaults:{
-                renderer:$.jqplot.BarRenderer,
-                pointLabels: { show: true }
-            },
-            axes: {
-                xaxis: {
-                    renderer: $.jqplot.CategoryAxisRenderer,
-                    ticks: ticks
-                }
-            },
-            highlighter: { show: false }
-        });
-    
-        $('#chart1').bind('jqplotDataClick', 
-            function (ev, seriesIndex, pointIndex, data) {
-                $('#info1').html('series: '+seriesIndex+', point: '+pointIndex+', data: '+data);
-            }
-        );
-    });</script>
-    
-  <script class="code" type="text/javascript">$(document).ready(function(){
-        var s1 = [2, 6, 7, 10];
-        var s2 = [7, 5, 3, 2];
-        var ticks = ['a', 'b', 'c', 'd'];
-        
-        plot2 = $.jqplot('chart2', [s1, s2], {
-            seriesDefaults: {
-                renderer:$.jqplot.BarRenderer,
-                pointLabels: { show: true }
-            },
-            axes: {
-                xaxis: {
-                    renderer: $.jqplot.CategoryAxisRenderer,
-                    ticks: ticks
-                }
-            }
-        });
-    
-        $('#chart2').bind('jqplotDataHighlight', 
-            function (ev, seriesIndex, pointIndex, data) {
-                $('#info2').html('series: '+seriesIndex+', point: '+pointIndex+', data: '+data);
-            }
-        );
-            
-        $('#chart2').bind('jqplotDataUnhighlight', 
-            function (ev) {
-                $('#info2').html('Nothing');
-            }
-        );
-    });</script>
-    
-  <script class="code" type="text/javascript">$(document).ready(function(){
-        plot2b = $.jqplot('chart2b', [[[2,1], [4,2], [6,3], [3,4]], [[5,1], [1,2], [3,3], [4,4]], [[4,1], [7,2], [1,3], [2,4]]], {
-            seriesDefaults: {
-                renderer:$.jqplot.BarRenderer,
-                pointLabels: { show: true, location: 'e', edgeTolerance: -15 },
-                shadowAngle: 135,
-                rendererOptions: {
-                    barDirection: 'horizontal'
-                }
-            },
-            axes: {
-                yaxis: {
-                    renderer: $.jqplot.CategoryAxisRenderer
-                }
-            }
-        });
-    
-        $('#chart2b').bind('jqplotDataHighlight', 
-            function (ev, seriesIndex, pointIndex, data) {
-                $('#info2b').html('series: '+seriesIndex+', point: '+pointIndex+', data: '+data+ ', pageX: '+ev.pageX+', pageY: '+ev.pageY);
-            }
-        );    
-        $('#chart2b').bind('jqplotDataClick', 
-            function (ev, seriesIndex, pointIndex, data) {
-                $('#info2c').html('series: '+seriesIndex+', point: '+pointIndex+', data: '+data+ ', pageX: '+ev.pageX+', pageY: '+ev.pageY);
-            }
-        );
-            
-        $('#chart2b').bind('jqplotDataUnhighlight', 
-            function (ev) {
-                $('#info2b').html('Nothing');
-            }
-        );
-    });</script>
-    
-  <script class="code" type="text/javascript">$(document).ready(function(){
-        var s1 = [2, 6, 7, 10];
-        var s2 = [7, 5, 3, 2];
-        var s3 = [14, 9, 3, 8];
-        plot3 = $.jqplot('chart3', [s1, s2, s3], {
-            stackSeries: true,
-            captureRightClick: true,
-            seriesDefaults:{
-                renderer:$.jqplot.BarRenderer,
-                rendererOptions: {
-                    highlightMouseDown: true    
-                },
-                pointLabels: {show: true}
-            },
-            legend: {
-                show: true,
-                location: 'e',
-                placement: 'outside'
-            }      
-        });
-    
-        $('#chart3').bind('jqplotDataRightClick', 
-            function (ev, seriesIndex, pointIndex, data) {
-                $('#info3').html('series: '+seriesIndex+', point: '+pointIndex+', data: '+data);
-            }
-        ); 
-    });</script>
-    
-  <script class="code" type="text/javascript">$(document).ready(function(){
-        plot4 = $.jqplot('chart4', [[[2,1], [6,2], [7,3], [10,4]], [[7,1], [5,2],[3,3],[2,4]], [[14,1], [9,2], [9,3], [8,4]]], {
-            stackSeries: true,
-            captureRightClick: true,
-            seriesDefaults:{
-                renderer:$.jqplot.BarRenderer,
-                shadowAngle: 135,
-                rendererOptions: {
-                    barDirection: 'horizontal',
-                    highlightMouseDown: true    
-                },
-                pointLabels: {show: true, formatString: '%d'}
-            },
-            legend: {
-                show: true,
-                location: 'e',
-                placement: 'outside'
-            },
-            axes: {
-                yaxis: {
-                    renderer: $.jqplot.CategoryAxisRenderer
-                }
-            }
-        });
-    });</script>
-    
-  <script class="code" type="text/javascript">$(document).ready(function(){
-        plot5 = $.jqplot('chart5', [[[2,1], [null,2], [7,3], [10,4]]], {
-            captureRightClick: true,
-            seriesDefaults:{
-                renderer:$.jqplot.BarRenderer,
-                shadowAngle: 135,
-                rendererOptions: {
-                    barDirection: 'horizontal',
-                    highlightMouseDown: true    
-                },
-                pointLabels: {show: true, formatString: '%d'}
-            },
-            legend: {
-                show: true,
-                location: 'e',
-                placement: 'outside'
-            },
-            axes: {
-                yaxis: {
-                    renderer: $.jqplot.CategoryAxisRenderer
-                }
-            }
-        });
-    });</script>
-
-  <script class="code" type="text/javascript">$(document).ready(function(){
-        plot6 = $.jqplot('chart6', [[1,2,3,4]], {seriesDefaults:{renderer:$.jqplot.PieRenderer}});
-    });</script> 
-
-    <script class="code" type="text/javascript">$(document).ready(function(){
-        var s1 = [2, -6, 7, -5];
-        var ticks = ['a', 'b', 'c', 'd'];
-
-        plot7 = $.jqplot('chart7', [s1], {
-            seriesDefaults:{
-                renderer:$.jqplot.BarRenderer,
-                rendererOptions: { fillToZero: true },
-                    pointLabels: { show: true }
-            },
-            axes: {
-                // yaxis: { autoscale: true },
-                xaxis: {
-                    renderer: $.jqplot.CategoryAxisRenderer,
-                    ticks: ticks
-                }
-            }
-        });
-    });</script> 
-<!-- End example scripts -->
-
-<!-- Don't touch this! -->
-
-
-    <script class="include" type="text/javascript" src="../jquery.jqplot.min.js"></script>
-    <script type="text/javascript" src="syntaxhighlighter/scripts/shCore.min.js"></script>
-    <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushJScript.min.js"></script>
-    <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushXml.min.js"></script>
-<!-- Additional plugins go here -->
-
-  <script class="include" type="text/javascript" src="../jquery.jqplot.min.js"></script>
-  <script class="include" type="text/javascript" src="../plugins/jqplot.barRenderer.min.js"></script>
-  <script class="include" type="text/javascript" src="../plugins/jqplot.pieRenderer.min.js"></script>
-  <script class="include" type="text/javascript" src="../plugins/jqplot.categoryAxisRenderer.min.js"></script>
-  <script class="include" type="text/javascript" src="../plugins/jqplot.pointLabels.min.js"></script>
-
-<!-- End additional plugins -->
-
-
-	</div>	
-	<script type="text/javascript" src="example.min.js"></script>
-
-</body>
-
-
-</html>
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/bezierCurve.html b/wqflask/wqflask/static/packages/jqplot/examples/bezierCurve.html
deleted file mode 100755
index 4741fb57..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/bezierCurve.html
+++ /dev/null
@@ -1,125 +0,0 @@
-<!DOCTYPE html>
-
-<html>
-<head>
-	
-	<title>Bezier Curve Plots</title>
-
-    <link class="include" rel="stylesheet" type="text/css" href="../jquery.jqplot.min.css" />
-    <link rel="stylesheet" type="text/css" href="examples.min.css" />
-    <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shCoreDefault.min.css" />
-    <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shThemejqPlot.min.css" />
-  
-  <!--[if lt IE 9]><script language="javascript" type="text/javascript" src="../excanvas.js"></script><![endif]-->
-    <script class="include" type="text/javascript" src="../jquery.min.js"></script>
-    
-   
-</head>
-<body>
-    <div class="logo">
-   <div class="nav">
-   <a class="nav" href="../../../index.php"><span>&gt;</span>Home</a>
-   <a class="nav"  href="../../../docs/"><span>&gt;</span>Docs</a>
-   <a class="nav"  href="../../download/"><span>&gt;</span>Download</a>
-   <a class="nav" href="../../../info.php"><span>&gt;</span>Info</a>
-   <a class="nav"  href="../../../donate.php"><span>&gt;</span>Donate</a>
-   </div>
-</div>
-    <div class="example-content">
-
-    <div class="example-nav">
-  <a href="barTest.html">Previous</a> <a href="./">Examples</a> <a href="blockPlot.html">Next</a></div>
-
-      
-<!-- Example scripts go here -->
-
- <p>The Bezier curve renderer can distinguish between two different input data formats.  This first example has the data passed in as 2 data points, the second one defining the Bezier curve to the end point.  With this format, non-default axes renderers will require specifying the minimum and maximum on the axes.</p>
-<pre>
-    [[xstart, ystart], [cp1x, cp1y, cp2x, cp2y, xend, yend]];
-</pre>
-<div id="chart1" class='plot' style="margin-top:20px; margin-left:20px; width:400px; height:300px;"></div>
-<p>This second example has the data broken out into 4 points, which will be assembled to define the Bezier Curve.  With this format, any axes renderer can be used without explicitly specifying the minimum and maximum.</p>
-<pre>
-    [[xstart, ystart], [cp1x, cp1y], [cp2x, cp2y], [xend, yend]];
-</pre>
-<div id="chart2" class='plot' style="margin-top:20px; margin-left:20px; width:400px; height:300px;"></div>
-<p> Here is an example using a date axis renderer with Bezier curves.  The data looks like:</p>
-<pre>
-    [['01/01/2010', 6], ['02/01/2010', 9], ['03/01/2010', 8], ['04/01/2010', 3]]
-</pre>
-
-<div id="chart3" class='plot' style="margin-top:20px; margin-left:20px; width:400px; height:300px;"></div>
-
-<script class="code" type="text/javascript">
-$(document).ready(function(){
-    
-    var line1 = [[0, 1], [2, 2, 4, .5, 6, 0]];
-    var line2 = [[0, 5], [2, 6, 5, 1, 6, .5]];
-    var line3 = [[0, 6], [3, 9, 4, 8, 6, 3]];
-    var line4 = [[0, 7], [2, 9, 4, 8, 6, 6]];
-    var line5 = [[0, 8], [3, 9, 4, 8, 6, 8]];
-
-    plot1 = $.jqplot("chart1", [line1,line2, line3, line4, line5], {
-           seriesDefaults: {renderer:$.jqplot.BezierCurveRenderer},
-           legend:{show:true}
-    });
-});
-</script>
-
-<script class="code" type="text/javascript">
-$(document).ready(function(){
-    
-    var s1 = [[0, 1], [2, 2], [4, .5], [6, 0]];
-    var s2 = [[0, 5], [2, 6], [5, 1], [6, .5]];
-    var s3 = [[0, 6], [3, 9], [4, 8], [6, 3]];
-    var s4 = [[0, 7], [2, 9], [4, 8], [6, 6]];
-    var s5 = [[0, 8], [3, 9], [4, 8], [6, 8]];
-
-    plot2 = $.jqplot("chart2", [s1,s2, s3, s4, s5], {
-           seriesDefaults: {renderer:$.jqplot.BezierCurveRenderer},
-           legend:{show:true}
-    });
-});
-</script>
-
-<script class="code" type="text/javascript">
-$(document).ready(function(){
-    
-    var s1 = [['01/01/2010', 1], ['02/01/2010', 2], ['03/01/2010', .5], ['04/01/2010', 0]];
-    var s2 = [['01/01/2010', 5], ['02/01/2010', 6], ['03/01/2010', 1], ['04/01/2010', .5]];
-    var s3 = [['01/01/2010', 6], ['02/01/2010', 9], ['03/01/2010', 8], ['04/01/2010', 3]];
-    var s4 = [['01/01/2010', 7], ['02/01/2010', 9], ['03/01/2010', 8], ['04/01/2010', 6]];
-    var s5 = [['01/01/2010', 8], ['02/01/2010', 9], ['03/01/2010', 8], ['04/01/2010', 8]];
-
-    plot3 = $.jqplot("chart3", [s1,s2, s3, s4, s5], {
-           seriesDefaults: {renderer:$.jqplot.BezierCurveRenderer},
-           axes:{xaxis:{renderer:$.jqplot.DateAxisRenderer, numberTicks:4}},
-           legend:{show:true}
-    });
-});
-</script>
-
-<!-- End example scripts -->
-
-<!-- Don't touch this! -->
-
-
-    <script class="include" type="text/javascript" src="../jquery.jqplot.min.js"></script>
-    <script type="text/javascript" src="syntaxhighlighter/scripts/shCore.min.js"></script>
-    <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushJScript.min.js"></script>
-    <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushXml.min.js"></script>
-<!-- Additional plugins go here -->
-
-  <script class="include" type="text/javascript" src="../plugins/jqplot.BezierCurveRenderer.min.js"></script>
-  <script class="include" type="text/javascript" src="../plugins/jqplot.dateAxisRenderer.min.js"></script>
-
-<!-- End additional plugins -->
-
-
-	</div>	
-	<script type="text/javascript" src="example.min.js"></script>
-
-</body>
-
-
-</html>
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/blockPlot.html b/wqflask/wqflask/static/packages/jqplot/examples/blockPlot.html
deleted file mode 100755
index cfbe68bd..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/blockPlot.html
+++ /dev/null
@@ -1,199 +0,0 @@
-<!DOCTYPE html>
-
-<html>
-<head>
-	
-	<title>Block Plots</title>
-
-    <link class="include" rel="stylesheet" type="text/css" href="../jquery.jqplot.min.css" />
-    <link rel="stylesheet" type="text/css" href="examples.min.css" />
-    <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shCoreDefault.min.css" />
-    <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shThemejqPlot.min.css" />
-  
-  <!--[if lt IE 9]><script language="javascript" type="text/javascript" src="../excanvas.js"></script><![endif]-->
-    <script class="include" type="text/javascript" src="../jquery.min.js"></script>
-    
-   
-</head>
-<body>
-    <div class="logo">
-   <div class="nav">
-   <a class="nav" href="../../../index.php"><span>&gt;</span>Home</a>
-   <a class="nav"  href="../../../docs/"><span>&gt;</span>Docs</a>
-   <a class="nav"  href="../../download/"><span>&gt;</span>Download</a>
-   <a class="nav" href="../../../info.php"><span>&gt;</span>Info</a>
-   <a class="nav"  href="../../../donate.php"><span>&gt;</span>Donate</a>
-   </div>
-</div>
-    <div class="example-content">
-
-    <div class="example-nav">
-  <a href="bezierCurve.html">Previous</a> <a href="./">Examples</a> <a href="bodyOpenerNoHeader.html">Next</a></div>
-
-      
-<!-- Example scripts go here -->
-
- <p>Below is an example block plot.  This plot also uses the Enhanced Legend Renderer plugin.  Clicking on an item in the legend will toggle display of the appropriate series.</p>
-
-    <div id="chart1" class="plot" style="width:500px;height:300px;margin-bottom:30px;"></div>
-
-<p>Blocks can be moved by selecting the series, the point, and an optional duration parameter.  If specified, duration will animate the movement.  Duration is either a number in milliseconds, or the keywords 'fast' or 'slow'.  Higher numbers will cause a slower animation.</p>
-    Series: <select id="seriesId">
-        <option value="0" selected>First</option>
-        <option value="1">Second</option>
-        <option value="2">Third</option>
-    </select>
-    Point: <select id="pointId">
-        <option value="0" selected>first</option>
-        <option value="1">second</option>
-        <option value="2">third</option>
-        <option value="3">fourth</option>
-        <option value="4">fifth</option>
-        <option value="5">six</option>
-    </select>
-    Duration: <select id="duration">
-        <option value="" selected>None</option>
-        <option value="150">100</option>
-        <option value="fast">fast</option>
-        <option value="300">300</option>
-        <option value="300">400</option>
-        <option value="300">500</option>
-        <option value="slow">slow</option>
-        <option value="900">700</option>
-        <option value="900">800</option>
-        <option value="900">900</option>
-    </select>
-    X: <button id="mxval" type="button" value="-0.5" onclick="move('x', -1);">-1</button> <button id="pxval" type="button" value="-0.5" onclick="move('x', 0.5);">0.5</button>
-    Y: <button id="myval" type="button" name="myval" value="-10" onclick="move('y', -30);">-30</button> <button id="pyval" type="button" name="pyval" value="10" onclick="move('y', 15);">15</button>
-
-    <pre class="code brush:js"></pre>
-    
-    
-    <p>This second chart is like the first except the "varyBlockColors" renderer option is set to true.  This will vary the color of each block in a series separately.  This allows displaying a third dimension to the data such as grouping beverage products by producer and by category such as "cola", "tea", "energy drink", etc.</p>
-    
-    <p>Also, the legend has it's "showSwathces" option set to false, since the blocks of each series will be of varying color and won't correspond to one swatch color.  This still enables the user to show and hide the series by clicking on a label in the legend.</p>
-    
-    <div id="chart2" class="plot" style="width:500px;height:300px;margin-bottom:30px;"></div>
-
-
-<script class="code" type="text/javascript">
-$(document).ready(function(){
-
-    var s1 = [[0.9, 120, 'Vernors'], [1.8, 140, 'Fanta'], [3.2, 90, 'Barqs', {background:'#ddbb33'}], 
-    [4.1, 140, 'Arizon Iced Tea'], [4.5, 91, 'Red Bull'], [6.8, 17, 'Go Girl']];
-    var s2 = [[1.3, 44, 'Pepsi'], [2.1, 170, 'Sierra Mist'], [2.6, 66, 'Moutain Dew'], 
-    [4, 52, 'Sobe'], [5.4, 16, 'Amp'], [6, 48, 'Aquafina']];
-    var s3 = [[1, 59, 'Coca-Cola', {background:'rgb(250, 160, 160)'}], [2, 50, 'Ambasa'], 
-    [3, 90, 'Mello Yello'], [4, 90, 'Sprite'], [5, 71, 'Squirt'], [5, 155, 'Youki']];
-
-    $('#chart1').jqplot([s1, s2, s3],{
-        seriesDefaults:{
-            renderer:$.jqplot.BlockRenderer
-        }, 
-       legend:{
-           renderer: $.jqplot.EnhancedLegendRenderer,
-           show:true
-        },
-        series: [
-           {},
-           {rendererOptions: {
-               css:{background:'#A1EED6'}
-           }},
-           {rendererOptions: {
-               css:{background:'#D3E4A0'}
-           }}
-        ],
-        axes: {
-            xaxis: {
-                min:0,
-                max: 8
-            },
-            yaxis: {
-                min:0,
-                max: 200
-            }
-        }
-    });
-});
- 
- function move(dir, val) {
-     var plot1 = $('#chart1').data('jqplot');
-     val = parseFloat(val);
-     var sidx = parseInt($('#seriesId').val());
-     var pidx = parseInt($('#pointId').val());
-     var duration = $('#duration').val();
-     var x = plot1.series[sidx].data[pidx][0];
-     var y = plot1.series[sidx].data[pidx][1];
-     (dir == 'x') ? x += val : y += val; 
-     plot1.series[sidx].moveBlock(pidx, x, y, duration);
- }
- 
-</script>
-
-<script class="code" type="text/javascript">
-$(document).ready(function(){
-    var s1 = [[0.9, 120, 'Vernors'], [1.8, 140, 'Fanta'], [3.2, 90, 'Barqs'], 
-    [4.1, 140, 'Arizon Iced Tea'], [4.5, 91, 'Red Bull'], [6.8, 17, 'Go Girl']];
-    var s2 = [[1.3, 44, 'Pepsi'], [2.1, 170, 'Sierra Mist'], [2.6, 66, 'Moutain Dew'], 
-    [4, 52, 'Sobe'], [5.4, 16, 'Amp'], [6, 48, 'Aquafina']];
-    var s3 = [[1, 59, 'Coca-Cola'], [2, 50, 'Sprite'], [3, 90, 'Mello Yello'], 
-    [4, 90, 'Ambasa'], [5, 71, 'Squirt'], [5, 155, 'Youki']];
-
-
-    var plot2 = $.jqplot('chart2',[s1, s2, s3],{
-        seriesDefaults:{
-            renderer:$.jqplot.BlockRenderer,
-            rendererOptions: {
-                varyBlockColors: true
-            },
-            pointLabels:{
-                show: false
-            }
-        }, 
-       legend:{
-           renderer: $.jqplot.EnhancedLegendRenderer,
-           show:true,
-           showSwatches: false
-        },
-        series: [{label: 'Independent Brands'}, {label: 'Pepsi Brands'}, {label: 'Coke Brands'}],
-        axes: {
-            xaxis: {
-                min:0,
-                max: 8
-            },
-            yaxis: {
-                min:0,
-                max: 200
-            }
-        }
-    });
-   
- });
- 
-</script>
-
-<!-- End example scripts -->
-
-<!-- Don't touch this! -->
-
-
-    <script class="include" type="text/javascript" src="../jquery.jqplot.min.js"></script>
-    <script type="text/javascript" src="syntaxhighlighter/scripts/shCore.min.js"></script>
-    <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushJScript.min.js"></script>
-    <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushXml.min.js"></script>
-<!-- Additional plugins go here -->
-
-  <script class="include" type="text/javascript" src="../plugins/jqplot.blockRenderer.min.js"></script>
-  <script class="include" type="text/javascript" src="../plugins/jqplot.enhancedLegendRenderer.min.js"></script>
-  <script class="include" type="text/javascript" src="../plugins/jqplot.pointLabels.min.js"></script>
-
-<!-- End additional plugins -->
-
-
-	</div>	
-	<script type="text/javascript" src="example.min.js"></script>
-
-</body>
-
-
-</html>
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/bubble-plots.html b/wqflask/wqflask/static/packages/jqplot/examples/bubble-plots.html
deleted file mode 100755
index d210b98e..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/bubble-plots.html
+++ /dev/null
@@ -1,213 +0,0 @@
-<!DOCTYPE html>
-
-<html>
-<head>
-	
-	<title>Bubble Plots</title>
-
-    <link class="include" rel="stylesheet" type="text/css" href="../jquery.jqplot.min.css" />
-    <link rel="stylesheet" type="text/css" href="examples.min.css" />
-    <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shCoreDefault.min.css" />
-    <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shThemejqPlot.min.css" />
-  
-  <!--[if lt IE 9]><script language="javascript" type="text/javascript" src="../excanvas.js"></script><![endif]-->
-    <script class="include" type="text/javascript" src="../jquery.min.js"></script>
-    
-   
-</head>
-<body>
-    <div class="logo">
-   <div class="nav">
-   <a class="nav" href="../../../index.php"><span>&gt;</span>Home</a>
-   <a class="nav"  href="../../../docs/"><span>&gt;</span>Docs</a>
-   <a class="nav"  href="../../download/"><span>&gt;</span>Download</a>
-   <a class="nav" href="../../../info.php"><span>&gt;</span>Info</a>
-   <a class="nav"  href="../../../donate.php"><span>&gt;</span>Donate</a>
-   </div>
-</div>
-    <div class="example-content">
-
-    <div class="example-nav">
-  <a href="bodyOpenerNoHeader.html">Previous</a> <a href="./">Examples</a> <a href="bubbleChart.html">Next</a></div>
-
-      
-<!-- Example scripts go here -->
-
-  <style type="text/css">
-    
-    .note {
-        font-size: 0.8em;
-    }
-    
-    #tooltip1b {
-        font-size: 12px;
-        color: rgb(15%, 15%, 15%);
-        padding:2px;
-        background-color: rgba(95%, 95%, 95%, 0.8);
-    }
-    
-    #legend1b {
-        font-size: 12px;
-        border: 1px solid #cdcdcd;
-        border-collapse: collapse;
-    }
-    #legend1b td, #legend1b th {
-        border: 1px solid #cdcdcd;
-        padding: 1px 4px;
-    }
-
-
-  </style>
-
-<p>Bubble charts represent 3 dimensional data.  First, a basic bubble chart with the "bubbleGradients: true" option to specify gradient fills.  Radial gradients are not supported in IE version before IE 9 and will be automatically disabled.</p>  
-
-<div id="chart1" style="height:340px; width:460px;"></div>
-
-<pre class="code prettyprint brush: js"></pre>
-
-
-<p>Data is passed in to a bubble chart as a series of [x, y, radius, &lt;label or object&gt;].  The optional fourth element of the data point can either be either a label string or an object having 'label' and/or 'color' properties to assign to the bubble.</p>
-
-<p>By default, all bubbles are scaled according to the size of the plot area.  The radius value in the data point will be adjusted to fit the bubbles in the chart.  If the "autoscaleBubbles" option is set to false, the radius value in the data will be taken as a literal pixel value for the radius of the points.</p>
-
-<p>Next are some basic customizations of bubble appearance with the "bubbleAlpha" and "highlightAlpha" options.</p>
-
-<div id="chart2" style="height:340px; width:460px;"></div>
-
-<pre class="code prettyprint brush: js"></pre>
-
-
-<p>In the following example, display of a custom toolip and highlighting of a custom table legend is performed by binding to the "jqplotDataHighlight" and "jqplotDataUnhighlight" events.  The custom legend table here is dynamically created with a few lines of jQuery (O.K., it could be done in one line) based on the data array of the plot.</p>
-
-<div style="position:absolute;z-index:99;display:none;" id="tooltip1b"></div>
-
-<table style="margin-left:auto; margin-right:auto;"><tr>
-    <td><div id="chart1b" style="width:460px;height:340px;"></div></td>
-    <td><div style="height:340px;"><table id="legend1b"><tr><th>Company</th><th>R Value</th></tr></table></div></td>
-</tr></table>
-
-<pre class="code prettyprint brush: js"></pre>
-
-
-<script class="code" type="text/javascript">
-$(document).ready(function(){
-
-    var arr = [[11, 123, 1236, "Acura"], [45, 92, 1067, "Alfa Romeo"], 
-    [24, 104, 1176, "AM General"], [50, 23, 610, "Aston Martin Lagonda"], 
-    [18, 17, 539, "Audi"], [7, 89, 864, "BMW"], [2, 13, 1026, "Bugatti"]];
-    
-    var plot1 = $.jqplot('chart1',[arr],{
-        title: 'Bubble Chart with Gradient Fills',
-        seriesDefaults:{
-            renderer: $.jqplot.BubbleRenderer,
-            rendererOptions: {
-                bubbleGradients: true
-            },
-            shadow: true
-        }
-    });
-});
-</script>
-  
-<script class="code" type="text/javascript">
-$(document).ready(function(){
-    
-    var arr = [[11, 123, 1236, "Acura"], [45, 92, 1067, "Alfa Romeo"], 
-    [24, 104, 1176, "AM General"], [50, 23, 610, "Aston Martin Lagonda"], 
-    [18, 17, 539, "Audi"], [7, 89, 864, "BMW"], [2, 13, 1026, "Bugatti"]];
-    
-    var plot2 = $.jqplot('chart2',[arr],{
-        title: 'Transparent Bubbles',
-        seriesDefaults:{
-            renderer: $.jqplot.BubbleRenderer,
-            rendererOptions: {
-                bubbleAlpha: 0.6,
-                highlightAlpha: 0.8
-            },
-            shadow: true,
-            shadowAlpha: 0.05
-        }
-    });    
-});
-</script>
-
-<script class="code" type="text/javascript">
-$(document).ready(function(){
-  
-  var arr = [[11, 123, 1236, "Acura"], [45, 92, 1067, "Alfa Romeo"], 
-  [24, 104, 1176, "AM General"], [50, 23, 610, "Aston Martin Lagonda"], 
-  [18, 17, 539, "Audi"], [7, 89, 864, "BMW"], [2, 13, 1026, "Bugatti"]];
-  
-  var plot1b = $.jqplot('chart1b',[arr],{
-    title: 'Tooltip and Custom Legend Highlighting',
-    seriesDefaults:{
-      renderer: $.jqplot.BubbleRenderer,
-      rendererOptions: {
-        bubbleAlpha: 0.6,
-        highlightAlpha: 0.8,
-        showLabels: false
-      },
-      shadow: true,
-      shadowAlpha: 0.05
-    }
-  });
-  
-  // Legend is a simple table in the html.
-  // Dynamically populate it with the labels from each data value.
-  $.each(arr, function(index, val) {
-    $('#legend1b').append('<tr><td>'+val[3]+'</td><td>'+val[2]+'</td></tr>');
-  });
-  
-  // Now bind function to the highlight event to show the tooltip
-  // and highlight the row in the legend. 
-  $('#chart1b').bind('jqplotDataHighlight', 
-    function (ev, seriesIndex, pointIndex, data, radius) {    
-      var chart_left = $('#chart1b').offset().left,
-        chart_top = $('#chart1b').offset().top,
-        x = plot1b.axes.xaxis.u2p(data[0]),  // convert x axis unita to pixels
-        y = plot1b.axes.yaxis.u2p(data[1]);  // convert y axis units to pixels
-      var color = 'rgb(50%,50%,100%)';
-      $('#tooltip1b').css({left:chart_left+x+radius+5, top:chart_top+y});
-      $('#tooltip1b').html('<span style="font-size:14px;font-weight:bold;color:' + 
-      color + ';">' + data[3] + '</span><br />' + 'x: ' + data[0] + 
-      '<br />' + 'y: ' + data[1] + '<br />' + 'r: ' + data[2]);
-      $('#tooltip1b').show();
-      $('#legend1b tr').css('background-color', '#ffffff');
-      $('#legend1b tr').eq(pointIndex+1).css('background-color', color);
-    });
-  
-  // Bind a function to the unhighlight event to clean up after highlighting.
-  $('#chart1b').bind('jqplotDataUnhighlight', 
-      function (ev, seriesIndex, pointIndex, data) {
-          $('#tooltip1b').empty();
-          $('#tooltip1b').hide();
-          $('#legend1b tr').css('background-color', '#ffffff');
-      });
-});
-</script>
-
-<!-- End example scripts -->
-
-<!-- Don't touch this! -->
-
-
-    <script class="include" type="text/javascript" src="../jquery.jqplot.min.js"></script>
-    <script type="text/javascript" src="syntaxhighlighter/scripts/shCore.min.js"></script>
-    <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushJScript.min.js"></script>
-    <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushXml.min.js"></script>
-<!-- End Don't touch this! -->
-
-<!-- Additional plugins go here -->
-
-    <script class="include" language="javascript" type="text/javascript" src="../plugins/jqplot.bubbleRenderer.min.js"></script>
-
-<!-- End additional plugins -->
-
-
-	</div>	
-	<script type="text/javascript" src="example.min.js"></script>
-
-</body>
-
-
-</html>
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/bubbleChart.html b/wqflask/wqflask/static/packages/jqplot/examples/bubbleChart.html
deleted file mode 100755
index 628d9066..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/bubbleChart.html
+++ /dev/null
@@ -1,264 +0,0 @@
-<!DOCTYPE html>
-
-<html>
-<head>
-	
-	<title>Bubble Charts</title>
-
-    <link class="include" rel="stylesheet" type="text/css" href="../jquery.jqplot.min.css" />
-    <link rel="stylesheet" type="text/css" href="examples.min.css" />
-    <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shCoreDefault.min.css" />
-    <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shThemejqPlot.min.css" />
-  
-  <!--[if lt IE 9]><script language="javascript" type="text/javascript" src="../excanvas.js"></script><![endif]-->
-    <script class="include" type="text/javascript" src="../jquery.min.js"></script>
-    
-   
-</head>
-<body>
-    <div class="logo">
-   <div class="nav">
-   <a class="nav" href="../../../index.php"><span>&gt;</span>Home</a>
-   <a class="nav"  href="../../../docs/"><span>&gt;</span>Docs</a>
-   <a class="nav"  href="../../download/"><span>&gt;</span>Download</a>
-   <a class="nav" href="../../../info.php"><span>&gt;</span>Info</a>
-   <a class="nav"  href="../../../donate.php"><span>&gt;</span>Donate</a>
-   </div>
-</div>
-    <div class="example-content">
-
-    <div class="example-nav">
-  <a href="bubble-plots.html">Previous</a> <a href="./">Examples</a> <a href="candlestick-charts.html">Next</a></div>
-
-      
-<!-- Example scripts go here -->
-
-  <style type="text/css">
-    .jqplot-target {
-        margin-bottom: 2em;
-    }
-    
-    .note {
-        font-size: 0.8em;
-    }
-    
-    #tooltip1b {
-        font-size: 12px;
-        color: rgb(15%, 15%, 15%);
-        padding:2px;
-        background-color: rgba(95%, 95%, 95%, 0.8);
-    }
-    
-    #legend1b {
-        font-size: 12px;
-        border: 1px solid #cdcdcd;
-        border-collapse: collapse;
-    }
-    #legend1b td, #legend1b th {
-        border: 1px solid #cdcdcd;
-        padding: 1px 4px;
-    }
-  </style>
-
- 
- <p>Bubble charts represent 3 dimensional data.  Data is passed in to a bubble chart as a series of [x, y, radius, &lt;label or object&gt;].  The optional fourth element of the data point can either be either a label string or an object having 'label' and/or 'color' properties to assign to the bubble.</p>
-
-<p>By default, all bubbles are scaled according to the size of the plot area.  The radius value in the data point will be adjusted to fit the bubbles in the chart.  If the "autoscaleBubbles" option is set to false, the radius value in the data will be taken as a literal pixel value for the radius of the points.</p>
-
-<p>The below chart show basic customization of bubble appearance with the "bubbleAlpha" and "highlightAlpha" options.</p>
-
-<div id="chart1" class="plot" style="width:460px;height:340px;"></div>
-<pre class="code brush:js"></pre>
-
-<div style="position:absolute;z-index:99;display:none;" id="tooltip1b"></div>
-
-<table><tr>
-    <td><div id="chart1b" class="plot" style="width:460px;height:340px;"></div></td>
-    <td><div style="height:340px;"><table id="legend1b"><tr><th>Company</th><th>R Value</th></tr></table></div></td>
-</tr></table>
-<pre class="code brush:js"></pre>
-
-<p>Below is a basic bubble chart showing usage of the optional label and color properties passed in with the data.</p>
-
-<div id="chart1c" class="plot" style="width:460px;height:340px;"></div>
-<pre class="code brush:js"></pre>
-
-<p>The next chart uses the "bubbleGradients: true" option to specify gradient fills on the bubbles.  Radial gradients are not supported in IE<sup>*</sup> and will be automatically disabled.</p>  
-
-<div id="chart2" class="plot" style="width:460px;height:340px;"></div>
-
-<p class="note"><sup>*</sup>Radial gradients are not supported in IE 7 and IE 8 because they are not supported in the excanvas emulation layer used by jqPlot to render charts in IE 7 and IE 8.  jqPlot renders charts using the HTML canvas element which is supported by nearly every browser including IE 9.  Excanvas translates the canvas rendering to VML rendering for IE 7 and 8, but unfortunately does not properly handle radial gradients.</p>
-
-<pre class="code brush:js"></pre>
-
-<p>The following bubble chart shows the "autoscalePointsFactor" and "autoscaleMultiplier" options which can be used to control bubble scaling.  The "autoscalePointsFactor" options controls bubble scaling with the number of points on the plot.  A negative value will decrease bubble size and number of bubbles increases.  The "autoscaleMultiplier" will makes all bubbles larger or smaller for values greater  or less than 1.0.</p>
-
-<p>This chart also demonstrates some of the highlighting options.  Bubble highlighting is controlled with the "highlightMouseOver" and "highlightMouseDown" boolean options.  Here the "highlightMouseDown: true" option is set which causes the plot to highlight on mousedown (click).  This automatically sets the "highlightMouseOver" option to false.</p>
-
-<p>Events are also trigger with plot interaction.  Specifically, "jqplotDataHighlight", "jqplotDataUnhighlight", "jqplotDataClick" and "jqplotDataRightClick" events are triggered.  Handlers are passed an event object, the series index, the point index, and the bubble data.</p>
-
-<div id="chart3" class="plot" style="width:600px;height:400px;"></div>
-<pre class="code brush:js"></pre>
-
-<script class="code" language="javascript" type="text/javascript">$(document).ready(function(){
-    
-    var arr = [[11, 123, 1236, "Acura"], [45, 92, 1067, "Alfa Romeo"], 
-    [24, 104, 1176, "AM General"], [50, 23, 610, "Aston Martin Lagonda"], 
-    [18, 17, 539, "Audi"], [7, 89, 864, "BMW"], [2, 13, 1026, "Bugatti"]];
-    
-    plot1 = $.jqplot('chart1',[arr],{
-        title: 'Transparent Bubbles',
-        seriesDefaults:{
-            renderer: $.jqplot.BubbleRenderer,
-            rendererOptions: {
-                bubbleAlpha: 0.6,
-                highlightAlpha: 0.8
-            },
-            shadow: true,
-            shadowAlpha: 0.05
-        }
-    });    
-});</script>
-
-<script class="code" language="javascript" type="text/javascript">$(document).ready(function(){
-    
-    var arr = [[11, 123, 1236, "Acura"], [45, 92, 1067, "Alfa Romeo"], 
-    [24, 104, 1176, "AM General"], [50, 23, 610, "Aston Martin Lagonda"], 
-    [18, 17, 539, "Audi"], [7, 89, 864, "BMW"], [2, 13, 1026, "Bugatti"]];
-    
-    plot1b = $.jqplot('chart1b',[arr],{
-        title: 'Tooltip and Custom Legend Highlighting',
-        seriesDefaults:{
-            renderer: $.jqplot.BubbleRenderer,
-            rendererOptions: {
-                bubbleAlpha: 0.6,
-                highlightAlpha: 0.8,
-                showLabels: false
-            },
-            shadow: true,
-            shadowAlpha: 0.05
-        }
-    });
-    
-    // Legend is a simple table in the html.
-    // Now populate it with the labels from each data value.
-    $.each(arr, function(index, val) {
-        $('#legend1b').append('<tr><td>'+val[3]+'</td><td>'+val[2]+'</td></tr>');
-    });
-    
-    // Now bind function to the highlight event to show the tooltip
-    // and highlight the row in the legend. 
-    $('#chart1b').bind('jqplotDataHighlight', 
-        function (ev, seriesIndex, pointIndex, data, radius) {    
-            var chart_left = $('#chart1b').offset().left,
-                chart_top = $('#chart1b').offset().top,
-                x = plot1b.axes.xaxis.u2p(data[0]),  // convert x axis unita to pixels on grid
-                y = plot1b.axes.yaxis.u2p(data[1]);  // convert y axis units to pixels on grid
-            var color = 'rgb(50%,50%,100%)';
-            $('#tooltip1b').css({left:chart_left+x+radius+5, top:chart_top+y});
-            $('#tooltip1b').html('<span style="font-size:14px;font-weight:bold;color:'+color+';">' + 
-            data[3] + '</span><br />' + 'x: '+data[0] + '<br />' + 'y: ' + 
-            data[1] + '<br />' + 'r: ' + data[2]);
-            $('#tooltip1b').show();
-            $('#legend1b tr').css('background-color', '#ffffff');
-            $('#legend1b tr').eq(pointIndex+1).css('background-color', color);
-        });
-    
-    // Bind a function to the unhighlight event to clean up after highlighting.
-    $('#chart1b').bind('jqplotDataUnhighlight', 
-        function (ev, seriesIndex, pointIndex, data) {
-            $('#tooltip1b').empty();
-            $('#tooltip1b').hide();
-            $('#legend1b tr').css('background-color', '#ffffff');
-        });
-});</script>
-
-<script class="code" language="javascript" type="text/javascript">$(document).ready(function(){
-    
-    var arr = [[11, 123, 1236, {label:"Acura", color:'sandybrown'}], 
-    [45, 92, 1067, {label:"Alfa Romeo", color:'skyblue'}], 
-    [24, 104, 1176, {label:"AM General", color:"salmon"}], [50, 23, 610, {color:"papayawhip"}], 
-    [18, 17, 539, "Audi"], [7, 89, 864], [2, 13, 1026, "Bugatti"]];
-    
-    plot1c = $.jqplot('chart1c',[arr],{
-        title: 'Bubble Data Customizations',
-        seriesDefaults:{
-            renderer: $.jqplot.BubbleRenderer
-        }
-    });
-    
-});</script>
-
-<script class="code" language="javascript" type="text/javascript">$(document).ready(function(){
-
-    var arr = [[11, 123, 1236, "Acura"], [45, 92, 1067, "Alfa Romeo"], 
-    [24, 104, 1176, "AM General"], [50, 23, 610, "Aston Martin Lagonda"], 
-    [18, 17, 539, "Audi"], [7, 89, 864, "BMW"], [2, 13, 1026, "Bugatti"]];
-    
-    plot2 = $.jqplot('chart2',[arr],{
-        title: 'Bubble Gradient Fills*',
-        seriesDefaults:{
-            renderer: $.jqplot.BubbleRenderer,
-            rendererOptions: {
-                bubbleGradients: true
-            },
-            shadow: true
-        }
-    });
-    
-});</script>
-
-<script class="code" language="javascript" type="text/javascript">$(document).ready(function(){
-    
-    var arr = [[44, 66, 897, "Acura"], [25, 40, 1119, "Alfa Romeo"], [2, 33, 1197, "AM General"], 
-    [4, 132, 896, "Aston Martin Lagonda"], [2, 129, 314, "Audi"], [14, 47, 612, "BMW"], 
-    [45, 112, 719, "Bugatti"], [11, 38, 785, "Buick"], [15, 39, 367, "Cadillac"], 
-    [6, 133, 726, "Chevrolet"], [48, 84, 1082, "Citroen"], [40, 18, 1047, "DaimlerChrysler Corporation"], 
-    [24, 107, 1065, "Daewoo Motor Co."], [27, 92, 792, "Delorean Motor Company"], [1, 78, 803, "Dodge"], 
-    [5, 149, 320, "Ferrari"], [11, 127, 497, "Fiat"], [14, 18, 805, "Ford Motor Company"], 
-    [9, 101, 394, "General Motors"], [16, 57, 338, "GMC"], [19, 89, 977, "Holden"], 
-    [35, 78, 464, "Honda"], [18, 130, 364, "Hummer"], [37, 20, 699, "Hyundai"], 
-    [33, 140, 457, "Infiniti"], [12, 122, 533, "Isuzu"], [25, 67, 767, "Jaguar Cars"], 
-    [0, 7, 481, "Jeep"], [38, 36, 611, "Jensen Motors"], [43, 91, 943, "Kia"], [45, 21, 569, "Laforza"]];
-    
-    plot3 = $.jqplot('chart3',[arr],{
-        title: 'Bubble Auto Scaling Options',
-        seriesDefaults:{
-            renderer: $.jqplot.BubbleRenderer,
-            rendererOptions: {
-                autoscalePointsFactor: -0.15,
-                autoscaleMultiplier: 0.85,
-                highlightMouseDown: true,
-                bubbleAlpha: 0.7
-            },
-            shadow: true,
-            shadowAlpha: 0.05
-        }
-    });
-    
-});</script>
-
-
-<!-- End example scripts -->
-
-<!-- Don't touch this! -->
-
-
-    <script class="include" type="text/javascript" src="../jquery.jqplot.min.js"></script>
-    <script type="text/javascript" src="syntaxhighlighter/scripts/shCore.min.js"></script>
-    <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushJScript.min.js"></script>
-    <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushXml.min.js"></script>
-<!-- Additional plugins go here -->
-
-  <script class="include" type="text/javascript" src="../plugins/jqplot.bubbleRenderer.min.js"></script>
-
-<!-- End additional plugins -->
-
-
-	</div>	
-	<script type="text/javascript" src="example.min.js"></script>
-
-</body>
-
-
-</html>
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/candlestick-charts.html b/wqflask/wqflask/static/packages/jqplot/examples/candlestick-charts.html
deleted file mode 100755
index c0262e34..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/candlestick-charts.html
+++ /dev/null
@@ -1,209 +0,0 @@
-<!DOCTYPE html>
-
-<html>
-<head>
-	
-	<title>Open Hi Low Close and Candlestick Charts</title>
-
-    <link class="include" rel="stylesheet" type="text/css" href="../jquery.jqplot.min.css" />
-    <link rel="stylesheet" type="text/css" href="examples.min.css" />
-    <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shCoreDefault.min.css" />
-    <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shThemejqPlot.min.css" />
-  
-  <!--[if lt IE 9]><script language="javascript" type="text/javascript" src="../excanvas.js"></script><![endif]-->
-    <script class="include" type="text/javascript" src="../jquery.min.js"></script>
-    
-   
-</head>
-<body>
-    <div class="logo">
-   <div class="nav">
-   <a class="nav" href="../../../index.php"><span>&gt;</span>Home</a>
-   <a class="nav"  href="../../../docs/"><span>&gt;</span>Docs</a>
-   <a class="nav"  href="../../download/"><span>&gt;</span>Download</a>
-   <a class="nav" href="../../../info.php"><span>&gt;</span>Info</a>
-   <a class="nav"  href="../../../donate.php"><span>&gt;</span>Donate</a>
-   </div>
-</div>
-    <div class="example-content">
-
-    <div class="example-nav">
-  <a href="bubbleChart.html">Previous</a> <a href="./">Examples</a> <a href="candlestick.html">Next</a></div>
-
-      
-<!-- Example scripts go here -->
-
-<p>OHLC, HLC and Candlestick charts are all created using the $.jqplot.OHLCRenderer plugin.  The plots on this page make use of the highlighter plugin which shows a customized tooltip as the mouse moves over a data point.</p>
-<div id="chart1" style="height:250px; width:600px;"></div>
-
-<pre class="code prettyprint brush: js"></pre>
-
-<div id="chart2" style="height:250px; width:600px;"></div>
-
-<pre class="code prettyprint brush: js"></pre>
-
-<p>The previous plots use the following data set.  jqPlot will parse most human readable date formats.  It is always safest, however, to pass a date in as a JavaScript timestamp rather than have jqPlot parse an arbitrary date string.</p>
-
-<pre class="code prettyprint brush: js"></pre>
-
-
-<script class="code" language="javascript" type="text/javascript">
-$(document).ready(function(){ 
-  // Note, the ohlc data is specified below     
-  var plot1 = $.jqplot('chart1',[ohlc],{
-    // use the y2 axis on the right of the plot 
-    //rather than the y axis on the left.
-    seriesDefaults:{yaxis:'y2axis'},
-    axes: {
-      xaxis: {
-        renderer:$.jqplot.DateAxisRenderer,
-        tickOptions:{formatString:'%b %e'}, 
-        // For date axes, we can specify ticks options as human 
-        // readable dates.  You should be as specific as possible, 
-        // however, and include a date and time since some 
-        // browser treat dates without a time as UTC and some 
-        // treat dates without time as local time.
-        // Generally, if  a time is specified without a time zone,
-        // the browser assumes the time zone of the client.
-        min: "09-01-2008 16:00",
-        max: "06-22-2009 16:00",
-        tickInterval: "6 weeks"
-      },
-      y2axis: {
-        tickOptions:{formatString:'$%d'}
-      }
-    },
-    series: [{renderer:$.jqplot.OHLCRenderer}],
-    highlighter: {
-      show: true,
-      showMarker:false,
-      tooltipAxes: 'xy',
-      yvalues: 4,
-      // You can customize the tooltip format string of the highlighter
-      // to include any arbitrary text or html and use format string
-      // placeholders (%s here) to represent x and y values.
-      formatString:'<table class="jqplot-highlighter"> \
-      <tr><td>date:</td><td>%s</td></tr> \
-      <tr><td>open:</td><td>%s</td></tr> \
-      <tr><td>hi:</td><td>%s</td></tr> \
-      <tr><td>low:</td><td>%s</td></tr> \
-      <tr><td>close:</td><td>%s</td></tr></table>'
-    }
-  });
-    
-});
-</script>
-
-<script class="code" language="javascript" type="text/javascript">
-$(document).ready(function(){            
-  var plot2 = $.jqplot('chart2',[ohlc],{
-    seriesDefaults:{yaxis:'y2axis'},
-    axes: {
-      xaxis: {
-        renderer:$.jqplot.DateAxisRenderer,
-        tickOptions:{formatString:'%b %e'}, 
-        min: "09-01-2008",
-        max: "06-22-2009",
-        tickInterval: "6 weeks"
-      },
-      y2axis: {
-        tickOptions:{formatString:'$%d'}
-      }
-    },
-    // To make a candle stick chart, set the "candleStick" option to true.
-    series: [
-      {
-        renderer:$.jqplot.OHLCRenderer, 
-        rendererOptions:{ candleStick:true }
-      }
-    ],
-    highlighter: {
-      show: true,
-      showMarker:false,
-      tooltipAxes: 'xy',
-      yvalues: 4,
-      formatString:'<table class="jqplot-highlighter"> \
-      <tr><td>date:</td><td>%s</td></tr> \
-      <tr><td>open:</td><td>%s</td></tr> \
-      <tr><td>hi:</td><td>%s</td></tr> \
-      <tr><td>low:</td><td>%s</td></tr> \
-      <tr><td>close:</td><td>%s</td></tr></table>'
-    }
-  });
-    
-});
-</script>
-
-
-<script class="code" language="javascript" type="text/javascript">
-ohlc = [
-  ['06/15/2009 16:00:00', 136.01, 139.5, 134.53, 139.48],
-  ['06/08/2009 16:00:00', 143.82, 144.56, 136.04, 136.97],
-  ['06/01/2009 16:00:00', 136.47, 146.4, 136, 144.67],
-  ['05/26/2009 16:00:00', 124.76, 135.9, 124.55, 135.81],
-  ['05/18/2009 16:00:00', 123.73, 129.31, 121.57, 122.5],
-  ['05/11/2009 16:00:00', 127.37, 130.96, 119.38, 122.42],
-  ['05/04/2009 16:00:00', 128.24, 133.5, 126.26, 129.19],
-  ['04/27/2009 16:00:00', 122.9, 127.95, 122.66, 127.24],
-  ['04/20/2009 16:00:00', 121.73, 127.2, 118.6, 123.9],
-  ['04/13/2009 16:00:00', 120.01, 124.25, 115.76, 123.42],
-  ['04/06/2009 16:00:00', 114.94, 120, 113.28, 119.57],
-  ['03/30/2009 16:00:00', 104.51, 116.13, 102.61, 115.99],
-  ['03/23/2009 16:00:00', 102.71, 109.98, 101.75, 106.85],
-  ['03/16/2009 16:00:00', 96.53, 103.48, 94.18, 101.59],
-  ['03/09/2009 16:00:00', 84.18, 97.2, 82.57, 95.93],
-  ['03/02/2009 16:00:00', 88.12, 92.77, 82.33, 85.3],
-  ['02/23/2009 16:00:00', 91.65, 92.92, 86.51, 89.31],
-  ['02/17/2009 16:00:00', 96.87, 97.04, 89, 91.2],
-  ['02/09/2009 16:00:00', 100, 103, 95.77, 99.16],
-  ['02/02/2009 16:00:00', 89.1, 100, 88.9, 99.72],
-  ['01/26/2009 16:00:00', 88.86, 95, 88.3, 90.13],
-  ['01/20/2009 16:00:00', 81.93, 90, 78.2, 88.36],
-  ['01/12/2009 16:00:00', 90.46, 90.99, 80.05, 82.33],
-  ['01/05/2009 16:00:00', 93.17, 97.17, 90.04, 90.58],
-  ['12/29/2008 16:00:00', 86.52, 91.04, 84.72, 90.75],
-  ['12/22/2008 16:00:00', 90.02, 90.03, 84.55, 85.81],
-  ['12/15/2008 16:00:00', 95.99, 96.48, 88.02, 90],
-  ['12/08/2008 16:00:00', 97.28, 103.6, 92.53, 98.27],
-  ['12/01/2008 16:00:00', 91.3, 96.23, 86.5, 94],
-  ['11/24/2008 16:00:00', 85.21, 95.25, 84.84, 92.67],
-  ['11/17/2008 16:00:00', 88.48, 91.58, 79.14, 82.58],    
-  ['11/10/2008 16:00:00', 100.17, 100.4, 86.02, 90.24],
-  ['11/03/2008 16:00:00', 105.93, 111.79, 95.72, 98.24],
-  ['10/27/2008 16:00:00', 95.07, 112.19, 91.86, 107.59],
-  ['10/20/2008 16:00:00', 99.78, 101.25, 90.11, 96.38],
-  ['10/13/2008 16:00:00', 104.55, 116.4, 85.89, 97.4],
-  ['10/06/2008 16:00:00', 91.96, 101.5, 85, 96.8],
-  ['09/29/2008 16:00:00', 119.62, 119.68, 94.65, 97.07],
-  ['09/22/2008 16:00:00', 139.94, 140.25, 123, 128.24],
-  ['09/15/2008 16:00:00', 142.03, 147.69, 120.68, 140.91]
-];
-</script>
-
-<!-- End example scripts -->
-
-<!-- Don't touch this! -->
-
-
-    <script class="include" type="text/javascript" src="../jquery.jqplot.min.js"></script>
-    <script type="text/javascript" src="syntaxhighlighter/scripts/shCore.min.js"></script>
-    <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushJScript.min.js"></script>
-    <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushXml.min.js"></script>
-<!-- End Don't touch this! -->
-
-<!-- Additional plugins go here -->
-
-    <script class="include" language="javascript" type="text/javascript" src="../plugins/jqplot.dateAxisRenderer.min.js"></script>
-    <script class="include" language="javascript" type="text/javascript" src="../plugins/jqplot.ohlcRenderer.min.js"></script>
-    <script class="include" language="javascript" type="text/javascript" src="../plugins/jqplot.highlighter.min.js"></script>
-
-<!-- End additional plugins -->
-
-
-	</div>	
-	<script type="text/javascript" src="example.min.js"></script>
-
-</body>
-
-
-</html>
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/candlestick.html b/wqflask/wqflask/static/packages/jqplot/examples/candlestick.html
deleted file mode 100755
index b213d6ec..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/candlestick.html
+++ /dev/null
@@ -1,322 +0,0 @@
-<!DOCTYPE html>
-
-<html>
-<head>
-	
-	<title>Candlestick and Open Hi Low Close charts</title>
-
-    <link class="include" rel="stylesheet" type="text/css" href="../jquery.jqplot.min.css" />
-    <link rel="stylesheet" type="text/css" href="examples.min.css" />
-    <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shCoreDefault.min.css" />
-    <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shThemejqPlot.min.css" />
-  
-  <!--[if lt IE 9]><script language="javascript" type="text/javascript" src="../excanvas.js"></script><![endif]-->
-    <script class="include" type="text/javascript" src="../jquery.min.js"></script>
-    
-   
-</head>
-<body>
-    <div class="logo">
-   <div class="nav">
-   <a class="nav" href="../../../index.php"><span>&gt;</span>Home</a>
-   <a class="nav"  href="../../../docs/"><span>&gt;</span>Docs</a>
-   <a class="nav"  href="../../download/"><span>&gt;</span>Download</a>
-   <a class="nav" href="../../../info.php"><span>&gt;</span>Info</a>
-   <a class="nav"  href="../../../donate.php"><span>&gt;</span>Donate</a>
-   </div>
-</div>
-    <div class="example-content">
-
-    <div class="example-nav">
-  <a href="candlestick-charts.html">Previous</a> <a href="./">Examples</a> <a href="canvas-overlay.html">Next</a></div>
-
-      
-<!-- Example scripts go here -->
-
-<div id="chart1" class="code" style="margin:20px;height:240px; width:640px;"></div>
-<pre class="code brush:js"></pre>
-<div id="chart2" class="code" style="margin:20px;height:240px; width:640px;"></div>
-<pre class="code brush:js"></pre>
-<div id="chart2b" class="code" style="margin:20px;height:240px; width:640px;"></div>
-<pre class="code brush:js"></pre>
-<div id="chart3" class="code" style="margin:20px;height:240px; width:640px;"></div>
-<pre class="code brush:js"></pre>
-<div id="chart4" class="code" style="margin:20px;height:320px; width:500px;"></div>
-<pre class="code brush:js"></pre>
-<p>The examples on this page use the folowing code:</p>
-<pre class="common brush:js"></pre>
-
-<script class="common" type="text/javascript">
-    
-    ohlc = [['07/06/2009', 138.7, 139.68, 135.18, 135.4],
-    ['06/29/2009', 143.46, 144.66, 139.79, 140.02],
-    ['06/22/2009', 140.67, 143.56, 132.88, 142.44],
-    ['06/15/2009', 136.01, 139.5, 134.53, 139.48],
-    ['06/08/2009', 143.82, 144.56, 136.04, 136.97],
-    ['06/01/2009', 136.47, 146.4, 136, 144.67],
-    ['05/26/2009', 124.76, 135.9, 124.55, 135.81],
-    ['05/18/2009', 123.73, 129.31, 121.57, 122.5],
-    ['05/11/2009', 127.37, 130.96, 119.38, 122.42],
-    ['05/04/2009', 128.24, 133.5, 126.26, 129.19],
-    ['04/27/2009', 122.9, 127.95, 122.66, 127.24],
-    ['04/20/2009', 121.73, 127.2, 118.6, 123.9],
-    ['04/13/2009', 120.01, 124.25, 115.76, 123.42],
-    ['04/06/2009', 114.94, 120, 113.28, 119.57],
-    ['03/30/2009', 104.51, 116.13, 102.61, 115.99],
-    ['03/23/2009', 102.71, 109.98, 101.75, 106.85],
-    ['03/16/2009', 96.53, 103.48, 94.18, 101.59],
-    ['03/09/2009', 84.18, 97.2, 82.57, 95.93],
-    ['03/02/2009', 88.12, 92.77, 82.33, 85.3],
-    ['02/23/2009', 91.65, 92.92, 86.51, 89.31],
-    ['02/17/2009', 96.87, 97.04, 89, 91.2],
-    ['02/09/2009', 100, 103, 95.77, 99.16],
-    ['02/02/2009', 89.1, 100, 88.9, 99.72],
-    ['01/26/2009', 88.86, 95, 88.3, 90.13],
-    ['01/20/2009', 81.93, 90, 78.2, 88.36],
-    ['01/12/2009', 90.46, 90.99, 80.05, 82.33],
-    ['01/05/2009', 93.17, 97.17, 90.04, 90.58],
-    ['12/29/2008', 86.52, 91.04, 84.72, 90.75],
-    ['12/22/2008', 90.02, 90.03, 84.55, 85.81],
-    ['12/15/2008', 95.99, 96.48, 88.02, 90],
-    ['12/08/2008', 97.28, 103.6, 92.53, 98.27],
-    ['12/01/2008', 91.3, 96.23, 86.5, 94],
-    ['11/24/2008', 85.21, 95.25, 84.84, 92.67],
-    ['11/17/2008', 88.48, 91.58, 79.14, 82.58],    
-    ['11/10/2008', 100.17, 100.4, 86.02, 90.24],
-    ['11/03/2008', 105.93, 111.79, 95.72, 98.24],
-    ['10/27/2008', 95.07, 112.19, 91.86, 107.59],
-    ['10/20/2008', 99.78, 101.25, 90.11, 96.38],
-    ['10/13/2008', 104.55, 116.4, 85.89, 97.4],
-    ['10/06/2008', 91.96, 101.5, 85, 96.8],
-    ['09/29/2008', 119.62, 119.68, 94.65, 97.07],
-    ['09/22/2008', 139.94, 140.25, 123, 128.24],
-    ['09/15/2008', 142.03, 147.69, 120.68, 140.91],
-    ['09/08/2008', 164.57, 164.89, 146, 148.94]
-    ];
-    
-    ohlc_b = [['07/06/2009', 138.7, 139.68, 135.18, 135.4, 'j'],
-    ['06/29/2009', 143.46, 144.66, 139.79, 140.02, 'q'],
-    ['06/22/2009', 140.67, 143.56, 132.88, 142.44, 'p'],
-    ['06/15/2009', 136.01, 139.5, 134.53, 139.48, 'l'],
-    ['06/08/2009', 143.82, 144.56, 136.04, 136.97, 'o'],
-    ['06/01/2009', 136.47, 146.4, 136, 144.67, 't'],
-    ['05/26/2009', 124.76, 135.9, 124.55, 135.81, '_'],
-    ['05/18/2009', 123.73, 129.31, 121.57, 122.5, 'c'],
-    ['05/11/2009', 127.37, 130.96, 119.38, 122.42, 'h'],
-    ['05/04/2009', 128.24, 133.5, 126.26, 129.19, 'a'],
-    ['04/27/2009', 122.9, 127.95, 122.66, 127.24, 'r'],
-    ['04/20/2009', 121.73, 127.2, 118.6, 123.9, 't'],
-    ['04/13/2009', 120.01, 124.25, 115.76, 123.42, 's']
-    ];     
-    
-    hlc = [['07/06/2009', 139.68, 135.18, 135.4],
-    ['06/29/2009', 144.66, 139.79, 140.02],
-    ['06/22/2009', 143.56, 132.88, 142.44],
-    ['06/15/2009', 139.5, 134.53, 139.48],
-    ['06/08/2009', 144.56, 136.04, 136.97],
-    ['06/01/2009', 146.4, 136, 144.67],
-    ['05/26/2009', 135.9, 124.55, 135.81],
-    ['05/18/2009', 129.31, 121.57, 122.5],
-    ['05/11/2009', 130.96, 119.38, 122.42],
-    ['05/04/2009', 133.5, 126.26, 129.19],
-    ['04/27/2009', 127.95, 122.66, 127.24],
-    ['04/20/2009', 127.2, 118.6, 123.9],
-    ['04/13/2009', 124.25, 115.76, 123.42],
-    ['04/06/2009', 120, 113.28, 119.57],
-    ['03/30/2009', 116.13, 102.61, 115.99],
-    ['03/23/2009',  109.98, 101.75, 106.85],
-    ['03/16/2009', 103.48, 94.18, 101.59],
-    ['03/09/2009', 97.2, 82.57, 95.93],
-    ['03/02/2009', 92.77, 82.33, 85.3],
-    ['02/23/2009', 92.92, 86.51, 89.31],
-    ['02/17/2009', 97.04, 89, 91.2],
-    ['02/09/2009', 103, 95.77, 99.16],
-    ['02/02/2009', 100, 88.9, 99.72],
-    ['01/26/2009', 95, 88.3, 90.13],
-    ['01/20/2009', 90, 78.2, 88.36],
-    ['01/12/2009', 90.99, 80.05, 82.33],
-    ['01/05/2009', 97.17, 90.04, 90.58],
-    ['12/29/2008', 91.04, 84.72, 90.75],
-    ['12/22/2008', 90.03, 84.55, 85.81],
-    ['12/15/2008', 96.48, 88.02, 90],
-    ['12/08/2008', 103.6, 92.53, 98.27],
-    ['12/01/2008', 96.23, 86.5, 94],
-    ['11/24/2008', 95.25, 84.84, 92.67],
-    ['11/17/2008', 91.58, 79.14, 82.58],  
-    ['11/10/2008', 100.4, 86.02, 90.24],
-    ['11/03/2008', 111.79, 95.72, 98.24],
-    ['10/27/2008', 112.19, 91.86, 107.59],
-    ['10/20/2008', 101.25, 90.11, 96.38],
-    ['10/13/2008', 116.4, 85.89, 97.4],
-    ['10/06/2008', 101.5, 85, 96.8],
-    ['09/29/2008', 119.68, 94.65, 97.07],
-    ['09/22/2008', 140.25, 123, 128.24],
-    ['09/15/2008', 147.69, 120.68, 140.91],
-    ['09/08/2008', 164.89, 146, 148.94]
-    ];
-    
-</script>
-
-<script class="code" type="text/javascript">$(document).ready(function(){  
-    $.jqplot.config.enablePlugins = true;     
-    plot1 = $.jqplot('chart1',[ohlc],{
-      title: 'Chart',
-      axesDefaults:{},
-      axes: {
-          xaxis: {
-              renderer:$.jqplot.DateAxisRenderer
-          },
-          yaxis: {
-              tickOptions:{ prefix: '$' }
-          }
-      },
-      series: [{renderer:$.jqplot.OHLCRenderer, rendererOptions:{}}],
-      cursor:{
-          zoom:true,
-          tooltipOffset: 10,
-          tooltipLocation: 'nw'
-      }
-    });
-});</script>
-
-<script class="code" type="text/javascript">$(document).ready(function(){  
-    plot2 = $.jqplot('chart2',[ohlc],{
-      title: 'Chart',
-      axesDefaults:{},
-      axes: {
-          xaxis: {
-              renderer:$.jqplot.DateAxisRenderer
-          },
-          yaxis: {
-              tickOptions:{ prefix: '$' }
-          }
-      },
-      series: [{renderer:$.jqplot.OHLCRenderer, rendererOptions:{candleStick:true}}],
-      cursor:{
-          zoom:true,
-          tooltipOffset: 10,
-          tooltipLocation: 'nw'
-      },
-      highlighter: {
-          showMarker:false,
-          tooltipAxes: 'xy',
-          yvalues: 4,
-          formatString:'<table class="jqplot-highlighter"> \
-          <tr><td>date:</td><td>%s</td></tr> \
-          <tr><td>open:</td><td>%s</td></tr> \
-          <tr><td>hi:</td><td>%s</td></tr> \
-          <tr><td>low:</td><td>%s</td></tr> \
-          <tr><td>close:</td><td>%s</td></tr></table>'
-      }
-    });
-});</script>
-
-<script class="code" type="text/javascript">$(document).ready(function(){  
-    plot2b = $.jqplot('chart2b',[ohlc_b],{
-      title: 'Chart',
-      axesDefaults:{},
-      axes: {
-          xaxis: {
-              renderer:$.jqplot.DateAxisRenderer
-          },
-          yaxis: {
-              tickOptions:{ prefix: '$' }
-          }
-      },
-      series: [{renderer:$.jqplot.OHLCRenderer, rendererOptions:{candleStick:true}}],
-      cursor:{
-          zoom:false,
-          tooltipOffset: 10,
-          tooltipLocation: 'nw'
-      },
-      highlighter: {
-          showMarker:false,
-          tooltipAxes: 'xy',
-          yvalues: 5,
-          formatString:'<table class="jqplot-highlighter"> \
-          <tr><td>date:</td><td>%s</td></tr> \
-          <tr><td>open:</td><td>%s</td></tr> \
-          <tr><td>hi:</td><td>%s</td></tr> \
-          <tr><td>low:</td><td>%s</td></tr> \
-          <tr><td>close:</td><td>%s</td></tr> \
-          <tr><td>letter:</td><td>%s</td></tr></table>'
-      }
-    });
-});</script>
-
-<script class="code" type="text/javascript">$(document).ready(function(){ 
-    plot3 = $.jqplot('chart3',[hlc],{
-      title: 'Chart',
-      axesDefaults:{},
-      axes: {
-          xaxis: {
-              renderer:$.jqplot.DateAxisRenderer
-          },
-          yaxis: {
-              tickOptions:{ prefix: '$' }
-          }
-      },
-      series: [{renderer:$.jqplot.OHLCRenderer, rendererOptions:{}}],
-      cursor:{
-          zoom:true,
-          tooltipOffset: 10,
-          tooltipLocation: 'nw'
-      }
-    });
-});</script>
-
-<script class="code" type="text/javascript">$(document).ready(function(){ 
-    var catOHLC = [[1, 138.7, 139.68, 135.18, 135.4],
-    [2, 143.46, 144.66, 139.79, 140.02],
-    [3, 140.67, 143.56, 132.88, 142.44],
-    [4, 136.01, 139.5, 134.53, 139.48],
-    [5, 143.82, 144.56, 136.04, 136.97],
-    [6, 136.47, 146.4, 136, 144.67],
-    [7, 124.76, 135.9, 124.55, 135.81],
-    [8, 123.73, 129.31, 121.57, 122.5]];
-    
-    var ticks = ['Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun', 'Mon', 'Tue'];
-        
-    plot4 = $.jqplot('chart4',[catOHLC],{
-      axes: {
-          xaxis: {
-              renderer:$.jqplot.CategoryAxisRenderer,
-              ticks:ticks
-          },
-          yaxis: {
-              tickOptions:{ prefix: '$' }
-          }
-      },
-      series: [{renderer:$.jqplot.OHLCRenderer, rendererOptions:{candleStick:true}}]
-    });
-});</script>
-
-<!-- End example scripts -->
-
-<!-- Don't touch this! -->
-
-
-    <script class="include" type="text/javascript" src="../jquery.jqplot.min.js"></script>
-    <script type="text/javascript" src="syntaxhighlighter/scripts/shCore.min.js"></script>
-    <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushJScript.min.js"></script>
-    <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushXml.min.js"></script>
-<!-- End Don't touch this! -->
-
-<!-- Additional plugins go here -->
-
-    <script class="include" type="text/javascript" src="../plugins/jqplot.dateAxisRenderer.min.js"></script>
-    <script class="include" type="text/javascript" src="../plugins/jqplot.categoryAxisRenderer.min.js"></script>
-    <script class="include" type="text/javascript" src="../plugins/jqplot.ohlcRenderer.min.js"></script>
-    <script class="include" type="text/javascript" src="../plugins/jqplot.highlighter.min.js"></script>
-    <script class="include" type="text/javascript" src="../plugins/jqplot.cursor.min.js"></script>
-
-<!-- End additional plugins -->
-
-
-	</div>	
-	<script type="text/javascript" src="example.min.js"></script>
-
-</body>
-
-
-</html>
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/canvas-overlay.html b/wqflask/wqflask/static/packages/jqplot/examples/canvas-overlay.html
deleted file mode 100755
index c1ff2f00..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/canvas-overlay.html
+++ /dev/null
@@ -1,231 +0,0 @@
-<!DOCTYPE html>
-
-<html>
-<head>
-	
-	<title>Draw Lines on Plots - Canvas Overlay</title>
-
-    <link class="include" rel="stylesheet" type="text/css" href="../jquery.jqplot.min.css" />
-    <link rel="stylesheet" type="text/css" href="examples.min.css" />
-    <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shCoreDefault.min.css" />
-    <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shThemejqPlot.min.css" />
-  
-  <!--[if lt IE 9]><script language="javascript" type="text/javascript" src="../excanvas.js"></script><![endif]-->
-    <script class="include" type="text/javascript" src="../jquery.min.js"></script>
-    
-   
-</head>
-<body>
-    <div class="logo">
-   <div class="nav">
-   <a class="nav" href="../../../index.php"><span>&gt;</span>Home</a>
-   <a class="nav"  href="../../../docs/"><span>&gt;</span>Docs</a>
-   <a class="nav"  href="../../download/"><span>&gt;</span>Download</a>
-   <a class="nav" href="../../../info.php"><span>&gt;</span>Info</a>
-   <a class="nav"  href="../../../donate.php"><span>&gt;</span>Donate</a>
-   </div>
-</div>
-    <div class="example-content">
-
-    <div class="example-nav">
-  <a href="candlestick.html">Previous</a> <a href="./">Examples</a> <a href="cursor-highlighter.html">Next</a></div>
-
-      
-<!-- Example scripts go here -->
-
-        
-    <div id="chart1" style="margin-top:20px; margin-left:20px; width:400px; height:300px;"></div>
-    <button onclick="lineup()">Up</button>
-    <button onclick="linedown()">Down</button>
-
-<pre class="code prettyprint brush: js"></pre>
-
-    <div id="chart2" style="margin-top:20px; margin-left:20px; width:400px; height:300px;"></div>
-<pre class="code prettyprint brush: js"></pre>
-
-  
-  <script class="code" type="text/javascript">
-$(document).ready(function(){
-    var s1 = [[2009, 3.5], [2010, 4.4], [2011, 6.0], [2012, 9.1], [2013, 12.0], [2014, 14.4]];
-    
-    var grid = {
-        gridLineWidth: 1.5,
-        gridLineColor: 'rgb(235,235,235)',
-        drawGridlines: true
-    };
-    
-    plot1 = $.jqplot('chart1', [s1], {
-        series:[{
-            renderer:$.jqplot.BarRenderer,
-            rendererOptions: {
-                barWidth: 30
-            }
-        }],
-        axes: {
-            xaxis: {
-                renderer: $.jqplot.CategoryAxisRenderer
-            }
-        },
-        grid: grid,
-        canvasOverlay: {
-            show: true,
-            objects: [
-                {horizontalLine: {
-                    name: 'barney',
-                    y: 4,
-                    lineWidth: 6,
-                    color: 'rgb(100, 55, 124)',
-                    shadow: false
-                }},
-                {horizontalLine: {
-                    name: 'fred',
-                    y: 6,
-                    lineWidth: 12,
-                    xminOffset: '8px',
-                    xmaxOffset: '29px',
-                    color: 'rgb(50, 55, 30)',
-                    shadow: false
-                }},
-                {dashedHorizontalLine: {
-                    name: 'wilma',
-                    y: 8,
-                    lineWidth: 2,
-                    xOffset: '54',
-                    color: 'rgb(133, 120, 24)',
-                    shadow: false
-                }},
-                {horizontalLine: {
-                    name: 'pebbles',
-                    y: 10,
-                    lineWidth: 3,
-                    xOffset: 0,
-                    color: 'rgb(89, 198, 154)',
-                    shadow: false
-                }},
-                {dashedHorizontalLine: {
-                    name: 'bam-bam',
-                    y: 14,
-                    lineWidth: 5,
-                    dashPattern: [16, 12],
-                    lineCap: 'round',
-                    xOffset: '20',
-                    color: 'rgb(66, 98, 144)',
-                    shadow: false
-                }}
-            ]
-        }
-    });
-});
-
-function lineup() {
-    var co = plot1.plugins.canvasOverlay;
-    var line = co.get('fred');
-    line.options.y += 1;
-    co.draw(plot1);
-}
-
-function linedown() {
-    var co = plot1.plugins.canvasOverlay;
-    var line = co.get('fred');
-    line.options.y -= 1;
-    co.draw(plot1);
-}
-
-    </script>
-
-<script class="code" type="text/javascript">
-$(document).ready(function(){
-    var s2 = [[9, 3.5], [15, 4.4], [22, 6.0], [38, 9.1], [51, 12.0], [62, 14.4]];
-    
-    var grid = {
-        gridLineWidth: 1.5,
-        gridLineColor: 'rgb(235,235,235)',
-        drawGridlines: true
-    };
-    
-    plot2 = $.jqplot('chart2', [s2], {
-        grid: grid,
-        canvasOverlay: {
-            show: true,
-            objects: [
-                {verticalLine: {
-                    name: 'barney',
-                    x: 10,
-                    lineWidth: 6,
-                    color: 'rgb(100, 55, 124)',
-                    shadow: false
-                }},
-                {verticalLine: {
-                    name: 'fred',
-                    x: 15,
-                    lineWidth: 12,
-                    yminOffset: '8px',
-                    ymaxOffset: '29px',
-                    color: 'rgb(50, 55, 30)',
-                    shadow: false
-                }},
-                {dashedVerticalLine: {
-                    name: 'wilma',
-                    x: 20,
-                    lineWidth: 2,
-                    yOffset: '14',
-                    color: 'rgb(133, 120, 24)',
-                    shadow: false
-                }},
-                {verticalLine: {
-                    name: 'pebbles',
-                    x: 35,
-                    lineWidth: 3,
-                    yOffset: 0,
-                    lineCap: 'butt',
-                    color: 'rgb(89, 198, 154)',
-                    shadow: false
-                }},
-                {dashedVerticalLine: {
-                    name: 'bam-bam',
-                    x: 45,
-                    lineWidth: 5,
-                    dashPattern: [16, 12],
-                    lineCap: 'round',
-                    yOffset: '20px',
-                    color: 'rgb(66, 98, 144)',
-                    shadow: false
-                }}
-            ]
-        }
-    });
-    
-});
-
-
-</script>
-
-<!-- End example scripts -->
-
-<!-- Don't touch this! -->
-
-
-    <script class="include" type="text/javascript" src="../jquery.jqplot.min.js"></script>
-    <script type="text/javascript" src="syntaxhighlighter/scripts/shCore.min.js"></script>
-    <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushJScript.min.js"></script>
-    <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushXml.min.js"></script>
-<!-- End Don't touch this! -->
-
-<!-- Additional plugins go here -->
-
-  <script language="javascript" type="text/javascript" src="../plugins/jqplot.barRenderer.min.js"></script>
-  <script language="javascript" type="text/javascript" src="../plugins/jqplot.categoryAxisRenderer.min.js"></script>
-  <script language="javascript" type="text/javascript" src="../plugins/jqplot.canvasTextRenderer.min.js"></script>
-  <script language="javascript" type="text/javascript" src="../plugins/jqplot.canvasAxisTickRenderer.min.js"></script>
-  <script language="javascript" type="text/javascript" src="../plugins/jqplot.canvasOverlay.min.js"></script>
-
-<!-- End additional plugins -->
-
-
-	</div>	
-	<script type="text/javascript" src="example.min.js"></script>
-
-</body>
-
-
-</html>
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/colorpicker/README b/wqflask/wqflask/static/packages/jqplot/examples/colorpicker/README
deleted file mode 100755
index a0a0cc5a..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/colorpicker/README
+++ /dev/null
@@ -1,140 +0,0 @@
-jQuery.colorpicker v0.6

-

-Copyright (c) 2011 Martijn W. van der Lee

-Licensed under the MIT.

-

-Full-featured colorpicker for jQueryUI with full theming support.

-Most images from jPicker by Christopher T. Tillman.

-Sourcecode created from scratch by Martijn W. van der Lee.

-

-IE support; make sure you have a doctype defined, or the colorpicker will not display correctly.

-

-Options:

-	alpha:				false

-		Whether or not to show the inputs for alpha.

-

-	altAlpha:			true

-		Change the opacity of the altField element(s) according to the alpha

-		setting.

-

-	altField:			''

-		Change the background color of the elements specified in this element.

-

-	altOnChange:		true

-		If true, the altField element(s) are updated on every change, otherwise

-		only upon closing.

-

-	altProperties:		'background-color'

-		Comma-separated list of CSS properties to set color of in the altField.

-		The following properties are allowed, all others are ignored.

-			background-color

-			color

-			border-color

-			outline-color

-

-	autoOpen:			false

-		If true, the dialog opens automatically upon page load.

-

-	buttonColorize:		false

-		If a buttonimage is specified, change the background color of the

-		image when the color is changed.

-

-	buttonImage:		'images/ui-colorpicker.png'

-		Same as jQueryUI DatePicker.

-

-	buttonImageOnly:	false

-		Same as jQueryUI DatePicker.

-

-	buttonText:			'Color'

-		Same as jQueryUI DatePicker.

-

-	closeOnOutside:		true

-		Close the window when clicking outside the colorpicker display.

-

-	color:				'#00FF00'

-		Initial color. Formats recognized are:

-			#rrggbb

-			rrggbb (same as previous, but without the #)

-			rgb(rrr,ggg,bbb)

-			rgba(rrr,ggg,bbb,a.a)

-			rgb(rrr%,ggg%,bbb%)

-			rgba(rrr%,ggg%,bbb%,aaa%)

-			w3c-defined color name

-

-	duration:			'fast'

-		Same as jQueryUI DatePicker.

-

-	hsv:				true

-		Whether or not to show the inputs for HSV.

-

-	layout:				{ ... }

-		Set the position of elements in a table layout.

-		You could create any layout possible with HTML tables by specifying cell

-		position and size of each part.

-		@todo document how this works.

-

-	limit:				''

-		Limit the selectable colors to any of the predefined limits:

-				''			No limitations, allow 8bpp color for a palette of all

-							16 million colors.

-				'websafe'	Set of 216 colors composed of 00, 33, 66, 99, cc and ff

-							color channel values in #rrggbb.

-				'nibble'	4 bits per color, can be easily converted to #rgb format.

-							The palette is limited to 4096 colors.

-				'binary'	Allow only #00 or #ff as color channel values for primary

-							colors only; only 8 colors are available with this limit.

-

-	mode:				'h'

-		Determines the functionality of the map and bar components. Allowed values

-		are; 'h', 's', 'l', 'r', 'g', 'b' or 'a', for hue, saturation, luminosity,

-		red, green, blue and alpha respectively.

-

-	parts:				''

-		Determine which parts to display.

-		Use any of the preset names ('full', 'popup' or 'inline') or specify

-		an array of part names (i.e. ['header', 'map', 'bar', 'hex', 'inputs',

-		'preview', 'swatches', 'footer']). If an empty string is given, the parts

-		will be automatically chosen as preset 'popup' or 'inline' depending on

-		the context in which the colorpicker is used.

-

-	rgb:				true,		// Show RGB controls and modes

-		Whether or not to show the inputs for RGB.

-

-	showAnim:			'fadeIn'

-		Same as jQueryUI DatePicker.

-

-	showOn:				'focus'

-		Same as jQueryUI DatePicker.

-

-	showOptions:		{}

-		Same as jQueryUI DatePicker.

-

-	swatches:			null

-		'null' to show swatches of HTML colors or provide your own object

-		with colornames and [r,g,b] array.

-		For example { 'red': [ 255, 0, 0 ], 'blue': [0, 0, 255] }

-

-	title:				'Pick a color'

-		Title to display in the header.

-

-Events:

-	onClose:			null

-		Triggered when the popup is closed.

-

-	onSelect:			null

-		Triggered on each change, confirmation (click on OK button) and

-		cancellation (click on Cancel, outside window or window close button)

-		respectively.

-		Note that onSelect may be triggered in rapid succession when dragging the

-		mouse accross the map or bar and may be triggered without a change in color

-		upon specific user interactions.

-

-Methods:

-	open

-		Open the dialog

-

-	close

-		Close the dialog

-

-	destroy

-		Destroy the widget
\ No newline at end of file
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/colorpicker/TODO b/wqflask/wqflask/static/packages/jqplot/examples/colorpicker/TODO
deleted file mode 100755
index acc10df3..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/colorpicker/TODO
+++ /dev/null
@@ -1,14 +0,0 @@
-Make simple blog page + demo

-

-Post to...

-	http://wiki.jqueryui.com/w/page/12137750/ColorPicker

-		- screenshot

-		- link(s)

-		- check specs/requirements and add/fix them

-

-Colorwheel

-Triangle/wheel

-Related-colors swatching

-Configurable swatch layout

-	container-width/height, swatch-width/height

-	Autoscaling (table?)
\ No newline at end of file
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/colorpicker/images/bar-alpha.png b/wqflask/wqflask/static/packages/jqplot/examples/colorpicker/images/bar-alpha.png
deleted file mode 100755
index 2950daeb..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/colorpicker/images/bar-alpha.png
+++ /dev/null
Binary files differdiff --git a/wqflask/wqflask/static/packages/jqplot/examples/colorpicker/images/bar-opacity.png b/wqflask/wqflask/static/packages/jqplot/examples/colorpicker/images/bar-opacity.png
deleted file mode 100755
index e42ad081..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/colorpicker/images/bar-opacity.png
+++ /dev/null
Binary files differdiff --git a/wqflask/wqflask/static/packages/jqplot/examples/colorpicker/images/bar-pointer.png b/wqflask/wqflask/static/packages/jqplot/examples/colorpicker/images/bar-pointer.png
deleted file mode 100755
index 6e980cfa..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/colorpicker/images/bar-pointer.png
+++ /dev/null
Binary files differdiff --git a/wqflask/wqflask/static/packages/jqplot/examples/colorpicker/images/bar.png b/wqflask/wqflask/static/packages/jqplot/examples/colorpicker/images/bar.png
deleted file mode 100755
index 80eb2bbe..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/colorpicker/images/bar.png
+++ /dev/null
Binary files differdiff --git a/wqflask/wqflask/static/packages/jqplot/examples/colorpicker/images/map-opacity.png b/wqflask/wqflask/static/packages/jqplot/examples/colorpicker/images/map-opacity.png
deleted file mode 100755
index 6756cee6..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/colorpicker/images/map-opacity.png
+++ /dev/null
Binary files differdiff --git a/wqflask/wqflask/static/packages/jqplot/examples/colorpicker/images/map-pointer.png b/wqflask/wqflask/static/packages/jqplot/examples/colorpicker/images/map-pointer.png
deleted file mode 100755
index 64992968..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/colorpicker/images/map-pointer.png
+++ /dev/null
Binary files differdiff --git a/wqflask/wqflask/static/packages/jqplot/examples/colorpicker/images/map.png b/wqflask/wqflask/static/packages/jqplot/examples/colorpicker/images/map.png
deleted file mode 100755
index 853d38c6..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/colorpicker/images/map.png
+++ /dev/null
Binary files differdiff --git a/wqflask/wqflask/static/packages/jqplot/examples/colorpicker/images/preview-opacity.png b/wqflask/wqflask/static/packages/jqplot/examples/colorpicker/images/preview-opacity.png
deleted file mode 100755
index 0dd9a2f8..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/colorpicker/images/preview-opacity.png
+++ /dev/null
Binary files differdiff --git a/wqflask/wqflask/static/packages/jqplot/examples/colorpicker/images/ui-colorpicker.png b/wqflask/wqflask/static/packages/jqplot/examples/colorpicker/images/ui-colorpicker.png
deleted file mode 100755
index e244c689..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/colorpicker/images/ui-colorpicker.png
+++ /dev/null
Binary files differdiff --git a/wqflask/wqflask/static/packages/jqplot/examples/colorpicker/index.html b/wqflask/wqflask/static/packages/jqplot/examples/colorpicker/index.html
deleted file mode 100755
index a3f14211..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/colorpicker/index.html
+++ /dev/null
@@ -1,85 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

-<html>

-    <head>

-        <title>jqcp</title>

-		<!-- jQuery/jQueryUI (hosted) -->

-		<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.js"></script>

-		<script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.16/jquery-ui.js"></script>

-		<script src="http://jqueryui.com/themeroller/themeswitchertool/"></script>

-		<link href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.16/themes/ui-lightness/jquery-ui.css" rel="stylesheet" type="text/css"/>

-		<!--link href="aristo/Aristo.css" rel="stylesheet" type="text/css"/-->

-        <style>

-			body {

-				font-family:	'Segoe UI', Verdana, Arial, Helvetica, sans-serif;

-				font-size:		62.5%;

-			}

-

-			#switcher {

-				float: 			right;

-				display: 		inline-block;

-			}

-        </style>

-		<script src="jquery.colorpicker.js"></script>

-		<link href="jquery.colorpicker.css" rel="stylesheet" type="text/css"/>

-        <script>

-           	$( function() {

-				$('#switcher').themeswitcher();

-

-                $('#cp1').colorpicker({

-					onClose: function(hex, rgba, inst) {

-

-							},

-					onSelect: function(hex, rgba, inst) {

-								//console.log(hex);

-								//console.log(rgba);

-								//console.log(inst);

-							},

-					showOn: 'both',

-					showHeader: true,

-					showSwatches: true,

-					buttonColorize: true,

-					altField: '.cp1-alt',

-					altProperties: 'background-color,color'

-				});

-

-                $('#cp2').colorpicker({

-					alpha: true,

-					showButtonPanel: true

-				});

-

-                var cpb = $('#cp-buttons').colorpicker({

-					showOn: '',

-					parts: ['bar', 'map']

-				});

-				$('#cp-button-open').click( function() {

-					cpb.colorpicker('open');

-				});

-				$('#cp-button-close').click( function() {

-					cpb.colorpicker('close');

-				});

-				$('#cp-button-disable').click( function() {

-					cpb.colorpicker('disable');

-				});

-            });

-        </script>

-    </head>

-    <body>

-        <div id="switcher"></div>

-

-        Color: <input type="color" id="cp1" value="ff9900"/>

-		<div class="cp1-alt" style="border: 1px inset; width: 180px; height: 60px;">

-			<div style=" background-color: white; border: 1px solid black; margin: 5px; padding: 5px; font-size: 20px; font-weight: bold;">Text</div>

-		</div>

-

-		<hr/>

-

-		Inline:<div id="cp2"></div>

-

-		<hr/>

-

-		Activated by buttons: <input type="color" id="cp-buttons" value="927abc"/>

-		<br/><button id="cp-button-open">Open</button>

-		<br/><button id="cp-button-close">Close</button>

-		<br/><button id="cp-button-disable">Disable</button>

-    </body>

-</html>

diff --git a/wqflask/wqflask/static/packages/jqplot/examples/colorpicker/jquery.colorpicker.css b/wqflask/wqflask/static/packages/jqplot/examples/colorpicker/jquery.colorpicker.css
deleted file mode 100755
index 4e61a526..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/colorpicker/jquery.colorpicker.css
+++ /dev/null
@@ -1,129 +0,0 @@
-.ui-colorpicker {

-    display: inline-block;

-	width: auto;

-}

-

-.ui-colorpicker-inline {

-    position: static;

-}

-

-.ui-colorpicker .ui-colorpicker-buttonpane { background-image: none; margin: .7em 0 0 0; padding:0 .2em; border-left: 0; border-right: 0; border-bottom: 0; }

-.ui-colorpicker .ui-colorpicker-buttonpane button { float: right; margin: .5em .2em .4em; cursor: pointer; padding: .2em .6em .3em .6em; width:auto; overflow:visible; }

-.ui-colorpicker .ui-colorpicker-buttonpane button.ui-colorpicker-current { float:left; }

-

-.ui-colorpicker table {

-    font-size: 100%; /* Reset browser table font-size */

-	margin: 0;

-}

-

-.ui-colorpicker table td {

-	vertical-align: top;

-}

-

-.ui-colorpicker-padding-left {

-	padding-left: 10px;

-}

-.ui-colorpicker-padding-top {

-	padding-top: 10px;

-}

-

-.ui-colorpicker-border {

-	border: 1px inset;

-    display: inline-block;

-}

-

-/* Bar & map */

-#ui-colorpicker-map > *,

-#ui-colorpicker-bar > * {

-    position: absolute;

-	cursor: crosshair;

-}

-

-#ui-colorpicker-map-pointer,

-#ui-colorpicker-bar-pointer {

-    position: absolute;

-}

-/* Map */

-#ui-colorpicker-map,

-#ui-colorpicker-map > * {

-    display: block;

-	width: 256px;

-	height: 256px;

-	overflow: hidden;

-}

-

-#ui-colorpicker-map-layer-1,

-#ui-colorpicker-map-layer-2 { background: url(images/map.png) no-repeat; }

-#ui-colorpicker-map-layer-alpha { background: url(images/map-opacity.png); }

-#ui-colorpicker-map-pointer { display: inline-block; width: 15px; height: 15px; background: url(images/map-pointer.png) no-repeat; }

-

-

-/* Bar */

-#ui-colorpicker-bar,

-#ui-colorpicker-bar > * {

-    display: block;

-    width: 20px;

-    height: 256px;

-	overflow: hidden;

-    background-repeat: repeat-x;

-}

-

-#ui-colorpicker-bar-layer-1,

-#ui-colorpicker-bar-layer-2,

-#ui-colorpicker-bar-layer-3,

-#ui-colorpicker-bar-layer-4 { background: url(images/bar.png) repeat-x; }

-#ui-colorpicker-bar-layer-alpha { background: url(images/bar-opacity.png); }

-#ui-colorpicker-bar-layer-alphabar { background: url(images/bar-alpha.png); }

-#ui-colorpicker-bar-pointer { display: inline-block; width: 20px; height: 7px; background: url(images/bar-pointer.png) no-repeat; }

-

-/* Preview */

-#ui-colorpicker-preview {

-	text-align: center;

-}

-

-#ui-colorpicker-preview-initial {

-    cursor: pointer;

-}

-

-#ui-colorpicker-preview-initial,

-#ui-colorpicker-preview-current {

-    width: 50px;

-    height: 20px;

-    display: inline-block;

-}

-

-#ui-colorpicker-preview-initial-alpha,

-#ui-colorpicker-preview-current-alpha {

-    width: 50px;

-    height: 20px;

-    display: inline-block;

-	background: url(images/preview-opacity.png) repeat;

-}

-

-/* Inputs */

-#ui-colorpicker-inputs label {

-    width: 1.5em;

-    display: inline-block;

-}

-

-/* Hex */

-#ui-colorpicker-hex {

-	text-align: center;

-}

-

-/* Swatches */

-#ui-colorpicker-swatches {

-	width: 84px;

-	height: 256px;

-	overflow: auto;

-	background-color: #f8f8f8;

-}

-

-.ui-colorpicker-swatch {

-	cursor: pointer;

-	float: left;

-	width: 11px;

-	height: 11px;

-    border-right: 1px solid black;

-    border-bottom: 1px solid black;

-}

diff --git a/wqflask/wqflask/static/packages/jqplot/examples/colorpicker/jquery.colorpicker.js b/wqflask/wqflask/static/packages/jqplot/examples/colorpicker/jquery.colorpicker.js
deleted file mode 100755
index 6ad9a564..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/colorpicker/jquery.colorpicker.js
+++ /dev/null
@@ -1,1654 +0,0 @@
-/*jslint devel: true, bitwise: true, regexp: true, browser: true, confusion: true, unparam: true, eqeq: true, white: true, nomen: true, plusplus: true, maxerr: 50, indent: 4 */

-/*globals jQuery */

-

-/*

- * ColorPicker v0.6

- *

- * Copyright (c) 2011 Martijn W. van der Lee

- * Licensed under the MIT.

- *

- * Full-featured colorpicker for jQueryUI with full theming support.

- * Most images from jPicker by Christopher T. Tillman.

- * Sourcecode created from scratch by Martijn W. van der Lee.

- *

- * @todo Custom buttons ->none" -> special "none" state?

- * @todo Undo/redo memory?

- * @todo Small size variant (128x128)

- * @todo Distance between rgb/hsv/a options

- * @todo Force hex correction (limit and padding) upon done

- * @todo if limit, correct initial color upon open

- * @todo Shared swatches; cookies/session/global

- * @todo Language files: Done/Color/Pick a color/H/S/V/R/G/B/A/color swatches

- * @todo isRTL? What to RTL, besides button?

- * @todo Implement 'disabled' option

- * @todo Include header/footer in layout?

- * @todo Split inputs into rgb/hsv/a parts

- * @todo Modal popup mode

- */

-

-(function ($) {

-	"use strict";

-

-	var _container_popup = '<div class="ui-colorpicker ui-colorpicker-dialog ui-dialog ui-widget ui-widget-content ui-corner-all colorpicker-container" style="display: none;"></div>',

-

-		_container_inline = '<div class="ui-colorpicker ui-colorpicker-inline ui-dialog ui-widget ui-widget-content ui-corner-all"></div>',

-

-		_parts_lists = {

-			'full':		['header', 'map', 'bar', 'hex', 'inputs', 'preview', 'swatches', 'footer'],

-			'popup':	['map', 'bar', 'hex', 'inputs', 'preview', 'footer'],

-			'inline':	['map', 'bar', 'hex', 'inputs', 'preview']

-		},

-

-		_colors = {

-			'Black': [0x00, 0x00, 0x00],

-			'DimGray': [0x69, 0x69, 0x69],

-			'Gray': [0x80, 0x80, 0x80],

-			'DarkGray': [0xA9, 0xA9, 0xA9],

-			'Silver': [0xC0, 0xC0, 0xC0],

-			'LightGrey': [0xD3, 0xD3, 0xD3],

-			'Gainsboro': [0xDC, 0xDC, 0xDC],

-			'WhiteSmoke': [0xF5, 0xF5, 0xF5],

-			'White': [0xFF, 0xFF, 0xFF],

-			'RosyBrown': [0xBC, 0x8F, 0x8F],

-			'IndianRed': [0xCD, 0x5C, 0x5C],

-			'Brown': [0xA5, 0x2A, 0x2A],

-			'FireBrick': [0xB2, 0x22, 0x22],

-			'LightCoral': [0xF0, 0x80, 0x80],

-			'Maroon': [0x80, 0x00, 0x00],

-			'DarkRed': [0x8B, 0x00, 0x00],

-			'Red': [0xFF, 0x00, 0x00],

-			'Snow': [0xFF, 0xFA, 0xFA],

-			'Salmon': [0xFA, 0x80, 0x72],

-			'MistyRose': [0xFF, 0xE4, 0xE1],

-			'Tomato': [0xFF, 0x63, 0x47],

-			'DarkSalmon': [0xE9, 0x96, 0x7A],

-			'OrangeRed': [0xFF, 0x45, 0x00],

-			'Coral': [0xFF, 0x7F, 0x50],

-			'LightSalmon': [0xFF, 0xA0, 0x7A],

-			'Sienna': [0xA0, 0x52, 0x2D],

-			'Seashell': [0xFF, 0xF5, 0xEE],

-			'Chocolate': [0xD2, 0x69, 0x1E],

-			'SaddleBrown': [0x8B, 0x45, 0x13],

-			'SandyBrown': [0xF4, 0xA4, 0x60],

-			'PeachPuff': [0xFF, 0xDA, 0xB9],

-			'Peru': [0xCD, 0x85, 0x3F],

-			'Linen': [0xFA, 0xF0, 0xE6],

-			'DarkOrange': [0xFF, 0x8C, 0x00],

-			'Bisque': [0xFF, 0xE4, 0xC4],

-			'BurlyWood': [0xDE, 0xB8, 0x87],

-			'Tan': [0xD2, 0xB4, 0x8C],

-			'AntiqueWhite': [0xFA, 0xEB, 0xD7],

-			'NavajoWhite': [0xFF, 0xDE, 0xAD],

-			'BlanchedAlmond': [0xFF, 0xEB, 0xCD],

-			'PapayaWhip': [0xFF, 0xEF, 0xD5],

-			'Orange': [0xFF, 0xA5, 0x00],

-			'Moccasin': [0xFF, 0xE4, 0xB5],

-			'Wheat': [0xF5, 0xDE, 0xB3],

-			'OldLace': [0xFD, 0xF5, 0xE6],

-			'FloralWhite': [0xFF, 0xFA, 0xF0],

-			'Goldenrod': [0xDA, 0xA5, 0x20],

-			'DarkGoldenrod': [0xB8, 0x86, 0x0B],

-			'Cornsilk': [0xFF, 0xF8, 0xDC],

-			'Gold': [0xFF, 0xD7, 0x00],

-			'PaleGoldenrod': [0xEE, 0xE8, 0xAA],

-			'Khaki': [0xF0, 0xE6, 0x8C],

-			'LemonChiffon': [0xFF, 0xFA, 0xCD],

-			'DarkKhaki': [0xBD, 0xB7, 0x6B],

-			'Beige': [0xF5, 0xF5, 0xDC],

-			'LightGoldenrodYellow': [0xFA, 0xFA, 0xD2],

-			'Olive': [0x80, 0x80, 0x00],

-			'Yellow': [0xFF, 0xFF, 0x00],

-			'LightYellow': [0xFF, 0xFF, 0xE0],

-			'Ivory': [0xFF, 0xFF, 0xF0],

-			'OliveDrab': [0x6B, 0x8E, 0x23],

-			'YellowGreen': [0x9A, 0xCD, 0x32],

-			'DarkOliveGreen': [0x55, 0x6B, 0x2F],

-			'GreenYellow': [0xAD, 0xFF, 0x2F],

-			'LawnGreen': [0x7C, 0xFC, 0x00],

-			'Chartreuse': [0x7F, 0xFF, 0x00],

-			'DarkSeaGreen': [0x8F, 0xBC, 0x8F],

-			'ForestGreen': [0x22, 0x8B, 0x22],

-			'LimeGreen': [0x32, 0xCD, 0x32],

-			'LightGreen': [0x90, 0xEE, 0x90],

-			'PaleGreen': [0x98, 0xFB, 0x98],

-			'DarkGreen': [0x00, 0x64, 0x00],

-			'Green': [0x00, 0x80, 0x00],

-			'Lime': [0x00, 0xFF, 0x00],

-			'Honeydew': [0xF0, 0xFF, 0xF0],

-			'MediumSeaGreen': [0x3C, 0xB3, 0x71],

-			'SeaGreen': [0x2E, 0x8B, 0x57],

-			'SpringGreen': [0x00, 0xFF, 0x7F],

-			'MintCream': [0xF5, 0xFF, 0xFA],

-			'MediumSpringGreen': [0x00, 0xFA, 0x9A],

-			'MediumAquamarine': [0x66, 0xCD, 0xAA],

-			'Aquamarine': [0x7F, 0xFF, 0xD4],

-			'Turquoise': [0x40, 0xE0, 0xD0],

-			'LightSeaGreen': [0x20, 0xB2, 0xAA],

-			'MediumTurquoise': [0x48, 0xD1, 0xCC],

-			'DarkSlateGray': [0x2F, 0x4F, 0x4F],

-			'PaleTurquoise': [0xAF, 0xEE, 0xEE],

-			'Teal': [0x00, 0x80, 0x80],

-			'DarkCyan': [0x00, 0x8B, 0x8B],

-			'DarkTurquoise': [0x00, 0xCE, 0xD1],

-			'Aqua': [0x00, 0xFF, 0xFF],

-			'Cyan': [0x00, 0xFF, 0xFF],

-			'LightCyan': [0xE0, 0xFF, 0xFF],

-			'Azure': [0xF0, 0xFF, 0xFF],

-			'CadetBlue': [0x5F, 0x9E, 0xA0],

-			'PowderBlue': [0xB0, 0xE0, 0xE6],

-			'LightBlue': [0xAD, 0xD8, 0xE6],

-			'DeepSkyBlue': [0x00, 0xBF, 0xFF],

-			'SkyBlue': [0x87, 0xCE, 0xEB],

-			'LightSkyBlue': [0x87, 0xCE, 0xFA],

-			'SteelBlue': [0x46, 0x82, 0xB4],

-			'AliceBlue': [0xF0, 0xF8, 0xFF],

-			'DodgerBlue': [0x1E, 0x90, 0xFF],

-			'SlateGray': [0x70, 0x80, 0x90],

-			'LightSlateGray': [0x77, 0x88, 0x99],

-			'LightSteelBlue': [0xB0, 0xC4, 0xDE],

-			'CornflowerBlue': [0x64, 0x95, 0xED],

-			'RoyalBlue': [0x41, 0x69, 0xE1],

-			'MidnightBlue': [0x19, 0x19, 0x70],

-			'Lavender': [0xE6, 0xE6, 0xFA],

-			'Navy': [0x00, 0x00, 0x80],

-			'DarkBlue': [0x00, 0x00, 0x8B],

-			'MediumBlue': [0x00, 0x00, 0xCD],

-			'Blue': [0x00, 0x00, 0xFF],

-			'GhostWhite': [0xF8, 0xF8, 0xFF],

-			'DarkSlateBlue': [0x48, 0x3D, 0x8B],

-			'SlateBlue': [0x6A, 0x5A, 0xCD],

-			'MediumSlateBlue': [0x7B, 0x68, 0xEE],

-			'MediumPurple': [0x93, 0x70, 0xDB],

-			'BlueViolet': [0x8A, 0x2B, 0xE2],

-			'Indigo': [0x4B, 0x00, 0x82],

-			'DarkOrchid': [0x99, 0x32, 0xCC],

-			'DarkViolet': [0x94, 0x00, 0xD3],

-			'MediumOrchid': [0xBA, 0x55, 0xD3],

-			'Thistle': [0xD8, 0xBF, 0xD8],

-			'Plum': [0xDD, 0xA0, 0xDD],

-			'Violet': [0xEE, 0x82, 0xEE],

-			'Purple': [0x80, 0x00, 0x80],

-			'DarkMagenta': [0x8B, 0x00, 0x8B],

-			'Magenta': [0xFF, 0x00, 0xFF],

-			'Fuchsia': [0xFF, 0x00, 0xFF],

-			'Orchid': [0xDA, 0x70, 0xD6],

-			'MediumVioletRed': [0xC7, 0x15, 0x85],

-			'DeepPink': [0xFF, 0x14, 0x93],

-			'HotPink': [0xFF, 0x69, 0xB4],

-			'PaleVioletRed': [0xDB, 0x70, 0x93],

-			'LavenderBlush': [0xFF, 0xF0, 0xF5],

-			'Crimson': [0xDC, 0x14, 0x3C],

-			'Pink': [0xFF, 0xC0, 0xCB],

-			'LightPink': [0xFF, 0xB6, 0xC1]

-		};

-

-	$.widget("vanderlee.colorpicker", {

-		options: {

-			alpha:				false,		// Show alpha controls and mode

-			altAlpha:			true,		// change opacity of altField as well?

-			altField:			'',			// selector for DOM elements which change background color on change.

-			altOnChange:		true,		// true to update on each change, false to update only on close.

-			altProperties:		'background-color',	// comma separated list of any of 'background-color', 'color', 'border-color', 'outline-color'

-			autoOpen:			false,		// Open dialog automatically upon creation

-			buttonColorize:		false,

-			buttonImage:		'images/ui-colorpicker.png',

-			buttonImageOnly:	false,

-			buttonText:			'Color',	// Text on the button and/or title of button image.

-			closeOnOutside:		true,		// Close the dialog when clicking outside the dialog (not for inline)

-			color:				'#00FF00',	// Initial color (for inline only)

-			duration:			'fast',

-			hsv:				true,		// Show HSV controls and modes

-			layout: {

-				map:		[0, 0, 1, 3],	// Left, Top, Width, Height (in table cells).

-				bar:		[1, 0, 1, 3],

-				preview:	[2, 0, 1, 1],

-				inputs:		[2, 1, 1, 1],

-				hex:		[2, 2, 1, 1],

-				swatches:	[3, 0, 1, 3]

-			},

-			limit:				'',			// Limit color "resolution": '', 'websafe', 'nibble', 'binary'

-			mode:				'h',		// Initial editing mode, h, s, v, r, g, b or a

-			parts:				'',

-			rgb:				true,		// Show RGB controls and modes

-			showAnim:			'fadeIn',

-			showOn:				'focus',	// 'focus', 'button', 'both'

-			showOptions:		{},

-			swatches:			null,

-			title:				'Pick a color',

-

-			onClose:			null,

-			onSelect:			null

-		},

-

-		_create: function () {

-			var self = this;

-

-			self.opened		= false;

-			self.generated	= false;

-			self.inline		= false;

-			self.changed	= false;

-

-			self.dialog		= null;

-			self.button		= null;

-			self.image		= null;

-

-			self.mode		= self.options.mode;

-

-			if (self.options.swatches === null) {

-				self.options.swatches = _colors;

-			}

-

-			if (this.element[0].nodeName.toLowerCase() === 'input') {

-				if (self.element.val()) {

-					self.options.color = self.element.val();

-				}

-				self._loadColor();

-

-				$('body').append(_container_popup);

-				self.dialog = $('.ui-colorpicker:last');

-

-				// Click outside/inside

-				$(document).mousedown(function (event) {

-					if (!self.opened || event.target === self.element[0]) {

-						return;

-					}

-

-					// Check if clicked on any part of dialog

-					if ($(event.target).parents('.ui-colorpicker').length > 0) {

-						self.element.blur();	// inside window!

-						return;

-					}

-

-					// Check if clicked on button

-					var p,

-						parents = $(event.target).parents();

-					for (p in parents) {

-						if (self.button !== null && parents[p] === self.button[0]) {

-							return;

-						}

-					}

-

-					// no closeOnOutside

-					if (!self.options.closeOnOutside) {

-						return;

-					}

-

-					self.close();

-				});

-

-				if (self.options.showOn === 'focus' || self.options.showOn === 'both') {

-					self.element.focus(function () {

-						self.open();

-					});

-				}

-				if (self.options.showOn === 'button' || self.options.showOn === 'both') {

-					if (self.options.buttonImage !== '') {

-						self.image = $('<img/>').attr({

-							'src':		self.options.buttonImage,

-							'alt':		self.options.buttonText,

-							'title':	self.options.buttonText

-						});

-

-						if (self.options.buttonColorize) {

-							self.image.css('background-color', self.color.toCSS());

-						}

-					}

-

-					if (self.options.buttonImageOnly && self.image) {

-						self.button = self.image;

-					} else {

-						self.button = $('<button type="button"></button>').html(self.image || self.options.buttonText).button();

-						self.image = self.image ? $('img', self.button).first() : null;

-					}

-					self.button.insertAfter(self.element).click(function () {

-						self[self.opened ? 'close' : 'open']();

-					});

-				}

-

-				if (self.options.autoOpen) {

-					self.open();

-				}

-

-				self.element.keydown(function (event) {

-					if (event.keyCode === 9) {

-						self.close();

-					}

-				});

-

-				self.element.keyup(function (event) {

-					var rgb = self._parseHex(self.element.val());

-					if (rgb) {

-						self.color = (rgb === false ? new self.Color() : new self.Color(rgb[0], rgb[1], rgb[2]));

-						self._change();

-					}

-				});

-			} else {

-				self.inline = true;

-

-				$(this.element).html(_container_inline);

-				self.dialog = $('.ui-colorpicker', this.element);

-

-				self._generate();

-

-				self.opened = true;

-			}

-

-			return this;

-		},

-

-		destroy: function() {

-			this.element.unbind();

-

-			if (this.image !== null) {

-				this.image.remove();

-			}

-

-			if (this.button !== null) {

-				this.button.remove();

-			}

-

-			if (this.dialog !== null) {

-				this.dialog.remove();

-			}

-		},

-

-		_setOption: function(key, value){

-			var self = this;

-

-			switch (key) {

-			case "disabled":

-				if (value) {

-					self.dialog.addClass('ui-colorpicker-disabled');

-				} else {

-					self.dialog.removeClass('ui-colorpicker-disabled');

-				}

-				break;

-			}

-

-			$.Widget.prototype._setOption.apply(self, arguments);

-		},

-

-		_setAltField: function () {

-			if (this.options.altField && this.options.altProperties) {

-				var index,

-					property,

-					properties = this.options.altProperties.split(',');

-

-				for (index in properties) {

-					property = $.trim(properties[index]);

-					switch (property) {

-						case 'color':

-						case 'background-color':

-						case 'outline-color':

-						case 'border-color':

-							$(this.options.altField).css(property, this.color.toCSS());

-							break;

-					}

-				}

-

-				if (this.options.altAlpha) {

-					$(this.options.altField).css('opacity', this.color.a);

-				}

-			}

-		},

-

-		_loadColor: function () {

-			var rgb = this._parseColor(this.options.color);	//@todo

-			this.color = (rgb === false ? new this.Color() : new this.Color(rgb[0], rgb[1], rgb[2]));

-			this.currentColor = $.extend({}, this.color);

-

-			this._setAltField();

-		},

-

-		_generate: function () {

-			var self = this,

-				index,

-				part,

-				parts_list;

-

-			// Determine the parts to include in this colorpicker

-			if (typeof self.options.parts === 'string') {

-				if (self.options.parts in _parts_lists) {

-					parts_list = _parts_lists[self.options.parts];

-				} else {

-					// automatic

-					parts_list = _parts_lists[self.inline ? 'inline' : 'popup'];

-				}

-			} else {

-				parts_list = self.options.parts;

-			}

-

-			// Add any parts to the internal parts list

-			self.parts = {};

-			for (index in parts_list) {

-				part = parts_list[index];

-				if (part in self._parts) {

-					self.parts[part] = new self._parts[part](self);

-				}

-			}

-

-

-			if (typeof this.color !== "object" || this.color.constructor !== this.Color) {

-				self._loadColor();

-			}

-

-			if (!self.generated) {

-				var layout_parts = [];

-

-				for (index in self.options.layout) {

-					if (index in self.parts) {

-						layout_parts.push({

-							part: index,

-							pos: self.options.layout[index]

-						});

-					}

-				}

-

-				$(self._layoutTable(layout_parts, function(cell, x, y) {

-					var classes = [];

-

-					if (x > 0) {

-						classes.push('ui-colorpicker-padding-left');

-					}

-

-					if (y > 0) {

-						classes.push('ui-colorpicker-padding-top');

-					}

-

-					return '<td id="ui-colorpicker-' + cell.part + '-container"'

-						+ (cell.pos[2] > 1 ? ' colspan="' + cell.pos[2] + '"' : '')

-						+ (cell.pos[3] > 1 ? ' rowspan="' + cell.pos[3] + '"' : '')

-						+ (classes.length > 0 ? ' class="' + classes.join(' ') + '"' : '')

-						+ ' valign="top"></td>';

-				})).appendTo(self.dialog).addClass('ui-dialog-content ui-widget-content');

-

-				self._initAllParts();

-				self._generateAllParts();

-				self.generated = true;

-			}

-		},

-

-		_layoutTable: function(layout, callback) {

-			var layout = layout.sort(function(a, b) {

-					if (a.pos[1] == b.pos[1]) {

-						return a.pos[0] - b.pos[0];

-					}

-					return a.pos[1] - b.pos[1];

-				}),

-				bitmap,

-				x,

-				y,

-				width, height,

-				columns, rows,

-				index,

-				cell,

-				html;

-

-			// Determine dimensions of the table

-			width = 0;

-			height = 0;

-			for (index in layout) {

-				width = Math.max(width, layout[index].pos[0] + layout[index].pos[2]);

-				height = Math.max(height, layout[index].pos[1] + layout[index].pos[3]);

-			}

-

-			// Initialize bitmap

-			bitmap = [];

-			for (x = 0; x < width; ++x) {

-				bitmap.push(new Array(height));

-			}

-

-			// Mark rows and columns which have layout assigned

-			rows	= new Array(height);

-			columns = new Array(width);

-			for (index in layout) {

-				// mark columns

-				for (x = 0; x < layout[index].pos[2]; x += 1) {

-					columns[layout[index].pos[0] + x] = true;

-				}

-				for (y = 0; y < layout[index].pos[3]; y += 1) {

-					rows[layout[index].pos[1] + y] = true;

-				}

-			}

-

-			// Generate the table

-			html = '';

-			cell = layout[index = 0];

-			for (y = 0; y < height; ++y) {

-				html += '<tr>';

-				for (x = 0; x < width;) {

-					if (cell !== undefined && x == cell.pos[0] && y == cell.pos[1]) {

-						// Create a "real" cell

-						var w,

-							h;

-

-						html += callback(cell, x, y);

-

-						for (h = 0; h < cell.pos[3]; h +=1) {

-							for (w = 0; w < cell.pos[2]; w +=1) {

-								bitmap[x + w][y + h] = true;

-							}

-						}

-

-						x += cell.pos[2];

-						cell = layout[++index];

-					} else {

-						// Fill in the gaps

-						var colspan = 0;

-						var walked = false;

-

-						while (x < width && bitmap[x][y] === undefined && (cell === undefined || y < cell.pos[1] || (y == cell.pos[1] && x < cell.pos[0]))) {

-							if (columns[x] === true) {

-								colspan += 1;

-							}

-							walked = true;

-							x += 1;

-						}

-

-						if (colspan > 0) {

-							html += '<td colspan="'+colspan+'"></td>';

-						} else if (!walked) {

-							x += 1;

-						}

-					}

-				}

-				html += '</tr>';

-			}

-

-			return '<table cellspacing="0" cellpadding="0" border="0"><tbody>' + html + '</tbody></table>';

-		},

-

-		_effectGeneric: function (show, slide, fade, callback) {

-			var self = this;

-

-			if ($.effects && $.effects[self.options.showAnim]) {

-				self.dialog[show](self.options.showAnim, self.options.showOptions, self.options.duration, callback);

-			} else {

-				self.dialog[(self.options.showAnim === 'slideDown' ?

-								slide

-							:	(self.options.showAnim === 'fadeIn' ?

-									fade

-								:	show))]((self.options.showAnim ? self.options.duration : null), callback);

-				if (!self.options.showAnim || !self.options.duration) {

-					callback();

-				}

-			}

-		},

-

-		_effectShow: function (callback) {

-			this._effectGeneric('show', 'slideDown', 'fadeIn', callback);

-		},

-

-		_effectHide: function (callback) {

-			this._effectGeneric('hide', 'slideUp', 'fadeOut', callback);

-		},

-

-		open: function () {

-			if (!this.opened) {

-				this._generate();

-

-				var offset = this.element.offset(),

-					x = offset.left,

-					y = offset.top + this.element.outerHeight();

-				x -= Math.max(0, (x + this.dialog.width()) - $(window).width() + 20);

-				y -= Math.max(0, (y + this.dialog.height()) - $(window).height() + 20);

-				this.dialog.css({'left': x, 'top': y});

-

-				this._effectShow();

-				this.opened = true;

-			}

-		},

-

-		close: function () {

-			var self = this;

-

-			this._setAltField();

-

-			self.currentColor	= $.extend({}, self.color);

-			self.changed		= false;

-

-			// tear down the interface

-			self._effectHide(function () {

-				self.dialog.empty();

-				self.generated	= false;

-

-				self.opened		= false;

-				self._callback(self.options.onClose);

-			});

-		},

-

-		_callback: function (f) {

-			var self = this;

-

-			if (f instanceof Function) {

-				f(self.color.toCSS(), {

-					r: self.color.r,

-					g: self.color.g,

-					b: self.color.b,

-					a: self.color.a

-				}, self);

-			}

-		},

-

-		_generateAllParts: function () {

-			$.each(this.parts, function (index, part) {

-				part.generate();

-			});

-		},

-

-		_initAllParts: function () {

-			$.each(this.parts, function (index, part) {

-				part.init();

-			});

-		},

-

-		_change: function () {

-			this.changed = true;

-

-			switch (this.options.limit) {

-			case 'websafe':

-				this.color.limit(6);

-				break;

-

-			case 'nibble':

-				this.color.limit(16);

-				break;

-

-			case 'binary':

-				this.color.limit(2);

-				break;

-			}

-

-			// update colors

-			if (!this.inline) {

-				if (!this.color.equals(this._parseHex(this.element.val()))) {

-					this.element.val(this.color.toHex());

-				}

-

-				if (this.image && this.options.buttonColorize) {

-					this.image.css('background-color', this.color.toCSS());

-				}

-

-				if (this.options.altOnChange) {

-					this._setAltField();

-				}

-			}

-

-			// callback

-			this._callback(this.options.onSelect);

-

-			$.each(this.parts, function (index, part) {

-				part.repaint();

-			});

-		},

-

-		_intToHex: function (dec) {

-			var result = dec.toString(16);

-			if (result.length === 1) {

-				result = ('0' + result);

-			}

-			return result.toLowerCase();

-		},

-

-		// This will be deprecated by jQueryUI 1.9 widget

-		_hoverable: function (e) {

-			e.hover(function () {

-				e.addClass("ui-state-hover");

-			}, function () {

-				e.removeClass("ui-state-hover");

-			});

-		},

-

-		// This will be deprecated by jQueryUI 1.9 widget

-		_focusable: function (e) {

-			e.focus(function () {

-				e.addClass("ui-state-focus");

-			}).blur(function () {

-				e.removeClass("ui-state-focus");

-			});

-		},

-

-		_parts: {

-			header: function (inst) {

-				var self = this,

-					e = null,

-					_html;

-

-				_html = function () {

-					return '<div class="ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix">'

-						+ '<span class="ui-dialog-title">' + inst.options.title + '</span>'

-						+ '<a href="#" class="ui-dialog-titlebar-close ui-corner-all" role="button">'

-						+ '<div class="ui-icon ui-icon-closethick"></div></a></div>';

-				};

-

-				this.init = function () {

-					e = $(_html()).prependTo(inst.dialog);

-					var close = $('.ui-dialog-titlebar-close', e);

-					inst._hoverable(close);

-					inst._focusable(close);

-

-					close.click( function() {

-						inst.close()

-					});

-				};

-

-				this.repaint = function () {

-				};

-

-				this.generate = function () {

-					this.repaint();

-				};

-			},

-

-			map: function (inst) {

-				var self	= this,

-					e		= null,

-					_mousedown, _mouseup, _mousemove, _html;

-

-				_mousedown = function (event) {

-					if (!inst.opened) {

-						return;

-					}

-

-					var div		= $('#ui-colorpicker-map-layer-pointer', e),

-						offset	= div.offset(),

-						width	= div.width(),

-						height	= div.height(),

-						x		= event.pageX - offset.left,

-						y		= event.pageY - offset.top;

-

-					if (x >= 0 && x < width && y >= 0 && y < height) {

-						event.stopImmediatePropagation();

-						event.preventDefault();

-						$(document).unbind('mousedown', _mousedown);

-						$(document).bind('mouseup', _mouseup);

-						$(document).bind('mousemove', _mousemove);

-						_mousemove(event);

-					}

-				};

-

-				_mouseup = function (event) {

-					event.stopImmediatePropagation();

-					event.preventDefault();

-					$(document).unbind('mouseup', _mouseup);

-					$(document).unbind('mousemove', _mousemove);

-					$(document).bind('mousedown', _mousedown);

-				};

-

-				_mousemove = function (event) {

-					event.stopImmediatePropagation();

-					event.preventDefault();

-

-					if (event.pageX === self.x && event.pageY === self.y) {

-						return;

-					}

-					self.x = event.pageX;

-					self.y = event.pageY;

-

-					var div = $('#ui-colorpicker-map-layer-pointer', e),

-						offset = div.offset(),

-						width = div.width(),

-						height = div.height(),

-						x = event.pageX - offset.left,

-						y = event.pageY - offset.top;

-

-					x = Math.max(0, Math.min(x / width, 1));

-					y = Math.max(0, Math.min(y / height, 1));

-

-					// interpret values

-					switch (inst.mode) {

-					case 'h':

-						inst.color.s = x;

-						inst.color.v = 1 - y;

-						inst.color.updateRGB();

-						break;

-

-					case 's':

-					case 'a':

-						inst.color.h = x;

-						inst.color.v = 1 - y;

-						inst.color.updateRGB();

-						break;

-

-					case 'v':

-						inst.color.h = x;

-						inst.color.s = 1 - y;

-						inst.color.updateRGB();

-						break;

-

-					case 'r':

-						inst.color.b = x;

-						inst.color.g = 1 - y;

-						inst.color.updateHSV();

-						break;

-

-					case 'g':

-						inst.color.b = x;

-						inst.color.r = 1 - y;

-						inst.color.updateHSV();

-						break;

-

-					case 'b':

-						inst.color.r = x;

-						inst.color.g = 1 - y;

-						inst.color.updateHSV();

-						break;

-					}

-

-					inst._change();

-				};

-

-				_html = function () {

-					var html = '<div id="ui-colorpicker-map" class="ui-colorpicker-border">'

-							+ '<span id="ui-colorpicker-map-layer-1">&nbsp;</span>'

-							+ '<span id="ui-colorpicker-map-layer-2">&nbsp;</span>'

-							+ (inst.options.alpha ? '<span id="ui-colorpicker-map-layer-alpha">&nbsp;</span>' : '')

-							+ '<span id="ui-colorpicker-map-layer-pointer"><span id="ui-colorpicker-map-pointer"></span></span></div>';

-					return html;

-				};

-

-				this.generate = function () {

-					switch (inst.mode) {

-					case 'h':

-						$('#ui-colorpicker-map-layer-1', e).css({'background-position': '0 0', 'opacity': ''}).show();

-						$('#ui-colorcasepicker-map-layer-2', e).hide();

-						break;

-

-					case 's':

-					case 'a':

-						$('#ui-colorpicker-map-layer-1', e).css({'background-position': '0 -260px', 'opacity': ''}).show();

-						$('#ui-colorpicker-map-layer-2', e).css({'background-position': '0 -520px', 'opacity': ''}).show();

-						break;

-

-					case 'v':

-						$(e).css('background-color', 'black');

-						$('#ui-colorpicker-map-layer-1', e).css({'background-position': '0 -780px', 'opacity': ''}).show();

-						$('#ui-colorpicker-map-layer-2', e).hide();

-						break;

-

-					case 'r':

-						$('#ui-colorpicker-map-layer-1', e).css({'background-position': '0 -1040px', 'opacity': ''}).show();

-						$('#ui-colorpicker-map-layer-2', e).css({'background-position': '0 -1300px', 'opacity': ''}).show();

-						break;

-

-					case 'g':

-						$('#ui-colorpicker-map-layer-1', e).css({'background-position': '0 -1560px', 'opacity': ''}).show();

-						$('#ui-colorpicker-map-layer-2', e).css({'background-position': '0 -1820px', 'opacity': ''}).show();

-						break;

-

-					case 'b':

-						$('#ui-colorpicker-map-layer-1', e).css({'background-position': '0 -2080px', 'opacity': ''}).show();

-						$('#ui-colorpicker-map-layer-2', e).css({'background-position': '0 -2340px', 'opacity': ''}).show();

-						break;

-					}

-					self.repaint();

-				};

-

-				this.repaint = function () {

-					var div = $('#ui-colorpicker-map-layer-pointer', e),

-						x = 0,

-						y = 0;

-

-					switch (inst.mode) {

-					case 'h':

-						x = inst.color.s * div.width();

-						y = (1 - inst.color.v) * div.width();

-						$(e).css('background-color', inst.color.normClone().toCSS());

-						break;

-

-					case 's':

-					case 'a':

-						x = inst.color.h * div.width();

-						y = (1 - inst.color.v) * div.width();

-						$('#ui-colorpicker-map-layer-2', e).css('opacity', 1 - inst.color.s);

-						break;

-

-					case 'v':

-						x = inst.color.h * div.width();

-						y = (1 - inst.color.s) * div.width();

-						$('#ui-colorpicker-map-layer-1', e).css('opacity', inst.color.v);

-						break;

-

-					case 'r':

-						x = inst.color.b * div.width();

-						y = (1 - inst.color.g) * div.width();

-						$('#ui-colorpicker-map-layer-2', e).css('opacity', inst.color.r);

-						break;

-

-					case 'g':

-						x = inst.color.b * div.width();

-						y = (1 - inst.color.r) * div.width();

-						$('#ui-colorpicker-map-layer-2', e).css('opacity', inst.color.g);

-						break;

-

-					case 'b':

-						x = inst.color.r * div.width();

-						y = (1 - inst.color.g) * div.width();

-						$('#ui-colorpicker-map-layer-2', e).css('opacity', inst.color.b);

-						break;

-					}

-

-					if (inst.options.alpha) {

-						$('#ui-colorpicker-map-layer-alpha', e).css('opacity', 1 - inst.color.a);

-					}

-

-					$('#ui-colorpicker-map-pointer', e).css({

-						'left': x - 7,

-						'top': y - 7

-					});

-				};

-

-				this.init = function () {

-					e = $(_html()).appendTo($('#ui-colorpicker-map-container', inst.dialog));

-

-					e.bind('mousedown', _mousedown);

-				};

-			},

-

-			bar: function (inst) {

-				var self		= this,

-					e			= null,

-					_mousedown, _mouseup, _mousemove, _html;

-

-				_mousedown = function (event) {

-					if (!inst.opened) {

-						return;

-					}

-

-					var div		= $('#ui-colorpicker-bar-layer-pointer', e),

-						offset	= div.offset(),

-						width	= div.width(),

-						height	= div.height(),

-						x		= event.pageX - offset.left,

-						y		= event.pageY - offset.top;

-

-					if (x >= 0 && x < width && y >= 0 && y < height) {

-						event.stopImmediatePropagation();

-						event.preventDefault();

-						$(document).unbind('mousedown', _mousedown);

-						$(document).bind('mouseup', _mouseup);

-						$(document).bind('mousemove', _mousemove);

-						_mousemove(event);

-					}

-				};

-

-				_mouseup = function (event) {

-					event.stopImmediatePropagation();

-					event.preventDefault();

-					$(document).unbind('mouseup', _mouseup);

-					$(document).unbind('mousemove', _mousemove);

-					$(document).bind('mousedown', _mousedown);

-				};

-

-				_mousemove = function (event) {

-					event.stopImmediatePropagation();

-					event.preventDefault();

-

-					if (event.pageY === self.y) {

-						return;

-					}

-					self.y = event.pageY;

-

-					var div = $('#ui-colorpicker-bar-layer-pointer', e),

-						offset  = div.offset(),

-						height  = div.height(),

-						y = event.pageY - offset.top;

-

-					y = Math.max(0, Math.min(y / height, 1));

-

-					// interpret values

-					switch (inst.mode) {

-					case 'h':

-						inst.color.h = 1 - y;

-						inst.color.updateRGB();

-						break;

-

-					case 's':

-						inst.color.s = 1 - y;

-						inst.color.updateRGB();

-						break;

-

-					case 'v':

-						inst.color.v = 1 - y;

-						inst.color.updateRGB();

-						break;

-

-					case 'r':

-						inst.color.r = 1 - y;

-						inst.color.updateHSV();

-						break;

-

-					case 'g':

-						inst.color.g = 1 - y;

-						inst.color.updateHSV();

-						break;

-

-					case 'b':

-						inst.color.b = 1 - y;

-						inst.color.updateHSV();

-						break;

-

-					case 'a':

-						inst.color.a = 1 - y;

-						break;

-					}

-

-					inst._change();

-				};

-

-				_html = function () {

-					var html = '<div id="ui-colorpicker-bar" class="ui-colorpicker-border">'

-							+ '<span id="ui-colorpicker-bar-layer-1">&nbsp;</span>'

-							+ '<span id="ui-colorpicker-bar-layer-2">&nbsp;</span>'

-							+ '<span id="ui-colorpicker-bar-layer-3">&nbsp;</span>'

-							+ '<span id="ui-colorpicker-bar-layer-4">&nbsp;</span>';

-

-					if (inst.options.alpha) {

-						html += '<span id="ui-colorpicker-bar-layer-alpha">&nbsp;</span>'

-							+ '<span id="ui-colorpicker-bar-layer-alphabar">&nbsp;</span>';

-					}

-

-					html += '<span id="ui-colorpicker-bar-layer-pointer"><span id="ui-colorpicker-bar-pointer"></span></span></div>';

-

-					return html;

-				};

-

-				this.generate = function () {

-					switch (inst.mode) {

-					case 'h':

-					case 's':

-					case 'v':

-					case 'r':

-					case 'g':

-					case 'b':

-						$('#ui-colorpicker-bar-layer-alpha', e).show();

-						$('#ui-colorpicker-bar-layer-alphabar', e).hide();

-						break;

-

-					case 'a':

-						$('#ui-colorpicker-bar-layer-alpha', e).hide();

-						$('#ui-colorpicker-bar-layer-alphabar', e).show();

-						break;

-					}

-

-					switch (inst.mode) {

-					case 'h':

-						$('#ui-colorpicker-bar-layer-1', e).css({'background-position': '0 0', 'opacity': ''}).show();

-						$('#ui-colorpicker-bar-layer-2', e).hide();

-						$('#ui-colorpicker-bar-layer-3', e).hide();

-						$('#ui-colorpicker-bar-layer-4', e).hide();

-						break;

-

-					case 's':

-						$('#ui-colorpicker-bar-layer-1', e).css({'background-position': '0 -260px', 'opacity': ''}).show();

-						$('#ui-colorpicker-bar-layer-2', e).css({'background-position': '0 -520px', 'opacity': ''}).show();

-						$('#ui-colorpicker-bar-layer-3', e).hide();

-						$('#ui-colorpicker-bar-layer-4', e).hide();

-						break;

-

-					case 'v':

-						$('#ui-colorpicker-bar-layer-1', e).css({'background-position': '0 -520px', 'opacity': ''}).show();

-						$('#ui-colorpicker-bar-layer-2', e).hide();

-						$('#ui-colorpicker-bar-layer-3', e).hide();

-						$('#ui-colorpicker-bar-layer-4', e).hide();

-						break;

-

-					case 'r':

-						$('#ui-colorpicker-bar-layer-1', e).css({'background-position': '0 -1560px', 'opacity': ''}).show();

-						$('#ui-colorpicker-bar-layer-2', e).css({'background-position': '0 -1300px', 'opacity': ''}).show();

-						$('#ui-colorpicker-bar-layer-3', e).css({'background-position': '0 -780px', 'opacity': ''}).show();

-						$('#ui-colorpicker-bar-layer-4', e).css({'background-position': '0 -1040px', 'opacity': ''}).show();

-						break;

-

-					case 'g':

-						$('#ui-colorpicker-bar-layer-1', e).css({'background-position': '0 -2600px', 'opacity': ''}).show();

-						$('#ui-colorpicker-bar-layer-2', e).css({'background-position': '0 -2340px', 'opacity': ''}).show();

-						$('#ui-colorpicker-bar-layer-3', e).css({'background-position': '0 -1820px', 'opacity': ''}).show();

-						$('#ui-colorpicker-bar-layer-4', e).css({'background-position': '0 -2080px', 'opacity': ''}).show();

-						break;

-

-					case 'b':

-						$('#ui-colorpicker-bar-layer-1', e).css({'background-position': '0 -3640px', 'opacity': ''}).show();

-						$('#ui-colorpicker-bar-layer-2', e).css({'background-position': '0 -3380px', 'opacity': ''}).show();

-						$('#ui-colorpicker-bar-layer-3', e).css({'background-position': '0 -2860px', 'opacity': ''}).show();

-						$('#ui-colorpicker-bar-layer-4', e).css({'background-position': '0 -3120px', 'opacity': ''}).show();

-						break;

-

-					case 'a':

-						$('#ui-colorpicker-bar-layer-1', e).hide();

-						$('#ui-colorpicker-bar-layer-2', e).hide();

-						$('#ui-colorpicker-bar-layer-3', e).hide();

-						$('#ui-colorpicker-bar-layer-4', e).hide();

-						break;

-					}

-					self.repaint();

-				};

-

-				this.repaint = function () {

-					var div = $('#ui-colorpicker-bar-layer-pointer', e),

-						y = 0;

-

-					switch (inst.mode) {

-					case 'h':

-						y = (1 - inst.color.h) * div.height();

-						break;

-

-					case 's':

-						y = (1 - inst.color.s) * div.height();

-						$('#ui-colorpicker-bar-layer-2', e).css('opacity', 1 - inst.color.v);

-						$(e).css('background-color', inst.color.normClone().toCSS());

-						break;

-

-					case 'v':

-						y = (1 - inst.color.v) * div.height();

-						$(e).css('background-color', inst.color.normClone().toCSS());

-						break;

-

-					case 'r':

-						y = (1 - inst.color.r) * div.height();

-						$('#ui-colorpicker-bar-layer-2', e).css('opacity', Math.max(0, (inst.color.b - inst.color.g)));

-						$('#ui-colorpicker-bar-layer-3', e).css('opacity', Math.max(0, (inst.color.g - inst.color.b)));

-						$('#ui-colorpicker-bar-layer-4', e).css('opacity', Math.min(inst.color.b, inst.color.g));

-						break;

-

-					case 'g':

-						y = (1 - inst.color.g) * div.height();

-						$('#ui-colorpicker-bar-layer-2', e).css('opacity', Math.max(0, (inst.color.b - inst.color.r)));

-						$('#ui-colorpicker-bar-layer-3', e).css('opacity', Math.max(0, (inst.color.r - inst.color.b)));

-						$('#ui-colorpicker-bar-layer-4', e).css('opacity', Math.min(inst.color.r, inst.color.b));

-						break;

-

-					case 'b':

-						y = (1 - inst.color.b) * div.height();

-						$('#ui-colorpicker-bar-layer-2', e).css('opacity', Math.max(0, (inst.color.r - inst.color.g)));

-						$('#ui-colorpicker-bar-layer-3', e).css('opacity', Math.max(0, (inst.color.g - inst.color.r)));

-						$('#ui-colorpicker-bar-layer-4', e).css('opacity', Math.min(inst.color.r, inst.color.g));

-						break;

-

-					case 'a':

-						y = (1 - inst.color.a) * div.height();

-						$(e).css('background-color', inst.color.normClone().toCSS());

-						break;

-					}

-

-					if (inst.mode !== 'a') {

-						$('#ui-colorpicker-bar-layer-alpha', e).css('opacity', 1 - inst.color.a);

-					}

-

-					$('#ui-colorpicker-bar-pointer', e).css('top', y - 3);

-				};

-

-				this.init = function () {

-					e = $(_html()).appendTo($('#ui-colorpicker-bar-container', inst.dialog));

-

-					e.bind('mousedown', _mousedown);

-				};

-			},

-

-			inputs: function (inst) {

-				var self = this,

-					e = null,

-					_html;

-

-				_html = function () {

-					var html = '<div id="ui-colorpicker-inputs">';

-

-					if (inst.options.hsv) {

-						html +=	'<div id="ui-colorpicker-h"><input class="ui-colorpicker-mode" type="radio" value="h"/><label>H:</label><input class="ui-colorpicker-number ui-colorpicker-number-hsv" type="number" min="0" max="360" size="10"/><span class="ui-colorpicker-unit">&deg;</span></div>'

-							+ '<div id="ui-colorpicker-s"><input class="ui-colorpicker-mode" type="radio" value="s"/><label>S:</label><input class="ui-colorpicker-number ui-colorpicker-number-hsv" type="number" min="0" max="100" size="10"/><span class="ui-colorpicker-unit">%</span></div>'

-							+ '<div id="ui-colorpicker-v"><input class="ui-colorpicker-mode" type="radio" value="v"/><label>V:</label><input class="ui-colorpicker-number ui-colorpicker-number-hsv" type="number" min="0" max="100" size="10"/><span class="ui-colorpicker-unit">%</span></div>';

-					}

-

-					if (inst.options.rgb) {

-						html += '<div id="ui-colorpicker-r"><input class="ui-colorpicker-mode" type="radio" value="r"/><label>R:</label><input class="ui-colorpicker-number ui-colorpicker-number-rgb" type="number" min="0" max="255" size="10"/><span class="ui-colorpicker-unit"></span></div>'

-							+ '<div id="ui-colorpicker-g"><input class="ui-colorpicker-mode" type="radio" value="g"/><label>G:</label><input class="ui-colorpicker-number ui-colorpicker-number-rgb" type="number" min="0" max="255" size="10"/><span class="ui-colorpicker-unit"></span></div>'

-							+ '<div id="ui-colorpicker-b"><input class="ui-colorpicker-mode" type="radio" value="b"/><label>B:</label><input class="ui-colorpicker-number ui-colorpicker-number-rgb" type="number" min="0" max="255" size="10"/><span class="ui-colorpicker-unit"></span></div>';

-					}

-

-					if (inst.options.alpha) {

-						html += '<div id="ui-colorpicker-a"><input class="ui-colorpicker-mode" name="mode" type="radio" value="a"/><label>A:</label><input class="ui-colorpicker-number ui-colorpicker-number-a" type="number" min="0" max="100" size="10"/><span class="ui-colorpicker-unit">%</span></div>';

-					}

-

-					return html + '</div>';

-				};

-

-				this.init = function () {

-					e = $(_html()).appendTo($('#ui-colorpicker-inputs-container', inst.dialog));

-

-					$('.ui-colorpicker-mode', e).click(function () {

-						inst.mode = $(this).val();

-						inst._generateAllParts();

-					});

-

-					$('.ui-colorpicker-number', e).bind('change input keyup', function () {

-						inst.color.r = $('#ui-colorpicker-r .ui-colorpicker-number', e).val() / 255;

-						inst.color.g = $('#ui-colorpicker-g .ui-colorpicker-number', e).val() / 255;

-						inst.color.b = $('#ui-colorpicker-b .ui-colorpicker-number', e).val() / 255;

-						inst.color.a = $('#ui-colorpicker-a .ui-colorpicker-number', e).val() / 100;

-						inst.color.h = $('#ui-colorpicker-h .ui-colorpicker-number', e).val() / 360;

-						inst.color.s = $('#ui-colorpicker-s .ui-colorpicker-number', e).val() / 100;

-						inst.color.v = $('#ui-colorpicker-v .ui-colorpicker-number', e).val() / 100;

-

-						if ($(this).hasClass('ui-colorpicker-number-hsv')) {

-							inst.color.updateRGB();

-						} else if ($(this).hasClass('ui-colorpicker-number-rgb')) {

-							inst.color.updateHSV();

-						}

-

-						inst._change();

-					});

-				};

-

-				this.repaint = function () {

-					var c = $.extend(inst.color);

-					c.h *= 360;

-					c.s *= 100;

-					c.v *= 100;

-					c.r *= 255;

-					c.g *= 255;

-					c.b *= 255;

-					c.a *= 100;

-

-					$.each(c, function (index, value) {

-						var v = Math.round(value);

-						if (!$('#ui-colorpicker-' + index + ' .ui-colorpicker-number', e).is(':focus')

-								&& $('#ui-colorpicker-' + index + ' .ui-colorpicker-number', e).val() !== v) {

-							$('#ui-colorpicker-' + index + ' .ui-colorpicker-number', e).val(v);

-						}

-					});

-				};

-

-				this.generate = function () {

-					$('.ui-colorpicker-mode', e).each(function () {

-						$(this).attr('checked', $(this).val() === inst.mode);

-					});

-					this.repaint();

-				};

-			},

-

-			preview: function (inst) {

-				var self = this,

-					e = null,

-					_html;

-

-				_html = function () {

-					return '<div id="ui-colorpicker-preview">'

-						+ '<span class="ui-colorpicker-border">'

-						+ '<div id="ui-colorpicker-preview-initial"><div id="ui-colorpicker-preview-initial-alpha"></div></div>'

-						+ '<div id="ui-colorpicker-preview-current"><div id="ui-colorpicker-preview-current-alpha"></div></div>'

-						+ '</span>'

-						+ '</div>';

-				};

-

-				this.init = function () {

-					e = $(_html()).appendTo($('#ui-colorpicker-preview-container', inst.dialog));

-

-					$('#ui-colorpicker-preview-initial', e).click(function () {

-						inst.color = $.extend({}, inst.currentColor);

-						inst._change();

-					});

-

-				};

-

-				this.repaint = function () {

-					$('#ui-colorpicker-preview-initial', e).css('background-color', inst.currentColor.toCSS()).attr('title', inst.currentColor.toHex());

-					$('#ui-colorpicker-preview-initial-alpha', e).css('opacity', 1 - inst.currentColor.a);

-					$('#ui-colorpicker-preview-current', e).css('background-color', inst.color.toCSS()).attr('title', inst.color.toHex());

-					$('#ui-colorpicker-preview-current-alpha', e).css('opacity', 1 - inst.color.a);

-				};

-

-				this.generate = function () {

-					if (inst.options.alpha) {

-						$('#ui-colorpicker-preview-initial-alpha, #ui-colorpicker-preview-current-alpha', e).show();

-					} else {

-						$('#ui-colorpicker-preview-initial-alpha, #ui-colorpicker-preview-current-alpha', e).hide();

-					}

-

-					this.repaint();

-				};

-			},

-

-			hex: function (inst) {

-				var self = this,

-					e = null,

-					_html;

-

-				_html = function () {

-					var html = '';

-

-					if (inst.options.alpha) {

-						html += '<input id="ui-colorpicker-hex-alpha" maxlength="2" size="2"/>';

-					}

-

-					html += '<input id="ui-colorpicker-hex-input" maxlength="6" size="6"/>';

-

-					return '<div id="ui-colorpicker-hex"><label for="ui-colorpicker-hex-input">#: </label>' + html + '</div>';

-				};

-

-				this.init = function () {

-					e = $(_html()).appendTo($('#ui-colorpicker-hex-container', inst.dialog));

-

-					$('#ui-colorpicker-hex-input', e).bind('change keyup', function () {

-						var rgb = inst._parseHex($(this).val());

-						inst.color.r = rgb[0];

-						inst.color.g = rgb[1];

-						inst.color.b = rgb[2];

-						inst.color.updateHSV();

-						inst._change();

-					});

-

-					$('#ui-colorpicker-hex-alpha', e).bind('change keyup', function () {

-						inst.color.a = parseInt($('#ui-colorpicker-hex-alpha', e).val(), 16);

-						inst._change();

-					});

-				};

-

-				this.repaint = function () {

-					if (!$('#ui-colorpicker-hex-input', e).is(':focus')) {

-						$('#ui-colorpicker-hex-input', e).val(inst.color.toHex(true));

-					}

-

-					if (!$('#ui-colorpicker-hex-alpha', e).is(':focus')) {

-						$('#ui-colorpicker-hex-alpha', e).val(inst._intToHex(inst.color.a * 255));

-					}

-				};

-

-				this.generate = function () {

-					this.repaint();

-				};

-			},

-

-			swatches: function (inst) {

-				var self = this,

-					e = null,

-					_html;

-

-				_html = function () {

-					var html = '';

-

-					$.each(inst.options.swatches, function (name, color) {

-						var hex = inst._intToHex(color[0]) + inst._intToHex(color[1]) + inst._intToHex(color[2]);

-						html += '<div class="ui-colorpicker-swatch" style="background-color: #' + hex + '" title="' + name + '"></div>';

-					});

-

-					return '<div id="ui-colorpicker-swatches" class="ui-colorpicker-border">' + html + '</div>';

-				};

-

-				this.init = function () {

-					e = $(_html()).appendTo($('#ui-colorpicker-swatches-container', inst.dialog));

-

-					$('.ui-colorpicker-swatch', e).click(function () {

-						var rgb		= inst._parseColor($(this).css('background-color'));

-						inst.color	= (rgb === false ? new inst.Color() : new inst.Color(rgb[0], rgb[1], rgb[2]));

-						inst._change();

-					});

-				};

-

-				this.repaint = function () {

-					// Not affected by changing color;

-				};

-

-				this.generate = function () {

-					// Not affected by changing color;

-				};

-			},

-

-			footer: function (inst) {

-				var self = this,

-					e = null,

-					_html;

-

-				_html = function () {

-					return '<div class="ui-dialog-buttonpane ui-widget-content">'

-						+ (inst.options.alpha ? '<button class="ui-colorpicker-transparent">transparent</button>' : '')

-						+ (inst.inline ? '' : '<div class="ui-dialog-buttonset">'

-							+ '<button class="ui-colorpicker-close">Done</button>'

-							+ '</div>')

-						+ '</div>';

-				};

-

-				this.init = function () {

-					e = $(_html()).appendTo(inst.dialog);

-

-					$('.ui-colorpicker-close', e).button().click(function () {

-						inst.close();

-					});

-

-					if (inst.options.alpha) {

-						$('.ui-colorpicker-transparent', e).button().click(function () {

-							inst.color.a = 0;

-							inst._change();

-						});

-					}

-				};

-

-				this.repaint = function () {};

-

-				this.generate = function () {};

-			}

-		},

-

-		_parseHex: function (color) {

-			var name = $.trim(color).toLowerCase(),

-				c,

-				m;

-

-			if (_colors[name]) {

-				c = _colors[name];

-				return [c[0] / 255, c[1] / 255, c[2] / 255];

-			}

-

-			// {#}rrggbb

-			m = /^#?([a-fA-F0-9]{0,6})/.exec(color);

-			if (m) {

-				c = parseInt(m[1], 16);

-				return [((c >> 16) & 0xFF) / 255,

-						((c >>  8) & 0xFF) / 255,

-						(c & 0xFF) / 255];

-			}

-		},

-

-		_parseColor: function (color) {

-			var m;

-

-			// rgba(r,g,b,a)

-			m = /rgba?\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*(?:,\s*(\d+(?:\.\d+)?)\s*)?\)/.exec(color);

-			if (m) {

-				return [

-					m[1] / 255,

-					m[2] / 255,

-					m[3] / 255,

-					m[4] / 255

-				];

-			}

-

-			// rgba(r%,g%,b%,a%)

-			m = /rgba?\(\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*(?:,\s*(\d+(?:\.\d+)?)\s*)?\)/.exec(color);

-			if (m) {

-				return [

-					m[1] / 100,

-					m[2] / 100,

-					m[3] / 100,

-					m[4] / 100

-				];

-			}

-

-			// #rrggbb

-			m = /#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/.exec(color);

-			if (m) {

-				return [

-					parseInt(m[1], 16) / 255,

-					parseInt(m[2], 16) / 255,

-					parseInt(m[3], 16) / 255

-				];

-			}

-

-			// #rgb

-			m = /#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/.exec(color);

-			if (m) {

-				return [

-					parseInt(m[1] + m[1], 16) / 255,

-					parseInt(m[2] + m[2], 16) / 255,

-					parseInt(m[3] + m[3], 16) / 255

-				];

-			}

-

-			return this._parseHex(color);

-		},

-

-		Color: function () {

-			var a, args = arguments;

-

-			this.updateRGB = function () {

-				this.h = Math.max(0, Math.min(this.h, 1));

-				this.s = Math.max(0, Math.min(this.s, 1));

-				this.v = Math.max(0, Math.min(this.v, 1));

-

-				if (this.s === 0) {

-					this.r = this.g = this.b = this.v;

-				} else {

-					var var_h = this.h === 1 ? 0 : this.h * 6,

-						var_i = Math.floor(var_h),

-						var_1 = this.v * (1 - this.s),

-						var_2 = this.v * (1 - this.s * (var_h - var_i)),

-						var_3 = this.v * (1 - this.s * (1 - (var_h - var_i)));

-

-					if (var_i === 0) {

-						this.r = this.v;

-						this.g = var_3;

-						this.b = var_1;

-					} else if (var_i === 1) {

-						this.r = var_2;

-						this.g = this.v;

-						this.b = var_1;

-					} else if (var_i === 2) {

-						this.r = var_1;

-						this.g = this.v;

-						this.b = var_3;

-					} else if (var_i === 3) {

-						this.r = var_1;

-						this.g = var_2;

-						this.b = this.v;

-					} else if (var_i === 4) {

-						this.r = var_3;

-						this.g = var_1;

-						this.b = this.v;

-					} else {

-						this.r = this.v;

-						this.g = var_1;

-						this.b = var_2;

-					}

-				}

-				return this;

-			};

-

-			this.updateHSV = function () {

-				var minVal, maxVal, delta, del_R, del_G, del_B;

-				this.r = Math.max(0, Math.min(this.r, 1));

-				this.g = Math.max(0, Math.min(this.g, 1));

-				this.b = Math.max(0, Math.min(this.b, 1));

-

-				minVal = Math.min(this.r, this.g, this.b);

-				maxVal = Math.max(this.r, this.g, this.b);

-				delta = maxVal - minVal;

-

-				this.v = maxVal;

-

-				if (delta === 0) {

-					this.h = 0;

-					this.s = 0;

-				} else {

-					this.s = delta / maxVal;

-					del_R = (((maxVal - this.r) / 6) + (delta / 2)) / delta;

-					del_G = (((maxVal - this.g) / 6) + (delta / 2)) / delta;

-					del_B = (((maxVal - this.b) / 6) + (delta / 2)) / delta;

-

-					if (this.r === maxVal) {

-						this.h = del_B - del_G;

-					} else if (this.g === maxVal) {

-						this.h = (1 / 3) + del_R - del_B;

-					} else if (this.b === maxVal) {

-						this.h = (2 / 3) + del_G - del_R;

-					}

-

-					if (this.h < 0) {

-						this.h += 1;

-					} else if (this.h > 1) {

-						this.h -= 1;

-					}

-				}

-				return this;

-			};

-

-			this._hexify = function (number) {

-			   // return Math.round(number).toString(16);

-				var digits = '0123456789abcdef',

-					lsd = number % 16,

-					msd = (number - lsd) / 16,

-					hexified = digits.charAt(msd) + digits.charAt(lsd);

-				return hexified;

-			};

-

-			this.toHex = function () {

-				return this._hexify(this.r * 255) + this._hexify(this.g * 255) + this._hexify(this.b * 255);

-			};

-

-			this.toCSS = function () {

-				return '#' + this.toHex();

-			};

-

-			this.toHexAlpha = function () {

-				return this._hexify(this.a * 255);

-			};

-

-			this.normClone = function () {

-				return $.extend({}, this, {s: 1, v: 1}).updateRGB();

-			};

-

-			this.equals = function (rgb) {

-				return rgb[0] === this.r

-					&& rgb[1] === this.g

-					&& rgb[2] === this.b;

-			};

-

-			this.limit = function (steps) {

-				steps -= 1;

-				this.r = Math.round(this.r * steps) / steps;

-				this.g = Math.round(this.g * steps) / steps;

-				this.b = Math.round(this.b * steps) / steps;

-				this.updateHSV();

-			};

-

-			for (a = 0; a < args.length; a += 1) {

-				args[a] = Math.max(0, Math.min(args[a], 1));

-			}

-

-			if (args.length === 0) {

-				this.r = 0;

-				this.g = 0;

-				this.b = 0;

-				this.a = 1;

-				this.h = 0;

-				this.s = 0;

-				this.v = 0;

-			} else if (args.length === 3) {

-				// r,g,b

-				this.r = args[0] || 0;

-				this.g = args[1] || 0;

-				this.b = args[2] || 0;

-				this.a = 1;

-				this.updateHSV();

-			} else if (args.length === 7) {

-				// r,g,b,a,h,s,v

-				this.r = args[0] || 0;

-				this.g = args[1] || 0;

-				this.b = args[2] || 0;

-				this.a = args[3] || 0;

-				this.h = args[4] || 0;

-				this.s = args[5] || 0;

-				this.v = args[6] || 0;

-			}

-		}

-	});

-

-}(jQuery));

diff --git a/wqflask/wqflask/static/packages/jqplot/examples/cursor-highlighter.html b/wqflask/wqflask/static/packages/jqplot/examples/cursor-highlighter.html
deleted file mode 100755
index ef35aebf..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/cursor-highlighter.html
+++ /dev/null
@@ -1,137 +0,0 @@
-<!DOCTYPE html>
-
-<html>
-<head>
-	
-	<title>Data Point Highlighting, Tooltips and Cursor Tracking</title>
-
-    <link class="include" rel="stylesheet" type="text/css" href="../jquery.jqplot.min.css" />
-    <link rel="stylesheet" type="text/css" href="examples.min.css" />
-    <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shCoreDefault.min.css" />
-    <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shThemejqPlot.min.css" />
-  
-  <!--[if lt IE 9]><script language="javascript" type="text/javascript" src="../excanvas.js"></script><![endif]-->
-    <script class="include" type="text/javascript" src="../jquery.min.js"></script>
-    
-   
-</head>
-<body>
-    <div class="logo">
-   <div class="nav">
-   <a class="nav" href="../../../index.php"><span>&gt;</span>Home</a>
-   <a class="nav"  href="../../../docs/"><span>&gt;</span>Docs</a>
-   <a class="nav"  href="../../download/"><span>&gt;</span>Download</a>
-   <a class="nav" href="../../../info.php"><span>&gt;</span>Info</a>
-   <a class="nav"  href="../../../donate.php"><span>&gt;</span>Donate</a>
-   </div>
-</div>
-    <div class="example-content">
-
-    <div class="example-nav">
-  <a href="canvas-overlay.html">Previous</a> <a href="./">Examples</a> <a href="customHighlighterCursorTrendline.html">Next</a></div>
-
-      
-<!-- Example scripts go here -->
-
-<p>The Highlighter plugin will highlight data points near the mouse and display an optional tooltip with the data point value.  By default, the tooltip values will be formatted with the same formatter as used to display the axes tick values.  The text format can be customized with an optional sprintf style format string.</p>
-
-<div id="chart1" style="height:300px; width:600px;"></div>
-
-<pre class="code prettyprint brush: js"></pre>
-
-<p>The Cursor plugin changes the mouse cursor when it enters the graph area and displays an optional tooltip with the mouse position.  The tooltip can be in a fixed location, or it can follow the mouse.  The pointer style, set to "crosshair" by default, can also be customized.  Tooltip values are formatted similar to the Highlighter plugin.  By default they use the axes formatters, but can be customized with a sprintf format string.</p>
-
-<div id="chart2" style="height:300px; width:600px;"></div>
-
-<pre class="code prettyprint brush: js"></pre>
-
-<script class="code" type="text/javascript">
-$(document).ready(function(){
-  var line1=[['23-May-08', 578.55], ['20-Jun-08', 566.5], ['25-Jul-08', 480.88], ['22-Aug-08', 509.84],
-      ['26-Sep-08', 454.13], ['24-Oct-08', 379.75], ['21-Nov-08', 303], ['26-Dec-08', 308.56],
-      ['23-Jan-09', 299.14], ['20-Feb-09', 346.51], ['20-Mar-09', 325.99], ['24-Apr-09', 386.15]];
-  var plot1 = $.jqplot('chart1', [line1], {
-      title:'Data Point Highlighting',
-      axes:{
-        xaxis:{
-          renderer:$.jqplot.DateAxisRenderer,
-          tickOptions:{
-            formatString:'%b&nbsp;%#d'
-          } 
-        },
-        yaxis:{
-          tickOptions:{
-            formatString:'$%.2f'
-            }
-        }
-      },
-      highlighter: {
-        show: true,
-        sizeAdjust: 7.5
-      },
-      cursor: {
-        show: false
-      }
-  });
-});
-</script>
-  
-<script class="code" type="text/javascript">
-$(document).ready(function(){
-  var line1=[['23-May-08', 578.55], ['20-Jun-08', 566.5], ['25-Jul-08', 480.88], ['22-Aug-08', 509.84],
-      ['26-Sep-08', 454.13], ['24-Oct-08', 379.75], ['21-Nov-08', 303], ['26-Dec-08', 308.56],
-      ['23-Jan-09', 299.14], ['20-Feb-09', 346.51], ['20-Mar-09', 325.99], ['24-Apr-09', 386.15]];
-  var plot2 = $.jqplot('chart2', [line1], {
-    title:'Mouse Cursor Tracking',
-    axes:{
-      xaxis:{
-        renderer:$.jqplot.DateAxisRenderer,
-          tickOptions:{
-            formatString:'%b&nbsp;%#d'
-          }
-      },
-      yaxis:{
-        tickOptions:{
-          formatString:'$%.2f'
-        }
-      }
-    },
-    highlighter: {
-      show: false
-    },
-    cursor: {
-      show: true,
-      tooltipLocation:'sw'
-    }
-  });
-});
-</script>
-
-
-<!-- End example scripts -->
-
-<!-- Don't touch this! -->
-
-
-    <script class="include" type="text/javascript" src="../jquery.jqplot.min.js"></script>
-    <script type="text/javascript" src="syntaxhighlighter/scripts/shCore.min.js"></script>
-    <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushJScript.min.js"></script>
-    <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushXml.min.js"></script>
-<!-- End Don't touch this! -->
-
-<!-- Additional plugins go here -->
-
-    <script class="include" language="javascript" type="text/javascript" src="../plugins/jqplot.highlighter.min.js"></script>
-    <script class="include" language="javascript" type="text/javascript" src="../plugins/jqplot.cursor.min.js"></script>
-    <script class="include" language="javascript" type="text/javascript" src="../plugins/jqplot.dateAxisRenderer.min.js"></script>
-
-<!-- End additional plugins -->
-
-
-	</div>	
-	<script type="text/javascript" src="example.min.js"></script>
-
-</body>
-
-
-</html>
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/customHighlighterCursorTrendline.html b/wqflask/wqflask/static/packages/jqplot/examples/customHighlighterCursorTrendline.html
deleted file mode 100755
index d5ed6ce4..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/customHighlighterCursorTrendline.html
+++ /dev/null
@@ -1,104 +0,0 @@
-<!DOCTYPE html>
-
-<html>
-<head>
-	
-	<title>Highlighting, Dragging Points, Cursor and Trend Lines.</title>
-
-    <link class="include" rel="stylesheet" type="text/css" href="../jquery.jqplot.min.css" />
-    <link rel="stylesheet" type="text/css" href="examples.min.css" />
-    <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shCoreDefault.min.css" />
-    <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shThemejqPlot.min.css" />
-  
-  <!--[if lt IE 9]><script language="javascript" type="text/javascript" src="../excanvas.js"></script><![endif]-->
-    <script class="include" type="text/javascript" src="../jquery.min.js"></script>
-    
-   
-</head>
-<body>
-    <div class="logo">
-   <div class="nav">
-   <a class="nav" href="../../../index.php"><span>&gt;</span>Home</a>
-   <a class="nav"  href="../../../docs/"><span>&gt;</span>Docs</a>
-   <a class="nav"  href="../../download/"><span>&gt;</span>Download</a>
-   <a class="nav" href="../../../info.php"><span>&gt;</span>Info</a>
-   <a class="nav"  href="../../../donate.php"><span>&gt;</span>Donate</a>
-   </div>
-</div>
-    <div class="example-content">
-
-    <div class="example-nav">
-  <a href="cursor-highlighter.html">Previous</a> <a href="./">Examples</a> <a href="dashboardWidget.html">Next</a></div>
-
-    <div class="example-plot" id="chart1"></div>  
-<!-- Example scripts go here -->
-
-  <script class="code" type="text/javascript">
-
-    $(document).ready(function () {
-
-      $.jqplot.config.enablePlugins = true;
-
-      s1 = [['23-May-08',1],['24-May-08',4],['25-May-08',2],['26-May-08', 6]];
-
-      plot1 = $.jqplot('chart1',[s1],{
-         title: 'Highlighting, Dragging, Cursor and Trend Line',
-         axes: {
-             xaxis: {
-                 renderer: $.jqplot.DateAxisRenderer,
-                 tickOptions: {
-                     formatString: '%#m/%#d/%y'
-                 },
-                 numberTicks: 4
-             },
-             yaxis: {
-                 tickOptions: {
-                     formatString: '$%.2f'
-                 }
-             }
-         },
-         highlighter: {
-             sizeAdjust: 10,
-             tooltipLocation: 'n',
-             tooltipAxes: 'y',
-             tooltipFormatString: '<b><i><span style="color:red;">hello</span></i></b> %.2f',
-             useAxesFormatters: false
-         },
-         cursor: {
-             show: true
-         }
-      });
-    });
-</script>
-
-<!-- End example scripts -->
-
-<!-- Don't touch this! -->
-
-
-    <script class="include" type="text/javascript" src="../jquery.jqplot.min.js"></script>
-    <script type="text/javascript" src="syntaxhighlighter/scripts/shCore.min.js"></script>
-    <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushJScript.min.js"></script>
-    <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushXml.min.js"></script>
-<!-- End Don't touch this! -->
-
-<!-- Additional plugins go here -->
-
-    <script class="include" type="text/javascript" src="../plugins/jqplot.dateAxisRenderer.min.js"></script>
-    <script class="include" type="text/javascript" src="../plugins/jqplot.barRenderer.min.js"></script>
-    <script class="include" type="text/javascript" src="../plugins/jqplot.categoryAxisRenderer.min.js"></script>
-    <script class="include" type="text/javascript" src="../plugins/jqplot.cursor.min.js"></script>
-    <script class="include" type="text/javascript" src="../plugins/jqplot.highlighter.min.js"></script>
-    <script class="include" type="text/javascript" src="../plugins/jqplot.dragable.min.js"></script>
-    <script class="include" type="text/javascript" src="../plugins/jqplot.trendline.min.js"></script> 
-
-<!-- End additional plugins -->
-
-
-	</div>	
-	<script type="text/javascript" src="example.min.js"></script>
-
-</body>
-
-
-</html>
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/dashboardWidget.html b/wqflask/wqflask/static/packages/jqplot/examples/dashboardWidget.html
deleted file mode 100755
index d57f1de3..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/dashboardWidget.html
+++ /dev/null
@@ -1,212 +0,0 @@
-<!DOCTYPE html>
-
-<html>
-<head>
-	
-	<title>Animated Dashboard Sample - Filled Line with Log Axis</title>
-
-    <link class="include" rel="stylesheet" type="text/css" href="../jquery.jqplot.min.css" />
-    <link rel="stylesheet" type="text/css" href="examples.min.css" />
-    <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shCoreDefault.min.css" />
-    <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shThemejqPlot.min.css" />
-  
-  <!--[if lt IE 9]><script language="javascript" type="text/javascript" src="../excanvas.js"></script><![endif]-->
-    <script class="include" type="text/javascript" src="../jquery.min.js"></script>
-    
-   
-</head>
-<body>
-    <div class="logo">
-   <div class="nav">
-   <a class="nav" href="../../../index.php"><span>&gt;</span>Home</a>
-   <a class="nav"  href="../../../docs/"><span>&gt;</span>Docs</a>
-   <a class="nav"  href="../../download/"><span>&gt;</span>Download</a>
-   <a class="nav" href="../../../info.php"><span>&gt;</span>Info</a>
-   <a class="nav"  href="../../../donate.php"><span>&gt;</span>Donate</a>
-   </div>
-</div>
-    <div class="example-content">
-
-    <div class="example-nav">
-  <a href="customHighlighterCursorTrendline.html">Previous</a> <a href="./">Examples</a> <a href="dashedLines.html">Next</a></div>
-
-      
-<!-- Example scripts go here -->
-    <link class="include" rel="stylesheet" type="text/css" href="jquery-ui/css/smoothness/jquery-ui.css" />
-
-    <style type="text/css">
-        .jqplot-target {
-            margin: 20px;
-            height: 340px;
-            width: 600px;
-            color: #dddddd;
-        }
-
-        .ui-widget-content {
-            background: rgb(57,57,57);
-        }
-
-        table.jqplot-table-legend {
-            border: 0px;
-            background-color: rgba(100,100,100, 0.0);
-        }
-
-        .jqplot-highlighter-tooltip {
-            background-color: rgba(57,57,57, 0.9);
-            padding: 7px;
-            color: #dddddd;
-        }
-
-
-
-    </style>
-
-    <div class="ui-widget ui-corner-all">
-        <div class="ui-widget-header ui-corner-top">Hi Powered Data</div>
-        <div class="ui-widget-content ui-corner-bottom" >
-            <div id="chart1"></div>
-        </div>
-    </div>
-
-    <pre class="code brush:js"></pre>
-
-    <script class="code" type="text/javascript">
-
-        $(document).ready(function () {
-            $.jqplot._noToImageButton = true;
-            var prevYear = [["2011-08-01",398], ["2011-08-02",255.25], ["2011-08-03",263.9], ["2011-08-04",154.24], 
-            ["2011-08-05",210.18], ["2011-08-06",109.73], ["2011-08-07",166.91], ["2011-08-08",330.27], ["2011-08-09",546.6], 
-            ["2011-08-10",260.5], ["2011-08-11",330.34], ["2011-08-12",464.32], ["2011-08-13",432.13], ["2011-08-14",197.78], 
-            ["2011-08-15",311.93], ["2011-08-16",650.02], ["2011-08-17",486.13], ["2011-08-18",330.99], ["2011-08-19",504.33], 
-            ["2011-08-20",773.12], ["2011-08-21",296.5], ["2011-08-22",280.13], ["2011-08-23",428.9], ["2011-08-24",469.75], 
-            ["2011-08-25",628.07], ["2011-08-26",516.5], ["2011-08-27",405.81], ["2011-08-28",367.5], ["2011-08-29",492.68], 
-            ["2011-08-30",700.79], ["2011-08-31",588.5], ["2011-09-01",511.83], ["2011-09-02",721.15], ["2011-09-03",649.62], 
-            ["2011-09-04",653.14], ["2011-09-06",900.31], ["2011-09-07",803.59], ["2011-09-08",851.19], ["2011-09-09",2059.24], 
-            ["2011-09-10",994.05], ["2011-09-11",742.95], ["2011-09-12",1340.98], ["2011-09-13",839.78], ["2011-09-14",1769.21], 
-            ["2011-09-15",1559.01], ["2011-09-16",2099.49], ["2011-09-17",1510.22], ["2011-09-18",1691.72], 
-            ["2011-09-19",1074.45], ["2011-09-20",1529.41], ["2011-09-21",1876.44], ["2011-09-22",1986.02], 
-            ["2011-09-23",1461.91], ["2011-09-24",1460.3], ["2011-09-25",1392.96], ["2011-09-26",2164.85], 
-            ["2011-09-27",1746.86], ["2011-09-28",2220.28], ["2011-09-29",2617.91], ["2011-09-30",3236.63]];
-
-            var currYear = [["2011-08-01",796.01], ["2011-08-02",510.5], ["2011-08-03",527.8], ["2011-08-04",308.48], 
-            ["2011-08-05",420.36], ["2011-08-06",219.47], ["2011-08-07",333.82], ["2011-08-08",660.55], ["2011-08-09",1093.19], 
-            ["2011-08-10",521], ["2011-08-11",660.68], ["2011-08-12",928.65], ["2011-08-13",864.26], ["2011-08-14",395.55], 
-            ["2011-08-15",623.86], ["2011-08-16",1300.05], ["2011-08-17",972.25], ["2011-08-18",661.98], ["2011-08-19",1008.67], 
-            ["2011-08-20",1546.23], ["2011-08-21",593], ["2011-08-22",560.25], ["2011-08-23",857.8], ["2011-08-24",939.5], 
-            ["2011-08-25",1256.14], ["2011-08-26",1033.01], ["2011-08-27",811.63], ["2011-08-28",735.01], ["2011-08-29",985.35], 
-            ["2011-08-30",1401.58], ["2011-08-31",1177], ["2011-09-01",1023.66], ["2011-09-02",1442.31], ["2011-09-03",1299.24], 
-            ["2011-09-04",1306.29], ["2011-09-06",1800.62], ["2011-09-07",1607.18], ["2011-09-08",1702.38], 
-            ["2011-09-09",4118.48], ["2011-09-10",1988.11], ["2011-09-11",1485.89], ["2011-09-12",2681.97], 
-            ["2011-09-13",1679.56], ["2011-09-14",3538.43], ["2011-09-15",3118.01], ["2011-09-16",4198.97], 
-            ["2011-09-17",3020.44], ["2011-09-18",3383.45], ["2011-09-19",2148.91], ["2011-09-20",3058.82], 
-            ["2011-09-21",3752.88], ["2011-09-22",3972.03], ["2011-09-23",2923.82], ["2011-09-24",2920.59], 
-            ["2011-09-25",2785.93], ["2011-09-26",4329.7], ["2011-09-27",3493.72], ["2011-09-28",4440.55], 
-            ["2011-09-29",5235.81], ["2011-09-30",6473.25]];
-
-            var plot1 = $.jqplot("chart1", [prevYear, currYear], {
-                seriesColors: ["rgba(78, 135, 194, 0.7)", "rgb(211, 235, 59)"],
-                title: 'Monthly TurnKey Revenue',
-                highlighter: {
-                    show: true,
-                    sizeAdjust: 1,
-                    tooltipOffset: 9
-                },
-                grid: {
-                    background: 'rgba(57,57,57,0.0)',
-                    drawBorder: false,
-                    shadow: false,
-                    gridLineColor: '#666666',
-                    gridLineWidth: 2
-                },
-                legend: {
-                    show: true,
-                    placement: 'outside'
-                },
-                seriesDefaults: {
-                    rendererOptions: {
-                        smooth: true,
-                        animation: {
-                            show: true
-                        }
-                    },
-                    showMarker: false
-                },
-                series: [
-                    {
-                        fill: true,
-                        label: '2010'
-                    },
-                    {
-                        label: '2011'
-                    }
-                ],
-                axesDefaults: {
-                    rendererOptions: {
-                        baselineWidth: 1.5,
-                        baselineColor: '#444444',
-                        drawBaseline: false
-                    }
-                },
-                axes: {
-                    xaxis: {
-                        renderer: $.jqplot.DateAxisRenderer,
-                        tickRenderer: $.jqplot.CanvasAxisTickRenderer,
-                        tickOptions: {
-                            formatString: "%b %e",
-                            angle: -30,
-                            textColor: '#dddddd'
-                        },
-                        min: "2011-08-01",
-                        max: "2011-09-30",
-                        tickInterval: "7 days",
-                        drawMajorGridlines: false
-                    },
-                    yaxis: {
-                        renderer: $.jqplot.LogAxisRenderer,
-                        pad: 0,
-                        rendererOptions: {
-                            minorTicks: 1
-                        },
-                        tickOptions: {
-                            formatString: "$%'d",
-                            showMark: false
-                        }
-                    }
-                }
-            });
-
-              $('.jqplot-highlighter-tooltip').addClass('ui-corner-all')
-        });
-
-
-    </script>
-
-
-<!-- End example scripts -->
-
-<!-- Don't touch this! -->
-
-
-    <script class="include" type="text/javascript" src="../jquery.jqplot.min.js"></script>
-    <script type="text/javascript" src="syntaxhighlighter/scripts/shCore.min.js"></script>
-    <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushJScript.min.js"></script>
-    <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushXml.min.js"></script>
-<!-- End Don't touch this! -->
-
-<!-- Additional plugins go here -->
-    <script class="include" type="text/javascript" src="../plugins/jqplot.dateAxisRenderer.min.js"></script>
-    <script class="include" type="text/javascript" src="../plugins/jqplot.logAxisRenderer.min.js"></script>
-    <script class="include" type="text/javascript" src="../plugins/jqplot.canvasTextRenderer.min.js"></script>
-    <script class="include" type="text/javascript" src="../plugins/jqplot.canvasAxisTickRenderer.min.js"></script>
-    <script class="include" type="text/javascript" src="../plugins/jqplot.highlighter.min.js"></script>
-
-<!-- End additional plugins -->
-
-
-	</div>	
-	<script type="text/javascript" src="example.min.js"></script>
-
-</body>
-
-
-</html>
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/dashedLines.html b/wqflask/wqflask/static/packages/jqplot/examples/dashedLines.html
deleted file mode 100755
index d1bf48fb..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/dashedLines.html
+++ /dev/null
@@ -1,227 +0,0 @@
-<!DOCTYPE html>
-
-<html>
-<head>
-	
-	<title>Dashed Lines with Smoothing</title>
-
-    <link class="include" rel="stylesheet" type="text/css" href="../jquery.jqplot.min.css" />
-    <link rel="stylesheet" type="text/css" href="examples.min.css" />
-    <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shCoreDefault.min.css" />
-    <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shThemejqPlot.min.css" />
-  
-  <!--[if lt IE 9]><script language="javascript" type="text/javascript" src="../excanvas.js"></script><![endif]-->
-    <script class="include" type="text/javascript" src="../jquery.min.js"></script>
-    
-   
-</head>
-<body>
-    <div class="logo">
-   <div class="nav">
-   <a class="nav" href="../../../index.php"><span>&gt;</span>Home</a>
-   <a class="nav"  href="../../../docs/"><span>&gt;</span>Docs</a>
-   <a class="nav"  href="../../download/"><span>&gt;</span>Download</a>
-   <a class="nav" href="../../../info.php"><span>&gt;</span>Info</a>
-   <a class="nav"  href="../../../donate.php"><span>&gt;</span>Donate</a>
-   </div>
-</div>
-    <div class="example-content">
-
-    <div class="example-nav">
-  <a href="dashboardWidget.html">Previous</a> <a href="./">Examples</a> <a href="data-renderers.html">Next</a></div>
-
-      
-<!-- Example scripts go here -->
-
-  <style type="text/css">
-    .jqplot-target {
-        margin-bottom: 2em;
-    }
-    
-    p {
-        margin: 2em 0;
-    }  
-  </style>
-
-         
-    <div id="chart1" style="margin-top:20px; margin-left:20px; width:600px; height:300px;"></div>
-        
-    <div id="chart1b" style="margin-top:20px; margin-left:20px; width:600px; height:300px;"></div>
-
-    <div id="chart2" style="margin-top:20px; margin-left:20px; width:600px; height:300px;"></div>
-
-    <div id="chart3" style="margin-top:20px; margin-left:20px; width:600px; height:300px;"></div>
-
-    <div id="chart4" style="margin-top:20px; margin-left:20px; width:600px; height:300px;"></div>
-
-    <div id="chart4b" style="margin-top:20px; margin-left:20px; width:600px; height:300px;"></div>
-
-    <div id="chart5" style="margin-top:20px; margin-left:20px; width:600px; height:300px;"></div>
-
-  <script class="code" type="text/javascript">
-
-    $(document).ready(function () {
-      s1 = [[0, 2], [1, 6], [2, 7], [3, 10]];
-
-      // Lines can be drawn as solid, dashed or dotted with the "linePattern" option.
-      // The default is "solid".  Other basic options are "dashed" and "dotted".
-
-      plot1 = $.jqplot("chart1", [s1], {
-        seriesDefaults:{
-            linePattern: 'dashed',
-            showMarker: false,
-            shadow: false
-        }
-      });
-    });
-</script>
-  
-  <script class="code" type="text/javascript">
-
-    $(document).ready(function () {
-
-      s1 = [[0, 2], [1, 6], [2, 7], [3, 10]];
-
-      // Size of the dashes is proportional to the width of the line.
-
-      plot1b = $.jqplot("chart1b", [s1], {
-        seriesDefaults:{
-            linePattern: 'dashed',
-            lineWidth: 7,
-            showMarker: false,
-            shadow: false
-        }
-      });
-    });
-</script>
-
-  
-  <script class="code" type="text/javascript">
-    $(document).ready(function () {
-      s2 = [[0, 6.29], [0.1, 8.21], [0.2, 8.92], [0.3, 7.33], [0.4, 7.91], [0.5, 3.6], [0.6, 6.88], 
-      [0.7, 1.5], [0.8, 0.08], [0.9, 6.36], [1, 0.5], [1.1, 9.14], [1.2, 6.23], [1.3, 2.66], 
-      [1.4, 9.9], [1.5, 7.44], [1.6, 7.82], [1.7, 8.57], [1.8, 3.99], [1.9, 3.83], [2, 6.78], 
-      [2.1, 7.63], [2.2, 6.94], [2.3, 1.24], [2.4, 2.25], [2.5, 0.67], [2.6, 6.73], [2.7, 2.25], 
-      [2.8, 7.72], [2.9, 9.36], [3, 8.49]];
-
-      // Here is the default dotted line.
-
-      plot2 = $.jqplot("chart2", [s2], {
-        seriesDefaults:{
-            linePattern: 'dotted',
-            showMarker: false,
-            shadow: false
-        }
-      });
-    });
-</script>
-
-  
-  <script class="code" type="text/javascript">
-    $(document).ready(function () {
-
-      // Dashes and dots work with smoothed lines as well.
-
-      plot3 = $.jqplot("chart3", [s2], {
-        seriesDefaults:{
-            linePattern: 'dashed',
-            showMarker: false,
-            shadow: false,
-            rendererOptions: {
-              smooth: true
-            }
-        }
-      });
-    });
-</script>
-
-  
-  <script class="code" type="text/javascript">
-    $(document).ready(function () {
-
-      // A user defined linePattern can be specified as well.  The format
-      // of a linePattern definition is an array like [dash length, gap length, ...].
-      // The line looks best when the line pattern array has an even number
-      // of elements, so it begins with a dash and ends with a gap.
-      // The dash and gap lengths are scaled to the line thickness.
-
-      plot4 = $.jqplot("chart4", [s2], {
-        seriesDefaults:{
-            linePattern: [4, 3, 1, 3, 1, 3],
-            showMarker: false,
-            shadow: false,
-            rendererOptions: {
-              smooth: true
-            }
-        }
-      });
-    });
-</script>
-
-  
-<script class="code" type="text/javascript">
-    $(document).ready(function () {
-
-      // The linePattern option also accepts a shorthand string 
-      // notation of dash (-) and dot (.) characters to create
-      // a customized pattern.
-
-      plot4b = $.jqplot("chart4b", [s2], {
-        seriesDefaults:{
-            linePattern: '-.',
-            showMarker: false,
-            shadow: false,
-            rendererOptions: {
-              smooth: true
-            }
-        }
-      });
-    });
-</script>
-  
-  <script class="code" type="text/javascript">
-    $(document).ready(function () {
-
-      // The default dash length and gap length can be controlled 
-      // with the dashLength and gapLength config parameters.
-
-      $.jqplot.config.dashLength = 5;
-      $.jqplot.config.gapLength = 2;
-
-      plot5 = $.jqplot("chart5", [s2], {
-        seriesDefaults:{
-            linePattern: 'dashed',
-            showMarker: false,
-            shadow: false,
-            rendererOptions: {
-              smooth: true
-            }
-        }
-      });
-    });
-</script>
-
-
-<!-- End example scripts -->
-
-<!-- Don't touch this! -->
-
-
-    <script class="include" type="text/javascript" src="../jquery.jqplot.min.js"></script>
-    <script type="text/javascript" src="syntaxhighlighter/scripts/shCore.min.js"></script>
-    <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushJScript.min.js"></script>
-    <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushXml.min.js"></script>
-<!-- End Don't touch this! -->
-
-<!-- Additional plugins go here -->
-
-<!-- End additional plugins -->
-
-
-	</div>	
-	<script type="text/javascript" src="example.min.js"></script>
-
-</body>
-
-
-</html>
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/data-renderers.html b/wqflask/wqflask/static/packages/jqplot/examples/data-renderers.html
deleted file mode 100755
index ba835d58..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/data-renderers.html
+++ /dev/null
@@ -1,144 +0,0 @@
-<!DOCTYPE html>
-
-<html>
-<head>
-	
-	<title>AJAX and JSON Data Loading via Data Renderers</title>
-
-    <link class="include" rel="stylesheet" type="text/css" href="../jquery.jqplot.min.css" />
-    <link rel="stylesheet" type="text/css" href="examples.min.css" />
-    <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shCoreDefault.min.css" />
-    <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shThemejqPlot.min.css" />
-  
-  <!--[if lt IE 9]><script language="javascript" type="text/javascript" src="../excanvas.js"></script><![endif]-->
-    <script class="include" type="text/javascript" src="../jquery.min.js"></script>
-    
-   
-</head>
-<body>
-    <div class="logo">
-   <div class="nav">
-   <a class="nav" href="../../../index.php"><span>&gt;</span>Home</a>
-   <a class="nav"  href="../../../docs/"><span>&gt;</span>Docs</a>
-   <a class="nav"  href="../../download/"><span>&gt;</span>Download</a>
-   <a class="nav" href="../../../info.php"><span>&gt;</span>Info</a>
-   <a class="nav"  href="../../../donate.php"><span>&gt;</span>Donate</a>
-   </div>
-</div>
-    <div class="example-content">
-
-    <div class="example-nav">
-  <a href="dashedLines.html">Previous</a> <a href="./">Examples</a> <a href="date-axes.html">Next</a></div>
-
-      
-<!-- Example scripts go here -->
-
-<p>Data renderers allow jqPlot to pull data from any external source (e.g. a function implementing an AJAX call).  Simply assign the external source to the "dataRenderer" plot option.  The only requirement on data renderers is that it must return a valid jqPlot data array.</p>
-
-<div id="chart1" style="height:300px; width:500px;"></div>
-
-<pre class="code prettyprint brush: js"></pre>
-
-
-<p>Data renderers get passed options by the plot.  The signiture for a data renderer is:</p>
-
-
-<pre class="brush: js">
-function(userData, plotObject, options) {
-  ...
-  return data;
-}
-</pre>
-
-
-<p>Where userData is whatever data was passed into the plot, plotObject is a reference back to the plot itself, and options are any options passed into the plots "dataRendererOption" option.  The following example shows a more complicated example which uses ajax pulls data from an external json data source.</p>
-
-<div id="chart2" style="height:300px; width:500px;"></div>
-
-<pre class="code prettyprint brush: js"></pre>
-
-
-<script class="code" type="text/javascript">
-$(document).ready(function(){
-  // Our data renderer function, returns an array of the form:
-  // [[[x1, sin(x1)], [x2, sin(x2)], ...]]
-  var sineRenderer = function() {
-    var data = [[]];
-    for (var i=0; i<13; i+=0.5) {
-      data[0].push([i, Math.sin(i)]);
-    }
-    return data;
-  };
-
-  // we have an empty data array here, but use the "dataRenderer"
-  // option to tell the plot to get data from our renderer.
-  var plot1 = $.jqplot('chart1',[],{
-      title: 'Sine Data Renderer',
-      dataRenderer: sineRenderer
-  });
-});
-</script>
-
-  
-<script class="code" type="text/javascript">
-$(document).ready(function(){
-  // Our ajax data renderer which here retrieves a text file.
-  // it could contact any source and pull data, however.
-  // The options argument isn't used in this renderer.
-  var ajaxDataRenderer = function(url, plot, options) {
-    var ret = null;
-    $.ajax({
-      // have to use synchronous here, else the function 
-      // will return before the data is fetched
-      async: false,
-      url: url,
-      dataType:"json",
-      success: function(data) {
-        ret = data;
-      }
-    });
-    return ret;
-  };
-
-  // The url for our json data
-  var jsonurl = "./jsondata.txt";
-
-  // passing in the url string as the jqPlot data argument is a handy
-  // shortcut for our renderer.  You could also have used the
-  // "dataRendererOptions" option to pass in the url.
-  var plot2 = $.jqplot('chart2', jsonurl,{
-    title: "AJAX JSON Data Renderer",
-    dataRenderer: ajaxDataRenderer,
-    dataRendererOptions: {
-      unusedOptionalUrl: jsonurl
-    }
-  });
-});
-</script>
-
-
-<!-- End example scripts -->
-
-<!-- Don't touch this! -->
-
-
-    <script class="include" type="text/javascript" src="../jquery.jqplot.min.js"></script>
-    <script type="text/javascript" src="syntaxhighlighter/scripts/shCore.min.js"></script>
-    <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushJScript.min.js"></script>
-    <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushXml.min.js"></script>
-<!-- End Don't touch this! -->
-
-<!-- Additional plugins go here -->
-
-    <script class="include" language="javascript" type="text/javascript" src="../plugins/jqplot.json2.min.js"></script>
-
-<!-- End additional plugins -->
-
-
-	</div>	
-	<script type="text/javascript" src="example.min.js"></script>
-
-</body>
-
-
-</html>
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/date-axes.html b/wqflask/wqflask/static/packages/jqplot/examples/date-axes.html
deleted file mode 100755
index 4fa3f620..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/date-axes.html
+++ /dev/null
@@ -1,107 +0,0 @@
-<!DOCTYPE html>
-
-<html>
-<head>
-	
-	<title>Date Axes</title>
-
-    <link class="include" rel="stylesheet" type="text/css" href="../jquery.jqplot.min.css" />
-    <link rel="stylesheet" type="text/css" href="examples.min.css" />
-    <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shCoreDefault.min.css" />
-    <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shThemejqPlot.min.css" />
-  
-  <!--[if lt IE 9]><script language="javascript" type="text/javascript" src="../excanvas.js"></script><![endif]-->
-    <script class="include" type="text/javascript" src="../jquery.min.js"></script>
-    
-   
-</head>
-<body>
-    <div class="logo">
-   <div class="nav">
-   <a class="nav" href="../../../index.php"><span>&gt;</span>Home</a>
-   <a class="nav"  href="../../../docs/"><span>&gt;</span>Docs</a>
-   <a class="nav"  href="../../download/"><span>&gt;</span>Download</a>
-   <a class="nav" href="../../../info.php"><span>&gt;</span>Info</a>
-   <a class="nav"  href="../../../donate.php"><span>&gt;</span>Donate</a>
-   </div>
-</div>
-    <div class="example-content">
-
-    <div class="example-nav">
-  <a href="data-renderers.html">Previous</a> <a href="./">Examples</a> <a href="dateAxisLogAxisZooming.html">Next</a></div>
-
-      
-<!-- Example scripts go here -->
-<p>Date axes support is provided through the dateAxisRenderer plugin.  Date axes expand javascripts native date handling capabilities.  This allow dates to be input in almost any unambiguous form, not just in milliseconds!</p>
-
-<p><em>Note, although jqPlot will parse most any human readable date, it is safest to use javascript time stamps when possible.  Also, it is best to specify a date and time and not just a date alone.  This is due to inconsistent browser handling of local time vs. UTC with bare dates.</em></p>
-
-<div id="chart1" style="height:300px; width:650px;"></div>
-
-<pre class="code prettyprint brush: js"></pre>
-
-<p>Date Axes also provide powerful formatting features.  This allows custom formatter strings to be used to format axis tick labels precisely the way you want.</p>
-
-<div id="chart2" style="height:300px; width:650px;"></div>
-
-<pre class="code prettyprint brush: js"></pre>
-  
-<script class="code" type="text/javascript">
-$(document).ready(function(){
-  var line1=[['2008-08-12 4:00PM',4], ['2008-09-12 4:00PM',6.5], ['2008-10-12 4:00PM',5.7], ['2008-11-12 4:00PM',9], ['2008-12-12 4:00PM',8.2]];
-  var plot1 = $.jqplot('chart1', [line1], {
-    title:'Default Date Axis',
-    axes:{
-        xaxis:{
-            renderer:$.jqplot.DateAxisRenderer
-        }
-    },
-    series:[{lineWidth:4, markerOptions:{style:'square'}}]
-  });
-});
-</script>
-
-
-<script class="code" type="text/javascript">
-$(document).ready(function(){
-  var line1=[['2008-06-30 8:00AM',4], ['2008-7-14 8:00AM',6.5], ['2008-7-28 8:00AM',5.7], ['2008-8-11 8:00AM',9], ['2008-8-25 8:00AM',8.2]];
-  var plot2 = $.jqplot('chart2', [line1], {
-      title:'Customized Date Axis', 
-      axes:{
-        xaxis:{
-          renderer:$.jqplot.DateAxisRenderer, 
-          tickOptions:{formatString:'%b %#d, %#I %p'},
-          min:'June 16, 2008 8:00AM', 
-          tickInterval:'2 weeks'
-        }
-      },
-      series:[{lineWidth:4, markerOptions:{style:'square'}}]
-  });
-});
-</script>
-
-<!-- End example scripts -->
-
-<!-- Don't touch this! -->
-
-
-    <script class="include" type="text/javascript" src="../jquery.jqplot.min.js"></script>
-    <script type="text/javascript" src="syntaxhighlighter/scripts/shCore.min.js"></script>
-    <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushJScript.min.js"></script>
-    <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushXml.min.js"></script>
-<!-- End Don't touch this! -->
-
-<!-- Additional plugins go here -->
-
-    <script class="include" language="javascript" type="text/javascript" src="../plugins/jqplot.dateAxisRenderer.min.js"></script>
-
-<!-- End additional plugins -->
-
-
-	</div>	
-	<script type="text/javascript" src="example.min.js"></script>
-
-</body>
-
-
-</html>
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/dateAxisLogAxisZooming.html b/wqflask/wqflask/static/packages/jqplot/examples/dateAxisLogAxisZooming.html
deleted file mode 100755
index 81f0f1c7..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/dateAxisLogAxisZooming.html
+++ /dev/null
@@ -1,101 +0,0 @@
-<!DOCTYPE html>
-
-<html>
-<head>
-	
-	<title>Zooming with Date and Log Axes</title>
-
-    <link class="include" rel="stylesheet" type="text/css" href="../jquery.jqplot.min.css" />
-    <link rel="stylesheet" type="text/css" href="examples.min.css" />
-    <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shCoreDefault.min.css" />
-    <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shThemejqPlot.min.css" />
-  
-  <!--[if lt IE 9]><script language="javascript" type="text/javascript" src="../excanvas.js"></script><![endif]-->
-    <script class="include" type="text/javascript" src="../jquery.min.js"></script>
-    
-   
-</head>
-<body>
-    <div class="logo">
-   <div class="nav">
-   <a class="nav" href="../../../index.php"><span>&gt;</span>Home</a>
-   <a class="nav"  href="../../../docs/"><span>&gt;</span>Docs</a>
-   <a class="nav"  href="../../download/"><span>&gt;</span>Download</a>
-   <a class="nav" href="../../../info.php"><span>&gt;</span>Info</a>
-   <a class="nav"  href="../../../donate.php"><span>&gt;</span>Donate</a>
-   </div>
-</div>
-    <div class="example-content">
-
-    <div class="example-nav">
-  <a href="date-axes.html">Previous</a> <a href="./">Examples</a> <a href="dateAxisRenderer.html">Next</a></div>
-
-    <div class="example-plot" id="chart1" style="width: 700px; height: 400px;"></div>
-  
-<!-- Example scripts go here -->
-
-<script type="text/javascript" src="yahooData.js" ></script>
-
-<script type="text/javascript" class="code">
-$(document).ready(function(){
-    plot1 = $.jqplot('chart1', [yahoo], { 
-        series: [{ 
-            renderer: $.jqplot.OHLCRenderer,
-            rendererOptions: {
-                candleStick: true
-            } 
-        }], 
-        axes: { 
-            xaxis: { 
-                renderer:$.jqplot.DateAxisRenderer,
-                rendererOptions: {
-                    tickInset: 0
-                },
-                tickRenderer: $.jqplot.CanvasAxisTickRenderer,
-                tickOptions: {
-                  angle: -30
-                } 
-            }, 
-            yaxis: {  
-                renderer: $.jqplot.LogAxisRenderer,
-                tickOptions:{ prefix: '$' } 
-            } 
-        }, 
-        cursor:{
-            show: true, 
-            zoom: true
-        } 
-    });
-});
-</script>
-
-<!-- End example scripts -->
-
-<!-- Don't touch this! -->
-
-
-    <script class="include" type="text/javascript" src="../jquery.jqplot.min.js"></script>
-    <script type="text/javascript" src="syntaxhighlighter/scripts/shCore.min.js"></script>
-    <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushJScript.min.js"></script>
-    <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushXml.min.js"></script>
-<!-- End Don't touch this! -->
-
-<!-- Additional plugins go here -->
-
-    <script class="include" type="text/javascript" src="../plugins/jqplot.dateAxisRenderer.min.js"></script>
-    <script class="include" type="text/javascript" src="../plugins/jqplot.logAxisRenderer.min.js"></script>
-    <script class="include" type="text/javascript" src="../plugins/jqplot.canvasTextRenderer.min.js"></script>
-    <script class="include" type="text/javascript" src="../plugins/jqplot.canvasAxisTickRenderer.min.js"></script>
-    <script class="include" type="text/javascript" src="../plugins/jqplot.ohlcRenderer.min.js"></script>
-    <script class="include" type="text/javascript" src="../plugins/jqplot.cursor.min.js"></script>
-
-<!-- End additional plugins -->
-
-
-	</div>	
-	<script type="text/javascript" src="example.min.js"></script>
-
-</body>
-
-
-</html>
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/dateAxisRenderer.html b/wqflask/wqflask/static/packages/jqplot/examples/dateAxisRenderer.html
deleted file mode 100755
index b0b72fba..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/dateAxisRenderer.html
+++ /dev/null
@@ -1,292 +0,0 @@
-<!DOCTYPE html>
-
-<html>
-<head>
-	
-	<title>Date Axes</title>
-
-    <link class="include" rel="stylesheet" type="text/css" href="../jquery.jqplot.min.css" />
-    <link rel="stylesheet" type="text/css" href="examples.min.css" />
-    <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shCoreDefault.min.css" />
-    <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shThemejqPlot.min.css" />
-  
-  <!--[if lt IE 9]><script language="javascript" type="text/javascript" src="../excanvas.js"></script><![endif]-->
-    <script class="include" type="text/javascript" src="../jquery.min.js"></script>
-    
-   
-</head>
-<body>
-    <div class="logo">
-   <div class="nav">
-   <a class="nav" href="../../../index.php"><span>&gt;</span>Home</a>
-   <a class="nav"  href="../../../docs/"><span>&gt;</span>Docs</a>
-   <a class="nav"  href="../../download/"><span>&gt;</span>Download</a>
-   <a class="nav" href="../../../info.php"><span>&gt;</span>Info</a>
-   <a class="nav"  href="../../../donate.php"><span>&gt;</span>Donate</a>
-   </div>
-</div>
-    <div class="example-content">
-
-    <div class="example-nav">
-  <a href="dateAxisLogAxisZooming.html">Previous</a> <a href="./">Examples</a> <a href="fillBetweenLines.html">Next</a></div>
-
-      
-<!-- Example scripts go here -->
-
-<p class="text">Date axis renderer with default settings.  Ticks are given wider spacing by default since date axes typically have longer tick labels.</p>
-<div id="chart1" style="margin:20px;height:240px; width:640px;"></div>
-<p class="text">Date axis recognizes rotated tick labels.  It will space ticks a little closer when labels are rotated.</p>
-<div id="chart2" style="margin:20px;height:240px; width:640px;"></div>
-<p class="text">If you want more or less ticks, specify the "numberTicks" options.  Date axes will try to produce the desired number of ticks, but may adjust to get a nice interval.</p>
-<div id="chart3" style="margin:20px;height:240px; width:640px;"></div>
-
-<script type="text/javascript">
-    var ohlc = [['07/06/09', 138.7, 139.68, 135.18, 135.4],
-    ['06/29/09', 143.46, 144.66, 139.79, 140.02],
-    ['06/22/09', 140.67, 143.56, 132.88, 142.44],
-    ['06/15/09', 136.01, 139.5, 134.53, 139.48],
-    ['06/08/09', 143.82, 144.56, 136.04, 136.97],
-    ['06/01/09', 136.47, 146.4, 136, 144.67],
-    ['05/26/09', 124.76, 135.9, 124.55, 135.81],
-    ['05/18/09', 123.73, 129.31, 121.57, 122.5],
-    ['05/11/09', 127.37, 130.96, 119.38, 122.42],
-    ['05/04/09', 128.24, 133.5, 126.26, 129.19],
-    ['04/27/09', 122.9, 127.95, 122.66, 127.24],
-    ['04/20/09', 121.73, 127.2, 118.6, 123.9],
-    ['04/13/09', 120.01, 124.25, 115.76, 123.42],
-    ['04/06/09', 114.94, 120, 113.28, 119.57],
-    ['03/30/09', 104.51, 116.13, 102.61, 115.99],
-    ['03/23/09', 102.71, 109.98, 101.75, 106.85],
-    ['03/16/09', 96.53, 103.48, 94.18, 101.59],
-    ['03/09/09', 84.18, 97.2, 82.57, 95.93],
-    ['03/02/09', 88.12, 92.77, 82.33, 85.3],
-    ['02/23/09', 91.65, 92.92, 86.51, 89.31],
-    ['02/17/09', 96.87, 97.04, 89, 91.2],
-    ['02/09/09', 100, 103, 95.77, 99.16],
-    ['02/02/09', 89.1, 100, 88.9, 99.72],
-    ['01/26/09', 88.86, 95, 88.3, 90.13],
-    ['01/20/09', 81.93, 90, 78.2, 88.36],
-    ['01/12/09', 90.46, 90.99, 80.05, 82.33],
-    ['01/05/09', 93.17, 97.17, 90.04, 90.58],
-    ['12/29/08', 86.52, 91.04, 84.72, 90.75],
-    ['12/22/08', 90.02, 90.03, 84.55, 85.81],
-    ['12/15/08', 95.99, 96.48, 88.02, 90],
-    ['12/08/08', 97.28, 103.6, 92.53, 98.27],
-    ['12/01/08', 91.3, 96.23, 86.5, 94],
-    ['11/24/08', 85.21, 95.25, 84.84, 92.67],
-    ['11/17/08', 88.48, 91.58, 79.14, 82.58],    
-    ['11/10/08', 100.17, 100.4, 86.02, 90.24],
-    ['11/03/08', 105.93, 111.79, 95.72, 98.24],
-    ['10/27/08', 95.07, 112.19, 91.86, 107.59],
-    ['10/20/08', 99.78, 101.25, 90.11, 96.38],
-    ['10/13/08', 104.55, 116.4, 85.89, 97.4],
-    ['10/06/08', 91.96, 101.5, 85, 96.8],
-    ['09/29/08', 119.62, 119.68, 94.65, 97.07],
-    ['09/22/08', 139.94, 140.25, 123, 128.24],
-    ['09/15/08', 142.03, 147.69, 120.68, 140.91],
-    ['09/08/08', 164.57, 164.89, 146, 148.94]
-    ];
-     
-    var hlc = [['07/06/09', 139.68, 135.18, 135.4],
-    ['06/29/09', 144.66, 139.79, 140.02],
-    ['06/22/09', 143.56, 132.88, 142.44],
-    ['06/15/09', 139.5, 134.53, 139.48],
-    ['06/08/09', 144.56, 136.04, 136.97],
-    ['06/01/09', 146.4, 136, 144.67],
-    ['05/26/09', 135.9, 124.55, 135.81],
-    ['05/18/09', 129.31, 121.57, 122.5],
-    ['05/11/09', 130.96, 119.38, 122.42],
-    ['05/04/09', 133.5, 126.26, 129.19],
-    ['04/27/09', 127.95, 122.66, 127.24],
-    ['04/20/09', 127.2, 118.6, 123.9],
-    ['04/13/09', 124.25, 115.76, 123.42],
-    ['04/06/09', 120, 113.28, 119.57],
-    ['03/30/09', 116.13, 102.61, 115.99],
-    ['03/23/09',  109.98, 101.75, 106.85],
-    ['03/16/09', 103.48, 94.18, 101.59],
-    ['03/09/09', 97.2, 82.57, 95.93],
-    ['03/02/09', 92.77, 82.33, 85.3],
-    ['02/23/09', 92.92, 86.51, 89.31],
-    ['02/17/09', 97.04, 89, 91.2],
-    ['02/09/09', 103, 95.77, 99.16],
-    ['02/02/09', 100, 88.9, 99.72],
-    ['01/26/09', 95, 88.3, 90.13],
-    ['01/20/09', 90, 78.2, 88.36],
-    ['01/12/09', 90.99, 80.05, 82.33],
-    ['01/05/09', 97.17, 90.04, 90.58],
-    ['12/29/08', 91.04, 84.72, 90.75],
-    ['12/22/08', 90.03, 84.55, 85.81],
-    ['12/15/08', 96.48, 88.02, 90],
-    ['12/08/08', 103.6, 92.53, 98.27],
-    ['12/01/08', 96.23, 86.5, 94],
-    ['11/24/08', 95.25, 84.84, 92.67],
-    ['11/17/08', 91.58, 79.14, 82.58],  
-    ['11/10/08', 100.4, 86.02, 90.24],
-    ['11/03/08', 111.79, 95.72, 98.24],
-    ['10/27/08', 112.19, 91.86, 107.59],
-    ['10/20/08', 101.25, 90.11, 96.38],
-    ['10/13/08', 116.4, 85.89, 97.4],
-    ['10/06/08', 101.5, 85, 96.8],
-    ['09/29/08', 119.68, 94.65, 97.07],
-    ['09/22/08', 140.25, 123, 128.24],
-    ['09/15/08', 147.69, 120.68, 140.91],
-    ['09/08/08', 164.89, 146, 148.94]
-    ];
-</script>
-
-<script class="code" type="text/javascript">
-$(document).ready(function(){
-    title: "CandleStick Chart",
-    // Globally enable plugins like cursor and highlighter
-    $.jqplot.config.enablePlugins = true;
-
-    // for 2 digit years, set the default centry to 2000.
-    $.jsDate.config.defaultCentury = 2000;
-    
-    plot1 = $.jqplot('chart1',[ohlc],{
-        axes: {
-          xaxis: {
-              renderer:$.jqplot.DateAxisRenderer
-          },
-          yaxis: {
-              tickOptions:{prefix: '$'}
-          }
-        },
-        series: [
-            {
-                renderer:$.jqplot.OHLCRenderer, 
-                rendererOptions:{ 
-                    candleStick:true 
-                }
-            }
-        ],
-        highlighter: {
-            showMarker:false,
-            tooltipAxes: 'xy',
-            yvalues: 4,
-            formatString:'<table class="jqplot-highlighter"> \
-                <tr><td>date:</td><td>%s</td></tr> \
-                <tr><td>open:</td><td>%s</td></tr> \
-                <tr><td>hi:</td><td>%s</td></tr> \
-                <tr><td>low:</td><td>%s</td></tr> \
-                <tr><td>close:</td><td>%s</td></tr> \
-            </table>'
-        }
-    });
-});
-</script>
-
-<script class="code" type="text/javascript">
-$(document).ready(function(){
-        
-    plot2 = $.jqplot('chart2',[ohlc],{
-        title: 'OHLC chart',
-        axes: {
-            xaxis: {
-                renderer:$.jqplot.DateAxisRenderer,
-                tickRenderer: $.jqplot.CanvasAxisTickRenderer,
-                tickOptions: {
-                    angle: -30
-                }
-            },
-            yaxis: {
-                tickOptions:{
-                    prefix: '$'
-                }
-            }
-        },
-        series: [
-            {
-                renderer:$.jqplot.OHLCRenderer
-            }
-        ],
-        highlighter: {
-            showMarker:false,
-            tooltipAxes: 'xy',
-            yvalues: 4,
-            formatString:'<table class="jqplot-highlighter"> \
-                <tr><td>date:</td><td>%s</td></tr> \
-                <tr><td>open:</td><td>%s</td></tr> \
-                <tr><td>hi:</td><td>%s</td></tr> \
-                <tr><td>low:</td><td>%s</td></tr> \
-                <tr><td>close:</td><td>%s</td></tr> \
-            </table>'
-        }
-    });
-});
-</script>
-
-<script class="code" type="text/javascript">
-$(document).ready(function(){
-        
-    plot3 = $.jqplot('chart3',[ohlc],{
-        axesDefaults:{},
-        axes: {
-            xaxis: {
-                renderer:$.jqplot.DateAxisRenderer,
-                tickRenderer: $.jqplot.CanvasAxisTickRenderer,
-                numberTicks: 7,
-                tickOptions: {
-                    angle: -30
-                }
-            },
-            yaxis: {
-                tickOptions:{
-                    prefix: '$'
-                }
-            }
-        },
-        series: [
-            {
-                renderer:$.jqplot.OHLCRenderer, 
-                rendererOptions:{ 
-                    candleStick:true 
-                }
-            }
-        ],
-        highlighter: {
-            showMarker:false,
-            tooltipAxes: 'xy',
-            yvalues: 4,
-            formatString:'<table class="jqplot-highlighter"> \
-                <tr><td>date:</td><td>%s</td></tr> \
-                <tr><td>open:</td><td>%s</td></tr> \
-                <tr><td>hi:</td><td>%s</td></tr> \
-                <tr><td>low:</td><td>%s</td></tr> \
-                <tr><td>close:</td><td>%s</td></tr> \
-            </table>'
-        }
-    });
-});
-</script>
-
-<!-- End example scripts -->
-
-<!-- Don't touch this! -->
-
-
-    <script class="include" type="text/javascript" src="../jquery.jqplot.min.js"></script>
-    <script type="text/javascript" src="syntaxhighlighter/scripts/shCore.min.js"></script>
-    <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushJScript.min.js"></script>
-    <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushXml.min.js"></script>
-<!-- End Don't touch this! -->
-
-<!-- Additional plugins go here -->
-
-    <script class="include" type="text/javascript" src="../plugins/jqplot.dateAxisRenderer.min.js"></script>
-    <script class="include" type="text/javascript" src="../plugins/jqplot.categoryAxisRenderer.min.js"></script>
-    <script class="include" type="text/javascript" src="../plugins/jqplot.canvasTextRenderer.min.js"></script>
-    <script class="include" type="text/javascript" src="../plugins/jqplot.canvasAxisTickRenderer.min.js"></script>
-    <script class="include" type="text/javascript" src="../plugins/jqplot.ohlcRenderer.min.js"></script>
-    <script class="include" type="text/javascript" src="../plugins/jqplot.highlighter.min.js"></script>
-
-<!-- End additional plugins -->
-
-
-	</div>	
-	<script type="text/javascript" src="example.min.js"></script>
-
-</body>
-
-
-</html>
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/example.js b/wqflask/wqflask/static/packages/jqplot/examples/example.js
deleted file mode 100755
index ff85cd20..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/example.js
+++ /dev/null
@@ -1,114 +0,0 @@
-$(document).ready(function(){
-    if (!$.jqplot._noCodeBlock) {
-        $('script.code').each(function(index) {
-            if ($('pre.code').eq(index).length  ) {
-                $('pre.code').eq(index).text($(this).html());
-            }
-            else {
-                // var str = $(this).text();
-                // $('div.jqplot-target').eq(index).after($('<pre class="code">'+str+'</pre>'));
-                var pre = $('<pre class="code prettyprint brush: js"></pre>');
-                $('div.jqplot-target').eq(index).after(pre);
-                pre.text($(this).html());
-                pre = null;
-            }
-        });
-
-        $('script.common').each(function(index) {
-            $('pre.common').eq(index).text($(this).html());
-        });
-
-        var elstr='';
-        if ($('script.include, link.include').length > 0) {
-
-            if ($('pre.include').length == 0) {
-                var temp = [
-                    '<div class="code prettyprint include">',
-                    '<p class="text">The charts on this page depend on the following files:</p>',
-                    '<pre class="include prettyprint brush: html gutter: false"></pre>',
-                    '</div>'
-                ];
-
-                temp = $(temp.join('\n'));
-                $('div.example-content').append(temp);
-                temp = null;
-            }      
-
-
-            $('script.include').each(function(index) {
-                if (elstr !== '') {
-                    elstr += '\n';
-                }
-                elstr += '<script type="text/javascript" src="'+$(this).attr('src')+'"></script>';
-            });
-
-            $('link.include').each(function(index) {
-                if (elstr !== '') {
-                    elstr += '\n';
-                }
-                elstr += '<link rel="stylesheet" type="text/css" hrf="'+$(this).attr('href')+'" />';
-            })
-
-            $('pre.include').text(elstr);
-        }
-
-        else {
-            $('pre.include').remove();
-            $('div.include').remove();
-        }
-    }
-
-    if (!$.jqplot.use_excanvas) {
-        $('div.jqplot-target').each(function(){
-            var outerDiv = $(document.createElement('div'));
-            var header = $(document.createElement('div'));
-            var div = $(document.createElement('div'));
-
-            outerDiv.append(header);
-            outerDiv.append(div);
-
-            outerDiv.addClass('jqplot-image-container');
-            header.addClass('jqplot-image-container-header');
-            div.addClass('jqplot-image-container-content');
-
-            header.html('Right Click to Save Image As...');
-
-            var close = $(document.createElement('a'));
-            close.addClass('jqplot-image-container-close');
-            close.html('Close');
-            close.attr('href', '#');
-            close.click(function() {
-                $(this).parents('div.jqplot-image-container').hide(500);
-            })
-            header.append(close);
-
-            $(this).after(outerDiv);
-            outerDiv.hide();
-
-            outerDiv = header = div = close = null;
-
-            if (!$.jqplot._noToImageButton) {
-                var btn = $(document.createElement('button'));
-                btn.text('View Plot Image');
-                btn.addClass('jqplot-image-button');
-                btn.bind('click', {chart: $(this)}, function(evt) {
-                    var imgelem = evt.data.chart.jqplotToImageElem();
-                    var div = $(this).nextAll('div.jqplot-image-container').first();
-                    div.children('div.jqplot-image-container-content').empty();
-                    div.children('div.jqplot-image-container-content').append(imgelem);
-                    div.show(500);
-                    div = null;
-                });
-
-                $(this).after(btn);
-                btn.after('<br />');
-                btn = null;
-            }
-        });
-    }
-
-    SyntaxHighlighter.defaults['toolbar'] = true;      
-    SyntaxHighlighter.all();
-
-    $(document).unload(function() {$('*').unbind(); });
-});
\ No newline at end of file
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/example.min.js b/wqflask/wqflask/static/packages/jqplot/examples/example.min.js
deleted file mode 100755
index 132e2295..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/example.min.js
+++ /dev/null
@@ -1 +0,0 @@
-$(document).ready(function(){if(!$.jqplot._noCodeBlock){$("script.code").each(function(c){if($("pre.code").eq(c).length){$("pre.code").eq(c).text($(this).html())}else{var d=$('<pre class="code prettyprint brush: js"></pre>');$("div.jqplot-target").eq(c).after(d);d.text($(this).html());d=null}});$("script.common").each(function(c){$("pre.common").eq(c).text($(this).html())});var b="";if($("script.include, link.include").length>0){if($("pre.include").length==0){var a=['<div class="code prettyprint include">','<p class="text">The charts on this page depend on the following files:</p>','<pre class="include prettyprint brush: html gutter: false"></pre>',"</div>"];a=$(a.join("\n"));$("div.example-content").append(a);a=null}$("script.include").each(function(c){if(b!==""){b+="\n"}b+='<script type="text/javascript" src="'+$(this).attr("src")+'"><\/script>'});$("link.include").each(function(c){if(b!==""){b+="\n"}b+='<link rel="stylesheet" type="text/css" hrf="'+$(this).attr("href")+'" />'});$("pre.include").text(b)}else{$("pre.include").remove();$("div.include").remove()}}if(!$.jqplot.use_excanvas){$("div.jqplot-target").each(function(){var d=$(document.createElement("div"));var g=$(document.createElement("div"));var f=$(document.createElement("div"));d.append(g);d.append(f);d.addClass("jqplot-image-container");g.addClass("jqplot-image-container-header");f.addClass("jqplot-image-container-content");g.html("Right Click to Save Image As...");var e=$(document.createElement("a"));e.addClass("jqplot-image-container-close");e.html("Close");e.attr("href","#");e.click(function(){$(this).parents("div.jqplot-image-container").hide(500)});g.append(e);$(this).after(d);d.hide();d=g=f=e=null;if(!$.jqplot._noToImageButton){var c=$(document.createElement("button"));c.text("View Plot Image");c.addClass("jqplot-image-button");c.bind("click",{chart:$(this)},function(h){var j=h.data.chart.jqplotToImageElem();var i=$(this).nextAll("div.jqplot-image-container").first();i.children("div.jqplot-image-container-content").empty();i.children("div.jqplot-image-container-content").append(j);i.show(500);i=null});$(this).after(c);c.after("<br />");c=null}})}SyntaxHighlighter.defaults.toolbar=true;SyntaxHighlighter.all();$(document).unload(function(){$("*").unbind()})});
\ No newline at end of file
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/examples.css b/wqflask/wqflask/static/packages/jqplot/examples/examples.css
deleted file mode 100755
index 9a084d0c..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/examples.css
+++ /dev/null
@@ -1,140 +0,0 @@
-body {
-    margin:0px;
-    padding: 0px;
-    font-family:"Trebuchet MS", Arial, Helvetica, sans-serif;
-}
-
-div.logo {
-  position: relative;
-  height: 94px;
-  padding: 0px;
-  margin-bottom: 30px;
-  top: 0px;
-  background-image: url('./images/logo.jpg');
-  background-repeat: no-repeat;
-  background-color: #292929;
-}
-
-div.nav {
-    position:relative;
-    top: 70px;
-    text-align: right;
-}
-
-a.nav span {
-    font-size: 11px;
-    position: relative;
-    bottom: 2px;
-}
-
-a.nav:visited {
-    text-decoration: none;
-    border: 0px;
-    color: #aaaaaa;
-}
-
-a.nav, a.nav:link {
-    border: 0px;
-    text-decoration: none;
-  font-family: Tahoma, "Helvetica Neue", "Trebuchet MS", Verdana, Arial, sans-serif;
-  font-size: 16px;
-  color: #aaaaaa; 
-  margin-right: 11px;
-}
-
-a.nav:hover {
-    text-decoration: none;
-    border: 0px;
-    color: #E0771C;
-}
-
-a.nav:active {
-    text-decoration: none;
-    border: 0px;
-  color: #E0771C;
-}
-
-div.example-content {
-    margin: 30px 50px;
-}
-
-div.example-nav {
-    margin-bottom:30px;
-}
-
-pre.code-block{
-    background: #D8F4DC;
-    border: 1px solid rgb(200, 200, 200);
-    padding-top: 1em;
-    padding-left: 3em;
-    padding-bottom: 1em;
-    margin-top: 1em;
-    margin-bottom: 3em;
-    
-}
-    
-pre.code {
-/*    background: #D8F4DC;*/
-    border: 1px solid rgb(200, 200, 200);
-    padding-top: 1em;
-    padding-left: 3em;
-    padding-bottom: 1em;
-    margin-top: 1em;
-    margin-bottom: 4em;
-    
-}
-
-div.include {
-  margin-bottom: 2em;
-}
-    
-p {
-    margin: 2em 0;
-}
-
-.jqplot-image-button {
-    margin-bottom: 15px;
-    margin-top: 15px;
-}
-
-div.jqplot-image-container {
-  position: relative;
-  z-index: 11;
-
-    margin: auto;
-    display: none;
-    background-color: #ffffff;
-    border: 1px solid #999;
-    display: inline-block;
-    margin-top: 25px;
-}
-
-div.jqplot-image-container-header {
-    font-size: 1.0em;
-    font-weight: bold;
-    padding: 5px 15px;
-    background-color: #eee;
-}
-
-div.jqplot-image-container-content {
-    padding: 15px;
-    background-color: #ffffff;
-}
-
-a.jqplot-image-container-close {
-    float: right;
-}
-
-div.example-plot {
-  width: 500px;
-  height: 300px;
-}
-
-.jqplot-table-legend-label {
-  white-space: nowrap;
-}
-
-div.syntaxhighlighter {
-  margin-top: 4em !important;
-  margin-bottom: 3em !important;
-}
\ No newline at end of file
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/examples.min.css b/wqflask/wqflask/static/packages/jqplot/examples/examples.min.css
deleted file mode 100755
index e5c93c3a..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/examples.min.css
+++ /dev/null
@@ -1 +0,0 @@
-body{margin:0;padding:0;font-family:"Trebuchet MS",Arial,Helvetica,sans-serif;}div.logo{position:relative;height:94px;padding:0;margin-bottom:30px;top:0;background-image:url('./images/logo.jpg');background-repeat:no-repeat;background-color:#292929;}div.nav{position:relative;top:70px;text-align:right;}a.nav span{font-size:11px;position:relative;bottom:2px;}a.nav:visited{text-decoration:none;border:0;color:#aaa;}a.nav,a.nav:link{border:0;text-decoration:none;font-family:Tahoma,"Helvetica Neue","Trebuchet MS",Verdana,Arial,sans-serif;font-size:16px;color:#aaa;margin-right:11px;}a.nav:hover{text-decoration:none;border:0;color:#E0771C;}a.nav:active{text-decoration:none;border:0;color:#E0771C;}div.example-content{margin:30px 50px;}div.example-nav{margin-bottom:30px;}pre.code-block{background:#D8F4DC;border:1px solid #c8c8c8;padding-top:1em;padding-left:3em;padding-bottom:1em;margin-top:1em;margin-bottom:3em;}pre.code{border:1px solid #c8c8c8;padding-top:1em;padding-left:3em;padding-bottom:1em;margin-top:1em;margin-bottom:4em;}div.include{margin-bottom:2em;}p{margin:2em 0;}.jqplot-image-button{margin-bottom:15px;margin-top:15px;}div.jqplot-image-container{position:relative;z-index:11;margin:auto;display:none;background-color:#fff;border:1px solid #999;display:inline-block;margin-top:25px;}div.jqplot-image-container-header{font-size:1.0em;font-weight:bold;padding:5px 15px;background-color:#eee;}div.jqplot-image-container-content{padding:15px;background-color:#fff;}a.jqplot-image-container-close{float:right;}div.example-plot{width:500px;height:300px;}.jqplot-table-legend-label{white-space:nowrap;}div.syntaxhighlighter{margin-top:4em!important;margin-bottom:3em!important;}
\ No newline at end of file
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/fillBetweenLines.html b/wqflask/wqflask/static/packages/jqplot/examples/fillBetweenLines.html
deleted file mode 100755
index 50c2d66a..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/fillBetweenLines.html
+++ /dev/null
@@ -1,134 +0,0 @@
-<!DOCTYPE html>
-
-<html>
-<head>
-	
-	<title>Charts with Fill Between Lines</title>
-
-    <link class="include" rel="stylesheet" type="text/css" href="../jquery.jqplot.min.css" />
-    <link rel="stylesheet" type="text/css" href="examples.min.css" />
-    <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shCoreDefault.min.css" />
-    <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shThemejqPlot.min.css" />
-  
-  <!--[if lt IE 9]><script language="javascript" type="text/javascript" src="../excanvas.js"></script><![endif]-->
-    <script class="include" type="text/javascript" src="../jquery.min.js"></script>
-    
-   
-</head>
-<body>
-    <div class="logo">
-   <div class="nav">
-   <a class="nav" href="../../../index.php"><span>&gt;</span>Home</a>
-   <a class="nav"  href="../../../docs/"><span>&gt;</span>Docs</a>
-   <a class="nav"  href="../../download/"><span>&gt;</span>Download</a>
-   <a class="nav" href="../../../info.php"><span>&gt;</span>Info</a>
-   <a class="nav"  href="../../../donate.php"><span>&gt;</span>Donate</a>
-   </div>
-</div>
-    <div class="example-content">
-
-    <div class="example-nav">
-  <a href="dateAxisRenderer.html">Previous</a> <a href="./">Examples</a> <a href="hiddenPlotsInTabs.html">Next</a></div>
-
-      
-<!-- Example scripts go here -->
-
-    <style type="text/css" media="screen">
-    .jqplot-axis {
-      font-size: 0.85em;
-    }
-    .jqplot-title {
-      font-size: 1.1em;
-    }
-    </style>
-
-
-    <div id="chart1" style="margin-top:20px; margin-left:20px; width:600px; height:400px;"></div>
-
-    <p>Enter 2 series to fill between:</p>
-
-    <label for="series1">First Series: </label>
-    <input type="text" name="series1" value="1" />
-    <label for="series2"> Second Series: </label>
-    <input type="text" name="series2" value="3" />
-    <button name="changeFill">Change Fill</button>
-
-    <pre class="code brush:js"></pre>
-
-
-    <script class="code" type="text/javascript" language="javascript">
-    $(document).ready(function(){
-        var l0 = [6,  11, 10, 13, 11,  7];
-        var l1 = [3,   6,  7,  7,  5,  3];
-        var l2 = [4,   8,  9, 10, 8,   6];
-        var l3 = [9,  13, 14, 16, 17, 19];
-        var l4 = [15, 17, 16, 18, 13, 11];
-        
-        var plot1 = $.jqplot("chart1", [l0, l1, l2, l3, l4], {
-            title: "Fill between 2 lines",
-            axesDefaults: {
-                pad: 1.05
-            },
-            //////
-            // Use the fillBetween option to control fill between two
-            // lines on a plot.
-            //////
-            fillBetween: {
-                // series1: Required, if missing won't fill.
-                series1: 1,
-                // series2: Required, if  missing won't fill.
-                series2: 3,
-                // color: Optional, defaults to fillColor of series1.
-                color: "rgba(227, 167, 111, 0.7)",
-                // baseSeries:  Optional.  Put fill on a layer below this series
-                // index.  Defaults to 0 (first series).  If an index higher than 0 is
-                // used, fill will hide series below it.
-                baseSeries: 0,
-                // fill:  Optional, defaults to true.  False to turn off fill.  
-                fill: true
-            },
-            seriesDefaults: {
-                rendererOptions: {
-                    //////
-                    // Turn on line smoothing.  By default, a constrained cubic spline
-                    // interpolation algorithm is used which will not overshoot or
-                    // undershoot any data points.
-                    //////
-                    smooth: true
-                }
-            }
-        });
-
-        // bind a function to the change button to update the plot's fillBetween series
-        // and replot().
-        $("button[name=changeFill]").click(function(e) {
-        	plot1.fillBetween.series1 = parseInt($("input[name=series1]").val());
-        	plot1.fillBetween.series2 = parseInt($("input[name=series2]").val());
-        	plot1.replot();
-        });
-    });
-    </script>
-
-<!-- End example scripts -->
-
-<!-- Don't touch this! -->
-
-
-    <script class="include" type="text/javascript" src="../jquery.jqplot.min.js"></script>
-    <script type="text/javascript" src="syntaxhighlighter/scripts/shCore.min.js"></script>
-    <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushJScript.min.js"></script>
-    <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushXml.min.js"></script>
-<!-- End Don't touch this! -->
-
-<!-- Additional plugins go here -->
-
-<!-- End additional plugins -->
-
-
-	</div>	
-	<script type="text/javascript" src="example.min.js"></script>
-
-</body>
-
-
-</html>
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/hiddenPlotsInTabs.html b/wqflask/wqflask/static/packages/jqplot/examples/hiddenPlotsInTabs.html
deleted file mode 100755
index 1a508baa..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/hiddenPlotsInTabs.html
+++ /dev/null
@@ -1,225 +0,0 @@
-<!DOCTYPE html>
-
-<html>
-<head>
-	
-	<title>Hidden Plots</title>
-
-    <link class="include" rel="stylesheet" type="text/css" href="../jquery.jqplot.min.css" />
-    <link rel="stylesheet" type="text/css" href="examples.min.css" />
-    <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shCoreDefault.min.css" />
-    <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shThemejqPlot.min.css" />
-  
-  <!--[if lt IE 9]><script language="javascript" type="text/javascript" src="../excanvas.js"></script><![endif]-->
-    <script class="include" type="text/javascript" src="../jquery.min.js"></script>
-    
-   
-</head>
-<body>
-    <div class="logo">
-   <div class="nav">
-   <a class="nav" href="../../../index.php"><span>&gt;</span>Home</a>
-   <a class="nav"  href="../../../docs/"><span>&gt;</span>Docs</a>
-   <a class="nav"  href="../../download/"><span>&gt;</span>Download</a>
-   <a class="nav" href="../../../info.php"><span>&gt;</span>Info</a>
-   <a class="nav"  href="../../../donate.php"><span>&gt;</span>Donate</a>
-   </div>
-</div>
-    <div class="example-content">
-
-    <div class="example-nav">
-  <a href="fillBetweenLines.html">Previous</a> <a href="./">Examples</a> <a href="kcp_area.html">Next</a></div>
-
-      
-<!-- Example scripts go here -->
-
-  <style type="text/css">
-    .ui-tabs, .ui-accordion {
-      width: 690px;
-      margin: 2em auto;
-    }
-    .ui-tabs-nav, .ui-accordion-header {
-      font-size: 12px;
-    }
-    
-    .ui-tabs-panel, .ui-accordion-content {
-      font-size: 14px;
-    }
-    
-    .jqplot-target {
-      font-size: 18px;
-    }
-    
-    ol.description {
-      list-style-position: inside;
-      font-size:15px;
-      margin:1.5em auto;
-      padding:0 15px;
-      width:600px;
-    }
-  </style>
-
-<p class="description">This page demonstrates placing plots within jQuery UI widgets. Tab 2 and tab 3 contain plots.  Using a combination of alternate sizing specification and the jqplot "replot" method the plots are properly displayed when their containers are shown.</p>
-  
-  <p class="description">The alternate sizing specifications for setting plot height and width are needed because a hidden element (or child of a hidden element) has no size.  The first example in tab 2 uses custom "data-height" and "data-width" attributes on the plot target element.  The second example uses "width" and "height" properties specified on the options object passed into the $.jqplot() function.</p>
-
-  <p class="description">The default plot size is 300px wide by 400px high. The default setting can be overridden by specifying different values to the $.jqplot.config.defaultHeight and $.jqplot.config.defaultWidth properties.  Height and width values are taken in this order of precedence:
-  </p>
-      
-      <ol class="description">
-        <li>The css properties of the plot target if available (not available with display:none;).</li>
-        <li>Options object passed into the $.jqplot() function.</li>
-        <li>Custom data-height and data-width attributes on the plot target.</li>
-        <li>The config defaults.</li>
-      </ol>
-      
-  <div id="tabs">
-    <ul>
-      <li><a href="#tabs-1">Tab 1</a></li>
-      <li><a href="#tabs-2">Tab 2</a></li>
-      <li><a href="#tabs-3">Tab 3</a></li>
-    </ul>
-    <div id="tabs-1">
-      Tabs 2 and 3 have plots.  Since tabs 2 and 3 are initially inactive, their contents (and the plots) are initially hidden.
-    </div>
-    
-    <div id="tabs-2">
-      <p>This plot was in an initially hidden container.  It's hieght and width are set by the "data-height" and "data-width" properties of the plot container.</p>
-        <div id="chart1" data-height="260px" data-width="480px" style="margin-top:20px; margin-left:20px;"></div>
-    </div>
-    
-    <div id="tabs-3">
-      <p>This plot is in an initially hidden container.  It's height and width are set by the 'height' and 'width' properties of the options object passed into the plot constructor.</p>
-        <div id="chart2" style="margin-top:20px; margin-left:20px;"></div>
-    </div>
-    
-  </div> 
-  
-    <p class="description">In the accordion below, section 2 contains a plot.  Sizing plots in hidden accordion sections is very similar to sizing in a tab widget.  Because of the default animation on accordions, however, the plot will not draw itself until the entire accordion panel is shown.</p>
-    
-<div id="accordion" style="margin-top:50px">
-  
-  <h3><a href="#">Section 1</a></h3>
-  <div>
-    Here is section 1 there is no plot.  Section 2 has a plot that will display once the section is completely shown.
-  </div>
-  
-  <h3><a href="#">Section 2</a></h3>
-  <div>
-    <p>
-    This plot also has it's height and width set with the data-height and data-width attributes.  Note, if you want the accordion widget to properly size itself </em>before</em> the plot is shown, you must also specify a css height and width on the plot target.
-    </p>
-    <div id="chart3" data-height="200" data-width="400" style="width:400px; height: 200px; margin-top: 20px; margin-left: 20px"></div>
-  </div>
-  
-</div>
-
-<p class="description">Code for generating the plots follows.  It is critical to bind the callback to the UI widgets "show" or "change" method which calls the plots "replot" method.  Without this, the plot won't properly redraw itself when it's container becomes visible.</p>
-
-<p class="description">
-  Note in the ui.index and plot._drawCount properties in the tabsshow callback.  ui.index gives the index of the activated tab.  plot._drawCount keeps track of how many times the plot was visibly drawn (or redrawn/replotted).  Generally, replot only needs to be called the first time the plot is visibly drawn, hence the check for plot._drawCount === 0.
-  </p>  
-
-<pre class="code brush:js"></pre>
-
-<script class="code" type="text/javascript">
-    $(document).ready(function() {
-        $.jqplot.config.enablePlugins = false;
-
-        var l1 = [18, 36, 14, 11];
-        var l2 = [[2, 14], [7, 2], [8,5]];
-        var l3 = [4, 7, 9, 2, 11, 5, 9, 13, 8, 7];
-        var l4 = [['peech',3], ['cabbage', 2], ['bean', 4], ['orange', 5]];
-
-        $("#tabs").tabs();
-        $("#accordion").accordion();
-
-        var plot1 = $.jqplot('chart1', [l1, l2, l3],  {
-          title: "I was hidden",
-          lengend:{show:true},
-          series:[{},{yaxis:'y2axis'}, {yaxis:'y3axis'}],
-          cursor:{show:true, zoom:true},
-          axesDefaults:{useSeriesColor:true, rendererOptions: { alignTicks: true}}
-        });
-
-        var plot2 = $.jqplot('chart2', [l4], {
-          height: 200,
-          width: 300,
-          series:[{renderer:$.jqplot.PieRenderer}],
-          legend:{show:true}
-        });
-    
-        var catOHLC = [[1, 138.7, 139.68, 135.18, 135.4],
-        [2, 143.46, 144.66, 139.79, 140.02],
-        [3, 140.67, 143.56, 132.88, 142.44],
-        [4, 136.01, 139.5, 134.53, 139.48],
-        [5, 143.82, 144.56, 136.04, 136.97],
-        [6, 136.47, 146.4, 136, 144.67],
-        [7, 124.76, 135.9, 124.55, 135.81],
-        [8, 123.73, 129.31, 121.57, 122.5]];
-
-        var ticks = ['Tue', 'Wed', 'Thu', 'Fri', 'Mon', 'Tue', 'Wed', 'Thr'];
-    
-        var plot3 = $.jqplot('chart3',[catOHLC],{
-          grid:{ drawGridlines:true},
-          title: 'A CandleStick Chart',
-          axes: {
-              xaxis: {
-                  renderer:$.jqplot.CategoryAxisRenderer,
-                  ticks:ticks
-              },
-              yaxis: {
-                  tickOptions:{formatString:'$%.2f'}
-              }
-          },
-          series: [{renderer:$.jqplot.OHLCRenderer, rendererOptions:{candleStick:true}}]
-        });
-
-        $('#tabs').bind('tabsshow', function(event, ui) {
-          if (ui.index === 1 && plot1._drawCount === 0) {
-            plot1.replot();
-          }
-          else if (ui.index === 2 && plot2._drawCount === 0) {
-            plot2.replot();
-          }
-        });
-
-        $('#accordion').bind('accordionchange', function(event, ui) {
-          var index = $(this).find("h3").index ( ui.newHeader[0] );
-          if (index === 1) {
-            plot3.replot();
-          }
-        });
-    
-    });
-</script> 
-
-<!-- End example scripts -->
-
-<!-- Don't touch this! -->
-
-
-    <script class="include" type="text/javascript" src="../jquery.jqplot.min.js"></script>
-    <script type="text/javascript" src="syntaxhighlighter/scripts/shCore.min.js"></script>
-    <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushJScript.min.js"></script>
-    <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushXml.min.js"></script>
-<!-- End Don't touch this! -->
-
-<!-- Additional plugins go here -->
-  <script class="include" type="text/javascript" src="../plugins/jqplot.cursor.min.js"></script>
-  <script class="include" type="text/javascript" src="../plugins/jqplot.pieRenderer.min.js"></script>
-  <script class="include" type="text/javascript" src="../plugins/jqplot.ohlcRenderer.min.js"></script>
-  <script class="include" type="text/javascript" src="../plugins/jqplot.categoryAxisRenderer.min.js"></script>
-  <link class="include" type="text/css" href="jquery-ui/css/smoothness/jquery-ui.min.css" rel="Stylesheet" /> 
-  <script class="include" type="text/javascript" src="jquery-ui/js/jquery-ui.min.js"></script>
-
-<!-- End additional plugins -->
-
-
-	</div>	
-	<script type="text/javascript" src="example.min.js"></script>
-
-</body>
-
-
-</html>
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/images/logo.jpg b/wqflask/wqflask/static/packages/jqplot/examples/images/logo.jpg
deleted file mode 100755
index a12fffcd..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/images/logo.jpg
+++ /dev/null
Binary files differdiff --git a/wqflask/wqflask/static/packages/jqplot/examples/images/ui-colorpicker.png b/wqflask/wqflask/static/packages/jqplot/examples/images/ui-colorpicker.png
deleted file mode 100755
index e244c689..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/images/ui-colorpicker.png
+++ /dev/null
Binary files differdiff --git a/wqflask/wqflask/static/packages/jqplot/examples/index.html b/wqflask/wqflask/static/packages/jqplot/examples/index.html
deleted file mode 100755
index 2947604a..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/index.html
+++ /dev/null
@@ -1,108 +0,0 @@
-<!DOCTYPE html>
-
-<html>
-<head>
-    
-    <title>jqPlot Sample Charts</title>
-
-    <link class="include" rel="stylesheet" type="text/css" href="../jquery.jqplot.min.css" />
-    <link rel="stylesheet" type="text/css" href="examples.min.css" />
-    <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shCoreDefault.min.css" />
-    <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shThemejqPlot.min.css" />
-  
-  <!--[if lt IE 9]><script language="javascript" type="text/javascript" src="../excanvas.js"></script><![endif]-->
-    <script class="include" type="text/javascript" src="../jquery.min.js"></script>
-
-</head>
-<body>
-    <div class="logo">
-   <div class="nav">
-   <a class="nav" href="../../../index.php"><span>&gt;</span>Home</a>
-   <a class="nav"  href="../../../docs/"><span>&gt;</span>Docs</a>
-   <a class="nav"  href="../../download/"><span>&gt;</span>Download</a>
-   <a class="nav" href="../../../info.php"><span>&gt;</span>Info</a>
-   <a class="nav"  href="../../../donate.php"><span>&gt;</span>Donate</a>
-   </div>
-</div>
-<!-- Index content goes here -->
-
-<style type="text/css">
-
-    p.example-link {
-        margin-top: 0.5em;
-        margin-bottom: 0.5em;
-        margin-left: 120px;
-    }
-
-</style>
-
-<div class="example-links">
-
-<p class="example-link"><a class="example-link" href="area.html">Filled (Area) Charts</a></p>
-<p class="example-link"><a class="example-link" href="axisLabelTests.html">Line Charts and Options</a></p>
-<p class="example-link"><a class="example-link" href="axisLabelsRotatedText.html">Axis Labels and Rotated Text</a></p>
-<p class="example-link"><a class="example-link" href="axisScalingForceTickAt.html">Force Plot to Have Tick at 0 or 100</a></p>
-<p class="example-link"><a class="example-link" href="bandedLine.html">Error Bands and Confidence Intervals</a></p>
-<p class="example-link"><a class="example-link" href="bar-charts.html">Vertical and Horizontal Bar Charts</a></p>
-<p class="example-link"><a class="example-link" href="barLineAnimated.html">Animated Charts</a></p>
-<p class="example-link"><a class="example-link" href="barTest.html">Bar Charts</a></p>
-<p class="example-link"><a class="example-link" href="bezierCurve.html">Bezier Curve Plots</a></p>
-<p class="example-link"><a class="example-link" href="blockPlot.html">Block Plots</a></p>
-<p class="example-link"><a class="example-link" href="bubble-plots.html">Bubble Plots</a></p>
-<p class="example-link"><a class="example-link" href="bubbleChart.html">Bubble Charts</a></p>
-<p class="example-link"><a class="example-link" href="candlestick-charts.html">Open Hi Low Close and Candlestick Charts</a></p>
-<p class="example-link"><a class="example-link" href="candlestick.html">Candlestick and Open Hi Low Close charts</a></p>
-<p class="example-link"><a class="example-link" href="canvas-overlay.html">Draw Lines on Plots - Canvas Overlay</a></p>
-<p class="example-link"><a class="example-link" href="cursor-highlighter.html">Data Point Highlighting, Tooltips and Cursor Tracking</a></p>
-<p class="example-link"><a class="example-link" href="customHighlighterCursorTrendline.html">Highlighting, Dragging Points, Cursor and Trend Lines.</a></p>
-<p class="example-link"><a class="example-link" href="dashboardWidget.html">Animated Dashboard Sample - Filled Line with Log Axis</a></p>
-<p class="example-link"><a class="example-link" href="dashedLines.html">Dashed Lines with Smoothing</a></p>
-<p class="example-link"><a class="example-link" href="data-renderers.html">AJAX and JSON Data Loading via Data Renderers</a></p>
-<p class="example-link"><a class="example-link" href="date-axes.html">Date Axes</a></p>
-<p class="example-link"><a class="example-link" href="dateAxisLogAxisZooming.html">Zooming with Date and Log Axes</a></p>
-<p class="example-link"><a class="example-link" href="dateAxisRenderer.html">Date Axes</a></p>
-<p class="example-link"><a class="example-link" href="fillBetweenLines.html">Charts with Fill Between Lines</a></p>
-<p class="example-link"><a class="example-link" href="hiddenPlotsInTabs.html">Hidden Plots</a></p>
-<p class="example-link"><a class="example-link" href="kcp_area.html">Area Chart</a></p>
-<p class="example-link"><a class="example-link" href="kcp_area2.html">Area Chart 2</a></p>
-<p class="example-link"><a class="example-link" href="kcp_cdf.html">Cumulative Density Function Chart</a></p>
-<p class="example-link"><a class="example-link" href="kcp_engel.html">Engel Curves</a></p>
-<p class="example-link"><a class="example-link" href="kcp_lorenz.html">Lorenz Curves</a></p>
-<p class="example-link"><a class="example-link" href="kcp_pdf.html">Probability Density Function Chart</a></p>
-<p class="example-link"><a class="example-link" href="kcp_pyramid.html">Pyramid Charts</a></p>
-<p class="example-link"><a class="example-link" href="kcp_pyramid2.html">Pyramid Charts 2</a></p>
-<p class="example-link"><a class="example-link" href="kcp_pyramid_by_age.html">Pyramid Chart By Age</a></p>
-<p class="example-link"><a class="example-link" href="kcp_quintiles.html">Quintile Pyramid Charts</a></p>
-<p class="example-link"><a class="example-link" href="line-charts.html">Line Charts and Options</a></p>
-<p class="example-link"><a class="example-link" href="mekkoCharts.html">Mekko Charts</a></p>
-<p class="example-link"><a class="example-link" href="meritOrder.html">Merit Order Charts</a></p>
-<p class="example-link"><a class="example-link" href="meterGauge.html">Meter Gauge</a></p>
-<p class="example-link"><a class="example-link" href="multipleBarColors.html">Bar Colors Example</a></p>
-<p class="example-link"><a class="example-link" href="pie-donut-charts.html">Pie and Donut Charts</a></p>
-<p class="example-link"><a class="example-link" href="pieTest.html">Pie Charts and Options</a></p>
-<p class="example-link"><a class="example-link" href="pieTest4.html">Pie Charts and Options 2</a></p>
-<p class="example-link"><a class="example-link" href="point-labels.html">Data Point labels</a></p>
-<p class="example-link"><a class="example-link" href="resizablePlot.html">Resizable Plots</a></p>
-<p class="example-link"><a class="example-link" href="rotated-tick-labels.html">Rotated Labels and Font Styling</a></p>
-<p class="example-link"><a class="example-link" href="rotatedTickLabelsZoom.html">Date Axes, Rotated Labels and Zooming</a></p>
-<p class="example-link"><a class="example-link" href="selectorSyntax.html">Plot Creation with jQuery Selectors</a></p>
-<p class="example-link"><a class="example-link" href="smoothedLine.html">Smoothed Lines</a></p>
-<p class="example-link"><a class="example-link" href="theming.html">Chart Theming</a></p>
-<p class="example-link"><a class="example-link" href="waterfall.html">Waterfall Charts</a></p>
-<p class="example-link"><a class="example-link" href="waterfall2.html">Waterfall charts 2</a></p>
-<p class="example-link"><a class="example-link" href="zoom1.html">Zooming</a></p>
-<p class="example-link"><a class="example-link" href="zoomOptions.html">Zoom Options</a></p>
-<p class="example-link"><a class="example-link" href="zoomProxy.html">Zoom Proxy - Control one plot from another</a></p>
-<p class="example-link"><a class="example-link" href="zooming.html">Plot Zooming and Cursor Control</a></p>
-
-</div>
-
-<!-- End Index content -->
-
-
-    </div>
-
-</body>
-
-
-</html>
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/smoothness/images/ui-bg_flat_0_aaaaaa_40x100.png b/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/smoothness/images/ui-bg_flat_0_aaaaaa_40x100.png
deleted file mode 100755
index 5b5dab2a..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/smoothness/images/ui-bg_flat_0_aaaaaa_40x100.png
+++ /dev/null
Binary files differdiff --git a/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/smoothness/images/ui-bg_flat_75_ffffff_40x100.png b/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/smoothness/images/ui-bg_flat_75_ffffff_40x100.png
deleted file mode 100755
index ac8b229a..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/smoothness/images/ui-bg_flat_75_ffffff_40x100.png
+++ /dev/null
Binary files differdiff --git a/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/smoothness/images/ui-bg_glass_55_fbf9ee_1x400.png b/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/smoothness/images/ui-bg_glass_55_fbf9ee_1x400.png
deleted file mode 100755
index ad3d6346..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/smoothness/images/ui-bg_glass_55_fbf9ee_1x400.png
+++ /dev/null
Binary files differdiff --git a/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/smoothness/images/ui-bg_glass_65_ffffff_1x400.png b/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/smoothness/images/ui-bg_glass_65_ffffff_1x400.png
deleted file mode 100755
index 42ccba26..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/smoothness/images/ui-bg_glass_65_ffffff_1x400.png
+++ /dev/null
Binary files differdiff --git a/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/smoothness/images/ui-bg_glass_75_dadada_1x400.png b/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/smoothness/images/ui-bg_glass_75_dadada_1x400.png
deleted file mode 100755
index 5a46b47c..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/smoothness/images/ui-bg_glass_75_dadada_1x400.png
+++ /dev/null
Binary files differdiff --git a/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/smoothness/images/ui-bg_glass_75_e6e6e6_1x400.png b/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/smoothness/images/ui-bg_glass_75_e6e6e6_1x400.png
deleted file mode 100755
index 86c2baa6..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/smoothness/images/ui-bg_glass_75_e6e6e6_1x400.png
+++ /dev/null
Binary files differdiff --git a/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/smoothness/images/ui-bg_glass_95_fef1ec_1x400.png b/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/smoothness/images/ui-bg_glass_95_fef1ec_1x400.png
deleted file mode 100755
index 4443fdc1..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/smoothness/images/ui-bg_glass_95_fef1ec_1x400.png
+++ /dev/null
Binary files differdiff --git a/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/smoothness/images/ui-bg_highlight-soft_75_cccccc_1x100.png b/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/smoothness/images/ui-bg_highlight-soft_75_cccccc_1x100.png
deleted file mode 100755
index 7c9fa6c6..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/smoothness/images/ui-bg_highlight-soft_75_cccccc_1x100.png
+++ /dev/null
Binary files differdiff --git a/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/smoothness/images/ui-icons_222222_256x240.png b/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/smoothness/images/ui-icons_222222_256x240.png
deleted file mode 100755
index b273ff11..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/smoothness/images/ui-icons_222222_256x240.png
+++ /dev/null
Binary files differdiff --git a/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/smoothness/images/ui-icons_2e83ff_256x240.png b/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/smoothness/images/ui-icons_2e83ff_256x240.png
deleted file mode 100755
index 09d1cdc8..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/smoothness/images/ui-icons_2e83ff_256x240.png
+++ /dev/null
Binary files differdiff --git a/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/smoothness/images/ui-icons_454545_256x240.png b/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/smoothness/images/ui-icons_454545_256x240.png
deleted file mode 100755
index 59bd45b9..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/smoothness/images/ui-icons_454545_256x240.png
+++ /dev/null
Binary files differdiff --git a/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/smoothness/images/ui-icons_888888_256x240.png b/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/smoothness/images/ui-icons_888888_256x240.png
deleted file mode 100755
index 6d02426c..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/smoothness/images/ui-icons_888888_256x240.png
+++ /dev/null
Binary files differdiff --git a/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/smoothness/images/ui-icons_cd0a0a_256x240.png b/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/smoothness/images/ui-icons_cd0a0a_256x240.png
deleted file mode 100755
index 2ab019b7..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/smoothness/images/ui-icons_cd0a0a_256x240.png
+++ /dev/null
Binary files differdiff --git a/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/smoothness/jquery-ui.css b/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/smoothness/jquery-ui.css
deleted file mode 100755
index 0f1a7e77..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/smoothness/jquery-ui.css
+++ /dev/null
@@ -1,568 +0,0 @@
-/*
- * 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; 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_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 Resizable 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/Resizable#theming
- */
-.ui-resizable { position: relative;}
-.ui-resizable-handle { position: absolute;font-size: 0.1px;z-index: 99999; display: block; }
-.ui-resizable-disabled .ui-resizable-handle, .ui-resizable-autohide .ui-resizable-handle { display: none; }
-.ui-resizable-n { cursor: n-resize; height: 7px; width: 100%; top: -5px; left: 0; }
-.ui-resizable-s { cursor: s-resize; height: 7px; width: 100%; bottom: -5px; left: 0; }
-.ui-resizable-e { cursor: e-resize; width: 7px; right: -5px; top: 0; height: 100%; }
-.ui-resizable-w { cursor: w-resize; width: 7px; left: -5px; top: 0; height: 100%; }
-.ui-resizable-se { cursor: se-resize; width: 12px; height: 12px; right: 1px; bottom: 1px; }
-.ui-resizable-sw { cursor: sw-resize; width: 9px; height: 9px; left: -5px; bottom: -5px; }
-.ui-resizable-nw { cursor: nw-resize; width: 9px; height: 9px; left: -5px; top: -5px; }
-.ui-resizable-ne { cursor: ne-resize; width: 9px; height: 9px; right: -5px; top: -5px;}/*
- * jQuery UI Selectable 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/Selectable#theming
- */
-.ui-selectable-helper { position: absolute; z-index: 100; border:1px dotted black; }
-/*
- * jQuery UI Accordion 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/Accordion#theming
- */
-/* IE/Win - Fix animation bug - #4615 */
-.ui-accordion { width: 100%; }
-.ui-accordion .ui-accordion-header { cursor: pointer; position: relative; margin-top: 1px; zoom: 1; }
-.ui-accordion .ui-accordion-li-fix { display: inline; }
-.ui-accordion .ui-accordion-header-active { border-bottom: 0 !important; }
-.ui-accordion .ui-accordion-header a { display: block; font-size: 1em; padding: .5em .5em .5em .7em; }
-.ui-accordion-icons .ui-accordion-header a { padding-left: 2.2em; }
-.ui-accordion .ui-accordion-header .ui-icon { position: absolute; left: .5em; top: 50%; margin-top: -8px; }
-.ui-accordion .ui-accordion-content { padding: 1em 2.2em; border-top: 0; margin-top: -2px; position: relative; top: 1px; margin-bottom: 2px; overflow: auto; display: none; zoom: 1; }
-.ui-accordion .ui-accordion-content-active { display: block; }
-/*
- * jQuery UI Autocomplete 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/Autocomplete#theming
- */
-.ui-autocomplete { position: absolute; cursor: default; }	
-
-/* workarounds */
-* html .ui-autocomplete { width:1px; } /* without this, the menu expands to 100% in IE6 */
-
-/*
- * jQuery UI Menu 1.8.16
- *
- * Copyright 2010, 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/Menu#theming
- */
-.ui-menu {
-	list-style:none;
-	padding: 2px;
-	margin: 0;
-	display:block;
-	float: left;
-}
-.ui-menu .ui-menu {
-	margin-top: -3px;
-}
-.ui-menu .ui-menu-item {
-	margin:0;
-	padding: 0;
-	zoom: 1;
-	float: left;
-	clear: left;
-	width: 100%;
-}
-.ui-menu .ui-menu-item a {
-	text-decoration:none;
-	display:block;
-	padding:.2em .4em;
-	line-height:1.5;
-	zoom:1;
-}
-.ui-menu .ui-menu-item a.ui-state-hover,
-.ui-menu .ui-menu-item a.ui-state-active {
-	font-weight: normal;
-	margin: -1px;
-}
-/*
- * jQuery UI Button 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/Button#theming
- */
-.ui-button { display: inline-block; position: relative; padding: 0; margin-right: .1em; text-decoration: none !important; cursor: pointer; text-align: center; zoom: 1; overflow: visible; } /* the overflow property removes extra width in IE */
-.ui-button-icon-only { width: 2.2em; } /* to make room for the icon, a width needs to be set here */
-button.ui-button-icon-only { width: 2.4em; } /* button elements seem to need a little more width */
-.ui-button-icons-only { width: 3.4em; } 
-button.ui-button-icons-only { width: 3.7em; } 
-
-/*button text element */
-.ui-button .ui-button-text { display: block; line-height: 1.4;  }
-.ui-button-text-only .ui-button-text { padding: .4em 1em; }
-.ui-button-icon-only .ui-button-text, .ui-button-icons-only .ui-button-text { padding: .4em; text-indent: -9999999px; }
-.ui-button-text-icon-primary .ui-button-text, .ui-button-text-icons .ui-button-text { padding: .4em 1em .4em 2.1em; }
-.ui-button-text-icon-secondary .ui-button-text, .ui-button-text-icons .ui-button-text { padding: .4em 2.1em .4em 1em; }
-.ui-button-text-icons .ui-button-text { padding-left: 2.1em; padding-right: 2.1em; }
-/* no icon support for input elements, provide padding by default */
-input.ui-button { padding: .4em 1em; }
-
-/*button icon element(s) */
-.ui-button-icon-only .ui-icon, .ui-button-text-icon-primary .ui-icon, .ui-button-text-icon-secondary .ui-icon, .ui-button-text-icons .ui-icon, .ui-button-icons-only .ui-icon { position: absolute; top: 50%; margin-top: -8px; }
-.ui-button-icon-only .ui-icon { left: 50%; margin-left: -8px; }
-.ui-button-text-icon-primary .ui-button-icon-primary, .ui-button-text-icons .ui-button-icon-primary, .ui-button-icons-only .ui-button-icon-primary { left: .5em; }
-.ui-button-text-icon-secondary .ui-button-icon-secondary, .ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary { right: .5em; }
-.ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary { right: .5em; }
-
-/*button sets*/
-.ui-buttonset { margin-right: 7px; }
-.ui-buttonset .ui-button { margin-left: 0; margin-right: -.3em; }
-
-/* workarounds */
-button.ui-button::-moz-focus-inner { border: 0; padding: 0; } /* reset extra padding in Firefox */
-/*
- * jQuery UI Dialog 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/Dialog#theming
- */
-.ui-dialog { position: absolute; padding: .2em; width: 300px; overflow: hidden; }
-.ui-dialog .ui-dialog-titlebar { padding: .4em 1em; position: relative;  }
-.ui-dialog .ui-dialog-title { float: left; margin: .1em 16px .1em 0; } 
-.ui-dialog .ui-dialog-titlebar-close { position: absolute; right: .3em; top: 50%; width: 19px; margin: -10px 0 0 0; padding: 1px; height: 18px; }
-.ui-dialog .ui-dialog-titlebar-close span { display: block; margin: 1px; }
-.ui-dialog .ui-dialog-titlebar-close:hover, .ui-dialog .ui-dialog-titlebar-close:focus { padding: 0; }
-.ui-dialog .ui-dialog-content { position: relative; border: 0; padding: .5em 1em; background: none; overflow: auto; zoom: 1; }
-.ui-dialog .ui-dialog-buttonpane { text-align: left; border-width: 1px 0 0 0; background-image: none; margin: .5em 0 0 0; padding: .3em 1em .5em .4em; }
-.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset { float: right; }
-.ui-dialog .ui-dialog-buttonpane button { margin: .5em .4em .5em 0; cursor: pointer; }
-.ui-dialog .ui-resizable-se { width: 14px; height: 14px; right: 3px; bottom: 3px; }
-.ui-draggable .ui-dialog-titlebar { cursor: move; }
-/*
- * 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; }/*
- * jQuery UI Tabs 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/Tabs#theming
- */
-.ui-tabs { position: relative; padding: .2em; zoom: 1; } /* position: relative prevents IE scroll bug (element with position: relative inside container with overflow: auto appear as "fixed") */
-.ui-tabs .ui-tabs-nav { margin: 0; padding: .2em .2em 0; }
-.ui-tabs .ui-tabs-nav li { list-style: none; float: left; position: relative; top: 1px; margin: 0 .2em 1px 0; border-bottom: 0 !important; padding: 0; white-space: nowrap; }
-.ui-tabs .ui-tabs-nav li a { float: left; padding: .5em 1em; text-decoration: none; }
-.ui-tabs .ui-tabs-nav li.ui-tabs-selected { margin-bottom: 0; padding-bottom: 1px; }
-.ui-tabs .ui-tabs-nav li.ui-tabs-selected a, .ui-tabs .ui-tabs-nav li.ui-state-disabled a, .ui-tabs .ui-tabs-nav li.ui-state-processing a { cursor: text; }
-.ui-tabs .ui-tabs-nav li a, .ui-tabs.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-selected a { cursor: pointer; } /* first selector in group seems obsolete, but required to overcome bug in Opera applying cursor: text overall if defined elsewhere... */
-.ui-tabs .ui-tabs-panel { display: block; border-width: 0; padding: 1em 1.4em; background: none; }
-.ui-tabs .ui-tabs-hide { display: none !important; }
-/*
- * jQuery UI Datepicker 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/Datepicker#theming
- */
-.ui-datepicker { width: 17em; padding: .2em .2em 0; display: none; }
-.ui-datepicker .ui-datepicker-header { position:relative; padding:.2em 0; }
-.ui-datepicker .ui-datepicker-prev, .ui-datepicker .ui-datepicker-next { position:absolute; top: 2px; width: 1.8em; height: 1.8em; }
-.ui-datepicker .ui-datepicker-prev-hover, .ui-datepicker .ui-datepicker-next-hover { top: 1px; }
-.ui-datepicker .ui-datepicker-prev { left:2px; }
-.ui-datepicker .ui-datepicker-next { right:2px; }
-.ui-datepicker .ui-datepicker-prev-hover { left:1px; }
-.ui-datepicker .ui-datepicker-next-hover { right:1px; }
-.ui-datepicker .ui-datepicker-prev span, .ui-datepicker .ui-datepicker-next span { display: block; position: absolute; left: 50%; margin-left: -8px; top: 50%; margin-top: -8px;  }
-.ui-datepicker .ui-datepicker-title { margin: 0 2.3em; line-height: 1.8em; text-align: center; }
-.ui-datepicker .ui-datepicker-title select { font-size:1em; margin:1px 0; }
-.ui-datepicker select.ui-datepicker-month-year {width: 100%;}
-.ui-datepicker select.ui-datepicker-month, 
-.ui-datepicker select.ui-datepicker-year { width: 49%;}
-.ui-datepicker table {width: 100%; font-size: .9em; border-collapse: collapse; margin:0 0 .4em; }
-.ui-datepicker th { padding: .7em .3em; text-align: center; font-weight: bold; border: 0;  }
-.ui-datepicker td { border: 0; padding: 1px; }
-.ui-datepicker td span, .ui-datepicker td a { display: block; padding: .2em; text-align: right; text-decoration: none; }
-.ui-datepicker .ui-datepicker-buttonpane { background-image: none; margin: .7em 0 0 0; padding:0 .2em; border-left: 0; border-right: 0; border-bottom: 0; }
-.ui-datepicker .ui-datepicker-buttonpane button { float: right; margin: .5em .2em .4em; cursor: pointer; padding: .2em .6em .3em .6em; width:auto; overflow:visible; }
-.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current { float:left; }
-
-/* with multiple calendars */
-.ui-datepicker.ui-datepicker-multi { width:auto; }
-.ui-datepicker-multi .ui-datepicker-group { float:left; }
-.ui-datepicker-multi .ui-datepicker-group table { width:95%; margin:0 auto .4em; }
-.ui-datepicker-multi-2 .ui-datepicker-group { width:50%; }
-.ui-datepicker-multi-3 .ui-datepicker-group { width:33.3%; }
-.ui-datepicker-multi-4 .ui-datepicker-group { width:25%; }
-.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header { border-left-width:0; }
-.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header { border-left-width:0; }
-.ui-datepicker-multi .ui-datepicker-buttonpane { clear:left; }
-.ui-datepicker-row-break { clear:both; width:100%; font-size:0em; }
-
-/* RTL support */
-.ui-datepicker-rtl { direction: rtl; }
-.ui-datepicker-rtl .ui-datepicker-prev { right: 2px; left: auto; }
-.ui-datepicker-rtl .ui-datepicker-next { left: 2px; right: auto; }
-.ui-datepicker-rtl .ui-datepicker-prev:hover { right: 1px; left: auto; }
-.ui-datepicker-rtl .ui-datepicker-next:hover { left: 1px; right: auto; }
-.ui-datepicker-rtl .ui-datepicker-buttonpane { clear:right; }
-.ui-datepicker-rtl .ui-datepicker-buttonpane button { float: left; }
-.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current { float:right; }
-.ui-datepicker-rtl .ui-datepicker-group { float:right; }
-.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header { border-right-width:0; border-left-width:1px; }
-.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header { border-right-width:0; border-left-width:1px; }
-
-/* IE6 IFRAME FIX (taken from datepicker 1.5.3 */
-.ui-datepicker-cover {
-    display: none; /*sorry for IE5*/
-    display/**/: block; /*sorry for IE5*/
-    position: absolute; /*must have*/
-    z-index: -1; /*must have*/
-    filter: mask(); /*must have*/
-    top: -4px; /*must have*/
-    left: -4px; /*must have*/
-    width: 200px; /*must have*/
-    height: 200px; /*must have*/
-}/*
- * jQuery UI Progressbar 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/Progressbar#theming
- */
-.ui-progressbar { height:2em; text-align: left; }
-.ui-progressbar .ui-progressbar-value {margin: -1px; height:100%; }
\ No newline at end of file
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/smoothness/jquery-ui.min.css b/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/smoothness/jquery-ui.min.css
deleted file mode 100755
index 08821f53..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/smoothness/jquery-ui.min.css
+++ /dev/null
@@ -1 +0,0 @@
-.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);}.ui-state-disabled{cursor:default!important;}.ui-icon{display:block;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat;}.ui-widget-overlay{position:absolute;top:0;left:0;width:100%;height:100%;}.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 #aaa;background:#fff url(images/ui-bg_flat_75_ffffff_40x100.png) 50% 50% repeat-x;color:#222;}.ui-widget-content a{color:#222;}.ui-widget-header{border:1px solid #aaa;background:#ccc url(images/ui-bg_highlight-soft_75_cccccc_1x100.png) 50% 50% repeat-x;color:#222;font-weight:bold;}.ui-widget-header a{color:#222;}.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:#555;}.ui-state-default a,.ui-state-default a:link,.ui-state-default a:visited{color:#555;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 #999;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 #aaa;background:#fff 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;}.ui-state-highlight,.ui-widget-content .ui-state-highlight,.ui-widget-header .ui-state-highlight{border:1px solid #fcefa1;background:#fbf9ee url(images/ui-bg_glass_55_fbf9ee_1x400.png) 50% 50% repeat-x;color:#363636;}.ui-state-highlight a,.ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a{color:#363636;}.ui-state-error,.ui-widget-content .ui-state-error,.ui-widget-header .ui-state-error{border:1px solid #cd0a0a;background:#fef1ec url(images/ui-bg_glass_95_fef1ec_1x400.png) 50% 50% repeat-x;color:#cd0a0a;}.ui-state-error a,.ui-widget-content .ui-state-error a,.ui-widget-header .ui-state-error a{color:#cd0a0a;}.ui-state-error-text,.ui-widget-content .ui-state-error-text,.ui-widget-header .ui-state-error-text{color:#cd0a0a;}.ui-priority-primary,.ui-widget-content .ui-priority-primary,.ui-widget-header .ui-priority-primary{font-weight:bold;}.ui-priority-secondary,.ui-widget-content .ui-priority-secondary,.ui-widget-header .ui-priority-secondary{opacity:.7;filter:Alpha(Opacity=70);font-weight:normal;}.ui-state-disabled,.ui-widget-content .ui-state-disabled,.ui-widget-header .ui-state-disabled{opacity:.35;filter:Alpha(Opacity=35);background-image:none;}.ui-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);}.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{background-position:-80px -160px;}.ui-icon-stop{background-position:-96px -160px;}.ui-icon-eject{background-position:-112px -160px;}.ui-icon-volume-off{background-position:-128px -160px;}.ui-icon-volume-on{background-position:-144px -160px;}.ui-icon-power{background-position:0 -176px;}.ui-icon-signal-diag{background-position:-16px -176px;}.ui-icon-signal{background-position:-32px -176px;}.ui-icon-battery-0{background-position:-48px -176px;}.ui-icon-battery-1{background-position:-64px -176px;}.ui-icon-battery-2{background-position:-80px -176px;}.ui-icon-battery-3{background-position:-96px -176px;}.ui-icon-circle-plus{background-position:0 -192px;}.ui-icon-circle-minus{background-position:-16px -192px;}.ui-icon-circle-close{background-position:-32px -192px;}.ui-icon-circle-triangle-e{background-position:-48px -192px;}.ui-icon-circle-triangle-s{background-position:-64px -192px;}.ui-icon-circle-triangle-w{background-position:-80px -192px;}.ui-icon-circle-triangle-n{background-position:-96px -192px;}.ui-icon-circle-arrow-e{background-position:-112px -192px;}.ui-icon-circle-arrow-s{background-position:-128px -192px;}.ui-icon-circle-arrow-w{background-position:-144px -192px;}.ui-icon-circle-arrow-n{background-position:-160px -192px;}.ui-icon-circle-zoomin{background-position:-176px -192px;}.ui-icon-circle-zoomout{background-position:-192px -192px;}.ui-icon-circle-check{background-position:-208px -192px;}.ui-icon-circlesmall-plus{background-position:0 -208px;}.ui-icon-circlesmall-minus{background-position:-16px -208px;}.ui-icon-circlesmall-close{background-position:-32px -208px;}.ui-icon-squaresmall-plus{background-position:-48px -208px;}.ui-icon-squaresmall-minus{background-position:-64px -208px;}.ui-icon-squaresmall-close{background-position:-80px -208px;}.ui-icon-grip-dotted-vertical{background-position:0 -224px;}.ui-icon-grip-dotted-horizontal{background-position:-16px -224px;}.ui-icon-grip-solid-vertical{background-position:-32px -224px;}.ui-icon-grip-solid-horizontal{background-position:-48px -224px;}.ui-icon-gripsmall-diagonal-se{background-position:-64px -224px;}.ui-icon-grip-diagonal-se{background-position:-80px -224px;}.ui-corner-all,.ui-corner-top,.ui-corner-left,.ui-corner-tl{-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;}.ui-widget-overlay{background:#aaa 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:#aaa 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;}.ui-resizable{position:relative;}.ui-resizable-handle{position:absolute;font-size:.1px;z-index:99999;display:block;}.ui-resizable-disabled .ui-resizable-handle,.ui-resizable-autohide .ui-resizable-handle{display:none;}.ui-resizable-n{cursor:n-resize;height:7px;width:100%;top:-5px;left:0;}.ui-resizable-s{cursor:s-resize;height:7px;width:100%;bottom:-5px;left:0;}.ui-resizable-e{cursor:e-resize;width:7px;right:-5px;top:0;height:100%;}.ui-resizable-w{cursor:w-resize;width:7px;left:-5px;top:0;height:100%;}.ui-resizable-se{cursor:se-resize;width:12px;height:12px;right:1px;bottom:1px;}.ui-resizable-sw{cursor:sw-resize;width:9px;height:9px;left:-5px;bottom:-5px;}.ui-resizable-nw{cursor:nw-resize;width:9px;height:9px;left:-5px;top:-5px;}.ui-resizable-ne{cursor:ne-resize;width:9px;height:9px;right:-5px;top:-5px;}.ui-selectable-helper{position:absolute;z-index:100;border:1px dotted black;}.ui-accordion{width:100%;}.ui-accordion .ui-accordion-header{cursor:pointer;position:relative;margin-top:1px;zoom:1;}.ui-accordion .ui-accordion-li-fix{display:inline;}.ui-accordion .ui-accordion-header-active{border-bottom:0!important;}.ui-accordion .ui-accordion-header a{display:block;font-size:1em;padding:.5em .5em .5em .7em;}.ui-accordion-icons .ui-accordion-header a{padding-left:2.2em;}.ui-accordion .ui-accordion-header .ui-icon{position:absolute;left:.5em;top:50%;margin-top:-8px;}.ui-accordion .ui-accordion-content{padding:1em 2.2em;border-top:0;margin-top:-2px;position:relative;top:1px;margin-bottom:2px;overflow:auto;display:none;zoom:1;}.ui-accordion .ui-accordion-content-active{display:block;}.ui-autocomplete{position:absolute;cursor:default;}* html .ui-autocomplete{width:1px;}.ui-menu{list-style:none;padding:2px;margin:0;display:block;float:left;}.ui-menu .ui-menu{margin-top:-3px;}.ui-menu .ui-menu-item{margin:0;padding:0;zoom:1;float:left;clear:left;width:100%;}.ui-menu .ui-menu-item a{text-decoration:none;display:block;padding:.2em .4em;line-height:1.5;zoom:1;}.ui-menu .ui-menu-item a.ui-state-hover,.ui-menu .ui-menu-item a.ui-state-active{font-weight:normal;margin:-1px;}.ui-button{display:inline-block;position:relative;padding:0;margin-right:.1em;text-decoration:none!important;cursor:pointer;text-align:center;zoom:1;overflow:visible;}.ui-button-icon-only{width:2.2em;}button.ui-button-icon-only{width:2.4em;}.ui-button-icons-only{width:3.4em;}button.ui-button-icons-only{width:3.7em;}.ui-button .ui-button-text{display:block;line-height:1.4;}.ui-button-text-only .ui-button-text{padding:.4em 1em;}.ui-button-icon-only .ui-button-text,.ui-button-icons-only .ui-button-text{padding:.4em;text-indent:-9999999px;}.ui-button-text-icon-primary .ui-button-text,.ui-button-text-icons .ui-button-text{padding:.4em 1em .4em 2.1em;}.ui-button-text-icon-secondary .ui-button-text,.ui-button-text-icons .ui-button-text{padding:.4em 2.1em .4em 1em;}.ui-button-text-icons .ui-button-text{padding-left:2.1em;padding-right:2.1em;}input.ui-button{padding:.4em 1em;}.ui-button-icon-only .ui-icon,.ui-button-text-icon-primary .ui-icon,.ui-button-text-icon-secondary .ui-icon,.ui-button-text-icons .ui-icon,.ui-button-icons-only .ui-icon{position:absolute;top:50%;margin-top:-8px;}.ui-button-icon-only .ui-icon{left:50%;margin-left:-8px;}.ui-button-text-icon-primary .ui-button-icon-primary,.ui-button-text-icons .ui-button-icon-primary,.ui-button-icons-only .ui-button-icon-primary{left:.5em;}.ui-button-text-icon-secondary .ui-button-icon-secondary,.ui-button-text-icons .ui-button-icon-secondary,.ui-button-icons-only .ui-button-icon-secondary{right:.5em;}.ui-button-text-icons .ui-button-icon-secondary,.ui-button-icons-only .ui-button-icon-secondary{right:.5em;}.ui-buttonset{margin-right:7px;}.ui-buttonset .ui-button{margin-left:0;margin-right:-.3em;}button.ui-button::-moz-focus-inner{border:0;padding:0;}.ui-dialog{position:absolute;padding:.2em;width:300px;overflow:hidden;}.ui-dialog .ui-dialog-titlebar{padding:.4em 1em;position:relative;}.ui-dialog .ui-dialog-title{float:left;margin:.1em 16px .1em 0;}.ui-dialog .ui-dialog-titlebar-close{position:absolute;right:.3em;top:50%;width:19px;margin:-10px 0 0 0;padding:1px;height:18px;}.ui-dialog .ui-dialog-titlebar-close span{display:block;margin:1px;}.ui-dialog .ui-dialog-titlebar-close:hover,.ui-dialog .ui-dialog-titlebar-close:focus{padding:0;}.ui-dialog .ui-dialog-content{position:relative;border:0;padding:.5em 1em;background:none;overflow:auto;zoom:1;}.ui-dialog .ui-dialog-buttonpane{text-align:left;border-width:1px 0 0 0;background-image:none;margin:.5em 0 0 0;padding:.3em 1em .5em .4em;}.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset{float:right;}.ui-dialog .ui-dialog-buttonpane button{margin:.5em .4em .5em 0;cursor:pointer;}.ui-dialog .ui-resizable-se{width:14px;height:14px;right:3px;bottom:3px;}.ui-draggable .ui-dialog-titlebar{cursor:move;}.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;}.ui-tabs{position:relative;padding:.2em;zoom:1;}.ui-tabs .ui-tabs-nav{margin:0;padding:.2em .2em 0;}.ui-tabs .ui-tabs-nav li{list-style:none;float:left;position:relative;top:1px;margin:0 .2em 1px 0;border-bottom:0!important;padding:0;white-space:nowrap;}.ui-tabs .ui-tabs-nav li a{float:left;padding:.5em 1em;text-decoration:none;}.ui-tabs .ui-tabs-nav li.ui-tabs-selected{margin-bottom:0;padding-bottom:1px;}.ui-tabs .ui-tabs-nav li.ui-tabs-selected a,.ui-tabs .ui-tabs-nav li.ui-state-disabled a,.ui-tabs .ui-tabs-nav li.ui-state-processing a{cursor:text;}.ui-tabs .ui-tabs-nav li a,.ui-tabs.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-selected a{cursor:pointer;}.ui-tabs .ui-tabs-panel{display:block;border-width:0;padding:1em 1.4em;background:none;}.ui-tabs .ui-tabs-hide{display:none!important;}.ui-datepicker{width:17em;padding:.2em .2em 0;display:none;}.ui-datepicker .ui-datepicker-header{position:relative;padding:.2em 0;}.ui-datepicker .ui-datepicker-prev,.ui-datepicker .ui-datepicker-next{position:absolute;top:2px;width:1.8em;height:1.8em;}.ui-datepicker .ui-datepicker-prev-hover,.ui-datepicker .ui-datepicker-next-hover{top:1px;}.ui-datepicker .ui-datepicker-prev{left:2px;}.ui-datepicker .ui-datepicker-next{right:2px;}.ui-datepicker .ui-datepicker-prev-hover{left:1px;}.ui-datepicker .ui-datepicker-next-hover{right:1px;}.ui-datepicker .ui-datepicker-prev span,.ui-datepicker .ui-datepicker-next span{display:block;position:absolute;left:50%;margin-left:-8px;top:50%;margin-top:-8px;}.ui-datepicker .ui-datepicker-title{margin:0 2.3em;line-height:1.8em;text-align:center;}.ui-datepicker .ui-datepicker-title select{font-size:1em;margin:1px 0;}.ui-datepicker select.ui-datepicker-month-year{width:100%;}.ui-datepicker select.ui-datepicker-month,.ui-datepicker select.ui-datepicker-year{width:49%;}.ui-datepicker table{width:100%;font-size:.9em;border-collapse:collapse;margin:0 0 .4em;}.ui-datepicker th{padding:.7em .3em;text-align:center;font-weight:bold;border:0;}.ui-datepicker td{border:0;padding:1px;}.ui-datepicker td span,.ui-datepicker td a{display:block;padding:.2em;text-align:right;text-decoration:none;}.ui-datepicker .ui-datepicker-buttonpane{background-image:none;margin:.7em 0 0 0;padding:0 .2em;border-left:0;border-right:0;border-bottom:0;}.ui-datepicker .ui-datepicker-buttonpane button{float:right;margin:.5em .2em .4em;cursor:pointer;padding:.2em .6em .3em .6em;width:auto;overflow:visible;}.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current{float:left;}.ui-datepicker.ui-datepicker-multi{width:auto;}.ui-datepicker-multi .ui-datepicker-group{float:left;}.ui-datepicker-multi .ui-datepicker-group table{width:95%;margin:0 auto .4em;}.ui-datepicker-multi-2 .ui-datepicker-group{width:50%;}.ui-datepicker-multi-3 .ui-datepicker-group{width:33.3%;}.ui-datepicker-multi-4 .ui-datepicker-group{width:25%;}.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header{border-left-width:0;}.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header{border-left-width:0;}.ui-datepicker-multi .ui-datepicker-buttonpane{clear:left;}.ui-datepicker-row-break{clear:both;width:100%;font-size:0;}.ui-datepicker-rtl{direction:rtl;}.ui-datepicker-rtl .ui-datepicker-prev{right:2px;left:auto;}.ui-datepicker-rtl .ui-datepicker-next{left:2px;right:auto;}.ui-datepicker-rtl .ui-datepicker-prev:hover{right:1px;left:auto;}.ui-datepicker-rtl .ui-datepicker-next:hover{left:1px;right:auto;}.ui-datepicker-rtl .ui-datepicker-buttonpane{clear:right;}.ui-datepicker-rtl .ui-datepicker-buttonpane button{float:left;}.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current{float:right;}.ui-datepicker-rtl .ui-datepicker-group{float:right;}.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header{border-right-width:0;border-left-width:1px;}.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header{border-right-width:0;border-left-width:1px;}.ui-datepicker-cover{display:none;display:block;position:absolute;z-index:-1;filter:mask();top:-4px;left:-4px;width:200px;height:200px;}.ui-progressbar{height:2em;text-align:left;}.ui-progressbar .ui-progressbar-value{margin:-1px;height:100%;}
\ No newline at end of file
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/ui-lightness/images/ui-bg_diagonals-thick_18_b81900_40x40.png b/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/ui-lightness/images/ui-bg_diagonals-thick_18_b81900_40x40.png
deleted file mode 100755
index 954e22db..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/ui-lightness/images/ui-bg_diagonals-thick_18_b81900_40x40.png
+++ /dev/null
Binary files differdiff --git a/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/ui-lightness/images/ui-bg_diagonals-thick_20_666666_40x40.png b/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/ui-lightness/images/ui-bg_diagonals-thick_20_666666_40x40.png
deleted file mode 100755
index 64ece570..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/ui-lightness/images/ui-bg_diagonals-thick_20_666666_40x40.png
+++ /dev/null
Binary files differdiff --git a/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/ui-lightness/images/ui-bg_flat_10_000000_40x100.png b/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/ui-lightness/images/ui-bg_flat_10_000000_40x100.png
deleted file mode 100755
index abdc0108..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/ui-lightness/images/ui-bg_flat_10_000000_40x100.png
+++ /dev/null
Binary files differdiff --git a/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/ui-lightness/images/ui-bg_glass_100_f6f6f6_1x400.png b/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/ui-lightness/images/ui-bg_glass_100_f6f6f6_1x400.png
deleted file mode 100755
index 9b383f4d..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/ui-lightness/images/ui-bg_glass_100_f6f6f6_1x400.png
+++ /dev/null
Binary files differdiff --git a/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/ui-lightness/images/ui-bg_glass_100_fdf5ce_1x400.png b/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/ui-lightness/images/ui-bg_glass_100_fdf5ce_1x400.png
deleted file mode 100755
index a23baad2..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/ui-lightness/images/ui-bg_glass_100_fdf5ce_1x400.png
+++ /dev/null
Binary files differdiff --git a/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/ui-lightness/images/ui-bg_glass_65_ffffff_1x400.png b/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/ui-lightness/images/ui-bg_glass_65_ffffff_1x400.png
deleted file mode 100755
index 42ccba26..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/ui-lightness/images/ui-bg_glass_65_ffffff_1x400.png
+++ /dev/null
Binary files differdiff --git a/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/ui-lightness/images/ui-bg_gloss-wave_35_f6a828_500x100.png b/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/ui-lightness/images/ui-bg_gloss-wave_35_f6a828_500x100.png
deleted file mode 100755
index 39d5824d..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/ui-lightness/images/ui-bg_gloss-wave_35_f6a828_500x100.png
+++ /dev/null
Binary files differdiff --git a/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/ui-lightness/images/ui-bg_highlight-soft_100_eeeeee_1x100.png b/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/ui-lightness/images/ui-bg_highlight-soft_100_eeeeee_1x100.png
deleted file mode 100755
index f1273672..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/ui-lightness/images/ui-bg_highlight-soft_100_eeeeee_1x100.png
+++ /dev/null
Binary files differdiff --git a/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/ui-lightness/images/ui-bg_highlight-soft_75_ffe45c_1x100.png b/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/ui-lightness/images/ui-bg_highlight-soft_75_ffe45c_1x100.png
deleted file mode 100755
index 359397ac..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/ui-lightness/images/ui-bg_highlight-soft_75_ffe45c_1x100.png
+++ /dev/null
Binary files differdiff --git a/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/ui-lightness/images/ui-icons_228ef1_256x240.png b/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/ui-lightness/images/ui-icons_228ef1_256x240.png
deleted file mode 100755
index a641a371..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/ui-lightness/images/ui-icons_228ef1_256x240.png
+++ /dev/null
Binary files differdiff --git a/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/ui-lightness/images/ui-icons_ef8c08_256x240.png b/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/ui-lightness/images/ui-icons_ef8c08_256x240.png
deleted file mode 100755
index 85e63e9f..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/ui-lightness/images/ui-icons_ef8c08_256x240.png
+++ /dev/null
Binary files differdiff --git a/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/ui-lightness/images/ui-icons_ffd27a_256x240.png b/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/ui-lightness/images/ui-icons_ffd27a_256x240.png
deleted file mode 100755
index e117effa..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/ui-lightness/images/ui-icons_ffd27a_256x240.png
+++ /dev/null
Binary files differdiff --git a/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/ui-lightness/images/ui-icons_ffffff_256x240.png b/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/ui-lightness/images/ui-icons_ffffff_256x240.png
deleted file mode 100755
index 42f8f992..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/ui-lightness/images/ui-icons_ffffff_256x240.png
+++ /dev/null
Binary files differdiff --git a/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/ui-lightness/jquery-ui-1.9pre.css b/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/ui-lightness/jquery-ui-1.9pre.css
deleted file mode 100755
index cd66d537..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/ui-lightness/jquery-ui-1.9pre.css
+++ /dev/null
@@ -1,612 +0,0 @@
-/*
- * jQuery UI CSS Framework 1.9pre
- *
- * 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 Accordion 1.9pre
- *
- * 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/Accordion#theming
- */
-/* IE/Win - Fix animation bug - #4615 */
-.ui-accordion { width: 100%; }
-.ui-accordion .ui-accordion-header { cursor: pointer; position: relative; margin-top: 1px; zoom: 1; }
-.ui-accordion .ui-accordion-header-active { border-bottom: 0 !important; }
-.ui-accordion .ui-accordion-heading { display: block; font-size: 1em; padding: .5em .5em .5em .7em; }
-.ui-accordion-icons .ui-accordion-heading { padding-left: 2.2em; }
-.ui-accordion .ui-accordion-header .ui-accordion-header-icon { position: absolute; left: .5em; top: 50%; margin-top: -8px; }
-.ui-accordion .ui-accordion-content { padding: 1em 2.2em; border-top: 0; margin-top: -2px; position: relative; top: 1px; margin-bottom: 2px; overflow: auto; display: none; zoom: 1; }
-.ui-accordion .ui-accordion-content-active { display: block; }
-/*
- * jQuery UI Autocomplete 1.9pre
- *
- * 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/Autocomplete#theming
- */
-.ui-autocomplete { position: absolute; cursor: default; }	
-
-/* workarounds */
-* html .ui-autocomplete { width:1px; } /* without this, the menu expands to 100% in IE6 */
-/*
- * jQuery UI Button 1.9pre
- *
- * 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/Button#theming
- */
-.ui-button { display: inline-block; position: relative; padding: 0; margin-right: .1em; text-decoration: none !important; cursor: pointer; text-align: center; zoom: 1; overflow: visible; } /* the overflow property removes extra width in IE */
-.ui-button-icon-only { width: 2.2em; } /* to make room for the icon, a width needs to be set here */
-button.ui-button-icon-only { width: 2.4em; } /* button elements seem to need a little more width */
-.ui-button-icons-only { width: 3.4em; } 
-button.ui-button-icons-only { width: 3.7em; } 
-
-/*button text element */
-.ui-button .ui-button-text { display: block; line-height: 1.4;  }
-.ui-button-text-only .ui-button-text { padding: .4em 1em; }
-.ui-button-icon-only .ui-button-text, .ui-button-icons-only .ui-button-text { padding: .4em; text-indent: -9999999px; }
-.ui-button-text-icon-primary .ui-button-text, .ui-button-text-icons .ui-button-text { padding: .4em 1em .4em 2.1em; }
-.ui-button-text-icon-secondary .ui-button-text, .ui-button-text-icons .ui-button-text { padding: .4em 2.1em .4em 1em; }
-.ui-button-text-icons .ui-button-text { padding-left: 2.1em; padding-right: 2.1em; }
-/* no icon support for input elements, provide padding by default */
-input.ui-button { padding: .4em 1em; }
-
-/*button icon element(s) */
-.ui-button-icon-only .ui-icon, .ui-button-text-icon-primary .ui-icon, .ui-button-text-icon-secondary .ui-icon, .ui-button-text-icons .ui-icon, .ui-button-icons-only .ui-icon { position: absolute; top: 50%; margin-top: -8px; }
-.ui-button-icon-only .ui-icon { left: 50%; margin-left: -8px; }
-.ui-button-text-icon-primary .ui-button-icon-primary, .ui-button-text-icons .ui-button-icon-primary, .ui-button-icons-only .ui-button-icon-primary { left: .5em; }
-.ui-button-text-icon-secondary .ui-button-icon-secondary, .ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary { right: .5em; }
-.ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary { right: .5em; }
-
-/*button sets*/
-.ui-buttonset { margin-right: 7px; }
-.ui-buttonset .ui-button { margin-left: 0; margin-right: -.3em; }
-
-/* workarounds */
-button.ui-button::-moz-focus-inner { border: 0; padding: 0; } /* reset extra padding in Firefox */
-/*
- * jQuery UI Datepicker 1.9pre
- *
- * 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/Datepicker#theming
- */
-.ui-datepicker { width: 17em; padding: .2em .2em 0; display: none; }
-.ui-datepicker .ui-datepicker-header { position:relative; padding:.2em 0; }
-.ui-datepicker .ui-datepicker-prev, .ui-datepicker .ui-datepicker-next { position:absolute; top: 2px; width: 1.8em; height: 1.8em; }
-.ui-datepicker .ui-datepicker-prev-hover, .ui-datepicker .ui-datepicker-next-hover { top: 1px; }
-.ui-datepicker .ui-datepicker-prev { left:2px; }
-.ui-datepicker .ui-datepicker-next { right:2px; }
-.ui-datepicker .ui-datepicker-prev-hover { left:1px; }
-.ui-datepicker .ui-datepicker-next-hover { right:1px; }
-.ui-datepicker .ui-datepicker-prev span, .ui-datepicker .ui-datepicker-next span { display: block; position: absolute; left: 50%; margin-left: -8px; top: 50%; margin-top: -8px;  }
-.ui-datepicker .ui-datepicker-title { margin: 0 2.3em; line-height: 1.8em; text-align: center; }
-.ui-datepicker .ui-datepicker-title select { font-size:1em; margin:1px 0; }
-.ui-datepicker select.ui-datepicker-month-year {width: 100%;}
-.ui-datepicker select.ui-datepicker-month, 
-.ui-datepicker select.ui-datepicker-year { width: 49%;}
-.ui-datepicker table {width: 100%; font-size: .9em; border-collapse: collapse; margin:0 0 .4em; }
-.ui-datepicker th { padding: .7em .3em; text-align: center; font-weight: bold; border: 0;  }
-.ui-datepicker td { border: 0; padding: 1px; }
-.ui-datepicker td span, .ui-datepicker td a { display: block; padding: .2em; text-align: right; text-decoration: none; }
-.ui-datepicker .ui-datepicker-buttonpane { background-image: none; margin: .7em 0 0 0; padding:0 .2em; border-left: 0; border-right: 0; border-bottom: 0; }
-.ui-datepicker .ui-datepicker-buttonpane button { float: right; margin: .5em .2em .4em; cursor: pointer; padding: .2em .6em .3em .6em; width:auto; overflow:visible; }
-.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current { float:left; }
-
-/* with multiple calendars */
-.ui-datepicker.ui-datepicker-multi { width:auto; }
-.ui-datepicker-multi .ui-datepicker-group { float:left; }
-.ui-datepicker-multi .ui-datepicker-group table { width:95%; margin:0 auto .4em; }
-.ui-datepicker-multi-2 .ui-datepicker-group { width:50%; }
-.ui-datepicker-multi-3 .ui-datepicker-group { width:33.3%; }
-.ui-datepicker-multi-4 .ui-datepicker-group { width:25%; }
-.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header { border-left-width:0; }
-.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header { border-left-width:0; }
-.ui-datepicker-multi .ui-datepicker-buttonpane { clear:left; }
-.ui-datepicker-row-break { clear:both; width:100%; font-size:0em; }
-
-/* RTL support */
-.ui-datepicker-rtl { direction: rtl; }
-.ui-datepicker-rtl .ui-datepicker-prev { right: 2px; left: auto; }
-.ui-datepicker-rtl .ui-datepicker-next { left: 2px; right: auto; }
-.ui-datepicker-rtl .ui-datepicker-prev:hover { right: 1px; left: auto; }
-.ui-datepicker-rtl .ui-datepicker-next:hover { left: 1px; right: auto; }
-.ui-datepicker-rtl .ui-datepicker-buttonpane { clear:right; }
-.ui-datepicker-rtl .ui-datepicker-buttonpane button { float: left; }
-.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current { float:right; }
-.ui-datepicker-rtl .ui-datepicker-group { float:right; }
-.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header { border-right-width:0; border-left-width:1px; }
-.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header { border-right-width:0; border-left-width:1px; }
-
-/* IE6 IFRAME FIX (taken from datepicker 1.5.3 */
-.ui-datepicker-cover {
-    display: none; /*sorry for IE5*/
-    display/**/: block; /*sorry for IE5*/
-    position: absolute; /*must have*/
-    z-index: -1; /*must have*/
-    filter: mask(); /*must have*/
-    top: -4px; /*must have*/
-    left: -4px; /*must have*/
-    width: 200px; /*must have*/
-    height: 200px; /*must have*/
-}/*
- * jQuery UI Dialog 1.9pre
- *
- * 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/Dialog#theming
- */
-.ui-dialog { position: absolute; padding: .2em; width: 300px; overflow: hidden; }
-.ui-dialog .ui-dialog-titlebar { padding: .4em 1em; position: relative;  }
-.ui-dialog .ui-dialog-title { float: left; margin: .1em 16px .1em 0; } 
-.ui-dialog .ui-dialog-titlebar-close { position: absolute; right: .3em; top: 50%; width: 19px; margin: -10px 0 0 0; padding: 1px; height: 18px; }
-.ui-dialog .ui-dialog-titlebar-close span { display: block; margin: 1px; }
-.ui-dialog .ui-dialog-titlebar-close:hover, .ui-dialog .ui-dialog-titlebar-close:focus { padding: 0; }
-.ui-dialog .ui-dialog-content { position: relative; border: 0; padding: .5em 1em; background: none; overflow: auto; zoom: 1; }
-.ui-dialog .ui-dialog-buttonpane { text-align: left; border-width: 1px 0 0 0; background-image: none; margin: .5em 0 0 0; padding: .3em 1em .5em .4em; }
-.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset { float: right; }
-.ui-dialog .ui-dialog-buttonpane button { margin: .5em .4em .5em 0; cursor: pointer; }
-.ui-dialog .ui-resizable-se { width: 14px; height: 14px; right: 3px; bottom: 3px; }
-.ui-draggable .ui-dialog-titlebar { cursor: move; }
-/*
- * jQuery UI Menu 1.9pre
- *
- * 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/Menu#theming
- */
-.ui-menu { list-style:none; padding: 2px; margin: 0; display:block; outline: none; }
-.ui-menu .ui-menu { margin-top: -3px; position: absolute; }
-.ui-menu .ui-menu-item { margin: 0; padding: 0; zoom: 1; width: 100%; }
-.ui-menu .ui-menu-item a { text-decoration: none; display: block; padding: 2px .4em; line-height: 1.5; zoom: 1; font-weight: normal; }
-.ui-menu .ui-menu-item a.ui-state-focus,
-.ui-menu .ui-menu-item a.ui-state-active { font-weight: normal; margin: -1px; }
-
-.ui-menu li.ui-state-disabled { font-weight: normal; padding: .0em .4em; margin: .4em 0 .2em; line-height: 1.5; }
-
-/* icon support */
-.ui-menu-icons { position: relative; }
-.ui-menu-icons .ui-menu-item a { position: relative; padding-left: 2em; }
-
-/* left-aligned */
-.ui-menu .ui-icon { position: absolute; top: .2em; left: .2em; }
-
-/* right-aligned */
-.ui-menu .ui-menu-icon { position: static; float: right; }
-/*
- * jQuery UI Menubar 1.9pre
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- */
-.ui-menubar { list-style: none; margin: 0; padding-left: 0; }
-
-.ui-menubar-item { float: left; }
-
-.ui-menubar .ui-button { float: left; font-weight: normal; border-top-width: 0 !important; border-bottom-width: 0 !important; margin: 0; outline: none; }
-.ui-menubar .ui-menubar-link { border-right: 1px dashed transparent; border-left: 1px dashed transparent; }
-
-.ui-menubar .ui-menu { width: 200px; position: absolute; z-index: 9999; }
-/*
- * jQuery UI Progressbar 1.9pre
- *
- * 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/Progressbar#theming
- */
-.ui-progressbar { height:2em; text-align: left; overflow: hidden; }
-.ui-progressbar .ui-progressbar-value {margin: -1px; height:100%; }/*
- * jQuery UI Resizable 1.9pre
- *
- * 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/Resizable#theming
- */
-.ui-resizable { position: relative;}
-.ui-resizable-handle { position: absolute;font-size: 0.1px;z-index: 99999; display: block; }
-.ui-resizable-disabled .ui-resizable-handle, .ui-resizable-autohide .ui-resizable-handle { display: none; }
-.ui-resizable-n { cursor: n-resize; height: 7px; width: 100%; top: -5px; left: 0; }
-.ui-resizable-s { cursor: s-resize; height: 7px; width: 100%; bottom: -5px; left: 0; }
-.ui-resizable-e { cursor: e-resize; width: 7px; right: -5px; top: 0; height: 100%; }
-.ui-resizable-w { cursor: w-resize; width: 7px; left: -5px; top: 0; height: 100%; }
-.ui-resizable-se { cursor: se-resize; width: 12px; height: 12px; right: 1px; bottom: 1px; }
-.ui-resizable-sw { cursor: sw-resize; width: 9px; height: 9px; left: -5px; bottom: -5px; }
-.ui-resizable-nw { cursor: nw-resize; width: 9px; height: 9px; left: -5px; top: -5px; }
-.ui-resizable-ne { cursor: ne-resize; width: 9px; height: 9px; right: -5px; top: -5px;}/*
- * jQuery UI Selectable 1.9pre
- *
- * 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/Selectable#theming
- */
-.ui-selectable-helper { position: absolute; z-index: 100; border:1px dotted black; }
-/*
- * jQuery UI Slider 1.9pre
- *
- * 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; }/*
- * jQuery UI Spinner 1.9pre
- *
- * 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/Spinner#theming
- */
-.ui-spinner { position:relative; display: inline-block; overflow: hidden; padding: 0; vertical-align: middle; }
-.ui-spinner-input { border: none; background: none; padding: 0; margin: .2em 0; vertical-align: middle; margin-left: .4em; margin-right: 22px; }
-.ui-spinner-button { width: 16px; height: 50%; font-size: .5em; padding: 0; margin: 0; z-index: 100; text-align: center; vertical-align: middle; position: absolute; cursor: default; display: block; overflow: hidden; right: 0; }
-.ui-spinner a.ui-spinner-button { border-top: none; border-bottom: none; border-right: none; } /* more specificity required here to overide default borders */
-.ui-spinner .ui-icon { position: absolute; margin-top: -8px; top: 50%; left: 0; } /* vertical centre icon */
-.ui-spinner-up { top: 0; }
-.ui-spinner-down { bottom: 0; }
-
-/* TR overrides */
-span.ui-spinner { background: none; }
-.ui-spinner .ui-icon-triangle-1-s {
-	/* need to fix icons sprite */
-	background-position:-65px -16px;
-}
-/*
- * jQuery UI Tabs 1.9pre
- *
- * 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/Tabs#theming
- */
-.ui-tabs { position: relative; padding: .2em; zoom: 1; } /* position: relative prevents IE scroll bug (element with position: relative inside container with overflow: auto appear as "fixed") */
-.ui-tabs .ui-tabs-nav { margin: 0; padding: .2em .2em 0; }
-.ui-tabs .ui-tabs-nav li { list-style: none; float: left; position: relative; top: 0; margin: 1px .2em 0 0; border-bottom: 0 !important; padding: 0; white-space: nowrap; }
-.ui-tabs .ui-tabs-nav li a { float: left; padding: .5em 1em; text-decoration: none; }
-.ui-tabs .ui-tabs-nav li.ui-tabs-active { margin-bottom: -1px; padding-bottom: 1px; }
-.ui-tabs .ui-tabs-nav li.ui-tabs-active a, .ui-tabs .ui-tabs-nav li.ui-state-disabled a, .ui-tabs .ui-tabs-nav li.ui-tabs-loading a { cursor: text; }
-.ui-tabs .ui-tabs-nav li a, .ui-tabs.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-active a { cursor: pointer; } /* first selector in group seems obsolete, but required to overcome bug in Opera applying cursor: text overall if defined elsewhere... */
-.ui-tabs .ui-tabs-panel { display: block; border-width: 0; padding: 1em 1.4em; background: none; }
-/*
- * jQuery UI Tooltip 1.9pre
- *
- * 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/Tooltip#theming
- */
-.ui-tooltip {
-	padding:8px;
-	position:absolute;
-	z-index:9999;
-	-o-box-shadow: 0 0 5px #aaa;
-	-moz-box-shadow: 0 0 5px #aaa;
-	-webkit-box-shadow: 0 0 5px #aaa;
-	box-shadow: 0 0 5px #aaa;
-}
-/* Fades and background-images don't work well together in IE6, drop the image */
-* html .ui-tooltip {
-	background-image: none;
-}
-body .ui-tooltip { border-width:2px; }
-/*
- * jQuery UI CSS Framework 1.9pre
- *
- * 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/
- */
-
-
-/* Component containers
-----------------------------------*/
-.ui-widget { font-family: Verdana,Arial,sans-serif/*{ffDefault}*/; font-size: 1.1em/*{fsDefault}*/; }
-.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/*{ffDefault}*/; font-size: 1em; }
-.ui-widget-content { border: 1px solid #aaaaaa/*{borderColorContent}*/; background: #ffffff/*{bgColorContent}*/ url(images/ui-bg_flat_75_ffffff_40x100.png)/*{bgImgUrlContent}*/ 50%/*{bgContentXPos}*/ 50%/*{bgContentYPos}*/ repeat-x/*{bgContentRepeat}*/; color: #222222/*{fcContent}*/; }
-.ui-widget-content a { color: #222222/*{fcContent}*/; }
-.ui-widget-header { border: 1px solid #aaaaaa/*{borderColorHeader}*/; background: #cccccc/*{bgColorHeader}*/ url(images/ui-bg_highlight-soft_75_cccccc_1x100.png)/*{bgImgUrlHeader}*/ 50%/*{bgHeaderXPos}*/ 50%/*{bgHeaderYPos}*/ repeat-x/*{bgHeaderRepeat}*/; color: #222222/*{fcHeader}*/; font-weight: bold; }
-.ui-widget-header a { color: #222222/*{fcHeader}*/; }
-
-/* Interaction states
-----------------------------------*/
-.ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default { border: 1px solid #d3d3d3/*{borderColorDefault}*/; background: #e6e6e6/*{bgColorDefault}*/ url(images/ui-bg_glass_75_e6e6e6_1x400.png)/*{bgImgUrlDefault}*/ 50%/*{bgDefaultXPos}*/ 50%/*{bgDefaultYPos}*/ repeat-x/*{bgDefaultRepeat}*/; font-weight: normal/*{fwDefault}*/; color: #555555/*{fcDefault}*/; }
-.ui-state-default a, .ui-state-default a:link, .ui-state-default a:visited { color: #555555/*{fcDefault}*/; 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/*{borderColorHover}*/; background: #dadada/*{bgColorHover}*/ url(images/ui-bg_glass_75_dadada_1x400.png)/*{bgImgUrlHover}*/ 50%/*{bgHoverXPos}*/ 50%/*{bgHoverYPos}*/ repeat-x/*{bgHoverRepeat}*/; font-weight: normal/*{fwDefault}*/; color: #212121/*{fcHover}*/; }
-.ui-state-hover a, .ui-state-hover a:hover { color: #212121/*{fcHover}*/; text-decoration: none; }
-.ui-state-active, .ui-widget-content .ui-state-active, .ui-widget-header .ui-state-active { border: 1px solid #aaaaaa/*{borderColorActive}*/; background: #ffffff/*{bgColorActive}*/ url(images/ui-bg_glass_65_ffffff_1x400.png)/*{bgImgUrlActive}*/ 50%/*{bgActiveXPos}*/ 50%/*{bgActiveYPos}*/ repeat-x/*{bgActiveRepeat}*/; font-weight: normal/*{fwDefault}*/; color: #212121/*{fcActive}*/; }
-.ui-state-active a, .ui-state-active a:link, .ui-state-active a:visited { color: #212121/*{fcActive}*/; 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/*{borderColorHighlight}*/; background: #fbf9ee/*{bgColorHighlight}*/ url(images/ui-bg_glass_55_fbf9ee_1x400.png)/*{bgImgUrlHighlight}*/ 50%/*{bgHighlightXPos}*/ 50%/*{bgHighlightYPos}*/ repeat-x/*{bgHighlightRepeat}*/; color: #363636/*{fcHighlight}*/; }
-.ui-state-highlight a, .ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a { color: #363636/*{fcHighlight}*/; }
-.ui-state-error, .ui-widget-content .ui-state-error, .ui-widget-header .ui-state-error {border: 1px solid #cd0a0a/*{borderColorError}*/; background: #fef1ec/*{bgColorError}*/ url(images/ui-bg_glass_95_fef1ec_1x400.png)/*{bgImgUrlError}*/ 50%/*{bgErrorXPos}*/ 50%/*{bgErrorYPos}*/ repeat-x/*{bgErrorRepeat}*/; color: #cd0a0a/*{fcError}*/; }
-.ui-state-error a, .ui-widget-content .ui-state-error a, .ui-widget-header .ui-state-error a { color: #cd0a0a/*{fcError}*/; }
-.ui-state-error-text, .ui-widget-content .ui-state-error-text, .ui-widget-header .ui-state-error-text { color: #cd0a0a/*{fcError}*/; }
-.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)/*{iconsContent}*/; }
-.ui-widget-content .ui-icon {background-image: url(images/ui-icons_222222_256x240.png)/*{iconsContent}*/; }
-.ui-widget-header .ui-icon {background-image: url(images/ui-icons_222222_256x240.png)/*{iconsHeader}*/; }
-.ui-state-default .ui-icon { background-image: url(images/ui-icons_888888_256x240.png)/*{iconsDefault}*/; }
-.ui-state-hover .ui-icon, .ui-state-focus .ui-icon {background-image: url(images/ui-icons_454545_256x240.png)/*{iconsHover}*/; }
-.ui-state-active .ui-icon {background-image: url(images/ui-icons_454545_256x240.png)/*{iconsActive}*/; }
-.ui-state-highlight .ui-icon {background-image: url(images/ui-icons_2e83ff_256x240.png)/*{iconsHighlight}*/; }
-.ui-state-error .ui-icon, .ui-state-error-text .ui-icon {background-image: url(images/ui-icons_cd0a0a_256x240.png)/*{iconsError}*/; }
-
-/* 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-on { background-position: -96px -144px; }
-.ui-icon-radio-off { background-position: -112px -144px; }
-.ui-icon-pin-w { background-position: -128px -144px; }
-.ui-icon-pin-s { background-position: -144px -144px; }
-.ui-icon-play { background-position: 0 -160px; }
-.ui-icon-pause { background-position: -16px -160px; }
-.ui-icon-seek-next { background-position: -32px -160px; }
-.ui-icon-seek-prev { background-position: -48px -160px; }
-.ui-icon-seek-end { background-position: -64px -160px; }
-.ui-icon-seek-start { background-position: -80px -160px; }
-/* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */
-.ui-icon-seek-first { background-position: -80px -160px; }
-.ui-icon-stop { background-position: -96px -160px; }
-.ui-icon-eject { background-position: -112px -160px; }
-.ui-icon-volume-off { background-position: -128px -160px; }
-.ui-icon-volume-on { background-position: -144px -160px; }
-.ui-icon-power { background-position: 0 -176px; }
-.ui-icon-signal-diag { background-position: -16px -176px; }
-.ui-icon-signal { background-position: -32px -176px; }
-.ui-icon-battery-0 { background-position: -48px -176px; }
-.ui-icon-battery-1 { background-position: -64px -176px; }
-.ui-icon-battery-2 { background-position: -80px -176px; }
-.ui-icon-battery-3 { background-position: -96px -176px; }
-.ui-icon-circle-plus { background-position: 0 -192px; }
-.ui-icon-circle-minus { background-position: -16px -192px; }
-.ui-icon-circle-close { background-position: -32px -192px; }
-.ui-icon-circle-triangle-e { background-position: -48px -192px; }
-.ui-icon-circle-triangle-s { background-position: -64px -192px; }
-.ui-icon-circle-triangle-w { background-position: -80px -192px; }
-.ui-icon-circle-triangle-n { background-position: -96px -192px; }
-.ui-icon-circle-arrow-e { background-position: -112px -192px; }
-.ui-icon-circle-arrow-s { background-position: -128px -192px; }
-.ui-icon-circle-arrow-w { background-position: -144px -192px; }
-.ui-icon-circle-arrow-n { background-position: -160px -192px; }
-.ui-icon-circle-zoomin { background-position: -176px -192px; }
-.ui-icon-circle-zoomout { background-position: -192px -192px; }
-.ui-icon-circle-check { background-position: -208px -192px; }
-.ui-icon-circlesmall-plus { background-position: 0 -208px; }
-.ui-icon-circlesmall-minus { background-position: -16px -208px; }
-.ui-icon-circlesmall-close { background-position: -32px -208px; }
-.ui-icon-squaresmall-plus { background-position: -48px -208px; }
-.ui-icon-squaresmall-minus { background-position: -64px -208px; }
-.ui-icon-squaresmall-close { background-position: -80px -208px; }
-.ui-icon-grip-dotted-vertical { background-position: 0 -224px; }
-.ui-icon-grip-dotted-horizontal { background-position: -16px -224px; }
-.ui-icon-grip-solid-vertical { background-position: -32px -224px; }
-.ui-icon-grip-solid-horizontal { background-position: -48px -224px; }
-.ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; }
-.ui-icon-grip-diagonal-se { background-position: -80px -224px; }
-
-
-/* Misc visuals
-----------------------------------*/
-
-/* Corner radius */
-.ui-corner-all, .ui-corner-top, .ui-corner-left, .ui-corner-tl { -moz-border-radius-topleft: 4px/*{cornerRadius}*/; -webkit-border-top-left-radius: 4px/*{cornerRadius}*/; -khtml-border-top-left-radius: 4px/*{cornerRadius}*/; border-top-left-radius: 4px/*{cornerRadius}*/; }
-.ui-corner-all, .ui-corner-top, .ui-corner-right, .ui-corner-tr { -moz-border-radius-topright: 4px/*{cornerRadius}*/; -webkit-border-top-right-radius: 4px/*{cornerRadius}*/; -khtml-border-top-right-radius: 4px/*{cornerRadius}*/; border-top-right-radius: 4px/*{cornerRadius}*/; }
-.ui-corner-all, .ui-corner-bottom, .ui-corner-left, .ui-corner-bl { -moz-border-radius-bottomleft: 4px/*{cornerRadius}*/; -webkit-border-bottom-left-radius: 4px/*{cornerRadius}*/; -khtml-border-bottom-left-radius: 4px/*{cornerRadius}*/; border-bottom-left-radius: 4px/*{cornerRadius}*/; }
-.ui-corner-all, .ui-corner-bottom, .ui-corner-right, .ui-corner-br { -moz-border-radius-bottomright: 4px/*{cornerRadius}*/; -webkit-border-bottom-right-radius: 4px/*{cornerRadius}*/; -khtml-border-bottom-right-radius: 4px/*{cornerRadius}*/; border-bottom-right-radius: 4px/*{cornerRadius}*/; }
-
-/* Overlays */
-.ui-widget-overlay { background: #aaaaaa/*{bgColorOverlay}*/ url(images/ui-bg_flat_0_aaaaaa_40x100.png)/*{bgImgUrlOverlay}*/ 50%/*{bgOverlayXPos}*/ 50%/*{bgOverlayYPos}*/ repeat-x/*{bgOverlayRepeat}*/; opacity: .3;filter:Alpha(Opacity=30)/*{opacityOverlay}*/; }
-.ui-widget-shadow { margin: -8px/*{offsetTopShadow}*/ 0 0 -8px/*{offsetLeftShadow}*/; padding: 8px/*{thicknessShadow}*/; background: #aaaaaa/*{bgColorShadow}*/ url(images/ui-bg_flat_0_aaaaaa_40x100.png)/*{bgImgUrlShadow}*/ 50%/*{bgShadowXPos}*/ 50%/*{bgShadowYPos}*/ repeat-x/*{bgShadowRepeat}*/; opacity: .3;filter:Alpha(Opacity=30)/*{opacityShadow}*/; -moz-border-radius: 8px/*{cornerRadiusShadow}*/; -khtml-border-radius: 8px/*{cornerRadiusShadow}*/; -webkit-border-radius: 8px/*{cornerRadiusShadow}*/; border-radius: 8px/*{cornerRadiusShadow}*/; }
\ No newline at end of file
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/ui-lightness/jquery-ui-1.9pre.min.css b/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/ui-lightness/jquery-ui-1.9pre.min.css
deleted file mode 100755
index 56a9be11..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/ui-lightness/jquery-ui-1.9pre.min.css
+++ /dev/null
@@ -1,10 +0,0 @@
-/*
- * jQuery UI CSS Framework 1.9pre
- *
- * 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
- */
-.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);}.ui-state-disabled{cursor:default!important;}.ui-icon{display:block;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat;}.ui-widget-overlay{position:absolute;top:0;left:0;width:100%;height:100%;}.ui-accordion{width:100%;}.ui-accordion .ui-accordion-header{cursor:pointer;position:relative;margin-top:1px;zoom:1;}.ui-accordion .ui-accordion-header-active{border-bottom:0!important;}.ui-accordion .ui-accordion-heading{display:block;font-size:1em;padding:.5em .5em .5em .7em;}.ui-accordion-icons .ui-accordion-heading{padding-left:2.2em;}.ui-accordion .ui-accordion-header .ui-accordion-header-icon{position:absolute;left:.5em;top:50%;margin-top:-8px;}.ui-accordion .ui-accordion-content{padding:1em 2.2em;border-top:0;margin-top:-2px;position:relative;top:1px;margin-bottom:2px;overflow:auto;display:none;zoom:1;}.ui-accordion .ui-accordion-content-active{display:block;}.ui-autocomplete{position:absolute;cursor:default;}* html .ui-autocomplete{width:1px;}.ui-button{display:inline-block;position:relative;padding:0;margin-right:.1em;text-decoration:none!important;cursor:pointer;text-align:center;zoom:1;overflow:visible;}.ui-button-icon-only{width:2.2em;}button.ui-button-icon-only{width:2.4em;}.ui-button-icons-only{width:3.4em;}button.ui-button-icons-only{width:3.7em;}.ui-button .ui-button-text{display:block;line-height:1.4;}.ui-button-text-only .ui-button-text{padding:.4em 1em;}.ui-button-icon-only .ui-button-text,.ui-button-icons-only .ui-button-text{padding:.4em;text-indent:-9999999px;}.ui-button-text-icon-primary .ui-button-text,.ui-button-text-icons .ui-button-text{padding:.4em 1em .4em 2.1em;}.ui-button-text-icon-secondary .ui-button-text,.ui-button-text-icons .ui-button-text{padding:.4em 2.1em .4em 1em;}.ui-button-text-icons .ui-button-text{padding-left:2.1em;padding-right:2.1em;}input.ui-button{padding:.4em 1em;}.ui-button-icon-only .ui-icon,.ui-button-text-icon-primary .ui-icon,.ui-button-text-icon-secondary .ui-icon,.ui-button-text-icons .ui-icon,.ui-button-icons-only .ui-icon{position:absolute;top:50%;margin-top:-8px;}.ui-button-icon-only .ui-icon{left:50%;margin-left:-8px;}.ui-button-text-icon-primary .ui-button-icon-primary,.ui-button-text-icons .ui-button-icon-primary,.ui-button-icons-only .ui-button-icon-primary{left:.5em;}.ui-button-text-icon-secondary .ui-button-icon-secondary,.ui-button-text-icons .ui-button-icon-secondary,.ui-button-icons-only .ui-button-icon-secondary{right:.5em;}.ui-button-text-icons .ui-button-icon-secondary,.ui-button-icons-only .ui-button-icon-secondary{right:.5em;}.ui-buttonset{margin-right:7px;}.ui-buttonset .ui-button{margin-left:0;margin-right:-.3em;}button.ui-button::-moz-focus-inner{border:0;padding:0;}.ui-datepicker{width:17em;padding:.2em .2em 0;display:none;}.ui-datepicker .ui-datepicker-header{position:relative;padding:.2em 0;}.ui-datepicker .ui-datepicker-prev,.ui-datepicker .ui-datepicker-next{position:absolute;top:2px;width:1.8em;height:1.8em;}.ui-datepicker .ui-datepicker-prev-hover,.ui-datepicker .ui-datepicker-next-hover{top:1px;}.ui-datepicker .ui-datepicker-prev{left:2px;}.ui-datepicker .ui-datepicker-next{right:2px;}.ui-datepicker .ui-datepicker-prev-hover{left:1px;}.ui-datepicker .ui-datepicker-next-hover{right:1px;}.ui-datepicker .ui-datepicker-prev span,.ui-datepicker .ui-datepicker-next span{display:block;position:absolute;left:50%;margin-left:-8px;top:50%;margin-top:-8px;}.ui-datepicker .ui-datepicker-title{margin:0 2.3em;line-height:1.8em;text-align:center;}.ui-datepicker .ui-datepicker-title select{font-size:1em;margin:1px 0;}.ui-datepicker select.ui-datepicker-month-year{width:100%;}.ui-datepicker select.ui-datepicker-month,.ui-datepicker select.ui-datepicker-year{width:49%;}.ui-datepicker table{width:100%;font-size:.9em;border-collapse:collapse;margin:0 0 .4em;}.ui-datepicker th{padding:.7em .3em;text-align:center;font-weight:bold;border:0;}.ui-datepicker td{border:0;padding:1px;}.ui-datepicker td span,.ui-datepicker td a{display:block;padding:.2em;text-align:right;text-decoration:none;}.ui-datepicker .ui-datepicker-buttonpane{background-image:none;margin:.7em 0 0 0;padding:0 .2em;border-left:0;border-right:0;border-bottom:0;}.ui-datepicker .ui-datepicker-buttonpane button{float:right;margin:.5em .2em .4em;cursor:pointer;padding:.2em .6em .3em .6em;width:auto;overflow:visible;}.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current{float:left;}.ui-datepicker.ui-datepicker-multi{width:auto;}.ui-datepicker-multi .ui-datepicker-group{float:left;}.ui-datepicker-multi .ui-datepicker-group table{width:95%;margin:0 auto .4em;}.ui-datepicker-multi-2 .ui-datepicker-group{width:50%;}.ui-datepicker-multi-3 .ui-datepicker-group{width:33.3%;}.ui-datepicker-multi-4 .ui-datepicker-group{width:25%;}.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header{border-left-width:0;}.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header{border-left-width:0;}.ui-datepicker-multi .ui-datepicker-buttonpane{clear:left;}.ui-datepicker-row-break{clear:both;width:100%;font-size:0;}.ui-datepicker-rtl{direction:rtl;}.ui-datepicker-rtl .ui-datepicker-prev{right:2px;left:auto;}.ui-datepicker-rtl .ui-datepicker-next{left:2px;right:auto;}.ui-datepicker-rtl .ui-datepicker-prev:hover{right:1px;left:auto;}.ui-datepicker-rtl .ui-datepicker-next:hover{left:1px;right:auto;}.ui-datepicker-rtl .ui-datepicker-buttonpane{clear:right;}.ui-datepicker-rtl .ui-datepicker-buttonpane button{float:left;}.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current{float:right;}.ui-datepicker-rtl .ui-datepicker-group{float:right;}.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header{border-right-width:0;border-left-width:1px;}.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header{border-right-width:0;border-left-width:1px;}.ui-datepicker-cover{display:none;display:block;position:absolute;z-index:-1;filter:mask();top:-4px;left:-4px;width:200px;height:200px;}.ui-dialog{position:absolute;padding:.2em;width:300px;overflow:hidden;}.ui-dialog .ui-dialog-titlebar{padding:.4em 1em;position:relative;}.ui-dialog .ui-dialog-title{float:left;margin:.1em 16px .1em 0;}.ui-dialog .ui-dialog-titlebar-close{position:absolute;right:.3em;top:50%;width:19px;margin:-10px 0 0 0;padding:1px;height:18px;}.ui-dialog .ui-dialog-titlebar-close span{display:block;margin:1px;}.ui-dialog .ui-dialog-titlebar-close:hover,.ui-dialog .ui-dialog-titlebar-close:focus{padding:0;}.ui-dialog .ui-dialog-content{position:relative;border:0;padding:.5em 1em;background:none;overflow:auto;zoom:1;}.ui-dialog .ui-dialog-buttonpane{text-align:left;border-width:1px 0 0 0;background-image:none;margin:.5em 0 0 0;padding:.3em 1em .5em .4em;}.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset{float:right;}.ui-dialog .ui-dialog-buttonpane button{margin:.5em .4em .5em 0;cursor:pointer;}.ui-dialog .ui-resizable-se{width:14px;height:14px;right:3px;bottom:3px;}.ui-draggable .ui-dialog-titlebar{cursor:move;}.ui-menu{list-style:none;padding:2px;margin:0;display:block;outline:none;}.ui-menu .ui-menu{margin-top:-3px;position:absolute;}.ui-menu .ui-menu-item{margin:0;padding:0;zoom:1;width:100%;}.ui-menu .ui-menu-item a{text-decoration:none;display:block;padding:2px .4em;line-height:1.5;zoom:1;font-weight:normal;}.ui-menu .ui-menu-item a.ui-state-focus,.ui-menu .ui-menu-item a.ui-state-active{font-weight:normal;margin:-1px;}.ui-menu li.ui-state-disabled{font-weight:normal;padding:.0em .4em;margin:.4em 0 .2em;line-height:1.5;}.ui-menu-icons{position:relative;}.ui-menu-icons .ui-menu-item a{position:relative;padding-left:2em;}.ui-menu .ui-icon{position:absolute;top:.2em;left:.2em;}.ui-menu .ui-menu-icon{position:static;float:right;}.ui-menubar{list-style:none;margin:0;padding-left:0;}.ui-menubar-item{float:left;}.ui-menubar .ui-button{float:left;font-weight:normal;border-top-width:0!important;border-bottom-width:0!important;margin:0;outline:none;}.ui-menubar .ui-menubar-link{border-right:1px dashed transparent;border-left:1px dashed transparent;}.ui-menubar .ui-menu{width:200px;position:absolute;z-index:9999;}.ui-progressbar{height:2em;text-align:left;overflow:hidden;}.ui-progressbar .ui-progressbar-value{margin:-1px;height:100%;}.ui-resizable{position:relative;}.ui-resizable-handle{position:absolute;font-size:.1px;z-index:99999;display:block;}.ui-resizable-disabled .ui-resizable-handle,.ui-resizable-autohide .ui-resizable-handle{display:none;}.ui-resizable-n{cursor:n-resize;height:7px;width:100%;top:-5px;left:0;}.ui-resizable-s{cursor:s-resize;height:7px;width:100%;bottom:-5px;left:0;}.ui-resizable-e{cursor:e-resize;width:7px;right:-5px;top:0;height:100%;}.ui-resizable-w{cursor:w-resize;width:7px;left:-5px;top:0;height:100%;}.ui-resizable-se{cursor:se-resize;width:12px;height:12px;right:1px;bottom:1px;}.ui-resizable-sw{cursor:sw-resize;width:9px;height:9px;left:-5px;bottom:-5px;}.ui-resizable-nw{cursor:nw-resize;width:9px;height:9px;left:-5px;top:-5px;}.ui-resizable-ne{cursor:ne-resize;width:9px;height:9px;right:-5px;top:-5px;}.ui-selectable-helper{position:absolute;z-index:100;border:1px dotted black;}.ui-slider{position:relative;text-align:left;}.ui-slider .ui-slider-handle{position:absolute;z-index:2;width:1.2em;height:1.2em;cursor:default;}.ui-slider .ui-slider-range{position:absolute;z-index:1;font-size:.7em;display:block;border:0;background-position:0 0;}.ui-slider-horizontal{height:.8em;}.ui-slider-horizontal .ui-slider-handle{top:-.3em;margin-left:-.6em;}.ui-slider-horizontal .ui-slider-range{top:0;height:100%;}.ui-slider-horizontal .ui-slider-range-min{left:0;}.ui-slider-horizontal .ui-slider-range-max{right:0;}.ui-slider-vertical{width:.8em;height:100px;}.ui-slider-vertical .ui-slider-handle{left:-.3em;margin-left:0;margin-bottom:-.6em;}.ui-slider-vertical .ui-slider-range{left:0;width:100%;}.ui-slider-vertical .ui-slider-range-min{bottom:0;}.ui-slider-vertical .ui-slider-range-max{top:0;}.ui-spinner{position:relative;display:inline-block;overflow:hidden;padding:0;vertical-align:middle;}.ui-spinner-input{border:none;background:none;padding:0;margin:.2em 0;vertical-align:middle;margin-left:.4em;margin-right:22px;}.ui-spinner-button{width:16px;height:50%;font-size:.5em;padding:0;margin:0;z-index:100;text-align:center;vertical-align:middle;position:absolute;cursor:default;display:block;overflow:hidden;right:0;}.ui-spinner a.ui-spinner-button{border-top:none;border-bottom:none;border-right:none;}.ui-spinner .ui-icon{position:absolute;margin-top:-8px;top:50%;left:0;}.ui-spinner-up{top:0;}.ui-spinner-down{bottom:0;}span.ui-spinner{background:none;}.ui-spinner .ui-icon-triangle-1-s{background-position:-65px -16px;}.ui-tabs{position:relative;padding:.2em;zoom:1;}.ui-tabs .ui-tabs-nav{margin:0;padding:.2em .2em 0;}.ui-tabs .ui-tabs-nav li{list-style:none;float:left;position:relative;top:0;margin:1px .2em 0 0;border-bottom:0!important;padding:0;white-space:nowrap;}.ui-tabs .ui-tabs-nav li a{float:left;padding:.5em 1em;text-decoration:none;}.ui-tabs .ui-tabs-nav li.ui-tabs-active{margin-bottom:-1px;padding-bottom:1px;}.ui-tabs .ui-tabs-nav li.ui-tabs-active a,.ui-tabs .ui-tabs-nav li.ui-state-disabled a,.ui-tabs .ui-tabs-nav li.ui-tabs-loading a{cursor:text;}.ui-tabs .ui-tabs-nav li a,.ui-tabs.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-active a{cursor:pointer;}.ui-tabs .ui-tabs-panel{display:block;border-width:0;padding:1em 1.4em;background:none;}.ui-tooltip{padding:8px;position:absolute;z-index:9999;-o-box-shadow:0 0 5px #aaa;-moz-box-shadow:0 0 5px #aaa;-webkit-box-shadow:0 0 5px #aaa;box-shadow:0 0 5px #aaa;}* html .ui-tooltip{background-image:none;}body .ui-tooltip{border-width:2px;}.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 #aaa;background:#fff url(images/ui-bg_flat_75_ffffff_40x100.png) 50% 50% repeat-x;color:#222;}.ui-widget-content a{color:#222;}.ui-widget-header{border:1px solid #aaa;background:#ccc url(images/ui-bg_highlight-soft_75_cccccc_1x100.png) 50% 50% repeat-x;color:#222;font-weight:bold;}.ui-widget-header a{color:#222;}.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:#555;}.ui-state-default a,.ui-state-default a:link,.ui-state-default a:visited{color:#555;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 #999;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 #aaa;background:#fff 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;}.ui-state-highlight,.ui-widget-content .ui-state-highlight,.ui-widget-header .ui-state-highlight{border:1px solid #fcefa1;background:#fbf9ee url(images/ui-bg_glass_55_fbf9ee_1x400.png) 50% 50% repeat-x;color:#363636;}.ui-state-highlight a,.ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a{color:#363636;}.ui-state-error,.ui-widget-content .ui-state-error,.ui-widget-header .ui-state-error{border:1px solid #cd0a0a;background:#fef1ec url(images/ui-bg_glass_95_fef1ec_1x400.png) 50% 50% repeat-x;color:#cd0a0a;}.ui-state-error a,.ui-widget-content .ui-state-error a,.ui-widget-header .ui-state-error a{color:#cd0a0a;}.ui-state-error-text,.ui-widget-content .ui-state-error-text,.ui-widget-header .ui-state-error-text{color:#cd0a0a;}.ui-priority-primary,.ui-widget-content .ui-priority-primary,.ui-widget-header .ui-priority-primary{font-weight:bold;}.ui-priority-secondary,.ui-widget-content .ui-priority-secondary,.ui-widget-header .ui-priority-secondary{opacity:.7;filter:Alpha(Opacity=70);font-weight:normal;}.ui-state-disabled,.ui-widget-content .ui-state-disabled,.ui-widget-header .ui-state-disabled{opacity:.35;filter:Alpha(Opacity=35);background-image:none;}.ui-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);}.ui-icon-carat-1-n{background-position:0 0;}.ui-icon-carat-1-ne{background-position:-16px 0;}.ui-icon-carat-1-e{background-position:-32px 0;}.ui-icon-carat-1-se{background-position:-48px 0;}.ui-icon-carat-1-s{background-position:-64px 0;}.ui-icon-carat-1-sw{background-position:-80px 0;}.ui-icon-carat-1-w{background-position:-96px 0;}.ui-icon-carat-1-nw{background-position:-112px 0;}.ui-icon-carat-2-n-s{background-position:-128px 0;}.ui-icon-carat-2-e-w{background-position:-144px 0;}.ui-icon-triangle-1-n{background-position:0 -16px;}.ui-icon-triangle-1-ne{background-position:-16px -16px;}.ui-icon-triangle-1-e{background-position:-32px -16px;}.ui-icon-triangle-1-se{background-position:-48px -16px;}.ui-icon-triangle-1-s{background-position:-64px -16px;}.ui-icon-triangle-1-sw{background-position:-80px -16px;}.ui-icon-triangle-1-w{background-position:-96px -16px;}.ui-icon-triangle-1-nw{background-position:-112px -16px;}.ui-icon-triangle-2-n-s{background-position:-128px -16px;}.ui-icon-triangle-2-e-w{background-position:-144px -16px;}.ui-icon-arrow-1-n{background-position:0 -32px;}.ui-icon-arrow-1-ne{background-position:-16px -32px;}.ui-icon-arrow-1-e{background-position:-32px -32px;}.ui-icon-arrow-1-se{background-position:-48px -32px;}.ui-icon-arrow-1-s{background-position:-64px -32px;}.ui-icon-arrow-1-sw{background-position:-80px -32px;}.ui-icon-arrow-1-w{background-position:-96px -32px;}.ui-icon-arrow-1-nw{background-position:-112px -32px;}.ui-icon-arrow-2-n-s{background-position:-128px -32px;}.ui-icon-arrow-2-ne-sw{background-position:-144px -32px;}.ui-icon-arrow-2-e-w{background-position:-160px -32px;}.ui-icon-arrow-2-se-nw{background-position:-176px -32px;}.ui-icon-arrowstop-1-n{background-position:-192px -32px;}.ui-icon-arrowstop-1-e{background-position:-208px -32px;}.ui-icon-arrowstop-1-s{background-position:-224px -32px;}.ui-icon-arrowstop-1-w{background-position:-240px -32px;}.ui-icon-arrowthick-1-n{background-position:0 -48px;}.ui-icon-arrowthick-1-ne{background-position:-16px -48px;}.ui-icon-arrowthick-1-e{background-position:-32px -48px;}.ui-icon-arrowthick-1-se{background-position:-48px -48px;}.ui-icon-arrowthick-1-s{background-position:-64px -48px;}.ui-icon-arrowthick-1-sw{background-position:-80px -48px;}.ui-icon-arrowthick-1-w{background-position:-96px -48px;}.ui-icon-arrowthick-1-nw{background-position:-112px -48px;}.ui-icon-arrowthick-2-n-s{background-position:-128px -48px;}.ui-icon-arrowthick-2-ne-sw{background-position:-144px -48px;}.ui-icon-arrowthick-2-e-w{background-position:-160px -48px;}.ui-icon-arrowthick-2-se-nw{background-position:-176px -48px;}.ui-icon-arrowthickstop-1-n{background-position:-192px -48px;}.ui-icon-arrowthickstop-1-e{background-position:-208px -48px;}.ui-icon-arrowthickstop-1-s{background-position:-224px -48px;}.ui-icon-arrowthickstop-1-w{background-position:-240px -48px;}.ui-icon-arrowreturnthick-1-w{background-position:0 -64px;}.ui-icon-arrowreturnthick-1-n{background-position:-16px -64px;}.ui-icon-arrowreturnthick-1-e{background-position:-32px -64px;}.ui-icon-arrowreturnthick-1-s{background-position:-48px -64px;}.ui-icon-arrowreturn-1-w{background-position:-64px -64px;}.ui-icon-arrowreturn-1-n{background-position:-80px -64px;}.ui-icon-arrowreturn-1-e{background-position:-96px -64px;}.ui-icon-arrowreturn-1-s{background-position:-112px -64px;}.ui-icon-arrowrefresh-1-w{background-position:-128px -64px;}.ui-icon-arrowrefresh-1-n{background-position:-144px -64px;}.ui-icon-arrowrefresh-1-e{background-position:-160px -64px;}.ui-icon-arrowrefresh-1-s{background-position:-176px -64px;}.ui-icon-arrow-4{background-position:0 -80px;}.ui-icon-arrow-4-diag{background-position:-16px -80px;}.ui-icon-extlink{background-position:-32px -80px;}.ui-icon-newwin{background-position:-48px -80px;}.ui-icon-refresh{background-position:-64px -80px;}.ui-icon-shuffle{background-position:-80px -80px;}.ui-icon-transfer-e-w{background-position:-96px -80px;}.ui-icon-transferthick-e-w{background-position:-112px -80px;}.ui-icon-folder-collapsed{background-position:0 -96px;}.ui-icon-folder-open{background-position:-16px -96px;}.ui-icon-document{background-position:-32px -96px;}.ui-icon-document-b{background-position:-48px -96px;}.ui-icon-note{background-position:-64px -96px;}.ui-icon-mail-closed{background-position:-80px -96px;}.ui-icon-mail-open{background-position:-96px -96px;}.ui-icon-suitcase{background-position:-112px -96px;}.ui-icon-comment{background-position:-128px -96px;}.ui-icon-person{background-position:-144px -96px;}.ui-icon-print{background-position:-160px -96px;}.ui-icon-trash{background-position:-176px -96px;}.ui-icon-locked{background-position:-192px -96px;}.ui-icon-unlocked{background-position:-208px -96px;}.ui-icon-bookmark{background-position:-224px -96px;}.ui-icon-tag{background-position:-240px -96px;}.ui-icon-home{background-position:0 -112px;}.ui-icon-flag{background-position:-16px -112px;}.ui-icon-calendar{background-position:-32px -112px;}.ui-icon-cart{background-position:-48px -112px;}.ui-icon-pencil{background-position:-64px -112px;}.ui-icon-clock{background-position:-80px -112px;}.ui-icon-disk{background-position:-96px -112px;}.ui-icon-calculator{background-position:-112px -112px;}.ui-icon-zoomin{background-position:-128px -112px;}.ui-icon-zoomout{background-position:-144px -112px;}.ui-icon-search{background-position:-160px -112px;}.ui-icon-wrench{background-position:-176px -112px;}.ui-icon-gear{background-position:-192px -112px;}.ui-icon-heart{background-position:-208px -112px;}.ui-icon-star{background-position:-224px -112px;}.ui-icon-link{background-position:-240px -112px;}.ui-icon-cancel{background-position:0 -128px;}.ui-icon-plus{background-position:-16px -128px;}.ui-icon-plusthick{background-position:-32px -128px;}.ui-icon-minus{background-position:-48px -128px;}.ui-icon-minusthick{background-position:-64px -128px;}.ui-icon-close{background-position:-80px -128px;}.ui-icon-closethick{background-position:-96px -128px;}.ui-icon-key{background-position:-112px -128px;}.ui-icon-lightbulb{background-position:-128px -128px;}.ui-icon-scissors{background-position:-144px -128px;}.ui-icon-clipboard{background-position:-160px -128px;}.ui-icon-copy{background-position:-176px -128px;}.ui-icon-contact{background-position:-192px -128px;}.ui-icon-image{background-position:-208px -128px;}.ui-icon-video{background-position:-224px -128px;}.ui-icon-script{background-position:-240px -128px;}.ui-icon-alert{background-position:0 -144px;}.ui-icon-info{background-position:-16px -144px;}.ui-icon-notice{background-position:-32px -144px;}.ui-icon-help{background-position:-48px -144px;}.ui-icon-check{background-position:-64px -144px;}.ui-icon-bullet{background-position:-80px -144px;}.ui-icon-radio-on{background-position:-96px -144px;}.ui-icon-radio-off{background-position:-112px -144px;}.ui-icon-pin-w{background-position:-128px -144px;}.ui-icon-pin-s{background-position:-144px -144px;}.ui-icon-play{background-position:0 -160px;}.ui-icon-pause{background-position:-16px -160px;}.ui-icon-seek-next{background-position:-32px -160px;}.ui-icon-seek-prev{background-position:-48px -160px;}.ui-icon-seek-end{background-position:-64px -160px;}.ui-icon-seek-start{background-position:-80px -160px;}.ui-icon-seek-first{background-position:-80px -160px;}.ui-icon-stop{background-position:-96px -160px;}.ui-icon-eject{background-position:-112px -160px;}.ui-icon-volume-off{background-position:-128px -160px;}.ui-icon-volume-on{background-position:-144px -160px;}.ui-icon-power{background-position:0 -176px;}.ui-icon-signal-diag{background-position:-16px -176px;}.ui-icon-signal{background-position:-32px -176px;}.ui-icon-battery-0{background-position:-48px -176px;}.ui-icon-battery-1{background-position:-64px -176px;}.ui-icon-battery-2{background-position:-80px -176px;}.ui-icon-battery-3{background-position:-96px -176px;}.ui-icon-circle-plus{background-position:0 -192px;}.ui-icon-circle-minus{background-position:-16px -192px;}.ui-icon-circle-close{background-position:-32px -192px;}.ui-icon-circle-triangle-e{background-position:-48px -192px;}.ui-icon-circle-triangle-s{background-position:-64px -192px;}.ui-icon-circle-triangle-w{background-position:-80px -192px;}.ui-icon-circle-triangle-n{background-position:-96px -192px;}.ui-icon-circle-arrow-e{background-position:-112px -192px;}.ui-icon-circle-arrow-s{background-position:-128px -192px;}.ui-icon-circle-arrow-w{background-position:-144px -192px;}.ui-icon-circle-arrow-n{background-position:-160px -192px;}.ui-icon-circle-zoomin{background-position:-176px -192px;}.ui-icon-circle-zoomout{background-position:-192px -192px;}.ui-icon-circle-check{background-position:-208px -192px;}.ui-icon-circlesmall-plus{background-position:0 -208px;}.ui-icon-circlesmall-minus{background-position:-16px -208px;}.ui-icon-circlesmall-close{background-position:-32px -208px;}.ui-icon-squaresmall-plus{background-position:-48px -208px;}.ui-icon-squaresmall-minus{background-position:-64px -208px;}.ui-icon-squaresmall-close{background-position:-80px -208px;}.ui-icon-grip-dotted-vertical{background-position:0 -224px;}.ui-icon-grip-dotted-horizontal{background-position:-16px -224px;}.ui-icon-grip-solid-vertical{background-position:-32px -224px;}.ui-icon-grip-solid-horizontal{background-position:-48px -224px;}.ui-icon-gripsmall-diagonal-se{background-position:-64px -224px;}.ui-icon-grip-diagonal-se{background-position:-80px -224px;}.ui-corner-all,.ui-corner-top,.ui-corner-left,.ui-corner-tl{-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;}.ui-widget-overlay{background:#aaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x;opacity:.3;filter:Alpha(Opacity=30);}.ui-widget-shadow{margin:-8px 0 0 -8px;padding:8px;background:#aaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x;opacity:.3;filter:Alpha(Opacity=30);-moz-border-radius:8px;-khtml-border-radius:8px;-webkit-border-radius:8px;border-radius:8px;}
\ No newline at end of file
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/ui-lightness/jquery-ui.css b/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/ui-lightness/jquery-ui.css
deleted file mode 100755
index 5547c7b9..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/ui-lightness/jquery-ui.css
+++ /dev/null
@@ -1,568 +0,0 @@
-/*
- * 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=Trebuchet%20MS,%20Tahoma,%20Verdana,%20Arial,%20sans-serif&fwDefault=bold&fsDefault=1.1em&cornerRadius=4px&bgColorHeader=f6a828&bgTextureHeader=12_gloss_wave.png&bgImgOpacityHeader=35&borderColorHeader=e78f08&fcHeader=ffffff&iconColorHeader=ffffff&bgColorContent=eeeeee&bgTextureContent=03_highlight_soft.png&bgImgOpacityContent=100&borderColorContent=dddddd&fcContent=333333&iconColorContent=222222&bgColorDefault=f6f6f6&bgTextureDefault=02_glass.png&bgImgOpacityDefault=100&borderColorDefault=cccccc&fcDefault=1c94c4&iconColorDefault=ef8c08&bgColorHover=fdf5ce&bgTextureHover=02_glass.png&bgImgOpacityHover=100&borderColorHover=fbcb09&fcHover=c77405&iconColorHover=ef8c08&bgColorActive=ffffff&bgTextureActive=02_glass.png&bgImgOpacityActive=65&borderColorActive=fbd850&fcActive=eb8f00&iconColorActive=ef8c08&bgColorHighlight=ffe45c&bgTextureHighlight=03_highlight_soft.png&bgImgOpacityHighlight=75&borderColorHighlight=fed22f&fcHighlight=363636&iconColorHighlight=228ef1&bgColorError=b81900&bgTextureError=08_diagonals_thick.png&bgImgOpacityError=18&borderColorError=cd0a0a&fcError=ffffff&iconColorError=ffd27a&bgColorOverlay=666666&bgTextureOverlay=08_diagonals_thick.png&bgImgOpacityOverlay=20&opacityOverlay=50&bgColorShadow=000000&bgTextureShadow=01_flat.png&bgImgOpacityShadow=10&opacityShadow=20&thicknessShadow=5px&offsetTopShadow=-5px&offsetLeftShadow=-5px&cornerRadiusShadow=5px
- */
-
-
-/* Component containers
-----------------------------------*/
-.ui-widget { font-family: Trebuchet MS, Tahoma, Verdana, Arial, sans-serif; font-size: 1.1em; }
-.ui-widget .ui-widget { font-size: 1em; }
-.ui-widget input, .ui-widget select, .ui-widget textarea, .ui-widget button { font-family: Trebuchet MS, Tahoma, Verdana, Arial, sans-serif; font-size: 1em; }
-.ui-widget-content { border: 1px solid #dddddd; background: #eeeeee url(images/ui-bg_highlight-soft_100_eeeeee_1x100.png) 50% top repeat-x; color: #333333; }
-.ui-widget-content a { color: #333333; }
-.ui-widget-header { border: 1px solid #e78f08; background: #f6a828 url(images/ui-bg_gloss-wave_35_f6a828_500x100.png) 50% 50% repeat-x; color: #ffffff; font-weight: bold; }
-.ui-widget-header a { color: #ffffff; }
-
-/* Interaction states
-----------------------------------*/
-.ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default { border: 1px solid #cccccc; background: #f6f6f6 url(images/ui-bg_glass_100_f6f6f6_1x400.png) 50% 50% repeat-x; font-weight: bold; color: #1c94c4; }
-.ui-state-default a, .ui-state-default a:link, .ui-state-default a:visited { color: #1c94c4; text-decoration: none; }
-.ui-state-hover, .ui-widget-content .ui-state-hover, .ui-widget-header .ui-state-hover, .ui-state-focus, .ui-widget-content .ui-state-focus, .ui-widget-header .ui-state-focus { border: 1px solid #fbcb09; background: #fdf5ce url(images/ui-bg_glass_100_fdf5ce_1x400.png) 50% 50% repeat-x; font-weight: bold; color: #c77405; }
-.ui-state-hover a, .ui-state-hover a:hover { color: #c77405; text-decoration: none; }
-.ui-state-active, .ui-widget-content .ui-state-active, .ui-widget-header .ui-state-active { border: 1px solid #fbd850; background: #ffffff url(images/ui-bg_glass_65_ffffff_1x400.png) 50% 50% repeat-x; font-weight: bold; color: #eb8f00; }
-.ui-state-active a, .ui-state-active a:link, .ui-state-active a:visited { color: #eb8f00; text-decoration: none; }
-.ui-widget :active { outline: none; }
-
-/* Interaction Cues
-----------------------------------*/
-.ui-state-highlight, .ui-widget-content .ui-state-highlight, .ui-widget-header .ui-state-highlight  {border: 1px solid #fed22f; background: #ffe45c url(images/ui-bg_highlight-soft_75_ffe45c_1x100.png) 50% top repeat-x; color: #363636; }
-.ui-state-highlight a, .ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a { color: #363636; }
-.ui-state-error, .ui-widget-content .ui-state-error, .ui-widget-header .ui-state-error {border: 1px solid #cd0a0a; background: #b81900 url(images/ui-bg_diagonals-thick_18_b81900_40x40.png) 50% 50% repeat; color: #ffffff; }
-.ui-state-error a, .ui-widget-content .ui-state-error a, .ui-widget-header .ui-state-error a { color: #ffffff; }
-.ui-state-error-text, .ui-widget-content .ui-state-error-text, .ui-widget-header .ui-state-error-text { color: #ffffff; }
-.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_ffffff_256x240.png); }
-.ui-state-default .ui-icon { background-image: url(images/ui-icons_ef8c08_256x240.png); }
-.ui-state-hover .ui-icon, .ui-state-focus .ui-icon {background-image: url(images/ui-icons_ef8c08_256x240.png); }
-.ui-state-active .ui-icon {background-image: url(images/ui-icons_ef8c08_256x240.png); }
-.ui-state-highlight .ui-icon {background-image: url(images/ui-icons_228ef1_256x240.png); }
-.ui-state-error .ui-icon, .ui-state-error-text .ui-icon {background-image: url(images/ui-icons_ffd27a_256x240.png); }
-
-/* 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: #666666 url(images/ui-bg_diagonals-thick_20_666666_40x40.png) 50% 50% repeat; opacity: .50;filter:Alpha(Opacity=50); }
-.ui-widget-shadow { margin: -5px 0 0 -5px; padding: 5px; background: #000000 url(images/ui-bg_flat_10_000000_40x100.png) 50% 50% repeat-x; opacity: .20;filter:Alpha(Opacity=20); -moz-border-radius: 5px; -khtml-border-radius: 5px; -webkit-border-radius: 5px; border-radius: 5px; }/*
- * jQuery UI Resizable 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/Resizable#theming
- */
-.ui-resizable { position: relative;}
-.ui-resizable-handle { position: absolute;font-size: 0.1px;z-index: 99999; display: block; }
-.ui-resizable-disabled .ui-resizable-handle, .ui-resizable-autohide .ui-resizable-handle { display: none; }
-.ui-resizable-n { cursor: n-resize; height: 7px; width: 100%; top: -5px; left: 0; }
-.ui-resizable-s { cursor: s-resize; height: 7px; width: 100%; bottom: -5px; left: 0; }
-.ui-resizable-e { cursor: e-resize; width: 7px; right: -5px; top: 0; height: 100%; }
-.ui-resizable-w { cursor: w-resize; width: 7px; left: -5px; top: 0; height: 100%; }
-.ui-resizable-se { cursor: se-resize; width: 12px; height: 12px; right: 1px; bottom: 1px; }
-.ui-resizable-sw { cursor: sw-resize; width: 9px; height: 9px; left: -5px; bottom: -5px; }
-.ui-resizable-nw { cursor: nw-resize; width: 9px; height: 9px; left: -5px; top: -5px; }
-.ui-resizable-ne { cursor: ne-resize; width: 9px; height: 9px; right: -5px; top: -5px;}/*
- * jQuery UI Selectable 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/Selectable#theming
- */
-.ui-selectable-helper { position: absolute; z-index: 100; border:1px dotted black; }
-/*
- * jQuery UI Accordion 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/Accordion#theming
- */
-/* IE/Win - Fix animation bug - #4615 */
-.ui-accordion { width: 100%; }
-.ui-accordion .ui-accordion-header { cursor: pointer; position: relative; margin-top: 1px; zoom: 1; }
-.ui-accordion .ui-accordion-li-fix { display: inline; }
-.ui-accordion .ui-accordion-header-active { border-bottom: 0 !important; }
-.ui-accordion .ui-accordion-header a { display: block; font-size: 1em; padding: .5em .5em .5em .7em; }
-.ui-accordion-icons .ui-accordion-header a { padding-left: 2.2em; }
-.ui-accordion .ui-accordion-header .ui-icon { position: absolute; left: .5em; top: 50%; margin-top: -8px; }
-.ui-accordion .ui-accordion-content { padding: 1em 2.2em; border-top: 0; margin-top: -2px; position: relative; top: 1px; margin-bottom: 2px; overflow: auto; display: none; zoom: 1; }
-.ui-accordion .ui-accordion-content-active { display: block; }
-/*
- * jQuery UI Autocomplete 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/Autocomplete#theming
- */
-.ui-autocomplete { position: absolute; cursor: default; }	
-
-/* workarounds */
-* html .ui-autocomplete { width:1px; } /* without this, the menu expands to 100% in IE6 */
-
-/*
- * jQuery UI Menu 1.8.16
- *
- * Copyright 2010, 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/Menu#theming
- */
-.ui-menu {
-	list-style:none;
-	padding: 2px;
-	margin: 0;
-	display:block;
-	float: left;
-}
-.ui-menu .ui-menu {
-	margin-top: -3px;
-}
-.ui-menu .ui-menu-item {
-	margin:0;
-	padding: 0;
-	zoom: 1;
-	float: left;
-	clear: left;
-	width: 100%;
-}
-.ui-menu .ui-menu-item a {
-	text-decoration:none;
-	display:block;
-	padding:.2em .4em;
-	line-height:1.5;
-	zoom:1;
-}
-.ui-menu .ui-menu-item a.ui-state-hover,
-.ui-menu .ui-menu-item a.ui-state-active {
-	font-weight: normal;
-	margin: -1px;
-}
-/*
- * jQuery UI Button 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/Button#theming
- */
-.ui-button { display: inline-block; position: relative; padding: 0; margin-right: .1em; text-decoration: none !important; cursor: pointer; text-align: center; zoom: 1; overflow: visible; } /* the overflow property removes extra width in IE */
-.ui-button-icon-only { width: 2.2em; } /* to make room for the icon, a width needs to be set here */
-button.ui-button-icon-only { width: 2.4em; } /* button elements seem to need a little more width */
-.ui-button-icons-only { width: 3.4em; } 
-button.ui-button-icons-only { width: 3.7em; } 
-
-/*button text element */
-.ui-button .ui-button-text { display: block; line-height: 1.4;  }
-.ui-button-text-only .ui-button-text { padding: .4em 1em; }
-.ui-button-icon-only .ui-button-text, .ui-button-icons-only .ui-button-text { padding: .4em; text-indent: -9999999px; }
-.ui-button-text-icon-primary .ui-button-text, .ui-button-text-icons .ui-button-text { padding: .4em 1em .4em 2.1em; }
-.ui-button-text-icon-secondary .ui-button-text, .ui-button-text-icons .ui-button-text { padding: .4em 2.1em .4em 1em; }
-.ui-button-text-icons .ui-button-text { padding-left: 2.1em; padding-right: 2.1em; }
-/* no icon support for input elements, provide padding by default */
-input.ui-button { padding: .4em 1em; }
-
-/*button icon element(s) */
-.ui-button-icon-only .ui-icon, .ui-button-text-icon-primary .ui-icon, .ui-button-text-icon-secondary .ui-icon, .ui-button-text-icons .ui-icon, .ui-button-icons-only .ui-icon { position: absolute; top: 50%; margin-top: -8px; }
-.ui-button-icon-only .ui-icon { left: 50%; margin-left: -8px; }
-.ui-button-text-icon-primary .ui-button-icon-primary, .ui-button-text-icons .ui-button-icon-primary, .ui-button-icons-only .ui-button-icon-primary { left: .5em; }
-.ui-button-text-icon-secondary .ui-button-icon-secondary, .ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary { right: .5em; }
-.ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary { right: .5em; }
-
-/*button sets*/
-.ui-buttonset { margin-right: 7px; }
-.ui-buttonset .ui-button { margin-left: 0; margin-right: -.3em; }
-
-/* workarounds */
-button.ui-button::-moz-focus-inner { border: 0; padding: 0; } /* reset extra padding in Firefox */
-/*
- * jQuery UI Dialog 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/Dialog#theming
- */
-.ui-dialog { position: absolute; padding: .2em; width: 300px; overflow: hidden; }
-.ui-dialog .ui-dialog-titlebar { padding: .4em 1em; position: relative;  }
-.ui-dialog .ui-dialog-title { float: left; margin: .1em 16px .1em 0; } 
-.ui-dialog .ui-dialog-titlebar-close { position: absolute; right: .3em; top: 50%; width: 19px; margin: -10px 0 0 0; padding: 1px; height: 18px; }
-.ui-dialog .ui-dialog-titlebar-close span { display: block; margin: 1px; }
-.ui-dialog .ui-dialog-titlebar-close:hover, .ui-dialog .ui-dialog-titlebar-close:focus { padding: 0; }
-.ui-dialog .ui-dialog-content { position: relative; border: 0; padding: .5em 1em; background: none; overflow: auto; zoom: 1; }
-.ui-dialog .ui-dialog-buttonpane { text-align: left; border-width: 1px 0 0 0; background-image: none; margin: .5em 0 0 0; padding: .3em 1em .5em .4em; }
-.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset { float: right; }
-.ui-dialog .ui-dialog-buttonpane button { margin: .5em .4em .5em 0; cursor: pointer; }
-.ui-dialog .ui-resizable-se { width: 14px; height: 14px; right: 3px; bottom: 3px; }
-.ui-draggable .ui-dialog-titlebar { cursor: move; }
-/*
- * 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; }/*
- * jQuery UI Tabs 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/Tabs#theming
- */
-.ui-tabs { position: relative; padding: .2em; zoom: 1; } /* position: relative prevents IE scroll bug (element with position: relative inside container with overflow: auto appear as "fixed") */
-.ui-tabs .ui-tabs-nav { margin: 0; padding: .2em .2em 0; }
-.ui-tabs .ui-tabs-nav li { list-style: none; float: left; position: relative; top: 1px; margin: 0 .2em 1px 0; border-bottom: 0 !important; padding: 0; white-space: nowrap; }
-.ui-tabs .ui-tabs-nav li a { float: left; padding: .5em 1em; text-decoration: none; }
-.ui-tabs .ui-tabs-nav li.ui-tabs-selected { margin-bottom: 0; padding-bottom: 1px; }
-.ui-tabs .ui-tabs-nav li.ui-tabs-selected a, .ui-tabs .ui-tabs-nav li.ui-state-disabled a, .ui-tabs .ui-tabs-nav li.ui-state-processing a { cursor: text; }
-.ui-tabs .ui-tabs-nav li a, .ui-tabs.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-selected a { cursor: pointer; } /* first selector in group seems obsolete, but required to overcome bug in Opera applying cursor: text overall if defined elsewhere... */
-.ui-tabs .ui-tabs-panel { display: block; border-width: 0; padding: 1em 1.4em; background: none; }
-.ui-tabs .ui-tabs-hide { display: none !important; }
-/*
- * jQuery UI Datepicker 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/Datepicker#theming
- */
-.ui-datepicker { width: 17em; padding: .2em .2em 0; display: none; }
-.ui-datepicker .ui-datepicker-header { position:relative; padding:.2em 0; }
-.ui-datepicker .ui-datepicker-prev, .ui-datepicker .ui-datepicker-next { position:absolute; top: 2px; width: 1.8em; height: 1.8em; }
-.ui-datepicker .ui-datepicker-prev-hover, .ui-datepicker .ui-datepicker-next-hover { top: 1px; }
-.ui-datepicker .ui-datepicker-prev { left:2px; }
-.ui-datepicker .ui-datepicker-next { right:2px; }
-.ui-datepicker .ui-datepicker-prev-hover { left:1px; }
-.ui-datepicker .ui-datepicker-next-hover { right:1px; }
-.ui-datepicker .ui-datepicker-prev span, .ui-datepicker .ui-datepicker-next span { display: block; position: absolute; left: 50%; margin-left: -8px; top: 50%; margin-top: -8px;  }
-.ui-datepicker .ui-datepicker-title { margin: 0 2.3em; line-height: 1.8em; text-align: center; }
-.ui-datepicker .ui-datepicker-title select { font-size:1em; margin:1px 0; }
-.ui-datepicker select.ui-datepicker-month-year {width: 100%;}
-.ui-datepicker select.ui-datepicker-month, 
-.ui-datepicker select.ui-datepicker-year { width: 49%;}
-.ui-datepicker table {width: 100%; font-size: .9em; border-collapse: collapse; margin:0 0 .4em; }
-.ui-datepicker th { padding: .7em .3em; text-align: center; font-weight: bold; border: 0;  }
-.ui-datepicker td { border: 0; padding: 1px; }
-.ui-datepicker td span, .ui-datepicker td a { display: block; padding: .2em; text-align: right; text-decoration: none; }
-.ui-datepicker .ui-datepicker-buttonpane { background-image: none; margin: .7em 0 0 0; padding:0 .2em; border-left: 0; border-right: 0; border-bottom: 0; }
-.ui-datepicker .ui-datepicker-buttonpane button { float: right; margin: .5em .2em .4em; cursor: pointer; padding: .2em .6em .3em .6em; width:auto; overflow:visible; }
-.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current { float:left; }
-
-/* with multiple calendars */
-.ui-datepicker.ui-datepicker-multi { width:auto; }
-.ui-datepicker-multi .ui-datepicker-group { float:left; }
-.ui-datepicker-multi .ui-datepicker-group table { width:95%; margin:0 auto .4em; }
-.ui-datepicker-multi-2 .ui-datepicker-group { width:50%; }
-.ui-datepicker-multi-3 .ui-datepicker-group { width:33.3%; }
-.ui-datepicker-multi-4 .ui-datepicker-group { width:25%; }
-.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header { border-left-width:0; }
-.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header { border-left-width:0; }
-.ui-datepicker-multi .ui-datepicker-buttonpane { clear:left; }
-.ui-datepicker-row-break { clear:both; width:100%; font-size:0em; }
-
-/* RTL support */
-.ui-datepicker-rtl { direction: rtl; }
-.ui-datepicker-rtl .ui-datepicker-prev { right: 2px; left: auto; }
-.ui-datepicker-rtl .ui-datepicker-next { left: 2px; right: auto; }
-.ui-datepicker-rtl .ui-datepicker-prev:hover { right: 1px; left: auto; }
-.ui-datepicker-rtl .ui-datepicker-next:hover { left: 1px; right: auto; }
-.ui-datepicker-rtl .ui-datepicker-buttonpane { clear:right; }
-.ui-datepicker-rtl .ui-datepicker-buttonpane button { float: left; }
-.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current { float:right; }
-.ui-datepicker-rtl .ui-datepicker-group { float:right; }
-.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header { border-right-width:0; border-left-width:1px; }
-.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header { border-right-width:0; border-left-width:1px; }
-
-/* IE6 IFRAME FIX (taken from datepicker 1.5.3 */
-.ui-datepicker-cover {
-    display: none; /*sorry for IE5*/
-    display/**/: block; /*sorry for IE5*/
-    position: absolute; /*must have*/
-    z-index: -1; /*must have*/
-    filter: mask(); /*must have*/
-    top: -4px; /*must have*/
-    left: -4px; /*must have*/
-    width: 200px; /*must have*/
-    height: 200px; /*must have*/
-}/*
- * jQuery UI Progressbar 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/Progressbar#theming
- */
-.ui-progressbar { height:2em; text-align: left; }
-.ui-progressbar .ui-progressbar-value {margin: -1px; height:100%; }
\ No newline at end of file
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/ui-lightness/jquery-ui.min.css b/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/ui-lightness/jquery-ui.min.css
deleted file mode 100755
index 78f7d3d0..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/css/ui-lightness/jquery-ui.min.css
+++ /dev/null
@@ -1 +0,0 @@
-.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);}.ui-state-disabled{cursor:default!important;}.ui-icon{display:block;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat;}.ui-widget-overlay{position:absolute;top:0;left:0;width:100%;height:100%;}.ui-widget{font-family:Trebuchet MS,Tahoma,Verdana,Arial,sans-serif;font-size:1.1em;}.ui-widget .ui-widget{font-size:1em;}.ui-widget input,.ui-widget select,.ui-widget textarea,.ui-widget button{font-family:Trebuchet MS,Tahoma,Verdana,Arial,sans-serif;font-size:1em;}.ui-widget-content{border:1px solid #ddd;background:#eee url(images/ui-bg_highlight-soft_100_eeeeee_1x100.png) 50% top repeat-x;color:#333;}.ui-widget-content a{color:#333;}.ui-widget-header{border:1px solid #e78f08;background:#f6a828 url(images/ui-bg_gloss-wave_35_f6a828_500x100.png) 50% 50% repeat-x;color:#fff;font-weight:bold;}.ui-widget-header a{color:#fff;}.ui-state-default,.ui-widget-content .ui-state-default,.ui-widget-header .ui-state-default{border:1px solid #ccc;background:#f6f6f6 url(images/ui-bg_glass_100_f6f6f6_1x400.png) 50% 50% repeat-x;font-weight:bold;color:#1c94c4;}.ui-state-default a,.ui-state-default a:link,.ui-state-default a:visited{color:#1c94c4;text-decoration:none;}.ui-state-hover,.ui-widget-content .ui-state-hover,.ui-widget-header .ui-state-hover,.ui-state-focus,.ui-widget-content .ui-state-focus,.ui-widget-header .ui-state-focus{border:1px solid #fbcb09;background:#fdf5ce url(images/ui-bg_glass_100_fdf5ce_1x400.png) 50% 50% repeat-x;font-weight:bold;color:#c77405;}.ui-state-hover a,.ui-state-hover a:hover{color:#c77405;text-decoration:none;}.ui-state-active,.ui-widget-content .ui-state-active,.ui-widget-header .ui-state-active{border:1px solid #fbd850;background:#fff url(images/ui-bg_glass_65_ffffff_1x400.png) 50% 50% repeat-x;font-weight:bold;color:#eb8f00;}.ui-state-active a,.ui-state-active a:link,.ui-state-active a:visited{color:#eb8f00;text-decoration:none;}.ui-widget :active{outline:none;}.ui-state-highlight,.ui-widget-content .ui-state-highlight,.ui-widget-header .ui-state-highlight{border:1px solid #fed22f;background:#ffe45c url(images/ui-bg_highlight-soft_75_ffe45c_1x100.png) 50% top repeat-x;color:#363636;}.ui-state-highlight a,.ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a{color:#363636;}.ui-state-error,.ui-widget-content .ui-state-error,.ui-widget-header .ui-state-error{border:1px solid #cd0a0a;background:#b81900 url(images/ui-bg_diagonals-thick_18_b81900_40x40.png) 50% 50% repeat;color:#fff;}.ui-state-error a,.ui-widget-content .ui-state-error a,.ui-widget-header .ui-state-error a{color:#fff;}.ui-state-error-text,.ui-widget-content .ui-state-error-text,.ui-widget-header .ui-state-error-text{color:#fff;}.ui-priority-primary,.ui-widget-content .ui-priority-primary,.ui-widget-header .ui-priority-primary{font-weight:bold;}.ui-priority-secondary,.ui-widget-content .ui-priority-secondary,.ui-widget-header .ui-priority-secondary{opacity:.7;filter:Alpha(Opacity=70);font-weight:normal;}.ui-state-disabled,.ui-widget-content .ui-state-disabled,.ui-widget-header .ui-state-disabled{opacity:.35;filter:Alpha(Opacity=35);background-image:none;}.ui-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_ffffff_256x240.png);}.ui-state-default .ui-icon{background-image:url(images/ui-icons_ef8c08_256x240.png);}.ui-state-hover .ui-icon,.ui-state-focus .ui-icon{background-image:url(images/ui-icons_ef8c08_256x240.png);}.ui-state-active .ui-icon{background-image:url(images/ui-icons_ef8c08_256x240.png);}.ui-state-highlight .ui-icon{background-image:url(images/ui-icons_228ef1_256x240.png);}.ui-state-error .ui-icon,.ui-state-error-text .ui-icon{background-image:url(images/ui-icons_ffd27a_256x240.png);}.ui-icon-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{background-position:-80px -160px;}.ui-icon-stop{background-position:-96px -160px;}.ui-icon-eject{background-position:-112px -160px;}.ui-icon-volume-off{background-position:-128px -160px;}.ui-icon-volume-on{background-position:-144px -160px;}.ui-icon-power{background-position:0 -176px;}.ui-icon-signal-diag{background-position:-16px -176px;}.ui-icon-signal{background-position:-32px -176px;}.ui-icon-battery-0{background-position:-48px -176px;}.ui-icon-battery-1{background-position:-64px -176px;}.ui-icon-battery-2{background-position:-80px -176px;}.ui-icon-battery-3{background-position:-96px -176px;}.ui-icon-circle-plus{background-position:0 -192px;}.ui-icon-circle-minus{background-position:-16px -192px;}.ui-icon-circle-close{background-position:-32px -192px;}.ui-icon-circle-triangle-e{background-position:-48px -192px;}.ui-icon-circle-triangle-s{background-position:-64px -192px;}.ui-icon-circle-triangle-w{background-position:-80px -192px;}.ui-icon-circle-triangle-n{background-position:-96px -192px;}.ui-icon-circle-arrow-e{background-position:-112px -192px;}.ui-icon-circle-arrow-s{background-position:-128px -192px;}.ui-icon-circle-arrow-w{background-position:-144px -192px;}.ui-icon-circle-arrow-n{background-position:-160px -192px;}.ui-icon-circle-zoomin{background-position:-176px -192px;}.ui-icon-circle-zoomout{background-position:-192px -192px;}.ui-icon-circle-check{background-position:-208px -192px;}.ui-icon-circlesmall-plus{background-position:0 -208px;}.ui-icon-circlesmall-minus{background-position:-16px -208px;}.ui-icon-circlesmall-close{background-position:-32px -208px;}.ui-icon-squaresmall-plus{background-position:-48px -208px;}.ui-icon-squaresmall-minus{background-position:-64px -208px;}.ui-icon-squaresmall-close{background-position:-80px -208px;}.ui-icon-grip-dotted-vertical{background-position:0 -224px;}.ui-icon-grip-dotted-horizontal{background-position:-16px -224px;}.ui-icon-grip-solid-vertical{background-position:-32px -224px;}.ui-icon-grip-solid-horizontal{background-position:-48px -224px;}.ui-icon-gripsmall-diagonal-se{background-position:-64px -224px;}.ui-icon-grip-diagonal-se{background-position:-80px -224px;}.ui-corner-all,.ui-corner-top,.ui-corner-left,.ui-corner-tl{-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;}.ui-widget-overlay{background:#666 url(images/ui-bg_diagonals-thick_20_666666_40x40.png) 50% 50% repeat;opacity:.50;filter:Alpha(Opacity=50);}.ui-widget-shadow{margin:-5px 0 0 -5px;padding:5px;background:#000 url(images/ui-bg_flat_10_000000_40x100.png) 50% 50% repeat-x;opacity:.20;filter:Alpha(Opacity=20);-moz-border-radius:5px;-khtml-border-radius:5px;-webkit-border-radius:5px;border-radius:5px;}.ui-resizable{position:relative;}.ui-resizable-handle{position:absolute;font-size:.1px;z-index:99999;display:block;}.ui-resizable-disabled .ui-resizable-handle,.ui-resizable-autohide .ui-resizable-handle{display:none;}.ui-resizable-n{cursor:n-resize;height:7px;width:100%;top:-5px;left:0;}.ui-resizable-s{cursor:s-resize;height:7px;width:100%;bottom:-5px;left:0;}.ui-resizable-e{cursor:e-resize;width:7px;right:-5px;top:0;height:100%;}.ui-resizable-w{cursor:w-resize;width:7px;left:-5px;top:0;height:100%;}.ui-resizable-se{cursor:se-resize;width:12px;height:12px;right:1px;bottom:1px;}.ui-resizable-sw{cursor:sw-resize;width:9px;height:9px;left:-5px;bottom:-5px;}.ui-resizable-nw{cursor:nw-resize;width:9px;height:9px;left:-5px;top:-5px;}.ui-resizable-ne{cursor:ne-resize;width:9px;height:9px;right:-5px;top:-5px;}.ui-selectable-helper{position:absolute;z-index:100;border:1px dotted black;}.ui-accordion{width:100%;}.ui-accordion .ui-accordion-header{cursor:pointer;position:relative;margin-top:1px;zoom:1;}.ui-accordion .ui-accordion-li-fix{display:inline;}.ui-accordion .ui-accordion-header-active{border-bottom:0!important;}.ui-accordion .ui-accordion-header a{display:block;font-size:1em;padding:.5em .5em .5em .7em;}.ui-accordion-icons .ui-accordion-header a{padding-left:2.2em;}.ui-accordion .ui-accordion-header .ui-icon{position:absolute;left:.5em;top:50%;margin-top:-8px;}.ui-accordion .ui-accordion-content{padding:1em 2.2em;border-top:0;margin-top:-2px;position:relative;top:1px;margin-bottom:2px;overflow:auto;display:none;zoom:1;}.ui-accordion .ui-accordion-content-active{display:block;}.ui-autocomplete{position:absolute;cursor:default;}* html .ui-autocomplete{width:1px;}.ui-menu{list-style:none;padding:2px;margin:0;display:block;float:left;}.ui-menu .ui-menu{margin-top:-3px;}.ui-menu .ui-menu-item{margin:0;padding:0;zoom:1;float:left;clear:left;width:100%;}.ui-menu .ui-menu-item a{text-decoration:none;display:block;padding:.2em .4em;line-height:1.5;zoom:1;}.ui-menu .ui-menu-item a.ui-state-hover,.ui-menu .ui-menu-item a.ui-state-active{font-weight:normal;margin:-1px;}.ui-button{display:inline-block;position:relative;padding:0;margin-right:.1em;text-decoration:none!important;cursor:pointer;text-align:center;zoom:1;overflow:visible;}.ui-button-icon-only{width:2.2em;}button.ui-button-icon-only{width:2.4em;}.ui-button-icons-only{width:3.4em;}button.ui-button-icons-only{width:3.7em;}.ui-button .ui-button-text{display:block;line-height:1.4;}.ui-button-text-only .ui-button-text{padding:.4em 1em;}.ui-button-icon-only .ui-button-text,.ui-button-icons-only .ui-button-text{padding:.4em;text-indent:-9999999px;}.ui-button-text-icon-primary .ui-button-text,.ui-button-text-icons .ui-button-text{padding:.4em 1em .4em 2.1em;}.ui-button-text-icon-secondary .ui-button-text,.ui-button-text-icons .ui-button-text{padding:.4em 2.1em .4em 1em;}.ui-button-text-icons .ui-button-text{padding-left:2.1em;padding-right:2.1em;}input.ui-button{padding:.4em 1em;}.ui-button-icon-only .ui-icon,.ui-button-text-icon-primary .ui-icon,.ui-button-text-icon-secondary .ui-icon,.ui-button-text-icons .ui-icon,.ui-button-icons-only .ui-icon{position:absolute;top:50%;margin-top:-8px;}.ui-button-icon-only .ui-icon{left:50%;margin-left:-8px;}.ui-button-text-icon-primary .ui-button-icon-primary,.ui-button-text-icons .ui-button-icon-primary,.ui-button-icons-only .ui-button-icon-primary{left:.5em;}.ui-button-text-icon-secondary .ui-button-icon-secondary,.ui-button-text-icons .ui-button-icon-secondary,.ui-button-icons-only .ui-button-icon-secondary{right:.5em;}.ui-button-text-icons .ui-button-icon-secondary,.ui-button-icons-only .ui-button-icon-secondary{right:.5em;}.ui-buttonset{margin-right:7px;}.ui-buttonset .ui-button{margin-left:0;margin-right:-.3em;}button.ui-button::-moz-focus-inner{border:0;padding:0;}.ui-dialog{position:absolute;padding:.2em;width:300px;overflow:hidden;}.ui-dialog .ui-dialog-titlebar{padding:.4em 1em;position:relative;}.ui-dialog .ui-dialog-title{float:left;margin:.1em 16px .1em 0;}.ui-dialog .ui-dialog-titlebar-close{position:absolute;right:.3em;top:50%;width:19px;margin:-10px 0 0 0;padding:1px;height:18px;}.ui-dialog .ui-dialog-titlebar-close span{display:block;margin:1px;}.ui-dialog .ui-dialog-titlebar-close:hover,.ui-dialog .ui-dialog-titlebar-close:focus{padding:0;}.ui-dialog .ui-dialog-content{position:relative;border:0;padding:.5em 1em;background:none;overflow:auto;zoom:1;}.ui-dialog .ui-dialog-buttonpane{text-align:left;border-width:1px 0 0 0;background-image:none;margin:.5em 0 0 0;padding:.3em 1em .5em .4em;}.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset{float:right;}.ui-dialog .ui-dialog-buttonpane button{margin:.5em .4em .5em 0;cursor:pointer;}.ui-dialog .ui-resizable-se{width:14px;height:14px;right:3px;bottom:3px;}.ui-draggable .ui-dialog-titlebar{cursor:move;}.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;}.ui-tabs{position:relative;padding:.2em;zoom:1;}.ui-tabs .ui-tabs-nav{margin:0;padding:.2em .2em 0;}.ui-tabs .ui-tabs-nav li{list-style:none;float:left;position:relative;top:1px;margin:0 .2em 1px 0;border-bottom:0!important;padding:0;white-space:nowrap;}.ui-tabs .ui-tabs-nav li a{float:left;padding:.5em 1em;text-decoration:none;}.ui-tabs .ui-tabs-nav li.ui-tabs-selected{margin-bottom:0;padding-bottom:1px;}.ui-tabs .ui-tabs-nav li.ui-tabs-selected a,.ui-tabs .ui-tabs-nav li.ui-state-disabled a,.ui-tabs .ui-tabs-nav li.ui-state-processing a{cursor:text;}.ui-tabs .ui-tabs-nav li a,.ui-tabs.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-selected a{cursor:pointer;}.ui-tabs .ui-tabs-panel{display:block;border-width:0;padding:1em 1.4em;background:none;}.ui-tabs .ui-tabs-hide{display:none!important;}.ui-datepicker{width:17em;padding:.2em .2em 0;display:none;}.ui-datepicker .ui-datepicker-header{position:relative;padding:.2em 0;}.ui-datepicker .ui-datepicker-prev,.ui-datepicker .ui-datepicker-next{position:absolute;top:2px;width:1.8em;height:1.8em;}.ui-datepicker .ui-datepicker-prev-hover,.ui-datepicker .ui-datepicker-next-hover{top:1px;}.ui-datepicker .ui-datepicker-prev{left:2px;}.ui-datepicker .ui-datepicker-next{right:2px;}.ui-datepicker .ui-datepicker-prev-hover{left:1px;}.ui-datepicker .ui-datepicker-next-hover{right:1px;}.ui-datepicker .ui-datepicker-prev span,.ui-datepicker .ui-datepicker-next span{display:block;position:absolute;left:50%;margin-left:-8px;top:50%;margin-top:-8px;}.ui-datepicker .ui-datepicker-title{margin:0 2.3em;line-height:1.8em;text-align:center;}.ui-datepicker .ui-datepicker-title select{font-size:1em;margin:1px 0;}.ui-datepicker select.ui-datepicker-month-year{width:100%;}.ui-datepicker select.ui-datepicker-month,.ui-datepicker select.ui-datepicker-year{width:49%;}.ui-datepicker table{width:100%;font-size:.9em;border-collapse:collapse;margin:0 0 .4em;}.ui-datepicker th{padding:.7em .3em;text-align:center;font-weight:bold;border:0;}.ui-datepicker td{border:0;padding:1px;}.ui-datepicker td span,.ui-datepicker td a{display:block;padding:.2em;text-align:right;text-decoration:none;}.ui-datepicker .ui-datepicker-buttonpane{background-image:none;margin:.7em 0 0 0;padding:0 .2em;border-left:0;border-right:0;border-bottom:0;}.ui-datepicker .ui-datepicker-buttonpane button{float:right;margin:.5em .2em .4em;cursor:pointer;padding:.2em .6em .3em .6em;width:auto;overflow:visible;}.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current{float:left;}.ui-datepicker.ui-datepicker-multi{width:auto;}.ui-datepicker-multi .ui-datepicker-group{float:left;}.ui-datepicker-multi .ui-datepicker-group table{width:95%;margin:0 auto .4em;}.ui-datepicker-multi-2 .ui-datepicker-group{width:50%;}.ui-datepicker-multi-3 .ui-datepicker-group{width:33.3%;}.ui-datepicker-multi-4 .ui-datepicker-group{width:25%;}.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header{border-left-width:0;}.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header{border-left-width:0;}.ui-datepicker-multi .ui-datepicker-buttonpane{clear:left;}.ui-datepicker-row-break{clear:both;width:100%;font-size:0;}.ui-datepicker-rtl{direction:rtl;}.ui-datepicker-rtl .ui-datepicker-prev{right:2px;left:auto;}.ui-datepicker-rtl .ui-datepicker-next{left:2px;right:auto;}.ui-datepicker-rtl .ui-datepicker-prev:hover{right:1px;left:auto;}.ui-datepicker-rtl .ui-datepicker-next:hover{left:1px;right:auto;}.ui-datepicker-rtl .ui-datepicker-buttonpane{clear:right;}.ui-datepicker-rtl .ui-datepicker-buttonpane button{float:left;}.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current{float:right;}.ui-datepicker-rtl .ui-datepicker-group{float:right;}.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header{border-right-width:0;border-left-width:1px;}.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header{border-right-width:0;border-left-width:1px;}.ui-datepicker-cover{display:none;display:block;position:absolute;z-index:-1;filter:mask();top:-4px;left:-4px;width:200px;height:200px;}.ui-progressbar{height:2em;text-align:left;}.ui-progressbar .ui-progressbar-value{margin:-1px;height:100%;}
\ No newline at end of file
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/js/jquery-ui-1.9pre.min.js b/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/js/jquery-ui-1.9pre.min.js
deleted file mode 100755
index 5ca2642d..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/js/jquery-ui-1.9pre.min.js
+++ /dev/null
@@ -1,473 +0,0 @@
-/*!
- * jQuery UI 1.9pre
- *
- * 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,g){function d(e,f){var i=e.nodeName.toLowerCase();if("area"===i){i=e.parentNode;var b=i.name;if(!e.href||!b||i.nodeName.toLowerCase()!=="map")return false;i=a("img[usemap=#"+b+"]")[0];return!!i&&c(i)}return(/input|select|textarea|button|object/.test(i)?!e.disabled:"a"==i?e.href||f:f)&&c(e)}function c(e){return!a(e).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.9pre",
-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({_focus:a.fn.focus,focus:function(e,f){return typeof e==="number"?this.each(function(){var i=this;setTimeout(function(){a(i).focus();
-f&&f.call(i)},e)}):this._focus.apply(this,arguments)},scrollParent:function(){var e;e=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"))||!e.length?a(document):e},zIndex:function(e){if(e!==g)return this.css("zIndex",e);if(this.length){e=a(this[0]);for(var f;e.length&&e[0]!==document;){f=e.css("position");if(f==="absolute"||f==="relative"||f==="fixed"){f=parseInt(e.css("zIndex"),10);if(!isNaN(f)&&f!==0)return f}e=e.parent()}}return 0},disableSelection:function(){return this.bind((a.support.selectstart?"selectstart":"mousedown")+".ui-disableSelection",
-function(e){e.preventDefault()})},enableSelection:function(){return this.unbind(".ui-disableSelection")}});a.each(["Width","Height"],function(e,f){function i(l,j,m,n){a.each(b,function(){j-=parseFloat(a.curCSS(l,"padding"+this,true))||0;if(m)j-=parseFloat(a.curCSS(l,"border"+this+"Width",true))||0;if(n)j-=parseFloat(a.curCSS(l,"margin"+this,true))||0});return j}var b=f==="Width"?["Left","Right"]:["Top","Bottom"],h=f.toLowerCase(),k={innerWidth:a.fn.innerWidth,innerHeight:a.fn.innerHeight,outerWidth:a.fn.outerWidth,
-outerHeight:a.fn.outerHeight};a.fn["inner"+f]=function(l){if(l===g)return k["inner"+f].call(this);return this.each(function(){a(this).css(h,i(this,l)+"px")})};a.fn["outer"+f]=function(l,j){if(typeof l!=="number")return k["outer"+f].call(this,l);return this.each(function(){a(this).css(h,i(this,l,true,j)+"px")})}});a.extend(a.expr[":"],{data:function(e,f,i){return!!a.data(e,i[3])},focusable:function(e){return d(e,!isNaN(a.attr(e,"tabindex")))},tabbable:function(e){var f=a.attr(e,"tabindex"),i=isNaN(f);
-return(i||f>=0)&&d(e,!i)}});a(function(){var e=document.body,f=e.appendChild(f=document.createElement("div"));a.extend(f.style,{minHeight:"100px",height:"auto",padding:0,borderWidth:0});a.support.minHeight=f.offsetHeight===100;a.support.selectstart="onselectstart"in f;e.removeChild(f).style.display="none"});a.extend(a.ui,{plugin:{add:function(e,f,i){e=a.ui[e].prototype;for(var b in i){e.plugins[b]=e.plugins[b]||[];e.plugins[b].push([f,i[b]])}},call:function(e,f,i){if((f=e.plugins[f])&&e.element[0].parentNode)for(var b=
-0;b<f.length;b++)e.options[f[b][0]]&&f[b][1].apply(e.element,i)}},contains:a.contains,hasScroll:function(e,f){if(a(e).css("overflow")==="hidden")return false;var i=f&&f==="left"?"scrollLeft":"scrollTop",b=false;if(e[i]>0)return true;e[i]=1;b=e[i]>0;e[i]=0;return b},isOverAxis:function(e,f,i){return e>f&&e<f+i},isOver:function(e,f,i,b,h,k){return a.ui.isOverAxis(e,i,h)&&a.ui.isOverAxis(f,b,k)}})}})(jQuery);
-(function(a,g){var d=Array.prototype.slice,c=a.cleanData;a.cleanData=function(e){for(var f=0,i;(i=e[f])!=null;f++)try{a(i).triggerHandler("remove")}catch(b){}c(e)};a.widget=function(e,f,i){var b=e.split(".")[0],h;e=e.split(".")[1];h=b+"-"+e;if(!i){i=f;f=a.Widget}a.expr[":"][h]=function(l){return!!a.data(l,e)};a[b]=a[b]||{};a[b][e]=a.extend(function(l,j){if(!this._createWidget)return new a[b][e](l,j);arguments.length&&this._createWidget(l,j)},a[b][e],{version:i.version});var k=new f;k.options=a.widget.extend({},
-k.options);a.each(i,function(l,j){if(a.isFunction(j))i[l]=function(){var m=function(o){return f.prototype[o].apply(this,d.call(arguments,1))},n=function(o,p){return f.prototype[o].apply(this,p)};return function(){var o=this._super,p=this._superApply,q;this._super=m;this._superApply=n;q=j.apply(this,arguments);this._super=o;this._superApply=p;return q}}()});a[b][e].prototype=a.widget.extend(k,{namespace:b,widgetName:e,widgetEventPrefix:e,widgetBaseClass:h},i);a.widget.bridge(e,a[b][e])};a.widget.extend=
-function(e){for(var f=d.call(arguments,1),i=0,b=f.length,h,k;i<b;i++)for(h in f[i]){k=f[i][h];if(f[i].hasOwnProperty(h)&&k!==g)e[h]=a.isPlainObject(k)?a.widget.extend({},e[h],k):k}return e};a.widget.bridge=function(e,f){a.fn[e]=function(i){var b=typeof i==="string",h=d.call(arguments,1),k=this;i=!b&&h.length?a.widget.extend.apply(null,[i].concat(h)):i;b?this.each(function(){var l=a.data(this,e);if(!l)return a.error("cannot call methods on "+e+" prior to initialization; attempted to call method '"+
-i+"'");if(!a.isFunction(l[i])||i.charAt(0)==="_")return a.error("no such method '"+i+"' for "+e+" widget instance");var j=l[i].apply(l,h);if(j!==l&&j!==g){k=j&&j.jquery?k.pushStack(j.get()):j;return false}}):this.each(function(){var l=a.data(this,e);l?l.option(i||{})._init():f(i,this)});return k}};a.Widget=function(e,f){if(!this._createWidget)return new a[namespace][name](e,f);arguments.length&&this._createWidget(e,f)};a.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",defaultElement:"<div>",
-options:{disabled:false,create:null},_createWidget:function(e,f){f=a(f||this.defaultElement||this)[0];this.element=a(f);this.options=a.widget.extend({},this.options,this._getCreateOptions(),e);this.bindings=a();this.hoverable=a();this.focusable=a();if(f!==this){a.data(f,this.widgetName,this);this._bind({remove:"destroy"})}this._create();this._trigger("create");this._init()},_getCreateOptions:a.noop,_create:a.noop,_init:a.noop,destroy:function(){this._destroy();this.element.unbind("."+this.widgetName).removeData(this.widgetName);
-this.widget().unbind("."+this.widgetName).removeAttr("aria-disabled").removeClass(this.widgetBaseClass+"-disabled ui-state-disabled");this.bindings.unbind("."+this.widgetName);this.hoverable.removeClass("ui-state-hover");this.focusable.removeClass("ui-state-focus")},_destroy:a.noop,widget:function(){return this.element},option:function(e,f){var i=e,b,h,k;if(arguments.length===0)return a.widget.extend({},this.options);if(typeof e==="string"){i={};b=e.split(".");e=b.shift();if(b.length){h=i[e]=a.widget.extend({},
-this.options[e]);for(k=0;k<b.length-1;k++){h[b[k]]=h[b[k]]||{};h=h[b[k]]}e=b.pop();if(f===g)return h[e]===g?null:h[e];h[e]=f}else{if(f===g)return this.options[e]===g?null:this.options[e];i[e]=f}}this._setOptions(i);return this},_setOptions:function(e){var f=this;a.each(e,function(i,b){f._setOption(i,b)});return this},_setOption:function(e,f){this.options[e]=f;if(e==="disabled"){this.widget().toggleClass(this.widgetBaseClass+"-disabled ui-state-disabled",!!f).attr("aria-disabled",f);this.hoverable.removeClass("ui-state-hover");
-this.focusable.removeClass("ui-state-focus")}return this},enable:function(){return this._setOption("disabled",false)},disable:function(){return this._setOption("disabled",true)},_bind:function(e,f){if(f){e=a(e);this.bindings=this.bindings.add(e)}else{f=e;e=this.element}var i=this;a.each(f,function(b,h){function k(){if(!(i.options.disabled===true||a(this).hasClass("ui-state-disabled")))return(typeof h==="string"?i[h]:h).apply(i,arguments)}var l=b.match(/^(\w+)\s*(.*)$/),j=l[1]+"."+i.widgetName;(l=
-l[2])?i.widget().delegate(l,j,k):e.bind(j,k)})},_delay:function(e,f){var i=this;return setTimeout(function(){return(typeof e==="string"?i[e]:e).apply(i,arguments)},f||0)},_hoverable:function(e){this.hoverable=this.hoverable.add(e);this._bind(e,{mouseenter:function(f){a(f.currentTarget).addClass("ui-state-hover")},mouseleave:function(f){a(f.currentTarget).removeClass("ui-state-hover")}})},_focusable:function(e){this.focusable=this.focusable.add(e);this._bind(e,{focusin:function(f){a(f.currentTarget).addClass("ui-state-focus")},
-focusout:function(f){a(f.currentTarget).removeClass("ui-state-focus")}})},_trigger:function(e,f,i){var b=this.options[e];f=a.Event(f);f.type=(e===this.widgetEventPrefix?e:this.widgetEventPrefix+e).toLowerCase();i=i||{};if(f.originalEvent){e=a.event.props.length;for(var h;e;){h=a.event.props[--e];f[h]=f.originalEvent[h]}}this.element.trigger(f,i);i=a.isArray(i)?[f].concat(i):[f,i];return!(a.isFunction(b)&&b.apply(this.element[0],i)===false||f.isDefaultPrevented())}};a.each({show:"fadeIn",hide:"fadeOut"},
-function(e,f){a.Widget.prototype["_"+e]=function(i,b,h){if(typeof b==="string")b={effect:b};var k,l=!b?e:b===true||typeof b==="number"?f:b.effect||f;b=b||{};if(typeof b==="number")b={duration:b};k=!a.isEmptyObject(b);b.complete=h;b.delay&&i.delay(b.delay);if(k&&a.effects&&(a.effects.effect[l]||a.uiBackCompat!==false&&a.effects[l]))i[e](b);else if(l!==e&&i[l])i[l](b.duration,b.easing,h);else i.queue(function(j){a(this)[e]();h&&h.call(i[0]);j()})}});if(a.uiBackCompat!==false)a.Widget.prototype._getCreateOptions=
-function(){return a.metadata&&a.metadata.get(this.element[0])[this.widgetName]}})(jQuery);
-(function(a){var g=false;a(document).mouseup(function(){g=false});a.widget("ui.mouse",{version:"1.9pre",options:{cancel:":input,option",distance:1,delay:0},_mouseInit:function(){var d=this;this.element.bind("mousedown."+this.widgetName,function(c){return d._mouseDown(c)}).bind("click."+this.widgetName,function(c){if(true===a.data(c.target,d.widgetName+".preventClickEvent")){a.removeData(c.target,d.widgetName+".preventClickEvent");c.stopImmediatePropagation();return false}});this.started=false},
-_mouseDestroy:function(){this.element.unbind("."+this.widgetName)},_mouseDown:function(d){if(!g){this._mouseStarted&&this._mouseUp(d);this._mouseDownEvent=d;var c=this,e=d.which==1,f=typeof this.options.cancel=="string"&&d.target.nodeName?a(d.target).closest(this.options.cancel).length:false;if(!e||f||!this._mouseCapture(d))return true;this.mouseDelayMet=!this.options.delay;if(!this.mouseDelayMet)this._mouseDelayTimer=setTimeout(function(){c.mouseDelayMet=true},this.options.delay);if(this._mouseDistanceMet(d)&&
-this._mouseDelayMet(d)){this._mouseStarted=this._mouseStart(d)!==false;if(!this._mouseStarted){d.preventDefault();return true}}true===a.data(d.target,this.widgetName+".preventClickEvent")&&a.removeData(d.target,this.widgetName+".preventClickEvent");this._mouseMoveDelegate=function(i){return c._mouseMove(i)};this._mouseUpDelegate=function(i){return c._mouseUp(i)};a(document).bind("mousemove."+this.widgetName,this._mouseMoveDelegate).bind("mouseup."+this.widgetName,this._mouseUpDelegate);d.preventDefault();
-return g=true}},_mouseMove:function(d){if(a.browser.msie&&!(document.documentMode>=9)&&!d.button)return this._mouseUp(d);if(this._mouseStarted){this._mouseDrag(d);return d.preventDefault()}if(this._mouseDistanceMet(d)&&this._mouseDelayMet(d))(this._mouseStarted=this._mouseStart(this._mouseDownEvent,d)!==false)?this._mouseDrag(d):this._mouseUp(d);return!this._mouseStarted},_mouseUp:function(d){a(document).unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,
-this._mouseUpDelegate);if(this._mouseStarted){this._mouseStarted=false;d.target==this._mouseDownEvent.target&&a.data(d.target,this.widgetName+".preventClickEvent",true);this._mouseStop(d)}return false},_mouseDistanceMet:function(d){return Math.max(Math.abs(this._mouseDownEvent.pageX-d.pageX),Math.abs(this._mouseDownEvent.pageY-d.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,{version:"1.9pre",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(g){var d=
-this.options;if(this.helper||d.disabled||a(g.target).is(".ui-resizable-handle"))return false;this.handle=this._getHandle(g);if(!this.handle)return false;a(d.iframeFix===true?"iframe":d.iframeFix).each(function(){a('<div class="ui-draggable-iframeFix" style="background: #fff;"></div>').css({width:this.offsetWidth+"px",height:this.offsetHeight+"px",position:"absolute",opacity:"0.001",zIndex:1E3}).css(a(this).offset()).appendTo("body")});return true},_mouseStart:function(g){var d=this.options;this.helper=
-this._createHelper(g);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:g.pageX-this.offset.left,top:g.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()});
-this.originalPosition=this.position=this._generatePosition(g);this.originalPageX=g.pageX;this.originalPageY=g.pageY;d.cursorAt&&this._adjustOffsetFromHelper(d.cursorAt);d.containment&&this._setContainment();if(this._trigger("start",g)===false){this._clear();return false}this._cacheHelperProportions();a.ui.ddmanager&&!d.dropBehaviour&&a.ui.ddmanager.prepareOffsets(this,g);this.helper.addClass("ui-draggable-dragging");this._mouseDrag(g,true);a.ui.ddmanager&&a.ui.ddmanager.dragStart(this,g);return true},
-_mouseDrag:function(g,d){this.position=this._generatePosition(g);this.positionAbs=this._convertPositionTo("absolute");if(!d){var c=this._uiHash();if(this._trigger("drag",g,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,g);return false},_mouseStop:function(g){var d=
-false;if(a.ui.ddmanager&&!this.options.dropBehaviour)d=a.ui.ddmanager.drop(this,g);if(this.dropped){d=this.dropped;this.dropped=false}if(!this.element[0]||!this.element[0].parentNode)return false;if(this.options.revert=="invalid"&&!d||this.options.revert=="valid"&&d||this.options.revert===true||a.isFunction(this.options.revert)&&this.options.revert.call(this.element,d)){var c=this;a(this.helper).animate(this.originalPosition,parseInt(this.options.revertDuration,10),function(){c._trigger("stop",g)!==
-false&&c._clear()})}else this._trigger("stop",g)!==false&&this._clear();return false},_mouseUp:function(g){this.options.iframeFix===true&&a("div.ui-draggable-iframeFix").each(function(){this.parentNode.removeChild(this)});a.ui.ddmanager&&a.ui.ddmanager.dragStop(this,g);return a.ui.mouse.prototype._mouseUp.call(this,g)},cancel:function(){this.helper.is(".ui-draggable-dragging")?this._mouseUp({}):this._clear();return this},_getHandle:function(g){var d=!this.options.handle||!a(this.options.handle,this.element).length?
-true:false;a(this.options.handle,this.element).find("*").andSelf().each(function(){if(this==g.target)d=true});return d},_createHelper:function(g){var d=this.options;g=a.isFunction(d.helper)?a(d.helper.apply(this.element[0],[g])):d.helper=="clone"?this.element.clone().removeAttr("id"):this.element;g.parents("body").length||g.appendTo(d.appendTo=="parent"?this.element[0].parentNode:d.appendTo);g[0]!=this.element[0]&&!/(fixed|absolute)/.test(g.css("position"))&&g.css("position","absolute");return g},
-_adjustOffsetFromHelper:function(g){if(typeof g=="string")g=g.split(" ");if(a.isArray(g))g={left:+g[0],top:+g[1]||0};if("left"in g)this.offset.click.left=g.left+this.margins.left;if("right"in g)this.offset.click.left=this.helperProportions.width-g.right+this.margins.left;if("top"in g)this.offset.click.top=g.top+this.margins.top;if("bottom"in g)this.offset.click.top=this.helperProportions.height-g.bottom+this.margins.top},_getParentOffset:function(){this.offsetParent=this.helper.offsetParent();var g=
-this.offsetParent.offset();if(this.cssPosition=="absolute"&&this.scrollParent[0]!=document&&a.contains(this.scrollParent[0],this.offsetParent[0])){g.left+=this.scrollParent.scrollLeft();g.top+=this.scrollParent.scrollTop()}if(this.offsetParent[0]==document.body||this.offsetParent[0].tagName&&this.offsetParent[0].tagName.toLowerCase()=="html"&&a.browser.msie)g={top:0,left:0};return{top:g.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:g.left+(parseInt(this.offsetParent.css("borderLeftWidth"),
-10)||0)}},_getRelativeOffset:function(){if(this.cssPosition=="relative"){var g=this.element.position();return{top:g.top-(parseInt(this.helper.css("top"),10)||0)+this.scrollParent.scrollTop(),left:g.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 g=this.options;if(g.containment=="parent")g.containment=this.helper[0].parentNode;if(g.containment=="document"||g.containment=="window")this.containment=[g.containment=="document"?0:a(window).scrollLeft()-this.offset.relative.left-this.offset.parent.left,g.containment=="document"?0:a(window).scrollTop()-this.offset.relative.top-this.offset.parent.top,
-(g.containment=="document"?0:a(window).scrollLeft())+a(g.containment=="document"?document:window).width()-this.helperProportions.width-this.margins.left,(g.containment=="document"?0:a(window).scrollTop())+(a(g.containment=="document"?document:window).height()||document.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top];if(!/^(document|window|parent)$/.test(g.containment)&&g.containment.constructor!=Array){g=a(g.containment);var d=g[0];if(d){g.offset();var c=a(d).css("overflow")!=
-"hidden";this.containment=[(parseInt(a(d).css("borderLeftWidth"),10)||0)+(parseInt(a(d).css("paddingLeft"),10)||0),(parseInt(a(d).css("borderTopWidth"),10)||0)+(parseInt(a(d).css("paddingTop"),10)||0),(c?Math.max(d.scrollWidth,d.offsetWidth):d.offsetWidth)-(parseInt(a(d).css("borderLeftWidth"),10)||0)-(parseInt(a(d).css("paddingRight"),10)||0)-this.helperProportions.width-this.margins.left-this.margins.right,(c?Math.max(d.scrollHeight,d.offsetHeight):d.offsetHeight)-(parseInt(a(d).css("borderTopWidth"),
-10)||0)-(parseInt(a(d).css("paddingBottom"),10)||0)-this.helperProportions.height-this.margins.top-this.margins.bottom];this.relative_container=g}}else if(g.containment.constructor==Array)this.containment=g.containment},_convertPositionTo:function(g,d){if(!d)d=this.position;var c=g=="absolute"?1:-1,e=this.cssPosition=="absolute"&&!(this.scrollParent[0]!=document&&a.contains(this.scrollParent[0],this.offsetParent[0]))?this.offsetParent:this.scrollParent,f=/(html|body)/i.test(e[0].tagName);return{top:d.top+
-this.offset.relative.top*c+this.offset.parent.top*c-(a.browser.safari&&a.browser.version<526&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollTop():f?0:e.scrollTop())*c),left:d.left+this.offset.relative.left*c+this.offset.parent.left*c-(a.browser.safari&&a.browser.version<526&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollLeft():f?0:e.scrollLeft())*c)}},_generatePosition:function(g){var d=this.options,c=this.cssPosition=="absolute"&&
-!(this.scrollParent[0]!=document&&a.contains(this.scrollParent[0],this.offsetParent[0]))?this.offsetParent:this.scrollParent,e=/(html|body)/i.test(c[0].tagName),f=g.pageX,i=g.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(g.pageX-this.offset.click.left<b[0])f=b[0]+this.offset.click.left;if(g.pageY-
-this.offset.click.top<b[1])i=b[1]+this.offset.click.top;if(g.pageX-this.offset.click.left>b[2])f=b[2]+this.offset.click.left;if(g.pageY-this.offset.click.top>b[3])i=b[3]+this.offset.click.top}if(d.grid){i=d.grid[1]?this.originalPageY+Math.round((i-this.originalPageY)/d.grid[1])*d.grid[1]:this.originalPageY;i=b?!(i-this.offset.click.top<b[1]||i-this.offset.click.top>b[3])?i:!(i-this.offset.click.top<b[1])?i-d.grid[1]:i+d.grid[1]:i;f=d.grid[0]?this.originalPageX+Math.round((f-this.originalPageX)/d.grid[0])*
-d.grid[0]:this.originalPageX;f=b?!(f-this.offset.click.left<b[0]||f-this.offset.click.left>b[2])?f:!(f-this.offset.click.left<b[0])?f-d.grid[0]:f+d.grid[0]:f}}return{top:i-this.offset.click.top-this.offset.relative.top-this.offset.parent.top+(a.browser.safari&&a.browser.version<526&&this.cssPosition=="fixed"?0:this.cssPosition=="fixed"?-this.scrollParent.scrollTop():e?0:c.scrollTop()),left:f-this.offset.click.left-this.offset.relative.left-this.offset.parent.left+(a.browser.safari&&a.browser.version<
-526&&this.cssPosition=="fixed"?0:this.cssPosition=="fixed"?-this.scrollParent.scrollLeft():e?0:c.scrollLeft())}},_clear:function(){this.helper.removeClass("ui-draggable-dragging");this.helper[0]!=this.element[0]&&!this.cancelHelperRemoval&&this.helper.remove();this.helper=null;this.cancelHelperRemoval=false},_trigger:function(g,d,c){c=c||this._uiHash();a.ui.plugin.call(this,g,[d,c]);if(g=="drag")this.positionAbs=this._convertPositionTo("absolute");return a.Widget.prototype._trigger.call(this,g,d,
-c)},plugins:{},_uiHash:function(){return{helper:this.helper,position:this.position,originalPosition:this.originalPosition,offset:this.positionAbs}}});a.ui.plugin.add("draggable","connectToSortable",{start:function(g,d){var c=a(this).data("draggable"),e=c.options,f=a.extend({},d,{item:c.element});c.sortables=[];a(e.connectToSortable).each(function(){var i=a.data(this,"sortable");if(i&&!i.options.disabled){c.sortables.push({instance:i,shouldRevert:i.options.revert});i.refreshPositions();i._trigger("activate",
-g,f)}})},stop:function(g,d){var c=a(this).data("draggable"),e=a.extend({},d,{item:c.element});a.each(c.sortables,function(){if(this.instance.isOver){this.instance.isOver=0;c.cancelHelperRemoval=true;this.instance.cancelHelperRemoval=false;if(this.shouldRevert)this.instance.options.revert=true;this.instance._mouseStop(g);this.instance.options.helper=this.instance.options._helper;c.options.helper=="original"&&this.instance.currentItem.css({top:"auto",left:"auto"})}else{this.instance.cancelHelperRemoval=
-false;this.instance._trigger("deactivate",g,e)}})},drag:function(g,d){var c=a(this).data("draggable"),e=this;a.each(c.sortables,function(){this.instance.positionAbs=c.positionAbs;this.instance.helperProportions=c.helperProportions;this.instance.offset.click=c.offset.click;if(this.instance._intersectsWith(this.instance.containerCache)){if(!this.instance.isOver){this.instance.isOver=1;this.instance.currentItem=a(e).clone().removeAttr("id").appendTo(this.instance.element).data("sortable-item",true);
-this.instance.options._helper=this.instance.options.helper;this.instance.options.helper=function(){return d.helper[0]};g.target=this.instance.currentItem[0];this.instance._mouseCapture(g,true);this.instance._mouseStart(g,true,true);this.instance.offset.click.top=c.offset.click.top;this.instance.offset.click.left=c.offset.click.left;this.instance.offset.parent.left-=c.offset.parent.left-this.instance.offset.parent.left;this.instance.offset.parent.top-=c.offset.parent.top-this.instance.offset.parent.top;
-c._trigger("toSortable",g);c.dropped=this.instance.element;c.currentItem=c.element;this.instance.fromOutside=c}this.instance.currentItem&&this.instance._mouseDrag(g)}else if(this.instance.isOver){this.instance.isOver=0;this.instance.cancelHelperRemoval=true;this.instance.options.revert=false;this.instance._trigger("out",g,this.instance._uiHash(this.instance));this.instance._mouseStop(g,true);this.instance.options.helper=this.instance.options._helper;this.instance.currentItem.remove();this.instance.placeholder&&
-this.instance.placeholder.remove();c._trigger("fromSortable",g);c.dropped=false}})}});a.ui.plugin.add("draggable","cursor",{start:function(){var g=a("body"),d=a(this).data("draggable").options;if(g.css("cursor"))d._cursor=g.css("cursor");g.css("cursor",d.cursor)},stop:function(){var g=a(this).data("draggable").options;g._cursor&&a("body").css("cursor",g._cursor)}});a.ui.plugin.add("draggable","opacity",{start:function(g,d){var c=a(d.helper),e=a(this).data("draggable").options;if(c.css("opacity"))e._opacity=
-c.css("opacity");c.css("opacity",e.opacity)},stop:function(g,d){var c=a(this).data("draggable").options;c._opacity&&a(d.helper).css("opacity",c._opacity)}});a.ui.plugin.add("draggable","scroll",{start:function(){var g=a(this).data("draggable");if(g.scrollParent[0]!=document&&g.scrollParent[0].tagName!="HTML")g.overflowOffset=g.scrollParent.offset()},drag:function(g){var d=a(this).data("draggable"),c=d.options,e=false;if(d.scrollParent[0]!=document&&d.scrollParent[0].tagName!="HTML"){if(!c.axis||c.axis!=
-"x")if(d.overflowOffset.top+d.scrollParent[0].offsetHeight-g.pageY<c.scrollSensitivity)d.scrollParent[0].scrollTop=e=d.scrollParent[0].scrollTop+c.scrollSpeed;else if(g.pageY-d.overflowOffset.top<c.scrollSensitivity)d.scrollParent[0].scrollTop=e=d.scrollParent[0].scrollTop-c.scrollSpeed;if(!c.axis||c.axis!="y")if(d.overflowOffset.left+d.scrollParent[0].offsetWidth-g.pageX<c.scrollSensitivity)d.scrollParent[0].scrollLeft=e=d.scrollParent[0].scrollLeft+c.scrollSpeed;else if(g.pageX-d.overflowOffset.left<
-c.scrollSensitivity)d.scrollParent[0].scrollLeft=e=d.scrollParent[0].scrollLeft-c.scrollSpeed}else{if(!c.axis||c.axis!="x")if(g.pageY-a(document).scrollTop()<c.scrollSensitivity)e=a(document).scrollTop(a(document).scrollTop()-c.scrollSpeed);else if(a(window).height()-(g.pageY-a(document).scrollTop())<c.scrollSensitivity)e=a(document).scrollTop(a(document).scrollTop()+c.scrollSpeed);if(!c.axis||c.axis!="y")if(g.pageX-a(document).scrollLeft()<c.scrollSensitivity)e=a(document).scrollLeft(a(document).scrollLeft()-
-c.scrollSpeed);else if(a(window).width()-(g.pageX-a(document).scrollLeft())<c.scrollSensitivity)e=a(document).scrollLeft(a(document).scrollLeft()+c.scrollSpeed)}e!==false&&a.ui.ddmanager&&!c.dropBehaviour&&a.ui.ddmanager.prepareOffsets(d,g)}});a.ui.plugin.add("draggable","snap",{start:function(){var g=a(this).data("draggable"),d=g.options;g.snapElements=[];a(d.snap.constructor!=String?d.snap.items||":data(draggable)":d.snap).each(function(){var c=a(this),e=c.offset();this!=g.element[0]&&g.snapElements.push({item:this,
-width:c.outerWidth(),height:c.outerHeight(),top:e.top,left:e.left})})},drag:function(g,d){for(var c=a(this).data("draggable"),e=c.options,f=e.snapTolerance,i=d.offset.left,b=i+c.helperProportions.width,h=d.offset.top,k=h+c.helperProportions.height,l=c.snapElements.length-1;l>=0;l--){var j=c.snapElements[l].left,m=j+c.snapElements[l].width,n=c.snapElements[l].top,o=n+c.snapElements[l].height;if(j-f<i&&i<m+f&&n-f<h&&h<o+f||j-f<i&&i<m+f&&n-f<k&&k<o+f||j-f<b&&b<m+f&&n-f<h&&h<o+f||j-f<b&&b<m+f&&n-f<k&&
-k<o+f){if(e.snapMode!="inner"){var p=Math.abs(n-k)<=f,q=Math.abs(o-h)<=f,u=Math.abs(j-b)<=f,s=Math.abs(m-i)<=f;if(p)d.position.top=c._convertPositionTo("relative",{top:n-c.helperProportions.height,left:0}).top-c.margins.top;if(q)d.position.top=c._convertPositionTo("relative",{top:o,left:0}).top-c.margins.top;if(u)d.position.left=c._convertPositionTo("relative",{top:0,left:j-c.helperProportions.width}).left-c.margins.left;if(s)d.position.left=c._convertPositionTo("relative",{top:0,left:m}).left-c.margins.left}var r=
-p||q||u||s;if(e.snapMode!="outer"){p=Math.abs(n-h)<=f;q=Math.abs(o-k)<=f;u=Math.abs(j-i)<=f;s=Math.abs(m-b)<=f;if(p)d.position.top=c._convertPositionTo("relative",{top:n,left:0}).top-c.margins.top;if(q)d.position.top=c._convertPositionTo("relative",{top:o-c.helperProportions.height,left:0}).top-c.margins.top;if(u)d.position.left=c._convertPositionTo("relative",{top:0,left:j}).left-c.margins.left;if(s)d.position.left=c._convertPositionTo("relative",{top:0,left:m-c.helperProportions.width}).left-c.margins.left}if(!c.snapElements[l].snapping&&
-(p||q||u||s||r))c.options.snap.snap&&c.options.snap.snap.call(c.element,g,a.extend(c._uiHash(),{snapItem:c.snapElements[l].item}));c.snapElements[l].snapping=p||q||u||s||r}else{c.snapElements[l].snapping&&c.options.snap.release&&c.options.snap.release.call(c.element,g,a.extend(c._uiHash(),{snapItem:c.snapElements[l].item}));c.snapElements[l].snapping=false}}}});a.ui.plugin.add("draggable","stack",{start:function(){var g=a(this).data("draggable").options;g=a.makeArray(a(g.stack)).sort(function(c,e){return(parseInt(a(c).css("zIndex"),
-10)||0)-(parseInt(a(e).css("zIndex"),10)||0)});if(g.length){var d=parseInt(g[0].style.zIndex)||0;a(g).each(function(c){this.style.zIndex=d+c});this[0].style.zIndex=d+g.length}}});a.ui.plugin.add("draggable","zIndex",{start:function(g,d){var c=a(d.helper),e=a(this).data("draggable").options;if(c.css("zIndex"))e._zIndex=c.css("zIndex");c.css("zIndex",e.zIndex)},stop:function(g,d){var c=a(this).data("draggable").options;c._zIndex&&a(d.helper).css("zIndex",c._zIndex)}})})(jQuery);
-(function(a){a.widget("ui.droppable",{version:"1.9pre",widgetEventPrefix:"drop",options:{accept:"*",activeClass:false,addClasses:true,greedy:false,hoverClass:false,scope:"default",tolerance:"intersect"},_create:function(){var g=this.options,d=g.accept;this.isover=0;this.isout=1;this.accept=a.isFunction(d)?d:function(c){return c.is(d)};this.proportions={width:this.element[0].offsetWidth,height:this.element[0].offsetHeight};a.ui.ddmanager.droppables[g.scope]=a.ui.ddmanager.droppables[g.scope]||[];
-a.ui.ddmanager.droppables[g.scope].push(this);g.addClasses&&this.element.addClass("ui-droppable")},destroy:function(){for(var g=a.ui.ddmanager.droppables[this.options.scope],d=0;d<g.length;d++)g[d]==this&&g.splice(d,1);this.element.removeClass("ui-droppable ui-droppable-disabled").removeData("droppable").unbind(".droppable");return this},_setOption:function(g,d){if(g=="accept")this.accept=a.isFunction(d)?d:function(c){return c.is(d)};a.Widget.prototype._setOption.apply(this,arguments)},_activate:function(g){var d=
-a.ui.ddmanager.current;this.options.activeClass&&this.element.addClass(this.options.activeClass);d&&this._trigger("activate",g,this.ui(d))},_deactivate:function(g){var d=a.ui.ddmanager.current;this.options.activeClass&&this.element.removeClass(this.options.activeClass);d&&this._trigger("deactivate",g,this.ui(d))},_over:function(g){var d=a.ui.ddmanager.current;if(!(!d||(d.currentItem||d.element)[0]==this.element[0]))if(this.accept.call(this.element[0],d.currentItem||d.element)){this.options.hoverClass&&
-this.element.addClass(this.options.hoverClass);this._trigger("over",g,this.ui(d))}},_out:function(g){var d=a.ui.ddmanager.current;if(!(!d||(d.currentItem||d.element)[0]==this.element[0]))if(this.accept.call(this.element[0],d.currentItem||d.element)){this.options.hoverClass&&this.element.removeClass(this.options.hoverClass);this._trigger("out",g,this.ui(d))}},_drop:function(g,d){var c=d||a.ui.ddmanager.current;if(!c||(c.currentItem||c.element)[0]==this.element[0])return false;var e=false;this.element.find(":data(droppable)").not(".ui-draggable-dragging").each(function(){var f=
-a.data(this,"droppable");if(f.options.greedy&&!f.options.disabled&&f.options.scope==c.options.scope&&f.accept.call(f.element[0],c.currentItem||c.element)&&a.ui.intersect(c,a.extend(f,{offset:f.element.offset()}),f.options.tolerance)){e=true;return false}});if(e)return false;if(this.accept.call(this.element[0],c.currentItem||c.element)){this.options.activeClass&&this.element.removeClass(this.options.activeClass);this.options.hoverClass&&this.element.removeClass(this.options.hoverClass);this._trigger("drop",
-g,this.ui(c));return this.element}return false},ui:function(g){return{draggable:g.currentItem||g.element,helper:g.helper,position:g.position,offset:g.positionAbs}}});a.ui.intersect=function(g,d,c){if(!d.offset)return false;var e=(g.positionAbs||g.position.absolute).left,f=e+g.helperProportions.width,i=(g.positionAbs||g.position.absolute).top,b=i+g.helperProportions.height,h=d.offset.left,k=h+d.proportions.width,l=d.offset.top,j=l+d.proportions.height;switch(c){case "fit":return h<=e&&f<=k&&l<=i&&
-b<=j;case "intersect":return h<e+g.helperProportions.width/2&&f-g.helperProportions.width/2<k&&l<i+g.helperProportions.height/2&&b-g.helperProportions.height/2<j;case "pointer":return a.ui.isOver((g.positionAbs||g.position.absolute).top+(g.clickOffset||g.offset.click).top,(g.positionAbs||g.position.absolute).left+(g.clickOffset||g.offset.click).left,l,h,d.proportions.height,d.proportions.width);case "touch":return(i>=l&&i<=j||b>=l&&b<=j||i<l&&b>j)&&(e>=h&&e<=k||f>=h&&f<=k||e<h&&f>k);default:return false}};
-a.ui.ddmanager={current:null,droppables:{"default":[]},prepareOffsets:function(g,d){var c=a.ui.ddmanager.droppables[g.options.scope]||[],e=d?d.type:null,f=(g.currentItem||g.element).find(":data(droppable)").andSelf(),i=0;a:for(;i<c.length;i++)if(!(c[i].options.disabled||g&&!c[i].accept.call(c[i].element[0],g.currentItem||g.element))){for(var b=0;b<f.length;b++)if(f[b]==c[i].element[0]){c[i].proportions.height=0;continue a}c[i].visible=c[i].element.css("display")!="none";if(c[i].visible){e=="mousedown"&&
-c[i]._activate.call(c[i],d);c[i].offset=c[i].element.offset();c[i].proportions={width:c[i].element[0].offsetWidth,height:c[i].element[0].offsetHeight}}}},drop:function(g,d){var c=false;a.each(a.ui.ddmanager.droppables[g.options.scope]||[],function(){if(this.options){if(!this.options.disabled&&this.visible&&a.ui.intersect(g,this,this.options.tolerance))c=c||this._drop.call(this,d);if(!this.options.disabled&&this.visible&&this.accept.call(this.element[0],g.currentItem||g.element)){this.isout=1;this.isover=
-0;this._deactivate.call(this,d)}}});return c},dragStart:function(g,d){g.element.parentsUntil("body").bind("scroll.droppable",function(){g.options.refreshPositions||a.ui.ddmanager.prepareOffsets(g,d)})},drag:function(g,d){g.options.refreshPositions&&a.ui.ddmanager.prepareOffsets(g,d);a.each(a.ui.ddmanager.droppables[g.options.scope]||[],function(){if(!(this.options.disabled||this.greedyChild||!this.visible)){var c=a.ui.intersect(g,this,this.options.tolerance);if(c=!c&&this.isover==1?"isout":c&&this.isover==
-0?"isover":null){var e;if(this.options.greedy){var f=this.element.parents(":data(droppable):eq(0)");if(f.length){e=a.data(f[0],"droppable");e.greedyChild=c=="isover"?1:0}}if(e&&c=="isover"){e.isover=0;e.isout=1;e._out.call(e,d)}this[c]=1;this[c=="isout"?"isover":"isout"]=0;this[c=="isover"?"_over":"_out"].call(this,d);if(e&&c=="isout"){e.isout=0;e.isover=1;e._over.call(e,d)}}}})},dragStop:function(g,d){g.element.parentsUntil("body").unbind("scroll.droppable");g.options.refreshPositions||a.ui.ddmanager.prepareOffsets(g,
-d)}}})(jQuery);
-(function(a){a.widget("ui.resizable",a.ui.mouse,{version:"1.9pre",widgetEventPrefix:"resize",options:{alsoResize:false,animate:false,animateDuration:"slow",animateEasing:"swing",aspectRatio:false,autoHide:false,containment:false,ghost:false,grid:false,handles:"e,s,se",helper:false,maxHeight:null,maxWidth:null,minHeight:10,minWidth:10,zIndex:1E3},_create:function(){var c=this,e=this.options;this.element.addClass("ui-resizable");a.extend(this,{_aspectRatio:!!e.aspectRatio,aspectRatio:e.aspectRatio,originalElement:this.element,
-_proportionallyResizeElements:[],_helper:e.helper||e.ghost||e.animate?e.helper||"ui-resizable-helper":null});if(this.element[0].nodeName.match(/canvas|textarea|input|select|button|img/i)){/relative/.test(this.element.css("position"))&&a.browser.opera&&this.element.css({position:"relative",top:"auto",left:"auto"});this.element.wrap(a('<div class="ui-wrapper" style="overflow: hidden;"></div>').css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),
-top:this.element.css("top"),left:this.element.css("left")}));this.element=this.element.parent().data("resizable",this.element.data("resizable"));this.elementIsWrapper=true;this.element.css({marginLeft:this.originalElement.css("marginLeft"),marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom")});this.originalElement.css({marginLeft:0,marginTop:0,marginRight:0,marginBottom:0});this.originalResizeStyle=
-this.originalElement.css("resize");this.originalElement.css("resize","none");this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"}));this.originalElement.css({margin:this.originalElement.css("margin")});this._proportionallyResize()}this.handles=e.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 f=this.handles.split(",");this.handles={};for(var i=0;i<f.length;i++){var b=a.trim(f[i]),h=a('<div class="ui-resizable-handle '+("ui-resizable-"+b)+'"></div>');/sw|se|ne|nw/.test(b)&&h.css({zIndex:++e.zIndex});"se"==b&&h.addClass("ui-icon ui-icon-gripsmall-diagonal-se");this.handles[b]=".ui-resizable-"+b;this.element.append(h)}}this._renderAxis=function(k){k=k||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 j=a(this.handles[l],this.element),m=0;m=/sw|ne|nw|se|n|s/.test(l)?j.outerHeight():j.outerWidth();j=["padding",/ne|nw|n/.test(l)?"Top":/se|sw|s/.test(l)?"Bottom":/^e$/.test(l)?"Right":"Left"].join("");k.css(j,m);this._proportionallyResize()}a(this.handles[l])}};this._renderAxis(this.element);this._handles=a(".ui-resizable-handle",this.element).disableSelection();
-this._handles.mouseover(function(){if(!c.resizing){if(this.className)var k=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i);c.axis=k&&k[1]?k[1]:"se"}});if(e.autoHide){this._handles.hide();a(this.element).addClass("ui-resizable-autohide").hover(function(){if(!e.disabled){a(this).removeClass("ui-resizable-autohide");c._handles.show()}},function(){if(!e.disabled)if(!c.resizing){a(this).addClass("ui-resizable-autohide");c._handles.hide()}})}this._mouseInit()},destroy:function(){this._mouseDestroy();
-var c=function(f){a(f).removeClass("ui-resizable ui-resizable-disabled ui-resizable-resizing").removeData("resizable").unbind(".resizable").find(".ui-resizable-handle").remove()};if(this.elementIsWrapper){c(this.element);var e=this.element;e.after(this.originalElement.css({position:e.css("position"),width:e.outerWidth(),height:e.outerHeight(),top:e.css("top"),left:e.css("left")})).remove()}this.originalElement.css("resize",this.originalResizeStyle);c(this.originalElement);return this},_mouseCapture:function(c){var e=
-false,f;for(f in this.handles)if(a(this.handles[f])[0]==c.target)e=true;return!this.options.disabled&&e},_mouseStart:function(c){var e=this.options,f=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:f.top,left:f.left});a.browser.opera&&/relative/.test(i.css("position"))&&i.css({position:"relative",top:"auto",left:"auto"});
-this._renderProxy();f=g(this.helper.css("left"));var b=g(this.helper.css("top"));if(e.containment){f+=a(e.containment).scrollLeft()||0;b+=a(e.containment).scrollTop()||0}this.offset=this.helper.offset();this.position={left:f,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:f,top:b};this.sizeDiff=
-{width:i.outerWidth()-i.width(),height:i.outerHeight()-i.height()};this.originalMousePosition={left:c.pageX,top:c.pageY};this.aspectRatio=typeof e.aspectRatio=="number"?e.aspectRatio:this.originalSize.width/this.originalSize.height||1;e=a(".ui-resizable-"+this.axis).css("cursor");a("body").css("cursor",e=="auto"?this.axis+"-resize":e);i.addClass("ui-resizable-resizing");this._propagate("start",c);return true},_mouseDrag:function(c){var e=this.helper,f=this.originalMousePosition,i=this._change[this.axis];
-if(!i)return false;f=i.apply(this,[c,c.pageX-f.left||0,c.pageY-f.top||0]);this._updateVirtualBoundaries(c.shiftKey);if(this._aspectRatio||c.shiftKey)f=this._updateRatio(f,c);f=this._respectSize(f,c);this._propagate("resize",c);e.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(f);this._trigger("resize",c,this.ui());return false},
-_mouseStop:function(c){this.resizing=false;var e=this.options;if(this._helper){var f=this._proportionallyResizeElements,i=f.length&&/textarea/i.test(f[0].nodeName);f=i&&a.ui.hasScroll(f[0],"left")?0:this.sizeDiff.height;i=i?0:this.sizeDiff.width;i={width:this.helper.width()-i,height:this.helper.height()-f};f=parseInt(this.element.css("left"),10)+(this.position.left-this.originalPosition.left)||null;var b=parseInt(this.element.css("top"),10)+(this.position.top-this.originalPosition.top)||null;e.animate||
-this.element.css(a.extend(i,{top:b,left:f}));this.helper.height(this.size.height);this.helper.width(this.size.width);this._helper&&!e.animate&&this._proportionallyResize()}a("body").css("cursor","auto");this.element.removeClass("ui-resizable-resizing");this._propagate("stop",c);this._helper&&this.helper.remove();return false},_updateVirtualBoundaries:function(c){var e=this.options,f,i,b;e={minWidth:d(e.minWidth)?e.minWidth:0,maxWidth:d(e.maxWidth)?e.maxWidth:Infinity,minHeight:d(e.minHeight)?e.minHeight:
-0,maxHeight:d(e.maxHeight)?e.maxHeight:Infinity};if(this._aspectRatio||c){c=e.minHeight*this.aspectRatio;i=e.minWidth/this.aspectRatio;f=e.maxHeight*this.aspectRatio;b=e.maxWidth/this.aspectRatio;if(c>e.minWidth)e.minWidth=c;if(i>e.minHeight)e.minHeight=i;if(f<e.maxWidth)e.maxWidth=f;if(b<e.maxHeight)e.maxHeight=b}this._vBoundaries=e},_updateCache:function(c){this.offset=this.helper.offset();if(d(c.left))this.position.left=c.left;if(d(c.top))this.position.top=c.top;if(d(c.height))this.size.height=
-c.height;if(d(c.width))this.size.width=c.width},_updateRatio:function(c){var e=this.position,f=this.size,i=this.axis;if(d(c.height))c.width=c.height*this.aspectRatio;else if(d(c.width))c.height=c.width/this.aspectRatio;if(i=="sw"){c.left=e.left+(f.width-c.width);c.top=null}if(i=="nw"){c.top=e.top+(f.height-c.height);c.left=e.left+(f.width-c.width)}return c},_respectSize:function(c){var e=this._vBoundaries,f=this.axis,i=d(c.width)&&e.maxWidth&&e.maxWidth<c.width,b=d(c.height)&&e.maxHeight&&e.maxHeight<
-c.height,h=d(c.width)&&e.minWidth&&e.minWidth>c.width,k=d(c.height)&&e.minHeight&&e.minHeight>c.height;if(h)c.width=e.minWidth;if(k)c.height=e.minHeight;if(i)c.width=e.maxWidth;if(b)c.height=e.maxHeight;var l=this.originalPosition.left+this.originalSize.width,j=this.position.top+this.size.height,m=/sw|nw|w/.test(f);f=/nw|ne|n/.test(f);if(h&&m)c.left=l-e.minWidth;if(i&&m)c.left=l-e.maxWidth;if(k&&f)c.top=j-e.minHeight;if(b&&f)c.top=j-e.maxHeight;if((e=!c.width&&!c.height)&&!c.left&&c.top)c.top=null;
-else if(e&&!c.top&&c.left)c.left=null;return c},_proportionallyResize:function(){if(this._proportionallyResizeElements.length)for(var c=this.helper||this.element,e=0;e<this._proportionallyResizeElements.length;e++){var f=this._proportionallyResizeElements[e];if(!this.borderDif){var i=[f.css("borderTopWidth"),f.css("borderRightWidth"),f.css("borderBottomWidth"),f.css("borderLeftWidth")],b=[f.css("paddingTop"),f.css("paddingRight"),f.css("paddingBottom"),f.css("paddingLeft")];this.borderDif=a.map(i,
-function(h,k){var l=parseInt(h,10)||0,j=parseInt(b[k],10)||0;return l+j})}a.browser.msie&&(a(c).is(":hidden")||a(c).parents(":hidden").length)||f.css({height:c.height()-this.borderDif[0]-this.borderDif[2]||0,width:c.width()-this.borderDif[1]-this.borderDif[3]||0})}},_renderProxy:function(){var c=this.options;this.elementOffset=this.element.offset();if(this._helper){this.helper=this.helper||a('<div style="overflow:hidden;"></div>');var e=a.browser.msie&&a.browser.version<7,f=e?1:0;e=e?2:-1;this.helper.addClass(this._helper).css({width:this.element.outerWidth()+
-e,height:this.element.outerHeight()+e,position:"absolute",left:this.elementOffset.left-f+"px",top:this.elementOffset.top-f+"px",zIndex:++c.zIndex});this.helper.appendTo("body").disableSelection()}else this.helper=this.element},_change:{e:function(c,e){return{width:this.originalSize.width+e}},w:function(c,e){return{left:this.originalPosition.left+e,width:this.originalSize.width-e}},n:function(c,e,f){return{top:this.originalPosition.top+f,height:this.originalSize.height-f}},s:function(c,e,f){return{height:this.originalSize.height+
-f}},se:function(c,e,f){return a.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[c,e,f]))},sw:function(c,e,f){return a.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[c,e,f]))},ne:function(c,e,f){return a.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[c,e,f]))},nw:function(c,e,f){return a.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[c,e,f]))}},_propagate:function(c,e){a.ui.plugin.call(this,c,[e,this.ui()]);
-c!="resize"&&this._trigger(c,e,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.ui.plugin.add("resizable","alsoResize",{start:function(){var c=a(this).data("resizable").options,e=function(f){a(f).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 c.alsoResize=="object"&&!c.alsoResize.parentNode)if(c.alsoResize.length){c.alsoResize=c.alsoResize[0];e(c.alsoResize)}else a.each(c.alsoResize,function(f){e(f)});else e(c.alsoResize)},resize:function(c,e){var f=a(this).data("resizable"),i=f.options,b=f.originalSize,h=f.originalPosition,k={height:f.size.height-b.height||0,width:f.size.width-b.width||0,top:f.position.top-h.top||0,left:f.position.left-
-h.left||0},l=function(j,m){a(j).each(function(){var n=a(this),o=a(this).data("resizable-alsoresize"),p={},q=m&&m.length?m:n.parents(e.originalElement[0]).length?["width","height"]:["width","height","top","left"];a.each(q,function(u,s){var r=(o[s]||0)+(k[s]||0);if(r&&r>=0)p[s]=r||null});if(a.browser.opera&&/relative/.test(n.css("position"))){f._revertToRelativePosition=true;n.css({position:"absolute",top:"auto",left:"auto"})}n.css(p)})};typeof i.alsoResize=="object"&&!i.alsoResize.nodeType?a.each(i.alsoResize,
-function(j,m){l(j,m)}):l(i.alsoResize)},stop:function(){var c=a(this).data("resizable"),e=c.options,f=function(i){a(i).each(function(){var b=a(this);b.css({position:b.data("resizable-alsoresize").position})})};if(c._revertToRelativePosition){c._revertToRelativePosition=false;typeof e.alsoResize=="object"&&!e.alsoResize.nodeType?a.each(e.alsoResize,function(i){f(i)}):f(e.alsoResize)}a(this).removeData("resizable-alsoresize")}});a.ui.plugin.add("resizable","animate",{stop:function(c){var e=a(this).data("resizable"),
-f=e.options,i=e._proportionallyResizeElements,b=i.length&&/textarea/i.test(i[0].nodeName),h=b&&a.ui.hasScroll(i[0],"left")?0:e.sizeDiff.height;b={width:e.size.width-(b?0:e.sizeDiff.width),height:e.size.height-h};h=parseInt(e.element.css("left"),10)+(e.position.left-e.originalPosition.left)||null;var k=parseInt(e.element.css("top"),10)+(e.position.top-e.originalPosition.top)||null;e.element.animate(a.extend(b,k&&h?{top:k,left:h}:{}),{duration:f.animateDuration,easing:f.animateEasing,step:function(){var l=
-{width:parseInt(e.element.css("width"),10),height:parseInt(e.element.css("height"),10),top:parseInt(e.element.css("top"),10),left:parseInt(e.element.css("left"),10)};i&&i.length&&a(i[0]).css({width:l.width,height:l.height});e._updateCache(l);e._propagate("resize",c)}})}});a.ui.plugin.add("resizable","containment",{start:function(){var c=a(this).data("resizable"),e=c.element,f=c.options.containment;if(e=f instanceof a?f.get(0):/parent/.test(f)?e.parent().get(0):f){c.containerElement=a(e);if(/document/.test(f)||
-f==document){c.containerOffset={left:0,top:0};c.containerPosition={left:0,top:0};c.parentData={element:a(document),left:0,top:0,width:a(document).width(),height:a(document).height()||document.body.parentNode.scrollHeight}}else{var i=a(e),b=[];a(["Top","Right","Left","Bottom"]).each(function(l,j){b[l]=g(i.css("padding"+j))});c.containerOffset=i.offset();c.containerPosition=i.position();c.containerSize={height:i.innerHeight()-b[3],width:i.innerWidth()-b[1]};f=c.containerOffset;var h=c.containerSize.height,
-k=c.containerSize.width;k=a.ui.hasScroll(e,"left")?e.scrollWidth:k;h=a.ui.hasScroll(e)?e.scrollHeight:h;c.parentData={element:e,left:f.left,top:f.top,width:k,height:h}}}},resize:function(c){var e=a(this).data("resizable"),f=e.options,i=e.containerOffset,b=e.position;c=e._aspectRatio||c.shiftKey;var h={top:0,left:0},k=e.containerElement;if(k[0]!=document&&/static/.test(k.css("position")))h=i;if(b.left<(e._helper?i.left:0)){e.size.width+=e._helper?e.position.left-i.left:e.position.left-h.left;if(c)e.size.height=
-e.size.width/f.aspectRatio;e.position.left=f.helper?i.left:0}if(b.top<(e._helper?i.top:0)){e.size.height+=e._helper?e.position.top-i.top:e.position.top;if(c)e.size.width=e.size.height*f.aspectRatio;e.position.top=e._helper?i.top:0}e.offset.left=e.parentData.left+e.position.left;e.offset.top=e.parentData.top+e.position.top;f=Math.abs((e._helper?e.offset.left-h.left:e.offset.left-h.left)+e.sizeDiff.width);i=Math.abs((e._helper?e.offset.top-h.top:e.offset.top-i.top)+e.sizeDiff.height);b=e.containerElement.get(0)==
-e.element.parent().get(0);h=/relative|absolute/.test(e.containerElement.css("position"));if(b&&h)f-=e.parentData.left;if(f+e.size.width>=e.parentData.width){e.size.width=e.parentData.width-f;if(c)e.size.height=e.size.width/e.aspectRatio}if(i+e.size.height>=e.parentData.height){e.size.height=e.parentData.height-i;if(c)e.size.width=e.size.height*e.aspectRatio}},stop:function(){var c=a(this).data("resizable"),e=c.options,f=c.containerOffset,i=c.containerPosition,b=c.containerElement,h=a(c.helper),k=
-h.offset(),l=h.outerWidth()-c.sizeDiff.width;h=h.outerHeight()-c.sizeDiff.height;c._helper&&!e.animate&&/relative/.test(b.css("position"))&&a(this).css({left:k.left-i.left-f.left,width:l,height:h});c._helper&&!e.animate&&/static/.test(b.css("position"))&&a(this).css({left:k.left-i.left-f.left,width:l,height:h})}});a.ui.plugin.add("resizable","ghost",{start:function(){var c=a(this).data("resizable"),e=c.options,f=c.size;c.ghost=c.originalElement.clone();c.ghost.css({opacity:0.25,display:"block",position:"relative",
-height:f.height,width:f.width,margin:0,left:0,top:0}).addClass("ui-resizable-ghost").addClass(typeof e.ghost=="string"?e.ghost:"");c.ghost.appendTo(c.helper)},resize:function(){var c=a(this).data("resizable");c.ghost&&c.ghost.css({position:"relative",height:c.size.height,width:c.size.width})},stop:function(){var c=a(this).data("resizable");c.ghost&&c.helper&&c.helper.get(0).removeChild(c.ghost.get(0))}});a.ui.plugin.add("resizable","grid",{resize:function(){var c=a(this).data("resizable"),e=c.options,
-f=c.size,i=c.originalSize,b=c.originalPosition,h=c.axis;e.grid=typeof e.grid=="number"?[e.grid,e.grid]:e.grid;var k=Math.round((f.width-i.width)/(e.grid[0]||1))*(e.grid[0]||1);e=Math.round((f.height-i.height)/(e.grid[1]||1))*(e.grid[1]||1);if(/^(se|s|e)$/.test(h)){c.size.width=i.width+k;c.size.height=i.height+e}else if(/^(ne)$/.test(h)){c.size.width=i.width+k;c.size.height=i.height+e;c.position.top=b.top-e}else{if(/^(sw)$/.test(h)){c.size.width=i.width+k;c.size.height=i.height+e}else{c.size.width=
-i.width+k;c.size.height=i.height+e;c.position.top=b.top-e}c.position.left=b.left-k}}});var g=function(c){return parseInt(c,10)||0},d=function(c){return!isNaN(parseInt(c,10))}})(jQuery);
-(function(a){a.widget("ui.selectable",a.ui.mouse,{version:"1.9pre",options:{appendTo:"body",autoRefresh:true,distance:0,filter:"*",tolerance:"touch"},_create:function(){var g=this;this.element.addClass("ui-selectable");this.dragged=false;var d;this.refresh=function(){d=a(g.options.filter,g.element[0]);d.each(function(){var c=a(this),e=c.offset();a.data(this,"selectable-item",{element:this,$element:c,left:e.left,top:e.top,right:e.left+c.outerWidth(),bottom:e.top+c.outerHeight(),startselected:false,
-selected:c.hasClass("ui-selected"),selecting:c.hasClass("ui-selecting"),unselecting:c.hasClass("ui-unselecting")})})};this.refresh();this.selectees=d.addClass("ui-selectee");this._mouseInit();this.helper=a("<div class='ui-selectable-helper'></div>")},destroy:function(){this.selectees.removeClass("ui-selectee").removeData("selectable-item");this.element.removeClass("ui-selectable ui-selectable-disabled").removeData("selectable").unbind(".selectable");this._mouseDestroy();return this},_mouseStart:function(g){var d=
-this;this.opos=[g.pageX,g.pageY];if(!this.options.disabled){var c=this.options;this.selectees=a(c.filter,this.element[0]);this._trigger("start",g);a(c.appendTo).append(this.helper);this.helper.css({left:g.clientX,top:g.clientY,width:0,height:0});c.autoRefresh&&this.refresh();this.selectees.filter(".ui-selected").each(function(){var e=a.data(this,"selectable-item");e.startselected=true;if(!g.metaKey){e.$element.removeClass("ui-selected");e.selected=false;e.$element.addClass("ui-unselecting");e.unselecting=
-true;d._trigger("unselecting",g,{unselecting:e.element})}});a(g.target).parents().andSelf().each(function(){var e=a.data(this,"selectable-item");if(e){var f=!g.metaKey||!e.$element.hasClass("ui-selected");e.$element.removeClass(f?"ui-unselecting":"ui-selected").addClass(f?"ui-selecting":"ui-unselecting");e.unselecting=!f;e.selecting=f;(e.selected=f)?d._trigger("selecting",g,{selecting:e.element}):d._trigger("unselecting",g,{unselecting:e.element});return false}})}},_mouseDrag:function(g){var d=this;
-this.dragged=true;if(!this.options.disabled){var c=this.options,e=this.opos[0],f=this.opos[1],i=g.pageX,b=g.pageY;if(e>i){var h=i;i=e;e=h}if(f>b){h=b;b=f;f=h}this.helper.css({left:e,top:f,width:i-e,height:b-f});this.selectees.each(function(){var k=a.data(this,"selectable-item");if(!(!k||k.element==d.element[0])){var l=false;if(c.tolerance=="touch")l=!(k.left>i||k.right<e||k.top>b||k.bottom<f);else if(c.tolerance=="fit")l=k.left>e&&k.right<i&&k.top>f&&k.bottom<b;if(l){if(k.selected){k.$element.removeClass("ui-selected");
-k.selected=false}if(k.unselecting){k.$element.removeClass("ui-unselecting");k.unselecting=false}if(!k.selecting){k.$element.addClass("ui-selecting");k.selecting=true;d._trigger("selecting",g,{selecting:k.element})}}else{if(k.selecting)if(g.metaKey&&k.startselected){k.$element.removeClass("ui-selecting");k.selecting=false;k.$element.addClass("ui-selected");k.selected=true}else{k.$element.removeClass("ui-selecting");k.selecting=false;if(k.startselected){k.$element.addClass("ui-unselecting");k.unselecting=
-true}d._trigger("unselecting",g,{unselecting:k.element})}if(k.selected)if(!g.metaKey&&!k.startselected){k.$element.removeClass("ui-selected");k.selected=false;k.$element.addClass("ui-unselecting");k.unselecting=true;d._trigger("unselecting",g,{unselecting:k.element})}}}});return false}},_mouseStop:function(g){var d=this;this.dragged=false;a(".ui-unselecting",this.element[0]).each(function(){var c=a.data(this,"selectable-item");c.$element.removeClass("ui-unselecting");c.unselecting=false;c.startselected=
-false;d._trigger("unselected",g,{unselected:c.element})});a(".ui-selecting",this.element[0]).each(function(){var c=a.data(this,"selectable-item");c.$element.removeClass("ui-selecting").addClass("ui-selected");c.selecting=false;c.selected=true;c.startselected=true;d._trigger("selected",g,{selected:c.element})});this._trigger("stop",g);this.helper.remove();return false}})})(jQuery);
-(function(a){a.widget("ui.sortable",a.ui.mouse,{version:"1.9pre",widgetEventPrefix:"sort",options:{appendTo:"parent",axis:false,connectWith:false,containment:false,cursor:"auto",cursorAt:false,dropOnEmpty:true,forcePlaceholderSize:false,forceHelperSize:false,grid:false,handle:false,helper:"original",items:"> *",opacity:false,placeholder:false,revert:false,scroll:true,scrollSensitivity:20,scrollSpeed:20,scope:"default",tolerance:"intersect",zIndex:1E3},_create:function(){var g=this.options;this.containerCache=
-{};this.element.addClass("ui-sortable");this.refresh();this.floating=this.items.length?g.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");this._mouseDestroy();for(var g=this.items.length-1;g>=0;g--)this.items[g].item.removeData(this.widgetName+"-item");return this},_setOption:function(g,
-d){if(g==="disabled"){this.options[g]=d;this.widget().toggleClass("ui-sortable-disabled",!!d)}else a.Widget.prototype._setOption.apply(this,arguments)},_mouseCapture:function(g,d){var c=this;if(this.reverting)return false;if(this.options.disabled||this.options.type=="static")return false;this._refreshItems(g);var e=null,f=this;a(g.target).parents().each(function(){if(a.data(this,c.widgetName+"-item")==f){e=a(this);return false}});if(a.data(g.target,c.widgetName+"-item")==f)e=a(g.target);if(!e)return false;
-if(this.options.handle&&!d){var i=false;a(this.options.handle,e).find("*").andSelf().each(function(){if(this==g.target)i=true});if(!i)return false}this.currentItem=e;this._removeCurrentsFromItems();return true},_mouseStart:function(g,d,c){d=this.options;this.currentContainer=this;this.refreshPositions();this.helper=this._createHelper(g);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:g.pageX-this.offset.left,top:g.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()});this.originalPosition=this._generatePosition(g);this.originalPageX=g.pageX;this.originalPageY=g.pageY;d.cursorAt&&this._adjustOffsetFromHelper(d.cursorAt);this.domPosition={prev:this.currentItem.prev()[0],
-parent:this.currentItem.parent()[0]};this.helper[0]!=this.currentItem[0]&&this.currentItem.hide();this._createPlaceholder();d.containment&&this._setContainment();if(d.cursor){if(a("body").css("cursor"))this._storedCursor=a("body").css("cursor");a("body").css("cursor",d.cursor)}if(d.opacity){if(this.helper.css("opacity"))this._storedOpacity=this.helper.css("opacity");this.helper.css("opacity",d.opacity)}if(d.zIndex){if(this.helper.css("zIndex"))this._storedZIndex=this.helper.css("zIndex");this.helper.css("zIndex",
-d.zIndex)}if(this.scrollParent[0]!=document&&this.scrollParent[0].tagName!="HTML")this.overflowOffset=this.scrollParent.offset();this._trigger("start",g,this._uiHash());this._preserveHelperProportions||this._cacheHelperProportions();if(!c)for(c=this.containers.length-1;c>=0;c--)this.containers[c]._trigger("activate",g,this._uiHash(this));if(a.ui.ddmanager)a.ui.ddmanager.current=this;a.ui.ddmanager&&!d.dropBehaviour&&a.ui.ddmanager.prepareOffsets(this,g);this.dragging=true;this.helper.addClass("ui-sortable-helper");
-this._mouseDrag(g);return true},_mouseDrag:function(g){this.position=this._generatePosition(g);this.positionAbs=this._convertPositionTo("absolute");if(!this.lastPositionAbs)this.lastPositionAbs=this.positionAbs;if(this.options.scroll){var d=this.options,c=false;if(this.scrollParent[0]!=document&&this.scrollParent[0].tagName!="HTML"){if(this.overflowOffset.top+this.scrollParent[0].offsetHeight-g.pageY<d.scrollSensitivity)this.scrollParent[0].scrollTop=c=this.scrollParent[0].scrollTop+d.scrollSpeed;
-else if(g.pageY-this.overflowOffset.top<d.scrollSensitivity)this.scrollParent[0].scrollTop=c=this.scrollParent[0].scrollTop-d.scrollSpeed;if(this.overflowOffset.left+this.scrollParent[0].offsetWidth-g.pageX<d.scrollSensitivity)this.scrollParent[0].scrollLeft=c=this.scrollParent[0].scrollLeft+d.scrollSpeed;else if(g.pageX-this.overflowOffset.left<d.scrollSensitivity)this.scrollParent[0].scrollLeft=c=this.scrollParent[0].scrollLeft-d.scrollSpeed}else{if(g.pageY-a(document).scrollTop()<d.scrollSensitivity)c=
-a(document).scrollTop(a(document).scrollTop()-d.scrollSpeed);else if(a(window).height()-(g.pageY-a(document).scrollTop())<d.scrollSensitivity)c=a(document).scrollTop(a(document).scrollTop()+d.scrollSpeed);if(g.pageX-a(document).scrollLeft()<d.scrollSensitivity)c=a(document).scrollLeft(a(document).scrollLeft()-d.scrollSpeed);else if(a(window).width()-(g.pageX-a(document).scrollLeft())<d.scrollSensitivity)c=a(document).scrollLeft(a(document).scrollLeft()+d.scrollSpeed)}c!==false&&a.ui.ddmanager&&!d.dropBehaviour&&
-a.ui.ddmanager.prepareOffsets(this,g)}this.positionAbs=this._convertPositionTo("absolute");if(!this.options.axis||this.options.axis!="y")this.helper[0].style.left=this.position.left+"px";if(!this.options.axis||this.options.axis!="x")this.helper[0].style.top=this.position.top+"px";for(d=this.items.length-1;d>=0;d--){c=this.items[d];var e=c.item[0],f=this._intersectsWithPointer(c);if(f)if(e!=this.currentItem[0]&&this.placeholder[f==1?"next":"prev"]()[0]!=e&&!a.contains(this.placeholder[0],e)&&(this.options.type==
-"semi-dynamic"?!a.contains(this.element[0],e):1)){this.direction=f==1?"down":"up";if(this.options.tolerance=="pointer"||this._intersectsWithSides(c))this._rearrange(g,c);else break;this._trigger("change",g,this._uiHash());break}}this._contactContainers(g);a.ui.ddmanager&&a.ui.ddmanager.drag(this,g);this._trigger("sort",g,this._uiHash());this.lastPositionAbs=this.positionAbs;return false},_mouseStop:function(g,d){if(g){a.ui.ddmanager&&!this.options.dropBehaviour&&a.ui.ddmanager.drop(this,g);if(this.options.revert){var c=
-this,e=c.placeholder.offset();c.reverting=true;a(this.helper).animate({left:e.left-this.offset.parent.left-c.margins.left+(this.offsetParent[0]==document.body?0:this.offsetParent[0].scrollLeft),top:e.top-this.offset.parent.top-c.margins.top+(this.offsetParent[0]==document.body?0:this.offsetParent[0].scrollTop)},parseInt(this.options.revert,10)||500,function(){c._clear(g)})}else this._clear(g,d);return false}},cancel:function(){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 g=this.containers.length-1;g>=0;g--){this.containers[g]._trigger("deactivate",null,this._uiHash(this));if(this.containers[g].containerCache.over){this.containers[g]._trigger("out",null,this._uiHash(this));this.containers[g].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(g){var d=this._getItemsAsjQuery(g&&g.connected),c=[];g=g||{};a(d).each(function(){var e=(a(g.item||this).attr(g.attribute||"id")||"").match(g.expression||/(.+)[-=_](.+)/);if(e)c.push((g.key||e[1]+"[]")+"="+
-(g.key&&g.expression?e[1]:e[2]))});!c.length&&g.key&&c.push(g.key+"=");return c.join("&")},toArray:function(g){var d=this._getItemsAsjQuery(g&&g.connected),c=[];g=g||{};d.each(function(){c.push(a(g.item||this).attr(g.attribute||"id")||"")});return c},_intersectsWith:function(g){var d=this.positionAbs.left,c=d+this.helperProportions.width,e=this.positionAbs.top,f=e+this.helperProportions.height,i=g.left,b=i+g.width,h=g.top,k=h+g.height,l=this.offset.click.top,j=this.offset.click.left;return this.options.tolerance==
-"pointer"||this.options.forcePointerForContainers||this.options.tolerance!="pointer"&&this.helperProportions[this.floating?"width":"height"]>g[this.floating?"width":"height"]?e+l>h&&e+l<k&&d+j>i&&d+j<b:i<d+this.helperProportions.width/2&&c-this.helperProportions.width/2<b&&h<e+this.helperProportions.height/2&&f-this.helperProportions.height/2<k},_intersectsWithPointer:function(g){var d=a.ui.isOverAxis(this.positionAbs.top+this.offset.click.top,g.top,g.height);g=a.ui.isOverAxis(this.positionAbs.left+
-this.offset.click.left,g.left,g.width);d=d&&g;g=this._getDragVerticalDirection();var c=this._getDragHorizontalDirection();if(!d)return false;return this.floating?c&&c=="right"||g=="down"?2:1:g&&(g=="down"?2:1)},_intersectsWithSides:function(g){var d=a.ui.isOverAxis(this.positionAbs.top+this.offset.click.top,g.top+g.height/2,g.height);g=a.ui.isOverAxis(this.positionAbs.left+this.offset.click.left,g.left+g.width/2,g.width);var c=this._getDragVerticalDirection(),e=this._getDragHorizontalDirection();
-return this.floating&&e?e=="right"&&g||e=="left"&&!g:c&&(c=="down"&&d||c=="up"&&!d)},_getDragVerticalDirection:function(){var g=this.positionAbs.top-this.lastPositionAbs.top;return g!=0&&(g>0?"down":"up")},_getDragHorizontalDirection:function(){var g=this.positionAbs.left-this.lastPositionAbs.left;return g!=0&&(g>0?"right":"left")},refresh:function(g){this._refreshItems(g);this.refreshPositions();return this},_connectWith:function(){var g=this.options;return g.connectWith.constructor==String?[g.connectWith]:
-g.connectWith},_getItemsAsjQuery:function(g){var d=[],c=[],e=this._connectWith();if(e&&g)for(g=e.length-1;g>=0;g--)for(var f=a(e[g]),i=f.length-1;i>=0;i--){var b=a.data(f[i],this.widgetName);if(b&&b!=this&&!b.options.disabled)c.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])}c.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(g=c.length-1;g>=0;g--)c[g][0].each(function(){d.push(this)});return a(d)},_removeCurrentsFromItems:function(){for(var g=this.currentItem.find(":data("+this.widgetName+"-item)"),d=0;d<this.items.length;d++)for(var c=0;c<g.length;c++)g[c]==this.items[d].item[0]&&this.items.splice(d,1)},_refreshItems:function(g){this.items=[];this.containers=[this];var d=this.items,c=[[a.isFunction(this.options.items)?
-this.options.items.call(this.element[0],g,{item:this.currentItem}):a(this.options.items,this.element),this]],e=this._connectWith();if(e)for(var f=e.length-1;f>=0;f--)for(var i=a(e[f]),b=i.length-1;b>=0;b--){var h=a.data(i[b],this.widgetName);if(h&&h!=this&&!h.options.disabled){c.push([a.isFunction(h.options.items)?h.options.items.call(h.element[0],g,{item:this.currentItem}):a(h.options.items,h.element),h]);this.containers.push(h)}}for(f=c.length-1;f>=0;f--){g=c[f][1];e=c[f][0];b=0;for(i=e.length;b<
-i;b++){h=a(e[b]);h.data(this.widgetName+"-item",g);d.push({item:h,instance:g,width:0,height:0,left:0,top:0})}}},refreshPositions:function(g){if(this.offsetParent&&this.helper)this.offset.parent=this._getParentOffset();for(var d=this.items.length-1;d>=0;d--){var c=this.items[d];if(!(c.instance!=this.currentContainer&&this.currentContainer&&c.item[0]!=this.currentItem[0])){var e=this.options.toleranceElement?a(this.options.toleranceElement,c.item):c.item;if(!g){c.width=e.outerWidth();c.height=e.outerHeight()}e=
-e.offset();c.left=e.left;c.top=e.top}}if(this.options.custom&&this.options.custom.refreshContainers)this.options.custom.refreshContainers.call(this);else for(d=this.containers.length-1;d>=0;d--){e=this.containers[d].element.offset();this.containers[d].containerCache.left=e.left;this.containers[d].containerCache.top=e.top;this.containers[d].containerCache.width=this.containers[d].element.outerWidth();this.containers[d].containerCache.height=this.containers[d].element.outerHeight()}return this},_createPlaceholder:function(g){var d=
-g||this,c=d.options;if(!c.placeholder||c.placeholder.constructor==String){var e=c.placeholder;c.placeholder={element:function(){var f=a(document.createElement(d.currentItem[0].nodeName)).addClass(e||d.currentItem[0].className+" ui-sortable-placeholder").removeClass("ui-sortable-helper")[0];if(!e)f.style.visibility="hidden";return f},update:function(f,i){if(!(e&&!c.forcePlaceholderSize)){i.height()||i.height(d.currentItem.innerHeight()-parseInt(d.currentItem.css("paddingTop")||0,10)-parseInt(d.currentItem.css("paddingBottom")||
-0,10));i.width()||i.width(d.currentItem.innerWidth()-parseInt(d.currentItem.css("paddingLeft")||0,10)-parseInt(d.currentItem.css("paddingRight")||0,10))}}}}d.placeholder=a(c.placeholder.element.call(d.element,d.currentItem));d.currentItem.after(d.placeholder);c.placeholder.update(d,d.placeholder)},_contactContainers:function(g){for(var d=null,c=null,e=this.containers.length-1;e>=0;e--)if(!a.contains(this.currentItem[0],this.containers[e].element[0]))if(this._intersectsWith(this.containers[e].containerCache)){if(!(d&&
-a.contains(this.containers[e].element[0],d.element[0]))){d=this.containers[e];c=e}}else if(this.containers[e].containerCache.over){this.containers[e]._trigger("out",g,this._uiHash(this));this.containers[e].containerCache.over=0}if(d)if(this.containers.length===1){this.containers[c]._trigger("over",g,this._uiHash(this));this.containers[c].containerCache.over=1}else if(this.currentContainer!=this.containers[c]){d=1E4;e=null;for(var f=this.positionAbs[this.containers[c].floating?"left":"top"],i=this.items.length-
-1;i>=0;i--)if(a.contains(this.containers[c].element[0],this.items[i].item[0])){var b=this.items[i][this.containers[c].floating?"left":"top"];if(Math.abs(b-f)<d){d=Math.abs(b-f);e=this.items[i]}}if(e||this.options.dropOnEmpty){this.currentContainer=this.containers[c];e?this._rearrange(g,e,null,true):this._rearrange(g,null,this.containers[c].element,true);this._trigger("change",g,this._uiHash());this.containers[c]._trigger("change",g,this._uiHash(this));this.options.placeholder.update(this.currentContainer,
-this.placeholder);this.containers[c]._trigger("over",g,this._uiHash(this));this.containers[c].containerCache.over=1}}},_createHelper:function(g){var d=this.options;g=a.isFunction(d.helper)?a(d.helper.apply(this.element[0],[g,this.currentItem])):d.helper=="clone"?this.currentItem.clone():this.currentItem;g.parents("body").length||a(d.appendTo!="parent"?d.appendTo:this.currentItem[0].parentNode)[0].appendChild(g[0]);if(g[0]==this.currentItem[0])this._storedCSS={width:this.currentItem[0].style.width,
-height:this.currentItem[0].style.height,position:this.currentItem.css("position"),top:this.currentItem.css("top"),left:this.currentItem.css("left")};if(g[0].style.width==""||d.forceHelperSize)g.width(this.currentItem.width());if(g[0].style.height==""||d.forceHelperSize)g.height(this.currentItem.height());return g},_adjustOffsetFromHelper:function(g){if(typeof g=="string")g=g.split(" ");if(a.isArray(g))g={left:+g[0],top:+g[1]||0};if("left"in g)this.offset.click.left=g.left+this.margins.left;if("right"in
-g)this.offset.click.left=this.helperProportions.width-g.right+this.margins.left;if("top"in g)this.offset.click.top=g.top+this.margins.top;if("bottom"in g)this.offset.click.top=this.helperProportions.height-g.bottom+this.margins.top},_getParentOffset:function(){this.offsetParent=this.helper.offsetParent();var g=this.offsetParent.offset();if(this.cssPosition=="absolute"&&this.scrollParent[0]!=document&&a.contains(this.scrollParent[0],this.offsetParent[0])){g.left+=this.scrollParent.scrollLeft();g.top+=
-this.scrollParent.scrollTop()}if(this.offsetParent[0]==document.body||this.offsetParent[0].tagName&&this.offsetParent[0].tagName.toLowerCase()=="html"&&a.browser.msie)g={top:0,left:0};return{top:g.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:g.left+(parseInt(this.offsetParent.css("borderLeftWidth"),10)||0)}},_getRelativeOffset:function(){if(this.cssPosition=="relative"){var g=this.currentItem.position();return{top:g.top-(parseInt(this.helper.css("top"),10)||0)+this.scrollParent.scrollTop(),
-left:g.left-(parseInt(this.helper.css("left"),10)||0)+this.scrollParent.scrollLeft()}}else return{top:0,left:0}},_cacheMargins:function(){this.margins={left:parseInt(this.currentItem.css("marginLeft"),10)||0,top:parseInt(this.currentItem.css("marginTop"),10)||0}},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()}},_setContainment:function(){var g=this.options;if(g.containment=="parent")g.containment=this.helper[0].parentNode;
-if(g.containment=="document"||g.containment=="window")this.containment=[0-this.offset.relative.left-this.offset.parent.left,0-this.offset.relative.top-this.offset.parent.top,a(g.containment=="document"?document:window).width()-this.helperProportions.width-this.margins.left,(a(g.containment=="document"?document:window).height()||document.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top];if(!/^(document|window|parent)$/.test(g.containment)){var d=a(g.containment)[0];g=a(g.containment).offset();
-var c=a(d).css("overflow")!="hidden";this.containment=[g.left+(parseInt(a(d).css("borderLeftWidth"),10)||0)+(parseInt(a(d).css("paddingLeft"),10)||0)-this.margins.left,g.top+(parseInt(a(d).css("borderTopWidth"),10)||0)+(parseInt(a(d).css("paddingTop"),10)||0)-this.margins.top,g.left+(c?Math.max(d.scrollWidth,d.offsetWidth):d.offsetWidth)-(parseInt(a(d).css("borderLeftWidth"),10)||0)-(parseInt(a(d).css("paddingRight"),10)||0)-this.helperProportions.width-this.margins.left,g.top+(c?Math.max(d.scrollHeight,
-d.offsetHeight):d.offsetHeight)-(parseInt(a(d).css("borderTopWidth"),10)||0)-(parseInt(a(d).css("paddingBottom"),10)||0)-this.helperProportions.height-this.margins.top]}},_convertPositionTo:function(g,d){if(!d)d=this.position;var c=g=="absolute"?1:-1,e=this.cssPosition=="absolute"&&!(this.scrollParent[0]!=document&&a.contains(this.scrollParent[0],this.offsetParent[0]))?this.offsetParent:this.scrollParent,f=/(html|body)/i.test(e[0].tagName);return{top:d.top+this.offset.relative.top*c+this.offset.parent.top*
-c-(a.browser.safari&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollTop():f?0:e.scrollTop())*c),left:d.left+this.offset.relative.left*c+this.offset.parent.left*c-(a.browser.safari&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollLeft():f?0:e.scrollLeft())*c)}},_generatePosition:function(g){var d=this.options,c=this.cssPosition=="absolute"&&!(this.scrollParent[0]!=document&&a.contains(this.scrollParent[0],this.offsetParent[0]))?this.offsetParent:
-this.scrollParent,e=/(html|body)/i.test(c[0].tagName);if(this.cssPosition=="relative"&&!(this.scrollParent[0]!=document&&this.scrollParent[0]!=this.offsetParent[0]))this.offset.relative=this._getRelativeOffset();var f=g.pageX,i=g.pageY;if(this.originalPosition){if(this.containment){if(g.pageX-this.offset.click.left<this.containment[0])f=this.containment[0]+this.offset.click.left;if(g.pageY-this.offset.click.top<this.containment[1])i=this.containment[1]+this.offset.click.top;if(g.pageX-this.offset.click.left>
-this.containment[2])f=this.containment[2]+this.offset.click.left;if(g.pageY-this.offset.click.top>this.containment[3])i=this.containment[3]+this.offset.click.top}if(d.grid){i=this.originalPageY+Math.round((i-this.originalPageY)/d.grid[1])*d.grid[1];i=this.containment?!(i-this.offset.click.top<this.containment[1]||i-this.offset.click.top>this.containment[3])?i:!(i-this.offset.click.top<this.containment[1])?i-d.grid[1]:i+d.grid[1]:i;f=this.originalPageX+Math.round((f-this.originalPageX)/d.grid[0])*
-d.grid[0];f=this.containment?!(f-this.offset.click.left<this.containment[0]||f-this.offset.click.left>this.containment[2])?f:!(f-this.offset.click.left<this.containment[0])?f-d.grid[0]:f+d.grid[0]:f}}return{top:i-this.offset.click.top-this.offset.relative.top-this.offset.parent.top+(a.browser.safari&&this.cssPosition=="fixed"?0:this.cssPosition=="fixed"?-this.scrollParent.scrollTop():e?0:c.scrollTop()),left:f-this.offset.click.left-this.offset.relative.left-this.offset.parent.left+(a.browser.safari&&
-this.cssPosition=="fixed"?0:this.cssPosition=="fixed"?-this.scrollParent.scrollLeft():e?0:c.scrollLeft())}},_rearrange:function(g,d,c,e){c?c[0].appendChild(this.placeholder[0]):d.item[0].parentNode.insertBefore(this.placeholder[0],this.direction=="down"?d.item[0]:d.item[0].nextSibling);this.counter=this.counter?++this.counter:1;var f=this,i=this.counter;window.setTimeout(function(){i==f.counter&&f.refreshPositions(!e)},0)},_clear:function(g,d){this.reverting=false;var c=[];!this._noFinalSort&&this.currentItem.parent().length&&
-this.placeholder.before(this.currentItem);this._noFinalSort=null;if(this.helper[0]==this.currentItem[0]){for(var e in this._storedCSS)if(this._storedCSS[e]=="auto"||this._storedCSS[e]=="static")this._storedCSS[e]="";this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper")}else this.currentItem.show();this.fromOutside&&!d&&c.push(function(f){this._trigger("receive",f,this._uiHash(this.fromOutside))});if((this.fromOutside||this.domPosition.prev!=this.currentItem.prev().not(".ui-sortable-helper")[0]||
-this.domPosition.parent!=this.currentItem.parent()[0])&&!d)c.push(function(f){this._trigger("update",f,this._uiHash())});if(!a.contains(this.element[0],this.currentItem[0])){d||c.push(function(f){this._trigger("remove",f,this._uiHash())});for(e=this.containers.length-1;e>=0;e--)if(a.contains(this.containers[e].element[0],this.currentItem[0])&&!d){c.push(function(f){return function(i){f._trigger("receive",i,this._uiHash(this))}}.call(this,this.containers[e]));c.push(function(f){return function(i){f._trigger("update",
-i,this._uiHash(this))}}.call(this,this.containers[e]))}}for(e=this.containers.length-1;e>=0;e--){d||c.push(function(f){return function(i){f._trigger("deactivate",i,this._uiHash(this))}}.call(this,this.containers[e]));if(this.containers[e].containerCache.over){c.push(function(f){return function(i){f._trigger("out",i,this._uiHash(this))}}.call(this,this.containers[e]));this.containers[e].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(!d){this._trigger("beforeStop",g,this._uiHash());for(e=0;e<c.length;e++)c[e].call(this,g);this._trigger("stop",g,this._uiHash())}return false}d||this._trigger("beforeStop",g,this._uiHash());this.placeholder[0].parentNode.removeChild(this.placeholder[0]);this.helper[0]!=this.currentItem[0]&&this.helper.remove();this.helper=null;if(!d){for(e=
-0;e<c.length;e++)c[e].call(this,g);this._trigger("stop",g,this._uiHash())}this.fromOutside=false;return true},_trigger:function(){a.Widget.prototype._trigger.apply(this,arguments)===false&&this.cancel()},_uiHash:function(g){var d=g||this;return{helper:d.helper,placeholder:d.placeholder||a([]),position:d.position,originalPosition:d.originalPosition,offset:d.positionAbs,item:d.currentItem,sender:g?g.element:null}}})})(jQuery);
-jQuery.effects||function(a,g){function d(l){var j;if(l&&l.constructor===Array&&l.length===3)return l;if(j=/rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/.exec(l))return[parseInt(j[1],10),parseInt(j[2],10),parseInt(j[3],10)];if(j=/rgb\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*\)/.exec(l))return[parseFloat(j[1])*2.55,parseFloat(j[2])*2.55,parseFloat(j[3])*2.55];if(j=/#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/.exec(l))return[parseInt(j[1],
-16),parseInt(j[2],16),parseInt(j[3],16)];if(j=/#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/.exec(l))return[parseInt(j[1]+j[1],16),parseInt(j[2]+j[2],16),parseInt(j[3]+j[3],16)];if(/rgba\(0, 0, 0, 0\)/.exec(l))return b.transparent;return b[a.trim(l).toLowerCase()]}function c(){var l=this.ownerDocument.defaultView?this.ownerDocument.defaultView.getComputedStyle(this,null):this.currentStyle,j={},m,n;if(l&&l.length&&l[0]&&l[l[0]])for(n=l.length;n--;){m=l[n];if(typeof l[m]==="string")j[a.camelCase(m)]=l[m]}else for(m in l)if(typeof l[m]===
-"string")j[m]=l[m];return j}function e(l,j,m,n){if(a.isPlainObject(l))return l;l={effect:l};if(j===g)j={};if(a.isFunction(j)){n=j;m=null;j={}}if(a.type(j)==="number"||a.fx.speeds[j]){n=m;m=j;j={}}if(a.isFunction(m)){n=m;m=null}j&&a.extend(l,j);m=m||j.duration;l.duration=a.fx.off?0:typeof m==="number"?m:m in a.fx.speeds?a.fx.speeds[m]:a.fx.speeds._default;l.complete=n||j.complete;return l}function f(l){if(!l||typeof l==="number"||a.fx.speeds[l])return true;if(typeof l==="string"&&!a.effects.effect[l]){if(i&&
-a.effects[l])return false;return true}return false}var i=a.uiBackCompat!==false;a.effects={effect:{}};a.each(["backgroundColor","borderBottomColor","borderLeftColor","borderRightColor","borderTopColor","borderColor","color","outlineColor"],function(l,j){a.fx.step[j]=function(m){if(!m.colorInit){var n;n=m.elem;var o=j,p;do{p=a.curCSS(n,o);if(p!=""&&p!=="transparent"||a.nodeName(n,"body"))break;o="backgroundColor"}while(n=n.parentNode);n=d(p);m.start=n;m.end=d(m.end);m.colorInit=true}m.elem.style[j]=
-"rgb("+Math.max(Math.min(parseInt(m.pos*(m.end[0]-m.start[0])+m.start[0],10),255),0)+","+Math.max(Math.min(parseInt(m.pos*(m.end[1]-m.start[1])+m.start[1],10),255),0)+","+Math.max(Math.min(parseInt(m.pos*(m.end[2]-m.start[2])+m.start[2],10),255),0)+")"}});var b={aqua:[0,255,255],azure:[240,255,255],beige:[245,245,220],black:[0,0,0],blue:[0,0,255],brown:[165,42,42],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgrey:[169,169,169],darkgreen:[0,100,0],darkkhaki:[189,183,107],darkmagenta:[139,
-0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkviolet:[148,0,211],fuchsia:[255,0,255],gold:[255,215,0],green:[0,128,0],indigo:[75,0,130],khaki:[240,230,140],lightblue:[173,216,230],lightcyan:[224,255,255],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightyellow:[255,255,224],lime:[0,255,0],magenta:[255,0,255],maroon:[128,0,0],navy:[0,0,128],olive:[128,128,0],orange:[255,165,0],pink:[255,192,
-203],purple:[128,0,128],violet:[128,0,128],red:[255,0,0],silver:[192,192,192],white:[255,255,255],yellow:[255,255,0],transparent:[255,255,255]},h=["add","remove","toggle"],k={border:1,borderBottom:1,borderColor:1,borderLeft:1,borderRight:1,borderTop:1,borderWidth:1,margin:1,padding:1};a.each(["borderLeftStyle","borderRightStyle","borderBottomStyle","borderTopStyle"],function(l,j){a.fx.step[j]=function(m){if(m.end!=="none"&&!m.setAttr||m.pos===1&&!m.setAttr){jQuery.style(m.elem,j,m.end);m.setAttr=
-true}}});a.effects.animateClass=function(l,j,m,n){var o=a.speed(j,m,n);return this.queue(function(){var p=a(this),q=p.attr("class")||"",u,s=o.children?p.find("*").andSelf():p;s=s.map(function(){var r=a(this);return{el:r,originalStyleAttr:r.attr("style")||" ",start:c.call(this)}});a.each(h,function(r,t){if(l[t])p[t+"Class"](l[t])});u=p.attr("class");s=s.map(function(){this.end=c.call(this.el[0]);var r=this.start,t=this.end,v={},w,x;for(w in t){x=t[w];if(r[w]!=x)if(!k[w])if(a.fx.step[w]||!isNaN(parseFloat(x)))v[w]=
-x}this.diff=v;return this});p.attr("class",q);s=s.map(function(){var r=this,t=a.Deferred();this.el.animate(this.diff,{duration:o.duration,easing:o.easing,queue:false,complete:function(){t.resolve(r)}});return t.promise()});a.when.apply(a,s.get()).done(function(){p.attr("class",u);a.each(arguments,function(){if(typeof this.el.attr("style")==="object"){this.el.attr("style").cssText="";this.el.attr("style").cssText=this.originalStyleAttr}else this.el.attr("style",this.originalStyleAttr)});o.complete.call(p[0])})})};
-a.fn.extend({_addClass:a.fn.addClass,addClass:function(l,j,m,n){return j?a.effects.animateClass.apply(this,[{add:l},j,m,n]):this._addClass(l)},_removeClass:a.fn.removeClass,removeClass:function(l,j,m,n){return j?a.effects.animateClass.apply(this,[{remove:l},j,m,n]):this._removeClass(l)},_toggleClass:a.fn.toggleClass,toggleClass:function(l,j,m,n,o){return typeof j==="boolean"||j===g?m?a.effects.animateClass.apply(this,[j?{add:l}:{remove:l},m,n,o]):this._toggleClass(l,j):a.effects.animateClass.apply(this,
-[{toggle:l},j,m,n])},switchClass:function(l,j,m,n,o){return a.effects.animateClass.apply(this,[{add:j,remove:l},m,n,o])}});a.extend(a.effects,{version:"1.9pre",save:function(l,j){for(var m=0;m<j.length;m++)j[m]!==null&&l.data("ec.storage."+j[m],l[0].style[j[m]])},restore:function(l,j){for(var m=0;m<j.length;m++)j[m]!==null&&l.css(j[m],l.data("ec.storage."+j[m]))},setMode:function(l,j){if(j==="toggle")j=l.is(":hidden")?"show":"hide";return j},getBaseline:function(l,j){var m,n;switch(l[0]){case "top":m=
-0;break;case "middle":m=0.5;break;case "bottom":m=1;break;default:m=l[0]/j.height}switch(l[1]){case "left":n=0;break;case "center":n=0.5;break;case "right":n=1;break;default:n=l[1]/j.width}return{x:n,y:m}},createWrapper:function(l){if(l.parent().is(".ui-effects-wrapper"))return l.parent();var j={width:l.outerWidth(true),height:l.outerHeight(true),"float":l.css("float")},m=a("<div></div>").addClass("ui-effects-wrapper").css({fontSize:"100%",background:"transparent",border:"none",margin:0,padding:0}),
-n={width:l.width(),height:l.height()},o=document.activeElement;l.wrap(m);if(l[0]===o||a.contains(l[0],o))a(o).focus();m=l.parent();if(l.css("position")==="static"){m.css({position:"relative"});l.css({position:"relative"})}else{a.extend(j,{position:l.css("position"),zIndex:l.css("z-index")});a.each(["top","left","bottom","right"],function(p,q){j[q]=l.css(q);if(isNaN(parseInt(j[q],10)))j[q]="auto"});l.css({position:"relative",top:0,left:0,right:"auto",bottom:"auto"})}l.css(n);return m.css(j).show()},
-removeWrapper:function(l){var j=document.activeElement;if(l.parent().is(".ui-effects-wrapper")){l.parent().replaceWith(l);if(l[0]===j||a.contains(l[0],j))a(j).focus()}return l},setTransition:function(l,j,m,n){n=n||{};a.each(j,function(o,p){var q=l.cssUnit(p);if(q[0]>0)n[p]=q[0]*m+q[1]});return n}});a.fn.extend({effect:function(){function l(q){function u(){a.isFunction(r)&&r.call(s[0]);a.isFunction(q)&&q()}var s=a(this),r=j.complete,t=j.mode;(s.is(":hidden")?t==="hide":t==="show")?u():o.call(s[0],
-j,u)}var j=e.apply(this,arguments),m=j.mode,n=j.queue,o=a.effects.effect[j.effect],p=!o&&i&&a.effects[j.effect];if(a.fx.off||!(o||p))return m?this[m](j.duration,j.complete):this.each(function(){j.complete&&j.complete.call(this)});return o?n===false?this.each(l):this.queue(n||"fx",l):p.call(this,{options:j,duration:j.duration,callback:j.complete,mode:j.mode})},_show:a.fn.show,show:function(l){if(f(l))return this._show.apply(this,arguments);else{var j=e.apply(this,arguments);j.mode="show";return this.effect.call(this,
-j)}},_hide:a.fn.hide,hide:function(l){if(f(l))return this._hide.apply(this,arguments);else{var j=e.apply(this,arguments);j.mode="hide";return this.effect.call(this,j)}},__toggle:a.fn.toggle,toggle:function(l){if(f(l)||typeof l==="boolean"||a.isFunction(l))return this.__toggle.apply(this,arguments);else{var j=e.apply(this,arguments);j.mode="toggle";return this.effect.call(this,j)}},cssUnit:function(l){var j=this.css(l),m=[];a.each(["em","px","%","pt"],function(n,o){if(j.indexOf(o)>0)m=[parseFloat(j),
-o]});return m}});a.easing.jswing=a.easing.swing;a.extend(a.easing,{def:"easeOutQuad",swing:function(l,j,m,n,o){return a.easing[a.easing.def](l,j,m,n,o)},easeInQuad:function(l,j,m,n,o){return n*(j/=o)*j+m},easeOutQuad:function(l,j,m,n,o){return-n*(j/=o)*(j-2)+m},easeInOutQuad:function(l,j,m,n,o){if((j/=o/2)<1)return n/2*j*j+m;return-n/2*(--j*(j-2)-1)+m},easeInCubic:function(l,j,m,n,o){return n*(j/=o)*j*j+m},easeOutCubic:function(l,j,m,n,o){return n*((j=j/o-1)*j*j+1)+m},easeInOutCubic:function(l,j,
-m,n,o){if((j/=o/2)<1)return n/2*j*j*j+m;return n/2*((j-=2)*j*j+2)+m},easeInQuart:function(l,j,m,n,o){return n*(j/=o)*j*j*j+m},easeOutQuart:function(l,j,m,n,o){return-n*((j=j/o-1)*j*j*j-1)+m},easeInOutQuart:function(l,j,m,n,o){if((j/=o/2)<1)return n/2*j*j*j*j+m;return-n/2*((j-=2)*j*j*j-2)+m},easeInQuint:function(l,j,m,n,o){return n*(j/=o)*j*j*j*j+m},easeOutQuint:function(l,j,m,n,o){return n*((j=j/o-1)*j*j*j*j+1)+m},easeInOutQuint:function(l,j,m,n,o){if((j/=o/2)<1)return n/2*j*j*j*j*j+m;return n/2*
-((j-=2)*j*j*j*j+2)+m},easeInSine:function(l,j,m,n,o){return-n*Math.cos(j/o*(Math.PI/2))+n+m},easeOutSine:function(l,j,m,n,o){return n*Math.sin(j/o*(Math.PI/2))+m},easeInOutSine:function(l,j,m,n,o){return-n/2*(Math.cos(Math.PI*j/o)-1)+m},easeInExpo:function(l,j,m,n,o){return j==0?m:n*Math.pow(2,10*(j/o-1))+m},easeOutExpo:function(l,j,m,n,o){return j==o?m+n:n*(-Math.pow(2,-10*j/o)+1)+m},easeInOutExpo:function(l,j,m,n,o){if(j==0)return m;if(j==o)return m+n;if((j/=o/2)<1)return n/2*Math.pow(2,10*(j-1))+
-m;return n/2*(-Math.pow(2,-10*--j)+2)+m},easeInCirc:function(l,j,m,n,o){return-n*(Math.sqrt(1-(j/=o)*j)-1)+m},easeOutCirc:function(l,j,m,n,o){return n*Math.sqrt(1-(j=j/o-1)*j)+m},easeInOutCirc:function(l,j,m,n,o){if((j/=o/2)<1)return-n/2*(Math.sqrt(1-j*j)-1)+m;return n/2*(Math.sqrt(1-(j-=2)*j)+1)+m},easeInElastic:function(l,j,m,n,o){l=1.70158;var p=o*0.3,q=n;if(j==0)return m;if((j/=o)==1)return m+n;if(q<Math.abs(n)){q=n;l=p/4}else l=p/(2*Math.PI)*Math.asin(n/q);return-(q*Math.pow(2,10*(j-=1))*Math.sin((j*
-o-l)*2*Math.PI/p))+m},easeOutElastic:function(l,j,m,n,o){l=1.70158;var p=o*0.3,q=n;if(j==0)return m;if((j/=o)==1)return m+n;if(q<Math.abs(n)){q=n;l=p/4}else l=p/(2*Math.PI)*Math.asin(n/q);return q*Math.pow(2,-10*j)*Math.sin((j*o-l)*2*Math.PI/p)+n+m},easeInOutElastic:function(l,j,m,n,o){l=1.70158;var p=o*0.3*1.5,q=n;if(j==0)return m;if((j/=o/2)==2)return m+n;if(q<Math.abs(n)){q=n;l=p/4}else l=p/(2*Math.PI)*Math.asin(n/q);if(j<1)return-0.5*q*Math.pow(2,10*(j-=1))*Math.sin((j*o-l)*2*Math.PI/p)+m;return q*
-Math.pow(2,-10*(j-=1))*Math.sin((j*o-l)*2*Math.PI/p)*0.5+n+m},easeInBack:function(l,j,m,n,o,p){if(p==g)p=1.70158;return n*(j/=o)*j*((p+1)*j-p)+m},easeOutBack:function(l,j,m,n,o,p){if(p==g)p=1.70158;return n*((j=j/o-1)*j*((p+1)*j+p)+1)+m},easeInOutBack:function(l,j,m,n,o,p){if(p==g)p=1.70158;if((j/=o/2)<1)return n/2*j*j*(((p*=1.525)+1)*j-p)+m;return n/2*((j-=2)*j*(((p*=1.525)+1)*j+p)+2)+m},easeInBounce:function(l,j,m,n,o){return n-a.easing.easeOutBounce(l,o-j,0,n,o)+m},easeOutBounce:function(l,j,m,
-n,o){return(j/=o)<1/2.75?n*7.5625*j*j+m:j<2/2.75?n*(7.5625*(j-=1.5/2.75)*j+0.75)+m:j<2.5/2.75?n*(7.5625*(j-=2.25/2.75)*j+0.9375)+m:n*(7.5625*(j-=2.625/2.75)*j+0.984375)+m},easeInOutBounce:function(l,j,m,n,o){if(j<o/2)return a.easing.easeInBounce(l,j*2,0,n,o)*0.5+m;return a.easing.easeOutBounce(l,j*2-o,0,n,o)*0.5+n*0.5+m}})}(jQuery);
-(function(a){var g=/up|down|vertical/,d=/up|left|vertical|horizontal/;a.effects.effect.blind=function(c,e){var f=a(this),i=["position","top","bottom","left","right","height","width"],b=a.effects.setMode(f,c.mode||"hide"),h=c.direction||"up",k=g.test(h),l=k?"height":"width",j=k?"top":"left";h=d.test(h);var m={},n=b==="show",o,p;f.parent().is(".ui-effects-wrapper")?a.effects.save(f.parent(),i):a.effects.save(f,i);f.show();p=parseInt(f.css("top"),10);o=a.effects.createWrapper(f).css({overflow:"hidden"});
-p=k?o[l]()+p:o[l]();m[l]=n?p:0;if(!h){f.css(k?"bottom":"right",0).css(k?"top":"left","").css({position:"absolute"});m[j]=n?0:p}if(n){o.css(l,0);h||o.css(j,p)}o.animate(m,{duration:c.duration,easing:c.easing,queue:false,complete:function(){b==="hide"&&f.hide();a.effects.restore(f,i);a.effects.removeWrapper(f);e()}})}})(jQuery);
-(function(a){a.effects.effect.bounce=function(g,d){var c=a(this),e=["position","top","bottom","left","right","height","width"],f=a.effects.setMode(c,g.mode||"effect"),i=f==="hide",b=f==="show",h=g.direction||"up";f=g.distance;var k=g.times||5,l=k*2+(b||i?1:0),j=g.duration/l,m=g.easing,n=h==="up"||h==="down"?"top":"left";h=h==="up"||h==="left";var o,p,q=c.queue(),u=q.length;if(b||i)e.push("opacity");a.effects.save(c,e);c.show();a.effects.createWrapper(c);f||(f=c[n==="top"?"outerHeight":"outerWidth"]()/
-3);if(b){p={opacity:1};p[n]=0;c.css("opacity",0).css(n,h?-f*2:f*2).animate(p,j,m)}if(i)f/=Math.pow(2,k-1);p={};for(b=p[n]=0;b<k;b++){o={};o[n]=(h?"-=":"+=")+f;c.animate(o,j,m).animate(p,j,m);f=i?f*2:f/2}if(i){o={opacity:0};o[n]=(h?"-=":"+=")+f;c.animate(o,j,m)}c.queue(function(){i&&c.hide();a.effects.restore(c,e);a.effects.removeWrapper(c);d()});u>1&&q.splice.apply(q,[1,0].concat(q.splice(u,l+1)));c.dequeue()}})(jQuery);
-(function(a){a.effects.effect.clip=function(g,d){var c=a(this),e=["position","top","bottom","left","right","height","width"],f=a.effects.setMode(c,g.mode||"hide")==="show",i=(g.direction||"vertical")==="vertical",b=i?"height":"width";i=i?"top":"left";var h={},k,l;a.effects.save(c,e);c.show();k=a.effects.createWrapper(c).css({overflow:"hidden"});k=c[0].tagName==="IMG"?k:c;l=k[b]();if(f){k.css(b,0);k.css(i,l/2)}h[b]=f?l:0;h[i]=f?0:l/2;k.animate(h,{queue:false,duration:g.duration,easing:g.easing,complete:function(){f||
-c.hide();a.effects.restore(c,e);a.effects.removeWrapper(c);d()}})}})(jQuery);
-(function(a){a.effects.effect.drop=function(g,d){var c=a(this),e=["position","top","bottom","left","right","opacity","height","width"],f=a.effects.setMode(c,g.mode||"hide"),i=f==="show",b=g.direction||"left",h=b==="up"||b==="down"?"top":"left";b=b==="up"||b==="left"?"pos":"neg";var k={opacity:i?1:0},l;a.effects.save(c,e);c.show();a.effects.createWrapper(c);l=g.distance||c[h=="top"?"outerHeight":"outerWidth"]({margin:true})/2;if(i)c.css("opacity",0).css(h,b=="pos"?-l:l);k[h]=(i?b==="pos"?"+=":"-=":
-b==="pos"?"-=":"+=")+l;c.animate(k,{queue:false,duration:g.duration,easing:g.easing,complete:function(){f=="hide"&&c.hide();a.effects.restore(c,e);a.effects.removeWrapper(c);d()}})}})(jQuery);
-(function(a){a.effects.effect.explode=function(g,d){function c(){j.push(this);if(j.length==e*f){i.css({visibility:"visible"});a(j).remove();b||i.hide();d()}}var e=g.pieces?Math.round(Math.sqrt(g.pieces)):3,f=e,i=a(this),b=a.effects.setMode(i,g.mode||"hide")==="show",h=i.show().css("visibility","hidden").offset(),k=Math.ceil(i.outerWidth()/f),l=Math.ceil(i.outerHeight()/e),j=[],m,n,o,p,q,u;for(m=0;m<e;m++){p=h.top+m*l;u=m-(e-1)/2;for(n=0;n<f;n++){o=h.left+n*k;q=n-(f-1)/2;i.clone().appendTo("body").wrap("<div></div>").css({position:"absolute",
-visibility:"visible",left:-n*k,top:-m*l}).parent().addClass("ui-effects-explode").css({position:"absolute",overflow:"hidden",width:k,height:l,left:o+(b?q*k:0),top:p+(b?u*l:0),opacity:b?0:1}).animate({left:o+(b?0:q*k),top:p+(b?0:u*l),opacity:b?1:0},g.duration||500,g.easing,c)}}}})(jQuery);
-(function(a){a.effects.effect.fade=function(g,d){var c=a(this),e=a.effects.setMode(c,g.mode||"toggle")==="hide";c.show();c.animate({opacity:e?0:1},{queue:false,duration:g.duration,easing:g.easing,complete:function(){e&&c.hide();d()}})}})(jQuery);
-(function(a){a.effects.effect.fold=function(g,d){var c=a(this),e=["position","top","bottom","left","right","height","width"],f=a.effects.setMode(c,g.mode||"hide"),i=f==="show",b=f==="hide";f=g.size||15;var h=/([0-9]+)%/.exec(f),k=!!g.horizFirst,l=i!=k,j=l?["width","height"]:["height","width"],m=g.duration/2,n,o={},p={};a.effects.save(c,e);c.show();n=a.effects.createWrapper(c).css({overflow:"hidden"});l=l?[n.width(),n.height()]:[n.height(),n.width()];if(h)f=parseInt(h[1],10)/100*l[b?0:1];if(i)n.css(k?
-{height:0,width:f}:{height:f,width:0});o[j[0]]=i?l[0]:f;p[j[1]]=i?l[1]:0;n.animate(o,m,g.easing).animate(p,m,g.easing,function(){b&&c.hide();a.effects.restore(c,e);a.effects.removeWrapper(c);d()})}})(jQuery);
-(function(a){a.effects.effect.highlight=function(g,d){var c=a(this),e=["backgroundImage","backgroundColor","opacity"],f=a.effects.setMode(c,g.mode||"show"),i={backgroundColor:c.css("backgroundColor")};if(f==="hide")i.opacity=0;a.effects.save(c,e);c.show().css({backgroundImage:"none",backgroundColor:g.color||"#ffff99"}).animate(i,{queue:false,duration:g.duration,easing:g.easing,complete:function(){f==="hide"&&c.hide();a.effects.restore(c,e);d()}})}})(jQuery);
-(function(a){a.effects.effect.pulsate=function(g,d){var c=a(this),e=a.effects.setMode(c,g.mode||"show"),f=e==="show",i=e==="hide";e=(g.times||5)*2+(f||e==="hide"?1:0);var b=g.duration/e,h=0,k=c.queue(),l=k.length;if(f||!c.is(":visible")){c.css("opacity",0).show();h=1}for(f=1;f<e;f++){c.animate({opacity:h},b,g.easing);h=1-h}c.animate({opacity:h},b,g.easing);c.queue(function(){i&&c.hide();d()});l>1&&k.splice.apply(k,[1,0].concat(k.splice(l,e+1)));c.dequeue()}})(jQuery);
-(function(a){a.effects.effect.puff=function(g,d){var c=a(this),e=a.effects.setMode(c,g.mode||"hide"),f=e==="hide",i=parseInt(g.percent,10)||150,b=i/100,h={height:c.height(),width:c.width()};a.extend(g,{effect:"scale",queue:false,fade:true,mode:e,complete:d,percent:f?i:100,from:f?h:{height:h.height*b,width:h.width*b}});c.effect(g)};a.effects.effect.scale=function(g,d){var c=a(this),e=a.extend(true,{},g),f=a.effects.setMode(c,g.mode||"effect"),i=parseInt(g.percent,10)||(parseInt(g.percent,10)==0?0:
-f=="hide"?0:100),b=g.direction||"both",h=g.origin,k={height:c.height(),width:c.width(),outerHeight:c.outerHeight(),outerWidth:c.outerWidth()};i={y:b!="horizontal"?i/100:1,x:b!="vertical"?i/100:1};e.effect="size";e.queue=false;e.complete=d;if(f!="effect"){e.origin=h||["middle","center"];e.restore=true}e.from=g.from||(f=="show"?{height:0,width:0}:k);e.to={height:k.height*i.y,width:k.width*i.x,outerHeight:k.outerHeight*i.y,outerWidth:k.outerWidth*i.x};if(e.fade){if(f=="show"){e.from.opacity=0;e.to.opacity=
-1}if(f=="hide"){e.from.opacity=1;e.to.opacity=0}}c.effect(e)};a.effects.effect.size=function(g,d){var c=a(this),e=["position","top","bottom","left","right","width","height","overflow","opacity"],f=["position","top","bottom","left","right","overflow","opacity"],i=["width","height","overflow"],b=["fontSize"],h=["borderTopWidth","borderBottomWidth","paddingTop","paddingBottom"],k=["borderLeftWidth","borderRightWidth","paddingLeft","paddingRight"],l=a.effects.setMode(c,g.mode||"effect"),j=g.restore||
-l!=="effect",m=g.scale||"both",n=g.origin||["middle","center"],o,p,q,u=c.css("position"),s=c.css("bottom")!=="auto"?"bottom":"top";originalHorizontalPositioning=c.css("right")!=="auto"?"right":"left";l==="show"&&c.show();o={height:c.height(),width:c.width(),outerHeight:c.outerHeight(),outerWidth:c.outerWidth()};c.from=g.from||o;c.to=g.to||o;q={from:{y:c.from.height/o.height,x:c.from.width/o.width},to:{y:c.to.height/o.height,x:c.to.width/o.width}};if(m=="box"||m=="both"){if(q.from.y!==q.to.y){e=e.concat(h);
-c.from=a.effects.setTransition(c,h,q.from.y,c.from);c.to=a.effects.setTransition(c,h,q.to.y,c.to)}if(q.from.x!==q.to.x){e=e.concat(k);c.from=a.effects.setTransition(c,k,q.from.x,c.from);c.to=a.effects.setTransition(c,k,q.to.x,c.to)}}if(m=="content"||m=="both")if(q.from.y!==q.to.y){e=e.concat(b);c.from=a.effects.setTransition(c,b,q.from.y,c.from);c.to=a.effects.setTransition(c,b,q.to.y,c.to)}a.effects.save(c,j?e:f);c.show();a.effects.createWrapper(c);c.css("overflow","hidden").css(c.from);if(n){p=
-a.effects.getBaseline(n,o);c.from.top=(o.outerHeight-c.outerHeight())*p.y;c.from.left=(o.outerWidth-c.outerWidth())*p.x;c.to.top=(o.outerHeight-c.to.outerHeight)*p.y;c.to.left=(o.outerWidth-c.to.outerWidth)*p.x}c.css(c.from);if(m=="content"||m=="both"){h=h.concat(["marginTop","marginBottom"]).concat(b);k=k.concat(["marginLeft","marginRight"]);i=e.concat(h).concat(k);c.find("*[width]").each(function(){var r=a(this),t={height:r.height(),width:r.width()};j&&a.effects.save(r,i);r.from={height:t.height*
-q.from.y,width:t.width*q.from.x};r.to={height:t.height*q.to.y,width:t.width*q.to.x};if(q.from.y!=q.to.y){r.from=a.effects.setTransition(r,h,q.from.y,r.from);r.to=a.effects.setTransition(r,h,q.to.y,r.to)}if(q.from.x!=q.to.x){r.from=a.effects.setTransition(r,k,q.from.x,r.from);r.to=a.effects.setTransition(r,k,q.to.x,r.to)}r.css(r.from);r.animate(r.to,g.duration,g.easing,function(){j&&a.effects.restore(r,i)})})}c.animate(c.to,{queue:false,duration:g.duration,easing:g.easing,complete:function(){c.to.opacity===
-0&&c.css("opacity",c.from.opacity);l=="hide"&&c.hide();a.effects.restore(c,j?e:f);j||(u==="static"?c.css({position:"relative",top:c.to.top,left:c.to.left}):a.each([s,originalHorizontalPositioning],function(r,t){c.css(t,function(v,w){var x=parseInt(w,10),C=r?c.to.left:c.to.top,A=r?c.to.outerWidth-c.from.outerWidth:c.to.outerHeight-c.from.outerHeight,y=n[r]===t,D=n[r]==="middle"||n[r]==="center";if(w==="auto")return C+"px";if(!(t=="left"||t=="top"))if(u==="relative")C*=-1;else D||(C-=A*(y?-1:1));return x+
-C+"px"})}));a.effects.removeWrapper(c);d()}})}})(jQuery);
-(function(a){a.effects.effect.shake=function(g,d){var c=a(this),e=["position","top","bottom","left","right","height","width"],f=a.effects.setMode(c,g.mode||"effect"),i=g.direction||"left",b=g.distance||20,h=g.times||3,k=h*2+1,l=g.duration,j=i=="up"||i=="down"?"top":"left",m=i=="up"||i=="left";i={};var n={},o={},p=c.queue(),q=p.length;a.effects.save(c,e);c.show();a.effects.createWrapper(c);i[j]=(m?"-=":"+=")+b;n[j]=(m?"+=":"-=")+b*2;o[j]=(m?"-=":"+=")+b*2;c.animate(i,l,g.easing);for(b=1;b<h;b++)c.animate(n,
-l,g.easing).animate(o,l,g.easing);c.animate(n,l,g.easing).animate(i,l/2,g.easing).queue(function(){f==="hide"&&c.hide();a.effects.restore(c,e);a.effects.removeWrapper(c);d()});q>1&&p.splice.apply(p,[1,0].concat(p.splice(q,k+1)));c.dequeue()}})(jQuery);
-(function(a){a.effects.effect.slide=function(g,d){var c=a(this),e=["position","top","bottom","left","right","width","height"],f=a.effects.setMode(c,g.mode||"show"),i=f==="show",b=g.direction||"left",h=b=="up"||b=="down"?"top":"left";b=b=="up"||b=="left";var k,l={};a.effects.save(c,e);c.show();k=g.distance||c[h==="top"?"outerHeight":"outerWidth"]({margin:true});a.effects.createWrapper(c).css({overflow:"hidden"});if(i)c.css(h,b?isNaN(k)?"-"+k:-k:k);l[h]=(i?b?"+=":"-=":b?"-=":"+=")+k;c.animate(l,{queue:false,
-duration:g.duration,easing:g.easing,complete:function(){f==="hide"&&c.hide();a.effects.restore(c,e);a.effects.removeWrapper(c);d()}})}})(jQuery);
-(function(a){a.effects.effect.transfer=function(g,d){var c=a(this),e=a(g.to),f=e.css("position")==="fixed",i=a("body"),b=f?i.scrollTop():0;i=f?i.scrollLeft():0;var h=e.offset();e={top:h.top-b,left:h.left-i,height:e.innerHeight(),width:e.innerWidth()};h=c.offset();var k=a('<div class="ui-effects-transfer"></div>').appendTo(document.body).addClass(g.className).css({top:h.top-b,left:h.left-i,height:c.innerHeight(),width:c.innerWidth(),position:f?"fixed":"absolute"}).animate(e,g.duration,g.easing,function(){k.remove();
-d()})}})(jQuery);
-(function(a){a.widget("ui.accordion",{version:"1.9pre",options:{active:0,animated:"slide",collapsible:false,event:"click",header:"> li > :first-child,> :not(li):even",heightStyle:"auto",icons:{activeHeader:"ui-icon-triangle-1-s",header:"ui-icon-triangle-1-e"},activate:null,beforeActivate:null},_create:function(){var g=this.options;this.lastToggle={};this.element.addClass("ui-accordion ui-widget ui-helper-reset");this.headers=this.element.find(g.header).addClass("ui-accordion-header ui-helper-reset ui-state-default ui-corner-all");this._hoverable(this.headers);
-this._focusable(this.headers);this.headers.find(":first-child").addClass("ui-accordion-heading");this.headers.next().addClass("ui-accordion-content ui-helper-reset ui-widget-content ui-corner-bottom");if(!g.collapsible&&g.active===false)g.active=0;if(g.active<0)g.active+=this.headers.length;this.active=this._findActive(g.active).addClass("ui-state-default ui-state-active").toggleClass("ui-corner-all").toggleClass("ui-corner-top");this.active.next().addClass("ui-accordion-content-active");this._createIcons();
-this.refresh();this.element.attr("role","tablist");this.headers.attr("role","tab").bind("keydown.accordion",a.proxy(this,"_keydown")).next().attr("role","tabpanel");this.headers.not(this.active).attr({"aria-expanded":"false","aria-selected":"false",tabIndex:-1}).next().hide();this.active.length?this.active.attr({"aria-expanded":"true","aria-selected":"true",tabIndex:0}):this.headers.eq(0).attr("tabIndex",0);a.browser.safari||this.headers.find("a").attr("tabIndex",-1);this._setupEvents(g.event)},_createIcons:function(){var g=
-this.options.icons;if(g){a("<span>").addClass("ui-accordion-header-icon ui-icon "+g.header).prependTo(this.headers);this.active.children(".ui-accordion-header-icon").removeClass(g.header).addClass(g.activeHeader);this.element.addClass("ui-accordion-icons")}},_destroyIcons:function(){this.headers.children(".ui-accordion-header-icon").remove();this.element.removeClass("ui-accordion-icons")},_destroy:function(){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").find("a").removeAttr("tabIndex").end().find(".ui-accordion-heading").removeClass("ui-accordion-heading");
-this._destroyIcons();var g=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");this.options.heightStyle!=="content"&&g.css("height","")},_setOption:function(g,d){if(g==="active")this._activate(d);else{if(g==="event"){this.options.event&&this.headers.unbind(this.options.event+".accordion",this._eventHandler);this._setupEvents(d)}this._super("_setOption",
-g,d);g==="collapsible"&&!d&&this.options.active===false&&this._activate(0);if(g==="icons"){this._destroyIcons();d&&this._createIcons()}g==="disabled"&&this.headers.add(this.headers.next()).toggleClass("ui-accordion-disabled ui-state-disabled",!!d)}},_keydown:function(g){if(!(this.options.disabled||g.altKey||g.ctrlKey)){var d=a.ui.keyCode,c=this.headers.length,e=this.headers.index(g.target),f=false;switch(g.keyCode){case d.RIGHT:case d.DOWN:f=this.headers[(e+1)%c];break;case d.LEFT:case d.UP:f=this.headers[(e-
-1+c)%c];break;case d.SPACE:case d.ENTER:this._eventHandler(g)}if(f){a(g.target).attr("tabIndex",-1);a(f).attr("tabIndex",0);f.focus();g.preventDefault()}}},refresh:function(){var g=this.options,d=this.element.parent(),c,e;if(g.heightStyle==="fill"){if(!a.support.minHeight){e=d.css("overflow");d.css("overflow","hidden")}c=d.height();this.element.siblings(":visible").each(function(){var f=a(this),i=f.css("position");i==="absolute"||i==="fixed"||(c-=f.outerHeight(true))});e&&d.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(g.heightStyle==="auto"){c=0;this.headers.next().each(function(){c=Math.max(c,a(this).height("").height())}).height(c)}return this},_activate:function(g){g=this._findActive(g)[0];if(g!==this.active[0]){g=g||this.active[0];this._eventHandler({target:g,currentTarget:g,preventDefault:a.noop})}},_findActive:function(g){return typeof g==="number"?
-this.headers.eq(g):a()},_setupEvents:function(g){g&&this.headers.bind(g.split(" ").join(".accordion ")+".accordion",a.proxy(this,"_eventHandler"))},_eventHandler:function(g){var d=this.options,c=this.active,e=a(g.currentTarget),f=e[0]===c[0],i=f&&d.collapsible,b=i?a():e.next(),h=c.next();b={oldHeader:c,oldContent:h,newHeader:i?a():e,newContent:b};g.preventDefault();if(!(d.disabled||f&&!d.collapsible||this._trigger("beforeActivate",g,b)===false)){d.active=i?false:this.headers.index(e);this.active=
-f?a():e;this._toggle(b);c.removeClass("ui-state-active ui-corner-top").addClass("ui-state-default ui-corner-all").children(".ui-accordion-header-icon").removeClass(d.icons.activeHeader).addClass(d.icons.header);if(!f){e.removeClass("ui-state-default ui-corner-all").addClass("ui-state-active ui-corner-top").children(".ui-accordion-header-icon").removeClass(d.icons.header).addClass(d.icons.activeHeader);e.next().addClass("ui-accordion-content-active")}}},_toggle:function(g){function d(){c._completed(g)}
-var c=this,e=c.options,f=g.newContent,i=g.oldContent;if(e.animated){var b=a.ui.accordion.animations;e=e.animated;var h;if(!b[e]){h={easing:a.easing[e]?e:"slide",duration:700};e="slide"}b[e]({widget:c,toShow:f,toHide:i,prevShow:c.lastToggle.toShow,prevHide:c.lastToggle.toHide,complete:d,down:f.length&&(!i.length||f.index()<i.index())},h)}else{i.hide();f.show();d()}i.prev().attr({"aria-expanded":"false","aria-selected":"false",tabIndex:-1}).blur();f.prev().attr({"aria-expanded":"true","aria-selected":"true",
-tabIndex:0}).focus()},_completed:function(g){var d=g.newContent,c=g.oldContent;this.options.heightStyle==="content"&&d.add(c).css({height:"",overflow:""});c.removeClass("ui-accordion-content-active");if(c.length)c.parent()[0].className=c.parent()[0].className;this._trigger("activate",null,g)}});a.extend(a.ui.accordion,{animations:{slide:function(g,d){if(g.prevShow||g.prevHide){g.prevHide.stop(true,true);g.toHide=g.prevShow}var c=g.toShow.css("overflow"),e=g.toHide.css("overflow"),f=0,i={},b={},h;
-g=a.extend({easing:"swing",duration:300},g,d);g.widget.lastToggle=g;if(g.toHide.size())if(g.toShow.size()){var k=g.toShow;h=k[0].style.width;k.width(parseInt(k.parent().width(),10)-parseInt(k.css("paddingLeft"),10)-parseInt(k.css("paddingRight"),10)-(parseInt(k.css("borderLeftWidth"),10)||0)-(parseInt(k.css("borderRightWidth"),10)||0));a.each(["height","paddingTop","paddingBottom"],function(l,j){b[j]="hide";var m=(""+a.css(g.toShow[0],j)).match(/^([\d+-.]+)(.*)$/);i[j]={value:j==="height"&&m[1]===
-"0"?1:m[1],unit:m[2]||"px"}});g.toShow.css({height:0,overflow:"hidden"}).show();g.toHide.filter(":hidden").each(g.complete).end().filter(":visible").animate(b,{step:function(l,j){if(j.prop=="height"||j.prop=="paddingTop"||j.prop=="paddingBottom")f=j.end-j.start===0?0:(j.now-j.start)/(j.end-j.start);g.toShow[0].style[j.prop]=f*i[j.prop].value+i[j.prop].unit},duration:g.duration,easing:g.easing,complete:function(){g.toShow.css({width:h,overflow:c});g.toHide.css("overflow",e);g.complete()}})}else g.toHide.animate({height:"hide",
-paddingTop:"hide",paddingBottom:"hide"},g);else{h=g.toShow[0].style.width;g.toShow.show().width(g.toShow.width()).hide().animate({height:"show",paddingTop:"show",paddingBottom:"show"},{duration:g.duration,easing:g.easing,complete:function(){g.toShow.width(h);g.complete()}})}},bounceslide:function(g){this.slide(g,{easing:g.down?"easeOutBounce":"swing",duration:g.down?1E3:200})}}});if(a.uiBackCompat!==false){(function(g,d){g.extend(d.options,{navigation:false,navigationFilter:function(){return this.href.toLowerCase()===
-location.href.toLowerCase()}});var c=d._create;d._create=function(){if(this.options.navigation){var e=this,f=this.element.find(this.options.header),i=f.next(),b=f.add(i).find("a").filter(this.options.navigationFilter)[0];b&&f.add(i).each(function(h){if(g.contains(this,b)){e.options.active=Math.floor(h/2);return false}})}c.call(this)}})(jQuery,jQuery.ui.accordion.prototype);(function(g,d){g.extend(d.options,{heightStyle:null,autoHeight:true,clearStyle:false,fillSpace:false});var c=d._create,e=d._setOption;
-g.extend(d,{_create:function(){this.options.heightStyle=this.options.heightStyle||this._mergeHeightStyle();c.call(this)},_setOption:function(f){if(f==="autoHeight"||f==="clearStyle"||f==="fillSpace")this.options.heightStyle=this._mergeHeightStyle();e.apply(this,arguments)},_mergeHeightStyle:function(){var f=this.options;if(f.fillSpace)return"fill";if(f.clearStyle)return"content";if(f.autoHeight)return"auto"}})})(jQuery,jQuery.ui.accordion.prototype);(function(g,d){g.extend(d.options.icons,{activeHeader:null,
-headerSelected:"ui-icon-triangle-1-s"});var c=d._createIcons;d._createIcons=function(){this.options.icons.activeHeader=this.options.icons.activeHeader||this.options.icons.headerSelected;c.call(this)}})(jQuery,jQuery.ui.accordion.prototype);(function(g,d){d.activate=d._activate;var c=d._findActive;d._findActive=function(e){if(e===-1)e=false;if(e&&typeof e!=="number"){e=this.headers.index(this.headers.filter(e));if(e===-1)e=false}return c.call(this,e)}})(jQuery,jQuery.ui.accordion.prototype);jQuery.ui.accordion.prototype.resize=
-jQuery.ui.accordion.prototype.refresh;(function(g,d){g.extend(d.options,{change:null,changestart:null});var c=d._trigger;d._trigger=function(e,f,i){var b=c.apply(this,arguments);if(!b)return false;if(e==="beforeActivate")b=c.call(this,"changestart",f,i);else if(e==="activate")b=c.call(this,"change",f,i);return b}})(jQuery,jQuery.ui.accordion.prototype)}})(jQuery);
-(function(a){var g=0;a.widget("ui.autocomplete",{version:"1.9pre",defaultElement:"<input>",options:{appendTo:"body",autoFocus:false,delay:300,minLength:1,position:{my:"left top",at:"left bottom",collision:"none"},source:null,change:null,close:null,focus:null,open:null,response:null,search:null,select:null},pending:0,_create:function(){var d=this,c=this.element[0].ownerDocument,e,f;this.valueMethod=this.element[this.element.is("input,textarea")?"val":"text"];this.element.addClass("ui-autocomplete-input").attr("autocomplete",
-"off").attr({role:"textbox","aria-autocomplete":"list","aria-haspopup":"true"}).bind("keydown.autocomplete",function(i){if(d.options.disabled||d.element.prop("readOnly"))f=e=true;else{f=e=false;var b=a.ui.keyCode;switch(i.keyCode){case b.PAGE_UP:e=true;d._move("previousPage",i);break;case b.PAGE_DOWN:e=true;d._move("nextPage",i);break;case b.UP:e=true;d._move("previous",i);i.preventDefault();break;case b.DOWN:e=true;d._move("next",i);i.preventDefault();break;case b.ENTER:case b.NUMPAD_ENTER:if(d.menu.active){e=
-true;i.preventDefault()}case b.TAB:if(!d.menu.active)break;d.menu.select(i);break;case b.ESCAPE:if(d.menu.element.is(":visible")){d._value(d.term);d.close(i)}break;default:d._searchTimeout(i)}}}).bind("keypress.autocomplete",function(i){if(e){e=false;i.preventDefault()}else{var b=a.ui.keyCode;switch(i.keyCode){case b.PAGE_UP:d._move("previousPage",i);break;case b.PAGE_DOWN:d._move("nextPage",i);break;case b.UP:d._move("previous",i);i.preventDefault();break;case b.DOWN:d._move("next",i);i.preventDefault()}}}).bind("input.autocomplete",
-function(i){if(f){f=false;i.preventDefault()}else d._searchTimeout(i)}).bind("focus.autocomplete",function(){if(!d.options.disabled){d.selectedItem=null;d.previous=d._value()}}).bind("blur.autocomplete",function(i){if(!d.options.disabled){clearTimeout(d.searching);d.closing=setTimeout(function(){d.close(i);d._change(i)},150)}});this._initSource();this.response=function(){return d._response.apply(d,arguments)};this.menu=a("<ul></ul>").addClass("ui-autocomplete").appendTo(a(this.options.appendTo||"body",
-c)[0]).mousedown(function(i){var b=d.menu.element[0];a(i.target).closest(".ui-menu-item").length||setTimeout(function(){a(document).one("mousedown",function(h){h.target!==d.element[0]&&h.target!==b&&!a.contains(b,h.target)&&d.close()})},1);setTimeout(function(){clearTimeout(d.closing)},13)}).menu({input:a(),focus:function(i,b){var h=b.item.data("item.autocomplete");false!==d._trigger("focus",i,{item:h})&&/^key/.test(i.originalEvent.type)&&d._value(h.value)},select:function(i,b){var h=b.item.data("item.autocomplete"),
-k=d.previous;if(d.element[0]!==c.activeElement){d.element.focus();d.previous=k;setTimeout(function(){d.previous=k;d.selectedItem=h},1)}false!==d._trigger("select",i,{item:h})&&d._value(h.value);d.term=d._value();d.close(i);d.selectedItem=h}}).zIndex(this.element.zIndex()+1).hide().data("menu");a.fn.bgiframe&&this.menu.element.bgiframe()},_destroy:function(){clearTimeout(this.searching);this.element.removeClass("ui-autocomplete-input").removeAttr("autocomplete").removeAttr("role").removeAttr("aria-autocomplete").removeAttr("aria-haspopup");
-this.menu.element.remove()},_setOption:function(d,c){this._super("_setOption",d,c);d==="source"&&this._initSource();if(d==="appendTo")this.menu.element.appendTo(a(c||"body",this.element[0].ownerDocument)[0]);d==="disabled"&&c&&this.xhr&&this.xhr.abort()},_initSource:function(){var d=this,c,e;if(a.isArray(this.options.source)){c=this.options.source;this.source=function(f,i){i(a.ui.autocomplete.filter(c,f.term))}}else if(typeof this.options.source==="string"){e=this.options.source;this.source=function(f,
-i){d.xhr&&d.xhr.abort();d.xhr=a.ajax({url:e,data:f,dataType:"json",autocompleteRequest:++g,success:function(b){this.autocompleteRequest===g&&i(b)},error:function(){this.autocompleteRequest===g&&i([])}})}}else this.source=this.options.source},_searchTimeout:function(d){var c=this;clearTimeout(c.searching);c.searching=setTimeout(function(){if(c.term!==c._value()){c.selectedItem=null;c.search(null,d)}},c.options.delay)},search:function(d,c){d=d!=null?d:this._value();this.term=this._value();if(d.length<
-this.options.minLength)return this.close(c);clearTimeout(this.closing);if(this._trigger("search",c)!==false)return this._search(d)},_search:function(d){this.pending++;this.element.addClass("ui-autocomplete-loading");this.source({term:d},this.response)},_response:function(d){if(d)d=this._normalize(d);this._trigger("response",null,{content:d});if(!this.options.disabled&&d&&d.length){this._suggest(d);this._trigger("open")}else this.close();this.pending--;this.pending||this.element.removeClass("ui-autocomplete-loading")},
-close:function(d){clearTimeout(this.closing);if(this.menu.element.is(":visible")){this.menu.element.hide();this.menu.blur();this._trigger("close",d)}},_change:function(d){this.previous!==this._value()&&this._trigger("change",d,{item:this.selectedItem})},_normalize:function(d){if(d.length&&d[0].label&&d[0].value)return d;return a.map(d,function(c){if(typeof c==="string")return{label:c,value:c};return a.extend({label:c.label||c.value,value:c.value||c.label},c)})},_suggest:function(d){var c=this.menu.element.empty().zIndex(this.element.zIndex()+
-1);this._renderMenu(c,d);this.menu.blur();this.menu.refresh();c.show();this._resizeMenu();c.position(a.extend({of:this.element},this.options.position));this.options.autoFocus&&this.menu.next(new a.Event("mouseover"))},_resizeMenu:function(){var d=this.menu.element;d.outerWidth(Math.max(d.width("").outerWidth(),this.element.outerWidth()))},_renderMenu:function(d,c){var e=this;a.each(c,function(f,i){e._renderItem(d,i)})},_renderItem:function(d,c){return a("<li></li>").data("item.autocomplete",c).append(a("<a></a>").text(c.label)).appendTo(d)},
-_move:function(d,c){if(this.menu.element.is(":visible"))if(this.menu.first()&&/^previous/.test(d)||this.menu.last()&&/^next/.test(d)){this._value(this.term);this.menu.blur()}else this.menu[d](c);else this.search(null,c)},widget:function(){return this.menu.element},_value:function(){return this.valueMethod.apply(this.element,arguments)}});a.extend(a.ui.autocomplete,{escapeRegex:function(d){return d.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&")},filter:function(d,c){var e=RegExp(a.ui.autocomplete.escapeRegex(c),
-"i");return a.grep(d,function(f){return e.test(f.label||f.value||f)})}})})(jQuery);
-(function(a){var g,d,c,e,f=function(){var b=a(this).find(":ui-button");setTimeout(function(){b.button("refresh")},1)},i=function(b){var h=b.name,k=b.form,l=a([]);if(h)l=k?a(k).find("[name='"+h+"']"):a("[name='"+h+"']",b.ownerDocument).filter(function(){return!this.form});return l};a.widget("ui.button",{version:"1.9pre",defaultElement:"<button>",options:{disabled:null,text:true,label:null,icons:{primary:null,secondary:null}},_create:function(){this.element.closest("form").unbind("reset.button").bind("reset.button",
-f);if(typeof this.options.disabled!=="boolean")this.options.disabled=this.element.prop("disabled");this._determineButtonType();this.hasTitle=!!this.buttonElement.attr("title");var b=this,h=this.options,k=this.type==="checkbox"||this.type==="radio",l="ui-state-hover"+(!k?" ui-state-active":"");if(h.label===null)h.label=this.buttonElement.html();if(this.element.is(":disabled"))h.disabled=true;this.buttonElement.addClass("ui-button ui-widget ui-state-default ui-corner-all").attr("role","button").bind("mouseenter.button",
-function(){if(!h.disabled){a(this).addClass("ui-state-hover");this===g&&a(this).addClass("ui-state-active")}}).bind("mouseleave.button",function(){h.disabled||a(this).removeClass(l)}).bind("click.button",function(j){if(h.disabled){j.preventDefault();j.stopImmediatePropagation()}});this.element.bind("focus.button",function(){b.buttonElement.addClass("ui-state-focus")}).bind("blur.button",function(){b.buttonElement.removeClass("ui-state-focus")});if(k){this.element.bind("change.button",function(){e||
-b.refresh()});this.buttonElement.bind("mousedown.button",function(j){if(!h.disabled){e=false;d=j.pageX;c=j.pageY}}).bind("mouseup.button",function(j){if(!h.disabled)if(d!==j.pageX||c!==j.pageY)e=true})}if(this.type==="checkbox")this.buttonElement.bind("click.button",function(){if(h.disabled||e)return false;a(this).toggleClass("ui-state-active");b.buttonElement.attr("aria-pressed",b.element[0].checked)});else if(this.type==="radio")this.buttonElement.bind("click.button",function(){if(h.disabled||e)return false;
-a(this).addClass("ui-state-active");b.buttonElement.attr("aria-pressed","true");var j=b.element[0];i(j).not(j).map(function(){return a(this).button("widget")[0]}).removeClass("ui-state-active").attr("aria-pressed","false")});else{this.buttonElement.bind("mousedown.button",function(){if(h.disabled)return false;a(this).addClass("ui-state-active");g=this;a(document).one("mouseup",function(){g=null})}).bind("mouseup.button",function(){if(h.disabled)return false;a(this).removeClass("ui-state-active")}).bind("keydown.button",
-function(j){if(h.disabled)return false;if(j.keyCode==a.ui.keyCode.SPACE||j.keyCode==a.ui.keyCode.ENTER)a(this).addClass("ui-state-active")}).bind("keyup.button",function(){a(this).removeClass("ui-state-active")});this.buttonElement.is("a")&&this.buttonElement.keyup(function(j){j.keyCode===a.ui.keyCode.SPACE&&a(this).click()})}this._setOption("disabled",h.disabled);this._resetButton()},_determineButtonType:function(){this.type=this.element.is(":checkbox")?"checkbox":this.element.is(":radio")?"radio":
-this.element.is("input")?"input":"button";if(this.type==="checkbox"||this.type==="radio"){var b=this.element.parents().last(),h="label[for='"+this.element.attr("id")+"']";this.buttonElement=b.find(h);if(!this.buttonElement.length){b=b.length?b.siblings():this.element.siblings();this.buttonElement=b.filter(h);if(!this.buttonElement.length)this.buttonElement=b.find(h)}this.element.addClass("ui-helper-hidden-accessible");(b=this.element.is(":checked"))&&this.buttonElement.addClass("ui-state-active");
-this.buttonElement.prop("aria-pressed",b)}else this.buttonElement=this.element},widget:function(){return this.buttonElement},_destroy:function(){this.element.removeClass("ui-helper-hidden-accessible");this.buttonElement.removeClass("ui-button ui-widget ui-state-default ui-corner-all ui-state-hover ui-state-active  ui-button-icons-only ui-button-icon-only ui-button-text-icons ui-button-text-icon-primary ui-button-text-icon-secondary ui-button-text-only").removeAttr("role").removeAttr("aria-pressed").html(this.buttonElement.find(".ui-button-text").html());
-this.hasTitle||this.buttonElement.removeAttr("title")},_setOption:function(b,h){this._super("_setOption",b,h);if(b==="disabled")h?this.element.prop("disabled",true):this.element.prop("disabled",false);else this._resetButton()},refresh:function(){var b=this.element.is(":disabled");b!==this.options.disabled&&this._setOption("disabled",b);if(this.type==="radio")i(this.element[0]).each(function(){a(this).is(":checked")?a(this).button("widget").addClass("ui-state-active").attr("aria-pressed","true"):a(this).button("widget").removeClass("ui-state-active").attr("aria-pressed",
-"false")});else if(this.type==="checkbox")this.element.is(":checked")?this.buttonElement.addClass("ui-state-active").attr("aria-pressed","true"):this.buttonElement.removeClass("ui-state-active").attr("aria-pressed","false")},_resetButton:function(){if(this.type==="input")this.options.label&&this.element.val(this.options.label);else{var b=this.buttonElement.removeClass("ui-button-icons-only ui-button-icon-only ui-button-text-icons ui-button-text-icon-primary ui-button-text-icon-secondary ui-button-text-only"),
-h=a("<span></span>").addClass("ui-button-text").html(this.options.label).appendTo(b.empty()).text(),k=this.options.icons,l=k.primary&&k.secondary,j=[];if(k.primary||k.secondary){if(this.options.text)j.push("ui-button-text-icon"+(l?"s":k.primary?"-primary":"-secondary"));k.primary&&b.prepend("<span class='ui-button-icon-primary ui-icon "+k.primary+"'></span>");k.secondary&&b.append("<span class='ui-button-icon-secondary ui-icon "+k.secondary+"'></span>");if(!this.options.text){j.push(l?"ui-button-icons-only":
-"ui-button-icon-only");this.hasTitle||b.attr("title",h)}}else j.push("ui-button-text-only");b.addClass(j.join(" "))}}});a.ui.button.version="1.9pre";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,h){b==="disabled"&&this.buttons.button("option",b,h);this._super("_setOption",b,h)},refresh:function(){var b=this.element.css("direction")===
-"rtl";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-right":"ui-corner-left").end().filter(":last").addClass(b?"ui-corner-left":"ui-corner-right").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")}})})(jQuery);
-(function(a,g){function d(){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=c(a('<div id="'+this._mainDivId+'" class="ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all"></div>'))}function c(b){return b.delegate("button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a",
-"mouseout",function(){a(this).removeClass("ui-state-hover");this.className.indexOf("ui-datepicker-prev")!=-1&&a(this).removeClass("ui-datepicker-prev-hover");this.className.indexOf("ui-datepicker-next")!=-1&&a(this).removeClass("ui-datepicker-next-hover")}).delegate("button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a","mouseover",function(){if(!a.datepicker._isDisabledDatepicker(i.inline?b.parent()[0]:i.input[0])){a(this).parents(".ui-datepicker-calendar").find("a").removeClass("ui-state-hover");
-a(this).addClass("ui-state-hover");this.className.indexOf("ui-datepicker-prev")!=-1&&a(this).addClass("ui-datepicker-prev-hover");this.className.indexOf("ui-datepicker-next")!=-1&&a(this).addClass("ui-datepicker-next-hover")}})}function e(b,h){a.extend(b,h);for(var k in h)if(h[k]==null||h[k]==g)b[k]=h[k];return b}a.extend(a.ui,{datepicker:{version:"1.9pre"}});var f=(new Date).getTime(),i;a.extend(d.prototype,{markerClassName:"hasDatepicker",maxRows:4,log:function(){this.debug&&console.log.apply("",
-arguments)},_widgetDatepicker:function(){return this.dpDiv},setDefaults:function(b){e(this._defaults,b||{});return this},_attachDatepicker:function(b,h){var k=null,l;for(l in this._defaults){var j=b.getAttribute("date:"+l);if(j){k=k||{};try{k[l]=eval(j)}catch(m){k[l]=j}}}l=b.nodeName.toLowerCase();j=l=="div"||l=="span";if(!b.id){this.uuid+=1;b.id="dp"+this.uuid}var n=this._newInst(a(b),j);n.settings=a.extend({},h||{},k||{});if(l=="input")this._connectDatepicker(b,n);else j&&this._inlineDatepicker(b,
-n)},_newInst:function(b,h){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:h,dpDiv:!h?this.dpDiv:c(a('<div class="'+this._inlineClass+' ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all"></div>'))}},_connectDatepicker:function(b,h){var k=a(b);h.append=a([]);h.trigger=a([]);if(!k.hasClass(this.markerClassName)){this._attachments(k,h);k.addClass(this.markerClassName).keydown(this._doKeyDown).keypress(this._doKeyPress).keyup(this._doKeyUp).bind("setData.datepicker",
-function(l,j,m){h.settings[j]=m}).bind("getData.datepicker",function(l,j){return this._get(h,j)});this._autoSize(h);a.data(b,"datepicker",h);h.settings.disabled&&this._disableDatepicker(b)}},_attachments:function(b,h){var k=this._get(h,"appendText"),l=this._get(h,"isRTL");h.append&&h.append.remove();if(k){h.append=a('<span class="'+this._appendClass+'">'+k+"</span>");b[l?"before":"after"](h.append)}b.unbind("focus",this._showDatepicker);h.trigger&&h.trigger.remove();k=this._get(h,"showOn");if(k==
-"focus"||k=="both")b.focus(this._showDatepicker);if(k=="button"||k=="both"){k=this._get(h,"buttonText");var j=this._get(h,"buttonImage");h.trigger=a(this._get(h,"buttonImageOnly")?a("<img/>").addClass(this._triggerClass).attr({src:j,alt:k,title:k}):a('<button type="button"></button>').addClass(this._triggerClass).html(j==""?k:a("<img/>").attr({src:j,alt:k,title:k})));b[l?"before":"after"](h.trigger);h.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 h=new Date(2009,11,20),k=this._get(b,"dateFormat");if(k.match(/[DM]/)){var l=function(j){for(var m=0,n=0,o=0;o<j.length;o++)if(j[o].length>m){m=j[o].length;n=o}return n};h.setMonth(l(this._get(b,k.match(/MM/)?"monthNames":"monthNamesShort")));h.setDate(l(this._get(b,k.match(/DD/)?"dayNames":"dayNamesShort"))+20-h.getDay())}b.input.attr("size",this._formatDate(b,h).length)}},_inlineDatepicker:function(b,
-h){var k=a(b);if(!k.hasClass(this.markerClassName)){k.addClass(this.markerClassName).append(h.dpDiv).bind("setData.datepicker",function(l,j,m){h.settings[j]=m}).bind("getData.datepicker",function(l,j){return this._get(h,j)});a.data(b,"datepicker",h);this._setDate(h,this._getDefaultDate(h),true);this._updateDatepicker(h);this._updateAlternate(h);h.settings.disabled&&this._disableDatepicker(b);h.dpDiv.css("display","block")}},_dialogDatepicker:function(b,h,k,l,j){b=this._dialogInst;if(!b){this.uuid+=
-1;this._dialogInput=a('<input type="text" id="'+("dp"+this.uuid)+'" style="position: absolute; top: -100px; width: 0px; z-index: -10;"/>');this._dialogInput.keydown(this._doKeyDown);a("body").append(this._dialogInput);b=this._dialogInst=this._newInst(this._dialogInput,false);b.settings={};a.data(this._dialogInput[0],"datepicker",b)}e(b.settings,l||{});h=h&&h.constructor==Date?this._formatDate(b,h):h;this._dialogInput.val(h);this._pos=j?j.length?j:[j.pageX,j.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=k;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 h=
-a(b),k=a.data(b,"datepicker");if(h.hasClass(this.markerClassName)){var l=b.nodeName.toLowerCase();a.removeData(b,"datepicker");if(l=="input"){k.append.remove();k.trigger.remove();h.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")h.removeClass(this.markerClassName).empty()}},_enableDatepicker:function(b){var h=a(b),k=a.data(b,"datepicker");if(h.hasClass(this.markerClassName)){var l=
-b.nodeName.toLowerCase();if(l=="input"){b.disabled=false;k.trigger.filter("button").each(function(){this.disabled=false}).end().filter("img").css({opacity:"1.0",cursor:""})}else if(l=="div"||l=="span"){h=h.children("."+this._inlineClass);h.children().removeClass("ui-state-disabled");h.find("select.ui-datepicker-month, select.ui-datepicker-year").prop("disabled",false)}this._disabledInputs=a.map(this._disabledInputs,function(j){return j==b?null:j})}},_disableDatepicker:function(b){var h=a(b),k=a.data(b,
-"datepicker");if(h.hasClass(this.markerClassName)){var l=b.nodeName.toLowerCase();if(l=="input"){b.disabled=true;k.trigger.filter("button").each(function(){this.disabled=true}).end().filter("img").css({opacity:"0.5",cursor:"default"})}else if(l=="div"||l=="span"){h=h.children("."+this._inlineClass);h.children().addClass("ui-state-disabled");h.find("select.ui-datepicker-month, select.ui-datepicker-year").prop("disabled",true)}this._disabledInputs=a.map(this._disabledInputs,function(j){return j==b?
-null:j});this._disabledInputs[this._disabledInputs.length]=b}},_isDisabledDatepicker:function(b){if(!b)return false;for(var h=0;h<this._disabledInputs.length;h++)if(this._disabledInputs[h]==b)return true;return false},_getInst:function(b){try{return a.data(b,"datepicker")}catch(h){throw"Missing instance data for this datepicker";}},_optionDatepicker:function(b,h,k){var l=this._getInst(b);if(arguments.length==2&&typeof h=="string")return h=="defaults"?a.extend({},a.datepicker._defaults):l?h=="all"?
-a.extend({},l.settings):this._get(l,h):null;var j=h||{};if(typeof h=="string"){j={};j[h]=k}if(l){this._curInst==l&&this._hideDatepicker();var m=this._getDateDatepicker(b,true),n=this._getMinMaxDate(l,"min"),o=this._getMinMaxDate(l,"max");e(l.settings,j);if(n!==null&&j.dateFormat!==g&&j.minDate===g)l.settings.minDate=this._formatDate(l,n);if(o!==null&&j.dateFormat!==g&&j.maxDate===g)l.settings.maxDate=this._formatDate(l,o);this._attachments(a(b),l);this._autoSize(l);this._setDate(l,m);this._updateAlternate(l);
-this._updateDatepicker(l)}},_changeDatepicker:function(b,h,k){this._optionDatepicker(b,h,k)},_refreshDatepicker:function(b){(b=this._getInst(b))&&this._updateDatepicker(b)},_setDateDatepicker:function(b,h){var k=this._getInst(b);if(k){this._setDate(k,h);this._updateDatepicker(k);this._updateAlternate(k)}},_getDateDatepicker:function(b,h){var k=this._getInst(b);k&&!k.inline&&this._setDateFromField(k,h);return k?this._getDate(k):null},_doKeyDown:function(b){var h=a.datepicker._getInst(b.target),k=true,
-l=h.dpDiv.is(".ui-datepicker-rtl");h._keyEvent=true;if(a.datepicker._datepickerShowing)switch(b.keyCode){case 9:a.datepicker._hideDatepicker();k=false;break;case 13:k=a("td."+a.datepicker._dayOverClass+":not(."+a.datepicker._currentClass+")",h.dpDiv);k[0]&&a.datepicker._selectDay(b.target,h.selectedMonth,h.selectedYear,k[0]);if(b=a.datepicker._get(h,"onSelect")){k=a.datepicker._formatDate(h);b.apply(h.input?h.input[0]:null,[k,h])}else a.datepicker._hideDatepicker();return false;case 27:a.datepicker._hideDatepicker();
-break;case 33:a.datepicker._adjustDate(b.target,b.ctrlKey?-a.datepicker._get(h,"stepBigMonths"):-a.datepicker._get(h,"stepMonths"),"M");break;case 34:a.datepicker._adjustDate(b.target,b.ctrlKey?+a.datepicker._get(h,"stepBigMonths"):+a.datepicker._get(h,"stepMonths"),"M");break;case 35:if(b.ctrlKey||b.metaKey)a.datepicker._clearDate(b.target);k=b.ctrlKey||b.metaKey;break;case 36:if(b.ctrlKey||b.metaKey)a.datepicker._gotoToday(b.target);k=b.ctrlKey||b.metaKey;break;case 37:if(b.ctrlKey||b.metaKey)a.datepicker._adjustDate(b.target,
-l?+1:-1,"D");k=b.ctrlKey||b.metaKey;if(b.originalEvent.altKey)a.datepicker._adjustDate(b.target,b.ctrlKey?-a.datepicker._get(h,"stepBigMonths"):-a.datepicker._get(h,"stepMonths"),"M");break;case 38:if(b.ctrlKey||b.metaKey)a.datepicker._adjustDate(b.target,-7,"D");k=b.ctrlKey||b.metaKey;break;case 39:if(b.ctrlKey||b.metaKey)a.datepicker._adjustDate(b.target,l?-1:+1,"D");k=b.ctrlKey||b.metaKey;if(b.originalEvent.altKey)a.datepicker._adjustDate(b.target,b.ctrlKey?+a.datepicker._get(h,"stepBigMonths"):
-+a.datepicker._get(h,"stepMonths"),"M");break;case 40:if(b.ctrlKey||b.metaKey)a.datepicker._adjustDate(b.target,+7,"D");k=b.ctrlKey||b.metaKey;break;default:k=false}else if(b.keyCode==36&&b.ctrlKey)a.datepicker._showDatepicker(this);else k=false;if(k){b.preventDefault();b.stopPropagation()}},_doKeyPress:function(b){var h=a.datepicker._getInst(b.target);if(a.datepicker._get(h,"constrainInput")){h=a.datepicker._possibleChars(a.datepicker._get(h,"dateFormat"));var k=String.fromCharCode(b.charCode==g?
-b.keyCode:b.charCode);return b.ctrlKey||b.metaKey||k<" "||!h||h.indexOf(k)>-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(h){a.datepicker.log(h)}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 h=a.datepicker._getInst(b);if(a.datepicker._curInst&&a.datepicker._curInst!=h){a.datepicker._curInst.dpDiv.stop(true,true);h&&a.datepicker._datepickerShowing&&a.datepicker._hideDatepicker(a.datepicker._curInst.input[0])}var k=a.datepicker._get(h,"beforeShow");k=k?k.apply(b,[b,h]):{};if(k!==false){e(h.settings,k);h.lastVal=null;a.datepicker._lastInput=b;a.datepicker._setDateFromField(h);
-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}k={left:a.datepicker._pos[0],top:a.datepicker._pos[1]};a.datepicker._pos=null;h.dpDiv.empty();h.dpDiv.css({position:"absolute",display:"block",
-top:"-1000px"});a.datepicker._updateDatepicker(h);k=a.datepicker._checkOffset(h,k,l);h.dpDiv.css({position:a.datepicker._inDialog&&a.blockUI?"static":l?"fixed":"absolute",display:"none",left:k.left+"px",top:k.top+"px"});if(!h.inline){k=a.datepicker._get(h,"showAnim");var j=a.datepicker._get(h,"duration"),m=function(){var n=h.dpDiv.find("iframe.ui-datepicker-cover");if(n.length){var o=a.datepicker._getBorders(h.dpDiv);n.css({left:-o[0],top:-o[1],width:h.dpDiv.outerWidth(),height:h.dpDiv.outerHeight()})}};
-h.dpDiv.zIndex(a(b).zIndex()+1);a.datepicker._datepickerShowing=true;if(a.effects&&(a.effects.effect[k]||a.effects[k]))h.dpDiv.show(k,a.datepicker._get(h,"showOptions"),j,m);else h.dpDiv[k||"show"](k?j:null,m);if(!k||!j)m();h.input.is(":visible")&&!h.input.is(":disabled")&&h.input.focus();a.datepicker._curInst=h}}}},_updateDatepicker:function(b){this.maxRows=4;var h=a.datepicker._getBorders(b.dpDiv);i=b;b.dpDiv.empty().append(this._generateHTML(b));var k=b.dpDiv.find("iframe.ui-datepicker-cover");
-k.length&&k.css({left:-h[0],top:-h[1],width:b.dpDiv.outerWidth(),height:b.dpDiv.outerHeight()});b.dpDiv.find("."+this._dayOverClass+" a").mouseover();h=this._getNumberOfMonths(b);k=h[1];b.dpDiv.removeClass("ui-datepicker-multi-2 ui-datepicker-multi-3 ui-datepicker-multi-4").width("");k>1&&b.dpDiv.addClass("ui-datepicker-multi-"+k).css("width",17*k+"em");b.dpDiv[(h[0]!=1||h[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 h=function(k){return{thin:1,medium:2,thick:3}[k]||k};return[parseFloat(h(b.css("border-left-width"))),parseFloat(h(b.css("border-top-width")))]},
-_checkOffset:function(b,h,k){var l=b.dpDiv.outerWidth(),j=b.dpDiv.outerHeight(),m=b.input?b.input.outerWidth():0,n=b.input?b.input.outerHeight():0,o=document.documentElement.clientWidth+a(document).scrollLeft(),p=document.documentElement.clientHeight+a(document).scrollTop();h.left-=this._get(b,"isRTL")?l-m:0;h.left-=k&&h.left==b.input.offset().left?a(document).scrollLeft():0;h.top-=k&&h.top==b.input.offset().top+n?a(document).scrollTop():0;h.left-=Math.min(h.left,h.left+l>o&&o>l?Math.abs(h.left+l-
-o):0);h.top-=Math.min(h.top,h.top+j>p&&p>j?Math.abs(j+n):0);return h},_findPos:function(b){for(var h=this._get(this._getInst(b),"isRTL");b&&(b.type=="hidden"||b.nodeType!=1||a.expr.filters.hidden(b));)b=b[h?"previousSibling":"nextSibling"];b=a(b).offset();return[b.left,b.top]},_hideDatepicker:function(b){var h=this._curInst;if(!(!h||b&&h!=a.data(b,"datepicker")))if(this._datepickerShowing){b=this._get(h,"showAnim");var k=this._get(h,"duration"),l=function(){a.datepicker._tidyDialog(h);this._curInst=
-null};if(a.effects&&(a.effects.effect[b]||a.effects[b]))h.dpDiv.hide(b,a.datepicker._get(h,"showOptions"),k,l);else h.dpDiv[b=="slideDown"?"slideUp":b=="fadeIn"?"fadeOut":"hide"](b?k:null,l);b||l();this._datepickerShowing=false;if(b=this._get(h,"onClose"))b.apply(h.input?h.input[0]:null,[h.input?h.input.val():"",h]);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);var h=a.datepicker._getInst(b[0]);if(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)||b.hasClass(a.datepicker.markerClassName)&&a.datepicker._curInst!=
-h)a.datepicker._hideDatepicker()}},_adjustDate:function(b,h,k){b=a(b);var l=this._getInst(b[0]);if(!this._isDisabledDatepicker(b[0])){this._adjustInstDate(l,h+(k=="M"?this._get(l,"showCurrentAtPos"):0),k);this._updateDatepicker(l)}},_gotoToday:function(b){b=a(b);var h=this._getInst(b[0]);if(this._get(h,"gotoCurrent")&&h.currentDay){h.selectedDay=h.currentDay;h.drawMonth=h.selectedMonth=h.currentMonth;h.drawYear=h.selectedYear=h.currentYear}else{var k=new Date;h.selectedDay=k.getDate();h.drawMonth=
-h.selectedMonth=k.getMonth();h.drawYear=h.selectedYear=k.getFullYear()}this._notifyChange(h);this._adjustDate(b)},_selectMonthYear:function(b,h,k){b=a(b);var l=this._getInst(b[0]);l["selected"+(k=="M"?"Month":"Year")]=l["draw"+(k=="M"?"Month":"Year")]=parseInt(h.options[h.selectedIndex].value,10);this._notifyChange(l);this._adjustDate(b)},_selectDay:function(b,h,k,l){var j=a(b);if(!(a(l).hasClass(this._unselectableClass)||this._isDisabledDatepicker(j[0]))){j=this._getInst(j[0]);j.selectedDay=j.currentDay=
-a("a",l).html();j.selectedMonth=j.currentMonth=h;j.selectedYear=j.currentYear=k;this._selectDate(b,this._formatDate(j,j.currentDay,j.currentMonth,j.currentYear))}},_clearDate:function(b){b=a(b);this._getInst(b[0]);this._selectDate(b,"")},_selectDate:function(b,h){var k=this._getInst(a(b)[0]);h=h!=null?h:this._formatDate(k);k.input&&k.input.val(h);this._updateAlternate(k);var l=this._get(k,"onSelect");if(l)l.apply(k.input?k.input[0]:null,[h,k]);else k.input&&k.input.trigger("change");if(k.inline)this._updateDatepicker(k);
-else{this._hideDatepicker();this._lastInput=k.input[0];typeof k.input[0]!="object"&&k.input.focus();this._lastInput=null}},_updateAlternate:function(b){var h=this._get(b,"altField");if(h){var k=this._get(b,"altFormat")||this._get(b,"dateFormat"),l=this._getDate(b),j=this.formatDate(k,l,this._getFormatConfig(b));a(h).each(function(){a(this).val(j)})}},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 h=
-b.getTime();b.setMonth(0);b.setDate(1);return Math.floor(Math.round((h-b)/864E5)/7)+1},parseDate:function(b,h,k){if(b==null||h==null)throw"Invalid arguments";h=typeof h=="object"?h.toString():h+"";if(h=="")return null;var l=(k?k.shortYearCutoff:null)||this._defaults.shortYearCutoff;l=typeof l!="string"?l:(new Date).getFullYear()%100+parseInt(l,10);for(var j=(k?k.dayNamesShort:null)||this._defaults.dayNamesShort,m=(k?k.dayNames:null)||this._defaults.dayNames,n=(k?k.monthNamesShort:null)||this._defaults.monthNamesShort,
-o=(k?k.monthNames:null)||this._defaults.monthNames,p=k=-1,q=-1,u=-1,s=false,r=function(y){(y=C+1<b.length&&b.charAt(C+1)==y)&&C++;return y},t=function(y){var D=r(y);y=h.substring(x).match(RegExp("^\\d{1,"+(y=="@"?14:y=="!"?20:y=="y"&&D?4:y=="o"?3:2)+"}"));if(!y)throw"Missing number at position "+x;x+=y[0].length;return parseInt(y[0],10)},v=function(y,D,J){y=a.map(r(y)?J:D,function(H,E){return[[E,H]]}).sort(function(H,E){return-(H[1].length-E[1].length)});var I=-1;a.each(y,function(H,E){var K=E[1];
-if(h.substr(x,K.length).toLowerCase()==K.toLowerCase()){I=E[0];x+=K.length;return false}});if(I!=-1)return I+1;else throw"Unknown name at position "+x;},w=function(){if(h.charAt(x)!=b.charAt(C))throw"Unexpected literal at position "+x;x++},x=0,C=0;C<b.length;C++)if(s)if(b.charAt(C)=="'"&&!r("'"))s=false;else w();else switch(b.charAt(C)){case "d":q=t("d");break;case "D":v("D",j,m);break;case "o":u=t("o");break;case "m":p=t("m");break;case "M":p=v("M",n,o);break;case "y":k=t("y");break;case "@":var A=
-new Date(t("@"));k=A.getFullYear();p=A.getMonth()+1;q=A.getDate();break;case "!":A=new Date((t("!")-this._ticksTo1970)/1E4);k=A.getFullYear();p=A.getMonth()+1;q=A.getDate();break;case "'":if(r("'"))w();else s=true;break;default:w()}if(x<h.length){j=h.substr(x);if(!/^\s+/.test(j))throw"Extra/unparsed characters found in date: "+j;}if(k==-1)k=(new Date).getFullYear();else if(k<100)k+=(new Date).getFullYear()-(new Date).getFullYear()%100+(k<=l?0:-100);if(u>-1){p=1;q=u;do{l=this._getDaysInMonth(k,p-1);
-if(q<=l)break;p++;q-=l}while(1)}A=this._daylightSavingAdjust(new Date(k,p-1,q));if(A.getFullYear()!=k||A.getMonth()+1!=p||A.getDate()!=q)throw"Invalid date";return A},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))*864E9,formatDate:function(b,h,k){if(!h)return"";
-var l=(k?k.dayNamesShort:null)||this._defaults.dayNamesShort,j=(k?k.dayNames:null)||this._defaults.dayNames,m=(k?k.monthNamesShort:null)||this._defaults.monthNamesShort;k=(k?k.monthNames:null)||this._defaults.monthNames;var n=function(r){(r=s+1<b.length&&b.charAt(s+1)==r)&&s++;return r},o=function(r,t,v){t=""+t;if(n(r))for(;t.length<v;)t="0"+t;return t},p=function(r,t,v,w){return n(r)?w[t]:v[t]},q="",u=false;if(h)for(var s=0;s<b.length;s++)if(u)if(b.charAt(s)=="'"&&!n("'"))u=false;else q+=b.charAt(s);
-else switch(b.charAt(s)){case "d":q+=o("d",h.getDate(),2);break;case "D":q+=p("D",h.getDay(),l,j);break;case "o":q+=o("o",Math.round(((new Date(h.getFullYear(),h.getMonth(),h.getDate())).getTime()-(new Date(h.getFullYear(),0,0)).getTime())/864E5),3);break;case "m":q+=o("m",h.getMonth()+1,2);break;case "M":q+=p("M",h.getMonth(),m,k);break;case "y":q+=n("y")?h.getFullYear():(h.getYear()%100<10?"0":"")+h.getYear()%100;break;case "@":q+=h.getTime();break;case "!":q+=h.getTime()*1E4+this._ticksTo1970;
-break;case "'":if(n("'"))q+="'";else u=true;break;default:q+=b.charAt(s)}return q},_possibleChars:function(b){for(var h="",k=false,l=function(m){(m=j+1<b.length&&b.charAt(j+1)==m)&&j++;return m},j=0;j<b.length;j++)if(k)if(b.charAt(j)=="'"&&!l("'"))k=false;else h+=b.charAt(j);else switch(b.charAt(j)){case "d":case "m":case "y":case "@":h+="0123456789";break;case "D":case "M":return null;case "'":if(l("'"))h+="'";else k=true;break;default:h+=b.charAt(j)}return h},_get:function(b,h){return b.settings[h]!==
-g?b.settings[h]:this._defaults[h]},_setDateFromField:function(b,h){if(b.input.val()!=b.lastVal){var k=this._get(b,"dateFormat"),l=b.lastVal=b.input?b.input.val():null,j,m;j=m=this._getDefaultDate(b);var n=this._getFormatConfig(b);try{j=this.parseDate(k,l,n)||m}catch(o){this.log(o);l=h?"":l}b.selectedDay=j.getDate();b.drawMonth=b.selectedMonth=j.getMonth();b.drawYear=b.selectedYear=j.getFullYear();b.currentDay=l?j.getDate():0;b.currentMonth=l?j.getMonth():0;b.currentYear=l?j.getFullYear():0;this._adjustInstDate(b)}},
-_getDefaultDate:function(b){return this._restrictMinMax(b,this._determineDate(b,this._get(b,"defaultDate"),new Date))},_determineDate:function(b,h,k){var l=function(j){var m=new Date;m.setDate(m.getDate()+j);return m};if(h=(h=h==null||h===""?k:typeof h=="string"?function(j){try{return a.datepicker.parseDate(a.datepicker._get(b,"dateFormat"),j,a.datepicker._getFormatConfig(b))}catch(m){}var n=(j.toLowerCase().match(/^c/)?a.datepicker._getDate(b):null)||new Date,o=n.getFullYear(),p=n.getMonth();n=n.getDate();
-for(var q=/([+-]?[0-9]+)\s*(d|D|w|W|m|M|y|Y)?/g,u=q.exec(j);u;){switch(u[2]||"d"){case "d":case "D":n+=parseInt(u[1],10);break;case "w":case "W":n+=parseInt(u[1],10)*7;break;case "m":case "M":p+=parseInt(u[1],10);n=Math.min(n,a.datepicker._getDaysInMonth(o,p));break;case "y":case "Y":o+=parseInt(u[1],10);n=Math.min(n,a.datepicker._getDaysInMonth(o,p))}u=q.exec(j)}return new Date(o,p,n)}(h):typeof h=="number"?isNaN(h)?k:l(h):new Date(h.getTime()))&&h.toString()=="Invalid Date"?k:h){h.setHours(0);h.setMinutes(0);
-h.setSeconds(0);h.setMilliseconds(0)}return this._daylightSavingAdjust(h)},_daylightSavingAdjust:function(b){if(!b)return null;b.setHours(b.getHours()>12?b.getHours()+2:0);return b},_setDate:function(b,h,k){var l=!h,j=b.selectedMonth,m=b.selectedYear;h=this._restrictMinMax(b,this._determineDate(b,h,new Date));b.selectedDay=b.currentDay=h.getDate();b.drawMonth=b.selectedMonth=b.currentMonth=h.getMonth();b.drawYear=b.selectedYear=b.currentYear=h.getFullYear();if((j!=b.selectedMonth||m!=b.selectedYear)&&
-!k)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 h=new Date;h=this._daylightSavingAdjust(new Date(h.getFullYear(),h.getMonth(),h.getDate()));var k=this._get(b,"isRTL"),l=this._get(b,"showButtonPanel"),j=this._get(b,"hideIfNoPrevNext"),m=this._get(b,"navigationAsDateFormat"),
-n=this._getNumberOfMonths(b),o=this._get(b,"showCurrentAtPos"),p=this._get(b,"stepMonths"),q=n[0]!=1||n[1]!=1,u=this._daylightSavingAdjust(!b.currentDay?new Date(9999,9,9):new Date(b.currentYear,b.currentMonth,b.currentDay)),s=this._getMinMaxDate(b,"min"),r=this._getMinMaxDate(b,"max");o=b.drawMonth-o;var t=b.drawYear;if(o<0){o+=12;t--}if(r){var v=this._daylightSavingAdjust(new Date(r.getFullYear(),r.getMonth()-n[0]*n[1]+1,r.getDate()));for(v=s&&v<s?s:v;this._daylightSavingAdjust(new Date(t,o,1))>
-v;){o--;if(o<0){o=11;t--}}}b.drawMonth=o;b.drawYear=t;v=this._get(b,"prevText");v=!m?v:this.formatDate(v,this._daylightSavingAdjust(new Date(t,o-p,1)),this._getFormatConfig(b));v=this._canAdjustMonth(b,-1,t,o)?'<a class="ui-datepicker-prev ui-corner-all" onclick="DP_jQuery_'+f+".datepicker._adjustDate('#"+b.id+"', -"+p+", 'M');\" title=\""+v+'"><span class="ui-icon ui-icon-circle-triangle-'+(k?"e":"w")+'">'+v+"</span></a>":j?"":'<a class="ui-datepicker-prev ui-corner-all ui-state-disabled" title="'+
-v+'"><span class="ui-icon ui-icon-circle-triangle-'+(k?"e":"w")+'">'+v+"</span></a>";var w=this._get(b,"nextText");w=!m?w:this.formatDate(w,this._daylightSavingAdjust(new Date(t,o+p,1)),this._getFormatConfig(b));j=this._canAdjustMonth(b,+1,t,o)?'<a class="ui-datepicker-next ui-corner-all" onclick="DP_jQuery_'+f+".datepicker._adjustDate('#"+b.id+"', +"+p+", 'M');\" title=\""+w+'"><span class="ui-icon ui-icon-circle-triangle-'+(k?"w":"e")+'">'+w+"</span></a>":j?"":'<a class="ui-datepicker-next ui-corner-all ui-state-disabled" title="'+
-w+'"><span class="ui-icon ui-icon-circle-triangle-'+(k?"w":"e")+'">'+w+"</span></a>";p=this._get(b,"currentText");w=this._get(b,"gotoCurrent")&&b.currentDay?u:h;p=!m?p:this.formatDate(p,w,this._getFormatConfig(b));m=!b.inline?'<button type="button" class="ui-datepicker-close ui-state-default ui-priority-primary ui-corner-all" onclick="DP_jQuery_'+f+'.datepicker._hideDatepicker();">'+this._get(b,"closeText")+"</button>":"";l=l?'<div class="ui-datepicker-buttonpane ui-widget-content">'+(k?m:"")+(this._isInRange(b,
-w)?'<button type="button" class="ui-datepicker-current ui-state-default ui-priority-secondary ui-corner-all" onclick="DP_jQuery_'+f+".datepicker._gotoToday('#"+b.id+"');\">"+p+"</button>":"")+(k?"":m)+"</div>":"";m=parseInt(this._get(b,"firstDay"),10);m=isNaN(m)?0:m;p=this._get(b,"showWeek");w=this._get(b,"dayNames");this._get(b,"dayNamesShort");var x=this._get(b,"dayNamesMin"),C=this._get(b,"monthNames"),A=this._get(b,"monthNamesShort"),y=this._get(b,"beforeShowDay"),D=this._get(b,"showOtherMonths"),
-J=this._get(b,"selectOtherMonths");this._get(b,"calculateWeek");for(var I=this._getDefaultDate(b),H="",E=0;E<n[0];E++){var K="";this.maxRows=4;for(var M=0;M<n[1];M++){var P=this._daylightSavingAdjust(new Date(t,o,b.selectedDay)),B=" ui-corner-all",F="";if(q){F+='<div class="ui-datepicker-group';if(n[1]>1)switch(M){case 0:F+=" ui-datepicker-group-first";B=" ui-corner-"+(k?"right":"left");break;case n[1]-1:F+=" ui-datepicker-group-last";B=" ui-corner-"+(k?"left":"right");break;default:F+=" ui-datepicker-group-middle";
-B=""}F+='">'}F+='<div class="ui-datepicker-header ui-widget-header ui-helper-clearfix'+B+'">'+(/all|left/.test(B)&&E==0?k?j:v:"")+(/all|right/.test(B)&&E==0?k?v:j:"")+this._generateMonthYearHeader(b,o,t,s,r,E>0||M>0,C,A)+'</div><table class="ui-datepicker-calendar"><thead><tr>';var G=p?'<th class="ui-datepicker-week-col">'+this._get(b,"weekHeader")+"</th>":"";for(B=0;B<7;B++){var z=(B+m)%7;G+="<th"+((B+m+6)%7>=5?' class="ui-datepicker-week-end"':"")+'><span title="'+w[z]+'">'+x[z]+"</span></th>"}F+=
-G+"</tr></thead><tbody>";G=this._getDaysInMonth(t,o);if(t==b.selectedYear&&o==b.selectedMonth)b.selectedDay=Math.min(b.selectedDay,G);B=(this._getFirstDayOfMonth(t,o)-m+7)%7;G=Math.ceil((B+G)/7);this.maxRows=G=q?this.maxRows>G?this.maxRows:G:G;z=this._daylightSavingAdjust(new Date(t,o,1-B));for(var Q=0;Q<G;Q++){F+="<tr>";var R=!p?"":'<td class="ui-datepicker-week-col">'+this._get(b,"calculateWeek")(z)+"</td>";for(B=0;B<7;B++){var N=y?y.apply(b.input?b.input[0]:null,[z]):[true,""],L=z.getMonth()!=
-o,O=L&&!J||!N[0]||s&&z<s||r&&z>r;R+='<td class="'+((B+m+6)%7>=5?" ui-datepicker-week-end":"")+(L?" ui-datepicker-other-month":"")+(z.getTime()==P.getTime()&&o==b.selectedMonth&&b._keyEvent||I.getTime()==z.getTime()&&I.getTime()==P.getTime()?" "+this._dayOverClass:"")+(O?" "+this._unselectableClass+" ui-state-disabled":"")+(L&&!D?"":" "+N[1]+(z.getTime()==u.getTime()?" "+this._currentClass:"")+(z.getTime()==h.getTime()?" ui-datepicker-today":""))+'"'+((!L||D)&&N[2]?' title="'+N[2]+'"':"")+(O?"":' onclick="DP_jQuery_'+
-f+".datepicker._selectDay('#"+b.id+"',"+z.getMonth()+","+z.getFullYear()+', this);return false;"')+">"+(L&&!D?"&#xa0;":O?'<span class="ui-state-default">'+z.getDate()+"</span>":'<a class="ui-state-default'+(z.getTime()==h.getTime()?" ui-state-highlight":"")+(z.getTime()==u.getTime()?" ui-state-active":"")+(L?" ui-priority-secondary":"")+'" href="#">'+z.getDate()+"</a>")+"</td>";z.setDate(z.getDate()+1);z=this._daylightSavingAdjust(z)}F+=R+"</tr>"}o++;if(o>11){o=0;t++}F+="</tbody></table>"+(q?"</div>"+
-(n[0]>0&&M==n[1]-1?'<div class="ui-datepicker-row-break"></div>':""):"");K+=F}H+=K}H+=l+(a.browser.msie&&parseInt(a.browser.version,10)<7&&!b.inline?'<iframe src="javascript:false;" class="ui-datepicker-cover" frameborder="0"></iframe>':"");b._keyEvent=false;return H},_generateMonthYearHeader:function(b,h,k,l,j,m,n,o){var p=this._get(b,"changeMonth"),q=this._get(b,"changeYear"),u=this._get(b,"showMonthAfterYear"),s='<div class="ui-datepicker-title">',r="";if(m||!p)r+='<span class="ui-datepicker-month">'+
-n[h]+"</span>";else{n=l&&l.getFullYear()==k;var t=j&&j.getFullYear()==k;r+='<select class="ui-datepicker-month" onchange="DP_jQuery_'+f+".datepicker._selectMonthYear('#"+b.id+"', this, 'M');\" >";for(var v=0;v<12;v++)if((!n||v>=l.getMonth())&&(!t||v<=j.getMonth()))r+='<option value="'+v+'"'+(v==h?' selected="selected"':"")+">"+o[v]+"</option>";r+="</select>"}u||(s+=r+(m||!(p&&q)?"&#xa0;":""));if(!b.yearshtml){b.yearshtml="";if(m||!q)s+='<span class="ui-datepicker-year">'+k+"</span>";else{o=this._get(b,
-"yearRange").split(":");var w=(new Date).getFullYear();n=function(x){x=x.match(/c[+-].*/)?k+parseInt(x.substring(1),10):x.match(/[+-].*/)?w+parseInt(x,10):parseInt(x,10);return isNaN(x)?w:x};h=n(o[0]);o=Math.max(h,n(o[1]||""));h=l?Math.max(h,l.getFullYear()):h;o=j?Math.min(o,j.getFullYear()):o;for(b.yearshtml+='<select class="ui-datepicker-year" onchange="DP_jQuery_'+f+".datepicker._selectMonthYear('#"+b.id+"', this, 'Y');\" >";h<=o;h++)b.yearshtml+='<option value="'+h+'"'+(h==k?' selected="selected"':
-"")+">"+h+"</option>";b.yearshtml+="</select>";s+=b.yearshtml;b.yearshtml=null}}s+=this._get(b,"yearSuffix");if(u)s+=(m||!(p&&q)?"&#xa0;":"")+r;s+="</div>";return s},_adjustInstDate:function(b,h,k){var l=b.drawYear+(k=="Y"?h:0),j=b.drawMonth+(k=="M"?h:0);h=Math.min(b.selectedDay,this._getDaysInMonth(l,j))+(k=="D"?h:0);l=this._restrictMinMax(b,this._daylightSavingAdjust(new Date(l,j,h)));b.selectedDay=l.getDate();b.drawMonth=b.selectedMonth=l.getMonth();b.drawYear=b.selectedYear=l.getFullYear();if(k==
-"M"||k=="Y")this._notifyChange(b)},_restrictMinMax:function(b,h){var k=this._getMinMaxDate(b,"min"),l=this._getMinMaxDate(b,"max");k=k&&h<k?k:h;return l&&k>l?l:k},_notifyChange:function(b){var h=this._get(b,"onChangeMonthYear");if(h)h.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,h){return this._determineDate(b,this._get(b,h+"Date"),null)},
-_getDaysInMonth:function(b,h){return 32-this._daylightSavingAdjust(new Date(b,h,32)).getDate()},_getFirstDayOfMonth:function(b,h){return(new Date(b,h,1)).getDay()},_canAdjustMonth:function(b,h,k,l){var j=this._getNumberOfMonths(b);k=this._daylightSavingAdjust(new Date(k,l+(h<0?h:j[0]*j[1]),1));h<0&&k.setDate(this._getDaysInMonth(k.getFullYear(),k.getMonth()));return this._isInRange(b,k)},_isInRange:function(b,h){var k=this._getMinMaxDate(b,"min"),l=this._getMinMaxDate(b,"max");return(!k||h.getTime()>=
-k.getTime())&&(!l||h.getTime()<=l.getTime())},_getFormatConfig:function(b){var h=this._get(b,"shortYearCutoff");h=typeof h!="string"?h:(new Date).getFullYear()%100+parseInt(h,10);return{shortYearCutoff:h,dayNamesShort:this._get(b,"dayNamesShort"),dayNames:this._get(b,"dayNames"),monthNamesShort:this._get(b,"monthNamesShort"),monthNames:this._get(b,"monthNames")}},_formatDate:function(b,h,k,l){if(!h){b.currentDay=b.selectedDay;b.currentMonth=b.selectedMonth;b.currentYear=b.selectedYear}h=h?typeof h==
-"object"?h:this._daylightSavingAdjust(new Date(l,k,h)):this._daylightSavingAdjust(new Date(b.currentYear,b.currentMonth,b.currentDay));return this.formatDate(this._get(b,"dateFormat"),h,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 h=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(h));if(b=="option"&&arguments.length==2&&typeof arguments[1]=="string")return a.datepicker["_"+b+"Datepicker"].apply(a.datepicker,[this[0]].concat(h));return this.each(function(){typeof b=="string"?a.datepicker["_"+b+"Datepicker"].apply(a.datepicker,[this].concat(h)):a.datepicker._attachDatepicker(this,b)})};a.datepicker=new d;a.datepicker.initialized=false;a.datepicker.uuid=(new Date).getTime();
-a.datepicker.version="1.9pre";window["DP_jQuery_"+f]=a})(jQuery);
-(function(a,g){var d={buttons:true,height:true,maxHeight:true,maxWidth:true,minHeight:true,minWidth:true,width:true},c={maxHeight:true,maxWidth:true,minHeight:true,minWidth:true};a.widget("ui.dialog",{version:"1.9pre",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",of:window,collision:"fit",using:function(e){var f=a(this).css(e).offset().top;
-f<0&&a(this).css("top",e.top-f)}},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 e=this,f=e.options,i=f.title||"&#160;",b=a.ui.dialog.getTitleId(e.element),h=(e.uiDialog=a("<div>")).addClass("ui-dialog ui-widget ui-widget-content ui-corner-all "+f.dialogClass).css({display:"none",outline:0,zIndex:f.zIndex}).attr("tabIndex",
--1).keydown(function(j){if(f.closeOnEscape&&!j.isDefaultPrevented()&&j.keyCode&&j.keyCode===a.ui.keyCode.ESCAPE){e.close(j);j.preventDefault()}}).attr({role:"dialog","aria-labelledby":b}).mousedown(function(j){e.moveToTop(false,j)}).appendTo("body");e.element.show().removeAttr("title").addClass("ui-dialog-content ui-widget-content").appendTo(h);var k=(e.uiDialogTitlebar=a("<div>")).addClass("ui-dialog-titlebar  ui-widget-header  ui-corner-all  ui-helper-clearfix").prependTo(h),l=a("<a href='#'></a>").addClass("ui-dialog-titlebar-close  ui-corner-all").attr("role",
-"button").click(function(j){j.preventDefault();e.close(j)}).appendTo(k);(e.uiDialogTitlebarCloseText=a("<span>")).addClass("ui-icon ui-icon-closethick").text(f.closeText).appendTo(l);a("<span>").addClass("ui-dialog-title").attr("id",b).html(i).prependTo(k);k.find("*").add(k).disableSelection();this._hoverable(l);this._focusable(l);f.draggable&&a.fn.draggable&&e._makeDraggable();f.resizable&&a.fn.resizable&&e._makeResizable();e._createButtons(f.buttons);e._isOpen=false;a.fn.bgiframe&&h.bgiframe()},
-_init:function(){this.options.autoOpen&&this.open()},_destroy:function(){this.overlay&&this.overlay.destroy();this.uiDialog.hide();this.element.removeClass("ui-dialog-content ui-widget-content").hide().appendTo("body");this.uiDialog.remove();this.originalTitle&&this.element.attr("title",this.originalTitle)},widget:function(){return this.uiDialog},close:function(e){if(!this._isOpen)return f;var f=this,i,b;if(false!==f._trigger("beforeClose",e)){f._isOpen=false;f.overlay&&f.overlay.destroy();f.uiDialog.unbind("keypress.ui-dialog");
-if(f.options.hide)f.uiDialog.hide(f.options.hide,function(){f._trigger("close",e)});else{f.uiDialog.hide();f._trigger("close",e)}a.ui.dialog.overlay.resize();if(f.options.modal){i=0;a(".ui-dialog").each(function(){if(this!==f.uiDialog[0]){b=a(this).css("z-index");isNaN(b)||(i=Math.max(i,b))}});a.ui.dialog.maxZ=i}return f}},isOpen:function(){return this._isOpen},moveToTop:function(e,f){var i=this.options;if(i.modal&&!e||!i.stack&&!i.modal)return this._trigger("focus",f);if(i.zIndex>a.ui.dialog.maxZ)a.ui.dialog.maxZ=
-i.zIndex;if(this.overlay){a.ui.dialog.maxZ+=1;a.ui.dialog.overlay.maxZ=a.ui.dialog.maxZ;this.overlay.$el.css("z-index",a.ui.dialog.overlay.maxZ)}i={scrollTop:this.element.scrollTop(),scrollLeft:this.element.scrollLeft()};a.ui.dialog.maxZ+=1;this.uiDialog.css("z-index",a.ui.dialog.maxZ);this.element.attr(i);this._trigger("focus",f);return this},open:function(){if(!this._isOpen){var e=this.options,f=this.uiDialog;this._size();this._position(e.position);f.show(e.show);this.overlay=e.modal?new a.ui.dialog.overlay(this):
-null;this.moveToTop(true);e.modal&&f.bind("keydown.ui-dialog",function(i){if(i.keyCode===a.ui.keyCode.TAB){var b=a(":tabbable",this),h=b.filter(":first");b=b.filter(":last");if(i.target===b[0]&&!i.shiftKey){h.focus(1);return false}else if(i.target===h[0]&&i.shiftKey){b.focus(1);return false}}});e=this.element.find(":tabbable");if(!e.length){e=f.find(".ui-dialog-buttonpane :tabbable");e.length||(e=f)}e.eq(0).focus();this._isOpen=true;this._trigger("open");return this}},_createButtons:function(e){var f=
-this,i=false;f.uiDialog.find(".ui-dialog-buttonpane").remove();typeof e==="object"&&e!==null&&a.each(e,function(){return!(i=true)});if(i){var b=a("<div>").addClass("ui-dialog-buttonpane  ui-widget-content ui-helper-clearfix"),h=a("<div>").addClass("ui-dialog-buttonset").appendTo(b);a.each(e,function(k,l){l=a.isFunction(l)?{click:l,text:k}:l;var j=a("<button type='button'>").attr(l,true).unbind("click").click(function(){l.click.apply(f.element[0],arguments)}).appendTo(h);a.fn.button&&j.button()});
-f.uiDialog.addClass("ui-dialog-buttons");b.appendTo(f.uiDialog)}else f.uiDialog.removeClass("ui-dialog-buttons")},_makeDraggable:function(){function e(h){return{position:h.position,offset:h.offset}}var f=this,i=f.options,b=a(document);f.uiDialog.draggable({cancel:".ui-dialog-content, .ui-dialog-titlebar-close",handle:".ui-dialog-titlebar",containment:"document",start:function(h,k){a(this).addClass("ui-dialog-dragging");f._trigger("dragStart",h,e(k))},drag:function(h,k){f._trigger("drag",h,e(k))},
-stop:function(h,k){i.position=[k.position.left-b.scrollLeft(),k.position.top-b.scrollTop()];a(this).removeClass("ui-dialog-dragging");f._trigger("dragStop",h,e(k));a.ui.dialog.overlay.resize()}})},_makeResizable:function(e){function f(k){return{originalPosition:k.originalPosition,originalSize:k.originalSize,position:k.position,size:k.size}}e=e===g?this.options.resizable:e;var i=this,b=i.options,h=i.uiDialog.css("position");e=typeof e==="string"?e:"n,e,s,w,se,sw,ne,nw";i.uiDialog.resizable({cancel:".ui-dialog-content",
-containment:"document",alsoResize:i.element,maxWidth:b.maxWidth,maxHeight:b.maxHeight,minWidth:b.minWidth,minHeight:i._minHeight(),handles:e,start:function(k,l){a(this).addClass("ui-dialog-resizing");i._trigger("resizeStart",k,f(l))},resize:function(k,l){i._trigger("resize",k,f(l))},stop:function(k,l){a(this).removeClass("ui-dialog-resizing");b.height=a(this).height();b.width=a(this).width();i._trigger("resizeStop",k,f(l));a.ui.dialog.overlay.resize()}}).css("position",h).find(".ui-resizable-se").addClass("ui-icon ui-icon-grip-diagonal-se")},
-_minHeight:function(){var e=this.options;return e.height==="auto"?e.minHeight:Math.min(e.minHeight,e.height)},_position:function(e){var f=[],i=[0,0],b;if(e){if(typeof e==="string"||typeof e==="object"&&"0"in e){f=e.split?e.split(" "):[e[0],e[1]];if(f.length===1)f[1]=f[0];a.each(["left","top"],function(h,k){if(+f[h]===f[h]){i[h]=f[h];f[h]=k}});e={my:f.join(" "),at:f.join(" "),offset:i.join(" ")}}e=a.extend({},a.ui.dialog.prototype.options.position,e)}else e=a.ui.dialog.prototype.options.position;(b=
-this.uiDialog.is(":visible"))||this.uiDialog.show();this.uiDialog.position(e);b||this.uiDialog.hide()},_setOptions:function(e){var f=this,i={},b=false;a.each(e,function(h,k){f._setOption(h,k);if(h in d)b=true;if(h in c)i[h]=k});b&&this._size();this.uiDialog.is(":data(resizable)")&&this.uiDialog.resizable("option",i)},_setOption:function(e,f){var i=this.uiDialog;switch(e){case "buttons":this._createButtons(f);break;case "closeText":this.uiDialogTitlebarCloseText.text(""+f);break;case "dialogClass":i.removeClass(this.options.dialogClass).addClass("ui-dialog ui-widget ui-widget-content ui-corner-all "+
-f);break;case "disabled":f?i.addClass("ui-dialog-disabled"):i.removeClass("ui-dialog-disabled");break;case "draggable":var b=i.is(":data(draggable)");b&&!f&&i.draggable("destroy");!b&&f&&this._makeDraggable();break;case "position":this._position(f);break;case "resizable":(b=i.is(":data(resizable)"))&&!f&&i.resizable("destroy");b&&typeof f==="string"&&i.resizable("option","handles",f);!b&&f!==false&&this._makeResizable(f);break;case "title":a(".ui-dialog-title",this.uiDialogTitlebar).html(""+(f||"&#160;"))}this._super("_setOption",
-e,f)},_size:function(){var e=this.options,f,i,b=this.uiDialog.is(":visible");this.element.show().css({width:"auto",minHeight:0,height:0});if(e.minWidth>e.width)e.width=e.minWidth;f=this.uiDialog.css({height:"auto",width:e.width}).height();i=Math.max(0,e.minHeight-f);if(e.height==="auto")if(a.support.minHeight)this.element.css({minHeight:i,height:"auto"});else{this.uiDialog.show();e=this.element.css("height","auto").height();b||this.uiDialog.hide();this.element.height(Math.max(e,i))}else this.element.height(Math.max(e.height-
-f,0));this.uiDialog.is(":data(resizable)")&&this.uiDialog.resizable("option","minHeight",this._minHeight())}});a.extend(a.ui.dialog,{uuid:0,maxZ:0,getTitleId:function(e){e=e.attr("id");if(!e){this.uuid+=1;e=this.uuid}return"ui-dialog-title-"+e},overlay:function(e){this.$el=a.ui.dialog.overlay.create(e)}});a.extend(a.ui.dialog.overlay,{instances:[],oldInstances:[],maxZ:0,events:a.map("focus,mousedown,mouseup,keydown,keypress,click".split(","),function(e){return e+".dialog-overlay"}).join(" "),create:function(e){if(this.instances.length===
-0){setTimeout(function(){a.ui.dialog.overlay.instances.length&&a(document).bind(a.ui.dialog.overlay.events,function(i){if(a(i.target).zIndex()<a.ui.dialog.overlay.maxZ)return false})},1);a(document).bind("keydown.dialog-overlay",function(i){if(e.options.closeOnEscape&&!i.isDefaultPrevented()&&i.keyCode&&i.keyCode===a.ui.keyCode.ESCAPE){e.close(i);i.preventDefault()}});a(window).bind("resize.dialog-overlay",a.ui.dialog.overlay.resize)}var f=(this.oldInstances.pop()||a("<div>").addClass("ui-widget-overlay")).appendTo(document.body).css({width:this.width(),
-height:this.height()});a.fn.bgiframe&&f.bgiframe();this.instances.push(f);return f},destroy:function(e){var f=a.inArray(e,this.instances);f!==-1&&this.oldInstances.push(this.instances.splice(f,1)[0]);this.instances.length===0&&a([document,window]).unbind(".dialog-overlay");e.height(0).width(0).remove();var i=0;a.each(this.instances,function(){i=Math.max(i,this.css("z-index"))});this.maxZ=i},height:function(){var e,f;if(a.browser.msie){e=Math.max(document.documentElement.scrollHeight,document.body.scrollHeight);
-f=Math.max(document.documentElement.offsetHeight,document.body.offsetHeight);return e<f?a(window).height()+"px":e+"px"}else return a(document).height()+"px"},width:function(){var e,f;if(a.browser.msie){e=Math.max(document.documentElement.scrollWidth,document.body.scrollWidth);f=Math.max(document.documentElement.offsetWidth,document.body.offsetWidth);return e<f?a(window).width()+"px":e+"px"}else return a(document).width()+"px"},resize:function(){var e=a([]);a.each(a.ui.dialog.overlay.instances,function(){e=
-e.add(this)});e.css({width:0,height:0}).css({width:a.ui.dialog.overlay.width(),height:a.ui.dialog.overlay.height()})}});a.extend(a.ui.dialog.overlay.prototype,{destroy:function(){a.ui.dialog.overlay.destroy(this.$el)}})})(jQuery);
-(function(a){var g=0;a.widget("ui.menu",{version:"1.9pre",defaultElement:"<ul>",delay:150,options:{items:"ul",position:{my:"left top",at:"right top"}},_create:function(){this.activeMenu=this.element;this.isScrolling=false;this.menuId=this.element.attr("id")||"ui-menu-"+g++;this.element.find(".ui-icon").length&&this.element.addClass("ui-menu-icons");this.element.addClass("ui-menu ui-widget ui-widget-content ui-corner-all").attr({id:this.menuId,role:"menu"}).bind("click.menu",a.proxy(function(d){this.options.disabled&&
-d.preventDefault()},this));this._bind({"click .ui-menu-item:has(a)":function(d){d.stopImmediatePropagation();var c=a(d.currentTarget);if(!this.active||this.active[0]!==c[0])this.focus(d,c);this.select(d)},"mouseover .ui-menu-item":function(d){d.stopImmediatePropagation();if(!this.isScrolling){var c=a(d.currentTarget);c.siblings().children(".ui-state-active").removeClass("ui-state-active");this.focus(d,c)}this.isScrolling=false},mouseleave:"collapseAll","mouseleave .ui-menu":"collapseAll","mouseout .ui-menu-item":"blur",
-focus:function(d){this.focus(d,a(d.target).children(".ui-menu-item:first"))},blur:function(d){this._delay(function(){a.contains(this.element[0],document.activeElement)||this.collapseAll(d)},0)},scroll:function(){this.isScrolling=true}});this.refresh();this.element.attr("tabIndex",0);this._bind({keydown:function(d){switch(d.keyCode){case a.ui.keyCode.PAGE_UP:this.previousPage(d);d.preventDefault();d.stopImmediatePropagation();break;case a.ui.keyCode.PAGE_DOWN:this.nextPage(d);d.preventDefault();d.stopImmediatePropagation();
-break;case a.ui.keyCode.HOME:this._move("first","first",d);d.preventDefault();d.stopImmediatePropagation();break;case a.ui.keyCode.END:this._move("last","last",d);d.preventDefault();d.stopImmediatePropagation();break;case a.ui.keyCode.UP:this.previous(d);d.preventDefault();d.stopImmediatePropagation();break;case a.ui.keyCode.DOWN:this.next(d);d.preventDefault();d.stopImmediatePropagation();break;case a.ui.keyCode.LEFT:this.collapse(d)&&d.stopImmediatePropagation();d.preventDefault();break;case a.ui.keyCode.RIGHT:this.expand(d)&&
-d.stopImmediatePropagation();d.preventDefault();break;case a.ui.keyCode.ENTER:if(this.active.children("a[aria-haspopup='true']").length)this.expand(d)&&d.stopImmediatePropagation();else{this.select(d);d.stopImmediatePropagation()}d.preventDefault();break;case a.ui.keyCode.ESCAPE:this.collapse(d)&&d.stopImmediatePropagation();d.preventDefault();break;default:d.stopPropagation();clearTimeout(this.filterTimer);var c;c=this.previousFilter||"";var e=String.fromCharCode(d.keyCode),f=false;if(e==c)f=true;
-else e=c+e;var i=function(b){return b.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&")};c=this.activeMenu.children(".ui-menu-item").filter(function(){return RegExp("^"+i(e),"i").test(a(this).children("a").text())});c=f&&c.index(this.active.next())!=-1?this.active.nextAll(".ui-menu-item"):c;if(!c.length){e=String.fromCharCode(d.keyCode);c=this.activeMenu.children(".ui-menu-item").filter(function(){return RegExp("^"+i(e),"i").test(a(this).children("a").text())})}if(c.length){this.focus(d,c);if(c.length>1){this.previousFilter=
-e;this.filterTimer=this._delay(function(){delete this.previousFilter},1E3)}else delete this.previousFilter}else delete this.previousFilter}}});this._bind(document,{click:function(d){a(d.target).closest(".ui-menu").length||this.collapseAll(d)}})},_destroy:function(){this.element.removeAttr("aria-activedescendant").find(".ui-menu").andSelf().removeClass("ui-menu ui-widget ui-widget-content ui-corner-all").removeAttr("role").removeAttr("tabIndex").removeAttr("aria-labelledby").removeAttr("aria-expanded").removeAttr("aria-hidden").show();
-this.element.find(".ui-menu-item").unbind(".menu").removeClass("ui-menu-item").removeAttr("role").children("a").removeClass("ui-corner-all ui-state-hover").removeAttr("tabIndex").removeAttr("role").removeAttr("aria-haspopup").removeAttr("id").children(".ui-icon").remove()},refresh:function(){var d=this.element.find(this.options.items+":not( .ui-menu )").addClass("ui-menu ui-widget ui-widget-content ui-corner-all").attr("role","menu").hide().attr("aria-hidden","true").attr("aria-expanded","false"),
-c=this.menuId;d.add(this.element).children(":not( .ui-menu-item ):has( a )").addClass("ui-menu-item").attr("role","presentation").children("a").addClass("ui-corner-all").attr("tabIndex",-1).attr("role","menuitem").attr("id",function(e){return c+"-"+e});d.each(function(){var e=a(this),f=e.prev("a");f.attr("aria-haspopup","true").prepend('<span class="ui-menu-icon ui-icon ui-icon-carat-1-e"></span>');e.attr("aria-labelledby",f.attr("id"))})},focus:function(d,c){this.blur(d);if(this._hasScroll()){var e=
-parseFloat(a.curCSS(this.activeMenu[0],"borderTopWidth",true))||0,f=parseFloat(a.curCSS(this.activeMenu[0],"paddingTop",true))||0;e=c.offset().top-this.activeMenu.offset().top-e-f;f=this.activeMenu.scrollTop();var i=this.activeMenu.height(),b=c.height();if(e<0)this.activeMenu.scrollTop(f+e);else e+b>i&&this.activeMenu.scrollTop(f+e-i+b)}this.active=c.first().children("a").addClass("ui-state-focus").end();this.element.attr("aria-activedescendant",this.active.children("a").attr("id"));this.active.parent().closest(".ui-menu-item").children("a:first").addClass("ui-state-active");
-this.timer=this._delay(function(){this._close()},this.delay);e=a("> .ui-menu",c);e.length&&/^mouse/.test(d.type)&&this._startOpening(e);this.activeMenu=c.parent();this._trigger("focus",d,{item:c})},blur:function(d){if(this.active){clearTimeout(this.timer);this.active.children("a").removeClass("ui-state-focus");this.active=null;this._trigger("blur",d,{item:this.active})}},_startOpening:function(d){clearTimeout(this.timer);if(d.attr("aria-hidden")==="true")this.timer=this._delay(function(){this._close();
-this._open(d)},this.delay)},_open:function(d){clearTimeout(this.timer);this.element.find(".ui-menu").not(d.parents()).hide().attr("aria-hidden","true");var c=a.extend({},{of:this.active},a.type(this.options.position)=="function"?this.options.position(this.active):this.options.position);d.show().removeAttr("aria-hidden").attr("aria-expanded","true").position(c)},collapseAll:function(d,c){var e=c?this.element:a(d&&d.target).closest(this.element.find(".ui-menu"));if(!e.length)e=this.element;this._close(e);
-this.blur(d);this.activeMenu=e},_close:function(d){d||(d=this.active?this.active.parent():this.element);d.find(".ui-menu").hide().attr("aria-hidden","true").attr("aria-expanded","false").end().find("a.ui-state-active").removeClass("ui-state-active")},collapse:function(d){var c=this.active&&this.active.parent().closest(".ui-menu-item",this.element);if(c&&c.length){this._close();this.focus(d,c);return true}},expand:function(d){var c=this.active&&this.active.children(".ui-menu ").children(".ui-menu-item").first();
-if(c&&c.length){this._open(c.parent());this._delay(function(){this.focus(d,c)},20);return true}},next:function(d){this._move("next","first",d)},previous:function(d){this._move("prev","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=d==="first"||d==="last"?this.active[d==="first"?"prevAll":"nextAll"](".ui-menu-item").eq(-1):this.active[d+
-"All"](".ui-menu-item").eq(0);d.length?this.focus(e,d):this.focus(e,this.activeMenu.children(".ui-menu-item")[c]())}else this.focus(e,this.activeMenu.children(".ui-menu-item")[c]())},nextPage:function(d){if(this._hasScroll())if(this.active){if(!this.last()){var c=this.active.offset().top,e=this.element.height(),f;this.active.nextAll(".ui-menu-item").each(function(){f=a(this);return a(this).offset().top-c-e<0});this.focus(d,f)}}else this.focus(d,this.activeMenu.children(".ui-menu-item").first());else this.focus(d,
-this.activeMenu.children(".ui-menu-item")[!this.active?"first":"last"]())},previousPage:function(d){if(this._hasScroll())if(this.active){if(!this.first()){var c=this.active.offset().top,e=this.element.height(),f;this.active.prevAll(".ui-menu-item").each(function(){f=a(this);return a(this).offset().top-c+e>0});this.focus(d,f)}}else this.focus(d,this.activeMenu.children(".ui-menu-item").first());else this.focus(d,this.activeMenu.children(".ui-menu-item").first())},_hasScroll:function(){return this.element.height()<
-this.element.prop("scrollHeight")},select:function(d){var c={item:this.active};this.collapseAll(d,true);this._trigger("select",d,c)}})})(jQuery);
-(function(a){a.widget("ui.menubar",{version:"1.9pre",options:{autoExpand:false,buttons:false,menuIcon:false,position:{my:"left top",at:"left bottom"}},_create:function(){var g=this,d=this.items=this.element.children("li").addClass("ui-menubar-item").attr("role","presentation").children("button, a");d.slice(1).attr("tabIndex",-1);this.element.addClass("ui-menubar ui-widget-header ui-helper-clearfix").attr("role","menubar");this._focusable(d);this._hoverable(d);d.next("ul").menu({position:{within:this.options.position.within},
-select:function(c,e){e.item.parents("ul.ui-menu:last").hide();g._close();a(c.target).prev().focus();g._trigger("select",c,e)}}).hide().attr({"aria-hidden":"true","aria-expanded":"false"}).bind("keydown.menubar",function(c){if(!a(this).is(":hidden"))switch(c.keyCode){case a.ui.keyCode.LEFT:g._left(c);c.preventDefault();break;case a.ui.keyCode.RIGHT:g._right(c);c.preventDefault()}});d.each(function(){var c=a(this),e=c.next("ul");c.bind("click.menubar focus.menubar mouseenter.menubar",function(f){if(!(f.type==
-"focus"&&!f.originalEvent)){f.preventDefault();if(f.type=="click"&&e.is(":visible")&&g.active&&g.active[0]==e[0])g._close();else if(g.open&&f.type=="mouseenter"||f.type=="click"||g.options.autoExpand){g.options.autoExpand&&clearTimeout(g.closeTimer);g._open(f,e)}}}).bind("keydown",function(f){switch(f.keyCode){case a.ui.keyCode.SPACE:case a.ui.keyCode.UP:case a.ui.keyCode.DOWN:g._open(f,a(this).next());f.preventDefault();break;case a.ui.keyCode.LEFT:g._prev(f,a(this));f.preventDefault();break;case a.ui.keyCode.RIGHT:g._next(f,
-a(this));f.preventDefault()}}).addClass("ui-button ui-widget ui-button-text-only ui-menubar-link").attr("role","menuitem").attr("aria-haspopup","true").wrapInner("<span class='ui-button-text'></span>");if(g.options.menuIcon){c.addClass("ui-state-default").append("<span class='ui-button-icon-secondary ui-icon ui-icon-triangle-1-s'></span>");c.removeClass("ui-button-text-only").addClass("ui-button-text-icon-secondary")}g.options.buttons||c.addClass("ui-menubar-link").removeClass("ui-state-default")});
-g._bind({keydown:function(c){if(c.keyCode==a.ui.keyCode.ESCAPE&&g.active&&g.active.menu("collapse",c)!==true){var e=g.active;g.active.blur();g._close(c);e.prev().focus()}},focusin:function(){clearTimeout(g.closeTimer)},focusout:function(c){g.closeTimer=setTimeout(function(){g._close(c)},150)},"mouseleave .ui-menubar-item":function(c){if(g.options.autoExpand)g.closeTimer=setTimeout(function(){g._close(c)},150)},"mouseenter .ui-menubar-item":function(){clearTimeout(g.closeTimer)}})},_destroy:function(){var g=
-this.element.children("li").removeClass("ui-menubar-item").removeAttr("role").children("button, a");this.element.removeClass("ui-menubar ui-widget-header ui-helper-clearfix").removeAttr("role").unbind(".menubar");g.unbind(".menubar").removeClass("ui-button ui-widget ui-button-text-only ui-menubar-link ui-state-default").removeAttr("role").removeAttr("aria-haspopup").children("span.ui-button-text").each(function(){var d=a(this);d.parent().html(d.html())}).end().children(".ui-icon").remove();this.element.find(":ui-menu").menu("destroy").show().removeAttr("aria-hidden").removeAttr("aria-expanded").removeAttr("tabindex").unbind(".menubar")},
-_close:function(){if(this.active&&this.active.length){this.active.menu("collapseAll").hide().attr({"aria-hidden":"true","aria-expanded":"false"});this.active.prev().removeClass("ui-state-active").removeAttr("tabIndex");this.active=null;this.open=false}},_open:function(g,d){if(!(this.active&&this.active[0]==d[0])){if(this.active){this.active.menu("collapseAll").hide().attr({"aria-hidden":"true","aria-expanded":"false"});this.active.prev().removeClass("ui-state-active")}var c=d.prev().addClass("ui-state-active").attr("tabIndex",
--1);this.active=d.show().position(a.extend({of:c},this.options.position)).removeAttr("aria-hidden").attr("aria-expanded","true").menu("focus",g,d.children("li").first()).focus().focusin();this.open=true}},_prev:function(g,d){d.attr("tabIndex",-1);var c=d.parent().prevAll("li").children(".ui-button").eq(0);c.length?c.removeAttr("tabIndex")[0].focus():this.element.children("li:last").children(".ui-button:last").removeAttr("tabIndex")[0].focus()},_next:function(g,d){d.attr("tabIndex",-1);var c=d.parent().nextAll("li").children(".ui-button").eq(0);
-c.length?c.removeAttr("tabIndex")[0].focus():this.element.children("li:first").children(".ui-button:first").removeAttr("tabIndex")[0].focus()},_left:function(g){var d=this.active.parent().prevAll("li:eq(0)").children(".ui-menu").eq(0);d.length||(d=this.element.children("li:last").children(".ui-menu:first"));this._open(g,d)},_right:function(g){var d=this.active.parent().nextAll("li:eq(0)").children(".ui-menu").eq(0);d.length||(d=this.element.children("li:first").children(".ui-menu:first"));this._open(g,
-d)}})})(jQuery);
-(function(a){var g=0;a.widget("ui.popup",{version:"1.9pre",options:{position:{my:"left top",at:"left bottom"},show:{effect:"slideDown",duration:"fast"},hide:{effect:"fadeOut",duration:"fast"}},_create:function(){if(!this.options.trigger)this.options.trigger=this.element.prev();if(!this.element.attr("id")){this.element.attr("id","ui-popup-"+g++);this.generatedId=true}if(!this.element.attr("role")){this.element.attr("role","dialog");this.generatedRole=true}this.options.trigger.attr("aria-haspopup","true").attr("aria-owns",
-this.element.attr("id"));this.element.addClass("ui-popup");this._beforeClose();this.element.hide();this._bind(this.options.trigger,{keydown:function(d){a.ui.button&&this.options.trigger.is("a:ui-button")&&d.keyCode==a.ui.keyCode.SPACE&&d.preventDefault();d.keyCode==a.ui.keyCode.SPACE&&this.options.trigger.is("a:not(:ui-button)")&&this.options.trigger.trigger("click",d);if(d.keyCode==a.ui.keyCode.DOWN){d.preventDefault();this.options.trigger.trigger("click",d)}},click:function(d){d.preventDefault();
-if(!this.isOpen){clearTimeout(this.closeTimer);this._delay(function(){this.open(d)},1)}}});if(!a.ui.menu||!this.element.is(":ui-menu"))this._bind({keydown:function(d){if(d.keyCode===a.ui.keyCode.TAB){var c=a(":tabbable",this.element),e=c.first();c=c.last();if(d.target===c[0]&&!d.shiftKey){e.focus(1);d.preventDefault()}else if(d.target===e[0]&&d.shiftKey){c.focus(1);d.preventDefault()}}}});this._bind({keyup:function(d){if(d.keyCode==a.ui.keyCode.ESCAPE&&this.element.is(":visible")){this.close(d);this.options.trigger.focus()}}});
-this._bind(document,{click:function(d){this.isOpen&&!a(d.target).closest(".ui-popup").length&&this.close(d)}})},_destroy:function(){this.element.show().removeClass("ui-popup").removeAttr("aria-hidden").removeAttr("aria-expanded").unbind("keypress.ui-popup");this.options.trigger.removeAttr("aria-haspopup").removeAttr("aria-owns");this.generatedId&&this.element.removeAttr("id");this.generatedRole&&this.element.removeAttr("role")},open:function(d){var c=a.extend({},{of:this.options.trigger},this.options.position);
-this._show(this.element,this.options.show);this.element.attr("aria-hidden","false").attr("aria-expanded","true").position(c);if(a.ui.menu&&this.element.is(":ui-menu")){this.element.menu("focus",d,this.element.children("li").first());this.element.focus()}else{c=this.element.find(":tabbable");this.removeTabIndex=false;if(!c.length){if(!this.element.is(":tabbable")){this.element.attr("tabindex","0");this.removeTabIndex=true}c=c.add(this.element[0])}c.first().focus(1)}this.options.trigger.attr("tabindex",
--1);this.isOpen=true;this._trigger("open",d)},close:function(d){this._beforeClose();this._hide(this.element,this.options.hide);this.options.trigger.attr("tabindex",0);this.removeTabIndex&&this.element.removeAttr("tabindex");this.isOpen=false;this._trigger("close",d)},_beforeClose:function(){this.element.attr("aria-hidden","true").attr("aria-expanded","false")}})})(jQuery);
-(function(a,g){a.ui=a.ui||{};var d=/left|center|right/,c=/top|center|bottom/,e=/[+-]\d+%?/,f=/^\w+/,i=/%$/,b=a.fn.position;a.position={scrollbarWidth:function(){var h,k,l=a("<div style='display:block;width:50px;height:50px;overflow:hidden;'><div style='height:100px;width:auto;'></div></div>");k=l.children()[0];a("body").append(l);h=k.offsetWidth;l.css("overflow","scroll");k=k.offsetWidth;if(h===k)k=l[0].clientWidth;l.remove();return h-k},getScrollInfo:function(h){var k=h[0]!==window,l=k?h.css("overflow-x"):
-"";k=k?h.css("overflow-y"):"";l=l==="auto"||l==="scroll"?a.position.scrollbarWidth():0;k=k==="auto"||k==="scroll"?a.position.scrollbarWidth():0;return{height:h.height()<h[0].scrollHeight?k:0,width:h.width()<h[0].scrollWidth?l:0}}};a.fn.position=function(h){if(!h||!h.of)return b.apply(this,arguments);h=a.extend({},h);var k=a(h.of),l=a(h.within||window),j=k[0],m=(h.collision||"flip").split(" "),n={},o,p,q,u;if(j.nodeType===9){p=k.width();q=k.height();u={top:0,left:0}}else if(a.isWindow(j)){p=k.width();
-q=k.height();u={top:k.scrollTop(),left:k.scrollLeft()}}else if(j.preventDefault){h.at="left top";p=q=0;u={top:h.of.pageY,left:h.of.pageX}}else{p=k.outerWidth();q=k.outerHeight();u=k.offset()}a.each(["my","at"],function(){var s=(h[this]||"").split(" "),r,t;if(s.length===1)s=d.test(s[0])?s.concat(["center"]):c.test(s[0])?["center"].concat(s):["center","center"];s[0]=d.test(s[0])?s[0]:"center";s[1]=c.test(s[1])?s[1]:"center";r=e.exec(s[0]);t=e.exec(s[1]);n[this]=[r?r[0]:0,t?t[0]:0];h[this]=[f.exec(s[0])[0],
-f.exec(s[1])[0]]});if(m.length===1)m[1]=m[0];if(h.at[0]==="right")u.left+=p;else if(h.at[0]==="center")u.left+=p/2;if(h.at[1]==="bottom")u.top+=q;else if(h.at[1]==="center")u.top+=q/2;o=[parseInt(n.at[0],10)*(i.test(n.at[0])?p/100:1),parseInt(n.at[1],10)*(i.test(n.at[1])?q/100:1)];u.left+=o[0];u.top+=o[1];return this.each(function(){var s=a(this),r=s.outerWidth(),t=s.outerHeight(),v=parseInt(a.curCSS(this,"marginLeft",true))||0,w=parseInt(a.curCSS(this,"marginTop",true))||0,x=a.position.getScrollInfo(l),
-C=r+v+(parseInt(a.curCSS(this,"marginRight",true))||0)+x.width,A=t+w+(parseInt(a.curCSS(this,"marginBottom",true))||0)+x.height,y=a.extend({},u),D=[parseInt(n.my[0],10)*(i.test(n.my[0])?s.outerWidth()/100:1),parseInt(n.my[1],10)*(i.test(n.my[1])?s.outerHeight()/100:1)],J;if(h.my[0]==="right")y.left-=r;else if(h.my[0]==="center")y.left-=r/2;if(h.my[1]==="bottom")y.top-=t;else if(h.my[1]==="center")y.top-=t/2;y.left+=D[0];y.top+=D[1];J={marginLeft:v,marginTop:w};a.each(["left","top"],function(I,H){if(a.ui.position[m[I]])a.ui.position[m[I]][H](y,
-{targetWidth:p,targetHeight:q,elemWidth:r,elemHeight:t,collisionPosition:J,collisionWidth:C,collisionHeight:A,offset:[o[0]+D[0],o[1]+D[1]],my:h.my,at:h.at,within:l,elem:s})});a.fn.bgiframe&&s.bgiframe();s.offset(a.extend(y,{using:h.using}))})};a.ui.position={fit:{left:function(h,k){var l=k.within,j=a(window),m=a.isWindow(k.within[0]),n=m?j.scrollLeft():l.offset().left;j=m?j.width():l.outerWidth();m=h.left-k.collisionPosition.marginLeft;l=n-m;var o=m+k.collisionWidth-j-n;if(k.collisionWidth>j)if(l>
-0&&o<=0){n=h.left+l+k.collisionWidth-j-n;h.left+=l-n}else h.left=o>0&&l<=0?n:l>o?n+j-k.collisionWidth:n;else if(l>0)h.left+=l;else if(o>0)h.left-=o;else h.left=Math.max(h.left-m,h.left)},top:function(h,k){var l=k.within,j=a(window),m=a.isWindow(k.within[0]),n=m?j.scrollTop():l.offset().top;j=m?j.height():l.outerHeight();m=h.top-k.collisionPosition.marginTop;l=n-m;var o=m+k.collisionHeight-j-n;if(k.collisionHeight>j)if(l>0&&o<=0){n=h.top+l+k.collisionHeight-j-n;h.top+=l-n}else h.top=o>0&&l<=0?n:l>
-o?n+j-k.collisionHeight:n;else if(l>0)h.top+=l;else if(o>0)h.top-=o;else h.top=Math.max(h.top-m,h.top)}},flip:{left:function(h,k){if(k.at[0]!=="center"){k.elem.removeClass("ui-flipped-left ui-flipped-right");var l=k.within;a(window);var j=a.isWindow(k.within[0]),m=(j?0:l.offset().left)+l.scrollLeft(),n=j?l.width():l.outerWidth();j=h.left-k.collisionPosition.marginLeft;l=j-m;var o=j+k.collisionWidth-n-m;j=k.my[0]==="left"?-k.elemWidth:k.my[0]==="right"?k.elemWidth:0;var p=k.at[0]==="left"?k.targetWidth:
--k.targetWidth,q=-2*k.offset[0];if(l<0){m=h.left+j+p+q+k.collisionWidth-n-m;if(m<0||m<Math.abs(l)){k.elem.addClass("ui-flipped-right");h.left+=j+p+q}}else if(o>0){m=h.left-k.collisionPosition.marginLeft+j+p+q-m;if(m>0||Math.abs(m)<o){k.elem.addClass("ui-flipped-left");h.left+=j+p+q}}}},top:function(h,k){if(k.at[1]!=="center"){k.elem.removeClass("ui-flipped-top ui-flipped-bottom");var l=k.within;a(window);var j=a.isWindow(k.within[0]),m=(j?0:l.offset().top)+l.scrollTop(),n=j?l.height():l.outerHeight();
-j=h.top-k.collisionPosition.marginTop;l=j-m;var o=j+k.collisionHeight-n-m;j=k.my[1]==="top"?-k.elemHeight:k.my[1]==="bottom"?k.elemHeight:0;var p=k.at[1]==="top"?k.targetHeight:-k.targetHeight,q=-2*k.offset[1];if(l<0){m=h.top+j+p+q+k.collisionHeight-n-m;if(h.top+j+p+q>l&&(m<0||m<Math.abs(l))){k.elem.addClass("ui-flipped-bottom");h.top+=j+p+q}}else if(o>0){m=h.top-k.collisionPosition.marginTop+j+p+q-m;if(h.top+j+p+q>o&&(m>0||Math.abs(m)<o)){k.elem.addClass("ui-flipped-top");h.top+=j+p+q}}}}},flipfit:{left:function(){a.ui.position.flip.left.apply(this,
-arguments);a.ui.position.fit.left.apply(this,arguments)},top:function(){a.ui.position.flip.top.apply(this,arguments);a.ui.position.fit.top.apply(this,arguments)}}};a.uiBackCompat!==false&&function(h){var k=h.fn.position;h.fn.position=function(l){if(!l||!l.offset)return k.call(this,l);var j=l.offset.split(" "),m=l.at.split(" ");if(j.length===1)j[1]=j[0];if(/^\d/.test(j[0]))j[0]="+"+j[0];if(/^\d/.test(j[1]))j[1]="+"+j[1];if(m.length===1)if(/left|center|right/.test(m[0]))m[1]="center";else{m[1]=m[0];
-m[0]="center"}return k.call(this,h.extend(l,{at:m[0]+j[0]+" "+m[1]+j[1],offset:g}))}}(jQuery)})(jQuery);
-(function(a,g){a.widget("ui.progressbar",{version:"1.9pre",options:{value:0,max:100},min:0,_create:function(){this.element.addClass("ui-progressbar ui-widget ui-widget-content ui-corner-all").attr({role:"progressbar","aria-valuemin":this.min,"aria-valuemax":this.options.max,"aria-valuenow":this._value()});this.valueDiv=a("<div class='ui-progressbar-value ui-widget-header ui-corner-left'></div>").appendTo(this.element);this.oldValue=this._value();this._refreshValue()},_destroy:function(){this.element.removeClass("ui-progressbar ui-widget ui-widget-content ui-corner-all").removeAttr("role").removeAttr("aria-valuemin").removeAttr("aria-valuemax").removeAttr("aria-valuenow");
-this.valueDiv.remove()},value:function(d){if(d===g)return this._value();this._setOption("value",d);return this},_setOption:function(d,c){if(d==="value"){this.options.value=c;this._refreshValue();this._value()===this.options.max&&this._trigger("complete")}this._super("_setOption",d,c)},_value:function(){var d=this.options.value;if(typeof d!=="number")d=0;return Math.min(this.options.max,Math.max(this.min,d))},_percentage:function(){return 100*this._value()/this.options.max},_refreshValue:function(){var d=
-this.value(),c=this._percentage();if(this.oldValue!==d){this.oldValue=d;this._trigger("change")}this.valueDiv.toggle(d>this.min).toggleClass("ui-corner-right",d===this.options.max).width(c.toFixed(0)+"%");this.element.attr("aria-valuenow",d)}})})(jQuery);
-(function(a){a.widget("ui.slider",a.ui.mouse,{version:"1.9pre",widgetEventPrefix:"slide",options:{animate:false,distance:0,max:100,min:0,orientation:"horizontal",range:false,step:1,value:0,values:null},_create:function(){var g=this,d=this.options,c=this.element.find(".ui-slider-handle").addClass("ui-state-default ui-corner-all"),e=d.values&&d.values.length||1,f=[];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"+(d.disabled?" ui-slider-disabled ui-disabled":""));this.range=a([]);if(d.range){if(d.range===true){if(!d.values)d.values=[this._valueMin(),this._valueMin()];if(d.values.length&&d.values.length!==2)d.values=[d.values[0],d.values[0]]}this.range=a("<div></div>").appendTo(this.element).addClass("ui-slider-range ui-widget-header"+(d.range==="min"||d.range==="max"?" ui-slider-range-"+d.range:""))}for(var i=c.length;i<e;i+=1)f.push("<a class='ui-slider-handle ui-state-default ui-corner-all' href='#'></a>");
-this.handles=c.add(a(f.join("")).appendTo(g.element));this.handle=this.handles.eq(0);this.handles.add(this.range).filter("a").click(function(b){b.preventDefault()}).hover(function(){d.disabled||a(this).addClass("ui-state-hover")},function(){a(this).removeClass("ui-state-hover")}).focus(function(){if(d.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 h=true,k=a(this).data("index.ui-slider-handle"),l,j,m;if(!g.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:h=false;if(!g._keySliding){g._keySliding=true;a(this).addClass("ui-state-active");l=g._start(b,k);if(l===false)return}}m=g.options.step;l=g.options.values&&g.options.values.length?
-j=g.values(k):j=g.value();switch(b.keyCode){case a.ui.keyCode.HOME:j=g._valueMin();break;case a.ui.keyCode.END:j=g._valueMax();break;case a.ui.keyCode.PAGE_UP:j=g._trimAlignValue(l+(g._valueMax()-g._valueMin())/5);break;case a.ui.keyCode.PAGE_DOWN:j=g._trimAlignValue(l-(g._valueMax()-g._valueMin())/5);break;case a.ui.keyCode.UP:case a.ui.keyCode.RIGHT:if(l===g._valueMax())return;j=g._trimAlignValue(l+m);break;case a.ui.keyCode.DOWN:case a.ui.keyCode.LEFT:if(l===g._valueMin())return;j=g._trimAlignValue(l-
-m)}g._slide(b,k,j);return h}}).keyup(function(b){var h=a(this).data("index.ui-slider-handle");if(g._keySliding){g._keySliding=false;g._stop(b,h);g._change(b,h);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(g){var d=this.options,c,e,f,i,b;if(d.disabled)return false;this.elementSize={width:this.element.outerWidth(),height:this.element.outerHeight()};this.elementOffset=this.element.offset();c=this._normValueFromMouse({x:g.pageX,y:g.pageY});e=this._valueMax()-this._valueMin()+1;i=this;this.handles.each(function(h){var k=Math.abs(c-i.values(h));if(e>k){e=k;f=a(this);b=h}});if(d.range===true&&this.values(1)===d.min){b+=1;f=a(this.handles[b])}if(this._start(g,b)===false)return false;
-this._mouseSliding=true;i._handleIndex=b;f.addClass("ui-state-active").focus();d=f.offset();this._clickOffset=!a(g.target).parents().andSelf().is(".ui-slider-handle")?{left:0,top:0}:{left:g.pageX-d.left-f.width()/2,top:g.pageY-d.top-f.height()/2-(parseInt(f.css("borderTopWidth"),10)||0)-(parseInt(f.css("borderBottomWidth"),10)||0)+(parseInt(f.css("marginTop"),10)||0)};this.handles.hasClass("ui-state-hover")||this._slide(g,b,c);return this._animateOff=true},_mouseStart:function(){return true},_mouseDrag:function(g){var d=
-this._normValueFromMouse({x:g.pageX,y:g.pageY});this._slide(g,this._handleIndex,d);return false},_mouseStop:function(g){this.handles.removeClass("ui-state-active");this._mouseSliding=false;this._stop(g,this._handleIndex);this._change(g,this._handleIndex);this._clickOffset=this._handleIndex=null;return this._animateOff=false},_detectOrientation:function(){this.orientation=this.options.orientation==="vertical"?"vertical":"horizontal"},_normValueFromMouse:function(g){var d;if(this.orientation==="horizontal"){d=
-this.elementSize.width;g=g.x-this.elementOffset.left-(this._clickOffset?this._clickOffset.left:0)}else{d=this.elementSize.height;g=g.y-this.elementOffset.top-(this._clickOffset?this._clickOffset.top:0)}d=g/d;if(d>1)d=1;if(d<0)d=0;if(this.orientation==="vertical")d=1-d;g=this._valueMax()-this._valueMin();return this._trimAlignValue(this._valueMin()+d*g)},_start:function(g,d){var c={handle:this.handles[d],value:this.value()};if(this.options.values&&this.options.values.length){c.value=this.values(d);
-c.values=this.values()}return this._trigger("start",g,c)},_slide:function(g,d,c){var e;if(this.options.values&&this.options.values.length){e=this.values(d?0:1);if(this.options.values.length===2&&this.options.range===true&&(d===0&&c>e||d===1&&c<e))c=e;if(c!==this.values(d)){e=this.values();e[d]=c;g=this._trigger("slide",g,{handle:this.handles[d],value:c,values:e});this.values(d?0:1);g!==false&&this.values(d,c,true)}}else if(c!==this.value()){g=this._trigger("slide",g,{handle:this.handles[d],value:c});
-g!==false&&this.value(c)}},_stop:function(g,d){var c={handle:this.handles[d],value:this.value()};if(this.options.values&&this.options.values.length){c.value=this.values(d);c.values=this.values()}this._trigger("stop",g,c)},_change:function(g,d){if(!this._keySliding&&!this._mouseSliding){var c={handle:this.handles[d],value:this.value()};if(this.options.values&&this.options.values.length){c.value=this.values(d);c.values=this.values()}this._trigger("change",g,c)}},value:function(g){if(arguments.length){this.options.value=
-this._trimAlignValue(g);this._refreshValue();this._change(null,0)}else return this._value()},values:function(g,d){var c,e,f;if(arguments.length>1){this.options.values[g]=this._trimAlignValue(d);this._refreshValue();this._change(null,g)}else if(arguments.length)if(a.isArray(arguments[0])){c=this.options.values;e=arguments[0];for(f=0;f<c.length;f+=1){c[f]=this._trimAlignValue(e[f]);this._change(null,f)}this._refreshValue()}else return this.options.values&&this.options.values.length?this._values(g):
-this.value();else return this._values()},_setOption:function(g,d){var c,e=0;if(a.isArray(this.options.values))e=this.options.values.length;a.Widget.prototype._setOption.apply(this,arguments);switch(g){case "disabled":if(d){this.handles.filter(".ui-state-focus").blur();this.handles.removeClass("ui-state-hover");this.handles.prop("disabled",true);this.element.addClass("ui-disabled")}else{this.handles.prop("disabled",false);this.element.removeClass("ui-disabled")}break;case "orientation":this._detectOrientation();
-this.element.removeClass("ui-slider-horizontal ui-slider-vertical").addClass("ui-slider-"+this.orientation);this._refreshValue();break;case "value":this._animateOff=true;this._refreshValue();this._change(null,0);this._animateOff=false;break;case "values":this._animateOff=true;this._refreshValue();for(c=0;c<e;c+=1)this._change(null,c);this._animateOff=false}},_value:function(){var g=this.options.value;return g=this._trimAlignValue(g)},_values:function(g){var d,c;if(arguments.length){d=this.options.values[g];
-d=this._trimAlignValue(d)}else{d=this.options.values.slice();for(c=0;c<d.length;c+=1)d[c]=this._trimAlignValue(d[c])}return d},_trimAlignValue:function(g){if(g<=this._valueMin())return this._valueMin();if(g>=this._valueMax())return this._valueMax();var d=this.options.step>0?this.options.step:1,c=(g-this._valueMin())%d;g-=c;if(Math.abs(c)*2>=d)g+=c>0?d:-d;return parseFloat(g.toFixed(5))},_valueMin:function(){return this.options.min},_valueMax:function(){return this.options.max},_refreshValue:function(){var g=
-this.options.range,d=this.options,c=this,e=!this._animateOff?d.animate:false,f,i={},b,h,k,l;if(this.options.values&&this.options.values.length)this.handles.each(function(j){f=(c.values(j)-c._valueMin())/(c._valueMax()-c._valueMin())*100;i[c.orientation==="horizontal"?"left":"bottom"]=f+"%";a(this).stop(1,1)[e?"animate":"css"](i,d.animate);if(c.options.range===true)if(c.orientation==="horizontal"){if(j===0)c.range.stop(1,1)[e?"animate":"css"]({left:f+"%"},d.animate);if(j===1)c.range[e?"animate":"css"]({width:f-
-b+"%"},{queue:false,duration:d.animate})}else{if(j===0)c.range.stop(1,1)[e?"animate":"css"]({bottom:f+"%"},d.animate);if(j===1)c.range[e?"animate":"css"]({height:f-b+"%"},{queue:false,duration:d.animate})}b=f});else{h=this.value();k=this._valueMin();l=this._valueMax();f=l!==k?(h-k)/(l-k)*100:0;i[c.orientation==="horizontal"?"left":"bottom"]=f+"%";this.handle.stop(1,1)[e?"animate":"css"](i,d.animate);if(g==="min"&&this.orientation==="horizontal")this.range.stop(1,1)[e?"animate":"css"]({width:f+"%"},
-d.animate);if(g==="max"&&this.orientation==="horizontal")this.range[e?"animate":"css"]({width:100-f+"%"},{queue:false,duration:d.animate});if(g==="min"&&this.orientation==="vertical")this.range.stop(1,1)[e?"animate":"css"]({height:f+"%"},d.animate);if(g==="max"&&this.orientation==="vertical")this.range[e?"animate":"css"]({height:100-f+"%"},{queue:false,duration:d.animate})}}})})(jQuery);
-(function(a){function g(d){return function(){var c=this.element.val();d.apply(this,arguments);this._refresh();c!==this.element.val()&&this._trigger("change")}}a.widget("ui.spinner",{version:"1.9pre",defaultElement:"<input>",widgetEventPrefix:"spin",options:{culture:null,incremental:true,max:null,min:null,numberFormat:null,page:10,step:1,change:null,spin:null,start:null,stop:null},_create:function(){this._value(this.element.val(),true);this._draw();this._bind(this._events);this._refresh()},_getCreateOptions:function(){var d=
-{},c=this.element;a.each(["min","max","step"],function(e,f){var i=c.attr(f);if(i!==undefined&&i.length)d[f]=i});return d},_events:{keydown:function(d){this._start(d)&&this._keydown(d)&&d.preventDefault()},keyup:"_stop",focus:function(){this.uiSpinner.addClass("ui-state-active");this.previous=this.element.val()},blur:function(d){this._refresh();this.uiSpinner.removeClass("ui-state-active");this.previous!==this.element.val()&&this._trigger("change",d)},mousewheel:function(d,c){if(c){if(!this.spinning&&
-!this._start(d))return false;this._spin((c>0?1:-1)*this.options.step,d);clearTimeout(this.mousewheelTimer);this.mousewheelTimer=setTimeout(function(){this.spinning&&this._stop(d)},100);d.preventDefault()}},"mousedown .ui-spinner-button":function(d){d.preventDefault();document.activeElement!==this.element[0]&&this.element.focus();if(this._start(d)!==false)this._repeat(null,a(d.currentTarget).hasClass("ui-spinner-up")?1:-1,d)},"mouseup .ui-spinner-button":"_stop","mouseenter .ui-spinner-button":function(d){if(a(d.currentTarget).hasClass("ui-state-active")){if(this._start(d)===
-false)return false;this._repeat(null,a(d.currentTarget).hasClass("ui-spinner-up")?1:-1,d)}},"mouseleave .ui-spinner-button":"_stop"},_draw:function(){var d=this.uiSpinner=this.element.addClass("ui-spinner-input").attr("autocomplete","off").wrap(this._uiSpinnerHtml()).parent().append(this._buttonHtml());this._hoverable(d);this.element.attr("role","spinbutton");this.buttons=d.find(".ui-spinner-button").attr("tabIndex",-1).button().removeClass("ui-corner-all");this.buttons.height()===d.height()&&d.height()>
-0&&d.height(d.height());this.options.disabled&&this.disable()},_keydown:function(d){var c=this.options,e=a.ui.keyCode;switch(d.keyCode){case e.UP:this._repeat(null,1,d);return true;case e.DOWN:this._repeat(null,-1,d);return true;case e.PAGE_UP:this._repeat(null,c.page,d);return true;case e.PAGE_DOWN:this._repeat(null,-c.page,d);return true}return false},_uiSpinnerHtml:function(){return"<span class='ui-spinner ui-state-default ui-widget ui-widget-content ui-corner-all'></span>"},_buttonHtml:function(){return"<a class='ui-spinner-button ui-spinner-up ui-corner-tr'><span class='ui-icon ui-icon-triangle-1-n'>&#9650;</span></a><a class='ui-spinner-button ui-spinner-down ui-corner-br'><span class='ui-icon ui-icon-triangle-1-s'>&#9660;</span></a>"},
-_start:function(d){if(!this.spinning&&this._trigger("start",d)===false)return false;if(!this.counter)this.counter=1;return this.spinning=true},_repeat:function(d,c,e){d=d||500;clearTimeout(this.timer);this.timer=this._delay(function(){this._repeat(40,c,e)},d);this._spin(c*this.options.step,e)},_spin:function(d,c){var e=this.value()||0;if(!this.counter)this.counter=1;e=this._adjustValue(e+d*this._increment(this.counter));if(!this.spinning||this._trigger("spin",c,{value:e})!==false){this._value(e);
-this.counter++}},_increment:function(d){var c=this.options.incremental;if(c)return a.isFunction(c)?c(d):Math.floor(d*d*d/5E4-d*d/500+17*d/200+1);return 1},_precision:function(){var d=this._precisionOf(this.options.step);if(this.options.min!==null)d=Math.max(d,this._precisionOf(this.options.min));return d},_precisionOf:function(d){d=d.toString();var c=d.indexOf(".");return c===-1?0:d.length-c-1},_adjustValue:function(d){var c,e=this.options;c=e.min!==null?e.min:0;d=Math.round((d-c)/e.step)*e.step;
-d=parseFloat((c+d).toFixed(this._precision()));if(e.max!==null&&d>e.max)return e.max;if(e.min!==null&&d<e.min)return e.min;return d},_stop:function(d){if(this.spinning){clearTimeout(this.timer);clearTimeout(this.mousewheelTimer);this.counter=0;this.spinning=false;this._trigger("stop",d)}},_setOption:function(d,c){this._super("_setOption",d,c);if(d==="disabled")if(c){this.element.prop("disabled",true);this.buttons.button("disable")}else{this.element.prop("disabled",false);this.buttons.button("enable")}},
-_setOptions:g(function(d){this._super("_setOptions",d);this._value(this.element.val())}),_parse:function(d){if(typeof d==="string"&&d!=="")d=window.Globalize&&this.options.numberFormat?Globalize.parseFloat(d,10,this.options.culture):+d;return d===""||isNaN(d)?null:d},_format:function(d){if(d==="")return"";return window.Globalize&&this.options.numberFormat?Globalize.format(d,this.options.numberFormat,this.options.culture):d},_refresh:function(){this.element.attr({"aria-valuemin":this.options.min,"aria-valuemax":this.options.max,
-"aria-valuenow":this._parse(this.element.val())})},_value:function(d,c){var e;if(d!==""){e=this._parse(d);if(e!==null){c||(e=this._adjustValue(e));d=this._format(e)}}this.element.val(d);this._refresh()},destroy:function(){this.element.removeClass("ui-spinner-input").prop("disabled",false).removeAttr("autocomplete").removeAttr("role").removeAttr("aria-valuemin").removeAttr("aria-valuemax").removeAttr("aria-valuenow");this._super("destroy");this.uiSpinner.replaceWith(this.element)},stepUp:g(function(d){this._stepUp(d)}),
-_stepUp:function(d){this._spin((d||1)*this.options.step)},stepDown:g(function(d){this._stepDown(d)}),_stepDown:function(d){this._spin((d||1)*-this.options.step)},pageUp:g(function(d){this._stepUp((d||1)*this.options.page)}),pageDown:g(function(d){this._stepDown((d||1)*this.options.page)}),value:function(d){if(!arguments.length)return this._parse(this.element.val());g(this._value).call(this,d)},widget:function(){return this.uiSpinner}})})(jQuery);
-(function(a,g){var d=0,c=function(){var f=/#.*$/,i=location.href.replace(f,"");return function(b){b=b.cloneNode(false);return b.hash.length>1&&b.href.replace(f,"")===i}}();a.widget("ui.tabs",{version:"1.9pre",options:{active:null,collapsible:false,event:"click",fx:null,activate:null,beforeActivate:null,beforeLoad:null,load:null},_create:function(){var f=this,i=f.options,b=i.active;f.running=false;f.element.addClass("ui-tabs ui-widget ui-widget-content ui-corner-all");f._processTabs();if(b===null){location.hash&&
-f.anchors.each(function(h,k){if(k.hash===location.hash){b=h;return false}});if(b===null)b=f.lis.filter(".ui-tabs-active").index();if(b===null||b===-1)b=f.lis.length?0:false}if(b!==false){b=this.lis.eq(b).index();if(b===-1)b=i.collapsible?false:0}i.active=b;if(!i.collapsible&&i.active===false&&this.anchors.length)i.active=0;if(a.isArray(i.disabled))i.disabled=a.unique(i.disabled.concat(a.map(this.lis.filter(".ui-state-disabled"),function(h){return f.lis.index(h)}))).sort();this._setupFx(i.fx);this._refresh();
-this.panels.hide();this.lis.removeClass("ui-tabs-active ui-state-active");if(i.active!==false&&this.anchors.length){this.active=this._findActive(i.active);f._getPanelForTab(this.active).show();this.lis.eq(i.active).addClass("ui-tabs-active ui-state-active");this.load(i.active)}else this.active=a()},_setOption:function(f,i){if(f=="active")this._activate(i);else if(f==="disabled")this._setupDisabled(i);else{this._super("_setOption",f,i);f==="collapsible"&&!i&&this.options.active===false&&this._activate(0);
-f==="event"&&this._setupEvents(i);f==="fx"&&this._setupFx(i)}},_tabId:function(f){return a(f).attr("aria-controls")||"ui-tabs-"+ ++d},_sanitizeSelector:function(f){return f?f.replace(/[!"$%&'()*+,.\/:;<=>?@[\]^`{|}~]/g,"\\$&"):""},refresh:function(){var f=this.options,i=this.list.children(":has(a[href])");f.disabled=a.map(i.filter(".ui-state-disabled"),function(b){return i.index(b)});this._processTabs();this._refresh();this.panels.not(this._getPanelForTab(this.active)).hide();if(f.active===false||
-!this.anchors.length){f.active=false;this.active=a()}else if(this.active.length&&!a.contains(this.list[0],this.active[0])){f=f.active-1;this._activate(f>=0?f:0)}else f.active=this.anchors.index(this.active)},_refresh:function(){var f=this.options;this.element.toggleClass("ui-tabs-collapsible",f.collapsible);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");
-this._setupDisabled(f.disabled);this._setupEvents(f.event);this.lis.unbind(".tabs");this._focusable(this.lis);this._hoverable(this.lis)},_processTabs:function(){var f=this;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(i,b){var h,k;if(c(b)){h=b.hash;k=f.element.find(f._sanitizeSelector(h))}else{var l=f._tabId(b);h="#"+l;k=f.element.find(h);if(!k.length){k=
-f._createPanel(l);k.insertAfter(f.panels[i-1]||f.list)}}if(k.length)f.panels=f.panels.add(k);a(b).attr("aria-controls",h.substring(1))})},_createPanel:function(f){return a("<div></div>").attr("id",f).addClass("ui-tabs-panel ui-widget-content ui-corner-bottom").data("destroy.tabs",true)},_setupDisabled:function(f){if(a.isArray(f))if(f.length){if(f.length===this.anchors.length)f=true}else f=false;for(var i=0,b;b=this.lis[i];i++)a(b).toggleClass("ui-state-disabled",f===true||a.inArray(i,f)!==-1);this.options.disabled=
-f},_setupFx:function(f){if(f)if(a.isArray(f)){this.hideFx=f[0];this.showFx=f[1]}else this.hideFx=this.showFx=f},_resetStyle:function(f,i){!a.support.opacity&&i.opacity&&f[0].style.removeAttribute("filter")},_setupEvents:function(f){this.anchors.unbind(".tabs");f&&this.anchors.bind(f.split(" ").join(".tabs ")+".tabs",a.proxy(this,"_eventHandler"));this.anchors.bind("click.tabs",function(i){i.preventDefault()})},_eventHandler:function(f){var i=this.options,b=this.active,h=a(f.currentTarget),k=h[0]===
-b[0],l=k&&i.collapsible,j=l?a():this._getPanelForTab(h),m=!b.length?a():this._getPanelForTab(b),n=h.closest("li");b={oldTab:b,oldPanel:m,newTab:l?a():h,newPanel:j};f.preventDefault();if(n.hasClass("ui-state-disabled")||n.hasClass("ui-tabs-loading")||this.running||k&&!i.collapsible||this._trigger("beforeActivate",f,b)===false)h[0].blur();else{i.active=l?false:this.anchors.index(h);this.active=k?a():h;this.xhr&&this.xhr.abort();if(!m.length&&!j.length)throw"jQuery UI Tabs: Mismatching fragment identifier.";
-if(j.length){this.load(this.anchors.index(h),f);h[0].blur()}this._toggle(f,b)}},_toggle:function(f,i){function b(){k.running=false;k._trigger("activate",f,i)}function h(){i.newTab.closest("li").addClass("ui-tabs-active ui-state-active");if(l.length&&k.showFx)l.animate(k.showFx,k.showFx.duration||"normal",function(){k._resetStyle(a(this),k.showFx);b()});else{l.show();b()}}var k=this,l=i.newPanel,j=i.oldPanel;k.running=true;if(j.length&&k.hideFx)j.animate(k.hideFx,k.hideFx.duration||"normal",function(){i.oldTab.closest("li").removeClass("ui-tabs-active ui-state-active");
-k._resetStyle(a(this),k.hideFx);h()});else{i.oldTab.closest("li").removeClass("ui-tabs-active ui-state-active");j.hide();h()}},_activate:function(f){f=this._findActive(f)[0];if(f!==this.active[0]){f=f||this.active[0];this._eventHandler({target:f,currentTarget:f,preventDefault:a.noop})}},_findActive:function(f){return typeof f==="number"?this.anchors.eq(f):typeof f==="string"?this.anchors.filter("[href$='"+f+"']"):a()},_getIndex:function(f){if(typeof f=="string")f=this.anchors.index(this.anchors.filter("[href$="+
-f+"]"));return f},_destroy:function(){this.xhr&&this.xhr.abort();this.element.removeClass("ui-tabs ui-widget ui-widget-content ui-corner-all ui-tabs-collapsible");this.list.removeClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all");this.anchors.unbind(".tabs").removeData("href.tabs").removeData("load.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-active ui-state-active ui-state-disabled ui-tabs-panel ui-widget-content ui-corner-bottom")});
-return this},enable:function(f){var i=this.options.disabled;if(i!==false){if(f===g)i=false;else{f=this._getIndex(f);i=a.isArray(i)?a.map(i,function(b){return b!==f?b:null}):a.map(this.lis,function(b,h){return h!==f?h:null})}this._setupDisabled(i)}},disable:function(f){var i=this.options.disabled;if(i!==true){if(f===g)i=true;else{f=this._getIndex(f);if(a.inArray(f,i)!==-1)return;i=a.isArray(i)?a.merge([f],i).sort():[f]}this._setupDisabled(i)}},load:function(f,i){f=this._getIndex(f);var b=this,h=this.anchors.eq(f),
-k=b._getPanelForTab(h),l={tab:h,panel:k};if(!c(h[0])){if(this.xhr=a.ajax({url:h.attr("href"),beforeSend:function(j,m){return b._trigger("beforeLoad",i,a.extend({jqXHR:j,ajaxSettings:m},l))}})){this.lis.eq(f).addClass("ui-tabs-loading");this.xhr.success(function(j){setTimeout(function(){k.html(j);b._trigger("load",i,l)},1)}).complete(function(j,m){setTimeout(function(){m==="abort"&&b.panels.stop(false,true);b.lis.eq(f).removeClass("ui-tabs-loading");j===b.xhr&&delete b.xhr})})}return this}},_getPanelForTab:function(f){return this.element.find(this._sanitizeSelector("#"+
-a(f).attr("aria-controls")))}});if(a.uiBackCompat!==false){a.ui.tabs.prototype._ui=function(f,i){return{tab:f,panel:i,index:this.anchors.index(f)}};(function(f,i){i.url=function(b,h){this.anchors.eq(b).attr("href",h)}})(jQuery,jQuery.ui.tabs.prototype);(function(f,i){f.extend(i.options,{ajaxOptions:null,cache:false});var b=i._create,h=i._setOption,k=i._destroy,l=i.url||f.noop;f.extend(i,{_create:function(){b.call(this);var j=this;this.element.bind("tabsbeforeload.tabs",function(m,n){if(f.data(n.tab[0],
-"cache.tabs"))m.preventDefault();else{f.extend(n.ajaxSettings,j.options.ajaxOptions,{error:function(o,p){try{j.options.ajaxOptions.error(o,p,n.tab.closest("li").index(),n.tab[0])}catch(q){}}});n.jqXHR.success(function(){j.options.cache&&f.data(n.tab[0],"cache.tabs",true)})}})},_setOption:function(j,m){j==="cache"&&m===false&&this.anchors.removeData("cache.tabs");h.apply(this,arguments)},_destroy:function(){this.anchors.removeData("cache.tabs");k.call(this)},url:function(j){this.anchors.eq(j).removeData("cache.tabs");
-l.apply(this,arguments)}})})(jQuery,jQuery.ui.tabs.prototype);(function(f,i){i.abort=function(){this.xhr&&this.xhr.abort()}})(jQuery,jQuery.ui.tabs.prototype);a.widget("ui.tabs",a.ui.tabs,{options:{spinner:"<em>Loading&#8230;</em>"},_create:function(){this._super("_create");this._bind({tabsbeforeload:function(f,i){if(this.options.spinner){var b=i.tab.find("span"),h=b.html();b.html(this.options.spinner);i.jqXHR.complete(function(){b.html(h)})}}})}});(function(f,i){f.extend(i.options,{enable:null,disable:null});
-var b=i.enable,h=i.disable;i.enable=function(k){var l=this.options,j;if(k&&l.disabled===true||f.isArray(l.disabled)&&f.inArray(k,l.disabled)!==-1)j=true;b.apply(this,arguments);j&&this._trigger("enable",null,this._ui(this.anchors[k],this.panels[k]))};i.disable=function(k){var l=this.options,j;if(k&&l.disabled===false||f.isArray(l.disabled)&&f.inArray(k,l.disabled)===-1)j=true;h.apply(this,arguments);j&&this._trigger("disable",null,this._ui(this.anchors[k],this.panels[k]))}})(jQuery,jQuery.ui.tabs.prototype);
-(function(f,i){f.extend(i.options,{add:null,remove:null,tabTemplate:"<li><a href='#{href}'><span>#{label}</span></a></li>"});i.add=function(b,h,k){if(k===g)k=this.anchors.length;var l=this.options;h=f(l.tabTemplate.replace(/#\{href\}/g,b).replace(/#\{label\}/g,h));b=!b.indexOf("#")?b.replace("#",""):this._tabId(h.find("a")[0]);h.addClass("ui-state-default ui-corner-top").data("destroy.tabs",true);h.find("a").attr("aria-controls",b);var j=k>=this.lis.length,m=this.element.find("#"+b);if(!m.length){m=
-this._createPanel(b);if(j)k>0?m.insertAfter(this.panels.eq(-1)):m.appendTo(this.element);else m.insertBefore(this.panels[k])}m.addClass("ui-tabs-panel ui-widget-content ui-corner-bottom").hide();j?h.appendTo(this.list):h.insertBefore(this.lis[k]);l.disabled=f.map(l.disabled,function(n){return n>=k?++n:n});this.refresh();this.lis.length===1&&l.active===false&&this.option("active",0);this._trigger("add",null,this._ui(this.anchors[k],this.panels[k]));return this};i.remove=function(b){b=this._getIndex(b);
-var h=this.options,k=this.lis.eq(b).remove(),l=this._getPanelForTab(k.find("a[aria-controls]")).remove();if(k.hasClass("ui-tabs-active")&&this.anchors.length>2)this._activate(b+(b+1<this.anchors.length?1:-1));h.disabled=f.map(f.grep(h.disabled,function(j){return j!==b}),function(j){return j>=b?--j:j});this.refresh();this._trigger("remove",null,this._ui(k.find("a")[0],l[0]));return this}})(jQuery,jQuery.ui.tabs.prototype);(function(f,i){i.length=function(){return this.anchors.length}})(jQuery,jQuery.ui.tabs.prototype);
-(function(f,i){f.extend(i.options,{idPrefix:"ui-tabs-"});i._tabId=function(b){return f(b).attr("aria-controls")||b.title&&b.title.replace(/\s/g,"_").replace(/[^\w\u00c0-\uFFFF-]/g,"")||this.options.idPrefix+ ++d}})(jQuery,jQuery.ui.tabs.prototype);(function(f,i){f.extend(i.options,{panelTemplate:"<div></div>"});i._createPanel=function(b){return f(this.options.panelTemplate).attr("id",b).addClass("ui-tabs-panel ui-widget-content ui-corner-bottom").data("destroy.tabs",true)}})(jQuery,jQuery.ui.tabs.prototype);
-(function(f,i){var b=i._create,h=i._setOption,k=i._eventHandler;i._create=function(){var l=this.options;if(l.active===null&&l.selected!==g)l.active=l.selected===-1?false:l.selected;b.call(this);l.selected=l.active;if(l.selected===false)l.selected=-1};i._setOption=function(l,j){if(l!=="selected")return h.apply(this,arguments);var m=this.options;h.call(this,"active",j===-1?false:j);m.selected=m.active;if(m.selected===false)m.selected=-1};i._eventHandler=function(){k.apply(this,arguments);this.options.selected=
-this.options.active;if(this.options.selected===false)this.options.selected=-1}})(jQuery,jQuery.ui.tabs.prototype);(function(f,i){f.extend(i.options,{show:null,select:null});var b=i._create,h=i._trigger;i._create=function(){b.call(this);this.options.active!==false&&this._trigger("show",null,this._ui(this.active[0],this._getPanelForTab(this.active)[0]))};i._trigger=function(k,l,j){if(!h.apply(this,arguments))return false;if(k==="beforeActivate"&&j.newTab.length)h.call(this,"select",l,{tab:j.newTab[0],
-panel:j.newPanel[0],index:j.newTab.closest("li").index()});else k==="activate"&&j.newTab.length&&h.call(this,"show",l,{tab:j.newTab[0],panel:j.newPanel[0],index:j.newTab.closest("li").index()})}})(jQuery,jQuery.ui.tabs.prototype);(function(f,i){i.select=function(b){b=this._getIndex(b);if(b===-1)if(this.options.collapsible&&this.options.selected!==-1)b=this.options.selected;else return;this.anchors.eq(b).trigger(this.options.event+".tabs")}})(jQuery,jQuery.ui.tabs.prototype);var e=0;a.widget("ui.tabs",
-a.ui.tabs,{options:{cookie:null},_create:function(){var f=this.options,i;if(f.active==null&&f.cookie){i=parseInt(this._cookie(),10);if(i===-1)i=false;f.active=i}this._super("_create")},_cookie:function(f){var i=[this.cookie||(this.cookie=this.options.cookie.name||"ui-tabs-"+ ++e)];if(arguments.length){i.push(f===false?-1:f);i.push(this.options.cookie)}return a.cookie.apply(null,i)},_refresh:function(){this._super("_refresh");this.options.cookie&&this._cookie(this.options.active,this.options.cookie)},
-_eventHandler:function(){this._superApply("_eventHandler",arguments);this.options.cookie&&this._cookie(this.options.active,this.options.cookie)},_destroy:function(){this._super("_destroy");this.options.cookie&&this._cookie(null,this.options.cookie)}});a.widget("ui.tabs",a.ui.tabs,{_trigger:function(f,i,b){b=a.extend({},b);if(f==="load"){b.panel=b.panel[0];b.tab=b.tab[0]}return this._super("_trigger",f,i,b)}})}})(jQuery);
-(function(a){var g=0;a.widget("ui.tooltip",{version:"1.9pre",options:{content:function(){return a(this).attr("title")},hide:true,items:"[title]",position:{my:"left+15 center",at:"right center",collision:"flipfit flipfit"},show:true,tooltipClass:null,close:null,open:null},_create:function(){this._bind({mouseover:"open",focusin:"open"});this.tooltips={}},_setOption:function(d,c){if(d==="disabled"){this[c?"_disable":"_enable"]();this.options[d]=c}else this._super("_setOption",d,c)},_disable:function(){var d=
-this;a.each(this.tooltips,function(c,e){var f=a.Event("blur");f.target=f.currentTarget=e[0];d.close(f,true)});this.element.find(this.options.items).andSelf().each(function(){var c=a(this);c.is("[title]")&&c.data("tooltip-title",c.attr("title")).attr("title","")})},_enable:function(){this.element.find(this.options.items).andSelf().each(function(){var d=a(this);d.data("tooltip-title")&&d.attr("title",d.data("tooltip-title"))})},open:function(d){var c,e=this,f=a(d?d.target:this.element).closest(this.options.items);
-if(!(!f.length||f.attr("aria-describedby"))){f.data("tooltip-title")||f.data("tooltip-title",f.attr("title"));(c=this.options.content.call(f[0],function(i){setTimeout(function(){e._open(d,f,i)},1)}))&&e._open(d,f,c)}},_open:function(d,c,e){if(e){c.is("[title]")&&c.attr("title","");var f=this._find(c);if(!f.length){f=this._tooltip(c);c.attr("aria-describedby",f.attr("id"))}f.find(".ui-tooltip-content").html(e);f.stop(true).position(a.extend({of:c},this.options.position)).hide();this._show(f,this.options.show);
-this._trigger("open",d,{tooltip:f});this._bind(c,{mouseleave:"close",blur:"close",keyup:function(i){if(i.keyCode==a.ui.keyCode.ESCAPE){i=a.Event(i);i.currentTarget=c[0];this.close(i,true)}}})}},close:function(d,c){var e=this,f=a(d?d.currentTarget:this.element),i=this._find(f);if(!(!c&&document.activeElement===f[0])){f.data("tooltip-title")&&f.attr("title",f.data("tooltip-title"));f.removeAttr("aria-describedby");i.stop(true);this._hide(i,this.options.hide,function(){a(this).remove();delete e.tooltips[this.id]});
-f.unbind("mouseleave.tooltip blur.tooltip keyup.tooltip");this._trigger("close",d,{tooltip:i})}},_tooltip:function(d){var c="ui-tooltip-"+g++,e=a("<div>").attr({id:c,role:"tooltip"}).addClass("ui-tooltip ui-widget ui-corner-all ui-widget-content "+(this.options.tooltipClass||""));a("<div>").addClass("ui-tooltip-content").appendTo(e);e.appendTo(document.body);a.fn.bgiframe&&e.bgiframe();this.tooltips[c]=d;return e},_find:function(d){return(d=d.attr("aria-describedby"))?a("#"+d):a()},_destroy:function(){a.each(this.tooltips,
-function(d){a("#"+d).remove()})}})})(jQuery);
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/js/jquery-ui.js b/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/js/jquery-ui.js
deleted file mode 100755
index cd515f36..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/js/jquery-ui.js
+++ /dev/null
@@ -1,11767 +0,0 @@
-/*!
- * 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( $, undefined ) {
-
-// prevent duplicate loading
-// this is only a problem because we proxy existing functions
-// and we don't want to double proxy them
-$.ui = $.ui || {};
-if ( $.ui.version ) {
-	return;
-}
-
-$.extend( $.ui, {
-	version: "1.8.16",
-
-	keyCode: {
-		ALT: 18,
-		BACKSPACE: 8,
-		CAPS_LOCK: 20,
-		COMMA: 188,
-		COMMAND: 91,
-		COMMAND_LEFT: 91, // COMMAND
-		COMMAND_RIGHT: 93,
-		CONTROL: 17,
-		DELETE: 46,
-		DOWN: 40,
-		END: 35,
-		ENTER: 13,
-		ESCAPE: 27,
-		HOME: 36,
-		INSERT: 45,
-		LEFT: 37,
-		MENU: 93, // COMMAND_RIGHT
-		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 // COMMAND
-	}
-});
-
-// plugins
-$.fn.extend({
-	propAttr: $.fn.prop || $.fn.attr,
-
-	_focus: $.fn.focus,
-	focus: function( delay, fn ) {
-		return typeof delay === "number" ?
-			this.each(function() {
-				var elem = this;
-				setTimeout(function() {
-					$( elem ).focus();
-					if ( fn ) {
-						fn.call( elem );
-					}
-				}, delay );
-			}) :
-			this._focus.apply( this, arguments );
-	},
-
-	scrollParent: function() {
-		var scrollParent;
-		if (($.browser.msie && (/(static|relative)/).test(this.css('position'))) || (/absolute/).test(this.css('position'))) {
-			scrollParent = this.parents().filter(function() {
-				return (/(relative|absolute|fixed)/).test($.curCSS(this,'position',1)) && (/(auto|scroll)/).test($.curCSS(this,'overflow',1)+$.curCSS(this,'overflow-y',1)+$.curCSS(this,'overflow-x',1));
-			}).eq(0);
-		} else {
-			scrollParent = this.parents().filter(function() {
-				return (/(auto|scroll)/).test($.curCSS(this,'overflow',1)+$.curCSS(this,'overflow-y',1)+$.curCSS(this,'overflow-x',1));
-			}).eq(0);
-		}
-
-		return (/fixed/).test(this.css('position')) || !scrollParent.length ? $(document) : scrollParent;
-	},
-
-	zIndex: function( zIndex ) {
-		if ( zIndex !== undefined ) {
-			return this.css( "zIndex", zIndex );
-		}
-
-		if ( this.length ) {
-			var elem = $( this[ 0 ] ), position, value;
-			while ( elem.length && elem[ 0 ] !== document ) {
-				// Ignore z-index if position is set to a value where z-index is ignored by the browser
-				// This makes behavior of this function consistent across browsers
-				// WebKit always returns auto if the element is positioned
-				position = elem.css( "position" );
-				if ( position === "absolute" || position === "relative" || position === "fixed" ) {
-					// IE returns 0 when zIndex is not specified
-					// other browsers return a string
-					// we ignore the case of nested elements with an explicit value of 0
-					// <div style="z-index: -10;"><div style="z-index: 0;"></div></div>
-					value = parseInt( elem.css( "zIndex" ), 10 );
-					if ( !isNaN( value ) && value !== 0 ) {
-						return value;
-					}
-				}
-				elem = elem.parent();
-			}
-		}
-
-		return 0;
-	},
-
-	disableSelection: function() {
-		return this.bind( ( $.support.selectstart ? "selectstart" : "mousedown" ) +
-			".ui-disableSelection", function( event ) {
-				event.preventDefault();
-			});
-	},
-
-	enableSelection: function() {
-		return this.unbind( ".ui-disableSelection" );
-	}
-});
-
-$.each( [ "Width", "Height" ], function( i, name ) {
-	var side = name === "Width" ? [ "Left", "Right" ] : [ "Top", "Bottom" ],
-		type = name.toLowerCase(),
-		orig = {
-			innerWidth: $.fn.innerWidth,
-			innerHeight: $.fn.innerHeight,
-			outerWidth: $.fn.outerWidth,
-			outerHeight: $.fn.outerHeight
-		};
-
-	function reduce( elem, size, border, margin ) {
-		$.each( side, function() {
-			size -= parseFloat( $.curCSS( elem, "padding" + this, true) ) || 0;
-			if ( border ) {
-				size -= parseFloat( $.curCSS( elem, "border" + this + "Width", true) ) || 0;
-			}
-			if ( margin ) {
-				size -= parseFloat( $.curCSS( elem, "margin" + this, true) ) || 0;
-			}
-		});
-		return size;
-	}
-
-	$.fn[ "inner" + name ] = function( size ) {
-		if ( size === undefined ) {
-			return orig[ "inner" + name ].call( this );
-		}
-
-		return this.each(function() {
-			$( this ).css( type, reduce( this, size ) + "px" );
-		});
-	};
-
-	$.fn[ "outer" + name] = function( size, margin ) {
-		if ( typeof size !== "number" ) {
-			return orig[ "outer" + name ].call( this, size );
-		}
-
-		return this.each(function() {
-			$( this).css( type, reduce( this, size, true, margin ) + "px" );
-		});
-	};
-});
-
-// selectors
-function focusable( element, isTabIndexNotNaN ) {
-	var nodeName = element.nodeName.toLowerCase();
-	if ( "area" === nodeName ) {
-		var map = element.parentNode,
-			mapName = map.name,
-			img;
-		if ( !element.href || !mapName || map.nodeName.toLowerCase() !== "map" ) {
-			return false;
-		}
-		img = $( "img[usemap=#" + mapName + "]" )[0];
-		return !!img && visible( img );
-	}
-	return ( /input|select|textarea|button|object/.test( nodeName )
-		? !element.disabled
-		: "a" == nodeName
-			? element.href || isTabIndexNotNaN
-			: isTabIndexNotNaN)
-		// the element and all of its ancestors must be visible
-		&& visible( element );
-}
-
-function visible( element ) {
-	return !$( element ).parents().andSelf().filter(function() {
-		return $.curCSS( this, "visibility" ) === "hidden" ||
-			$.expr.filters.hidden( this );
-	}).length;
-}
-
-$.extend( $.expr[ ":" ], {
-	data: function( elem, i, match ) {
-		return !!$.data( elem, match[ 3 ] );
-	},
-
-	focusable: function( element ) {
-		return focusable( element, !isNaN( $.attr( element, "tabindex" ) ) );
-	},
-
-	tabbable: function( element ) {
-		var tabIndex = $.attr( element, "tabindex" ),
-			isTabIndexNaN = isNaN( tabIndex );
-		return ( isTabIndexNaN || tabIndex >= 0 ) && focusable( element, !isTabIndexNaN );
-	}
-});
-
-// support
-$(function() {
-	var body = document.body,
-		div = body.appendChild( div = document.createElement( "div" ) );
-
-	$.extend( div.style, {
-		minHeight: "100px",
-		height: "auto",
-		padding: 0,
-		borderWidth: 0
-	});
-
-	$.support.minHeight = div.offsetHeight === 100;
-	$.support.selectstart = "onselectstart" in div;
-
-	// set display to none to avoid a layout bug in IE
-	// http://dev.jquery.com/ticket/4014
-	body.removeChild( div ).style.display = "none";
-});
-
-
-
-
-
-// deprecated
-$.extend( $.ui, {
-	// $.ui.plugin is deprecated.  Use the proxy pattern instead.
-	plugin: {
-		add: function( module, option, set ) {
-			var proto = $.ui[ module ].prototype;
-			for ( var i in set ) {
-				proto.plugins[ i ] = proto.plugins[ i ] || [];
-				proto.plugins[ i ].push( [ option, set[ i ] ] );
-			}
-		},
-		call: function( instance, name, args ) {
-			var set = instance.plugins[ name ];
-			if ( !set || !instance.element[ 0 ].parentNode ) {
-				return;
-			}
-	
-			for ( var i = 0; i < set.length; i++ ) {
-				if ( instance.options[ set[ i ][ 0 ] ] ) {
-					set[ i ][ 1 ].apply( instance.element, args );
-				}
-			}
-		}
-	},
-	
-	// will be deprecated when we switch to jQuery 1.4 - use jQuery.contains()
-	contains: function( a, b ) {
-		return document.compareDocumentPosition ?
-			a.compareDocumentPosition( b ) & 16 :
-			a !== b && a.contains( b );
-	},
-	
-	// only used by resizable
-	hasScroll: function( el, a ) {
-	
-		//If overflow is hidden, the element might have extra content, but the user wants to hide it
-		if ( $( el ).css( "overflow" ) === "hidden") {
-			return false;
-		}
-	
-		var scroll = ( a && a === "left" ) ? "scrollLeft" : "scrollTop",
-			has = false;
-	
-		if ( el[ scroll ] > 0 ) {
-			return true;
-		}
-	
-		// TODO: determine which cases actually cause this to happen
-		// if the element doesn't have the scroll set, see if it's possible to
-		// set the scroll
-		el[ scroll ] = 1;
-		has = ( el[ scroll ] > 0 );
-		el[ scroll ] = 0;
-		return has;
-	},
-	
-	// these are odd functions, fix the API or move into individual plugins
-	isOverAxis: function( x, reference, size ) {
-		//Determines when x coordinate is over "b" element axis
-		return ( x > reference ) && ( x < ( reference + size ) );
-	},
-	isOver: function( y, x, top, left, height, width ) {
-		//Determines when x, y coordinates is over "b" element
-		return $.ui.isOverAxis( y, top, height ) && $.ui.isOverAxis( x, left, width );
-	}
-});
-
-})( jQuery );
-/*!
- * jQuery UI Widget 1.8.16
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Widget
- */
-(function( $, undefined ) {
-
-// jQuery 1.4+
-if ( $.cleanData ) {
-	var _cleanData = $.cleanData;
-	$.cleanData = function( elems ) {
-		for ( var i = 0, elem; (elem = elems[i]) != null; i++ ) {
-			try {
-				$( elem ).triggerHandler( "remove" );
-			// http://bugs.jquery.com/ticket/8235
-			} catch( e ) {}
-		}
-		_cleanData( elems );
-	};
-} else {
-	var _remove = $.fn.remove;
-	$.fn.remove = function( selector, keepData ) {
-		return this.each(function() {
-			if ( !keepData ) {
-				if ( !selector || $.filter( selector, [ this ] ).length ) {
-					$( "*", this ).add( [ this ] ).each(function() {
-						try {
-							$( this ).triggerHandler( "remove" );
-						// http://bugs.jquery.com/ticket/8235
-						} catch( e ) {}
-					});
-				}
-			}
-			return _remove.call( $(this), selector, keepData );
-		});
-	};
-}
-
-$.widget = function( name, base, prototype ) {
-	var namespace = name.split( "." )[ 0 ],
-		fullName;
-	name = name.split( "." )[ 1 ];
-	fullName = namespace + "-" + name;
-
-	if ( !prototype ) {
-		prototype = base;
-		base = $.Widget;
-	}
-
-	// create selector for plugin
-	$.expr[ ":" ][ fullName ] = function( elem ) {
-		return !!$.data( elem, name );
-	};
-
-	$[ namespace ] = $[ namespace ] || {};
-	$[ namespace ][ name ] = function( options, element ) {
-		// allow instantiation without initializing for simple inheritance
-		if ( arguments.length ) {
-			this._createWidget( options, element );
-		}
-	};
-
-	var basePrototype = new base();
-	// we need to make the options hash a property directly on the new instance
-	// otherwise we'll modify the options hash on the prototype that we're
-	// inheriting from
-//	$.each( basePrototype, function( key, val ) {
-//		if ( $.isPlainObject(val) ) {
-//			basePrototype[ key ] = $.extend( {}, val );
-//		}
-//	});
-	basePrototype.options = $.extend( true, {}, basePrototype.options );
-	$[ namespace ][ name ].prototype = $.extend( true, basePrototype, {
-		namespace: namespace,
-		widgetName: name,
-		widgetEventPrefix: $[ namespace ][ name ].prototype.widgetEventPrefix || name,
-		widgetBaseClass: fullName
-	}, prototype );
-
-	$.widget.bridge( name, $[ namespace ][ name ] );
-};
-
-$.widget.bridge = function( name, object ) {
-	$.fn[ name ] = function( options ) {
-		var isMethodCall = typeof options === "string",
-			args = Array.prototype.slice.call( arguments, 1 ),
-			returnValue = this;
-
-		// allow multiple hashes to be passed on init
-		options = !isMethodCall && args.length ?
-			$.extend.apply( null, [ true, options ].concat(args) ) :
-			options;
-
-		// prevent calls to internal methods
-		if ( isMethodCall && options.charAt( 0 ) === "_" ) {
-			return returnValue;
-		}
-
-		if ( isMethodCall ) {
-			this.each(function() {
-				var instance = $.data( this, name ),
-					methodValue = instance && $.isFunction( instance[options] ) ?
-						instance[ options ].apply( instance, args ) :
-						instance;
-				// TODO: add this back in 1.9 and use $.error() (see #5972)
-//				if ( !instance ) {
-//					throw "cannot call methods on " + name + " prior to initialization; " +
-//						"attempted to call method '" + options + "'";
-//				}
-//				if ( !$.isFunction( instance[options] ) ) {
-//					throw "no such method '" + options + "' for " + name + " widget instance";
-//				}
-//				var methodValue = instance[ options ].apply( instance, args );
-				if ( methodValue !== instance && methodValue !== undefined ) {
-					returnValue = methodValue;
-					return false;
-				}
-			});
-		} else {
-			this.each(function() {
-				var instance = $.data( this, name );
-				if ( instance ) {
-					instance.option( options || {} )._init();
-				} else {
-					$.data( this, name, new object( options, this ) );
-				}
-			});
-		}
-
-		return returnValue;
-	};
-};
-
-$.Widget = function( options, element ) {
-	// allow instantiation without initializing for simple inheritance
-	if ( arguments.length ) {
-		this._createWidget( options, element );
-	}
-};
-
-$.Widget.prototype = {
-	widgetName: "widget",
-	widgetEventPrefix: "",
-	options: {
-		disabled: false
-	},
-	_createWidget: function( options, element ) {
-		// $.widget.bridge stores the plugin instance, but we do it anyway
-		// so that it's stored even before the _create function runs
-		$.data( element, this.widgetName, this );
-		this.element = $( element );
-		this.options = $.extend( true, {},
-			this.options,
-			this._getCreateOptions(),
-			options );
-
-		var self = this;
-		this.element.bind( "remove." + this.widgetName, function() {
-			self.destroy();
-		});
-
-		this._create();
-		this._trigger( "create" );
-		this._init();
-	},
-	_getCreateOptions: function() {
-		return $.metadata && $.metadata.get( this.element[0] )[ this.widgetName ];
-	},
-	_create: function() {},
-	_init: function() {},
-
-	destroy: function() {
-		this.element
-			.unbind( "." + this.widgetName )
-			.removeData( this.widgetName );
-		this.widget()
-			.unbind( "." + this.widgetName )
-			.removeAttr( "aria-disabled" )
-			.removeClass(
-				this.widgetBaseClass + "-disabled " +
-				"ui-state-disabled" );
-	},
-
-	widget: function() {
-		return this.element;
-	},
-
-	option: function( key, value ) {
-		var options = key;
-
-		if ( arguments.length === 0 ) {
-			// don't return a reference to the internal hash
-			return $.extend( {}, this.options );
-		}
-
-		if  (typeof key === "string" ) {
-			if ( value === undefined ) {
-				return this.options[ key ];
-			}
-			options = {};
-			options[ key ] = value;
-		}
-
-		this._setOptions( options );
-
-		return this;
-	},
-	_setOptions: function( options ) {
-		var self = this;
-		$.each( options, function( key, value ) {
-			self._setOption( key, value );
-		});
-
-		return this;
-	},
-	_setOption: function( key, value ) {
-		this.options[ key ] = value;
-
-		if ( key === "disabled" ) {
-			this.widget()
-				[ value ? "addClass" : "removeClass"](
-					this.widgetBaseClass + "-disabled" + " " +
-					"ui-state-disabled" )
-				.attr( "aria-disabled", value );
-		}
-
-		return this;
-	},
-
-	enable: function() {
-		return this._setOption( "disabled", false );
-	},
-	disable: function() {
-		return this._setOption( "disabled", true );
-	},
-
-	_trigger: function( type, event, data ) {
-		var callback = this.options[ type ];
-
-		event = $.Event( event );
-		event.type = ( type === this.widgetEventPrefix ?
-			type :
-			this.widgetEventPrefix + type ).toLowerCase();
-		data = data || {};
-
-		// copy original event properties over to the new event
-		// this would happen if we could call $.event.fix instead of $.Event
-		// but we don't have a way to force an event to be fixed multiple times
-		if ( event.originalEvent ) {
-			for ( var i = $.event.props.length, prop; i; ) {
-				prop = $.event.props[ --i ];
-				event[ prop ] = event.originalEvent[ prop ];
-			}
-		}
-
-		this.element.trigger( event, data );
-
-		return !( $.isFunction(callback) &&
-			callback.call( this.element[0], event, data ) === false ||
-			event.isDefaultPrevented() );
-	}
-};
-
-})( jQuery );
-/*!
- * jQuery UI Mouse 1.8.16
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Mouse
- *
- * Depends:
- *	jquery.ui.widget.js
- */
-(function( $, undefined ) {
-
-var mouseHandled = false;
-$( document ).mouseup( function( e ) {
-	mouseHandled = false;
-});
-
-$.widget("ui.mouse", {
-	options: {
-		cancel: ':input,option',
-		distance: 1,
-		delay: 0
-	},
-	_mouseInit: function() {
-		var self = this;
-
-		this.element
-			.bind('mousedown.'+this.widgetName, function(event) {
-				return self._mouseDown(event);
-			})
-			.bind('click.'+this.widgetName, function(event) {
-				if (true === $.data(event.target, self.widgetName + '.preventClickEvent')) {
-				    $.removeData(event.target, self.widgetName + '.preventClickEvent');
-					event.stopImmediatePropagation();
-					return false;
-				}
-			});
-
-		this.started = false;
-	},
-
-	// TODO: make sure destroying one instance of mouse doesn't mess with
-	// other instances of mouse
-	_mouseDestroy: function() {
-		this.element.unbind('.'+this.widgetName);
-	},
-
-	_mouseDown: function(event) {
-		// don't let more than one widget handle mouseStart
-		if( mouseHandled ) { return };
-
-		// we may have missed mouseup (out of window)
-		(this._mouseStarted && this._mouseUp(event));
-
-		this._mouseDownEvent = event;
-
-		var self = this,
-			btnIsLeft = (event.which == 1),
-			// event.target.nodeName works around a bug in IE 8 with
-			// disabled inputs (#7620)
-			elIsCancel = (typeof this.options.cancel == "string" && event.target.nodeName ? $(event.target).closest(this.options.cancel).length : false);
-		if (!btnIsLeft || elIsCancel || !this._mouseCapture(event)) {
-			return true;
-		}
-
-		this.mouseDelayMet = !this.options.delay;
-		if (!this.mouseDelayMet) {
-			this._mouseDelayTimer = setTimeout(function() {
-				self.mouseDelayMet = true;
-			}, this.options.delay);
-		}
-
-		if (this._mouseDistanceMet(event) && this._mouseDelayMet(event)) {
-			this._mouseStarted = (this._mouseStart(event) !== false);
-			if (!this._mouseStarted) {
-				event.preventDefault();
-				return true;
-			}
-		}
-
-		// Click event may never have fired (Gecko & Opera)
-		if (true === $.data(event.target, this.widgetName + '.preventClickEvent')) {
-			$.removeData(event.target, this.widgetName + '.preventClickEvent');
-		}
-
-		// these delegates are required to keep context
-		this._mouseMoveDelegate = function(event) {
-			return self._mouseMove(event);
-		};
-		this._mouseUpDelegate = function(event) {
-			return self._mouseUp(event);
-		};
-		$(document)
-			.bind('mousemove.'+this.widgetName, this._mouseMoveDelegate)
-			.bind('mouseup.'+this.widgetName, this._mouseUpDelegate);
-
-		event.preventDefault();
-		
-		mouseHandled = true;
-		return true;
-	},
-
-	_mouseMove: function(event) {
-		// IE mouseup check - mouseup happened when mouse was out of window
-		if ($.browser.msie && !(document.documentMode >= 9) && !event.button) {
-			return this._mouseUp(event);
-		}
-
-		if (this._mouseStarted) {
-			this._mouseDrag(event);
-			return event.preventDefault();
-		}
-
-		if (this._mouseDistanceMet(event) && this._mouseDelayMet(event)) {
-			this._mouseStarted =
-				(this._mouseStart(this._mouseDownEvent, event) !== false);
-			(this._mouseStarted ? this._mouseDrag(event) : this._mouseUp(event));
-		}
-
-		return !this._mouseStarted;
-	},
-
-	_mouseUp: function(event) {
-		$(document)
-			.unbind('mousemove.'+this.widgetName, this._mouseMoveDelegate)
-			.unbind('mouseup.'+this.widgetName, this._mouseUpDelegate);
-
-		if (this._mouseStarted) {
-			this._mouseStarted = false;
-
-			if (event.target == this._mouseDownEvent.target) {
-			    $.data(event.target, this.widgetName + '.preventClickEvent', true);
-			}
-
-			this._mouseStop(event);
-		}
-
-		return false;
-	},
-
-	_mouseDistanceMet: function(event) {
-		return (Math.max(
-				Math.abs(this._mouseDownEvent.pageX - event.pageX),
-				Math.abs(this._mouseDownEvent.pageY - event.pageY)
-			) >= this.options.distance
-		);
-	},
-
-	_mouseDelayMet: function(event) {
-		return this.mouseDelayMet;
-	},
-
-	// These are placeholder methods, to be overriden by extending plugin
-	_mouseStart: function(event) {},
-	_mouseDrag: function(event) {},
-	_mouseStop: function(event) {},
-	_mouseCapture: function(event) { return true; }
-});
-
-})(jQuery);
-/*
- * jQuery UI Draggable 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/Draggables
- *
- * Depends:
- *	jquery.ui.core.js
- *	jquery.ui.mouse.js
- *	jquery.ui.widget.js
- */
-(function( $, undefined ) {
-
-$.widget("ui.draggable", $.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')) return;
-		this.element
-			.removeData("draggable")
-			.unbind(".draggable")
-			.removeClass("ui-draggable"
-				+ " ui-draggable-dragging"
-				+ " ui-draggable-disabled");
-		this._mouseDestroy();
-
-		return this;
-	},
-
-	_mouseCapture: function(event) {
-
-		var o = this.options;
-
-		// among others, prevent a drag on a resizable-handle
-		if (this.helper || o.disabled || $(event.target).is('.ui-resizable-handle'))
-			return false;
-
-		//Quit if we're not on a valid handle
-		this.handle = this._getHandle(event);
-		if (!this.handle)
-			return false;
-		
-		if ( o.iframeFix ) {
-			$(o.iframeFix === true ? "iframe" : o.iframeFix).each(function() {
-				$('<div class="ui-draggable-iframeFix" style="background: #fff;"></div>')
-				.css({
-					width: this.offsetWidth+"px", height: this.offsetHeight+"px",
-					position: "absolute", opacity: "0.001", zIndex: 1000
-				})
-				.css($(this).offset())
-				.appendTo("body");
-			});
-		}
-
-		return true;
-
-	},
-
-	_mouseStart: function(event) {
-
-		var o = this.options;
-
-		//Create and append the visible helper
-		this.helper = this._createHelper(event);
-
-		//Cache the helper size
-		this._cacheHelperProportions();
-
-		//If ddmanager is used for droppables, set the global draggable
-		if($.ui.ddmanager)
-			$.ui.ddmanager.current = this;
-
-		/*
-		 * - Position generation -
-		 * This block generates everything position related - it's the core of draggables.
-		 */
-
-		//Cache the margins of the original element
-		this._cacheMargins();
-
-		//Store the helper's css position
-		this.cssPosition = this.helper.css("position");
-		this.scrollParent = this.helper.scrollParent();
-
-		//The element's absolute position on the page minus margins
-		this.offset = this.positionAbs = this.element.offset();
-		this.offset = {
-			top: this.offset.top - this.margins.top,
-			left: this.offset.left - this.margins.left
-		};
-
-		$.extend(this.offset, {
-			click: { //Where the click happened, relative to the element
-				left: event.pageX - this.offset.left,
-				top: event.pageY - this.offset.top
-			},
-			parent: this._getParentOffset(),
-			relative: this._getRelativeOffset() //This is a relative to absolute position minus the actual position calculation - only used for relative positioned helper
-		});
-
-		//Generate the original position
-		this.originalPosition = this.position = this._generatePosition(event);
-		this.originalPageX = event.pageX;
-		this.originalPageY = event.pageY;
-
-		//Adjust the mouse offset relative to the helper if 'cursorAt' is supplied
-		(o.cursorAt && this._adjustOffsetFromHelper(o.cursorAt));
-
-		//Set a containment if given in the options
-		if(o.containment)
-			this._setContainment();
-
-		//Trigger event + callbacks
-		if(this._trigger("start", event) === false) {
-			this._clear();
-			return false;
-		}
-
-		//Recache the helper size
-		this._cacheHelperProportions();
-
-		//Prepare the droppable offsets
-		if ($.ui.ddmanager && !o.dropBehaviour)
-			$.ui.ddmanager.prepareOffsets(this, event);
-
-		this.helper.addClass("ui-draggable-dragging");
-		this._mouseDrag(event, true); //Execute the drag once - this causes the helper not to be visible before getting its correct position
-		
-		//If the ddmanager is used for droppables, inform the manager that dragging has started (see #5003)
-		if ( $.ui.ddmanager ) $.ui.ddmanager.dragStart(this, event);
-		
-		return true;
-	},
-
-	_mouseDrag: function(event, noPropagation) {
-
-		//Compute the helpers position
-		this.position = this._generatePosition(event);
-		this.positionAbs = this._convertPositionTo("absolute");
-
-		//Call plugins and callbacks and use the resulting position if something is returned
-		if (!noPropagation) {
-			var ui = this._uiHash();
-			if(this._trigger('drag', event, ui) === false) {
-				this._mouseUp({});
-				return false;
-			}
-			this.position = ui.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';
-		if($.ui.ddmanager) $.ui.ddmanager.drag(this, event);
-
-		return false;
-	},
-
-	_mouseStop: function(event) {
-
-		//If we are using droppables, inform the manager about the drop
-		var dropped = false;
-		if ($.ui.ddmanager && !this.options.dropBehaviour)
-			dropped = $.ui.ddmanager.drop(this, event);
-
-		//if a drop comes from outside (a sortable)
-		if(this.dropped) {
-			dropped = this.dropped;
-			this.dropped = false;
-		}
-		
-		//if the original element is removed, don't bother to continue if helper is set to "original"
-		if((!this.element[0] || !this.element[0].parentNode) && this.options.helper == "original")
-			return false;
-
-		if((this.options.revert == "invalid" && !dropped) || (this.options.revert == "valid" && dropped) || this.options.revert === true || ($.isFunction(this.options.revert) && this.options.revert.call(this.element, dropped))) {
-			var self = this;
-			$(this.helper).animate(this.originalPosition, parseInt(this.options.revertDuration, 10), function() {
-				if(self._trigger("stop", event) !== false) {
-					self._clear();
-				}
-			});
-		} else {
-			if(this._trigger("stop", event) !== false) {
-				this._clear();
-			}
-		}
-
-		return false;
-	},
-	
-	_mouseUp: function(event) {
-		if (this.options.iframeFix === true) {
-			$("div.ui-draggable-iframeFix").each(function() { 
-				this.parentNode.removeChild(this); 
-			}); //Remove frame helpers
-		}
-		
-		//If the ddmanager is used for droppables, inform the manager that dragging has stopped (see #5003)
-		if( $.ui.ddmanager ) $.ui.ddmanager.dragStop(this, event);
-		
-		return $.ui.mouse.prototype._mouseUp.call(this, event);
-	},
-	
-	cancel: function() {
-		
-		if(this.helper.is(".ui-draggable-dragging")) {
-			this._mouseUp({});
-		} else {
-			this._clear();
-		}
-		
-		return this;
-		
-	},
-
-	_getHandle: function(event) {
-
-		var handle = !this.options.handle || !$(this.options.handle, this.element).length ? true : false;
-		$(this.options.handle, this.element)
-			.find("*")
-			.andSelf()
-			.each(function() {
-				if(this == event.target) handle = true;
-			});
-
-		return handle;
-
-	},
-
-	_createHelper: function(event) {
-
-		var o = this.options;
-		var helper = $.isFunction(o.helper) ? $(o.helper.apply(this.element[0], [event])) : (o.helper == 'clone' ? this.element.clone().removeAttr('id') : this.element);
-
-		if(!helper.parents('body').length)
-			helper.appendTo((o.appendTo == 'parent' ? this.element[0].parentNode : o.appendTo));
-
-		if(helper[0] != this.element[0] && !(/(fixed|absolute)/).test(helper.css("position")))
-			helper.css("position", "absolute");
-
-		return helper;
-
-	},
-
-	_adjustOffsetFromHelper: function(obj) {
-		if (typeof obj == 'string') {
-			obj = obj.split(' ');
-		}
-		if ($.isArray(obj)) {
-			obj = {left: +obj[0], top: +obj[1] || 0};
-		}
-		if ('left' in obj) {
-			this.offset.click.left = obj.left + this.margins.left;
-		}
-		if ('right' in obj) {
-			this.offset.click.left = this.helperProportions.width - obj.right + this.margins.left;
-		}
-		if ('top' in obj) {
-			this.offset.click.top = obj.top + this.margins.top;
-		}
-		if ('bottom' in obj) {
-			this.offset.click.top = this.helperProportions.height - obj.bottom + this.margins.top;
-		}
-	},
-
-	_getParentOffset: function() {
-
-		//Get the offsetParent and cache its position
-		this.offsetParent = this.helper.offsetParent();
-		var po = this.offsetParent.offset();
-
-		// This is a special case where we need to modify a offset calculated on start, since the following happened:
-		// 1. The position of the helper is absolute, so it's position is calculated based on the next positioned parent
-		// 2. The actual offset parent is a child of the scroll parent, and the scroll parent isn't the document, which means that
-		//    the scroll is included in the initial calculation of the offset of the parent, and never recalculated upon drag
-		if(this.cssPosition == 'absolute' && this.scrollParent[0] != document && $.ui.contains(this.scrollParent[0], this.offsetParent[0])) {
-			po.left += this.scrollParent.scrollLeft();
-			po.top += this.scrollParent.scrollTop();
-		}
-
-		if((this.offsetParent[0] == document.body) //This needs to be actually done for all browsers, since pageX/pageY includes this information
-		|| (this.offsetParent[0].tagName && this.offsetParent[0].tagName.toLowerCase() == 'html' && $.browser.msie)) //Ugly IE fix
-			po = { top: 0, left: 0 };
-
-		return {
-			top: po.top + (parseInt(this.offsetParent.css("borderTopWidth"),10) || 0),
-			left: po.left + (parseInt(this.offsetParent.css("borderLeftWidth"),10) || 0)
-		};
-
-	},
-
-	_getRelativeOffset: function() {
-
-		if(this.cssPosition == "relative") {
-			var p = this.element.position();
-			return {
-				top: p.top - (parseInt(this.helper.css("top"),10) || 0) + this.scrollParent.scrollTop(),
-				left: p.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 o = this.options;
-		if(o.containment == 'parent') o.containment = this.helper[0].parentNode;
-		if(o.containment == 'document' || o.containment == 'window') this.containment = [
-			o.containment == 'document' ? 0 : $(window).scrollLeft() - this.offset.relative.left - this.offset.parent.left,
-			o.containment == 'document' ? 0 : $(window).scrollTop() - this.offset.relative.top - this.offset.parent.top,
-			(o.containment == 'document' ? 0 : $(window).scrollLeft()) + $(o.containment == 'document' ? document : window).width() - this.helperProportions.width - this.margins.left,
-			(o.containment == 'document' ? 0 : $(window).scrollTop()) + ($(o.containment == 'document' ? document : window).height() || document.body.parentNode.scrollHeight) - this.helperProportions.height - this.margins.top
-		];
-
-		if(!(/^(document|window|parent)$/).test(o.containment) && o.containment.constructor != Array) {
-		        var c = $(o.containment);
-			var ce = c[0]; if(!ce) return;
-			var co = c.offset();
-			var over = ($(ce).css("overflow") != 'hidden');
-
-			this.containment = [
-				(parseInt($(ce).css("borderLeftWidth"),10) || 0) + (parseInt($(ce).css("paddingLeft"),10) || 0),
-				(parseInt($(ce).css("borderTopWidth"),10) || 0) + (parseInt($(ce).css("paddingTop"),10) || 0),
-				(over ? Math.max(ce.scrollWidth,ce.offsetWidth) : ce.offsetWidth) - (parseInt($(ce).css("borderLeftWidth"),10) || 0) - (parseInt($(ce).css("paddingRight"),10) || 0) - this.helperProportions.width - this.margins.left - this.margins.right,
-				(over ? Math.max(ce.scrollHeight,ce.offsetHeight) : ce.offsetHeight) - (parseInt($(ce).css("borderTopWidth"),10) || 0) - (parseInt($(ce).css("paddingBottom"),10) || 0) - this.helperProportions.height - this.margins.top  - this.margins.bottom
-			];
-			this.relative_container = c;
-
-		} else if(o.containment.constructor == Array) {
-			this.containment = o.containment;
-		}
-
-	},
-
-	_convertPositionTo: function(d, pos) {
-
-		if(!pos) pos = this.position;
-		var mod = d == "absolute" ? 1 : -1;
-		var o = this.options, scroll = this.cssPosition == 'absolute' && !(this.scrollParent[0] != document && $.ui.contains(this.scrollParent[0], this.offsetParent[0])) ? this.offsetParent : this.scrollParent, scrollIsRootNode = (/(html|body)/i).test(scroll[0].tagName);
-
-		return {
-			top: (
-				pos.top																	// The absolute mouse position
-				+ this.offset.relative.top * mod										// Only for relative positioned nodes: Relative offset from element to offset parent
-				+ this.offset.parent.top * mod											// The offsetParent's offset without borders (offset + border)
-				- ($.browser.safari && $.browser.version < 526 && this.cssPosition == 'fixed' ? 0 : ( this.cssPosition == 'fixed' ? -this.scrollParent.scrollTop() : ( scrollIsRootNode ? 0 : scroll.scrollTop() ) ) * mod)
-			),
-			left: (
-				pos.left																// The absolute mouse position
-				+ this.offset.relative.left * mod										// Only for relative positioned nodes: Relative offset from element to offset parent
-				+ this.offset.parent.left * mod											// The offsetParent's offset without borders (offset + border)
-				- ($.browser.safari && $.browser.version < 526 && this.cssPosition == 'fixed' ? 0 : ( this.cssPosition == 'fixed' ? -this.scrollParent.scrollLeft() : scrollIsRootNode ? 0 : scroll.scrollLeft() ) * mod)
-			)
-		};
-
-	},
-
-	_generatePosition: function(event) {
-
-		var o = this.options, scroll = this.cssPosition == 'absolute' && !(this.scrollParent[0] != document && $.ui.contains(this.scrollParent[0], this.offsetParent[0])) ? this.offsetParent : this.scrollParent, scrollIsRootNode = (/(html|body)/i).test(scroll[0].tagName);
-		var pageX = event.pageX;
-		var pageY = event.pageY;
-
-		/*
-		 * - Position constraining -
-		 * Constrain the position to a mix of grid, containment.
-		 */
-
-		if(this.originalPosition) { //If we are not dragging yet, we won't check for options
-		         var containment;
-		         if(this.containment) {
-				 if (this.relative_container){
-				     var co = this.relative_container.offset();
-				     containment = [ this.containment[0] + co.left,
-						     this.containment[1] + co.top,
-						     this.containment[2] + co.left,
-						     this.containment[3] + co.top ];
-				 }
-				 else {
-				     containment = this.containment;
-				 }
-
-				if(event.pageX - this.offset.click.left < containment[0]) pageX = containment[0] + this.offset.click.left;
-				if(event.pageY - this.offset.click.top < containment[1]) pageY = containment[1] + this.offset.click.top;
-				if(event.pageX - this.offset.click.left > containment[2]) pageX = containment[2] + this.offset.click.left;
-				if(event.pageY - this.offset.click.top > containment[3]) pageY = containment[3] + this.offset.click.top;
-			}
-
-			if(o.grid) {
-				//Check for grid elements set to 0 to prevent divide by 0 error causing invalid argument errors in IE (see ticket #6950)
-				var top = o.grid[1] ? this.originalPageY + Math.round((pageY - this.originalPageY) / o.grid[1]) * o.grid[1] : this.originalPageY;
-				pageY = containment ? (!(top - this.offset.click.top < containment[1] || top - this.offset.click.top > containment[3]) ? top : (!(top - this.offset.click.top < containment[1]) ? top - o.grid[1] : top + o.grid[1])) : top;
-
-				var left = o.grid[0] ? this.originalPageX + Math.round((pageX - this.originalPageX) / o.grid[0]) * o.grid[0] : this.originalPageX;
-				pageX = containment ? (!(left - this.offset.click.left < containment[0] || left - this.offset.click.left > containment[2]) ? left : (!(left - this.offset.click.left < containment[0]) ? left - o.grid[0] : left + o.grid[0])) : left;
-			}
-
-		}
-
-		return {
-			top: (
-				pageY																// The absolute mouse position
-				- this.offset.click.top													// Click offset (relative to the element)
-				- this.offset.relative.top												// Only for relative positioned nodes: Relative offset from element to offset parent
-				- this.offset.parent.top												// The offsetParent's offset without borders (offset + border)
-				+ ($.browser.safari && $.browser.version < 526 && this.cssPosition == 'fixed' ? 0 : ( this.cssPosition == 'fixed' ? -this.scrollParent.scrollTop() : ( scrollIsRootNode ? 0 : scroll.scrollTop() ) ))
-			),
-			left: (
-				pageX																// The absolute mouse position
-				- this.offset.click.left												// Click offset (relative to the element)
-				- this.offset.relative.left												// Only for relative positioned nodes: Relative offset from element to offset parent
-				- this.offset.parent.left												// The offsetParent's offset without borders (offset + border)
-				+ ($.browser.safari && $.browser.version < 526 && this.cssPosition == 'fixed' ? 0 : ( this.cssPosition == 'fixed' ? -this.scrollParent.scrollLeft() : scrollIsRootNode ? 0 : scroll.scrollLeft() ))
-			)
-		};
-
-	},
-
-	_clear: function() {
-		this.helper.removeClass("ui-draggable-dragging");
-		if(this.helper[0] != this.element[0] && !this.cancelHelperRemoval) this.helper.remove();
-		//if($.ui.ddmanager) $.ui.ddmanager.current = null;
-		this.helper = null;
-		this.cancelHelperRemoval = false;
-	},
-
-	// From now on bulk stuff - mainly helpers
-
-	_trigger: function(type, event, ui) {
-		ui = ui || this._uiHash();
-		$.ui.plugin.call(this, type, [event, ui]);
-		if(type == "drag") this.positionAbs = this._convertPositionTo("absolute"); //The absolute position has to be recalculated after plugins
-		return $.Widget.prototype._trigger.call(this, type, event, ui);
-	},
-
-	plugins: {},
-
-	_uiHash: function(event) {
-		return {
-			helper: this.helper,
-			position: this.position,
-			originalPosition: this.originalPosition,
-			offset: this.positionAbs
-		};
-	}
-
-});
-
-$.extend($.ui.draggable, {
-	version: "1.8.16"
-});
-
-$.ui.plugin.add("draggable", "connectToSortable", {
-	start: function(event, ui) {
-
-		var inst = $(this).data("draggable"), o = inst.options,
-			uiSortable = $.extend({}, ui, { item: inst.element });
-		inst.sortables = [];
-		$(o.connectToSortable).each(function() {
-			var sortable = $.data(this, 'sortable');
-			if (sortable && !sortable.options.disabled) {
-				inst.sortables.push({
-					instance: sortable,
-					shouldRevert: sortable.options.revert
-				});
-				sortable.refreshPositions();	// Call the sortable's refreshPositions at drag start to refresh the containerCache since the sortable container cache is used in drag and needs to be up to date (this will ensure it's initialised as well as being kept in step with any changes that might have happened on the page).
-				sortable._trigger("activate", event, uiSortable);
-			}
-		});
-
-	},
-	stop: function(event, ui) {
-
-		//If we are still over the sortable, we fake the stop event of the sortable, but also remove helper
-		var inst = $(this).data("draggable"),
-			uiSortable = $.extend({}, ui, { item: inst.element });
-
-		$.each(inst.sortables, function() {
-			if(this.instance.isOver) {
-
-				this.instance.isOver = 0;
-
-				inst.cancelHelperRemoval = true; //Don't remove the helper in the draggable instance
-				this.instance.cancelHelperRemoval = false; //Remove it in the sortable instance (so sortable plugins like revert still work)
-
-				//The sortable revert is supported, and we have to set a temporary dropped variable on the draggable to support revert: 'valid/invalid'
-				if(this.shouldRevert) this.instance.options.revert = true;
-
-				//Trigger the stop of the sortable
-				this.instance._mouseStop(event);
-
-				this.instance.options.helper = this.instance.options._helper;
-
-				//If the helper has been the original item, restore properties in the sortable
-				if(inst.options.helper == 'original')
-					this.instance.currentItem.css({ top: 'auto', left: 'auto' });
-
-			} else {
-				this.instance.cancelHelperRemoval = false; //Remove the helper in the sortable instance
-				this.instance._trigger("deactivate", event, uiSortable);
-			}
-
-		});
-
-	},
-	drag: function(event, ui) {
-
-		var inst = $(this).data("draggable"), self = this;
-
-		var checkPos = function(o) {
-			var dyClick = this.offset.click.top, dxClick = this.offset.click.left;
-			var helperTop = this.positionAbs.top, helperLeft = this.positionAbs.left;
-			var itemHeight = o.height, itemWidth = o.width;
-			var itemTop = o.top, itemLeft = o.left;
-
-			return $.ui.isOver(helperTop + dyClick, helperLeft + dxClick, itemTop, itemLeft, itemHeight, itemWidth);
-		};
-
-		$.each(inst.sortables, function(i) {
-			
-			//Copy over some variables to allow calling the sortable's native _intersectsWith
-			this.instance.positionAbs = inst.positionAbs;
-			this.instance.helperProportions = inst.helperProportions;
-			this.instance.offset.click = inst.offset.click;
-			
-			if(this.instance._intersectsWith(this.instance.containerCache)) {
-
-				//If it intersects, we use a little isOver variable and set it once, so our move-in stuff gets fired only once
-				if(!this.instance.isOver) {
-
-					this.instance.isOver = 1;
-					//Now we fake the start of dragging for the sortable instance,
-					//by cloning the list group item, appending it to the sortable and using it as inst.currentItem
-					//We can then fire the start event of the sortable with our passed browser event, and our own helper (so it doesn't create a new one)
-					this.instance.currentItem = $(self).clone().removeAttr('id').appendTo(this.instance.element).data("sortable-item", true);
-					this.instance.options._helper = this.instance.options.helper; //Store helper option to later restore it
-					this.instance.options.helper = function() { return ui.helper[0]; };
-
-					event.target = this.instance.currentItem[0];
-					this.instance._mouseCapture(event, true);
-					this.instance._mouseStart(event, true, true);
-
-					//Because the browser event is way off the new appended portlet, we modify a couple of variables to reflect the changes
-					this.instance.offset.click.top = inst.offset.click.top;
-					this.instance.offset.click.left = inst.offset.click.left;
-					this.instance.offset.parent.left -= inst.offset.parent.left - this.instance.offset.parent.left;
-					this.instance.offset.parent.top -= inst.offset.parent.top - this.instance.offset.parent.top;
-
-					inst._trigger("toSortable", event);
-					inst.dropped = this.instance.element; //draggable revert needs that
-					//hack so receive/update callbacks work (mostly)
-					inst.currentItem = inst.element;
-					this.instance.fromOutside = inst;
-
-				}
-
-				//Provided we did all the previous steps, we can fire the drag event of the sortable on every draggable drag, when it intersects with the sortable
-				if(this.instance.currentItem) this.instance._mouseDrag(event);
-
-			} else {
-
-				//If it doesn't intersect with the sortable, and it intersected before,
-				//we fake the drag stop of the sortable, but make sure it doesn't remove the helper by using cancelHelperRemoval
-				if(this.instance.isOver) {
-
-					this.instance.isOver = 0;
-					this.instance.cancelHelperRemoval = true;
-					
-					//Prevent reverting on this forced stop
-					this.instance.options.revert = false;
-					
-					// The out event needs to be triggered independently
-					this.instance._trigger('out', event, this.instance._uiHash(this.instance));
-					
-					this.instance._mouseStop(event, true);
-					this.instance.options.helper = this.instance.options._helper;
-
-					//Now we remove our currentItem, the list group clone again, and the placeholder, and animate the helper back to it's original size
-					this.instance.currentItem.remove();
-					if(this.instance.placeholder) this.instance.placeholder.remove();
-
-					inst._trigger("fromSortable", event);
-					inst.dropped = false; //draggable revert needs that
-				}
-
-			};
-
-		});
-
-	}
-});
-
-$.ui.plugin.add("draggable", "cursor", {
-	start: function(event, ui) {
-		var t = $('body'), o = $(this).data('draggable').options;
-		if (t.css("cursor")) o._cursor = t.css("cursor");
-		t.css("cursor", o.cursor);
-	},
-	stop: function(event, ui) {
-		var o = $(this).data('draggable').options;
-		if (o._cursor) $('body').css("cursor", o._cursor);
-	}
-});
-
-$.ui.plugin.add("draggable", "opacity", {
-	start: function(event, ui) {
-		var t = $(ui.helper), o = $(this).data('draggable').options;
-		if(t.css("opacity")) o._opacity = t.css("opacity");
-		t.css('opacity', o.opacity);
-	},
-	stop: function(event, ui) {
-		var o = $(this).data('draggable').options;
-		if(o._opacity) $(ui.helper).css('opacity', o._opacity);
-	}
-});
-
-$.ui.plugin.add("draggable", "scroll", {
-	start: function(event, ui) {
-		var i = $(this).data("draggable");
-		if(i.scrollParent[0] != document && i.scrollParent[0].tagName != 'HTML') i.overflowOffset = i.scrollParent.offset();
-	},
-	drag: function(event, ui) {
-
-		var i = $(this).data("draggable"), o = i.options, scrolled = false;
-
-		if(i.scrollParent[0] != document && i.scrollParent[0].tagName != 'HTML') {
-
-			if(!o.axis || o.axis != 'x') {
-				if((i.overflowOffset.top + i.scrollParent[0].offsetHeight) - event.pageY < o.scrollSensitivity)
-					i.scrollParent[0].scrollTop = scrolled = i.scrollParent[0].scrollTop + o.scrollSpeed;
-				else if(event.pageY - i.overflowOffset.top < o.scrollSensitivity)
-					i.scrollParent[0].scrollTop = scrolled = i.scrollParent[0].scrollTop - o.scrollSpeed;
-			}
-
-			if(!o.axis || o.axis != 'y') {
-				if((i.overflowOffset.left + i.scrollParent[0].offsetWidth) - event.pageX < o.scrollSensitivity)
-					i.scrollParent[0].scrollLeft = scrolled = i.scrollParent[0].scrollLeft + o.scrollSpeed;
-				else if(event.pageX - i.overflowOffset.left < o.scrollSensitivity)
-					i.scrollParent[0].scrollLeft = scrolled = i.scrollParent[0].scrollLeft - o.scrollSpeed;
-			}
-
-		} else {
-
-			if(!o.axis || o.axis != 'x') {
-				if(event.pageY - $(document).scrollTop() < o.scrollSensitivity)
-					scrolled = $(document).scrollTop($(document).scrollTop() - o.scrollSpeed);
-				else if($(window).height() - (event.pageY - $(document).scrollTop()) < o.scrollSensitivity)
-					scrolled = $(document).scrollTop($(document).scrollTop() + o.scrollSpeed);
-			}
-
-			if(!o.axis || o.axis != 'y') {
-				if(event.pageX - $(document).scrollLeft() < o.scrollSensitivity)
-					scrolled = $(document).scrollLeft($(document).scrollLeft() - o.scrollSpeed);
-				else if($(window).width() - (event.pageX - $(document).scrollLeft()) < o.scrollSensitivity)
-					scrolled = $(document).scrollLeft($(document).scrollLeft() + o.scrollSpeed);
-			}
-
-		}
-
-		if(scrolled !== false && $.ui.ddmanager && !o.dropBehaviour)
-			$.ui.ddmanager.prepareOffsets(i, event);
-
-	}
-});
-
-$.ui.plugin.add("draggable", "snap", {
-	start: function(event, ui) {
-
-		var i = $(this).data("draggable"), o = i.options;
-		i.snapElements = [];
-
-		$(o.snap.constructor != String ? ( o.snap.items || ':data(draggable)' ) : o.snap).each(function() {
-			var $t = $(this); var $o = $t.offset();
-			if(this != i.element[0]) i.snapElements.push({
-				item: this,
-				width: $t.outerWidth(), height: $t.outerHeight(),
-				top: $o.top, left: $o.left
-			});
-		});
-
-	},
-	drag: function(event, ui) {
-
-		var inst = $(this).data("draggable"), o = inst.options;
-		var d = o.snapTolerance;
-
-		var x1 = ui.offset.left, x2 = x1 + inst.helperProportions.width,
-			y1 = ui.offset.top, y2 = y1 + inst.helperProportions.height;
-
-		for (var i = inst.snapElements.length - 1; i >= 0; i--){
-
-			var l = inst.snapElements[i].left, r = l + inst.snapElements[i].width,
-				t = inst.snapElements[i].top, b = t + inst.snapElements[i].height;
-
-			//Yes, I know, this is insane ;)
-			if(!((l-d < x1 && x1 < r+d && t-d < y1 && y1 < b+d) || (l-d < x1 && x1 < r+d && t-d < y2 && y2 < b+d) || (l-d < x2 && x2 < r+d && t-d < y1 && y1 < b+d) || (l-d < x2 && x2 < r+d && t-d < y2 && y2 < b+d))) {
-				if(inst.snapElements[i].snapping) (inst.options.snap.release && inst.options.snap.release.call(inst.element, event, $.extend(inst._uiHash(), { snapItem: inst.snapElements[i].item })));
-				inst.snapElements[i].snapping = false;
-				continue;
-			}
-
-			if(o.snapMode != 'inner') {
-				var ts = Math.abs(t - y2) <= d;
-				var bs = Math.abs(b - y1) <= d;
-				var ls = Math.abs(l - x2) <= d;
-				var rs = Math.abs(r - x1) <= d;
-				if(ts) ui.position.top = inst._convertPositionTo("relative", { top: t - inst.helperProportions.height, left: 0 }).top - inst.margins.top;
-				if(bs) ui.position.top = inst._convertPositionTo("relative", { top: b, left: 0 }).top - inst.margins.top;
-				if(ls) ui.position.left = inst._convertPositionTo("relative", { top: 0, left: l - inst.helperProportions.width }).left - inst.margins.left;
-				if(rs) ui.position.left = inst._convertPositionTo("relative", { top: 0, left: r }).left - inst.margins.left;
-			}
-
-			var first = (ts || bs || ls || rs);
-
-			if(o.snapMode != 'outer') {
-				var ts = Math.abs(t - y1) <= d;
-				var bs = Math.abs(b - y2) <= d;
-				var ls = Math.abs(l - x1) <= d;
-				var rs = Math.abs(r - x2) <= d;
-				if(ts) ui.position.top = inst._convertPositionTo("relative", { top: t, left: 0 }).top - inst.margins.top;
-				if(bs) ui.position.top = inst._convertPositionTo("relative", { top: b - inst.helperProportions.height, left: 0 }).top - inst.margins.top;
-				if(ls) ui.position.left = inst._convertPositionTo("relative", { top: 0, left: l }).left - inst.margins.left;
-				if(rs) ui.position.left = inst._convertPositionTo("relative", { top: 0, left: r - inst.helperProportions.width }).left - inst.margins.left;
-			}
-
-			if(!inst.snapElements[i].snapping && (ts || bs || ls || rs || first))
-				(inst.options.snap.snap && inst.options.snap.snap.call(inst.element, event, $.extend(inst._uiHash(), { snapItem: inst.snapElements[i].item })));
-			inst.snapElements[i].snapping = (ts || bs || ls || rs || first);
-
-		};
-
-	}
-});
-
-$.ui.plugin.add("draggable", "stack", {
-	start: function(event, ui) {
-
-		var o = $(this).data("draggable").options;
-
-		var group = $.makeArray($(o.stack)).sort(function(a,b) {
-			return (parseInt($(a).css("zIndex"),10) || 0) - (parseInt($(b).css("zIndex"),10) || 0);
-		});
-		if (!group.length) { return; }
-		
-		var min = parseInt(group[0].style.zIndex) || 0;
-		$(group).each(function(i) {
-			this.style.zIndex = min + i;
-		});
-
-		this[0].style.zIndex = min + group.length;
-
-	}
-});
-
-$.ui.plugin.add("draggable", "zIndex", {
-	start: function(event, ui) {
-		var t = $(ui.helper), o = $(this).data("draggable").options;
-		if(t.css("zIndex")) o._zIndex = t.css("zIndex");
-		t.css('zIndex', o.zIndex);
-	},
-	stop: function(event, ui) {
-		var o = $(this).data("draggable").options;
-		if(o._zIndex) $(ui.helper).css('zIndex', o._zIndex);
-	}
-});
-
-})(jQuery);
-/*
- * jQuery UI Droppable 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/Droppables
- *
- * Depends:
- *	jquery.ui.core.js
- *	jquery.ui.widget.js
- *	jquery.ui.mouse.js
- *	jquery.ui.draggable.js
- */
-(function( $, undefined ) {
-
-$.widget("ui.droppable", {
-	widgetEventPrefix: "drop",
-	options: {
-		accept: '*',
-		activeClass: false,
-		addClasses: true,
-		greedy: false,
-		hoverClass: false,
-		scope: 'default',
-		tolerance: 'intersect'
-	},
-	_create: function() {
-
-		var o = this.options, accept = o.accept;
-		this.isover = 0; this.isout = 1;
-
-		this.accept = $.isFunction(accept) ? accept : function(d) {
-			return d.is(accept);
-		};
-
-		//Store the droppable's proportions
-		this.proportions = { width: this.element[0].offsetWidth, height: this.element[0].offsetHeight };
-
-		// Add the reference and positions to the manager
-		$.ui.ddmanager.droppables[o.scope] = $.ui.ddmanager.droppables[o.scope] || [];
-		$.ui.ddmanager.droppables[o.scope].push(this);
-
-		(o.addClasses && this.element.addClass("ui-droppable"));
-
-	},
-
-	destroy: function() {
-		var drop = $.ui.ddmanager.droppables[this.options.scope];
-		for ( var i = 0; i < drop.length; i++ )
-			if ( drop[i] == this )
-				drop.splice(i, 1);
-
-		this.element
-			.removeClass("ui-droppable ui-droppable-disabled")
-			.removeData("droppable")
-			.unbind(".droppable");
-
-		return this;
-	},
-
-	_setOption: function(key, value) {
-
-		if(key == 'accept') {
-			this.accept = $.isFunction(value) ? value : function(d) {
-				return d.is(value);
-			};
-		}
-		$.Widget.prototype._setOption.apply(this, arguments);
-	},
-
-	_activate: function(event) {
-		var draggable = $.ui.ddmanager.current;
-		if(this.options.activeClass) this.element.addClass(this.options.activeClass);
-		(draggable && this._trigger('activate', event, this.ui(draggable)));
-	},
-
-	_deactivate: function(event) {
-		var draggable = $.ui.ddmanager.current;
-		if(this.options.activeClass) this.element.removeClass(this.options.activeClass);
-		(draggable && this._trigger('deactivate', event, this.ui(draggable)));
-	},
-
-	_over: function(event) {
-
-		var draggable = $.ui.ddmanager.current;
-		if (!draggable || (draggable.currentItem || draggable.element)[0] == this.element[0]) return; // Bail if draggable and droppable are same element
-
-		if (this.accept.call(this.element[0],(draggable.currentItem || draggable.element))) {
-			if(this.options.hoverClass) this.element.addClass(this.options.hoverClass);
-			this._trigger('over', event, this.ui(draggable));
-		}
-
-	},
-
-	_out: function(event) {
-
-		var draggable = $.ui.ddmanager.current;
-		if (!draggable || (draggable.currentItem || draggable.element)[0] == this.element[0]) return; // Bail if draggable and droppable are same element
-
-		if (this.accept.call(this.element[0],(draggable.currentItem || draggable.element))) {
-			if(this.options.hoverClass) this.element.removeClass(this.options.hoverClass);
-			this._trigger('out', event, this.ui(draggable));
-		}
-
-	},
-
-	_drop: function(event,custom) {
-
-		var draggable = custom || $.ui.ddmanager.current;
-		if (!draggable || (draggable.currentItem || draggable.element)[0] == this.element[0]) return false; // Bail if draggable and droppable are same element
-
-		var childrenIntersection = false;
-		this.element.find(":data(droppable)").not(".ui-draggable-dragging").each(function() {
-			var inst = $.data(this, 'droppable');
-			if(
-				inst.options.greedy
-				&& !inst.options.disabled
-				&& inst.options.scope == draggable.options.scope
-				&& inst.accept.call(inst.element[0], (draggable.currentItem || draggable.element))
-				&& $.ui.intersect(draggable, $.extend(inst, { offset: inst.element.offset() }), inst.options.tolerance)
-			) { childrenIntersection = true; return false; }
-		});
-		if(childrenIntersection) return false;
-
-		if(this.accept.call(this.element[0],(draggable.currentItem || draggable.element))) {
-			if(this.options.activeClass) this.element.removeClass(this.options.activeClass);
-			if(this.options.hoverClass) this.element.removeClass(this.options.hoverClass);
-			this._trigger('drop', event, this.ui(draggable));
-			return this.element;
-		}
-
-		return false;
-
-	},
-
-	ui: function(c) {
-		return {
-			draggable: (c.currentItem || c.element),
-			helper: c.helper,
-			position: c.position,
-			offset: c.positionAbs
-		};
-	}
-
-});
-
-$.extend($.ui.droppable, {
-	version: "1.8.16"
-});
-
-$.ui.intersect = function(draggable, droppable, toleranceMode) {
-
-	if (!droppable.offset) return false;
-
-	var x1 = (draggable.positionAbs || draggable.position.absolute).left, x2 = x1 + draggable.helperProportions.width,
-		y1 = (draggable.positionAbs || draggable.position.absolute).top, y2 = y1 + draggable.helperProportions.height;
-	var l = droppable.offset.left, r = l + droppable.proportions.width,
-		t = droppable.offset.top, b = t + droppable.proportions.height;
-
-	switch (toleranceMode) {
-		case 'fit':
-			return (l <= x1 && x2 <= r
-				&& t <= y1 && y2 <= b);
-			break;
-		case 'intersect':
-			return (l < x1 + (draggable.helperProportions.width / 2) // Right Half
-				&& x2 - (draggable.helperProportions.width / 2) < r // Left Half
-				&& t < y1 + (draggable.helperProportions.height / 2) // Bottom Half
-				&& y2 - (draggable.helperProportions.height / 2) < b ); // Top Half
-			break;
-		case 'pointer':
-			var draggableLeft = ((draggable.positionAbs || draggable.position.absolute).left + (draggable.clickOffset || draggable.offset.click).left),
-				draggableTop = ((draggable.positionAbs || draggable.position.absolute).top + (draggable.clickOffset || draggable.offset.click).top),
-				isOver = $.ui.isOver(draggableTop, draggableLeft, t, l, droppable.proportions.height, droppable.proportions.width);
-			return isOver;
-			break;
-		case 'touch':
-			return (
-					(y1 >= t && y1 <= b) ||	// Top edge touching
-					(y2 >= t && y2 <= b) ||	// Bottom edge touching
-					(y1 < t && y2 > b)		// Surrounded vertically
-				) && (
-					(x1 >= l && x1 <= r) ||	// Left edge touching
-					(x2 >= l && x2 <= r) ||	// Right edge touching
-					(x1 < l && x2 > r)		// Surrounded horizontally
-				);
-			break;
-		default:
-			return false;
-			break;
-		}
-
-};
-
-/*
-	This manager tracks offsets of draggables and droppables
-*/
-$.ui.ddmanager = {
-	current: null,
-	droppables: { 'default': [] },
-	prepareOffsets: function(t, event) {
-
-		var m = $.ui.ddmanager.droppables[t.options.scope] || [];
-		var type = event ? event.type : null; // workaround for #2317
-		var list = (t.currentItem || t.element).find(":data(droppable)").andSelf();
-
-		droppablesLoop: for (var i = 0; i < m.length; i++) {
-
-			if(m[i].options.disabled || (t && !m[i].accept.call(m[i].element[0],(t.currentItem || t.element)))) continue;	//No disabled and non-accepted
-			for (var j=0; j < list.length; j++) { if(list[j] == m[i].element[0]) { m[i].proportions.height = 0; continue droppablesLoop; } }; //Filter out elements in the current dragged item
-			m[i].visible = m[i].element.css("display") != "none"; if(!m[i].visible) continue; 									//If the element is not visible, continue
-
-			if(type == "mousedown") m[i]._activate.call(m[i], event); //Activate the droppable if used directly from draggables
-
-			m[i].offset = m[i].element.offset();
-			m[i].proportions = { width: m[i].element[0].offsetWidth, height: m[i].element[0].offsetHeight };
-
-		}
-
-	},
-	drop: function(draggable, event) {
-
-		var dropped = false;
-		$.each($.ui.ddmanager.droppables[draggable.options.scope] || [], function() {
-
-			if(!this.options) return;
-			if (!this.options.disabled && this.visible && $.ui.intersect(draggable, this, this.options.tolerance))
-				dropped = dropped || this._drop.call(this, event);
-
-			if (!this.options.disabled && this.visible && this.accept.call(this.element[0],(draggable.currentItem || draggable.element))) {
-				this.isout = 1; this.isover = 0;
-				this._deactivate.call(this, event);
-			}
-
-		});
-		return dropped;
-
-	},
-	dragStart: function( draggable, event ) {
-		//Listen for scrolling so that if the dragging causes scrolling the position of the droppables can be recalculated (see #5003)
-		draggable.element.parents( ":not(body,html)" ).bind( "scroll.droppable", function() {
-			if( !draggable.options.refreshPositions ) $.ui.ddmanager.prepareOffsets( draggable, event );
-		});
-	},
-	drag: function(draggable, event) {
-
-		//If you have a highly dynamic page, you might try this option. It renders positions every time you move the mouse.
-		if(draggable.options.refreshPositions) $.ui.ddmanager.prepareOffsets(draggable, event);
-
-		//Run through all droppables and check their positions based on specific tolerance options
-		$.each($.ui.ddmanager.droppables[draggable.options.scope] || [], function() {
-
-			if(this.options.disabled || this.greedyChild || !this.visible) return;
-			var intersects = $.ui.intersect(draggable, this, this.options.tolerance);
-
-			var c = !intersects && this.isover == 1 ? 'isout' : (intersects && this.isover == 0 ? 'isover' : null);
-			if(!c) return;
-
-			var parentInstance;
-			if (this.options.greedy) {
-				var parent = this.element.parents(':data(droppable):eq(0)');
-				if (parent.length) {
-					parentInstance = $.data(parent[0], 'droppable');
-					parentInstance.greedyChild = (c == 'isover' ? 1 : 0);
-				}
-			}
-
-			// we just moved into a greedy child
-			if (parentInstance && c == 'isover') {
-				parentInstance['isover'] = 0;
-				parentInstance['isout'] = 1;
-				parentInstance._out.call(parentInstance, event);
-			}
-
-			this[c] = 1; this[c == 'isout' ? 'isover' : 'isout'] = 0;
-			this[c == "isover" ? "_over" : "_out"].call(this, event);
-
-			// we just moved out of a greedy child
-			if (parentInstance && c == 'isout') {
-				parentInstance['isout'] = 0;
-				parentInstance['isover'] = 1;
-				parentInstance._over.call(parentInstance, event);
-			}
-		});
-
-	},
-	dragStop: function( draggable, event ) {
-		draggable.element.parents( ":not(body,html)" ).unbind( "scroll.droppable" );
-		//Call prepareOffsets one final time since IE does not fire return scroll events when overflow was caused by drag (see #5003)
-		if( !draggable.options.refreshPositions ) $.ui.ddmanager.prepareOffsets( draggable, event );
-	}
-};
-
-})(jQuery);
-/*
- * jQuery UI Resizable 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/Resizables
- *
- * Depends:
- *	jquery.ui.core.js
- *	jquery.ui.mouse.js
- *	jquery.ui.widget.js
- */
-(function( $, undefined ) {
-
-$.widget("ui.resizable", $.ui.mouse, {
-	widgetEventPrefix: "resize",
-	options: {
-		alsoResize: false,
-		animate: false,
-		animateDuration: "slow",
-		animateEasing: "swing",
-		aspectRatio: false,
-		autoHide: false,
-		containment: false,
-		ghost: false,
-		grid: false,
-		handles: "e,s,se",
-		helper: false,
-		maxHeight: null,
-		maxWidth: null,
-		minHeight: 10,
-		minWidth: 10,
-		zIndex: 1000
-	},
-	_create: function() {
-
-		var self = this, o = this.options;
-		this.element.addClass("ui-resizable");
-
-		$.extend(this, {
-			_aspectRatio: !!(o.aspectRatio),
-			aspectRatio: o.aspectRatio,
-			originalElement: this.element,
-			_proportionallyResizeElements: [],
-			_helper: o.helper || o.ghost || o.animate ? o.helper || 'ui-resizable-helper' : null
-		});
-
-		//Wrap the element if it cannot hold child nodes
-		if(this.element[0].nodeName.match(/canvas|textarea|input|select|button|img/i)) {
-
-			//Opera fix for relative positioning
-			if (/relative/.test(this.element.css('position')) && $.browser.opera)
-				this.element.css({ position: 'relative', top: 'auto', left: 'auto' });
-
-			//Create a wrapper element and set the wrapper to the new current internal element
-			this.element.wrap(
-				$('<div class="ui-wrapper" style="overflow: hidden;"></div>').css({
-					position: this.element.css('position'),
-					width: this.element.outerWidth(),
-					height: this.element.outerHeight(),
-					top: this.element.css('top'),
-					left: this.element.css('left')
-				})
-			);
-
-			//Overwrite the original this.element
-			this.element = this.element.parent().data(
-				"resizable", this.element.data('resizable')
-			);
-
-			this.elementIsWrapper = true;
-
-			//Move margins to the wrapper
-			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});
-
-			//Prevent Safari textarea resize
-			this.originalResizeStyle = this.originalElement.css('resize');
-			this.originalElement.css('resize', 'none');
-
-			//Push the actual element to our proportionallyResize internal array
-			this._proportionallyResizeElements.push(this.originalElement.css({ position: 'static', zoom: 1, display: 'block' }));
-
-			// avoid IE jump (hard set the margin)
-			this.originalElement.css({ margin: this.originalElement.css('margin') });
-
-			// fix handlers offset
-			this._proportionallyResize();
-
-		}
-
-		this.handles = o.handles || (!$('.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 n = this.handles.split(","); this.handles = {};
-
-			for(var i = 0; i < n.length; i++) {
-
-				var handle = $.trim(n[i]), hname = 'ui-resizable-'+handle;
-				var axis = $('<div class="ui-resizable-handle ' + hname + '"></div>');
-
-				// increase zIndex of sw, se, ne, nw axis
-				//TODO : this modifies original option
-				if(/sw|se|ne|nw/.test(handle)) axis.css({ zIndex: ++o.zIndex });
-
-				//TODO : What's going on here?
-				if ('se' == handle) {
-					axis.addClass('ui-icon ui-icon-gripsmall-diagonal-se');
-				};
-
-				//Insert into internal handles object and append to element
-				this.handles[handle] = '.ui-resizable-'+handle;
-				this.element.append(axis);
-			}
-
-		}
-
-		this._renderAxis = function(target) {
-
-			target = target || this.element;
-
-			for(var i in this.handles) {
-
-				if(this.handles[i].constructor == String)
-					this.handles[i] = $(this.handles[i], this.element).show();
-
-				//Apply pad to wrapper element, needed to fix axis position (textarea, inputs, scrolls)
-				if (this.elementIsWrapper && this.originalElement[0].nodeName.match(/textarea|input|select|button/i)) {
-
-					var axis = $(this.handles[i], this.element), padWrapper = 0;
-
-					//Checking the correct pad and border
-					padWrapper = /sw|ne|nw|se|n|s/.test(i) ? axis.outerHeight() : axis.outerWidth();
-
-					//The padding type i have to apply...
-					var padPos = [ 'padding',
-						/ne|nw|n/.test(i) ? 'Top' :
-						/se|sw|s/.test(i) ? 'Bottom' :
-						/^e$/.test(i) ? 'Right' : 'Left' ].join("");
-
-					target.css(padPos, padWrapper);
-
-					this._proportionallyResize();
-
-				}
-
-				//TODO: What's that good for? There's not anything to be executed left
-				if(!$(this.handles[i]).length)
-					continue;
-
-			}
-		};
-
-		//TODO: make renderAxis a prototype function
-		this._renderAxis(this.element);
-
-		this._handles = $('.ui-resizable-handle', this.element)
-			.disableSelection();
-
-		//Matching axis name
-		this._handles.mouseover(function() {
-			if (!self.resizing) {
-				if (this.className)
-					var axis = this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i);
-				//Axis, default = se
-				self.axis = axis && axis[1] ? axis[1] : 'se';
-			}
-		});
-
-		//If we want to auto hide the elements
-		if (o.autoHide) {
-			this._handles.hide();
-			$(this.element)
-				.addClass("ui-resizable-autohide")
-				.hover(function() {
-					if (o.disabled) return;
-					$(this).removeClass("ui-resizable-autohide");
-					self._handles.show();
-				},
-				function(){
-					if (o.disabled) return;
-					if (!self.resizing) {
-						$(this).addClass("ui-resizable-autohide");
-						self._handles.hide();
-					}
-				});
-		}
-
-		//Initialize the mouse interaction
-		this._mouseInit();
-
-	},
-
-	destroy: function() {
-
-		this._mouseDestroy();
-
-		var _destroy = function(exp) {
-			$(exp).removeClass("ui-resizable ui-resizable-disabled ui-resizable-resizing")
-				.removeData("resizable").unbind(".resizable").find('.ui-resizable-handle').remove();
-		};
-
-		//TODO: Unwrap at same DOM position
-		if (this.elementIsWrapper) {
-			_destroy(this.element);
-			var wrapper = this.element;
-			wrapper.after(
-				this.originalElement.css({
-					position: wrapper.css('position'),
-					width: wrapper.outerWidth(),
-					height: wrapper.outerHeight(),
-					top: wrapper.css('top'),
-					left: wrapper.css('left')
-				})
-			).remove();
-		}
-
-		this.originalElement.css('resize', this.originalResizeStyle);
-		_destroy(this.originalElement);
-
-		return this;
-	},
-
-	_mouseCapture: function(event) {
-		var handle = false;
-		for (var i in this.handles) {
-			if ($(this.handles[i])[0] == event.target) {
-				handle = true;
-			}
-		}
-
-		return !this.options.disabled && handle;
-	},
-
-	_mouseStart: function(event) {
-
-		var o = this.options, iniPos = this.element.position(), el = this.element;
-
-		this.resizing = true;
-		this.documentScroll = { top: $(document).scrollTop(), left: $(document).scrollLeft() };
-
-		// bugfix for http://dev.jquery.com/ticket/1749
-		if (el.is('.ui-draggable') || (/absolute/).test(el.css('position'))) {
-			el.css({ position: 'absolute', top: iniPos.top, left: iniPos.left });
-		}
-
-		//Opera fixing relative position
-		if ($.browser.opera && (/relative/).test(el.css('position')))
-			el.css({ position: 'relative', top: 'auto', left: 'auto' });
-
-		this._renderProxy();
-
-		var curleft = num(this.helper.css('left')), curtop = num(this.helper.css('top'));
-
-		if (o.containment) {
-			curleft += $(o.containment).scrollLeft() || 0;
-			curtop += $(o.containment).scrollTop() || 0;
-		}
-
-		//Store needed variables
-		this.offset = this.helper.offset();
-		this.position = { left: curleft, top: curtop };
-		this.size = this._helper ? { width: el.outerWidth(), height: el.outerHeight() } : { width: el.width(), height: el.height() };
-		this.originalSize = this._helper ? { width: el.outerWidth(), height: el.outerHeight() } : { width: el.width(), height: el.height() };
-		this.originalPosition = { left: curleft, top: curtop };
-		this.sizeDiff = { width: el.outerWidth() - el.width(), height: el.outerHeight() - el.height() };
-		this.originalMousePosition = { left: event.pageX, top: event.pageY };
-
-		//Aspect Ratio
-		this.aspectRatio = (typeof o.aspectRatio == 'number') ? o.aspectRatio : ((this.originalSize.width / this.originalSize.height) || 1);
-
-	    var cursor = $('.ui-resizable-' + this.axis).css('cursor');
-	    $('body').css('cursor', cursor == 'auto' ? this.axis + '-resize' : cursor);
-
-		el.addClass("ui-resizable-resizing");
-		this._propagate("start", event);
-		return true;
-	},
-
-	_mouseDrag: function(event) {
-
-		//Increase performance, avoid regex
-		var el = this.helper, o = this.options, props = {},
-			self = this, smp = this.originalMousePosition, a = this.axis;
-
-		var dx = (event.pageX-smp.left)||0, dy = (event.pageY-smp.top)||0;
-		var trigger = this._change[a];
-		if (!trigger) return false;
-
-		// Calculate the attrs that will be change
-		var data = trigger.apply(this, [event, dx, dy]), ie6 = $.browser.msie && $.browser.version < 7, csdif = this.sizeDiff;
-
-		// Put this in the mouseDrag handler since the user can start pressing shift while resizing
-		this._updateVirtualBoundaries(event.shiftKey);
-		if (this._aspectRatio || event.shiftKey)
-			data = this._updateRatio(data, event);
-
-		data = this._respectSize(data, event);
-
-		// plugins callbacks need to be called first
-		this._propagate("resize", event);
-
-		el.css({
-			top: this.position.top + "px", left: this.position.left + "px",
-			width: this.size.width + "px", height: this.size.height + "px"
-		});
-
-		if (!this._helper && this._proportionallyResizeElements.length)
-			this._proportionallyResize();
-
-		this._updateCache(data);
-
-		// calling the user callback at the end
-		this._trigger('resize', event, this.ui());
-
-		return false;
-	},
-
-	_mouseStop: function(event) {
-
-		this.resizing = false;
-		var o = this.options, self = this;
-
-		if(this._helper) {
-			var pr = this._proportionallyResizeElements, ista = pr.length && (/textarea/i).test(pr[0].nodeName),
-				soffseth = ista && $.ui.hasScroll(pr[0], 'left') /* TODO - jump height */ ? 0 : self.sizeDiff.height,
-				soffsetw = ista ? 0 : self.sizeDiff.width;
-
-			var s = { width: (self.helper.width()  - soffsetw), height: (self.helper.height() - soffseth) },
-				left = (parseInt(self.element.css('left'), 10) + (self.position.left - self.originalPosition.left)) || null,
-				top = (parseInt(self.element.css('top'), 10) + (self.position.top - self.originalPosition.top)) || null;
-
-			if (!o.animate)
-				this.element.css($.extend(s, { top: top, left: left }));
-
-			self.helper.height(self.size.height);
-			self.helper.width(self.size.width);
-
-			if (this._helper && !o.animate) this._proportionallyResize();
-		}
-
-		$('body').css('cursor', 'auto');
-
-		this.element.removeClass("ui-resizable-resizing");
-
-		this._propagate("stop", event);
-
-		if (this._helper) this.helper.remove();
-		return false;
-
-	},
-
-    _updateVirtualBoundaries: function(forceAspectRatio) {
-        var o = this.options, pMinWidth, pMaxWidth, pMinHeight, pMaxHeight, b;
-
-        b = {
-            minWidth: isNumber(o.minWidth) ? o.minWidth : 0,
-            maxWidth: isNumber(o.maxWidth) ? o.maxWidth : Infinity,
-            minHeight: isNumber(o.minHeight) ? o.minHeight : 0,
-            maxHeight: isNumber(o.maxHeight) ? o.maxHeight : Infinity
-        };
-
-        if(this._aspectRatio || forceAspectRatio) {
-            // We want to create an enclosing box whose aspect ration is the requested one
-            // First, compute the "projected" size for each dimension based on the aspect ratio and other dimension
-            pMinWidth = b.minHeight * this.aspectRatio;
-            pMinHeight = b.minWidth / this.aspectRatio;
-            pMaxWidth = b.maxHeight * this.aspectRatio;
-            pMaxHeight = b.maxWidth / this.aspectRatio;
-
-            if(pMinWidth > b.minWidth) b.minWidth = pMinWidth;
-            if(pMinHeight > b.minHeight) b.minHeight = pMinHeight;
-            if(pMaxWidth < b.maxWidth) b.maxWidth = pMaxWidth;
-            if(pMaxHeight < b.maxHeight) b.maxHeight = pMaxHeight;
-        }
-        this._vBoundaries = b;
-    },
-
-	_updateCache: function(data) {
-		var o = this.options;
-		this.offset = this.helper.offset();
-		if (isNumber(data.left)) this.position.left = data.left;
-		if (isNumber(data.top)) this.position.top = data.top;
-		if (isNumber(data.height)) this.size.height = data.height;
-		if (isNumber(data.width)) this.size.width = data.width;
-	},
-
-	_updateRatio: function(data, event) {
-
-		var o = this.options, cpos = this.position, csize = this.size, a = this.axis;
-
-		if (isNumber(data.height)) data.width = (data.height * this.aspectRatio);
-		else if (isNumber(data.width)) data.height = (data.width / this.aspectRatio);
-
-		if (a == 'sw') {
-			data.left = cpos.left + (csize.width - data.width);
-			data.top = null;
-		}
-		if (a == 'nw') {
-			data.top = cpos.top + (csize.height - data.height);
-			data.left = cpos.left + (csize.width - data.width);
-		}
-
-		return data;
-	},
-
-	_respectSize: function(data, event) {
-
-		var el = this.helper, o = this._vBoundaries, pRatio = this._aspectRatio || event.shiftKey, a = this.axis,
-				ismaxw = isNumber(data.width) && o.maxWidth && (o.maxWidth < data.width), ismaxh = isNumber(data.height) && o.maxHeight && (o.maxHeight < data.height),
-					isminw = isNumber(data.width) && o.minWidth && (o.minWidth > data.width), isminh = isNumber(data.height) && o.minHeight && (o.minHeight > data.height);
-
-		if (isminw) data.width = o.minWidth;
-		if (isminh) data.height = o.minHeight;
-		if (ismaxw) data.width = o.maxWidth;
-		if (ismaxh) data.height = o.maxHeight;
-
-		var dw = this.originalPosition.left + this.originalSize.width, dh = this.position.top + this.size.height;
-		var cw = /sw|nw|w/.test(a), ch = /nw|ne|n/.test(a);
-
-		if (isminw && cw) data.left = dw - o.minWidth;
-		if (ismaxw && cw) data.left = dw - o.maxWidth;
-		if (isminh && ch)	data.top = dh - o.minHeight;
-		if (ismaxh && ch)	data.top = dh - o.maxHeight;
-
-		// fixing jump error on top/left - bug #2330
-		var isNotwh = !data.width && !data.height;
-		if (isNotwh && !data.left && data.top) data.top = null;
-		else if (isNotwh && !data.top && data.left) data.left = null;
-
-		return data;
-	},
-
-	_proportionallyResize: function() {
-
-		var o = this.options;
-		if (!this._proportionallyResizeElements.length) return;
-		var element = this.helper || this.element;
-
-		for (var i=0; i < this._proportionallyResizeElements.length; i++) {
-
-			var prel = this._proportionallyResizeElements[i];
-
-			if (!this.borderDif) {
-				var b = [prel.css('borderTopWidth'), prel.css('borderRightWidth'), prel.css('borderBottomWidth'), prel.css('borderLeftWidth')],
-					p = [prel.css('paddingTop'), prel.css('paddingRight'), prel.css('paddingBottom'), prel.css('paddingLeft')];
-
-				this.borderDif = $.map(b, function(v, i) {
-					var border = parseInt(v,10)||0, padding = parseInt(p[i],10)||0;
-					return border + padding;
-				});
-			}
-
-			if ($.browser.msie && !(!($(element).is(':hidden') || $(element).parents(':hidden').length)))
-				continue;
-
-			prel.css({
-				height: (element.height() - this.borderDif[0] - this.borderDif[2]) || 0,
-				width: (element.width() - this.borderDif[1] - this.borderDif[3]) || 0
-			});
-
-		};
-
-	},
-
-	_renderProxy: function() {
-
-		var el = this.element, o = this.options;
-		this.elementOffset = el.offset();
-
-		if(this._helper) {
-
-			this.helper = this.helper || $('<div style="overflow:hidden;"></div>');
-
-			// fix ie6 offset TODO: This seems broken
-			var ie6 = $.browser.msie && $.browser.version < 7, ie6offset = (ie6 ? 1 : 0),
-			pxyoffset = ( ie6 ? 2 : -1 );
-
-			this.helper.addClass(this._helper).css({
-				width: this.element.outerWidth() + pxyoffset,
-				height: this.element.outerHeight() + pxyoffset,
-				position: 'absolute',
-				left: this.elementOffset.left - ie6offset +'px',
-				top: this.elementOffset.top - ie6offset +'px',
-				zIndex: ++o.zIndex //TODO: Don't modify option
-			});
-
-			this.helper
-				.appendTo("body")
-				.disableSelection();
-
-		} else {
-			this.helper = this.element;
-		}
-
-	},
-
-	_change: {
-		e: function(event, dx, dy) {
-			return { width: this.originalSize.width + dx };
-		},
-		w: function(event, dx, dy) {
-			var o = this.options, cs = this.originalSize, sp = this.originalPosition;
-			return { left: sp.left + dx, width: cs.width - dx };
-		},
-		n: function(event, dx, dy) {
-			var o = this.options, cs = this.originalSize, sp = this.originalPosition;
-			return { top: sp.top + dy, height: cs.height - dy };
-		},
-		s: function(event, dx, dy) {
-			return { height: this.originalSize.height + dy };
-		},
-		se: function(event, dx, dy) {
-			return $.extend(this._change.s.apply(this, arguments), this._change.e.apply(this, [event, dx, dy]));
-		},
-		sw: function(event, dx, dy) {
-			return $.extend(this._change.s.apply(this, arguments), this._change.w.apply(this, [event, dx, dy]));
-		},
-		ne: function(event, dx, dy) {
-			return $.extend(this._change.n.apply(this, arguments), this._change.e.apply(this, [event, dx, dy]));
-		},
-		nw: function(event, dx, dy) {
-			return $.extend(this._change.n.apply(this, arguments), this._change.w.apply(this, [event, dx, dy]));
-		}
-	},
-
-	_propagate: function(n, event) {
-		$.ui.plugin.call(this, n, [event, this.ui()]);
-		(n != "resize" && this._trigger(n, event, 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
-		};
-	}
-
-});
-
-$.extend($.ui.resizable, {
-	version: "1.8.16"
-});
-
-/*
- * Resizable Extensions
- */
-
-$.ui.plugin.add("resizable", "alsoResize", {
-
-	start: function (event, ui) {
-		var self = $(this).data("resizable"), o = self.options;
-
-		var _store = function (exp) {
-			$(exp).each(function() {
-				var el = $(this);
-				el.data("resizable-alsoresize", {
-					width: parseInt(el.width(), 10), height: parseInt(el.height(), 10),
-					left: parseInt(el.css('left'), 10), top: parseInt(el.css('top'), 10),
-					position: el.css('position') // to reset Opera on stop()
-				});
-			});
-		};
-
-		if (typeof(o.alsoResize) == 'object' && !o.alsoResize.parentNode) {
-			if (o.alsoResize.length) { o.alsoResize = o.alsoResize[0]; _store(o.alsoResize); }
-			else { $.each(o.alsoResize, function (exp) { _store(exp); }); }
-		}else{
-			_store(o.alsoResize);
-		}
-	},
-
-	resize: function (event, ui) {
-		var self = $(this).data("resizable"), o = self.options, os = self.originalSize, op = self.originalPosition;
-
-		var delta = {
-			height: (self.size.height - os.height) || 0, width: (self.size.width - os.width) || 0,
-			top: (self.position.top - op.top) || 0, left: (self.position.left - op.left) || 0
-		},
-
-		_alsoResize = function (exp, c) {
-			$(exp).each(function() {
-				var el = $(this), start = $(this).data("resizable-alsoresize"), style = {}, 
-					css = c && c.length ? c : el.parents(ui.originalElement[0]).length ? ['width', 'height'] : ['width', 'height', 'top', 'left'];
-
-				$.each(css, function (i, prop) {
-					var sum = (start[prop]||0) + (delta[prop]||0);
-					if (sum && sum >= 0)
-						style[prop] = sum || null;
-				});
-
-				// Opera fixing relative position
-				if ($.browser.opera && /relative/.test(el.css('position'))) {
-					self._revertToRelativePosition = true;
-					el.css({ position: 'absolute', top: 'auto', left: 'auto' });
-				}
-
-				el.css(style);
-			});
-		};
-
-		if (typeof(o.alsoResize) == 'object' && !o.alsoResize.nodeType) {
-			$.each(o.alsoResize, function (exp, c) { _alsoResize(exp, c); });
-		}else{
-			_alsoResize(o.alsoResize);
-		}
-	},
-
-	stop: function (event, ui) {
-		var self = $(this).data("resizable"), o = self.options;
-
-		var _reset = function (exp) {
-			$(exp).each(function() {
-				var el = $(this);
-				// reset position for Opera - no need to verify it was changed
-				el.css({ position: el.data("resizable-alsoresize").position });
-			});
-		};
-
-		if (self._revertToRelativePosition) {
-			self._revertToRelativePosition = false;
-			if (typeof(o.alsoResize) == 'object' && !o.alsoResize.nodeType) {
-				$.each(o.alsoResize, function (exp) { _reset(exp); });
-			}else{
-				_reset(o.alsoResize);
-			}
-		}
-
-		$(this).removeData("resizable-alsoresize");
-	}
-});
-
-$.ui.plugin.add("resizable", "animate", {
-
-	stop: function(event, ui) {
-		var self = $(this).data("resizable"), o = self.options;
-
-		var pr = self._proportionallyResizeElements, ista = pr.length && (/textarea/i).test(pr[0].nodeName),
-					soffseth = ista && $.ui.hasScroll(pr[0], 'left') /* TODO - jump height */ ? 0 : self.sizeDiff.height,
-						soffsetw = ista ? 0 : self.sizeDiff.width;
-
-		var style = { width: (self.size.width - soffsetw), height: (self.size.height - soffseth) },
-					left = (parseInt(self.element.css('left'), 10) + (self.position.left - self.originalPosition.left)) || null,
-						top = (parseInt(self.element.css('top'), 10) + (self.position.top - self.originalPosition.top)) || null;
-
-		self.element.animate(
-			$.extend(style, top && left ? { top: top, left: left } : {}), {
-				duration: o.animateDuration,
-				easing: o.animateEasing,
-				step: function() {
-
-					var data = {
-						width: parseInt(self.element.css('width'), 10),
-						height: parseInt(self.element.css('height'), 10),
-						top: parseInt(self.element.css('top'), 10),
-						left: parseInt(self.element.css('left'), 10)
-					};
-
-					if (pr && pr.length) $(pr[0]).css({ width: data.width, height: data.height });
-
-					// propagating resize, and updating values for each animation step
-					self._updateCache(data);
-					self._propagate("resize", event);
-
-				}
-			}
-		);
-	}
-
-});
-
-$.ui.plugin.add("resizable", "containment", {
-
-	start: function(event, ui) {
-		var self = $(this).data("resizable"), o = self.options, el = self.element;
-		var oc = o.containment,	ce = (oc instanceof $) ? oc.get(0) : (/parent/.test(oc)) ? el.parent().get(0) : oc;
-		if (!ce) return;
-
-		self.containerElement = $(ce);
-
-		if (/document/.test(oc) || oc == document) {
-			self.containerOffset = { left: 0, top: 0 };
-			self.containerPosition = { left: 0, top: 0 };
-
-			self.parentData = {
-				element: $(document), left: 0, top: 0,
-				width: $(document).width(), height: $(document).height() || document.body.parentNode.scrollHeight
-			};
-		}
-
-		// i'm a node, so compute top, left, right, bottom
-		else {
-			var element = $(ce), p = [];
-			$([ "Top", "Right", "Left", "Bottom" ]).each(function(i, name) { p[i] = num(element.css("padding" + name)); });
-
-			self.containerOffset = element.offset();
-			self.containerPosition = element.position();
-			self.containerSize = { height: (element.innerHeight() - p[3]), width: (element.innerWidth() - p[1]) };
-
-			var co = self.containerOffset, ch = self.containerSize.height,	cw = self.containerSize.width,
-						width = ($.ui.hasScroll(ce, "left") ? ce.scrollWidth : cw ), height = ($.ui.hasScroll(ce) ? ce.scrollHeight : ch);
-
-			self.parentData = {
-				element: ce, left: co.left, top: co.top, width: width, height: height
-			};
-		}
-	},
-
-	resize: function(event, ui) {
-		var self = $(this).data("resizable"), o = self.options,
-				ps = self.containerSize, co = self.containerOffset, cs = self.size, cp = self.position,
-				pRatio = self._aspectRatio || event.shiftKey, cop = { top:0, left:0 }, ce = self.containerElement;
-
-		if (ce[0] != document && (/static/).test(ce.css('position'))) cop = co;
-
-		if (cp.left < (self._helper ? co.left : 0)) {
-			self.size.width = self.size.width + (self._helper ? (self.position.left - co.left) : (self.position.left - cop.left));
-			if (pRatio) self.size.height = self.size.width / o.aspectRatio;
-			self.position.left = o.helper ? co.left : 0;
-		}
-
-		if (cp.top < (self._helper ? co.top : 0)) {
-			self.size.height = self.size.height + (self._helper ? (self.position.top - co.top) : self.position.top);
-			if (pRatio) self.size.width = self.size.height * o.aspectRatio;
-			self.position.top = self._helper ? co.top : 0;
-		}
-
-		self.offset.left = self.parentData.left+self.position.left;
-		self.offset.top = self.parentData.top+self.position.top;
-
-		var woset = Math.abs( (self._helper ? self.offset.left - cop.left : (self.offset.left - cop.left)) + self.sizeDiff.width ),
-					hoset = Math.abs( (self._helper ? self.offset.top - cop.top : (self.offset.top - co.top)) + self.sizeDiff.height );
-
-		var isParent = self.containerElement.get(0) == self.element.parent().get(0),
-		    isOffsetRelative = /relative|absolute/.test(self.containerElement.css('position'));
-
-		if(isParent && isOffsetRelative) woset -= self.parentData.left;
-
-		if (woset + self.size.width >= self.parentData.width) {
-			self.size.width = self.parentData.width - woset;
-			if (pRatio) self.size.height = self.size.width / self.aspectRatio;
-		}
-
-		if (hoset + self.size.height >= self.parentData.height) {
-			self.size.height = self.parentData.height - hoset;
-			if (pRatio) self.size.width = self.size.height * self.aspectRatio;
-		}
-	},
-
-	stop: function(event, ui){
-		var self = $(this).data("resizable"), o = self.options, cp = self.position,
-				co = self.containerOffset, cop = self.containerPosition, ce = self.containerElement;
-
-		var helper = $(self.helper), ho = helper.offset(), w = helper.outerWidth() - self.sizeDiff.width, h = helper.outerHeight() - self.sizeDiff.height;
-
-		if (self._helper && !o.animate && (/relative/).test(ce.css('position')))
-			$(this).css({ left: ho.left - cop.left - co.left, width: w, height: h });
-
-		if (self._helper && !o.animate && (/static/).test(ce.css('position')))
-			$(this).css({ left: ho.left - cop.left - co.left, width: w, height: h });
-
-	}
-});
-
-$.ui.plugin.add("resizable", "ghost", {
-
-	start: function(event, ui) {
-
-		var self = $(this).data("resizable"), o = self.options, cs = self.size;
-
-		self.ghost = self.originalElement.clone();
-		self.ghost
-			.css({ opacity: .25, display: 'block', position: 'relative', height: cs.height, width: cs.width, margin: 0, left: 0, top: 0 })
-			.addClass('ui-resizable-ghost')
-			.addClass(typeof o.ghost == 'string' ? o.ghost : '');
-
-		self.ghost.appendTo(self.helper);
-
-	},
-
-	resize: function(event, ui){
-		var self = $(this).data("resizable"), o = self.options;
-		if (self.ghost) self.ghost.css({ position: 'relative', height: self.size.height, width: self.size.width });
-	},
-
-	stop: function(event, ui){
-		var self = $(this).data("resizable"), o = self.options;
-		if (self.ghost && self.helper) self.helper.get(0).removeChild(self.ghost.get(0));
-	}
-
-});
-
-$.ui.plugin.add("resizable", "grid", {
-
-	resize: function(event, ui) {
-		var self = $(this).data("resizable"), o = self.options, cs = self.size, os = self.originalSize, op = self.originalPosition, a = self.axis, ratio = o._aspectRatio || event.shiftKey;
-		o.grid = typeof o.grid == "number" ? [o.grid, o.grid] : o.grid;
-		var ox = Math.round((cs.width - os.width) / (o.grid[0]||1)) * (o.grid[0]||1), oy = Math.round((cs.height - os.height) / (o.grid[1]||1)) * (o.grid[1]||1);
-
-		if (/^(se|s|e)$/.test(a)) {
-			self.size.width = os.width + ox;
-			self.size.height = os.height + oy;
-		}
-		else if (/^(ne)$/.test(a)) {
-			self.size.width = os.width + ox;
-			self.size.height = os.height + oy;
-			self.position.top = op.top - oy;
-		}
-		else if (/^(sw)$/.test(a)) {
-			self.size.width = os.width + ox;
-			self.size.height = os.height + oy;
-			self.position.left = op.left - ox;
-		}
-		else {
-			self.size.width = os.width + ox;
-			self.size.height = os.height + oy;
-			self.position.top = op.top - oy;
-			self.position.left = op.left - ox;
-		}
-	}
-
-});
-
-var num = function(v) {
-	return parseInt(v, 10) || 0;
-};
-
-var isNumber = function(value) {
-	return !isNaN(parseInt(value, 10));
-};
-
-})(jQuery);
-/*
- * jQuery UI Selectable 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/Selectables
- *
- * Depends:
- *	jquery.ui.core.js
- *	jquery.ui.mouse.js
- *	jquery.ui.widget.js
- */
-(function( $, undefined ) {
-
-$.widget("ui.selectable", $.ui.mouse, {
-	options: {
-		appendTo: 'body',
-		autoRefresh: true,
-		distance: 0,
-		filter: '*',
-		tolerance: 'touch'
-	},
-	_create: function() {
-		var self = this;
-
-		this.element.addClass("ui-selectable");
-
-		this.dragged = false;
-
-		// cache selectee children based on filter
-		var selectees;
-		this.refresh = function() {
-			selectees = $(self.options.filter, self.element[0]);
-			selectees.each(function() {
-				var $this = $(this);
-				var pos = $this.offset();
-				$.data(this, "selectable-item", {
-					element: this,
-					$element: $this,
-					left: pos.left,
-					top: pos.top,
-					right: pos.left + $this.outerWidth(),
-					bottom: pos.top + $this.outerHeight(),
-					startselected: false,
-					selected: $this.hasClass('ui-selected'),
-					selecting: $this.hasClass('ui-selecting'),
-					unselecting: $this.hasClass('ui-unselecting')
-				});
-			});
-		};
-		this.refresh();
-
-		this.selectees = selectees.addClass("ui-selectee");
-
-		this._mouseInit();
-
-		this.helper = $("<div class='ui-selectable-helper'></div>");
-	},
-
-	destroy: function() {
-		this.selectees
-			.removeClass("ui-selectee")
-			.removeData("selectable-item");
-		this.element
-			.removeClass("ui-selectable ui-selectable-disabled")
-			.removeData("selectable")
-			.unbind(".selectable");
-		this._mouseDestroy();
-
-		return this;
-	},
-
-	_mouseStart: function(event) {
-		var self = this;
-
-		this.opos = [event.pageX, event.pageY];
-
-		if (this.options.disabled)
-			return;
-
-		var options = this.options;
-
-		this.selectees = $(options.filter, this.element[0]);
-
-		this._trigger("start", event);
-
-		$(options.appendTo).append(this.helper);
-		// position helper (lasso)
-		this.helper.css({
-			"left": event.clientX,
-			"top": event.clientY,
-			"width": 0,
-			"height": 0
-		});
-
-		if (options.autoRefresh) {
-			this.refresh();
-		}
-
-		this.selectees.filter('.ui-selected').each(function() {
-			var selectee = $.data(this, "selectable-item");
-			selectee.startselected = true;
-			if (!event.metaKey) {
-				selectee.$element.removeClass('ui-selected');
-				selectee.selected = false;
-				selectee.$element.addClass('ui-unselecting');
-				selectee.unselecting = true;
-				// selectable UNSELECTING callback
-				self._trigger("unselecting", event, {
-					unselecting: selectee.element
-				});
-			}
-		});
-
-		$(event.target).parents().andSelf().each(function() {
-			var selectee = $.data(this, "selectable-item");
-			if (selectee) {
-				var doSelect = !event.metaKey || !selectee.$element.hasClass('ui-selected');
-				selectee.$element
-					.removeClass(doSelect ? "ui-unselecting" : "ui-selected")
-					.addClass(doSelect ? "ui-selecting" : "ui-unselecting");
-				selectee.unselecting = !doSelect;
-				selectee.selecting = doSelect;
-				selectee.selected = doSelect;
-				// selectable (UN)SELECTING callback
-				if (doSelect) {
-					self._trigger("selecting", event, {
-						selecting: selectee.element
-					});
-				} else {
-					self._trigger("unselecting", event, {
-						unselecting: selectee.element
-					});
-				}
-				return false;
-			}
-		});
-
-	},
-
-	_mouseDrag: function(event) {
-		var self = this;
-		this.dragged = true;
-
-		if (this.options.disabled)
-			return;
-
-		var options = this.options;
-
-		var x1 = this.opos[0], y1 = this.opos[1], x2 = event.pageX, y2 = event.pageY;
-		if (x1 > x2) { var tmp = x2; x2 = x1; x1 = tmp; }
-		if (y1 > y2) { var tmp = y2; y2 = y1; y1 = tmp; }
-		this.helper.css({left: x1, top: y1, width: x2-x1, height: y2-y1});
-
-		this.selectees.each(function() {
-			var selectee = $.data(this, "selectable-item");
-			//prevent helper from being selected if appendTo: selectable
-			if (!selectee || selectee.element == self.element[0])
-				return;
-			var hit = false;
-			if (options.tolerance == 'touch') {
-				hit = ( !(selectee.left > x2 || selectee.right < x1 || selectee.top > y2 || selectee.bottom < y1) );
-			} else if (options.tolerance == 'fit') {
-				hit = (selectee.left > x1 && selectee.right < x2 && selectee.top > y1 && selectee.bottom < y2);
-			}
-
-			if (hit) {
-				// SELECT
-				if (selectee.selected) {
-					selectee.$element.removeClass('ui-selected');
-					selectee.selected = false;
-				}
-				if (selectee.unselecting) {
-					selectee.$element.removeClass('ui-unselecting');
-					selectee.unselecting = false;
-				}
-				if (!selectee.selecting) {
-					selectee.$element.addClass('ui-selecting');
-					selectee.selecting = true;
-					// selectable SELECTING callback
-					self._trigger("selecting", event, {
-						selecting: selectee.element
-					});
-				}
-			} else {
-				// UNSELECT
-				if (selectee.selecting) {
-					if (event.metaKey && selectee.startselected) {
-						selectee.$element.removeClass('ui-selecting');
-						selectee.selecting = false;
-						selectee.$element.addClass('ui-selected');
-						selectee.selected = true;
-					} else {
-						selectee.$element.removeClass('ui-selecting');
-						selectee.selecting = false;
-						if (selectee.startselected) {
-							selectee.$element.addClass('ui-unselecting');
-							selectee.unselecting = true;
-						}
-						// selectable UNSELECTING callback
-						self._trigger("unselecting", event, {
-							unselecting: selectee.element
-						});
-					}
-				}
-				if (selectee.selected) {
-					if (!event.metaKey && !selectee.startselected) {
-						selectee.$element.removeClass('ui-selected');
-						selectee.selected = false;
-
-						selectee.$element.addClass('ui-unselecting');
-						selectee.unselecting = true;
-						// selectable UNSELECTING callback
-						self._trigger("unselecting", event, {
-							unselecting: selectee.element
-						});
-					}
-				}
-			}
-		});
-
-		return false;
-	},
-
-	_mouseStop: function(event) {
-		var self = this;
-
-		this.dragged = false;
-
-		var options = this.options;
-
-		$('.ui-unselecting', this.element[0]).each(function() {
-			var selectee = $.data(this, "selectable-item");
-			selectee.$element.removeClass('ui-unselecting');
-			selectee.unselecting = false;
-			selectee.startselected = false;
-			self._trigger("unselected", event, {
-				unselected: selectee.element
-			});
-		});
-		$('.ui-selecting', this.element[0]).each(function() {
-			var selectee = $.data(this, "selectable-item");
-			selectee.$element.removeClass('ui-selecting').addClass('ui-selected');
-			selectee.selecting = false;
-			selectee.selected = true;
-			selectee.startselected = true;
-			self._trigger("selected", event, {
-				selected: selectee.element
-			});
-		});
-		this._trigger("stop", event);
-
-		this.helper.remove();
-
-		return false;
-	}
-
-});
-
-$.extend($.ui.selectable, {
-	version: "1.8.16"
-});
-
-})(jQuery);
-/*
- * jQuery UI Sortable 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/Sortables
- *
- * Depends:
- *	jquery.ui.core.js
- *	jquery.ui.mouse.js
- *	jquery.ui.widget.js
- */
-(function( $, undefined ) {
-
-$.widget("ui.sortable", $.ui.mouse, {
-	widgetEventPrefix: "sort",
-	options: {
-		appendTo: "parent",
-		axis: false,
-		connectWith: false,
-		containment: false,
-		cursor: 'auto',
-		cursorAt: false,
-		dropOnEmpty: true,
-		forcePlaceholderSize: false,
-		forceHelperSize: false,
-		grid: false,
-		handle: false,
-		helper: "original",
-		items: '> *',
-		opacity: false,
-		placeholder: false,
-		revert: false,
-		scroll: true,
-		scrollSensitivity: 20,
-		scrollSpeed: 20,
-		scope: "default",
-		tolerance: "intersect",
-		zIndex: 1000
-	},
-	_create: function() {
-
-		var o = this.options;
-		this.containerCache = {};
-		this.element.addClass("ui-sortable");
-
-		//Get the items
-		this.refresh();
-
-		//Let's determine if the items are being displayed horizontally
-		this.floating = this.items.length ? o.axis === 'x' || (/left|right/).test(this.items[0].item.css('float')) || (/inline|table-cell/).test(this.items[0].item.css('display')) : false;
-
-		//Let's determine the parent's offset
-		this.offset = this.element.offset();
-
-		//Initialize mouse events for interaction
-		this._mouseInit();
-
-	},
-
-	destroy: function() {
-		this.element
-			.removeClass("ui-sortable ui-sortable-disabled")
-			.removeData("sortable")
-			.unbind(".sortable");
-		this._mouseDestroy();
-
-		for ( var i = this.items.length - 1; i >= 0; i-- )
-			this.items[i].item.removeData("sortable-item");
-
-		return this;
-	},
-
-	_setOption: function(key, value){
-		if ( key === "disabled" ) {
-			this.options[ key ] = value;
-	
-			this.widget()
-				[ value ? "addClass" : "removeClass"]( "ui-sortable-disabled" );
-		} else {
-			// Don't call widget base _setOption for disable as it adds ui-state-disabled class
-			$.Widget.prototype._setOption.apply(this, arguments);
-		}
-	},
-
-	_mouseCapture: function(event, overrideHandle) {
-
-		if (this.reverting) {
-			return false;
-		}
-
-		if(this.options.disabled || this.options.type == 'static') return false;
-
-		//We have to refresh the items data once first
-		this._refreshItems(event);
-
-		//Find out if the clicked node (or one of its parents) is a actual item in this.items
-		var currentItem = null, self = this, nodes = $(event.target).parents().each(function() {
-			if($.data(this, 'sortable-item') == self) {
-				currentItem = $(this);
-				return false;
-			}
-		});
-		if($.data(event.target, 'sortable-item') == self) currentItem = $(event.target);
-
-		if(!currentItem) return false;
-		if(this.options.handle && !overrideHandle) {
-			var validHandle = false;
-
-			$(this.options.handle, currentItem).find("*").andSelf().each(function() { if(this == event.target) validHandle = true; });
-			if(!validHandle) return false;
-		}
-
-		this.currentItem = currentItem;
-		this._removeCurrentsFromItems();
-		return true;
-
-	},
-
-	_mouseStart: function(event, overrideHandle, noActivation) {
-
-		var o = this.options, self = this;
-		this.currentContainer = this;
-
-		//We only need to call refreshPositions, because the refreshItems call has been moved to mouseCapture
-		this.refreshPositions();
-
-		//Create and append the visible helper
-		this.helper = this._createHelper(event);
-
-		//Cache the helper size
-		this._cacheHelperProportions();
-
-		/*
-		 * - Position generation -
-		 * This block generates everything position related - it's the core of draggables.
-		 */
-
-		//Cache the margins of the original element
-		this._cacheMargins();
-
-		//Get the next scrolling parent
-		this.scrollParent = this.helper.scrollParent();
-
-		//The element's absolute position on the page minus margins
-		this.offset = this.currentItem.offset();
-		this.offset = {
-			top: this.offset.top - this.margins.top,
-			left: this.offset.left - this.margins.left
-		};
-
-		// Only after we got the offset, we can change the helper's position to absolute
-		// TODO: Still need to figure out a way to make relative sorting possible
-		this.helper.css("position", "absolute");
-		this.cssPosition = this.helper.css("position");
-
-		$.extend(this.offset, {
-			click: { //Where the click happened, relative to the element
-				left: event.pageX - this.offset.left,
-				top: event.pageY - this.offset.top
-			},
-			parent: this._getParentOffset(),
-			relative: this._getRelativeOffset() //This is a relative to absolute position minus the actual position calculation - only used for relative positioned helper
-		});
-
-		//Generate the original position
-		this.originalPosition = this._generatePosition(event);
-		this.originalPageX = event.pageX;
-		this.originalPageY = event.pageY;
-
-		//Adjust the mouse offset relative to the helper if 'cursorAt' is supplied
-		(o.cursorAt && this._adjustOffsetFromHelper(o.cursorAt));
-
-		//Cache the former DOM position
-		this.domPosition = { prev: this.currentItem.prev()[0], parent: this.currentItem.parent()[0] };
-
-		//If the helper is not the original, hide the original so it's not playing any role during the drag, won't cause anything bad this way
-		if(this.helper[0] != this.currentItem[0]) {
-			this.currentItem.hide();
-		}
-
-		//Create the placeholder
-		this._createPlaceholder();
-
-		//Set a containment if given in the options
-		if(o.containment)
-			this._setContainment();
-
-		if(o.cursor) { // cursor option
-			if ($('body').css("cursor")) this._storedCursor = $('body').css("cursor");
-			$('body').css("cursor", o.cursor);
-		}
-
-		if(o.opacity) { // opacity option
-			if (this.helper.css("opacity")) this._storedOpacity = this.helper.css("opacity");
-			this.helper.css("opacity", o.opacity);
-		}
-
-		if(o.zIndex) { // zIndex option
-			if (this.helper.css("zIndex")) this._storedZIndex = this.helper.css("zIndex");
-			this.helper.css("zIndex", o.zIndex);
-		}
-
-		//Prepare scrolling
-		if(this.scrollParent[0] != document && this.scrollParent[0].tagName != 'HTML')
-			this.overflowOffset = this.scrollParent.offset();
-
-		//Call callbacks
-		this._trigger("start", event, this._uiHash());
-
-		//Recache the helper size
-		if(!this._preserveHelperProportions)
-			this._cacheHelperProportions();
-
-
-		//Post 'activate' events to possible containers
-		if(!noActivation) {
-			 for (var i = this.containers.length - 1; i >= 0; i--) { this.containers[i]._trigger("activate", event, self._uiHash(this)); }
-		}
-
-		//Prepare possible droppables
-		if($.ui.ddmanager)
-			$.ui.ddmanager.current = this;
-
-		if ($.ui.ddmanager && !o.dropBehaviour)
-			$.ui.ddmanager.prepareOffsets(this, event);
-
-		this.dragging = true;
-
-		this.helper.addClass("ui-sortable-helper");
-		this._mouseDrag(event); //Execute the drag once - this causes the helper not to be visible before getting its correct position
-		return true;
-
-	},
-
-	_mouseDrag: function(event) {
-
-		//Compute the helpers position
-		this.position = this._generatePosition(event);
-		this.positionAbs = this._convertPositionTo("absolute");
-
-		if (!this.lastPositionAbs) {
-			this.lastPositionAbs = this.positionAbs;
-		}
-
-		//Do scrolling
-		if(this.options.scroll) {
-			var o = this.options, scrolled = false;
-			if(this.scrollParent[0] != document && this.scrollParent[0].tagName != 'HTML') {
-
-				if((this.overflowOffset.top + this.scrollParent[0].offsetHeight) - event.pageY < o.scrollSensitivity)
-					this.scrollParent[0].scrollTop = scrolled = this.scrollParent[0].scrollTop + o.scrollSpeed;
-				else if(event.pageY - this.overflowOffset.top < o.scrollSensitivity)
-					this.scrollParent[0].scrollTop = scrolled = this.scrollParent[0].scrollTop - o.scrollSpeed;
-
-				if((this.overflowOffset.left + this.scrollParent[0].offsetWidth) - event.pageX < o.scrollSensitivity)
-					this.scrollParent[0].scrollLeft = scrolled = this.scrollParent[0].scrollLeft + o.scrollSpeed;
-				else if(event.pageX - this.overflowOffset.left < o.scrollSensitivity)
-					this.scrollParent[0].scrollLeft = scrolled = this.scrollParent[0].scrollLeft - o.scrollSpeed;
-
-			} else {
-
-				if(event.pageY - $(document).scrollTop() < o.scrollSensitivity)
-					scrolled = $(document).scrollTop($(document).scrollTop() - o.scrollSpeed);
-				else if($(window).height() - (event.pageY - $(document).scrollTop()) < o.scrollSensitivity)
-					scrolled = $(document).scrollTop($(document).scrollTop() + o.scrollSpeed);
-
-				if(event.pageX - $(document).scrollLeft() < o.scrollSensitivity)
-					scrolled = $(document).scrollLeft($(document).scrollLeft() - o.scrollSpeed);
-				else if($(window).width() - (event.pageX - $(document).scrollLeft()) < o.scrollSensitivity)
-					scrolled = $(document).scrollLeft($(document).scrollLeft() + o.scrollSpeed);
-
-			}
-
-			if(scrolled !== false && $.ui.ddmanager && !o.dropBehaviour)
-				$.ui.ddmanager.prepareOffsets(this, event);
-		}
-
-		//Regenerate the absolute position used for position checks
-		this.positionAbs = this._convertPositionTo("absolute");
-
-		//Set the helper 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';
-
-		//Rearrange
-		for (var i = this.items.length - 1; i >= 0; i--) {
-
-			//Cache variables and intersection, continue if no intersection
-			var item = this.items[i], itemElement = item.item[0], intersection = this._intersectsWithPointer(item);
-			if (!intersection) continue;
-
-			if(itemElement != this.currentItem[0] //cannot intersect with itself
-				&&	this.placeholder[intersection == 1 ? "next" : "prev"]()[0] != itemElement //no useless actions that have been done before
-				&&	!$.ui.contains(this.placeholder[0], itemElement) //no action if the item moved is the parent of the item checked
-				&& (this.options.type == 'semi-dynamic' ? !$.ui.contains(this.element[0], itemElement) : true)
-				//&& itemElement.parentNode == this.placeholder[0].parentNode // only rearrange items within the same container
-			) {
-
-				this.direction = intersection == 1 ? "down" : "up";
-
-				if (this.options.tolerance == "pointer" || this._intersectsWithSides(item)) {
-					this._rearrange(event, item);
-				} else {
-					break;
-				}
-
-				this._trigger("change", event, this._uiHash());
-				break;
-			}
-		}
-
-		//Post events to containers
-		this._contactContainers(event);
-
-		//Interconnect with droppables
-		if($.ui.ddmanager) $.ui.ddmanager.drag(this, event);
-
-		//Call callbacks
-		this._trigger('sort', event, this._uiHash());
-
-		this.lastPositionAbs = this.positionAbs;
-		return false;
-
-	},
-
-	_mouseStop: function(event, noPropagation) {
-
-		if(!event) return;
-
-		//If we are using droppables, inform the manager about the drop
-		if ($.ui.ddmanager && !this.options.dropBehaviour)
-			$.ui.ddmanager.drop(this, event);
-
-		if(this.options.revert) {
-			var self = this;
-			var cur = self.placeholder.offset();
-
-			self.reverting = true;
-
-			$(this.helper).animate({
-				left: cur.left - this.offset.parent.left - self.margins.left + (this.offsetParent[0] == document.body ? 0 : this.offsetParent[0].scrollLeft),
-				top: cur.top - this.offset.parent.top - self.margins.top + (this.offsetParent[0] == document.body ? 0 : this.offsetParent[0].scrollTop)
-			}, parseInt(this.options.revert, 10) || 500, function() {
-				self._clear(event);
-			});
-		} else {
-			this._clear(event, noPropagation);
-		}
-
-		return false;
-
-	},
-
-	cancel: function() {
-
-		var self = this;
-
-		if(this.dragging) {
-
-			this._mouseUp({ target: null });
-
-			if(this.options.helper == "original")
-				this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper");
-			else
-				this.currentItem.show();
-
-			//Post deactivating events to containers
-			for (var i = this.containers.length - 1; i >= 0; i--){
-				this.containers[i]._trigger("deactivate", null, self._uiHash(this));
-				if(this.containers[i].containerCache.over) {
-					this.containers[i]._trigger("out", null, self._uiHash(this));
-					this.containers[i].containerCache.over = 0;
-				}
-			}
-
-		}
-
-		if (this.placeholder) {
-			//$(this.placeholder[0]).remove(); would have been the jQuery way - unfortunately, it unbinds ALL events from the original node!
-			if(this.placeholder[0].parentNode) this.placeholder[0].parentNode.removeChild(this.placeholder[0]);
-			if(this.options.helper != "original" && this.helper && this.helper[0].parentNode) this.helper.remove();
-
-			$.extend(this, {
-				helper: null,
-				dragging: false,
-				reverting: false,
-				_noFinalSort: null
-			});
-
-			if(this.domPosition.prev) {
-				$(this.domPosition.prev).after(this.currentItem);
-			} else {
-				$(this.domPosition.parent).prepend(this.currentItem);
-			}
-		}
-
-		return this;
-
-	},
-
-	serialize: function(o) {
-
-		var items = this._getItemsAsjQuery(o && o.connected);
-		var str = []; o = o || {};
-
-		$(items).each(function() {
-			var res = ($(o.item || this).attr(o.attribute || 'id') || '').match(o.expression || (/(.+)[-=_](.+)/));
-			if(res) str.push((o.key || res[1]+'[]')+'='+(o.key && o.expression ? res[1] : res[2]));
-		});
-
-		if(!str.length && o.key) {
-			str.push(o.key + '=');
-		}
-
-		return str.join('&');
-
-	},
-
-	toArray: function(o) {
-
-		var items = this._getItemsAsjQuery(o && o.connected);
-		var ret = []; o = o || {};
-
-		items.each(function() { ret.push($(o.item || this).attr(o.attribute || 'id') || ''); });
-		return ret;
-
-	},
-
-	/* Be careful with the following core functions */
-	_intersectsWith: function(item) {
-
-		var x1 = this.positionAbs.left,
-			x2 = x1 + this.helperProportions.width,
-			y1 = this.positionAbs.top,
-			y2 = y1 + this.helperProportions.height;
-
-		var l = item.left,
-			r = l + item.width,
-			t = item.top,
-			b = t + item.height;
-
-		var dyClick = this.offset.click.top,
-			dxClick = this.offset.click.left;
-
-		var isOverElement = (y1 + dyClick) > t && (y1 + dyClick) < b && (x1 + dxClick) > l && (x1 + dxClick) < r;
-
-		if(	   this.options.tolerance == "pointer"
-			|| this.options.forcePointerForContainers
-			|| (this.options.tolerance != "pointer" && this.helperProportions[this.floating ? 'width' : 'height'] > item[this.floating ? 'width' : 'height'])
-		) {
-			return isOverElement;
-		} else {
-
-			return (l < x1 + (this.helperProportions.width / 2) // Right Half
-				&& x2 - (this.helperProportions.width / 2) < r // Left Half
-				&& t < y1 + (this.helperProportions.height / 2) // Bottom Half
-				&& y2 - (this.helperProportions.height / 2) < b ); // Top Half
-
-		}
-	},
-
-	_intersectsWithPointer: function(item) {
-
-		var isOverElementHeight = $.ui.isOverAxis(this.positionAbs.top + this.offset.click.top, item.top, item.height),
-			isOverElementWidth = $.ui.isOverAxis(this.positionAbs.left + this.offset.click.left, item.left, item.width),
-			isOverElement = isOverElementHeight && isOverElementWidth,
-			verticalDirection = this._getDragVerticalDirection(),
-			horizontalDirection = this._getDragHorizontalDirection();
-
-		if (!isOverElement)
-			return false;
-
-		return this.floating ?
-			( ((horizontalDirection && horizontalDirection == "right") || verticalDirection == "down") ? 2 : 1 )
-			: ( verticalDirection && (verticalDirection == "down" ? 2 : 1) );
-
-	},
-
-	_intersectsWithSides: function(item) {
-
-		var isOverBottomHalf = $.ui.isOverAxis(this.positionAbs.top + this.offset.click.top, item.top + (item.height/2), item.height),
-			isOverRightHalf = $.ui.isOverAxis(this.positionAbs.left + this.offset.click.left, item.left + (item.width/2), item.width),
-			verticalDirection = this._getDragVerticalDirection(),
-			horizontalDirection = this._getDragHorizontalDirection();
-
-		if (this.floating && horizontalDirection) {
-			return ((horizontalDirection == "right" && isOverRightHalf) || (horizontalDirection == "left" && !isOverRightHalf));
-		} else {
-			return verticalDirection && ((verticalDirection == "down" && isOverBottomHalf) || (verticalDirection == "up" && !isOverBottomHalf));
-		}
-
-	},
-
-	_getDragVerticalDirection: function() {
-		var delta = this.positionAbs.top - this.lastPositionAbs.top;
-		return delta != 0 && (delta > 0 ? "down" : "up");
-	},
-
-	_getDragHorizontalDirection: function() {
-		var delta = this.positionAbs.left - this.lastPositionAbs.left;
-		return delta != 0 && (delta > 0 ? "right" : "left");
-	},
-
-	refresh: function(event) {
-		this._refreshItems(event);
-		this.refreshPositions();
-		return this;
-	},
-
-	_connectWith: function() {
-		var options = this.options;
-		return options.connectWith.constructor == String
-			? [options.connectWith]
-			: options.connectWith;
-	},
-	
-	_getItemsAsjQuery: function(connected) {
-
-		var self = this;
-		var items = [];
-		var queries = [];
-		var connectWith = this._connectWith();
-
-		if(connectWith && connected) {
-			for (var i = connectWith.length - 1; i >= 0; i--){
-				var cur = $(connectWith[i]);
-				for (var j = cur.length - 1; j >= 0; j--){
-					var inst = $.data(cur[j], 'sortable');
-					if(inst && inst != this && !inst.options.disabled) {
-						queries.push([$.isFunction(inst.options.items) ? inst.options.items.call(inst.element) : $(inst.options.items, inst.element).not(".ui-sortable-helper").not('.ui-sortable-placeholder'), inst]);
-					}
-				};
-			};
-		}
-
-		queries.push([$.isFunction(this.options.items) ? this.options.items.call(this.element, null, { options: this.options, item: this.currentItem }) : $(this.options.items, this.element).not(".ui-sortable-helper").not('.ui-sortable-placeholder'), this]);
-
-		for (var i = queries.length - 1; i >= 0; i--){
-			queries[i][0].each(function() {
-				items.push(this);
-			});
-		};
-
-		return $(items);
-
-	},
-
-	_removeCurrentsFromItems: function() {
-
-		var list = this.currentItem.find(":data(sortable-item)");
-
-		for (var i=0; i < this.items.length; i++) {
-
-			for (var j=0; j < list.length; j++) {
-				if(list[j] == this.items[i].item[0])
-					this.items.splice(i,1);
-			};
-
-		};
-
-	},
-
-	_refreshItems: function(event) {
-
-		this.items = [];
-		this.containers = [this];
-		var items = this.items;
-		var self = this;
-		var queries = [[$.isFunction(this.options.items) ? this.options.items.call(this.element[0], event, { item: this.currentItem }) : $(this.options.items, this.element), this]];
-		var connectWith = this._connectWith();
-
-		if(connectWith) {
-			for (var i = connectWith.length - 1; i >= 0; i--){
-				var cur = $(connectWith[i]);
-				for (var j = cur.length - 1; j >= 0; j--){
-					var inst = $.data(cur[j], 'sortable');
-					if(inst && inst != this && !inst.options.disabled) {
-						queries.push([$.isFunction(inst.options.items) ? inst.options.items.call(inst.element[0], event, { item: this.currentItem }) : $(inst.options.items, inst.element), inst]);
-						this.containers.push(inst);
-					}
-				};
-			};
-		}
-
-		for (var i = queries.length - 1; i >= 0; i--) {
-			var targetData = queries[i][1];
-			var _queries = queries[i][0];
-
-			for (var j=0, queriesLength = _queries.length; j < queriesLength; j++) {
-				var item = $(_queries[j]);
-
-				item.data('sortable-item', targetData); // Data for target checking (mouse manager)
-
-				items.push({
-					item: item,
-					instance: targetData,
-					width: 0, height: 0,
-					left: 0, top: 0
-				});
-			};
-		};
-
-	},
-
-	refreshPositions: function(fast) {
-
-		//This has to be redone because due to the item being moved out/into the offsetParent, the offsetParent's position will change
-		if(this.offsetParent && this.helper) {
-			this.offset.parent = this._getParentOffset();
-		}
-
-		for (var i = this.items.length - 1; i >= 0; i--){
-			var item = this.items[i];
-
-			//We ignore calculating positions of all connected containers when we're not over them
-			if(item.instance != this.currentContainer && this.currentContainer && item.item[0] != this.currentItem[0])
-				continue;
-
-			var t = this.options.toleranceElement ? $(this.options.toleranceElement, item.item) : item.item;
-
-			if (!fast) {
-				item.width = t.outerWidth();
-				item.height = t.outerHeight();
-			}
-
-			var p = t.offset();
-			item.left = p.left;
-			item.top = p.top;
-		};
-
-		if(this.options.custom && this.options.custom.refreshContainers) {
-			this.options.custom.refreshContainers.call(this);
-		} else {
-			for (var i = this.containers.length - 1; i >= 0; i--){
-				var p = this.containers[i].element.offset();
-				this.containers[i].containerCache.left = p.left;
-				this.containers[i].containerCache.top = p.top;
-				this.containers[i].containerCache.width	= this.containers[i].element.outerWidth();
-				this.containers[i].containerCache.height = this.containers[i].element.outerHeight();
-			};
-		}
-
-		return this;
-	},
-
-	_createPlaceholder: function(that) {
-
-		var self = that || this, o = self.options;
-
-		if(!o.placeholder || o.placeholder.constructor == String) {
-			var className = o.placeholder;
-			o.placeholder = {
-				element: function() {
-
-					var el = $(document.createElement(self.currentItem[0].nodeName))
-						.addClass(className || self.currentItem[0].className+" ui-sortable-placeholder")
-						.removeClass("ui-sortable-helper")[0];
-
-					if(!className)
-						el.style.visibility = "hidden";
-
-					return el;
-				},
-				update: function(container, p) {
-
-					// 1. If a className is set as 'placeholder option, we don't force sizes - the class is responsible for that
-					// 2. The option 'forcePlaceholderSize can be enabled to force it even if a class name is specified
-					if(className && !o.forcePlaceholderSize) return;
-
-					//If the element doesn't have a actual height by itself (without styles coming from a stylesheet), it receives the inline height from the dragged item
-					if(!p.height()) { p.height(self.currentItem.innerHeight() - parseInt(self.currentItem.css('paddingTop')||0, 10) - parseInt(self.currentItem.css('paddingBottom')||0, 10)); };
-					if(!p.width()) { p.width(self.currentItem.innerWidth() - parseInt(self.currentItem.css('paddingLeft')||0, 10) - parseInt(self.currentItem.css('paddingRight')||0, 10)); };
-				}
-			};
-		}
-
-		//Create the placeholder
-		self.placeholder = $(o.placeholder.element.call(self.element, self.currentItem));
-
-		//Append it after the actual current item
-		self.currentItem.after(self.placeholder);
-
-		//Update the size of the placeholder (TODO: Logic to fuzzy, see line 316/317)
-		o.placeholder.update(self, self.placeholder);
-
-	},
-
-	_contactContainers: function(event) {
-		
-		// get innermost container that intersects with item 
-		var innermostContainer = null, innermostIndex = null;		
-		
-		
-		for (var i = this.containers.length - 1; i >= 0; i--){
-
-			// never consider a container that's located within the item itself 
-			if($.ui.contains(this.currentItem[0], this.containers[i].element[0]))
-				continue;
-
-			if(this._intersectsWith(this.containers[i].containerCache)) {
-
-				// if we've already found a container and it's more "inner" than this, then continue 
-				if(innermostContainer && $.ui.contains(this.containers[i].element[0], innermostContainer.element[0]))
-					continue;
-
-				innermostContainer = this.containers[i]; 
-				innermostIndex = i;
-					
-			} else {
-				// container doesn't intersect. trigger "out" event if necessary 
-				if(this.containers[i].containerCache.over) {
-					this.containers[i]._trigger("out", event, this._uiHash(this));
-					this.containers[i].containerCache.over = 0;
-				}
-			}
-
-		}
-		
-		// if no intersecting containers found, return 
-		if(!innermostContainer) return; 
-
-		// move the item into the container if it's not there already
-		if(this.containers.length === 1) {
-			this.containers[innermostIndex]._trigger("over", event, this._uiHash(this));
-			this.containers[innermostIndex].containerCache.over = 1;
-		} else if(this.currentContainer != this.containers[innermostIndex]) { 
-
-			//When entering a new container, we will find the item with the least distance and append our item near it 
-			var dist = 10000; var itemWithLeastDistance = null; var base = this.positionAbs[this.containers[innermostIndex].floating ? 'left' : 'top']; 
-			for (var j = this.items.length - 1; j >= 0; j--) { 
-				if(!$.ui.contains(this.containers[innermostIndex].element[0], this.items[j].item[0])) continue; 
-				var cur = this.items[j][this.containers[innermostIndex].floating ? 'left' : 'top']; 
-				if(Math.abs(cur - base) < dist) { 
-					dist = Math.abs(cur - base); itemWithLeastDistance = this.items[j]; 
-				} 
-			} 
-
-			if(!itemWithLeastDistance && !this.options.dropOnEmpty) //Check if dropOnEmpty is enabled 
-				return; 
-
-			this.currentContainer = this.containers[innermostIndex]; 
-			itemWithLeastDistance ? this._rearrange(event, itemWithLeastDistance, null, true) : this._rearrange(event, null, this.containers[innermostIndex].element, true); 
-			this._trigger("change", event, this._uiHash()); 
-			this.containers[innermostIndex]._trigger("change", event, this._uiHash(this)); 
-
-			//Update the placeholder 
-			this.options.placeholder.update(this.currentContainer, this.placeholder); 
-		
-			this.containers[innermostIndex]._trigger("over", event, this._uiHash(this)); 
-			this.containers[innermostIndex].containerCache.over = 1;
-		} 
-	
-		
-	},
-
-	_createHelper: function(event) {
-
-		var o = this.options;
-		var helper = $.isFunction(o.helper) ? $(o.helper.apply(this.element[0], [event, this.currentItem])) : (o.helper == 'clone' ? this.currentItem.clone() : this.currentItem);
-
-		if(!helper.parents('body').length) //Add the helper to the DOM if that didn't happen already
-			$(o.appendTo != 'parent' ? o.appendTo : this.currentItem[0].parentNode)[0].appendChild(helper[0]);
-
-		if(helper[0] == this.currentItem[0])
-			this._storedCSS = { width: this.currentItem[0].style.width, height: this.currentItem[0].style.height, position: this.currentItem.css("position"), top: this.currentItem.css("top"), left: this.currentItem.css("left") };
-
-		if(helper[0].style.width == '' || o.forceHelperSize) helper.width(this.currentItem.width());
-		if(helper[0].style.height == '' || o.forceHelperSize) helper.height(this.currentItem.height());
-
-		return helper;
-
-	},
-
-	_adjustOffsetFromHelper: function(obj) {
-		if (typeof obj == 'string') {
-			obj = obj.split(' ');
-		}
-		if ($.isArray(obj)) {
-			obj = {left: +obj[0], top: +obj[1] || 0};
-		}
-		if ('left' in obj) {
-			this.offset.click.left = obj.left + this.margins.left;
-		}
-		if ('right' in obj) {
-			this.offset.click.left = this.helperProportions.width - obj.right + this.margins.left;
-		}
-		if ('top' in obj) {
-			this.offset.click.top = obj.top + this.margins.top;
-		}
-		if ('bottom' in obj) {
-			this.offset.click.top = this.helperProportions.height - obj.bottom + this.margins.top;
-		}
-	},
-
-	_getParentOffset: function() {
-
-
-		//Get the offsetParent and cache its position
-		this.offsetParent = this.helper.offsetParent();
-		var po = this.offsetParent.offset();
-
-		// This is a special case where we need to modify a offset calculated on start, since the following happened:
-		// 1. The position of the helper is absolute, so it's position is calculated based on the next positioned parent
-		// 2. The actual offset parent is a child of the scroll parent, and the scroll parent isn't the document, which means that
-		//    the scroll is included in the initial calculation of the offset of the parent, and never recalculated upon drag
-		if(this.cssPosition == 'absolute' && this.scrollParent[0] != document && $.ui.contains(this.scrollParent[0], this.offsetParent[0])) {
-			po.left += this.scrollParent.scrollLeft();
-			po.top += this.scrollParent.scrollTop();
-		}
-
-		if((this.offsetParent[0] == document.body) //This needs to be actually done for all browsers, since pageX/pageY includes this information
-		|| (this.offsetParent[0].tagName && this.offsetParent[0].tagName.toLowerCase() == 'html' && $.browser.msie)) //Ugly IE fix
-			po = { top: 0, left: 0 };
-
-		return {
-			top: po.top + (parseInt(this.offsetParent.css("borderTopWidth"),10) || 0),
-			left: po.left + (parseInt(this.offsetParent.css("borderLeftWidth"),10) || 0)
-		};
-
-	},
-
-	_getRelativeOffset: function() {
-
-		if(this.cssPosition == "relative") {
-			var p = this.currentItem.position();
-			return {
-				top: p.top - (parseInt(this.helper.css("top"),10) || 0) + this.scrollParent.scrollTop(),
-				left: p.left - (parseInt(this.helper.css("left"),10) || 0) + this.scrollParent.scrollLeft()
-			};
-		} else {
-			return { top: 0, left: 0 };
-		}
-
-	},
-
-	_cacheMargins: function() {
-		this.margins = {
-			left: (parseInt(this.currentItem.css("marginLeft"),10) || 0),
-			top: (parseInt(this.currentItem.css("marginTop"),10) || 0)
-		};
-	},
-
-	_cacheHelperProportions: function() {
-		this.helperProportions = {
-			width: this.helper.outerWidth(),
-			height: this.helper.outerHeight()
-		};
-	},
-
-	_setContainment: function() {
-
-		var o = this.options;
-		if(o.containment == 'parent') o.containment = this.helper[0].parentNode;
-		if(o.containment == 'document' || o.containment == 'window') this.containment = [
-			0 - this.offset.relative.left - this.offset.parent.left,
-			0 - this.offset.relative.top - this.offset.parent.top,
-			$(o.containment == 'document' ? document : window).width() - this.helperProportions.width - this.margins.left,
-			($(o.containment == 'document' ? document : window).height() || document.body.parentNode.scrollHeight) - this.helperProportions.height - this.margins.top
-		];
-
-		if(!(/^(document|window|parent)$/).test(o.containment)) {
-			var ce = $(o.containment)[0];
-			var co = $(o.containment).offset();
-			var over = ($(ce).css("overflow") != 'hidden');
-
-			this.containment = [
-				co.left + (parseInt($(ce).css("borderLeftWidth"),10) || 0) + (parseInt($(ce).css("paddingLeft"),10) || 0) - this.margins.left,
-				co.top + (parseInt($(ce).css("borderTopWidth"),10) || 0) + (parseInt($(ce).css("paddingTop"),10) || 0) - this.margins.top,
-				co.left+(over ? Math.max(ce.scrollWidth,ce.offsetWidth) : ce.offsetWidth) - (parseInt($(ce).css("borderLeftWidth"),10) || 0) - (parseInt($(ce).css("paddingRight"),10) || 0) - this.helperProportions.width - this.margins.left,
-				co.top+(over ? Math.max(ce.scrollHeight,ce.offsetHeight) : ce.offsetHeight) - (parseInt($(ce).css("borderTopWidth"),10) || 0) - (parseInt($(ce).css("paddingBottom"),10) || 0) - this.helperProportions.height - this.margins.top
-			];
-		}
-
-	},
-
-	_convertPositionTo: function(d, pos) {
-
-		if(!pos) pos = this.position;
-		var mod = d == "absolute" ? 1 : -1;
-		var o = this.options, scroll = this.cssPosition == 'absolute' && !(this.scrollParent[0] != document && $.ui.contains(this.scrollParent[0], this.offsetParent[0])) ? this.offsetParent : this.scrollParent, scrollIsRootNode = (/(html|body)/i).test(scroll[0].tagName);
-
-		return {
-			top: (
-				pos.top																	// The absolute mouse position
-				+ this.offset.relative.top * mod										// Only for relative positioned nodes: Relative offset from element to offset parent
-				+ this.offset.parent.top * mod											// The offsetParent's offset without borders (offset + border)
-				- ($.browser.safari && this.cssPosition == 'fixed' ? 0 : ( this.cssPosition == 'fixed' ? -this.scrollParent.scrollTop() : ( scrollIsRootNode ? 0 : scroll.scrollTop() ) ) * mod)
-			),
-			left: (
-				pos.left																// The absolute mouse position
-				+ this.offset.relative.left * mod										// Only for relative positioned nodes: Relative offset from element to offset parent
-				+ this.offset.parent.left * mod											// The offsetParent's offset without borders (offset + border)
-				- ($.browser.safari && this.cssPosition == 'fixed' ? 0 : ( this.cssPosition == 'fixed' ? -this.scrollParent.scrollLeft() : scrollIsRootNode ? 0 : scroll.scrollLeft() ) * mod)
-			)
-		};
-
-	},
-
-	_generatePosition: function(event) {
-
-		var o = this.options, scroll = this.cssPosition == 'absolute' && !(this.scrollParent[0] != document && $.ui.contains(this.scrollParent[0], this.offsetParent[0])) ? this.offsetParent : this.scrollParent, scrollIsRootNode = (/(html|body)/i).test(scroll[0].tagName);
-
-		// This is another very weird special case that only happens for relative elements:
-		// 1. If the css position is relative
-		// 2. and the scroll parent is the document or similar to the offset parent
-		// we have to refresh the relative offset during the scroll so there are no jumps
-		if(this.cssPosition == 'relative' && !(this.scrollParent[0] != document && this.scrollParent[0] != this.offsetParent[0])) {
-			this.offset.relative = this._getRelativeOffset();
-		}
-
-		var pageX = event.pageX;
-		var pageY = event.pageY;
-
-		/*
-		 * - Position constraining -
-		 * Constrain the position to a mix of grid, containment.
-		 */
-
-		if(this.originalPosition) { //If we are not dragging yet, we won't check for options
-
-			if(this.containment) {
-				if(event.pageX - this.offset.click.left < this.containment[0]) pageX = this.containment[0] + this.offset.click.left;
-				if(event.pageY - this.offset.click.top < this.containment[1]) pageY = this.containment[1] + this.offset.click.top;
-				if(event.pageX - this.offset.click.left > this.containment[2]) pageX = this.containment[2] + this.offset.click.left;
-				if(event.pageY - this.offset.click.top > this.containment[3]) pageY = this.containment[3] + this.offset.click.top;
-			}
-
-			if(o.grid) {
-				var top = this.originalPageY + Math.round((pageY - this.originalPageY) / o.grid[1]) * o.grid[1];
-				pageY = this.containment ? (!(top - this.offset.click.top < this.containment[1] || top - this.offset.click.top > this.containment[3]) ? top : (!(top - this.offset.click.top < this.containment[1]) ? top - o.grid[1] : top + o.grid[1])) : top;
-
-				var left = this.originalPageX + Math.round((pageX - this.originalPageX) / o.grid[0]) * o.grid[0];
-				pageX = this.containment ? (!(left - this.offset.click.left < this.containment[0] || left - this.offset.click.left > this.containment[2]) ? left : (!(left - this.offset.click.left < this.containment[0]) ? left - o.grid[0] : left + o.grid[0])) : left;
-			}
-
-		}
-
-		return {
-			top: (
-				pageY																// The absolute mouse position
-				- this.offset.click.top													// Click offset (relative to the element)
-				- this.offset.relative.top												// Only for relative positioned nodes: Relative offset from element to offset parent
-				- this.offset.parent.top												// The offsetParent's offset without borders (offset + border)
-				+ ($.browser.safari && this.cssPosition == 'fixed' ? 0 : ( this.cssPosition == 'fixed' ? -this.scrollParent.scrollTop() : ( scrollIsRootNode ? 0 : scroll.scrollTop() ) ))
-			),
-			left: (
-				pageX																// The absolute mouse position
-				- this.offset.click.left												// Click offset (relative to the element)
-				- this.offset.relative.left												// Only for relative positioned nodes: Relative offset from element to offset parent
-				- this.offset.parent.left												// The offsetParent's offset without borders (offset + border)
-				+ ($.browser.safari && this.cssPosition == 'fixed' ? 0 : ( this.cssPosition == 'fixed' ? -this.scrollParent.scrollLeft() : scrollIsRootNode ? 0 : scroll.scrollLeft() ))
-			)
-		};
-
-	},
-
-	_rearrange: function(event, i, a, hardRefresh) {
-
-		a ? a[0].appendChild(this.placeholder[0]) : i.item[0].parentNode.insertBefore(this.placeholder[0], (this.direction == 'down' ? i.item[0] : i.item[0].nextSibling));
-
-		//Various things done here to improve the performance:
-		// 1. we create a setTimeout, that calls refreshPositions
-		// 2. on the instance, we have a counter variable, that get's higher after every append
-		// 3. on the local scope, we copy the counter variable, and check in the timeout, if it's still the same
-		// 4. this lets only the last addition to the timeout stack through
-		this.counter = this.counter ? ++this.counter : 1;
-		var self = this, counter = this.counter;
-
-		window.setTimeout(function() {
-			if(counter == self.counter) self.refreshPositions(!hardRefresh); //Precompute after each DOM insertion, NOT on mousemove
-		},0);
-
-	},
-
-	_clear: function(event, noPropagation) {
-
-		this.reverting = false;
-		// We delay all events that have to be triggered to after the point where the placeholder has been removed and
-		// everything else normalized again
-		var delayedTriggers = [], self = this;
-
-		// We first have to update the dom position of the actual currentItem
-		// Note: don't do it if the current item is already removed (by a user), or it gets reappended (see #4088)
-		if(!this._noFinalSort && this.currentItem.parent().length) this.placeholder.before(this.currentItem);
-		this._noFinalSort = null;
-
-		if(this.helper[0] == this.currentItem[0]) {
-			for(var i in this._storedCSS) {
-				if(this._storedCSS[i] == 'auto' || this._storedCSS[i] == 'static') this._storedCSS[i] = '';
-			}
-			this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper");
-		} else {
-			this.currentItem.show();
-		}
-
-		if(this.fromOutside && !noPropagation) delayedTriggers.push(function(event) { this._trigger("receive", event, this._uiHash(this.fromOutside)); });
-		if((this.fromOutside || this.domPosition.prev != this.currentItem.prev().not(".ui-sortable-helper")[0] || this.domPosition.parent != this.currentItem.parent()[0]) && !noPropagation) delayedTriggers.push(function(event) { this._trigger("update", event, this._uiHash()); }); //Trigger update callback if the DOM position has changed
-		if(!$.ui.contains(this.element[0], this.currentItem[0])) { //Node was moved out of the current element
-			if(!noPropagation) delayedTriggers.push(function(event) { this._trigger("remove", event, this._uiHash()); });
-			for (var i = this.containers.length - 1; i >= 0; i--){
-				if($.ui.contains(this.containers[i].element[0], this.currentItem[0]) && !noPropagation) {
-					delayedTriggers.push((function(c) { return function(event) { c._trigger("receive", event, this._uiHash(this)); };  }).call(this, this.containers[i]));
-					delayedTriggers.push((function(c) { return function(event) { c._trigger("update", event, this._uiHash(this));  }; }).call(this, this.containers[i]));
-				}
-			};
-		};
-
-		//Post events to containers
-		for (var i = this.containers.length - 1; i >= 0; i--){
-			if(!noPropagation) delayedTriggers.push((function(c) { return function(event) { c._trigger("deactivate", event, this._uiHash(this)); };  }).call(this, this.containers[i]));
-			if(this.containers[i].containerCache.over) {
-				delayedTriggers.push((function(c) { return function(event) { c._trigger("out", event, this._uiHash(this)); };  }).call(this, this.containers[i]));
-				this.containers[i].containerCache.over = 0;
-			}
-		}
-
-		//Do what was originally in plugins
-		if(this._storedCursor) $('body').css("cursor", this._storedCursor); //Reset cursor
-		if(this._storedOpacity) this.helper.css("opacity", this._storedOpacity); //Reset opacity
-		if(this._storedZIndex) this.helper.css("zIndex", this._storedZIndex == 'auto' ? '' : this._storedZIndex); //Reset z-index
-
-		this.dragging = false;
-		if(this.cancelHelperRemoval) {
-			if(!noPropagation) {
-				this._trigger("beforeStop", event, this._uiHash());
-				for (var i=0; i < delayedTriggers.length; i++) { delayedTriggers[i].call(this, event); }; //Trigger all delayed events
-				this._trigger("stop", event, this._uiHash());
-			}
-			return false;
-		}
-
-		if(!noPropagation) this._trigger("beforeStop", event, this._uiHash());
-
-		//$(this.placeholder[0]).remove(); would have been the jQuery way - unfortunately, it unbinds ALL events from the original node!
-		this.placeholder[0].parentNode.removeChild(this.placeholder[0]);
-
-		if(this.helper[0] != this.currentItem[0]) this.helper.remove(); this.helper = null;
-
-		if(!noPropagation) {
-			for (var i=0; i < delayedTriggers.length; i++) { delayedTriggers[i].call(this, event); }; //Trigger all delayed events
-			this._trigger("stop", event, this._uiHash());
-		}
-
-		this.fromOutside = false;
-		return true;
-
-	},
-
-	_trigger: function() {
-		if ($.Widget.prototype._trigger.apply(this, arguments) === false) {
-			this.cancel();
-		}
-	},
-
-	_uiHash: function(inst) {
-		var self = inst || this;
-		return {
-			helper: self.helper,
-			placeholder: self.placeholder || $([]),
-			position: self.position,
-			originalPosition: self.originalPosition,
-			offset: self.positionAbs,
-			item: self.currentItem,
-			sender: inst ? inst.element : null
-		};
-	}
-
-});
-
-$.extend($.ui.sortable, {
-	version: "1.8.16"
-});
-
-})(jQuery);
-/*
- * jQuery UI Effects 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/Effects/
- */
-;jQuery.effects || (function($, undefined) {
-
-$.effects = {};
-
-
-
-/******************************************************************************/
-/****************************** COLOR ANIMATIONS ******************************/
-/******************************************************************************/
-
-// override the animation for color styles
-$.each(['backgroundColor', 'borderBottomColor', 'borderLeftColor',
-	'borderRightColor', 'borderTopColor', 'borderColor', 'color', 'outlineColor'],
-function(i, attr) {
-	$.fx.step[attr] = function(fx) {
-		if (!fx.colorInit) {
-			fx.start = getColor(fx.elem, attr);
-			fx.end = getRGB(fx.end);
-			fx.colorInit = true;
-		}
-
-		fx.elem.style[attr] = 'rgb(' +
-			Math.max(Math.min(parseInt((fx.pos * (fx.end[0] - fx.start[0])) + fx.start[0], 10), 255), 0) + ',' +
-			Math.max(Math.min(parseInt((fx.pos * (fx.end[1] - fx.start[1])) + fx.start[1], 10), 255), 0) + ',' +
-			Math.max(Math.min(parseInt((fx.pos * (fx.end[2] - fx.start[2])) + fx.start[2], 10), 255), 0) + ')';
-	};
-});
-
-// Color Conversion functions from highlightFade
-// By Blair Mitchelmore
-// http://jquery.offput.ca/highlightFade/
-
-// Parse strings looking for color tuples [255,255,255]
-function getRGB(color) {
-		var result;
-
-		// Check if we're already dealing with an array of colors
-		if ( color && color.constructor == Array && color.length == 3 )
-				return color;
-
-		// Look for rgb(num,num,num)
-		if (result = /rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/.exec(color))
-				return [parseInt(result[1],10), parseInt(result[2],10), parseInt(result[3],10)];
-
-		// Look for rgb(num%,num%,num%)
-		if (result = /rgb\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*\)/.exec(color))
-				return [parseFloat(result[1])*2.55, parseFloat(result[2])*2.55, parseFloat(result[3])*2.55];
-
-		// Look for #a0b1c2
-		if (result = /#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/.exec(color))
-				return [parseInt(result[1],16), parseInt(result[2],16), parseInt(result[3],16)];
-
-		// Look for #fff
-		if (result = /#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/.exec(color))
-				return [parseInt(result[1]+result[1],16), parseInt(result[2]+result[2],16), parseInt(result[3]+result[3],16)];
-
-		// Look for rgba(0, 0, 0, 0) == transparent in Safari 3
-		if (result = /rgba\(0, 0, 0, 0\)/.exec(color))
-				return colors['transparent'];
-
-		// Otherwise, we're most likely dealing with a named color
-		return colors[$.trim(color).toLowerCase()];
-}
-
-function getColor(elem, attr) {
-		var color;
-
-		do {
-				color = $.curCSS(elem, attr);
-
-				// Keep going until we find an element that has color, or we hit the body
-				if ( color != '' && color != 'transparent' || $.nodeName(elem, "body") )
-						break;
-
-				attr = "backgroundColor";
-		} while ( elem = elem.parentNode );
-
-		return getRGB(color);
-};
-
-// Some named colors to work with
-// From Interface by Stefan Petre
-// http://interface.eyecon.ro/
-
-var colors = {
-	aqua:[0,255,255],
-	azure:[240,255,255],
-	beige:[245,245,220],
-	black:[0,0,0],
-	blue:[0,0,255],
-	brown:[165,42,42],
-	cyan:[0,255,255],
-	darkblue:[0,0,139],
-	darkcyan:[0,139,139],
-	darkgrey:[169,169,169],
-	darkgreen:[0,100,0],
-	darkkhaki:[189,183,107],
-	darkmagenta:[139,0,139],
-	darkolivegreen:[85,107,47],
-	darkorange:[255,140,0],
-	darkorchid:[153,50,204],
-	darkred:[139,0,0],
-	darksalmon:[233,150,122],
-	darkviolet:[148,0,211],
-	fuchsia:[255,0,255],
-	gold:[255,215,0],
-	green:[0,128,0],
-	indigo:[75,0,130],
-	khaki:[240,230,140],
-	lightblue:[173,216,230],
-	lightcyan:[224,255,255],
-	lightgreen:[144,238,144],
-	lightgrey:[211,211,211],
-	lightpink:[255,182,193],
-	lightyellow:[255,255,224],
-	lime:[0,255,0],
-	magenta:[255,0,255],
-	maroon:[128,0,0],
-	navy:[0,0,128],
-	olive:[128,128,0],
-	orange:[255,165,0],
-	pink:[255,192,203],
-	purple:[128,0,128],
-	violet:[128,0,128],
-	red:[255,0,0],
-	silver:[192,192,192],
-	white:[255,255,255],
-	yellow:[255,255,0],
-	transparent: [255,255,255]
-};
-
-
-
-/******************************************************************************/
-/****************************** CLASS ANIMATIONS ******************************/
-/******************************************************************************/
-
-var classAnimationActions = ['add', 'remove', 'toggle'],
-	shorthandStyles = {
-		border: 1,
-		borderBottom: 1,
-		borderColor: 1,
-		borderLeft: 1,
-		borderRight: 1,
-		borderTop: 1,
-		borderWidth: 1,
-		margin: 1,
-		padding: 1
-	};
-
-function getElementStyles() {
-	var style = document.defaultView
-			? document.defaultView.getComputedStyle(this, null)
-			: this.currentStyle,
-		newStyle = {},
-		key,
-		camelCase;
-
-	// webkit enumerates style porperties
-	if (style && style.length && style[0] && style[style[0]]) {
-		var len = style.length;
-		while (len--) {
-			key = style[len];
-			if (typeof style[key] == 'string') {
-				camelCase = key.replace(/\-(\w)/g, function(all, letter){
-					return letter.toUpperCase();
-				});
-				newStyle[camelCase] = style[key];
-			}
-		}
-	} else {
-		for (key in style) {
-			if (typeof style[key] === 'string') {
-				newStyle[key] = style[key];
-			}
-		}
-	}
-	
-	return newStyle;
-}
-
-function filterStyles(styles) {
-	var name, value;
-	for (name in styles) {
-		value = styles[name];
-		if (
-			// ignore null and undefined values
-			value == null ||
-			// ignore functions (when does this occur?)
-			$.isFunction(value) ||
-			// shorthand styles that need to be expanded
-			name in shorthandStyles ||
-			// ignore scrollbars (break in IE)
-			(/scrollbar/).test(name) ||
-
-			// only colors or values that can be converted to numbers
-			(!(/color/i).test(name) && isNaN(parseFloat(value)))
-		) {
-			delete styles[name];
-		}
-	}
-	
-	return styles;
-}
-
-function styleDifference(oldStyle, newStyle) {
-	var diff = { _: 0 }, // http://dev.jquery.com/ticket/5459
-		name;
-
-	for (name in newStyle) {
-		if (oldStyle[name] != newStyle[name]) {
-			diff[name] = newStyle[name];
-		}
-	}
-
-	return diff;
-}
-
-$.effects.animateClass = function(value, duration, easing, callback) {
-	if ($.isFunction(easing)) {
-		callback = easing;
-		easing = null;
-	}
-
-	return this.queue(function() {
-		var that = $(this),
-			originalStyleAttr = that.attr('style') || ' ',
-			originalStyle = filterStyles(getElementStyles.call(this)),
-			newStyle,
-			className = that.attr('class');
-
-		$.each(classAnimationActions, function(i, action) {
-			if (value[action]) {
-				that[action + 'Class'](value[action]);
-			}
-		});
-		newStyle = filterStyles(getElementStyles.call(this));
-		that.attr('class', className);
-
-		that.animate(styleDifference(originalStyle, newStyle), {
-			queue: false,
-			duration: duration,
-			easing: easing,
-			complete: function() {
-				$.each(classAnimationActions, function(i, action) {
-					if (value[action]) { that[action + 'Class'](value[action]); }
-				});
-				// work around bug in IE by clearing the cssText before setting it
-				if (typeof that.attr('style') == 'object') {
-					that.attr('style').cssText = '';
-					that.attr('style').cssText = originalStyleAttr;
-				} else {
-					that.attr('style', originalStyleAttr);
-				}
-				if (callback) { callback.apply(this, arguments); }
-				$.dequeue( this );
-			}
-		});
-	});
-};
-
-$.fn.extend({
-	_addClass: $.fn.addClass,
-	addClass: function(classNames, speed, easing, callback) {
-		return speed ? $.effects.animateClass.apply(this, [{ add: classNames },speed,easing,callback]) : this._addClass(classNames);
-	},
-
-	_removeClass: $.fn.removeClass,
-	removeClass: function(classNames,speed,easing,callback) {
-		return speed ? $.effects.animateClass.apply(this, [{ remove: classNames },speed,easing,callback]) : this._removeClass(classNames);
-	},
-
-	_toggleClass: $.fn.toggleClass,
-	toggleClass: function(classNames, force, speed, easing, callback) {
-		if ( typeof force == "boolean" || force === undefined ) {
-			if ( !speed ) {
-				// without speed parameter;
-				return this._toggleClass(classNames, force);
-			} else {
-				return $.effects.animateClass.apply(this, [(force?{add:classNames}:{remove:classNames}),speed,easing,callback]);
-			}
-		} else {
-			// without switch parameter;
-			return $.effects.animateClass.apply(this, [{ toggle: classNames },force,speed,easing]);
-		}
-	},
-
-	switchClass: function(remove,add,speed,easing,callback) {
-		return $.effects.animateClass.apply(this, [{ add: add, remove: remove },speed,easing,callback]);
-	}
-});
-
-
-
-/******************************************************************************/
-/*********************************** EFFECTS **********************************/
-/******************************************************************************/
-
-$.extend($.effects, {
-	version: "1.8.16",
-
-	// Saves a set of properties in a data storage
-	save: function(element, set) {
-		for(var i=0; i < set.length; i++) {
-			if(set[i] !== null) element.data("ec.storage."+set[i], element[0].style[set[i]]);
-		}
-	},
-
-	// Restores a set of previously saved properties from a data storage
-	restore: function(element, set) {
-		for(var i=0; i < set.length; i++) {
-			if(set[i] !== null) element.css(set[i], element.data("ec.storage."+set[i]));
-		}
-	},
-
-	setMode: function(el, mode) {
-		if (mode == 'toggle') mode = el.is(':hidden') ? 'show' : 'hide'; // Set for toggle
-		return mode;
-	},
-
-	getBaseline: function(origin, original) { // Translates a [top,left] array into a baseline value
-		// this should be a little more flexible in the future to handle a string & hash
-		var y, x;
-		switch (origin[0]) {
-			case 'top': y = 0; break;
-			case 'middle': y = 0.5; break;
-			case 'bottom': y = 1; break;
-			default: y = origin[0] / original.height;
-		};
-		switch (origin[1]) {
-			case 'left': x = 0; break;
-			case 'center': x = 0.5; break;
-			case 'right': x = 1; break;
-			default: x = origin[1] / original.width;
-		};
-		return {x: x, y: y};
-	},
-
-	// Wraps the element around a wrapper that copies position properties
-	createWrapper: function(element) {
-
-		// if the element is already wrapped, return it
-		if (element.parent().is('.ui-effects-wrapper')) {
-			return element.parent();
-		}
-
-		// wrap the element
-		var props = {
-				width: element.outerWidth(true),
-				height: element.outerHeight(true),
-				'float': element.css('float')
-			},
-			wrapper = $('<div></div>')
-				.addClass('ui-effects-wrapper')
-				.css({
-					fontSize: '100%',
-					background: 'transparent',
-					border: 'none',
-					margin: 0,
-					padding: 0
-				}),
-			active = document.activeElement;
-
-		element.wrap(wrapper);
-
-		// Fixes #7595 - Elements lose focus when wrapped.
-		if ( element[ 0 ] === active || $.contains( element[ 0 ], active ) ) {
-			$( active ).focus();
-		}
-		
-		wrapper = element.parent(); //Hotfix for jQuery 1.4 since some change in wrap() seems to actually loose the reference to the wrapped element
-
-		// transfer positioning properties to the wrapper
-		if (element.css('position') == 'static') {
-			wrapper.css({ position: 'relative' });
-			element.css({ position: 'relative' });
-		} else {
-			$.extend(props, {
-				position: element.css('position'),
-				zIndex: element.css('z-index')
-			});
-			$.each(['top', 'left', 'bottom', 'right'], function(i, pos) {
-				props[pos] = element.css(pos);
-				if (isNaN(parseInt(props[pos], 10))) {
-					props[pos] = 'auto';
-				}
-			});
-			element.css({position: 'relative', top: 0, left: 0, right: 'auto', bottom: 'auto' });
-		}
-
-		return wrapper.css(props).show();
-	},
-
-	removeWrapper: function(element) {
-		var parent,
-			active = document.activeElement;
-		
-		if (element.parent().is('.ui-effects-wrapper')) {
-			parent = element.parent().replaceWith(element);
-			// Fixes #7595 - Elements lose focus when wrapped.
-			if ( element[ 0 ] === active || $.contains( element[ 0 ], active ) ) {
-				$( active ).focus();
-			}
-			return parent;
-		}
-			
-		return element;
-	},
-
-	setTransition: function(element, list, factor, value) {
-		value = value || {};
-		$.each(list, function(i, x){
-			unit = element.cssUnit(x);
-			if (unit[0] > 0) value[x] = unit[0] * factor + unit[1];
-		});
-		return value;
-	}
-});
-
-
-function _normalizeArguments(effect, options, speed, callback) {
-	// shift params for method overloading
-	if (typeof effect == 'object') {
-		callback = options;
-		speed = null;
-		options = effect;
-		effect = options.effect;
-	}
-	if ($.isFunction(options)) {
-		callback = options;
-		speed = null;
-		options = {};
-	}
-        if (typeof options == 'number' || $.fx.speeds[options]) {
-		callback = speed;
-		speed = options;
-		options = {};
-	}
-	if ($.isFunction(speed)) {
-		callback = speed;
-		speed = null;
-	}
-
-	options = options || {};
-
-	speed = speed || options.duration;
-	speed = $.fx.off ? 0 : typeof speed == 'number'
-		? speed : speed in $.fx.speeds ? $.fx.speeds[speed] : $.fx.speeds._default;
-
-	callback = callback || options.complete;
-
-	return [effect, options, speed, callback];
-}
-
-function standardSpeed( speed ) {
-	// valid standard speeds
-	if ( !speed || typeof speed === "number" || $.fx.speeds[ speed ] ) {
-		return true;
-	}
-	
-	// invalid strings - treat as "normal" speed
-	if ( typeof speed === "string" && !$.effects[ speed ] ) {
-		return true;
-	}
-	
-	return false;
-}
-
-$.fn.extend({
-	effect: function(effect, options, speed, callback) {
-		var args = _normalizeArguments.apply(this, arguments),
-			// TODO: make effects take actual parameters instead of a hash
-			args2 = {
-				options: args[1],
-				duration: args[2],
-				callback: args[3]
-			},
-			mode = args2.options.mode,
-			effectMethod = $.effects[effect];
-		
-		if ( $.fx.off || !effectMethod ) {
-			// delegate to the original method (e.g., .show()) if possible
-			if ( mode ) {
-				return this[ mode ]( args2.duration, args2.callback );
-			} else {
-				return this.each(function() {
-					if ( args2.callback ) {
-						args2.callback.call( this );
-					}
-				});
-			}
-		}
-		
-		return effectMethod.call(this, args2);
-	},
-
-	_show: $.fn.show,
-	show: function(speed) {
-		if ( standardSpeed( speed ) ) {
-			return this._show.apply(this, arguments);
-		} else {
-			var args = _normalizeArguments.apply(this, arguments);
-			args[1].mode = 'show';
-			return this.effect.apply(this, args);
-		}
-	},
-
-	_hide: $.fn.hide,
-	hide: function(speed) {
-		if ( standardSpeed( speed ) ) {
-			return this._hide.apply(this, arguments);
-		} else {
-			var args = _normalizeArguments.apply(this, arguments);
-			args[1].mode = 'hide';
-			return this.effect.apply(this, args);
-		}
-	},
-
-	// jQuery core overloads toggle and creates _toggle
-	__toggle: $.fn.toggle,
-	toggle: function(speed) {
-		if ( standardSpeed( speed ) || typeof speed === "boolean" || $.isFunction( speed ) ) {
-			return this.__toggle.apply(this, arguments);
-		} else {
-			var args = _normalizeArguments.apply(this, arguments);
-			args[1].mode = 'toggle';
-			return this.effect.apply(this, args);
-		}
-	},
-
-	// helper functions
-	cssUnit: function(key) {
-		var style = this.css(key), val = [];
-		$.each( ['em','px','%','pt'], function(i, unit){
-			if(style.indexOf(unit) > 0)
-				val = [parseFloat(style), unit];
-		});
-		return val;
-	}
-});
-
-
-
-/******************************************************************************/
-/*********************************** EASING ***********************************/
-/******************************************************************************/
-
-/*
- * jQuery Easing v1.3 - http://gsgd.co.uk/sandbox/jquery/easing/
- *
- * Uses the built in easing capabilities added In jQuery 1.1
- * to offer multiple easing options
- *
- * TERMS OF USE - jQuery Easing
- *
- * Open source under the BSD License.
- *
- * Copyright 2008 George McGinley Smith
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modification,
- * are permitted provided that the following conditions are met:
- *
- * Redistributions of source code must retain the above copyright notice, this list of
- * conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above copyright notice, this list
- * of conditions and the following disclaimer in the documentation and/or other materials
- * provided with the distribution.
- *
- * Neither the name of the author nor the names of contributors may be used to endorse
- * or promote products derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
- * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
- * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
- * OF THE POSSIBILITY OF SUCH DAMAGE.
- *
-*/
-
-// t: current time, b: begInnIng value, c: change In value, d: duration
-$.easing.jswing = $.easing.swing;
-
-$.extend($.easing,
-{
-	def: 'easeOutQuad',
-	swing: function (x, t, b, c, d) {
-		//alert($.easing.default);
-		return $.easing[$.easing.def](x, t, b, c, d);
-	},
-	easeInQuad: function (x, t, b, c, d) {
-		return c*(t/=d)*t + b;
-	},
-	easeOutQuad: function (x, t, b, c, d) {
-		return -c *(t/=d)*(t-2) + b;
-	},
-	easeInOutQuad: function (x, t, b, c, d) {
-		if ((t/=d/2) < 1) return c/2*t*t + b;
-		return -c/2 * ((--t)*(t-2) - 1) + b;
-	},
-	easeInCubic: function (x, t, b, c, d) {
-		return c*(t/=d)*t*t + b;
-	},
-	easeOutCubic: function (x, t, b, c, d) {
-		return c*((t=t/d-1)*t*t + 1) + b;
-	},
-	easeInOutCubic: function (x, t, b, c, d) {
-		if ((t/=d/2) < 1) return c/2*t*t*t + b;
-		return c/2*((t-=2)*t*t + 2) + b;
-	},
-	easeInQuart: function (x, t, b, c, d) {
-		return c*(t/=d)*t*t*t + b;
-	},
-	easeOutQuart: function (x, t, b, c, d) {
-		return -c * ((t=t/d-1)*t*t*t - 1) + b;
-	},
-	easeInOutQuart: function (x, t, b, c, d) {
-		if ((t/=d/2) < 1) return c/2*t*t*t*t + b;
-		return -c/2 * ((t-=2)*t*t*t - 2) + b;
-	},
-	easeInQuint: function (x, t, b, c, d) {
-		return c*(t/=d)*t*t*t*t + b;
-	},
-	easeOutQuint: function (x, t, b, c, d) {
-		return c*((t=t/d-1)*t*t*t*t + 1) + b;
-	},
-	easeInOutQuint: function (x, t, b, c, d) {
-		if ((t/=d/2) < 1) return c/2*t*t*t*t*t + b;
-		return c/2*((t-=2)*t*t*t*t + 2) + b;
-	},
-	easeInSine: function (x, t, b, c, d) {
-		return -c * Math.cos(t/d * (Math.PI/2)) + c + b;
-	},
-	easeOutSine: function (x, t, b, c, d) {
-		return c * Math.sin(t/d * (Math.PI/2)) + b;
-	},
-	easeInOutSine: function (x, t, b, c, d) {
-		return -c/2 * (Math.cos(Math.PI*t/d) - 1) + b;
-	},
-	easeInExpo: function (x, t, b, c, d) {
-		return (t==0) ? b : c * Math.pow(2, 10 * (t/d - 1)) + b;
-	},
-	easeOutExpo: function (x, t, b, c, d) {
-		return (t==d) ? b+c : c * (-Math.pow(2, -10 * t/d) + 1) + b;
-	},
-	easeInOutExpo: function (x, t, b, c, d) {
-		if (t==0) return b;
-		if (t==d) return b+c;
-		if ((t/=d/2) < 1) return c/2 * Math.pow(2, 10 * (t - 1)) + b;
-		return c/2 * (-Math.pow(2, -10 * --t) + 2) + b;
-	},
-	easeInCirc: function (x, t, b, c, d) {
-		return -c * (Math.sqrt(1 - (t/=d)*t) - 1) + b;
-	},
-	easeOutCirc: function (x, t, b, c, d) {
-		return c * Math.sqrt(1 - (t=t/d-1)*t) + b;
-	},
-	easeInOutCirc: function (x, t, b, c, d) {
-		if ((t/=d/2) < 1) return -c/2 * (Math.sqrt(1 - t*t) - 1) + b;
-		return c/2 * (Math.sqrt(1 - (t-=2)*t) + 1) + b;
-	},
-	easeInElastic: function (x, t, b, c, d) {
-		var s=1.70158;var p=0;var a=c;
-		if (t==0) return b;  if ((t/=d)==1) return b+c;  if (!p) p=d*.3;
-		if (a < Math.abs(c)) { a=c; var s=p/4; }
-		else var s = p/(2*Math.PI) * Math.asin (c/a);
-		return -(a*Math.pow(2,10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )) + b;
-	},
-	easeOutElastic: function (x, t, b, c, d) {
-		var s=1.70158;var p=0;var a=c;
-		if (t==0) return b;  if ((t/=d)==1) return b+c;  if (!p) p=d*.3;
-		if (a < Math.abs(c)) { a=c; var s=p/4; }
-		else var s = p/(2*Math.PI) * Math.asin (c/a);
-		return a*Math.pow(2,-10*t) * Math.sin( (t*d-s)*(2*Math.PI)/p ) + c + b;
-	},
-	easeInOutElastic: function (x, t, b, c, d) {
-		var s=1.70158;var p=0;var a=c;
-		if (t==0) return b;  if ((t/=d/2)==2) return b+c;  if (!p) p=d*(.3*1.5);
-		if (a < Math.abs(c)) { a=c; var s=p/4; }
-		else var s = p/(2*Math.PI) * Math.asin (c/a);
-		if (t < 1) return -.5*(a*Math.pow(2,10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )) + b;
-		return a*Math.pow(2,-10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )*.5 + c + b;
-	},
-	easeInBack: function (x, t, b, c, d, s) {
-		if (s == undefined) s = 1.70158;
-		return c*(t/=d)*t*((s+1)*t - s) + b;
-	},
-	easeOutBack: function (x, t, b, c, d, s) {
-		if (s == undefined) s = 1.70158;
-		return c*((t=t/d-1)*t*((s+1)*t + s) + 1) + b;
-	},
-	easeInOutBack: function (x, t, b, c, d, s) {
-		if (s == undefined) s = 1.70158;
-		if ((t/=d/2) < 1) return c/2*(t*t*(((s*=(1.525))+1)*t - s)) + b;
-		return c/2*((t-=2)*t*(((s*=(1.525))+1)*t + s) + 2) + b;
-	},
-	easeInBounce: function (x, t, b, c, d) {
-		return c - $.easing.easeOutBounce (x, d-t, 0, c, d) + b;
-	},
-	easeOutBounce: function (x, t, b, c, d) {
-		if ((t/=d) < (1/2.75)) {
-			return c*(7.5625*t*t) + b;
-		} else if (t < (2/2.75)) {
-			return c*(7.5625*(t-=(1.5/2.75))*t + .75) + b;
-		} else if (t < (2.5/2.75)) {
-			return c*(7.5625*(t-=(2.25/2.75))*t + .9375) + b;
-		} else {
-			return c*(7.5625*(t-=(2.625/2.75))*t + .984375) + b;
-		}
-	},
-	easeInOutBounce: function (x, t, b, c, d) {
-		if (t < d/2) return $.easing.easeInBounce (x, t*2, 0, c, d) * .5 + b;
-		return $.easing.easeOutBounce (x, t*2-d, 0, c, d) * .5 + c*.5 + b;
-	}
-});
-
-/*
- *
- * TERMS OF USE - EASING EQUATIONS
- *
- * Open source under the BSD License.
- *
- * Copyright 2001 Robert Penner
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modification,
- * are permitted provided that the following conditions are met:
- *
- * Redistributions of source code must retain the above copyright notice, this list of
- * conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above copyright notice, this list
- * of conditions and the following disclaimer in the documentation and/or other materials
- * provided with the distribution.
- *
- * Neither the name of the author nor the names of contributors may be used to endorse
- * or promote products derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
- * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
- * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
- * OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- */
-
-})(jQuery);
-/*
- * jQuery UI Effects Blind 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/Effects/Blind
- *
- * Depends:
- *	jquery.effects.core.js
- */
-(function( $, undefined ) {
-
-$.effects.blind = function(o) {
-
-	return this.queue(function() {
-
-		// Create element
-		var el = $(this), props = ['position','top','bottom','left','right'];
-
-		// Set options
-		var mode = $.effects.setMode(el, o.options.mode || 'hide'); // Set Mode
-		var direction = o.options.direction || 'vertical'; // Default direction
-
-		// Adjust
-		$.effects.save(el, props); el.show(); // Save & Show
-		var wrapper = $.effects.createWrapper(el).css({overflow:'hidden'}); // Create Wrapper
-		var ref = (direction == 'vertical') ? 'height' : 'width';
-		var distance = (direction == 'vertical') ? wrapper.height() : wrapper.width();
-		if(mode == 'show') wrapper.css(ref, 0); // Shift
-
-		// Animation
-		var animation = {};
-		animation[ref] = mode == 'show' ? distance : 0;
-
-		// Animate
-		wrapper.animate(animation, o.duration, o.options.easing, function() {
-			if(mode == 'hide') el.hide(); // Hide
-			$.effects.restore(el, props); $.effects.removeWrapper(el); // Restore
-			if(o.callback) o.callback.apply(el[0], arguments); // Callback
-			el.dequeue();
-		});
-
-	});
-
-};
-
-})(jQuery);
-/*
- * jQuery UI Effects Bounce 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/Effects/Bounce
- *
- * Depends:
- *	jquery.effects.core.js
- */
-(function( $, undefined ) {
-
-$.effects.bounce = function(o) {
-
-	return this.queue(function() {
-
-		// Create element
-		var el = $(this), props = ['position','top','bottom','left','right'];
-
-		// Set options
-		var mode = $.effects.setMode(el, o.options.mode || 'effect'); // Set Mode
-		var direction = o.options.direction || 'up'; // Default direction
-		var distance = o.options.distance || 20; // Default distance
-		var times = o.options.times || 5; // Default # of times
-		var speed = o.duration || 250; // Default speed per bounce
-		if (/show|hide/.test(mode)) props.push('opacity'); // Avoid touching opacity to prevent clearType and PNG issues in IE
-
-		// Adjust
-		$.effects.save(el, props); el.show(); // Save & Show
-		$.effects.createWrapper(el); // Create Wrapper
-		var ref = (direction == 'up' || direction == 'down') ? 'top' : 'left';
-		var motion = (direction == 'up' || direction == 'left') ? 'pos' : 'neg';
-		var distance = o.options.distance || (ref == 'top' ? el.outerHeight({margin:true}) / 3 : el.outerWidth({margin:true}) / 3);
-		if (mode == 'show') el.css('opacity', 0).css(ref, motion == 'pos' ? -distance : distance); // Shift
-		if (mode == 'hide') distance = distance / (times * 2);
-		if (mode != 'hide') times--;
-
-		// Animate
-		if (mode == 'show') { // Show Bounce
-			var animation = {opacity: 1};
-			animation[ref] = (motion == 'pos' ? '+=' : '-=') + distance;
-			el.animate(animation, speed / 2, o.options.easing);
-			distance = distance / 2;
-			times--;
-		};
-		for (var i = 0; i < times; i++) { // Bounces
-			var animation1 = {}, animation2 = {};
-			animation1[ref] = (motion == 'pos' ? '-=' : '+=') + distance;
-			animation2[ref] = (motion == 'pos' ? '+=' : '-=') + distance;
-			el.animate(animation1, speed / 2, o.options.easing).animate(animation2, speed / 2, o.options.easing);
-			distance = (mode == 'hide') ? distance * 2 : distance / 2;
-		};
-		if (mode == 'hide') { // Last Bounce
-			var animation = {opacity: 0};
-			animation[ref] = (motion == 'pos' ? '-=' : '+=')  + distance;
-			el.animate(animation, speed / 2, o.options.easing, function(){
-				el.hide(); // Hide
-				$.effects.restore(el, props); $.effects.removeWrapper(el); // Restore
-				if(o.callback) o.callback.apply(this, arguments); // Callback
-			});
-		} else {
-			var animation1 = {}, animation2 = {};
-			animation1[ref] = (motion == 'pos' ? '-=' : '+=') + distance;
-			animation2[ref] = (motion == 'pos' ? '+=' : '-=') + distance;
-			el.animate(animation1, speed / 2, o.options.easing).animate(animation2, speed / 2, o.options.easing, function(){
-				$.effects.restore(el, props); $.effects.removeWrapper(el); // Restore
-				if(o.callback) o.callback.apply(this, arguments); // Callback
-			});
-		};
-		el.queue('fx', function() { el.dequeue(); });
-		el.dequeue();
-	});
-
-};
-
-})(jQuery);
-/*
- * jQuery UI Effects Clip 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/Effects/Clip
- *
- * Depends:
- *	jquery.effects.core.js
- */
-(function( $, undefined ) {
-
-$.effects.clip = function(o) {
-
-	return this.queue(function() {
-
-		// Create element
-		var el = $(this), props = ['position','top','bottom','left','right','height','width'];
-
-		// Set options
-		var mode = $.effects.setMode(el, o.options.mode || 'hide'); // Set Mode
-		var direction = o.options.direction || 'vertical'; // Default direction
-
-		// Adjust
-		$.effects.save(el, props); el.show(); // Save & Show
-		var wrapper = $.effects.createWrapper(el).css({overflow:'hidden'}); // Create Wrapper
-		var animate = el[0].tagName == 'IMG' ? wrapper : el;
-		var ref = {
-			size: (direction == 'vertical') ? 'height' : 'width',
-			position: (direction == 'vertical') ? 'top' : 'left'
-		};
-		var distance = (direction == 'vertical') ? animate.height() : animate.width();
-		if(mode == 'show') { animate.css(ref.size, 0); animate.css(ref.position, distance / 2); } // Shift
-
-		// Animation
-		var animation = {};
-		animation[ref.size] = mode == 'show' ? distance : 0;
-		animation[ref.position] = mode == 'show' ? 0 : distance / 2;
-
-		// Animate
-		animate.animate(animation, { queue: false, duration: o.duration, easing: o.options.easing, complete: function() {
-			if(mode == 'hide') el.hide(); // Hide
-			$.effects.restore(el, props); $.effects.removeWrapper(el); // Restore
-			if(o.callback) o.callback.apply(el[0], arguments); // Callback
-			el.dequeue();
-		}});
-
-	});
-
-};
-
-})(jQuery);
-/*
- * jQuery UI Effects Drop 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/Effects/Drop
- *
- * Depends:
- *	jquery.effects.core.js
- */
-(function( $, undefined ) {
-
-$.effects.drop = function(o) {
-
-	return this.queue(function() {
-
-		// Create element
-		var el = $(this), props = ['position','top','bottom','left','right','opacity'];
-
-		// Set options
-		var mode = $.effects.setMode(el, o.options.mode || 'hide'); // Set Mode
-		var direction = o.options.direction || 'left'; // Default Direction
-
-		// Adjust
-		$.effects.save(el, props); el.show(); // Save & Show
-		$.effects.createWrapper(el); // Create Wrapper
-		var ref = (direction == 'up' || direction == 'down') ? 'top' : 'left';
-		var motion = (direction == 'up' || direction == 'left') ? 'pos' : 'neg';
-		var distance = o.options.distance || (ref == 'top' ? el.outerHeight({margin:true}) / 2 : el.outerWidth({margin:true}) / 2);
-		if (mode == 'show') el.css('opacity', 0).css(ref, motion == 'pos' ? -distance : distance); // Shift
-
-		// Animation
-		var animation = {opacity: mode == 'show' ? 1 : 0};
-		animation[ref] = (mode == 'show' ? (motion == 'pos' ? '+=' : '-=') : (motion == 'pos' ? '-=' : '+=')) + distance;
-
-		// Animate
-		el.animate(animation, { queue: false, duration: o.duration, easing: o.options.easing, complete: function() {
-			if(mode == 'hide') el.hide(); // Hide
-			$.effects.restore(el, props); $.effects.removeWrapper(el); // Restore
-			if(o.callback) o.callback.apply(this, arguments); // Callback
-			el.dequeue();
-		}});
-
-	});
-
-};
-
-})(jQuery);
-/*
- * jQuery UI Effects Explode 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/Effects/Explode
- *
- * Depends:
- *	jquery.effects.core.js
- */
-(function( $, undefined ) {
-
-$.effects.explode = function(o) {
-
-	return this.queue(function() {
-
-	var rows = o.options.pieces ? Math.round(Math.sqrt(o.options.pieces)) : 3;
-	var cells = o.options.pieces ? Math.round(Math.sqrt(o.options.pieces)) : 3;
-
-	o.options.mode = o.options.mode == 'toggle' ? ($(this).is(':visible') ? 'hide' : 'show') : o.options.mode;
-	var el = $(this).show().css('visibility', 'hidden');
-	var offset = el.offset();
-
-	//Substract the margins - not fixing the problem yet.
-	offset.top -= parseInt(el.css("marginTop"),10) || 0;
-	offset.left -= parseInt(el.css("marginLeft"),10) || 0;
-
-	var width = el.outerWidth(true);
-	var height = el.outerHeight(true);
-
-	for(var i=0;i<rows;i++) { // =
-		for(var j=0;j<cells;j++) { // ||
-			el
-				.clone()
-				.appendTo('body')
-				.wrap('<div></div>')
-				.css({
-					position: 'absolute',
-					visibility: 'visible',
-					left: -j*(width/cells),
-					top: -i*(height/rows)
-				})
-				.parent()
-				.addClass('ui-effects-explode')
-				.css({
-					position: 'absolute',
-					overflow: 'hidden',
-					width: width/cells,
-					height: height/rows,
-					left: offset.left + j*(width/cells) + (o.options.mode == 'show' ? (j-Math.floor(cells/2))*(width/cells) : 0),
-					top: offset.top + i*(height/rows) + (o.options.mode == 'show' ? (i-Math.floor(rows/2))*(height/rows) : 0),
-					opacity: o.options.mode == 'show' ? 0 : 1
-				}).animate({
-					left: offset.left + j*(width/cells) + (o.options.mode == 'show' ? 0 : (j-Math.floor(cells/2))*(width/cells)),
-					top: offset.top + i*(height/rows) + (o.options.mode == 'show' ? 0 : (i-Math.floor(rows/2))*(height/rows)),
-					opacity: o.options.mode == 'show' ? 1 : 0
-				}, o.duration || 500);
-		}
-	}
-
-	// Set a timeout, to call the callback approx. when the other animations have finished
-	setTimeout(function() {
-
-		o.options.mode == 'show' ? el.css({ visibility: 'visible' }) : el.css({ visibility: 'visible' }).hide();
-				if(o.callback) o.callback.apply(el[0]); // Callback
-				el.dequeue();
-
-				$('div.ui-effects-explode').remove();
-
-	}, o.duration || 500);
-
-
-	});
-
-};
-
-})(jQuery);
-/*
- * jQuery UI Effects Fade 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/Effects/Fade
- *
- * Depends:
- *	jquery.effects.core.js
- */
-(function( $, undefined ) {
-
-$.effects.fade = function(o) {
-	return this.queue(function() {
-		var elem = $(this),
-			mode = $.effects.setMode(elem, o.options.mode || 'hide');
-
-		elem.animate({ opacity: mode }, {
-			queue: false,
-			duration: o.duration,
-			easing: o.options.easing,
-			complete: function() {
-				(o.callback && o.callback.apply(this, arguments));
-				elem.dequeue();
-			}
-		});
-	});
-};
-
-})(jQuery);
-/*
- * jQuery UI Effects Fold 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/Effects/Fold
- *
- * Depends:
- *	jquery.effects.core.js
- */
-(function( $, undefined ) {
-
-$.effects.fold = function(o) {
-
-	return this.queue(function() {
-
-		// Create element
-		var el = $(this), props = ['position','top','bottom','left','right'];
-
-		// Set options
-		var mode = $.effects.setMode(el, o.options.mode || 'hide'); // Set Mode
-		var size = o.options.size || 15; // Default fold size
-		var horizFirst = !(!o.options.horizFirst); // Ensure a boolean value
-		var duration = o.duration ? o.duration / 2 : $.fx.speeds._default / 2;
-
-		// Adjust
-		$.effects.save(el, props); el.show(); // Save & Show
-		var wrapper = $.effects.createWrapper(el).css({overflow:'hidden'}); // Create Wrapper
-		var widthFirst = ((mode == 'show') != horizFirst);
-		var ref = widthFirst ? ['width', 'height'] : ['height', 'width'];
-		var distance = widthFirst ? [wrapper.width(), wrapper.height()] : [wrapper.height(), wrapper.width()];
-		var percent = /([0-9]+)%/.exec(size);
-		if(percent) size = parseInt(percent[1],10) / 100 * distance[mode == 'hide' ? 0 : 1];
-		if(mode == 'show') wrapper.css(horizFirst ? {height: 0, width: size} : {height: size, width: 0}); // Shift
-
-		// Animation
-		var animation1 = {}, animation2 = {};
-		animation1[ref[0]] = mode == 'show' ? distance[0] : size;
-		animation2[ref[1]] = mode == 'show' ? distance[1] : 0;
-
-		// Animate
-		wrapper.animate(animation1, duration, o.options.easing)
-		.animate(animation2, duration, o.options.easing, function() {
-			if(mode == 'hide') el.hide(); // Hide
-			$.effects.restore(el, props); $.effects.removeWrapper(el); // Restore
-			if(o.callback) o.callback.apply(el[0], arguments); // Callback
-			el.dequeue();
-		});
-
-	});
-
-};
-
-})(jQuery);
-/*
- * jQuery UI Effects Highlight 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/Effects/Highlight
- *
- * Depends:
- *	jquery.effects.core.js
- */
-(function( $, undefined ) {
-
-$.effects.highlight = function(o) {
-	return this.queue(function() {
-		var elem = $(this),
-			props = ['backgroundImage', 'backgroundColor', 'opacity'],
-			mode = $.effects.setMode(elem, o.options.mode || 'show'),
-			animation = {
-				backgroundColor: elem.css('backgroundColor')
-			};
-
-		if (mode == 'hide') {
-			animation.opacity = 0;
-		}
-
-		$.effects.save(elem, props);
-		elem
-			.show()
-			.css({
-				backgroundImage: 'none',
-				backgroundColor: o.options.color || '#ffff99'
-			})
-			.animate(animation, {
-				queue: false,
-				duration: o.duration,
-				easing: o.options.easing,
-				complete: function() {
-					(mode == 'hide' && elem.hide());
-					$.effects.restore(elem, props);
-					(mode == 'show' && !$.support.opacity && this.style.removeAttribute('filter'));
-					(o.callback && o.callback.apply(this, arguments));
-					elem.dequeue();
-				}
-			});
-	});
-};
-
-})(jQuery);
-/*
- * jQuery UI Effects Pulsate 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/Effects/Pulsate
- *
- * Depends:
- *	jquery.effects.core.js
- */
-(function( $, undefined ) {
-
-$.effects.pulsate = function(o) {
-	return this.queue(function() {
-		var elem = $(this),
-			mode = $.effects.setMode(elem, o.options.mode || 'show');
-			times = ((o.options.times || 5) * 2) - 1;
-			duration = o.duration ? o.duration / 2 : $.fx.speeds._default / 2,
-			isVisible = elem.is(':visible'),
-			animateTo = 0;
-
-		if (!isVisible) {
-			elem.css('opacity', 0).show();
-			animateTo = 1;
-		}
-
-		if ((mode == 'hide' && isVisible) || (mode == 'show' && !isVisible)) {
-			times--;
-		}
-
-		for (var i = 0; i < times; i++) {
-			elem.animate({ opacity: animateTo }, duration, o.options.easing);
-			animateTo = (animateTo + 1) % 2;
-		}
-
-		elem.animate({ opacity: animateTo }, duration, o.options.easing, function() {
-			if (animateTo == 0) {
-				elem.hide();
-			}
-			(o.callback && o.callback.apply(this, arguments));
-		});
-
-		elem
-			.queue('fx', function() { elem.dequeue(); })
-			.dequeue();
-	});
-};
-
-})(jQuery);
-/*
- * jQuery UI Effects Scale 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/Effects/Scale
- *
- * Depends:
- *	jquery.effects.core.js
- */
-(function( $, undefined ) {
-
-$.effects.puff = function(o) {
-	return this.queue(function() {
-		var elem = $(this),
-			mode = $.effects.setMode(elem, o.options.mode || 'hide'),
-			percent = parseInt(o.options.percent, 10) || 150,
-			factor = percent / 100,
-			original = { height: elem.height(), width: elem.width() };
-
-		$.extend(o.options, {
-			fade: true,
-			mode: mode,
-			percent: mode == 'hide' ? percent : 100,
-			from: mode == 'hide'
-				? original
-				: {
-					height: original.height * factor,
-					width: original.width * factor
-				}
-		});
-
-		elem.effect('scale', o.options, o.duration, o.callback);
-		elem.dequeue();
-	});
-};
-
-$.effects.scale = function(o) {
-
-	return this.queue(function() {
-
-		// Create element
-		var el = $(this);
-
-		// Set options
-		var options = $.extend(true, {}, o.options);
-		var mode = $.effects.setMode(el, o.options.mode || 'effect'); // Set Mode
-		var percent = parseInt(o.options.percent,10) || (parseInt(o.options.percent,10) == 0 ? 0 : (mode == 'hide' ? 0 : 100)); // Set default scaling percent
-		var direction = o.options.direction || 'both'; // Set default axis
-		var origin = o.options.origin; // The origin of the scaling
-		if (mode != 'effect') { // Set default origin and restore for show/hide
-			options.origin = origin || ['middle','center'];
-			options.restore = true;
-		}
-		var original = {height: el.height(), width: el.width()}; // Save original
-		el.from = o.options.from || (mode == 'show' ? {height: 0, width: 0} : original); // Default from state
-
-		// Adjust
-		var factor = { // Set scaling factor
-			y: direction != 'horizontal' ? (percent / 100) : 1,
-			x: direction != 'vertical' ? (percent / 100) : 1
-		};
-		el.to = {height: original.height * factor.y, width: original.width * factor.x}; // Set to state
-
-		if (o.options.fade) { // Fade option to support puff
-			if (mode == 'show') {el.from.opacity = 0; el.to.opacity = 1;};
-			if (mode == 'hide') {el.from.opacity = 1; el.to.opacity = 0;};
-		};
-
-		// Animation
-		options.from = el.from; options.to = el.to; options.mode = mode;
-
-		// Animate
-		el.effect('size', options, o.duration, o.callback);
-		el.dequeue();
-	});
-
-};
-
-$.effects.size = function(o) {
-
-	return this.queue(function() {
-
-		// Create element
-		var el = $(this), props = ['position','top','bottom','left','right','width','height','overflow','opacity'];
-		var props1 = ['position','top','bottom','left','right','overflow','opacity']; // Always restore
-		var props2 = ['width','height','overflow']; // Copy for children
-		var cProps = ['fontSize'];
-		var vProps = ['borderTopWidth', 'borderBottomWidth', 'paddingTop', 'paddingBottom'];
-		var hProps = ['borderLeftWidth', 'borderRightWidth', 'paddingLeft', 'paddingRight'];
-
-		// Set options
-		var mode = $.effects.setMode(el, o.options.mode || 'effect'); // Set Mode
-		var restore = o.options.restore || false; // Default restore
-		var scale = o.options.scale || 'both'; // Default scale mode
-		var origin = o.options.origin; // The origin of the sizing
-		var original = {height: el.height(), width: el.width()}; // Save original
-		el.from = o.options.from || original; // Default from state
-		el.to = o.options.to || original; // Default to state
-		// Adjust
-		if (origin) { // Calculate baseline shifts
-			var baseline = $.effects.getBaseline(origin, original);
-			el.from.top = (original.height - el.from.height) * baseline.y;
-			el.from.left = (original.width - el.from.width) * baseline.x;
-			el.to.top = (original.height - el.to.height) * baseline.y;
-			el.to.left = (original.width - el.to.width) * baseline.x;
-		};
-		var factor = { // Set scaling factor
-			from: {y: el.from.height / original.height, x: el.from.width / original.width},
-			to: {y: el.to.height / original.height, x: el.to.width / original.width}
-		};
-		if (scale == 'box' || scale == 'both') { // Scale the css box
-			if (factor.from.y != factor.to.y) { // Vertical props scaling
-				props = props.concat(vProps);
-				el.from = $.effects.setTransition(el, vProps, factor.from.y, el.from);
-				el.to = $.effects.setTransition(el, vProps, factor.to.y, el.to);
-			};
-			if (factor.from.x != factor.to.x) { // Horizontal props scaling
-				props = props.concat(hProps);
-				el.from = $.effects.setTransition(el, hProps, factor.from.x, el.from);
-				el.to = $.effects.setTransition(el, hProps, factor.to.x, el.to);
-			};
-		};
-		if (scale == 'content' || scale == 'both') { // Scale the content
-			if (factor.from.y != factor.to.y) { // Vertical props scaling
-				props = props.concat(cProps);
-				el.from = $.effects.setTransition(el, cProps, factor.from.y, el.from);
-				el.to = $.effects.setTransition(el, cProps, factor.to.y, el.to);
-			};
-		};
-		$.effects.save(el, restore ? props : props1); el.show(); // Save & Show
-		$.effects.createWrapper(el); // Create Wrapper
-		el.css('overflow','hidden').css(el.from); // Shift
-
-		// Animate
-		if (scale == 'content' || scale == 'both') { // Scale the children
-			vProps = vProps.concat(['marginTop','marginBottom']).concat(cProps); // Add margins/font-size
-			hProps = hProps.concat(['marginLeft','marginRight']); // Add margins
-			props2 = props.concat(vProps).concat(hProps); // Concat
-			el.find("*[width]").each(function(){
-				child = $(this);
-				if (restore) $.effects.save(child, props2);
-				var c_original = {height: child.height(), width: child.width()}; // Save original
-				child.from = {height: c_original.height * factor.from.y, width: c_original.width * factor.from.x};
-				child.to = {height: c_original.height * factor.to.y, width: c_original.width * factor.to.x};
-				if (factor.from.y != factor.to.y) { // Vertical props scaling
-					child.from = $.effects.setTransition(child, vProps, factor.from.y, child.from);
-					child.to = $.effects.setTransition(child, vProps, factor.to.y, child.to);
-				};
-				if (factor.from.x != factor.to.x) { // Horizontal props scaling
-					child.from = $.effects.setTransition(child, hProps, factor.from.x, child.from);
-					child.to = $.effects.setTransition(child, hProps, factor.to.x, child.to);
-				};
-				child.css(child.from); // Shift children
-				child.animate(child.to, o.duration, o.options.easing, function(){
-					if (restore) $.effects.restore(child, props2); // Restore children
-				}); // Animate children
-			});
-		};
-
-		// Animate
-		el.animate(el.to, { queue: false, duration: o.duration, easing: o.options.easing, complete: function() {
-			if (el.to.opacity === 0) {
-				el.css('opacity', el.from.opacity);
-			}
-			if(mode == 'hide') el.hide(); // Hide
-			$.effects.restore(el, restore ? props : props1); $.effects.removeWrapper(el); // Restore
-			if(o.callback) o.callback.apply(this, arguments); // Callback
-			el.dequeue();
-		}});
-
-	});
-
-};
-
-})(jQuery);
-/*
- * jQuery UI Effects Shake 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/Effects/Shake
- *
- * Depends:
- *	jquery.effects.core.js
- */
-(function( $, undefined ) {
-
-$.effects.shake = function(o) {
-
-	return this.queue(function() {
-
-		// Create element
-		var el = $(this), props = ['position','top','bottom','left','right'];
-
-		// Set options
-		var mode = $.effects.setMode(el, o.options.mode || 'effect'); // Set Mode
-		var direction = o.options.direction || 'left'; // Default direction
-		var distance = o.options.distance || 20; // Default distance
-		var times = o.options.times || 3; // Default # of times
-		var speed = o.duration || o.options.duration || 140; // Default speed per shake
-
-		// Adjust
-		$.effects.save(el, props); el.show(); // Save & Show
-		$.effects.createWrapper(el); // Create Wrapper
-		var ref = (direction == 'up' || direction == 'down') ? 'top' : 'left';
-		var motion = (direction == 'up' || direction == 'left') ? 'pos' : 'neg';
-
-		// Animation
-		var animation = {}, animation1 = {}, animation2 = {};
-		animation[ref] = (motion == 'pos' ? '-=' : '+=')  + distance;
-		animation1[ref] = (motion == 'pos' ? '+=' : '-=')  + distance * 2;
-		animation2[ref] = (motion == 'pos' ? '-=' : '+=')  + distance * 2;
-
-		// Animate
-		el.animate(animation, speed, o.options.easing);
-		for (var i = 1; i < times; i++) { // Shakes
-			el.animate(animation1, speed, o.options.easing).animate(animation2, speed, o.options.easing);
-		};
-		el.animate(animation1, speed, o.options.easing).
-		animate(animation, speed / 2, o.options.easing, function(){ // Last shake
-			$.effects.restore(el, props); $.effects.removeWrapper(el); // Restore
-			if(o.callback) o.callback.apply(this, arguments); // Callback
-		});
-		el.queue('fx', function() { el.dequeue(); });
-		el.dequeue();
-	});
-
-};
-
-})(jQuery);
-/*
- * jQuery UI Effects Slide 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/Effects/Slide
- *
- * Depends:
- *	jquery.effects.core.js
- */
-(function( $, undefined ) {
-
-$.effects.slide = function(o) {
-
-	return this.queue(function() {
-
-		// Create element
-		var el = $(this), props = ['position','top','bottom','left','right'];
-
-		// Set options
-		var mode = $.effects.setMode(el, o.options.mode || 'show'); // Set Mode
-		var direction = o.options.direction || 'left'; // Default Direction
-
-		// Adjust
-		$.effects.save(el, props); el.show(); // Save & Show
-		$.effects.createWrapper(el).css({overflow:'hidden'}); // Create Wrapper
-		var ref = (direction == 'up' || direction == 'down') ? 'top' : 'left';
-		var motion = (direction == 'up' || direction == 'left') ? 'pos' : 'neg';
-		var distance = o.options.distance || (ref == 'top' ? el.outerHeight({margin:true}) : el.outerWidth({margin:true}));
-		if (mode == 'show') el.css(ref, motion == 'pos' ? (isNaN(distance) ? "-" + distance : -distance) : distance); // Shift
-
-		// Animation
-		var animation = {};
-		animation[ref] = (mode == 'show' ? (motion == 'pos' ? '+=' : '-=') : (motion == 'pos' ? '-=' : '+=')) + distance;
-
-		// Animate
-		el.animate(animation, { queue: false, duration: o.duration, easing: o.options.easing, complete: function() {
-			if(mode == 'hide') el.hide(); // Hide
-			$.effects.restore(el, props); $.effects.removeWrapper(el); // Restore
-			if(o.callback) o.callback.apply(this, arguments); // Callback
-			el.dequeue();
-		}});
-
-	});
-
-};
-
-})(jQuery);
-/*
- * jQuery UI Effects Transfer 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/Effects/Transfer
- *
- * Depends:
- *	jquery.effects.core.js
- */
-(function( $, undefined ) {
-
-$.effects.transfer = function(o) {
-	return this.queue(function() {
-		var elem = $(this),
-			target = $(o.options.to),
-			endPosition = target.offset(),
-			animation = {
-				top: endPosition.top,
-				left: endPosition.left,
-				height: target.innerHeight(),
-				width: target.innerWidth()
-			},
-			startPosition = elem.offset(),
-			transfer = $('<div class="ui-effects-transfer"></div>')
-				.appendTo(document.body)
-				.addClass(o.options.className)
-				.css({
-					top: startPosition.top,
-					left: startPosition.left,
-					height: elem.innerHeight(),
-					width: elem.innerWidth(),
-					position: 'absolute'
-				})
-				.animate(animation, o.duration, o.options.easing, function() {
-					transfer.remove();
-					(o.callback && o.callback.apply(elem[0], arguments));
-					elem.dequeue();
-				});
-	});
-};
-
-})(jQuery);
-/*
- * jQuery UI Accordion 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/Accordion
- *
- * Depends:
- *	jquery.ui.core.js
- *	jquery.ui.widget.js
- */
-(function( $, undefined ) {
-
-$.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 self = this,
-			options = self.options;
-
-		self.running = 0;
-
-		self.element
-			.addClass( "ui-accordion ui-widget ui-helper-reset" )
-			// in lack of child-selectors in CSS
-			// we need to mark top-LIs in a UL-accordion for some IE-fix
-			.children( "li" )
-				.addClass( "ui-accordion-li-fix" );
-
-		self.headers = self.element.find( options.header )
-			.addClass( "ui-accordion-header ui-helper-reset ui-state-default ui-corner-all" )
-			.bind( "mouseenter.accordion", function() {
-				if ( options.disabled ) {
-					return;
-				}
-				$( this ).addClass( "ui-state-hover" );
-			})
-			.bind( "mouseleave.accordion", function() {
-				if ( options.disabled ) {
-					return;
-				}
-				$( this ).removeClass( "ui-state-hover" );
-			})
-			.bind( "focus.accordion", function() {
-				if ( options.disabled ) {
-					return;
-				}
-				$( this ).addClass( "ui-state-focus" );
-			})
-			.bind( "blur.accordion", function() {
-				if ( options.disabled ) {
-					return;
-				}
-				$( this ).removeClass( "ui-state-focus" );
-			});
-
-		self.headers.next()
-			.addClass( "ui-accordion-content ui-helper-reset ui-widget-content ui-corner-bottom" );
-
-		if ( options.navigation ) {
-			var current = self.element.find( "a" ).filter( options.navigationFilter ).eq( 0 );
-			if ( current.length ) {
-				var header = current.closest( ".ui-accordion-header" );
-				if ( header.length ) {
-					// anchor within header
-					self.active = header;
-				} else {
-					// anchor within content
-					self.active = current.closest( ".ui-accordion-content" ).prev();
-				}
-			}
-		}
-
-		self.active = self._findActive( self.active || options.active )
-			.addClass( "ui-state-default ui-state-active" )
-			.toggleClass( "ui-corner-all" )
-			.toggleClass( "ui-corner-top" );
-		self.active.next().addClass( "ui-accordion-content-active" );
-
-		self._createIcons();
-		self.resize();
-		
-		// ARIA
-		self.element.attr( "role", "tablist" );
-
-		self.headers
-			.attr( "role", "tab" )
-			.bind( "keydown.accordion", function( event ) {
-				return self._keydown( event );
-			})
-			.next()
-				.attr( "role", "tabpanel" );
-
-		self.headers
-			.not( self.active || "" )
-			.attr({
-				"aria-expanded": "false",
-				"aria-selected": "false",
-				tabIndex: -1
-			})
-			.next()
-				.hide();
-
-		// make sure at least one header is in the tab order
-		if ( !self.active.length ) {
-			self.headers.eq( 0 ).attr( "tabIndex", 0 );
-		} else {
-			self.active
-				.attr({
-					"aria-expanded": "true",
-					"aria-selected": "true",
-					tabIndex: 0
-				});
-		}
-
-		// only need links in tab order for Safari
-		if ( !$.browser.safari ) {
-			self.headers.find( "a" ).attr( "tabIndex", -1 );
-		}
-
-		if ( options.event ) {
-			self.headers.bind( options.event.split(" ").join(".accordion ") + ".accordion", function(event) {
-				self._clickHandler.call( self, event, this );
-				event.preventDefault();
-			});
-		}
-	},
-
-	_createIcons: function() {
-		var options = this.options;
-		if ( options.icons ) {
-			$( "<span></span>" )
-				.addClass( "ui-icon " + options.icons.header )
-				.prependTo( this.headers );
-			this.active.children( ".ui-icon" )
-				.toggleClass(options.icons.header)
-				.toggleClass(options.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 options = 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 contents = 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 ( options.autoHeight || options.fillHeight ) {
-			contents.css( "height", "" );
-		}
-
-		return $.Widget.prototype.destroy.call( this );
-	},
-
-	_setOption: function( key, value ) {
-		$.Widget.prototype._setOption.apply( this, arguments );
-			
-		if ( key == "active" ) {
-			this.activate( value );
-		}
-		if ( key == "icons" ) {
-			this._destroyIcons();
-			if ( value ) {
-				this._createIcons();
-			}
-		}
-		// #5332 - opacity doesn't cascade to positioned elements in IE
-		// so we need to add the disabled class to the headers and panels
-		if ( key == "disabled" ) {
-			this.headers.add(this.headers.next())
-				[ value ? "addClass" : "removeClass" ](
-					"ui-accordion-disabled ui-state-disabled" );
-		}
-	},
-
-	_keydown: function( event ) {
-		if ( this.options.disabled || event.altKey || event.ctrlKey ) {
-			return;
-		}
-
-		var keyCode = $.ui.keyCode,
-			length = this.headers.length,
-			currentIndex = this.headers.index( event.target ),
-			toFocus = false;
-
-		switch ( event.keyCode ) {
-			case keyCode.RIGHT:
-			case keyCode.DOWN:
-				toFocus = this.headers[ ( currentIndex + 1 ) % length ];
-				break;
-			case keyCode.LEFT:
-			case keyCode.UP:
-				toFocus = this.headers[ ( currentIndex - 1 + length ) % length ];
-				break;
-			case keyCode.SPACE:
-			case keyCode.ENTER:
-				this._clickHandler( { target: event.target }, event.target );
-				event.preventDefault();
-		}
-
-		if ( toFocus ) {
-			$( event.target ).attr( "tabIndex", -1 );
-			$( toFocus ).attr( "tabIndex", 0 );
-			toFocus.focus();
-			return false;
-		}
-
-		return true;
-	},
-
-	resize: function() {
-		var options = this.options,
-			maxHeight;
-
-		if ( options.fillSpace ) {
-			if ( $.browser.msie ) {
-				var defOverflow = this.element.parent().css( "overflow" );
-				this.element.parent().css( "overflow", "hidden");
-			}
-			maxHeight = this.element.parent().height();
-			if ($.browser.msie) {
-				this.element.parent().css( "overflow", defOverflow );
-			}
-
-			this.headers.each(function() {
-				maxHeight -= $( this ).outerHeight( true );
-			});
-
-			this.headers.next()
-				.each(function() {
-					$( this ).height( Math.max( 0, maxHeight -
-						$( this ).innerHeight() + $( this ).height() ) );
-				})
-				.css( "overflow", "auto" );
-		} else if ( options.autoHeight ) {
-			maxHeight = 0;
-			this.headers.next()
-				.each(function() {
-					maxHeight = Math.max( maxHeight, $( this ).height( "" ).height() );
-				})
-				.height( maxHeight );
-		}
-
-		return this;
-	},
-
-	activate: function( index ) {
-		// TODO this gets called on init, changing the option without an explicit call for that
-		this.options.active = index;
-		// call clickHandler with custom event
-		var active = this._findActive( index )[ 0 ];
-		this._clickHandler( { target: active }, active );
-
-		return this;
-	},
-
-	_findActive: function( selector ) {
-		return selector
-			? typeof selector === "number"
-				? this.headers.filter( ":eq(" + selector + ")" )
-				: this.headers.not( this.headers.not( selector ) )
-			: selector === false
-				? $( [] )
-				: this.headers.filter( ":eq(0)" );
-	},
-
-	// TODO isn't event.target enough? why the separate target argument?
-	_clickHandler: function( event, target ) {
-		var options = this.options;
-		if ( options.disabled ) {
-			return;
-		}
-
-		// called only when using activate(false) to close all parts programmatically
-		if ( !event.target ) {
-			if ( !options.collapsible ) {
-				return;
-			}
-			this.active
-				.removeClass( "ui-state-active ui-corner-top" )
-				.addClass( "ui-state-default ui-corner-all" )
-				.children( ".ui-icon" )
-					.removeClass( options.icons.headerSelected )
-					.addClass( options.icons.header );
-			this.active.next().addClass( "ui-accordion-content-active" );
-			var toHide = this.active.next(),
-				data = {
-					options: options,
-					newHeader: $( [] ),
-					oldHeader: options.active,
-					newContent: $( [] ),
-					oldContent: toHide
-				},
-				toShow = ( this.active = $( [] ) );
-			this._toggle( toShow, toHide, data );
-			return;
-		}
-
-		// get the click target
-		var clicked = $( event.currentTarget || target ),
-			clickedIsActive = clicked[0] === this.active[0];
-
-		// TODO the option is changed, is that correct?
-		// TODO if it is correct, shouldn't that happen after determining that the click is valid?
-		options.active = options.collapsible && clickedIsActive ?
-			false :
-			this.headers.index( clicked );
-
-		// if animations are still active, or the active header is the target, ignore click
-		if ( this.running || ( !options.collapsible && clickedIsActive ) ) {
-			return;
-		}
-
-		// find elements to show and hide
-		var active = this.active,
-			toShow = clicked.next(),
-			toHide = this.active.next(),
-			data = {
-				options: options,
-				newHeader: clickedIsActive && options.collapsible ? $([]) : clicked,
-				oldHeader: this.active,
-				newContent: clickedIsActive && options.collapsible ? $([]) : toShow,
-				oldContent: toHide
-			},
-			down = this.headers.index( this.active[0] ) > this.headers.index( clicked[0] );
-
-		// when the call to ._toggle() comes after the class changes
-		// it causes a very odd bug in IE 8 (see #6720)
-		this.active = clickedIsActive ? $([]) : clicked;
-		this._toggle( toShow, toHide, data, clickedIsActive, down );
-
-		// switch classes
-		active
-			.removeClass( "ui-state-active ui-corner-top" )
-			.addClass( "ui-state-default ui-corner-all" )
-			.children( ".ui-icon" )
-				.removeClass( options.icons.headerSelected )
-				.addClass( options.icons.header );
-		if ( !clickedIsActive ) {
-			clicked
-				.removeClass( "ui-state-default ui-corner-all" )
-				.addClass( "ui-state-active ui-corner-top" )
-				.children( ".ui-icon" )
-					.removeClass( options.icons.header )
-					.addClass( options.icons.headerSelected );
-			clicked
-				.next()
-				.addClass( "ui-accordion-content-active" );
-		}
-
-		return;
-	},
-
-	_toggle: function( toShow, toHide, data, clickedIsActive, down ) {
-		var self = this,
-			options = self.options;
-
-		self.toShow = toShow;
-		self.toHide = toHide;
-		self.data = data;
-
-		var complete = function() {
-			if ( !self ) {
-				return;
-			}
-			return self._completed.apply( self, arguments );
-		};
-
-		// trigger changestart event
-		self._trigger( "changestart", null, self.data );
-
-		// count elements to animate
-		self.running = toHide.size() === 0 ? toShow.size() : toHide.size();
-
-		if ( options.animated ) {
-			var animOptions = {};
-
-			if ( options.collapsible && clickedIsActive ) {
-				animOptions = {
-					toShow: $( [] ),
-					toHide: toHide,
-					complete: complete,
-					down: down,
-					autoHeight: options.autoHeight || options.fillSpace
-				};
-			} else {
-				animOptions = {
-					toShow: toShow,
-					toHide: toHide,
-					complete: complete,
-					down: down,
-					autoHeight: options.autoHeight || options.fillSpace
-				};
-			}
-
-			if ( !options.proxied ) {
-				options.proxied = options.animated;
-			}
-
-			if ( !options.proxiedDuration ) {
-				options.proxiedDuration = options.duration;
-			}
-
-			options.animated = $.isFunction( options.proxied ) ?
-				options.proxied( animOptions ) :
-				options.proxied;
-
-			options.duration = $.isFunction( options.proxiedDuration ) ?
-				options.proxiedDuration( animOptions ) :
-				options.proxiedDuration;
-
-			var animations = $.ui.accordion.animations,
-				duration = options.duration,
-				easing = options.animated;
-
-			if ( easing && !animations[ easing ] && !$.easing[ easing ] ) {
-				easing = "slide";
-			}
-			if ( !animations[ easing ] ) {
-				animations[ easing ] = function( options ) {
-					this.slide( options, {
-						easing: easing,
-						duration: duration || 700
-					});
-				};
-			}
-
-			animations[ easing ]( animOptions );
-		} else {
-			if ( options.collapsible && clickedIsActive ) {
-				toShow.toggle();
-			} else {
-				toHide.hide();
-				toShow.show();
-			}
-
-			complete( true );
-		}
-
-		// TODO assert that the blur and focus triggers are really necessary, remove otherwise
-		toHide.prev()
-			.attr({
-				"aria-expanded": "false",
-				"aria-selected": "false",
-				tabIndex: -1
-			})
-			.blur();
-		toShow.prev()
-			.attr({
-				"aria-expanded": "true",
-				"aria-selected": "true",
-				tabIndex: 0
-			})
-			.focus();
-	},
-
-	_completed: function( cancel ) {
-		this.running = cancel ? 0 : --this.running;
-		if ( this.running ) {
-			return;
-		}
-
-		if ( this.options.clearStyle ) {
-			this.toShow.add( this.toHide ).css({
-				height: "",
-				overflow: ""
-			});
-		}
-
-		// other classes are removed before the animation; this one needs to stay until completed
-		this.toHide.removeClass( "ui-accordion-content-active" );
-		// Work around for rendering bug in IE (#5421)
-		if ( this.toHide.length ) {
-			this.toHide.parent()[0].className = this.toHide.parent()[0].className;
-		}
-
-		this._trigger( "change", null, this.data );
-	}
-});
-
-$.extend( $.ui.accordion, {
-	version: "1.8.16",
-	animations: {
-		slide: function( options, additions ) {
-			options = $.extend({
-				easing: "swing",
-				duration: 300
-			}, options, additions );
-			if ( !options.toHide.size() ) {
-				options.toShow.animate({
-					height: "show",
-					paddingTop: "show",
-					paddingBottom: "show"
-				}, options );
-				return;
-			}
-			if ( !options.toShow.size() ) {
-				options.toHide.animate({
-					height: "hide",
-					paddingTop: "hide",
-					paddingBottom: "hide"
-				}, options );
-				return;
-			}
-			var overflow = options.toShow.css( "overflow" ),
-				percentDone = 0,
-				showProps = {},
-				hideProps = {},
-				fxAttrs = [ "height", "paddingTop", "paddingBottom" ],
-				originalWidth;
-			// fix width before calculating height of hidden element
-			var s = options.toShow;
-			originalWidth = s[0].style.width;
-			s.width( parseInt( s.parent().width(), 10 )
-				- parseInt( s.css( "paddingLeft" ), 10 )
-				- parseInt( s.css( "paddingRight" ), 10 )
-				- ( parseInt( s.css( "borderLeftWidth" ), 10 ) || 0 )
-				- ( parseInt( s.css( "borderRightWidth" ), 10) || 0 ) );
-
-			$.each( fxAttrs, function( i, prop ) {
-				hideProps[ prop ] = "hide";
-
-				var parts = ( "" + $.css( options.toShow[0], prop ) ).match( /^([\d+-.]+)(.*)$/ );
-				showProps[ prop ] = {
-					value: parts[ 1 ],
-					unit: parts[ 2 ] || "px"
-				};
-			});
-			options.toShow.css({ height: 0, overflow: "hidden" }).show();
-			options.toHide
-				.filter( ":hidden" )
-					.each( options.complete )
-				.end()
-				.filter( ":visible" )
-				.animate( hideProps, {
-				step: function( now, settings ) {
-					// only calculate the percent when animating height
-					// IE gets very inconsistent results when animating elements
-					// with small values, which is common for padding
-					if ( settings.prop == "height" ) {
-						percentDone = ( settings.end - settings.start === 0 ) ? 0 :
-							( settings.now - settings.start ) / ( settings.end - settings.start );
-					}
-
-					options.toShow[ 0 ].style[ settings.prop ] =
-						( percentDone * showProps[ settings.prop ].value )
-						+ showProps[ settings.prop ].unit;
-				},
-				duration: options.duration,
-				easing: options.easing,
-				complete: function() {
-					if ( !options.autoHeight ) {
-						options.toShow.css( "height", "" );
-					}
-					options.toShow.css({
-						width: originalWidth,
-						overflow: overflow
-					});
-					options.complete();
-				}
-			});
-		},
-		bounceslide: function( options ) {
-			this.slide( options, {
-				easing: options.down ? "easeOutBounce" : "swing",
-				duration: options.down ? 1000 : 200
-			});
-		}
-	}
-});
-
-})( jQuery );
-/*
- * jQuery UI Autocomplete 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/Autocomplete
- *
- * Depends:
- *	jquery.ui.core.js
- *	jquery.ui.widget.js
- *	jquery.ui.position.js
- */
-(function( $, undefined ) {
-
-// used to prevent race conditions with remote data sources
-var requestIndex = 0;
-
-$.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 self = this,
-			doc = this.element[ 0 ].ownerDocument,
-			suppressKeyPress;
-
-		this.element
-			.addClass( "ui-autocomplete-input" )
-			.attr( "autocomplete", "off" )
-			// TODO verify these actually work as intended
-			.attr({
-				role: "textbox",
-				"aria-autocomplete": "list",
-				"aria-haspopup": "true"
-			})
-			.bind( "keydown.autocomplete", function( event ) {
-				if ( self.options.disabled || self.element.propAttr( "readOnly" ) ) {
-					return;
-				}
-
-				suppressKeyPress = false;
-				var keyCode = $.ui.keyCode;
-				switch( event.keyCode ) {
-				case keyCode.PAGE_UP:
-					self._move( "previousPage", event );
-					break;
-				case keyCode.PAGE_DOWN:
-					self._move( "nextPage", event );
-					break;
-				case keyCode.UP:
-					self._move( "previous", event );
-					// prevent moving cursor to beginning of text field in some browsers
-					event.preventDefault();
-					break;
-				case keyCode.DOWN:
-					self._move( "next", event );
-					// prevent moving cursor to end of text field in some browsers
-					event.preventDefault();
-					break;
-				case keyCode.ENTER:
-				case keyCode.NUMPAD_ENTER:
-					// when menu is open and has focus
-					if ( self.menu.active ) {
-						// #6055 - Opera still allows the keypress to occur
-						// which causes forms to submit
-						suppressKeyPress = true;
-						event.preventDefault();
-					}
-					//passthrough - ENTER and TAB both select the current element
-				case keyCode.TAB:
-					if ( !self.menu.active ) {
-						return;
-					}
-					self.menu.select( event );
-					break;
-				case keyCode.ESCAPE:
-					self.element.val( self.term );
-					self.close( event );
-					break;
-				default:
-					// keypress is triggered before the input value is changed
-					clearTimeout( self.searching );
-					self.searching = setTimeout(function() {
-						// only search if the value has changed
-						if ( self.term != self.element.val() ) {
-							self.selectedItem = null;
-							self.search( null, event );
-						}
-					}, self.options.delay );
-					break;
-				}
-			})
-			.bind( "keypress.autocomplete", function( event ) {
-				if ( suppressKeyPress ) {
-					suppressKeyPress = false;
-					event.preventDefault();
-				}
-			})
-			.bind( "focus.autocomplete", function() {
-				if ( self.options.disabled ) {
-					return;
-				}
-
-				self.selectedItem = null;
-				self.previous = self.element.val();
-			})
-			.bind( "blur.autocomplete", function( event ) {
-				if ( self.options.disabled ) {
-					return;
-				}
-
-				clearTimeout( self.searching );
-				// clicks on the menu (or a button to trigger a search) will cause a blur event
-				self.closing = setTimeout(function() {
-					self.close( event );
-					self._change( event );
-				}, 150 );
-			});
-		this._initSource();
-		this.response = function() {
-			return self._response.apply( self, arguments );
-		};
-		this.menu = $( "<ul></ul>" )
-			.addClass( "ui-autocomplete" )
-			.appendTo( $( this.options.appendTo || "body", doc )[0] )
-			// prevent the close-on-blur in case of a "slow" click on the menu (long mousedown)
-			.mousedown(function( event ) {
-				// clicking on the scrollbar causes focus to shift to the body
-				// but we can't detect a mouseup or a click immediately afterward
-				// so we have to track the next mousedown and close the menu if
-				// the user clicks somewhere outside of the autocomplete
-				var menuElement = self.menu.element[ 0 ];
-				if ( !$( event.target ).closest( ".ui-menu-item" ).length ) {
-					setTimeout(function() {
-						$( document ).one( 'mousedown', function( event ) {
-							if ( event.target !== self.element[ 0 ] &&
-								event.target !== menuElement &&
-								!$.ui.contains( menuElement, event.target ) ) {
-								self.close();
-							}
-						});
-					}, 1 );
-				}
-
-				// use another timeout to make sure the blur-event-handler on the input was already triggered
-				setTimeout(function() {
-					clearTimeout( self.closing );
-				}, 13);
-			})
-			.menu({
-				focus: function( event, ui ) {
-					var item = ui.item.data( "item.autocomplete" );
-					if ( false !== self._trigger( "focus", event, { item: item } ) ) {
-						// use value to match what will end up in the input, if it was a key event
-						if ( /^key/.test(event.originalEvent.type) ) {
-							self.element.val( item.value );
-						}
-					}
-				},
-				selected: function( event, ui ) {
-					var item = ui.item.data( "item.autocomplete" ),
-						previous = self.previous;
-
-					// only trigger when focus was lost (click on menu)
-					if ( self.element[0] !== doc.activeElement ) {
-						self.element.focus();
-						self.previous = previous;
-						// #6109 - IE triggers two focus events and the second
-						// is asynchronous, so we need to reset the previous
-						// term synchronously and asynchronously :-(
-						setTimeout(function() {
-							self.previous = previous;
-							self.selectedItem = item;
-						}, 1);
-					}
-
-					if ( false !== self._trigger( "select", event, { item: item } ) ) {
-						self.element.val( item.value );
-					}
-					// reset the term after the select event
-					// this allows custom select handling to work properly
-					self.term = self.element.val();
-
-					self.close( event );
-					self.selectedItem = item;
-				},
-				blur: function( event, ui ) {
-					// don't set the value of the text field if it's already correct
-					// this prevents moving the cursor unnecessarily
-					if ( self.menu.element.is(":visible") &&
-						( self.element.val() !== self.term ) ) {
-						self.element.val( self.term );
-					}
-				}
-			})
-			.zIndex( this.element.zIndex() + 1 )
-			// workaround for jQuery bug #5781 http://dev.jquery.com/ticket/5781
-			.css({ top: 0, left: 0 })
-			.hide()
-			.data( "menu" );
-		if ( $.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();
-		$.Widget.prototype.destroy.call( this );
-	},
-
-	_setOption: function( key, value ) {
-		$.Widget.prototype._setOption.apply( this, arguments );
-		if ( key === "source" ) {
-			this._initSource();
-		}
-		if ( key === "appendTo" ) {
-			this.menu.element.appendTo( $( value || "body", this.element[0].ownerDocument )[0] )
-		}
-		if ( key === "disabled" && value && this.xhr ) {
-			this.xhr.abort();
-		}
-	},
-
-	_initSource: function() {
-		var self = this,
-			array,
-			url;
-		if ( $.isArray(this.options.source) ) {
-			array = this.options.source;
-			this.source = function( request, response ) {
-				response( $.ui.autocomplete.filter(array, request.term) );
-			};
-		} else if ( typeof this.options.source === "string" ) {
-			url = this.options.source;
-			this.source = function( request, response ) {
-				if ( self.xhr ) {
-					self.xhr.abort();
-				}
-				self.xhr = $.ajax({
-					url: url,
-					data: request,
-					dataType: "json",
-					autocompleteRequest: ++requestIndex,
-					success: function( data, status ) {
-						if ( this.autocompleteRequest === requestIndex ) {
-							response( data );
-						}
-					},
-					error: function() {
-						if ( this.autocompleteRequest === requestIndex ) {
-							response( [] );
-						}
-					}
-				});
-			};
-		} else {
-			this.source = this.options.source;
-		}
-	},
-
-	search: function( value, event ) {
-		value = value != null ? value : this.element.val();
-
-		// always save the actual value, not the one passed as an argument
-		this.term = this.element.val();
-
-		if ( value.length < this.options.minLength ) {
-			return this.close( event );
-		}
-
-		clearTimeout( this.closing );
-		if ( this._trigger( "search", event ) === false ) {
-			return;
-		}
-
-		return this._search( value );
-	},
-
-	_search: function( value ) {
-		this.pending++;
-		this.element.addClass( "ui-autocomplete-loading" );
-
-		this.source( { term: value }, this.response );
-	},
-
-	_response: function( content ) {
-		if ( !this.options.disabled && content && content.length ) {
-			content = this._normalize( content );
-			this._suggest( content );
-			this._trigger( "open" );
-		} else {
-			this.close();
-		}
-		this.pending--;
-		if ( !this.pending ) {
-			this.element.removeClass( "ui-autocomplete-loading" );
-		}
-	},
-
-	close: function( event ) {
-		clearTimeout( this.closing );
-		if ( this.menu.element.is(":visible") ) {
-			this.menu.element.hide();
-			this.menu.deactivate();
-			this._trigger( "close", event );
-		}
-	},
-	
-	_change: function( event ) {
-		if ( this.previous !== this.element.val() ) {
-			this._trigger( "change", event, { item: this.selectedItem } );
-		}
-	},
-
-	_normalize: function( items ) {
-		// assume all items have the right format when the first item is complete
-		if ( items.length && items[0].label && items[0].value ) {
-			return items;
-		}
-		return $.map( items, function(item) {
-			if ( typeof item === "string" ) {
-				return {
-					label: item,
-					value: item
-				};
-			}
-			return $.extend({
-				label: item.label || item.value,
-				value: item.value || item.label
-			}, item );
-		});
-	},
-
-	_suggest: function( items ) {
-		var ul = this.menu.element
-			.empty()
-			.zIndex( this.element.zIndex() + 1 );
-		this._renderMenu( ul, items );
-		// TODO refresh should check if the active item is still in the dom, removing the need for a manual deactivate
-		this.menu.deactivate();
-		this.menu.refresh();
-
-		// size and position menu
-		ul.show();
-		this._resizeMenu();
-		ul.position( $.extend({
-			of: this.element
-		}, this.options.position ));
-
-		if ( this.options.autoFocus ) {
-			this.menu.next( new $.Event("mouseover") );
-		}
-	},
-
-	_resizeMenu: function() {
-		var ul = this.menu.element;
-		ul.outerWidth( Math.max(
-			ul.width( "" ).outerWidth(),
-			this.element.outerWidth()
-		) );
-	},
-
-	_renderMenu: function( ul, items ) {
-		var self = this;
-		$.each( items, function( index, item ) {
-			self._renderItem( ul, item );
-		});
-	},
-
-	_renderItem: function( ul, item) {
-		return $( "<li></li>" )
-			.data( "item.autocomplete", item )
-			.append( $( "<a></a>" ).text( item.label ) )
-			.appendTo( ul );
-	},
-
-	_move: function( direction, event ) {
-		if ( !this.menu.element.is(":visible") ) {
-			this.search( null, event );
-			return;
-		}
-		if ( this.menu.first() && /^previous/.test(direction) ||
-				this.menu.last() && /^next/.test(direction) ) {
-			this.element.val( this.term );
-			this.menu.deactivate();
-			return;
-		}
-		this.menu[ direction ]( event );
-	},
-
-	widget: function() {
-		return this.menu.element;
-	}
-});
-
-$.extend( $.ui.autocomplete, {
-	escapeRegex: function( value ) {
-		return value.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&");
-	},
-	filter: function(array, term) {
-		var matcher = new RegExp( $.ui.autocomplete.escapeRegex(term), "i" );
-		return $.grep( array, function(value) {
-			return matcher.test( value.label || value.value || value );
-		});
-	}
-});
-
-}( jQuery ));
-
-/*
- * jQuery UI Menu (not officially released)
- * 
- * This widget isn't yet finished and the API is subject to change. We plan to finish
- * it for the next release. You're welcome to give it a try anyway and give us feedback,
- * as long as you're okay with migrating your code later on. We can help with that, too.
- *
- * Copyright 2010, 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/Menu
- *
- * Depends:
- *	jquery.ui.core.js
- *  jquery.ui.widget.js
- */
-(function($) {
-
-$.widget("ui.menu", {
-	_create: function() {
-		var self = this;
-		this.element
-			.addClass("ui-menu ui-widget ui-widget-content ui-corner-all")
-			.attr({
-				role: "listbox",
-				"aria-activedescendant": "ui-active-menuitem"
-			})
-			.click(function( event ) {
-				if ( !$( event.target ).closest( ".ui-menu-item a" ).length ) {
-					return;
-				}
-				// temporary
-				event.preventDefault();
-				self.select( event );
-			});
-		this.refresh();
-	},
-	
-	refresh: function() {
-		var self = this;
-
-		// don't refresh list items that are already adapted
-		var items = this.element.children("li:not(.ui-menu-item):has(a)")
-			.addClass("ui-menu-item")
-			.attr("role", "menuitem");
-		
-		items.children("a")
-			.addClass("ui-corner-all")
-			.attr("tabindex", -1)
-			// mouseenter doesn't work with event delegation
-			.mouseenter(function( event ) {
-				self.activate( event, $(this).parent() );
-			})
-			.mouseleave(function() {
-				self.deactivate();
-			});
-	},
-
-	activate: function( event, item ) {
-		this.deactivate();
-		if (this.hasScroll()) {
-			var offset = item.offset().top - this.element.offset().top,
-				scroll = this.element.scrollTop(),
-				elementHeight = this.element.height();
-			if (offset < 0) {
-				this.element.scrollTop( scroll + offset);
-			} else if (offset >= elementHeight) {
-				this.element.scrollTop( scroll + offset - elementHeight + item.height());
-			}
-		}
-		this.active = item.eq(0)
-			.children("a")
-				.addClass("ui-state-hover")
-				.attr("id", "ui-active-menuitem")
-			.end();
-		this._trigger("focus", event, { item: item });
-	},
-
-	deactivate: function() {
-		if (!this.active) { return; }
-
-		this.active.children("a")
-			.removeClass("ui-state-hover")
-			.removeAttr("id");
-		this._trigger("blur");
-		this.active = null;
-	},
-
-	next: function(event) {
-		this.move("next", ".ui-menu-item:first", event);
-	},
-
-	previous: function(event) {
-		this.move("prev", ".ui-menu-item:last", event);
-	},
-
-	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(direction, edge, event) {
-		if (!this.active) {
-			this.activate(event, this.element.children(edge));
-			return;
-		}
-		var next = this.active[direction + "All"](".ui-menu-item").eq(0);
-		if (next.length) {
-			this.activate(event, next);
-		} else {
-			this.activate(event, this.element.children(edge));
-		}
-	},
-
-	// TODO merge with previousPage
-	nextPage: function(event) {
-		if (this.hasScroll()) {
-			// TODO merge with no-scroll-else
-			if (!this.active || this.last()) {
-				this.activate(event, this.element.children(".ui-menu-item:first"));
-				return;
-			}
-			var base = this.active.offset().top,
-				height = this.element.height(),
-				result = this.element.children(".ui-menu-item").filter(function() {
-					var close = $(this).offset().top - base - height + $(this).height();
-					// TODO improve approximation
-					return close < 10 && close > -10;
-				});
-
-			// TODO try to catch this earlier when scrollTop indicates the last page anyway
-			if (!result.length) {
-				result = this.element.children(".ui-menu-item:last");
-			}
-			this.activate(event, result);
-		} else {
-			this.activate(event, this.element.children(".ui-menu-item")
-				.filter(!this.active || this.last() ? ":first" : ":last"));
-		}
-	},
-
-	// TODO merge with nextPage
-	previousPage: function(event) {
-		if (this.hasScroll()) {
-			// TODO merge with no-scroll-else
-			if (!this.active || this.first()) {
-				this.activate(event, this.element.children(".ui-menu-item:last"));
-				return;
-			}
-
-			var base = this.active.offset().top,
-				height = this.element.height();
-				result = this.element.children(".ui-menu-item").filter(function() {
-					var close = $(this).offset().top - base + height - $(this).height();
-					// TODO improve approximation
-					return close < 10 && close > -10;
-				});
-
-			// TODO try to catch this earlier when scrollTop indicates the last page anyway
-			if (!result.length) {
-				result = this.element.children(".ui-menu-item:first");
-			}
-			this.activate(event, result);
-		} else {
-			this.activate(event, this.element.children(".ui-menu-item")
-				.filter(!this.active || this.first() ? ":last" : ":first"));
-		}
-	},
-
-	hasScroll: function() {
-		return this.element.height() < this.element[ $.fn.prop ? "prop" : "attr" ]("scrollHeight");
-	},
-
-	select: function( event ) {
-		this._trigger("selected", event, { item: this.active });
-	}
-});
-
-}(jQuery));
-/*
- * jQuery UI Button 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/Button
- *
- * Depends:
- *	jquery.ui.core.js
- *	jquery.ui.widget.js
- */
-(function( $, undefined ) {
-
-var lastActive, startXPos, startYPos, clickDragged,
-	baseClasses = "ui-button ui-widget ui-state-default ui-corner-all",
-	stateClasses = "ui-state-hover ui-state-active ",
-	typeClasses = "ui-button-icons-only ui-button-icon-only ui-button-text-icons ui-button-text-icon-primary ui-button-text-icon-secondary ui-button-text-only",
-	formResetHandler = function() {
-		var buttons = $( this ).find( ":ui-button" );
-		setTimeout(function() {
-			buttons.button( "refresh" );
-		}, 1 );
-	},
-	radioGroup = function( radio ) {
-		var name = radio.name,
-			form = radio.form,
-			radios = $( [] );
-		if ( name ) {
-			if ( form ) {
-				radios = $( form ).find( "[name='" + name + "']" );
-			} else {
-				radios = $( "[name='" + name + "']", radio.ownerDocument )
-					.filter(function() {
-						return !this.form;
-					});
-			}
-		}
-		return radios;
-	};
-
-$.widget( "ui.button", {
-	options: {
-		disabled: null,
-		text: true,
-		label: null,
-		icons: {
-			primary: null,
-			secondary: null
-		}
-	},
-	_create: function() {
-		this.element.closest( "form" )
-			.unbind( "reset.button" )
-			.bind( "reset.button", formResetHandler );
-
-		if ( typeof this.options.disabled !== "boolean" ) {
-			this.options.disabled = this.element.propAttr( "disabled" );
-		}
-
-		this._determineButtonType();
-		this.hasTitle = !!this.buttonElement.attr( "title" );
-
-		var self = this,
-			options = this.options,
-			toggleButton = this.type === "checkbox" || this.type === "radio",
-			hoverClass = "ui-state-hover" + ( !toggleButton ? " ui-state-active" : "" ),
-			focusClass = "ui-state-focus";
-
-		if ( options.label === null ) {
-			options.label = this.buttonElement.html();
-		}
-
-		if ( this.element.is( ":disabled" ) ) {
-			options.disabled = true;
-		}
-
-		this.buttonElement
-			.addClass( baseClasses )
-			.attr( "role", "button" )
-			.bind( "mouseenter.button", function() {
-				if ( options.disabled ) {
-					return;
-				}
-				$( this ).addClass( "ui-state-hover" );
-				if ( this === lastActive ) {
-					$( this ).addClass( "ui-state-active" );
-				}
-			})
-			.bind( "mouseleave.button", function() {
-				if ( options.disabled ) {
-					return;
-				}
-				$( this ).removeClass( hoverClass );
-			})
-			.bind( "click.button", function( event ) {
-				if ( options.disabled ) {
-					event.preventDefault();
-					event.stopImmediatePropagation();
-				}
-			});
-
-		this.element
-			.bind( "focus.button", function() {
-				// no need to check disabled, focus won't be triggered anyway
-				self.buttonElement.addClass( focusClass );
-			})
-			.bind( "blur.button", function() {
-				self.buttonElement.removeClass( focusClass );
-			});
-
-		if ( toggleButton ) {
-			this.element.bind( "change.button", function() {
-				if ( clickDragged ) {
-					return;
-				}
-				self.refresh();
-			});
-			// if mouse moves between mousedown and mouseup (drag) set clickDragged flag
-			// prevents issue where button state changes but checkbox/radio checked state
-			// does not in Firefox (see ticket #6970)
-			this.buttonElement
-				.bind( "mousedown.button", function( event ) {
-					if ( options.disabled ) {
-						return;
-					}
-					clickDragged = false;
-					startXPos = event.pageX;
-					startYPos = event.pageY;
-				})
-				.bind( "mouseup.button", function( event ) {
-					if ( options.disabled ) {
-						return;
-					}
-					if ( startXPos !== event.pageX || startYPos !== event.pageY ) {
-						clickDragged = true;
-					}
-			});
-		}
-
-		if ( this.type === "checkbox" ) {
-			this.buttonElement.bind( "click.button", function() {
-				if ( options.disabled || clickDragged ) {
-					return false;
-				}
-				$( this ).toggleClass( "ui-state-active" );
-				self.buttonElement.attr( "aria-pressed", self.element[0].checked );
-			});
-		} else if ( this.type === "radio" ) {
-			this.buttonElement.bind( "click.button", function() {
-				if ( options.disabled || clickDragged ) {
-					return false;
-				}
-				$( this ).addClass( "ui-state-active" );
-				self.buttonElement.attr( "aria-pressed", "true" );
-
-				var radio = self.element[ 0 ];
-				radioGroup( radio )
-					.not( radio )
-					.map(function() {
-						return $( this ).button( "widget" )[ 0 ];
-					})
-					.removeClass( "ui-state-active" )
-					.attr( "aria-pressed", "false" );
-			});
-		} else {
-			this.buttonElement
-				.bind( "mousedown.button", function() {
-					if ( options.disabled ) {
-						return false;
-					}
-					$( this ).addClass( "ui-state-active" );
-					lastActive = this;
-					$( document ).one( "mouseup", function() {
-						lastActive = null;
-					});
-				})
-				.bind( "mouseup.button", function() {
-					if ( options.disabled ) {
-						return false;
-					}
-					$( this ).removeClass( "ui-state-active" );
-				})
-				.bind( "keydown.button", function(event) {
-					if ( options.disabled ) {
-						return false;
-					}
-					if ( event.keyCode == $.ui.keyCode.SPACE || event.keyCode == $.ui.keyCode.ENTER ) {
-						$( this ).addClass( "ui-state-active" );
-					}
-				})
-				.bind( "keyup.button", function() {
-					$( this ).removeClass( "ui-state-active" );
-				});
-
-			if ( this.buttonElement.is("a") ) {
-				this.buttonElement.keyup(function(event) {
-					if ( event.keyCode === $.ui.keyCode.SPACE ) {
-						// TODO pass through original event correctly (just as 2nd argument doesn't work)
-						$( this ).click();
-					}
-				});
-			}
-		}
-
-		// TODO: pull out $.Widget's handling for the disabled option into
-		// $.Widget.prototype._setOptionDisabled so it's easy to proxy and can
-		// be overridden by individual plugins
-		this._setOption( "disabled", options.disabled );
-		this._resetButton();
-	},
-
-	_determineButtonType: function() {
-
-		if ( this.element.is(":checkbox") ) {
-			this.type = "checkbox";
-		} else if ( this.element.is(":radio") ) {
-			this.type = "radio";
-		} else if ( this.element.is("input") ) {
-			this.type = "input";
-		} else {
-			this.type = "button";
-		}
-
-		if ( this.type === "checkbox" || this.type === "radio" ) {
-			// we don't search against the document in case the element
-			// is disconnected from the DOM
-			var ancestor = this.element.parents().filter(":last"),
-				labelSelector = "label[for='" + this.element.attr("id") + "']";
-			this.buttonElement = ancestor.find( labelSelector );
-			if ( !this.buttonElement.length ) {
-				ancestor = ancestor.length ? ancestor.siblings() : this.element.siblings();
-				this.buttonElement = ancestor.filter( labelSelector );
-				if ( !this.buttonElement.length ) {
-					this.buttonElement = ancestor.find( labelSelector );
-				}
-			}
-			this.element.addClass( "ui-helper-hidden-accessible" );
-
-			var checked = this.element.is( ":checked" );
-			if ( checked ) {
-				this.buttonElement.addClass( "ui-state-active" );
-			}
-			this.buttonElement.attr( "aria-pressed", checked );
-		} else {
-			this.buttonElement = this.element;
-		}
-	},
-
-	widget: function() {
-		return this.buttonElement;
-	},
-
-	destroy: function() {
-		this.element
-			.removeClass( "ui-helper-hidden-accessible" );
-		this.buttonElement
-			.removeClass( baseClasses + " " + stateClasses + " " + typeClasses )
-			.removeAttr( "role" )
-			.removeAttr( "aria-pressed" )
-			.html( this.buttonElement.find(".ui-button-text").html() );
-
-		if ( !this.hasTitle ) {
-			this.buttonElement.removeAttr( "title" );
-		}
-
-		$.Widget.prototype.destroy.call( this );
-	},
-
-	_setOption: function( key, value ) {
-		$.Widget.prototype._setOption.apply( this, arguments );
-		if ( key === "disabled" ) {
-			if ( value ) {
-				this.element.propAttr( "disabled", true );
-			} else {
-				this.element.propAttr( "disabled", false );
-			}
-			return;
-		}
-		this._resetButton();
-	},
-
-	refresh: function() {
-		var isDisabled = this.element.is( ":disabled" );
-		if ( isDisabled !== this.options.disabled ) {
-			this._setOption( "disabled", isDisabled );
-		}
-		if ( this.type === "radio" ) {
-			radioGroup( this.element[0] ).each(function() {
-				if ( $( this ).is( ":checked" ) ) {
-					$( this ).button( "widget" )
-						.addClass( "ui-state-active" )
-						.attr( "aria-pressed", "true" );
-				} else {
-					$( this ).button( "widget" )
-						.removeClass( "ui-state-active" )
-						.attr( "aria-pressed", "false" );
-				}
-			});
-		} else if ( this.type === "checkbox" ) {
-			if ( this.element.is( ":checked" ) ) {
-				this.buttonElement
-					.addClass( "ui-state-active" )
-					.attr( "aria-pressed", "true" );
-			} else {
-				this.buttonElement
-					.removeClass( "ui-state-active" )
-					.attr( "aria-pressed", "false" );
-			}
-		}
-	},
-
-	_resetButton: function() {
-		if ( this.type === "input" ) {
-			if ( this.options.label ) {
-				this.element.val( this.options.label );
-			}
-			return;
-		}
-		var buttonElement = this.buttonElement.removeClass( typeClasses ),
-			buttonText = $( "<span></span>" )
-				.addClass( "ui-button-text" )
-				.html( this.options.label )
-				.appendTo( buttonElement.empty() )
-				.text(),
-			icons = this.options.icons,
-			multipleIcons = icons.primary && icons.secondary,
-			buttonClasses = [];  
-
-		if ( icons.primary || icons.secondary ) {
-			if ( this.options.text ) {
-				buttonClasses.push( "ui-button-text-icon" + ( multipleIcons ? "s" : ( icons.primary ? "-primary" : "-secondary" ) ) );
-			}
-
-			if ( icons.primary ) {
-				buttonElement.prepend( "<span class='ui-button-icon-primary ui-icon " + icons.primary + "'></span>" );
-			}
-
-			if ( icons.secondary ) {
-				buttonElement.append( "<span class='ui-button-icon-secondary ui-icon " + icons.secondary + "'></span>" );
-			}
-
-			if ( !this.options.text ) {
-				buttonClasses.push( multipleIcons ? "ui-button-icons-only" : "ui-button-icon-only" );
-
-				if ( !this.hasTitle ) {
-					buttonElement.attr( "title", buttonText );
-				}
-			}
-		} else {
-			buttonClasses.push( "ui-button-text-only" );
-		}
-		buttonElement.addClass( buttonClasses.join( " " ) );
-	}
-});
-
-$.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( key, value ) {
-		if ( key === "disabled" ) {
-			this.buttons.button( "option", key, value );
-		}
-
-		$.Widget.prototype._setOption.apply( this, arguments );
-	},
-	
-	refresh: function() {
-		var ltr = 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 $( this ).button( "widget" )[ 0 ];
-			})
-				.removeClass( "ui-corner-all ui-corner-left ui-corner-right" )
-				.filter( ":first" )
-					.addClass( ltr ? "ui-corner-left" : "ui-corner-right" )
-				.end()
-				.filter( ":last" )
-					.addClass( ltr ? "ui-corner-right" : "ui-corner-left" )
-				.end()
-			.end();
-	},
-
-	destroy: function() {
-		this.element.removeClass( "ui-buttonset" );
-		this.buttons
-			.map(function() {
-				return $( this ).button( "widget" )[ 0 ];
-			})
-				.removeClass( "ui-corner-left ui-corner-right" )
-			.end()
-			.button( "destroy" );
-
-		$.Widget.prototype.destroy.call( this );
-	}
-});
-
-}( jQuery ) );
-/*
- * jQuery UI Datepicker 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/Datepicker
- *
- * Depends:
- *	jquery.ui.core.js
- */
-(function( $, undefined ) {
-
-$.extend($.ui, { datepicker: { version: "1.8.16" } });
-
-var PROP_NAME = 'datepicker';
-var dpuuid = new Date().getTime();
-var instActive;
-
-/* Date picker manager.
-   Use the singleton instance of this class, $.datepicker, to interact with the date picker.
-   Settings for (groups of) date pickers are maintained in an instance object,
-   allowing multiple different settings on the same page. */
-
-function Datepicker() {
-	this.debug = false; // Change this to true to start debugging
-	this._curInst = null; // The current instance in use
-	this._keyEvent = false; // If the last event was a key event
-	this._disabledInputs = []; // List of date picker inputs that have been disabled
-	this._datepickerShowing = false; // True if the popup picker is showing , false if not
-	this._inDialog = false; // True if showing within a "dialog", false if not
-	this._mainDivId = 'ui-datepicker-div'; // The ID of the main datepicker division
-	this._inlineClass = 'ui-datepicker-inline'; // The name of the inline marker class
-	this._appendClass = 'ui-datepicker-append'; // The name of the append marker class
-	this._triggerClass = 'ui-datepicker-trigger'; // The name of the trigger marker class
-	this._dialogClass = 'ui-datepicker-dialog'; // The name of the dialog marker class
-	this._disableClass = 'ui-datepicker-disabled'; // The name of the disabled covering marker class
-	this._unselectableClass = 'ui-datepicker-unselectable'; // The name of the unselectable cell marker class
-	this._currentClass = 'ui-datepicker-current-day'; // The name of the current day marker class
-	this._dayOverClass = 'ui-datepicker-days-cell-over'; // The name of the day hover marker class
-	this.regional = []; // Available regional settings, indexed by language code
-	this.regional[''] = { // Default regional settings
-		closeText: 'Done', // Display text for close link
-		prevText: 'Prev', // Display text for previous month link
-		nextText: 'Next', // Display text for next month link
-		currentText: 'Today', // Display text for current month link
-		monthNames: ['January','February','March','April','May','June',
-			'July','August','September','October','November','December'], // Names of months for drop-down and formatting
-		monthNamesShort: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'], // For formatting
-		dayNames: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'], // For formatting
-		dayNamesShort: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], // For formatting
-		dayNamesMin: ['Su','Mo','Tu','We','Th','Fr','Sa'], // Column headings for days starting at Sunday
-		weekHeader: 'Wk', // Column header for week of the year
-		dateFormat: 'mm/dd/yy', // See format options on parseDate
-		firstDay: 0, // The first day of the week, Sun = 0, Mon = 1, ...
-		isRTL: false, // True if right-to-left language, false if left-to-right
-		showMonthAfterYear: false, // True if the year select precedes month, false for month then year
-		yearSuffix: '' // Additional text to append to the year in the month headers
-	};
-	this._defaults = { // Global defaults for all the date picker instances
-		showOn: 'focus', // 'focus' for popup on focus,
-			// 'button' for trigger button, or 'both' for either
-		showAnim: 'fadeIn', // Name of jQuery animation for popup
-		showOptions: {}, // Options for enhanced animations
-		defaultDate: null, // Used when field is blank: actual date,
-			// +/-number for offset from today, null for today
-		appendText: '', // Display text following the input box, e.g. showing the format
-		buttonText: '...', // Text for trigger button
-		buttonImage: '', // URL for trigger button image
-		buttonImageOnly: false, // True if the image appears alone, false if it appears on a button
-		hideIfNoPrevNext: false, // True to hide next/previous month links
-			// if not applicable, false to just disable them
-		navigationAsDateFormat: false, // True if date formatting applied to prev/today/next links
-		gotoCurrent: false, // True if today link goes back to current selection instead
-		changeMonth: false, // True if month can be selected directly, false if only prev/next
-		changeYear: false, // True if year can be selected directly, false if only prev/next
-		yearRange: 'c-10:c+10', // Range of years to display in drop-down,
-			// either relative to today's year (-nn:+nn), relative to currently displayed year
-			// (c-nn:c+nn), absolute (nnnn:nnnn), or a combination of the above (nnnn:-n)
-		showOtherMonths: false, // True to show dates in other months, false to leave blank
-		selectOtherMonths: false, // True to allow selection of dates in other months, false for unselectable
-		showWeek: false, // True to show week of the year, false to not show it
-		calculateWeek: this.iso8601Week, // How to calculate the week of the year,
-			// takes a Date and returns the number of the week for it
-		shortYearCutoff: '+10', // Short year values < this are in the current century,
-			// > this are in the previous century,
-			// string value starting with '+' for current year + value
-		minDate: null, // The earliest selectable date, or null for no limit
-		maxDate: null, // The latest selectable date, or null for no limit
-		duration: 'fast', // Duration of display/closure
-		beforeShowDay: null, // Function that takes a date and returns an array with
-			// [0] = true if selectable, false if not, [1] = custom CSS class name(s) or '',
-			// [2] = cell title (optional), e.g. $.datepicker.noWeekends
-		beforeShow: null, // Function that takes an input field and
-			// returns a set of custom settings for the date picker
-		onSelect: null, // Define a callback function when a date is selected
-		onChangeMonthYear: null, // Define a callback function when the month or year is changed
-		onClose: null, // Define a callback function when the datepicker is closed
-		numberOfMonths: 1, // Number of months to show at a time
-		showCurrentAtPos: 0, // The position in multipe months at which to show the current month (starting at 0)
-		stepMonths: 1, // Number of months to step back/forward
-		stepBigMonths: 12, // Number of months to step back/forward for the big links
-		altField: '', // Selector for an alternate field to store selected dates into
-		altFormat: '', // The date format to use for the alternate field
-		constrainInput: true, // The input is constrained by the current date format
-		showButtonPanel: false, // True to show button panel, false to not show it
-		autoSize: false, // True to size the input for the date format, false to leave as is
-		disabled: false // The initial disabled state
-	};
-	$.extend(this._defaults, this.regional['']);
-	this.dpDiv = bindHover($('<div id="' + this._mainDivId + '" class="ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all"></div>'));
-}
-
-$.extend(Datepicker.prototype, {
-	/* Class name added to elements to indicate already configured with a date picker. */
-	markerClassName: 'hasDatepicker',
-	
-	//Keep track of the maximum number of rows displayed (see #7043)
-	maxRows: 4,
-
-	/* Debug logging (if enabled). */
-	log: function () {
-		if (this.debug)
-			console.log.apply('', arguments);
-	},
-	
-	// TODO rename to "widget" when switching to widget factory
-	_widgetDatepicker: function() {
-		return this.dpDiv;
-	},
-
-	/* Override the default settings for all instances of the date picker.
-	   @param  settings  object - the new settings to use as defaults (anonymous object)
-	   @return the manager object */
-	setDefaults: function(settings) {
-		extendRemove(this._defaults, settings || {});
-		return this;
-	},
-
-	/* Attach the date picker to a jQuery selection.
-	   @param  target    element - the target input field or division or span
-	   @param  settings  object - the new settings to use for this date picker instance (anonymous) */
-	_attachDatepicker: function(target, settings) {
-		// check for settings on the control itself - in namespace 'date:'
-		var inlineSettings = null;
-		for (var attrName in this._defaults) {
-			var attrValue = target.getAttribute('date:' + attrName);
-			if (attrValue) {
-				inlineSettings = inlineSettings || {};
-				try {
-					inlineSettings[attrName] = eval(attrValue);
-				} catch (err) {
-					inlineSettings[attrName] = attrValue;
-				}
-			}
-		}
-		var nodeName = target.nodeName.toLowerCase();
-		var inline = (nodeName == 'div' || nodeName == 'span');
-		if (!target.id) {
-			this.uuid += 1;
-			target.id = 'dp' + this.uuid;
-		}
-		var inst = this._newInst($(target), inline);
-		inst.settings = $.extend({}, settings || {}, inlineSettings || {});
-		if (nodeName == 'input') {
-			this._connectDatepicker(target, inst);
-		} else if (inline) {
-			this._inlineDatepicker(target, inst);
-		}
-	},
-
-	/* Create a new instance object. */
-	_newInst: function(target, inline) {
-		var id = target[0].id.replace(/([^A-Za-z0-9_-])/g, '\\\\$1'); // escape jQuery meta chars
-		return {id: id, input: target, // associated target
-			selectedDay: 0, selectedMonth: 0, selectedYear: 0, // current selection
-			drawMonth: 0, drawYear: 0, // month being drawn
-			inline: inline, // is datepicker inline or not
-			dpDiv: (!inline ? this.dpDiv : // presentation div
-			bindHover($('<div class="' + this._inlineClass + ' ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all"></div>')))};
-	},
-
-	/* Attach the date picker to an input field. */
-	_connectDatepicker: function(target, inst) {
-		var input = $(target);
-		inst.append = $([]);
-		inst.trigger = $([]);
-		if (input.hasClass(this.markerClassName))
-			return;
-		this._attachments(input, inst);
-		input.addClass(this.markerClassName).keydown(this._doKeyDown).
-			keypress(this._doKeyPress).keyup(this._doKeyUp).
-			bind("setData.datepicker", function(event, key, value) {
-				inst.settings[key] = value;
-			}).bind("getData.datepicker", function(event, key) {
-				return this._get(inst, key);
-			});
-		this._autoSize(inst);
-		$.data(target, PROP_NAME, inst);
-		//If disabled option is true, disable the datepicker once it has been attached to the input (see ticket #5665)
-		if( inst.settings.disabled ) {
-			this._disableDatepicker( target );
-		}
-	},
-
-	/* Make attachments based on settings. */
-	_attachments: function(input, inst) {
-		var appendText = this._get(inst, 'appendText');
-		var isRTL = this._get(inst, 'isRTL');
-		if (inst.append)
-			inst.append.remove();
-		if (appendText) {
-			inst.append = $('<span class="' + this._appendClass + '">' + appendText + '</span>');
-			input[isRTL ? 'before' : 'after'](inst.append);
-		}
-		input.unbind('focus', this._showDatepicker);
-		if (inst.trigger)
-			inst.trigger.remove();
-		var showOn = this._get(inst, 'showOn');
-		if (showOn == 'focus' || showOn == 'both') // pop-up date picker when in the marked field
-			input.focus(this._showDatepicker);
-		if (showOn == 'button' || showOn == 'both') { // pop-up date picker when button clicked
-			var buttonText = this._get(inst, 'buttonText');
-			var buttonImage = this._get(inst, 'buttonImage');
-			inst.trigger = $(this._get(inst, 'buttonImageOnly') ?
-				$('<img/>').addClass(this._triggerClass).
-					attr({ src: buttonImage, alt: buttonText, title: buttonText }) :
-				$('<button type="button"></button>').addClass(this._triggerClass).
-					html(buttonImage == '' ? buttonText : $('<img/>').attr(
-					{ src:buttonImage, alt:buttonText, title:buttonText })));
-			input[isRTL ? 'before' : 'after'](inst.trigger);
-			inst.trigger.click(function() {
-				if ($.datepicker._datepickerShowing && $.datepicker._lastInput == input[0])
-					$.datepicker._hideDatepicker();
-				else
-					$.datepicker._showDatepicker(input[0]);
-				return false;
-			});
-		}
-	},
-
-	/* Apply the maximum length for the date format. */
-	_autoSize: function(inst) {
-		if (this._get(inst, 'autoSize') && !inst.inline) {
-			var date = new Date(2009, 12 - 1, 20); // Ensure double digits
-			var dateFormat = this._get(inst, 'dateFormat');
-			if (dateFormat.match(/[DM]/)) {
-				var findMax = function(names) {
-					var max = 0;
-					var maxI = 0;
-					for (var i = 0; i < names.length; i++) {
-						if (names[i].length > max) {
-							max = names[i].length;
-							maxI = i;
-						}
-					}
-					return maxI;
-				};
-				date.setMonth(findMax(this._get(inst, (dateFormat.match(/MM/) ?
-					'monthNames' : 'monthNamesShort'))));
-				date.setDate(findMax(this._get(inst, (dateFormat.match(/DD/) ?
-					'dayNames' : 'dayNamesShort'))) + 20 - date.getDay());
-			}
-			inst.input.attr('size', this._formatDate(inst, date).length);
-		}
-	},
-
-	/* Attach an inline date picker to a div. */
-	_inlineDatepicker: function(target, inst) {
-		var divSpan = $(target);
-		if (divSpan.hasClass(this.markerClassName))
-			return;
-		divSpan.addClass(this.markerClassName).append(inst.dpDiv).
-			bind("setData.datepicker", function(event, key, value){
-				inst.settings[key] = value;
-			}).bind("getData.datepicker", function(event, key){
-				return this._get(inst, key);
-			});
-		$.data(target, PROP_NAME, inst);
-		this._setDate(inst, this._getDefaultDate(inst), true);
-		this._updateDatepicker(inst);
-		this._updateAlternate(inst);
-		//If disabled option is true, disable the datepicker before showing it (see ticket #5665)
-		if( inst.settings.disabled ) {
-			this._disableDatepicker( target );
-		}
-		// Set display:block in place of inst.dpDiv.show() which won't work on disconnected elements
-		// http://bugs.jqueryui.com/ticket/7552 - A Datepicker created on a detached div has zero height
-		inst.dpDiv.css( "display", "block" );
-	},
-
-	/* Pop-up the date picker in a "dialog" box.
-	   @param  input     element - ignored
-	   @param  date      string or Date - the initial date to display
-	   @param  onSelect  function - the function to call when a date is selected
-	   @param  settings  object - update the dialog date picker instance's settings (anonymous object)
-	   @param  pos       int[2] - coordinates for the dialog's position within the screen or
-	                     event - with x/y coordinates or
-	                     leave empty for default (screen centre)
-	   @return the manager object */
-	_dialogDatepicker: function(input, date, onSelect, settings, pos) {
-		var inst = this._dialogInst; // internal instance
-		if (!inst) {
-			this.uuid += 1;
-			var id = 'dp' + this.uuid;
-			this._dialogInput = $('<input type="text" id="' + id +
-				'" style="position: absolute; top: -100px; width: 0px; z-index: -10;"/>');
-			this._dialogInput.keydown(this._doKeyDown);
-			$('body').append(this._dialogInput);
-			inst = this._dialogInst = this._newInst(this._dialogInput, false);
-			inst.settings = {};
-			$.data(this._dialogInput[0], PROP_NAME, inst);
-		}
-		extendRemove(inst.settings, settings || {});
-		date = (date && date.constructor == Date ? this._formatDate(inst, date) : date);
-		this._dialogInput.val(date);
-
-		this._pos = (pos ? (pos.length ? pos : [pos.pageX, pos.pageY]) : null);
-		if (!this._pos) {
-			var browserWidth = document.documentElement.clientWidth;
-			var browserHeight = document.documentElement.clientHeight;
-			var scrollX = document.documentElement.scrollLeft || document.body.scrollLeft;
-			var scrollY = document.documentElement.scrollTop || document.body.scrollTop;
-			this._pos = // should use actual width/height below
-				[(browserWidth / 2) - 100 + scrollX, (browserHeight / 2) - 150 + scrollY];
-		}
-
-		// move input on screen for focus, but hidden behind dialog
-		this._dialogInput.css('left', (this._pos[0] + 20) + 'px').css('top', this._pos[1] + 'px');
-		inst.settings.onSelect = onSelect;
-		this._inDialog = true;
-		this.dpDiv.addClass(this._dialogClass);
-		this._showDatepicker(this._dialogInput[0]);
-		if ($.blockUI)
-			$.blockUI(this.dpDiv);
-		$.data(this._dialogInput[0], PROP_NAME, inst);
-		return this;
-	},
-
-	/* Detach a datepicker from its control.
-	   @param  target    element - the target input field or division or span */
-	_destroyDatepicker: function(target) {
-		var $target = $(target);
-		var inst = $.data(target, PROP_NAME);
-		if (!$target.hasClass(this.markerClassName)) {
-			return;
-		}
-		var nodeName = target.nodeName.toLowerCase();
-		$.removeData(target, PROP_NAME);
-		if (nodeName == 'input') {
-			inst.append.remove();
-			inst.trigger.remove();
-			$target.removeClass(this.markerClassName).
-				unbind('focus', this._showDatepicker).
-				unbind('keydown', this._doKeyDown).
-				unbind('keypress', this._doKeyPress).
-				unbind('keyup', this._doKeyUp);
-		} else if (nodeName == 'div' || nodeName == 'span')
-			$target.removeClass(this.markerClassName).empty();
-	},
-
-	/* Enable the date picker to a jQuery selection.
-	   @param  target    element - the target input field or division or span */
-	_enableDatepicker: function(target) {
-		var $target = $(target);
-		var inst = $.data(target, PROP_NAME);
-		if (!$target.hasClass(this.markerClassName)) {
-			return;
-		}
-		var nodeName = target.nodeName.toLowerCase();
-		if (nodeName == 'input') {
-			target.disabled = false;
-			inst.trigger.filter('button').
-				each(function() { this.disabled = false; }).end().
-				filter('img').css({opacity: '1.0', cursor: ''});
-		}
-		else if (nodeName == 'div' || nodeName == 'span') {
-			var inline = $target.children('.' + this._inlineClass);
-			inline.children().removeClass('ui-state-disabled');
-			inline.find("select.ui-datepicker-month, select.ui-datepicker-year").
-				removeAttr("disabled");
-		}
-		this._disabledInputs = $.map(this._disabledInputs,
-			function(value) { return (value == target ? null : value); }); // delete entry
-	},
-
-	/* Disable the date picker to a jQuery selection.
-	   @param  target    element - the target input field or division or span */
-	_disableDatepicker: function(target) {
-		var $target = $(target);
-		var inst = $.data(target, PROP_NAME);
-		if (!$target.hasClass(this.markerClassName)) {
-			return;
-		}
-		var nodeName = target.nodeName.toLowerCase();
-		if (nodeName == 'input') {
-			target.disabled = true;
-			inst.trigger.filter('button').
-				each(function() { this.disabled = true; }).end().
-				filter('img').css({opacity: '0.5', cursor: 'default'});
-		}
-		else if (nodeName == 'div' || nodeName == 'span') {
-			var inline = $target.children('.' + this._inlineClass);
-			inline.children().addClass('ui-state-disabled');
-			inline.find("select.ui-datepicker-month, select.ui-datepicker-year").
-				attr("disabled", "disabled");
-		}
-		this._disabledInputs = $.map(this._disabledInputs,
-			function(value) { return (value == target ? null : value); }); // delete entry
-		this._disabledInputs[this._disabledInputs.length] = target;
-	},
-
-	/* Is the first field in a jQuery collection disabled as a datepicker?
-	   @param  target    element - the target input field or division or span
-	   @return boolean - true if disabled, false if enabled */
-	_isDisabledDatepicker: function(target) {
-		if (!target) {
-			return false;
-		}
-		for (var i = 0; i < this._disabledInputs.length; i++) {
-			if (this._disabledInputs[i] == target)
-				return true;
-		}
-		return false;
-	},
-
-	/* Retrieve the instance data for the target control.
-	   @param  target  element - the target input field or division or span
-	   @return  object - the associated instance data
-	   @throws  error if a jQuery problem getting data */
-	_getInst: function(target) {
-		try {
-			return $.data(target, PROP_NAME);
-		}
-		catch (err) {
-			throw 'Missing instance data for this datepicker';
-		}
-	},
-
-	/* Update or retrieve the settings for a date picker attached to an input field or division.
-	   @param  target  element - the target input field or division or span
-	   @param  name    object - the new settings to update or
-	                   string - the name of the setting to change or retrieve,
-	                   when retrieving also 'all' for all instance settings or
-	                   'defaults' for all global defaults
-	   @param  value   any - the new value for the setting
-	                   (omit if above is an object or to retrieve a value) */
-	_optionDatepicker: function(target, name, value) {
-		var inst = this._getInst(target);
-		if (arguments.length == 2 && typeof name == 'string') {
-			return (name == 'defaults' ? $.extend({}, $.datepicker._defaults) :
-				(inst ? (name == 'all' ? $.extend({}, inst.settings) :
-				this._get(inst, name)) : null));
-		}
-		var settings = name || {};
-		if (typeof name == 'string') {
-			settings = {};
-			settings[name] = value;
-		}
-		if (inst) {
-			if (this._curInst == inst) {
-				this._hideDatepicker();
-			}
-			var date = this._getDateDatepicker(target, true);
-			var minDate = this._getMinMaxDate(inst, 'min');
-			var maxDate = this._getMinMaxDate(inst, 'max');
-			extendRemove(inst.settings, settings);
-			// reformat the old minDate/maxDate values if dateFormat changes and a new minDate/maxDate isn't provided
-			if (minDate !== null && settings['dateFormat'] !== undefined && settings['minDate'] === undefined)
-				inst.settings.minDate = this._formatDate(inst, minDate);
-			if (maxDate !== null && settings['dateFormat'] !== undefined && settings['maxDate'] === undefined)
-				inst.settings.maxDate = this._formatDate(inst, maxDate);
-			this._attachments($(target), inst);
-			this._autoSize(inst);
-			this._setDate(inst, date);
-			this._updateAlternate(inst);
-			this._updateDatepicker(inst);
-		}
-	},
-
-	// change method deprecated
-	_changeDatepicker: function(target, name, value) {
-		this._optionDatepicker(target, name, value);
-	},
-
-	/* Redraw the date picker attached to an input field or division.
-	   @param  target  element - the target input field or division or span */
-	_refreshDatepicker: function(target) {
-		var inst = this._getInst(target);
-		if (inst) {
-			this._updateDatepicker(inst);
-		}
-	},
-
-	/* Set the dates for a jQuery selection.
-	   @param  target   element - the target input field or division or span
-	   @param  date     Date - the new date */
-	_setDateDatepicker: function(target, date) {
-		var inst = this._getInst(target);
-		if (inst) {
-			this._setDate(inst, date);
-			this._updateDatepicker(inst);
-			this._updateAlternate(inst);
-		}
-	},
-
-	/* Get the date(s) for the first entry in a jQuery selection.
-	   @param  target     element - the target input field or division or span
-	   @param  noDefault  boolean - true if no default date is to be used
-	   @return Date - the current date */
-	_getDateDatepicker: function(target, noDefault) {
-		var inst = this._getInst(target);
-		if (inst && !inst.inline)
-			this._setDateFromField(inst, noDefault);
-		return (inst ? this._getDate(inst) : null);
-	},
-
-	/* Handle keystrokes. */
-	_doKeyDown: function(event) {
-		var inst = $.datepicker._getInst(event.target);
-		var handled = true;
-		var isRTL = inst.dpDiv.is('.ui-datepicker-rtl');
-		inst._keyEvent = true;
-		if ($.datepicker._datepickerShowing)
-			switch (event.keyCode) {
-				case 9: $.datepicker._hideDatepicker();
-						handled = false;
-						break; // hide on tab out
-				case 13: var sel = $('td.' + $.datepicker._dayOverClass + ':not(.' + 
-									$.datepicker._currentClass + ')', inst.dpDiv);
-						if (sel[0])
-							$.datepicker._selectDay(event.target, inst.selectedMonth, inst.selectedYear, sel[0]);
-							var onSelect = $.datepicker._get(inst, 'onSelect');
-							if (onSelect) {
-								var dateStr = $.datepicker._formatDate(inst);
-
-								// trigger custom callback
-								onSelect.apply((inst.input ? inst.input[0] : null), [dateStr, inst]);
-							}
-						else
-							$.datepicker._hideDatepicker();
-						return false; // don't submit the form
-						break; // select the value on enter
-				case 27: $.datepicker._hideDatepicker();
-						break; // hide on escape
-				case 33: $.datepicker._adjustDate(event.target, (event.ctrlKey ?
-							-$.datepicker._get(inst, 'stepBigMonths') :
-							-$.datepicker._get(inst, 'stepMonths')), 'M');
-						break; // previous month/year on page up/+ ctrl
-				case 34: $.datepicker._adjustDate(event.target, (event.ctrlKey ?
-							+$.datepicker._get(inst, 'stepBigMonths') :
-							+$.datepicker._get(inst, 'stepMonths')), 'M');
-						break; // next month/year on page down/+ ctrl
-				case 35: if (event.ctrlKey || event.metaKey) $.datepicker._clearDate(event.target);
-						handled = event.ctrlKey || event.metaKey;
-						break; // clear on ctrl or command +end
-				case 36: if (event.ctrlKey || event.metaKey) $.datepicker._gotoToday(event.target);
-						handled = event.ctrlKey || event.metaKey;
-						break; // current on ctrl or command +home
-				case 37: if (event.ctrlKey || event.metaKey) $.datepicker._adjustDate(event.target, (isRTL ? +1 : -1), 'D');
-						handled = event.ctrlKey || event.metaKey;
-						// -1 day on ctrl or command +left
-						if (event.originalEvent.altKey) $.datepicker._adjustDate(event.target, (event.ctrlKey ?
-									-$.datepicker._get(inst, 'stepBigMonths') :
-									-$.datepicker._get(inst, 'stepMonths')), 'M');
-						// next month/year on alt +left on Mac
-						break;
-				case 38: if (event.ctrlKey || event.metaKey) $.datepicker._adjustDate(event.target, -7, 'D');
-						handled = event.ctrlKey || event.metaKey;
-						break; // -1 week on ctrl or command +up
-				case 39: if (event.ctrlKey || event.metaKey) $.datepicker._adjustDate(event.target, (isRTL ? -1 : +1), 'D');
-						handled = event.ctrlKey || event.metaKey;
-						// +1 day on ctrl or command +right
-						if (event.originalEvent.altKey) $.datepicker._adjustDate(event.target, (event.ctrlKey ?
-									+$.datepicker._get(inst, 'stepBigMonths') :
-									+$.datepicker._get(inst, 'stepMonths')), 'M');
-						// next month/year on alt +right
-						break;
-				case 40: if (event.ctrlKey || event.metaKey) $.datepicker._adjustDate(event.target, +7, 'D');
-						handled = event.ctrlKey || event.metaKey;
-						break; // +1 week on ctrl or command +down
-				default: handled = false;
-			}
-		else if (event.keyCode == 36 && event.ctrlKey) // display the date picker on ctrl+home
-			$.datepicker._showDatepicker(this);
-		else {
-			handled = false;
-		}
-		if (handled) {
-			event.preventDefault();
-			event.stopPropagation();
-		}
-	},
-
-	/* Filter entered characters - based on date format. */
-	_doKeyPress: function(event) {
-		var inst = $.datepicker._getInst(event.target);
-		if ($.datepicker._get(inst, 'constrainInput')) {
-			var chars = $.datepicker._possibleChars($.datepicker._get(inst, 'dateFormat'));
-			var chr = String.fromCharCode(event.charCode == undefined ? event.keyCode : event.charCode);
-			return event.ctrlKey || event.metaKey || (chr < ' ' || !chars || chars.indexOf(chr) > -1);
-		}
-	},
-
-	/* Synchronise manual entry and field/alternate field. */
-	_doKeyUp: function(event) {
-		var inst = $.datepicker._getInst(event.target);
-		if (inst.input.val() != inst.lastVal) {
-			try {
-				var date = $.datepicker.parseDate($.datepicker._get(inst, 'dateFormat'),
-					(inst.input ? inst.input.val() : null),
-					$.datepicker._getFormatConfig(inst));
-				if (date) { // only if valid
-					$.datepicker._setDateFromField(inst);
-					$.datepicker._updateAlternate(inst);
-					$.datepicker._updateDatepicker(inst);
-				}
-			}
-			catch (event) {
-				$.datepicker.log(event);
-			}
-		}
-		return true;
-	},
-
-	/* Pop-up the date picker for a given input field.
-       If false returned from beforeShow event handler do not show. 
-	   @param  input  element - the input field attached to the date picker or
-	                  event - if triggered by focus */
-	_showDatepicker: function(input) {
-		input = input.target || input;
-		if (input.nodeName.toLowerCase() != 'input') // find from button/image trigger
-			input = $('input', input.parentNode)[0];
-		if ($.datepicker._isDisabledDatepicker(input) || $.datepicker._lastInput == input) // already here
-			return;
-		var inst = $.datepicker._getInst(input);
-		if ($.datepicker._curInst && $.datepicker._curInst != inst) {
-			if ( $.datepicker._datepickerShowing ) {
-				$.datepicker._triggerOnClose($.datepicker._curInst);
-			}
-			$.datepicker._curInst.dpDiv.stop(true, true);
-		}
-		var beforeShow = $.datepicker._get(inst, 'beforeShow');
-		var beforeShowSettings = beforeShow ? beforeShow.apply(input, [input, inst]) : {};
-		if(beforeShowSettings === false){
-            //false
-			return;
-		}
-		extendRemove(inst.settings, beforeShowSettings);
-		inst.lastVal = null;
-		$.datepicker._lastInput = input;
-		$.datepicker._setDateFromField(inst);
-		if ($.datepicker._inDialog) // hide cursor
-			input.value = '';
-		if (!$.datepicker._pos) { // position below input
-			$.datepicker._pos = $.datepicker._findPos(input);
-			$.datepicker._pos[1] += input.offsetHeight; // add the height
-		}
-		var isFixed = false;
-		$(input).parents().each(function() {
-			isFixed |= $(this).css('position') == 'fixed';
-			return !isFixed;
-		});
-		if (isFixed && $.browser.opera) { // correction for Opera when fixed and scrolled
-			$.datepicker._pos[0] -= document.documentElement.scrollLeft;
-			$.datepicker._pos[1] -= document.documentElement.scrollTop;
-		}
-		var offset = {left: $.datepicker._pos[0], top: $.datepicker._pos[1]};
-		$.datepicker._pos = null;
-		//to avoid flashes on Firefox
-		inst.dpDiv.empty();
-		// determine sizing offscreen
-		inst.dpDiv.css({position: 'absolute', display: 'block', top: '-1000px'});
-		$.datepicker._updateDatepicker(inst);
-		// fix width for dynamic number of date pickers
-		// and adjust position before showing
-		offset = $.datepicker._checkOffset(inst, offset, isFixed);
-		inst.dpDiv.css({position: ($.datepicker._inDialog && $.blockUI ?
-			'static' : (isFixed ? 'fixed' : 'absolute')), display: 'none',
-			left: offset.left + 'px', top: offset.top + 'px'});
-		if (!inst.inline) {
-			var showAnim = $.datepicker._get(inst, 'showAnim');
-			var duration = $.datepicker._get(inst, 'duration');
-			var postProcess = function() {
-				var cover = inst.dpDiv.find('iframe.ui-datepicker-cover'); // IE6- only
-				if( !! cover.length ){
-					var borders = $.datepicker._getBorders(inst.dpDiv);
-					cover.css({left: -borders[0], top: -borders[1],
-						width: inst.dpDiv.outerWidth(), height: inst.dpDiv.outerHeight()});
-				}
-			};
-			inst.dpDiv.zIndex($(input).zIndex()+1);
-			$.datepicker._datepickerShowing = true;
-			if ($.effects && $.effects[showAnim])
-				inst.dpDiv.show(showAnim, $.datepicker._get(inst, 'showOptions'), duration, postProcess);
-			else
-				inst.dpDiv[showAnim || 'show']((showAnim ? duration : null), postProcess);
-			if (!showAnim || !duration)
-				postProcess();
-			if (inst.input.is(':visible') && !inst.input.is(':disabled'))
-				inst.input.focus();
-			$.datepicker._curInst = inst;
-		}
-	},
-
-	/* Generate the date picker content. */
-	_updateDatepicker: function(inst) {
-		var self = this;
-		self.maxRows = 4; //Reset the max number of rows being displayed (see #7043)
-		var borders = $.datepicker._getBorders(inst.dpDiv);
-		instActive = inst; // for delegate hover events
-		inst.dpDiv.empty().append(this._generateHTML(inst));
-		var cover = inst.dpDiv.find('iframe.ui-datepicker-cover'); // IE6- only
-		if( !!cover.length ){ //avoid call to outerXXXX() when not in IE6
-			cover.css({left: -borders[0], top: -borders[1], width: inst.dpDiv.outerWidth(), height: inst.dpDiv.outerHeight()})
-		}
-		inst.dpDiv.find('.' + this._dayOverClass + ' a').mouseover();
-		var numMonths = this._getNumberOfMonths(inst);
-		var cols = numMonths[1];
-		var width = 17;
-		inst.dpDiv.removeClass('ui-datepicker-multi-2 ui-datepicker-multi-3 ui-datepicker-multi-4').width('');
-		if (cols > 1)
-			inst.dpDiv.addClass('ui-datepicker-multi-' + cols).css('width', (width * cols) + 'em');
-		inst.dpDiv[(numMonths[0] != 1 || numMonths[1] != 1 ? 'add' : 'remove') +
-			'Class']('ui-datepicker-multi');
-		inst.dpDiv[(this._get(inst, 'isRTL') ? 'add' : 'remove') +
-			'Class']('ui-datepicker-rtl');
-		if (inst == $.datepicker._curInst && $.datepicker._datepickerShowing && inst.input &&
-				// #6694 - don't focus the input if it's already focused
-				// this breaks the change event in IE
-				inst.input.is(':visible') && !inst.input.is(':disabled') && inst.input[0] != document.activeElement)
-			inst.input.focus();
-		// deffered render of the years select (to avoid flashes on Firefox) 
-		if( inst.yearshtml ){
-			var origyearshtml = inst.yearshtml;
-			setTimeout(function(){
-				//assure that inst.yearshtml didn't change.
-				if( origyearshtml === inst.yearshtml && inst.yearshtml ){
-					inst.dpDiv.find('select.ui-datepicker-year:first').replaceWith(inst.yearshtml);
-				}
-				origyearshtml = inst.yearshtml = null;
-			}, 0);
-		}
-	},
-
-	/* Retrieve the size of left and top borders for an element.
-	   @param  elem  (jQuery object) the element of interest
-	   @return  (number[2]) the left and top borders */
-	_getBorders: function(elem) {
-		var convert = function(value) {
-			return {thin: 1, medium: 2, thick: 3}[value] || value;
-		};
-		return [parseFloat(convert(elem.css('border-left-width'))),
-			parseFloat(convert(elem.css('border-top-width')))];
-	},
-
-	/* Check positioning to remain on screen. */
-	_checkOffset: function(inst, offset, isFixed) {
-		var dpWidth = inst.dpDiv.outerWidth();
-		var dpHeight = inst.dpDiv.outerHeight();
-		var inputWidth = inst.input ? inst.input.outerWidth() : 0;
-		var inputHeight = inst.input ? inst.input.outerHeight() : 0;
-		var viewWidth = document.documentElement.clientWidth + $(document).scrollLeft();
-		var viewHeight = document.documentElement.clientHeight + $(document).scrollTop();
-
-		offset.left -= (this._get(inst, 'isRTL') ? (dpWidth - inputWidth) : 0);
-		offset.left -= (isFixed && offset.left == inst.input.offset().left) ? $(document).scrollLeft() : 0;
-		offset.top -= (isFixed && offset.top == (inst.input.offset().top + inputHeight)) ? $(document).scrollTop() : 0;
-
-		// now check if datepicker is showing outside window viewport - move to a better place if so.
-		offset.left -= Math.min(offset.left, (offset.left + dpWidth > viewWidth && viewWidth > dpWidth) ?
-			Math.abs(offset.left + dpWidth - viewWidth) : 0);
-		offset.top -= Math.min(offset.top, (offset.top + dpHeight > viewHeight && viewHeight > dpHeight) ?
-			Math.abs(dpHeight + inputHeight) : 0);
-
-		return offset;
-	},
-
-	/* Find an object's position on the screen. */
-	_findPos: function(obj) {
-		var inst = this._getInst(obj);
-		var isRTL = this._get(inst, 'isRTL');
-        while (obj && (obj.type == 'hidden' || obj.nodeType != 1 || $.expr.filters.hidden(obj))) {
-            obj = obj[isRTL ? 'previousSibling' : 'nextSibling'];
-        }
-        var position = $(obj).offset();
-	    return [position.left, position.top];
-	},
-
-	/* Trigger custom callback of onClose. */
-	_triggerOnClose: function(inst) {
-		var onClose = this._get(inst, 'onClose');
-		if (onClose)
-			onClose.apply((inst.input ? inst.input[0] : null),
-						  [(inst.input ? inst.input.val() : ''), inst]);
-	},
-
-	/* Hide the date picker from view.
-	   @param  input  element - the input field attached to the date picker */
-	_hideDatepicker: function(input) {
-		var inst = this._curInst;
-		if (!inst || (input && inst != $.data(input, PROP_NAME)))
-			return;
-		if (this._datepickerShowing) {
-			var showAnim = this._get(inst, 'showAnim');
-			var duration = this._get(inst, 'duration');
-			var postProcess = function() {
-				$.datepicker._tidyDialog(inst);
-				this._curInst = null;
-			};
-			if ($.effects && $.effects[showAnim])
-				inst.dpDiv.hide(showAnim, $.datepicker._get(inst, 'showOptions'), duration, postProcess);
-			else
-				inst.dpDiv[(showAnim == 'slideDown' ? 'slideUp' :
-					(showAnim == 'fadeIn' ? 'fadeOut' : 'hide'))]((showAnim ? duration : null), postProcess);
-			if (!showAnim)
-				postProcess();
-			$.datepicker._triggerOnClose(inst);
-			this._datepickerShowing = false;
-			this._lastInput = null;
-			if (this._inDialog) {
-				this._dialogInput.css({ position: 'absolute', left: '0', top: '-100px' });
-				if ($.blockUI) {
-					$.unblockUI();
-					$('body').append(this.dpDiv);
-				}
-			}
-			this._inDialog = false;
-		}
-	},
-
-	/* Tidy up after a dialog display. */
-	_tidyDialog: function(inst) {
-		inst.dpDiv.removeClass(this._dialogClass).unbind('.ui-datepicker-calendar');
-	},
-
-	/* Close date picker if clicked elsewhere. */
-	_checkExternalClick: function(event) {
-		if (!$.datepicker._curInst)
-			return;
-		var $target = $(event.target);
-		if ($target[0].id != $.datepicker._mainDivId &&
-				$target.parents('#' + $.datepicker._mainDivId).length == 0 &&
-				!$target.hasClass($.datepicker.markerClassName) &&
-				!$target.hasClass($.datepicker._triggerClass) &&
-				$.datepicker._datepickerShowing && !($.datepicker._inDialog && $.blockUI))
-			$.datepicker._hideDatepicker();
-	},
-
-	/* Adjust one of the date sub-fields. */
-	_adjustDate: function(id, offset, period) {
-		var target = $(id);
-		var inst = this._getInst(target[0]);
-		if (this._isDisabledDatepicker(target[0])) {
-			return;
-		}
-		this._adjustInstDate(inst, offset +
-			(period == 'M' ? this._get(inst, 'showCurrentAtPos') : 0), // undo positioning
-			period);
-		this._updateDatepicker(inst);
-	},
-
-	/* Action for current link. */
-	_gotoToday: function(id) {
-		var target = $(id);
-		var inst = this._getInst(target[0]);
-		if (this._get(inst, 'gotoCurrent') && inst.currentDay) {
-			inst.selectedDay = inst.currentDay;
-			inst.drawMonth = inst.selectedMonth = inst.currentMonth;
-			inst.drawYear = inst.selectedYear = inst.currentYear;
-		}
-		else {
-			var date = new Date();
-			inst.selectedDay = date.getDate();
-			inst.drawMonth = inst.selectedMonth = date.getMonth();
-			inst.drawYear = inst.selectedYear = date.getFullYear();
-		}
-		this._notifyChange(inst);
-		this._adjustDate(target);
-	},
-
-	/* Action for selecting a new month/year. */
-	_selectMonthYear: function(id, select, period) {
-		var target = $(id);
-		var inst = this._getInst(target[0]);
-		inst['selected' + (period == 'M' ? 'Month' : 'Year')] =
-		inst['draw' + (period == 'M' ? 'Month' : 'Year')] =
-			parseInt(select.options[select.selectedIndex].value,10);
-		this._notifyChange(inst);
-		this._adjustDate(target);
-	},
-
-	/* Action for selecting a day. */
-	_selectDay: function(id, month, year, td) {
-		var target = $(id);
-		if ($(td).hasClass(this._unselectableClass) || this._isDisabledDatepicker(target[0])) {
-			return;
-		}
-		var inst = this._getInst(target[0]);
-		inst.selectedDay = inst.currentDay = $('a', td).html();
-		inst.selectedMonth = inst.currentMonth = month;
-		inst.selectedYear = inst.currentYear = year;
-		this._selectDate(id, this._formatDate(inst,
-			inst.currentDay, inst.currentMonth, inst.currentYear));
-	},
-
-	/* Erase the input field and hide the date picker. */
-	_clearDate: function(id) {
-		var target = $(id);
-		var inst = this._getInst(target[0]);
-		this._selectDate(target, '');
-	},
-
-	/* Update the input field with the selected date. */
-	_selectDate: function(id, dateStr) {
-		var target = $(id);
-		var inst = this._getInst(target[0]);
-		dateStr = (dateStr != null ? dateStr : this._formatDate(inst));
-		if (inst.input)
-			inst.input.val(dateStr);
-		this._updateAlternate(inst);
-		var onSelect = this._get(inst, 'onSelect');
-		if (onSelect)
-			onSelect.apply((inst.input ? inst.input[0] : null), [dateStr, inst]);  // trigger custom callback
-		else if (inst.input)
-			inst.input.trigger('change'); // fire the change event
-		if (inst.inline)
-			this._updateDatepicker(inst);
-		else {
-			this._hideDatepicker();
-			this._lastInput = inst.input[0];
-			if (typeof(inst.input[0]) != 'object')
-				inst.input.focus(); // restore focus
-			this._lastInput = null;
-		}
-	},
-
-	/* Update any alternate field to synchronise with the main field. */
-	_updateAlternate: function(inst) {
-		var altField = this._get(inst, 'altField');
-		if (altField) { // update alternate field too
-			var altFormat = this._get(inst, 'altFormat') || this._get(inst, 'dateFormat');
-			var date = this._getDate(inst);
-			var dateStr = this.formatDate(altFormat, date, this._getFormatConfig(inst));
-			$(altField).each(function() { $(this).val(dateStr); });
-		}
-	},
-
-	/* Set as beforeShowDay function to prevent selection of weekends.
-	   @param  date  Date - the date to customise
-	   @return [boolean, string] - is this date selectable?, what is its CSS class? */
-	noWeekends: function(date) {
-		var day = date.getDay();
-		return [(day > 0 && day < 6), ''];
-	},
-
-	/* Set as calculateWeek to determine the week of the year based on the ISO 8601 definition.
-	   @param  date  Date - the date to get the week for
-	   @return  number - the number of the week within the year that contains this date */
-	iso8601Week: function(date) {
-		var checkDate = new Date(date.getTime());
-		// Find Thursday of this week starting on Monday
-		checkDate.setDate(checkDate.getDate() + 4 - (checkDate.getDay() || 7));
-		var time = checkDate.getTime();
-		checkDate.setMonth(0); // Compare with Jan 1
-		checkDate.setDate(1);
-		return Math.floor(Math.round((time - checkDate) / 86400000) / 7) + 1;
-	},
-
-	/* Parse a string value into a date object.
-	   See formatDate below for the possible formats.
-
-	   @param  format    string - the expected format of the date
-	   @param  value     string - the date in the above format
-	   @param  settings  Object - attributes include:
-	                     shortYearCutoff  number - the cutoff year for determining the century (optional)
-	                     dayNamesShort    string[7] - abbreviated names of the days from Sunday (optional)
-	                     dayNames         string[7] - names of the days from Sunday (optional)
-	                     monthNamesShort  string[12] - abbreviated names of the months (optional)
-	                     monthNames       string[12] - names of the months (optional)
-	   @return  Date - the extracted date value or null if value is blank */
-	parseDate: function (format, value, settings) {
-		if (format == null || value == null)
-			throw 'Invalid arguments';
-		value = (typeof value == 'object' ? value.toString() : value + '');
-		if (value == '')
-			return null;
-		var shortYearCutoff = (settings ? settings.shortYearCutoff : null) || this._defaults.shortYearCutoff;
-		shortYearCutoff = (typeof shortYearCutoff != 'string' ? shortYearCutoff :
-				new Date().getFullYear() % 100 + parseInt(shortYearCutoff, 10));
-		var dayNamesShort = (settings ? settings.dayNamesShort : null) || this._defaults.dayNamesShort;
-		var dayNames = (settings ? settings.dayNames : null) || this._defaults.dayNames;
-		var monthNamesShort = (settings ? settings.monthNamesShort : null) || this._defaults.monthNamesShort;
-		var monthNames = (settings ? settings.monthNames : null) || this._defaults.monthNames;
-		var year = -1;
-		var month = -1;
-		var day = -1;
-		var doy = -1;
-		var literal = false;
-		// Check whether a format character is doubled
-		var lookAhead = function(match) {
-			var matches = (iFormat + 1 < format.length && format.charAt(iFormat + 1) == match);
-			if (matches)
-				iFormat++;
-			return matches;
-		};
-		// Extract a number from the string value
-		var getNumber = function(match) {
-			var isDoubled = lookAhead(match);
-			var size = (match == '@' ? 14 : (match == '!' ? 20 :
-				(match == 'y' && isDoubled ? 4 : (match == 'o' ? 3 : 2))));
-			var digits = new RegExp('^\\d{1,' + size + '}');
-			var num = value.substring(iValue).match(digits);
-			if (!num)
-				throw 'Missing number at position ' + iValue;
-			iValue += num[0].length;
-			return parseInt(num[0], 10);
-		};
-		// Extract a name from the string value and convert to an index
-		var getName = function(match, shortNames, longNames) {
-			var names = $.map(lookAhead(match) ? longNames : shortNames, function (v, k) {
-				return [ [k, v] ];
-			}).sort(function (a, b) {
-				return -(a[1].length - b[1].length);
-			});
-			var index = -1;
-			$.each(names, function (i, pair) {
-				var name = pair[1];
-				if (value.substr(iValue, name.length).toLowerCase() == name.toLowerCase()) {
-					index = pair[0];
-					iValue += name.length;
-					return false;
-				}
-			});
-			if (index != -1)
-				return index + 1;
-			else
-				throw 'Unknown name at position ' + iValue;
-		};
-		// Confirm that a literal character matches the string value
-		var checkLiteral = function() {
-			if (value.charAt(iValue) != format.charAt(iFormat))
-				throw 'Unexpected literal at position ' + iValue;
-			iValue++;
-		};
-		var iValue = 0;
-		for (var iFormat = 0; iFormat < format.length; iFormat++) {
-			if (literal)
-				if (format.charAt(iFormat) == "'" && !lookAhead("'"))
-					literal = false;
-				else
-					checkLiteral();
-			else
-				switch (format.charAt(iFormat)) {
-					case 'd':
-						day = getNumber('d');
-						break;
-					case 'D':
-						getName('D', dayNamesShort, dayNames);
-						break;
-					case 'o':
-						doy = getNumber('o');
-						break;
-					case 'm':
-						month = getNumber('m');
-						break;
-					case 'M':
-						month = getName('M', monthNamesShort, monthNames);
-						break;
-					case 'y':
-						year = getNumber('y');
-						break;
-					case '@':
-						var date = new Date(getNumber('@'));
-						year = date.getFullYear();
-						month = date.getMonth() + 1;
-						day = date.getDate();
-						break;
-					case '!':
-						var date = new Date((getNumber('!') - this._ticksTo1970) / 10000);
-						year = date.getFullYear();
-						month = date.getMonth() + 1;
-						day = date.getDate();
-						break;
-					case "'":
-						if (lookAhead("'"))
-							checkLiteral();
-						else
-							literal = true;
-						break;
-					default:
-						checkLiteral();
-				}
-		}
-		if (iValue < value.length){
-			throw "Extra/unparsed characters found in date: " + value.substring(iValue);
-		}
-		if (year == -1)
-			year = new Date().getFullYear();
-		else if (year < 100)
-			year += new Date().getFullYear() - new Date().getFullYear() % 100 +
-				(year <= shortYearCutoff ? 0 : -100);
-		if (doy > -1) {
-			month = 1;
-			day = doy;
-			do {
-				var dim = this._getDaysInMonth(year, month - 1);
-				if (day <= dim)
-					break;
-				month++;
-				day -= dim;
-			} while (true);
-		}
-		var date = this._daylightSavingAdjust(new Date(year, month - 1, day));
-		if (date.getFullYear() != year || date.getMonth() + 1 != month || date.getDate() != day)
-			throw 'Invalid date'; // E.g. 31/02/00
-		return date;
-	},
-
-	/* Standard date formats. */
-	ATOM: 'yy-mm-dd', // RFC 3339 (ISO 8601)
-	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', // RFC 822
-	TICKS: '!',
-	TIMESTAMP: '@',
-	W3C: 'yy-mm-dd', // ISO 8601
-
-	_ticksTo1970: (((1970 - 1) * 365 + Math.floor(1970 / 4) - Math.floor(1970 / 100) +
-		Math.floor(1970 / 400)) * 24 * 60 * 60 * 10000000),
-
-	/* Format a date object into a string value.
-	   The format can be combinations of the following:
-	   d  - day of month (no leading zero)
-	   dd - day of month (two digit)
-	   o  - day of year (no leading zeros)
-	   oo - day of year (three digit)
-	   D  - day name short
-	   DD - day name long
-	   m  - month of year (no leading zero)
-	   mm - month of year (two digit)
-	   M  - month name short
-	   MM - month name long
-	   y  - year (two digit)
-	   yy - year (four digit)
-	   @ - Unix timestamp (ms since 01/01/1970)
-	   ! - Windows ticks (100ns since 01/01/0001)
-	   '...' - literal text
-	   '' - single quote
-
-	   @param  format    string - the desired format of the date
-	   @param  date      Date - the date value to format
-	   @param  settings  Object - attributes include:
-	                     dayNamesShort    string[7] - abbreviated names of the days from Sunday (optional)
-	                     dayNames         string[7] - names of the days from Sunday (optional)
-	                     monthNamesShort  string[12] - abbreviated names of the months (optional)
-	                     monthNames       string[12] - names of the months (optional)
-	   @return  string - the date in the above format */
-	formatDate: function (format, date, settings) {
-		if (!date)
-			return '';
-		var dayNamesShort = (settings ? settings.dayNamesShort : null) || this._defaults.dayNamesShort;
-		var dayNames = (settings ? settings.dayNames : null) || this._defaults.dayNames;
-		var monthNamesShort = (settings ? settings.monthNamesShort : null) || this._defaults.monthNamesShort;
-		var monthNames = (settings ? settings.monthNames : null) || this._defaults.monthNames;
-		// Check whether a format character is doubled
-		var lookAhead = function(match) {
-			var matches = (iFormat + 1 < format.length && format.charAt(iFormat + 1) == match);
-			if (matches)
-				iFormat++;
-			return matches;
-		};
-		// Format a number, with leading zero if necessary
-		var formatNumber = function(match, value, len) {
-			var num = '' + value;
-			if (lookAhead(match))
-				while (num.length < len)
-					num = '0' + num;
-			return num;
-		};
-		// Format a name, short or long as requested
-		var formatName = function(match, value, shortNames, longNames) {
-			return (lookAhead(match) ? longNames[value] : shortNames[value]);
-		};
-		var output = '';
-		var literal = false;
-		if (date)
-			for (var iFormat = 0; iFormat < format.length; iFormat++) {
-				if (literal)
-					if (format.charAt(iFormat) == "'" && !lookAhead("'"))
-						literal = false;
-					else
-						output += format.charAt(iFormat);
-				else
-					switch (format.charAt(iFormat)) {
-						case 'd':
-							output += formatNumber('d', date.getDate(), 2);
-							break;
-						case 'D':
-							output += formatName('D', date.getDay(), dayNamesShort, dayNames);
-							break;
-						case 'o':
-							output += formatNumber('o',
-								Math.round((new Date(date.getFullYear(), date.getMonth(), date.getDate()).getTime() - new Date(date.getFullYear(), 0, 0).getTime()) / 86400000), 3);
-							break;
-						case 'm':
-							output += formatNumber('m', date.getMonth() + 1, 2);
-							break;
-						case 'M':
-							output += formatName('M', date.getMonth(), monthNamesShort, monthNames);
-							break;
-						case 'y':
-							output += (lookAhead('y') ? date.getFullYear() :
-								(date.getYear() % 100 < 10 ? '0' : '') + date.getYear() % 100);
-							break;
-						case '@':
-							output += date.getTime();
-							break;
-						case '!':
-							output += date.getTime() * 10000 + this._ticksTo1970;
-							break;
-						case "'":
-							if (lookAhead("'"))
-								output += "'";
-							else
-								literal = true;
-							break;
-						default:
-							output += format.charAt(iFormat);
-					}
-			}
-		return output;
-	},
-
-	/* Extract all possible characters from the date format. */
-	_possibleChars: function (format) {
-		var chars = '';
-		var literal = false;
-		// Check whether a format character is doubled
-		var lookAhead = function(match) {
-			var matches = (iFormat + 1 < format.length && format.charAt(iFormat + 1) == match);
-			if (matches)
-				iFormat++;
-			return matches;
-		};
-		for (var iFormat = 0; iFormat < format.length; iFormat++)
-			if (literal)
-				if (format.charAt(iFormat) == "'" && !lookAhead("'"))
-					literal = false;
-				else
-					chars += format.charAt(iFormat);
-			else
-				switch (format.charAt(iFormat)) {
-					case 'd': case 'm': case 'y': case '@':
-						chars += '0123456789';
-						break;
-					case 'D': case 'M':
-						return null; // Accept anything
-					case "'":
-						if (lookAhead("'"))
-							chars += "'";
-						else
-							literal = true;
-						break;
-					default:
-						chars += format.charAt(iFormat);
-				}
-		return chars;
-	},
-
-	/* Get a setting value, defaulting if necessary. */
-	_get: function(inst, name) {
-		return inst.settings[name] !== undefined ?
-			inst.settings[name] : this._defaults[name];
-	},
-
-	/* Parse existing date and initialise date picker. */
-	_setDateFromField: function(inst, noDefault) {
-		if (inst.input.val() == inst.lastVal) {
-			return;
-		}
-		var dateFormat = this._get(inst, 'dateFormat');
-		var dates = inst.lastVal = inst.input ? inst.input.val() : null;
-		var date, defaultDate;
-		date = defaultDate = this._getDefaultDate(inst);
-		var settings = this._getFormatConfig(inst);
-		try {
-			date = this.parseDate(dateFormat, dates, settings) || defaultDate;
-		} catch (event) {
-			this.log(event);
-			dates = (noDefault ? '' : dates);
-		}
-		inst.selectedDay = date.getDate();
-		inst.drawMonth = inst.selectedMonth = date.getMonth();
-		inst.drawYear = inst.selectedYear = date.getFullYear();
-		inst.currentDay = (dates ? date.getDate() : 0);
-		inst.currentMonth = (dates ? date.getMonth() : 0);
-		inst.currentYear = (dates ? date.getFullYear() : 0);
-		this._adjustInstDate(inst);
-	},
-
-	/* Retrieve the default date shown on opening. */
-	_getDefaultDate: function(inst) {
-		return this._restrictMinMax(inst,
-			this._determineDate(inst, this._get(inst, 'defaultDate'), new Date()));
-	},
-
-	/* A date may be specified as an exact value or a relative one. */
-	_determineDate: function(inst, date, defaultDate) {
-		var offsetNumeric = function(offset) {
-			var date = new Date();
-			date.setDate(date.getDate() + offset);
-			return date;
-		};
-		var offsetString = function(offset) {
-			try {
-				return $.datepicker.parseDate($.datepicker._get(inst, 'dateFormat'),
-					offset, $.datepicker._getFormatConfig(inst));
-			}
-			catch (e) {
-				// Ignore
-			}
-			var date = (offset.toLowerCase().match(/^c/) ?
-				$.datepicker._getDate(inst) : null) || new Date();
-			var year = date.getFullYear();
-			var month = date.getMonth();
-			var day = date.getDate();
-			var pattern = /([+-]?[0-9]+)\s*(d|D|w|W|m|M|y|Y)?/g;
-			var matches = pattern.exec(offset);
-			while (matches) {
-				switch (matches[2] || 'd') {
-					case 'd' : case 'D' :
-						day += parseInt(matches[1],10); break;
-					case 'w' : case 'W' :
-						day += parseInt(matches[1],10) * 7; break;
-					case 'm' : case 'M' :
-						month += parseInt(matches[1],10);
-						day = Math.min(day, $.datepicker._getDaysInMonth(year, month));
-						break;
-					case 'y': case 'Y' :
-						year += parseInt(matches[1],10);
-						day = Math.min(day, $.datepicker._getDaysInMonth(year, month));
-						break;
-				}
-				matches = pattern.exec(offset);
-			}
-			return new Date(year, month, day);
-		};
-		var newDate = (date == null || date === '' ? defaultDate : (typeof date == 'string' ? offsetString(date) :
-			(typeof date == 'number' ? (isNaN(date) ? defaultDate : offsetNumeric(date)) : new Date(date.getTime()))));
-		newDate = (newDate && newDate.toString() == 'Invalid Date' ? defaultDate : newDate);
-		if (newDate) {
-			newDate.setHours(0);
-			newDate.setMinutes(0);
-			newDate.setSeconds(0);
-			newDate.setMilliseconds(0);
-		}
-		return this._daylightSavingAdjust(newDate);
-	},
-
-	/* Handle switch to/from daylight saving.
-	   Hours may be non-zero on daylight saving cut-over:
-	   > 12 when midnight changeover, but then cannot generate
-	   midnight datetime, so jump to 1AM, otherwise reset.
-	   @param  date  (Date) the date to check
-	   @return  (Date) the corrected date */
-	_daylightSavingAdjust: function(date) {
-		if (!date) return null;
-		date.setHours(date.getHours() > 12 ? date.getHours() + 2 : 0);
-		return date;
-	},
-
-	/* Set the date(s) directly. */
-	_setDate: function(inst, date, noChange) {
-		var clear = !date;
-		var origMonth = inst.selectedMonth;
-		var origYear = inst.selectedYear;
-		var newDate = this._restrictMinMax(inst, this._determineDate(inst, date, new Date()));
-		inst.selectedDay = inst.currentDay = newDate.getDate();
-		inst.drawMonth = inst.selectedMonth = inst.currentMonth = newDate.getMonth();
-		inst.drawYear = inst.selectedYear = inst.currentYear = newDate.getFullYear();
-		if ((origMonth != inst.selectedMonth || origYear != inst.selectedYear) && !noChange)
-			this._notifyChange(inst);
-		this._adjustInstDate(inst);
-		if (inst.input) {
-			inst.input.val(clear ? '' : this._formatDate(inst));
-		}
-	},
-
-	/* Retrieve the date(s) directly. */
-	_getDate: function(inst) {
-		var startDate = (!inst.currentYear || (inst.input && inst.input.val() == '') ? null :
-			this._daylightSavingAdjust(new Date(
-			inst.currentYear, inst.currentMonth, inst.currentDay)));
-			return startDate;
-	},
-
-	/* Generate the HTML for the current state of the date picker. */
-	_generateHTML: function(inst) {
-		var today = new Date();
-		today = this._daylightSavingAdjust(
-			new Date(today.getFullYear(), today.getMonth(), today.getDate())); // clear time
-		var isRTL = this._get(inst, 'isRTL');
-		var showButtonPanel = this._get(inst, 'showButtonPanel');
-		var hideIfNoPrevNext = this._get(inst, 'hideIfNoPrevNext');
-		var navigationAsDateFormat = this._get(inst, 'navigationAsDateFormat');
-		var numMonths = this._getNumberOfMonths(inst);
-		var showCurrentAtPos = this._get(inst, 'showCurrentAtPos');
-		var stepMonths = this._get(inst, 'stepMonths');
-		var isMultiMonth = (numMonths[0] != 1 || numMonths[1] != 1);
-		var currentDate = this._daylightSavingAdjust((!inst.currentDay ? new Date(9999, 9, 9) :
-			new Date(inst.currentYear, inst.currentMonth, inst.currentDay)));
-		var minDate = this._getMinMaxDate(inst, 'min');
-		var maxDate = this._getMinMaxDate(inst, 'max');
-		var drawMonth = inst.drawMonth - showCurrentAtPos;
-		var drawYear = inst.drawYear;
-		if (drawMonth < 0) {
-			drawMonth += 12;
-			drawYear--;
-		}
-		if (maxDate) {
-			var maxDraw = this._daylightSavingAdjust(new Date(maxDate.getFullYear(),
-				maxDate.getMonth() - (numMonths[0] * numMonths[1]) + 1, maxDate.getDate()));
-			maxDraw = (minDate && maxDraw < minDate ? minDate : maxDraw);
-			while (this._daylightSavingAdjust(new Date(drawYear, drawMonth, 1)) > maxDraw) {
-				drawMonth--;
-				if (drawMonth < 0) {
-					drawMonth = 11;
-					drawYear--;
-				}
-			}
-		}
-		inst.drawMonth = drawMonth;
-		inst.drawYear = drawYear;
-		var prevText = this._get(inst, 'prevText');
-		prevText = (!navigationAsDateFormat ? prevText : this.formatDate(prevText,
-			this._daylightSavingAdjust(new Date(drawYear, drawMonth - stepMonths, 1)),
-			this._getFormatConfig(inst)));
-		var prev = (this._canAdjustMonth(inst, -1, drawYear, drawMonth) ?
-			'<a class="ui-datepicker-prev ui-corner-all" onclick="DP_jQuery_' + dpuuid +
-			'.datepicker._adjustDate(\'#' + inst.id + '\', -' + stepMonths + ', \'M\');"' +
-			' title="' + prevText + '"><span class="ui-icon ui-icon-circle-triangle-' + ( isRTL ? 'e' : 'w') + '">' + prevText + '</span></a>' :
-			(hideIfNoPrevNext ? '' : '<a class="ui-datepicker-prev ui-corner-all ui-state-disabled" title="'+ prevText +'"><span class="ui-icon ui-icon-circle-triangle-' + ( isRTL ? 'e' : 'w') + '">' + prevText + '</span></a>'));
-		var nextText = this._get(inst, 'nextText');
-		nextText = (!navigationAsDateFormat ? nextText : this.formatDate(nextText,
-			this._daylightSavingAdjust(new Date(drawYear, drawMonth + stepMonths, 1)),
-			this._getFormatConfig(inst)));
-		var next = (this._canAdjustMonth(inst, +1, drawYear, drawMonth) ?
-			'<a class="ui-datepicker-next ui-corner-all" onclick="DP_jQuery_' + dpuuid +
-			'.datepicker._adjustDate(\'#' + inst.id + '\', +' + stepMonths + ', \'M\');"' +
-			' title="' + nextText + '"><span class="ui-icon ui-icon-circle-triangle-' + ( isRTL ? 'w' : 'e') + '">' + nextText + '</span></a>' :
-			(hideIfNoPrevNext ? '' : '<a class="ui-datepicker-next ui-corner-all ui-state-disabled" title="'+ nextText + '"><span class="ui-icon ui-icon-circle-triangle-' + ( isRTL ? 'w' : 'e') + '">' + nextText + '</span></a>'));
-		var currentText = this._get(inst, 'currentText');
-		var gotoDate = (this._get(inst, 'gotoCurrent') && inst.currentDay ? currentDate : today);
-		currentText = (!navigationAsDateFormat ? currentText :
-			this.formatDate(currentText, gotoDate, this._getFormatConfig(inst)));
-		var controls = (!inst.inline ? '<button type="button" class="ui-datepicker-close ui-state-default ui-priority-primary ui-corner-all" onclick="DP_jQuery_' + dpuuid +
-			'.datepicker._hideDatepicker();">' + this._get(inst, 'closeText') + '</button>' : '');
-		var buttonPanel = (showButtonPanel) ? '<div class="ui-datepicker-buttonpane ui-widget-content">' + (isRTL ? controls : '') +
-			(this._isInRange(inst, gotoDate) ? '<button type="button" class="ui-datepicker-current ui-state-default ui-priority-secondary ui-corner-all" onclick="DP_jQuery_' + dpuuid +
-			'.datepicker._gotoToday(\'#' + inst.id + '\');"' +
-			'>' + currentText + '</button>' : '') + (isRTL ? '' : controls) + '</div>' : '';
-		var firstDay = parseInt(this._get(inst, 'firstDay'),10);
-		firstDay = (isNaN(firstDay) ? 0 : firstDay);
-		var showWeek = this._get(inst, 'showWeek');
-		var dayNames = this._get(inst, 'dayNames');
-		var dayNamesShort = this._get(inst, 'dayNamesShort');
-		var dayNamesMin = this._get(inst, 'dayNamesMin');
-		var monthNames = this._get(inst, 'monthNames');
-		var monthNamesShort = this._get(inst, 'monthNamesShort');
-		var beforeShowDay = this._get(inst, 'beforeShowDay');
-		var showOtherMonths = this._get(inst, 'showOtherMonths');
-		var selectOtherMonths = this._get(inst, 'selectOtherMonths');
-		var calculateWeek = this._get(inst, 'calculateWeek') || this.iso8601Week;
-		var defaultDate = this._getDefaultDate(inst);
-		var html = '';
-		for (var row = 0; row < numMonths[0]; row++) {
-			var group = '';
-			this.maxRows = 4;
-			for (var col = 0; col < numMonths[1]; col++) {
-				var selectedDate = this._daylightSavingAdjust(new Date(drawYear, drawMonth, inst.selectedDay));
-				var cornerClass = ' ui-corner-all';
-				var calender = '';
-				if (isMultiMonth) {
-					calender += '<div class="ui-datepicker-group';
-					if (numMonths[1] > 1)
-						switch (col) {
-							case 0: calender += ' ui-datepicker-group-first';
-								cornerClass = ' ui-corner-' + (isRTL ? 'right' : 'left'); break;
-							case numMonths[1]-1: calender += ' ui-datepicker-group-last';
-								cornerClass = ' ui-corner-' + (isRTL ? 'left' : 'right'); break;
-							default: calender += ' ui-datepicker-group-middle'; cornerClass = ''; break;
-						}
-					calender += '">';
-				}
-				calender += '<div class="ui-datepicker-header ui-widget-header ui-helper-clearfix' + cornerClass + '">' +
-					(/all|left/.test(cornerClass) && row == 0 ? (isRTL ? next : prev) : '') +
-					(/all|right/.test(cornerClass) && row == 0 ? (isRTL ? prev : next) : '') +
-					this._generateMonthYearHeader(inst, drawMonth, drawYear, minDate, maxDate,
-					row > 0 || col > 0, monthNames, monthNamesShort) + // draw month headers
-					'</div><table class="ui-datepicker-calendar"><thead>' +
-					'<tr>';
-				var thead = (showWeek ? '<th class="ui-datepicker-week-col">' + this._get(inst, 'weekHeader') + '</th>' : '');
-				for (var dow = 0; dow < 7; dow++) { // days of the week
-					var day = (dow + firstDay) % 7;
-					thead += '<th' + ((dow + firstDay + 6) % 7 >= 5 ? ' class="ui-datepicker-week-end"' : '') + '>' +
-						'<span title="' + dayNames[day] + '">' + dayNamesMin[day] + '</span></th>';
-				}
-				calender += thead + '</tr></thead><tbody>';
-				var daysInMonth = this._getDaysInMonth(drawYear, drawMonth);
-				if (drawYear == inst.selectedYear && drawMonth == inst.selectedMonth)
-					inst.selectedDay = Math.min(inst.selectedDay, daysInMonth);
-				var leadDays = (this._getFirstDayOfMonth(drawYear, drawMonth) - firstDay + 7) % 7;
-				var curRows = Math.ceil((leadDays + daysInMonth) / 7); // calculate the number of rows to generate
-				var numRows = (isMultiMonth ? this.maxRows > curRows ? this.maxRows : curRows : curRows); //If multiple months, use the higher number of rows (see #7043)
-				this.maxRows = numRows;
-				var printDate = this._daylightSavingAdjust(new Date(drawYear, drawMonth, 1 - leadDays));
-				for (var dRow = 0; dRow < numRows; dRow++) { // create date picker rows
-					calender += '<tr>';
-					var tbody = (!showWeek ? '' : '<td class="ui-datepicker-week-col">' +
-						this._get(inst, 'calculateWeek')(printDate) + '</td>');
-					for (var dow = 0; dow < 7; dow++) { // create date picker days
-						var daySettings = (beforeShowDay ?
-							beforeShowDay.apply((inst.input ? inst.input[0] : null), [printDate]) : [true, '']);
-						var otherMonth = (printDate.getMonth() != drawMonth);
-						var unselectable = (otherMonth && !selectOtherMonths) || !daySettings[0] ||
-							(minDate && printDate < minDate) || (maxDate && printDate > maxDate);
-						tbody += '<td class="' +
-							((dow + firstDay + 6) % 7 >= 5 ? ' ui-datepicker-week-end' : '') + // highlight weekends
-							(otherMonth ? ' ui-datepicker-other-month' : '') + // highlight days from other months
-							((printDate.getTime() == selectedDate.getTime() && drawMonth == inst.selectedMonth && inst._keyEvent) || // user pressed key
-							(defaultDate.getTime() == printDate.getTime() && defaultDate.getTime() == selectedDate.getTime()) ?
-							// or defaultDate is current printedDate and defaultDate is selectedDate
-							' ' + this._dayOverClass : '') + // highlight selected day
-							(unselectable ? ' ' + this._unselectableClass + ' ui-state-disabled': '') +  // highlight unselectable days
-							(otherMonth && !showOtherMonths ? '' : ' ' + daySettings[1] + // highlight custom dates
-							(printDate.getTime() == currentDate.getTime() ? ' ' + this._currentClass : '') + // highlight selected day
-							(printDate.getTime() == today.getTime() ? ' ui-datepicker-today' : '')) + '"' + // highlight today (if different)
-							((!otherMonth || showOtherMonths) && daySettings[2] ? ' title="' + daySettings[2] + '"' : '') + // cell title
-							(unselectable ? '' : ' onclick="DP_jQuery_' + dpuuid + '.datepicker._selectDay(\'#' +
-							inst.id + '\',' + printDate.getMonth() + ',' + printDate.getFullYear() + ', this);return false;"') + '>' + // actions
-							(otherMonth && !showOtherMonths ? '&#xa0;' : // display for other months
-							(unselectable ? '<span class="ui-state-default">' + printDate.getDate() + '</span>' : '<a class="ui-state-default' +
-							(printDate.getTime() == today.getTime() ? ' ui-state-highlight' : '') +
-							(printDate.getTime() == currentDate.getTime() ? ' ui-state-active' : '') + // highlight selected day
-							(otherMonth ? ' ui-priority-secondary' : '') + // distinguish dates from other months
-							'" href="#">' + printDate.getDate() + '</a>')) + '</td>'; // display selectable date
-						printDate.setDate(printDate.getDate() + 1);
-						printDate = this._daylightSavingAdjust(printDate);
-					}
-					calender += tbody + '</tr>';
-				}
-				drawMonth++;
-				if (drawMonth > 11) {
-					drawMonth = 0;
-					drawYear++;
-				}
-				calender += '</tbody></table>' + (isMultiMonth ? '</div>' + 
-							((numMonths[0] > 0 && col == numMonths[1]-1) ? '<div class="ui-datepicker-row-break"></div>' : '') : '');
-				group += calender;
-			}
-			html += group;
-		}
-		html += buttonPanel + ($.browser.msie && parseInt($.browser.version,10) < 7 && !inst.inline ?
-			'<iframe src="javascript:false;" class="ui-datepicker-cover" frameborder="0"></iframe>' : '');
-		inst._keyEvent = false;
-		return html;
-	},
-
-	/* Generate the month and year header. */
-	_generateMonthYearHeader: function(inst, drawMonth, drawYear, minDate, maxDate,
-			secondary, monthNames, monthNamesShort) {
-		var changeMonth = this._get(inst, 'changeMonth');
-		var changeYear = this._get(inst, 'changeYear');
-		var showMonthAfterYear = this._get(inst, 'showMonthAfterYear');
-		var html = '<div class="ui-datepicker-title">';
-		var monthHtml = '';
-		// month selection
-		if (secondary || !changeMonth)
-			monthHtml += '<span class="ui-datepicker-month">' + monthNames[drawMonth] + '</span>';
-		else {
-			var inMinYear = (minDate && minDate.getFullYear() == drawYear);
-			var inMaxYear = (maxDate && maxDate.getFullYear() == drawYear);
-			monthHtml += '<select class="ui-datepicker-month" ' +
-				'onchange="DP_jQuery_' + dpuuid + '.datepicker._selectMonthYear(\'#' + inst.id + '\', this, \'M\');" ' +
-			 	'>';
-			for (var month = 0; month < 12; month++) {
-				if ((!inMinYear || month >= minDate.getMonth()) &&
-						(!inMaxYear || month <= maxDate.getMonth()))
-					monthHtml += '<option value="' + month + '"' +
-						(month == drawMonth ? ' selected="selected"' : '') +
-						'>' + monthNamesShort[month] + '</option>';
-			}
-			monthHtml += '</select>';
-		}
-		if (!showMonthAfterYear)
-			html += monthHtml + (secondary || !(changeMonth && changeYear) ? '&#xa0;' : '');
-		// year selection
-		if ( !inst.yearshtml ) {
-			inst.yearshtml = '';
-			if (secondary || !changeYear)
-				html += '<span class="ui-datepicker-year">' + drawYear + '</span>';
-			else {
-				// determine range of years to display
-				var years = this._get(inst, 'yearRange').split(':');
-				var thisYear = new Date().getFullYear();
-				var determineYear = function(value) {
-					var year = (value.match(/c[+-].*/) ? drawYear + parseInt(value.substring(1), 10) :
-						(value.match(/[+-].*/) ? thisYear + parseInt(value, 10) :
-						parseInt(value, 10)));
-					return (isNaN(year) ? thisYear : year);
-				};
-				var year = determineYear(years[0]);
-				var endYear = Math.max(year, determineYear(years[1] || ''));
-				year = (minDate ? Math.max(year, minDate.getFullYear()) : year);
-				endYear = (maxDate ? Math.min(endYear, maxDate.getFullYear()) : endYear);
-				inst.yearshtml += '<select class="ui-datepicker-year" ' +
-					'onchange="DP_jQuery_' + dpuuid + '.datepicker._selectMonthYear(\'#' + inst.id + '\', this, \'Y\');" ' +
-					'>';
-				for (; year <= endYear; year++) {
-					inst.yearshtml += '<option value="' + year + '"' +
-						(year == drawYear ? ' selected="selected"' : '') +
-						'>' + year + '</option>';
-				}
-				inst.yearshtml += '</select>';
-				
-				html += inst.yearshtml;
-				inst.yearshtml = null;
-			}
-		}
-		html += this._get(inst, 'yearSuffix');
-		if (showMonthAfterYear)
-			html += (secondary || !(changeMonth && changeYear) ? '&#xa0;' : '') + monthHtml;
-		html += '</div>'; // Close datepicker_header
-		return html;
-	},
-
-	/* Adjust one of the date sub-fields. */
-	_adjustInstDate: function(inst, offset, period) {
-		var year = inst.drawYear + (period == 'Y' ? offset : 0);
-		var month = inst.drawMonth + (period == 'M' ? offset : 0);
-		var day = Math.min(inst.selectedDay, this._getDaysInMonth(year, month)) +
-			(period == 'D' ? offset : 0);
-		var date = this._restrictMinMax(inst,
-			this._daylightSavingAdjust(new Date(year, month, day)));
-		inst.selectedDay = date.getDate();
-		inst.drawMonth = inst.selectedMonth = date.getMonth();
-		inst.drawYear = inst.selectedYear = date.getFullYear();
-		if (period == 'M' || period == 'Y')
-			this._notifyChange(inst);
-	},
-
-	/* Ensure a date is within any min/max bounds. */
-	_restrictMinMax: function(inst, date) {
-		var minDate = this._getMinMaxDate(inst, 'min');
-		var maxDate = this._getMinMaxDate(inst, 'max');
-		var newDate = (minDate && date < minDate ? minDate : date);
-		newDate = (maxDate && newDate > maxDate ? maxDate : newDate);
-		return newDate;
-	},
-
-	/* Notify change of month/year. */
-	_notifyChange: function(inst) {
-		var onChange = this._get(inst, 'onChangeMonthYear');
-		if (onChange)
-			onChange.apply((inst.input ? inst.input[0] : null),
-				[inst.selectedYear, inst.selectedMonth + 1, inst]);
-	},
-
-	/* Determine the number of months to show. */
-	_getNumberOfMonths: function(inst) {
-		var numMonths = this._get(inst, 'numberOfMonths');
-		return (numMonths == null ? [1, 1] : (typeof numMonths == 'number' ? [1, numMonths] : numMonths));
-	},
-
-	/* Determine the current maximum date - ensure no time components are set. */
-	_getMinMaxDate: function(inst, minMax) {
-		return this._determineDate(inst, this._get(inst, minMax + 'Date'), null);
-	},
-
-	/* Find the number of days in a given month. */
-	_getDaysInMonth: function(year, month) {
-		return 32 - this._daylightSavingAdjust(new Date(year, month, 32)).getDate();
-	},
-
-	/* Find the day of the week of the first of a month. */
-	_getFirstDayOfMonth: function(year, month) {
-		return new Date(year, month, 1).getDay();
-	},
-
-	/* Determines if we should allow a "next/prev" month display change. */
-	_canAdjustMonth: function(inst, offset, curYear, curMonth) {
-		var numMonths = this._getNumberOfMonths(inst);
-		var date = this._daylightSavingAdjust(new Date(curYear,
-			curMonth + (offset < 0 ? offset : numMonths[0] * numMonths[1]), 1));
-		if (offset < 0)
-			date.setDate(this._getDaysInMonth(date.getFullYear(), date.getMonth()));
-		return this._isInRange(inst, date);
-	},
-
-	/* Is the given date in the accepted range? */
-	_isInRange: function(inst, date) {
-		var minDate = this._getMinMaxDate(inst, 'min');
-		var maxDate = this._getMinMaxDate(inst, 'max');
-		return ((!minDate || date.getTime() >= minDate.getTime()) &&
-			(!maxDate || date.getTime() <= maxDate.getTime()));
-	},
-
-	/* Provide the configuration settings for formatting/parsing. */
-	_getFormatConfig: function(inst) {
-		var shortYearCutoff = this._get(inst, 'shortYearCutoff');
-		shortYearCutoff = (typeof shortYearCutoff != 'string' ? shortYearCutoff :
-			new Date().getFullYear() % 100 + parseInt(shortYearCutoff, 10));
-		return {shortYearCutoff: shortYearCutoff,
-			dayNamesShort: this._get(inst, 'dayNamesShort'), dayNames: this._get(inst, 'dayNames'),
-			monthNamesShort: this._get(inst, 'monthNamesShort'), monthNames: this._get(inst, 'monthNames')};
-	},
-
-	/* Format the given date for display. */
-	_formatDate: function(inst, day, month, year) {
-		if (!day) {
-			inst.currentDay = inst.selectedDay;
-			inst.currentMonth = inst.selectedMonth;
-			inst.currentYear = inst.selectedYear;
-		}
-		var date = (day ? (typeof day == 'object' ? day :
-			this._daylightSavingAdjust(new Date(year, month, day))) :
-			this._daylightSavingAdjust(new Date(inst.currentYear, inst.currentMonth, inst.currentDay)));
-		return this.formatDate(this._get(inst, 'dateFormat'), date, this._getFormatConfig(inst));
-	}
-});
-
-/*
- * Bind hover events for datepicker elements.
- * Done via delegate so the binding only occurs once in the lifetime of the parent div.
- * Global instActive, set by _updateDatepicker allows the handlers to find their way back to the active picker.
- */ 
-function bindHover(dpDiv) {
-	var selector = 'button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a';
-	return dpDiv.bind('mouseout', function(event) {
-			var elem = $( event.target ).closest( selector );
-			if ( !elem.length ) {
-				return;
-			}
-			elem.removeClass( "ui-state-hover ui-datepicker-prev-hover ui-datepicker-next-hover" );
-		})
-		.bind('mouseover', function(event) {
-			var elem = $( event.target ).closest( selector );
-			if ($.datepicker._isDisabledDatepicker( instActive.inline ? dpDiv.parent()[0] : instActive.input[0]) ||
-					!elem.length ) {
-				return;
-			}
-			elem.parents('.ui-datepicker-calendar').find('a').removeClass('ui-state-hover');
-			elem.addClass('ui-state-hover');
-			if (elem.hasClass('ui-datepicker-prev')) elem.addClass('ui-datepicker-prev-hover');
-			if (elem.hasClass('ui-datepicker-next')) elem.addClass('ui-datepicker-next-hover');
-		});
-}
-
-/* jQuery extend now ignores nulls! */
-function extendRemove(target, props) {
-	$.extend(target, props);
-	for (var name in props)
-		if (props[name] == null || props[name] == undefined)
-			target[name] = props[name];
-	return target;
-};
-
-/* Determine whether an object is an array. */
-function isArray(a) {
-	return (a && (($.browser.safari && typeof a == 'object' && a.length) ||
-		(a.constructor && a.constructor.toString().match(/\Array\(\)/))));
-};
-
-/* Invoke the datepicker functionality.
-   @param  options  string - a command, optionally followed by additional parameters or
-                    Object - settings for attaching new datepicker functionality
-   @return  jQuery object */
-$.fn.datepicker = function(options){
-	
-	/* Verify an empty collection wasn't passed - Fixes #6976 */
-	if ( !this.length ) {
-		return this;
-	}
-	
-	/* Initialise the date picker. */
-	if (!$.datepicker.initialized) {
-		$(document).mousedown($.datepicker._checkExternalClick).
-			find('body').append($.datepicker.dpDiv);
-		$.datepicker.initialized = true;
-	}
-
-	var otherArgs = Array.prototype.slice.call(arguments, 1);
-	if (typeof options == 'string' && (options == 'isDisabled' || options == 'getDate' || options == 'widget'))
-		return $.datepicker['_' + options + 'Datepicker'].
-			apply($.datepicker, [this[0]].concat(otherArgs));
-	if (options == 'option' && arguments.length == 2 && typeof arguments[1] == 'string')
-		return $.datepicker['_' + options + 'Datepicker'].
-			apply($.datepicker, [this[0]].concat(otherArgs));
-	return this.each(function() {
-		typeof options == 'string' ?
-			$.datepicker['_' + options + 'Datepicker'].
-				apply($.datepicker, [this].concat(otherArgs)) :
-			$.datepicker._attachDatepicker(this, options);
-	});
-};
-
-$.datepicker = new Datepicker(); // singleton instance
-$.datepicker.initialized = false;
-$.datepicker.uuid = new Date().getTime();
-$.datepicker.version = "1.8.16";
-
-// Workaround for #4055
-// Add another global to avoid noConflict issues with inline event handlers
-window['DP_jQuery_' + dpuuid] = $;
-
-})(jQuery);
-/*
- * jQuery UI Dialog 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/Dialog
- *
- * Depends:
- *	jquery.ui.core.js
- *	jquery.ui.widget.js
- *  jquery.ui.button.js
- *	jquery.ui.draggable.js
- *	jquery.ui.mouse.js
- *	jquery.ui.position.js
- *	jquery.ui.resizable.js
- */
-(function( $, undefined ) {
-
-var uiDialogClasses =
-		'ui-dialog ' +
-		'ui-widget ' +
-		'ui-widget-content ' +
-		'ui-corner-all ',
-	sizeRelatedOptions = {
-		buttons: true,
-		height: true,
-		maxHeight: true,
-		maxWidth: true,
-		minHeight: true,
-		minWidth: true,
-		width: true
-	},
-	resizableRelatedOptions = {
-		maxHeight: true,
-		maxWidth: true,
-		minHeight: true,
-		minWidth: true
-	},
-	// support for jQuery 1.3.2 - handle common attrFn methods for dialog
-	attrFn = $.attrFn || {
-		val: true,
-		css: true,
-		html: true,
-		text: true,
-		data: true,
-		width: true,
-		height: true,
-		offset: true,
-		click: true
-	};
-
-$.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',
-			// ensure that the titlebar is never outside the document
-			using: function(pos) {
-				var topOffset = $(this).css(pos).offset().top;
-				if (topOffset < 0) {
-					$(this).css('top', pos.top - topOffset);
-				}
-			}
-		},
-		resizable: true,
-		show: null,
-		stack: true,
-		title: '',
-		width: 300,
-		zIndex: 1000
-	},
-
-	_create: function() {
-		this.originalTitle = this.element.attr('title');
-		// #5742 - .attr() might return a DOMElement
-		if ( typeof this.originalTitle !== "string" ) {
-			this.originalTitle = "";
-		}
-
-		this.options.title = this.options.title || this.originalTitle;
-		var self = this,
-			options = self.options,
-
-			title = options.title || '&#160;',
-			titleId = $.ui.dialog.getTitleId(self.element),
-
-			uiDialog = (self.uiDialog = $('<div></div>'))
-				.appendTo(document.body)
-				.hide()
-				.addClass(uiDialogClasses + options.dialogClass)
-				.css({
-					zIndex: options.zIndex
-				})
-				// setting tabIndex makes the div focusable
-				// setting outline to 0 prevents a border on focus in Mozilla
-				.attr('tabIndex', -1).css('outline', 0).keydown(function(event) {
-					if (options.closeOnEscape && !event.isDefaultPrevented() && event.keyCode &&
-						event.keyCode === $.ui.keyCode.ESCAPE) {
-						
-						self.close(event);
-						event.preventDefault();
-					}
-				})
-				.attr({
-					role: 'dialog',
-					'aria-labelledby': titleId
-				})
-				.mousedown(function(event) {
-					self.moveToTop(false, event);
-				}),
-
-			uiDialogContent = self.element
-				.show()
-				.removeAttr('title')
-				.addClass(
-					'ui-dialog-content ' +
-					'ui-widget-content')
-				.appendTo(uiDialog),
-
-			uiDialogTitlebar = (self.uiDialogTitlebar = $('<div></div>'))
-				.addClass(
-					'ui-dialog-titlebar ' +
-					'ui-widget-header ' +
-					'ui-corner-all ' +
-					'ui-helper-clearfix'
-				)
-				.prependTo(uiDialog),
-
-			uiDialogTitlebarClose = $('<a href="#"></a>')
-				.addClass(
-					'ui-dialog-titlebar-close ' +
-					'ui-corner-all'
-				)
-				.attr('role', 'button')
-				.hover(
-					function() {
-						uiDialogTitlebarClose.addClass('ui-state-hover');
-					},
-					function() {
-						uiDialogTitlebarClose.removeClass('ui-state-hover');
-					}
-				)
-				.focus(function() {
-					uiDialogTitlebarClose.addClass('ui-state-focus');
-				})
-				.blur(function() {
-					uiDialogTitlebarClose.removeClass('ui-state-focus');
-				})
-				.click(function(event) {
-					self.close(event);
-					return false;
-				})
-				.appendTo(uiDialogTitlebar),
-
-			uiDialogTitlebarCloseText = (self.uiDialogTitlebarCloseText = $('<span></span>'))
-				.addClass(
-					'ui-icon ' +
-					'ui-icon-closethick'
-				)
-				.text(options.closeText)
-				.appendTo(uiDialogTitlebarClose),
-
-			uiDialogTitle = $('<span></span>')
-				.addClass('ui-dialog-title')
-				.attr('id', titleId)
-				.html(title)
-				.prependTo(uiDialogTitlebar);
-
-		//handling of deprecated beforeclose (vs beforeClose) option
-		//Ticket #4669 http://dev.jqueryui.com/ticket/4669
-		//TODO: remove in 1.9pre
-		if ($.isFunction(options.beforeclose) && !$.isFunction(options.beforeClose)) {
-			options.beforeClose = options.beforeclose;
-		}
-
-		uiDialogTitlebar.find("*").add(uiDialogTitlebar).disableSelection();
-
-		if (options.draggable && $.fn.draggable) {
-			self._makeDraggable();
-		}
-		if (options.resizable && $.fn.resizable) {
-			self._makeResizable();
-		}
-
-		self._createButtons(options.buttons);
-		self._isOpen = false;
-
-		if ($.fn.bgiframe) {
-			uiDialog.bgiframe();
-		}
-	},
-
-	_init: function() {
-		if ( this.options.autoOpen ) {
-			this.open();
-		}
-	},
-
-	destroy: function() {
-		var self = this;
-		
-		if (self.overlay) {
-			self.overlay.destroy();
-		}
-		self.uiDialog.hide();
-		self.element
-			.unbind('.dialog')
-			.removeData('dialog')
-			.removeClass('ui-dialog-content ui-widget-content')
-			.hide().appendTo('body');
-		self.uiDialog.remove();
-
-		if (self.originalTitle) {
-			self.element.attr('title', self.originalTitle);
-		}
-
-		return self;
-	},
-
-	widget: function() {
-		return this.uiDialog;
-	},
-
-	close: function(event) {
-		var self = this,
-			maxZ, thisZ;
-		
-		if (false === self._trigger('beforeClose', event)) {
-			return;
-		}
-
-		if (self.overlay) {
-			self.overlay.destroy();
-		}
-		self.uiDialog.unbind('keypress.ui-dialog');
-
-		self._isOpen = false;
-
-		if (self.options.hide) {
-			self.uiDialog.hide(self.options.hide, function() {
-				self._trigger('close', event);
-			});
-		} else {
-			self.uiDialog.hide();
-			self._trigger('close', event);
-		}
-
-		$.ui.dialog.overlay.resize();
-
-		// adjust the maxZ to allow other modal dialogs to continue to work (see #4309)
-		if (self.options.modal) {
-			maxZ = 0;
-			$('.ui-dialog').each(function() {
-				if (this !== self.uiDialog[0]) {
-					thisZ = $(this).css('z-index');
-					if(!isNaN(thisZ)) {
-						maxZ = Math.max(maxZ, thisZ);
-					}
-				}
-			});
-			$.ui.dialog.maxZ = maxZ;
-		}
-
-		return self;
-	},
-
-	isOpen: function() {
-		return this._isOpen;
-	},
-
-	// the force parameter allows us to move modal dialogs to their correct
-	// position on open
-	moveToTop: function(force, event) {
-		var self = this,
-			options = self.options,
-			saveScroll;
-
-		if ((options.modal && !force) ||
-			(!options.stack && !options.modal)) {
-			return self._trigger('focus', event);
-		}
-
-		if (options.zIndex > $.ui.dialog.maxZ) {
-			$.ui.dialog.maxZ = options.zIndex;
-		}
-		if (self.overlay) {
-			$.ui.dialog.maxZ += 1;
-			self.overlay.$el.css('z-index', $.ui.dialog.overlay.maxZ = $.ui.dialog.maxZ);
-		}
-
-		//Save and then restore scroll since Opera 9.5+ resets when parent z-Index is changed.
-		//  http://ui.jquery.com/bugs/ticket/3193
-		saveScroll = { scrollTop: self.element.scrollTop(), scrollLeft: self.element.scrollLeft() };
-		$.ui.dialog.maxZ += 1;
-		self.uiDialog.css('z-index', $.ui.dialog.maxZ);
-		self.element.attr(saveScroll);
-		self._trigger('focus', event);
-
-		return self;
-	},
-
-	open: function() {
-		if (this._isOpen) { return; }
-
-		var self = this,
-			options = self.options,
-			uiDialog = self.uiDialog;
-
-		self.overlay = options.modal ? new $.ui.dialog.overlay(self) : null;
-		self._size();
-		self._position(options.position);
-		uiDialog.show(options.show);
-		self.moveToTop(true);
-
-		// prevent tabbing out of modal dialogs
-		if (options.modal) {
-			uiDialog.bind('keypress.ui-dialog', function(event) {
-				if (event.keyCode !== $.ui.keyCode.TAB) {
-					return;
-				}
-
-				var tabbables = $(':tabbable', this),
-					first = tabbables.filter(':first'),
-					last  = tabbables.filter(':last');
-
-				if (event.target === last[0] && !event.shiftKey) {
-					first.focus(1);
-					return false;
-				} else if (event.target === first[0] && event.shiftKey) {
-					last.focus(1);
-					return false;
-				}
-			});
-		}
-
-		// set focus to the first tabbable element in the content area or the first button
-		// if there are no tabbable elements, set focus on the dialog itself
-		$(self.element.find(':tabbable').get().concat(
-			uiDialog.find('.ui-dialog-buttonpane :tabbable').get().concat(
-				uiDialog.get()))).eq(0).focus();
-
-		self._isOpen = true;
-		self._trigger('open');
-
-		return self;
-	},
-
-	_createButtons: function(buttons) {
-		var self = this,
-			hasButtons = false,
-			uiDialogButtonPane = $('<div></div>')
-				.addClass(
-					'ui-dialog-buttonpane ' +
-					'ui-widget-content ' +
-					'ui-helper-clearfix'
-				),
-			uiButtonSet = $( "<div></div>" )
-				.addClass( "ui-dialog-buttonset" )
-				.appendTo( uiDialogButtonPane );
-
-		// if we already have a button pane, remove it
-		self.uiDialog.find('.ui-dialog-buttonpane').remove();
-
-		if (typeof buttons === 'object' && buttons !== null) {
-			$.each(buttons, function() {
-				return !(hasButtons = true);
-			});
-		}
-		if (hasButtons) {
-			$.each(buttons, function(name, props) {
-				props = $.isFunction( props ) ?
-					{ click: props, text: name } :
-					props;
-				var button = $('<button type="button"></button>')
-					.click(function() {
-						props.click.apply(self.element[0], arguments);
-					})
-					.appendTo(uiButtonSet);
-				// can't use .attr( props, true ) with jQuery 1.3.2.
-				$.each( props, function( key, value ) {
-					if ( key === "click" ) {
-						return;
-					}
-					if ( key in attrFn ) {
-						button[ key ]( value );
-					} else {
-						button.attr( key, value );
-					}
-				});
-				if ($.fn.button) {
-					button.button();
-				}
-			});
-			uiDialogButtonPane.appendTo(self.uiDialog);
-		}
-	},
-
-	_makeDraggable: function() {
-		var self = this,
-			options = self.options,
-			doc = $(document),
-			heightBeforeDrag;
-
-		function filteredUi(ui) {
-			return {
-				position: ui.position,
-				offset: ui.offset
-			};
-		}
-
-		self.uiDialog.draggable({
-			cancel: '.ui-dialog-content, .ui-dialog-titlebar-close',
-			handle: '.ui-dialog-titlebar',
-			containment: 'document',
-			start: function(event, ui) {
-				heightBeforeDrag = options.height === "auto" ? "auto" : $(this).height();
-				$(this).height($(this).height()).addClass("ui-dialog-dragging");
-				self._trigger('dragStart', event, filteredUi(ui));
-			},
-			drag: function(event, ui) {
-				self._trigger('drag', event, filteredUi(ui));
-			},
-			stop: function(event, ui) {
-				options.position = [ui.position.left - doc.scrollLeft(),
-					ui.position.top - doc.scrollTop()];
-				$(this).removeClass("ui-dialog-dragging").height(heightBeforeDrag);
-				self._trigger('dragStop', event, filteredUi(ui));
-				$.ui.dialog.overlay.resize();
-			}
-		});
-	},
-
-	_makeResizable: function(handles) {
-		handles = (handles === undefined ? this.options.resizable : handles);
-		var self = this,
-			options = self.options,
-			// .ui-resizable has position: relative defined in the stylesheet
-			// but dialogs have to use absolute or fixed positioning
-			position = self.uiDialog.css('position'),
-			resizeHandles = (typeof handles === 'string' ?
-				handles	:
-				'n,e,s,w,se,sw,ne,nw'
-			);
-
-		function filteredUi(ui) {
-			return {
-				originalPosition: ui.originalPosition,
-				originalSize: ui.originalSize,
-				position: ui.position,
-				size: ui.size
-			};
-		}
-
-		self.uiDialog.resizable({
-			cancel: '.ui-dialog-content',
-			containment: 'document',
-			alsoResize: self.element,
-			maxWidth: options.maxWidth,
-			maxHeight: options.maxHeight,
-			minWidth: options.minWidth,
-			minHeight: self._minHeight(),
-			handles: resizeHandles,
-			start: function(event, ui) {
-				$(this).addClass("ui-dialog-resizing");
-				self._trigger('resizeStart', event, filteredUi(ui));
-			},
-			resize: function(event, ui) {
-				self._trigger('resize', event, filteredUi(ui));
-			},
-			stop: function(event, ui) {
-				$(this).removeClass("ui-dialog-resizing");
-				options.height = $(this).height();
-				options.width = $(this).width();
-				self._trigger('resizeStop', event, filteredUi(ui));
-				$.ui.dialog.overlay.resize();
-			}
-		})
-		.css('position', position)
-		.find('.ui-resizable-se').addClass('ui-icon ui-icon-grip-diagonal-se');
-	},
-
-	_minHeight: function() {
-		var options = this.options;
-
-		if (options.height === 'auto') {
-			return options.minHeight;
-		} else {
-			return Math.min(options.minHeight, options.height);
-		}
-	},
-
-	_position: function(position) {
-		var myAt = [],
-			offset = [0, 0],
-			isVisible;
-
-		if (position) {
-			// deep extending converts arrays to objects in jQuery <= 1.3.2 :-(
-	//		if (typeof position == 'string' || $.isArray(position)) {
-	//			myAt = $.isArray(position) ? position : position.split(' ');
-
-			if (typeof position === 'string' || (typeof position === 'object' && '0' in position)) {
-				myAt = position.split ? position.split(' ') : [position[0], position[1]];
-				if (myAt.length === 1) {
-					myAt[1] = myAt[0];
-				}
-
-				$.each(['left', 'top'], function(i, offsetPosition) {
-					if (+myAt[i] === myAt[i]) {
-						offset[i] = myAt[i];
-						myAt[i] = offsetPosition;
-					}
-				});
-
-				position = {
-					my: myAt.join(" "),
-					at: myAt.join(" "),
-					offset: offset.join(" ")
-				};
-			} 
-
-			position = $.extend({}, $.ui.dialog.prototype.options.position, position);
-		} else {
-			position = $.ui.dialog.prototype.options.position;
-		}
-
-		// need to show the dialog to get the actual offset in the position plugin
-		isVisible = this.uiDialog.is(':visible');
-		if (!isVisible) {
-			this.uiDialog.show();
-		}
-		this.uiDialog
-			// workaround for jQuery bug #5781 http://dev.jquery.com/ticket/5781
-			.css({ top: 0, left: 0 })
-			.position($.extend({ of: window }, position));
-		if (!isVisible) {
-			this.uiDialog.hide();
-		}
-	},
-
-	_setOptions: function( options ) {
-		var self = this,
-			resizableOptions = {},
-			resize = false;
-
-		$.each( options, function( key, value ) {
-			self._setOption( key, value );
-			
-			if ( key in sizeRelatedOptions ) {
-				resize = true;
-			}
-			if ( key in resizableRelatedOptions ) {
-				resizableOptions[ key ] = value;
-			}
-		});
-
-		if ( resize ) {
-			this._size();
-		}
-		if ( this.uiDialog.is( ":data(resizable)" ) ) {
-			this.uiDialog.resizable( "option", resizableOptions );
-		}
-	},
-
-	_setOption: function(key, value){
-		var self = this,
-			uiDialog = self.uiDialog;
-
-		switch (key) {
-			//handling of deprecated beforeclose (vs beforeClose) option
-			//Ticket #4669 http://dev.jqueryui.com/ticket/4669
-			//TODO: remove in 1.9pre
-			case "beforeclose":
-				key = "beforeClose";
-				break;
-			case "buttons":
-				self._createButtons(value);
-				break;
-			case "closeText":
-				// ensure that we always pass a string
-				self.uiDialogTitlebarCloseText.text("" + value);
-				break;
-			case "dialogClass":
-				uiDialog
-					.removeClass(self.options.dialogClass)
-					.addClass(uiDialogClasses + value);
-				break;
-			case "disabled":
-				if (value) {
-					uiDialog.addClass('ui-dialog-disabled');
-				} else {
-					uiDialog.removeClass('ui-dialog-disabled');
-				}
-				break;
-			case "draggable":
-				var isDraggable = uiDialog.is( ":data(draggable)" );
-				if ( isDraggable && !value ) {
-					uiDialog.draggable( "destroy" );
-				}
-				
-				if ( !isDraggable && value ) {
-					self._makeDraggable();
-				}
-				break;
-			case "position":
-				self._position(value);
-				break;
-			case "resizable":
-				// currently resizable, becoming non-resizable
-				var isResizable = uiDialog.is( ":data(resizable)" );
-				if (isResizable && !value) {
-					uiDialog.resizable('destroy');
-				}
-
-				// currently resizable, changing handles
-				if (isResizable && typeof value === 'string') {
-					uiDialog.resizable('option', 'handles', value);
-				}
-
-				// currently non-resizable, becoming resizable
-				if (!isResizable && value !== false) {
-					self._makeResizable(value);
-				}
-				break;
-			case "title":
-				// convert whatever was passed in o a string, for html() to not throw up
-				$(".ui-dialog-title", self.uiDialogTitlebar).html("" + (value || '&#160;'));
-				break;
-		}
-
-		$.Widget.prototype._setOption.apply(self, arguments);
-	},
-
-	_size: function() {
-		/* If the user has resized the dialog, the .ui-dialog and .ui-dialog-content
-		 * divs will both have width and height set, so we need to reset them
-		 */
-		var options = this.options,
-			nonContentHeight,
-			minContentHeight,
-			isVisible = this.uiDialog.is( ":visible" );
-
-		// reset content sizing
-		this.element.show().css({
-			width: 'auto',
-			minHeight: 0,
-			height: 0
-		});
-
-		if (options.minWidth > options.width) {
-			options.width = options.minWidth;
-		}
-
-		// reset wrapper sizing
-		// determine the height of all the non-content elements
-		nonContentHeight = this.uiDialog.css({
-				height: 'auto',
-				width: options.width
-			})
-			.height();
-		minContentHeight = Math.max( 0, options.minHeight - nonContentHeight );
-		
-		if ( options.height === "auto" ) {
-			// only needed for IE6 support
-			if ( $.support.minHeight ) {
-				this.element.css({
-					minHeight: minContentHeight,
-					height: "auto"
-				});
-			} else {
-				this.uiDialog.show();
-				var autoHeight = this.element.css( "height", "auto" ).height();
-				if ( !isVisible ) {
-					this.uiDialog.hide();
-				}
-				this.element.height( Math.max( autoHeight, minContentHeight ) );
-			}
-		} else {
-			this.element.height( Math.max( options.height - nonContentHeight, 0 ) );
-		}
-
-		if (this.uiDialog.is(':data(resizable)')) {
-			this.uiDialog.resizable('option', 'minHeight', this._minHeight());
-		}
-	}
-});
-
-$.extend($.ui.dialog, {
-	version: "1.8.16",
-
-	uuid: 0,
-	maxZ: 0,
-
-	getTitleId: function($el) {
-		var id = $el.attr('id');
-		if (!id) {
-			this.uuid += 1;
-			id = this.uuid;
-		}
-		return 'ui-dialog-title-' + id;
-	},
-
-	overlay: function(dialog) {
-		this.$el = $.ui.dialog.overlay.create(dialog);
-	}
-});
-
-$.extend($.ui.dialog.overlay, {
-	instances: [],
-	// reuse old instances due to IE memory leak with alpha transparency (see #5185)
-	oldInstances: [],
-	maxZ: 0,
-	events: $.map('focus,mousedown,mouseup,keydown,keypress,click'.split(','),
-		function(event) { return event + '.dialog-overlay'; }).join(' '),
-	create: function(dialog) {
-		if (this.instances.length === 0) {
-			// prevent use of anchors and inputs
-			// we use a setTimeout in case the overlay is created from an
-			// event that we're going to be cancelling (see #2804)
-			setTimeout(function() {
-				// handle $(el).dialog().dialog('close') (see #4065)
-				if ($.ui.dialog.overlay.instances.length) {
-					$(document).bind($.ui.dialog.overlay.events, function(event) {
-						// stop events if the z-index of the target is < the z-index of the overlay
-						// we cannot return true when we don't want to cancel the event (#3523)
-						if ($(event.target).zIndex() < $.ui.dialog.overlay.maxZ) {
-							return false;
-						}
-					});
-				}
-			}, 1);
-
-			// allow closing by pressing the escape key
-			$(document).bind('keydown.dialog-overlay', function(event) {
-				if (dialog.options.closeOnEscape && !event.isDefaultPrevented() && event.keyCode &&
-					event.keyCode === $.ui.keyCode.ESCAPE) {
-					
-					dialog.close(event);
-					event.preventDefault();
-				}
-			});
-
-			// handle window resize
-			$(window).bind('resize.dialog-overlay', $.ui.dialog.overlay.resize);
-		}
-
-		var $el = (this.oldInstances.pop() || $('<div></div>').addClass('ui-widget-overlay'))
-			.appendTo(document.body)
-			.css({
-				width: this.width(),
-				height: this.height()
-			});
-
-		if ($.fn.bgiframe) {
-			$el.bgiframe();
-		}
-
-		this.instances.push($el);
-		return $el;
-	},
-
-	destroy: function($el) {
-		var indexOf = $.inArray($el, this.instances);
-		if (indexOf != -1){
-			this.oldInstances.push(this.instances.splice(indexOf, 1)[0]);
-		}
-
-		if (this.instances.length === 0) {
-			$([document, window]).unbind('.dialog-overlay');
-		}
-
-		$el.remove();
-		
-		// adjust the maxZ to allow other modal dialogs to continue to work (see #4309)
-		var maxZ = 0;
-		$.each(this.instances, function() {
-			maxZ = Math.max(maxZ, this.css('z-index'));
-		});
-		this.maxZ = maxZ;
-	},
-
-	height: function() {
-		var scrollHeight,
-			offsetHeight;
-		// handle IE 6
-		if ($.browser.msie && $.browser.version < 7) {
-			scrollHeight = Math.max(
-				document.documentElement.scrollHeight,
-				document.body.scrollHeight
-			);
-			offsetHeight = Math.max(
-				document.documentElement.offsetHeight,
-				document.body.offsetHeight
-			);
-
-			if (scrollHeight < offsetHeight) {
-				return $(window).height() + 'px';
-			} else {
-				return scrollHeight + 'px';
-			}
-		// handle "good" browsers
-		} else {
-			return $(document).height() + 'px';
-		}
-	},
-
-	width: function() {
-		var scrollWidth,
-			offsetWidth;
-		// handle IE
-		if ( $.browser.msie ) {
-			scrollWidth = Math.max(
-				document.documentElement.scrollWidth,
-				document.body.scrollWidth
-			);
-			offsetWidth = Math.max(
-				document.documentElement.offsetWidth,
-				document.body.offsetWidth
-			);
-
-			if (scrollWidth < offsetWidth) {
-				return $(window).width() + 'px';
-			} else {
-				return scrollWidth + 'px';
-			}
-		// handle "good" browsers
-		} else {
-			return $(document).width() + 'px';
-		}
-	},
-
-	resize: function() {
-		/* If the dialog is draggable and the user drags it past the
-		 * right edge of the window, the document becomes wider so we
-		 * need to stretch the overlay. If the user then drags the
-		 * dialog back to the left, the document will become narrower,
-		 * so we need to shrink the overlay to the appropriate size.
-		 * This is handled by shrinking the overlay before setting it
-		 * to the full document size.
-		 */
-		var $overlays = $([]);
-		$.each($.ui.dialog.overlay.instances, function() {
-			$overlays = $overlays.add(this);
-		});
-
-		$overlays.css({
-			width: 0,
-			height: 0
-		}).css({
-			width: $.ui.dialog.overlay.width(),
-			height: $.ui.dialog.overlay.height()
-		});
-	}
-});
-
-$.extend($.ui.dialog.overlay.prototype, {
-	destroy: function() {
-		$.ui.dialog.overlay.destroy(this.$el);
-	}
-});
-
-}(jQuery));
-/*
- * jQuery UI Position 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/Position
- */
-(function( $, undefined ) {
-
-$.ui = $.ui || {};
-
-var horizontalPositions = /left|center|right/,
-	verticalPositions = /top|center|bottom/,
-	center = "center",
-	_position = $.fn.position,
-	_offset = $.fn.offset;
-
-$.fn.position = function( options ) {
-	if ( !options || !options.of ) {
-		return _position.apply( this, arguments );
-	}
-
-	// make a copy, we don't want to modify arguments
-	options = $.extend( {}, options );
-
-	var target = $( options.of ),
-		targetElem = target[0],
-		collision = ( options.collision || "flip" ).split( " " ),
-		offset = options.offset ? options.offset.split( " " ) : [ 0, 0 ],
-		targetWidth,
-		targetHeight,
-		basePosition;
-
-	if ( targetElem.nodeType === 9 ) {
-		targetWidth = target.width();
-		targetHeight = target.height();
-		basePosition = { top: 0, left: 0 };
-	// TODO: use $.isWindow() in 1.9
-	} else if ( targetElem.setTimeout ) {
-		targetWidth = target.width();
-		targetHeight = target.height();
-		basePosition = { top: target.scrollTop(), left: target.scrollLeft() };
-	} else if ( targetElem.preventDefault ) {
-		// force left top to allow flipping
-		options.at = "left top";
-		targetWidth = targetHeight = 0;
-		basePosition = { top: options.of.pageY, left: options.of.pageX };
-	} else {
-		targetWidth = target.outerWidth();
-		targetHeight = target.outerHeight();
-		basePosition = target.offset();
-	}
-
-	// force my and at to have valid horizontal and veritcal positions
-	// if a value is missing or invalid, it will be converted to center 
-	$.each( [ "my", "at" ], function() {
-		var pos = ( options[this] || "" ).split( " " );
-		if ( pos.length === 1) {
-			pos = horizontalPositions.test( pos[0] ) ?
-				pos.concat( [center] ) :
-				verticalPositions.test( pos[0] ) ?
-					[ center ].concat( pos ) :
-					[ center, center ];
-		}
-		pos[ 0 ] = horizontalPositions.test( pos[0] ) ? pos[ 0 ] : center;
-		pos[ 1 ] = verticalPositions.test( pos[1] ) ? pos[ 1 ] : center;
-		options[ this ] = pos;
-	});
-
-	// normalize collision option
-	if ( collision.length === 1 ) {
-		collision[ 1 ] = collision[ 0 ];
-	}
-
-	// normalize offset option
-	offset[ 0 ] = parseInt( offset[0], 10 ) || 0;
-	if ( offset.length === 1 ) {
-		offset[ 1 ] = offset[ 0 ];
-	}
-	offset[ 1 ] = parseInt( offset[1], 10 ) || 0;
-
-	if ( options.at[0] === "right" ) {
-		basePosition.left += targetWidth;
-	} else if ( options.at[0] === center ) {
-		basePosition.left += targetWidth / 2;
-	}
-
-	if ( options.at[1] === "bottom" ) {
-		basePosition.top += targetHeight;
-	} else if ( options.at[1] === center ) {
-		basePosition.top += targetHeight / 2;
-	}
-
-	basePosition.left += offset[ 0 ];
-	basePosition.top += offset[ 1 ];
-
-	return this.each(function() {
-		var elem = $( this ),
-			elemWidth = elem.outerWidth(),
-			elemHeight = elem.outerHeight(),
-			marginLeft = parseInt( $.curCSS( this, "marginLeft", true ) ) || 0,
-			marginTop = parseInt( $.curCSS( this, "marginTop", true ) ) || 0,
-			collisionWidth = elemWidth + marginLeft +
-				( parseInt( $.curCSS( this, "marginRight", true ) ) || 0 ),
-			collisionHeight = elemHeight + marginTop +
-				( parseInt( $.curCSS( this, "marginBottom", true ) ) || 0 ),
-			position = $.extend( {}, basePosition ),
-			collisionPosition;
-
-		if ( options.my[0] === "right" ) {
-			position.left -= elemWidth;
-		} else if ( options.my[0] === center ) {
-			position.left -= elemWidth / 2;
-		}
-
-		if ( options.my[1] === "bottom" ) {
-			position.top -= elemHeight;
-		} else if ( options.my[1] === center ) {
-			position.top -= elemHeight / 2;
-		}
-
-		// prevent fractions (see #5280)
-		position.left = Math.round( position.left );
-		position.top = Math.round( position.top );
-
-		collisionPosition = {
-			left: position.left - marginLeft,
-			top: position.top - marginTop
-		};
-
-		$.each( [ "left", "top" ], function( i, dir ) {
-			if ( $.ui.position[ collision[i] ] ) {
-				$.ui.position[ collision[i] ][ dir ]( position, {
-					targetWidth: targetWidth,
-					targetHeight: targetHeight,
-					elemWidth: elemWidth,
-					elemHeight: elemHeight,
-					collisionPosition: collisionPosition,
-					collisionWidth: collisionWidth,
-					collisionHeight: collisionHeight,
-					offset: offset,
-					my: options.my,
-					at: options.at
-				});
-			}
-		});
-
-		if ( $.fn.bgiframe ) {
-			elem.bgiframe();
-		}
-		elem.offset( $.extend( position, { using: options.using } ) );
-	});
-};
-
-$.ui.position = {
-	fit: {
-		left: function( position, data ) {
-			var win = $( window ),
-				over = data.collisionPosition.left + data.collisionWidth - win.width() - win.scrollLeft();
-			position.left = over > 0 ? position.left - over : Math.max( position.left - data.collisionPosition.left, position.left );
-		},
-		top: function( position, data ) {
-			var win = $( window ),
-				over = data.collisionPosition.top + data.collisionHeight - win.height() - win.scrollTop();
-			position.top = over > 0 ? position.top - over : Math.max( position.top - data.collisionPosition.top, position.top );
-		}
-	},
-
-	flip: {
-		left: function( position, data ) {
-			if ( data.at[0] === center ) {
-				return;
-			}
-			var win = $( window ),
-				over = data.collisionPosition.left + data.collisionWidth - win.width() - win.scrollLeft(),
-				myOffset = data.my[ 0 ] === "left" ?
-					-data.elemWidth :
-					data.my[ 0 ] === "right" ?
-						data.elemWidth :
-						0,
-				atOffset = data.at[ 0 ] === "left" ?
-					data.targetWidth :
-					-data.targetWidth,
-				offset = -2 * data.offset[ 0 ];
-			position.left += data.collisionPosition.left < 0 ?
-				myOffset + atOffset + offset :
-				over > 0 ?
-					myOffset + atOffset + offset :
-					0;
-		},
-		top: function( position, data ) {
-			if ( data.at[1] === center ) {
-				return;
-			}
-			var win = $( window ),
-				over = data.collisionPosition.top + data.collisionHeight - win.height() - win.scrollTop(),
-				myOffset = data.my[ 1 ] === "top" ?
-					-data.elemHeight :
-					data.my[ 1 ] === "bottom" ?
-						data.elemHeight :
-						0,
-				atOffset = data.at[ 1 ] === "top" ?
-					data.targetHeight :
-					-data.targetHeight,
-				offset = -2 * data.offset[ 1 ];
-			position.top += data.collisionPosition.top < 0 ?
-				myOffset + atOffset + offset :
-				over > 0 ?
-					myOffset + atOffset + offset :
-					0;
-		}
-	}
-};
-
-// offset setter from jQuery 1.4
-if ( !$.offset.setOffset ) {
-	$.offset.setOffset = function( elem, options ) {
-		// set position first, in-case top/left are set even on static elem
-		if ( /static/.test( $.curCSS( elem, "position" ) ) ) {
-			elem.style.position = "relative";
-		}
-		var curElem   = $( elem ),
-			curOffset = curElem.offset(),
-			curTop    = parseInt( $.curCSS( elem, "top",  true ), 10 ) || 0,
-			curLeft   = parseInt( $.curCSS( elem, "left", true ), 10)  || 0,
-			props     = {
-				top:  (options.top  - curOffset.top)  + curTop,
-				left: (options.left - curOffset.left) + curLeft
-			};
-		
-		if ( 'using' in options ) {
-			options.using.call( elem, props );
-		} else {
-			curElem.css( props );
-		}
-	};
-
-	$.fn.offset = function( options ) {
-		var elem = this[ 0 ];
-		if ( !elem || !elem.ownerDocument ) { return null; }
-		if ( options ) { 
-			return this.each(function() {
-				$.offset.setOffset( this, options );
-			});
-		}
-		return _offset.call( this );
-	};
-}
-
-}( jQuery ));
-/*
- * jQuery UI Progressbar 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/Progressbar
- *
- * Depends:
- *   jquery.ui.core.js
- *   jquery.ui.widget.js
- */
-(function( $, undefined ) {
-
-$.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 = $( "<div class='ui-progressbar-value ui-widget-header ui-corner-left'></div>" )
-			.appendTo( this.element );
-
-		this.oldValue = this._value();
-		this._refreshValue();
-	},
-
-	destroy: function() {
-		this.element
-			.removeClass( "ui-progressbar ui-widget ui-widget-content ui-corner-all" )
-			.removeAttr( "role" )
-			.removeAttr( "aria-valuemin" )
-			.removeAttr( "aria-valuemax" )
-			.removeAttr( "aria-valuenow" );
-
-		this.valueDiv.remove();
-
-		$.Widget.prototype.destroy.apply( this, arguments );
-	},
-
-	value: function( newValue ) {
-		if ( newValue === undefined ) {
-			return this._value();
-		}
-
-		this._setOption( "value", newValue );
-		return this;
-	},
-
-	_setOption: function( key, value ) {
-		if ( key === "value" ) {
-			this.options.value = value;
-			this._refreshValue();
-			if ( this._value() === this.options.max ) {
-				this._trigger( "complete" );
-			}
-		}
-
-		$.Widget.prototype._setOption.apply( this, arguments );
-	},
-
-	_value: function() {
-		var val = this.options.value;
-		// normalize invalid value
-		if ( typeof val !== "number" ) {
-			val = 0;
-		}
-		return Math.min( this.options.max, Math.max( this.min, val ) );
-	},
-
-	_percentage: function() {
-		return 100 * this._value() / this.options.max;
-	},
-
-	_refreshValue: function() {
-		var value = this.value();
-		var percentage = this._percentage();
-
-		if ( this.oldValue !== value ) {
-			this.oldValue = value;
-			this._trigger( "change" );
-		}
-
-		this.valueDiv
-			.toggle( value > this.min )
-			.toggleClass( "ui-corner-right", value === this.options.max )
-			.width( percentage.toFixed(0) + "%" );
-		this.element.attr( "aria-valuenow", value );
-	}
-});
-
-$.extend( $.ui.progressbar, {
-	version: "1.8.16"
-});
-
-})( 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( $, undefined ) {
-
-// number of pages in a slider
-// (how many times can you page up/down to go through the whole range)
-var numPages = 5;
-
-$.widget( "ui.slider", $.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 self = this,
-			o = this.options,
-			existingHandles = this.element.find( ".ui-slider-handle" ).addClass( "ui-state-default ui-corner-all" ),
-			handle = "<a class='ui-slider-handle ui-state-default ui-corner-all' href='#'></a>",
-			handleCount = ( o.values && o.values.length ) || 1,
-			handles = [];
-
-		this._keySliding = false;
-		this._mouseSliding = 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" +
-				( o.disabled ? " ui-slider-disabled ui-disabled" : "" ) );
-
-		this.range = $([]);
-
-		if ( o.range ) {
-			if ( o.range === true ) {
-				if ( !o.values ) {
-					o.values = [ this._valueMin(), this._valueMin() ];
-				}
-				if ( o.values.length && o.values.length !== 2 ) {
-					o.values = [ o.values[0], o.values[0] ];
-				}
-			}
-
-			this.range = $( "<div></div>" )
-				.appendTo( this.element )
-				.addClass( "ui-slider-range" +
-				// note: this isn't the most fittingly semantic framework class for this element,
-				// but worked best visually with a variety of themes
-				" ui-widget-header" + 
-				( ( o.range === "min" || o.range === "max" ) ? " ui-slider-range-" + o.range : "" ) );
-		}
-
-		for ( var i = existingHandles.length; i < handleCount; i += 1 ) {
-			handles.push( handle );
-		}
-
-		this.handles = existingHandles.add( $( handles.join( "" ) ).appendTo( self.element ) );
-
-		this.handle = this.handles.eq( 0 );
-
-		this.handles.add( this.range ).filter( "a" )
-			.click(function( event ) {
-				event.preventDefault();
-			})
-			.hover(function() {
-				if ( !o.disabled ) {
-					$( this ).addClass( "ui-state-hover" );
-				}
-			}, function() {
-				$( this ).removeClass( "ui-state-hover" );
-			})
-			.focus(function() {
-				if ( !o.disabled ) {
-					$( ".ui-slider .ui-state-focus" ).removeClass( "ui-state-focus" );
-					$( this ).addClass( "ui-state-focus" );
-				} else {
-					$( this ).blur();
-				}
-			})
-			.blur(function() {
-				$( this ).removeClass( "ui-state-focus" );
-			});
-
-		this.handles.each(function( i ) {
-			$( this ).data( "index.ui-slider-handle", i );
-		});
-
-		this.handles
-			.keydown(function( event ) {
-				var ret = true,
-					index = $( this ).data( "index.ui-slider-handle" ),
-					allowed,
-					curVal,
-					newVal,
-					step;
-	
-				if ( self.options.disabled ) {
-					return;
-				}
-	
-				switch ( event.keyCode ) {
-					case $.ui.keyCode.HOME:
-					case $.ui.keyCode.END:
-					case $.ui.keyCode.PAGE_UP:
-					case $.ui.keyCode.PAGE_DOWN:
-					case $.ui.keyCode.UP:
-					case $.ui.keyCode.RIGHT:
-					case $.ui.keyCode.DOWN:
-					case $.ui.keyCode.LEFT:
-						ret = false;
-						if ( !self._keySliding ) {
-							self._keySliding = true;
-							$( this ).addClass( "ui-state-active" );
-							allowed = self._start( event, index );
-							if ( allowed === false ) {
-								return;
-							}
-						}
-						break;
-				}
-	
-				step = self.options.step;
-				if ( self.options.values && self.options.values.length ) {
-					curVal = newVal = self.values( index );
-				} else {
-					curVal = newVal = self.value();
-				}
-	
-				switch ( event.keyCode ) {
-					case $.ui.keyCode.HOME:
-						newVal = self._valueMin();
-						break;
-					case $.ui.keyCode.END:
-						newVal = self._valueMax();
-						break;
-					case $.ui.keyCode.PAGE_UP:
-						newVal = self._trimAlignValue( curVal + ( (self._valueMax() - self._valueMin()) / numPages ) );
-						break;
-					case $.ui.keyCode.PAGE_DOWN:
-						newVal = self._trimAlignValue( curVal - ( (self._valueMax() - self._valueMin()) / numPages ) );
-						break;
-					case $.ui.keyCode.UP:
-					case $.ui.keyCode.RIGHT:
-						if ( curVal === self._valueMax() ) {
-							return;
-						}
-						newVal = self._trimAlignValue( curVal + step );
-						break;
-					case $.ui.keyCode.DOWN:
-					case $.ui.keyCode.LEFT:
-						if ( curVal === self._valueMin() ) {
-							return;
-						}
-						newVal = self._trimAlignValue( curVal - step );
-						break;
-				}
-	
-				self._slide( event, index, newVal );
-	
-				return ret;
-	
-			})
-			.keyup(function( event ) {
-				var index = $( this ).data( "index.ui-slider-handle" );
-	
-				if ( self._keySliding ) {
-					self._keySliding = false;
-					self._stop( event, index );
-					self._change( event, index );
-					$( 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( event ) {
-		var o = this.options,
-			position,
-			normValue,
-			distance,
-			closestHandle,
-			self,
-			index,
-			allowed,
-			offset,
-			mouseOverHandle;
-
-		if ( o.disabled ) {
-			return false;
-		}
-
-		this.elementSize = {
-			width: this.element.outerWidth(),
-			height: this.element.outerHeight()
-		};
-		this.elementOffset = this.element.offset();
-
-		position = { x: event.pageX, y: event.pageY };
-		normValue = this._normValueFromMouse( position );
-		distance = this._valueMax() - this._valueMin() + 1;
-		self = this;
-		this.handles.each(function( i ) {
-			var thisDistance = Math.abs( normValue - self.values(i) );
-			if ( distance > thisDistance ) {
-				distance = thisDistance;
-				closestHandle = $( this );
-				index = i;
-			}
-		});
-
-		// workaround for bug #3736 (if both handles of a range are at 0,
-		// the first is always used as the one with least distance,
-		// and moving it is obviously prevented by preventing negative ranges)
-		if( o.range === true && this.values(1) === o.min ) {
-			index += 1;
-			closestHandle = $( this.handles[index] );
-		}
-
-		allowed = this._start( event, index );
-		if ( allowed === false ) {
-			return false;
-		}
-		this._mouseSliding = true;
-
-		self._handleIndex = index;
-
-		closestHandle
-			.addClass( "ui-state-active" )
-			.focus();
-		
-		offset = closestHandle.offset();
-		mouseOverHandle = !$( event.target ).parents().andSelf().is( ".ui-slider-handle" );
-		this._clickOffset = mouseOverHandle ? { left: 0, top: 0 } : {
-			left: event.pageX - offset.left - ( closestHandle.width() / 2 ),
-			top: event.pageY - offset.top -
-				( closestHandle.height() / 2 ) -
-				( parseInt( closestHandle.css("borderTopWidth"), 10 ) || 0 ) -
-				( parseInt( closestHandle.css("borderBottomWidth"), 10 ) || 0) +
-				( parseInt( closestHandle.css("marginTop"), 10 ) || 0)
-		};
-
-		if ( !this.handles.hasClass( "ui-state-hover" ) ) {
-			this._slide( event, index, normValue );
-		}
-		this._animateOff = true;
-		return true;
-	},
-
-	_mouseStart: function( event ) {
-		return true;
-	},
-
-	_mouseDrag: function( event ) {
-		var position = { x: event.pageX, y: event.pageY },
-			normValue = this._normValueFromMouse( position );
-		
-		this._slide( event, this._handleIndex, normValue );
-
-		return false;
-	},
-
-	_mouseStop: function( event ) {
-		this.handles.removeClass( "ui-state-active" );
-		this._mouseSliding = false;
-
-		this._stop( event, this._handleIndex );
-		this._change( event, this._handleIndex );
-
-		this._handleIndex = null;
-		this._clickOffset = null;
-		this._animateOff = false;
-
-		return false;
-	},
-	
-	_detectOrientation: function() {
-		this.orientation = ( this.options.orientation === "vertical" ) ? "vertical" : "horizontal";
-	},
-
-	_normValueFromMouse: function( position ) {
-		var pixelTotal,
-			pixelMouse,
-			percentMouse,
-			valueTotal,
-			valueMouse;
-
-		if ( this.orientation === "horizontal" ) {
-			pixelTotal = this.elementSize.width;
-			pixelMouse = position.x - this.elementOffset.left - ( this._clickOffset ? this._clickOffset.left : 0 );
-		} else {
-			pixelTotal = this.elementSize.height;
-			pixelMouse = position.y - this.elementOffset.top - ( this._clickOffset ? this._clickOffset.top : 0 );
-		}
-
-		percentMouse = ( pixelMouse / pixelTotal );
-		if ( percentMouse > 1 ) {
-			percentMouse = 1;
-		}
-		if ( percentMouse < 0 ) {
-			percentMouse = 0;
-		}
-		if ( this.orientation === "vertical" ) {
-			percentMouse = 1 - percentMouse;
-		}
-
-		valueTotal = this._valueMax() - this._valueMin();
-		valueMouse = this._valueMin() + percentMouse * valueTotal;
-
-		return this._trimAlignValue( valueMouse );
-	},
-
-	_start: function( event, index ) {
-		var uiHash = {
-			handle: this.handles[ index ],
-			value: this.value()
-		};
-		if ( this.options.values && this.options.values.length ) {
-			uiHash.value = this.values( index );
-			uiHash.values = this.values();
-		}
-		return this._trigger( "start", event, uiHash );
-	},
-
-	_slide: function( event, index, newVal ) {
-		var otherVal,
-			newValues,
-			allowed;
-
-		if ( this.options.values && this.options.values.length ) {
-			otherVal = this.values( index ? 0 : 1 );
-
-			if ( ( this.options.values.length === 2 && this.options.range === true ) && 
-					( ( index === 0 && newVal > otherVal) || ( index === 1 && newVal < otherVal ) )
-				) {
-				newVal = otherVal;
-			}
-
-			if ( newVal !== this.values( index ) ) {
-				newValues = this.values();
-				newValues[ index ] = newVal;
-				// A slide can be canceled by returning false from the slide callback
-				allowed = this._trigger( "slide", event, {
-					handle: this.handles[ index ],
-					value: newVal,
-					values: newValues
-				} );
-				otherVal = this.values( index ? 0 : 1 );
-				if ( allowed !== false ) {
-					this.values( index, newVal, true );
-				}
-			}
-		} else {
-			if ( newVal !== this.value() ) {
-				// A slide can be canceled by returning false from the slide callback
-				allowed = this._trigger( "slide", event, {
-					handle: this.handles[ index ],
-					value: newVal
-				} );
-				if ( allowed !== false ) {
-					this.value( newVal );
-				}
-			}
-		}
-	},
-
-	_stop: function( event, index ) {
-		var uiHash = {
-			handle: this.handles[ index ],
-			value: this.value()
-		};
-		if ( this.options.values && this.options.values.length ) {
-			uiHash.value = this.values( index );
-			uiHash.values = this.values();
-		}
-
-		this._trigger( "stop", event, uiHash );
-	},
-
-	_change: function( event, index ) {
-		if ( !this._keySliding && !this._mouseSliding ) {
-			var uiHash = {
-				handle: this.handles[ index ],
-				value: this.value()
-			};
-			if ( this.options.values && this.options.values.length ) {
-				uiHash.value = this.values( index );
-				uiHash.values = this.values();
-			}
-
-			this._trigger( "change", event, uiHash );
-		}
-	},
-
-	value: function( newValue ) {
-		if ( arguments.length ) {
-			this.options.value = this._trimAlignValue( newValue );
-			this._refreshValue();
-			this._change( null, 0 );
-			return;
-		}
-
-		return this._value();
-	},
-
-	values: function( index, newValue ) {
-		var vals,
-			newValues,
-			i;
-
-		if ( arguments.length > 1 ) {
-			this.options.values[ index ] = this._trimAlignValue( newValue );
-			this._refreshValue();
-			this._change( null, index );
-			return;
-		}
-
-		if ( arguments.length ) {
-			if ( $.isArray( arguments[ 0 ] ) ) {
-				vals = this.options.values;
-				newValues = arguments[ 0 ];
-				for ( i = 0; i < vals.length; i += 1 ) {
-					vals[ i ] = this._trimAlignValue( newValues[ i ] );
-					this._change( null, i );
-				}
-				this._refreshValue();
-			} else {
-				if ( this.options.values && this.options.values.length ) {
-					return this._values( index );
-				} else {
-					return this.value();
-				}
-			}
-		} else {
-			return this._values();
-		}
-	},
-
-	_setOption: function( key, value ) {
-		var i,
-			valsLength = 0;
-
-		if ( $.isArray( this.options.values ) ) {
-			valsLength = this.options.values.length;
-		}
-
-		$.Widget.prototype._setOption.apply( this, arguments );
-
-		switch ( key ) {
-			case "disabled":
-				if ( value ) {
-					this.handles.filter( ".ui-state-focus" ).blur();
-					this.handles.removeClass( "ui-state-hover" );
-					this.handles.propAttr( "disabled", true );
-					this.element.addClass( "ui-disabled" );
-				} else {
-					this.handles.propAttr( "disabled", false );
-					this.element.removeClass( "ui-disabled" );
-				}
-				break;
-			case "orientation":
-				this._detectOrientation();
-				this.element
-					.removeClass( "ui-slider-horizontal ui-slider-vertical" )
-					.addClass( "ui-slider-" + this.orientation );
-				this._refreshValue();
-				break;
-			case "value":
-				this._animateOff = true;
-				this._refreshValue();
-				this._change( null, 0 );
-				this._animateOff = false;
-				break;
-			case "values":
-				this._animateOff = true;
-				this._refreshValue();
-				for ( i = 0; i < valsLength; i += 1 ) {
-					this._change( null, i );
-				}
-				this._animateOff = false;
-				break;
-		}
-	},
-
-	//internal value getter
-	// _value() returns value trimmed by min and max, aligned by step
-	_value: function() {
-		var val = this.options.value;
-		val = this._trimAlignValue( val );
-
-		return val;
-	},
-
-	//internal values getter
-	// _values() returns array of values trimmed by min and max, aligned by step
-	// _values( index ) returns single value trimmed by min and max, aligned by step
-	_values: function( index ) {
-		var val,
-			vals,
-			i;
-
-		if ( arguments.length ) {
-			val = this.options.values[ index ];
-			val = this._trimAlignValue( val );
-
-			return val;
-		} else {
-			// .slice() creates a copy of the array
-			// this copy gets trimmed by min and max and then returned
-			vals = this.options.values.slice();
-			for ( i = 0; i < vals.length; i+= 1) {
-				vals[ i ] = this._trimAlignValue( vals[ i ] );
-			}
-
-			return vals;
-		}
-	},
-	
-	// returns the step-aligned value that val is closest to, between (inclusive) min and max
-	_trimAlignValue: function( val ) {
-		if ( val <= this._valueMin() ) {
-			return this._valueMin();
-		}
-		if ( val >= this._valueMax() ) {
-			return this._valueMax();
-		}
-		var step = ( this.options.step > 0 ) ? this.options.step : 1,
-			valModStep = (val - this._valueMin()) % step,
-			alignValue = val - valModStep;
-
-		if ( Math.abs(valModStep) * 2 >= step ) {
-			alignValue += ( valModStep > 0 ) ? step : ( -step );
-		}
-
-		// Since JavaScript has problems with large floats, round
-		// the final value to 5 digits after the decimal point (see #4124)
-		return parseFloat( alignValue.toFixed(5) );
-	},
-
-	_valueMin: function() {
-		return this.options.min;
-	},
-
-	_valueMax: function() {
-		return this.options.max;
-	},
-	
-	_refreshValue: function() {
-		var oRange = this.options.range,
-			o = this.options,
-			self = this,
-			animate = ( !this._animateOff ) ? o.animate : false,
-			valPercent,
-			_set = {},
-			lastValPercent,
-			value,
-			valueMin,
-			valueMax;
-
-		if ( this.options.values && this.options.values.length ) {
-			this.handles.each(function( i, j ) {
-				valPercent = ( self.values(i) - self._valueMin() ) / ( self._valueMax() - self._valueMin() ) * 100;
-				_set[ self.orientation === "horizontal" ? "left" : "bottom" ] = valPercent + "%";
-				$( this ).stop( 1, 1 )[ animate ? "animate" : "css" ]( _set, o.animate );
-				if ( self.options.range === true ) {
-					if ( self.orientation === "horizontal" ) {
-						if ( i === 0 ) {
-							self.range.stop( 1, 1 )[ animate ? "animate" : "css" ]( { left: valPercent + "%" }, o.animate );
-						}
-						if ( i === 1 ) {
-							self.range[ animate ? "animate" : "css" ]( { width: ( valPercent - lastValPercent ) + "%" }, { queue: false, duration: o.animate } );
-						}
-					} else {
-						if ( i === 0 ) {
-							self.range.stop( 1, 1 )[ animate ? "animate" : "css" ]( { bottom: ( valPercent ) + "%" }, o.animate );
-						}
-						if ( i === 1 ) {
-							self.range[ animate ? "animate" : "css" ]( { height: ( valPercent - lastValPercent ) + "%" }, { queue: false, duration: o.animate } );
-						}
-					}
-				}
-				lastValPercent = valPercent;
-			});
-		} else {
-			value = this.value();
-			valueMin = this._valueMin();
-			valueMax = this._valueMax();
-			valPercent = ( valueMax !== valueMin ) ?
-					( value - valueMin ) / ( valueMax - valueMin ) * 100 :
-					0;
-			_set[ self.orientation === "horizontal" ? "left" : "bottom" ] = valPercent + "%";
-			this.handle.stop( 1, 1 )[ animate ? "animate" : "css" ]( _set, o.animate );
-
-			if ( oRange === "min" && this.orientation === "horizontal" ) {
-				this.range.stop( 1, 1 )[ animate ? "animate" : "css" ]( { width: valPercent + "%" }, o.animate );
-			}
-			if ( oRange === "max" && this.orientation === "horizontal" ) {
-				this.range[ animate ? "animate" : "css" ]( { width: ( 100 - valPercent ) + "%" }, { queue: false, duration: o.animate } );
-			}
-			if ( oRange === "min" && this.orientation === "vertical" ) {
-				this.range.stop( 1, 1 )[ animate ? "animate" : "css" ]( { height: valPercent + "%" }, o.animate );
-			}
-			if ( oRange === "max" && this.orientation === "vertical" ) {
-				this.range[ animate ? "animate" : "css" ]( { height: ( 100 - valPercent ) + "%" }, { queue: false, duration: o.animate } );
-			}
-		}
-	}
-
-});
-
-$.extend( $.ui.slider, {
-	version: "1.8.16"
-});
-
-}(jQuery));
-/*
- * jQuery UI Tabs 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/Tabs
- *
- * Depends:
- *	jquery.ui.core.js
- *	jquery.ui.widget.js
- */
-(function( $, undefined ) {
-
-var tabId = 0,
-	listId = 0;
-
-function getNextTabId() {
-	return ++tabId;
-}
-
-function getNextListId() {
-	return ++listId;
-}
-
-$.widget( "ui.tabs", {
-	options: {
-		add: null,
-		ajaxOptions: null,
-		cache: false,
-		cookie: null, // e.g. { expires: 7, path: '/', domain: 'jquery.com', secure: true }
-		collapsible: false,
-		disable: null,
-		disabled: [],
-		enable: null,
-		event: "click",
-		fx: null, // e.g. { height: 'toggle', opacity: 'toggle', duration: 200 }
-		idPrefix: "ui-tabs-",
-		load: null,
-		panelTemplate: "<div></div>",
-		remove: null,
-		select: null,
-		show: null,
-		spinner: "<em>Loading&#8230;</em>",
-		tabTemplate: "<li><a href='#{href}'><span>#{label}</span></a></li>"
-	},
-
-	_create: function() {
-		this._tabify( true );
-	},
-
-	_setOption: function( key, value ) {
-		if ( key == "selected" ) {
-			if (this.options.collapsible && value == this.options.selected ) {
-				return;
-			}
-			this.select( value );
-		} else {
-			this.options[ key ] = value;
-			this._tabify();
-		}
-	},
-
-	_tabId: function( a ) {
-		return a.title && a.title.replace( /\s/g, "_" ).replace( /[^\w\u00c0-\uFFFF-]/g, "" ) ||
-			this.options.idPrefix + getNextTabId();
-	},
-
-	_sanitizeSelector: function( hash ) {
-		// we need this because an id may contain a ":"
-		return hash.replace( /:/g, "\\:" );
-	},
-
-	_cookie: function() {
-		var cookie = this.cookie ||
-			( this.cookie = this.options.cookie.name || "ui-tabs-" + getNextListId() );
-		return $.cookie.apply( null, [ cookie ].concat( $.makeArray( arguments ) ) );
-	},
-
-	_ui: function( tab, panel ) {
-		return {
-			tab: tab,
-			panel: panel,
-			index: this.anchors.index( tab )
-		};
-	},
-
-	_cleanup: function() {
-		// restore all former loading tabs labels
-		this.lis.filter( ".ui-state-processing" )
-			.removeClass( "ui-state-processing" )
-			.find( "span:data(label.tabs)" )
-				.each(function() {
-					var el = $( this );
-					el.html( el.data( "label.tabs" ) ).removeData( "label.tabs" );
-				});
-	},
-
-	_tabify: function( init ) {
-		var self = this,
-			o = this.options,
-			fragmentId = /^#.+/; // Safari 2 reports '#' for an empty hash
-
-		this.list = this.element.find( "ol,ul" ).eq( 0 );
-		this.lis = $( " > li:has(a[href])", this.list );
-		this.anchors = this.lis.map(function() {
-			return $( "a", this )[ 0 ];
-		});
-		this.panels = $( [] );
-
-		this.anchors.each(function( i, a ) {
-			var href = $( a ).attr( "href" );
-			// For dynamically created HTML that contains a hash as href IE < 8 expands
-			// such href to the full page url with hash and then misinterprets tab as ajax.
-			// Same consideration applies for an added tab with a fragment identifier
-			// since a[href=#fragment-identifier] does unexpectedly not match.
-			// Thus normalize href attribute...
-			var hrefBase = href.split( "#" )[ 0 ],
-				baseEl;
-			if ( hrefBase && ( hrefBase === location.toString().split( "#" )[ 0 ] ||
-					( baseEl = $( "base" )[ 0 ]) && hrefBase === baseEl.href ) ) {
-				href = a.hash;
-				a.href = href;
-			}
-
-			// inline tab
-			if ( fragmentId.test( href ) ) {
-				self.panels = self.panels.add( self.element.find( self._sanitizeSelector( href ) ) );
-			// remote tab
-			// prevent loading the page itself if href is just "#"
-			} else if ( href && href !== "#" ) {
-				// required for restore on destroy
-				$.data( a, "href.tabs", href );
-
-				// TODO until #3808 is fixed strip fragment identifier from url
-				// (IE fails to load from such url)
-				$.data( a, "load.tabs", href.replace( /#.*$/, "" ) );
-
-				var id = self._tabId( a );
-				a.href = "#" + id;
-				var $panel = self.element.find( "#" + id );
-				if ( !$panel.length ) {
-					$panel = $( o.panelTemplate )
-						.attr( "id", id )
-						.addClass( "ui-tabs-panel ui-widget-content ui-corner-bottom" )
-						.insertAfter( self.panels[ i - 1 ] || self.list );
-					$panel.data( "destroy.tabs", true );
-				}
-				self.panels = self.panels.add( $panel );
-			// invalid tab href
-			} else {
-				o.disabled.push( i );
-			}
-		});
-
-		// initialization from scratch
-		if ( init ) {
-			// attach necessary classes for styling
-			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" );
-
-			// Selected tab
-			// use "selected" option or try to retrieve:
-			// 1. from fragment identifier in url
-			// 2. from cookie
-			// 3. from selected class attribute on <li>
-			if ( o.selected === undefined ) {
-				if ( location.hash ) {
-					this.anchors.each(function( i, a ) {
-						if ( a.hash == location.hash ) {
-							o.selected = i;
-							return false;
-						}
-					});
-				}
-				if ( typeof o.selected !== "number" && o.cookie ) {
-					o.selected = parseInt( self._cookie(), 10 );
-				}
-				if ( typeof o.selected !== "number" && this.lis.filter( ".ui-tabs-selected" ).length ) {
-					o.selected = this.lis.index( this.lis.filter( ".ui-tabs-selected" ) );
-				}
-				o.selected = o.selected || ( this.lis.length ? 0 : -1 );
-			} else if ( o.selected === null ) { // usage of null is deprecated, TODO remove in next release
-				o.selected = -1;
-			}
-
-			// sanity check - default to first tab...
-			o.selected = ( ( o.selected >= 0 && this.anchors[ o.selected ] ) || o.selected < 0 )
-				? o.selected
-				: 0;
-
-			// Take disabling tabs via class attribute from HTML
-			// into account and update option properly.
-			// A selected tab cannot become disabled.
-			o.disabled = $.unique( o.disabled.concat(
-				$.map( this.lis.filter( ".ui-state-disabled" ), function( n, i ) {
-					return self.lis.index( n );
-				})
-			) ).sort();
-
-			if ( $.inArray( o.selected, o.disabled ) != -1 ) {
-				o.disabled.splice( $.inArray( o.selected, o.disabled ), 1 );
-			}
-
-			// highlight selected tab
-			this.panels.addClass( "ui-tabs-hide" );
-			this.lis.removeClass( "ui-tabs-selected ui-state-active" );
-			// check for length avoids error when initializing empty list
-			if ( o.selected >= 0 && this.anchors.length ) {
-				self.element.find( self._sanitizeSelector( self.anchors[ o.selected ].hash ) ).removeClass( "ui-tabs-hide" );
-				this.lis.eq( o.selected ).addClass( "ui-tabs-selected ui-state-active" );
-
-				// seems to be expected behavior that the show callback is fired
-				self.element.queue( "tabs", function() {
-					self._trigger( "show", null,
-						self._ui( self.anchors[ o.selected ], self.element.find( self._sanitizeSelector( self.anchors[ o.selected ].hash ) )[ 0 ] ) );
-				});
-
-				this.load( o.selected );
-			}
-
-			// clean up to avoid memory leaks in certain versions of IE 6
-			// TODO: namespace this event
-			$( window ).bind( "unload", function() {
-				self.lis.add( self.anchors ).unbind( ".tabs" );
-				self.lis = self.anchors = self.panels = null;
-			});
-		// update selected after add/remove
-		} else {
-			o.selected = this.lis.index( this.lis.filter( ".ui-tabs-selected" ) );
-		}
-
-		// update collapsible
-		// TODO: use .toggleClass()
-		this.element[ o.collapsible ? "addClass" : "removeClass" ]( "ui-tabs-collapsible" );
-
-		// set or update cookie after init and add/remove respectively
-		if ( o.cookie ) {
-			this._cookie( o.selected, o.cookie );
-		}
-
-		// disable tabs
-		for ( var i = 0, li; ( li = this.lis[ i ] ); i++ ) {
-			$( li )[ $.inArray( i, o.disabled ) != -1 &&
-				// TODO: use .toggleClass()
-				!$( li ).hasClass( "ui-tabs-selected" ) ? "addClass" : "removeClass" ]( "ui-state-disabled" );
-		}
-
-		// reset cache if switching from cached to not cached
-		if ( o.cache === false ) {
-			this.anchors.removeData( "cache.tabs" );
-		}
-
-		// remove all handlers before, tabify may run on existing tabs after add or option change
-		this.lis.add( this.anchors ).unbind( ".tabs" );
-
-		if ( o.event !== "mouseover" ) {
-			var addState = function( state, el ) {
-				if ( el.is( ":not(.ui-state-disabled)" ) ) {
-					el.addClass( "ui-state-" + state );
-				}
-			};
-			var removeState = function( state, el ) {
-				el.removeClass( "ui-state-" + state );
-			};
-			this.lis.bind( "mouseover.tabs" , function() {
-				addState( "hover", $( this ) );
-			});
-			this.lis.bind( "mouseout.tabs", function() {
-				removeState( "hover", $( this ) );
-			});
-			this.anchors.bind( "focus.tabs", function() {
-				addState( "focus", $( this ).closest( "li" ) );
-			});
-			this.anchors.bind( "blur.tabs", function() {
-				removeState( "focus", $( this ).closest( "li" ) );
-			});
-		}
-
-		// set up animations
-		var hideFx, showFx;
-		if ( o.fx ) {
-			if ( $.isArray( o.fx ) ) {
-				hideFx = o.fx[ 0 ];
-				showFx = o.fx[ 1 ];
-			} else {
-				hideFx = showFx = o.fx;
-			}
-		}
-
-		// Reset certain styles left over from animation
-		// and prevent IE's ClearType bug...
-		function resetStyle( $el, fx ) {
-			$el.css( "display", "" );
-			if ( !$.support.opacity && fx.opacity ) {
-				$el[ 0 ].style.removeAttribute( "filter" );
-			}
-		}
-
-		// Show a tab...
-		var showTab = showFx
-			? function( clicked, $show ) {
-				$( clicked ).closest( "li" ).addClass( "ui-tabs-selected ui-state-active" );
-				$show.hide().removeClass( "ui-tabs-hide" ) // avoid flicker that way
-					.animate( showFx, showFx.duration || "normal", function() {
-						resetStyle( $show, showFx );
-						self._trigger( "show", null, self._ui( clicked, $show[ 0 ] ) );
-					});
-			}
-			: function( clicked, $show ) {
-				$( clicked ).closest( "li" ).addClass( "ui-tabs-selected ui-state-active" );
-				$show.removeClass( "ui-tabs-hide" );
-				self._trigger( "show", null, self._ui( clicked, $show[ 0 ] ) );
-			};
-
-		// Hide a tab, $show is optional...
-		var hideTab = hideFx
-			? function( clicked, $hide ) {
-				$hide.animate( hideFx, hideFx.duration || "normal", function() {
-					self.lis.removeClass( "ui-tabs-selected ui-state-active" );
-					$hide.addClass( "ui-tabs-hide" );
-					resetStyle( $hide, hideFx );
-					self.element.dequeue( "tabs" );
-				});
-			}
-			: function( clicked, $hide, $show ) {
-				self.lis.removeClass( "ui-tabs-selected ui-state-active" );
-				$hide.addClass( "ui-tabs-hide" );
-				self.element.dequeue( "tabs" );
-			};
-
-		// attach tab event handler, unbind to avoid duplicates from former tabifying...
-		this.anchors.bind( o.event + ".tabs", function() {
-			var el = this,
-				$li = $(el).closest( "li" ),
-				$hide = self.panels.filter( ":not(.ui-tabs-hide)" ),
-				$show = self.element.find( self._sanitizeSelector( el.hash ) );
-
-			// If tab is already selected and not collapsible or tab disabled or
-			// or is already loading or click callback returns false stop here.
-			// Check if click handler returns false last so that it is not executed
-			// for a disabled or loading tab!
-			if ( ( $li.hasClass( "ui-tabs-selected" ) && !o.collapsible) ||
-				$li.hasClass( "ui-state-disabled" ) ||
-				$li.hasClass( "ui-state-processing" ) ||
-				self.panels.filter( ":animated" ).length ||
-				self._trigger( "select", null, self._ui( this, $show[ 0 ] ) ) === false ) {
-				this.blur();
-				return false;
-			}
-
-			o.selected = self.anchors.index( this );
-
-			self.abort();
-
-			// if tab may be closed
-			if ( o.collapsible ) {
-				if ( $li.hasClass( "ui-tabs-selected" ) ) {
-					o.selected = -1;
-
-					if ( o.cookie ) {
-						self._cookie( o.selected, o.cookie );
-					}
-
-					self.element.queue( "tabs", function() {
-						hideTab( el, $hide );
-					}).dequeue( "tabs" );
-
-					this.blur();
-					return false;
-				} else if ( !$hide.length ) {
-					if ( o.cookie ) {
-						self._cookie( o.selected, o.cookie );
-					}
-
-					self.element.queue( "tabs", function() {
-						showTab( el, $show );
-					});
-
-					// TODO make passing in node possible, see also http://dev.jqueryui.com/ticket/3171
-					self.load( self.anchors.index( this ) );
-
-					this.blur();
-					return false;
-				}
-			}
-
-			if ( o.cookie ) {
-				self._cookie( o.selected, o.cookie );
-			}
-
-			// show new tab
-			if ( $show.length ) {
-				if ( $hide.length ) {
-					self.element.queue( "tabs", function() {
-						hideTab( el, $hide );
-					});
-				}
-				self.element.queue( "tabs", function() {
-					showTab( el, $show );
-				});
-
-				self.load( self.anchors.index( this ) );
-			} else {
-				throw "jQuery UI Tabs: Mismatching fragment identifier.";
-			}
-
-			// Prevent IE from keeping other link focussed when using the back button
-			// and remove dotted border from clicked link. This is controlled via CSS
-			// in modern browsers; blur() removes focus from address bar in Firefox
-			// which can become a usability and annoying problem with tabs('rotate').
-			if ( $.browser.msie ) {
-				this.blur();
-			}
-		});
-
-		// disable click in any case
-		this.anchors.bind( "click.tabs", function(){
-			return false;
-		});
-	},
-
-    _getIndex: function( index ) {
-		// meta-function to give users option to provide a href string instead of a numerical index.
-		// also sanitizes numerical indexes to valid values.
-		if ( typeof index == "string" ) {
-			index = this.anchors.index( this.anchors.filter( "[href$=" + index + "]" ) );
-		}
-
-		return index;
-	},
-
-	destroy: function() {
-		var o = 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 href = $.data( this, "href.tabs" );
-			if ( href ) {
-				this.href = href;
-			}
-			var $this = $( this ).unbind( ".tabs" );
-			$.each( [ "href", "load", "cache" ], function( i, prefix ) {
-				$this.removeData( prefix + ".tabs" );
-			});
-		});
-
-		this.lis.unbind( ".tabs" ).add( this.panels ).each(function() {
-			if ( $.data( this, "destroy.tabs" ) ) {
-				$( this ).remove();
-			} else {
-				$( 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"
-				].join( " " ) );
-			}
-		});
-
-		if ( o.cookie ) {
-			this._cookie( null, o.cookie );
-		}
-
-		return this;
-	},
-
-	add: function( url, label, index ) {
-		if ( index === undefined ) {
-			index = this.anchors.length;
-		}
-
-		var self = this,
-			o = this.options,
-			$li = $( o.tabTemplate.replace( /#\{href\}/g, url ).replace( /#\{label\}/g, label ) ),
-			id = !url.indexOf( "#" ) ? url.replace( "#", "" ) : this._tabId( $( "a", $li )[ 0 ] );
-
-		$li.addClass( "ui-state-default ui-corner-top" ).data( "destroy.tabs", true );
-
-		// try to find an existing element before creating a new one
-		var $panel = self.element.find( "#" + id );
-		if ( !$panel.length ) {
-			$panel = $( o.panelTemplate )
-				.attr( "id", id )
-				.data( "destroy.tabs", true );
-		}
-		$panel.addClass( "ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide" );
-
-		if ( index >= this.lis.length ) {
-			$li.appendTo( this.list );
-			$panel.appendTo( this.list[ 0 ].parentNode );
-		} else {
-			$li.insertBefore( this.lis[ index ] );
-			$panel.insertBefore( this.panels[ index ] );
-		}
-
-		o.disabled = $.map( o.disabled, function( n, i ) {
-			return n >= index ? ++n : n;
-		});
-
-		this._tabify();
-
-		if ( this.anchors.length == 1 ) {
-			o.selected = 0;
-			$li.addClass( "ui-tabs-selected ui-state-active" );
-			$panel.removeClass( "ui-tabs-hide" );
-			this.element.queue( "tabs", function() {
-				self._trigger( "show", null, self._ui( self.anchors[ 0 ], self.panels[ 0 ] ) );
-			});
-
-			this.load( 0 );
-		}
-
-		this._trigger( "add", null, this._ui( this.anchors[ index ], this.panels[ index ] ) );
-		return this;
-	},
-
-	remove: function( index ) {
-		index = this._getIndex( index );
-		var o = this.options,
-			$li = this.lis.eq( index ).remove(),
-			$panel = this.panels.eq( index ).remove();
-
-		// If selected tab was removed focus tab to the right or
-		// in case the last tab was removed the tab to the left.
-		if ( $li.hasClass( "ui-tabs-selected" ) && this.anchors.length > 1) {
-			this.select( index + ( index + 1 < this.anchors.length ? 1 : -1 ) );
-		}
-
-		o.disabled = $.map(
-			$.grep( o.disabled, function(n, i) {
-				return n != index;
-			}),
-			function( n, i ) {
-				return n >= index ? --n : n;
-			});
-
-		this._tabify();
-
-		this._trigger( "remove", null, this._ui( $li.find( "a" )[ 0 ], $panel[ 0 ] ) );
-		return this;
-	},
-
-	enable: function( index ) {
-		index = this._getIndex( index );
-		var o = this.options;
-		if ( $.inArray( index, o.disabled ) == -1 ) {
-			return;
-		}
-
-		this.lis.eq( index ).removeClass( "ui-state-disabled" );
-		o.disabled = $.grep( o.disabled, function( n, i ) {
-			return n != index;
-		});
-
-		this._trigger( "enable", null, this._ui( this.anchors[ index ], this.panels[ index ] ) );
-		return this;
-	},
-
-	disable: function( index ) {
-		index = this._getIndex( index );
-		var self = this, o = this.options;
-		// cannot disable already selected tab
-		if ( index != o.selected ) {
-			this.lis.eq( index ).addClass( "ui-state-disabled" );
-
-			o.disabled.push( index );
-			o.disabled.sort();
-
-			this._trigger( "disable", null, this._ui( this.anchors[ index ], this.panels[ index ] ) );
-		}
-
-		return this;
-	},
-
-	select: function( index ) {
-		index = this._getIndex( index );
-		if ( index == -1 ) {
-			if ( this.options.collapsible && this.options.selected != -1 ) {
-				index = this.options.selected;
-			} else {
-				return this;
-			}
-		}
-		this.anchors.eq( index ).trigger( this.options.event + ".tabs" );
-		return this;
-	},
-
-	load: function( index ) {
-		index = this._getIndex( index );
-		var self = this,
-			o = this.options,
-			a = this.anchors.eq( index )[ 0 ],
-			url = $.data( a, "load.tabs" );
-
-		this.abort();
-
-		// not remote or from cache
-		if ( !url || this.element.queue( "tabs" ).length !== 0 && $.data( a, "cache.tabs" ) ) {
-			this.element.dequeue( "tabs" );
-			return;
-		}
-
-		// load remote from here on
-		this.lis.eq( index ).addClass( "ui-state-processing" );
-
-		if ( o.spinner ) {
-			var span = $( "span", a );
-			span.data( "label.tabs", span.html() ).html( o.spinner );
-		}
-
-		this.xhr = $.ajax( $.extend( {}, o.ajaxOptions, {
-			url: url,
-			success: function( r, s ) {
-				self.element.find( self._sanitizeSelector( a.hash ) ).html( r );
-
-				// take care of tab labels
-				self._cleanup();
-
-				if ( o.cache ) {
-					$.data( a, "cache.tabs", true );
-				}
-
-				self._trigger( "load", null, self._ui( self.anchors[ index ], self.panels[ index ] ) );
-				try {
-					o.ajaxOptions.success( r, s );
-				}
-				catch ( e ) {}
-			},
-			error: function( xhr, s, e ) {
-				// take care of tab labels
-				self._cleanup();
-
-				self._trigger( "load", null, self._ui( self.anchors[ index ], self.panels[ index ] ) );
-				try {
-					// Passing index avoid a race condition when this method is
-					// called after the user has selected another tab.
-					// Pass the anchor that initiated this request allows
-					// loadError to manipulate the tab content panel via $(a.hash)
-					o.ajaxOptions.error( xhr, s, index, a );
-				}
-				catch ( e ) {}
-			}
-		} ) );
-
-		// last, so that load event is fired before show...
-		self.element.dequeue( "tabs" );
-
-		return this;
-	},
-
-	abort: function() {
-		// stop possibly running animations
-		this.element.queue( [] );
-		this.panels.stop( false, true );
-
-		// "tabs" queue must not contain more than two elements,
-		// which are the callbacks for the latest clicked tab...
-		this.element.queue( "tabs", this.element.queue( "tabs" ).splice( -2, 2 ) );
-
-		// terminate pending requests from other tabs
-		if ( this.xhr ) {
-			this.xhr.abort();
-			delete this.xhr;
-		}
-
-		// take care of tab labels
-		this._cleanup();
-		return this;
-	},
-
-	url: function( index, url ) {
-		this.anchors.eq( index ).removeData( "cache.tabs" ).data( "load.tabs", url );
-		return this;
-	},
-
-	length: function() {
-		return this.anchors.length;
-	}
-});
-
-$.extend( $.ui.tabs, {
-	version: "1.8.16"
-});
-
-/*
- * Tabs Extensions
- */
-
-/*
- * Rotate
- */
-$.extend( $.ui.tabs.prototype, {
-	rotation: null,
-	rotate: function( ms, continuing ) {
-		var self = this,
-			o = this.options;
-
-		var rotate = self._rotate || ( self._rotate = function( e ) {
-			clearTimeout( self.rotation );
-			self.rotation = setTimeout(function() {
-				var t = o.selected;
-				self.select( ++t < self.anchors.length ? t : 0 );
-			}, ms );
-			
-			if ( e ) {
-				e.stopPropagation();
-			}
-		});
-
-		var stop = self._unrotate || ( self._unrotate = !continuing
-			? function(e) {
-				if (e.clientX) { // in case of a true click
-					self.rotate(null);
-				}
-			}
-			: function( e ) {
-				t = o.selected;
-				rotate();
-			});
-
-		// start rotation
-		if ( ms ) {
-			this.element.bind( "tabsshow", rotate );
-			this.anchors.bind( o.event + ".tabs", stop );
-			rotate();
-		// stop rotation
-		} else {
-			clearTimeout( self.rotation );
-			this.element.unbind( "tabsshow", rotate );
-			this.anchors.unbind( o.event + ".tabs", stop );
-			delete this._rotate;
-			delete this._unrotate;
-		}
-
-		return this;
-	}
-});
-
-})( jQuery );
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/js/jquery-ui.min.js b/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/js/jquery-ui.min.js
deleted file mode 100755
index 14c9064f..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/js/jquery-ui.min.js
+++ /dev/null
@@ -1,791 +0,0 @@
-/*!
- * jQuery UI 1.8.16
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI
- */
-(function(c,j){function k(a,b){var d=a.nodeName.toLowerCase();if("area"===d){b=a.parentNode;d=b.name;if(!a.href||!d||b.nodeName.toLowerCase()!=="map")return false;a=c("img[usemap=#"+d+"]")[0];return!!a&&l(a)}return(/input|select|textarea|button|object/.test(d)?!a.disabled:"a"==d?a.href||b:b)&&l(a)}function l(a){return!c(a).parents().andSelf().filter(function(){return c.curCSS(this,"visibility")==="hidden"||c.expr.filters.hidden(this)}).length}c.ui=c.ui||{};if(!c.ui.version){c.extend(c.ui,{version:"1.8.16",
-keyCode:{ALT:18,BACKSPACE:8,CAPS_LOCK:20,COMMA:188,COMMAND:91,COMMAND_LEFT:91,COMMAND_RIGHT:93,CONTROL:17,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,INSERT:45,LEFT:37,MENU:93,NUMPAD_ADD:107,NUMPAD_DECIMAL:110,NUMPAD_DIVIDE:111,NUMPAD_ENTER:108,NUMPAD_MULTIPLY:106,NUMPAD_SUBTRACT:109,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SHIFT:16,SPACE:32,TAB:9,UP:38,WINDOWS:91}});c.fn.extend({propAttr:c.fn.prop||c.fn.attr,_focus:c.fn.focus,focus:function(a,b){return typeof a==="number"?this.each(function(){var d=
-this;setTimeout(function(){c(d).focus();b&&b.call(d)},a)}):this._focus.apply(this,arguments)},scrollParent:function(){var a;a=c.browser.msie&&/(static|relative)/.test(this.css("position"))||/absolute/.test(this.css("position"))?this.parents().filter(function(){return/(relative|absolute|fixed)/.test(c.curCSS(this,"position",1))&&/(auto|scroll)/.test(c.curCSS(this,"overflow",1)+c.curCSS(this,"overflow-y",1)+c.curCSS(this,"overflow-x",1))}).eq(0):this.parents().filter(function(){return/(auto|scroll)/.test(c.curCSS(this,
-"overflow",1)+c.curCSS(this,"overflow-y",1)+c.curCSS(this,"overflow-x",1))}).eq(0);return/fixed/.test(this.css("position"))||!a.length?c(document):a},zIndex:function(a){if(a!==j)return this.css("zIndex",a);if(this.length){a=c(this[0]);for(var b;a.length&&a[0]!==document;){b=a.css("position");if(b==="absolute"||b==="relative"||b==="fixed"){b=parseInt(a.css("zIndex"),10);if(!isNaN(b)&&b!==0)return b}a=a.parent()}}return 0},disableSelection:function(){return this.bind((c.support.selectstart?"selectstart":
-"mousedown")+".ui-disableSelection",function(a){a.preventDefault()})},enableSelection:function(){return this.unbind(".ui-disableSelection")}});c.each(["Width","Height"],function(a,b){function d(f,g,m,n){c.each(e,function(){g-=parseFloat(c.curCSS(f,"padding"+this,true))||0;if(m)g-=parseFloat(c.curCSS(f,"border"+this+"Width",true))||0;if(n)g-=parseFloat(c.curCSS(f,"margin"+this,true))||0});return g}var e=b==="Width"?["Left","Right"]:["Top","Bottom"],h=b.toLowerCase(),i={innerWidth:c.fn.innerWidth,innerHeight:c.fn.innerHeight,
-outerWidth:c.fn.outerWidth,outerHeight:c.fn.outerHeight};c.fn["inner"+b]=function(f){if(f===j)return i["inner"+b].call(this);return this.each(function(){c(this).css(h,d(this,f)+"px")})};c.fn["outer"+b]=function(f,g){if(typeof f!=="number")return i["outer"+b].call(this,f);return this.each(function(){c(this).css(h,d(this,f,true,g)+"px")})}});c.extend(c.expr[":"],{data:function(a,b,d){return!!c.data(a,d[3])},focusable:function(a){return k(a,!isNaN(c.attr(a,"tabindex")))},tabbable:function(a){var b=c.attr(a,
-"tabindex"),d=isNaN(b);return(d||b>=0)&&k(a,!d)}});c(function(){var a=document.body,b=a.appendChild(b=document.createElement("div"));c.extend(b.style,{minHeight:"100px",height:"auto",padding:0,borderWidth:0});c.support.minHeight=b.offsetHeight===100;c.support.selectstart="onselectstart"in b;a.removeChild(b).style.display="none"});c.extend(c.ui,{plugin:{add:function(a,b,d){a=c.ui[a].prototype;for(var e in d){a.plugins[e]=a.plugins[e]||[];a.plugins[e].push([b,d[e]])}},call:function(a,b,d){if((b=a.plugins[b])&&
-a.element[0].parentNode)for(var e=0;e<b.length;e++)a.options[b[e][0]]&&b[e][1].apply(a.element,d)}},contains:function(a,b){return document.compareDocumentPosition?a.compareDocumentPosition(b)&16:a!==b&&a.contains(b)},hasScroll:function(a,b){if(c(a).css("overflow")==="hidden")return false;b=b&&b==="left"?"scrollLeft":"scrollTop";var d=false;if(a[b]>0)return true;a[b]=1;d=a[b]>0;a[b]=0;return d},isOverAxis:function(a,b,d){return a>b&&a<b+d},isOver:function(a,b,d,e,h,i){return c.ui.isOverAxis(a,d,h)&&
-c.ui.isOverAxis(b,e,i)}})}})(jQuery);
-;/*!
- * jQuery UI Widget 1.8.16
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Widget
- */
-(function(b,j){if(b.cleanData){var k=b.cleanData;b.cleanData=function(a){for(var c=0,d;(d=a[c])!=null;c++)try{b(d).triggerHandler("remove")}catch(e){}k(a)}}else{var l=b.fn.remove;b.fn.remove=function(a,c){return this.each(function(){if(!c)if(!a||b.filter(a,[this]).length)b("*",this).add([this]).each(function(){try{b(this).triggerHandler("remove")}catch(d){}});return l.call(b(this),a,c)})}}b.widget=function(a,c,d){var e=a.split(".")[0],f;a=a.split(".")[1];f=e+"-"+a;if(!d){d=c;c=b.Widget}b.expr[":"][f]=
-function(h){return!!b.data(h,a)};b[e]=b[e]||{};b[e][a]=function(h,g){arguments.length&&this._createWidget(h,g)};c=new c;c.options=b.extend(true,{},c.options);b[e][a].prototype=b.extend(true,c,{namespace:e,widgetName:a,widgetEventPrefix:b[e][a].prototype.widgetEventPrefix||a,widgetBaseClass:f},d);b.widget.bridge(a,b[e][a])};b.widget.bridge=function(a,c){b.fn[a]=function(d){var e=typeof d==="string",f=Array.prototype.slice.call(arguments,1),h=this;d=!e&&f.length?b.extend.apply(null,[true,d].concat(f)):
-d;if(e&&d.charAt(0)==="_")return h;e?this.each(function(){var g=b.data(this,a),i=g&&b.isFunction(g[d])?g[d].apply(g,f):g;if(i!==g&&i!==j){h=i;return false}}):this.each(function(){var g=b.data(this,a);g?g.option(d||{})._init():b.data(this,a,new c(d,this))});return h}};b.Widget=function(a,c){arguments.length&&this._createWidget(a,c)};b.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",options:{disabled:false},_createWidget:function(a,c){b.data(c,this.widgetName,this);this.element=b(c);this.options=
-b.extend(true,{},this.options,this._getCreateOptions(),a);var d=this;this.element.bind("remove."+this.widgetName,function(){d.destroy()});this._create();this._trigger("create");this._init()},_getCreateOptions:function(){return b.metadata&&b.metadata.get(this.element[0])[this.widgetName]},_create:function(){},_init:function(){},destroy:function(){this.element.unbind("."+this.widgetName).removeData(this.widgetName);this.widget().unbind("."+this.widgetName).removeAttr("aria-disabled").removeClass(this.widgetBaseClass+
-"-disabled ui-state-disabled")},widget:function(){return this.element},option:function(a,c){var d=a;if(arguments.length===0)return b.extend({},this.options);if(typeof a==="string"){if(c===j)return this.options[a];d={};d[a]=c}this._setOptions(d);return this},_setOptions:function(a){var c=this;b.each(a,function(d,e){c._setOption(d,e)});return this},_setOption:function(a,c){this.options[a]=c;if(a==="disabled")this.widget()[c?"addClass":"removeClass"](this.widgetBaseClass+"-disabled ui-state-disabled").attr("aria-disabled",
-c);return this},enable:function(){return this._setOption("disabled",false)},disable:function(){return this._setOption("disabled",true)},_trigger:function(a,c,d){var e=this.options[a];c=b.Event(c);c.type=(a===this.widgetEventPrefix?a:this.widgetEventPrefix+a).toLowerCase();d=d||{};if(c.originalEvent){a=b.event.props.length;for(var f;a;){f=b.event.props[--a];c[f]=c.originalEvent[f]}}this.element.trigger(c,d);return!(b.isFunction(e)&&e.call(this.element[0],c,d)===false||c.isDefaultPrevented())}}})(jQuery);
-;/*!
- * jQuery UI Mouse 1.8.16
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Mouse
- *
- * Depends:
- *	jquery.ui.widget.js
- */
-(function(b){var d=false;b(document).mouseup(function(){d=false});b.widget("ui.mouse",{options:{cancel:":input,option",distance:1,delay:0},_mouseInit:function(){var a=this;this.element.bind("mousedown."+this.widgetName,function(c){return a._mouseDown(c)}).bind("click."+this.widgetName,function(c){if(true===b.data(c.target,a.widgetName+".preventClickEvent")){b.removeData(c.target,a.widgetName+".preventClickEvent");c.stopImmediatePropagation();return false}});this.started=false},_mouseDestroy:function(){this.element.unbind("."+
-this.widgetName)},_mouseDown:function(a){if(!d){this._mouseStarted&&this._mouseUp(a);this._mouseDownEvent=a;var c=this,f=a.which==1,g=typeof this.options.cancel=="string"&&a.target.nodeName?b(a.target).closest(this.options.cancel).length:false;if(!f||g||!this._mouseCapture(a))return true;this.mouseDelayMet=!this.options.delay;if(!this.mouseDelayMet)this._mouseDelayTimer=setTimeout(function(){c.mouseDelayMet=true},this.options.delay);if(this._mouseDistanceMet(a)&&this._mouseDelayMet(a)){this._mouseStarted=
-this._mouseStart(a)!==false;if(!this._mouseStarted){a.preventDefault();return true}}true===b.data(a.target,this.widgetName+".preventClickEvent")&&b.removeData(a.target,this.widgetName+".preventClickEvent");this._mouseMoveDelegate=function(e){return c._mouseMove(e)};this._mouseUpDelegate=function(e){return c._mouseUp(e)};b(document).bind("mousemove."+this.widgetName,this._mouseMoveDelegate).bind("mouseup."+this.widgetName,this._mouseUpDelegate);a.preventDefault();return d=true}},_mouseMove:function(a){if(b.browser.msie&&
-!(document.documentMode>=9)&&!a.button)return this._mouseUp(a);if(this._mouseStarted){this._mouseDrag(a);return a.preventDefault()}if(this._mouseDistanceMet(a)&&this._mouseDelayMet(a))(this._mouseStarted=this._mouseStart(this._mouseDownEvent,a)!==false)?this._mouseDrag(a):this._mouseUp(a);return!this._mouseStarted},_mouseUp:function(a){b(document).unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate);if(this._mouseStarted){this._mouseStarted=
-false;a.target==this._mouseDownEvent.target&&b.data(a.target,this.widgetName+".preventClickEvent",true);this._mouseStop(a)}return false},_mouseDistanceMet:function(a){return Math.max(Math.abs(this._mouseDownEvent.pageX-a.pageX),Math.abs(this._mouseDownEvent.pageY-a.pageY))>=this.options.distance},_mouseDelayMet:function(){return this.mouseDelayMet},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return true}})})(jQuery);
-;/*
- * jQuery UI Position 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/Position
- */
-(function(c){c.ui=c.ui||{};var n=/left|center|right/,o=/top|center|bottom/,t=c.fn.position,u=c.fn.offset;c.fn.position=function(b){if(!b||!b.of)return t.apply(this,arguments);b=c.extend({},b);var a=c(b.of),d=a[0],g=(b.collision||"flip").split(" "),e=b.offset?b.offset.split(" "):[0,0],h,k,j;if(d.nodeType===9){h=a.width();k=a.height();j={top:0,left:0}}else if(d.setTimeout){h=a.width();k=a.height();j={top:a.scrollTop(),left:a.scrollLeft()}}else if(d.preventDefault){b.at="left top";h=k=0;j={top:b.of.pageY,
-left:b.of.pageX}}else{h=a.outerWidth();k=a.outerHeight();j=a.offset()}c.each(["my","at"],function(){var f=(b[this]||"").split(" ");if(f.length===1)f=n.test(f[0])?f.concat(["center"]):o.test(f[0])?["center"].concat(f):["center","center"];f[0]=n.test(f[0])?f[0]:"center";f[1]=o.test(f[1])?f[1]:"center";b[this]=f});if(g.length===1)g[1]=g[0];e[0]=parseInt(e[0],10)||0;if(e.length===1)e[1]=e[0];e[1]=parseInt(e[1],10)||0;if(b.at[0]==="right")j.left+=h;else if(b.at[0]==="center")j.left+=h/2;if(b.at[1]==="bottom")j.top+=
-k;else if(b.at[1]==="center")j.top+=k/2;j.left+=e[0];j.top+=e[1];return this.each(function(){var f=c(this),l=f.outerWidth(),m=f.outerHeight(),p=parseInt(c.curCSS(this,"marginLeft",true))||0,q=parseInt(c.curCSS(this,"marginTop",true))||0,v=l+p+(parseInt(c.curCSS(this,"marginRight",true))||0),w=m+q+(parseInt(c.curCSS(this,"marginBottom",true))||0),i=c.extend({},j),r;if(b.my[0]==="right")i.left-=l;else if(b.my[0]==="center")i.left-=l/2;if(b.my[1]==="bottom")i.top-=m;else if(b.my[1]==="center")i.top-=
-m/2;i.left=Math.round(i.left);i.top=Math.round(i.top);r={left:i.left-p,top:i.top-q};c.each(["left","top"],function(s,x){c.ui.position[g[s]]&&c.ui.position[g[s]][x](i,{targetWidth:h,targetHeight:k,elemWidth:l,elemHeight:m,collisionPosition:r,collisionWidth:v,collisionHeight:w,offset:e,my:b.my,at:b.at})});c.fn.bgiframe&&f.bgiframe();f.offset(c.extend(i,{using:b.using}))})};c.ui.position={fit:{left:function(b,a){var d=c(window);d=a.collisionPosition.left+a.collisionWidth-d.width()-d.scrollLeft();b.left=
-d>0?b.left-d:Math.max(b.left-a.collisionPosition.left,b.left)},top:function(b,a){var d=c(window);d=a.collisionPosition.top+a.collisionHeight-d.height()-d.scrollTop();b.top=d>0?b.top-d:Math.max(b.top-a.collisionPosition.top,b.top)}},flip:{left:function(b,a){if(a.at[0]!=="center"){var d=c(window);d=a.collisionPosition.left+a.collisionWidth-d.width()-d.scrollLeft();var g=a.my[0]==="left"?-a.elemWidth:a.my[0]==="right"?a.elemWidth:0,e=a.at[0]==="left"?a.targetWidth:-a.targetWidth,h=-2*a.offset[0];b.left+=
-a.collisionPosition.left<0?g+e+h:d>0?g+e+h:0}},top:function(b,a){if(a.at[1]!=="center"){var d=c(window);d=a.collisionPosition.top+a.collisionHeight-d.height()-d.scrollTop();var g=a.my[1]==="top"?-a.elemHeight:a.my[1]==="bottom"?a.elemHeight:0,e=a.at[1]==="top"?a.targetHeight:-a.targetHeight,h=-2*a.offset[1];b.top+=a.collisionPosition.top<0?g+e+h:d>0?g+e+h:0}}}};if(!c.offset.setOffset){c.offset.setOffset=function(b,a){if(/static/.test(c.curCSS(b,"position")))b.style.position="relative";var d=c(b),
-g=d.offset(),e=parseInt(c.curCSS(b,"top",true),10)||0,h=parseInt(c.curCSS(b,"left",true),10)||0;g={top:a.top-g.top+e,left:a.left-g.left+h};"using"in a?a.using.call(b,g):d.css(g)};c.fn.offset=function(b){var a=this[0];if(!a||!a.ownerDocument)return null;if(b)return this.each(function(){c.offset.setOffset(this,b)});return u.call(this)}}})(jQuery);
-;/*
- * jQuery UI Draggable 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/Draggables
- *
- * Depends:
- *	jquery.ui.core.js
- *	jquery.ui.mouse.js
- *	jquery.ui.widget.js
- */
-(function(d){d.widget("ui.draggable",d.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(a){var b=
-this.options;if(this.helper||b.disabled||d(a.target).is(".ui-resizable-handle"))return false;this.handle=this._getHandle(a);if(!this.handle)return false;if(b.iframeFix)d(b.iframeFix===true?"iframe":b.iframeFix).each(function(){d('<div class="ui-draggable-iframeFix" style="background: #fff;"></div>').css({width:this.offsetWidth+"px",height:this.offsetHeight+"px",position:"absolute",opacity:"0.001",zIndex:1E3}).css(d(this).offset()).appendTo("body")});return true},_mouseStart:function(a){var b=this.options;
-this.helper=this._createHelper(a);this._cacheHelperProportions();if(d.ui.ddmanager)d.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};d.extend(this.offset,{click:{left:a.pageX-this.offset.left,top:a.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()});
-this.originalPosition=this.position=this._generatePosition(a);this.originalPageX=a.pageX;this.originalPageY=a.pageY;b.cursorAt&&this._adjustOffsetFromHelper(b.cursorAt);b.containment&&this._setContainment();if(this._trigger("start",a)===false){this._clear();return false}this._cacheHelperProportions();d.ui.ddmanager&&!b.dropBehaviour&&d.ui.ddmanager.prepareOffsets(this,a);this.helper.addClass("ui-draggable-dragging");this._mouseDrag(a,true);d.ui.ddmanager&&d.ui.ddmanager.dragStart(this,a);return true},
-_mouseDrag:function(a,b){this.position=this._generatePosition(a);this.positionAbs=this._convertPositionTo("absolute");if(!b){b=this._uiHash();if(this._trigger("drag",a,b)===false){this._mouseUp({});return false}this.position=b.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";d.ui.ddmanager&&d.ui.ddmanager.drag(this,a);return false},_mouseStop:function(a){var b=
-false;if(d.ui.ddmanager&&!this.options.dropBehaviour)b=d.ui.ddmanager.drop(this,a);if(this.dropped){b=this.dropped;this.dropped=false}if((!this.element[0]||!this.element[0].parentNode)&&this.options.helper=="original")return false;if(this.options.revert=="invalid"&&!b||this.options.revert=="valid"&&b||this.options.revert===true||d.isFunction(this.options.revert)&&this.options.revert.call(this.element,b)){var c=this;d(this.helper).animate(this.originalPosition,parseInt(this.options.revertDuration,
-10),function(){c._trigger("stop",a)!==false&&c._clear()})}else this._trigger("stop",a)!==false&&this._clear();return false},_mouseUp:function(a){this.options.iframeFix===true&&d("div.ui-draggable-iframeFix").each(function(){this.parentNode.removeChild(this)});d.ui.ddmanager&&d.ui.ddmanager.dragStop(this,a);return d.ui.mouse.prototype._mouseUp.call(this,a)},cancel:function(){this.helper.is(".ui-draggable-dragging")?this._mouseUp({}):this._clear();return this},_getHandle:function(a){var b=!this.options.handle||
-!d(this.options.handle,this.element).length?true:false;d(this.options.handle,this.element).find("*").andSelf().each(function(){if(this==a.target)b=true});return b},_createHelper:function(a){var b=this.options;a=d.isFunction(b.helper)?d(b.helper.apply(this.element[0],[a])):b.helper=="clone"?this.element.clone().removeAttr("id"):this.element;a.parents("body").length||a.appendTo(b.appendTo=="parent"?this.element[0].parentNode:b.appendTo);a[0]!=this.element[0]&&!/(fixed|absolute)/.test(a.css("position"))&&
-a.css("position","absolute");return a},_adjustOffsetFromHelper:function(a){if(typeof a=="string")a=a.split(" ");if(d.isArray(a))a={left:+a[0],top:+a[1]||0};if("left"in a)this.offset.click.left=a.left+this.margins.left;if("right"in a)this.offset.click.left=this.helperProportions.width-a.right+this.margins.left;if("top"in a)this.offset.click.top=a.top+this.margins.top;if("bottom"in a)this.offset.click.top=this.helperProportions.height-a.bottom+this.margins.top},_getParentOffset:function(){this.offsetParent=
-this.helper.offsetParent();var a=this.offsetParent.offset();if(this.cssPosition=="absolute"&&this.scrollParent[0]!=document&&d.ui.contains(this.scrollParent[0],this.offsetParent[0])){a.left+=this.scrollParent.scrollLeft();a.top+=this.scrollParent.scrollTop()}if(this.offsetParent[0]==document.body||this.offsetParent[0].tagName&&this.offsetParent[0].tagName.toLowerCase()=="html"&&d.browser.msie)a={top:0,left:0};return{top:a.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:a.left+(parseInt(this.offsetParent.css("borderLeftWidth"),
-10)||0)}},_getRelativeOffset:function(){if(this.cssPosition=="relative"){var a=this.element.position();return{top:a.top-(parseInt(this.helper.css("top"),10)||0)+this.scrollParent.scrollTop(),left:a.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 a=this.options;if(a.containment=="parent")a.containment=this.helper[0].parentNode;if(a.containment=="document"||a.containment=="window")this.containment=[a.containment=="document"?0:d(window).scrollLeft()-this.offset.relative.left-this.offset.parent.left,a.containment=="document"?0:d(window).scrollTop()-this.offset.relative.top-this.offset.parent.top,
-(a.containment=="document"?0:d(window).scrollLeft())+d(a.containment=="document"?document:window).width()-this.helperProportions.width-this.margins.left,(a.containment=="document"?0:d(window).scrollTop())+(d(a.containment=="document"?document:window).height()||document.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top];if(!/^(document|window|parent)$/.test(a.containment)&&a.containment.constructor!=Array){a=d(a.containment);var b=a[0];if(b){a.offset();var c=d(b).css("overflow")!=
-"hidden";this.containment=[(parseInt(d(b).css("borderLeftWidth"),10)||0)+(parseInt(d(b).css("paddingLeft"),10)||0),(parseInt(d(b).css("borderTopWidth"),10)||0)+(parseInt(d(b).css("paddingTop"),10)||0),(c?Math.max(b.scrollWidth,b.offsetWidth):b.offsetWidth)-(parseInt(d(b).css("borderLeftWidth"),10)||0)-(parseInt(d(b).css("paddingRight"),10)||0)-this.helperProportions.width-this.margins.left-this.margins.right,(c?Math.max(b.scrollHeight,b.offsetHeight):b.offsetHeight)-(parseInt(d(b).css("borderTopWidth"),
-10)||0)-(parseInt(d(b).css("paddingBottom"),10)||0)-this.helperProportions.height-this.margins.top-this.margins.bottom];this.relative_container=a}}else if(a.containment.constructor==Array)this.containment=a.containment},_convertPositionTo:function(a,b){if(!b)b=this.position;a=a=="absolute"?1:-1;var c=this.cssPosition=="absolute"&&!(this.scrollParent[0]!=document&&d.ui.contains(this.scrollParent[0],this.offsetParent[0]))?this.offsetParent:this.scrollParent,f=/(html|body)/i.test(c[0].tagName);return{top:b.top+
-this.offset.relative.top*a+this.offset.parent.top*a-(d.browser.safari&&d.browser.version<526&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollTop():f?0:c.scrollTop())*a),left:b.left+this.offset.relative.left*a+this.offset.parent.left*a-(d.browser.safari&&d.browser.version<526&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollLeft():f?0:c.scrollLeft())*a)}},_generatePosition:function(a){var b=this.options,c=this.cssPosition=="absolute"&&
-!(this.scrollParent[0]!=document&&d.ui.contains(this.scrollParent[0],this.offsetParent[0]))?this.offsetParent:this.scrollParent,f=/(html|body)/i.test(c[0].tagName),e=a.pageX,h=a.pageY;if(this.originalPosition){var g;if(this.containment){if(this.relative_container){g=this.relative_container.offset();g=[this.containment[0]+g.left,this.containment[1]+g.top,this.containment[2]+g.left,this.containment[3]+g.top]}else g=this.containment;if(a.pageX-this.offset.click.left<g[0])e=g[0]+this.offset.click.left;
-if(a.pageY-this.offset.click.top<g[1])h=g[1]+this.offset.click.top;if(a.pageX-this.offset.click.left>g[2])e=g[2]+this.offset.click.left;if(a.pageY-this.offset.click.top>g[3])h=g[3]+this.offset.click.top}if(b.grid){h=b.grid[1]?this.originalPageY+Math.round((h-this.originalPageY)/b.grid[1])*b.grid[1]:this.originalPageY;h=g?!(h-this.offset.click.top<g[1]||h-this.offset.click.top>g[3])?h:!(h-this.offset.click.top<g[1])?h-b.grid[1]:h+b.grid[1]:h;e=b.grid[0]?this.originalPageX+Math.round((e-this.originalPageX)/
-b.grid[0])*b.grid[0]:this.originalPageX;e=g?!(e-this.offset.click.left<g[0]||e-this.offset.click.left>g[2])?e:!(e-this.offset.click.left<g[0])?e-b.grid[0]:e+b.grid[0]:e}}return{top:h-this.offset.click.top-this.offset.relative.top-this.offset.parent.top+(d.browser.safari&&d.browser.version<526&&this.cssPosition=="fixed"?0:this.cssPosition=="fixed"?-this.scrollParent.scrollTop():f?0:c.scrollTop()),left:e-this.offset.click.left-this.offset.relative.left-this.offset.parent.left+(d.browser.safari&&d.browser.version<
-526&&this.cssPosition=="fixed"?0:this.cssPosition=="fixed"?-this.scrollParent.scrollLeft():f?0:c.scrollLeft())}},_clear:function(){this.helper.removeClass("ui-draggable-dragging");this.helper[0]!=this.element[0]&&!this.cancelHelperRemoval&&this.helper.remove();this.helper=null;this.cancelHelperRemoval=false},_trigger:function(a,b,c){c=c||this._uiHash();d.ui.plugin.call(this,a,[b,c]);if(a=="drag")this.positionAbs=this._convertPositionTo("absolute");return d.Widget.prototype._trigger.call(this,a,b,
-c)},plugins:{},_uiHash:function(){return{helper:this.helper,position:this.position,originalPosition:this.originalPosition,offset:this.positionAbs}}});d.extend(d.ui.draggable,{version:"1.8.16"});d.ui.plugin.add("draggable","connectToSortable",{start:function(a,b){var c=d(this).data("draggable"),f=c.options,e=d.extend({},b,{item:c.element});c.sortables=[];d(f.connectToSortable).each(function(){var h=d.data(this,"sortable");if(h&&!h.options.disabled){c.sortables.push({instance:h,shouldRevert:h.options.revert});
-h.refreshPositions();h._trigger("activate",a,e)}})},stop:function(a,b){var c=d(this).data("draggable"),f=d.extend({},b,{item:c.element});d.each(c.sortables,function(){if(this.instance.isOver){this.instance.isOver=0;c.cancelHelperRemoval=true;this.instance.cancelHelperRemoval=false;if(this.shouldRevert)this.instance.options.revert=true;this.instance._mouseStop(a);this.instance.options.helper=this.instance.options._helper;c.options.helper=="original"&&this.instance.currentItem.css({top:"auto",left:"auto"})}else{this.instance.cancelHelperRemoval=
-false;this.instance._trigger("deactivate",a,f)}})},drag:function(a,b){var c=d(this).data("draggable"),f=this;d.each(c.sortables,function(){this.instance.positionAbs=c.positionAbs;this.instance.helperProportions=c.helperProportions;this.instance.offset.click=c.offset.click;if(this.instance._intersectsWith(this.instance.containerCache)){if(!this.instance.isOver){this.instance.isOver=1;this.instance.currentItem=d(f).clone().removeAttr("id").appendTo(this.instance.element).data("sortable-item",true);
-this.instance.options._helper=this.instance.options.helper;this.instance.options.helper=function(){return b.helper[0]};a.target=this.instance.currentItem[0];this.instance._mouseCapture(a,true);this.instance._mouseStart(a,true,true);this.instance.offset.click.top=c.offset.click.top;this.instance.offset.click.left=c.offset.click.left;this.instance.offset.parent.left-=c.offset.parent.left-this.instance.offset.parent.left;this.instance.offset.parent.top-=c.offset.parent.top-this.instance.offset.parent.top;
-c._trigger("toSortable",a);c.dropped=this.instance.element;c.currentItem=c.element;this.instance.fromOutside=c}this.instance.currentItem&&this.instance._mouseDrag(a)}else if(this.instance.isOver){this.instance.isOver=0;this.instance.cancelHelperRemoval=true;this.instance.options.revert=false;this.instance._trigger("out",a,this.instance._uiHash(this.instance));this.instance._mouseStop(a,true);this.instance.options.helper=this.instance.options._helper;this.instance.currentItem.remove();this.instance.placeholder&&
-this.instance.placeholder.remove();c._trigger("fromSortable",a);c.dropped=false}})}});d.ui.plugin.add("draggable","cursor",{start:function(){var a=d("body"),b=d(this).data("draggable").options;if(a.css("cursor"))b._cursor=a.css("cursor");a.css("cursor",b.cursor)},stop:function(){var a=d(this).data("draggable").options;a._cursor&&d("body").css("cursor",a._cursor)}});d.ui.plugin.add("draggable","opacity",{start:function(a,b){a=d(b.helper);b=d(this).data("draggable").options;if(a.css("opacity"))b._opacity=
-a.css("opacity");a.css("opacity",b.opacity)},stop:function(a,b){a=d(this).data("draggable").options;a._opacity&&d(b.helper).css("opacity",a._opacity)}});d.ui.plugin.add("draggable","scroll",{start:function(){var a=d(this).data("draggable");if(a.scrollParent[0]!=document&&a.scrollParent[0].tagName!="HTML")a.overflowOffset=a.scrollParent.offset()},drag:function(a){var b=d(this).data("draggable"),c=b.options,f=false;if(b.scrollParent[0]!=document&&b.scrollParent[0].tagName!="HTML"){if(!c.axis||c.axis!=
-"x")if(b.overflowOffset.top+b.scrollParent[0].offsetHeight-a.pageY<c.scrollSensitivity)b.scrollParent[0].scrollTop=f=b.scrollParent[0].scrollTop+c.scrollSpeed;else if(a.pageY-b.overflowOffset.top<c.scrollSensitivity)b.scrollParent[0].scrollTop=f=b.scrollParent[0].scrollTop-c.scrollSpeed;if(!c.axis||c.axis!="y")if(b.overflowOffset.left+b.scrollParent[0].offsetWidth-a.pageX<c.scrollSensitivity)b.scrollParent[0].scrollLeft=f=b.scrollParent[0].scrollLeft+c.scrollSpeed;else if(a.pageX-b.overflowOffset.left<
-c.scrollSensitivity)b.scrollParent[0].scrollLeft=f=b.scrollParent[0].scrollLeft-c.scrollSpeed}else{if(!c.axis||c.axis!="x")if(a.pageY-d(document).scrollTop()<c.scrollSensitivity)f=d(document).scrollTop(d(document).scrollTop()-c.scrollSpeed);else if(d(window).height()-(a.pageY-d(document).scrollTop())<c.scrollSensitivity)f=d(document).scrollTop(d(document).scrollTop()+c.scrollSpeed);if(!c.axis||c.axis!="y")if(a.pageX-d(document).scrollLeft()<c.scrollSensitivity)f=d(document).scrollLeft(d(document).scrollLeft()-
-c.scrollSpeed);else if(d(window).width()-(a.pageX-d(document).scrollLeft())<c.scrollSensitivity)f=d(document).scrollLeft(d(document).scrollLeft()+c.scrollSpeed)}f!==false&&d.ui.ddmanager&&!c.dropBehaviour&&d.ui.ddmanager.prepareOffsets(b,a)}});d.ui.plugin.add("draggable","snap",{start:function(){var a=d(this).data("draggable"),b=a.options;a.snapElements=[];d(b.snap.constructor!=String?b.snap.items||":data(draggable)":b.snap).each(function(){var c=d(this),f=c.offset();this!=a.element[0]&&a.snapElements.push({item:this,
-width:c.outerWidth(),height:c.outerHeight(),top:f.top,left:f.left})})},drag:function(a,b){for(var c=d(this).data("draggable"),f=c.options,e=f.snapTolerance,h=b.offset.left,g=h+c.helperProportions.width,n=b.offset.top,o=n+c.helperProportions.height,i=c.snapElements.length-1;i>=0;i--){var j=c.snapElements[i].left,l=j+c.snapElements[i].width,k=c.snapElements[i].top,m=k+c.snapElements[i].height;if(j-e<h&&h<l+e&&k-e<n&&n<m+e||j-e<h&&h<l+e&&k-e<o&&o<m+e||j-e<g&&g<l+e&&k-e<n&&n<m+e||j-e<g&&g<l+e&&k-e<o&&
-o<m+e){if(f.snapMode!="inner"){var p=Math.abs(k-o)<=e,q=Math.abs(m-n)<=e,r=Math.abs(j-g)<=e,s=Math.abs(l-h)<=e;if(p)b.position.top=c._convertPositionTo("relative",{top:k-c.helperProportions.height,left:0}).top-c.margins.top;if(q)b.position.top=c._convertPositionTo("relative",{top:m,left:0}).top-c.margins.top;if(r)b.position.left=c._convertPositionTo("relative",{top:0,left:j-c.helperProportions.width}).left-c.margins.left;if(s)b.position.left=c._convertPositionTo("relative",{top:0,left:l}).left-c.margins.left}var t=
-p||q||r||s;if(f.snapMode!="outer"){p=Math.abs(k-n)<=e;q=Math.abs(m-o)<=e;r=Math.abs(j-h)<=e;s=Math.abs(l-g)<=e;if(p)b.position.top=c._convertPositionTo("relative",{top:k,left:0}).top-c.margins.top;if(q)b.position.top=c._convertPositionTo("relative",{top:m-c.helperProportions.height,left:0}).top-c.margins.top;if(r)b.position.left=c._convertPositionTo("relative",{top:0,left:j}).left-c.margins.left;if(s)b.position.left=c._convertPositionTo("relative",{top:0,left:l-c.helperProportions.width}).left-c.margins.left}if(!c.snapElements[i].snapping&&
-(p||q||r||s||t))c.options.snap.snap&&c.options.snap.snap.call(c.element,a,d.extend(c._uiHash(),{snapItem:c.snapElements[i].item}));c.snapElements[i].snapping=p||q||r||s||t}else{c.snapElements[i].snapping&&c.options.snap.release&&c.options.snap.release.call(c.element,a,d.extend(c._uiHash(),{snapItem:c.snapElements[i].item}));c.snapElements[i].snapping=false}}}});d.ui.plugin.add("draggable","stack",{start:function(){var a=d(this).data("draggable").options;a=d.makeArray(d(a.stack)).sort(function(c,f){return(parseInt(d(c).css("zIndex"),
-10)||0)-(parseInt(d(f).css("zIndex"),10)||0)});if(a.length){var b=parseInt(a[0].style.zIndex)||0;d(a).each(function(c){this.style.zIndex=b+c});this[0].style.zIndex=b+a.length}}});d.ui.plugin.add("draggable","zIndex",{start:function(a,b){a=d(b.helper);b=d(this).data("draggable").options;if(a.css("zIndex"))b._zIndex=a.css("zIndex");a.css("zIndex",b.zIndex)},stop:function(a,b){a=d(this).data("draggable").options;a._zIndex&&d(b.helper).css("zIndex",a._zIndex)}})})(jQuery);
-;/*
- * jQuery UI Droppable 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/Droppables
- *
- * Depends:
- *	jquery.ui.core.js
- *	jquery.ui.widget.js
- *	jquery.ui.mouse.js
- *	jquery.ui.draggable.js
- */
-(function(d){d.widget("ui.droppable",{widgetEventPrefix:"drop",options:{accept:"*",activeClass:false,addClasses:true,greedy:false,hoverClass:false,scope:"default",tolerance:"intersect"},_create:function(){var a=this.options,b=a.accept;this.isover=0;this.isout=1;this.accept=d.isFunction(b)?b:function(c){return c.is(b)};this.proportions={width:this.element[0].offsetWidth,height:this.element[0].offsetHeight};d.ui.ddmanager.droppables[a.scope]=d.ui.ddmanager.droppables[a.scope]||[];d.ui.ddmanager.droppables[a.scope].push(this);
-a.addClasses&&this.element.addClass("ui-droppable")},destroy:function(){for(var a=d.ui.ddmanager.droppables[this.options.scope],b=0;b<a.length;b++)a[b]==this&&a.splice(b,1);this.element.removeClass("ui-droppable ui-droppable-disabled").removeData("droppable").unbind(".droppable");return this},_setOption:function(a,b){if(a=="accept")this.accept=d.isFunction(b)?b:function(c){return c.is(b)};d.Widget.prototype._setOption.apply(this,arguments)},_activate:function(a){var b=d.ui.ddmanager.current;this.options.activeClass&&
-this.element.addClass(this.options.activeClass);b&&this._trigger("activate",a,this.ui(b))},_deactivate:function(a){var b=d.ui.ddmanager.current;this.options.activeClass&&this.element.removeClass(this.options.activeClass);b&&this._trigger("deactivate",a,this.ui(b))},_over:function(a){var b=d.ui.ddmanager.current;if(!(!b||(b.currentItem||b.element)[0]==this.element[0]))if(this.accept.call(this.element[0],b.currentItem||b.element)){this.options.hoverClass&&this.element.addClass(this.options.hoverClass);
-this._trigger("over",a,this.ui(b))}},_out:function(a){var b=d.ui.ddmanager.current;if(!(!b||(b.currentItem||b.element)[0]==this.element[0]))if(this.accept.call(this.element[0],b.currentItem||b.element)){this.options.hoverClass&&this.element.removeClass(this.options.hoverClass);this._trigger("out",a,this.ui(b))}},_drop:function(a,b){var c=b||d.ui.ddmanager.current;if(!c||(c.currentItem||c.element)[0]==this.element[0])return false;var e=false;this.element.find(":data(droppable)").not(".ui-draggable-dragging").each(function(){var g=
-d.data(this,"droppable");if(g.options.greedy&&!g.options.disabled&&g.options.scope==c.options.scope&&g.accept.call(g.element[0],c.currentItem||c.element)&&d.ui.intersect(c,d.extend(g,{offset:g.element.offset()}),g.options.tolerance)){e=true;return false}});if(e)return false;if(this.accept.call(this.element[0],c.currentItem||c.element)){this.options.activeClass&&this.element.removeClass(this.options.activeClass);this.options.hoverClass&&this.element.removeClass(this.options.hoverClass);this._trigger("drop",
-a,this.ui(c));return this.element}return false},ui:function(a){return{draggable:a.currentItem||a.element,helper:a.helper,position:a.position,offset:a.positionAbs}}});d.extend(d.ui.droppable,{version:"1.8.16"});d.ui.intersect=function(a,b,c){if(!b.offset)return false;var e=(a.positionAbs||a.position.absolute).left,g=e+a.helperProportions.width,f=(a.positionAbs||a.position.absolute).top,h=f+a.helperProportions.height,i=b.offset.left,k=i+b.proportions.width,j=b.offset.top,l=j+b.proportions.height;
-switch(c){case "fit":return i<=e&&g<=k&&j<=f&&h<=l;case "intersect":return i<e+a.helperProportions.width/2&&g-a.helperProportions.width/2<k&&j<f+a.helperProportions.height/2&&h-a.helperProportions.height/2<l;case "pointer":return d.ui.isOver((a.positionAbs||a.position.absolute).top+(a.clickOffset||a.offset.click).top,(a.positionAbs||a.position.absolute).left+(a.clickOffset||a.offset.click).left,j,i,b.proportions.height,b.proportions.width);case "touch":return(f>=j&&f<=l||h>=j&&h<=l||f<j&&h>l)&&(e>=
-i&&e<=k||g>=i&&g<=k||e<i&&g>k);default:return false}};d.ui.ddmanager={current:null,droppables:{"default":[]},prepareOffsets:function(a,b){var c=d.ui.ddmanager.droppables[a.options.scope]||[],e=b?b.type:null,g=(a.currentItem||a.element).find(":data(droppable)").andSelf(),f=0;a:for(;f<c.length;f++)if(!(c[f].options.disabled||a&&!c[f].accept.call(c[f].element[0],a.currentItem||a.element))){for(var h=0;h<g.length;h++)if(g[h]==c[f].element[0]){c[f].proportions.height=0;continue a}c[f].visible=c[f].element.css("display")!=
-"none";if(c[f].visible){e=="mousedown"&&c[f]._activate.call(c[f],b);c[f].offset=c[f].element.offset();c[f].proportions={width:c[f].element[0].offsetWidth,height:c[f].element[0].offsetHeight}}}},drop:function(a,b){var c=false;d.each(d.ui.ddmanager.droppables[a.options.scope]||[],function(){if(this.options){if(!this.options.disabled&&this.visible&&d.ui.intersect(a,this,this.options.tolerance))c=c||this._drop.call(this,b);if(!this.options.disabled&&this.visible&&this.accept.call(this.element[0],a.currentItem||
-a.element)){this.isout=1;this.isover=0;this._deactivate.call(this,b)}}});return c},dragStart:function(a,b){a.element.parents(":not(body,html)").bind("scroll.droppable",function(){a.options.refreshPositions||d.ui.ddmanager.prepareOffsets(a,b)})},drag:function(a,b){a.options.refreshPositions&&d.ui.ddmanager.prepareOffsets(a,b);d.each(d.ui.ddmanager.droppables[a.options.scope]||[],function(){if(!(this.options.disabled||this.greedyChild||!this.visible)){var c=d.ui.intersect(a,this,this.options.tolerance);
-if(c=!c&&this.isover==1?"isout":c&&this.isover==0?"isover":null){var e;if(this.options.greedy){var g=this.element.parents(":data(droppable):eq(0)");if(g.length){e=d.data(g[0],"droppable");e.greedyChild=c=="isover"?1:0}}if(e&&c=="isover"){e.isover=0;e.isout=1;e._out.call(e,b)}this[c]=1;this[c=="isout"?"isover":"isout"]=0;this[c=="isover"?"_over":"_out"].call(this,b);if(e&&c=="isout"){e.isout=0;e.isover=1;e._over.call(e,b)}}}})},dragStop:function(a,b){a.element.parents(":not(body,html)").unbind("scroll.droppable");
-a.options.refreshPositions||d.ui.ddmanager.prepareOffsets(a,b)}}})(jQuery);
-;/*
- * jQuery UI Resizable 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/Resizables
- *
- * Depends:
- *	jquery.ui.core.js
- *	jquery.ui.mouse.js
- *	jquery.ui.widget.js
- */
-(function(e){e.widget("ui.resizable",e.ui.mouse,{widgetEventPrefix:"resize",options:{alsoResize:false,animate:false,animateDuration:"slow",animateEasing:"swing",aspectRatio:false,autoHide:false,containment:false,ghost:false,grid:false,handles:"e,s,se",helper:false,maxHeight:null,maxWidth:null,minHeight:10,minWidth:10,zIndex:1E3},_create:function(){var b=this,a=this.options;this.element.addClass("ui-resizable");e.extend(this,{_aspectRatio:!!a.aspectRatio,aspectRatio:a.aspectRatio,originalElement:this.element,
-_proportionallyResizeElements:[],_helper:a.helper||a.ghost||a.animate?a.helper||"ui-resizable-helper":null});if(this.element[0].nodeName.match(/canvas|textarea|input|select|button|img/i)){/relative/.test(this.element.css("position"))&&e.browser.opera&&this.element.css({position:"relative",top:"auto",left:"auto"});this.element.wrap(e('<div class="ui-wrapper" style="overflow: hidden;"></div>').css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),
-top:this.element.css("top"),left:this.element.css("left")}));this.element=this.element.parent().data("resizable",this.element.data("resizable"));this.elementIsWrapper=true;this.element.css({marginLeft:this.originalElement.css("marginLeft"),marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom")});this.originalElement.css({marginLeft:0,marginTop:0,marginRight:0,marginBottom:0});this.originalResizeStyle=
-this.originalElement.css("resize");this.originalElement.css("resize","none");this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"}));this.originalElement.css({margin:this.originalElement.css("margin")});this._proportionallyResize()}this.handles=a.handles||(!e(".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 c=this.handles.split(",");this.handles={};for(var d=0;d<c.length;d++){var f=e.trim(c[d]),g=e('<div class="ui-resizable-handle '+("ui-resizable-"+f)+'"></div>');/sw|se|ne|nw/.test(f)&&g.css({zIndex:++a.zIndex});"se"==f&&g.addClass("ui-icon ui-icon-gripsmall-diagonal-se");this.handles[f]=".ui-resizable-"+f;this.element.append(g)}}this._renderAxis=function(h){h=h||this.element;for(var i in this.handles){if(this.handles[i].constructor==
-String)this.handles[i]=e(this.handles[i],this.element).show();if(this.elementIsWrapper&&this.originalElement[0].nodeName.match(/textarea|input|select|button/i)){var j=e(this.handles[i],this.element),l=0;l=/sw|ne|nw|se|n|s/.test(i)?j.outerHeight():j.outerWidth();j=["padding",/ne|nw|n/.test(i)?"Top":/se|sw|s/.test(i)?"Bottom":/^e$/.test(i)?"Right":"Left"].join("");h.css(j,l);this._proportionallyResize()}e(this.handles[i])}};this._renderAxis(this.element);this._handles=e(".ui-resizable-handle",this.element).disableSelection();
-this._handles.mouseover(function(){if(!b.resizing){if(this.className)var h=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i);b.axis=h&&h[1]?h[1]:"se"}});if(a.autoHide){this._handles.hide();e(this.element).addClass("ui-resizable-autohide").hover(function(){if(!a.disabled){e(this).removeClass("ui-resizable-autohide");b._handles.show()}},function(){if(!a.disabled)if(!b.resizing){e(this).addClass("ui-resizable-autohide");b._handles.hide()}})}this._mouseInit()},destroy:function(){this._mouseDestroy();
-var b=function(c){e(c).removeClass("ui-resizable ui-resizable-disabled ui-resizable-resizing").removeData("resizable").unbind(".resizable").find(".ui-resizable-handle").remove()};if(this.elementIsWrapper){b(this.element);var a=this.element;a.after(this.originalElement.css({position:a.css("position"),width:a.outerWidth(),height:a.outerHeight(),top:a.css("top"),left:a.css("left")})).remove()}this.originalElement.css("resize",this.originalResizeStyle);b(this.originalElement);return this},_mouseCapture:function(b){var a=
-false;for(var c in this.handles)if(e(this.handles[c])[0]==b.target)a=true;return!this.options.disabled&&a},_mouseStart:function(b){var a=this.options,c=this.element.position(),d=this.element;this.resizing=true;this.documentScroll={top:e(document).scrollTop(),left:e(document).scrollLeft()};if(d.is(".ui-draggable")||/absolute/.test(d.css("position")))d.css({position:"absolute",top:c.top,left:c.left});e.browser.opera&&/relative/.test(d.css("position"))&&d.css({position:"relative",top:"auto",left:"auto"});
-this._renderProxy();c=m(this.helper.css("left"));var f=m(this.helper.css("top"));if(a.containment){c+=e(a.containment).scrollLeft()||0;f+=e(a.containment).scrollTop()||0}this.offset=this.helper.offset();this.position={left:c,top:f};this.size=this._helper?{width:d.outerWidth(),height:d.outerHeight()}:{width:d.width(),height:d.height()};this.originalSize=this._helper?{width:d.outerWidth(),height:d.outerHeight()}:{width:d.width(),height:d.height()};this.originalPosition={left:c,top:f};this.sizeDiff=
-{width:d.outerWidth()-d.width(),height:d.outerHeight()-d.height()};this.originalMousePosition={left:b.pageX,top:b.pageY};this.aspectRatio=typeof a.aspectRatio=="number"?a.aspectRatio:this.originalSize.width/this.originalSize.height||1;a=e(".ui-resizable-"+this.axis).css("cursor");e("body").css("cursor",a=="auto"?this.axis+"-resize":a);d.addClass("ui-resizable-resizing");this._propagate("start",b);return true},_mouseDrag:function(b){var a=this.helper,c=this.originalMousePosition,d=this._change[this.axis];
-if(!d)return false;c=d.apply(this,[b,b.pageX-c.left||0,b.pageY-c.top||0]);this._updateVirtualBoundaries(b.shiftKey);if(this._aspectRatio||b.shiftKey)c=this._updateRatio(c,b);c=this._respectSize(c,b);this._propagate("resize",b);a.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(c);this._trigger("resize",b,this.ui());return false},
-_mouseStop:function(b){this.resizing=false;var a=this.options,c=this;if(this._helper){var d=this._proportionallyResizeElements,f=d.length&&/textarea/i.test(d[0].nodeName);d=f&&e.ui.hasScroll(d[0],"left")?0:c.sizeDiff.height;f=f?0:c.sizeDiff.width;f={width:c.helper.width()-f,height:c.helper.height()-d};d=parseInt(c.element.css("left"),10)+(c.position.left-c.originalPosition.left)||null;var g=parseInt(c.element.css("top"),10)+(c.position.top-c.originalPosition.top)||null;a.animate||this.element.css(e.extend(f,
-{top:g,left:d}));c.helper.height(c.size.height);c.helper.width(c.size.width);this._helper&&!a.animate&&this._proportionallyResize()}e("body").css("cursor","auto");this.element.removeClass("ui-resizable-resizing");this._propagate("stop",b);this._helper&&this.helper.remove();return false},_updateVirtualBoundaries:function(b){var a=this.options,c,d,f;a={minWidth:k(a.minWidth)?a.minWidth:0,maxWidth:k(a.maxWidth)?a.maxWidth:Infinity,minHeight:k(a.minHeight)?a.minHeight:0,maxHeight:k(a.maxHeight)?a.maxHeight:
-Infinity};if(this._aspectRatio||b){b=a.minHeight*this.aspectRatio;d=a.minWidth/this.aspectRatio;c=a.maxHeight*this.aspectRatio;f=a.maxWidth/this.aspectRatio;if(b>a.minWidth)a.minWidth=b;if(d>a.minHeight)a.minHeight=d;if(c<a.maxWidth)a.maxWidth=c;if(f<a.maxHeight)a.maxHeight=f}this._vBoundaries=a},_updateCache:function(b){this.offset=this.helper.offset();if(k(b.left))this.position.left=b.left;if(k(b.top))this.position.top=b.top;if(k(b.height))this.size.height=b.height;if(k(b.width))this.size.width=
-b.width},_updateRatio:function(b){var a=this.position,c=this.size,d=this.axis;if(k(b.height))b.width=b.height*this.aspectRatio;else if(k(b.width))b.height=b.width/this.aspectRatio;if(d=="sw"){b.left=a.left+(c.width-b.width);b.top=null}if(d=="nw"){b.top=a.top+(c.height-b.height);b.left=a.left+(c.width-b.width)}return b},_respectSize:function(b){var a=this._vBoundaries,c=this.axis,d=k(b.width)&&a.maxWidth&&a.maxWidth<b.width,f=k(b.height)&&a.maxHeight&&a.maxHeight<b.height,g=k(b.width)&&a.minWidth&&
-a.minWidth>b.width,h=k(b.height)&&a.minHeight&&a.minHeight>b.height;if(g)b.width=a.minWidth;if(h)b.height=a.minHeight;if(d)b.width=a.maxWidth;if(f)b.height=a.maxHeight;var i=this.originalPosition.left+this.originalSize.width,j=this.position.top+this.size.height,l=/sw|nw|w/.test(c);c=/nw|ne|n/.test(c);if(g&&l)b.left=i-a.minWidth;if(d&&l)b.left=i-a.maxWidth;if(h&&c)b.top=j-a.minHeight;if(f&&c)b.top=j-a.maxHeight;if((a=!b.width&&!b.height)&&!b.left&&b.top)b.top=null;else if(a&&!b.top&&b.left)b.left=
-null;return b},_proportionallyResize:function(){if(this._proportionallyResizeElements.length)for(var b=this.helper||this.element,a=0;a<this._proportionallyResizeElements.length;a++){var c=this._proportionallyResizeElements[a];if(!this.borderDif){var d=[c.css("borderTopWidth"),c.css("borderRightWidth"),c.css("borderBottomWidth"),c.css("borderLeftWidth")],f=[c.css("paddingTop"),c.css("paddingRight"),c.css("paddingBottom"),c.css("paddingLeft")];this.borderDif=e.map(d,function(g,h){g=parseInt(g,10)||
-0;h=parseInt(f[h],10)||0;return g+h})}e.browser.msie&&(e(b).is(":hidden")||e(b).parents(":hidden").length)||c.css({height:b.height()-this.borderDif[0]-this.borderDif[2]||0,width:b.width()-this.borderDif[1]-this.borderDif[3]||0})}},_renderProxy:function(){var b=this.options;this.elementOffset=this.element.offset();if(this._helper){this.helper=this.helper||e('<div style="overflow:hidden;"></div>');var a=e.browser.msie&&e.browser.version<7,c=a?1:0;a=a?2:-1;this.helper.addClass(this._helper).css({width:this.element.outerWidth()+
-a,height:this.element.outerHeight()+a,position:"absolute",left:this.elementOffset.left-c+"px",top:this.elementOffset.top-c+"px",zIndex:++b.zIndex});this.helper.appendTo("body").disableSelection()}else this.helper=this.element},_change:{e:function(b,a){return{width:this.originalSize.width+a}},w:function(b,a){return{left:this.originalPosition.left+a,width:this.originalSize.width-a}},n:function(b,a,c){return{top:this.originalPosition.top+c,height:this.originalSize.height-c}},s:function(b,a,c){return{height:this.originalSize.height+
-c}},se:function(b,a,c){return e.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[b,a,c]))},sw:function(b,a,c){return e.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[b,a,c]))},ne:function(b,a,c){return e.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[b,a,c]))},nw:function(b,a,c){return e.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[b,a,c]))}},_propagate:function(b,a){e.ui.plugin.call(this,b,[a,this.ui()]);
-b!="resize"&&this._trigger(b,a,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}}});e.extend(e.ui.resizable,{version:"1.8.16"});e.ui.plugin.add("resizable","alsoResize",{start:function(){var b=e(this).data("resizable").options,a=function(c){e(c).each(function(){var d=e(this);d.data("resizable-alsoresize",{width:parseInt(d.width(),
-10),height:parseInt(d.height(),10),left:parseInt(d.css("left"),10),top:parseInt(d.css("top"),10),position:d.css("position")})})};if(typeof b.alsoResize=="object"&&!b.alsoResize.parentNode)if(b.alsoResize.length){b.alsoResize=b.alsoResize[0];a(b.alsoResize)}else e.each(b.alsoResize,function(c){a(c)});else a(b.alsoResize)},resize:function(b,a){var c=e(this).data("resizable");b=c.options;var d=c.originalSize,f=c.originalPosition,g={height:c.size.height-d.height||0,width:c.size.width-d.width||0,top:c.position.top-
-f.top||0,left:c.position.left-f.left||0},h=function(i,j){e(i).each(function(){var l=e(this),q=e(this).data("resizable-alsoresize"),p={},r=j&&j.length?j:l.parents(a.originalElement[0]).length?["width","height"]:["width","height","top","left"];e.each(r,function(n,o){if((n=(q[o]||0)+(g[o]||0))&&n>=0)p[o]=n||null});if(e.browser.opera&&/relative/.test(l.css("position"))){c._revertToRelativePosition=true;l.css({position:"absolute",top:"auto",left:"auto"})}l.css(p)})};typeof b.alsoResize=="object"&&!b.alsoResize.nodeType?
-e.each(b.alsoResize,function(i,j){h(i,j)}):h(b.alsoResize)},stop:function(){var b=e(this).data("resizable"),a=b.options,c=function(d){e(d).each(function(){var f=e(this);f.css({position:f.data("resizable-alsoresize").position})})};if(b._revertToRelativePosition){b._revertToRelativePosition=false;typeof a.alsoResize=="object"&&!a.alsoResize.nodeType?e.each(a.alsoResize,function(d){c(d)}):c(a.alsoResize)}e(this).removeData("resizable-alsoresize")}});e.ui.plugin.add("resizable","animate",{stop:function(b){var a=
-e(this).data("resizable"),c=a.options,d=a._proportionallyResizeElements,f=d.length&&/textarea/i.test(d[0].nodeName),g=f&&e.ui.hasScroll(d[0],"left")?0:a.sizeDiff.height;f={width:a.size.width-(f?0:a.sizeDiff.width),height:a.size.height-g};g=parseInt(a.element.css("left"),10)+(a.position.left-a.originalPosition.left)||null;var h=parseInt(a.element.css("top"),10)+(a.position.top-a.originalPosition.top)||null;a.element.animate(e.extend(f,h&&g?{top:h,left:g}:{}),{duration:c.animateDuration,easing:c.animateEasing,
-step:function(){var i={width:parseInt(a.element.css("width"),10),height:parseInt(a.element.css("height"),10),top:parseInt(a.element.css("top"),10),left:parseInt(a.element.css("left"),10)};d&&d.length&&e(d[0]).css({width:i.width,height:i.height});a._updateCache(i);a._propagate("resize",b)}})}});e.ui.plugin.add("resizable","containment",{start:function(){var b=e(this).data("resizable"),a=b.element,c=b.options.containment;if(a=c instanceof e?c.get(0):/parent/.test(c)?a.parent().get(0):c){b.containerElement=
-e(a);if(/document/.test(c)||c==document){b.containerOffset={left:0,top:0};b.containerPosition={left:0,top:0};b.parentData={element:e(document),left:0,top:0,width:e(document).width(),height:e(document).height()||document.body.parentNode.scrollHeight}}else{var d=e(a),f=[];e(["Top","Right","Left","Bottom"]).each(function(i,j){f[i]=m(d.css("padding"+j))});b.containerOffset=d.offset();b.containerPosition=d.position();b.containerSize={height:d.innerHeight()-f[3],width:d.innerWidth()-f[1]};c=b.containerOffset;
-var g=b.containerSize.height,h=b.containerSize.width;h=e.ui.hasScroll(a,"left")?a.scrollWidth:h;g=e.ui.hasScroll(a)?a.scrollHeight:g;b.parentData={element:a,left:c.left,top:c.top,width:h,height:g}}}},resize:function(b){var a=e(this).data("resizable"),c=a.options,d=a.containerOffset,f=a.position;b=a._aspectRatio||b.shiftKey;var g={top:0,left:0},h=a.containerElement;if(h[0]!=document&&/static/.test(h.css("position")))g=d;if(f.left<(a._helper?d.left:0)){a.size.width+=a._helper?a.position.left-d.left:
-a.position.left-g.left;if(b)a.size.height=a.size.width/c.aspectRatio;a.position.left=c.helper?d.left:0}if(f.top<(a._helper?d.top:0)){a.size.height+=a._helper?a.position.top-d.top:a.position.top;if(b)a.size.width=a.size.height*c.aspectRatio;a.position.top=a._helper?d.top:0}a.offset.left=a.parentData.left+a.position.left;a.offset.top=a.parentData.top+a.position.top;c=Math.abs((a._helper?a.offset.left-g.left:a.offset.left-g.left)+a.sizeDiff.width);d=Math.abs((a._helper?a.offset.top-g.top:a.offset.top-
-d.top)+a.sizeDiff.height);f=a.containerElement.get(0)==a.element.parent().get(0);g=/relative|absolute/.test(a.containerElement.css("position"));if(f&&g)c-=a.parentData.left;if(c+a.size.width>=a.parentData.width){a.size.width=a.parentData.width-c;if(b)a.size.height=a.size.width/a.aspectRatio}if(d+a.size.height>=a.parentData.height){a.size.height=a.parentData.height-d;if(b)a.size.width=a.size.height*a.aspectRatio}},stop:function(){var b=e(this).data("resizable"),a=b.options,c=b.containerOffset,d=b.containerPosition,
-f=b.containerElement,g=e(b.helper),h=g.offset(),i=g.outerWidth()-b.sizeDiff.width;g=g.outerHeight()-b.sizeDiff.height;b._helper&&!a.animate&&/relative/.test(f.css("position"))&&e(this).css({left:h.left-d.left-c.left,width:i,height:g});b._helper&&!a.animate&&/static/.test(f.css("position"))&&e(this).css({left:h.left-d.left-c.left,width:i,height:g})}});e.ui.plugin.add("resizable","ghost",{start:function(){var b=e(this).data("resizable"),a=b.options,c=b.size;b.ghost=b.originalElement.clone();b.ghost.css({opacity:0.25,
-display:"block",position:"relative",height:c.height,width:c.width,margin:0,left:0,top:0}).addClass("ui-resizable-ghost").addClass(typeof a.ghost=="string"?a.ghost:"");b.ghost.appendTo(b.helper)},resize:function(){var b=e(this).data("resizable");b.ghost&&b.ghost.css({position:"relative",height:b.size.height,width:b.size.width})},stop:function(){var b=e(this).data("resizable");b.ghost&&b.helper&&b.helper.get(0).removeChild(b.ghost.get(0))}});e.ui.plugin.add("resizable","grid",{resize:function(){var b=
-e(this).data("resizable"),a=b.options,c=b.size,d=b.originalSize,f=b.originalPosition,g=b.axis;a.grid=typeof a.grid=="number"?[a.grid,a.grid]:a.grid;var h=Math.round((c.width-d.width)/(a.grid[0]||1))*(a.grid[0]||1);a=Math.round((c.height-d.height)/(a.grid[1]||1))*(a.grid[1]||1);if(/^(se|s|e)$/.test(g)){b.size.width=d.width+h;b.size.height=d.height+a}else if(/^(ne)$/.test(g)){b.size.width=d.width+h;b.size.height=d.height+a;b.position.top=f.top-a}else{if(/^(sw)$/.test(g)){b.size.width=d.width+h;b.size.height=
-d.height+a}else{b.size.width=d.width+h;b.size.height=d.height+a;b.position.top=f.top-a}b.position.left=f.left-h}}});var m=function(b){return parseInt(b,10)||0},k=function(b){return!isNaN(parseInt(b,10))}})(jQuery);
-;/*
- * jQuery UI Selectable 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/Selectables
- *
- * Depends:
- *	jquery.ui.core.js
- *	jquery.ui.mouse.js
- *	jquery.ui.widget.js
- */
-(function(e){e.widget("ui.selectable",e.ui.mouse,{options:{appendTo:"body",autoRefresh:true,distance:0,filter:"*",tolerance:"touch"},_create:function(){var c=this;this.element.addClass("ui-selectable");this.dragged=false;var f;this.refresh=function(){f=e(c.options.filter,c.element[0]);f.each(function(){var d=e(this),b=d.offset();e.data(this,"selectable-item",{element:this,$element:d,left:b.left,top:b.top,right:b.left+d.outerWidth(),bottom:b.top+d.outerHeight(),startselected:false,selected:d.hasClass("ui-selected"),
-selecting:d.hasClass("ui-selecting"),unselecting:d.hasClass("ui-unselecting")})})};this.refresh();this.selectees=f.addClass("ui-selectee");this._mouseInit();this.helper=e("<div class='ui-selectable-helper'></div>")},destroy:function(){this.selectees.removeClass("ui-selectee").removeData("selectable-item");this.element.removeClass("ui-selectable ui-selectable-disabled").removeData("selectable").unbind(".selectable");this._mouseDestroy();return this},_mouseStart:function(c){var f=this;this.opos=[c.pageX,
-c.pageY];if(!this.options.disabled){var d=this.options;this.selectees=e(d.filter,this.element[0]);this._trigger("start",c);e(d.appendTo).append(this.helper);this.helper.css({left:c.clientX,top:c.clientY,width:0,height:0});d.autoRefresh&&this.refresh();this.selectees.filter(".ui-selected").each(function(){var b=e.data(this,"selectable-item");b.startselected=true;if(!c.metaKey){b.$element.removeClass("ui-selected");b.selected=false;b.$element.addClass("ui-unselecting");b.unselecting=true;f._trigger("unselecting",
-c,{unselecting:b.element})}});e(c.target).parents().andSelf().each(function(){var b=e.data(this,"selectable-item");if(b){var g=!c.metaKey||!b.$element.hasClass("ui-selected");b.$element.removeClass(g?"ui-unselecting":"ui-selected").addClass(g?"ui-selecting":"ui-unselecting");b.unselecting=!g;b.selecting=g;(b.selected=g)?f._trigger("selecting",c,{selecting:b.element}):f._trigger("unselecting",c,{unselecting:b.element});return false}})}},_mouseDrag:function(c){var f=this;this.dragged=true;if(!this.options.disabled){var d=
-this.options,b=this.opos[0],g=this.opos[1],h=c.pageX,i=c.pageY;if(b>h){var j=h;h=b;b=j}if(g>i){j=i;i=g;g=j}this.helper.css({left:b,top:g,width:h-b,height:i-g});this.selectees.each(function(){var a=e.data(this,"selectable-item");if(!(!a||a.element==f.element[0])){var k=false;if(d.tolerance=="touch")k=!(a.left>h||a.right<b||a.top>i||a.bottom<g);else if(d.tolerance=="fit")k=a.left>b&&a.right<h&&a.top>g&&a.bottom<i;if(k){if(a.selected){a.$element.removeClass("ui-selected");a.selected=false}if(a.unselecting){a.$element.removeClass("ui-unselecting");
-a.unselecting=false}if(!a.selecting){a.$element.addClass("ui-selecting");a.selecting=true;f._trigger("selecting",c,{selecting:a.element})}}else{if(a.selecting)if(c.metaKey&&a.startselected){a.$element.removeClass("ui-selecting");a.selecting=false;a.$element.addClass("ui-selected");a.selected=true}else{a.$element.removeClass("ui-selecting");a.selecting=false;if(a.startselected){a.$element.addClass("ui-unselecting");a.unselecting=true}f._trigger("unselecting",c,{unselecting:a.element})}if(a.selected)if(!c.metaKey&&
-!a.startselected){a.$element.removeClass("ui-selected");a.selected=false;a.$element.addClass("ui-unselecting");a.unselecting=true;f._trigger("unselecting",c,{unselecting:a.element})}}}});return false}},_mouseStop:function(c){var f=this;this.dragged=false;e(".ui-unselecting",this.element[0]).each(function(){var d=e.data(this,"selectable-item");d.$element.removeClass("ui-unselecting");d.unselecting=false;d.startselected=false;f._trigger("unselected",c,{unselected:d.element})});e(".ui-selecting",this.element[0]).each(function(){var d=
-e.data(this,"selectable-item");d.$element.removeClass("ui-selecting").addClass("ui-selected");d.selecting=false;d.selected=true;d.startselected=true;f._trigger("selected",c,{selected:d.element})});this._trigger("stop",c);this.helper.remove();return false}});e.extend(e.ui.selectable,{version:"1.8.16"})})(jQuery);
-;/*
- * jQuery UI Sortable 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/Sortables
- *
- * Depends:
- *	jquery.ui.core.js
- *	jquery.ui.mouse.js
- *	jquery.ui.widget.js
- */
-(function(d){d.widget("ui.sortable",d.ui.mouse,{widgetEventPrefix:"sort",options:{appendTo:"parent",axis:false,connectWith:false,containment:false,cursor:"auto",cursorAt:false,dropOnEmpty:true,forcePlaceholderSize:false,forceHelperSize:false,grid:false,handle:false,helper:"original",items:"> *",opacity:false,placeholder:false,revert:false,scroll:true,scrollSensitivity:20,scrollSpeed:20,scope:"default",tolerance:"intersect",zIndex:1E3},_create:function(){var a=this.options;this.containerCache={};this.element.addClass("ui-sortable");
-this.refresh();this.floating=this.items.length?a.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 a=this.items.length-1;a>=0;a--)this.items[a].item.removeData("sortable-item");return this},_setOption:function(a,b){if(a===
-"disabled"){this.options[a]=b;this.widget()[b?"addClass":"removeClass"]("ui-sortable-disabled")}else d.Widget.prototype._setOption.apply(this,arguments)},_mouseCapture:function(a,b){if(this.reverting)return false;if(this.options.disabled||this.options.type=="static")return false;this._refreshItems(a);var c=null,e=this;d(a.target).parents().each(function(){if(d.data(this,"sortable-item")==e){c=d(this);return false}});if(d.data(a.target,"sortable-item")==e)c=d(a.target);if(!c)return false;if(this.options.handle&&
-!b){var f=false;d(this.options.handle,c).find("*").andSelf().each(function(){if(this==a.target)f=true});if(!f)return false}this.currentItem=c;this._removeCurrentsFromItems();return true},_mouseStart:function(a,b,c){b=this.options;var e=this;this.currentContainer=this;this.refreshPositions();this.helper=this._createHelper(a);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");d.extend(this.offset,{click:{left:a.pageX-this.offset.left,top:a.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()});this.originalPosition=this._generatePosition(a);this.originalPageX=a.pageX;this.originalPageY=a.pageY;b.cursorAt&&this._adjustOffsetFromHelper(b.cursorAt);this.domPosition={prev:this.currentItem.prev()[0],parent:this.currentItem.parent()[0]};
-this.helper[0]!=this.currentItem[0]&&this.currentItem.hide();this._createPlaceholder();b.containment&&this._setContainment();if(b.cursor){if(d("body").css("cursor"))this._storedCursor=d("body").css("cursor");d("body").css("cursor",b.cursor)}if(b.opacity){if(this.helper.css("opacity"))this._storedOpacity=this.helper.css("opacity");this.helper.css("opacity",b.opacity)}if(b.zIndex){if(this.helper.css("zIndex"))this._storedZIndex=this.helper.css("zIndex");this.helper.css("zIndex",b.zIndex)}if(this.scrollParent[0]!=
-document&&this.scrollParent[0].tagName!="HTML")this.overflowOffset=this.scrollParent.offset();this._trigger("start",a,this._uiHash());this._preserveHelperProportions||this._cacheHelperProportions();if(!c)for(c=this.containers.length-1;c>=0;c--)this.containers[c]._trigger("activate",a,e._uiHash(this));if(d.ui.ddmanager)d.ui.ddmanager.current=this;d.ui.ddmanager&&!b.dropBehaviour&&d.ui.ddmanager.prepareOffsets(this,a);this.dragging=true;this.helper.addClass("ui-sortable-helper");this._mouseDrag(a);
-return true},_mouseDrag:function(a){this.position=this._generatePosition(a);this.positionAbs=this._convertPositionTo("absolute");if(!this.lastPositionAbs)this.lastPositionAbs=this.positionAbs;if(this.options.scroll){var b=this.options,c=false;if(this.scrollParent[0]!=document&&this.scrollParent[0].tagName!="HTML"){if(this.overflowOffset.top+this.scrollParent[0].offsetHeight-a.pageY<b.scrollSensitivity)this.scrollParent[0].scrollTop=c=this.scrollParent[0].scrollTop+b.scrollSpeed;else if(a.pageY-this.overflowOffset.top<
-b.scrollSensitivity)this.scrollParent[0].scrollTop=c=this.scrollParent[0].scrollTop-b.scrollSpeed;if(this.overflowOffset.left+this.scrollParent[0].offsetWidth-a.pageX<b.scrollSensitivity)this.scrollParent[0].scrollLeft=c=this.scrollParent[0].scrollLeft+b.scrollSpeed;else if(a.pageX-this.overflowOffset.left<b.scrollSensitivity)this.scrollParent[0].scrollLeft=c=this.scrollParent[0].scrollLeft-b.scrollSpeed}else{if(a.pageY-d(document).scrollTop()<b.scrollSensitivity)c=d(document).scrollTop(d(document).scrollTop()-
-b.scrollSpeed);else if(d(window).height()-(a.pageY-d(document).scrollTop())<b.scrollSensitivity)c=d(document).scrollTop(d(document).scrollTop()+b.scrollSpeed);if(a.pageX-d(document).scrollLeft()<b.scrollSensitivity)c=d(document).scrollLeft(d(document).scrollLeft()-b.scrollSpeed);else if(d(window).width()-(a.pageX-d(document).scrollLeft())<b.scrollSensitivity)c=d(document).scrollLeft(d(document).scrollLeft()+b.scrollSpeed)}c!==false&&d.ui.ddmanager&&!b.dropBehaviour&&d.ui.ddmanager.prepareOffsets(this,
-a)}this.positionAbs=this._convertPositionTo("absolute");if(!this.options.axis||this.options.axis!="y")this.helper[0].style.left=this.position.left+"px";if(!this.options.axis||this.options.axis!="x")this.helper[0].style.top=this.position.top+"px";for(b=this.items.length-1;b>=0;b--){c=this.items[b];var e=c.item[0],f=this._intersectsWithPointer(c);if(f)if(e!=this.currentItem[0]&&this.placeholder[f==1?"next":"prev"]()[0]!=e&&!d.ui.contains(this.placeholder[0],e)&&(this.options.type=="semi-dynamic"?!d.ui.contains(this.element[0],
-e):true)){this.direction=f==1?"down":"up";if(this.options.tolerance=="pointer"||this._intersectsWithSides(c))this._rearrange(a,c);else break;this._trigger("change",a,this._uiHash());break}}this._contactContainers(a);d.ui.ddmanager&&d.ui.ddmanager.drag(this,a);this._trigger("sort",a,this._uiHash());this.lastPositionAbs=this.positionAbs;return false},_mouseStop:function(a,b){if(a){d.ui.ddmanager&&!this.options.dropBehaviour&&d.ui.ddmanager.drop(this,a);if(this.options.revert){var c=this;b=c.placeholder.offset();
-c.reverting=true;d(this.helper).animate({left:b.left-this.offset.parent.left-c.margins.left+(this.offsetParent[0]==document.body?0:this.offsetParent[0].scrollLeft),top:b.top-this.offset.parent.top-c.margins.top+(this.offsetParent[0]==document.body?0:this.offsetParent[0].scrollTop)},parseInt(this.options.revert,10)||500,function(){c._clear(a)})}else this._clear(a,b);return false}},cancel:function(){var a=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 b=this.containers.length-1;b>=0;b--){this.containers[b]._trigger("deactivate",null,a._uiHash(this));if(this.containers[b].containerCache.over){this.containers[b]._trigger("out",null,a._uiHash(this));this.containers[b].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();d.extend(this,{helper:null,
-dragging:false,reverting:false,_noFinalSort:null});this.domPosition.prev?d(this.domPosition.prev).after(this.currentItem):d(this.domPosition.parent).prepend(this.currentItem)}return this},serialize:function(a){var b=this._getItemsAsjQuery(a&&a.connected),c=[];a=a||{};d(b).each(function(){var e=(d(a.item||this).attr(a.attribute||"id")||"").match(a.expression||/(.+)[-=_](.+)/);if(e)c.push((a.key||e[1]+"[]")+"="+(a.key&&a.expression?e[1]:e[2]))});!c.length&&a.key&&c.push(a.key+"=");return c.join("&")},
-toArray:function(a){var b=this._getItemsAsjQuery(a&&a.connected),c=[];a=a||{};b.each(function(){c.push(d(a.item||this).attr(a.attribute||"id")||"")});return c},_intersectsWith:function(a){var b=this.positionAbs.left,c=b+this.helperProportions.width,e=this.positionAbs.top,f=e+this.helperProportions.height,g=a.left,h=g+a.width,i=a.top,k=i+a.height,j=this.offset.click.top,l=this.offset.click.left;j=e+j>i&&e+j<k&&b+l>g&&b+l<h;return this.options.tolerance=="pointer"||this.options.forcePointerForContainers||
-this.options.tolerance!="pointer"&&this.helperProportions[this.floating?"width":"height"]>a[this.floating?"width":"height"]?j:g<b+this.helperProportions.width/2&&c-this.helperProportions.width/2<h&&i<e+this.helperProportions.height/2&&f-this.helperProportions.height/2<k},_intersectsWithPointer:function(a){var b=d.ui.isOverAxis(this.positionAbs.top+this.offset.click.top,a.top,a.height);a=d.ui.isOverAxis(this.positionAbs.left+this.offset.click.left,a.left,a.width);b=b&&a;a=this._getDragVerticalDirection();
-var c=this._getDragHorizontalDirection();if(!b)return false;return this.floating?c&&c=="right"||a=="down"?2:1:a&&(a=="down"?2:1)},_intersectsWithSides:function(a){var b=d.ui.isOverAxis(this.positionAbs.top+this.offset.click.top,a.top+a.height/2,a.height);a=d.ui.isOverAxis(this.positionAbs.left+this.offset.click.left,a.left+a.width/2,a.width);var c=this._getDragVerticalDirection(),e=this._getDragHorizontalDirection();return this.floating&&e?e=="right"&&a||e=="left"&&!a:c&&(c=="down"&&b||c=="up"&&!b)},
-_getDragVerticalDirection:function(){var a=this.positionAbs.top-this.lastPositionAbs.top;return a!=0&&(a>0?"down":"up")},_getDragHorizontalDirection:function(){var a=this.positionAbs.left-this.lastPositionAbs.left;return a!=0&&(a>0?"right":"left")},refresh:function(a){this._refreshItems(a);this.refreshPositions();return this},_connectWith:function(){var a=this.options;return a.connectWith.constructor==String?[a.connectWith]:a.connectWith},_getItemsAsjQuery:function(a){var b=[],c=[],e=this._connectWith();
-if(e&&a)for(a=e.length-1;a>=0;a--)for(var f=d(e[a]),g=f.length-1;g>=0;g--){var h=d.data(f[g],"sortable");if(h&&h!=this&&!h.options.disabled)c.push([d.isFunction(h.options.items)?h.options.items.call(h.element):d(h.options.items,h.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"),h])}c.push([d.isFunction(this.options.items)?this.options.items.call(this.element,null,{options:this.options,item:this.currentItem}):d(this.options.items,this.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"),
-this]);for(a=c.length-1;a>=0;a--)c[a][0].each(function(){b.push(this)});return d(b)},_removeCurrentsFromItems:function(){for(var a=this.currentItem.find(":data(sortable-item)"),b=0;b<this.items.length;b++)for(var c=0;c<a.length;c++)a[c]==this.items[b].item[0]&&this.items.splice(b,1)},_refreshItems:function(a){this.items=[];this.containers=[this];var b=this.items,c=[[d.isFunction(this.options.items)?this.options.items.call(this.element[0],a,{item:this.currentItem}):d(this.options.items,this.element),
-this]],e=this._connectWith();if(e)for(var f=e.length-1;f>=0;f--)for(var g=d(e[f]),h=g.length-1;h>=0;h--){var i=d.data(g[h],"sortable");if(i&&i!=this&&!i.options.disabled){c.push([d.isFunction(i.options.items)?i.options.items.call(i.element[0],a,{item:this.currentItem}):d(i.options.items,i.element),i]);this.containers.push(i)}}for(f=c.length-1;f>=0;f--){a=c[f][1];e=c[f][0];h=0;for(g=e.length;h<g;h++){i=d(e[h]);i.data("sortable-item",a);b.push({item:i,instance:a,width:0,height:0,left:0,top:0})}}},refreshPositions:function(a){if(this.offsetParent&&
-this.helper)this.offset.parent=this._getParentOffset();for(var b=this.items.length-1;b>=0;b--){var c=this.items[b];if(!(c.instance!=this.currentContainer&&this.currentContainer&&c.item[0]!=this.currentItem[0])){var e=this.options.toleranceElement?d(this.options.toleranceElement,c.item):c.item;if(!a){c.width=e.outerWidth();c.height=e.outerHeight()}e=e.offset();c.left=e.left;c.top=e.top}}if(this.options.custom&&this.options.custom.refreshContainers)this.options.custom.refreshContainers.call(this);else for(b=
-this.containers.length-1;b>=0;b--){e=this.containers[b].element.offset();this.containers[b].containerCache.left=e.left;this.containers[b].containerCache.top=e.top;this.containers[b].containerCache.width=this.containers[b].element.outerWidth();this.containers[b].containerCache.height=this.containers[b].element.outerHeight()}return this},_createPlaceholder:function(a){var b=a||this,c=b.options;if(!c.placeholder||c.placeholder.constructor==String){var e=c.placeholder;c.placeholder={element:function(){var f=
-d(document.createElement(b.currentItem[0].nodeName)).addClass(e||b.currentItem[0].className+" ui-sortable-placeholder").removeClass("ui-sortable-helper")[0];if(!e)f.style.visibility="hidden";return f},update:function(f,g){if(!(e&&!c.forcePlaceholderSize)){g.height()||g.height(b.currentItem.innerHeight()-parseInt(b.currentItem.css("paddingTop")||0,10)-parseInt(b.currentItem.css("paddingBottom")||0,10));g.width()||g.width(b.currentItem.innerWidth()-parseInt(b.currentItem.css("paddingLeft")||0,10)-parseInt(b.currentItem.css("paddingRight")||
-0,10))}}}}b.placeholder=d(c.placeholder.element.call(b.element,b.currentItem));b.currentItem.after(b.placeholder);c.placeholder.update(b,b.placeholder)},_contactContainers:function(a){for(var b=null,c=null,e=this.containers.length-1;e>=0;e--)if(!d.ui.contains(this.currentItem[0],this.containers[e].element[0]))if(this._intersectsWith(this.containers[e].containerCache)){if(!(b&&d.ui.contains(this.containers[e].element[0],b.element[0]))){b=this.containers[e];c=e}}else if(this.containers[e].containerCache.over){this.containers[e]._trigger("out",
-a,this._uiHash(this));this.containers[e].containerCache.over=0}if(b)if(this.containers.length===1){this.containers[c]._trigger("over",a,this._uiHash(this));this.containers[c].containerCache.over=1}else if(this.currentContainer!=this.containers[c]){b=1E4;e=null;for(var f=this.positionAbs[this.containers[c].floating?"left":"top"],g=this.items.length-1;g>=0;g--)if(d.ui.contains(this.containers[c].element[0],this.items[g].item[0])){var h=this.items[g][this.containers[c].floating?"left":"top"];if(Math.abs(h-
-f)<b){b=Math.abs(h-f);e=this.items[g]}}if(e||this.options.dropOnEmpty){this.currentContainer=this.containers[c];e?this._rearrange(a,e,null,true):this._rearrange(a,null,this.containers[c].element,true);this._trigger("change",a,this._uiHash());this.containers[c]._trigger("change",a,this._uiHash(this));this.options.placeholder.update(this.currentContainer,this.placeholder);this.containers[c]._trigger("over",a,this._uiHash(this));this.containers[c].containerCache.over=1}}},_createHelper:function(a){var b=
-this.options;a=d.isFunction(b.helper)?d(b.helper.apply(this.element[0],[a,this.currentItem])):b.helper=="clone"?this.currentItem.clone():this.currentItem;a.parents("body").length||d(b.appendTo!="parent"?b.appendTo:this.currentItem[0].parentNode)[0].appendChild(a[0]);if(a[0]==this.currentItem[0])this._storedCSS={width:this.currentItem[0].style.width,height:this.currentItem[0].style.height,position:this.currentItem.css("position"),top:this.currentItem.css("top"),left:this.currentItem.css("left")};if(a[0].style.width==
-""||b.forceHelperSize)a.width(this.currentItem.width());if(a[0].style.height==""||b.forceHelperSize)a.height(this.currentItem.height());return a},_adjustOffsetFromHelper:function(a){if(typeof a=="string")a=a.split(" ");if(d.isArray(a))a={left:+a[0],top:+a[1]||0};if("left"in a)this.offset.click.left=a.left+this.margins.left;if("right"in a)this.offset.click.left=this.helperProportions.width-a.right+this.margins.left;if("top"in a)this.offset.click.top=a.top+this.margins.top;if("bottom"in a)this.offset.click.top=
-this.helperProportions.height-a.bottom+this.margins.top},_getParentOffset:function(){this.offsetParent=this.helper.offsetParent();var a=this.offsetParent.offset();if(this.cssPosition=="absolute"&&this.scrollParent[0]!=document&&d.ui.contains(this.scrollParent[0],this.offsetParent[0])){a.left+=this.scrollParent.scrollLeft();a.top+=this.scrollParent.scrollTop()}if(this.offsetParent[0]==document.body||this.offsetParent[0].tagName&&this.offsetParent[0].tagName.toLowerCase()=="html"&&d.browser.msie)a=
-{top:0,left:0};return{top:a.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:a.left+(parseInt(this.offsetParent.css("borderLeftWidth"),10)||0)}},_getRelativeOffset:function(){if(this.cssPosition=="relative"){var a=this.currentItem.position();return{top:a.top-(parseInt(this.helper.css("top"),10)||0)+this.scrollParent.scrollTop(),left:a.left-(parseInt(this.helper.css("left"),10)||0)+this.scrollParent.scrollLeft()}}else return{top:0,left:0}},_cacheMargins:function(){this.margins={left:parseInt(this.currentItem.css("marginLeft"),
-10)||0,top:parseInt(this.currentItem.css("marginTop"),10)||0}},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()}},_setContainment:function(){var a=this.options;if(a.containment=="parent")a.containment=this.helper[0].parentNode;if(a.containment=="document"||a.containment=="window")this.containment=[0-this.offset.relative.left-this.offset.parent.left,0-this.offset.relative.top-this.offset.parent.top,d(a.containment=="document"?
-document:window).width()-this.helperProportions.width-this.margins.left,(d(a.containment=="document"?document:window).height()||document.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top];if(!/^(document|window|parent)$/.test(a.containment)){var b=d(a.containment)[0];a=d(a.containment).offset();var c=d(b).css("overflow")!="hidden";this.containment=[a.left+(parseInt(d(b).css("borderLeftWidth"),10)||0)+(parseInt(d(b).css("paddingLeft"),10)||0)-this.margins.left,a.top+(parseInt(d(b).css("borderTopWidth"),
-10)||0)+(parseInt(d(b).css("paddingTop"),10)||0)-this.margins.top,a.left+(c?Math.max(b.scrollWidth,b.offsetWidth):b.offsetWidth)-(parseInt(d(b).css("borderLeftWidth"),10)||0)-(parseInt(d(b).css("paddingRight"),10)||0)-this.helperProportions.width-this.margins.left,a.top+(c?Math.max(b.scrollHeight,b.offsetHeight):b.offsetHeight)-(parseInt(d(b).css("borderTopWidth"),10)||0)-(parseInt(d(b).css("paddingBottom"),10)||0)-this.helperProportions.height-this.margins.top]}},_convertPositionTo:function(a,b){if(!b)b=
-this.position;a=a=="absolute"?1:-1;var c=this.cssPosition=="absolute"&&!(this.scrollParent[0]!=document&&d.ui.contains(this.scrollParent[0],this.offsetParent[0]))?this.offsetParent:this.scrollParent,e=/(html|body)/i.test(c[0].tagName);return{top:b.top+this.offset.relative.top*a+this.offset.parent.top*a-(d.browser.safari&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollTop():e?0:c.scrollTop())*a),left:b.left+this.offset.relative.left*a+this.offset.parent.left*a-(d.browser.safari&&
-this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollLeft():e?0:c.scrollLeft())*a)}},_generatePosition:function(a){var b=this.options,c=this.cssPosition=="absolute"&&!(this.scrollParent[0]!=document&&d.ui.contains(this.scrollParent[0],this.offsetParent[0]))?this.offsetParent:this.scrollParent,e=/(html|body)/i.test(c[0].tagName);if(this.cssPosition=="relative"&&!(this.scrollParent[0]!=document&&this.scrollParent[0]!=this.offsetParent[0]))this.offset.relative=this._getRelativeOffset();
-var f=a.pageX,g=a.pageY;if(this.originalPosition){if(this.containment){if(a.pageX-this.offset.click.left<this.containment[0])f=this.containment[0]+this.offset.click.left;if(a.pageY-this.offset.click.top<this.containment[1])g=this.containment[1]+this.offset.click.top;if(a.pageX-this.offset.click.left>this.containment[2])f=this.containment[2]+this.offset.click.left;if(a.pageY-this.offset.click.top>this.containment[3])g=this.containment[3]+this.offset.click.top}if(b.grid){g=this.originalPageY+Math.round((g-
-this.originalPageY)/b.grid[1])*b.grid[1];g=this.containment?!(g-this.offset.click.top<this.containment[1]||g-this.offset.click.top>this.containment[3])?g:!(g-this.offset.click.top<this.containment[1])?g-b.grid[1]:g+b.grid[1]:g;f=this.originalPageX+Math.round((f-this.originalPageX)/b.grid[0])*b.grid[0];f=this.containment?!(f-this.offset.click.left<this.containment[0]||f-this.offset.click.left>this.containment[2])?f:!(f-this.offset.click.left<this.containment[0])?f-b.grid[0]:f+b.grid[0]:f}}return{top:g-
-this.offset.click.top-this.offset.relative.top-this.offset.parent.top+(d.browser.safari&&this.cssPosition=="fixed"?0:this.cssPosition=="fixed"?-this.scrollParent.scrollTop():e?0:c.scrollTop()),left:f-this.offset.click.left-this.offset.relative.left-this.offset.parent.left+(d.browser.safari&&this.cssPosition=="fixed"?0:this.cssPosition=="fixed"?-this.scrollParent.scrollLeft():e?0:c.scrollLeft())}},_rearrange:function(a,b,c,e){c?c[0].appendChild(this.placeholder[0]):b.item[0].parentNode.insertBefore(this.placeholder[0],
-this.direction=="down"?b.item[0]:b.item[0].nextSibling);this.counter=this.counter?++this.counter:1;var f=this,g=this.counter;window.setTimeout(function(){g==f.counter&&f.refreshPositions(!e)},0)},_clear:function(a,b){this.reverting=false;var c=[];!this._noFinalSort&&this.currentItem.parent().length&&this.placeholder.before(this.currentItem);this._noFinalSort=null;if(this.helper[0]==this.currentItem[0]){for(var e in this._storedCSS)if(this._storedCSS[e]=="auto"||this._storedCSS[e]=="static")this._storedCSS[e]=
-"";this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper")}else this.currentItem.show();this.fromOutside&&!b&&c.push(function(f){this._trigger("receive",f,this._uiHash(this.fromOutside))});if((this.fromOutside||this.domPosition.prev!=this.currentItem.prev().not(".ui-sortable-helper")[0]||this.domPosition.parent!=this.currentItem.parent()[0])&&!b)c.push(function(f){this._trigger("update",f,this._uiHash())});if(!d.ui.contains(this.element[0],this.currentItem[0])){b||c.push(function(f){this._trigger("remove",
-f,this._uiHash())});for(e=this.containers.length-1;e>=0;e--)if(d.ui.contains(this.containers[e].element[0],this.currentItem[0])&&!b){c.push(function(f){return function(g){f._trigger("receive",g,this._uiHash(this))}}.call(this,this.containers[e]));c.push(function(f){return function(g){f._trigger("update",g,this._uiHash(this))}}.call(this,this.containers[e]))}}for(e=this.containers.length-1;e>=0;e--){b||c.push(function(f){return function(g){f._trigger("deactivate",g,this._uiHash(this))}}.call(this,
-this.containers[e]));if(this.containers[e].containerCache.over){c.push(function(f){return function(g){f._trigger("out",g,this._uiHash(this))}}.call(this,this.containers[e]));this.containers[e].containerCache.over=0}}this._storedCursor&&d("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(!b){this._trigger("beforeStop",
-a,this._uiHash());for(e=0;e<c.length;e++)c[e].call(this,a);this._trigger("stop",a,this._uiHash())}return false}b||this._trigger("beforeStop",a,this._uiHash());this.placeholder[0].parentNode.removeChild(this.placeholder[0]);this.helper[0]!=this.currentItem[0]&&this.helper.remove();this.helper=null;if(!b){for(e=0;e<c.length;e++)c[e].call(this,a);this._trigger("stop",a,this._uiHash())}this.fromOutside=false;return true},_trigger:function(){d.Widget.prototype._trigger.apply(this,arguments)===false&&this.cancel()},
-_uiHash:function(a){var b=a||this;return{helper:b.helper,placeholder:b.placeholder||d([]),position:b.position,originalPosition:b.originalPosition,offset:b.positionAbs,item:b.currentItem,sender:a?a.element:null}}});d.extend(d.ui.sortable,{version:"1.8.16"})})(jQuery);
-;/*
- * jQuery UI Accordion 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/Accordion
- *
- * Depends:
- *	jquery.ui.core.js
- *	jquery.ui.widget.js
- */
-(function(c){c.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 a=this,b=a.options;a.running=0;a.element.addClass("ui-accordion ui-widget ui-helper-reset").children("li").addClass("ui-accordion-li-fix");
-a.headers=a.element.find(b.header).addClass("ui-accordion-header ui-helper-reset ui-state-default ui-corner-all").bind("mouseenter.accordion",function(){b.disabled||c(this).addClass("ui-state-hover")}).bind("mouseleave.accordion",function(){b.disabled||c(this).removeClass("ui-state-hover")}).bind("focus.accordion",function(){b.disabled||c(this).addClass("ui-state-focus")}).bind("blur.accordion",function(){b.disabled||c(this).removeClass("ui-state-focus")});a.headers.next().addClass("ui-accordion-content ui-helper-reset ui-widget-content ui-corner-bottom");
-if(b.navigation){var d=a.element.find("a").filter(b.navigationFilter).eq(0);if(d.length){var h=d.closest(".ui-accordion-header");a.active=h.length?h:d.closest(".ui-accordion-content").prev()}}a.active=a._findActive(a.active||b.active).addClass("ui-state-default ui-state-active").toggleClass("ui-corner-all").toggleClass("ui-corner-top");a.active.next().addClass("ui-accordion-content-active");a._createIcons();a.resize();a.element.attr("role","tablist");a.headers.attr("role","tab").bind("keydown.accordion",
-function(f){return a._keydown(f)}).next().attr("role","tabpanel");a.headers.not(a.active||"").attr({"aria-expanded":"false","aria-selected":"false",tabIndex:-1}).next().hide();a.active.length?a.active.attr({"aria-expanded":"true","aria-selected":"true",tabIndex:0}):a.headers.eq(0).attr("tabIndex",0);c.browser.safari||a.headers.find("a").attr("tabIndex",-1);b.event&&a.headers.bind(b.event.split(" ").join(".accordion ")+".accordion",function(f){a._clickHandler.call(a,f,this);f.preventDefault()})},_createIcons:function(){var a=
-this.options;if(a.icons){c("<span></span>").addClass("ui-icon "+a.icons.header).prependTo(this.headers);this.active.children(".ui-icon").toggleClass(a.icons.header).toggleClass(a.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 a=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 b=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(a.autoHeight||a.fillHeight)b.css("height","");return c.Widget.prototype.destroy.call(this)},_setOption:function(a,b){c.Widget.prototype._setOption.apply(this,arguments);a=="active"&&this.activate(b);if(a=="icons"){this._destroyIcons();
-b&&this._createIcons()}if(a=="disabled")this.headers.add(this.headers.next())[b?"addClass":"removeClass"]("ui-accordion-disabled ui-state-disabled")},_keydown:function(a){if(!(this.options.disabled||a.altKey||a.ctrlKey)){var b=c.ui.keyCode,d=this.headers.length,h=this.headers.index(a.target),f=false;switch(a.keyCode){case b.RIGHT:case b.DOWN:f=this.headers[(h+1)%d];break;case b.LEFT:case b.UP:f=this.headers[(h-1+d)%d];break;case b.SPACE:case b.ENTER:this._clickHandler({target:a.target},a.target);
-a.preventDefault()}if(f){c(a.target).attr("tabIndex",-1);c(f).attr("tabIndex",0);f.focus();return false}return true}},resize:function(){var a=this.options,b;if(a.fillSpace){if(c.browser.msie){var d=this.element.parent().css("overflow");this.element.parent().css("overflow","hidden")}b=this.element.parent().height();c.browser.msie&&this.element.parent().css("overflow",d);this.headers.each(function(){b-=c(this).outerHeight(true)});this.headers.next().each(function(){c(this).height(Math.max(0,b-c(this).innerHeight()+
-c(this).height()))}).css("overflow","auto")}else if(a.autoHeight){b=0;this.headers.next().each(function(){b=Math.max(b,c(this).height("").height())}).height(b)}return this},activate:function(a){this.options.active=a;a=this._findActive(a)[0];this._clickHandler({target:a},a);return this},_findActive:function(a){return a?typeof a==="number"?this.headers.filter(":eq("+a+")"):this.headers.not(this.headers.not(a)):a===false?c([]):this.headers.filter(":eq(0)")},_clickHandler:function(a,b){var d=this.options;
-if(!d.disabled)if(a.target){a=c(a.currentTarget||b);b=a[0]===this.active[0];d.active=d.collapsible&&b?false:this.headers.index(a);if(!(this.running||!d.collapsible&&b)){var h=this.active;j=a.next();g=this.active.next();e={options:d,newHeader:b&&d.collapsible?c([]):a,oldHeader:this.active,newContent:b&&d.collapsible?c([]):j,oldContent:g};var f=this.headers.index(this.active[0])>this.headers.index(a[0]);this.active=b?c([]):a;this._toggle(j,g,e,b,f);h.removeClass("ui-state-active ui-corner-top").addClass("ui-state-default ui-corner-all").children(".ui-icon").removeClass(d.icons.headerSelected).addClass(d.icons.header);
-if(!b){a.removeClass("ui-state-default ui-corner-all").addClass("ui-state-active ui-corner-top").children(".ui-icon").removeClass(d.icons.header).addClass(d.icons.headerSelected);a.next().addClass("ui-accordion-content-active")}}}else if(d.collapsible){this.active.removeClass("ui-state-active ui-corner-top").addClass("ui-state-default ui-corner-all").children(".ui-icon").removeClass(d.icons.headerSelected).addClass(d.icons.header);this.active.next().addClass("ui-accordion-content-active");var g=this.active.next(),
-e={options:d,newHeader:c([]),oldHeader:d.active,newContent:c([]),oldContent:g},j=this.active=c([]);this._toggle(j,g,e)}},_toggle:function(a,b,d,h,f){var g=this,e=g.options;g.toShow=a;g.toHide=b;g.data=d;var j=function(){if(g)return g._completed.apply(g,arguments)};g._trigger("changestart",null,g.data);g.running=b.size()===0?a.size():b.size();if(e.animated){d={};d=e.collapsible&&h?{toShow:c([]),toHide:b,complete:j,down:f,autoHeight:e.autoHeight||e.fillSpace}:{toShow:a,toHide:b,complete:j,down:f,autoHeight:e.autoHeight||
-e.fillSpace};if(!e.proxied)e.proxied=e.animated;if(!e.proxiedDuration)e.proxiedDuration=e.duration;e.animated=c.isFunction(e.proxied)?e.proxied(d):e.proxied;e.duration=c.isFunction(e.proxiedDuration)?e.proxiedDuration(d):e.proxiedDuration;h=c.ui.accordion.animations;var i=e.duration,k=e.animated;if(k&&!h[k]&&!c.easing[k])k="slide";h[k]||(h[k]=function(l){this.slide(l,{easing:k,duration:i||700})});h[k](d)}else{if(e.collapsible&&h)a.toggle();else{b.hide();a.show()}j(true)}b.prev().attr({"aria-expanded":"false",
-"aria-selected":"false",tabIndex:-1}).blur();a.prev().attr({"aria-expanded":"true","aria-selected":"true",tabIndex:0}).focus()},_completed:function(a){this.running=a?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)}}});c.extend(c.ui.accordion,{version:"1.8.16",
-animations:{slide:function(a,b){a=c.extend({easing:"swing",duration:300},a,b);if(a.toHide.size())if(a.toShow.size()){var d=a.toShow.css("overflow"),h=0,f={},g={},e;b=a.toShow;e=b[0].style.width;b.width(parseInt(b.parent().width(),10)-parseInt(b.css("paddingLeft"),10)-parseInt(b.css("paddingRight"),10)-(parseInt(b.css("borderLeftWidth"),10)||0)-(parseInt(b.css("borderRightWidth"),10)||0));c.each(["height","paddingTop","paddingBottom"],function(j,i){g[i]="hide";j=(""+c.css(a.toShow[0],i)).match(/^([\d+-.]+)(.*)$/);
-f[i]={value:j[1],unit:j[2]||"px"}});a.toShow.css({height:0,overflow:"hidden"}).show();a.toHide.filter(":hidden").each(a.complete).end().filter(":visible").animate(g,{step:function(j,i){if(i.prop=="height")h=i.end-i.start===0?0:(i.now-i.start)/(i.end-i.start);a.toShow[0].style[i.prop]=h*f[i.prop].value+f[i.prop].unit},duration:a.duration,easing:a.easing,complete:function(){a.autoHeight||a.toShow.css("height","");a.toShow.css({width:e,overflow:d});a.complete()}})}else a.toHide.animate({height:"hide",
-paddingTop:"hide",paddingBottom:"hide"},a);else a.toShow.animate({height:"show",paddingTop:"show",paddingBottom:"show"},a)},bounceslide:function(a){this.slide(a,{easing:a.down?"easeOutBounce":"swing",duration:a.down?1E3:200})}}})})(jQuery);
-;/*
- * jQuery UI Autocomplete 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/Autocomplete
- *
- * Depends:
- *	jquery.ui.core.js
- *	jquery.ui.widget.js
- *	jquery.ui.position.js
- */
-(function(d){var e=0;d.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 a=this,b=this.element[0].ownerDocument,g;this.element.addClass("ui-autocomplete-input").attr("autocomplete","off").attr({role:"textbox","aria-autocomplete":"list","aria-haspopup":"true"}).bind("keydown.autocomplete",function(c){if(!(a.options.disabled||a.element.propAttr("readOnly"))){g=
-false;var f=d.ui.keyCode;switch(c.keyCode){case f.PAGE_UP:a._move("previousPage",c);break;case f.PAGE_DOWN:a._move("nextPage",c);break;case f.UP:a._move("previous",c);c.preventDefault();break;case f.DOWN:a._move("next",c);c.preventDefault();break;case f.ENTER:case f.NUMPAD_ENTER:if(a.menu.active){g=true;c.preventDefault()}case f.TAB:if(!a.menu.active)return;a.menu.select(c);break;case f.ESCAPE:a.element.val(a.term);a.close(c);break;default:clearTimeout(a.searching);a.searching=setTimeout(function(){if(a.term!=
-a.element.val()){a.selectedItem=null;a.search(null,c)}},a.options.delay);break}}}).bind("keypress.autocomplete",function(c){if(g){g=false;c.preventDefault()}}).bind("focus.autocomplete",function(){if(!a.options.disabled){a.selectedItem=null;a.previous=a.element.val()}}).bind("blur.autocomplete",function(c){if(!a.options.disabled){clearTimeout(a.searching);a.closing=setTimeout(function(){a.close(c);a._change(c)},150)}});this._initSource();this.response=function(){return a._response.apply(a,arguments)};
-this.menu=d("<ul></ul>").addClass("ui-autocomplete").appendTo(d(this.options.appendTo||"body",b)[0]).mousedown(function(c){var f=a.menu.element[0];d(c.target).closest(".ui-menu-item").length||setTimeout(function(){d(document).one("mousedown",function(h){h.target!==a.element[0]&&h.target!==f&&!d.ui.contains(f,h.target)&&a.close()})},1);setTimeout(function(){clearTimeout(a.closing)},13)}).menu({focus:function(c,f){f=f.item.data("item.autocomplete");false!==a._trigger("focus",c,{item:f})&&/^key/.test(c.originalEvent.type)&&
-a.element.val(f.value)},selected:function(c,f){var h=f.item.data("item.autocomplete"),i=a.previous;if(a.element[0]!==b.activeElement){a.element.focus();a.previous=i;setTimeout(function(){a.previous=i;a.selectedItem=h},1)}false!==a._trigger("select",c,{item:h})&&a.element.val(h.value);a.term=a.element.val();a.close(c);a.selectedItem=h},blur:function(){a.menu.element.is(":visible")&&a.element.val()!==a.term&&a.element.val(a.term)}}).zIndex(this.element.zIndex()+1).css({top:0,left:0}).hide().data("menu");
-d.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();d.Widget.prototype.destroy.call(this)},_setOption:function(a,b){d.Widget.prototype._setOption.apply(this,arguments);a==="source"&&this._initSource();if(a==="appendTo")this.menu.element.appendTo(d(b||"body",this.element[0].ownerDocument)[0]);a==="disabled"&&
-b&&this.xhr&&this.xhr.abort()},_initSource:function(){var a=this,b,g;if(d.isArray(this.options.source)){b=this.options.source;this.source=function(c,f){f(d.ui.autocomplete.filter(b,c.term))}}else if(typeof this.options.source==="string"){g=this.options.source;this.source=function(c,f){a.xhr&&a.xhr.abort();a.xhr=d.ajax({url:g,data:c,dataType:"json",autocompleteRequest:++e,success:function(h){this.autocompleteRequest===e&&f(h)},error:function(){this.autocompleteRequest===e&&f([])}})}}else this.source=
-this.options.source},search:function(a,b){a=a!=null?a:this.element.val();this.term=this.element.val();if(a.length<this.options.minLength)return this.close(b);clearTimeout(this.closing);if(this._trigger("search",b)!==false)return this._search(a)},_search:function(a){this.pending++;this.element.addClass("ui-autocomplete-loading");this.source({term:a},this.response)},_response:function(a){if(!this.options.disabled&&a&&a.length){a=this._normalize(a);this._suggest(a);this._trigger("open")}else this.close();
-this.pending--;this.pending||this.element.removeClass("ui-autocomplete-loading")},close:function(a){clearTimeout(this.closing);if(this.menu.element.is(":visible")){this.menu.element.hide();this.menu.deactivate();this._trigger("close",a)}},_change:function(a){this.previous!==this.element.val()&&this._trigger("change",a,{item:this.selectedItem})},_normalize:function(a){if(a.length&&a[0].label&&a[0].value)return a;return d.map(a,function(b){if(typeof b==="string")return{label:b,value:b};return d.extend({label:b.label||
-b.value,value:b.value||b.label},b)})},_suggest:function(a){var b=this.menu.element.empty().zIndex(this.element.zIndex()+1);this._renderMenu(b,a);this.menu.deactivate();this.menu.refresh();b.show();this._resizeMenu();b.position(d.extend({of:this.element},this.options.position));this.options.autoFocus&&this.menu.next(new d.Event("mouseover"))},_resizeMenu:function(){var a=this.menu.element;a.outerWidth(Math.max(a.width("").outerWidth(),this.element.outerWidth()))},_renderMenu:function(a,b){var g=this;
-d.each(b,function(c,f){g._renderItem(a,f)})},_renderItem:function(a,b){return d("<li></li>").data("item.autocomplete",b).append(d("<a></a>").text(b.label)).appendTo(a)},_move:function(a,b){if(this.menu.element.is(":visible"))if(this.menu.first()&&/^previous/.test(a)||this.menu.last()&&/^next/.test(a)){this.element.val(this.term);this.menu.deactivate()}else this.menu[a](b);else this.search(null,b)},widget:function(){return this.menu.element}});d.extend(d.ui.autocomplete,{escapeRegex:function(a){return a.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,
-"\\$&")},filter:function(a,b){var g=new RegExp(d.ui.autocomplete.escapeRegex(b),"i");return d.grep(a,function(c){return g.test(c.label||c.value||c)})}})})(jQuery);
-(function(d){d.widget("ui.menu",{_create:function(){var e=this;this.element.addClass("ui-menu ui-widget ui-widget-content ui-corner-all").attr({role:"listbox","aria-activedescendant":"ui-active-menuitem"}).click(function(a){if(d(a.target).closest(".ui-menu-item a").length){a.preventDefault();e.select(a)}});this.refresh()},refresh:function(){var e=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(a){e.activate(a,d(this).parent())}).mouseleave(function(){e.deactivate()})},activate:function(e,a){this.deactivate();if(this.hasScroll()){var b=a.offset().top-this.element.offset().top,g=this.element.scrollTop(),c=this.element.height();if(b<0)this.element.scrollTop(g+b);else b>=c&&this.element.scrollTop(g+b-c+a.height())}this.active=a.eq(0).children("a").addClass("ui-state-hover").attr("id","ui-active-menuitem").end();this._trigger("focus",e,{item:a})},deactivate:function(){if(this.active){this.active.children("a").removeClass("ui-state-hover").removeAttr("id");
-this._trigger("blur");this.active=null}},next:function(e){this.move("next",".ui-menu-item:first",e)},previous:function(e){this.move("prev",".ui-menu-item:last",e)},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(e,a,b){if(this.active){e=this.active[e+"All"](".ui-menu-item").eq(0);e.length?this.activate(b,e):this.activate(b,this.element.children(a))}else this.activate(b,
-this.element.children(a))},nextPage:function(e){if(this.hasScroll())if(!this.active||this.last())this.activate(e,this.element.children(".ui-menu-item:first"));else{var a=this.active.offset().top,b=this.element.height(),g=this.element.children(".ui-menu-item").filter(function(){var c=d(this).offset().top-a-b+d(this).height();return c<10&&c>-10});g.length||(g=this.element.children(".ui-menu-item:last"));this.activate(e,g)}else this.activate(e,this.element.children(".ui-menu-item").filter(!this.active||
-this.last()?":first":":last"))},previousPage:function(e){if(this.hasScroll())if(!this.active||this.first())this.activate(e,this.element.children(".ui-menu-item:last"));else{var a=this.active.offset().top,b=this.element.height();result=this.element.children(".ui-menu-item").filter(function(){var g=d(this).offset().top-a+b-d(this).height();return g<10&&g>-10});result.length||(result=this.element.children(".ui-menu-item:first"));this.activate(e,result)}else this.activate(e,this.element.children(".ui-menu-item").filter(!this.active||
-this.first()?":last":":first"))},hasScroll:function(){return this.element.height()<this.element[d.fn.prop?"prop":"attr"]("scrollHeight")},select:function(e){this._trigger("selected",e,{item:this.active})}})})(jQuery);
-;/*
- * jQuery UI Button 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/Button
- *
- * Depends:
- *	jquery.ui.core.js
- *	jquery.ui.widget.js
- */
-(function(b){var h,i,j,g,l=function(){var a=b(this).find(":ui-button");setTimeout(function(){a.button("refresh")},1)},k=function(a){var c=a.name,e=a.form,f=b([]);if(c)f=e?b(e).find("[name='"+c+"']"):b("[name='"+c+"']",a.ownerDocument).filter(function(){return!this.form});return f};b.widget("ui.button",{options:{disabled:null,text:true,label:null,icons:{primary:null,secondary:null}},_create:function(){this.element.closest("form").unbind("reset.button").bind("reset.button",l);if(typeof this.options.disabled!==
-"boolean")this.options.disabled=this.element.propAttr("disabled");this._determineButtonType();this.hasTitle=!!this.buttonElement.attr("title");var a=this,c=this.options,e=this.type==="checkbox"||this.type==="radio",f="ui-state-hover"+(!e?" ui-state-active":"");if(c.label===null)c.label=this.buttonElement.html();if(this.element.is(":disabled"))c.disabled=true;this.buttonElement.addClass("ui-button ui-widget ui-state-default ui-corner-all").attr("role","button").bind("mouseenter.button",function(){if(!c.disabled){b(this).addClass("ui-state-hover");
-this===h&&b(this).addClass("ui-state-active")}}).bind("mouseleave.button",function(){c.disabled||b(this).removeClass(f)}).bind("click.button",function(d){if(c.disabled){d.preventDefault();d.stopImmediatePropagation()}});this.element.bind("focus.button",function(){a.buttonElement.addClass("ui-state-focus")}).bind("blur.button",function(){a.buttonElement.removeClass("ui-state-focus")});if(e){this.element.bind("change.button",function(){g||a.refresh()});this.buttonElement.bind("mousedown.button",function(d){if(!c.disabled){g=
-false;i=d.pageX;j=d.pageY}}).bind("mouseup.button",function(d){if(!c.disabled)if(i!==d.pageX||j!==d.pageY)g=true})}if(this.type==="checkbox")this.buttonElement.bind("click.button",function(){if(c.disabled||g)return false;b(this).toggleClass("ui-state-active");a.buttonElement.attr("aria-pressed",a.element[0].checked)});else if(this.type==="radio")this.buttonElement.bind("click.button",function(){if(c.disabled||g)return false;b(this).addClass("ui-state-active");a.buttonElement.attr("aria-pressed","true");
-var d=a.element[0];k(d).not(d).map(function(){return b(this).button("widget")[0]}).removeClass("ui-state-active").attr("aria-pressed","false")});else{this.buttonElement.bind("mousedown.button",function(){if(c.disabled)return false;b(this).addClass("ui-state-active");h=this;b(document).one("mouseup",function(){h=null})}).bind("mouseup.button",function(){if(c.disabled)return false;b(this).removeClass("ui-state-active")}).bind("keydown.button",function(d){if(c.disabled)return false;if(d.keyCode==b.ui.keyCode.SPACE||
-d.keyCode==b.ui.keyCode.ENTER)b(this).addClass("ui-state-active")}).bind("keyup.button",function(){b(this).removeClass("ui-state-active")});this.buttonElement.is("a")&&this.buttonElement.keyup(function(d){d.keyCode===b.ui.keyCode.SPACE&&b(this).click()})}this._setOption("disabled",c.disabled);this._resetButton()},_determineButtonType:function(){this.type=this.element.is(":checkbox")?"checkbox":this.element.is(":radio")?"radio":this.element.is("input")?"input":"button";if(this.type==="checkbox"||this.type===
-"radio"){var a=this.element.parents().filter(":last"),c="label[for='"+this.element.attr("id")+"']";this.buttonElement=a.find(c);if(!this.buttonElement.length){a=a.length?a.siblings():this.element.siblings();this.buttonElement=a.filter(c);if(!this.buttonElement.length)this.buttonElement=a.find(c)}this.element.addClass("ui-helper-hidden-accessible");(a=this.element.is(":checked"))&&this.buttonElement.addClass("ui-state-active");this.buttonElement.attr("aria-pressed",a)}else this.buttonElement=this.element},
-widget:function(){return this.buttonElement},destroy:function(){this.element.removeClass("ui-helper-hidden-accessible");this.buttonElement.removeClass("ui-button ui-widget ui-state-default ui-corner-all ui-state-hover ui-state-active  ui-button-icons-only ui-button-icon-only ui-button-text-icons ui-button-text-icon-primary ui-button-text-icon-secondary ui-button-text-only").removeAttr("role").removeAttr("aria-pressed").html(this.buttonElement.find(".ui-button-text").html());this.hasTitle||this.buttonElement.removeAttr("title");
-b.Widget.prototype.destroy.call(this)},_setOption:function(a,c){b.Widget.prototype._setOption.apply(this,arguments);if(a==="disabled")c?this.element.propAttr("disabled",true):this.element.propAttr("disabled",false);else this._resetButton()},refresh:function(){var a=this.element.is(":disabled");a!==this.options.disabled&&this._setOption("disabled",a);if(this.type==="radio")k(this.element[0]).each(function(){b(this).is(":checked")?b(this).button("widget").addClass("ui-state-active").attr("aria-pressed",
-"true"):b(this).button("widget").removeClass("ui-state-active").attr("aria-pressed","false")});else if(this.type==="checkbox")this.element.is(":checked")?this.buttonElement.addClass("ui-state-active").attr("aria-pressed","true"):this.buttonElement.removeClass("ui-state-active").attr("aria-pressed","false")},_resetButton:function(){if(this.type==="input")this.options.label&&this.element.val(this.options.label);else{var a=this.buttonElement.removeClass("ui-button-icons-only ui-button-icon-only ui-button-text-icons ui-button-text-icon-primary ui-button-text-icon-secondary ui-button-text-only"),
-c=b("<span></span>").addClass("ui-button-text").html(this.options.label).appendTo(a.empty()).text(),e=this.options.icons,f=e.primary&&e.secondary,d=[];if(e.primary||e.secondary){if(this.options.text)d.push("ui-button-text-icon"+(f?"s":e.primary?"-primary":"-secondary"));e.primary&&a.prepend("<span class='ui-button-icon-primary ui-icon "+e.primary+"'></span>");e.secondary&&a.append("<span class='ui-button-icon-secondary ui-icon "+e.secondary+"'></span>");if(!this.options.text){d.push(f?"ui-button-icons-only":
-"ui-button-icon-only");this.hasTitle||a.attr("title",c)}}else d.push("ui-button-text-only");a.addClass(d.join(" "))}}});b.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(a,c){a==="disabled"&&this.buttons.button("option",a,c);b.Widget.prototype._setOption.apply(this,arguments)},refresh:function(){var a=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 b(this).button("widget")[0]}).removeClass("ui-corner-all ui-corner-left ui-corner-right").filter(":first").addClass(a?"ui-corner-left":"ui-corner-right").end().filter(":last").addClass(a?"ui-corner-right":"ui-corner-left").end().end()},destroy:function(){this.element.removeClass("ui-buttonset");this.buttons.map(function(){return b(this).button("widget")[0]}).removeClass("ui-corner-left ui-corner-right").end().button("destroy");
-b.Widget.prototype.destroy.call(this)}})})(jQuery);
-;/*
- * jQuery UI Dialog 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/Dialog
- *
- * Depends:
- *	jquery.ui.core.js
- *	jquery.ui.widget.js
- *  jquery.ui.button.js
- *	jquery.ui.draggable.js
- *	jquery.ui.mouse.js
- *	jquery.ui.position.js
- *	jquery.ui.resizable.js
- */
-(function(c,l){var m={buttons:true,height:true,maxHeight:true,maxWidth:true,minHeight:true,minWidth:true,width:true},n={maxHeight:true,maxWidth:true,minHeight:true,minWidth:true},o=c.attrFn||{val:true,css:true,html:true,text:true,data:true,width:true,height:true,offset:true,click:true};c.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(a){var b=c(this).css(a).offset().top;b<0&&c(this).css("top",a.top-b)}},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 a=this,b=a.options,d=b.title||"&#160;",e=c.ui.dialog.getTitleId(a.element),g=(a.uiDialog=c("<div></div>")).appendTo(document.body).hide().addClass("ui-dialog ui-widget ui-widget-content ui-corner-all "+
-b.dialogClass).css({zIndex:b.zIndex}).attr("tabIndex",-1).css("outline",0).keydown(function(i){if(b.closeOnEscape&&!i.isDefaultPrevented()&&i.keyCode&&i.keyCode===c.ui.keyCode.ESCAPE){a.close(i);i.preventDefault()}}).attr({role:"dialog","aria-labelledby":e}).mousedown(function(i){a.moveToTop(false,i)});a.element.show().removeAttr("title").addClass("ui-dialog-content ui-widget-content").appendTo(g);var f=(a.uiDialogTitlebar=c("<div></div>")).addClass("ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix").prependTo(g),
-h=c('<a href="#"></a>').addClass("ui-dialog-titlebar-close ui-corner-all").attr("role","button").hover(function(){h.addClass("ui-state-hover")},function(){h.removeClass("ui-state-hover")}).focus(function(){h.addClass("ui-state-focus")}).blur(function(){h.removeClass("ui-state-focus")}).click(function(i){a.close(i);return false}).appendTo(f);(a.uiDialogTitlebarCloseText=c("<span></span>")).addClass("ui-icon ui-icon-closethick").text(b.closeText).appendTo(h);c("<span></span>").addClass("ui-dialog-title").attr("id",
-e).html(d).prependTo(f);if(c.isFunction(b.beforeclose)&&!c.isFunction(b.beforeClose))b.beforeClose=b.beforeclose;f.find("*").add(f).disableSelection();b.draggable&&c.fn.draggable&&a._makeDraggable();b.resizable&&c.fn.resizable&&a._makeResizable();a._createButtons(b.buttons);a._isOpen=false;c.fn.bgiframe&&g.bgiframe()},_init:function(){this.options.autoOpen&&this.open()},destroy:function(){var a=this;a.overlay&&a.overlay.destroy();a.uiDialog.hide();a.element.unbind(".dialog").removeData("dialog").removeClass("ui-dialog-content ui-widget-content").hide().appendTo("body");
-a.uiDialog.remove();a.originalTitle&&a.element.attr("title",a.originalTitle);return a},widget:function(){return this.uiDialog},close:function(a){var b=this,d,e;if(false!==b._trigger("beforeClose",a)){b.overlay&&b.overlay.destroy();b.uiDialog.unbind("keypress.ui-dialog");b._isOpen=false;if(b.options.hide)b.uiDialog.hide(b.options.hide,function(){b._trigger("close",a)});else{b.uiDialog.hide();b._trigger("close",a)}c.ui.dialog.overlay.resize();if(b.options.modal){d=0;c(".ui-dialog").each(function(){if(this!==
-b.uiDialog[0]){e=c(this).css("z-index");isNaN(e)||(d=Math.max(d,e))}});c.ui.dialog.maxZ=d}return b}},isOpen:function(){return this._isOpen},moveToTop:function(a,b){var d=this,e=d.options;if(e.modal&&!a||!e.stack&&!e.modal)return d._trigger("focus",b);if(e.zIndex>c.ui.dialog.maxZ)c.ui.dialog.maxZ=e.zIndex;if(d.overlay){c.ui.dialog.maxZ+=1;d.overlay.$el.css("z-index",c.ui.dialog.overlay.maxZ=c.ui.dialog.maxZ)}a={scrollTop:d.element.scrollTop(),scrollLeft:d.element.scrollLeft()};c.ui.dialog.maxZ+=1;
-d.uiDialog.css("z-index",c.ui.dialog.maxZ);d.element.attr(a);d._trigger("focus",b);return d},open:function(){if(!this._isOpen){var a=this,b=a.options,d=a.uiDialog;a.overlay=b.modal?new c.ui.dialog.overlay(a):null;a._size();a._position(b.position);d.show(b.show);a.moveToTop(true);b.modal&&d.bind("keypress.ui-dialog",function(e){if(e.keyCode===c.ui.keyCode.TAB){var g=c(":tabbable",this),f=g.filter(":first");g=g.filter(":last");if(e.target===g[0]&&!e.shiftKey){f.focus(1);return false}else if(e.target===
-f[0]&&e.shiftKey){g.focus(1);return false}}});c(a.element.find(":tabbable").get().concat(d.find(".ui-dialog-buttonpane :tabbable").get().concat(d.get()))).eq(0).focus();a._isOpen=true;a._trigger("open");return a}},_createButtons:function(a){var b=this,d=false,e=c("<div></div>").addClass("ui-dialog-buttonpane ui-widget-content ui-helper-clearfix"),g=c("<div></div>").addClass("ui-dialog-buttonset").appendTo(e);b.uiDialog.find(".ui-dialog-buttonpane").remove();typeof a==="object"&&a!==null&&c.each(a,
-function(){return!(d=true)});if(d){c.each(a,function(f,h){h=c.isFunction(h)?{click:h,text:f}:h;var i=c('<button type="button"></button>').click(function(){h.click.apply(b.element[0],arguments)}).appendTo(g);c.each(h,function(j,k){if(j!=="click")j in o?i[j](k):i.attr(j,k)});c.fn.button&&i.button()});e.appendTo(b.uiDialog)}},_makeDraggable:function(){function a(f){return{position:f.position,offset:f.offset}}var b=this,d=b.options,e=c(document),g;b.uiDialog.draggable({cancel:".ui-dialog-content, .ui-dialog-titlebar-close",
-handle:".ui-dialog-titlebar",containment:"document",start:function(f,h){g=d.height==="auto"?"auto":c(this).height();c(this).height(c(this).height()).addClass("ui-dialog-dragging");b._trigger("dragStart",f,a(h))},drag:function(f,h){b._trigger("drag",f,a(h))},stop:function(f,h){d.position=[h.position.left-e.scrollLeft(),h.position.top-e.scrollTop()];c(this).removeClass("ui-dialog-dragging").height(g);b._trigger("dragStop",f,a(h));c.ui.dialog.overlay.resize()}})},_makeResizable:function(a){function b(f){return{originalPosition:f.originalPosition,
-originalSize:f.originalSize,position:f.position,size:f.size}}a=a===l?this.options.resizable:a;var d=this,e=d.options,g=d.uiDialog.css("position");a=typeof a==="string"?a:"n,e,s,w,se,sw,ne,nw";d.uiDialog.resizable({cancel:".ui-dialog-content",containment:"document",alsoResize:d.element,maxWidth:e.maxWidth,maxHeight:e.maxHeight,minWidth:e.minWidth,minHeight:d._minHeight(),handles:a,start:function(f,h){c(this).addClass("ui-dialog-resizing");d._trigger("resizeStart",f,b(h))},resize:function(f,h){d._trigger("resize",
-f,b(h))},stop:function(f,h){c(this).removeClass("ui-dialog-resizing");e.height=c(this).height();e.width=c(this).width();d._trigger("resizeStop",f,b(h));c.ui.dialog.overlay.resize()}}).css("position",g).find(".ui-resizable-se").addClass("ui-icon ui-icon-grip-diagonal-se")},_minHeight:function(){var a=this.options;return a.height==="auto"?a.minHeight:Math.min(a.minHeight,a.height)},_position:function(a){var b=[],d=[0,0],e;if(a){if(typeof a==="string"||typeof a==="object"&&"0"in a){b=a.split?a.split(" "):
-[a[0],a[1]];if(b.length===1)b[1]=b[0];c.each(["left","top"],function(g,f){if(+b[g]===b[g]){d[g]=b[g];b[g]=f}});a={my:b.join(" "),at:b.join(" "),offset:d.join(" ")}}a=c.extend({},c.ui.dialog.prototype.options.position,a)}else a=c.ui.dialog.prototype.options.position;(e=this.uiDialog.is(":visible"))||this.uiDialog.show();this.uiDialog.css({top:0,left:0}).position(c.extend({of:window},a));e||this.uiDialog.hide()},_setOptions:function(a){var b=this,d={},e=false;c.each(a,function(g,f){b._setOption(g,f);
-if(g in m)e=true;if(g in n)d[g]=f});e&&this._size();this.uiDialog.is(":data(resizable)")&&this.uiDialog.resizable("option",d)},_setOption:function(a,b){var d=this,e=d.uiDialog;switch(a){case "beforeclose":a="beforeClose";break;case "buttons":d._createButtons(b);break;case "closeText":d.uiDialogTitlebarCloseText.text(""+b);break;case "dialogClass":e.removeClass(d.options.dialogClass).addClass("ui-dialog ui-widget ui-widget-content ui-corner-all "+b);break;case "disabled":b?e.addClass("ui-dialog-disabled"):
-e.removeClass("ui-dialog-disabled");break;case "draggable":var g=e.is(":data(draggable)");g&&!b&&e.draggable("destroy");!g&&b&&d._makeDraggable();break;case "position":d._position(b);break;case "resizable":(g=e.is(":data(resizable)"))&&!b&&e.resizable("destroy");g&&typeof b==="string"&&e.resizable("option","handles",b);!g&&b!==false&&d._makeResizable(b);break;case "title":c(".ui-dialog-title",d.uiDialogTitlebar).html(""+(b||"&#160;"));break}c.Widget.prototype._setOption.apply(d,arguments)},_size:function(){var a=
-this.options,b,d,e=this.uiDialog.is(":visible");this.element.show().css({width:"auto",minHeight:0,height:0});if(a.minWidth>a.width)a.width=a.minWidth;b=this.uiDialog.css({height:"auto",width:a.width}).height();d=Math.max(0,a.minHeight-b);if(a.height==="auto")if(c.support.minHeight)this.element.css({minHeight:d,height:"auto"});else{this.uiDialog.show();a=this.element.css("height","auto").height();e||this.uiDialog.hide();this.element.height(Math.max(a,d))}else this.element.height(Math.max(a.height-
-b,0));this.uiDialog.is(":data(resizable)")&&this.uiDialog.resizable("option","minHeight",this._minHeight())}});c.extend(c.ui.dialog,{version:"1.8.16",uuid:0,maxZ:0,getTitleId:function(a){a=a.attr("id");if(!a){this.uuid+=1;a=this.uuid}return"ui-dialog-title-"+a},overlay:function(a){this.$el=c.ui.dialog.overlay.create(a)}});c.extend(c.ui.dialog.overlay,{instances:[],oldInstances:[],maxZ:0,events:c.map("focus,mousedown,mouseup,keydown,keypress,click".split(","),function(a){return a+".dialog-overlay"}).join(" "),
-create:function(a){if(this.instances.length===0){setTimeout(function(){c.ui.dialog.overlay.instances.length&&c(document).bind(c.ui.dialog.overlay.events,function(d){if(c(d.target).zIndex()<c.ui.dialog.overlay.maxZ)return false})},1);c(document).bind("keydown.dialog-overlay",function(d){if(a.options.closeOnEscape&&!d.isDefaultPrevented()&&d.keyCode&&d.keyCode===c.ui.keyCode.ESCAPE){a.close(d);d.preventDefault()}});c(window).bind("resize.dialog-overlay",c.ui.dialog.overlay.resize)}var b=(this.oldInstances.pop()||
-c("<div></div>").addClass("ui-widget-overlay")).appendTo(document.body).css({width:this.width(),height:this.height()});c.fn.bgiframe&&b.bgiframe();this.instances.push(b);return b},destroy:function(a){var b=c.inArray(a,this.instances);b!=-1&&this.oldInstances.push(this.instances.splice(b,1)[0]);this.instances.length===0&&c([document,window]).unbind(".dialog-overlay");a.remove();var d=0;c.each(this.instances,function(){d=Math.max(d,this.css("z-index"))});this.maxZ=d},height:function(){var a,b;if(c.browser.msie&&
-c.browser.version<7){a=Math.max(document.documentElement.scrollHeight,document.body.scrollHeight);b=Math.max(document.documentElement.offsetHeight,document.body.offsetHeight);return a<b?c(window).height()+"px":a+"px"}else return c(document).height()+"px"},width:function(){var a,b;if(c.browser.msie){a=Math.max(document.documentElement.scrollWidth,document.body.scrollWidth);b=Math.max(document.documentElement.offsetWidth,document.body.offsetWidth);return a<b?c(window).width()+"px":a+"px"}else return c(document).width()+
-"px"},resize:function(){var a=c([]);c.each(c.ui.dialog.overlay.instances,function(){a=a.add(this)});a.css({width:0,height:0}).css({width:c.ui.dialog.overlay.width(),height:c.ui.dialog.overlay.height()})}});c.extend(c.ui.dialog.overlay.prototype,{destroy:function(){c.ui.dialog.overlay.destroy(this.$el)}})})(jQuery);
-;/*
- * jQuery UI Slider 1.8.16
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Slider
- *
- * Depends:
- *	jquery.ui.core.js
- *	jquery.ui.mouse.js
- *	jquery.ui.widget.js
- */
-(function(d){d.widget("ui.slider",d.ui.mouse,{widgetEventPrefix:"slide",options:{animate:false,distance:0,max:100,min:0,orientation:"horizontal",range:false,step:1,value:0,values:null},_create:function(){var a=this,b=this.options,c=this.element.find(".ui-slider-handle").addClass("ui-state-default ui-corner-all"),f=b.values&&b.values.length||1,e=[];this._mouseSliding=this._keySliding=false;this._animateOff=true;this._handleIndex=null;this._detectOrientation();this._mouseInit();this.element.addClass("ui-slider ui-slider-"+
-this.orientation+" ui-widget ui-widget-content ui-corner-all"+(b.disabled?" ui-slider-disabled ui-disabled":""));this.range=d([]);if(b.range){if(b.range===true){if(!b.values)b.values=[this._valueMin(),this._valueMin()];if(b.values.length&&b.values.length!==2)b.values=[b.values[0],b.values[0]]}this.range=d("<div></div>").appendTo(this.element).addClass("ui-slider-range ui-widget-header"+(b.range==="min"||b.range==="max"?" ui-slider-range-"+b.range:""))}for(var j=c.length;j<f;j+=1)e.push("<a class='ui-slider-handle ui-state-default ui-corner-all' href='#'></a>");
-this.handles=c.add(d(e.join("")).appendTo(a.element));this.handle=this.handles.eq(0);this.handles.add(this.range).filter("a").click(function(g){g.preventDefault()}).hover(function(){b.disabled||d(this).addClass("ui-state-hover")},function(){d(this).removeClass("ui-state-hover")}).focus(function(){if(b.disabled)d(this).blur();else{d(".ui-slider .ui-state-focus").removeClass("ui-state-focus");d(this).addClass("ui-state-focus")}}).blur(function(){d(this).removeClass("ui-state-focus")});this.handles.each(function(g){d(this).data("index.ui-slider-handle",
-g)});this.handles.keydown(function(g){var k=true,l=d(this).data("index.ui-slider-handle"),i,h,m;if(!a.options.disabled){switch(g.keyCode){case d.ui.keyCode.HOME:case d.ui.keyCode.END:case d.ui.keyCode.PAGE_UP:case d.ui.keyCode.PAGE_DOWN:case d.ui.keyCode.UP:case d.ui.keyCode.RIGHT:case d.ui.keyCode.DOWN:case d.ui.keyCode.LEFT:k=false;if(!a._keySliding){a._keySliding=true;d(this).addClass("ui-state-active");i=a._start(g,l);if(i===false)return}break}m=a.options.step;i=a.options.values&&a.options.values.length?
-(h=a.values(l)):(h=a.value());switch(g.keyCode){case d.ui.keyCode.HOME:h=a._valueMin();break;case d.ui.keyCode.END:h=a._valueMax();break;case d.ui.keyCode.PAGE_UP:h=a._trimAlignValue(i+(a._valueMax()-a._valueMin())/5);break;case d.ui.keyCode.PAGE_DOWN:h=a._trimAlignValue(i-(a._valueMax()-a._valueMin())/5);break;case d.ui.keyCode.UP:case d.ui.keyCode.RIGHT:if(i===a._valueMax())return;h=a._trimAlignValue(i+m);break;case d.ui.keyCode.DOWN:case d.ui.keyCode.LEFT:if(i===a._valueMin())return;h=a._trimAlignValue(i-
-m);break}a._slide(g,l,h);return k}}).keyup(function(g){var k=d(this).data("index.ui-slider-handle");if(a._keySliding){a._keySliding=false;a._stop(g,k);a._change(g,k);d(this).removeClass("ui-state-active")}});this._refreshValue();this._animateOff=false},destroy:function(){this.handles.remove();this.range.remove();this.element.removeClass("ui-slider ui-slider-horizontal ui-slider-vertical ui-slider-disabled ui-widget ui-widget-content ui-corner-all").removeData("slider").unbind(".slider");this._mouseDestroy();
-return this},_mouseCapture:function(a){var b=this.options,c,f,e,j,g;if(b.disabled)return false;this.elementSize={width:this.element.outerWidth(),height:this.element.outerHeight()};this.elementOffset=this.element.offset();c=this._normValueFromMouse({x:a.pageX,y:a.pageY});f=this._valueMax()-this._valueMin()+1;j=this;this.handles.each(function(k){var l=Math.abs(c-j.values(k));if(f>l){f=l;e=d(this);g=k}});if(b.range===true&&this.values(1)===b.min){g+=1;e=d(this.handles[g])}if(this._start(a,g)===false)return false;
-this._mouseSliding=true;j._handleIndex=g;e.addClass("ui-state-active").focus();b=e.offset();this._clickOffset=!d(a.target).parents().andSelf().is(".ui-slider-handle")?{left:0,top:0}:{left:a.pageX-b.left-e.width()/2,top:a.pageY-b.top-e.height()/2-(parseInt(e.css("borderTopWidth"),10)||0)-(parseInt(e.css("borderBottomWidth"),10)||0)+(parseInt(e.css("marginTop"),10)||0)};this.handles.hasClass("ui-state-hover")||this._slide(a,g,c);return this._animateOff=true},_mouseStart:function(){return true},_mouseDrag:function(a){var b=
-this._normValueFromMouse({x:a.pageX,y:a.pageY});this._slide(a,this._handleIndex,b);return false},_mouseStop:function(a){this.handles.removeClass("ui-state-active");this._mouseSliding=false;this._stop(a,this._handleIndex);this._change(a,this._handleIndex);this._clickOffset=this._handleIndex=null;return this._animateOff=false},_detectOrientation:function(){this.orientation=this.options.orientation==="vertical"?"vertical":"horizontal"},_normValueFromMouse:function(a){var b;if(this.orientation==="horizontal"){b=
-this.elementSize.width;a=a.x-this.elementOffset.left-(this._clickOffset?this._clickOffset.left:0)}else{b=this.elementSize.height;a=a.y-this.elementOffset.top-(this._clickOffset?this._clickOffset.top:0)}b=a/b;if(b>1)b=1;if(b<0)b=0;if(this.orientation==="vertical")b=1-b;a=this._valueMax()-this._valueMin();return this._trimAlignValue(this._valueMin()+b*a)},_start:function(a,b){var c={handle:this.handles[b],value:this.value()};if(this.options.values&&this.options.values.length){c.value=this.values(b);
-c.values=this.values()}return this._trigger("start",a,c)},_slide:function(a,b,c){var f;if(this.options.values&&this.options.values.length){f=this.values(b?0:1);if(this.options.values.length===2&&this.options.range===true&&(b===0&&c>f||b===1&&c<f))c=f;if(c!==this.values(b)){f=this.values();f[b]=c;a=this._trigger("slide",a,{handle:this.handles[b],value:c,values:f});this.values(b?0:1);a!==false&&this.values(b,c,true)}}else if(c!==this.value()){a=this._trigger("slide",a,{handle:this.handles[b],value:c});
-a!==false&&this.value(c)}},_stop:function(a,b){var c={handle:this.handles[b],value:this.value()};if(this.options.values&&this.options.values.length){c.value=this.values(b);c.values=this.values()}this._trigger("stop",a,c)},_change:function(a,b){if(!this._keySliding&&!this._mouseSliding){var c={handle:this.handles[b],value:this.value()};if(this.options.values&&this.options.values.length){c.value=this.values(b);c.values=this.values()}this._trigger("change",a,c)}},value:function(a){if(arguments.length){this.options.value=
-this._trimAlignValue(a);this._refreshValue();this._change(null,0)}else return this._value()},values:function(a,b){var c,f,e;if(arguments.length>1){this.options.values[a]=this._trimAlignValue(b);this._refreshValue();this._change(null,a)}else if(arguments.length)if(d.isArray(arguments[0])){c=this.options.values;f=arguments[0];for(e=0;e<c.length;e+=1){c[e]=this._trimAlignValue(f[e]);this._change(null,e)}this._refreshValue()}else return this.options.values&&this.options.values.length?this._values(a):
-this.value();else return this._values()},_setOption:function(a,b){var c,f=0;if(d.isArray(this.options.values))f=this.options.values.length;d.Widget.prototype._setOption.apply(this,arguments);switch(a){case "disabled":if(b){this.handles.filter(".ui-state-focus").blur();this.handles.removeClass("ui-state-hover");this.handles.propAttr("disabled",true);this.element.addClass("ui-disabled")}else{this.handles.propAttr("disabled",false);this.element.removeClass("ui-disabled")}break;case "orientation":this._detectOrientation();
-this.element.removeClass("ui-slider-horizontal ui-slider-vertical").addClass("ui-slider-"+this.orientation);this._refreshValue();break;case "value":this._animateOff=true;this._refreshValue();this._change(null,0);this._animateOff=false;break;case "values":this._animateOff=true;this._refreshValue();for(c=0;c<f;c+=1)this._change(null,c);this._animateOff=false;break}},_value:function(){var a=this.options.value;return a=this._trimAlignValue(a)},_values:function(a){var b,c;if(arguments.length){b=this.options.values[a];
-return b=this._trimAlignValue(b)}else{b=this.options.values.slice();for(c=0;c<b.length;c+=1)b[c]=this._trimAlignValue(b[c]);return b}},_trimAlignValue:function(a){if(a<=this._valueMin())return this._valueMin();if(a>=this._valueMax())return this._valueMax();var b=this.options.step>0?this.options.step:1,c=(a-this._valueMin())%b;a=a-c;if(Math.abs(c)*2>=b)a+=c>0?b:-b;return parseFloat(a.toFixed(5))},_valueMin:function(){return this.options.min},_valueMax:function(){return this.options.max},_refreshValue:function(){var a=
-this.options.range,b=this.options,c=this,f=!this._animateOff?b.animate:false,e,j={},g,k,l,i;if(this.options.values&&this.options.values.length)this.handles.each(function(h){e=(c.values(h)-c._valueMin())/(c._valueMax()-c._valueMin())*100;j[c.orientation==="horizontal"?"left":"bottom"]=e+"%";d(this).stop(1,1)[f?"animate":"css"](j,b.animate);if(c.options.range===true)if(c.orientation==="horizontal"){if(h===0)c.range.stop(1,1)[f?"animate":"css"]({left:e+"%"},b.animate);if(h===1)c.range[f?"animate":"css"]({width:e-
-g+"%"},{queue:false,duration:b.animate})}else{if(h===0)c.range.stop(1,1)[f?"animate":"css"]({bottom:e+"%"},b.animate);if(h===1)c.range[f?"animate":"css"]({height:e-g+"%"},{queue:false,duration:b.animate})}g=e});else{k=this.value();l=this._valueMin();i=this._valueMax();e=i!==l?(k-l)/(i-l)*100:0;j[c.orientation==="horizontal"?"left":"bottom"]=e+"%";this.handle.stop(1,1)[f?"animate":"css"](j,b.animate);if(a==="min"&&this.orientation==="horizontal")this.range.stop(1,1)[f?"animate":"css"]({width:e+"%"},
-b.animate);if(a==="max"&&this.orientation==="horizontal")this.range[f?"animate":"css"]({width:100-e+"%"},{queue:false,duration:b.animate});if(a==="min"&&this.orientation==="vertical")this.range.stop(1,1)[f?"animate":"css"]({height:e+"%"},b.animate);if(a==="max"&&this.orientation==="vertical")this.range[f?"animate":"css"]({height:100-e+"%"},{queue:false,duration:b.animate})}}});d.extend(d.ui.slider,{version:"1.8.16"})})(jQuery);
-;/*
- * jQuery UI Tabs 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/Tabs
- *
- * Depends:
- *	jquery.ui.core.js
- *	jquery.ui.widget.js
- */
-(function(d,p){function u(){return++v}function w(){return++x}var v=0,x=0;d.widget("ui.tabs",{options:{add:null,ajaxOptions:null,cache:false,cookie:null,collapsible:false,disable:null,disabled:[],enable:null,event:"click",fx:null,idPrefix:"ui-tabs-",load:null,panelTemplate:"<div></div>",remove:null,select:null,show:null,spinner:"<em>Loading&#8230;</em>",tabTemplate:"<li><a href='#{href}'><span>#{label}</span></a></li>"},_create:function(){this._tabify(true)},_setOption:function(b,e){if(b=="selected")this.options.collapsible&&
-e==this.options.selected||this.select(e);else{this.options[b]=e;this._tabify()}},_tabId:function(b){return b.title&&b.title.replace(/\s/g,"_").replace(/[^\w\u00c0-\uFFFF-]/g,"")||this.options.idPrefix+u()},_sanitizeSelector:function(b){return b.replace(/:/g,"\\:")},_cookie:function(){var b=this.cookie||(this.cookie=this.options.cookie.name||"ui-tabs-"+w());return d.cookie.apply(null,[b].concat(d.makeArray(arguments)))},_ui:function(b,e){return{tab:b,panel:e,index:this.anchors.index(b)}},_cleanup:function(){this.lis.filter(".ui-state-processing").removeClass("ui-state-processing").find("span:data(label.tabs)").each(function(){var b=
-d(this);b.html(b.data("label.tabs")).removeData("label.tabs")})},_tabify:function(b){function e(g,f){g.css("display","");!d.support.opacity&&f.opacity&&g[0].style.removeAttribute("filter")}var a=this,c=this.options,h=/^#.+/;this.list=this.element.find("ol,ul").eq(0);this.lis=d(" > li:has(a[href])",this.list);this.anchors=this.lis.map(function(){return d("a",this)[0]});this.panels=d([]);this.anchors.each(function(g,f){var i=d(f).attr("href"),l=i.split("#")[0],q;if(l&&(l===location.toString().split("#")[0]||
-(q=d("base")[0])&&l===q.href)){i=f.hash;f.href=i}if(h.test(i))a.panels=a.panels.add(a.element.find(a._sanitizeSelector(i)));else if(i&&i!=="#"){d.data(f,"href.tabs",i);d.data(f,"load.tabs",i.replace(/#.*$/,""));i=a._tabId(f);f.href="#"+i;f=a.element.find("#"+i);if(!f.length){f=d(c.panelTemplate).attr("id",i).addClass("ui-tabs-panel ui-widget-content ui-corner-bottom").insertAfter(a.panels[g-1]||a.list);f.data("destroy.tabs",true)}a.panels=a.panels.add(f)}else c.disabled.push(g)});if(b){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(c.selected===p){location.hash&&this.anchors.each(function(g,f){if(f.hash==location.hash){c.selected=g;return false}});if(typeof c.selected!=="number"&&c.cookie)c.selected=parseInt(a._cookie(),10);if(typeof c.selected!=="number"&&this.lis.filter(".ui-tabs-selected").length)c.selected=
-this.lis.index(this.lis.filter(".ui-tabs-selected"));c.selected=c.selected||(this.lis.length?0:-1)}else if(c.selected===null)c.selected=-1;c.selected=c.selected>=0&&this.anchors[c.selected]||c.selected<0?c.selected:0;c.disabled=d.unique(c.disabled.concat(d.map(this.lis.filter(".ui-state-disabled"),function(g){return a.lis.index(g)}))).sort();d.inArray(c.selected,c.disabled)!=-1&&c.disabled.splice(d.inArray(c.selected,c.disabled),1);this.panels.addClass("ui-tabs-hide");this.lis.removeClass("ui-tabs-selected ui-state-active");
-if(c.selected>=0&&this.anchors.length){a.element.find(a._sanitizeSelector(a.anchors[c.selected].hash)).removeClass("ui-tabs-hide");this.lis.eq(c.selected).addClass("ui-tabs-selected ui-state-active");a.element.queue("tabs",function(){a._trigger("show",null,a._ui(a.anchors[c.selected],a.element.find(a._sanitizeSelector(a.anchors[c.selected].hash))[0]))});this.load(c.selected)}d(window).bind("unload",function(){a.lis.add(a.anchors).unbind(".tabs");a.lis=a.anchors=a.panels=null})}else c.selected=this.lis.index(this.lis.filter(".ui-tabs-selected"));
-this.element[c.collapsible?"addClass":"removeClass"]("ui-tabs-collapsible");c.cookie&&this._cookie(c.selected,c.cookie);b=0;for(var j;j=this.lis[b];b++)d(j)[d.inArray(b,c.disabled)!=-1&&!d(j).hasClass("ui-tabs-selected")?"addClass":"removeClass"]("ui-state-disabled");c.cache===false&&this.anchors.removeData("cache.tabs");this.lis.add(this.anchors).unbind(".tabs");if(c.event!=="mouseover"){var k=function(g,f){f.is(":not(.ui-state-disabled)")&&f.addClass("ui-state-"+g)},n=function(g,f){f.removeClass("ui-state-"+
-g)};this.lis.bind("mouseover.tabs",function(){k("hover",d(this))});this.lis.bind("mouseout.tabs",function(){n("hover",d(this))});this.anchors.bind("focus.tabs",function(){k("focus",d(this).closest("li"))});this.anchors.bind("blur.tabs",function(){n("focus",d(this).closest("li"))})}var m,o;if(c.fx)if(d.isArray(c.fx)){m=c.fx[0];o=c.fx[1]}else m=o=c.fx;var r=o?function(g,f){d(g).closest("li").addClass("ui-tabs-selected ui-state-active");f.hide().removeClass("ui-tabs-hide").animate(o,o.duration||"normal",
-function(){e(f,o);a._trigger("show",null,a._ui(g,f[0]))})}:function(g,f){d(g).closest("li").addClass("ui-tabs-selected ui-state-active");f.removeClass("ui-tabs-hide");a._trigger("show",null,a._ui(g,f[0]))},s=m?function(g,f){f.animate(m,m.duration||"normal",function(){a.lis.removeClass("ui-tabs-selected ui-state-active");f.addClass("ui-tabs-hide");e(f,m);a.element.dequeue("tabs")})}:function(g,f){a.lis.removeClass("ui-tabs-selected ui-state-active");f.addClass("ui-tabs-hide");a.element.dequeue("tabs")};
-this.anchors.bind(c.event+".tabs",function(){var g=this,f=d(g).closest("li"),i=a.panels.filter(":not(.ui-tabs-hide)"),l=a.element.find(a._sanitizeSelector(g.hash));if(f.hasClass("ui-tabs-selected")&&!c.collapsible||f.hasClass("ui-state-disabled")||f.hasClass("ui-state-processing")||a.panels.filter(":animated").length||a._trigger("select",null,a._ui(this,l[0]))===false){this.blur();return false}c.selected=a.anchors.index(this);a.abort();if(c.collapsible)if(f.hasClass("ui-tabs-selected")){c.selected=
--1;c.cookie&&a._cookie(c.selected,c.cookie);a.element.queue("tabs",function(){s(g,i)}).dequeue("tabs");this.blur();return false}else if(!i.length){c.cookie&&a._cookie(c.selected,c.cookie);a.element.queue("tabs",function(){r(g,l)});a.load(a.anchors.index(this));this.blur();return false}c.cookie&&a._cookie(c.selected,c.cookie);if(l.length){i.length&&a.element.queue("tabs",function(){s(g,i)});a.element.queue("tabs",function(){r(g,l)});a.load(a.anchors.index(this))}else throw"jQuery UI Tabs: Mismatching fragment identifier.";
-d.browser.msie&&this.blur()});this.anchors.bind("click.tabs",function(){return false})},_getIndex:function(b){if(typeof b=="string")b=this.anchors.index(this.anchors.filter("[href$="+b+"]"));return b},destroy:function(){var b=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 e=
-d.data(this,"href.tabs");if(e)this.href=e;var a=d(this).unbind(".tabs");d.each(["href","load","cache"],function(c,h){a.removeData(h+".tabs")})});this.lis.unbind(".tabs").add(this.panels).each(function(){d.data(this,"destroy.tabs")?d(this).remove():d(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")});b.cookie&&this._cookie(null,b.cookie);return this},add:function(b,
-e,a){if(a===p)a=this.anchors.length;var c=this,h=this.options;e=d(h.tabTemplate.replace(/#\{href\}/g,b).replace(/#\{label\}/g,e));b=!b.indexOf("#")?b.replace("#",""):this._tabId(d("a",e)[0]);e.addClass("ui-state-default ui-corner-top").data("destroy.tabs",true);var j=c.element.find("#"+b);j.length||(j=d(h.panelTemplate).attr("id",b).data("destroy.tabs",true));j.addClass("ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide");if(a>=this.lis.length){e.appendTo(this.list);j.appendTo(this.list[0].parentNode)}else{e.insertBefore(this.lis[a]);
-j.insertBefore(this.panels[a])}h.disabled=d.map(h.disabled,function(k){return k>=a?++k:k});this._tabify();if(this.anchors.length==1){h.selected=0;e.addClass("ui-tabs-selected ui-state-active");j.removeClass("ui-tabs-hide");this.element.queue("tabs",function(){c._trigger("show",null,c._ui(c.anchors[0],c.panels[0]))});this.load(0)}this._trigger("add",null,this._ui(this.anchors[a],this.panels[a]));return this},remove:function(b){b=this._getIndex(b);var e=this.options,a=this.lis.eq(b).remove(),c=this.panels.eq(b).remove();
-if(a.hasClass("ui-tabs-selected")&&this.anchors.length>1)this.select(b+(b+1<this.anchors.length?1:-1));e.disabled=d.map(d.grep(e.disabled,function(h){return h!=b}),function(h){return h>=b?--h:h});this._tabify();this._trigger("remove",null,this._ui(a.find("a")[0],c[0]));return this},enable:function(b){b=this._getIndex(b);var e=this.options;if(d.inArray(b,e.disabled)!=-1){this.lis.eq(b).removeClass("ui-state-disabled");e.disabled=d.grep(e.disabled,function(a){return a!=b});this._trigger("enable",null,
-this._ui(this.anchors[b],this.panels[b]));return this}},disable:function(b){b=this._getIndex(b);var e=this.options;if(b!=e.selected){this.lis.eq(b).addClass("ui-state-disabled");e.disabled.push(b);e.disabled.sort();this._trigger("disable",null,this._ui(this.anchors[b],this.panels[b]))}return this},select:function(b){b=this._getIndex(b);if(b==-1)if(this.options.collapsible&&this.options.selected!=-1)b=this.options.selected;else return this;this.anchors.eq(b).trigger(this.options.event+".tabs");return this},
-load:function(b){b=this._getIndex(b);var e=this,a=this.options,c=this.anchors.eq(b)[0],h=d.data(c,"load.tabs");this.abort();if(!h||this.element.queue("tabs").length!==0&&d.data(c,"cache.tabs"))this.element.dequeue("tabs");else{this.lis.eq(b).addClass("ui-state-processing");if(a.spinner){var j=d("span",c);j.data("label.tabs",j.html()).html(a.spinner)}this.xhr=d.ajax(d.extend({},a.ajaxOptions,{url:h,success:function(k,n){e.element.find(e._sanitizeSelector(c.hash)).html(k);e._cleanup();a.cache&&d.data(c,
-"cache.tabs",true);e._trigger("load",null,e._ui(e.anchors[b],e.panels[b]));try{a.ajaxOptions.success(k,n)}catch(m){}},error:function(k,n){e._cleanup();e._trigger("load",null,e._ui(e.anchors[b],e.panels[b]));try{a.ajaxOptions.error(k,n,b,c)}catch(m){}}}));e.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(b,e){this.anchors.eq(b).removeData("cache.tabs").data("load.tabs",e);return this},length:function(){return this.anchors.length}});d.extend(d.ui.tabs,{version:"1.8.16"});d.extend(d.ui.tabs.prototype,{rotation:null,rotate:function(b,e){var a=this,c=this.options,h=a._rotate||(a._rotate=function(j){clearTimeout(a.rotation);a.rotation=setTimeout(function(){var k=c.selected;a.select(++k<a.anchors.length?k:0)},b);j&&j.stopPropagation()});e=a._unrotate||(a._unrotate=!e?function(j){j.clientX&&
-a.rotate(null)}:function(){t=c.selected;h()});if(b){this.element.bind("tabsshow",h);this.anchors.bind(c.event+".tabs",e);h()}else{clearTimeout(a.rotation);this.element.unbind("tabsshow",h);this.anchors.unbind(c.event+".tabs",e);delete this._rotate;delete this._unrotate}return this}})})(jQuery);
-;/*
- * jQuery UI Datepicker 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/Datepicker
- *
- * Depends:
- *	jquery.ui.core.js
- */
-(function(d,C){function M(){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};d.extend(this._defaults,this.regional[""]);this.dpDiv=N(d('<div id="'+this._mainDivId+'" class="ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all"></div>'))}function N(a){return a.bind("mouseout",
-function(b){b=d(b.target).closest("button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a");b.length&&b.removeClass("ui-state-hover ui-datepicker-prev-hover ui-datepicker-next-hover")}).bind("mouseover",function(b){b=d(b.target).closest("button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a");if(!(d.datepicker._isDisabledDatepicker(J.inline?a.parent()[0]:J.input[0])||!b.length)){b.parents(".ui-datepicker-calendar").find("a").removeClass("ui-state-hover");
-b.addClass("ui-state-hover");b.hasClass("ui-datepicker-prev")&&b.addClass("ui-datepicker-prev-hover");b.hasClass("ui-datepicker-next")&&b.addClass("ui-datepicker-next-hover")}})}function H(a,b){d.extend(a,b);for(var c in b)if(b[c]==null||b[c]==C)a[c]=b[c];return a}d.extend(d.ui,{datepicker:{version:"1.8.16"}});var B=(new Date).getTime(),J;d.extend(M.prototype,{markerClassName:"hasDatepicker",maxRows:4,log:function(){this.debug&&console.log.apply("",arguments)},_widgetDatepicker:function(){return this.dpDiv},
-setDefaults:function(a){H(this._defaults,a||{});return this},_attachDatepicker:function(a,b){var c=null;for(var e in this._defaults){var f=a.getAttribute("date:"+e);if(f){c=c||{};try{c[e]=eval(f)}catch(h){c[e]=f}}}e=a.nodeName.toLowerCase();f=e=="div"||e=="span";if(!a.id){this.uuid+=1;a.id="dp"+this.uuid}var i=this._newInst(d(a),f);i.settings=d.extend({},b||{},c||{});if(e=="input")this._connectDatepicker(a,i);else f&&this._inlineDatepicker(a,i)},_newInst:function(a,b){return{id:a[0].id.replace(/([^A-Za-z0-9_-])/g,
-"\\\\$1"),input:a,selectedDay:0,selectedMonth:0,selectedYear:0,drawMonth:0,drawYear:0,inline:b,dpDiv:!b?this.dpDiv:N(d('<div class="'+this._inlineClass+' ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all"></div>'))}},_connectDatepicker:function(a,b){var c=d(a);b.append=d([]);b.trigger=d([]);if(!c.hasClass(this.markerClassName)){this._attachments(c,b);c.addClass(this.markerClassName).keydown(this._doKeyDown).keypress(this._doKeyPress).keyup(this._doKeyUp).bind("setData.datepicker",
-function(e,f,h){b.settings[f]=h}).bind("getData.datepicker",function(e,f){return this._get(b,f)});this._autoSize(b);d.data(a,"datepicker",b);b.settings.disabled&&this._disableDatepicker(a)}},_attachments:function(a,b){var c=this._get(b,"appendText"),e=this._get(b,"isRTL");b.append&&b.append.remove();if(c){b.append=d('<span class="'+this._appendClass+'">'+c+"</span>");a[e?"before":"after"](b.append)}a.unbind("focus",this._showDatepicker);b.trigger&&b.trigger.remove();c=this._get(b,"showOn");if(c==
-"focus"||c=="both")a.focus(this._showDatepicker);if(c=="button"||c=="both"){c=this._get(b,"buttonText");var f=this._get(b,"buttonImage");b.trigger=d(this._get(b,"buttonImageOnly")?d("<img/>").addClass(this._triggerClass).attr({src:f,alt:c,title:c}):d('<button type="button"></button>').addClass(this._triggerClass).html(f==""?c:d("<img/>").attr({src:f,alt:c,title:c})));a[e?"before":"after"](b.trigger);b.trigger.click(function(){d.datepicker._datepickerShowing&&d.datepicker._lastInput==a[0]?d.datepicker._hideDatepicker():
-d.datepicker._showDatepicker(a[0]);return false})}},_autoSize:function(a){if(this._get(a,"autoSize")&&!a.inline){var b=new Date(2009,11,20),c=this._get(a,"dateFormat");if(c.match(/[DM]/)){var e=function(f){for(var h=0,i=0,g=0;g<f.length;g++)if(f[g].length>h){h=f[g].length;i=g}return i};b.setMonth(e(this._get(a,c.match(/MM/)?"monthNames":"monthNamesShort")));b.setDate(e(this._get(a,c.match(/DD/)?"dayNames":"dayNamesShort"))+20-b.getDay())}a.input.attr("size",this._formatDate(a,b).length)}},_inlineDatepicker:function(a,
-b){var c=d(a);if(!c.hasClass(this.markerClassName)){c.addClass(this.markerClassName).append(b.dpDiv).bind("setData.datepicker",function(e,f,h){b.settings[f]=h}).bind("getData.datepicker",function(e,f){return this._get(b,f)});d.data(a,"datepicker",b);this._setDate(b,this._getDefaultDate(b),true);this._updateDatepicker(b);this._updateAlternate(b);b.settings.disabled&&this._disableDatepicker(a);b.dpDiv.css("display","block")}},_dialogDatepicker:function(a,b,c,e,f){a=this._dialogInst;if(!a){this.uuid+=
-1;this._dialogInput=d('<input type="text" id="'+("dp"+this.uuid)+'" style="position: absolute; top: -100px; width: 0px; z-index: -10;"/>');this._dialogInput.keydown(this._doKeyDown);d("body").append(this._dialogInput);a=this._dialogInst=this._newInst(this._dialogInput,false);a.settings={};d.data(this._dialogInput[0],"datepicker",a)}H(a.settings,e||{});b=b&&b.constructor==Date?this._formatDate(a,b):b;this._dialogInput.val(b);this._pos=f?f.length?f:[f.pageX,f.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");a.settings.onSelect=c;this._inDialog=true;this.dpDiv.addClass(this._dialogClass);this._showDatepicker(this._dialogInput[0]);d.blockUI&&d.blockUI(this.dpDiv);d.data(this._dialogInput[0],"datepicker",a);return this},_destroyDatepicker:function(a){var b=
-d(a),c=d.data(a,"datepicker");if(b.hasClass(this.markerClassName)){var e=a.nodeName.toLowerCase();d.removeData(a,"datepicker");if(e=="input"){c.append.remove();c.trigger.remove();b.removeClass(this.markerClassName).unbind("focus",this._showDatepicker).unbind("keydown",this._doKeyDown).unbind("keypress",this._doKeyPress).unbind("keyup",this._doKeyUp)}else if(e=="div"||e=="span")b.removeClass(this.markerClassName).empty()}},_enableDatepicker:function(a){var b=d(a),c=d.data(a,"datepicker");if(b.hasClass(this.markerClassName)){var e=
-a.nodeName.toLowerCase();if(e=="input"){a.disabled=false;c.trigger.filter("button").each(function(){this.disabled=false}).end().filter("img").css({opacity:"1.0",cursor:""})}else if(e=="div"||e=="span"){b=b.children("."+this._inlineClass);b.children().removeClass("ui-state-disabled");b.find("select.ui-datepicker-month, select.ui-datepicker-year").removeAttr("disabled")}this._disabledInputs=d.map(this._disabledInputs,function(f){return f==a?null:f})}},_disableDatepicker:function(a){var b=d(a),c=d.data(a,
-"datepicker");if(b.hasClass(this.markerClassName)){var e=a.nodeName.toLowerCase();if(e=="input"){a.disabled=true;c.trigger.filter("button").each(function(){this.disabled=true}).end().filter("img").css({opacity:"0.5",cursor:"default"})}else if(e=="div"||e=="span"){b=b.children("."+this._inlineClass);b.children().addClass("ui-state-disabled");b.find("select.ui-datepicker-month, select.ui-datepicker-year").attr("disabled","disabled")}this._disabledInputs=d.map(this._disabledInputs,function(f){return f==
-a?null:f});this._disabledInputs[this._disabledInputs.length]=a}},_isDisabledDatepicker:function(a){if(!a)return false;for(var b=0;b<this._disabledInputs.length;b++)if(this._disabledInputs[b]==a)return true;return false},_getInst:function(a){try{return d.data(a,"datepicker")}catch(b){throw"Missing instance data for this datepicker";}},_optionDatepicker:function(a,b,c){var e=this._getInst(a);if(arguments.length==2&&typeof b=="string")return b=="defaults"?d.extend({},d.datepicker._defaults):e?b=="all"?
-d.extend({},e.settings):this._get(e,b):null;var f=b||{};if(typeof b=="string"){f={};f[b]=c}if(e){this._curInst==e&&this._hideDatepicker();var h=this._getDateDatepicker(a,true),i=this._getMinMaxDate(e,"min"),g=this._getMinMaxDate(e,"max");H(e.settings,f);if(i!==null&&f.dateFormat!==C&&f.minDate===C)e.settings.minDate=this._formatDate(e,i);if(g!==null&&f.dateFormat!==C&&f.maxDate===C)e.settings.maxDate=this._formatDate(e,g);this._attachments(d(a),e);this._autoSize(e);this._setDate(e,h);this._updateAlternate(e);
-this._updateDatepicker(e)}},_changeDatepicker:function(a,b,c){this._optionDatepicker(a,b,c)},_refreshDatepicker:function(a){(a=this._getInst(a))&&this._updateDatepicker(a)},_setDateDatepicker:function(a,b){if(a=this._getInst(a)){this._setDate(a,b);this._updateDatepicker(a);this._updateAlternate(a)}},_getDateDatepicker:function(a,b){(a=this._getInst(a))&&!a.inline&&this._setDateFromField(a,b);return a?this._getDate(a):null},_doKeyDown:function(a){var b=d.datepicker._getInst(a.target),c=true,e=b.dpDiv.is(".ui-datepicker-rtl");
-b._keyEvent=true;if(d.datepicker._datepickerShowing)switch(a.keyCode){case 9:d.datepicker._hideDatepicker();c=false;break;case 13:c=d("td."+d.datepicker._dayOverClass+":not(."+d.datepicker._currentClass+")",b.dpDiv);c[0]&&d.datepicker._selectDay(a.target,b.selectedMonth,b.selectedYear,c[0]);if(a=d.datepicker._get(b,"onSelect")){c=d.datepicker._formatDate(b);a.apply(b.input?b.input[0]:null,[c,b])}else d.datepicker._hideDatepicker();return false;case 27:d.datepicker._hideDatepicker();break;case 33:d.datepicker._adjustDate(a.target,
-a.ctrlKey?-d.datepicker._get(b,"stepBigMonths"):-d.datepicker._get(b,"stepMonths"),"M");break;case 34:d.datepicker._adjustDate(a.target,a.ctrlKey?+d.datepicker._get(b,"stepBigMonths"):+d.datepicker._get(b,"stepMonths"),"M");break;case 35:if(a.ctrlKey||a.metaKey)d.datepicker._clearDate(a.target);c=a.ctrlKey||a.metaKey;break;case 36:if(a.ctrlKey||a.metaKey)d.datepicker._gotoToday(a.target);c=a.ctrlKey||a.metaKey;break;case 37:if(a.ctrlKey||a.metaKey)d.datepicker._adjustDate(a.target,e?+1:-1,"D");c=
-a.ctrlKey||a.metaKey;if(a.originalEvent.altKey)d.datepicker._adjustDate(a.target,a.ctrlKey?-d.datepicker._get(b,"stepBigMonths"):-d.datepicker._get(b,"stepMonths"),"M");break;case 38:if(a.ctrlKey||a.metaKey)d.datepicker._adjustDate(a.target,-7,"D");c=a.ctrlKey||a.metaKey;break;case 39:if(a.ctrlKey||a.metaKey)d.datepicker._adjustDate(a.target,e?-1:+1,"D");c=a.ctrlKey||a.metaKey;if(a.originalEvent.altKey)d.datepicker._adjustDate(a.target,a.ctrlKey?+d.datepicker._get(b,"stepBigMonths"):+d.datepicker._get(b,
-"stepMonths"),"M");break;case 40:if(a.ctrlKey||a.metaKey)d.datepicker._adjustDate(a.target,+7,"D");c=a.ctrlKey||a.metaKey;break;default:c=false}else if(a.keyCode==36&&a.ctrlKey)d.datepicker._showDatepicker(this);else c=false;if(c){a.preventDefault();a.stopPropagation()}},_doKeyPress:function(a){var b=d.datepicker._getInst(a.target);if(d.datepicker._get(b,"constrainInput")){b=d.datepicker._possibleChars(d.datepicker._get(b,"dateFormat"));var c=String.fromCharCode(a.charCode==C?a.keyCode:a.charCode);
-return a.ctrlKey||a.metaKey||c<" "||!b||b.indexOf(c)>-1}},_doKeyUp:function(a){a=d.datepicker._getInst(a.target);if(a.input.val()!=a.lastVal)try{if(d.datepicker.parseDate(d.datepicker._get(a,"dateFormat"),a.input?a.input.val():null,d.datepicker._getFormatConfig(a))){d.datepicker._setDateFromField(a);d.datepicker._updateAlternate(a);d.datepicker._updateDatepicker(a)}}catch(b){d.datepicker.log(b)}return true},_showDatepicker:function(a){a=a.target||a;if(a.nodeName.toLowerCase()!="input")a=d("input",
-a.parentNode)[0];if(!(d.datepicker._isDisabledDatepicker(a)||d.datepicker._lastInput==a)){var b=d.datepicker._getInst(a);if(d.datepicker._curInst&&d.datepicker._curInst!=b){d.datepicker._datepickerShowing&&d.datepicker._triggerOnClose(d.datepicker._curInst);d.datepicker._curInst.dpDiv.stop(true,true)}var c=d.datepicker._get(b,"beforeShow");c=c?c.apply(a,[a,b]):{};if(c!==false){H(b.settings,c);b.lastVal=null;d.datepicker._lastInput=a;d.datepicker._setDateFromField(b);if(d.datepicker._inDialog)a.value=
-"";if(!d.datepicker._pos){d.datepicker._pos=d.datepicker._findPos(a);d.datepicker._pos[1]+=a.offsetHeight}var e=false;d(a).parents().each(function(){e|=d(this).css("position")=="fixed";return!e});if(e&&d.browser.opera){d.datepicker._pos[0]-=document.documentElement.scrollLeft;d.datepicker._pos[1]-=document.documentElement.scrollTop}c={left:d.datepicker._pos[0],top:d.datepicker._pos[1]};d.datepicker._pos=null;b.dpDiv.empty();b.dpDiv.css({position:"absolute",display:"block",top:"-1000px"});d.datepicker._updateDatepicker(b);
-c=d.datepicker._checkOffset(b,c,e);b.dpDiv.css({position:d.datepicker._inDialog&&d.blockUI?"static":e?"fixed":"absolute",display:"none",left:c.left+"px",top:c.top+"px"});if(!b.inline){c=d.datepicker._get(b,"showAnim");var f=d.datepicker._get(b,"duration"),h=function(){var i=b.dpDiv.find("iframe.ui-datepicker-cover");if(i.length){var g=d.datepicker._getBorders(b.dpDiv);i.css({left:-g[0],top:-g[1],width:b.dpDiv.outerWidth(),height:b.dpDiv.outerHeight()})}};b.dpDiv.zIndex(d(a).zIndex()+1);d.datepicker._datepickerShowing=
-true;d.effects&&d.effects[c]?b.dpDiv.show(c,d.datepicker._get(b,"showOptions"),f,h):b.dpDiv[c||"show"](c?f:null,h);if(!c||!f)h();b.input.is(":visible")&&!b.input.is(":disabled")&&b.input.focus();d.datepicker._curInst=b}}}},_updateDatepicker:function(a){this.maxRows=4;var b=d.datepicker._getBorders(a.dpDiv);J=a;a.dpDiv.empty().append(this._generateHTML(a));var c=a.dpDiv.find("iframe.ui-datepicker-cover");c.length&&c.css({left:-b[0],top:-b[1],width:a.dpDiv.outerWidth(),height:a.dpDiv.outerHeight()});
-a.dpDiv.find("."+this._dayOverClass+" a").mouseover();b=this._getNumberOfMonths(a);c=b[1];a.dpDiv.removeClass("ui-datepicker-multi-2 ui-datepicker-multi-3 ui-datepicker-multi-4").width("");c>1&&a.dpDiv.addClass("ui-datepicker-multi-"+c).css("width",17*c+"em");a.dpDiv[(b[0]!=1||b[1]!=1?"add":"remove")+"Class"]("ui-datepicker-multi");a.dpDiv[(this._get(a,"isRTL")?"add":"remove")+"Class"]("ui-datepicker-rtl");a==d.datepicker._curInst&&d.datepicker._datepickerShowing&&a.input&&a.input.is(":visible")&&
-!a.input.is(":disabled")&&a.input[0]!=document.activeElement&&a.input.focus();if(a.yearshtml){var e=a.yearshtml;setTimeout(function(){e===a.yearshtml&&a.yearshtml&&a.dpDiv.find("select.ui-datepicker-year:first").replaceWith(a.yearshtml);e=a.yearshtml=null},0)}},_getBorders:function(a){var b=function(c){return{thin:1,medium:2,thick:3}[c]||c};return[parseFloat(b(a.css("border-left-width"))),parseFloat(b(a.css("border-top-width")))]},_checkOffset:function(a,b,c){var e=a.dpDiv.outerWidth(),f=a.dpDiv.outerHeight(),
-h=a.input?a.input.outerWidth():0,i=a.input?a.input.outerHeight():0,g=document.documentElement.clientWidth+d(document).scrollLeft(),j=document.documentElement.clientHeight+d(document).scrollTop();b.left-=this._get(a,"isRTL")?e-h:0;b.left-=c&&b.left==a.input.offset().left?d(document).scrollLeft():0;b.top-=c&&b.top==a.input.offset().top+i?d(document).scrollTop():0;b.left-=Math.min(b.left,b.left+e>g&&g>e?Math.abs(b.left+e-g):0);b.top-=Math.min(b.top,b.top+f>j&&j>f?Math.abs(f+i):0);return b},_findPos:function(a){for(var b=
-this._get(this._getInst(a),"isRTL");a&&(a.type=="hidden"||a.nodeType!=1||d.expr.filters.hidden(a));)a=a[b?"previousSibling":"nextSibling"];a=d(a).offset();return[a.left,a.top]},_triggerOnClose:function(a){var b=this._get(a,"onClose");if(b)b.apply(a.input?a.input[0]:null,[a.input?a.input.val():"",a])},_hideDatepicker:function(a){var b=this._curInst;if(!(!b||a&&b!=d.data(a,"datepicker")))if(this._datepickerShowing){a=this._get(b,"showAnim");var c=this._get(b,"duration"),e=function(){d.datepicker._tidyDialog(b);
-this._curInst=null};d.effects&&d.effects[a]?b.dpDiv.hide(a,d.datepicker._get(b,"showOptions"),c,e):b.dpDiv[a=="slideDown"?"slideUp":a=="fadeIn"?"fadeOut":"hide"](a?c:null,e);a||e();d.datepicker._triggerOnClose(b);this._datepickerShowing=false;this._lastInput=null;if(this._inDialog){this._dialogInput.css({position:"absolute",left:"0",top:"-100px"});if(d.blockUI){d.unblockUI();d("body").append(this.dpDiv)}}this._inDialog=false}},_tidyDialog:function(a){a.dpDiv.removeClass(this._dialogClass).unbind(".ui-datepicker-calendar")},
-_checkExternalClick:function(a){if(d.datepicker._curInst){a=d(a.target);a[0].id!=d.datepicker._mainDivId&&a.parents("#"+d.datepicker._mainDivId).length==0&&!a.hasClass(d.datepicker.markerClassName)&&!a.hasClass(d.datepicker._triggerClass)&&d.datepicker._datepickerShowing&&!(d.datepicker._inDialog&&d.blockUI)&&d.datepicker._hideDatepicker()}},_adjustDate:function(a,b,c){a=d(a);var e=this._getInst(a[0]);if(!this._isDisabledDatepicker(a[0])){this._adjustInstDate(e,b+(c=="M"?this._get(e,"showCurrentAtPos"):
-0),c);this._updateDatepicker(e)}},_gotoToday:function(a){a=d(a);var b=this._getInst(a[0]);if(this._get(b,"gotoCurrent")&&b.currentDay){b.selectedDay=b.currentDay;b.drawMonth=b.selectedMonth=b.currentMonth;b.drawYear=b.selectedYear=b.currentYear}else{var c=new Date;b.selectedDay=c.getDate();b.drawMonth=b.selectedMonth=c.getMonth();b.drawYear=b.selectedYear=c.getFullYear()}this._notifyChange(b);this._adjustDate(a)},_selectMonthYear:function(a,b,c){a=d(a);var e=this._getInst(a[0]);e["selected"+(c=="M"?
-"Month":"Year")]=e["draw"+(c=="M"?"Month":"Year")]=parseInt(b.options[b.selectedIndex].value,10);this._notifyChange(e);this._adjustDate(a)},_selectDay:function(a,b,c,e){var f=d(a);if(!(d(e).hasClass(this._unselectableClass)||this._isDisabledDatepicker(f[0]))){f=this._getInst(f[0]);f.selectedDay=f.currentDay=d("a",e).html();f.selectedMonth=f.currentMonth=b;f.selectedYear=f.currentYear=c;this._selectDate(a,this._formatDate(f,f.currentDay,f.currentMonth,f.currentYear))}},_clearDate:function(a){a=d(a);
-this._getInst(a[0]);this._selectDate(a,"")},_selectDate:function(a,b){a=this._getInst(d(a)[0]);b=b!=null?b:this._formatDate(a);a.input&&a.input.val(b);this._updateAlternate(a);var c=this._get(a,"onSelect");if(c)c.apply(a.input?a.input[0]:null,[b,a]);else a.input&&a.input.trigger("change");if(a.inline)this._updateDatepicker(a);else{this._hideDatepicker();this._lastInput=a.input[0];typeof a.input[0]!="object"&&a.input.focus();this._lastInput=null}},_updateAlternate:function(a){var b=this._get(a,"altField");
-if(b){var c=this._get(a,"altFormat")||this._get(a,"dateFormat"),e=this._getDate(a),f=this.formatDate(c,e,this._getFormatConfig(a));d(b).each(function(){d(this).val(f)})}},noWeekends:function(a){a=a.getDay();return[a>0&&a<6,""]},iso8601Week:function(a){a=new Date(a.getTime());a.setDate(a.getDate()+4-(a.getDay()||7));var b=a.getTime();a.setMonth(0);a.setDate(1);return Math.floor(Math.round((b-a)/864E5)/7)+1},parseDate:function(a,b,c){if(a==null||b==null)throw"Invalid arguments";b=typeof b=="object"?
-b.toString():b+"";if(b=="")return null;var e=(c?c.shortYearCutoff:null)||this._defaults.shortYearCutoff;e=typeof e!="string"?e:(new Date).getFullYear()%100+parseInt(e,10);for(var f=(c?c.dayNamesShort:null)||this._defaults.dayNamesShort,h=(c?c.dayNames:null)||this._defaults.dayNames,i=(c?c.monthNamesShort:null)||this._defaults.monthNamesShort,g=(c?c.monthNames:null)||this._defaults.monthNames,j=c=-1,l=-1,u=-1,k=false,o=function(p){(p=A+1<a.length&&a.charAt(A+1)==p)&&A++;return p},m=function(p){var D=
-o(p);p=new RegExp("^\\d{1,"+(p=="@"?14:p=="!"?20:p=="y"&&D?4:p=="o"?3:2)+"}");p=b.substring(q).match(p);if(!p)throw"Missing number at position "+q;q+=p[0].length;return parseInt(p[0],10)},n=function(p,D,K){p=d.map(o(p)?K:D,function(w,x){return[[x,w]]}).sort(function(w,x){return-(w[1].length-x[1].length)});var E=-1;d.each(p,function(w,x){w=x[1];if(b.substr(q,w.length).toLowerCase()==w.toLowerCase()){E=x[0];q+=w.length;return false}});if(E!=-1)return E+1;else throw"Unknown name at position "+q;},s=
-function(){if(b.charAt(q)!=a.charAt(A))throw"Unexpected literal at position "+q;q++},q=0,A=0;A<a.length;A++)if(k)if(a.charAt(A)=="'"&&!o("'"))k=false;else s();else switch(a.charAt(A)){case "d":l=m("d");break;case "D":n("D",f,h);break;case "o":u=m("o");break;case "m":j=m("m");break;case "M":j=n("M",i,g);break;case "y":c=m("y");break;case "@":var v=new Date(m("@"));c=v.getFullYear();j=v.getMonth()+1;l=v.getDate();break;case "!":v=new Date((m("!")-this._ticksTo1970)/1E4);c=v.getFullYear();j=v.getMonth()+
-1;l=v.getDate();break;case "'":if(o("'"))s();else k=true;break;default:s()}if(q<b.length)throw"Extra/unparsed characters found in date: "+b.substring(q);if(c==-1)c=(new Date).getFullYear();else if(c<100)c+=(new Date).getFullYear()-(new Date).getFullYear()%100+(c<=e?0:-100);if(u>-1){j=1;l=u;do{e=this._getDaysInMonth(c,j-1);if(l<=e)break;j++;l-=e}while(1)}v=this._daylightSavingAdjust(new Date(c,j-1,l));if(v.getFullYear()!=c||v.getMonth()+1!=j||v.getDate()!=l)throw"Invalid date";return v},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(a,b,c){if(!b)return"";var e=(c?c.dayNamesShort:null)||this._defaults.dayNamesShort,f=(c?c.dayNames:null)||this._defaults.dayNames,h=(c?c.monthNamesShort:null)||this._defaults.monthNamesShort;c=(c?c.monthNames:
-null)||this._defaults.monthNames;var i=function(o){(o=k+1<a.length&&a.charAt(k+1)==o)&&k++;return o},g=function(o,m,n){m=""+m;if(i(o))for(;m.length<n;)m="0"+m;return m},j=function(o,m,n,s){return i(o)?s[m]:n[m]},l="",u=false;if(b)for(var k=0;k<a.length;k++)if(u)if(a.charAt(k)=="'"&&!i("'"))u=false;else l+=a.charAt(k);else switch(a.charAt(k)){case "d":l+=g("d",b.getDate(),2);break;case "D":l+=j("D",b.getDay(),e,f);break;case "o":l+=g("o",Math.round(((new Date(b.getFullYear(),b.getMonth(),b.getDate())).getTime()-
-(new Date(b.getFullYear(),0,0)).getTime())/864E5),3);break;case "m":l+=g("m",b.getMonth()+1,2);break;case "M":l+=j("M",b.getMonth(),h,c);break;case "y":l+=i("y")?b.getFullYear():(b.getYear()%100<10?"0":"")+b.getYear()%100;break;case "@":l+=b.getTime();break;case "!":l+=b.getTime()*1E4+this._ticksTo1970;break;case "'":if(i("'"))l+="'";else u=true;break;default:l+=a.charAt(k)}return l},_possibleChars:function(a){for(var b="",c=false,e=function(h){(h=f+1<a.length&&a.charAt(f+1)==h)&&f++;return h},f=
-0;f<a.length;f++)if(c)if(a.charAt(f)=="'"&&!e("'"))c=false;else b+=a.charAt(f);else switch(a.charAt(f)){case "d":case "m":case "y":case "@":b+="0123456789";break;case "D":case "M":return null;case "'":if(e("'"))b+="'";else c=true;break;default:b+=a.charAt(f)}return b},_get:function(a,b){return a.settings[b]!==C?a.settings[b]:this._defaults[b]},_setDateFromField:function(a,b){if(a.input.val()!=a.lastVal){var c=this._get(a,"dateFormat"),e=a.lastVal=a.input?a.input.val():null,f,h;f=h=this._getDefaultDate(a);
-var i=this._getFormatConfig(a);try{f=this.parseDate(c,e,i)||h}catch(g){this.log(g);e=b?"":e}a.selectedDay=f.getDate();a.drawMonth=a.selectedMonth=f.getMonth();a.drawYear=a.selectedYear=f.getFullYear();a.currentDay=e?f.getDate():0;a.currentMonth=e?f.getMonth():0;a.currentYear=e?f.getFullYear():0;this._adjustInstDate(a)}},_getDefaultDate:function(a){return this._restrictMinMax(a,this._determineDate(a,this._get(a,"defaultDate"),new Date))},_determineDate:function(a,b,c){var e=function(h){var i=new Date;
-i.setDate(i.getDate()+h);return i},f=function(h){try{return d.datepicker.parseDate(d.datepicker._get(a,"dateFormat"),h,d.datepicker._getFormatConfig(a))}catch(i){}var g=(h.toLowerCase().match(/^c/)?d.datepicker._getDate(a):null)||new Date,j=g.getFullYear(),l=g.getMonth();g=g.getDate();for(var u=/([+-]?[0-9]+)\s*(d|D|w|W|m|M|y|Y)?/g,k=u.exec(h);k;){switch(k[2]||"d"){case "d":case "D":g+=parseInt(k[1],10);break;case "w":case "W":g+=parseInt(k[1],10)*7;break;case "m":case "M":l+=parseInt(k[1],10);g=
-Math.min(g,d.datepicker._getDaysInMonth(j,l));break;case "y":case "Y":j+=parseInt(k[1],10);g=Math.min(g,d.datepicker._getDaysInMonth(j,l));break}k=u.exec(h)}return new Date(j,l,g)};if(b=(b=b==null||b===""?c:typeof b=="string"?f(b):typeof b=="number"?isNaN(b)?c:e(b):new Date(b.getTime()))&&b.toString()=="Invalid Date"?c:b){b.setHours(0);b.setMinutes(0);b.setSeconds(0);b.setMilliseconds(0)}return this._daylightSavingAdjust(b)},_daylightSavingAdjust:function(a){if(!a)return null;a.setHours(a.getHours()>
-12?a.getHours()+2:0);return a},_setDate:function(a,b,c){var e=!b,f=a.selectedMonth,h=a.selectedYear;b=this._restrictMinMax(a,this._determineDate(a,b,new Date));a.selectedDay=a.currentDay=b.getDate();a.drawMonth=a.selectedMonth=a.currentMonth=b.getMonth();a.drawYear=a.selectedYear=a.currentYear=b.getFullYear();if((f!=a.selectedMonth||h!=a.selectedYear)&&!c)this._notifyChange(a);this._adjustInstDate(a);if(a.input)a.input.val(e?"":this._formatDate(a))},_getDate:function(a){return!a.currentYear||a.input&&
-a.input.val()==""?null:this._daylightSavingAdjust(new Date(a.currentYear,a.currentMonth,a.currentDay))},_generateHTML:function(a){var b=new Date;b=this._daylightSavingAdjust(new Date(b.getFullYear(),b.getMonth(),b.getDate()));var c=this._get(a,"isRTL"),e=this._get(a,"showButtonPanel"),f=this._get(a,"hideIfNoPrevNext"),h=this._get(a,"navigationAsDateFormat"),i=this._getNumberOfMonths(a),g=this._get(a,"showCurrentAtPos"),j=this._get(a,"stepMonths"),l=i[0]!=1||i[1]!=1,u=this._daylightSavingAdjust(!a.currentDay?
-new Date(9999,9,9):new Date(a.currentYear,a.currentMonth,a.currentDay)),k=this._getMinMaxDate(a,"min"),o=this._getMinMaxDate(a,"max");g=a.drawMonth-g;var m=a.drawYear;if(g<0){g+=12;m--}if(o){var n=this._daylightSavingAdjust(new Date(o.getFullYear(),o.getMonth()-i[0]*i[1]+1,o.getDate()));for(n=k&&n<k?k:n;this._daylightSavingAdjust(new Date(m,g,1))>n;){g--;if(g<0){g=11;m--}}}a.drawMonth=g;a.drawYear=m;n=this._get(a,"prevText");n=!h?n:this.formatDate(n,this._daylightSavingAdjust(new Date(m,g-j,1)),this._getFormatConfig(a));
-n=this._canAdjustMonth(a,-1,m,g)?'<a class="ui-datepicker-prev ui-corner-all" onclick="DP_jQuery_'+B+".datepicker._adjustDate('#"+a.id+"', -"+j+", 'M');\" title=\""+n+'"><span class="ui-icon ui-icon-circle-triangle-'+(c?"e":"w")+'">'+n+"</span></a>":f?"":'<a class="ui-datepicker-prev ui-corner-all ui-state-disabled" title="'+n+'"><span class="ui-icon ui-icon-circle-triangle-'+(c?"e":"w")+'">'+n+"</span></a>";var s=this._get(a,"nextText");s=!h?s:this.formatDate(s,this._daylightSavingAdjust(new Date(m,
-g+j,1)),this._getFormatConfig(a));f=this._canAdjustMonth(a,+1,m,g)?'<a class="ui-datepicker-next ui-corner-all" onclick="DP_jQuery_'+B+".datepicker._adjustDate('#"+a.id+"', +"+j+", 'M');\" title=\""+s+'"><span class="ui-icon ui-icon-circle-triangle-'+(c?"w":"e")+'">'+s+"</span></a>":f?"":'<a class="ui-datepicker-next ui-corner-all ui-state-disabled" title="'+s+'"><span class="ui-icon ui-icon-circle-triangle-'+(c?"w":"e")+'">'+s+"</span></a>";j=this._get(a,"currentText");s=this._get(a,"gotoCurrent")&&
-a.currentDay?u:b;j=!h?j:this.formatDate(j,s,this._getFormatConfig(a));h=!a.inline?'<button type="button" class="ui-datepicker-close ui-state-default ui-priority-primary ui-corner-all" onclick="DP_jQuery_'+B+'.datepicker._hideDatepicker();">'+this._get(a,"closeText")+"</button>":"";e=e?'<div class="ui-datepicker-buttonpane ui-widget-content">'+(c?h:"")+(this._isInRange(a,s)?'<button type="button" class="ui-datepicker-current ui-state-default ui-priority-secondary ui-corner-all" onclick="DP_jQuery_'+
-B+".datepicker._gotoToday('#"+a.id+"');\">"+j+"</button>":"")+(c?"":h)+"</div>":"";h=parseInt(this._get(a,"firstDay"),10);h=isNaN(h)?0:h;j=this._get(a,"showWeek");s=this._get(a,"dayNames");this._get(a,"dayNamesShort");var q=this._get(a,"dayNamesMin"),A=this._get(a,"monthNames"),v=this._get(a,"monthNamesShort"),p=this._get(a,"beforeShowDay"),D=this._get(a,"showOtherMonths"),K=this._get(a,"selectOtherMonths");this._get(a,"calculateWeek");for(var E=this._getDefaultDate(a),w="",x=0;x<i[0];x++){var O=
-"";this.maxRows=4;for(var G=0;G<i[1];G++){var P=this._daylightSavingAdjust(new Date(m,g,a.selectedDay)),t=" ui-corner-all",y="";if(l){y+='<div class="ui-datepicker-group';if(i[1]>1)switch(G){case 0:y+=" ui-datepicker-group-first";t=" ui-corner-"+(c?"right":"left");break;case i[1]-1:y+=" ui-datepicker-group-last";t=" ui-corner-"+(c?"left":"right");break;default:y+=" ui-datepicker-group-middle";t="";break}y+='">'}y+='<div class="ui-datepicker-header ui-widget-header ui-helper-clearfix'+t+'">'+(/all|left/.test(t)&&
-x==0?c?f:n:"")+(/all|right/.test(t)&&x==0?c?n:f:"")+this._generateMonthYearHeader(a,g,m,k,o,x>0||G>0,A,v)+'</div><table class="ui-datepicker-calendar"><thead><tr>';var z=j?'<th class="ui-datepicker-week-col">'+this._get(a,"weekHeader")+"</th>":"";for(t=0;t<7;t++){var r=(t+h)%7;z+="<th"+((t+h+6)%7>=5?' class="ui-datepicker-week-end"':"")+'><span title="'+s[r]+'">'+q[r]+"</span></th>"}y+=z+"</tr></thead><tbody>";z=this._getDaysInMonth(m,g);if(m==a.selectedYear&&g==a.selectedMonth)a.selectedDay=Math.min(a.selectedDay,
-z);t=(this._getFirstDayOfMonth(m,g)-h+7)%7;z=Math.ceil((t+z)/7);this.maxRows=z=l?this.maxRows>z?this.maxRows:z:z;r=this._daylightSavingAdjust(new Date(m,g,1-t));for(var Q=0;Q<z;Q++){y+="<tr>";var R=!j?"":'<td class="ui-datepicker-week-col">'+this._get(a,"calculateWeek")(r)+"</td>";for(t=0;t<7;t++){var I=p?p.apply(a.input?a.input[0]:null,[r]):[true,""],F=r.getMonth()!=g,L=F&&!K||!I[0]||k&&r<k||o&&r>o;R+='<td class="'+((t+h+6)%7>=5?" ui-datepicker-week-end":"")+(F?" ui-datepicker-other-month":"")+(r.getTime()==
-P.getTime()&&g==a.selectedMonth&&a._keyEvent||E.getTime()==r.getTime()&&E.getTime()==P.getTime()?" "+this._dayOverClass:"")+(L?" "+this._unselectableClass+" ui-state-disabled":"")+(F&&!D?"":" "+I[1]+(r.getTime()==u.getTime()?" "+this._currentClass:"")+(r.getTime()==b.getTime()?" ui-datepicker-today":""))+'"'+((!F||D)&&I[2]?' title="'+I[2]+'"':"")+(L?"":' onclick="DP_jQuery_'+B+".datepicker._selectDay('#"+a.id+"',"+r.getMonth()+","+r.getFullYear()+', this);return false;"')+">"+(F&&!D?"&#xa0;":L?'<span class="ui-state-default">'+
-r.getDate()+"</span>":'<a class="ui-state-default'+(r.getTime()==b.getTime()?" ui-state-highlight":"")+(r.getTime()==u.getTime()?" ui-state-active":"")+(F?" ui-priority-secondary":"")+'" href="#">'+r.getDate()+"</a>")+"</td>";r.setDate(r.getDate()+1);r=this._daylightSavingAdjust(r)}y+=R+"</tr>"}g++;if(g>11){g=0;m++}y+="</tbody></table>"+(l?"</div>"+(i[0]>0&&G==i[1]-1?'<div class="ui-datepicker-row-break"></div>':""):"");O+=y}w+=O}w+=e+(d.browser.msie&&parseInt(d.browser.version,10)<7&&!a.inline?'<iframe src="javascript:false;" class="ui-datepicker-cover" frameborder="0"></iframe>':
-"");a._keyEvent=false;return w},_generateMonthYearHeader:function(a,b,c,e,f,h,i,g){var j=this._get(a,"changeMonth"),l=this._get(a,"changeYear"),u=this._get(a,"showMonthAfterYear"),k='<div class="ui-datepicker-title">',o="";if(h||!j)o+='<span class="ui-datepicker-month">'+i[b]+"</span>";else{i=e&&e.getFullYear()==c;var m=f&&f.getFullYear()==c;o+='<select class="ui-datepicker-month" onchange="DP_jQuery_'+B+".datepicker._selectMonthYear('#"+a.id+"', this, 'M');\" >";for(var n=0;n<12;n++)if((!i||n>=e.getMonth())&&
-(!m||n<=f.getMonth()))o+='<option value="'+n+'"'+(n==b?' selected="selected"':"")+">"+g[n]+"</option>";o+="</select>"}u||(k+=o+(h||!(j&&l)?"&#xa0;":""));if(!a.yearshtml){a.yearshtml="";if(h||!l)k+='<span class="ui-datepicker-year">'+c+"</span>";else{g=this._get(a,"yearRange").split(":");var s=(new Date).getFullYear();i=function(q){q=q.match(/c[+-].*/)?c+parseInt(q.substring(1),10):q.match(/[+-].*/)?s+parseInt(q,10):parseInt(q,10);return isNaN(q)?s:q};b=i(g[0]);g=Math.max(b,i(g[1]||""));b=e?Math.max(b,
-e.getFullYear()):b;g=f?Math.min(g,f.getFullYear()):g;for(a.yearshtml+='<select class="ui-datepicker-year" onchange="DP_jQuery_'+B+".datepicker._selectMonthYear('#"+a.id+"', this, 'Y');\" >";b<=g;b++)a.yearshtml+='<option value="'+b+'"'+(b==c?' selected="selected"':"")+">"+b+"</option>";a.yearshtml+="</select>";k+=a.yearshtml;a.yearshtml=null}}k+=this._get(a,"yearSuffix");if(u)k+=(h||!(j&&l)?"&#xa0;":"")+o;k+="</div>";return k},_adjustInstDate:function(a,b,c){var e=a.drawYear+(c=="Y"?b:0),f=a.drawMonth+
-(c=="M"?b:0);b=Math.min(a.selectedDay,this._getDaysInMonth(e,f))+(c=="D"?b:0);e=this._restrictMinMax(a,this._daylightSavingAdjust(new Date(e,f,b)));a.selectedDay=e.getDate();a.drawMonth=a.selectedMonth=e.getMonth();a.drawYear=a.selectedYear=e.getFullYear();if(c=="M"||c=="Y")this._notifyChange(a)},_restrictMinMax:function(a,b){var c=this._getMinMaxDate(a,"min");a=this._getMinMaxDate(a,"max");b=c&&b<c?c:b;return b=a&&b>a?a:b},_notifyChange:function(a){var b=this._get(a,"onChangeMonthYear");if(b)b.apply(a.input?
-a.input[0]:null,[a.selectedYear,a.selectedMonth+1,a])},_getNumberOfMonths:function(a){a=this._get(a,"numberOfMonths");return a==null?[1,1]:typeof a=="number"?[1,a]:a},_getMinMaxDate:function(a,b){return this._determineDate(a,this._get(a,b+"Date"),null)},_getDaysInMonth:function(a,b){return 32-this._daylightSavingAdjust(new Date(a,b,32)).getDate()},_getFirstDayOfMonth:function(a,b){return(new Date(a,b,1)).getDay()},_canAdjustMonth:function(a,b,c,e){var f=this._getNumberOfMonths(a);c=this._daylightSavingAdjust(new Date(c,
-e+(b<0?b:f[0]*f[1]),1));b<0&&c.setDate(this._getDaysInMonth(c.getFullYear(),c.getMonth()));return this._isInRange(a,c)},_isInRange:function(a,b){var c=this._getMinMaxDate(a,"min");a=this._getMinMaxDate(a,"max");return(!c||b.getTime()>=c.getTime())&&(!a||b.getTime()<=a.getTime())},_getFormatConfig:function(a){var b=this._get(a,"shortYearCutoff");b=typeof b!="string"?b:(new Date).getFullYear()%100+parseInt(b,10);return{shortYearCutoff:b,dayNamesShort:this._get(a,"dayNamesShort"),dayNames:this._get(a,
-"dayNames"),monthNamesShort:this._get(a,"monthNamesShort"),monthNames:this._get(a,"monthNames")}},_formatDate:function(a,b,c,e){if(!b){a.currentDay=a.selectedDay;a.currentMonth=a.selectedMonth;a.currentYear=a.selectedYear}b=b?typeof b=="object"?b:this._daylightSavingAdjust(new Date(e,c,b)):this._daylightSavingAdjust(new Date(a.currentYear,a.currentMonth,a.currentDay));return this.formatDate(this._get(a,"dateFormat"),b,this._getFormatConfig(a))}});d.fn.datepicker=function(a){if(!this.length)return this;
-if(!d.datepicker.initialized){d(document).mousedown(d.datepicker._checkExternalClick).find("body").append(d.datepicker.dpDiv);d.datepicker.initialized=true}var b=Array.prototype.slice.call(arguments,1);if(typeof a=="string"&&(a=="isDisabled"||a=="getDate"||a=="widget"))return d.datepicker["_"+a+"Datepicker"].apply(d.datepicker,[this[0]].concat(b));if(a=="option"&&arguments.length==2&&typeof arguments[1]=="string")return d.datepicker["_"+a+"Datepicker"].apply(d.datepicker,[this[0]].concat(b));return this.each(function(){typeof a==
-"string"?d.datepicker["_"+a+"Datepicker"].apply(d.datepicker,[this].concat(b)):d.datepicker._attachDatepicker(this,a)})};d.datepicker=new M;d.datepicker.initialized=false;d.datepicker.uuid=(new Date).getTime();d.datepicker.version="1.8.16";window["DP_jQuery_"+B]=d})(jQuery);
-;/*
- * jQuery UI Progressbar 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/Progressbar
- *
- * Depends:
- *   jquery.ui.core.js
- *   jquery.ui.widget.js
- */
-(function(b,d){b.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=b("<div class='ui-progressbar-value ui-widget-header ui-corner-left'></div>").appendTo(this.element);this.oldValue=this._value();this._refreshValue()},destroy:function(){this.element.removeClass("ui-progressbar ui-widget ui-widget-content ui-corner-all").removeAttr("role").removeAttr("aria-valuemin").removeAttr("aria-valuemax").removeAttr("aria-valuenow");
-this.valueDiv.remove();b.Widget.prototype.destroy.apply(this,arguments)},value:function(a){if(a===d)return this._value();this._setOption("value",a);return this},_setOption:function(a,c){if(a==="value"){this.options.value=c;this._refreshValue();this._value()===this.options.max&&this._trigger("complete")}b.Widget.prototype._setOption.apply(this,arguments)},_value:function(){var a=this.options.value;if(typeof a!=="number")a=0;return Math.min(this.options.max,Math.max(this.min,a))},_percentage:function(){return 100*
-this._value()/this.options.max},_refreshValue:function(){var a=this.value(),c=this._percentage();if(this.oldValue!==a){this.oldValue=a;this._trigger("change")}this.valueDiv.toggle(a>this.min).toggleClass("ui-corner-right",a===this.options.max).width(c.toFixed(0)+"%");this.element.attr("aria-valuenow",a)}});b.extend(b.ui.progressbar,{version:"1.8.16"})})(jQuery);
-;/*
- * jQuery UI Effects 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/Effects/
- */
-jQuery.effects||function(f,j){function m(c){var a;if(c&&c.constructor==Array&&c.length==3)return c;if(a=/rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/.exec(c))return[parseInt(a[1],10),parseInt(a[2],10),parseInt(a[3],10)];if(a=/rgb\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*\)/.exec(c))return[parseFloat(a[1])*2.55,parseFloat(a[2])*2.55,parseFloat(a[3])*2.55];if(a=/#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/.exec(c))return[parseInt(a[1],
-16),parseInt(a[2],16),parseInt(a[3],16)];if(a=/#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/.exec(c))return[parseInt(a[1]+a[1],16),parseInt(a[2]+a[2],16),parseInt(a[3]+a[3],16)];if(/rgba\(0, 0, 0, 0\)/.exec(c))return n.transparent;return n[f.trim(c).toLowerCase()]}function s(c,a){var b;do{b=f.curCSS(c,a);if(b!=""&&b!="transparent"||f.nodeName(c,"body"))break;a="backgroundColor"}while(c=c.parentNode);return m(b)}function o(){var c=document.defaultView?document.defaultView.getComputedStyle(this,null):this.currentStyle,
-a={},b,d;if(c&&c.length&&c[0]&&c[c[0]])for(var e=c.length;e--;){b=c[e];if(typeof c[b]=="string"){d=b.replace(/\-(\w)/g,function(g,h){return h.toUpperCase()});a[d]=c[b]}}else for(b in c)if(typeof c[b]==="string")a[b]=c[b];return a}function p(c){var a,b;for(a in c){b=c[a];if(b==null||f.isFunction(b)||a in t||/scrollbar/.test(a)||!/color/i.test(a)&&isNaN(parseFloat(b)))delete c[a]}return c}function u(c,a){var b={_:0},d;for(d in a)if(c[d]!=a[d])b[d]=a[d];return b}function k(c,a,b,d){if(typeof c=="object"){d=
-a;b=null;a=c;c=a.effect}if(f.isFunction(a)){d=a;b=null;a={}}if(typeof a=="number"||f.fx.speeds[a]){d=b;b=a;a={}}if(f.isFunction(b)){d=b;b=null}a=a||{};b=b||a.duration;b=f.fx.off?0:typeof b=="number"?b:b in f.fx.speeds?f.fx.speeds[b]:f.fx.speeds._default;d=d||a.complete;return[c,a,b,d]}function l(c){if(!c||typeof c==="number"||f.fx.speeds[c])return true;if(typeof c==="string"&&!f.effects[c])return true;return false}f.effects={};f.each(["backgroundColor","borderBottomColor","borderLeftColor","borderRightColor",
-"borderTopColor","borderColor","color","outlineColor"],function(c,a){f.fx.step[a]=function(b){if(!b.colorInit){b.start=s(b.elem,a);b.end=m(b.end);b.colorInit=true}b.elem.style[a]="rgb("+Math.max(Math.min(parseInt(b.pos*(b.end[0]-b.start[0])+b.start[0],10),255),0)+","+Math.max(Math.min(parseInt(b.pos*(b.end[1]-b.start[1])+b.start[1],10),255),0)+","+Math.max(Math.min(parseInt(b.pos*(b.end[2]-b.start[2])+b.start[2],10),255),0)+")"}});var n={aqua:[0,255,255],azure:[240,255,255],beige:[245,245,220],black:[0,
-0,0],blue:[0,0,255],brown:[165,42,42],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgrey:[169,169,169],darkgreen:[0,100,0],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkviolet:[148,0,211],fuchsia:[255,0,255],gold:[255,215,0],green:[0,128,0],indigo:[75,0,130],khaki:[240,230,140],lightblue:[173,216,230],lightcyan:[224,255,255],lightgreen:[144,238,144],lightgrey:[211,
-211,211],lightpink:[255,182,193],lightyellow:[255,255,224],lime:[0,255,0],magenta:[255,0,255],maroon:[128,0,0],navy:[0,0,128],olive:[128,128,0],orange:[255,165,0],pink:[255,192,203],purple:[128,0,128],violet:[128,0,128],red:[255,0,0],silver:[192,192,192],white:[255,255,255],yellow:[255,255,0],transparent:[255,255,255]},q=["add","remove","toggle"],t={border:1,borderBottom:1,borderColor:1,borderLeft:1,borderRight:1,borderTop:1,borderWidth:1,margin:1,padding:1};f.effects.animateClass=function(c,a,b,
-d){if(f.isFunction(b)){d=b;b=null}return this.queue(function(){var e=f(this),g=e.attr("style")||" ",h=p(o.call(this)),r,v=e.attr("class");f.each(q,function(w,i){c[i]&&e[i+"Class"](c[i])});r=p(o.call(this));e.attr("class",v);e.animate(u(h,r),{queue:false,duration:a,easing:b,complete:function(){f.each(q,function(w,i){c[i]&&e[i+"Class"](c[i])});if(typeof e.attr("style")=="object"){e.attr("style").cssText="";e.attr("style").cssText=g}else e.attr("style",g);d&&d.apply(this,arguments);f.dequeue(this)}})})};
-f.fn.extend({_addClass:f.fn.addClass,addClass:function(c,a,b,d){return a?f.effects.animateClass.apply(this,[{add:c},a,b,d]):this._addClass(c)},_removeClass:f.fn.removeClass,removeClass:function(c,a,b,d){return a?f.effects.animateClass.apply(this,[{remove:c},a,b,d]):this._removeClass(c)},_toggleClass:f.fn.toggleClass,toggleClass:function(c,a,b,d,e){return typeof a=="boolean"||a===j?b?f.effects.animateClass.apply(this,[a?{add:c}:{remove:c},b,d,e]):this._toggleClass(c,a):f.effects.animateClass.apply(this,
-[{toggle:c},a,b,d])},switchClass:function(c,a,b,d,e){return f.effects.animateClass.apply(this,[{add:a,remove:c},b,d,e])}});f.extend(f.effects,{version:"1.8.16",save:function(c,a){for(var b=0;b<a.length;b++)a[b]!==null&&c.data("ec.storage."+a[b],c[0].style[a[b]])},restore:function(c,a){for(var b=0;b<a.length;b++)a[b]!==null&&c.css(a[b],c.data("ec.storage."+a[b]))},setMode:function(c,a){if(a=="toggle")a=c.is(":hidden")?"show":"hide";return a},getBaseline:function(c,a){var b;switch(c[0]){case "top":b=
-0;break;case "middle":b=0.5;break;case "bottom":b=1;break;default:b=c[0]/a.height}switch(c[1]){case "left":c=0;break;case "center":c=0.5;break;case "right":c=1;break;default:c=c[1]/a.width}return{x:c,y:b}},createWrapper:function(c){if(c.parent().is(".ui-effects-wrapper"))return c.parent();var a={width:c.outerWidth(true),height:c.outerHeight(true),"float":c.css("float")},b=f("<div></div>").addClass("ui-effects-wrapper").css({fontSize:"100%",background:"transparent",border:"none",margin:0,padding:0}),
-d=document.activeElement;c.wrap(b);if(c[0]===d||f.contains(c[0],d))f(d).focus();b=c.parent();if(c.css("position")=="static"){b.css({position:"relative"});c.css({position:"relative"})}else{f.extend(a,{position:c.css("position"),zIndex:c.css("z-index")});f.each(["top","left","bottom","right"],function(e,g){a[g]=c.css(g);if(isNaN(parseInt(a[g],10)))a[g]="auto"});c.css({position:"relative",top:0,left:0,right:"auto",bottom:"auto"})}return b.css(a).show()},removeWrapper:function(c){var a,b=document.activeElement;
-if(c.parent().is(".ui-effects-wrapper")){a=c.parent().replaceWith(c);if(c[0]===b||f.contains(c[0],b))f(b).focus();return a}return c},setTransition:function(c,a,b,d){d=d||{};f.each(a,function(e,g){unit=c.cssUnit(g);if(unit[0]>0)d[g]=unit[0]*b+unit[1]});return d}});f.fn.extend({effect:function(c){var a=k.apply(this,arguments),b={options:a[1],duration:a[2],callback:a[3]};a=b.options.mode;var d=f.effects[c];if(f.fx.off||!d)return a?this[a](b.duration,b.callback):this.each(function(){b.callback&&b.callback.call(this)});
-return d.call(this,b)},_show:f.fn.show,show:function(c){if(l(c))return this._show.apply(this,arguments);else{var a=k.apply(this,arguments);a[1].mode="show";return this.effect.apply(this,a)}},_hide:f.fn.hide,hide:function(c){if(l(c))return this._hide.apply(this,arguments);else{var a=k.apply(this,arguments);a[1].mode="hide";return this.effect.apply(this,a)}},__toggle:f.fn.toggle,toggle:function(c){if(l(c)||typeof c==="boolean"||f.isFunction(c))return this.__toggle.apply(this,arguments);else{var a=k.apply(this,
-arguments);a[1].mode="toggle";return this.effect.apply(this,a)}},cssUnit:function(c){var a=this.css(c),b=[];f.each(["em","px","%","pt"],function(d,e){if(a.indexOf(e)>0)b=[parseFloat(a),e]});return b}});f.easing.jswing=f.easing.swing;f.extend(f.easing,{def:"easeOutQuad",swing:function(c,a,b,d,e){return f.easing[f.easing.def](c,a,b,d,e)},easeInQuad:function(c,a,b,d,e){return d*(a/=e)*a+b},easeOutQuad:function(c,a,b,d,e){return-d*(a/=e)*(a-2)+b},easeInOutQuad:function(c,a,b,d,e){if((a/=e/2)<1)return d/
-2*a*a+b;return-d/2*(--a*(a-2)-1)+b},easeInCubic:function(c,a,b,d,e){return d*(a/=e)*a*a+b},easeOutCubic:function(c,a,b,d,e){return d*((a=a/e-1)*a*a+1)+b},easeInOutCubic:function(c,a,b,d,e){if((a/=e/2)<1)return d/2*a*a*a+b;return d/2*((a-=2)*a*a+2)+b},easeInQuart:function(c,a,b,d,e){return d*(a/=e)*a*a*a+b},easeOutQuart:function(c,a,b,d,e){return-d*((a=a/e-1)*a*a*a-1)+b},easeInOutQuart:function(c,a,b,d,e){if((a/=e/2)<1)return d/2*a*a*a*a+b;return-d/2*((a-=2)*a*a*a-2)+b},easeInQuint:function(c,a,b,
-d,e){return d*(a/=e)*a*a*a*a+b},easeOutQuint:function(c,a,b,d,e){return d*((a=a/e-1)*a*a*a*a+1)+b},easeInOutQuint:function(c,a,b,d,e){if((a/=e/2)<1)return d/2*a*a*a*a*a+b;return d/2*((a-=2)*a*a*a*a+2)+b},easeInSine:function(c,a,b,d,e){return-d*Math.cos(a/e*(Math.PI/2))+d+b},easeOutSine:function(c,a,b,d,e){return d*Math.sin(a/e*(Math.PI/2))+b},easeInOutSine:function(c,a,b,d,e){return-d/2*(Math.cos(Math.PI*a/e)-1)+b},easeInExpo:function(c,a,b,d,e){return a==0?b:d*Math.pow(2,10*(a/e-1))+b},easeOutExpo:function(c,
-a,b,d,e){return a==e?b+d:d*(-Math.pow(2,-10*a/e)+1)+b},easeInOutExpo:function(c,a,b,d,e){if(a==0)return b;if(a==e)return b+d;if((a/=e/2)<1)return d/2*Math.pow(2,10*(a-1))+b;return d/2*(-Math.pow(2,-10*--a)+2)+b},easeInCirc:function(c,a,b,d,e){return-d*(Math.sqrt(1-(a/=e)*a)-1)+b},easeOutCirc:function(c,a,b,d,e){return d*Math.sqrt(1-(a=a/e-1)*a)+b},easeInOutCirc:function(c,a,b,d,e){if((a/=e/2)<1)return-d/2*(Math.sqrt(1-a*a)-1)+b;return d/2*(Math.sqrt(1-(a-=2)*a)+1)+b},easeInElastic:function(c,a,b,
-d,e){c=1.70158;var g=0,h=d;if(a==0)return b;if((a/=e)==1)return b+d;g||(g=e*0.3);if(h<Math.abs(d)){h=d;c=g/4}else c=g/(2*Math.PI)*Math.asin(d/h);return-(h*Math.pow(2,10*(a-=1))*Math.sin((a*e-c)*2*Math.PI/g))+b},easeOutElastic:function(c,a,b,d,e){c=1.70158;var g=0,h=d;if(a==0)return b;if((a/=e)==1)return b+d;g||(g=e*0.3);if(h<Math.abs(d)){h=d;c=g/4}else c=g/(2*Math.PI)*Math.asin(d/h);return h*Math.pow(2,-10*a)*Math.sin((a*e-c)*2*Math.PI/g)+d+b},easeInOutElastic:function(c,a,b,d,e){c=1.70158;var g=
-0,h=d;if(a==0)return b;if((a/=e/2)==2)return b+d;g||(g=e*0.3*1.5);if(h<Math.abs(d)){h=d;c=g/4}else c=g/(2*Math.PI)*Math.asin(d/h);if(a<1)return-0.5*h*Math.pow(2,10*(a-=1))*Math.sin((a*e-c)*2*Math.PI/g)+b;return h*Math.pow(2,-10*(a-=1))*Math.sin((a*e-c)*2*Math.PI/g)*0.5+d+b},easeInBack:function(c,a,b,d,e,g){if(g==j)g=1.70158;return d*(a/=e)*a*((g+1)*a-g)+b},easeOutBack:function(c,a,b,d,e,g){if(g==j)g=1.70158;return d*((a=a/e-1)*a*((g+1)*a+g)+1)+b},easeInOutBack:function(c,a,b,d,e,g){if(g==j)g=1.70158;
-if((a/=e/2)<1)return d/2*a*a*(((g*=1.525)+1)*a-g)+b;return d/2*((a-=2)*a*(((g*=1.525)+1)*a+g)+2)+b},easeInBounce:function(c,a,b,d,e){return d-f.easing.easeOutBounce(c,e-a,0,d,e)+b},easeOutBounce:function(c,a,b,d,e){return(a/=e)<1/2.75?d*7.5625*a*a+b:a<2/2.75?d*(7.5625*(a-=1.5/2.75)*a+0.75)+b:a<2.5/2.75?d*(7.5625*(a-=2.25/2.75)*a+0.9375)+b:d*(7.5625*(a-=2.625/2.75)*a+0.984375)+b},easeInOutBounce:function(c,a,b,d,e){if(a<e/2)return f.easing.easeInBounce(c,a*2,0,d,e)*0.5+b;return f.easing.easeOutBounce(c,
-a*2-e,0,d,e)*0.5+d*0.5+b}})}(jQuery);
-;/*
- * jQuery UI Effects Blind 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/Effects/Blind
- *
- * Depends:
- *	jquery.effects.core.js
- */
-(function(b){b.effects.blind=function(c){return this.queue(function(){var a=b(this),g=["position","top","bottom","left","right"],f=b.effects.setMode(a,c.options.mode||"hide"),d=c.options.direction||"vertical";b.effects.save(a,g);a.show();var e=b.effects.createWrapper(a).css({overflow:"hidden"}),h=d=="vertical"?"height":"width";d=d=="vertical"?e.height():e.width();f=="show"&&e.css(h,0);var i={};i[h]=f=="show"?d:0;e.animate(i,c.duration,c.options.easing,function(){f=="hide"&&a.hide();b.effects.restore(a,
-g);b.effects.removeWrapper(a);c.callback&&c.callback.apply(a[0],arguments);a.dequeue()})})}})(jQuery);
-;/*
- * jQuery UI Effects Bounce 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/Effects/Bounce
- *
- * Depends:
- *	jquery.effects.core.js
- */
-(function(e){e.effects.bounce=function(b){return this.queue(function(){var a=e(this),l=["position","top","bottom","left","right"],h=e.effects.setMode(a,b.options.mode||"effect"),d=b.options.direction||"up",c=b.options.distance||20,m=b.options.times||5,i=b.duration||250;/show|hide/.test(h)&&l.push("opacity");e.effects.save(a,l);a.show();e.effects.createWrapper(a);var f=d=="up"||d=="down"?"top":"left";d=d=="up"||d=="left"?"pos":"neg";c=b.options.distance||(f=="top"?a.outerHeight({margin:true})/3:a.outerWidth({margin:true})/
-3);if(h=="show")a.css("opacity",0).css(f,d=="pos"?-c:c);if(h=="hide")c/=m*2;h!="hide"&&m--;if(h=="show"){var g={opacity:1};g[f]=(d=="pos"?"+=":"-=")+c;a.animate(g,i/2,b.options.easing);c/=2;m--}for(g=0;g<m;g++){var j={},k={};j[f]=(d=="pos"?"-=":"+=")+c;k[f]=(d=="pos"?"+=":"-=")+c;a.animate(j,i/2,b.options.easing).animate(k,i/2,b.options.easing);c=h=="hide"?c*2:c/2}if(h=="hide"){g={opacity:0};g[f]=(d=="pos"?"-=":"+=")+c;a.animate(g,i/2,b.options.easing,function(){a.hide();e.effects.restore(a,l);e.effects.removeWrapper(a);
-b.callback&&b.callback.apply(this,arguments)})}else{j={};k={};j[f]=(d=="pos"?"-=":"+=")+c;k[f]=(d=="pos"?"+=":"-=")+c;a.animate(j,i/2,b.options.easing).animate(k,i/2,b.options.easing,function(){e.effects.restore(a,l);e.effects.removeWrapper(a);b.callback&&b.callback.apply(this,arguments)})}a.queue("fx",function(){a.dequeue()});a.dequeue()})}})(jQuery);
-;/*
- * jQuery UI Effects Clip 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/Effects/Clip
- *
- * Depends:
- *	jquery.effects.core.js
- */
-(function(b){b.effects.clip=function(e){return this.queue(function(){var a=b(this),i=["position","top","bottom","left","right","height","width"],f=b.effects.setMode(a,e.options.mode||"hide"),c=e.options.direction||"vertical";b.effects.save(a,i);a.show();var d=b.effects.createWrapper(a).css({overflow:"hidden"});d=a[0].tagName=="IMG"?d:a;var g={size:c=="vertical"?"height":"width",position:c=="vertical"?"top":"left"};c=c=="vertical"?d.height():d.width();if(f=="show"){d.css(g.size,0);d.css(g.position,
-c/2)}var h={};h[g.size]=f=="show"?c:0;h[g.position]=f=="show"?0:c/2;d.animate(h,{queue:false,duration:e.duration,easing:e.options.easing,complete:function(){f=="hide"&&a.hide();b.effects.restore(a,i);b.effects.removeWrapper(a);e.callback&&e.callback.apply(a[0],arguments);a.dequeue()}})})}})(jQuery);
-;/*
- * jQuery UI Effects Drop 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/Effects/Drop
- *
- * Depends:
- *	jquery.effects.core.js
- */
-(function(c){c.effects.drop=function(d){return this.queue(function(){var a=c(this),h=["position","top","bottom","left","right","opacity"],e=c.effects.setMode(a,d.options.mode||"hide"),b=d.options.direction||"left";c.effects.save(a,h);a.show();c.effects.createWrapper(a);var f=b=="up"||b=="down"?"top":"left";b=b=="up"||b=="left"?"pos":"neg";var g=d.options.distance||(f=="top"?a.outerHeight({margin:true})/2:a.outerWidth({margin:true})/2);if(e=="show")a.css("opacity",0).css(f,b=="pos"?-g:g);var i={opacity:e==
-"show"?1:0};i[f]=(e=="show"?b=="pos"?"+=":"-=":b=="pos"?"-=":"+=")+g;a.animate(i,{queue:false,duration:d.duration,easing:d.options.easing,complete:function(){e=="hide"&&a.hide();c.effects.restore(a,h);c.effects.removeWrapper(a);d.callback&&d.callback.apply(this,arguments);a.dequeue()}})})}})(jQuery);
-;/*
- * jQuery UI Effects Explode 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/Effects/Explode
- *
- * Depends:
- *	jquery.effects.core.js
- */
-(function(j){j.effects.explode=function(a){return this.queue(function(){var c=a.options.pieces?Math.round(Math.sqrt(a.options.pieces)):3,d=a.options.pieces?Math.round(Math.sqrt(a.options.pieces)):3;a.options.mode=a.options.mode=="toggle"?j(this).is(":visible")?"hide":"show":a.options.mode;var b=j(this).show().css("visibility","hidden"),g=b.offset();g.top-=parseInt(b.css("marginTop"),10)||0;g.left-=parseInt(b.css("marginLeft"),10)||0;for(var h=b.outerWidth(true),i=b.outerHeight(true),e=0;e<c;e++)for(var f=
-0;f<d;f++)b.clone().appendTo("body").wrap("<div></div>").css({position:"absolute",visibility:"visible",left:-f*(h/d),top:-e*(i/c)}).parent().addClass("ui-effects-explode").css({position:"absolute",overflow:"hidden",width:h/d,height:i/c,left:g.left+f*(h/d)+(a.options.mode=="show"?(f-Math.floor(d/2))*(h/d):0),top:g.top+e*(i/c)+(a.options.mode=="show"?(e-Math.floor(c/2))*(i/c):0),opacity:a.options.mode=="show"?0:1}).animate({left:g.left+f*(h/d)+(a.options.mode=="show"?0:(f-Math.floor(d/2))*(h/d)),top:g.top+
-e*(i/c)+(a.options.mode=="show"?0:(e-Math.floor(c/2))*(i/c)),opacity:a.options.mode=="show"?1:0},a.duration||500);setTimeout(function(){a.options.mode=="show"?b.css({visibility:"visible"}):b.css({visibility:"visible"}).hide();a.callback&&a.callback.apply(b[0]);b.dequeue();j("div.ui-effects-explode").remove()},a.duration||500)})}})(jQuery);
-;/*
- * jQuery UI Effects Fade 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/Effects/Fade
- *
- * Depends:
- *	jquery.effects.core.js
- */
-(function(b){b.effects.fade=function(a){return this.queue(function(){var c=b(this),d=b.effects.setMode(c,a.options.mode||"hide");c.animate({opacity:d},{queue:false,duration:a.duration,easing:a.options.easing,complete:function(){a.callback&&a.callback.apply(this,arguments);c.dequeue()}})})}})(jQuery);
-;/*
- * jQuery UI Effects Fold 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/Effects/Fold
- *
- * Depends:
- *	jquery.effects.core.js
- */
-(function(c){c.effects.fold=function(a){return this.queue(function(){var b=c(this),j=["position","top","bottom","left","right"],d=c.effects.setMode(b,a.options.mode||"hide"),g=a.options.size||15,h=!!a.options.horizFirst,k=a.duration?a.duration/2:c.fx.speeds._default/2;c.effects.save(b,j);b.show();var e=c.effects.createWrapper(b).css({overflow:"hidden"}),f=d=="show"!=h,l=f?["width","height"]:["height","width"];f=f?[e.width(),e.height()]:[e.height(),e.width()];var i=/([0-9]+)%/.exec(g);if(i)g=parseInt(i[1],
-10)/100*f[d=="hide"?0:1];if(d=="show")e.css(h?{height:0,width:g}:{height:g,width:0});h={};i={};h[l[0]]=d=="show"?f[0]:g;i[l[1]]=d=="show"?f[1]:0;e.animate(h,k,a.options.easing).animate(i,k,a.options.easing,function(){d=="hide"&&b.hide();c.effects.restore(b,j);c.effects.removeWrapper(b);a.callback&&a.callback.apply(b[0],arguments);b.dequeue()})})}})(jQuery);
-;/*
- * jQuery UI Effects Highlight 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/Effects/Highlight
- *
- * Depends:
- *	jquery.effects.core.js
- */
-(function(b){b.effects.highlight=function(c){return this.queue(function(){var a=b(this),e=["backgroundImage","backgroundColor","opacity"],d=b.effects.setMode(a,c.options.mode||"show"),f={backgroundColor:a.css("backgroundColor")};if(d=="hide")f.opacity=0;b.effects.save(a,e);a.show().css({backgroundImage:"none",backgroundColor:c.options.color||"#ffff99"}).animate(f,{queue:false,duration:c.duration,easing:c.options.easing,complete:function(){d=="hide"&&a.hide();b.effects.restore(a,e);d=="show"&&!b.support.opacity&&
-this.style.removeAttribute("filter");c.callback&&c.callback.apply(this,arguments);a.dequeue()}})})}})(jQuery);
-;/*
- * jQuery UI Effects Pulsate 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/Effects/Pulsate
- *
- * Depends:
- *	jquery.effects.core.js
- */
-(function(d){d.effects.pulsate=function(a){return this.queue(function(){var b=d(this),c=d.effects.setMode(b,a.options.mode||"show");times=(a.options.times||5)*2-1;duration=a.duration?a.duration/2:d.fx.speeds._default/2;isVisible=b.is(":visible");animateTo=0;if(!isVisible){b.css("opacity",0).show();animateTo=1}if(c=="hide"&&isVisible||c=="show"&&!isVisible)times--;for(c=0;c<times;c++){b.animate({opacity:animateTo},duration,a.options.easing);animateTo=(animateTo+1)%2}b.animate({opacity:animateTo},duration,
-a.options.easing,function(){animateTo==0&&b.hide();a.callback&&a.callback.apply(this,arguments)});b.queue("fx",function(){b.dequeue()}).dequeue()})}})(jQuery);
-;/*
- * jQuery UI Effects Scale 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/Effects/Scale
- *
- * Depends:
- *	jquery.effects.core.js
- */
-(function(c){c.effects.puff=function(b){return this.queue(function(){var a=c(this),e=c.effects.setMode(a,b.options.mode||"hide"),g=parseInt(b.options.percent,10)||150,h=g/100,i={height:a.height(),width:a.width()};c.extend(b.options,{fade:true,mode:e,percent:e=="hide"?g:100,from:e=="hide"?i:{height:i.height*h,width:i.width*h}});a.effect("scale",b.options,b.duration,b.callback);a.dequeue()})};c.effects.scale=function(b){return this.queue(function(){var a=c(this),e=c.extend(true,{},b.options),g=c.effects.setMode(a,
-b.options.mode||"effect"),h=parseInt(b.options.percent,10)||(parseInt(b.options.percent,10)==0?0:g=="hide"?0:100),i=b.options.direction||"both",f=b.options.origin;if(g!="effect"){e.origin=f||["middle","center"];e.restore=true}f={height:a.height(),width:a.width()};a.from=b.options.from||(g=="show"?{height:0,width:0}:f);h={y:i!="horizontal"?h/100:1,x:i!="vertical"?h/100:1};a.to={height:f.height*h.y,width:f.width*h.x};if(b.options.fade){if(g=="show"){a.from.opacity=0;a.to.opacity=1}if(g=="hide"){a.from.opacity=
-1;a.to.opacity=0}}e.from=a.from;e.to=a.to;e.mode=g;a.effect("size",e,b.duration,b.callback);a.dequeue()})};c.effects.size=function(b){return this.queue(function(){var a=c(this),e=["position","top","bottom","left","right","width","height","overflow","opacity"],g=["position","top","bottom","left","right","overflow","opacity"],h=["width","height","overflow"],i=["fontSize"],f=["borderTopWidth","borderBottomWidth","paddingTop","paddingBottom"],k=["borderLeftWidth","borderRightWidth","paddingLeft","paddingRight"],
-p=c.effects.setMode(a,b.options.mode||"effect"),n=b.options.restore||false,m=b.options.scale||"both",l=b.options.origin,j={height:a.height(),width:a.width()};a.from=b.options.from||j;a.to=b.options.to||j;if(l){l=c.effects.getBaseline(l,j);a.from.top=(j.height-a.from.height)*l.y;a.from.left=(j.width-a.from.width)*l.x;a.to.top=(j.height-a.to.height)*l.y;a.to.left=(j.width-a.to.width)*l.x}var d={from:{y:a.from.height/j.height,x:a.from.width/j.width},to:{y:a.to.height/j.height,x:a.to.width/j.width}};
-if(m=="box"||m=="both"){if(d.from.y!=d.to.y){e=e.concat(f);a.from=c.effects.setTransition(a,f,d.from.y,a.from);a.to=c.effects.setTransition(a,f,d.to.y,a.to)}if(d.from.x!=d.to.x){e=e.concat(k);a.from=c.effects.setTransition(a,k,d.from.x,a.from);a.to=c.effects.setTransition(a,k,d.to.x,a.to)}}if(m=="content"||m=="both")if(d.from.y!=d.to.y){e=e.concat(i);a.from=c.effects.setTransition(a,i,d.from.y,a.from);a.to=c.effects.setTransition(a,i,d.to.y,a.to)}c.effects.save(a,n?e:g);a.show();c.effects.createWrapper(a);
-a.css("overflow","hidden").css(a.from);if(m=="content"||m=="both"){f=f.concat(["marginTop","marginBottom"]).concat(i);k=k.concat(["marginLeft","marginRight"]);h=e.concat(f).concat(k);a.find("*[width]").each(function(){child=c(this);n&&c.effects.save(child,h);var o={height:child.height(),width:child.width()};child.from={height:o.height*d.from.y,width:o.width*d.from.x};child.to={height:o.height*d.to.y,width:o.width*d.to.x};if(d.from.y!=d.to.y){child.from=c.effects.setTransition(child,f,d.from.y,child.from);
-child.to=c.effects.setTransition(child,f,d.to.y,child.to)}if(d.from.x!=d.to.x){child.from=c.effects.setTransition(child,k,d.from.x,child.from);child.to=c.effects.setTransition(child,k,d.to.x,child.to)}child.css(child.from);child.animate(child.to,b.duration,b.options.easing,function(){n&&c.effects.restore(child,h)})})}a.animate(a.to,{queue:false,duration:b.duration,easing:b.options.easing,complete:function(){a.to.opacity===0&&a.css("opacity",a.from.opacity);p=="hide"&&a.hide();c.effects.restore(a,
-n?e:g);c.effects.removeWrapper(a);b.callback&&b.callback.apply(this,arguments);a.dequeue()}})})}})(jQuery);
-;/*
- * jQuery UI Effects Shake 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/Effects/Shake
- *
- * Depends:
- *	jquery.effects.core.js
- */
-(function(d){d.effects.shake=function(a){return this.queue(function(){var b=d(this),j=["position","top","bottom","left","right"];d.effects.setMode(b,a.options.mode||"effect");var c=a.options.direction||"left",e=a.options.distance||20,l=a.options.times||3,f=a.duration||a.options.duration||140;d.effects.save(b,j);b.show();d.effects.createWrapper(b);var g=c=="up"||c=="down"?"top":"left",h=c=="up"||c=="left"?"pos":"neg";c={};var i={},k={};c[g]=(h=="pos"?"-=":"+=")+e;i[g]=(h=="pos"?"+=":"-=")+e*2;k[g]=
-(h=="pos"?"-=":"+=")+e*2;b.animate(c,f,a.options.easing);for(e=1;e<l;e++)b.animate(i,f,a.options.easing).animate(k,f,a.options.easing);b.animate(i,f,a.options.easing).animate(c,f/2,a.options.easing,function(){d.effects.restore(b,j);d.effects.removeWrapper(b);a.callback&&a.callback.apply(this,arguments)});b.queue("fx",function(){b.dequeue()});b.dequeue()})}})(jQuery);
-;/*
- * jQuery UI Effects Slide 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/Effects/Slide
- *
- * Depends:
- *	jquery.effects.core.js
- */
-(function(c){c.effects.slide=function(d){return this.queue(function(){var a=c(this),h=["position","top","bottom","left","right"],f=c.effects.setMode(a,d.options.mode||"show"),b=d.options.direction||"left";c.effects.save(a,h);a.show();c.effects.createWrapper(a).css({overflow:"hidden"});var g=b=="up"||b=="down"?"top":"left";b=b=="up"||b=="left"?"pos":"neg";var e=d.options.distance||(g=="top"?a.outerHeight({margin:true}):a.outerWidth({margin:true}));if(f=="show")a.css(g,b=="pos"?isNaN(e)?"-"+e:-e:e);
-var i={};i[g]=(f=="show"?b=="pos"?"+=":"-=":b=="pos"?"-=":"+=")+e;a.animate(i,{queue:false,duration:d.duration,easing:d.options.easing,complete:function(){f=="hide"&&a.hide();c.effects.restore(a,h);c.effects.removeWrapper(a);d.callback&&d.callback.apply(this,arguments);a.dequeue()}})})}})(jQuery);
-;/*
- * jQuery UI Effects Transfer 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/Effects/Transfer
- *
- * Depends:
- *	jquery.effects.core.js
- */
-(function(e){e.effects.transfer=function(a){return this.queue(function(){var b=e(this),c=e(a.options.to),d=c.offset();c={top:d.top,left:d.left,height:c.innerHeight(),width:c.innerWidth()};d=b.offset();var f=e('<div class="ui-effects-transfer"></div>').appendTo(document.body).addClass(a.options.className).css({top:d.top,left:d.left,height:b.innerHeight(),width:b.innerWidth(),position:"absolute"}).animate(c,a.duration,a.options.easing,function(){f.remove();a.callback&&a.callback.apply(b[0],arguments);
-b.dequeue()})})}})(jQuery);
-;
\ No newline at end of file
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/js/jquery.effects.blind.js b/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/js/jquery.effects.blind.js
deleted file mode 100755
index d75b4f3c..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/js/jquery.effects.blind.js
+++ /dev/null
@@ -1,80 +0,0 @@
-/*
- * jQuery UI Effects Blind 1.9pre
- *
- * 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/Effects/Blind
- *
- * Depends:
- *	jquery.effects.core.js
- */
-(function( $, undefined ) {
-
-var rvertical = /up|down|vertical/,
-	rpositivemotion = /up|left|vertical|horizontal/;
-
-$.effects.effect.blind = function( o, done ) {
-	// Create element
-	var el = $( this ),
-		props = [ "position", "top", "bottom", "left", "right", "height", "width" ],
-		mode = $.effects.setMode( el, o.mode || "hide" ),
-		direction = o.direction || "up",
-		vertical = rvertical.test( direction ),
-		ref = vertical ? "height" : "width",
-		ref2 = vertical ? "top" : "left",
-		motion = rpositivemotion.test( direction ),
-		animation = {},
-		show = mode === "show",
-		wrapper, distance, top;
-
-	// if already wrapped, the wrapper's properties are my property. #6245
-	if ( el.parent().is( ".ui-effects-wrapper" ) ) {
-		$.effects.save( el.parent(), props );
-	} else {
-		$.effects.save( el, props );
-	}
-	el.show();
-	top = parseInt(el.css('top'), 10);
-	wrapper = $.effects.createWrapper( el ).css({
-		overflow: "hidden"
-	});
-
-	distance = vertical ? wrapper[ ref ]() + top : wrapper[ ref ]();
-
-	animation[ ref ] = show ? distance : 0;
-	if ( !motion ) {
-		el
-			.css( vertical ? "bottom" : "right", 0 )
-			.css( vertical ? "top" : "left", "" )
-			.css({ position: "absolute" });
-		animation[ ref2 ] = show ? 0 : distance;
-	}
-
-	// start at 0 if we are showing
-	if ( show ) {
-		wrapper.css( ref, 0 );
-		if ( ! motion ) {
-			wrapper.css( ref2, distance );
-		}
-	}
-
-	// Animate
-	wrapper.animate( animation, {
-		duration: o.duration,
-		easing: o.easing,
-		queue: false,
-		complete: function() {
-			if ( mode === "hide" ) {
-				el.hide();
-			}
-			$.effects.restore( el, props );
-			$.effects.removeWrapper( el );
-			done();
-		}
-	});
-
-};
-
-})(jQuery);
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/js/jquery.effects.blind.min.js b/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/js/jquery.effects.blind.min.js
deleted file mode 100755
index 101c15d4..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/js/jquery.effects.blind.min.js
+++ /dev/null
@@ -1,14 +0,0 @@
-/*
- * jQuery UI Effects Blind 1.9pre
- *
- * 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/Effects/Blind
- *
- * Depends:
- *	jquery.effects.core.js
- */
-(function(b){var n=/up|down|vertical/,o=/up|left|vertical|horizontal/;b.effects.effect.blind=function(g,p){var a=b(this),i=["position","top","bottom","left","right","height","width"],l=b.effects.setMode(a,g.mode||"hide"),e=g.direction||"up",f=n.test(e),h=f?"height":"width",m=f?"top":"left";e=o.test(e);var j={},k=l==="show",c,d;a.parent().is(".ui-effects-wrapper")?b.effects.save(a.parent(),i):b.effects.save(a,i);a.show();d=parseInt(a.css("top"),10);c=b.effects.createWrapper(a).css({overflow:"hidden"});
-d=f?c[h]()+d:c[h]();j[h]=k?d:0;if(!e){a.css(f?"bottom":"right",0).css(f?"top":"left","").css({position:"absolute"});j[m]=k?0:d}if(k){c.css(h,0);e||c.css(m,d)}c.animate(j,{duration:g.duration,easing:g.easing,queue:false,complete:function(){l==="hide"&&a.hide();b.effects.restore(a,i);b.effects.removeWrapper(a);p()}})}})(jQuery);
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/js/jquery.effects.core.js b/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/js/jquery.effects.core.js
deleted file mode 100755
index ab9349a8..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/js/jquery.effects.core.js
+++ /dev/null
@@ -1,890 +0,0 @@
-/*
- * jQuery UI Effects 1.9pre
- *
- * 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/Effects/
- */
-;jQuery.effects || (function($, undefined) {
-
-var backCompat = $.uiBackCompat !== false;
-
-$.effects = {
-	effect: {}
-};
-
-/******************************************************************************/
-/****************************** COLOR ANIMATIONS ******************************/
-/******************************************************************************/
-
-// override the animation for color styles
-$.each(["backgroundColor", "borderBottomColor", "borderLeftColor",
-	"borderRightColor", "borderTopColor", "borderColor", "color", "outlineColor"],
-function(i, attr) {
-	$.fx.step[attr] = function(fx) {
-		if (!fx.colorInit) {
-			fx.start = getColor(fx.elem, attr);
-			fx.end = getRGB(fx.end);
-			fx.colorInit = true;
-		}
-
-		fx.elem.style[attr] = "rgb(" +
-			Math.max(Math.min(parseInt((fx.pos * (fx.end[0] - fx.start[0])) + fx.start[0], 10), 255), 0) + "," +
-			Math.max(Math.min(parseInt((fx.pos * (fx.end[1] - fx.start[1])) + fx.start[1], 10), 255), 0) + "," +
-			Math.max(Math.min(parseInt((fx.pos * (fx.end[2] - fx.start[2])) + fx.start[2], 10), 255), 0) + ")";
-	};
-});
-
-// Color Conversion functions from highlightFade
-// By Blair Mitchelmore
-// http://jquery.offput.ca/highlightFade/
-
-// Parse strings looking for color tuples [255,255,255]
-function getRGB(color) {
-		var result;
-
-		// Check if we're already dealing with an array of colors
-		if ( color && color.constructor === Array && color.length === 3 )
-				return color;
-
-		// Look for rgb(num,num,num)
-		if (result = /rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/.exec(color))
-				return [parseInt(result[1],10), parseInt(result[2],10), parseInt(result[3],10)];
-
-		// Look for rgb(num%,num%,num%)
-		if (result = /rgb\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*\)/.exec(color))
-				return [parseFloat(result[1])*2.55, parseFloat(result[2])*2.55, parseFloat(result[3])*2.55];
-
-		// Look for #a0b1c2
-		if (result = /#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/.exec(color))
-				return [parseInt(result[1],16), parseInt(result[2],16), parseInt(result[3],16)];
-
-		// Look for #fff
-		if (result = /#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/.exec(color))
-				return [parseInt(result[1]+result[1],16), parseInt(result[2]+result[2],16), parseInt(result[3]+result[3],16)];
-
-		// Look for rgba(0, 0, 0, 0) == transparent in Safari 3
-		if (result = /rgba\(0, 0, 0, 0\)/.exec(color))
-				return colors["transparent"];
-
-		// Otherwise, we're most likely dealing with a named color
-		return colors[$.trim(color).toLowerCase()];
-}
-
-function getColor(elem, attr) {
-		var color;
-
-		do {
-				color = $.curCSS(elem, attr);
-
-				// Keep going until we find an element that has color, or we hit the body
-				if ( color != "" && color !== "transparent" || $.nodeName(elem, "body") )
-						break;
-
-				attr = "backgroundColor";
-		} while ( elem = elem.parentNode );
-
-		return getRGB(color);
-};
-
-// Some named colors to work with
-// From Interface by Stefan Petre
-// http://interface.eyecon.ro/
-
-var colors = {
-	aqua:[0,255,255],
-	azure:[240,255,255],
-	beige:[245,245,220],
-	black:[0,0,0],
-	blue:[0,0,255],
-	brown:[165,42,42],
-	cyan:[0,255,255],
-	darkblue:[0,0,139],
-	darkcyan:[0,139,139],
-	darkgrey:[169,169,169],
-	darkgreen:[0,100,0],
-	darkkhaki:[189,183,107],
-	darkmagenta:[139,0,139],
-	darkolivegreen:[85,107,47],
-	darkorange:[255,140,0],
-	darkorchid:[153,50,204],
-	darkred:[139,0,0],
-	darksalmon:[233,150,122],
-	darkviolet:[148,0,211],
-	fuchsia:[255,0,255],
-	gold:[255,215,0],
-	green:[0,128,0],
-	indigo:[75,0,130],
-	khaki:[240,230,140],
-	lightblue:[173,216,230],
-	lightcyan:[224,255,255],
-	lightgreen:[144,238,144],
-	lightgrey:[211,211,211],
-	lightpink:[255,182,193],
-	lightyellow:[255,255,224],
-	lime:[0,255,0],
-	magenta:[255,0,255],
-	maroon:[128,0,0],
-	navy:[0,0,128],
-	olive:[128,128,0],
-	orange:[255,165,0],
-	pink:[255,192,203],
-	purple:[128,0,128],
-	violet:[128,0,128],
-	red:[255,0,0],
-	silver:[192,192,192],
-	white:[255,255,255],
-	yellow:[255,255,0],
-	transparent: [255,255,255]
-};
-
-
-
-/******************************************************************************/
-/****************************** CLASS ANIMATIONS ******************************/
-/******************************************************************************/
-
-var classAnimationActions = [ "add", "remove", "toggle" ],
-	shorthandStyles = {
-		border: 1,
-		borderBottom: 1,
-		borderColor: 1,
-		borderLeft: 1,
-		borderRight: 1,
-		borderTop: 1,
-		borderWidth: 1,
-		margin: 1,
-		padding: 1
-	},
-	// prefix used for storing data on .data()
-	dataSpace = "ec.storage.";
-
-$.each([ "borderLeftStyle", "borderRightStyle", "borderBottomStyle", "borderTopStyle" ], function( _, prop ) {
-	$.fx.step[ prop ] = function( fx ) {
-		if ( fx.end !== "none" && !fx.setAttr || fx.pos === 1 && !fx.setAttr ) {
-			jQuery.style( fx.elem, prop, fx.end );
-			fx.setAttr = true;
-		}
-	};
-});
-
-function getElementStyles() {
-	var style = this.ownerDocument.defaultView
-			? this.ownerDocument.defaultView.getComputedStyle( this, null )
-			: this.currentStyle,
-		newStyle = {},
-		key,
-		camelCase,
-		len;
-
-	// webkit enumerates style porperties
-	if ( style && style.length && style[ 0 ] && style[ style[ 0 ] ] ) {
-		len = style.length;
-		while ( len-- ) {
-			key = style[ len ];
-			if ( typeof style[ key ] === "string" ) {
-				newStyle[ $.camelCase( key ) ] = style[ key ];
-			}
-		}
-	} else {
-		for ( key in style ) {
-			if ( typeof style[ key ] === "string" ) {
-				newStyle[ key ] = style[ key ];
-			}
-		}
-	}
-
-	return newStyle;
-}
-
-
-function styleDifference( oldStyle, newStyle ) {
-	var diff = {},
-		name, value;
-
-	for ( name in newStyle ) {
-		value = newStyle[ name ];
-		if ( oldStyle[ name ] != value ) {
-			if ( !shorthandStyles[ name ] ) {
-				if ( $.fx.step[ name ] || !isNaN( parseFloat( value ) ) ) {
-					diff[ name ] = value;
-				}
-			}
-		}
-	}
-
-	return diff;
-}
-
-$.effects.animateClass = function( value, duration, easing, callback ) {
-	var o = $.speed( duration, easing, callback );
-
-	return this.queue( function() {
-		var animated = $( this ),
-			baseClass = animated.attr( "class" ) || "",
-			finalClass,
-			allAnimations = o.children ? animated.find( "*" ).andSelf() : animated;
-
-		// map the animated objects to store the original styles.
-		allAnimations = allAnimations.map(function() {
-			var el = $( this );
-			return {
-				el: el,
-				originalStyleAttr: el.attr( "style" ) || " ",
-				start: getElementStyles.call( this )
-			};
-		});
-
-		// apply class change
-		$.each( classAnimationActions, function(i, action) {
-			if ( value[ action ] ) {
-				animated[ action + "Class" ]( value[ action ] );
-			}
-		});
-		finalClass = animated.attr( "class" );
-
-		// map all animated objects again - calculate new styles and diff
-		allAnimations = allAnimations.map(function() {
-			this.end = getElementStyles.call( this.el[ 0 ] );
-			this.diff = styleDifference( this.start, this.end );
-			return this;
-		});
-
-		// apply original class
-		animated.attr( "class", baseClass );
-
-		// map all animated objects again - this time collecting a promise
-		allAnimations = allAnimations.map(function() {
-			var styleInfo = this,
-				dfd = $.Deferred();
-
-			this.el.animate( this.diff, {
-				duration: o.duration,
-				easing: o.easing,
-				queue: false,
-				complete: function() {
-					dfd.resolve( styleInfo );
-				}
-			});
-			return dfd.promise();
-		});
-
-		// once all animations have completed:
-		$.when.apply( $, allAnimations.get() ).done(function() {
-
-			// set the final class
-			animated.attr( "class", finalClass );
-
-			// for each animated element
-			$.each( arguments, function() {
-				if ( typeof this.el.attr( "style" ) === "object" ) {
-					this.el.attr( "style" ).cssText = "";
-					this.el.attr( "style" ).cssText = this.originalStyleAttr;
-				} else {
-					this.el.attr( "style", this.originalStyleAttr );
-				}
-			});
-
-			// this is guarnteed to be there if you use jQuery.speed()
-			// it also handles dequeuing the next anim...
-			o.complete.call( animated[ 0 ] );
-		});
-	});
-};
-
-$.fn.extend({
-	_addClass: $.fn.addClass,
-	addClass: function( classNames, speed, easing, callback ) {
-		return speed ?
-			$.effects.animateClass.apply( this, [{ add: classNames }, speed, easing, callback ]) :
-			this._addClass(classNames);
-	},
-
-	_removeClass: $.fn.removeClass,
-	removeClass: function( classNames, speed, easing, callback ) {
-		return speed ?
-			$.effects.animateClass.apply( this, [{ remove: classNames }, speed, easing, callback ]) :
-			this._removeClass(classNames);
-	},
-
-	_toggleClass: $.fn.toggleClass,
-	toggleClass: function( classNames, force, speed, easing, callback ) {
-		if ( typeof force === "boolean" || force === undefined ) {
-			if ( !speed ) {
-				// without speed parameter;
-				return this._toggleClass( classNames, force );
-			} else {
-				return $.effects.animateClass.apply( this, [( force ? { add:classNames } : { remove:classNames }), speed, easing, callback ]);
-			}
-		} else {
-			// without force parameter;
-			return $.effects.animateClass.apply( this, [{ toggle: classNames }, force, speed, easing ]);
-		}
-	},
-
-	switchClass: function( remove, add, speed, easing, callback) {
-		return $.effects.animateClass.apply( this, [{
-				add: add,
-				remove: remove
-			}, speed, easing, callback ]);
-	}
-});
-
-
-
-/******************************************************************************/
-/*********************************** EFFECTS **********************************/
-/******************************************************************************/
-
-$.extend( $.effects, {
-	version: "1.9pre",
-
-	// Saves a set of properties in a data storage
-	save: function( element, set ) {
-		for( var i=0; i < set.length; i++ ) {
-			if ( set[ i ] !== null ) {
-				element.data( dataSpace + set[ i ], element[ 0 ].style[ set[ i ] ] );
-			}
-		}
-	},
-
-	// Restores a set of previously saved properties from a data storage
-	restore: function( element, set ) {
-		for( var i=0; i < set.length; i++ ) {
-			if ( set[ i ] !== null ) {
-				element.css( set[ i ], element.data( dataSpace + set[ i ] ) );
-			}
-		}
-	},
-
-	setMode: function( el, mode ) {
-		if (mode === "toggle") {
-			mode = el.is( ":hidden" ) ? "show" : "hide";
-		}
-		return mode;
-	},
-
-	// Translates a [top,left] array into a baseline value
-	// this should be a little more flexible in the future to handle a string & hash
-	getBaseline: function( origin, original ) {
-		var y, x;
-		switch ( origin[ 0 ] ) {
-			case "top": y = 0; break;
-			case "middle": y = 0.5; break;
-			case "bottom": y = 1; break;
-			default: y = origin[ 0 ] / original.height;
-		};
-		switch ( origin[ 1 ] ) {
-			case "left": x = 0; break;
-			case "center": x = 0.5; break;
-			case "right": x = 1; break;
-			default: x = origin[ 1 ] / original.width;
-		};
-		return {
-			x: x,
-			y: y
-		};
-	},
-
-	// Wraps the element around a wrapper that copies position properties
-	createWrapper: function( element ) {
-
-		// if the element is already wrapped, return it
-		if ( element.parent().is( ".ui-effects-wrapper" )) {
-			return element.parent();
-		}
-
-		// wrap the element
-		var props = {
-				width: element.outerWidth(true),
-				height: element.outerHeight(true),
-				"float": element.css( "float" )
-			},
-			wrapper = $( "<div></div>" )
-				.addClass( "ui-effects-wrapper" )
-				.css({
-					fontSize: "100%",
-					background: "transparent",
-					border: "none",
-					margin: 0,
-					padding: 0
-				}),
-			// Store the size in case width/height are defined in % - Fixes #5245
-			size = {
-				width: element.width(),
-				height: element.height()
-			},
-			active = document.activeElement;
-
-		element.wrap( wrapper );
-
-		// Fixes #7595 - Elements lose focus when wrapped.
-		if ( element[ 0 ] === active || $.contains( element[ 0 ], active ) ) {
-			$( active ).focus();
-		}
-
-		wrapper = element.parent(); //Hotfix for jQuery 1.4 since some change in wrap() seems to actually loose the reference to the wrapped element
-
-		// transfer positioning properties to the wrapper
-		if ( element.css( "position" ) === "static" ) {
-			wrapper.css({ position: "relative" });
-			element.css({ position: "relative" });
-		} else {
-			$.extend( props, {
-				position: element.css( "position" ),
-				zIndex: element.css( "z-index" )
-			});
-			$.each([ "top", "left", "bottom", "right" ], function(i, pos) {
-				props[ pos ] = element.css( pos );
-				if ( isNaN( parseInt( props[ pos ], 10 ) ) ) {
-					props[ pos ] = "auto";
-				}
-			});
-			element.css({
-				position: "relative",
-				top: 0,
-				left: 0,
-				right: "auto",
-				bottom: "auto"
-			});
-		}
-		element.css(size);
-
-		return wrapper.css( props ).show();
-	},
-
-	removeWrapper: function( element ) {
-		var active = document.activeElement;
-
-		if ( element.parent().is( ".ui-effects-wrapper" ) ) {
-			element.parent().replaceWith( element );
-
-			// Fixes #7595 - Elements lose focus when wrapped.
-			if ( element[ 0 ] === active || $.contains( element[ 0 ], active ) ) {
-				$( active ).focus();
-			}
-		}
-
-
-		return element;
-	},
-
-	setTransition: function( element, list, factor, value ) {
-		value = value || {};
-		$.each( list, function(i, x){
-			var unit = element.cssUnit( x );
-			if ( unit[ 0 ] > 0 ) value[ x ] = unit[ 0 ] * factor + unit[ 1 ];
-		});
-		return value;
-	}
-});
-
-// return an effect options object for the given parameters:
-function _normalizeArguments( effect, options, speed, callback ) {
-
-	// short path for passing an effect options object:
-	if ( $.isPlainObject( effect ) ) {
-		return effect;
-	}
-
-	// convert to an object
-	effect = { effect: effect };
-
-	// catch (effect)
-	if ( options === undefined ) {
-		options = {};
-	}
-
-	// catch (effect, callback)
-	if ( $.isFunction( options ) ) {
-		callback = options;
-		speed = null;
-		options = {};
-	}
-
-	// catch (effect, speed, ?)
-	if ( $.type( options ) === "number" || $.fx.speeds[ options ]) {
-		callback = speed;
-		speed = options;
-		options = {};
-	}
-
-	// catch (effect, options, callback)
-	if ( $.isFunction( speed ) ) {
-		callback = speed;
-		speed = null;
-	}
-
-	// add options to effect
-	if ( options ) {
-		$.extend( effect, options );
-	}
-
-	speed = speed || options.duration;
-	effect.duration = $.fx.off ? 0 : typeof speed === "number"
-		? speed : speed in $.fx.speeds ? $.fx.speeds[ speed ] : $.fx.speeds._default;
-
-	effect.complete = callback || options.complete;
-
-	return effect;
-}
-
-function standardSpeed( speed ) {
-	// valid standard speeds
-	if ( !speed || typeof speed === "number" || $.fx.speeds[ speed ] ) {
-		return true;
-	}
-
-	// invalid strings - treat as "normal" speed
-	if ( typeof speed === "string" && !$.effects.effect[ speed ] ) {
-		// TODO: remove in 2.0 (#7115)
-		if ( backCompat && $.effects[ speed ] ) {
-			return false;
-		}
-		return true;
-	}
-
-	return false;
-}
-
-$.fn.extend({
-	effect: function( effect, options, speed, callback ) {
-		var args = _normalizeArguments.apply( this, arguments ),
-			mode = args.mode,
-			queue = args.queue,
-			effectMethod = $.effects.effect[ args.effect ],
-
-			// DEPRECATED: remove in 2.0 (#7115)
-			oldEffectMethod = !effectMethod && backCompat && $.effects[ args.effect ];
-
-		if ( $.fx.off || !( effectMethod || oldEffectMethod ) ) {
-			// delegate to the original method (e.g., .show()) if possible
-			if ( mode ) {
-				return this[ mode ]( args.duration, args.complete );
-			} else {
-				return this.each( function() {
-					if ( args.complete ) {
-						args.complete.call( this );
-					}
-				});
-			}
-		}
-
-		function run( next ) {
-			var elem = $( this ),
-				complete = args.complete,
-				mode = args.mode;
-
-			function done() {
-				if ( $.isFunction( complete ) ) {
-					complete.call( elem[0] );
-				}
-				if ( $.isFunction( next ) ) {
-					next();
-				}
-			}
-
-			// if the element is hiddden and mode is hide,
-			// or element is visible and mode is show
-			if ( elem.is( ":hidden" ) ? mode === "hide" : mode === "show" ) {
-				done();
-			} else {
-				effectMethod.call( elem[0], args, done );
-			}
-		}
-
-		// TODO: remove this check in 2.0, effectMethod will always be true
-		if ( effectMethod ) {
-			return queue === false ? this.each( run ) : this.queue( queue || "fx", run );
-		} else {
-			// DEPRECATED: remove in 2.0 (#7115)
-			return oldEffectMethod.call(this, {
-				options: args,
-				duration: args.duration,
-				callback: args.complete,
-				mode: args.mode
-			});
-		}
-	},
-
-	_show: $.fn.show,
-	show: function( speed ) {
-		if ( standardSpeed( speed ) ) {
-			return this._show.apply( this, arguments );
-		} else {
-			var args = _normalizeArguments.apply( this, arguments );
-			args.mode = "show";
-			return this.effect.call( this, args );
-		}
-	},
-
-	_hide: $.fn.hide,
-	hide: function( speed ) {
-		if ( standardSpeed( speed ) ) {
-			return this._hide.apply( this, arguments );
-		} else {
-			var args = _normalizeArguments.apply( this, arguments );
-			args.mode = "hide";
-			return this.effect.call( this, args );
-		}
-	},
-
-	// jQuery core overloads toggle and creates _toggle
-	__toggle: $.fn.toggle,
-	toggle: function( speed ) {
-		if ( standardSpeed( speed ) || typeof speed === "boolean" || $.isFunction( speed ) ) {
-			return this.__toggle.apply( this, arguments );
-		} else {
-			var args = _normalizeArguments.apply( this, arguments );
-			args.mode = "toggle";
-			return this.effect.call( this, args );
-		}
-	},
-
-	// helper functions
-	cssUnit: function(key) {
-		var style = this.css( key ),
-			val = [];
-
-		$.each( [ "em", "px", "%", "pt" ], function( i, unit ) {
-			if ( style.indexOf( unit ) > 0 )
-				val = [ parseFloat( style ), unit ];
-		});
-		return val;
-	}
-});
-
-
-
-/******************************************************************************/
-/*********************************** EASING ***********************************/
-/******************************************************************************/
-
-/*
- * jQuery Easing v1.3 - http://gsgd.co.uk/sandbox/jquery/easing/
- *
- * Uses the built in easing capabilities added In jQuery 1.1
- * to offer multiple easing options
- *
- * TERMS OF USE - jQuery Easing
- *
- * Open source under the BSD License.
- *
- * Copyright 2008 George McGinley Smith
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modification,
- * are permitted provided that the following conditions are met:
- *
- * Redistributions of source code must retain the above copyright notice, this list of
- * conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above copyright notice, this list
- * of conditions and the following disclaimer in the documentation and/or other materials
- * provided with the distribution.
- *
- * Neither the name of the author nor the names of contributors may be used to endorse
- * or promote products derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
- * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
- * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
- * OF THE POSSIBILITY OF SUCH DAMAGE.
- *
-*/
-
-// t: current time, b: begInnIng value, c: change In value, d: duration
-$.easing.jswing = $.easing.swing;
-
-$.extend( $.easing, {
-	def: "easeOutQuad",
-	swing: function ( x, t, b, c, d ) {
-		return $.easing[ $.easing.def ]( x, t, b, c, d );
-	},
-	easeInQuad: function ( x, t, b, c, d ) {
-		return c * ( t /= d ) * t + b;
-	},
-	easeOutQuad: function ( x, t, b, c, d ) {
-		return -c * ( t /= d ) * ( t - 2 ) + b;
-	},
-	easeInOutQuad: function ( x, t, b, c, d ) {
-		if ( ( t /= d / 2 ) < 1 ) return c / 2 * t * t + b;
-		return -c / 2 * ( ( --t ) * ( t-2 ) - 1) + b;
-	},
-	easeInCubic: function ( x, t, b, c, d ) {
-		return c * ( t /= d ) * t * t + b;
-	},
-	easeOutCubic: function ( x, t, b, c, d ) {
-		return c * ( ( t = t / d - 1 ) * t * t + 1 ) + b;
-	},
-	easeInOutCubic: function ( x, t, b, c, d ) {
-		if ( ( t /= d / 2 ) < 1 ) return c / 2 * t * t * t + b;
-		return c / 2 * ( ( t -= 2 ) * t * t + 2) + b;
-	},
-	easeInQuart: function ( x, t, b, c, d ) {
-		return c * ( t /= d ) * t * t * t + b;
-	},
-	easeOutQuart: function ( x, t, b, c, d ) {
-		return -c * ( ( t = t / d - 1 ) * t * t * t - 1) + b;
-	},
-	easeInOutQuart: function ( x, t, b, c, d ) {
-		if ( (t /= d / 2 ) < 1 ) return c / 2 * t * t * t * t + b;
-		return -c / 2 * ( ( t -= 2 ) * t * t * t - 2) + b;
-	},
-	easeInQuint: function ( x, t, b, c, d ) {
-		return c * ( t /= d ) * t * t * t * t + b;
-	},
-	easeOutQuint: function ( x, t, b, c, d ) {
-		return c * ( ( t = t / d - 1 ) * t * t * t * t + 1) + b;
-	},
-	easeInOutQuint: function ( x, t, b, c, d ) {
-		if ( ( t /= d / 2 ) < 1 ) return c / 2 * t * t  * t * t * t + b;
-		return c / 2 * ( ( t -= 2 ) * t * t * t * t + 2) + b;
-	},
-	easeInSine: function ( x, t, b, c, d ) {
-		return -c * Math.cos( t / d * ( Math.PI / 2 ) ) + c + b;
-	},
-	easeOutSine: function ( x, t, b, c, d ) {
-		return c * Math.sin( t / d * ( Math.PI /2 ) ) + b;
-	},
-	easeInOutSine: function ( x, t, b, c, d ) {
-		return -c / 2 * ( Math.cos( Math.PI * t / d ) - 1 ) + b;
-	},
-	easeInExpo: function ( x, t, b, c, d ) {
-		return ( t==0 ) ? b : c * Math.pow( 2, 10 * ( t / d - 1) ) + b;
-	},
-	easeOutExpo: function ( x, t, b, c, d ) {
-		return ( t==d ) ? b + c : c * ( -Math.pow( 2, -10 * t / d) + 1) + b;
-	},
-	easeInOutExpo: function ( x, t, b, c, d ) {
-		if ( t==0 ) return b;
-		if ( t==d ) return b + c;
-		if ( ( t /= d / 2) < 1) return c / 2 * Math.pow( 2, 10 * (t - 1) ) + b;
-		return c / 2 * ( -Math.pow( 2, -10 * --t ) + 2 ) + b;
-	},
-	easeInCirc: function ( x, t, b, c, d ) {
-		return -c * ( Math.sqrt( 1 - ( t /= d ) * t ) - 1 ) + b;
-	},
-	easeOutCirc: function ( x, t, b, c, d ) {
-		return c * Math.sqrt( 1 - ( t = t / d - 1 ) * t ) + b;
-	},
-	easeInOutCirc: function ( x, t, b, c, d ) {
-		if ( ( t /= d / 2) < 1 ) return -c / 2 * ( Math.sqrt( 1 - t * t ) - 1 ) + b;
-		return c / 2 * ( Math.sqrt( 1 - ( t -= 2 ) * t ) + 1 ) + b;
-	},
-	easeInElastic: function ( x, t, b, c, d ) {
-		var s = 1.70158,
-			p = d * 0.3,
-			a = c;
-		if ( t == 0 ) return b;
-		if ( ( t /= d ) == 1 ) return b+c;
-		if ( a < Math.abs( c ) ) {
-			a = c;
-			s = p / 4;
-		} else {
-			s = p / ( 2 * Math.PI ) * Math.asin( c / a );
-		}
-		return - ( a * Math.pow( 2, 10 * ( t -= 1 ) ) * Math.sin( ( t * d - s) * ( 2 * Math.PI ) / p ) ) + b;
-	},
-	easeOutElastic: function ( x, t, b, c, d ) {
-		var s = 1.70158,
-			p = d * 0.3,
-			a = c;
-		if ( t == 0 ) return b;
-		if ( ( t /= d ) == 1 ) return b+c;
-		if ( a < Math.abs( c ) ) {
-			a = c;
-			s = p / 4;
-		} else {
-			s = p / ( 2 * Math.PI ) * Math.asin( c / a );
-		}
-		return a * Math.pow( 2, -10 * t ) * Math.sin( ( t * d - s ) * ( 2 * Math.PI ) / p ) + c + b;
-	},
-	easeInOutElastic: function ( x, t, b, c, d ) {
-		var s = 1.70158,
-			p = d * ( 0.3 * 1.5 ),
-			a = c;
-		if ( t == 0 ) return b;
-		if ( ( t /= d / 2 ) == 2 ) return b+c;
-		if ( a < Math.abs( c ) ) {
-			a = c;
-			s = p / 4;
-		} else {
-			s = p / ( 2 * Math.PI ) * Math.asin( c / a );
-		}
-		if ( t < 1 ) return -.5 * ( a * Math.pow( 2, 10 * ( t -= 1 ) ) * Math.sin( ( t * d - s ) * ( 2 * Math.PI ) / p ) ) + b;
-		return a * Math.pow( 2, -10 * ( t -= 1 ) ) * Math.sin( ( t * d - s ) * ( 2 * Math.PI ) / p ) *.5 + c + b;
-	},
-	easeInBack: function ( x, t, b, c, d, s ) {
-		if ( s == undefined ) s = 1.70158;
-		return c * ( t /= d ) * t * ( ( s+1 ) * t - s ) + b;
-	},
-	easeOutBack: function ( x, t, b, c, d, s ) {
-		if ( s == undefined ) s = 1.70158;
-		return c * ( ( t = t / d - 1 ) * t * ( ( s + 1 ) * t + s) + 1) + b;
-	},
-	easeInOutBack: function ( x, t, b, c, d, s ) {
-		if ( s == undefined ) s = 1.70158;
-		if ( ( t /= d / 2 ) < 1 ) return c / 2 * ( t * t * ( ( ( s *= 1.525 ) + 1 ) * t - s ) ) + b;
-		return c / 2 * ( ( t -= 2 ) * t * ( ( ( s *= 1.525 ) + 1 ) * t + s) + 2) + b;
-	},
-	easeInBounce: function ( x, t, b, c, d ) {
-		return c - $.easing.easeOutBounce( x, d - t, 0, c, d ) + b;
-	},
-	easeOutBounce: function ( x, t, b, c, d ) {
-		if ( ( t /= d ) < ( 1 / 2.75 ) ) {
-			return c * ( 7.5625 * t * t ) + b;
-		} else if ( t < ( 2 / 2.75 ) ) {
-			return c * ( 7.5625 * ( t -= ( 1.5 / 2.75 ) ) * t + .75 ) + b;
-		} else if ( t < ( 2.5 / 2.75 ) ) {
-			return c * ( 7.5625 * ( t -= ( 2.25/ 2.75 ) ) * t + .9375 ) + b;
-		} else {
-			return c * ( 7.5625 * ( t -= ( 2.625 / 2.75 ) ) * t + .984375 ) + b;
-		}
-	},
-	easeInOutBounce: function ( x, t, b, c, d ) {
-		if ( t < d / 2 ) return $.easing.easeInBounce( x, t * 2, 0, c, d ) * .5 + b;
-		return $.easing.easeOutBounce( x, t * 2 - d, 0, c, d ) * .5 + c * .5 + b;
-	}
-});
-
-/*
- *
- * TERMS OF USE - EASING EQUATIONS
- *
- * Open source under the BSD License.
- *
- * Copyright 2001 Robert Penner
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modification,
- * are permitted provided that the following conditions are met:
- *
- * Redistributions of source code must retain the above copyright notice, this list of
- * conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above copyright notice, this list
- * of conditions and the following disclaimer in the documentation and/or other materials
- * provided with the distribution.
- *
- * Neither the name of the author nor the names of contributors may be used to endorse
- * or promote products derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
- * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
- * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
- * OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- */
-
-})(jQuery);
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/js/jquery.effects.core.min.js b/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/js/jquery.effects.core.min.js
deleted file mode 100755
index 9e92123a..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/jquery-ui/js/jquery.effects.core.min.js
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- * jQuery UI Effects 1.9pre
- *
- * 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/Effects/
- */
-jQuery.effects||function(f,m){function r(c){var a;if(c&&c.constructor===Array&&c.length===3)return c;if(a=/rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/.exec(c))return[parseInt(a[1],10),parseInt(a[2],10),parseInt(a[3],10)];if(a=/rgb\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*\)/.exec(c))return[parseFloat(a[1])*2.55,parseFloat(a[2])*2.55,parseFloat(a[3])*2.55];if(a=/#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/.exec(c))return[parseInt(a[1],
-16),parseInt(a[2],16),parseInt(a[3],16)];if(a=/#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/.exec(c))return[parseInt(a[1]+a[1],16),parseInt(a[2]+a[2],16),parseInt(a[3]+a[3],16)];if(/rgba\(0, 0, 0, 0\)/.exec(c))return s.transparent;return s[f.trim(c).toLowerCase()]}function t(){var c=this.ownerDocument.defaultView?this.ownerDocument.defaultView.getComputedStyle(this,null):this.currentStyle,a={},b,d;if(c&&c.length&&c[0]&&c[c[0]])for(d=c.length;d--;){b=c[d];if(typeof c[b]==="string")a[f.camelCase(b)]=c[b]}else for(b in c)if(typeof c[b]===
-"string")a[b]=c[b];return a}function o(c,a,b,d){if(f.isPlainObject(c))return c;c={effect:c};if(a===m)a={};if(f.isFunction(a)){d=a;b=null;a={}}if(f.type(a)==="number"||f.fx.speeds[a]){d=b;b=a;a={}}if(f.isFunction(b)){d=b;b=null}a&&f.extend(c,a);b=b||a.duration;c.duration=f.fx.off?0:typeof b==="number"?b:b in f.fx.speeds?f.fx.speeds[b]:f.fx.speeds._default;c.complete=d||a.complete;return c}function q(c){if(!c||typeof c==="number"||f.fx.speeds[c])return true;if(typeof c==="string"&&!f.effects.effect[c]){if(u&&
-f.effects[c])return false;return true}return false}var u=f.uiBackCompat!==false;f.effects={effect:{}};f.each(["backgroundColor","borderBottomColor","borderLeftColor","borderRightColor","borderTopColor","borderColor","color","outlineColor"],function(c,a){f.fx.step[a]=function(b){if(!b.colorInit){var d;d=b.elem;var e=a,g;do{g=f.curCSS(d,e);if(g!=""&&g!=="transparent"||f.nodeName(d,"body"))break;e="backgroundColor"}while(d=d.parentNode);d=r(g);b.start=d;b.end=r(b.end);b.colorInit=true}b.elem.style[a]=
-"rgb("+Math.max(Math.min(parseInt(b.pos*(b.end[0]-b.start[0])+b.start[0],10),255),0)+","+Math.max(Math.min(parseInt(b.pos*(b.end[1]-b.start[1])+b.start[1],10),255),0)+","+Math.max(Math.min(parseInt(b.pos*(b.end[2]-b.start[2])+b.start[2],10),255),0)+")"}});var s={aqua:[0,255,255],azure:[240,255,255],beige:[245,245,220],black:[0,0,0],blue:[0,0,255],brown:[165,42,42],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgrey:[169,169,169],darkgreen:[0,100,0],darkkhaki:[189,183,107],darkmagenta:[139,
-0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkviolet:[148,0,211],fuchsia:[255,0,255],gold:[255,215,0],green:[0,128,0],indigo:[75,0,130],khaki:[240,230,140],lightblue:[173,216,230],lightcyan:[224,255,255],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightyellow:[255,255,224],lime:[0,255,0],magenta:[255,0,255],maroon:[128,0,0],navy:[0,0,128],olive:[128,128,0],orange:[255,165,0],pink:[255,192,
-203],purple:[128,0,128],violet:[128,0,128],red:[255,0,0],silver:[192,192,192],white:[255,255,255],yellow:[255,255,0],transparent:[255,255,255]},w=["add","remove","toggle"],x={border:1,borderBottom:1,borderColor:1,borderLeft:1,borderRight:1,borderTop:1,borderWidth:1,margin:1,padding:1};f.each(["borderLeftStyle","borderRightStyle","borderBottomStyle","borderTopStyle"],function(c,a){f.fx.step[a]=function(b){if(b.end!=="none"&&!b.setAttr||b.pos===1&&!b.setAttr){jQuery.style(b.elem,a,b.end);b.setAttr=
-true}}});f.effects.animateClass=function(c,a,b,d){var e=f.speed(a,b,d);return this.queue(function(){var g=f(this),h=g.attr("class")||"",n,j=e.children?g.find("*").andSelf():g;j=j.map(function(){var k=f(this);return{el:k,originalStyleAttr:k.attr("style")||" ",start:t.call(this)}});f.each(w,function(k,i){if(c[i])g[i+"Class"](c[i])});n=g.attr("class");j=j.map(function(){this.end=t.call(this.el[0]);var k=this.start,i=this.end,v={},l,p;for(l in i){p=i[l];if(k[l]!=p)if(!x[l])if(f.fx.step[l]||!isNaN(parseFloat(p)))v[l]=
-p}this.diff=v;return this});g.attr("class",h);j=j.map(function(){var k=this,i=f.Deferred();this.el.animate(this.diff,{duration:e.duration,easing:e.easing,queue:false,complete:function(){i.resolve(k)}});return i.promise()});f.when.apply(f,j.get()).done(function(){g.attr("class",n);f.each(arguments,function(){if(typeof this.el.attr("style")==="object"){this.el.attr("style").cssText="";this.el.attr("style").cssText=this.originalStyleAttr}else this.el.attr("style",this.originalStyleAttr)});e.complete.call(g[0])})})};
-f.fn.extend({_addClass:f.fn.addClass,addClass:function(c,a,b,d){return a?f.effects.animateClass.apply(this,[{add:c},a,b,d]):this._addClass(c)},_removeClass:f.fn.removeClass,removeClass:function(c,a,b,d){return a?f.effects.animateClass.apply(this,[{remove:c},a,b,d]):this._removeClass(c)},_toggleClass:f.fn.toggleClass,toggleClass:function(c,a,b,d,e){return typeof a==="boolean"||a===m?b?f.effects.animateClass.apply(this,[a?{add:c}:{remove:c},b,d,e]):this._toggleClass(c,a):f.effects.animateClass.apply(this,
-[{toggle:c},a,b,d])},switchClass:function(c,a,b,d,e){return f.effects.animateClass.apply(this,[{add:a,remove:c},b,d,e])}});f.extend(f.effects,{version:"1.9pre",save:function(c,a){for(var b=0;b<a.length;b++)a[b]!==null&&c.data("ec.storage."+a[b],c[0].style[a[b]])},restore:function(c,a){for(var b=0;b<a.length;b++)a[b]!==null&&c.css(a[b],c.data("ec.storage."+a[b]))},setMode:function(c,a){if(a==="toggle")a=c.is(":hidden")?"show":"hide";return a},getBaseline:function(c,a){var b,d;switch(c[0]){case "top":b=
-0;break;case "middle":b=0.5;break;case "bottom":b=1;break;default:b=c[0]/a.height}switch(c[1]){case "left":d=0;break;case "center":d=0.5;break;case "right":d=1;break;default:d=c[1]/a.width}return{x:d,y:b}},createWrapper:function(c){if(c.parent().is(".ui-effects-wrapper"))return c.parent();var a={width:c.outerWidth(true),height:c.outerHeight(true),"float":c.css("float")},b=f("<div></div>").addClass("ui-effects-wrapper").css({fontSize:"100%",background:"transparent",border:"none",margin:0,padding:0}),
-d={width:c.width(),height:c.height()},e=document.activeElement;c.wrap(b);if(c[0]===e||f.contains(c[0],e))f(e).focus();b=c.parent();if(c.css("position")==="static"){b.css({position:"relative"});c.css({position:"relative"})}else{f.extend(a,{position:c.css("position"),zIndex:c.css("z-index")});f.each(["top","left","bottom","right"],function(g,h){a[h]=c.css(h);if(isNaN(parseInt(a[h],10)))a[h]="auto"});c.css({position:"relative",top:0,left:0,right:"auto",bottom:"auto"})}c.css(d);return b.css(a).show()},
-removeWrapper:function(c){var a=document.activeElement;if(c.parent().is(".ui-effects-wrapper")){c.parent().replaceWith(c);if(c[0]===a||f.contains(c[0],a))f(a).focus()}return c},setTransition:function(c,a,b,d){d=d||{};f.each(a,function(e,g){var h=c.cssUnit(g);if(h[0]>0)d[g]=h[0]*b+h[1]});return d}});f.fn.extend({effect:function(){function c(h){function n(){f.isFunction(k)&&k.call(j[0]);f.isFunction(h)&&h()}var j=f(this),k=a.complete,i=a.mode;(j.is(":hidden")?i==="hide":i==="show")?n():e.call(j[0],
-a,n)}var a=o.apply(this,arguments),b=a.mode,d=a.queue,e=f.effects.effect[a.effect],g=!e&&u&&f.effects[a.effect];if(f.fx.off||!(e||g))return b?this[b](a.duration,a.complete):this.each(function(){a.complete&&a.complete.call(this)});return e?d===false?this.each(c):this.queue(d||"fx",c):g.call(this,{options:a,duration:a.duration,callback:a.complete,mode:a.mode})},_show:f.fn.show,show:function(c){if(q(c))return this._show.apply(this,arguments);else{var a=o.apply(this,arguments);a.mode="show";return this.effect.call(this,
-a)}},_hide:f.fn.hide,hide:function(c){if(q(c))return this._hide.apply(this,arguments);else{var a=o.apply(this,arguments);a.mode="hide";return this.effect.call(this,a)}},__toggle:f.fn.toggle,toggle:function(c){if(q(c)||typeof c==="boolean"||f.isFunction(c))return this.__toggle.apply(this,arguments);else{var a=o.apply(this,arguments);a.mode="toggle";return this.effect.call(this,a)}},cssUnit:function(c){var a=this.css(c),b=[];f.each(["em","px","%","pt"],function(d,e){if(a.indexOf(e)>0)b=[parseFloat(a),
-e]});return b}});f.easing.jswing=f.easing.swing;f.extend(f.easing,{def:"easeOutQuad",swing:function(c,a,b,d,e){return f.easing[f.easing.def](c,a,b,d,e)},easeInQuad:function(c,a,b,d,e){return d*(a/=e)*a+b},easeOutQuad:function(c,a,b,d,e){return-d*(a/=e)*(a-2)+b},easeInOutQuad:function(c,a,b,d,e){if((a/=e/2)<1)return d/2*a*a+b;return-d/2*(--a*(a-2)-1)+b},easeInCubic:function(c,a,b,d,e){return d*(a/=e)*a*a+b},easeOutCubic:function(c,a,b,d,e){return d*((a=a/e-1)*a*a+1)+b},easeInOutCubic:function(c,a,
-b,d,e){if((a/=e/2)<1)return d/2*a*a*a+b;return d/2*((a-=2)*a*a+2)+b},easeInQuart:function(c,a,b,d,e){return d*(a/=e)*a*a*a+b},easeOutQuart:function(c,a,b,d,e){return-d*((a=a/e-1)*a*a*a-1)+b},easeInOutQuart:function(c,a,b,d,e){if((a/=e/2)<1)return d/2*a*a*a*a+b;return-d/2*((a-=2)*a*a*a-2)+b},easeInQuint:function(c,a,b,d,e){return d*(a/=e)*a*a*a*a+b},easeOutQuint:function(c,a,b,d,e){return d*((a=a/e-1)*a*a*a*a+1)+b},easeInOutQuint:function(c,a,b,d,e){if((a/=e/2)<1)return d/2*a*a*a*a*a+b;return d/2*
-((a-=2)*a*a*a*a+2)+b},easeInSine:function(c,a,b,d,e){return-d*Math.cos(a/e*(Math.PI/2))+d+b},easeOutSine:function(c,a,b,d,e){return d*Math.sin(a/e*(Math.PI/2))+b},easeInOutSine:function(c,a,b,d,e){return-d/2*(Math.cos(Math.PI*a/e)-1)+b},easeInExpo:function(c,a,b,d,e){return a==0?b:d*Math.pow(2,10*(a/e-1))+b},easeOutExpo:function(c,a,b,d,e){return a==e?b+d:d*(-Math.pow(2,-10*a/e)+1)+b},easeInOutExpo:function(c,a,b,d,e){if(a==0)return b;if(a==e)return b+d;if((a/=e/2)<1)return d/2*Math.pow(2,10*(a-1))+
-b;return d/2*(-Math.pow(2,-10*--a)+2)+b},easeInCirc:function(c,a,b,d,e){return-d*(Math.sqrt(1-(a/=e)*a)-1)+b},easeOutCirc:function(c,a,b,d,e){return d*Math.sqrt(1-(a=a/e-1)*a)+b},easeInOutCirc:function(c,a,b,d,e){if((a/=e/2)<1)return-d/2*(Math.sqrt(1-a*a)-1)+b;return d/2*(Math.sqrt(1-(a-=2)*a)+1)+b},easeInElastic:function(c,a,b,d,e){c=1.70158;var g=e*0.3,h=d;if(a==0)return b;if((a/=e)==1)return b+d;if(h<Math.abs(d)){h=d;c=g/4}else c=g/(2*Math.PI)*Math.asin(d/h);return-(h*Math.pow(2,10*(a-=1))*Math.sin((a*
-e-c)*2*Math.PI/g))+b},easeOutElastic:function(c,a,b,d,e){c=1.70158;var g=e*0.3,h=d;if(a==0)return b;if((a/=e)==1)return b+d;if(h<Math.abs(d)){h=d;c=g/4}else c=g/(2*Math.PI)*Math.asin(d/h);return h*Math.pow(2,-10*a)*Math.sin((a*e-c)*2*Math.PI/g)+d+b},easeInOutElastic:function(c,a,b,d,e){c=1.70158;var g=e*0.3*1.5,h=d;if(a==0)return b;if((a/=e/2)==2)return b+d;if(h<Math.abs(d)){h=d;c=g/4}else c=g/(2*Math.PI)*Math.asin(d/h);if(a<1)return-0.5*h*Math.pow(2,10*(a-=1))*Math.sin((a*e-c)*2*Math.PI/g)+b;return h*
-Math.pow(2,-10*(a-=1))*Math.sin((a*e-c)*2*Math.PI/g)*0.5+d+b},easeInBack:function(c,a,b,d,e,g){if(g==m)g=1.70158;return d*(a/=e)*a*((g+1)*a-g)+b},easeOutBack:function(c,a,b,d,e,g){if(g==m)g=1.70158;return d*((a=a/e-1)*a*((g+1)*a+g)+1)+b},easeInOutBack:function(c,a,b,d,e,g){if(g==m)g=1.70158;if((a/=e/2)<1)return d/2*a*a*(((g*=1.525)+1)*a-g)+b;return d/2*((a-=2)*a*(((g*=1.525)+1)*a+g)+2)+b},easeInBounce:function(c,a,b,d,e){return d-f.easing.easeOutBounce(c,e-a,0,d,e)+b},easeOutBounce:function(c,a,b,
-d,e){return(a/=e)<1/2.75?d*7.5625*a*a+b:a<2/2.75?d*(7.5625*(a-=1.5/2.75)*a+0.75)+b:a<2.5/2.75?d*(7.5625*(a-=2.25/2.75)*a+0.9375)+b:d*(7.5625*(a-=2.625/2.75)*a+0.984375)+b},easeInOutBounce:function(c,a,b,d,e){if(a<e/2)return f.easing.easeInBounce(c,a*2,0,d,e)*0.5+b;return f.easing.easeOutBounce(c,a*2-e,0,d,e)*0.5+d*0.5+b}})}(jQuery);
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/jquery.print.js b/wqflask/wqflask/static/packages/jqplot/examples/jquery.print.js
deleted file mode 100755
index 0569bd4d..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/jquery.print.js
+++ /dev/null
@@ -1,103 +0,0 @@
-// <--- --------------------------------------------------------------------------------------- ----

-	

-// 	Blog Entry:

-// 	Ask Ben: Print Part Of A Web Page With jQuery

-	

-// 	Author:

-// 	Ben Nadel / Kinky Solutions

-	

-// 	Link:

-// 	http://www.bennadel.com/index.cfm?event=blog.view&id=1591

-	

-// 	Date Posted:

-// 	May 21, 2009 at 9:10 PM

-	

-// ---- --------------------------------------------------------------------------------------- --->

-

-

-// Create a jquery plugin that prints the given element.

-jQuery.fn.print = function(){

-	// NOTE: We are trimming the jQuery collection down to the

-	// first element in the collection.

-	if (this.size() > 1){

-		this.eq( 0 ).print();

-		return;

-	} else if (!this.size()){

-		return;

-	}

-

-    var chart = $(this).closest('div.quintile-outer-container').find('div.jqplot-target');

-    var imgelem = chart.jqplotToImageElem();

-    console.log(imgelem);

- 

-	// ASSERT: At this point, we know that the current jQuery

-	// collection (as defined by THIS), contains only one

-	// printable element.

- 

-	// Create a random name for the print frame.

-	var strFrameName = ("printer-" + (new Date()).getTime());

- 

-	// Create an iFrame with the new name.

-	var jFrame = $( "<iframe name='" + strFrameName + "'>" );

- 

-	// Hide the frame (sort of) and attach to the body.

-	jFrame

-		.css( "width", "1px" )

-		.css( "height", "1px" )

-		.css( "position", "absolute" )

-		.css( "left", "-9999px" )

-		.appendTo( $( "body:first" ) )

-	;

- 

-	// Get a FRAMES reference to the new frame.

-	var objFrame = window.frames[ strFrameName ];

- 

-	// Get a reference to the DOM in the new frame.

-	var objDoc = objFrame.document;

- 

-	// Grab all the style tags and copy to the new

-	// document so that we capture look and feel of

-	// the current document.

- 

-	// Create a temp document DIV to hold the style tags.

-	// This is the only way I could find to get the style

-	// tags into IE.

-	var jStyleDiv = $( "<div>" ).append(

-		$( "style" ).clone()

-		);

- 

-	// Write the HTML for the document. In this, we will

-	// write out the HTML of the current element.

-	objDoc.open();

-	objDoc.write( "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">" );

-	objDoc.write( "<html>" );

-	objDoc.write( "<body>" );

-	objDoc.write( "<head>" );

-	objDoc.write( "<title>" );

-	objDoc.write( document.title );

-	objDoc.write( "</title>" );

-	objDoc.write( jStyleDiv.html() );

-	objDoc.write( "</head>" );

-	if ($.jqplot.use_excanvas) {

-		objDoc.write( this.html() );

-	}

-	else {

-		objDoc.write( '<img src="' + imgelem.src + '">' );

-	}

-	objDoc.write( "</body>" );

-	objDoc.write( "</html>" );

-	objDoc.close();

- 

-	// Print the document.

-	objFrame.focus();

-	objFrame.print();

- 

-	// Have the frame remove itself in about a minute so that

-	// we don't build up too many of these frames.

-	setTimeout(

-		function(){

-			jFrame.remove();

-		},

-		(60 * 1000)

-		);

-}
\ No newline at end of file
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/jquery.printElement.min.js b/wqflask/wqflask/static/packages/jqplot/examples/jquery.printElement.min.js
deleted file mode 100755
index 27c8d8d2..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/jquery.printElement.min.js
+++ /dev/null
@@ -1,28 +0,0 @@
-/// <reference path="http://code.jquery.com/jquery-1.4.1-vsdoc.js" />
-/*
-* Print Element Plugin 1.2
-*
-* Copyright (c) 2010 Erik Zaadi
-*
-* Inspired by PrintArea (http://plugins.jquery.com/project/PrintArea) and
-* http://stackoverflow.com/questions/472951/how-do-i-print-an-iframe-from-javascript-in-safari-chrome
-*
-*  Home Page : http://projects.erikzaadi/jQueryPlugins/jQuery.printElement 
-*  Issues (bug reporting) : http://github.com/erikzaadi/jQueryPlugins/issues/labels/printElement
-*  jQuery plugin page : http://plugins.jquery.com/project/printElement 
-*  
-*  Thanks to David B (http://github.com/ungenio) and icgJohn (http://www.blogger.com/profile/11881116857076484100)
-*  For their great contributions!
-* 
-* Dual licensed under the MIT and GPL licenses:
-*   http://www.opensource.org/licenses/mit-license.php
-*   http://www.gnu.org/licenses/gpl.html
-*   
-*   Note, Iframe Printing is not supported in Opera and Chrome 3.0, a popup window will be shown instead
-*/
-;(function(g){function k(c){c&&c.printPage?c.printPage():setTimeout(function(){k(c)},50)}function l(c){c=a(c);a(":checked",c).each(function(){this.setAttribute("checked","checked")});a("input[type='text']",c).each(function(){this.setAttribute("value",a(this).val())});a("select",c).each(function(){var b=a(this);a("option",b).each(function(){b.val()==a(this).val()&&this.setAttribute("selected","selected")})});a("textarea",c).each(function(){var b=a(this).attr("value");if(a.browser.b&&this.firstChild)this.firstChild.textContent=
-b;else this.innerHTML=b});return a("<div></div>").append(c.clone()).html()}function m(c,b){var i=a(c);c=l(c);var d=[];d.push("<html><head><title>"+b.pageTitle+"</title>");if(b.overrideElementCSS){if(b.overrideElementCSS.length>0)for(var f=0;f<b.overrideElementCSS.length;f++){var e=b.overrideElementCSS[f];typeof e=="string"?d.push('<link type="text/css" rel="stylesheet" href="'+e+'" >'):d.push('<link type="text/css" rel="stylesheet" href="'+e.href+'" media="'+e.media+'" >')}}else a("link",j).filter(function(){return a(this).attr("rel").toLowerCase()==
-"stylesheet"}).each(function(){d.push('<link type="text/css" rel="stylesheet" href="'+a(this).attr("href")+'" media="'+a(this).attr("media")+'" >')});d.push('<base href="'+(g.location.protocol+"//"+g.location.hostname+(g.location.port?":"+g.location.port:"")+g.location.pathname)+'" />');d.push('</head><body style="'+b.printBodyOptions.styleToAdd+'" class="'+b.printBodyOptions.classNameToAdd+'">');d.push('<div class="'+i.attr("class")+'">'+c+"</div>");d.push('<script type="text/javascript">function printPage(){focus();print();'+
-(!a.browser.opera&&!b.leaveOpen&&b.printMode.toLowerCase()=="popup"?"close();":"")+"}<\/script>");d.push("</body></html>");return d.join("")}var j=g.document,a=g.jQuery;a.fn.printElement=function(c){var b=a.extend({},a.fn.printElement.defaults,c);if(b.printMode=="iframe")if(a.browser.opera||/chrome/.test(navigator.userAgent.toLowerCase()))b.printMode="popup";a("[id^='printElement_']").remove();return this.each(function(){var i=a.a?a.extend({},b,a(this).data()):b,d=a(this);d=m(d,i);var f=null,e=null;
-if(i.printMode.toLowerCase()=="popup"){f=g.open("about:blank","printElementWindow","width=650,height=440,scrollbars=yes");e=f.document}else{f="printElement_"+Math.round(Math.random()*99999).toString();var h=j.createElement("IFRAME");a(h).attr({style:i.iframeElementOptions.styleToAdd,id:f,className:i.iframeElementOptions.classNameToAdd,frameBorder:0,scrolling:"no",src:"about:blank"});j.body.appendChild(h);e=h.contentWindow||h.contentDocument;if(e.document)e=e.document;h=j.frames?j.frames[f]:j.getElementById(f);
-f=h.contentWindow||h}focus();e.open();e.write(d);e.close();k(f)})};a.fn.printElement.defaults={printMode:"iframe",pageTitle:"",overrideElementCSS:null,printBodyOptions:{styleToAdd:"padding:10px;margin:10px;",classNameToAdd:""},leaveOpen:false,iframeElementOptions:{styleToAdd:"border:none;position:absolute;width:0px;height:0px;bottom:0px;left:0px;",classNameToAdd:""}};a.fn.printElement.cssElement={href:"",media:""}})(window);
\ No newline at end of file
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/jsondata.txt b/wqflask/wqflask/static/packages/jqplot/examples/jsondata.txt
deleted file mode 100755
index b6a0cffa..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/jsondata.txt
+++ /dev/null
@@ -1 +0,0 @@
-[[1, 3, 2, 4, 6, 9]]
\ No newline at end of file
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/kcp.print.js b/wqflask/wqflask/static/packages/jqplot/examples/kcp.print.js
deleted file mode 100755
index 0f1d3719..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/kcp.print.js
+++ /dev/null
@@ -1,136 +0,0 @@
-// <--- --------------------------------------------------------------------------------------- ----

-	

-// 	Blog Entry:

-// 	Ask Ben: Print Part Of A Web Page With jQuery

-	

-// 	Author:

-// 	Ben Nadel / Kinky Solutions

-	

-// 	Link:

-// 	http://www.bennadel.com/index.cfm?event=blog.view&id=1591

-	

-// 	Date Posted:

-// 	May 21, 2009 at 9:10 PM

-	

-// ---- --------------------------------------------------------------------------------------- --->

-

-

-// Create a jquery plugin that prints the given element.

-jQuery.fn.print = function(){

-	// NOTE: We are trimming the jQuery collection down to the

-	// first element in the collection.

-	if (this.size() > 1){

-		this.eq( 0 ).print();

-		return;

-	} else if (!this.size()){

-		return;

-	}

-

-    var chart = $(this).closest('div.quintile-outer-container').find('div.jqplot-target');

-    // var imgelem = chart.jqplotToImageElem();

-    var imageElemStr = chart.jqplotToImageElemStr();

-    // var statsrows = $(this).closest('div.quintile-outer-container').find('table.stats-table tr');

-    var statsTable = $('<div></div>').append($(this).closest('div.quintile-outer-container').find('table.stats-table').clone());

-    // var rowstyles = window.getComputedStyle(statsrows.get(0), '');

- 

-	// ASSERT: At this point, we know that the current jQuery

-	// collection (as defined by THIS), contains only one

-	// printable element.

- 

-	// Create a random name for the print frame.

-	var strFrameName = ("printer-" + (new Date()).getTime());

- 

-	// Create an iFrame with the new name.

-	var jFrame = $( "<iframe name='" + strFrameName + "'>" );

- 

-	// Hide the frame (sort of) and attach to the body.

-	jFrame

-		.css( "width", "1px" )

-		.css( "height", "1px" )

-		.css( "position", "absolute" )

-		.css( "left", "-9999px" )

-		.appendTo( $( "body:first" ) )

-	;

- 

-	// Get a FRAMES reference to the new frame.

-	var objFrame = window.frames[ strFrameName ];

- 

-	// Get a reference to the DOM in the new frame.

-	var objDoc = objFrame.document;

- 

-	// Grab all the style tags and copy to the new

-	// document so that we capture look and feel of

-	// the current document.

- 

-	// Create a temp document DIV to hold the style tags.

-	// This is the only way I could find to get the style

-	// tags into IE.

-	var jStyleDiv = $( "<div>" ).append(

-		$( "style" ).clone()

-		);

- 

-	// Write the HTML for the document. In this, we will

-	// write out the HTML of the current element.

-	objDoc.open();

-	objDoc.write( "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">" );

-	objDoc.write( "<html>" );

-	objDoc.write( "<body>" );

-	objDoc.write( "<head>" );

-	objDoc.write( "<title>" );

-	objDoc.write( document.title );

-	objDoc.write( "</title>" );

-	objDoc.write( jStyleDiv.html() );

-	objDoc.write( "</head>" );

-

-	// Typically, would just write out the html.	

-	// objDoc.write( this.html() );

-

-	// We need to do specific manipulation for kcp quintiles.

-	objDoc.write( '<div class="quintile-outer-container ui-widget ui-corner-all"> \

-    <div class="quintile-content ui-widget-content ui-corner-bottom"> \

-		<table class="quintile-display"> \

-            <tr> \

-                <td class="chart-cell">');

-

-    objDoc.write(imageElemStr);

-    

-    objDoc.write('</td> <td class="stats-cell">');

-

-    objDoc.write(statsTable.html());

-

-    objDoc.write('</td></tr></table></div></div>');

-

-	objDoc.write( "</body>" );

-	objDoc.write( "</html>" );

-	objDoc.close();

- 

- 	// 

-	// When the iframe is completely loaded, print it.

-	// This seemed worked in IE 9, but caused problems in FF.

-	//

-	// $(objFrame).load(function() {

-	// 	objFrame.focus();

-	// 	objFrame.print();

-	// });

-

-	//

-	// This works in all supported browsers.

-	// Note, might have to adjust time.

-	//

-	setTimeout(

-		function() {

-			objFrame.focus();

-			objFrame.print();

-		}, 750);

- 

-

-	// Have the frame remove itself in about a minute so that

-	// we don't build up too many of these frames.

-	setTimeout(

-		function(){

-			jFrame.empty();

-			jFrame.remove();

-		},

-		(60 * 1000)

-		);

-}
\ No newline at end of file
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/kcp_area.html b/wqflask/wqflask/static/packages/jqplot/examples/kcp_area.html
deleted file mode 100755
index 58a33198..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/kcp_area.html
+++ /dev/null
@@ -1,284 +0,0 @@
-<!DOCTYPE html>
-
-<html>
-<head>
-	
-	<title>Area Chart</title>
-
-    <link class="include" rel="stylesheet" type="text/css" href="../jquery.jqplot.min.css" />
-    <link rel="stylesheet" type="text/css" href="examples.min.css" />
-    <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shCoreDefault.min.css" />
-    <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shThemejqPlot.min.css" />
-  
-  <!--[if lt IE 9]><script language="javascript" type="text/javascript" src="../excanvas.js"></script><![endif]-->
-    <script class="include" type="text/javascript" src="../jquery.min.js"></script>
-    
-   
-</head>
-<body>
-    <div class="logo">
-   <div class="nav">
-   <a class="nav" href="../../../index.php"><span>&gt;</span>Home</a>
-   <a class="nav"  href="../../../docs/"><span>&gt;</span>Docs</a>
-   <a class="nav"  href="../../download/"><span>&gt;</span>Download</a>
-   <a class="nav" href="../../../info.php"><span>&gt;</span>Info</a>
-   <a class="nav"  href="../../../donate.php"><span>&gt;</span>Donate</a>
-   </div>
-</div>
-    <div class="example-content">
-
-    <div class="example-nav">
-  <a href="index.html">Previous</a> <a href="./">Examples</a> <a href="kcp_area2.html">Next</a></div>
-
-      
-<!-- Example scripts go here -->
-
-
-  <link class="include" type="text/css" href="jquery-ui/css/smoothness/jquery-ui.min.css" rel="Stylesheet" /> 
-
-   <style type="text/css">
-
-    .chart-container {
-        border: 1px solid darkblue;
-        padding: 30px 0px 30px 30px;
-        width: 900px;
-        height: 400px;
-        
-    }
-
-    table.jqplot-table-legend {
-        font-size: 0.65em;
-        line-height: 1em;
-        margin: 0px 0px 10px 15px;
-        border-collapse: collapse;
-    }
-
-    td.jqplot-table-legend-label {
-      width: 20em;
-    }
-
-    div.jqplot-table-legend-swatch {
-        border-width: 2px 6px;
-    }
-
-    div.jqplot-table-legend-swatch-outline {
-        border: none;
-    }
-
-    tr.jqplot-table-legend td {
-        padding: 2px;
-    }
-
-    .legend-row-highlighted {
-        background-color: #666666;
-    }
-
-    .legend-text-highlighted {
-        color: #ffffff;
-    }
-
-    #chart1 {
-        width: 96%;
-        height: 96%;
-    }
-
-    .jqplot-datestamp {
-      font-size: 0.8em;
-      color: #777;
-/*      margin-top: 1em;
-      text-align: right;*/
-      font-style: italic;
-      position: absolute;
-      bottom: 15px;
-      right: 15px;
-    }
-
-    td.controls li {
-        list-style-type: none;
-    }
-
-    td.controls ul {
-        margin-top: 0.5em;
-        padding-left: 0.2em;
-    }
-
-    pre.code {
-        margin-top: 45px;
-        clear: both;
-    }
-
-  </style>
-
-      <div class="chart-container">    
-        <div id="chart1"></div>
-        <div class="jqplot-datestamp"></div>
-    </div>
-
-    <pre class="code brush:js"></pre>
-  
-  <script class="code" type="text/javascript">
-$(document).ready(function(){
-
-    ///////////
-    // Function to parse a csv file.
-    // Note, this IS NOT a complete parser.  It does not handle quoted text.
-    // It is implemented to demonstrate functionality from within JavaScript.
-    // If a full csv parser is needed, check out:
-    // http://www.bennadel.com/blog/1504-Ask-Ben-Parsing-CSV-Strings-With-Javascript-Exec-Regular-Expression-Command.htm
-    ///////////
-    var parseCSVFile = function(url) {
-        var ret = null;
-        var labels = [];
-        var ticks = [];
-        var values = [];
-        var temp;
-        $.ajax({
-            // have to use synchronous here, else returns before data is fetched
-            async: false,
-            url: url,
-            dataType:'text',
-            success: function(data) {
-                // parse csv data
-                var lines = data.split('\n');
-                var line;
-                for (var i=0, l=lines.length; i<l; i++) {
-                    line = lines[i].replace('\r', '').split(',');
-                    // console.log(line);
-                    if (line.length > 1) {
-                        if (i === 0) {
-                          ticks = line.slice(1, line.length);
-                          for (var n=0, nl=ticks.length; n<nl; n++) {
-                            ticks[n] = [n+1, ticks[n]];
-                          }
-                        }
-                        else {
-                          labels.push(line[0]);
-                          values.push(line.slice(1, line.length));
-                          temp = values[values.length-1];
-                          // make a copy of temp
-                          temp = temp.slice(0, temp.length);
-                          for (var n=0, nl=temp.length; n<nl; n++) {
-                            values[values.length-1][n] = parseFloat(temp[n]);
-                          }
-                        } 
-                    }
-                }
-                ret = [values, labels, ticks];
-            }
-        });
-        return ret;
-    };
- 
-    var jsonurl = "./KCPsample4.csv";
-
-    var infos = parseCSVFile(jsonurl);
-
-    // area plots are made with all series except last 2
-    data = infos[0].slice(0, infos[0].length-2);
-    labels = infos[1].slice(0, infos[1].length-2);
-    ticks = infos[2];
-
-    // make the plot
-    
-    plot1 = $.jqplot('chart1', data, {
-        title: 'Area Plot',
-        stackSeries: true,
-        seriesDefaults: {
-            showMarker: false,
-            fill: true,
-            fillAndStroke: true
-        },
-        legend: {
-            show: true,
-            placement: 'outsideGrid',
-            labels: labels,
-            location: 'ne',
-            rowSpacing: '0px'
-        },
-        axesDefaults: {
-            labelRenderer: $.jqplot.CanvasAxisLabelRenderer
-        },
-        axes: {
-            xaxis: {
-                pad: 0,
-                ticks: ticks,
-                label: 'Population Vingtile',
-                tickOptions: {
-                    showGridline: false
-                }
-            },
-            yaxis: {
-                min: 0,
-                max: 100,
-                label: 'Share of Item in Total Expenditure (%)',
-                tickOptions: {
-                  showGridline: false,
-                  suffix: '%'
-                }
-            }
-        },
-        grid: {
-            drawBorder: false,
-            shadow: false,
-            // background: 'rgba(0,0,0,0)'  works to make transparent.
-            background: 'white'
-        }
-    });
-
-    // add a date at the bottom.
-
-    var d = new $.jsDate();
-    $('div.jqplot-datestamp').html('Generated on '+d.strftime('%v'));
-
-    // make it resizable.
-    
-    $("div.chart-container").resizable({delay:20});
-
-    $('div.chart-container').bind('resize', function(event, ui) {
-        plot1.replot();
-    });
-
-    $('#chart1').bind('jqplotDataHighlight', function(ev, seriesIndex, pointIndex, data) {
-        var idx = 21 - seriesIndex
-        $('tr.jqplot-table-legend').removeClass('legend-row-highlighted');  
-        $('tr.jqplot-table-legend').children('.jqplot-table-legend-label').removeClass('legend-text-highlighted');
-        $('tr.jqplot-table-legend').eq(idx).addClass('legend-row-highlighted'); 
-        $('tr.jqplot-table-legend').eq(idx).children('.jqplot-table-legend-label').addClass('legend-text-highlighted'); 
-    });
-
-    $('#chart1').bind('jqplotDataUnhighlight', function(ev, seriesIndex, pointIndex, data) {
-        $('tr.jqplot-table-legend').removeClass('legend-row-highlighted');  
-        $('tr.jqplot-table-legend').children('.jqplot-table-legend-label').removeClass('legend-text-highlighted');
-    });
-});
-
-</script>
-
-
-<!-- End example scripts -->
-
-<!-- Don't touch this! -->
-
-
-    <script class="include" type="text/javascript" src="../jquery.jqplot.min.js"></script>
-    <script type="text/javascript" src="syntaxhighlighter/scripts/shCore.min.js"></script>
-    <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushJScript.min.js"></script>
-    <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushXml.min.js"></script>
-<!-- End Don't touch this! -->
-
-<!-- Additional plugins go here -->
-
-  <script class="include" type="text/javascript" src="jquery-ui/js/jquery-ui.min.js"></script>
-  <script class="include" type="text/javascript" src="../plugins/jqplot.canvasTextRenderer.min.js"></script>
-  <script class="include" type="text/javascript" src="../plugins/jqplot.canvasAxisLabelRenderer.min.js"></script>
-
-<!-- End additional plugins -->
-
-
-	</div>	
-	<script type="text/javascript" src="example.min.js"></script>
-
-</body>
-
-
-</html>
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/kcp_area2.html b/wqflask/wqflask/static/packages/jqplot/examples/kcp_area2.html
deleted file mode 100755
index 9550b2ca..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/kcp_area2.html
+++ /dev/null
@@ -1,217 +0,0 @@
-<!DOCTYPE html>
-
-<html>
-<head>
-	
-	<title>Area Chart 2</title>
-
-    <link class="include" rel="stylesheet" type="text/css" href="../jquery.jqplot.min.css" />
-    <link rel="stylesheet" type="text/css" href="examples.min.css" />
-    <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shCoreDefault.min.css" />
-    <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shThemejqPlot.min.css" />
-  
-  <!--[if lt IE 9]><script language="javascript" type="text/javascript" src="../excanvas.js"></script><![endif]-->
-    <script class="include" type="text/javascript" src="../jquery.min.js"></script>
-    
-   
-</head>
-<body>
-    <div class="logo">
-   <div class="nav">
-   <a class="nav" href="../../../index.php"><span>&gt;</span>Home</a>
-   <a class="nav"  href="../../../docs/"><span>&gt;</span>Docs</a>
-   <a class="nav"  href="../../download/"><span>&gt;</span>Download</a>
-   <a class="nav" href="../../../info.php"><span>&gt;</span>Info</a>
-   <a class="nav"  href="../../../donate.php"><span>&gt;</span>Donate</a>
-   </div>
-</div>
-    <div class="example-content">
-
-    <div class="example-nav">
-  <a href="kcp_area.html">Previous</a> <a href="./">Examples</a> <a href="kcp_cdf.html">Next</a></div>
-
-      
-<!-- Example scripts go here -->
-
-
-  <link class="include" type="text/css" href="jquery-ui/css/smoothness/jquery-ui.min.css" rel="Stylesheet" /> 
-
-   <style type="text/css">
-
-    .chart-container {
-        border: 1px solid darkblue;
-        padding: 30px 0px 30px 30px;
-        width: 900px;
-        height: 400px;
-        
-    }
-
-    table.jqplot-table-legend {
-        border: 0px;
-    }
-
-    td.jqplot-table-legend-label {
-      padding: 0.25em;
-    }
-
-    td.jqplot-table-legend-label + td.jqplot-table-legend-swatch {
-        padding-left: 1.5em;
-    }
-
-    div.jqplot-table-legend-swatch {
-        border-width: 4px 6px;
-    }
-
-    div.jqplot-table-legend-swatch-outline {
-        border: none;
-    }
-
-    #chart1 {
-        width: 96%;
-        height: 96%;
-    }
-
-    .jqplot-datestamp {
-      font-size: 0.8em;
-      color: #777;
-/*      margin-top: 1em;
-      text-align: right;*/
-      font-style: italic;
-      position: absolute;
-      bottom: 15px;
-      right: 15px;
-    }
-
-    td.controls li {
-        list-style-type: none;
-    }
-
-    td.controls ul {
-        margin-top: 0.5em;
-        padding-left: 0.2em;
-    }
-
-    pre.code {
-        margin-top: 45px;
-        clear: both;
-    }
-
-  </style>
-
-      <div class="chart-container">    
-        <div id="chart1"></div>
-        <div class="jqplot-datestamp"></div>
-    </div>
-
-    <pre class="code brush:js"></pre>
-  
-  <script class="code" type="text/javascript">
-$(document).ready(function(){
-
-    var labels = ['Rural', 'Urban'];
-
-    // make the plot
-
-    var makePlot = function (data, textStatus, jqXHR) {
-        plot1 = $.jqplot('chart1', [data.rural, data.urban], {
-            title: 'Contribution of Urban and Rural Population to National Percentiles (edited data)',
-            stackSeries: true,
-            seriesColors: ['#77933C', '#B9CDE5'],
-            seriesDefaults: {
-                showMarker: false,
-                fill: true,
-                fillAndStroke: true
-            },
-            legend: {
-                show: true,
-                renderer: $.jqplot.EnhancedLegendRenderer,
-                rendererOptions: {
-                    numberRows: 1
-                },
-                placement: 'outsideGrid',
-                labels: labels,
-                location: 's'
-            },
-            axes: {
-                xaxis: {
-                    pad: 0,
-                    min: 1,
-                    max: 100,
-                    label: 'Population Percentile',
-                    labelRenderer: $.jqplot.CanvasAxisLabelRenderer,
-                    tickInterval: 3,
-                    tickOptions: {
-                        showGridline: false
-                    }
-                },
-                yaxis: {
-                    min: 0,
-                    max: 1,
-                    label: 'Percentage of Population',
-                    labelRenderer: $.jqplot.CanvasAxisLabelRenderer,
-                    tickOptions: {
-                      formatter: $.jqplot.PercentTickFormatter,
-                      showGridline: false,
-                      formatString: '%d%%'
-                    }
-                }
-            },
-            grid: {
-                drawBorder: false,
-                shadow: false,
-                // background: 'rgba(0,0,0,0)'  works to make transparent.
-                background: 'white'
-            }
-        });
-    };
-
-    // data is in json format in plain file.
-    // Each series is represented by a 1-D array of y values.
-    // X values will be added by jqPlot and will start 1 by default.
-    $.getJSON('kcp_area2.json', '', makePlot);
-
-    // add a date at the bottom.
-
-    var d = new $.jsDate();
-    $('div.jqplot-datestamp').html('Generated on '+d.strftime('%v'));
-
-    // make it resizable.
-    
-    $("div.chart-container").resizable({delay:20});
-
-    $('div.chart-container').bind('resize', function(event, ui) {
-        plot1.replot();
-    });
-});
-
-</script>
-
-
-<!-- End example scripts -->
-
-<!-- Don't touch this! -->
-
-
-    <script class="include" type="text/javascript" src="../jquery.jqplot.min.js"></script>
-    <script type="text/javascript" src="syntaxhighlighter/scripts/shCore.min.js"></script>
-    <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushJScript.min.js"></script>
-    <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushXml.min.js"></script>
-<!-- End Don't touch this! -->
-
-<!-- Additional plugins go here -->
-
-  <script class="include" type="text/javascript" src="../plugins/jqplot.enhancedLegendRenderer.min.js"></script>
-  <script class="include" type="text/javascript" src="../plugins/jqplot.canvasTextRenderer.min.js"></script>
-  <script class="include" type="text/javascript" src="../plugins/jqplot.canvasAxisLabelRenderer.min.js"></script>
-  <script class="include" type="text/javascript" src="jquery-ui/js/jquery-ui.min.js"></script>
-
-<!-- End additional plugins -->
-
-
-	</div>	
-	<script type="text/javascript" src="example.min.js"></script>
-
-</body>
-
-
-</html>
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/kcp_area2.json b/wqflask/wqflask/static/packages/jqplot/examples/kcp_area2.json
deleted file mode 100755
index 167454a3..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/kcp_area2.json
+++ /dev/null
@@ -1,2 +0,0 @@
-{"rural": [0.9176, 0.9296, 0.927, 0.9251, 0.9241, 0.9225, 0.9197, 0.9164, 0.9131, 0.9098, 0.9064, 0.9028, 0.8991, 0.8957, 0.8925, 0.8896, 0.8869, 0.8844, 0.882, 0.8797, 0.8776, 0.8755, 0.8735, 0.8715, 0.8696, 0.8677, 0.8658, 0.8637, 0.8616, 0.8594, 0.8572, 0.8548, 0.8524, 0.8499, 0.8473, 0.8446, 0.8418, 0.8389, 0.8359, 0.8328, 0.8295, 0.8262, 0.8227, 0.8191, 0.8155, 0.8119, 0.8083, 0.8048, 0.8013, 0.7979, 0.7945, 0.7912, 0.7879, 0.7846, 0.7813, 0.778, 0.7747, 0.7714, 0.768, 0.7647, 0.7612, 0.7577, 0.7538, 0.7496, 0.7449, 0.7398, 0.7342, 0.7279, 0.721, 0.7137, 0.7059, 0.6977, 0.6889, 0.6797, 0.6698, 0.6593, 0.6482, 0.6367, 0.6247, 0.6121, 0.5989, 0.5852, 0.571, 0.5561, 0.5402, 0.5232, 0.505, 0.4855, 0.4643, 0.4414, 0.4166, 0.3893, 0.3577, 0.3204, 0.2764, 0.2272, 0.1774, 0.1231, 0.0855, 0.0849],
-"urban": [0.0824, 0.0704, 0.073, 0.0749, 0.0759, 0.0775, 0.0803, 0.0836, 0.0869, 0.0902, 0.0936, 0.0972, 0.1009, 0.1043, 0.1075, 0.1104, 0.1131, 0.1156, 0.118, 0.1203, 0.1224, 0.1245, 0.1265, 0.1285, 0.1304, 0.1323, 0.1342, 0.1363, 0.1384, 0.1406, 0.1428, 0.1452, 0.1476, 0.1501, 0.1527, 0.1554, 0.1582, 0.1611, 0.1641, 0.1672, 0.1705, 0.1738, 0.1773, 0.1809, 0.1845, 0.1881, 0.1917, 0.1952, 0.1987, 0.2021, 0.2055, 0.2088, 0.2121, 0.2154, 0.2187, 0.222, 0.2253, 0.2286, 0.232, 0.2353, 0.2388, 0.2423, 0.2462, 0.2504, 0.2551, 0.2602, 0.2658, 0.2721, 0.279, 0.2863, 0.2941, 0.3023, 0.3111, 0.3203, 0.3302, 0.3407, 0.3518, 0.3633, 0.3753, 0.3879, 0.4011, 0.4148, 0.429, 0.4439, 0.4598, 0.4768, 0.495, 0.5145, 0.5357, 0.5586, 0.5834, 0.6107, 0.6423, 0.6796, 0.7236, 0.7728, 0.8226, 0.8769, 0.9145, 0.9151]}
\ No newline at end of file
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/kcp_cdf.html b/wqflask/wqflask/static/packages/jqplot/examples/kcp_cdf.html
deleted file mode 100755
index 7fc9c654..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/kcp_cdf.html
+++ /dev/null
@@ -1,351 +0,0 @@
-<!DOCTYPE html>
-
-<html>
-<head>
-	
-	<title>Cumulative Density Function Chart</title>
-
-    <link class="include" rel="stylesheet" type="text/css" href="../jquery.jqplot.min.css" />
-    <link rel="stylesheet" type="text/css" href="examples.min.css" />
-    <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shCoreDefault.min.css" />
-    <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shThemejqPlot.min.css" />
-  
-  <!--[if lt IE 9]><script language="javascript" type="text/javascript" src="../excanvas.js"></script><![endif]-->
-    <script class="include" type="text/javascript" src="../jquery.min.js"></script>
-    
-   
-</head>
-<body>
-    <div class="logo">
-   <div class="nav">
-   <a class="nav" href="../../../index.php"><span>&gt;</span>Home</a>
-   <a class="nav"  href="../../../docs/"><span>&gt;</span>Docs</a>
-   <a class="nav"  href="../../download/"><span>&gt;</span>Download</a>
-   <a class="nav" href="../../../info.php"><span>&gt;</span>Info</a>
-   <a class="nav"  href="../../../donate.php"><span>&gt;</span>Donate</a>
-   </div>
-</div>
-    <div class="example-content">
-
-    <div class="example-nav">
-  <a href="kcp_area2.html">Previous</a> <a href="./">Examples</a> <a href="kcp_engel.html">Next</a></div>
-
-      
-<!-- Example scripts go here -->
-
-
-  <link class="include" type="text/css" href="jquery-ui/css/smoothness/jquery-ui.min.css" rel="Stylesheet" /> 
-
-   <style type="text/css">
-
-    .chart-container {
-        border: 1px solid darkblue;
-        padding: 30px;
-        width: 500px;
-        height: 400px;
-        
-    }
-
-    #chart1 {
-        width: 96%;
-        height: 96%;
-    }
-
-    .jqplot-datestamp {
-      font-size: 0.8em;
-      color: #777;
-/*      margin-top: 1em;
-      text-align: right;*/
-      font-style: italic;
-      position: absolute;
-      bottom: 15px;
-      right: 15px;
-    }
-
-    td.controls li {
-        list-style-type: none;
-    }
-
-    td.controls ul {
-        margin-top: 0.5em;
-        padding-left: 0.2em;
-    }
-
-    pre.code {
-        margin-top: 45px;
-        clear: both;
-    }
-
-  </style>
-
-    <table class="app">
-        <td class="controls">
-
-            <div>
-                Data Series:
-                <ul>
-                    <li><input name="dataSeries" value="national" type="radio" checked />National</li>
-                    <li><input name="dataSeries" value="urban" type="radio" />Urban</li>
-                    <li><input name="dataSeries" value="rural" type="radio" />Rural</li>
-                </ul>
-            </div>
-
-            <div>
-                Background Color:
-                <ul>
-                    <li><input name="backgroundColor" value="white" type="radio" checked />Default</li>
-                    <li><input name="backgroundColor" value="#efefef" type="radio" />Gray</li>
-                </ul>
-            </div>
-
-            <div>
-                Line Width:
-                <ul>
-                    <li><input name="lineWidth" value="2.5" type="radio" checked />Thin</li>
-                    <li><input name="lineWidth" value="5" type="radio" />Thick</li>
-                </ul>
-            </div>
-
-            <div>
-                Grids:
-                <ul>
-                    <li><input name="gridsVertical" value="vertical" type="checkbox" checked />Vertical</li>
-                    <li><input name="gridsHorizontal" value="horizontal" type="checkbox" checked />Horizontal</li>
-                </ul>
-            </div>
-
-            <div>
-                Set lines at:
-                <ul>
-                    <li><input name="userLine1" value="8250" type="text" size="8" /> and </li>
-                    <li><input name="userLine2" value="60000" type="text" size="8" /></li>
-                </ul>
-            </div>
-        </td>
-
-        <td class="chart">
-            <div class="chart-container">    
-                <div id="chart1"></div>
-                <div class="jqplot-datestamp"></div>
-            </div>
-        </td>
-
-    </table>
-
-    <pre class="code brush:js"></pre>
-  
-  <script class="code" type="text/javascript">
-$(document).ready(function(){
-    var dataSets = {
-        national: [[1521.3938, 0.034259], [1626.3757, 0.036908], [1738.6018, 0.039957], [1858.5719, 0.043623], [1986.8205, 0.048008], [2123.9187, 0.053278], [2270.4772, 0.059665], [2427.1488, 0.067405], [2594.6313, 0.076951], [2773.6707, 0.088909], [2965.0643, 0.103706], [3169.6651, 0.121406], [3388.384, 0.142376], [3622.1955, 0.167456], [3872.1408, 0.198392], [4139.3332, 0.237371], [4424.963, 0.287096], [4730.3023, 0.350664], [5056.7112, 0.43322], [5405.6431, 0.546538], [5778.6531, 0.703419], [6177.4022, 0.921534], [6603.6665, 1.225405], [7059.3446, 1.658248], [7546.4664, 2.286919], [8067.2013, 3.168531], [8623.869, 4.338121], [9218.9488, 5.828025], [9855.0905, 7.674282], [10535.1293, 9.856185], [11262.0934, 12.427952], [12039.2208, 15.374906], [12869.973, 18.559853], [13758.0502, 21.938501], [14707.4081, 25.480211], [15722.2754, 29.195872], [16807.1724, 33.040813], [17966.9296, 36.929108], [19206.7162, 40.883239], [20532.0529, 44.934876], [21948.8429, 48.979949], [23463.3991, 52.874709], [25082.4581, 56.569122], [26813.238, 60.143349], [28663.448, 63.632698], [30641.3597, 67.019887], [32755.7239, 70.272329], [35015.9867, 73.31569], [37432.2159, 76.137996], [40015.1736, 78.734309], [42776.4074, 81.144203], [45728.1335, 83.364771], [48883.5393, 85.40072], [52256.6796, 87.276365], [55862.5786, 88.994984], [59717.3573, 90.547773], [63838.07, 91.930153], [68243.1267, 93.143588], [72952.1481, 94.19365], [77986.109, 95.093093], [83367.4313, 95.863261], [89120.1733, 96.518119], [95269.7861, 97.07861], [101843.7444, 97.555507], [108871.3294, 97.958887], [116383.8431, 98.29631], [124414.8718, 98.57645], [132999.9458, 98.805892], [142177.421, 98.994988], [151988.1749, 99.15183], [162475.9062, 99.279882], [173687.5023, 99.384116], [185672.5653, 99.470272], [198484.6408, 99.541871], [212180.7957, 99.601871], [226822.0345, 99.653556], [242473.814, 99.698334], [259205.3802, 99.737113], [277091.4846, 99.770733], [296211.7947, 99.800151], [316651.475, 99.826487], [338501.5668, 99.85018], [361859.7555, 99.871291], [386829.3815, 99.889939], [413522.0015, 99.906286], [442056.5084, 99.92045], [472559.9991, 99.932702], [505168.8456, 99.9433], [540027.3147, 99.952485], [577291.1437, 99.960528], [617126.311, 99.96755], [659710.2484, 99.9736], [705233.3359, 99.978742], [753896.9752, 99.983126], [805918.5808, 99.986929], [861529.8645, 99.990275], [920978.5269, 99.993221], [984529.3611, 99.995794], [1052466.484, 99.998031], [1125090.461, 100]],
-
-        urban: [[2918.1368, 0.022476], [3099.059, 0.026364], [3291.1983, 0.031079], [3495.2501, 0.03683], [3711.9529, 0.043812], [3942.0911, 0.052123], [4186.4977, 0.061977], [4446.0574, 0.07392], [4721.7095, 0.08836], [5014.4519, 0.105627], [5325.3441, 0.126649], [5655.5113, 0.152991], [6006.1487, 0.186685], [6378.5253, 0.230466], [6773.9889, 0.288337], [7193.971, 0.364009], [7639.9917, 0.462362], [8113.6654, 0.591815], [8616.7064, 0.763717], [9150.9356, 0.990265], [9718.2865, 1.291577], [10320.8128, 1.689361], [10960.6953, 2.197829], [11640.25, 2.833156], [12361.9366, 3.607935], [13128.3672, 4.531058], [13942.3158, 5.612064], [14806.7287, 6.829389], [15724.7345, 8.150496], [16699.656, 9.587093], [17735.0219, 11.139531], [18834.5796, 12.843232], [20002.3091, 14.744], [21242.4369, 16.882944], [22559.4426, 19.274088], [23958.1299, 21.898373], [25443.5105, 24.70402], [27020.9832, 27.725078], [28696.2577, 31.02485], [30475.3976, 34.577391], [32364.8747, 38.361881], [34371.4652, 42.220399], [36502.4624, 46.204947], [38765.5793, 50.279452], [41169.0072, 54.284933], [43721.489, 58.020934], [46432.1785, 61.527083], [49310.9281, 65.059633], [52368.1573, 68.631977], [55614.9317, 72.134933], [59063.062, 75.35901], [62724.914, 78.289798], [66613.7972, 80.980675], [70743.7873, 83.426691], [75129.8328, 85.63051], [79787.8886, 87.600439], [84734.6595, 89.324337], [89988.1253, 90.82494], [95567.3009, 92.132382], [101492.3799, 93.28344], [107784.9158, 94.291515], [114467.4749, 95.165628], [121564.3462, 95.917569], [129101.2165, 96.566309], [137105.3654, 97.111687], [145605.9093, 97.557321], [154633.333, 97.923776], [164220.4481, 98.224115], [174401.955, 98.472073], [185214.7052, 98.683427], [196698.0321, 98.864412], [208893.1174, 99.018636], [221844.2859, 99.150765], [235598.4142, 99.266909], [250205.285, 99.369967], [265718.0332, 99.460335], [282192.2909, 99.538693], [299687.9363, 99.60658], [318268.2947, 99.665149], [338000.617, 99.716006], [358956.683, 99.76009], [381211.6455, 99.798168], [404846.394, 99.830962], [429946.4736, 99.858805], [456602.7336, 99.881656], [484912.1405, 99.900176], [514976.218, 99.91564], [546904.2389, 99.928971], [580811.7657, 99.940546], [616821.5259, 99.950572], [655064.5111, 99.959091], [695677.8688, 99.966315], [738809.2149, 99.97239], [784614.6621, 99.97761], [833260.0023, 99.982252], [884922.1907, 99.986425], [939786.4993, 99.990223], [998052.3412, 99.993742], [1059930.608, 99.996997], [1125645.267, 100]],
-
-        rural: [[1522.3755, 0.044856], [1621.4335, 0.048153], [1726.937, 0.051764], [1839.3056, 0.055907], [1958.9857, 0.060801], [2086.4531, 0.066762], [2222.2145, 0.073899], [2366.8099, 0.082612], [2520.8136, 0.093168], [2684.8381, 0.106164], [2859.5353, 0.122508], [3045.6, 0.142886], [3243.7713, 0.16758], [3454.8371, 0.19669], [3679.6367, 0.23118], [3919.0639, 0.273098], [4174.0698, 0.325019], [4445.6684, 0.390807], [4734.9398, 0.474177], [5043.0332, 0.579565], [5371.1735, 0.719638], [5720.6654, 0.911325], [6092.8986, 1.175054], [6489.3516, 1.537895], [6911.6011, 2.041596], [7361.3256, 2.758826], [7840.3135, 3.776691], [8350.4675, 5.133703], [8893.8162, 6.852621], [9472.5195, 8.948744], [10088.8789, 11.417648], [10745.3427, 14.293846], [11444.5212, 17.634387], [12189.194, 21.360828], [12982.3225, 25.29956], [13827.0569, 29.428878], [14726.7567, 33.707138], [15684.9997, 38.129755], [16705.5921, 42.671778], [17792.5925, 47.229102], [18950.322, 51.800588], [20183.3846, 56.383771], [21496.6782, 60.886558], [22895.4161, 65.12792], [24385.1837, 69.030354], [25971.888, 72.617033], [27661.8365, 75.986887], [29461.7179, 79.112304], [31378.744, 81.975561], [33420.5079, 84.537139], [35595.0905, 86.782817], [37911.2052, 88.71901], [40378.0258, 90.413815], [43005.3584, 91.908817], [45803.6014, 93.228911], [48783.9674, 94.381653], [51958.2609, 95.359352], [55339.1005, 96.170082], [58939.867, 96.837248], [62774.9884, 97.378991], [66859.655, 97.8273], [71210.033, 98.200135], [75843.5542, 98.506646], [80778.5711, 98.752685], [86034.7015, 98.949784], [91632.7482, 99.10766], [97595.1423, 99.232528], [103945.4998, 99.334335], [110709.0646, 99.42121], [117912.6058, 99.497035], [125584.9876, 99.563629], [133756.5988, 99.621726], [142459.781, 99.672192], [151729.4076, 99.715746], [161602.1937, 99.752893], [172117.386, 99.784601], [183316.6015, 99.811139], [195244.7151, 99.833203], [207948.9717, 99.852181], [221479.8735, 99.868723], [235890.9734, 99.883153], [251240.0159, 99.89576], [267587.7958, 99.906951], [284999.0141, 99.917064], [303543.4372, 99.926265], [323294.5157, 99.9346], [344330.7648, 99.942191], [366735.4418, 99.949086], [390598.3214, 99.955426], [416013.9199, 99.961279], [443083.2701, 99.966677], [471913.507, 99.971673], [502620.1526, 99.976302], [535324.8297, 99.980575], [570156.9769, 99.984496], [607256.1655, 99.988063], [646769.3381, 99.991314], [688853.5686, 99.994366], [733675.418, 99.997264], [781414.486, 100]]
-    };
-     
-    // Initial values for the user lines.
-    var userLine1Val = 8250;
-    var userLine2Val = 60000; 
-
-
-    
-    plot1 = $.jqplot("chart1", [dataSets.national], {
-        title: "Cumulative Density Function",
-        cursor: {
-            show: false
-        },
-        highlighter: {
-            show: true,
-            showMarker: false,
-            useAxesFormatters: false,
-            formatString: '%d, %.1f'
-        },
-        axesDefaults: {
-            labelRenderer: $.jqplot.CanvasAxisLabelRenderer
-        },
-        seriesDefaults: {
-            showMarker: false
-        },
-        axes: {
-            xaxis: {
-                label: "Per Capita Expenditure (local currency)",
-                renderer: $.jqplot.LogAxisRenderer,
-                pad:0,
-                ticks: [700, 7000, 70000, 700000, {value:1000000, showLabel:false, showMark:false, showGridline:false}],
-                tickOptions: {
-                    formatString: "%d"
-                }
-            },
-            yaxis: {
-                label: "Population Share (%)",
-                forceTickAt0: true,
-                pad: 0
-            }
-        },
-        grid: {
-            drawBorder: false,
-            shadow: false,
-            // background: 'rgba(0,0,0,0)'  works.
-            background: "white"
-        },
-        canvasOverlay: {
-            show: true,
-            objects: [
-                {verticalLine: {
-                    name: "line1",
-                    x: userLine1Val,
-                    color: "#d4c35D",
-                    yOffset: 0,
-                    shadow: false,
-                    showTooltip: true,
-                    tooltipFormatString: "PCE=%'d",
-                    showTooltipPrecision: 0.5
-                }},
-                {verticalLine: {
-                    name: "line2",
-                    x: userLine2Val,
-                    color: "#d4c35D",
-                    yOffset: 0,
-                    shadow: false,
-                    showTooltip: true,
-                    tooltipFormatString: "PCE=%'d",
-                    showTooltipPrecision: 0.5
-                }}
-            ]
-        }
-    });
-
-    // add a date at the bottom.
-
-    var d = new $.jsDate();
-    $("div.jqplot-datestamp").html("Generated on "+d.strftime("%v"));
-
-    // initialize form elements
-    // set these before attaching event handlers.
-
-    $("input[type=radio][name=dataSeries]").attr("checked", false);
-    $("input[type=radio][name=dataSeries][value=national]").attr("checked", true);
-
-    $("input[type=radio][name=backgroundColor]").attr("checked", false);
-    $("input[type=radio][name=backgroundColor][value=white]").attr("checked", true);
-
-    $("input[type=radio][name=lineWidth]").attr("checked", false);
-    $('input[type=radio][name=lineWidth][value="2.5"]').attr("checked", true);
-
-    $("input[type=text][name=userLine1]").val(userLine1Val);
-    $("input[type=text][name=userLine2]").val(userLine2Val);
-
-    $("input[type=checkbox][name=gridsVertical]").attr("checked", true);
-    $("input[type=checkbox][name=gridsHorizontal]").attr("checked", true);
-
-    $("input[type=radio][name=backgroundColor]").change(function(){ 
-        plot1.grid.background = $(this).val();
-        plot1.replot();
-    });
-
-    $("input[type=radio][name=dataSeries]").change(function(){ 
-        var val = $(this).val();
-        plot1.series[0].data = dataSets[val];
-
-        switch (val) {
-            case "national":
-                plot1.series[0].renderer.shapeRenderer.strokeStyle = "#4bb2c5";
-                break;
-            case "urban":
-                plot1.series[0].renderer.shapeRenderer.strokeStyle = "#c54b62";
-                break;
-            case "rural":
-                plot1.series[0].renderer.shapeRenderer.strokeStyle = "#b2c54b";
-                break;
-            default:
-                plot1.series[0].renderer.shapeRenderer.strokeStyle = "#4bb2c5";
-                break;
-        }
-        // hack to make sure plot auto computes a new format string if needed.
-        plot1.axes.yaxis.tickOptions.formatString = ''
-        plot1.replot({resetAxes:["yaxis"]});
-    });
-
-    $("input[type=checkbox][name=gridsVertical]").change(function(){
-        plot1.axes.xaxis.tickOptions.showGridline = this.checked;
-        plot1.replot();
-    });
-
-    $("input[type=checkbox][name=gridsHorizontal]").change(function(){
-        plot1.axes.yaxis.tickOptions.showGridline = this.checked;
-        plot1.replot();
-    });
-
-    $("input[type=text][name=userLine1]").keyup(function(){
-        var val = parseFloat($(this).val());
-        plot1.plugins.canvasOverlay.get("line1").options.x = val;
-        plot1.replot();
-    });
-
-    $("input[type=text][name=userLine2]").keyup(function(){
-        var val = parseFloat($(this).val());
-        plot1.plugins.canvasOverlay.get("line2").options.x = val;
-        plot1.replot();
-    });
-
-    $("input[type=radio][name=lineWidth]").change(function(){
-        var val = parseFloat($(this).val()), shadowOffset; 
-        plot1.series[0].renderer.shapeRenderer.lineWidth = val;
-        plot1.series[0].renderer.shadowRenderer.lineWidth = val;
-        // for thick lines, scale shadow offset.
-        if (val > 2.5) {
-            shadowOffset = 1.25 * (1 + (Math.atan((val/2.5))/0.785398163 - 1)*0.6);
-            // var shadow_offset = this.shadowOffset;
-        }
-        // for skinny lines, don't make such a big shadow.
-        else {
-            shadowOffset = 1.25*Math.atan((val/2.5))/0.785398163;
-        }
-        plot1.series[0].renderer.shadowRenderer.offset = shadowOffset;
-        plot1.plugins.canvasOverlay.get("line1").options.lineWidth = val;
-        plot1.plugins.canvasOverlay.get("line2").options.lineWidth = val;
-        plot1.replot();
-    });
-    
-    
-    $("div.chart-container").resizable({delay:20});    
-
-    $("div.chart-container").bind("resize", function(event, ui) {
-        plot1.replot();
-    });
-});
-
-</script>
-
-
-<!-- End example scripts -->
-
-<!-- Don't touch this! -->
-
-
-    <script class="include" type="text/javascript" src="../jquery.jqplot.min.js"></script>
-    <script type="text/javascript" src="syntaxhighlighter/scripts/shCore.min.js"></script>
-    <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushJScript.min.js"></script>
-    <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushXml.min.js"></script>
-<!-- End Don't touch this! -->
-
-<!-- Additional plugins go here -->
-  <script class="include" type="text/javascript" src="../plugins/jqplot.logAxisRenderer.min.js"></script>
-  <script class="include" type="text/javascript" src="../plugins/jqplot.cursor.min.js"></script>
-  <script class="include" type="text/javascript" src="../plugins/jqplot.canvasTextRenderer.min.js"></script>
-  <script class="include" type="text/javascript" src="../plugins/jqplot.canvasAxisLabelRenderer.min.js"></script>
-  <script class="include" type="text/javascript" src="../plugins/jqplot.highlighter.min.js"></script>
-  <script class="include" type="text/javascript" src="../plugins/jqplot.canvasOverlay.min.js"></script>
-  <script class="include" type="text/javascript" src="jquery-ui/js/jquery-ui.min.js"></script>
-
-<!-- End additional plugins -->
-
-
-	</div>	
-	<script type="text/javascript" src="example.min.js"></script>
-
-</body>
-
-
-</html>
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/kcp_engel.html b/wqflask/wqflask/static/packages/jqplot/examples/kcp_engel.html
deleted file mode 100755
index 940c2d5a..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/kcp_engel.html
+++ /dev/null
@@ -1,256 +0,0 @@
-<!DOCTYPE html>
-
-<html>
-<head>
-	
-	<title>Engel Curves</title>
-
-    <link class="include" rel="stylesheet" type="text/css" href="../jquery.jqplot.min.css" />
-    <link rel="stylesheet" type="text/css" href="examples.min.css" />
-    <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shCoreDefault.min.css" />
-    <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shThemejqPlot.min.css" />
-  
-  <!--[if lt IE 9]><script language="javascript" type="text/javascript" src="../excanvas.js"></script><![endif]-->
-    <script class="include" type="text/javascript" src="../jquery.min.js"></script>
-    
-   
-</head>
-<body>
-    <div class="logo">
-   <div class="nav">
-   <a class="nav" href="../../../index.php"><span>&gt;</span>Home</a>
-   <a class="nav"  href="../../../docs/"><span>&gt;</span>Docs</a>
-   <a class="nav"  href="../../download/"><span>&gt;</span>Download</a>
-   <a class="nav" href="../../../info.php"><span>&gt;</span>Info</a>
-   <a class="nav"  href="../../../donate.php"><span>&gt;</span>Donate</a>
-   </div>
-</div>
-    <div class="example-content">
-
-    <div class="example-nav">
-  <a href="kcp_cdf.html">Previous</a> <a href="./">Examples</a> <a href="kcp_lorenz.html">Next</a></div>
-
-      
-<!-- Example scripts go here -->
-
-
-  <link class="include" type="text/css" href="jquery-ui/css/smoothness/jquery-ui.min.css" rel="Stylesheet" /> 
-
-  <style type="text/css">
-
-    .chart-container {
-        border: 1px solid darkblue;
-        padding: 30px 0px 30px 30px;
-        width: 900px;
-        height: 400px;
-        
-    }
-
-    table.jqplot-table-legend {
-        font-size: 0.65em;
-        line-height: 1em;
-        margin: 0px 0px 10px 15px;
-    }
-
-    td.jqplot-table-legend-label {
-      width: 20em;
-    }
-
-    div.jqplot-table-legend-swatch {
-        border-width: 1.5px 6px;
-    }
-
-    div.jqplot-table-legend-swatch-outline {
-        border: none;
-    }
-
-    #chart1 {
-        width: 96%;
-        height: 96%;
-    }
-
-    .jqplot-datestamp {
-      font-size: 0.8em;
-      color: #777;
-/*      margin-top: 1em;
-      text-align: right;*/
-      font-style: italic;
-      position: absolute;
-      bottom: 15px;
-      right: 15px;
-    }
-
-    td.controls li {
-        list-style-type: none;
-    }
-
-    td.controls ul {
-        margin-top: 0.5em;
-        padding-left: 0.2em;
-    }
-
-    pre.code {
-        margin-top: 45px;
-        clear: both;
-    }
-
-  </style>
-
-    <div class="chart-container">    
-        <div id="chart1"></div>
-        <div class="jqplot-datestamp"></div>
-    </div>
-
-    <pre class="code brush:js"></pre>
-  
-  <script class="code" type="text/javascript">
-$(document).ready(function(){
-
-    ///////////
-    // This is NOT a full csv parser.
-    // It does not handle quoated text.
-    // It is for demonstration only.
-    // For a full featured csv parser, look at:
-    //
-    // http://www.bennadel.com/blog/1504-Ask-Ben-Parsing-CSV-Strings-With-Javascript-Exec-Regular-Expression-Command.htm
-    ///////////
-
-    var parseCSVFile = function(url) {
-        var ret = null;
-        var labels = [];
-        var ticks = [];
-        var values = [];
-        var temp;
-        $.ajax({
-            // have to use synchronous here, else returns before data is fetched
-            async: false,
-            url: url,
-            dataType:"text",
-            success: function(data) {
-                // parse csv data
-                var lines = data.split('\n');
-                var line;
-                for (var i=0, l=lines.length; i<l; i++) {
-                    line = lines[i].replace('\r', '').split(',');
-                    // console.log(line);
-                    if (line.length > 1) {
-                        if (i === 0) {
-                          ticks = line.slice(1, line.length);
-                        }
-                        else {
-                          labels.push(line[0]);
-                          values.push(line.slice(1, line.length));
-                          temp = values[values.length-1];
-                          for (n in temp) {
-                            values[values.length-1][n] = parseFloat(temp[n]);
-                          }
-                        } 
-                    }
-                }
-                ret = [values, labels, ticks];
-            }
-        });
-        return ret;
-    };
- 
-    var jsonurl = "./KCPsample4.csv";
-
-    var infos = parseCSVFile(jsonurl);
-    var data = infos[0];
-    var labels = infos[1];
-    var ticks = infos[2];
-
-    // make the plot
-    
-    plot1 = $.jqplot("chart1", data, {
-        title: "Engel Curves",
-        animate: true,
-        axesDefaults: {
-            labelRenderer: $.jqplot.CanvasAxisLabelRenderer
-        },
-        seriesDefaults: {
-            showMarker: false
-        },
-        legend: {
-            show: true,
-            renderer: $.jqplot.EnhancedLegendRenderer,
-            placement: "outsideGrid",
-            labels: labels,
-            location: "ne",
-            rowSpacing: "0px",
-            rendererOptions: {
-                // set to true to replot when toggling series on/off
-                // set to an options object to pass in replot options.
-                seriesToggle: 'normal',
-                seriesToggleReplot: {resetAxes: true}
-            }
-        },
-        axes: {
-            xaxis: {
-                label: 'Population Percentile',
-                pad: 1.01,
-                tickOptions: {
-                    showGridline: false
-                }
-            },
-            yaxis: {
-                label: 'Share in Total Expenditure (%)',
-                tickOptions: {
-                    suffix: '%'
-                },
-                padMin: 0,
-                padMax: 1.05
-            }
-        },
-        grid: {
-            drawBorder: false,
-            shadow: false,
-            // background: 'rgba(0,0,0,0)'  works to make transparent.
-            background: "white"
-        }
-    });
-
-    // add a date at the bottom.
-
-    var d = new $.jsDate();
-    $("div.jqplot-datestamp").html("Generated on "+d.strftime("%v"));
-
-    // make it resizable.
-    
-    $("div.chart-container").resizable({delay:20});
-
-    $("div.chart-container").bind("resize", function(event, ui) {
-        plot1.replot();
-    });
-});
-
-</script>
-
-
-<!-- End example scripts -->
-
-<!-- Don't touch this! -->
-
-
-    <script class="include" type="text/javascript" src="../jquery.jqplot.min.js"></script>
-    <script type="text/javascript" src="syntaxhighlighter/scripts/shCore.min.js"></script>
-    <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushJScript.min.js"></script>
-    <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushXml.min.js"></script>
-<!-- End Don't touch this! -->
-
-<!-- Additional plugins go here -->>
-  <script class="include" type="text/javascript" src="../plugins/jqplot.canvasTextRenderer.min.js"></script>
-  <script class="include" type="text/javascript" src="../plugins/jqplot.canvasAxisLabelRenderer.min.js"></script>
-  <script class="include" type="text/javascript" src="../plugins/jqplot.enhancedLegendRenderer.min.js"></script>
-  <script class="include" type="text/javascript" src="jquery-ui/js/jquery-ui.min.js"></script>
-
-<!-- End additional plugins -->
-
-
-	</div>	
-	<script type="text/javascript" src="example.min.js"></script>
-
-</body>
-
-
-</html>
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/kcp_lorenz.html b/wqflask/wqflask/static/packages/jqplot/examples/kcp_lorenz.html
deleted file mode 100755
index 2fcf661d..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/kcp_lorenz.html
+++ /dev/null
@@ -1,528 +0,0 @@
-<!DOCTYPE html>
-
-<html>
-<head>
-	
-	<title>Lorenz Curves</title>
-
-    <link class="include" rel="stylesheet" type="text/css" href="../jquery.jqplot.min.css" />
-    <link rel="stylesheet" type="text/css" href="examples.min.css" />
-    <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shCoreDefault.min.css" />
-    <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shThemejqPlot.min.css" />
-  
-  <!--[if lt IE 9]><script language="javascript" type="text/javascript" src="../excanvas.js"></script><![endif]-->
-    <script class="include" type="text/javascript" src="../jquery.min.js"></script>
-    
-   
-</head>
-<body>
-    <div class="logo">
-   <div class="nav">
-   <a class="nav" href="../../../index.php"><span>&gt;</span>Home</a>
-   <a class="nav"  href="../../../docs/"><span>&gt;</span>Docs</a>
-   <a class="nav"  href="../../download/"><span>&gt;</span>Download</a>
-   <a class="nav" href="../../../info.php"><span>&gt;</span>Info</a>
-   <a class="nav"  href="../../../donate.php"><span>&gt;</span>Donate</a>
-   </div>
-</div>
-    <div class="example-content">
-
-    <div class="example-nav">
-  <a href="kcp_engel.html">Previous</a> <a href="./">Examples</a> <a href="kcp_pdf.html">Next</a></div>
-
-      
-<!-- Example scripts go here -->
-
-
-  <link class="include" type="text/css" href="jquery-ui/css/smoothness/jquery-ui.min.css" rel="Stylesheet" /> 
-
-  <style type="text/css">
-
-    .chart-container {
-        border: 1px solid darkblue;
-        padding: 30px;
-        width: 500px;
-        height: 400px;
-        
-    }
-
-    #chart1 {
-        width: 96%;
-        height: 96%;
-    }
-
-    .jqplot-datestamp {
-      font-size: 0.8em;
-      color: #777;
-/*      margin-top: 1em;
-      text-align: right;*/
-      font-style: italic;
-      position: absolute;
-      bottom: 15px;
-      right: 15px;
-    }
-
-    td.controls li {
-        list-style-type: none;
-    }
-
-    td.controls ul {
-        margin-top: 0.5em;
-        padding-left: 0.2em;
-    }
-
-    pre.code {
-        margin-top: 45px;
-        clear: both;
-    }
-
-  </style>
-
-    <table class="app">
-        <td class="controls">
-
-            <div>
-                Data Series:
-                <ul>
-                    <li><input class="dataSeries-checkbox" name="dataSeries_national" value="national" type="checkbox" checked />National</li>
-                    <li><input class="dataSeries-checkbox" name="dataSeries_urban" value="urban" type="checkbox" />Urban</li>
-                    <li><input class="dataSeries-checkbox" name="dataSeries_rural" value="rural" type="checkbox" />Rural</li>
-                </ul>
-            </div>
-
-            <div>
-                Background Color:
-                <ul>
-                    <li><input name="backgroundColor" value="white" type="radio" checked />Default</li>
-                    <li><input name="backgroundColor" value="#efefef" type="radio" />Gray</li>
-                </ul>
-            </div>
-
-            <div>
-                Line Width:
-                <ul>
-                    <li><input name="lineWidth" value="2.5" type="radio" checked />Thin</li>
-                    <li><input name="lineWidth" value="5" type="radio" />Thick</li>
-                </ul>
-            </div>
-
-            <div>
-                Grids:
-                <ul>
-                    <li><input name="gridsVertical" value="vertical" type="checkbox" checked />Vertical</li>
-                    <li><input name="gridsHorizontal" value="horizontal" type="checkbox" checked />Horizontal</li>
-                </ul>
-            </div>
-
-            <div>
-                Cutoff Lines:
-                <ul>
-                    <li><input name="cutoffLines" value="showCutoffLines" type="checkbox" checked />Show</li>
-                    <li>Low:&nbsp;&nbsp;<input name="userLine1" value="42" type="text" size="6" /></li>
-                    <li>High:&nbsp;<input name="userLine2" value="75" type="text" size="6" /></li>
-                </ul>
-            </div>
-        </td>
-        
-        <td class="chart">
-            <div class="chart-container">    
-                <div id="chart1"></div>
-                <div class="jqplot-datestamp"></div>
-            </div>
-        </td>
-
-    </table>
-
-    <pre class="code brush:js"></pre>
-  
-
-  
-  <script class="code" type="text/javascript">
-$(document).ready(function(){
-    var dataSets = {
-        national: [[0, 0], [0.034259, 0.000122], [0.036908, 0.000271], [0.039957, 0.000457], [0.043623, 0.000699], [0.048008, 0.001005], [0.053278, 0.001404], [0.059665, 0.001916], [0.067405, 0.002587], [0.076951, 0.003482], [0.088909, 0.004676], [0.103706, 0.006234], [0.121406, 0.008198], [0.142376, 0.010698], [0.167456, 0.013945], [0.198392, 0.018266], [0.237371, 0.024152], [0.287096, 0.03217], [0.350664, 0.043128], [0.43322, 0.058856], [0.546538, 0.08196], [0.703419, 0.116382], [0.921534, 0.167573], [1.225405, 0.244101], [1.658248, 0.362099], [2.286919, 0.545089], [3.168531, 0.811148], [4.338121, 1.180312], [5.828025, 1.677699], [7.674282, 2.317937], [9.856185, 3.124879], [12.427952, 4.135038], [15.374906, 5.337835], [18.559853, 6.704187], [21.938501, 8.240167], [25.480211, 9.968066], [29.195872, 11.896316], [33.040813, 13.995922], [36.929108, 16.268393], [40.883239, 18.753271], [44.934876, 21.456742], [48.979949, 24.281483], [52.874709, 27.163823], [56.569122, 30.090586], [60.143349, 33.155912], [63.632698, 36.332609], [67.019887, 39.647977], [70.272329, 42.982924], [73.31569, 46.301522], [76.137996, 49.580067], [78.734309, 52.80729], [81.144203, 56.013671], [83.364771, 59.154237], [85.40072, 62.237023], [87.276365, 65.274088], [88.994984, 68.231226], [90.547773, 71.063226], [91.930153, 73.740825], [93.143588, 76.235257], [94.19365, 78.526502], [95.093093, 80.626967], [95.863261, 82.534767], [96.518119, 84.276606], [97.07861, 85.871008], [97.555507, 87.313822], [97.958887, 88.612275], [98.29631, 89.76839], [98.57645, 90.788966], [98.805892, 91.680096], [98.994988, 92.471419], [99.15183, 93.168954], [99.279882, 93.771844], [99.384116, 94.303287], [99.470272, 94.773123], [99.541871, 95.191639], [99.601871, 95.572501], [99.653556, 95.924822], [99.698334, 96.25129], [99.737113, 96.553878], [99.770733, 96.834228], [99.800151, 97.099569], [99.826487, 97.355328], [99.85018, 97.600349], [99.871291, 97.832168], [99.889939, 98.050737], [99.906286, 98.254414], [99.92045, 98.442305], [99.932702, 98.616245], [99.9433, 98.776877], [99.952485, 98.926517], [99.960528, 99.066855], [99.96755, 99.196967], [99.9736, 99.316087], [99.978742, 99.423943], [99.983126, 99.523155], [99.986929, 99.615949], [99.990275, 99.703425], [99.993221, 99.785398], [99.995794, 99.861721], [99.998031, 99.932812], [100, 100]],
-
-        urban: [[0, 0], [0.022476, 0.000211], [0.026364, 0.000483], [0.031079, 0.000832], [0.03683, 0.001286], [0.043812, 0.001867], [0.052123, 0.002596], [0.061977, 0.003523], [0.07392, 0.00472], [0.08836, 0.006245], [0.105627, 0.008192], [0.126649, 0.010745], [0.152991, 0.014185], [0.186685, 0.01887], [0.230466, 0.025421], [0.288337, 0.034602], [0.364009, 0.047302], [0.462362, 0.064833], [0.591815, 0.0896], [0.763717, 0.124292], [0.990265, 0.173076], [1.291577, 0.242086], [1.689361, 0.337485], [2.197829, 0.465168], [2.833156, 0.632983], [3.607935, 0.847553], [4.531058, 1.117227], [5.612064, 1.448077], [6.829389, 1.832426], [8.150496, 2.276607], [9.587093, 2.787319], [11.139531, 3.375891], [12.843232, 4.068491], [14.744, 4.894875], [16.882944, 5.879821], [19.274088, 7.043989], [21.898373, 8.377077], [24.70402, 9.889069], [27.725078, 11.639484], [31.02485, 13.647365], [34.577391, 15.957918], [38.361881, 18.496115], [42.220399, 21.242326], [46.204947, 24.281703], [50.279452, 27.501128], [54.284933, 30.800251], [58.020934, 34.003512], [61.527083, 37.314968], [65.059633, 40.928214], [68.631977, 44.751812], [72.134933, 48.615769], [75.35901, 52.332308], [78.289798, 55.927374], [80.980675, 59.439449], [83.426691, 62.80086], [85.63051, 66.024375], [87.600439, 69.040545], [89.324337, 71.839628], [90.82494, 74.405703], [92.132382, 76.808559], [93.28344, 79.051197], [94.291515, 81.128944], [95.165628, 83.025406], [95.917569, 84.765777], [96.566309, 86.346045], [97.111687, 87.728898], [97.557321, 88.935715], [97.923776, 89.98232], [98.224115, 90.896808], [98.472073, 91.712405], [98.683427, 92.454973], [98.864412, 93.127257], [99.018636, 93.73762], [99.150765, 94.298112], [99.266909, 94.826197], [99.369967, 95.321988], [99.460335, 95.779249], [99.538693, 96.200706], [99.60658, 96.587402], [99.665149, 96.942925], [99.716006, 97.27086], [99.76009, 97.572073], [99.798168, 97.847633], [99.830962, 98.099393], [99.858805, 98.322381], [99.881656, 98.513678], [99.900176, 98.68098], [99.91564, 98.83196], [99.928971, 98.970904], [99.940546, 99.098968], [99.950572, 99.216266], [99.959091, 99.321169], [99.966315, 99.415471], [99.97239, 99.500041], [99.97761, 99.578707], [99.982252, 99.653757], [99.986425, 99.725788], [99.990223, 99.796075], [99.993742, 99.865362], [99.996997, 99.933105], [100, 100]],
-
-        rural: [[0, 0], [0.044856, 0.00021], [0.048153, 0.000449], [0.051764, 0.000737], [0.055907, 0.001092], [0.060801, 0.00155], [0.066762, 0.002138], [0.073899, 0.002894], [0.082612, 0.003876], [0.093168, 0.005148], [0.106164, 0.006835], [0.122508, 0.009095], [0.142886, 0.012069], [0.16758, 0.015833], [0.19669, 0.020566], [0.23118, 0.026579], [0.273098, 0.034447], [0.325019, 0.044958], [0.390807, 0.059161], [0.474177, 0.078318], [0.579565, 0.104359], [0.719638, 0.14226], [0.911325, 0.197784], [1.175054, 0.278915], [1.537895, 0.397967], [2.041596, 0.57646], [2.758826, 0.848809], [3.776691, 1.250019], [5.133703, 1.8048], [6.852621, 2.537016], [8.948744, 3.478047], [11.417648, 4.640509], [14.293846, 6.085098], [17.634387, 7.851123], [21.360828, 9.886831], [25.29956, 12.160142], [29.428878, 14.674388], [33.707138, 17.452533], [38.129755, 20.506174], [42.671778, 23.796002], [47.229102, 27.303349], [51.800588, 31.060857], [56.383771, 35.053496], [60.886558, 39.145526], [65.12792, 43.181575], [69.030354, 47.116849], [72.617033, 51.025646], [75.986887, 54.923636], [79.112304, 58.743632], [81.975561, 62.443223], [84.537139, 65.922443], [86.782817, 69.135506], [88.71901, 72.103335], [90.413815, 74.878966], [91.908817, 77.500639], [93.228911, 79.953304], [94.381653, 82.20716], [95.359352, 84.209133], [96.170082, 85.973719], [96.837248, 87.5051], [97.378991, 88.838761], [97.8273, 90.020506], [98.200135, 91.065991], [98.506646, 91.96714], [98.752685, 92.735267], [98.949784, 93.390185], [99.10766, 93.94721], [99.232528, 94.417506], [99.334335, 94.838423], [99.42121, 95.226477], [99.497035, 95.589049], [99.563629, 95.927413], [99.621726, 96.240868], [99.672192, 96.530566], [99.715746, 96.794464], [99.752893, 97.034788], [99.784601, 97.251679], [99.811139, 97.442528], [99.833203, 97.614678], [99.852181, 97.774104], [99.868723, 97.92227], [99.883153, 98.05955], [99.89576, 98.188276], [99.906951, 98.310902], [99.917064, 98.429897], [99.926265, 98.545001], [99.9346, 98.656238], [99.942191, 98.76409], [99.949086, 98.868769], [99.955426, 98.971691], [99.961279, 99.072938], [99.966677, 99.172455], [99.971673, 99.270765], [99.976302, 99.367541], [99.980575, 99.462525], [99.984496, 99.554946], [99.988063, 99.644199], [99.991314, 99.731953], [99.994366, 99.820708], [99.997264, 99.910225], [100, 100]]
-    } 
-
-    // Initial values for the user lines.
-    var userLine1Val = 42;
-    var userLine2Val = 75;   
-
-    // find the index of the data point with the closest y value.
-    // assumes y values are monotonically increasing.
-    var findXValue = function (y, data) {
-        var l = data.length;
-        var temp;
-        var d;
-        var idx;
-        var mid = Math.round(l/2);
-        var interval = mid;
-        var prevInterval = mid;
-        var dist = null;
-        var absDist = null;
-        var hold = null;
-        var ret = null;
-        var x, x0, x1, y0, y1, lowidx, hiidx;
-
-        // check to see if we're in range
-        if (y > data[l-1][1]) {
-            return [l-1, data[l-1]];
-        }
-        else if (y < data[0][1]) {
-            return [0, data[0]];
-        }
-
-        for (var i=0; i<l; i++) {
-            d = data[mid][1];
-            dist = d - y;
-            absDist = Math.abs(dist);
-            interval = Math.round(interval/2);
-            
-            if (absDist < hold || hold === null) {
-                hold = absDist;
-                idx = mid;
-            }
-
-            // if we're right on the pont, get out of here
-            if (dist === 0) { 
-                ret = [idx, data[idx]];
-                break;
-            }
-
-            // if we've narrowed it down to an interval, 
-            // interpolate and get out of here
-            else if (prevInterval === 1) {
-                // to the right, interpolate -1 to here
-                if (dist > 0) {
-                    lowidx = idx - 1;
-                    hiidx = idx;
-                }
-                else {
-                    lowidx = idx;
-                    hiidx = idx + 1;
-                }
-
-                x0 = data[lowidx][0];
-                x1 = data[hiidx][0];
-                y0 = data[lowidx][1];
-                y1 = data[hiidx][1];
-
-                x = x0 + (y - y0) / (y1 - y0) * (x1 - x0);
-
-                ret = [idx, [x, y]];
-                break;
-            }
-            // to the right, go left and reduce
-            else if (dist > 0) {
-                mid -= interval;
-            }
-            // to the left go right and increase
-            else if (dist < 0) {
-                mid += interval;
-            }
-
-            prevInterval = interval;
-        }
-        return ret;
-    }
-
-    // determine initial values for horizontal and vertical overlay lines.
-
-    var line1x = findXValue(userLine1Val, dataSets.national)[1][0];
-    var line2x = findXValue(userLine2Val, dataSets.national)[1][0];;
-    var line3y = userLine1Val;
-    var line4y = userLine2Val;
-
-    // make the plot
-    
-    plot1 = $.jqplot("chart1", [dataSets.national, dataSets.urban, dataSets.rural], {
-        title: "Lorenz Curve",
-        // To control the size of the grid, can set the gridPadding option,
-
-        // gridPadding: {top: 40, bottom: 60, left: 70, right: 50},
-
-        // but must know size of container ahead of time and figure out what paddings
-        // you want to get a square grid.
-        // Alternatively, can use the gridDimensions option.
-        // gridDimensions doesn't get reapplied on replot() because plots
-        // _gridPadding attribute is set the first time it is drawn and it
-        // won't be overwritten.
-
-        gridDimensions: {height: 290, width: 290},
-        seriesColors: ["#4bb2c5", "#c54b62", "#b2c54b"],
-        cursor: {
-            show: false
-        },
-        highlighter: {
-            show: true,
-            showMarker: false,
-            useAxesFormatters: false,
-            formatString: '%d, %.1f'
-        },
-        axesDefaults: {
-            labelRenderer: $.jqplot.CanvasAxisLabelRenderer
-        },
-        seriesDefaults: {
-            showMarker: false
-        },
-        series: [
-            {show: true},
-            {show: false},
-            {show: false}
-        ],
-        axes: {
-            xaxis: {
-                label: '% of Population',
-                pad:0
-            },
-            yaxis: {
-                label: '% of Expenditure',
-                pad: 0
-            }
-        },
-        grid: {
-            drawBorder: false,
-            shadow: false,
-            // background: 'rgba(0,0,0,0)'  works.
-            background: "white"
-        },
-        canvasOverlay: {
-            show: true,
-            objects: [,
-                {line: {
-                    name: "line5",
-                    start: [0,0],
-                    stop: [100,100],
-                    color: "#666666",
-                    shadow: false,
-                    showTooltip: false,
-                    lineWidth: 3
-                }},
-                {horizontalLine: {
-                    name: "line1",
-                    y: userLine1Val,
-                    color: "#d4c35D",
-                    xmin: 0,
-                    xmax: line1x,
-                    shadow: false,
-                    showTooltip: true,
-                    tooltipFormatString: "%nPS=%'d",
-                    showTooltipPrecision: 0.5
-                }},
-                {horizontalLine: {
-                    name: "line2",
-                    y: userLine2Val,
-                    color: "#d4c35D",
-                    xmin: 0,
-                    xmax: line2x,
-                    shadow: false,
-                    showTooltip: true,
-                    tooltipFormatString: "%nPS=%'d",
-                    showTooltipPrecision: 0.5
-                }},
-                {verticalLine: {
-                    name: "line3",
-                    x: line1x,
-                    color: "#d4c35D",
-                    ymin: 0,
-                    ymax: line3y,
-                    shadow: false,
-                    showTooltip: true,
-                    tooltipFormatString: "PCE=%'d",
-                    showTooltipPrecision: 0.5
-                }},
-                {verticalLine: {
-                    name: "line4",
-                    x: line2x,
-                    color: "#d4c35D",
-                    ymin: 0,
-                    ymax: line4y,
-                    shadow: false,
-                    showTooltip: true,
-                    tooltipFormatString: "PCE=%'d",
-                    showTooltipPrecision: 0.5
-                }}
-            ]
-        }
-    });
-
-    // add a date at the bottom.
-
-    var d = new $.jsDate();
-    $("div.jqplot-datestamp").html("Generated on "+d.strftime("%v"));
-
-    // initialize form elements
-    // set these before attaching event handlers.
-
-    $("input.dataSeries-checkbox").attr("checked", false);
-    $("input.dataSeries-checkbox[name=dataSeries_national]").attr("checked", true);
-
-    $("input[type=radio][name=backgroundColor]").attr("checked", false);
-    $("input[type=radio][name=backgroundColor][value=white]").attr("checked", true);
-
-    $("input[type=radio][name=lineWidth]").attr("checked", false);
-    $('input[type=radio][name=lineWidth][value="2.5"]').attr("checked", true);
-
-    $("input[type=text][name=userLine1]").val(userLine1Val);
-    $("input[type=text][name=userLine2]").val(userLine2Val);
-
-    $("input[type=checkbox][name=gridsVertical]").attr("checked", true);
-    $("input[type=checkbox][name=gridsHorizontal]").attr("checked", true);
-    $("input[type=checkbox][name=cutoffLines]").attr("checked", true);
-
-
-    // attach event handlers to form elements
-
-    $("input[type=radio][name=backgroundColor]").change(function(){ 
-        plot1.grid.background = $(this).val();
-        plot1.replot();
-    });
-
-    $("input.dataSeries-checkbox").change(function(){ 
-
-        plot1.series[0].show = false;
-        plot1.series[1].show = false;
-        plot1.series[2].show = false;
-
-        if ($('input[name=dataSeries_national]').get(0).checked === true) {
-            plot1.series[0].show = true;
-        }
-
-        if ($('input[name=dataSeries_urban]').get(0).checked === true) {
-            plot1.series[1].show = true;
-        }
-
-        if ($('input[name=dataSeries_rural]').get(0).checked === true) {
-            plot1.series[2].show = true;
-        }
-
-        // var co = plot1.plugins.canvasOverlay;
-        // var x1max = findXValue($("input[type=text][name=userLine1]").val(), dataSets[val])[1][0];
-        // co.get("line1").options.xmax = co.get("line3").options.x = x1max;
-        // var x2max = findXValue($("input[type=text][name=userLine2]").val(), dataSets[val])[1][0];
-        // co.get("line2").options.xmax = co.get("line4").options.x = x2max;
-
-        plot1.replot();
-    });
-
-    $("input[type=checkbox][name=gridsVertical]").change(function(){
-        plot1.axes.xaxis.tickOptions.showGridline = this.checked;
-        plot1.replot();
-    });
-
-    $("input[type=checkbox][name=gridsHorizontal]").change(function(){
-        plot1.axes.yaxis.tickOptions.showGridline = this.checked;
-        plot1.replot();
-    });
-
-    $("input[type=checkbox][name=cutoffLines]").change(function(){
-        var co = plot1.plugins.canvasOverlay;
-        if (this.checked) {
-            co.get('line1').options.show = true;
-            co.get('line2').options.show = true;
-            co.get('line3').options.show = true;
-            co.get('line4').options.show = true;
-        }
-        else {
-            co.get('line1').options.show = false;
-            co.get('line2').options.show = false;
-            co.get('line3').options.show = false;
-            co.get('line4').options.show = false;
-        }
-        plot1.replot();
-    });
-
-    $("input[type=text][name=userLine1]").keyup(function(){
-        var val = parseFloat($(this).val());
-
-        var co = plot1.plugins.canvasOverlay;
-
-        co.get("line1").options.y = val;
-        co.get("line3").options.ymax = val;
-
-        var xx = findXValue(val, plot1.series[0].data)[1][0];
-        co.get("line1").options.xmax = co.get("line3").options.x = xx;
-
-        plot1.replot();
-    });
-
-    $("input[type=text][name=userLine2]").keyup(function(){
-        var val = parseFloat($(this).val());
-
-        var co = plot1.plugins.canvasOverlay;
-
-        co.get("line2").options.y = val;
-        co.get("line4").options.ymax = val;
-        
-        var xx = findXValue(val, plot1.series[0].data)[1][0];
-        co.get("line2").options.xmax = co.get("line4").options.x = xx;
-
-        plot1.replot();
-    });
-
-    $("input[type=radio][name=lineWidth]").change(function(){
-        var val = parseFloat($(this).val()), shadowOffset; 
-        plot1.series[0].renderer.shapeRenderer.lineWidth = val;
-        plot1.series[0].renderer.shadowRenderer.lineWidth = val;
-        // for thick lines, scale shadow offset.
-        if (val > 2.5) {
-            shadowOffset = 1.25 * (1 + (Math.atan((val/2.5))/0.785398163 - 1)*0.6);
-            // var shadow_offset = this.shadowOffset;
-        }
-        // for skinny lines, don't make such a big shadow.
-        else {
-            shadowOffset = 1.25*Math.atan((val/2.5))/0.785398163;
-        }
-        plot1.series[0].renderer.shadowRenderer.offset = shadowOffset;
-        for (var i=0, l=plot1.plugins.canvasOverlay.objects.length; i<l; i++) {
-            plot1.plugins.canvasOverlay.objects[i].options.lineWidth = val;
-        }
-        plot1.replot();
-    });
-    
-    
-    $("div.chart-container").resizable({delay:20, aspectRatio: true});    
-
-    $("div.chart-container").bind("resize", function(event, ui) {
-        plot1.replot();
-    });
-
-    $(".jqplot-target").mouseleave(function(){ $('.jqplot-canvasOverlay-tooltip, .jqplot-highlighter-tooltip, .jqpot-cursor-tooltip').hide(); });
-});
-
-</script>
-
-
-<!-- End example scripts -->
-
-<!-- Don't touch this! -->
-
-
-    <script class="include" type="text/javascript" src="../jquery.jqplot.min.js"></script>
-    <script type="text/javascript" src="syntaxhighlighter/scripts/shCore.min.js"></script>
-    <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushJScript.min.js"></script>
-    <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushXml.min.js"></script>
-<!-- End Don't touch this! -->
-
-<!-- Additional plugins go here -->>
-  <script class="include" type="text/javascript" src="../plugins/jqplot.logAxisRenderer.min.js"></script>
-  <script class="include" type="text/javascript" src="../plugins/jqplot.cursor.min.js"></script>
-  <script class="include" type="text/javascript" src="../plugins/jqplot.canvasTextRenderer.min.js"></script>
-  <script class="include" type="text/javascript" src="../plugins/jqplot.canvasAxisLabelRenderer.min.js"></script>
-  <script class="include" type="text/javascript" src="../plugins/jqplot.highlighter.min.js"></script>
-  <script class="include" type="text/javascript" src="../plugins/jqplot.canvasOverlay.min.js"></script>
-  <script class="include" type="text/javascript" src="jquery-ui/js/jquery-ui.min.js"></script>
-
-<!-- End additional plugins -->
-
-
-	</div>	
-	<script type="text/javascript" src="example.min.js"></script>
-
-</body>
-
-
-</html>
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/kcp_pdf.html b/wqflask/wqflask/static/packages/jqplot/examples/kcp_pdf.html
deleted file mode 100755
index 161ae911..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/kcp_pdf.html
+++ /dev/null
@@ -1,387 +0,0 @@
-<!DOCTYPE html>
-
-<html>
-<head>
-	
-	<title>Probability Density Function Chart</title>
-
-    <link class="include" rel="stylesheet" type="text/css" href="../jquery.jqplot.min.css" />
-    <link rel="stylesheet" type="text/css" href="examples.min.css" />
-    <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shCoreDefault.min.css" />
-    <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shThemejqPlot.min.css" />
-  
-  <!--[if lt IE 9]><script language="javascript" type="text/javascript" src="../excanvas.js"></script><![endif]-->
-    <script class="include" type="text/javascript" src="../jquery.min.js"></script>
-    
-   
-</head>
-<body>
-    <div class="logo">
-   <div class="nav">
-   <a class="nav" href="../../../index.php"><span>&gt;</span>Home</a>
-   <a class="nav"  href="../../../docs/"><span>&gt;</span>Docs</a>
-   <a class="nav"  href="../../download/"><span>&gt;</span>Download</a>
-   <a class="nav" href="../../../info.php"><span>&gt;</span>Info</a>
-   <a class="nav"  href="../../../donate.php"><span>&gt;</span>Donate</a>
-   </div>
-</div>
-    <div class="example-content">
-
-    <div class="example-nav">
-  <a href="kcp_lorenz.html">Previous</a> <a href="./">Examples</a> <a href="kcp_pyramid.html">Next</a></div>
-
-      
-<!-- Example scripts go here -->
-
-
-  <link class="include" type="text/css" href="jquery-ui/css/smoothness/jquery-ui.min.css" rel="Stylesheet" /> 
-
-  <style type="text/css">
-
-    .chart-container {
-        border: 1px solid darkblue;
-        padding: 30px;
-        width: 500px;
-        height: 400px;
-        
-    }
-
-    #chart1 {
-        width: 96%;
-        height: 96%;
-    }
-
-    .jqplot-datestamp {
-      font-size: 0.8em;
-      color: #777;
-/*      margin-top: 1em;
-      text-align: right;*/
-      font-style: italic;
-      position: absolute;
-      bottom: 15px;
-      right: 15px;
-    }
-
-    td.controls li {
-        list-style-type: none;
-    }
-
-    td.controls ul {
-        margin-top: 0.5em;
-        padding-left: 0.2em;
-    }
-
-    pre.code {
-        margin-top: 45px;
-        clear: both;
-    }
-
-
-  </style>
-
-    <table class="app">
-        <td class="controls">
-
-            <div>
-                Data Series:
-                <ul>
-                    <li><input name="dataSeries" value="national" type="radio" checked />National</li>
-                    <li><input name="dataSeries" value="urban" type="radio" />Urban</li>
-                    <li><input name="dataSeries" value="rural" type="radio" />Rural</li>
-                </ul>
-            </div>
-
-            <div>
-                Background Color:
-                <ul>
-                    <li><input name="backgroundColor" value="white" type="radio" checked />Default</li>
-                    <li><input name="backgroundColor" value="#efefef" type="radio" />Gray</li>
-                </ul>
-            </div>
-
-            <div>
-                Line Width:
-                <ul>
-                    <li><input name="lineWidth" value="2.5" type="radio" checked />Thin</li>
-                    <li><input name="lineWidth" value="5" type="radio" />Thick</li>
-                </ul>
-            </div>
-
-            <div>
-                Grids:
-                <ul>
-                    <li><input name="gridsVertical" value="vertical" type="checkbox" checked />Vertical</li>
-                    <li><input name="gridsHorizontal" value="horizontal" type="checkbox" checked />Horizontal</li>
-                </ul>
-            </div>
-
-            <div>
-                Set lines at:
-                <ul>
-                    <li><input name="userLine1" value="8250" type="text" size="8" /> and </li>
-                    <li><input name="userLine2" value="60000" type="text" size="8" /></li>
-                </ul>
-            </div>
-        </td>
-
-        <td class="chart">
-            <div class="chart-container">    
-                <div id="chart1"></div>
-                <div class="jqplot-datestamp"></div>
-            </div>
-        </td>
-
-    </table>
-
-    <pre class="code brush:js"></pre>
-  
-
- 
-  <script class="code" type="text/javascript">
-$(document).ready(function(){
-    var dataSets = {
-        national: [[1521.3938, 0.03708],[1626.3757, 0.042449],[1738.6018, 0.049646],[1858.5719, 0.060338],[1986.8205, 0.071497],
-        [2123.9187, 0.087044],[2270.4772, 0.104666],[2427.1488, 0.128184],[2594.6313, 0.159819],[2773.6707, 0.199611],
-        [2965.0643, 0.243673],[3169.6651, 0.287224],[3388.384, 0.342159],[3622.1955, 0.415635],[3872.1408, 0.517318],
-        [4139.3332, 0.659341],[4424.963, 0.840113],[4730.3023, 1.074108],[5056.7112, 1.442097],[5405.6431, 1.981591],
-        [5778.6531, 2.7619],[6177.4022, 3.842131],[6603.6665, 5.373085],[7059.3446, 7.749981],[7546.4664, 11.242774],
-        [8067.2013, 15.291262],[8623.869, 19.8475],[9218.9488, 25.015106],[9855.0905, 30.121086],[10535.1293, 35.513309],
-        [11262.0934, 41.587183],[12039.2208, 46.321554],[12869.973, 49.223654],[13758.0502, 51.762768],[14707.4081, 54.47173],
-        [15722.2754, 56.863937],[16807.1724, 57.920473],[17966.9296, 58.642722],[19206.7162, 59.984755],[20532.0529, 61.048963],
-        [21948.8429, 59.669989],[23463.3991, 56.956409],[25082.4581, 54.101304],[26813.238, 53.0051],[28663.448, 51.385158],
-        [30641.3597, 50.165756],[32755.7239, 47.205435],[35015.9867, 43.941876],[37432.2159, 40.609332],[40015.1736, 37.393368],
-        [42776.4074, 34.753172],[45728.1335, 31.843056],[48883.5393, 29.239575],[52256.6796, 26.946508],[55862.5786, 24.54375],
-        [59717.3573, 21.987525],[63838.07, 19.447158],[68243.1267, 16.947396],[72952.1481, 14.562087],[77986.109, 12.487872],
-        [83367.4313, 10.610279],[89120.1733, 9.061827],[95269.7861, 7.759485],[101843.7444, 6.5685],[108871.3294, 5.529717],
-        [116383.8431, 4.605731],[124414.8718, 3.803268],[132999.9458, 3.106561],[142177.421, 2.580555],[151988.1749, 2.127878],
-        [162475.9062, 1.720439],[173687.5023, 1.418638],[185672.5653, 1.173246],[198484.6408, 0.977631],[212180.7957, 0.832246],
-        [226822.0345, 0.720185],[242473.814, 0.624252],[259205.3802, 0.54125],[277091.4846, 0.469102],[296211.7947, 0.415329],
-        [316651.475, 0.374489],[338501.5668, 0.335609],[361859.7555, 0.297025],[386829.3815, 0.261974],[413522.0015, 0.228367],
-        [442056.5084, 0.19707],[472559.9991, 0.17066],[505168.8456, 0.147428],[540027.3147, 0.128476],[577291.1437, 0.112712],
-        [617126.311, 0.097754],[659710.2484, 0.083718],[705233.3359, 0.070908],[753896.9752, 0.061016],[805918.5808, 0.053385],
-        [861529.8645, 0.047077],[920978.5269, 0.041268],[984529.3611, 0.035943],[1052466.484, 0.031318],[1125090.461, 0.027688]],
-
-        urban: [[2918.1368, 0.0059], [3099.059, 0.0071], [3291.1983, 0.0086], [3495.2501, 0.0105], [3711.9529, 0.0127], 
-        [3942.0911, 0.015], [4186.4977, 0.018], [4446.0574, 0.0218], [4721.7095, 0.0262], [5014.4519, 0.0315], 
-        [5325.3441, 0.03890], [5655.5113, 0.0493], [6006.1487, 0.0633], [6378.5253, 0.0833], [6773.9889, 0.1099], 
-        [7193.971, 0.1432], [7639.9917, 0.18610], [8113.6654, 0.2476], [8616.7064, 0.3266], [9150.9356, 0.432399], 
-        [9718.2865, 0.5759], [10320.8128, 0.7497], [10960.6953, 0.9448], [11640.25, 1.1693], [12361.9366, 1.4078], 
-        [13128.3672, 1.6660], [13942.3158, 1.9247], [14806.7287, 2.10529], [15724.7345, 2.291], [16699.656, 2.4804], 
-        [17735.0219, 2.6917], [18834.5796, 2.9825], [20002.3091, 3.350899], [21242.4369, 3.7607], [22559.4426, 4.1855], 
-        [23958.1299, 4.5129], [25443.5105, 4.8198], [27020.9832, 5.254099], [28696.2577, 5.6751], [30475.3976, 6.1493], 
-        [32364.8747, 6.3607], [34371.4652, 6.4803], [36502.4624, 6.7534], [38765.5793, 6.7358], [41169.0072, 6.4996], 
-        [43721.489, 5.9422], [46432.1785, 5.7844], [49310.9281, 5.943099], [52368.1573, 5.9219], [55614.9317, 5.635099], 
-        [59063.062, 5.1036], [62724.914, 4.6486], [66613.7972, 4.2762], [70743.7873, 3.8538], [75129.8328, 3.4799], 
-        [79787.8886, 3.066], [84734.6595, 2.6792], [89988.1253, 2.312799], [95567.3009, 2.0393], [101492.3799, 1.7922], 
-        [107784.9158, 1.5635], [114467.4749, 1.3438], [121564.3462, 1.1612], [129101.2165, 0.992799], [137105.3654, 0.818], 
-        [145605.9093, 0.6722], [154633.333, 0.549], [164220.4481, 0.4517], [174401.955, 0.379299], [185214.7052, 0.3252], 
-        [196698.0321, 0.2772], [208893.1174, 0.23700], [221844.2859, 0.2049], [235598.4142, 0.1818], [250205.285, 0.1607], 
-        [265718.0332, 0.1396], [282192.2909, 0.1211], [299687.9363, 0.1047], [318268.2947, 0.0906], [338000.617, 0.0787], 
-        [358956.683, 0.0681], [381211.6455, 0.0586], [404846.394, 0.0504], [429946.4736, 0.0421], [456602.7336, 0.034], 
-        [484912.1405, 0.02799], [514976.218, 0.0238], [546904.2389, 0.0206], [580811.7657, 0.0179], [616821.5259, 0.0154], 
-        [655064.5111, 0.013], [695677.8688, 0.011], [738809.2149, 0.0093], [784614.6621, 0.0081], [833260.0023, 0.0073], 
-        [884922.1907, 0.0066], [939786.4993, 0.0061], [998052.3412, 0.0056], [1059930.608, 0.0052], [1125645.267, 0.0048]],
-
-        rural: [[1522.3755, 0.005], [1621.4335, 0.005], [1726.937, 0.006], [1839.3056, 0.00699], [1958.9857, 0.009], 
-        [2086.4531, 0.01], [2222.2145, 0.012], [2366.8099, 0.015], [2520.8136, 0.018], [2684.8381, 0.023], [2859.5353, 0.029],
-        [3045.6, 0.036], [3243.7713, 0.043], [3454.8371, 0.05], [3679.6367, 0.06], [3919.0639, 0.074], [4174.0698, 0.092], 
-        [4445.6684, 0.117], [4734.9398, 0.148], [5043.0332, 0.189], [5371.1735, 0.258], [5720.6654, 0.356], 
-        [6092.8986, 0.488], [6489.3516, 0.672], [6911.6011, 0.946], [7361.3256, 1.355], [7840.3135, 1.87399], 
-        [8350.4675, 2.434], [8893.8162, 3.016], [9472.5195, 3.639], [10088.8789, 4.22], [10745.3427, 4.92399], 
-        [11444.5212, 5.652], [12189.194, 6.117], [12982.3225, 6.414], [13827.0569, 6.66], [14726.7567, 6.9099], 
-        [15684.9997, 7.131], [16705.5921, 7.213], [17792.5925, 7.22], [18950.322, 7.263], [20183.3846, 7.2459], 
-        [21496.6782, 6.973], [22895.4161, 6.457], [24385.1837, 5.9110], [25971.888, 5.513], [27661.8365, 5.162],
-        [29461.7179, 4.749], [31378.744, 4.319], [33420.5079, 3.81299], [35595.0905, 3.306], [37911.2052, 2.867],
-        [40378.0258, 2.518], [43005.3584, 2.233], [45803.6014, 1.96099], [48783.9674, 1.692], [51958.2609, 1.411], 
-        [55339.1005, 1.168],[58939.867, 0.9520], [62774.9884, 0.77799], [66859.655, 0.647], [71210.033, 0.538], 
-        [75843.5542, 0.4349], [80778.5711, 0.348], [86034.7015, 0.2789999], [91632.7482, 0.22300], [97595.1423, 0.177], 
-        [103945.4998, 0.148], [110709.0646, 0.128], [117912.6058, 0.112999], [125584.9876, 0.099], [133756.5988, 0.086], 
-        [142459.781, 0.074], [151729.4076, 0.064], [161602.1937, 0.054], [172117.386, 0.046], [183316.6015, 0.038], 
-        [195244.7151, 0.032], [207948.9717, 0.02799], [221479.8735, 0.025], [235890.9734, 0.021], [251240.0159, 0.019], 
-        [267587.7958, 0.017], [284999.0141, 0.015], [303543.4372, 0.013999], [323294.5157, 0.013], [344330.7648, 0.011], 
-        [366735.4418, 0.01], [390598.3214, 0.01], [416013.9199, 0.009], [443083.2701, 0.008], [471913.507, 0.008], 
-        [502620.1526, 0.00699], [535324.8297, 0.006], [570156.9769, 0.006], [607256.1655, 0.005], [646769.3381, 0.005], 
-        [688853.5686, 0.005], [733675.418, 0.004], [781414.486, 0.004]]
-    }
-
-
-    
-    plot1 = $.jqplot("chart1", [dataSets.national], {
-        title: "Probability Density Function",
-        cursor: {
-            show: false
-        },
-        highlighter: {
-            show: true,
-            showMarker: false,
-            useAxesFormatters: false,
-            formatString: '%d, %.1f'
-        },
-        axesDefaults: {
-            labelRenderer: $.jqplot.CanvasAxisLabelRenderer
-        },
-        seriesDefaults: {
-            showMarker: false
-        },
-        axes: {
-            xaxis: {
-                label: 'Per Capita Expenditure (local currency)',
-                renderer: $.jqplot.LogAxisRenderer,
-                pad:0,
-                ticks: [700, 7000, 70000, 700000, {value:1000000, showLabel:false, showMark:false, showGridline:false}],
-                tickOptions: {
-                    formatString: "%d"
-                }
-            },
-            yaxis: {
-                label: 'Population Share (%)',
-                forceTickAt0: true,
-                pad: 0
-            }
-        },
-        grid: {
-            drawBorder: false,
-            shadow: false,
-            // background: 'rgba(0,0,0,0)'  works.
-            background: "white"
-        },
-        canvasOverlay: {
-            show: true,
-            objects: [
-                {verticalLine: {
-                    name: "line1",
-                    x: 8250,
-                    color: "#d4c35D",
-                    yOffset: 0,
-                    shadow: false,
-                    showTooltip: true,
-                    tooltipFormatString: "PCE=%'d",
-                    showTooltipPrecision: 0.5
-                }},
-                {verticalLine: {
-                    name: "line2",
-                    x: 60000,
-                    color: "#d4c35D",
-                    yOffset: 0,
-                    shadow: false,
-                    showTooltip: true,
-                    tooltipFormatString: "PCE=%'d",
-                    showTooltipPrecision: 0.5
-                }}
-            ]
-        }
-    });
-
-    var d = new $.jsDate();
-    $("div.jqplot-datestamp").html("Generated on "+d.strftime("%v"));
-
-    $("input[type=radio][name=backgroundColor]").change(function(){ 
-        plot1.grid.background = $(this).val();
-        plot1.replot();
-    });
-
-    $("input[type=radio][name=dataSeries]").change(function(){ 
-        var val = $(this).val();
-        plot1.series[0].data = dataSets[val];
-
-        switch (val) {
-            case "national":
-                plot1.series[0].renderer.shapeRenderer.strokeStyle = "#4bb2c5";
-                break;
-            case "urban":
-                plot1.series[0].renderer.shapeRenderer.strokeStyle = "#c54b62";
-                break;
-            case "rural":
-                plot1.series[0].renderer.shapeRenderer.strokeStyle = "#b2c54b";
-                break;
-            default:
-                plot1.series[0].renderer.shapeRenderer.strokeStyle = "#4bb2c5";
-                break;
-        }
-        // hack to make sure plot auto computes a new format string if needed.
-        plot1.axes.yaxis.tickOptions.formatString = ''
-        plot1.replot({resetAxes:["yaxis"]});
-    });
-
-    $("input[type=checkbox][name=gridsVertical]").change(function(){
-        plot1.axes.xaxis.tickOptions.showGridline = this.checked;
-        plot1.replot();
-    });
-
-    $("input[type=checkbox][name=gridsHorizontal]").change(function(){
-        plot1.axes.yaxis.tickOptions.showGridline = this.checked;
-        plot1.replot();
-    });
-
-    $("input[type=text][name=userLine1]").keyup(function(){
-        var val = parseFloat($(this).val());
-        plot1.plugins.canvasOverlay.get("line1").options.x = val;
-        plot1.replot();
-    });
-
-    $("input[type=text][name=userLine2]").keyup(function(){
-        var val = parseFloat($(this).val());
-        plot1.plugins.canvasOverlay.get("line2").options.x = val;
-        plot1.replot();
-    });
-
-    $("input[type=radio][name=lineWidth]").change(function(){
-        var val = parseFloat($(this).val()), shadowOffset; 
-        plot1.series[0].renderer.shapeRenderer.lineWidth = val;
-        plot1.series[0].renderer.shadowRenderer.lineWidth = val;
-        // for thick lines, scale shadow offset.
-        if (val > 2.5) {
-            shadowOffset = 1.25 * (1 + (Math.atan((val/2.5))/0.785398163 - 1)*0.6);
-            // var shadow_offset = this.shadowOffset;
-        }
-        // for skinny lines, don't make such a big shadow.
-        else {
-            shadowOffset = 1.25*Math.atan((val/2.5))/0.785398163;
-        }
-        plot1.series[0].renderer.shadowRenderer.offset = shadowOffset;
-        plot1.plugins.canvasOverlay.get("line1").options.lineWidth = val;
-        plot1.plugins.canvasOverlay.get("line2").options.lineWidth = val;
-        plot1.replot();
-    });
-    
-    
-    $("div.chart-container").resizable({delay:20});    
-
-    $("div.chart-container").bind("resize", function(event, ui) {
-        plot1.replot();
-    });
-});
-
-</script>
-
-
-<!-- End example scripts -->
-
-<!-- Don't touch this! -->
-
-
-    <script class="include" type="text/javascript" src="../jquery.jqplot.min.js"></script>
-    <script type="text/javascript" src="syntaxhighlighter/scripts/shCore.min.js"></script>
-    <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushJScript.min.js"></script>
-    <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushXml.min.js"></script>
-<!-- End Don't touch this! -->
-
-<!-- Additional plugins go here -->>
-  <script class="include" type="text/javascript" src="../plugins/jqplot.logAxisRenderer.min.js"></script>
-  <script class="include" type="text/javascript" src="../plugins/jqplot.cursor.min.js"></script>
-  <script class="include" type="text/javascript" src="../plugins/jqplot.canvasTextRenderer.min.js"></script>
-  <script class="include" type="text/javascript" src="../plugins/jqplot.canvasAxisLabelRenderer.min.js"></script>
-  <script class="include" type="text/javascript" src="../plugins/jqplot.highlighter.min.js"></script>
-  <script class="include" type="text/javascript" src="../plugins/jqplot.canvasOverlay.min.js"></script>
-  <script class="include" type="text/javascript" src="jquery-ui/js/jquery-ui.min.js"></script>
-
-<!-- End additional plugins -->
-
-
-	</div>	
-	<script type="text/javascript" src="example.min.js"></script>
-
-</body>
-
-
-</html>
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/kcp_pyramid.html b/wqflask/wqflask/static/packages/jqplot/examples/kcp_pyramid.html
deleted file mode 100755
index ed048869..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/kcp_pyramid.html
+++ /dev/null
@@ -1,590 +0,0 @@
-<!DOCTYPE html>
-
-<html>
-<head>
-	
-	<title>Pyramid Charts</title>
-
-    <link class="include" rel="stylesheet" type="text/css" href="../jquery.jqplot.min.css" />
-    <link rel="stylesheet" type="text/css" href="examples.min.css" />
-    <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shCoreDefault.min.css" />
-    <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shThemejqPlot.min.css" />
-  
-  <!--[if lt IE 9]><script language="javascript" type="text/javascript" src="../excanvas.js"></script><![endif]-->
-    <script class="include" type="text/javascript" src="../jquery.min.js"></script>
-    
-   
-</head>
-<body>
-    <div class="logo">
-   <div class="nav">
-   <a class="nav" href="../../../index.php"><span>&gt;</span>Home</a>
-   <a class="nav"  href="../../../docs/"><span>&gt;</span>Docs</a>
-   <a class="nav"  href="../../download/"><span>&gt;</span>Download</a>
-   <a class="nav" href="../../../info.php"><span>&gt;</span>Info</a>
-   <a class="nav"  href="../../../donate.php"><span>&gt;</span>Donate</a>
-   </div>
-</div>
-    <div class="example-content">
-
-    <div class="example-nav">
-  <a href="kcp_pdf.html">Previous</a> <a href="./">Examples</a> <a href="kcp_pyramid2.html">Next</a></div>
-
-      
-<!-- Example scripts go here -->
-
-
-  <link class="include" type="text/css" href="jquery-ui/css/smoothness/jquery-ui.min.css" rel="Stylesheet" /> 
-
-
-    <style type="text/css">
-        .chart-container {
-            border: 1px solid darkblue;
-            padding: 30px;
-            width: 600px;
-            height: 700px;
-        }
-
-        #chart1 {
-            width: 96%;
-            height: 96%;
-        }
-
-        .jqplot-datestamp {
-          font-size: 0.8em;
-          color: #777;
-    /*      margin-top: 1em;
-          text-align: right;*/
-          font-style: italic;
-          position: absolute;
-          bottom: 15px;
-          right: 15px;
-        }
-
-        td.controls li {
-            list-style-type: none;
-        }
-
-        td.controls ul {
-            margin-top: 0.5em;
-            padding-left: 0.2em;
-        }
-
-        pre.code {
-            margin-top: 45px;
-            clear: both;
-        }
-
-        div.tooltip {
-            border: 1px solid #aaa;
-            margin-right: 10px;
-        }
-
-    </style>
-
-    <table class="app">
-        <td class="controls">
-
-            <div style="margin-bottom: 15px;">
-                Axes:
-                <select name="axisPosition">
-                    <option value="both">Left &amp; Right</option>
-                    <option value = "left">Left</option>
-                    <option value = "right">Right</option>
-                    <option value = "mid">Mid</option>
-                </select>
-            </div>
-
-            <div>
-                Background Color:
-                <ul>
-                    <li><input name="backgroundColor" value="white" type="radio" checked />Default</li>
-                    <li><input name="backgroundColor" value="#efefef" type="radio" />Gray</li>
-                </ul>
-            </div>
-
-            <div>
-                Pyramid Color:
-                <ul>
-                    <li><input name="seriesColor" value="green" type="radio" checked />Green</li>
-                    <li><input name="seriesColor" value="blue" type="radio" />Blue</li>
-                </ul>
-            </div>
-
-            <div>
-                Grids:
-                <ul>
-                    <li><input name="gridsVertical" value="vertical" type="checkbox" checked />Vertical</li>
-                    <li><input name="gridsHorizontal" value="horizontal" type="checkbox" checked />Horizontal</li>
-                    <li><input name="showMinorTicks" value="true" type="checkbox" />Only major</li>
-                    <li><input name="plotBands" value="true" type="checkbox" />Plot Bands</li>
-                </ul>
-            </div>
-
-            <div>
-                <ul>
-                    <li><input name="barPadding" value="2" type="checkbox" checked />Gap between bars</li>
-                    <!-- value for showContour is speed at which to fade lines in/out -->
-                    <li><input name="showContour" value="500" type="checkbox" checked />Comparison Line</li>
-                </ul>
-            </div>
-
-            <div class="tooltip">
-                <table>
-                    <tr>
-                        <td>Age: </td><td><div class="tooltip-item" id="tooltipAge">&nbsp;</div></td>
-                    </tr>
-                    <tr>
-                        <td>Male: </td><td><div class="tooltip-item"  id="tooltipMale">&nbsp;</div></td>
-                    </tr>
-                    <tr>
-                        <td>Female: </td><td><div class="tooltip-item"  id="tooltipFemale">&nbsp;</div></td>
-                    </tr>
-                    <tr>
-                        <td>Ratio: </td><td><div class="tooltip-item"  id="tooltipRatio">&nbsp;</div></td>
-                    </tr>
-                </table>
-            </div>
-        </td>
-
-        <td class="chart">
-            <div class="chart-container"> 
-                <div id="chart1"></div>
-                <div class="jqplot-datestamp"></div>
-            </div>
-        </td>
-
-    </table>
-
-    <pre class="code brush:js"></pre>
-  
-
-
-    <script class="code" type="text/javascript" language="javascript">
-    $(document).ready(function(){
-
-        // the "x" values from the data will go into the ticks array.  
-        // ticks should be strings for this case where we have values like "75+"
-        var ticks = ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "24", "25", "26", "27", "28", "29", "30", "31", "32", "33", "34", "35", "36", "37", "38", "39", "40", "41", "42", "43", "44", "45", "46", "47", "48", "49", "50", "51", "52", "53", "54", "55", "56", "57", "58", "59", "60", "61", "62", "63", "64", "65", "66", "67", "68", "69", "70", "71", "72", "73", "74", "75+", ""];
-
-        // The "y" values of the data are put into seperate series arrays.
-        var male = [0.635441, 1.066868, 0.889602, 0.816883, 1.016458, 0.916705, 0.79569, 0.970443, 1.046451, 1.335686, 0.926962, 0.936646, 0.919405, 0.722027, 0.896342, 0.993397, 0.613794, 0.916921, 0.828748, 0.43487, 0.391652, 0.517303, 0.507104, 0.336168, 0.554176, 0.691826, 0.66553, 0.686232, 0.7097, 0.356915, 0.756028, 0.430155, 0.420597, 0.608589, 0.609348, 0.83607, 0.79871, 0.63388, 0.866719, 0.711042, 1.160429, 0.439268, 0.659694, 0.468406, 0.340002, 0.996662, 0.371047, 0.638918, 0.462334, 0.467053, 0.545638, 0.463275, 0.480992, 0.515747, 0.499415, 0.287639, 0.520332, 0.443779, 0.334986, 0.43161, 0.474405, 0.179186, 0.620127, 0.219074, 0.411669, 0.495684, 0.315231, 0.275056, 0.157341, 0.113926, 0.24991, 0.128113, 0.175297, 0.103093, 0.253292, 0.988836];
-        var female = [0.767078, 0.679554, 1.064493, 0.915063, 0.860792, 0.785728, 0.892471, 0.687886, 1.055313, 0.921839, 0.659624, 1.14516, 0.910735, 1.279864, 0.714669, 0.873929, 0.928453, 0.595752, 1.093534, 0.501142, 0.52829, 0.411606, 0.633309, 0.616121, 0.621781, 0.621598, 0.638378, 0.703724, 0.742589, 0.48523, 0.735727, 0.898816, 0.740614, 0.991105, 1.48909, 1.226996, 1.020624, 0.737742, 0.946817, 0.69129, 0.933744, 0.957472, 0.793112, 0.581121, 0.767528, 1.031739, 1.202133, 0.626926, 0.959522, 0.594303, 1.202145, 0.611707, 0.480779, 0.383338, 0.532876, 0.849878, 0.52453, 0.660183, 0.25419, 0.137567, 0.762322, 0.490294, 0.463194, 0.566921, 0.353006, 0.730591, 0.34669, 0.271638, 0.309785, 0.152756, 0.478111, 0.177234, 0.269302, 0.396318, 0.194934, 1.683044];
-        var male2 = [0.230476, 0.175917, 0.225027, 0.40564, 0.408617, 0.495873, 0.441314, 0.282774, 0.47483, 0.393433, 0.580612, 0.220204, 0.514281, 0.32985, 0.514933, 0.507871, 0.398236, 0.362535, 0.603625, 0.528885, 0.550904, 0.87645, 0.857331, 0.713371, 0.703566, 0.703473, 0.858118, 0.751679, 0.832039, 0.752134, 1.202689, 1.069239, 1.051431, 0.732728, 0.992696, 0.828825, 0.723044, 0.857868, 1.088298, 0.86951, 0.914989, 0.549574, 0.672405, 0.637425, 0.530195, 0.706179, 0.941525, 0.576152, 0.913033, 0.647477, 0.734785, 0.441276, 0.583452, 0.537074, 0.7625, 0.662768, 0.307013, 0.384606, 0.470416, 0.22771, 0.470173, 0.152773, 0.338433, 0.348797, 0.10273, 0.285215, 0.139796, 0.186955, 0.143478, 0.178882, 0.141022, 0.1435, 0.146959, 0.056583, 0.05317, 0.784258];
-        var female2 = [0.203297, 0.298698, 0.452947, 0.783013, 0.50033, 0.53629, 0.451817, 0.69927, 0.741356, 0.545433, 0.559643, 0.334842, 0.443899, 0.437309, 0.584658, 0.451757, 0.509258, 0.73483, 0.640501, 0.698825, 0.803701, 1.018148, 1.504918, 0.701318, 0.781324, 1.792142, 0.968484, 1.3288, 1.059729, 1.079985, 2.245553, 1.080526, 1.122927, 1.512428, 1.296163, 1.047212, 0.988065, 1.239462, 1.521174, 1.05187, 1.253013, 0.983437, 1.181799, 1.090029, 0.718064, 1.578813, 1.121987, 1.010202, 1.438581, 1.051654, 1.656156, 0.732428, 0.719311, 0.742441, 0.623806, 0.643911, 0.579092, 0.472909, 0.683453, 0.39008, 0.437458, 0.464595, 0.385552, 0.520029, 0.240536, 0.457316, 0.339587, 0.203276, 0.282141, 0.19517, 0.283663, 0.12404, 0.147211, 0.141153, 0.177653, 1.193951];
-
-        // Custom color arrays are set up for each series to get the look that is desired.
-        // Two color arrays are created for the default and optional color which the user can pick.
-        var greenColors = ["#526D2C", "#77933C", "#C57225", "#C57225"];
-        var blueColors = ["#3F7492", "#4F9AB8", "#C57225", "#C57225"];
-
-        // To accomodate changing y axis, need to keep track of plot options, so they are defined separately
-        // changing axes will require recreating the plot, so need to keep 
-        // track of state changes.
-        var plotOptions = {
-            // We set up a customized title which acts as labels for the left and right sides of the pyramid.
-            title: '<div style="float:left;width:50%;text-align:center">Male</div><div style="float:right;width:50%;text-align:center">Female</div>',
-
-            // by default, the series will use the green color scheme.
-            seriesColors: greenColors,
-
-            grid: {
-                drawBorder: false,
-                shadow: false,
-                background: 'white',
-                rendererOptions: {
-                    // plotBands is an option of the pyramidGridRenderer.
-                    // it will put banding at starting at a specified value
-                    // along the y axis with an adjustable interval.
-                    plotBands: {
-                        show: false
-                    }
-                }
-            },
-
-            // This makes the effective starting value of the axes 0 instead of 1.
-            // For display, the y axis will use the ticks we supplied.
-            defaultAxisStart: 0,
-            seriesDefaults: {
-                renderer: $.jqplot.PyramidRenderer,
-                rendererOptions: {
-                    barPadding: 2,
-                    offsetBars: true
-                },
-                yaxis: 'yaxis',
-                shadow: false
-            },
-
-            // We have 4 series, the left and right pyramid bars and
-            // the left and rigt overlay lines.
-            series: [
-                // For pyramid plots, the default side is right.
-                // We want to override here to put first set of bars
-                // on left.
-                {
-                    rendererOptions:{
-                        side: 'left',
-                        synchronizeHighlight: 1
-                    }
-                },
-                {
-                    yaxis: 'y2axis',
-                    rendererOptions:{
-                        synchronizeHighlight: 0
-                    }
-                },
-                // Pyramid series are filled bars by default.
-                // The overlay series will be unfilled lines.
-                {
-                    rendererOptions: {
-                        fill: false,
-                        side: 'left'
-                    }
-                },
-                {
-                    yaxis: 'y2axis',
-                    rendererOptions: {
-                        fill: false
-                    }
-                }
-            ],
-
-            // Set up all the y axes, since users are allowed to switch between them.
-            // The only axis that will show is the one that the series are "attached" to.
-            // We need the appropriate options for the others for when the user switches.
-            axes: {
-                xaxis: {
-                    tickOptions: {},
-                    rendererOptions: {
-                        baselineWidth: 2
-                    }
-                },
-                yaxis: {
-                    label: 'Age',
-                    // Use canvas label renderer to get rotated labels.
-                    labelRenderer: $.jqplot.CanvasAxisLabelRenderer,
-                    // include empty tick options, they will be used
-                    // as users set options with plot controls.
-                    tickOptions: {},
-                    tickInterval: 5,
-                    showMinorTicks: true,
-                    ticks: ticks,
-                    rendererOptions: {
-                        category: false,
-                        baselineWidth: 2
-                    }
-                },
-                yMidAxis: {
-                    label: 'Age',
-                    // include empty tick options, they will be used
-                    // as users set options with plot controls.
-                    tickOptions: {},
-                    tickInterval: 5,
-                    showMinorTicks: true,
-                    ticks: ticks,
-                    rendererOptions: {
-                        category: false,
-                        baselineWidth: 2
-                    }
-                },
-                y2axis: {
-                    label: 'Age',
-                    // Use canvas label renderer to get rotated labels.
-                    labelRenderer: $.jqplot.CanvasAxisLabelRenderer,
-                    // include empty tick options, they will be used
-                    // as users set options with plot controls.
-                    tickOptions: {},
-                    tickInterval: 5,
-                    showMinorTicks: true,
-                    ticks: ticks,
-                    rendererOptions: {
-                        category: false,
-                        baselineWidth: 2
-                    }
-                }
-            }
-        };
-
-        // initialize form elements
-        // set these before attaching event handlers.
-
-        $('input[type=checkbox][name=gridsVertical]').attr('checked', true);
-        $('input[type=checkbox][name=gridsHorizontal]').attr('checked', true);
-        $('input[type=checkbox][name=showMinorTicks]').attr('checked', false);
-        $('input[type=checkbox][name=plotBands]').attr('checked', false);
-        $('input[type=checkbox][name=showContour]').attr('checked', true);
-        $('input[type=checkbox][name=barPadding]').attr('checked', true);
-        $('select[name=axisPosition]').val('both');
-        $('input[type=radio][name=backgroundColor]').attr('checked', false);
-        $('input[type=radio][name=backgroundColor][value=white]').attr('checked', true);
-        $('input[type=radio][name=backgroundColor]').attr('checked', false);
-        $('input[type=radio][name=backgroundColor][value=white]').attr('checked', true);
-        $('input[type=radio][name=seriesColor]').attr('checked', false);
-        $('input[type=radio][name=seriesColor][value=green]').attr('checked', true);
-
-        plot1 = $.jqplot('chart1', [male, female, male2, female2], plotOptions);
-
-
-        // After plot creation, check to see if contours should be displayed
-        checkContour();
-
-        //////
-        // The followng functions use verbose css selectors to make
-        // it clear exactly which elements they are binging to/operating on
-        //////
-        
-        //////
-        // Function which checkes if the countour lines checkbox is checked.
-        // If not, hide the contour lines by hiding the canvases they are
-        // drawn on.
-        //////
-        function checkContour() {
-            if (!$('input[type=checkbox][name=showContour]').get(0).checked) {
-                plot1.series[2].canvas._elem.addClass('jqplot-series-hidden');
-                plot1.series[2].canvas._elem.hide();
-                plot1.series[3].canvas._elem.addClass('jqplot-series-hidden');
-                plot1.series[3].canvas._elem.hide();
-            }
-        }    
-
-        $('select[name=axisPosition]').change(function(){ 
-            // this refers to the html element we are binding to.
-            // $(this) is jQuery object on that element.
-
-            switch ($(this).val()) {
-                case 'both':
-                    plotOptions.series[0].yaxis = 'yaxis';
-                    plotOptions.series[1].yaxis = 'y2axis';
-                    plotOptions.series[2].yaxis = 'yaxis';
-                    plotOptions.series[3].yaxis = 'y2axis';
-                    break;
-                case 'left':
-                    plotOptions.series[0].yaxis = 'yaxis';
-                    plotOptions.series[1].yaxis = 'yaxis';
-                    plotOptions.series[2].yaxis = 'yaxis';
-                    plotOptions.series[3].yaxis = 'yaxis';
-                    break;
-                case 'right':
-                    plotOptions.series[0].yaxis = 'y2axis';
-                    plotOptions.series[1].yaxis = 'y2axis';
-                    plotOptions.series[2].yaxis = 'y2axis';
-                    plotOptions.series[3].yaxis = 'y2axis';
-                    break;
-                case 'mid':
-                    plotOptions.series[0].yaxis = 'yMidAxis';
-                    plotOptions.series[1].yaxis = 'yMidAxis';
-                    plotOptions.series[2].yaxis = 'yMidAxis';
-                    plotOptions.series[3].yaxis = 'yMidAxis';
-                    break;
-                default:
-                    break;
-                    
-            }
-
-            plot1.destroy();
-            plot1 = $.jqplot('chart1', [male, female, male2, female2], plotOptions);
-            // Finally, check to see if we need to hide contour lines.
-            checkContour();
-        });
-
-        $('input[type=radio][name=backgroundColor]').change(function(){ 
-            // this refers to the html element we are binding to.
-            // $(this) is jQuery object on that element.
-            plot1.grid.background = $(this).val();
-            plotOptions.grid.background = $(this).val();
-            plot1.replot();
-            // Finally, check to see if we need to hide contour lines.
-            checkContour();
-        });
-
-        $('input[type=radio][name=seriesColor]').change(function(){ 
-            // this refers to the html element we are binding to.
-            // $(this) is jQuery object on that element.
-            if ($(this).val() === 'blue') {
-                // reset highlight colors so they will be recalculated.
-                plot1.series[0].highlightColors = [];
-                plot1.series[1].highlightColors = [];
-                // reset series color to properly calculate highlight color.
-                plot1.series[0].color = blueColors[0];
-                plot1.series[1].color = blueColors[1];
-                // to actually draw a new color, have to set the color on the shaperenderer.
-                plot1.series[0].renderer.shapeRenderer.fillStyle = blueColors[0];
-                plot1.series[1].renderer.shapeRenderer.fillStyle = blueColors[1];
-                // update plot options state.
-                plotOptions.seriesColors = blueColors;
-            }
-            else if ($(this).val() === 'green') {
-                // reset highlight colors so they will be recalculated.
-                plot1.series[0].highlightColors = [];
-                plot1.series[1].highlightColors = [];
-                // reset series color to properly calculate highlight color.
-                plot1.series[0].color = greenColors[0];
-                plot1.series[1].color = greenColors[1];
-                // to actually draw a new color, have to set the color on the shaperenderer.
-                plot1.series[0].renderer.shapeRenderer.fillStyle = greenColors[0];
-                plot1.series[1].renderer.shapeRenderer.fillStyle = greenColors[1];
-                // update plot options state.
-                plotOptions.seriesColors = blueColors;
-            }
-            plot1.replot();
-            // Finally, check to see if we need to hide contour lines.
-            checkContour();
-        });
-
-        $('input[type=checkbox][name=gridsVertical]').change(function(){
-            // this refers to the html element we are binding to.
-            // $(this) is jQuery object on that element.
-            plot1.axes.xaxis.tickOptions.showGridline = this.checked;
-            plotOptions.axes.xaxis.tickOptions.showGridline = this.checked;
-            plot1.replot();
-            // Finally, check to see if we need to hide contour lines.
-            checkContour();
-        });
-
-        $('input[type=checkbox][name=gridsHorizontal]').change(function(){
-            // this refers to the html element we are binding to.
-            // $(this) is jQuery object on that element.
-            plot1.axes.yaxis.tickOptions.showGridline = this.checked;
-            plot1.axes.y2axis.tickOptions.showGridline = this.checked;
-            plot1.axes.yMidAxis.tickOptions.showGridline = this.checked;
-            plotOptions.axes.yaxis.tickOptions.showGridline = this.checked;
-            plotOptions.axes.y2axis.tickOptions.showGridline = this.checked;
-            plotOptions.axes.yMidAxis.tickOptions.showGridline = this.checked;
-            plot1.replot();
-            // Finally, check to see if we need to hide contour lines.
-            checkContour();
-        });
-
-        $('input[type=checkbox][name=showMinorTicks]').change(function(){
-            // this refers to the html element we are binding to.
-            // $(this) is jQuery object on that element.
-            plot1.axes.yaxis.showMinorTicks = !this.checked;
-            plot1.axes.y2axis.showMinorTicks = !this.checked;
-            plot1.axes.yMidAxis.showMinorTicks = !this.checked;
-            plotOptions.axes.yaxis.showMinorTicks = !this.checked;
-            plotOptions.axes.y2axis.showMinorTicks = !this.checked;
-            plotOptions.axes.yMidAxis.showMinorTicks = !this.checked;
-            plot1.replot();
-            // Finally, check to see if we need to hide contour lines.
-            checkContour();
-        });
-
-        $('input[type=checkbox][name=plotBands]').change(function(){
-            // this refers to the html element we are binding to.
-            // $(this) is jQuery object on that element.
-            plot1.grid.plotBands.show = this.checked;
-            plotOptions.grid.rendererOptions.plotBands.show = this.checked;
-            plot1.replot();
-            // Finally, check to see if we need to hide contour lines.
-            checkContour();
-        });
-
-        $('input[type=checkbox][name=showContour]').change(function(){
-            // this refers to the html element we are binding to.
-            // $(this) is jQuery object on that element.
-            var speed = $(this).val();
-            if (this.checked) {
-                plot1.series[2].canvas._elem.removeClass('jqplot-series-hidden');
-                plot1.series[2].canvas._elem.fadeIn(speed);
-                plot1.series[3].canvas._elem.removeClass('jqplot-series-hidden');
-                plot1.series[3].canvas._elem.fadeIn(speed);
-            }
-            else {
-                plot1.series[2].canvas._elem.addClass('jqplot-series-hidden');
-                plot1.series[2].canvas._elem.fadeOut(speed);
-                plot1.series[3].canvas._elem.addClass('jqplot-series-hidden');
-                plot1.series[3].canvas._elem.fadeOut(speed);
-            }
-        });
-
-        $('input[type=checkbox][name=barPadding]').change(function(){
-            // this refers to the html element we are binding to.
-            // $(this) is jQuery object on that element.
-            if (this.checked) {
-                var val = parseFloat($(this).val());
-                plot1.series[0].barPadding = val;
-                plot1.series[1].barPadding = val;
-                plotOptions.seriesDefaults.rendererOptions.barPadding = val;
-            }
-            else {
-                plot1.series[0].barPadding = 0;
-                plot1.series[1].barPadding = 0;
-                plotOptions.seriesDefaults.rendererOptions.barPadding = 0;
-            }
-            plot1.replot();
-            // Finally, check to see if we need to hide contour lines.
-            checkContour();
-        });
-
-        // bind to the data highlighting event to make custom tooltip:
-        $('.jqplot-target').bind('jqplotDataHighlight', function(evt, seriesIndex, pointIndex, data) {
-            // Here, assume first series is male poulation and second series is female population.
-            // Adjust series indices as appropriate.
-            var malePopulation = Math.abs(plot1.series[0].data[pointIndex][1]);
-            var femalePopulation = Math.abs(plot1.series[1].data[pointIndex][1]);
-            var ratio = femalePopulation / malePopulation * 100;
-
-            $('#tooltipMale').stop(true, true).fadeIn(250).html(malePopulation.toPrecision(4));
-            $('#tooltipFemale').stop(true, true).fadeIn(250).html(femalePopulation.toPrecision(4));
-            $('#tooltipRatio').stop(true, true).fadeIn(250).html(ratio.toPrecision(4));
-
-            // Since we don't know which axis is rendererd and acive with out a little extra work,
-            // just use the supplied ticks array to get the age label.
-            $('#tooltipAge').stop(true, true).fadeIn(250).html(ticks[pointIndex]);
-        });
-
-        // bind to the data highlighting event to make custom tooltip:
-        $('.jqplot-target').bind('jqplotDataUnhighlight', function(evt, seriesIndex, pointIndex, data) {
-            // clear out all the tooltips.
-            $('.tooltip-item').stop(true, true).fadeOut(200).html('');
-        });
-
-        // add a date at the bottom.
-
-        var d = new $.jsDate();
-        $('div.jqplot-datestamp').html('Generated on '+d.strftime('%v'));
-    
-        $("div.chart-container").resizable({delay:20});    
-
-        $("div.chart-container").bind("resize", function(event, ui) {
-            plot1.replot();
-        });
-
-    });
-    </script>
-
-
-<!-- End example scripts -->
-
-<!-- Don't touch this! -->
-
-
-    <script class="include" type="text/javascript" src="../jquery.jqplot.min.js"></script>
-    <script type="text/javascript" src="syntaxhighlighter/scripts/shCore.min.js"></script>
-    <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushJScript.min.js"></script>
-    <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushXml.min.js"></script>
-<!-- End Don't touch this! -->
-
-<!-- Additional plugins go here -->
-
-    <script class="include" type="text/javascript" src="../plugins/jqplot.categoryAxisRenderer.min.js"></script>
-
-    <!-- load the pyramidAxis and Grid renderers in production.  pyramidRenderer will try to load via ajax if not present, but that is not optimal and depends on paths being set. -->
-    <script class="include" type="text/javascript" src="../plugins/jqplot.pyramidAxisRenderer.min.js"></script>
-    <script class="include" type="text/javascript" src="../plugins/jqplot.pyramidGridRenderer.min.js"></script> 
-
-    <script class="include" type="text/javascript" src="../plugins/jqplot.pyramidRenderer.min.js"></script>
-    <script class="include" type="text/javascript" src="../plugins/jqplot.canvasTextRenderer.min.js"></script>
-    <script class="include" type="text/javascript" src="../plugins/jqplot.canvasAxisLabelRenderer.min.js"></script>
-    <script class="include" type="text/javascript" src="jquery-ui/js/jquery-ui.min.js"></script>
-
-<!-- End additional plugins -->
-
-
-	</div>	
-	<script type="text/javascript" src="example.min.js"></script>
-
-</body>
-
-
-</html>
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/kcp_pyramid2.html b/wqflask/wqflask/static/packages/jqplot/examples/kcp_pyramid2.html
deleted file mode 100755
index 3714fd0c..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/kcp_pyramid2.html
+++ /dev/null
@@ -1,578 +0,0 @@
-<!DOCTYPE html>
-
-<html>
-<head>
-	
-	<title>Pyramid Charts 2</title>
-
-    <link class="include" rel="stylesheet" type="text/css" href="../jquery.jqplot.min.css" />
-    <link rel="stylesheet" type="text/css" href="examples.min.css" />
-    <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shCoreDefault.min.css" />
-    <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shThemejqPlot.min.css" />
-  
-  <!--[if lt IE 9]><script language="javascript" type="text/javascript" src="../excanvas.js"></script><![endif]-->
-    <script class="include" type="text/javascript" src="../jquery.min.js"></script>
-    
-   
-</head>
-<body>
-    <div class="logo">
-   <div class="nav">
-   <a class="nav" href="../../../index.php"><span>&gt;</span>Home</a>
-   <a class="nav"  href="../../../docs/"><span>&gt;</span>Docs</a>
-   <a class="nav"  href="../../download/"><span>&gt;</span>Download</a>
-   <a class="nav" href="../../../info.php"><span>&gt;</span>Info</a>
-   <a class="nav"  href="../../../donate.php"><span>&gt;</span>Donate</a>
-   </div>
-</div>
-    <div class="example-content">
-
-    <div class="example-nav">
-  <a href="kcp_pyramid.html">Previous</a> <a href="./">Examples</a> <a href="kcp_pyramid_by_age.html">Next</a></div>
-
-      
-<!-- Example scripts go here -->
-
-  <link class="include" type="text/css" href="jquery-ui/css/smoothness/jquery-ui.min.css" rel="Stylesheet" /> 
-
-    <style type="text/css">
-        .chart-container {
-            border: 1px solid darkblue;
-            padding: 30px;
-            width: 600px;
-            height: 700px;
-        }
-
-        #chart1 {
-            width: 96%;
-            height: 96%;
-        }
-
-        .jqplot-datestamp {
-          font-size: 0.8em;
-          color: #777;
-    /*      margin-top: 1em;
-          text-align: right;*/
-          font-style: italic;
-          position: absolute;
-          bottom: 15px;
-          right: 15px;
-        }
-
-        td.controls li {
-            list-style-type: none;
-        }
-
-        td.controls ul {
-            margin-top: 0.5em;
-            padding-left: 0.2em;
-        }
-
-        pre.code {
-            margin-top: 45px;
-            clear: both;
-        }
-
-    </style>
-
-    <table class="app">
-        <td class="controls">
-
-            <div style="margin-bottom: 15px;">
-                Axes:
-                <select name="axisPosition">
-                    <option value="both">Left &amp; Right</option>
-                    <option value = "left">Left</option>
-                    <option value = "right">Right</option>
-                    <option value = "mid">Mid</option>
-                </select>
-            </div>
-
-            <div>
-                Background Color:
-                <ul>
-                    <li><input name="backgroundColor" value="white" type="radio" checked />Default</li>
-                    <li><input name="backgroundColor" value="#efefef" type="radio" />Gray</li>
-                </ul>
-            </div>
-
-            <div>
-                Pyramid Color:
-                <ul>
-                    <li><input name="seriesColor" value="green" type="radio" checked />Green</li>
-                    <li><input name="seriesColor" value="blue" type="radio" />Blue</li>
-                </ul>
-            </div>
-
-            <div>
-                Grids:
-                <ul>
-                    <li><input name="gridsVertical" value="vertical" type="checkbox" checked />Vertical</li>
-                    <li><input name="gridsHorizontal" value="horizontal" type="checkbox" checked />Horizontal</li>
-                    <li><input name="showMinorTicks" value="true" type="checkbox" />Only major</li>
-                    <li><input name="plotBands" value="true" type="checkbox" />Plot Bands</li>
-                </ul>
-            </div>
-
-            <div>
-                <ul>
-                    <li><input name="barPadding" value="4" type="checkbox" checked />Gap between bars</li>
-                    <!-- value for showContour is speed at which to fade lines in/out -->
-                    <li><input name="showContour" value="500" type="checkbox" />Comparison Line</li>
-                </ul>
-            </div>
-
-            <div class="tooltip">
-                <table>
-                    <tr>
-                        <td>Age: </td><td><div class="tooltip-item" id="tooltipAge">&nbsp;</div></td>
-                    </tr>
-                    <tr>
-                        <td>Male: </td><td><div class="tooltip-item"  id="tooltipMale">&nbsp;</div></td>
-                    </tr>
-                    <tr>
-                        <td>Female: </td><td><div class="tooltip-item"  id="tooltipFemale">&nbsp;</div></td>
-                    </tr>
-                    <tr>
-                        <td>Ratio: </td><td><div class="tooltip-item"  id="tooltipRatio">&nbsp;</div></td>
-                    </tr>
-                </table>
-            </div>
-        </td>
-
-        <td class="chart">
-            <div class="chart-container"> 
-                <div id="chart1"></div>
-                <div class="jqplot-datestamp"></div>
-            </div>
-        </td>
-
-    </table>
-
-    <pre class="code brush:js"></pre>
-  
-
-
-    <script class="code" type="text/javascript" language="javascript">
-    $(document).ready(function(){
-
-        // the "x" values from the data will go into the ticks array.  
-        // ticks should be strings for this case where we have values like "75+"
-        var ticks = ["0-4", "5-9", "10-14", "15-19", "20-24", "25-29", "30-34", "35-39", "40-44", "45-49", "50-54", "55-59", "60-64", "65-69", "70-74", "75+"];
-
-        // The "y" values of the data are put into seperate series arrays.
-        var male = [4.425251, 5.064975, 4.401382, 3.787731, 2.306403, 3.110203, 2.824716, 3.846422, 3.067799, 2.936013, 2.505067, 2.018346, 1.90446, 1.357237, 0.909704, 0.988836];
-        var female = [4.28698, 4.343237, 4.710053, 3.99281, 2.811107, 3.191518, 4.855351, 4.62347, 4.032976, 4.414623, 3.210845, 2.426347, 2.635736, 1.811459, 1.515899, 1.683044];
-        var male2 = [1.445677, 2.088224, 2.159879, 2.401152, 3.701622, 3.897444, 5.048783, 4.367545, 3.304588, 3.784367, 3.059088, 2.052513, 1.412907, 0.934326, 0.541234, 0.784258];
-        var female2 =[2.238284, 2.974165, 2.360351, 3.03517, 4.80941, 6.229139, 7.257596, 5.847782, 5.226342, 6.201237, 4.474141, 2.769444, 2.048169, 1.47749, 0.87372, 1.193951];
-
-        // Custom color arrays are set up for each series to get the look that is desired.
-        // Two color arrays are created for the default and optional color which the user can pick.
-        var greenColors = ["#526D2C", "#77933C", "#C57225", "#C57225"];
-        var blueColors = ["#3F7492", "#4F9AB8", "#C57225", "#C57225"];
-
-        // To accomodate changing y axis, need to keep track of plot options.
-        // changing axes will require recreating the plot, so need to keep 
-        // track of state changes.
-        var plotOptions = {
-            // We set up a customized title which acts as labels for the left and right sides of the pyramid.
-            title: '<div style="float:left;width:50%;text-align:center">Male</div><div style="float:right;width:50%;text-align:center">Female</div>',
-
-            // by default, the series will use the green color scheme.
-            seriesColors: greenColors,
-
-            grid: {
-                drawBorder: false,
-                shadow: false,
-                background: "white",
-                rendererOptions: {
-                    // plotBands is an option of the pyramidGridRenderer.
-                    // it will put banding at starting at a specified value
-                    // along the y axis with an adjustable interval.
-                    plotBands: {
-                        show: false,
-                        interval: 2
-                    }
-                },
-            },
-
-            // This makes the effective starting value of the axes 0 instead of 1.
-            // For display, the y axis will use the ticks we supplied.
-            defaultAxisStart: 0,
-            seriesDefaults: {
-                renderer: $.jqplot.PyramidRenderer,
-                rendererOptions: {
-                    barPadding: 4
-                },
-                yaxis: "yaxis",
-                shadow: false
-            },
-
-            // We have 4 series, the left and right pyramid bars and
-            // the left and rigt overlay lines.
-            series: [
-                // For pyramid plots, the default side is right.
-                // We want to override here to put first set of bars
-                // on left.
-                {
-                    rendererOptions:{
-                        side: 'left',
-                        synchronizeHighlight: 1
-                    }
-                },
-                {
-                    yaxis: "y2axis",
-                    rendererOptions:{
-                        synchronizeHighlight: 0
-                    }
-                },
-                // Pyramid series are filled bars by default.
-                // The overlay series will be unfilled lines.
-                {
-                    rendererOptions: {
-                        fill: false,
-                        side: "left"
-                    }
-                },
-                {
-                    yaxis: "y2axis",
-                    rendererOptions: {
-                        fill: false
-                    }
-                }
-            ],
-
-            // Set up all the y axes, since users are allowed to switch between them.
-            // The only axis that will show is the one that the series are "attached" to.
-            // We need the appropriate options for the others for when the user switches.
-            axes: {
-                xaxis: {
-                    tickOptions: {},
-                    rendererOptions: {
-                        baselineWidth: 2
-                    }
-                },
-                yaxis: {
-                    label: "Age",
-                    // Use canvas label renderer to get rotated labels.
-                    labelRenderer: $.jqplot.CanvasAxisLabelRenderer,
-                    // include empty tick options, they will be used
-                    // as users set options with plot controls.
-                    tickOptions: {},
-                    showMinorTicks: true,
-                    ticks: ticks,
-                    rendererOptions: {
-                        category: true,
-                        baselineWidth: 2
-                    }
-                },
-                yMidAxis: {
-                    label: "Age",
-                    // include empty tick options, they will be used
-                    // as users set options with plot controls.
-                    tickOptions: {},
-                    showMinorTicks: true,
-                    ticks: ticks,
-                    rendererOptions: {
-                        category: true,
-                        baselineWidth: 2
-                    }
-                },
-                y2axis: {
-                    label: "Age",
-                    // Use canvas label renderer to get rotated labels.
-                    labelRenderer: $.jqplot.CanvasAxisLabelRenderer,
-                    // include empty tick options, they will be used
-                    // as users set options with plot controls.
-                    tickOptions: {},
-                    showMinorTicks: true,
-                    ticks: ticks,
-                    rendererOptions: {
-                        category: true,
-                        baselineWidth: 2
-                    }
-                }
-            }
-        };
-
-        // initialize form elements
-        // set these before attaching event handlers.
-
-        $("input[type=checkbox][name=gridsVertical]").attr("checked", true);
-        $("input[type=checkbox][name=gridsHorizontal]").attr("checked", true);
-        $("input[type=checkbox][name=showMinorTicks]").attr("checked", false);
-        $("input[type=checkbox][name=plotBands]").attr("checked", false);
-        $("input[type=checkbox][name=showContour]").attr("checked", true);
-        $("input[type=checkbox][name=barPadding]").attr("checked", true);
-        $("select[name=axisPosition]").val("both");
-        $("input[type=radio][name=backgroundColor]").attr("checked", false);
-        $("input[type=radio][name=backgroundColor][value=white]").attr("checked", true);
-        $("input[type=radio][name=backgroundColor]").attr("checked", false);
-        $("input[type=radio][name=backgroundColor][value=white]").attr("checked", true);
-        $("input[type=radio][name=seriesColor]").attr("checked", false);
-        $("input[type=radio][name=seriesColor][value=green]").attr("checked", true);
-
-        plot1 = $.jqplot("chart1", [male, female, male2, female2], plotOptions);
-
-        // After plot creation, check to see if contours should be displayed
-        checkContour();
-
-        //////
-        // The followng functions use verbose css selectors to make
-        // it clear exactly which elements they are binging to/operating on
-        //////
-        
-        //////
-        // Function which checkes if the countour lines checkbox is checked.
-        // If not, hide the contour lines.
-        //////
-        function checkContour() {
-            if (!$("input[type=checkbox][name=showContour]").get(0).checked) {
-                plot1.series[2].canvas._elem.addClass("jqplot-series-hidden");
-                plot1.series[2].canvas._elem.hide();
-                plot1.series[3].canvas._elem.addClass("jqplot-series-hidden");
-                plot1.series[3].canvas._elem.hide();
-            }
-        }    
-
-        $("select[name=axisPosition]").change(function(){ 
-            // this refers to the html element we are binding to.
-            // $(this) is jQuery object on that element.
-
-            switch ($(this).val()) {
-                case "both":
-                    plotOptions.series[0].yaxis = "yaxis";
-                    plotOptions.series[1].yaxis = "y2axis";
-                    plotOptions.series[2].yaxis = "yaxis";
-                    plotOptions.series[3].yaxis = "y2axis";
-                    break;
-                case "left":
-                    plotOptions.series[0].yaxis = "yaxis";
-                    plotOptions.series[1].yaxis = "yaxis";
-                    plotOptions.series[2].yaxis = "yaxis";
-                    plotOptions.series[3].yaxis = "yaxis";
-                    break;
-                case "right":
-                    plotOptions.series[0].yaxis = "y2axis";
-                    plotOptions.series[1].yaxis = "y2axis";
-                    plotOptions.series[2].yaxis = "y2axis";
-                    plotOptions.series[3].yaxis = "y2axis";
-                    break;
-                case "mid":
-                    plotOptions.series[0].yaxis = "yMidAxis";
-                    plotOptions.series[1].yaxis = "yMidAxis";
-                    plotOptions.series[2].yaxis = "yMidAxis";
-                    plotOptions.series[3].yaxis = "yMidAxis";
-                    break;
-                default:
-                    break;
-                    
-            }
-
-            plot1.destroy();
-            plot1 = $.jqplot("chart1", [male, female, male2, female2], plotOptions);
-            // Finally, check to see if we need to hide contour lines.
-            checkContour();
-        });
-
-        $("input[type=radio][name=backgroundColor]").change(function(){ 
-            // this refers to the html element we are binding to.
-            // $(this) is jQuery object on that element.
-            plot1.grid.background = $(this).val();
-            plotOptions.grid.background = $(this).val();
-            plot1.replot();
-            // Finally, check to see if we need to hide contour lines.
-            checkContour();
-        });
-
-        $("input[type=radio][name=seriesColor]").change(function(){ 
-            // this refers to the html element we are binding to.
-            // $(this) is jQuery object on that element.
-            if ($(this).val() === "blue") {
-                // reset highlight colors so they will be recalculated.
-                plot1.series[0].highlightColors = [];
-                plot1.series[1].highlightColors = [];
-                // reset series color to properly calculate highlight color.
-                plot1.series[0].color = blueColors[0];
-                plot1.series[1].color = blueColors[1];
-                // to actually draw a new color, have to set the color on the shaperenderer.
-                plot1.series[0].renderer.shapeRenderer.fillStyle = blueColors[0];
-                plot1.series[1].renderer.shapeRenderer.fillStyle = blueColors[1];
-                // update plot options state.
-                plotOptions.seriesColors = blueColors;
-            }
-            else if ($(this).val() === "green") {
-                // reset highlight colors so they will be recalculated.
-                plot1.series[0].highlightColors = [];
-                plot1.series[1].highlightColors = [];
-                // reset series color to properly calculate highlight color.
-                plot1.series[0].color = greenColors[0];
-                plot1.series[1].color = greenColors[1];
-                // to actually draw a new color, have to set the color on the shaperenderer.
-                plot1.series[0].renderer.shapeRenderer.fillStyle = greenColors[0];
-                plot1.series[1].renderer.shapeRenderer.fillStyle = greenColors[1];
-                // update plot options state.
-                plotOptions.seriesColors = blueColors;
-            }
-            plot1.replot();
-            // Finally, check to see if we need to hide contour lines.
-            checkContour();
-        });
-
-
-        $("input[type=checkbox][name=gridsVertical]").change(function(){
-            // this refers to the html element we are binding to.
-            // $(this) is jQuery object on that element.
-            plot1.axes.xaxis.tickOptions.showGridline = this.checked;
-            plotOptions.axes.xaxis.tickOptions.showGridline = this.checked;
-            plot1.replot();
-            // Finally, check to see if we need to hide contour lines.
-            checkContour();
-        });
-
-        $("input[type=checkbox][name=gridsHorizontal]").change(function(){
-            // this refers to the html element we are binding to.
-            // $(this) is jQuery object on that element.
-            plot1.axes.yaxis.tickOptions.showGridline = this.checked;
-            plot1.axes.y2axis.tickOptions.showGridline = this.checked;
-            plot1.axes.yMidAxis.tickOptions.showGridline = this.checked;
-            plotOptions.axes.yaxis.tickOptions.showGridline = this.checked;
-            plotOptions.axes.y2axis.tickOptions.showGridline = this.checked;
-            plotOptions.axes.yMidAxis.tickOptions.showGridline = this.checked;
-            plot1.replot();
-            // Finally, check to see if we need to hide contour lines.
-            checkContour();
-        });
-
-        $("input[type=checkbox][name=showMinorTicks]").change(function(){
-            // this refers to the html element we are binding to.
-            // $(this) is jQuery object on that element.
-            plot1.axes.yaxis.showMinorTicks = !this.checked;
-            plot1.axes.y2axis.showMinorTicks = !this.checked;
-            plot1.axes.yMidAxis.showMinorTicks = !this.checked;
-            plotOptions.axes.yaxis.showMinorTicks = !this.checked;
-            plotOptions.axes.y2axis.showMinorTicks = !this.checked;
-            plotOptions.axes.yMidAxis.showMinorTicks = !this.checked;
-            plot1.replot();
-            // Finally, check to see if we need to hide contour lines.
-            checkContour();
-        });
-
-        $("input[type=checkbox][name=plotBands]").change(function(){
-            // this refers to the html element we are binding to.
-            // $(this) is jQuery object on that element.
-            plot1.grid.plotBands.show = this.checked;
-            plotOptions.grid.rendererOptions.plotBands.show = this.checked;
-            plot1.replot();
-            // Finally, check to see if we need to hide contour lines.
-            checkContour();
-        });
-
-        $("input[type=checkbox][name=showContour]").change(function(){
-            // this refers to the html element we are binding to.
-            // $(this) is jQuery object on that element.
-            var speed = $(this).val();
-            if (this.checked) {
-                plot1.series[2].canvas._elem.removeClass("jqplot-series-hidden");
-                plot1.series[2].canvas._elem.fadeIn(speed);
-                plot1.series[3].canvas._elem.removeClass("jqplot-series-hidden");
-                plot1.series[3].canvas._elem.fadeIn(speed);
-            }
-            else {
-                plot1.series[2].canvas._elem.addClass("jqplot-series-hidden");
-                plot1.series[2].canvas._elem.fadeOut(speed);
-                plot1.series[3].canvas._elem.addClass("jqplot-series-hidden");
-                plot1.series[3].canvas._elem.fadeOut(speed);
-            }
-        });
-
-        $("input[type=checkbox][name=barPadding]").change(function(){
-            // this refers to the html element we are binding to.
-            // $(this) is jQuery object on that element.
-            if (this.checked) {
-                var val = parseFloat($(this).val());
-                plot1.series[0].barPadding = val;
-                plot1.series[1].barPadding = val;
-                plotOptions.seriesDefaults.rendererOptions.barPadding = val;
-            }
-            else {
-                plot1.series[0].barPadding = 0;
-                plot1.series[1].barPadding = 0;
-                plotOptions.seriesDefaults.rendererOptions.barPadding = 0;
-            }
-            plot1.replot();
-            // Finally, check to see if we need to hide contour lines.
-            checkContour();
-        });
-
-        // bind to the data highlighting event to make custom tooltip:
-        $(".jqplot-target").bind("jqplotDataHighlight", function(evt, seriesIndex, pointIndex, data) {
-            // Here, assume first series is male poulation and second series is female population.
-            // Adjust series indices as appropriate.
-            var malePopulation = Math.abs(plot1.series[0].data[pointIndex][1]);
-            var femalePopulation = Math.abs(plot1.series[1].data[pointIndex][1]);
-            var ratio = femalePopulation / malePopulation * 100;
-
-            $("#tooltipMale").stop(true, true).fadeIn(250).html(malePopulation.toPrecision(4));
-            $("#tooltipFemale").stop(true, true).fadeIn(250).html(femalePopulation.toPrecision(4));
-            $("#tooltipRatio").stop(true, true).fadeIn(250).html(ratio.toPrecision(4));
-
-            // Since we don't know which axis is rendererd and acive with out a little extra work,
-            // just use the supplied ticks array to get the age label.
-            $("#tooltipAge").stop(true, true).fadeIn(250).html(ticks[pointIndex]);
-        });
-
-        // bind to the data highlighting event to make custom tooltip:
-        $(".jqplot-target").bind("jqplotDataUnhighlight", function(evt, seriesIndex, pointIndex, data) {
-            // clear out all the tooltips.
-            $(".tooltip-item").stop(true, true).fadeOut(200).html('');
-        });
-
-        // add a date at the bottom.
-
-        var d = new $.jsDate();
-        $("div.jqplot-datestamp").html("Generated on "+d.strftime("%v"));
-    
-        $("div.chart-container").resizable({delay:20});    
-
-        $("div.chart-container").bind("resize", function(event, ui) {
-            plot1.replot();
-        });
-
-    });
-    </script>
-
-<!-- End example scripts -->
-
-<!-- Don't touch this! -->
-
-
-    <script class="include" type="text/javascript" src="../jquery.jqplot.min.js"></script>
-    <script type="text/javascript" src="syntaxhighlighter/scripts/shCore.min.js"></script>
-    <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushJScript.min.js"></script>
-    <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushXml.min.js"></script>
-<!-- End Don't touch this! -->
-
-<!-- Additional plugins go here -->
-
-    <script class="include" type="text/javascript" src="../plugins/jqplot.categoryAxisRenderer.min.js"></script>
-
-    <!-- load the pyramidAxis and Grid renderers in production.  pyramidRenderer will try to load via ajax if not present, but that is not optimal and depends on paths being set. -->
-    <script class="include" type="text/javascript" src="../plugins/jqplot.pyramidAxisRenderer.min.js"></script>
-    <script class="include" type="text/javascript" src="../plugins/jqplot.pyramidGridRenderer.min.js"></script> 
-
-    <script class="include" type="text/javascript" src="../plugins/jqplot.pyramidRenderer.min.js"></script>
-    <script class="include" type="text/javascript" src="../plugins/jqplot.canvasTextRenderer.min.js"></script>
-    <script class="include" type="text/javascript" src="../plugins/jqplot.canvasAxisLabelRenderer.min.js"></script>
-    <script class="include" type="text/javascript" src="jquery-ui/js/jquery-ui.min.js"></script>
-
-<!-- End additional plugins -->
-
-
-	</div>	
-	<script type="text/javascript" src="example.min.js"></script>
-
-</body>
-
-
-</html>
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/kcp_pyramid_by_age.html b/wqflask/wqflask/static/packages/jqplot/examples/kcp_pyramid_by_age.html
deleted file mode 100755
index 7fbf935e..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/kcp_pyramid_by_age.html
+++ /dev/null
@@ -1,859 +0,0 @@
-<!DOCTYPE html>
-
-<html>
-<head>
-    
-    <title>Pyramid Chart By Age</title>
-
-    <link class="include" rel="stylesheet" type="text/css" href="../jquery.jqplot.min.css" />
-    <link rel="stylesheet" type="text/css" href="examples.min.css" />
-    <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shCoreDefault.min.css" />
-    <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shThemejqPlot.min.css" />
-  
-  <!--[if lt IE 9]><script language="javascript" type="text/javascript" src="../excanvas.js"></script><![endif]-->
-    <script class="include" type="text/javascript" src="../jquery.min.js"></script>
-    
-     <link class="include" type="text/css" href="jquery-ui/css/smoothness/jquery-ui.min.css" rel="Stylesheet" /> 
-    <link href="colorpicker/jquery.colorpicker.css" rel="stylesheet" type="text/css"/>
-
-    <style type="text/css">
-
-        html {
-            width: 100%;
-            height: 100%;
-        }
-        
-        body {
-            width: 98%;
-            height: 97%;
-            margin: 6px;
-        }
-
-        .quintile-outer-container {
-            width: 97%;
-            height: 97%;
-            margin: auto;
-        }
-
-        .jqplot-chart {
-/*            width: 400px;
-            height: 400px;*/
-        }
-
-        .quintile-toolbar .ui-icon {
-            float: right;
-            margin: 3px 5px;
-        }
-
-        table.stats-table td, table.highlighted-stats-table td {
-            background-color: rgb(230, 230, 230);
-            padding: 0.5em;
-        }
-
-        col.label {
-            width: 14em;
-        }
-
-        col.value {
-            width: 7em;
-        }
-
-        td.quintile-value {
-            width: 7em;
-            text-align: right;
-        }
-
-        table.stats-table td.tooltip-header, table.highlighted-stats-table td.tooltip-header {
-            background-color: rgb(200, 200, 200);
-        }
-
-        table.stats-table, table.highlighted-stats-table, td.contour-cell {
-            font-size: 0.7em;
-        }
-
-        td.contour-cell {
-            height: 1.5em;
-            padding-left: 20px;
-            padding-bottom: 1.5em;
-        }
-
-        table.highlighted-stats-table {
-            margin-top: 15px;
-        }
-
-        div.stats-cell div.input {
-            font-size: 0.7em;
-            margin-top: 1.5em;
-        }
-
-        div.content-container {
-            padding-left: 230px;   /* LC width */
-            padding-right: 300px;  /* RC width */
-            height: 100%;
-        }
-
-        div.content-container .column {
-            position: relative;
-            float: left;
-        }
-
-        div.controls {
-            width: 170px;          /* LC width */
-            right: 230px;          /* LC width */
-            padding-left: 30px;
-            padding-right: 30px;
-            margin-left: -100%;
-            margin-top: 30px;
-        }
-
-        div.chart-cell {
-            width: 100%;
-            height: 100%;
-        }
-
-        div.stats-cell {
-            width: 270px;          /* RC width */
-            margin-right: -300px;  /* RC width */
-            padding-right: 30px;
-            margin-top: 30px;
-        }
-
-        div.controls, div.controls select {
-            font-size: 0.8em;
-        }
-
-        div.controls li {
-            list-style-type: none;
-        }
-
-        div.controls ul {
-            margin-top: 0.5em;
-            padding-left: 0.2em;
-        }
-
-        div.overlay-chart-container {
-            display: none;
-            z-index: 11;
-            position: fixed;
-            width: 800px;
-            left: 50%;
-            margin-left: -400px;
-            background-color: white;
-        }
-
-        div.overlay-chart-container div.ui-icon {
-            float: right;
-            margin: 3px 5px;
-        }
-
-        div.overlay-shadow {
-            display: none;
-            z-index: 10;
-            background-color: rgba(0, 0, 0, 0.8);
-            position: fixed;
-            top: 0px;
-            left: 0px;
-            width: 100%;
-            height: 100%;
-        }
-
-        div.ui-colorpicker div.ui-dialog-titlebar {
-            padding: 0.1em 0.3em;
-        }
-
-        input.color {
-            display: none;
-        }
-
-        div.colorpicker-container span {
-            padding: 3px;
-        }
-
-        div.quintile-content {
-            width: 100%;
-            height: 100%;
-        }
-
-
-        @media print {
-            div.stats-cell {
-                vertical-align: top;
-                padding-top: 35px;
-            }
-
-            table.stats-table, table.stats-table td {
-                 color: #aaaaaa;
-                 border: 1px solid #bbbbbb;
-                 border-collapse: collapse;
-            }
-
-            table.stats-table tr {
-                font-family: Verdana,Arial,sans-serif;
-                /*font-size: 0.7em;*/
-            }
-        }
-
-    </style>
-
-   
-</head>
-<body>
-
-<!-- Example scripts go here -->
-
- 
-    <div class="overlay-shadow"></div>
-
-    <div class="overlay-chart-container ui-corner-all">
-        <div class="overlay-chart-container-header ui-widget-header ui-corner-top">Right click the image to Copy or Save As...<div class="ui-icon ui-icon-closethick"></div></div>
-        <div class="overlay-chart-container-content ui-corner-bottom"></div>
-    </div>
-
-    <div class="quintile-outer-container ui-widget ui-corner-all">
-        <div class="quintile-toolbar ui-widget-header  ui-corner-top">
-            <span class="quintile-title">Income Level:</span>
-        </div>
-        <div class="quintile-content ui-widget-content ui-corner-bottom">
-
-            <div class="content-container">
-
-
-            <div class="chart-cell column">
-                <div id="agesChart" class="jqplot-chart"></div>
-            </div>
-
-            <div class="controls column">
-                <table>
-                    <tr>
-                        <td>
-                            Axes:
-                        </td>
-                        <td>
-                            <select name="axisPosition">
-                                <option value="both">Left &amp; Right</option>
-                                <option value = "left">Left</option>
-                                <option value = "right">Right</option>
-                                <option value = "mid">Mid</option>
-                            </select>
-                        </td>
-                    </tr>
-                    <tr>
-                        <td>
-                            Colors:
-                        </td>
-                        <td>
-                            <ul>
-                                <li><input class="color" type="color" id="colorMale" /> Male</li>
-                                <li><input class="color" type="color" id="colorFemale" /> Female</li>
-                                <li><input class="color" type="color" id="colorBackground"  /> Background</li>
-                                <li><input class="color" type="color" id="colorPlotBands" /> Plot Bands</li>
-                            </ul>
-                        </td>
-                    </tr>
-                    <tr>
-                        <td>
-                            Grids:
-                        </td>
-                        <td>
-                            <ul>
-                                <li><input name="gridsVertical" value="vertical" type="checkbox" />Vertical</li>
-                                <li><input name="gridsHorizontal" value="horizontal" type="checkbox" />Horizontal</li>
-                                <li><input name="showMinorTicks" value="true" type="checkbox" checked />Only major</li>
-                                <li><input name="plotBands" value="true" type="checkbox" checked />Plot Bands</li>
-                            </ul>
-                        </td>
-                    </tr>
-                    <tr>
-                        <td colspan="2">
-                            <ul>
-                                <li><input name="barPadding" value="2" type="checkbox" checked />Gap between bars</li>
-                                <!-- value for showContour is speed at which to fade lines in/out -->
-                                <li><input name="showContour" value="500" type="checkbox" />Comparison Line</li>
-                            </ul>
-                        </td>
-                    </tr>
-                </table>
-            </div>
-
-            <div class="stats-cell column">
-                <table class="stats-table">
-                <colgroup>
-                    <col class="label">
-                    <col class="value">
-                </colgroup>
-                <tbody>
-                    <tr>
-                        <td class="ui-corner-tl">Mean Age:</td>
-                        <td class="quintile-value summary-meanAge ui-corner-tr"></td>
-                    </tr>
-                    <tr>
-                        <td>Sex Ratio:</td>
-                        <td class="quintile-value summary-sexRatio"></td>
-                    </tr>
-                    <tr>
-                        <td>Age Dependency Ratio:</td>
-                        <td class="quintile-value summary-ageDependencyRatio"></td>
-                    </tr>
-                    <tr>
-                        <td>Population, Total:</td>
-                        <td class="quintile-value summary-populationTotal"></td>
-                    </tr>
-                    <tr>
-                        <td>Population, Male:</td>
-                        <td class="quintile-value summary-populationMale"></td>
-                    </tr>
-                    <tr>
-                        <td class="ui-corner-bl">Population, Female:</td>
-                        <td class="quintile-value summary-populationFemale ui-corner-br"></td>
-                    </tr>
-                </tbody>
-                </table>
-                <table class="highlighted-stats-table">
-                <colgroup>
-                    <col class="label">
-                    <col class="value">
-                </colgroup>
-                <tbody>
-                    <tr class="tooltip-header">
-                        <td class="tooltip-header ui-corner-top" colspan="2">Highlighted Age: <span class="tooltip-item tooltipAge">&nbsp;</span></td>
-                    </tr>
-                    <tr>
-                        <td>Population, Male: </td>
-                        <td class="quintile-value"><span class="tooltip-item tooltipMale">&nbsp;</span></td>
-                    </tr>
-                    <tr>
-                        <td>Population, Female: </td>
-                        <td class="quintile-value"><span class="tooltip-item tooltipFemale">&nbsp;</span></td>
-                    </tr>
-                    <tr>
-                        <td class="ui-corner-bl">Sex Ratio: </td>
-                        <td class="quintile-value ui-corner-br"><span class="tooltip-item tooltipRatio">&nbsp;</span></td>
-                    </tr>
-                <tbody>
-                </table>
-            </div>
-
-            </div>
-
-        </div>
-    </div> 
-  
-
-
-    <script class="code" type="text/javascript">
-    $(document).ready(function(){
-
-        // if browser supports canvas, show additional toolbar icons
-        if (!$.jqplot.use_excanvas) {
-            $('div.quintile-toolbar').append('<div class="ui-icon ui-icon-image"></div><div class="ui-icon ui-icon-print"></div>');
-        }
-
-        // for this demo, all data is same for each quintile.
-        // could do something like this to get the index of the quintile.
-        // <!-- var quintileIndex = parseInt(< ? php echo $_GET["qidx"]; ? >); -->
-
-        var male;
-        var female;
-        var summaryTable;
-        var sexRatios;
-        jsondata = [];
-
-        $.ajax({
-            type: "GET",
-            dataType: 'json',
-            async: false,
-            url: "ages.json",
-            contentType: "application/json",
-            success: function (retdata) {
-                // array of arrays of data for each quintile
-                // each quintile array has data for following:
-                //  0: summary table
-                //  1: male data
-                //  2: female data
-                //  3: ratios
-                jsondata = retdata;
-            },
-            error: function (xhr) { console.log("ERROR: ", xhr.statusText) }
-        });
-
-
-        // the "x" values from the data will go into the ticks array.  
-        // ticks should be strings for this case where we have values like "75+"
-        var ticks = jsondata[4];
-
-        $('td.summary-meanAge').each(function(index) {
-            $(this).html($.jqplot.sprintf('%5.2f', jsondata[0][3]));
-        });
-
-        $('td.summary-sexRatio').each(function(index) {
-            $(this).html($.jqplot.sprintf('%5.2f', jsondata[3][0]));
-        });
-
-        $('td.summary-ageDependencyRatio').each(function(index) {
-            $(this).html($.jqplot.sprintf('%5.2f', jsondata[0][6]));
-        });
-
-        $('td.summary-populationTotal').each(function(index) {
-            $(this).html($.jqplot.sprintf("%'d", jsondata[0][0]));
-        });
-
-        $('td.summary-populationMale').each(function(index) {
-            $(this).html($.jqplot.sprintf("%'d", jsondata[0][1]));
-        });
-
-        $('td.summary-populationFemale').each(function(index) {
-            $(this).html($.jqplot.sprintf("%'d", jsondata[0][2]));
-        });
-        
-        // These two variables should be removed outside of the jqplot.com example environment.
-        $.jqplot._noToImageButton = true;
-        $.jqplot._noCodeBlock = true;
-
-        // Custom color arrays are set up for each series to get the look that is desired.
-        // Two color arrays are created for the default and optional color which the user can pick.
-        var greenColors = ["#526D2C", "#77933C", "#C57225", "#C57225"];
-        var blueColors = ["#3F7492", "#4F9AB8", "#C57225", "#C57225"];
-
-        // To accomodate changing y axis, need to keep track of plot options.
-        // changing axes will require recreating the plot, so need to keep 
-        // track of state changes.
-        var plotOptions = {
-            // We set up a customized title which acts as labels for the left and right sides of the pyramid.
-            title: {
-                text: '<span style="margin-left:25%;">Male</span><span style="margin-left:33%;">Female</span>',
-                textAlign: 'left'
-            },
-            // by default, the series will use the green color scheme.
-            seriesColors: greenColors,
-
-            grid: {
-                drawBorder: false,
-                shadow: false,
-                background: "#ffffff",
-                rendererOptions: {
-                    // plotBands is an option of the pyramidGridRenderer.
-                    // it will put banding at starting at a specified value
-                    // along the y axis with an adjustable interval.
-                    plotBands: {
-                        show: true,
-                        interval: 10,
-                        color: 'rgb(245, 235, 215)'
-                    }
-                }
-            },
-
-            // This makes the effective starting value of the axes 0 instead of 1.
-            // For display, the y axis will use the ticks we supplied.
-            defaultAxisStart: 0,
-            seriesDefaults: {
-                renderer: $.jqplot.PyramidRenderer,
-                rendererOptions: {
-                    barPadding: 1.5,
-                    offsetBars: true
-                },
-                yaxis: "yaxis",
-                shadow: false
-            },
-
-            // We have 4 series, the left and right pyramid bars and
-            // the left and rigt overlay lines.
-            series: [
-                // For pyramid plots, the default side is right.
-                // We want to override here to put first set of bars
-                // on left.
-                {
-                    rendererOptions:{
-                        side: "left",
-                        synchronizeHighlight: 1
-                    }
-                },
-                {
-                    yaxis: "y2axis",
-                    rendererOptions: {
-                        synchronizeHighlight: 0
-                    }
-                },
-                {
-                    rendererOptions: {
-                        fill: false,
-                        side: 'left'
-                    }
-                },
-                {
-                    yaxis: 'y2axis',
-                    rendererOptions: {
-                        fill: false
-                    }
-                }
-            ],
-            axesDefaults: {
-                tickOptions: {
-                    showGridline: false
-                },
-                pad: 0,
-                rendererOptions: {
-                    baselineWidth: 2
-                }
-            },
-
-            // Set up all the y axes, since users are allowed to switch between them.
-            // The only axis that will show is the one that the series are "attached" to.
-            // We need the appropriate options for the others for when the user switches.
-            axes: {
-                xaxis: {
-                    tickOptions: {
-                        formatter: $.jqplot.PercentTickFormatter,
-                        formatString: '%.1f%%'
-                    }
-                },
-                yaxis: {
-                    label: "Age",
-                    // Use canvas label renderer to get rotated labels.
-                    labelRenderer: $.jqplot.CanvasAxisLabelRenderer,
-                    // include empty tick options, they will be used
-                    // as users set options with plot controls.
-                    tickOptions: {},
-                    showMinorTicks: false,
-                    tickInterval: 5,
-                    ticks: ticks,
-                    rendererOptions: {
-                        tickSpacingFactor: 15,
-                        category: false
-                    }
-                },
-                yMidAxis: {
-                    label: "Age",
-                    // include empty tick options, they will be used
-                    // as users set options with plot controls.
-                    tickOptions: {},
-                    showMinorTicks: false,
-                    tickInterval: 5,
-                    ticks: ticks,
-                    rendererOptions: {
-                        tickSpacingFactor: 15,
-                        category: false
-                    }
-                },
-                y2axis: {
-                    label: "Age",
-                    // Use canvas label renderer to get rotated labels.
-                    labelRenderer: $.jqplot.CanvasAxisLabelRenderer,
-                    // include empty tick options, they will be used
-                    // as users set options with plot controls.
-                    tickOptions: {},
-                    showMinorTicks: false,
-                    tickInterval: 5,
-                    ticks: ticks,
-                    rendererOptions: {
-                        tickSpacingFactor: 15,
-                        category: false
-                    }
-                }
-            }
-        };
-
-        // resize the chart container to fill the space
-        $('#agesChart').height($('div.chart-cell').height()*0.96);
-        $('#agesChart').width($('div.chart-cell').width()*0.97);
-
-        // $('#agesChart').jqplot([jsondata[1], jsondata[2]], plotOptions);
-        $.jqplot.config.addDomReference = true;
-        var plot1 = $.jqplot('agesChart', [jsondata[1], jsondata[2]], plotOptions);
-
-        $(window).resize (function(event, ui) {
-            // pass in resetAxes: true option to get rid of old ticks and axis properties
-            // which should be recomputed based on new plot size.
-            $('#agesChart').height($('div.chart-cell').height()*0.96);
-            $('#agesChart').width($('div.chart-cell').width()*0.97);
-            plot1.replot( { resetAxes: true } );
-        });
-
-        // initialize form elements
-        // set these before attaching event handlers.
-
-        $("input[type=checkbox][name=gridsVertical]").attr("checked", false);
-        $("input[type=checkbox][name=gridsHorizontal]").attr("checked", false);
-        $("input[type=checkbox][name=showMinorTicks]").attr("checked", true);
-        $("input[type=checkbox][name=plotBands]").attr("checked", true);
-        $("input[type=checkbox][name=showContour]").attr("checked", true);
-        $("input[type=checkbox][name=barPadding]").attr("checked", true);
-        $("select[name=axisPosition]").val("both");
-
-        //////
-        // The followng functions use verbose css selectors to make
-        // it clear exactly which elements they are binging to/operating on
-        //////
-
-        $("select[name=axisPosition]").change(function(){ 
-            // this refers to the html element we are binding to.
-            // $(this) is jQuery object on that element.
-
-            var opts = {series:[{}, {}, {}, {}]};
-
-            switch ($(this).val()) {
-                case "both":
-                    opts.series[0].yaxis = "yaxis";
-                    opts.series[1].yaxis = "y2axis";
-                    opts.series[2].yaxis = "yaxis";
-                    opts.series[3].yaxis = "y2axis";
-                    break;
-                case "left":
-                    opts.series[0].yaxis = "yaxis";
-                    opts.series[1].yaxis = "yaxis";
-                    opts.series[2].yaxis = "yaxis";
-                    opts.series[3].yaxis = "yaxis";
-                    break;
-                case "right":
-                    opts.series[0].yaxis = "y2axis";
-                    opts.series[1].yaxis = "y2axis";
-                    opts.series[2].yaxis = "y2axis";
-                    opts.series[3].yaxis = "y2axis";
-                    break;
-                case "mid":
-                    opts.series[0].yaxis = "yMidAxis";
-                    opts.series[1].yaxis = "yMidAxis";
-                    opts.series[2].yaxis = "yMidAxis";
-                    opts.series[3].yaxis = "yMidAxis";
-                    break;
-                default:
-                    break;
-                    
-            }
-
-            plot1.replot(opts); 
-        });
-
-        // bind to the data highlighting event to make custom tooltip:
-        $(".jqplot-target").each(function(index){
-            $(this).bind("jqplotDataHighlight", function(evt, seriesIndex, pointIndex, data) {
-                // Here, assume first series is male poulation and second series is female population.
-                // Adjust series indices as appropriate.
-                var plot = $(this).data('jqplot');
-                var malePopulation = Math.abs(plot.series[0].data[pointIndex][1]) * jsondata[0][1];
-                var femalePopulation = Math.abs(plot.series[1].data[pointIndex][1]) * jsondata[0][2];
-                var malePopulation = jsondata[1][pointIndex] * jsondata[0][1];
-                var femalePopulation = jsondata[2][pointIndex] * jsondata[0][2];
-                // var ratio = femalePopulation / malePopulation * 100;
-                var ratio = jsondata[3][pointIndex];
-
-                $('.tooltipMale').stop(true, true).fadeIn(350).html($.jqplot.sprintf("%'d", malePopulation));
-                $('.tooltipFemale').stop(true, true).fadeIn(350).html($.jqplot.sprintf("%'d", femalePopulation));
-                $('.tooltipRatio').stop(true, true).fadeIn(350).html($.jqplot.sprintf('%5.2f', ratio));
-
-                // Since we don't know which axis is rendererd and acive with out a little extra work,
-                // just use the supplied ticks array to get the age label.
-                $('.tooltipAge').stop(true, true).fadeIn(350).html(ticks[pointIndex]);
-            });
-        });
-
-        // bind to the data highlighting event to make custom tooltip:
-        $(".jqplot-target").each(function() {
-            $(this).bind("jqplotDataUnhighlight", function(evt, seriesIndex, pointIndex, data) {
-                // clear out all the tooltips.
-                $(".tooltip-item").fadeOut(250);
-            });
-        });
-
-        $('.ui-icon-print').click(function(){
-            $(this).parent().next().print();
-        });
-
-
-        $("input[type=checkbox][name=gridsVertical]").change(function(){
-            // this refers to the html element we are binding to.
-            // $(this) is jQuery object on that element.
-            var opts = {axes: {xaxis: {tickOptions: {showGridline: this.checked}}}};
-            plot1.replot(opts);
-        });
-
-
-        $("input[type=checkbox][name=gridsHorizontal]").change(function(){
-            // this refers to the html element we are binding to.
-            // $(this) is jQuery object on that element.
-            var opts = {
-                axes: {
-                    yaxis: {
-                        tickOptions: {showGridline: this.checked}
-                    },
-                    y2axis: {
-                        tickOptions: {showGridline: this.checked}
-                    },
-                    yMidAxis: {
-                        tickOptions: {showGridline: this.checked}
-                    }
-                }
-            };
-            plot1.replot(opts);
-        });
-
-        $("input[type=checkbox][name=plotBands]").change(function(){
-            // this refers to the html element we are binding to.
-            // $(this) is jQuery object on that element.
-            var opts = {grid:{ rendererOptions: {plotBands: { show: this.checked}}}};
-            plot1.replot(opts);
-        });
-
-        ////
-        // To-Do
-        //
-        // initialize form elements on reload.
-        // figure out what overlay line would be.
-        // have to adjust ticks to do show minor.
-        // make like kcp_pyramid.php
-        ////
-        $("input[type=checkbox][name=showMinorTicks]").change(function(){
-            // this refers to the html element we are binding to.
-            // $(this) is jQuery object on that element.
-            var opts = {
-                axes: {
-                    yaxis: {
-                        showMinorTicks: !this.checked
-                    },
-                    y2axis: {
-                        showMinorTicks: !this.checked
-                    },
-                    yMidAxis: {
-                        showMinorTicks: !this.checked
-                    }
-                }
-            };
-            plot1.replot(opts);
-        });
-
-        $("input[type=checkbox][name=barPadding]").change(function(){
-            // this refers to the html element we are binding to.
-            // $(this) is jQuery object on that element.
-            if (this.checked) {
-                var val = parseFloat($(this).val());
-                var opts = {
-                    seriesDefaults: {
-                        rendererOptions: {
-                            barPadding: val
-                        }
-                    }
-                };
-            }
-            else {
-                var opts = {
-                    seriesDefaults: {
-                        rendererOptions: {
-                            barPadding: 0
-                        }
-                    }
-                };
-            }
-            plot1.replot(opts);
-        });
-
-
-        $('.ui-icon-image').each(function() {
-            $(this).bind('click', function(evt) {
-                var chart = $(this).closest('div.quintile-outer-container').find('div.jqplot-target');
-                var imgelem = chart.jqplotToImageElem();
-                var div = $('div.overlay-chart-container-content');
-                div.empty();
-                div.append(imgelem);
-                $('div.overlay-shadow').fadeIn(600);
-                div.parent().fadeIn(1000);
-                div = null;
-            });
-        });
-
-        $('div.overlay-chart-container-header div.ui-icon-closethick').click(function(){
-            var div = $('div.overlay-chart-container-content');
-            div.parent().fadeOut(600);
-            $('div.overlay-shadow').fadeOut(1000);
-        });
-
-        function applyColors () {
-            var opts = {series:[{}, {}], grid:{rendererOptions:{plotBands:{}}}};
-            opts.series[0].color = $('#colorMale').data('colorpicker').color.toCSS();
-            opts.series[1].color = $('#colorFemale').data('colorpicker').color.toCSS();
-            opts.grid.background = $('#colorBackground').data('colorpicker').color.toCSS();
-            opts.grid.rendererOptions.plotBands.color = $('#colorPlotBands').data('colorpicker').color.toCSS();
-
-            plot1.replot(opts);
-
-        };
-
-        // $('#colorMale').val(plot1.series[0].color);
-
-        $('#colorMale').colorpicker({
-            showOn: 'button',
-            showHeader: true,
-            showSwatches: true,
-            buttonColorize: true,
-            buttonImageOnly: true,
-            parts: 'full',
-            color: plot1.series[0].color,
-            onClose: applyColors
-
-        });
-
-        $('#colorFemale').colorpicker({
-            showOn: 'button',
-            showHeader: true,
-            showSwatches: true,
-            buttonColorize: true,
-            buttonImageOnly: true,
-            parts: 'full',
-            color: plot1.series[1].color,
-            onClose: applyColors
-
-        });
-
-        $('#colorBackground').colorpicker({
-            showOn: 'button',
-            showHeader: true,
-            showSwatches: true,
-            buttonColorize: true,
-            buttonImageOnly: true,
-            parts: 'full',
-            color: plot1.grid.background,
-            onClose: applyColors
-
-        });
-
-        $('#colorPlotBands').colorpicker({
-            showOn: 'button',
-            showHeader: true,
-            showSwatches: true,
-            buttonColorize: true,
-            buttonImageOnly: true,
-            parts: 'full',
-            color: plot1.grid.plotBands.color,
-            onClose: applyColors
-
-        });
-
-    });
-    </script>
-
-
-    <script class="include" type="text/javascript" src="../jquery.jqplot.min.js"></script>
-    <script type="text/javascript" src="syntaxhighlighter/scripts/shCore.min.js"></script>
-    <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushJScript.min.js"></script>
-    <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushXml.min.js"></script>
-
-
-    <script class="include" type="text/javascript" src="../plugins/jqplot.categoryAxisRenderer.min.js"></script>
-
-    <!-- load the pyramidAxis and Grid renderers in production.  pyramidRenderer will try to load via ajax if not present, but that is not optimal and depends on paths being set. -->
-    <script class="include" type="text/javascript" src="../plugins/jqplot.pyramidAxisRenderer.min.js"></script>
-    <script class="include" type="text/javascript" src="../plugins/jqplot.pyramidGridRenderer.min.js"></script> 
-
-    <script class="include" type="text/javascript" src="../plugins/jqplot.pyramidRenderer.min.js"></script>
-    <script class="include" type="text/javascript" src="../plugins/jqplot.canvasTextRenderer.min.js"></script>
-    <script class="include" type="text/javascript" src="../plugins/jqplot.canvasAxisLabelRenderer.min.js"></script>
-    <script class="include" type="text/javascript" src="../plugins/jqplot.json2.min.js"></script>
-    <script class="include" type="text/javascript" src="jquery-ui/js/jquery-ui.min.js"></script>
-    <script class="include" type="text/javascript" src="kcp.print.js"></script>
-
-    <script src="colorpicker/jquery.colorpicker.js"></script>
- 
-    <script type="text/javascript" src="example.min.js"></script>
-
-</body>
-
-
-</html>
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/kcp_pyramid_by_age.php b/wqflask/wqflask/static/packages/jqplot/examples/kcp_pyramid_by_age.php
deleted file mode 100755
index 6e6bb3ba..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/kcp_pyramid_by_age.php
+++ /dev/null
@@ -1,862 +0,0 @@
-<!DOCTYPE html>
-
-<html>
-<head>
-<?php 
-    $title = "Pyramid Chart By Age";
-?>
-    
-    <title><?php print $title ?></title>
-
-    <link class="include" rel="stylesheet" type="text/css" href="../jquery.jqplot.css" />
-    <link rel="stylesheet" type="text/css" href="examples.css" />
-    <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shCoreDefault.min.css" />
-    <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shThemejqPlot.min.css" />
-  
-  <!--[if lt IE 9]><script language="javascript" type="text/javascript" src="../excanvas.js"></script><![endif]-->
-    <script class="include" type="text/javascript" src="../jquery.min.js"></script>
-    
-     <link class="include" type="text/css" href="jquery-ui/css/smoothness/jquery-ui.min.css" rel="Stylesheet" /> 
-    <link href="colorpicker/jquery.colorpicker.css" rel="stylesheet" type="text/css"/>
-
-    <style type="text/css">
-
-        html {
-            width: 100%;
-            height: 100%;
-        }
-        
-        body {
-            width: 98%;
-            height: 97%;
-            margin: 6px;
-        }
-
-        .quintile-outer-container {
-            width: 97%;
-            height: 97%;
-            margin: auto;
-        }
-
-        .jqplot-chart {
-/*            width: 400px;
-            height: 400px;*/
-        }
-
-        .quintile-toolbar .ui-icon {
-            float: right;
-            margin: 3px 5px;
-        }
-
-        table.stats-table td, table.highlighted-stats-table td {
-            background-color: rgb(230, 230, 230);
-            padding: 0.5em;
-        }
-
-        col.label {
-            width: 14em;
-        }
-
-        col.value {
-            width: 7em;
-        }
-
-        td.quintile-value {
-            width: 7em;
-            text-align: right;
-        }
-
-        table.stats-table td.tooltip-header, table.highlighted-stats-table td.tooltip-header {
-            background-color: rgb(200, 200, 200);
-        }
-
-        table.stats-table, table.highlighted-stats-table, td.contour-cell {
-            font-size: 0.7em;
-        }
-
-        td.contour-cell {
-            height: 1.5em;
-            padding-left: 20px;
-            padding-bottom: 1.5em;
-        }
-
-        table.highlighted-stats-table {
-            margin-top: 15px;
-        }
-
-        div.stats-cell div.input {
-            font-size: 0.7em;
-            margin-top: 1.5em;
-        }
-
-        div.content-container {
-            padding-left: 230px;   /* LC width */
-            padding-right: 300px;  /* RC width */
-            height: 100%;
-        }
-
-        div.content-container .column {
-            position: relative;
-            float: left;
-        }
-
-        div.controls {
-            width: 170px;          /* LC width */
-            right: 230px;          /* LC width */
-            padding-left: 30px;
-            padding-right: 30px;
-            margin-left: -100%;
-            margin-top: 30px;
-        }
-
-        div.chart-cell {
-            width: 100%;
-            height: 100%;
-        }
-
-        div.stats-cell {
-            width: 270px;          /* RC width */
-            margin-right: -300px;  /* RC width */
-            padding-right: 30px;
-            margin-top: 30px;
-        }
-
-        div.controls, div.controls select {
-            font-size: 0.8em;
-        }
-
-        div.controls li {
-            list-style-type: none;
-        }
-
-        div.controls ul {
-            margin-top: 0.5em;
-            padding-left: 0.2em;
-        }
-
-        div.overlay-chart-container {
-            display: none;
-            z-index: 11;
-            position: fixed;
-            width: 800px;
-            left: 50%;
-            margin-left: -400px;
-            background-color: white;
-        }
-
-        div.overlay-chart-container div.ui-icon {
-            float: right;
-            margin: 3px 5px;
-        }
-
-        div.overlay-shadow {
-            display: none;
-            z-index: 10;
-            background-color: rgba(0, 0, 0, 0.8);
-            position: fixed;
-            top: 0px;
-            left: 0px;
-            width: 100%;
-            height: 100%;
-        }
-
-        div.ui-colorpicker div.ui-dialog-titlebar {
-            padding: 0.1em 0.3em;
-        }
-
-        input.color {
-            display: none;
-        }
-
-        div.colorpicker-container span {
-            padding: 3px;
-        }
-
-        div.quintile-content {
-            width: 100%;
-            height: 100%;
-        }
-
-
-        @media print {
-            div.stats-cell {
-                vertical-align: top;
-                padding-top: 35px;
-            }
-
-            table.stats-table, table.stats-table td {
-                 color: #aaaaaa;
-                 border: 1px solid #bbbbbb;
-                 border-collapse: collapse;
-            }
-
-            table.stats-table tr {
-                font-family: Verdana,Arial,sans-serif;
-                /*font-size: 0.7em;*/
-            }
-        }
-
-    </style>
-
-   
-</head>
-<body>
-
-<!-- Example scripts go here -->
-
- 
-    <div class="overlay-shadow"></div>
-
-    <div class="overlay-chart-container ui-corner-all">
-        <div class="overlay-chart-container-header ui-widget-header ui-corner-top">Right click the image to Copy or Save As...<div class="ui-icon ui-icon-closethick"></div></div>
-        <div class="overlay-chart-container-content ui-corner-bottom"></div>
-    </div>
-
-    <div class="quintile-outer-container ui-widget ui-corner-all">
-        <div class="quintile-toolbar ui-widget-header  ui-corner-top">
-            <span class="quintile-title">Income Level:</span>
-        </div>
-        <div class="quintile-content ui-widget-content ui-corner-bottom">
-
-            <div class="content-container">
-
-
-            <div class="chart-cell column">
-                <div id="agesChart" class="jqplot-chart"></div>
-            </div>
-
-            <div class="controls column">
-                <table>
-                    <tr>
-                        <td>
-                            Axes:
-                        </td>
-                        <td>
-                            <select name="axisPosition">
-                                <option value="both">Left &amp; Right</option>
-                                <option value = "left">Left</option>
-                                <option value = "right">Right</option>
-                                <option value = "mid">Mid</option>
-                            </select>
-                        </td>
-                    </tr>
-                    <tr>
-                        <td>
-                            Colors:
-                        </td>
-                        <td>
-                            <ul>
-                                <li><input class="color" type="color" id="colorMale" /> Male</li>
-                                <li><input class="color" type="color" id="colorFemale" /> Female</li>
-                                <li><input class="color" type="color" id="colorBackground"  /> Background</li>
-                                <li><input class="color" type="color" id="colorPlotBands" /> Plot Bands</li>
-                            </ul>
-                        </td>
-                    </tr>
-                    <tr>
-                        <td>
-                            Grids:
-                        </td>
-                        <td>
-                            <ul>
-                                <li><input name="gridsVertical" value="vertical" type="checkbox" />Vertical</li>
-                                <li><input name="gridsHorizontal" value="horizontal" type="checkbox" />Horizontal</li>
-                                <li><input name="showMinorTicks" value="true" type="checkbox" checked />Only major</li>
-                                <li><input name="plotBands" value="true" type="checkbox" checked />Plot Bands</li>
-                            </ul>
-                        </td>
-                    </tr>
-                    <tr>
-                        <td colspan="2">
-                            <ul>
-                                <li><input name="barPadding" value="2" type="checkbox" checked />Gap between bars</li>
-                                <!-- value for showContour is speed at which to fade lines in/out -->
-                                <li><input name="showContour" value="500" type="checkbox" />Comparison Line</li>
-                            </ul>
-                        </td>
-                    </tr>
-                </table>
-            </div>
-
-            <div class="stats-cell column">
-                <table class="stats-table">
-                <colgroup>
-                    <col class="label">
-                    <col class="value">
-                </colgroup>
-                <tbody>
-                    <tr>
-                        <td class="ui-corner-tl">Mean Age:</td>
-                        <td class="quintile-value summary-meanAge ui-corner-tr"></td>
-                    </tr>
-                    <tr>
-                        <td>Sex Ratio:</td>
-                        <td class="quintile-value summary-sexRatio"></td>
-                    </tr>
-                    <tr>
-                        <td>Age Dependency Ratio:</td>
-                        <td class="quintile-value summary-ageDependencyRatio"></td>
-                    </tr>
-                    <tr>
-                        <td>Population, Total:</td>
-                        <td class="quintile-value summary-populationTotal"></td>
-                    </tr>
-                    <tr>
-                        <td>Population, Male:</td>
-                        <td class="quintile-value summary-populationMale"></td>
-                    </tr>
-                    <tr>
-                        <td class="ui-corner-bl">Population, Female:</td>
-                        <td class="quintile-value summary-populationFemale ui-corner-br"></td>
-                    </tr>
-                </tbody>
-                </table>
-                <table class="highlighted-stats-table">
-                <colgroup>
-                    <col class="label">
-                    <col class="value">
-                </colgroup>
-                <tbody>
-                    <tr class="tooltip-header">
-                        <td class="tooltip-header ui-corner-top" colspan="2">Highlighted Age: <span class="tooltip-item tooltipAge">&nbsp;</span></td>
-                    </tr>
-                    <tr>
-                        <td>Population, Male: </td>
-                        <td class="quintile-value"><span class="tooltip-item tooltipMale">&nbsp;</span></td>
-                    </tr>
-                    <tr>
-                        <td>Population, Female: </td>
-                        <td class="quintile-value"><span class="tooltip-item tooltipFemale">&nbsp;</span></td>
-                    </tr>
-                    <tr>
-                        <td class="ui-corner-bl">Sex Ratio: </td>
-                        <td class="quintile-value ui-corner-br"><span class="tooltip-item tooltipRatio">&nbsp;</span></td>
-                    </tr>
-                <tbody>
-                </table>
-            </div>
-
-            </div>
-
-        </div>
-    </div> 
-  
-
-
-    <script class="code" type="text/javascript">
-    $(document).ready(function(){
-
-        // if browser supports canvas, show additional toolbar icons
-        if (!$.jqplot.use_excanvas) {
-            $('div.quintile-toolbar').append('<div class="ui-icon ui-icon-image"></div><div class="ui-icon ui-icon-print"></div>');
-        }
-
-        // for this demo, all data is same for each quintile.
-        // could do something like this to get the index of the quintile.
-        // <!-- var quintileIndex = parseInt(< ? php echo $_GET["qidx"]; ? >); -->
-
-        var male;
-        var female;
-        var summaryTable;
-        var sexRatios;
-        jsondata = [];
-
-        $.ajax({
-            type: "GET",
-            dataType: 'json',
-            async: false,
-            url: "ages.json",
-            contentType: "application/json",
-            success: function (retdata) {
-                // array of arrays of data for each quintile
-                // each quintile array has data for following:
-                //  0: summary table
-                //  1: male data
-                //  2: female data
-                //  3: ratios
-                jsondata = retdata;
-            },
-            error: function (xhr) { console.log("ERROR: ", xhr.statusText) }
-        });
-
-
-        // the "x" values from the data will go into the ticks array.  
-        // ticks should be strings for this case where we have values like "75+"
-        var ticks = jsondata[4];
-
-        $('td.summary-meanAge').each(function(index) {
-            $(this).html($.jqplot.sprintf('%5.2f', jsondata[0][3]));
-        });
-
-        $('td.summary-sexRatio').each(function(index) {
-            $(this).html($.jqplot.sprintf('%5.2f', jsondata[3][0]));
-        });
-
-        $('td.summary-ageDependencyRatio').each(function(index) {
-            $(this).html($.jqplot.sprintf('%5.2f', jsondata[0][6]));
-        });
-
-        $('td.summary-populationTotal').each(function(index) {
-            $(this).html($.jqplot.sprintf("%'d", jsondata[0][0]));
-        });
-
-        $('td.summary-populationMale').each(function(index) {
-            $(this).html($.jqplot.sprintf("%'d", jsondata[0][1]));
-        });
-
-        $('td.summary-populationFemale').each(function(index) {
-            $(this).html($.jqplot.sprintf("%'d", jsondata[0][2]));
-        });
-        
-        // These two variables should be removed outside of the jqplot.com example environment.
-        $.jqplot._noToImageButton = true;
-        $.jqplot._noCodeBlock = true;
-
-        // Custom color arrays are set up for each series to get the look that is desired.
-        // Two color arrays are created for the default and optional color which the user can pick.
-        var greenColors = ["#526D2C", "#77933C", "#C57225", "#C57225"];
-        var blueColors = ["#3F7492", "#4F9AB8", "#C57225", "#C57225"];
-
-        // To accomodate changing y axis, need to keep track of plot options.
-        // changing axes will require recreating the plot, so need to keep 
-        // track of state changes.
-        var plotOptions = {
-            // We set up a customized title which acts as labels for the left and right sides of the pyramid.
-            title: {
-                text: '<span style="margin-left:25%;">Male</span><span style="margin-left:33%;">Female</span>',
-                textAlign: 'left'
-            },
-            // by default, the series will use the green color scheme.
-            seriesColors: greenColors,
-
-            grid: {
-                drawBorder: false,
-                shadow: false,
-                background: "#ffffff",
-                rendererOptions: {
-                    // plotBands is an option of the pyramidGridRenderer.
-                    // it will put banding at starting at a specified value
-                    // along the y axis with an adjustable interval.
-                    plotBands: {
-                        show: true,
-                        interval: 10,
-                        color: 'rgb(245, 235, 215)'
-                    }
-                }
-            },
-
-            // This makes the effective starting value of the axes 0 instead of 1.
-            // For display, the y axis will use the ticks we supplied.
-            defaultAxisStart: 0,
-            seriesDefaults: {
-                renderer: $.jqplot.PyramidRenderer,
-                rendererOptions: {
-                    barPadding: 1.5,
-                    offsetBars: true
-                },
-                yaxis: "yaxis",
-                shadow: false
-            },
-
-            // We have 4 series, the left and right pyramid bars and
-            // the left and rigt overlay lines.
-            series: [
-                // For pyramid plots, the default side is right.
-                // We want to override here to put first set of bars
-                // on left.
-                {
-                    rendererOptions:{
-                        side: "left",
-                        synchronizeHighlight: 1
-                    }
-                },
-                {
-                    yaxis: "y2axis",
-                    rendererOptions: {
-                        synchronizeHighlight: 0
-                    }
-                },
-                {
-                    rendererOptions: {
-                        fill: false,
-                        side: 'left'
-                    }
-                },
-                {
-                    yaxis: 'y2axis',
-                    rendererOptions: {
-                        fill: false
-                    }
-                }
-            ],
-            axesDefaults: {
-                tickOptions: {
-                    showGridline: false
-                },
-                pad: 0,
-                rendererOptions: {
-                    baselineWidth: 2
-                }
-            },
-
-            // Set up all the y axes, since users are allowed to switch between them.
-            // The only axis that will show is the one that the series are "attached" to.
-            // We need the appropriate options for the others for when the user switches.
-            axes: {
-                xaxis: {
-                    tickOptions: {
-                        formatter: $.jqplot.PercentTickFormatter,
-                        formatString: '%.1f%%'
-                    }
-                },
-                yaxis: {
-                    label: "Age",
-                    // Use canvas label renderer to get rotated labels.
-                    labelRenderer: $.jqplot.CanvasAxisLabelRenderer,
-                    // include empty tick options, they will be used
-                    // as users set options with plot controls.
-                    tickOptions: {},
-                    showMinorTicks: false,
-                    tickInterval: 5,
-                    ticks: ticks,
-                    rendererOptions: {
-                        tickSpacingFactor: 15,
-                        category: false
-                    }
-                },
-                yMidAxis: {
-                    label: "Age",
-                    // include empty tick options, they will be used
-                    // as users set options with plot controls.
-                    tickOptions: {},
-                    showMinorTicks: false,
-                    tickInterval: 5,
-                    ticks: ticks,
-                    rendererOptions: {
-                        tickSpacingFactor: 15,
-                        category: false
-                    }
-                },
-                y2axis: {
-                    label: "Age",
-                    // Use canvas label renderer to get rotated labels.
-                    labelRenderer: $.jqplot.CanvasAxisLabelRenderer,
-                    // include empty tick options, they will be used
-                    // as users set options with plot controls.
-                    tickOptions: {},
-                    showMinorTicks: false,
-                    tickInterval: 5,
-                    ticks: ticks,
-                    rendererOptions: {
-                        tickSpacingFactor: 15,
-                        category: false
-                    }
-                }
-            }
-        };
-
-        // resize the chart container to fill the space
-        $('#agesChart').height($('div.chart-cell').height()*0.96);
-        $('#agesChart').width($('div.chart-cell').width()*0.97);
-
-        // $('#agesChart').jqplot([jsondata[1], jsondata[2]], plotOptions);
-        $.jqplot.config.addDomReference = true;
-        var plot1 = $.jqplot('agesChart', [jsondata[1], jsondata[2]], plotOptions);
-
-        $(window).resize (function(event, ui) {
-            // pass in resetAxes: true option to get rid of old ticks and axis properties
-            // which should be recomputed based on new plot size.
-            $('#agesChart').height($('div.chart-cell').height()*0.96);
-            $('#agesChart').width($('div.chart-cell').width()*0.97);
-            plot1.replot( { resetAxes: true } );
-        });
-
-        // initialize form elements
-        // set these before attaching event handlers.
-
-        $("input[type=checkbox][name=gridsVertical]").attr("checked", false);
-        $("input[type=checkbox][name=gridsHorizontal]").attr("checked", false);
-        $("input[type=checkbox][name=showMinorTicks]").attr("checked", true);
-        $("input[type=checkbox][name=plotBands]").attr("checked", true);
-        $("input[type=checkbox][name=showContour]").attr("checked", true);
-        $("input[type=checkbox][name=barPadding]").attr("checked", true);
-        $("select[name=axisPosition]").val("both");
-
-        //////
-        // The followng functions use verbose css selectors to make
-        // it clear exactly which elements they are binging to/operating on
-        //////
-
-        $("select[name=axisPosition]").change(function(){ 
-            // this refers to the html element we are binding to.
-            // $(this) is jQuery object on that element.
-
-            var opts = {series:[{}, {}, {}, {}]};
-
-            switch ($(this).val()) {
-                case "both":
-                    opts.series[0].yaxis = "yaxis";
-                    opts.series[1].yaxis = "y2axis";
-                    opts.series[2].yaxis = "yaxis";
-                    opts.series[3].yaxis = "y2axis";
-                    break;
-                case "left":
-                    opts.series[0].yaxis = "yaxis";
-                    opts.series[1].yaxis = "yaxis";
-                    opts.series[2].yaxis = "yaxis";
-                    opts.series[3].yaxis = "yaxis";
-                    break;
-                case "right":
-                    opts.series[0].yaxis = "y2axis";
-                    opts.series[1].yaxis = "y2axis";
-                    opts.series[2].yaxis = "y2axis";
-                    opts.series[3].yaxis = "y2axis";
-                    break;
-                case "mid":
-                    opts.series[0].yaxis = "yMidAxis";
-                    opts.series[1].yaxis = "yMidAxis";
-                    opts.series[2].yaxis = "yMidAxis";
-                    opts.series[3].yaxis = "yMidAxis";
-                    break;
-                default:
-                    break;
-                    
-            }
-
-            plot1.replot(opts); 
-        });
-
-        // bind to the data highlighting event to make custom tooltip:
-        $(".jqplot-target").each(function(index){
-            $(this).bind("jqplotDataHighlight", function(evt, seriesIndex, pointIndex, data) {
-                // Here, assume first series is male poulation and second series is female population.
-                // Adjust series indices as appropriate.
-                var plot = $(this).data('jqplot');
-                var malePopulation = Math.abs(plot.series[0].data[pointIndex][1]) * jsondata[0][1];
-                var femalePopulation = Math.abs(plot.series[1].data[pointIndex][1]) * jsondata[0][2];
-                var malePopulation = jsondata[1][pointIndex] * jsondata[0][1];
-                var femalePopulation = jsondata[2][pointIndex] * jsondata[0][2];
-                // var ratio = femalePopulation / malePopulation * 100;
-                var ratio = jsondata[3][pointIndex];
-
-                $('.tooltipMale').stop(true, true).fadeIn(350).html($.jqplot.sprintf("%'d", malePopulation));
-                $('.tooltipFemale').stop(true, true).fadeIn(350).html($.jqplot.sprintf("%'d", femalePopulation));
-                $('.tooltipRatio').stop(true, true).fadeIn(350).html($.jqplot.sprintf('%5.2f', ratio));
-
-                // Since we don't know which axis is rendererd and acive with out a little extra work,
-                // just use the supplied ticks array to get the age label.
-                $('.tooltipAge').stop(true, true).fadeIn(350).html(ticks[pointIndex]);
-            });
-        });
-
-        // bind to the data highlighting event to make custom tooltip:
-        $(".jqplot-target").each(function() {
-            $(this).bind("jqplotDataUnhighlight", function(evt, seriesIndex, pointIndex, data) {
-                // clear out all the tooltips.
-                $(".tooltip-item").fadeOut(250);
-            });
-        });
-
-        $('.ui-icon-print').click(function(){
-            $(this).parent().next().print();
-        });
-
-
-        $("input[type=checkbox][name=gridsVertical]").change(function(){
-            // this refers to the html element we are binding to.
-            // $(this) is jQuery object on that element.
-            var opts = {axes: {xaxis: {tickOptions: {showGridline: this.checked}}}};
-            plot1.replot(opts);
-        });
-
-
-        $("input[type=checkbox][name=gridsHorizontal]").change(function(){
-            // this refers to the html element we are binding to.
-            // $(this) is jQuery object on that element.
-            var opts = {
-                axes: {
-                    yaxis: {
-                        tickOptions: {showGridline: this.checked}
-                    },
-                    y2axis: {
-                        tickOptions: {showGridline: this.checked}
-                    },
-                    yMidAxis: {
-                        tickOptions: {showGridline: this.checked}
-                    }
-                }
-            };
-            plot1.replot(opts);
-        });
-
-        $("input[type=checkbox][name=plotBands]").change(function(){
-            // this refers to the html element we are binding to.
-            // $(this) is jQuery object on that element.
-            var opts = {grid:{ rendererOptions: {plotBands: { show: this.checked}}}};
-            plot1.replot(opts);
-        });
-
-        ////
-        // To-Do
-        //
-        // initialize form elements on reload.
-        // figure out what overlay line would be.
-        // have to adjust ticks to do show minor.
-        // make like kcp_pyramid.php
-        ////
-        $("input[type=checkbox][name=showMinorTicks]").change(function(){
-            // this refers to the html element we are binding to.
-            // $(this) is jQuery object on that element.
-            var opts = {
-                axes: {
-                    yaxis: {
-                        showMinorTicks: !this.checked
-                    },
-                    y2axis: {
-                        showMinorTicks: !this.checked
-                    },
-                    yMidAxis: {
-                        showMinorTicks: !this.checked
-                    }
-                }
-            };
-            plot1.replot(opts);
-        });
-
-        $("input[type=checkbox][name=barPadding]").change(function(){
-            // this refers to the html element we are binding to.
-            // $(this) is jQuery object on that element.
-            if (this.checked) {
-                var val = parseFloat($(this).val());
-                var opts = {
-                    seriesDefaults: {
-                        rendererOptions: {
-                            barPadding: val
-                        }
-                    }
-                };
-            }
-            else {
-                var opts = {
-                    seriesDefaults: {
-                        rendererOptions: {
-                            barPadding: 0
-                        }
-                    }
-                };
-            }
-            plot1.replot(opts);
-        });
-
-
-        $('.ui-icon-image').each(function() {
-            $(this).bind('click', function(evt) {
-                var chart = $(this).closest('div.quintile-outer-container').find('div.jqplot-target');
-                var imgelem = chart.jqplotToImageElem();
-                var div = $('div.overlay-chart-container-content');
-                div.empty();
-                div.append(imgelem);
-                $('div.overlay-shadow').fadeIn(600);
-                div.parent().fadeIn(1000);
-                div = null;
-            });
-        });
-
-        $('div.overlay-chart-container-header div.ui-icon-closethick').click(function(){
-            var div = $('div.overlay-chart-container-content');
-            div.parent().fadeOut(600);
-            $('div.overlay-shadow').fadeOut(1000);
-        });
-
-        function applyColors () {
-            var opts = {series:[{}, {}], grid:{rendererOptions:{plotBands:{}}}};
-            opts.series[0].color = $('#colorMale').data('colorpicker').color.toCSS();
-            opts.series[1].color = $('#colorFemale').data('colorpicker').color.toCSS();
-            opts.grid.background = $('#colorBackground').data('colorpicker').color.toCSS();
-            opts.grid.rendererOptions.plotBands.color = $('#colorPlotBands').data('colorpicker').color.toCSS();
-
-            plot1.replot(opts);
-
-        };
-
-        // $('#colorMale').val(plot1.series[0].color);
-
-        $('#colorMale').colorpicker({
-            showOn: 'button',
-            showHeader: true,
-            showSwatches: true,
-            buttonColorize: true,
-            buttonImageOnly: true,
-            parts: 'full',
-            color: plot1.series[0].color,
-            onClose: applyColors
-
-        });
-
-        $('#colorFemale').colorpicker({
-            showOn: 'button',
-            showHeader: true,
-            showSwatches: true,
-            buttonColorize: true,
-            buttonImageOnly: true,
-            parts: 'full',
-            color: plot1.series[1].color,
-            onClose: applyColors
-
-        });
-
-        $('#colorBackground').colorpicker({
-            showOn: 'button',
-            showHeader: true,
-            showSwatches: true,
-            buttonColorize: true,
-            buttonImageOnly: true,
-            parts: 'full',
-            color: plot1.grid.background,
-            onClose: applyColors
-
-        });
-
-        $('#colorPlotBands').colorpicker({
-            showOn: 'button',
-            showHeader: true,
-            showSwatches: true,
-            buttonColorize: true,
-            buttonImageOnly: true,
-            parts: 'full',
-            color: plot1.grid.plotBands.color,
-            onClose: applyColors
-
-        });
-
-    });
-    </script>
-
-
-    <script class="include" type="text/javascript" src="../jquery.jqplot.js"></script>
-    <script type="text/javascript" src="syntaxhighlighter/scripts/shCore.min.js"></script>
-    <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushJScript.min.js"></script>
-    <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushXml.min.js"></script>
-
-
-    <script class="include" type="text/javascript" src="../plugins/jqplot.categoryAxisRenderer.js"></script>
-
-    <!-- load the pyramidAxis and Grid renderers in production.  pyramidRenderer will try to load via ajax if not present, but that is not optimal and depends on paths being set. -->
-    <script class="include" type="text/javascript" src="../plugins/jqplot.pyramidAxisRenderer.js"></script>
-    <script class="include" type="text/javascript" src="../plugins/jqplot.pyramidGridRenderer.js"></script> 
-
-    <script class="include" type="text/javascript" src="../plugins/jqplot.pyramidRenderer.js"></script>
-    <script class="include" type="text/javascript" src="../plugins/jqplot.canvasTextRenderer.js"></script>
-    <script class="include" type="text/javascript" src="../plugins/jqplot.canvasAxisLabelRenderer.js"></script>
-    <script class="include" type="text/javascript" src="../plugins/jqplot.json2.js"></script>
-    <script class="include" type="text/javascript" src="jquery-ui/js/jquery-ui.min.js"></script>
-    <script class="include" type="text/javascript" src="kcp.print.js"></script>
-
-    <script src="colorpicker/jquery.colorpicker.js"></script>
- 
-    <script type="text/javascript" src="example.js"></script>
-
-</body>
-
-
-</html>
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/kcp_quintiles.html b/wqflask/wqflask/static/packages/jqplot/examples/kcp_quintiles.html
deleted file mode 100755
index 72077554..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/kcp_quintiles.html
+++ /dev/null
@@ -1,663 +0,0 @@
-<!DOCTYPE html>
-
-<html>
-<head>
-	
-	<title>Quintile Pyramid Charts</title>
-
-    <link class="include" rel="stylesheet" type="text/css" href="../jquery.jqplot.min.css" />
-    <link rel="stylesheet" type="text/css" href="examples.min.css" />
-    <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shCoreDefault.min.css" />
-    <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shThemejqPlot.min.css" />
-  
-  <!--[if lt IE 9]><script language="javascript" type="text/javascript" src="../excanvas.js"></script><![endif]-->
-    <script class="include" type="text/javascript" src="../jquery.min.js"></script>
-    
-   
-</head>
-<body>
-    <div class="logo">
-   <div class="nav">
-   <a class="nav" href="../../../index.php"><span>&gt;</span>Home</a>
-   <a class="nav"  href="../../../docs/"><span>&gt;</span>Docs</a>
-   <a class="nav"  href="../../download/"><span>&gt;</span>Download</a>
-   <a class="nav" href="../../../info.php"><span>&gt;</span>Info</a>
-   <a class="nav"  href="../../../donate.php"><span>&gt;</span>Donate</a>
-   </div>
-</div>
-    <div class="example-content">
-
-    <div class="example-nav">
-  <a href="kcp_pyramid_by_age.html">Previous</a> <a href="./">Examples</a> <a href="line-charts.html">Next</a></div>
-
-      
-<!-- Example scripts go here -->
-
-  <link class="include" type="text/css" href="jquery-ui/css/smoothness/jquery-ui.min.css" rel="Stylesheet" /> 
-
-    <style type="text/css">
-
-        .quintile-outer-container {
-            width: 900px;
-            margin-bottom: 25px;
-        }
-
-        .jqplot-chart {
-            width: 500px;
-            height: 400px;
-        }
-
-        pre.code {
-            margin-top: 45px;
-            clear: both;
-        }
-
-        .quintile-toolbar .ui-icon {
-            float: right;
-            margin: 3px 5px;
-        }
-
-        table.stats-table td, table.highlighted-stats-table td {
-            background-color: rgb(230, 230, 230);
-            padding: 0.5em;
-        }
-
-        col.label {
-            width: 14em;
-        }
-
-        col.value {
-            width: 7em;
-        }
-
-        td.quintile-value {
-            width: 7em;
-            text-align: right;
-        }
-
-        table.stats-table td.tooltip-header, table.highlighted-stats-table td.tooltip-header {
-            background-color: rgb(200, 200, 200);
-        }
-
-        table.stats-table, table.highlighted-stats-table, td.contour-cell {
-            font-size: 0.7em;
-        }
-
-        td.contour-cell {
-            height: 1.5em;
-            padding-left: 20px;
-            padding-bottom: 1.5em;
-        }
-
-        table.highlighted-stats-table {
-            margin-top: 15px;
-        }
-
-        td.stats-cell {
-            padding-left: 20px;
-            padding-top: 20px;
-            vertical-align: top;
-
-        }
-
-        td.stats-cell div.input {
-            font-size: 0.7em;
-            margin-top: 1.5em;
-        }
-
-        div.overlay-chart-container {
-            display: none;
-            z-index: 11;
-            position: fixed;
-            width: 588px;
-            left: 50%;
-            margin-left: -294px;
-            background-color: white;
-        }
-
-        div.overlay-chart-container .ui-icon {
-            float: right;
-            margin: 3px 5px;
-        }
-
-        div.overlay-shadow {
-            display: none;
-            z-index: 10;
-            background-color: rgba(0, 0, 0, 0.8);
-            position: fixed;
-            top: 0px;
-            left: 0px;
-            width: 100%;
-            height: 100%;
-        }
-
-        @media print {
-            td.stats-cell {
-                vertical-align: top;
-                padding-top: 35px;
-            }
-
-            table.stats-table, table.stats-table td {
-                 color: #aaaaaa;
-                 border: 1px solid #bbbbbb;
-                 border-collapse: collapse;
-            }
-
-            table.stats-table tr {
-                font-family: Verdana,Arial,sans-serif;
-                /*font-size: 0.7em;*/
-            }
-        }
-
-    </style>
-
-    <div class="overlay-shadow"></div>
-
-    <div class="overlay-chart-container ui-corner-all">
-        <div class="overlay-chart-container-header ui-widget-header ui-corner-top">Right click the image to Copy or Save As...<div class="ui-icon ui-icon-closethick"></div></div>
-        <div class="overlay-chart-container-content ui-corner-bottom"></div>
-    </div>
-
-    <div class="quintile-outer-container ui-widget ui-corner-all">
-        <div class="quintile-toolbar ui-widget-header  ui-corner-top">
-            <span class="quintile-title">Income Level:  First Quintile</span>
-            <div class="quintile-toggle ui-icon ui-icon-arrowthickstop-1-n"></div>
-            <div class="ui-icon ui-icon-newwin"></div>
-        </div>
-        <div class="quintile-content ui-widget-content ui-corner-bottom">
-            <table class="quintile-display">
-                <tr>
-                    <td class="chart-cell" rowspan="2">
-                        <div class="jqplot-chart"></div>
-                    </td>
-                    <td class="stats-cell">
-                        <table class="stats-table">
-                        <colgroup>
-                            <col class="label">
-                            <col class="value">
-                        </colgroup>
-                        <tbody>
-                            <tr>
-                                <td class="ui-corner-tl">Mean Age:</td>
-                                <td class="quintile-value summary-meanAge ui-corner-tr"></td>
-                            </tr>
-                            <tr>
-                                <td>Sex Ratio:</td>
-                                <td class="quintile-value summary-sexRatio"></td>
-                            </tr>
-                            <tr>
-                                <td>Age Dependency Ratio:</td>
-                                <td class="quintile-value summary-ageDependencyRatio"></td>
-                            </tr>
-                            <tr>
-                                <td>Population, Total:</td>
-                                <td class="quintile-value summary-populationTotal"></td>
-                            </tr>
-                            <tr>
-                                <td>Population, Male:</td>
-                                <td class="quintile-value summary-populationMale"></td>
-                            </tr>
-                            <tr>
-                                <td class="ui-corner-bl">Population, Female:</td>
-                                <td class="quintile-value summary-populationFemale ui-corner-br"></td>
-                            </tr>
-                        </tbody>
-                        </table>
-                        <table class="highlighted-stats-table">
-                        <colgroup>
-                            <col class="label">
-                            <col class="value">
-                        </colgroup>
-                        <tbody>
-                            <tr class="tooltip-header">
-                                <td class="tooltip-header ui-corner-top" colspan="2">Highlighted Range: <span class="tooltip-item tooltipAge">&nbsp;</span></td>
-                            </tr>
-                            <tr>
-                                <td>Population, Male: </td>
-                                <td class="quintile-value"><span class="tooltip-item tooltipMale">&nbsp;</span></td>
-                            </tr>
-                            <tr>
-                                <td>Population, Female: </td>
-                                <td class="quintile-value"><span class="tooltip-item tooltipFemale">&nbsp;</span></td>
-                            </tr>
-                            <tr>
-                                <td class="ui-corner-bl">Sex Ratio: </td>
-                                <td class="quintile-value ui-corner-br"><span class="tooltip-item tooltipRatio">&nbsp;</span></td>
-                            </tr>
-                        <tbody>
-                        </table>
-                    </td>
-                </tr>
-                <tr>
-                    <td class="contour-cell">
-                        <input name="showContour" type="checkbox" /> Use as overlay on other charts?
-                    </td>
-                </tr>
-            </table>
-        </div>
-    </div> 
-  
-
-
-    <script class="code" type="text/javascript" language="javascript">
-    $(document).ready(function(){
-
-        // if browser supports canvas, show additional toolbar icons
-        if (!$.jqplot.use_excanvas) {
-            $('div.quintile-toolbar').append('<div class="ui-icon ui-icon-image"></div><div class="ui-icon ui-icon-print"></div>');
-        }
-
-        var quintHash = {0: 'First Quintile', 1: 'Second Quintile', 2: 'Third Quintile', 3: 'Fourth Quintile', 4: 'Fifth Quintile'}
-
-        // Add the needed containers:
-        for (var i=1; i<5; i++) {
-            var el = $('div.quintile-outer-container:last')
-            var clone = el.clone();
-            clone.find('span.quintile-title').html('Income Level:  ' + quintHash[i]);
-            clone.insertAfter(el);
-        }
-
-        var male;
-        var female;
-        var summaryTable;
-        var sexRatios;
-        var quintiles;
-
-        $.ajax({
-            type: "GET",
-            dataType: 'json',
-            async: false,
-            url: "quintiles.json",
-            contentType: "application/json",
-            success: function (retdata) {
-                // array of arrays of data for each quintile
-                // each quintile array has data for following:
-                //  0: summary table
-                //  1: male data
-                //  2: female data
-                //  3: ratios
-                quintiles = retdata;
-            },
-            error: function (xhr) { console.log(xhr.statusText) }
-        });
-
-        $('td.summary-meanAge').each(function(index) {
-            $(this).html($.jqplot.sprintf('%5.2f', quintiles[index][0][3]));
-        });
-
-        $('td.summary-sexRatio').each(function(index) {
-            $(this).html($.jqplot.sprintf('%5.2f', quintiles[index][3][0]));
-        });
-
-        $('td.summary-ageDependencyRatio').each(function(index) {
-            $(this).html($.jqplot.sprintf('%5.2f', quintiles[index][0][6]));
-        });
-
-        $('td.summary-populationTotal').each(function(index) {
-            $(this).html($.jqplot.sprintf("%'d", quintiles[index][0][0]));
-        });
-
-        $('td.summary-populationMale').each(function(index) {
-            $(this).html($.jqplot.sprintf("%'d", quintiles[index][0][1]));
-        });
-
-        $('td.summary-populationFemale').each(function(index) {
-            $(this).html($.jqplot.sprintf("%'d", quintiles[index][0][2]));
-        });
-        
-        // These two variables should be removed outside of the jqplot.com example environment.
-        $.jqplot._noToImageButton = true;
-        $.jqplot._noCodeBlock = true;
-
-        // the "x" values from the data will go into the ticks array.  
-        // ticks should be strings for this case where we have values like "75+"
-        var ticks = ["0-4", "5-9", "10-14", "15-19", "20-24", "25-29", "30-34", "35-39", "40-44", "45-49", "50-54", "55-59", "60-64", "65-69", "70-74", "75-79", "80-84", "85-90", "90-94", "95+"];
-
-        // Custom color arrays are set up for each series to get the look that is desired.
-        // Two color arrays are created for the default and optional color which the user can pick.
-        var greenColors = ["#526D2C", "#77933C"];
-
-        // These options are common to all plots.
-        var plotOptions = {
-            // We set up a customized title which acts as labels for the left and right sides of the pyramid.
-            title: {
-                text: '<span style="position:relative;left:25%;">Male</span><span style="position:relative;left:50%;">Female</span>',
-                textAlign: 'left'
-            },
-            // by default, the series will use the green color scheme.
-            seriesColors: greenColors,
-
-            grid: {
-                drawBorder: false,
-                shadow: false,
-                background: "white",
-                rendererOptions: {
-                    // plotBands is an option of the pyramidGridRenderer.
-                    // it will put banding at starting at a specified value
-                    // along the y axis with an adjustable interval.
-                    plotBands: {
-                        show: true,
-                        interval: 2,
-                        color: 'rgb(250, 240, 225)'
-                    }
-                }
-            },
-
-            // This makes the effective starting value of the axes 0 instead of 1.
-            // For display, the y axis will use the ticks we supplied.
-            defaultAxisStart: 0,
-            seriesDefaults: {
-                renderer: $.jqplot.PyramidRenderer,
-                rendererOptions: {
-                    barPadding: 4,
-                    fill: false
-                },
-                yaxis: "yaxis",
-                shadow: false,
-                show: false
-            },
-
-            // We have 10 series, but only 2 will be shown at a time unless an overlay is turned on.
-            // Set up options for all series now, so when turned on they will look right.
-            series: [
-                // For pyramid plots, the default side is right.
-                // We want to override here to put first set of bars
-                // on left.
-                {
-                    rendererOptions:{
-                        side: "left"
-                    }
-                },
-                {
-                    yaxis: "y2axis"
-                },
-                {
-                    rendererOptions: {
-                        side: 'left'
-                    }
-                },
-                {
-                    yaxis: 'y2axis'
-                },
-                {
-                    rendererOptions: {
-                        side: 'left'
-                    }
-                },
-                {
-                    yaxis: 'y2axis'
-                },
-                {
-                    rendererOptions: {
-                        side: 'left'
-                    }
-                },
-                {
-                    yaxis: 'y2axis'
-                },
-                {
-                    rendererOptions: {
-                        side: 'left'
-                    }
-                },
-                {
-                    yaxis: 'y2axis'
-                }
-            ],
-            axesDefaults: {
-                tickOptions: {
-                    showGridline: false
-                },
-                pad: 0,
-                rendererOptions: {
-                    baselineWidth: 2
-                },
-                scaleToHiddenSeries: true
-            },
-
-            // Set up all the y axes, since users are allowed to switch between them.
-            // The only axis that will show is the one that the series are "attached" to.
-            // We need the appropriate options for the others for when the user switches.
-            axes: {
-                xaxis: {
-                    tickOptions: {
-                        formatter: $.jqplot.PercentTickFormatter,
-                        formatString: '%d%%'
-                    }
-                },
-                yaxis: {
-                    label: "Age",
-                    // Use canvas label renderer to get rotated labels.
-                    labelRenderer: $.jqplot.CanvasAxisLabelRenderer,
-                    // include empty tick options, they will be used
-                    // as users set options with plot controls.
-                    tickOptions: {},
-                    showMinorTicks: true,
-                    ticks: ticks,
-                    rendererOptions: {
-                        category: true
-                    }
-                },
-                y2axis: {
-                    label: "Age",
-                    // Use canvas label renderer to get rotated labels.
-                    labelRenderer: $.jqplot.CanvasAxisLabelRenderer,
-                    // include empty tick options, they will be used
-                    // as users set options with plot controls.
-                    tickOptions: {},
-                    showMinorTicks: true,
-                    ticks: ticks,
-                    rendererOptions: {
-                        category: true
-                    }
-                }
-            }
-        };
-
-        // These options are different for each series.
-        // sopts are common options for the overlay series in each plot.
-        var sopts = {color: '#C57225'};
-
-        // An array of 5 elements, one for each plot.
-        var plotOptsArr = [];
-
-        // Options for each individual plot
-        plotOptsArr[0] = $.extend(true, {}, plotOptions, {series:[{show: true, rendererOptions:{synchronizeHighlight: 1, fill: true}}, {show: true, rendererOptions: {synchronizeHighlight: 0, fill: true}}, sopts, sopts, sopts, sopts, sopts, sopts, sopts, sopts]});
-
-        plotOptsArr[1] = $.extend(true, {}, plotOptions, {series:[sopts, sopts, {show: true, rendererOptions:{synchronizeHighlight: 3, fill: true}}, {show: true, rendererOptions: {synchronizeHighlight: 2, fill: true}}, sopts, sopts, sopts, sopts, sopts, sopts]});
-
-        plotOptsArr[2] = $.extend(true, {}, plotOptions, {series:[sopts, sopts, sopts, sopts, {show: true, rendererOptions:{synchronizeHighlight: 5, fill: true}}, {show: true, rendererOptions: {synchronizeHighlight: 4, fill: true}}, sopts, sopts, sopts, sopts]});
-
-        plotOptsArr[3] = $.extend(true, {}, plotOptions, {series:[sopts, sopts, sopts, sopts, sopts, sopts, {show: true, rendererOptions:{synchronizeHighlight: 7, fill: true}}, {show: true, rendererOptions: {synchronizeHighlight: 6, fill: true}}, sopts, sopts]});
-
-        plotOptsArr[4] = $.extend(true, {}, plotOptions, {series:[sopts, sopts, sopts, sopts, sopts, sopts, sopts, sopts, {show: true, rendererOptions:{synchronizeHighlight: 9, fill: true}}, {show: true, rendererOptions: {synchronizeHighlight: 8, fill: true}}]});
-
-
-        // Create all the plots at one time.
-        // Use jQuery selecctor syntax to select all the plot targets.  Here, no id's were specified on the targets, so they are auto generated.
-        // You can get a reference to the individual plot object by:
-        //     var plot = $('div.jqplot-chart').eq(0).data('jqplot');
-        //
-        $('div.jqplot-chart').jqplot([quintiles[0][1], quintiles[0][2], quintiles[1][1], quintiles[1][2], quintiles[2][1], quintiles[2][2], quintiles[3][1], quintiles[3][2], quintiles[4][1], quintiles[4][2]], plotOptsArr[0], plotOptsArr[1], plotOptsArr[2], plotOptsArr[3], plotOptsArr[4]);
-
-        //////
-        // The followng functions use verbose css selectors to make
-        // it clear exactly which elements they are binging to/operating on
-        //////
-
-        // bind to the data highlighting event to make custom tooltip:
-        $(".jqplot-target").each(function(index){
-            $(this).bind("jqplotDataHighlight", function(evt, seriesIndex, pointIndex, data) {
-                // Here, assume first series is male poulation and second series is female population.
-                // Adjust series indices as appropriate.
-                var plot = $(this).data('jqplot');
-                var malePopulation = Math.abs(plot.series[0].data[pointIndex][1]) * quintiles[index][0][1];
-                var femalePopulation = Math.abs(plot.series[1].data[pointIndex][1]) * quintiles[index][0][2];
-                var malePopulation = quintiles[index][1][pointIndex] * quintiles[index][0][1];
-                var femalePopulation = quintiles[index][2][pointIndex] * quintiles[index][0][2];
-                // var ratio = femalePopulation / malePopulation * 100;
-                var ratio = quintiles[index][3][pointIndex+1];
-
-                $(this).closest('table').find('.tooltipMale').stop(true, true).fadeIn(350).html($.jqplot.sprintf("%'d", malePopulation));
-                $(this).closest('table').find('.tooltipFemale').stop(true, true).fadeIn(350).html($.jqplot.sprintf("%'d", femalePopulation));
-                $(this).closest('table').find('.tooltipRatio').stop(true, true).fadeIn(350).html($.jqplot.sprintf('%5.2f', ratio));
-
-                // Since we don't know which axis is rendererd and acive with out a little extra work,
-                // just use the supplied ticks array to get the age label.
-                $(this).closest('table').find('.tooltipAge').stop(true, true).fadeIn(350).html(ticks[pointIndex]);
-            });
-        });
-
-        // bind to the data highlighting event to make custom tooltip:
-        $(".jqplot-target").each(function() {
-            $(this).bind("jqplotDataUnhighlight", function(evt, seriesIndex, pointIndex, data) {
-                // clear out all the tooltips.
-                $(this).closest('table').find(".tooltip-item").fadeOut(250);
-            });
-        });
-
-        // Open and close the plot container.
-        $('.quintile-toggle').each(function() {
-            $(this).click(function(e) {
-                if ($(this).hasClass('ui-icon-arrowthickstop-1-n')) {
-                    $(this).parent().next('.quintile-content').effect('blind', {mode:'hide'}, 600);
-                    // $('.quintile-content').jqplotEffect('blind', {mode: 'hide'}, 600);
-                    $(this).removeClass('ui-icon-arrowthickstop-1-n');
-                    $(this).addClass('ui-icon-arrowthickstop-1-s');
-                }
-                else if ($(this).hasClass('ui-icon-arrowthickstop-1-s')) {
-                    $(this).parent().next('.quintile-content').effect('blind', {mode:'show'}, 600, function() {
-                        $(this).find('div.jqplot-chart').data('jqplot').replot();
-                    });
-                    // $('.quintile-content').jqplotEffect('blind', {mode: 'show'}, 150);
-                    $(this).removeClass('ui-icon-arrowthickstop-1-s');
-                    $(this).addClass('ui-icon-arrowthickstop-1-n');
-                }
-            });
-        });
-
-        // Handle each of the checkboxes to display overlays.
-        $('input[type=checkbox][name=showContour]').each(function(index) {
-            // on load/reload, clear all the check boxes.
-            $(this).get(0).checked = false;
-
-            // bind to change event event on the checkbox.
-            $(this).change(function(evt){
-
-                // if check box is checked.
-                if (this.checked) {
-                    // uncheck all other check boxes.
-                    $('input[type=checkbox][name=showContour]').each(function(cidx) {
-                        if (cidx !== index) {
-                            this.checked = false;
-                        }
-                    });
-
-                    // On each chart, show the checked plot's overlay and
-                    // show the original plot.
-                    $('div.jqplot-chart').each(function(pidx) {
-                        var plot = $(this).data('jqplot');
-                        
-                        // Set up options to hide all series.
-                        var seriesOpts = [{show: false}, {show: false}, {show: false}, {show: false}, {show: false}, {show: false}, {show: false}, {show: false}, {show: false}, {show: false}];
-
-                        // Show series for this particular plot (pidx) and for the checked plot (index).
-                        seriesOpts[2 * pidx].show = true;
-                        seriesOpts[2 * pidx + 1].show = true;
-                        seriesOpts[2 * index].show = true;
-                        seriesOpts[2 * index + 1].show = true;
-
-                        // replot with the new options.
-                        plot.replot({series: seriesOpts});
-
-                    });
-                }
-
-                // if check box is not checked.
-                else {
-                    $('div.jqplot-chart').each(function(pidx) { 
-                        // Set up options to hide all series.
-                        var seriesOpts = [{show: false}, {show: false}, {show: false}, {show: false}, {show: false}, {show: false}, {show: false}, {show: false}, {show: false}, {show: false}];
-                        var plot = $(this).data('jqplot');
-
-                        // Here showing only the series for this particular plot (pidx).
-                        seriesOpts[2 * pidx].show = true;
-                        seriesOpts[2 * pidx + 1].show = true;
-
-                        // replot with the new options.
-                        plot.replot({series: seriesOpts});
-                    });
-                }
-            })
-        });
-
-        $('.ui-icon-print').click(function(){
-            $(this).parent().next().print();
-        });
-
-
-        $('.ui-icon-image').each(function() {
-            $(this).bind('click', function(evt) {
-                var chart = $(this).closest('div.quintile-outer-container').find('div.jqplot-target');
-                var imgelem = chart.jqplotToImageElem();
-                var div = $('div.overlay-chart-container-content');
-                div.empty();
-                div.append(imgelem);
-                $('div.overlay-shadow').fadeIn(600);
-                div.parent().fadeIn(1000);
-                div = null;
-            });
-        });
-
-
-        $('.ui-icon-newwin').each(function(index) {
-            $(this).bind('click', function(evt) {
-                var url = 'kcp_pyramid_by_age.html?qidx='+index;
-                window.open(url);
-            });
-        });
-
-        $('div.overlay-chart-container-header div.ui-icon-closethick').click(function(){
-            var div = $('div.overlay-chart-container-content');
-            div.parent().fadeOut(600);
-            $('div.overlay-shadow').fadeOut(1000);
-        });
-
-    });
-    </script>
-
-<!-- End example scripts -->
-
-<!-- Don't touch this! -->
-
-
-    <script class="include" type="text/javascript" src="../jquery.jqplot.min.js"></script>
-    <script type="text/javascript" src="syntaxhighlighter/scripts/shCore.min.js"></script>
-    <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushJScript.min.js"></script>
-    <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushXml.min.js"></script>
-<!-- End Don't touch this! -->
-
-<!-- Additional plugins go here -->
-
-    <script class="include" type="text/javascript" src="../plugins/jqplot.categoryAxisRenderer.min.js"></script>
-
-    <!-- load the pyramidAxis and Grid renderers in production.  pyramidRenderer will try to load via ajax if not present, but that is not optimal and depends on paths being set. -->
-    <script class="include" type="text/javascript" src="../plugins/jqplot.pyramidAxisRenderer.min.js"></script>
-    <script class="include" type="text/javascript" src="../plugins/jqplot.pyramidGridRenderer.min.js"></script> 
-
-    <script class="include" type="text/javascript" src="../plugins/jqplot.pyramidRenderer.min.js"></script>
-    <script class="include" type="text/javascript" src="../plugins/jqplot.canvasTextRenderer.min.js"></script>
-    <script class="include" type="text/javascript" src="../plugins/jqplot.canvasAxisLabelRenderer.min.js"></script>
-    <script class="include" type="text/javascript" src="jquery-ui/js/jquery-ui.js"></script>
-    <script class="include" type="text/javascript" src="kcp.print.js"></script>
-
-<!-- End additional plugins -->
-
-
-	</div>	
-	<script type="text/javascript" src="example.min.js"></script>
-
-</body>
-
-
-</html>
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/line-charts.html b/wqflask/wqflask/static/packages/jqplot/examples/line-charts.html
deleted file mode 100755
index 0151bb23..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/line-charts.html
+++ /dev/null
@@ -1,193 +0,0 @@
-<!DOCTYPE html>
-
-<html>
-<head>
-	
-	<title>Line Charts and Options</title>
-
-    <link class="include" rel="stylesheet" type="text/css" href="../jquery.jqplot.min.css" />
-    <link rel="stylesheet" type="text/css" href="examples.min.css" />
-    <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shCoreDefault.min.css" />
-    <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shThemejqPlot.min.css" />
-  
-  <!--[if lt IE 9]><script language="javascript" type="text/javascript" src="../excanvas.js"></script><![endif]-->
-    <script class="include" type="text/javascript" src="../jquery.min.js"></script>
-    
-   
-</head>
-<body>
-    <div class="logo">
-   <div class="nav">
-   <a class="nav" href="../../../index.php"><span>&gt;</span>Home</a>
-   <a class="nav"  href="../../../docs/"><span>&gt;</span>Docs</a>
-   <a class="nav"  href="../../download/"><span>&gt;</span>Download</a>
-   <a class="nav" href="../../../info.php"><span>&gt;</span>Info</a>
-   <a class="nav"  href="../../../donate.php"><span>&gt;</span>Donate</a>
-   </div>
-</div>
-    <div class="example-content">
-
-    <div class="example-nav">
-  <a href="kcp_quintiles.html">Previous</a> <a href="./">Examples</a> <a href="mekkoCharts.html">Next</a></div>
-
-      
-<!-- Example scripts go here -->
-
-<p>The most basic jqPlot chart takes a series of data and plots a line.  No options need to be supplied.  Data is passed in as an array of series.  A series can be either an array of y values or an array of [x,y] data pairs.  If y values only, x values are assigned like 1, 2, 3, ...  Note, for this plot you don't need any plugins.</p>
-
-<div id="chart1" style="height:300px; width:500px;"></div>
-
-<pre class="code prettyprint brush: js"></pre>
-
-
-<p>The following plot uses a number of options to set the title, add axis labels, and shows how to use the canvasAxisLabelRenderer plugin to provide rotated axis labels.</p>
-
-<div id="chart2" style="height:300px; width:500px;"></div>
-
-<pre class="code prettyprint brush: js"></pre>
-
-
-<p>There are numerous line style options to control how the lines and markers are displayed.</p>
-
-<div id="chart3" style="height:300px; width:500px;"></div>
-
-<pre class="code prettyprint brush: js"></pre>
-
-  
-<script class="code" type="text/javascript">
-$(document).ready(function(){
-  var plot1 = $.jqplot ('chart1', [[3,7,9,1,5,3,8,2,5]]);
-});
-</script>
-  
-<script class="code" type="text/javascript">
-$(document).ready(function(){
-  var plot2 = $.jqplot ('chart2', [[3,7,9,1,5,3,8,2,5]], {
-      // Give the plot a title.
-      title: 'Plot With Options',
-      // You can specify options for all axes on the plot at once with
-      // the axesDefaults object.  Here, we're using a canvas renderer
-      // to draw the axis label which allows rotated text.
-      axesDefaults: {
-        labelRenderer: $.jqplot.CanvasAxisLabelRenderer
-      },
-      // Likewise, seriesDefaults specifies default options for all
-      // series in a plot.  Options specified in seriesDefaults or
-      // axesDefaults can be overridden by individual series or
-      // axes options.
-      // Here we turn on smoothing for the line.
-      seriesDefaults: {
-          rendererOptions: {
-              smooth: true
-          }
-      },
-      // An axes object holds options for all axes.
-      // Allowable axes are xaxis, x2axis, yaxis, y2axis, y3axis, ...
-      // Up to 9 y axes are supported.
-      axes: {
-        // options for each axis are specified in seperate option objects.
-        xaxis: {
-          label: "X Axis",
-          // Turn off "padding".  This will allow data point to lie on the
-          // edges of the grid.  Default padding is 1.2 and will keep all
-          // points inside the bounds of the grid.
-          pad: 0
-        },
-        yaxis: {
-          label: "Y Axis"
-        }
-      }
-    });
-});
-</script>
-  
-<script class="code" type="text/javascript">
-$(document).ready(function(){
-  // Some simple loops to build up data arrays.
-  var cosPoints = [];
-  for (var i=0; i<2*Math.PI; i+=1){ 
-    cosPoints.push([i, Math.cos(i)]); 
-  }
-   
-  var sinPoints = []; 
-  for (var i=0; i<2*Math.PI; i+=0.4){ 
-     sinPoints.push([i, 2*Math.sin(i-.8)]); 
-  }
-   
-  var powPoints1 = []; 
-  for (var i=0; i<2*Math.PI; i+=1) { 
-      powPoints1.push([i, 2.5 + Math.pow(i/4, 2)]); 
-  }
-   
-  var powPoints2 = []; 
-  for (var i=0; i<2*Math.PI; i+=1) { 
-      powPoints2.push([i, -2.5 - Math.pow(i/4, 2)]); 
-  } 
-
-  var plot3 = $.jqplot('chart3', [cosPoints, sinPoints, powPoints1, powPoints2], 
-    { 
-      title:'Line Style Options', 
-      // Set default options on all series, turn on smoothing.
-      seriesDefaults: {
-          rendererOptions: {
-              smooth: true
-          }
-      },
-      // Series options are specified as an array of objects, one object
-      // for each series.
-      series:[ 
-          {
-            // Change our line width and use a diamond shaped marker.
-            lineWidth:2, 
-            markerOptions: { style:'dimaond' }
-          }, 
-          {
-            // Don't show a line, just show markers.
-            // Make the markers 7 pixels with an 'x' style
-            showLine:false, 
-            markerOptions: { size: 7, style:"x" }
-          },
-          { 
-            // Use (open) circlular markers.
-            markerOptions: { style:"circle" }
-          }, 
-          {
-            // Use a thicker, 5 pixel line and 10 pixel
-            // filled square markers.
-            lineWidth:5, 
-            markerOptions: { style:"filledSquare", size:10 }
-          }
-      ]
-    }
-  );
-   
-});
-</script>
-
-
-<!-- End example scripts -->
-
-<!-- Don't touch this! -->
-
-
-    <script class="include" type="text/javascript" src="../jquery.jqplot.min.js"></script>
-    <script type="text/javascript" src="syntaxhighlighter/scripts/shCore.min.js"></script>
-    <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushJScript.min.js"></script>
-    <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushXml.min.js"></script>
-<!-- End Don't touch this! -->
-
-<!-- Additional plugins go here -->
-
-  <script class="include" type="text/javascript" src="../plugins/jqplot.canvasTextRenderer.min.js"></script>
-  <script class="include" type="text/javascript" src="../plugins/jqplot.canvasAxisLabelRenderer.min.js"></script>
-
-<!-- End additional plugins -->
-
-
-	</div>	
-	<script type="text/javascript" src="example.min.js"></script>
-
-</body>
-
-
-</html>
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/mekkoCharts.html b/wqflask/wqflask/static/packages/jqplot/examples/mekkoCharts.html
deleted file mode 100755
index 91b3395b..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/mekkoCharts.html
+++ /dev/null
@@ -1,269 +0,0 @@
-<!DOCTYPE html>
-
-<html>
-<head>
-	
-	<title>Mekko Charts</title>
-
-    <link class="include" rel="stylesheet" type="text/css" href="../jquery.jqplot.min.css" />
-    <link rel="stylesheet" type="text/css" href="examples.min.css" />
-    <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shCoreDefault.min.css" />
-    <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shThemejqPlot.min.css" />
-  
-  <!--[if lt IE 9]><script language="javascript" type="text/javascript" src="../excanvas.js"></script><![endif]-->
-    <script class="include" type="text/javascript" src="../jquery.min.js"></script>
-    
-   
-</head>
-<body>
-    <div class="logo">
-   <div class="nav">
-   <a class="nav" href="../../../index.php"><span>&gt;</span>Home</a>
-   <a class="nav"  href="../../../docs/"><span>&gt;</span>Docs</a>
-   <a class="nav"  href="../../download/"><span>&gt;</span>Download</a>
-   <a class="nav" href="../../../info.php"><span>&gt;</span>Info</a>
-   <a class="nav"  href="../../../donate.php"><span>&gt;</span>Donate</a>
-   </div>
-</div>
-    <div class="example-content">
-
-    <div class="example-nav">
-  <a href="line-charts.html">Previous</a> <a href="./">Examples</a> <a href="meritOrder.html">Next</a></div>
-
-      
-<!-- Example scripts go here -->
-  <style type="text/css" media="screen">
-    body {
-        margin: 15px;
-        font-family: "Trebuchet MS", Arial, Helvetica, sans-serif;
-    }
-    
-    p {
-        margin-top: 20px;
-        margin-bottom: 20px;
-    }
-    
-    .jqplot-target {
-        margin: 60px;
-    }
-    
-    pre {
-        padding: 10px;
-        background-color: #efead9;
-        margin: 10px;
-    }
-    .jqplot-axis {
-      font-size: 0.8em;
-    }
-    
-    .jqplot-mekko-barLabel {
-        font-size: 1em;
-    }
-    
-    #chart2 .jqplot-axis {
-        font-size: 0.7em;
-    }
-    
-    #chart3 .jqplot-title {
-        padding-bottom: 40px;
-    }
-  </style>
-<p>Data is specified per bar in the chart.  You can specify data as an array of y values, or as an array of [label, value] pairs.  Note that labels are used only on the first series.  Labels on subsequent series are ignored:</p>
-<pre>
-bar1 = [['shirts', 8],['hats', 14],['shoes', 6],['gloves', 16],['dolls', 12]];
-bar2 = [15,6,9,13,6];
-bar3 = [['grumpy',4],['sneezy',2],['happy',7],['sleepy',9],['doc',7]];
-</pre>
-
-  <p>If you want to place labels for each bar under the axis, you use the barLabels option on the axes.  The bar labels can be styled with the ".jqplot-mekko-barLabel" css class.</p>
-<pre>
-barLabels = ['Mickey Mouse', 'Donald Duck', 'Goofy'];
-axes:{xaxis:{barLabels:barLabels}}
-</pre>
-
-    <div id="chart1" style="width:500px; height:300px;"></div>
-    
-    <p>You can add a secondary x axes, and the tick spacing of the axes can be separately controlled with the "tickMode" option.  "bar" will produce tics at bar boundaries, "even" will produce evenly spaced ticks.  If you set the axes max greater than the sum of the data range (the maximum x value), the plot will be padded.  Note that you should set the max on both axes to the same value.</p>
-
-<pre>
-axes:{
-    xaxis:{
-        barLabels:barLabels,
-        max: 175
-    }, 
-    x2axis:{
-        show:true, 
-        tickMode:'even', 
-        max: 175
-    }
-}
-</pre>
-
-    <p>Here the borders between chart areas have been given a custom color using the "borderColor" option on the series renderer.</p>
-    
-<pre>
-    seriesDefaults:{renderer:$.jqplot.MekkoRenderer, rendererOptions: {borderColor: '#dddddd'}}
-</pre>
-
-    <p>Additionally, the legend can be placed "outside" (the default for a mekko chart) or "inside" of the grid area with the "placement" option on the legend renderer.</p>
-
-<pre>
-legend:{
-    show:true, 
-    rendererOptions:{placement: "insideGrid"}, 
-    location:'e'
-},
-</pre>
-    
-    <div id="chart2" style="width:500px; height:300px;"></div>
-    
-    <p>Legend labels can be specified independently of the series with the "labels" option on the legend.  These will override any labels specified with the series. There are also options to control the number of rows and number of columns in the legend as well as placement.</p>
-    
-    <p>Here the legend is positioned to the "north" and set to render 1 row tall (number of columns determined automatically).  Note that an extra css specification was added to pad the bottom of the title of this chart to give room for the legend above the plot.</p>
-    
-<pre>
-legendLabels = ['hotels', 'rides', 'buses', 'instruments', 'totes'];
-
-legend:{
-    show:true, 
-    location: 'n',
-    labels: legendLabels,
-    rendererOptions:{numberRows: 1, placement: "outside"}
-},    
-</pre>
-
-    <p>Also, the borders between the chart areas have been turned off with the "showBorders: false" option.</p>
-    
-<pre>
-    seriesDefaults:{renderer:$.jqplot.MekkoRenderer, rendererOptions: {showBorders: false}}
-</pre>
-
-    <div id="chart3" style="width:500px; height:300px;"></div>
-
-<script type="text/javascript" class="code">
-$(document).ready(function(){
-    var bar1 = [['shirts', 8],['hats', 14],['shoes', 6],['gloves', 16],['dolls', 12]];
-    var bar2 = [15,6,9,13,6];
-    var bar3 = [['grumpy',4],['sneezy',2],['happy',7],['sleepy',9],['doc',7]];
-    var barLabels = ['Mickey Mouse', 'Donald Duck', 'Goofy'];
-
-    var plot1 = $.jqplot('chart1', [bar1, bar2, bar3], {
-        title: 'Revenue Breakdown per Character',
-        seriesDefaults:{renderer:$.jqplot.MekkoRenderer},
-        legend:{show:true},
-        axesDefaults:{
-            renderer:$.jqplot.MekkoAxisRenderer
-        },
-        axes:{
-            xaxis:{ 
-                barLabels:barLabels,
-                tickOptions:{formatString:'$%dM'}
-            }
-        }
-    });
-});
-</script>
-
-<script type="text/javascript" class="code">
-$(document).ready(function(){
-    var bar1 = [['shirts', 8],['hats', 14],['shoes', 6],['gloves', 16],['dolls', 12]];
-    var bar2 = [15,6,9,13,6];
-    var bar3 = [['grumpy',4],['sneezy',2],['happy',7],['sleepy',9],['doc',7]];
-    var barLabels = ['Mickey Mouse', 'Donald Duck', 'Goofy'];
-
-    var plot2 = $.jqplot('chart2', [bar1, bar2, bar3], {
-        title: 'Revenue Breakdown per Character',
-        seriesDefaults:{renderer:$.jqplot.MekkoRenderer, rendererOptions: {borderColor: '#dddddd'}},
-        legend:{
-            show:true, 
-            rendererOptions:{placement: "insideGrid"}, 
-            location:'e'
-        },
-        axesDefaults:{
-            renderer:$.jqplot.MekkoAxisRenderer, 
-            tickOptions:{}
-        },
-        axes:{
-            xaxis:{
-                barLabels:barLabels,
-				rendererOptions: {
-				    barLabelOptions: {
-				      angle: -35
-				    },
-    				barLabelRenderer: $.jqplot.CanvasAxisLabelRenderer
-				}, 
-                max: 175,
-                tickOptions:{formatString:'$%dM'}
-            }, 
-            x2axis:{
-                show:true, 
-                tickMode:'even', 
-                max: 175,
-                tickOptions:{formatString:'$%dM'}
-            }
-        }
-    });
-});
-</script>
-
-<script type="text/javascript" class="code">
-$(document).ready(function(){
-    var bar1 = [['shirts', 8],['hats', 14],['shoes', 6],['gloves', 16],['dolls', 12]];
-    var bar2 = [15,6,9,13,6];
-    var bar3 = [['grumpy',4],['sneezy',2],['happy',7],['sleepy',9],['doc',7]];
-    var barLabels = ['Mickey Mouse', 'Donald Duck', 'Goofy'];
-
-    var legendLabels = ['hotels', 'rides', 'buses', 'instruments', 'totes'];
-    
-    var plot3 = $.jqplot('chart3', [bar1, bar2, bar3], {
-        title: 'Revenue Breakdown per Character',
-        seriesDefaults:{renderer:$.jqplot.MekkoRenderer, rendererOptions: {showBorders: false}},
-        legend:{
-            show:true, 
-            location: 'n',
-            labels: legendLabels,
-            rendererOptions:{numberRows: 1, placement: "outside"}
-        },
-        axesDefaults:{
-            renderer:$.jqplot.MekkoAxisRenderer, 
-            tickOptions:{showGridline:false}
-        },
-        axes:{
-            xaxis:{
-                tickMode:"bar", 
-                tickOptions:{formatString:'$%dM'}
-            }
-        }
-    });
-});
-</script>
-
-<!-- End example scripts -->
-
-<!-- Don't touch this! -->
-
-
-    <script class="include" type="text/javascript" src="../jquery.jqplot.min.js"></script>
-    <script type="text/javascript" src="syntaxhighlighter/scripts/shCore.min.js"></script>
-    <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushJScript.min.js"></script>
-    <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushXml.min.js"></script>
-<!-- End Don't touch this! -->
-
-<!-- Additional plugins go here -->
-
-  <script class="include" type="text/javascript" src="../jquery.jqplot.min.js"></script>
-  <script class="include" type="text/javascript" src="../plugins/jqplot.mekkoRenderer.min.js"></script>
-  <script class="include" type="text/javascript" src="../plugins/jqplot.mekkoAxisRenderer.min.js"></script>
-  <script class="include" type="text/javascript" src="../plugins/jqplot.canvasTextRenderer.min.js"></script>
-  <script class="include" type="text/javascript" src="../plugins/jqplot.canvasAxisLabelRenderer.min.js"></script>
-
-<!-- End additional plugins -->
-
-
-	</div>	
-	<script type="text/javascript" src="example.min.js"></script>
-
-</body>
-
-
-</html>
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/meritOrder.html b/wqflask/wqflask/static/packages/jqplot/examples/meritOrder.html
deleted file mode 100755
index 67191726..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/meritOrder.html
+++ /dev/null
@@ -1,103 +0,0 @@
-<!DOCTYPE html>
-
-<html>
-<head>
-	
-	<title>Merit Order Charts</title>
-
-    <link class="include" rel="stylesheet" type="text/css" href="../jquery.jqplot.min.css" />
-    <link rel="stylesheet" type="text/css" href="examples.min.css" />
-    <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shCoreDefault.min.css" />
-    <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shThemejqPlot.min.css" />
-  
-  <!--[if lt IE 9]><script language="javascript" type="text/javascript" src="../excanvas.js"></script><![endif]-->
-    <script class="include" type="text/javascript" src="../jquery.min.js"></script>
-    
-   
-</head>
-<body>
-    <div class="logo">
-   <div class="nav">
-   <a class="nav" href="../../../index.php"><span>&gt;</span>Home</a>
-   <a class="nav"  href="../../../docs/"><span>&gt;</span>Docs</a>
-   <a class="nav"  href="../../download/"><span>&gt;</span>Download</a>
-   <a class="nav" href="../../../info.php"><span>&gt;</span>Info</a>
-   <a class="nav"  href="../../../donate.php"><span>&gt;</span>Donate</a>
-   </div>
-</div>
-    <div class="example-content">
-
-    <div class="example-nav">
-  <a href="mekkoCharts.html">Previous</a> <a href="./">Examples</a> <a href="meterGauge.html">Next</a></div>
-
-      
-<!-- Example scripts go here -->
-  <style type="text/css" media="screen">
-    body {
-        margin: 15px;
-        font-family: "Trebuchet MS", Arial, Helvetica, sans-serif;
-    }
-    
-    p {
-        margin-top: 20px;
-        margin-bottom: 20px;
-    }
-    
-    .jqplot-target {
-        margin: 60px;
-    }
-    
-    pre {
-        padding: 10px;
-        background-color: #efead9;
-        margin: 10px;
-    }
-    
-    #chart3 .jqplot-title {
-        padding-bottom: 40px;
-    }
-  </style>
-
-    <div id="chart1" style="width:500px; height:300px;"></div>
-
-<script type="text/javascript" class="code">
-$(document).ready(function(){
-  var data = [[473.34, 5.89], [232.35, 25.45], [2387.56, 28.55], [1484.8, 31.98], [0, 32.52], [0, 33.31], [0, 37.63], [3675.31, 47.98], [0, 61.06], [0, 61.6], [3035.76, 65.05], [3437.74, 70.62], [192.53, 75.32], [426.12, 84.5], [0, 117.45], [0, 139.08]];
-
-    plot1 = $.jqplot('chart1', [[data[0]], [data[1]], [data[2]], [data[3]]], {
-        seriesDefaults:{renderer:$.jqplot.MeritOrderRenderer},
-        legend:{show:false},
-        axesDefaults:{
-            renderer:$.jqplot.MeritOrderAxisRenderer
-        }
-    });
-});
-</script>
-
-<!-- End example scripts -->
-
-<!-- Don't touch this! -->
-
-
-    <script class="include" type="text/javascript" src="../jquery.jqplot.min.js"></script>
-    <script type="text/javascript" src="syntaxhighlighter/scripts/shCore.min.js"></script>
-    <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushJScript.min.js"></script>
-    <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushXml.min.js"></script>
-<!-- End Don't touch this! -->
-
-<!-- Additional plugins go here -->
-  <script class="include" type="text/javascript" src="../plugins/jqplot.meritOrderRenderer.min.js"></script>
-  <script class="include" type="text/javascript" src="../plugins/jqplot.meritOrderAxisRenderer.min.js"></script>
-  <script class="include" type="text/javascript" src="../plugins/jqplot.canvasTextRenderer.min.js"></script>
-  <script class="include" type="text/javascript" src="../plugins/jqplot.canvasAxisLabelRenderer.min.js"></script>
-
-<!-- End additional plugins -->
-
-
-	</div>	
-	<script type="text/javascript" src="example.min.js"></script>
-
-</body>
-
-
-</html>
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/meterGauge.html b/wqflask/wqflask/static/packages/jqplot/examples/meterGauge.html
deleted file mode 100755
index bbb278ef..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/meterGauge.html
+++ /dev/null
@@ -1,179 +0,0 @@
-<!DOCTYPE html>
-
-<html>
-<head>
-	
-	<title>Meter Gauge</title>
-
-    <link class="include" rel="stylesheet" type="text/css" href="../jquery.jqplot.min.css" />
-    <link rel="stylesheet" type="text/css" href="examples.min.css" />
-    <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shCoreDefault.min.css" />
-    <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shThemejqPlot.min.css" />
-  
-  <!--[if lt IE 9]><script language="javascript" type="text/javascript" src="../excanvas.js"></script><![endif]-->
-    <script class="include" type="text/javascript" src="../jquery.min.js"></script>
-    
-   
-</head>
-<body>
-    <div class="logo">
-   <div class="nav">
-   <a class="nav" href="../../../index.php"><span>&gt;</span>Home</a>
-   <a class="nav"  href="../../../docs/"><span>&gt;</span>Docs</a>
-   <a class="nav"  href="../../download/"><span>&gt;</span>Download</a>
-   <a class="nav" href="../../../info.php"><span>&gt;</span>Info</a>
-   <a class="nav"  href="../../../donate.php"><span>&gt;</span>Donate</a>
-   </div>
-</div>
-    <div class="example-content">
-
-    <div class="example-nav">
-  <a href="meritOrder.html">Previous</a> <a href="./">Examples</a> <a href="multipleBarColors.html">Next</a></div>
-
-      
-<!-- Example scripts go here -->
-
-
-<style type="text/css">
-
-.plot {
-    margin-bottom: 30px;
-    margin-left: auto;
-    margin-right: auto;
-}
-
-#chart0 .jqplot-meterGauge-label {
-    font-size: 10pt;
-}
-
-#chart1 .jqplot-meterGauge-tick {
-    font-size: 6pt;
-}
-
-#chart2 .jqplot-meterGauge-tick {
-    font-size: 8pt;
-}
-
-#chart3 .jqplot-meterGauge-tick, #chart0 .jqplot-meterGauge-tic {
-    font-size: 10pt;
-}
-
-#chart4 .jqplot-meterGauge-tick, #chart4 .jqplot-meterGauge-label {
-    font-size: 12pt;
-}
-</style>
-
-
-<p>A meter gauge plot shows a data value in a speedometer style gauge.  The "series" in consists of a single data value that positions the needle on the gauge.  The span of the gauge will be automatically determined, or can be set with the "min" and "max" values in the "rendererOptions" of the series.  The plot below also specifies a chart title and a "label" for the gauge.</p>
-
-<div id="chart0" class="plot" style="width:250px;height:170px;"></div>
-
-<p>For small gauges, it can be desirable to turn off the tick labels by setting the "showTickLabels" option in the rendererOptions to false.  Also, colored interval bands can be specified.  The interval ranges are specified as an array of values the "intervals" option and custom colors for each interval can be specified with the "intervalColors" option.</p>
-
-<div id="chart1" class="plot" style="width:120px;height:80px;"></div>
-
-<p>The inner and outer radii of the interval band will automatically adjust when tick Labels are turned on.  Also, the gauge minimum and maximum can be specified with the "min" and "max" options in the rendererOptions.</p>
-
-<div id="chart3" class="plot" style="width:300px;height:180px;"></div>
-
-<p>The inner and outer radii of the interval band can also be specified with the "intervalInnerRadius" and "intervalOuterRadius" options.  In the plot below, the "labelPosition" option was set to "bottom" to put the gauge label below the plot.  The "labelHeightAdjust" option was set to -5 to raise the label slightly (5 pixels) to place it closer to the gauge.</p>
-<p>The gauge automatically resizes to best fit the container.  The font size of the tick labels and gauge labels do not size to the container, however.  The font size of the tick labels can be controlled by styling the css ".jqplot-meterGauge-ticks" class and the gauge label by the "jqplot-meterGauge-label" class.</p>
-<div id="chart4" class="plot" style="width:500px;height:300px;"></div>
-
-
-<script type="text/javascript" class="code">
-$(document).ready(function(){
-   s1 = [1];
-
-   plot0 = $.jqplot('chart0',[s1],{
-       title: 'Network Speed',
-       seriesDefaults: {
-           renderer: $.jqplot.MeterGaugeRenderer,
-           rendererOptions: {
-               label: 'MB/s'
-           }
-       }
-   });
-});
-</script>
-
-<script type="text/javascript" class="code">
-$(document).ready(function(){
-   s1 = [1];
-
-   plot1 = $.jqplot('chart1',[s1],{
-       seriesDefaults: {
-           renderer: $.jqplot.MeterGaugeRenderer,
-           rendererOptions: {
-               showTickLabels: false,
-               intervals:[2,3,4],
-               intervalColors:['#66cc66', '#E7E658', '#cc6666']
-           }
-       }
-   });
-});
-</script>
-
-<script type="text/javascript" class="code">
-$(document).ready(function(){
-   s1 = [322];
-
-   plot3 = $.jqplot('chart3',[s1],{
-       seriesDefaults: {
-           renderer: $.jqplot.MeterGaugeRenderer,
-           rendererOptions: {
-               min: 100,
-               max: 500,
-               intervals:[200, 300, 400, 500],
-               intervalColors:['#66cc66', '#93b75f', '#E7E658', '#cc6666']
-           }
-       }
-   });
-});
-</script>
-
-<script type="text/javascript" class="code">
-$(document).ready(function(){
-   s1 = [52200];
-
-   plot4 = $.jqplot('chart4',[s1],{
-       seriesDefaults: {
-           renderer: $.jqplot.MeterGaugeRenderer,
-           rendererOptions: {
-               label: 'Metric Tons per Year',
-               labelPosition: 'bottom',
-               labelHeightAdjust: -5,
-               intervalOuterRadius: 85,
-               ticks: [10000, 30000, 50000, 70000],
-               intervals:[22000, 55000, 70000],
-               intervalColors:['#66cc66', '#E7E658', '#cc6666']
-           }
-       }
-   });
-});
-</script>
-<!-- End example scripts -->
-
-<!-- Don't touch this! -->
-
-
-    <script class="include" type="text/javascript" src="../jquery.jqplot.min.js"></script>
-    <script type="text/javascript" src="syntaxhighlighter/scripts/shCore.min.js"></script>
-    <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushJScript.min.js"></script>
-    <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushXml.min.js"></script>
-<!-- End Don't touch this! -->
-
-<!-- Additional plugins go here -->
-
-  <script class="include" type="text/javascript" src="../plugins/jqplot.meterGaugeRenderer.min.js"></script>
-
-<!-- End additional plugins -->
-
-
-	</div>	
-	<script type="text/javascript" src="example.min.js"></script>
-
-</body>
-
-
-</html>
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/multipleBarColors.html b/wqflask/wqflask/static/packages/jqplot/examples/multipleBarColors.html
deleted file mode 100755
index 0b64f86b..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/multipleBarColors.html
+++ /dev/null
@@ -1,131 +0,0 @@
-<!DOCTYPE html>
-
-<html>
-<head>
-	
-	<title>Bar Colors Example</title>
-
-    <link class="include" rel="stylesheet" type="text/css" href="../jquery.jqplot.min.css" />
-    <link rel="stylesheet" type="text/css" href="examples.min.css" />
-    <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shCoreDefault.min.css" />
-    <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shThemejqPlot.min.css" />
-  
-  <!--[if lt IE 9]><script language="javascript" type="text/javascript" src="../excanvas.js"></script><![endif]-->
-    <script class="include" type="text/javascript" src="../jquery.min.js"></script>
-    
-   
-</head>
-<body>
-    <div class="logo">
-   <div class="nav">
-   <a class="nav" href="../../../index.php"><span>&gt;</span>Home</a>
-   <a class="nav"  href="../../../docs/"><span>&gt;</span>Docs</a>
-   <a class="nav"  href="../../download/"><span>&gt;</span>Download</a>
-   <a class="nav" href="../../../info.php"><span>&gt;</span>Info</a>
-   <a class="nav"  href="../../../donate.php"><span>&gt;</span>Donate</a>
-   </div>
-</div>
-    <div class="example-content">
-
-    <div class="example-nav">
-  <a href="meterGauge.html">Previous</a> <a href="./">Examples</a> <a href="openerNoHeader.html">Next</a></div>
-
-      
-<!-- Example scripts go here -->
-
-<div id="chart1" class="example-chart" style="height:300px;width:500px"></div>
-<div id="chart2" class="example-chart" style="height:300px;width:500px"></div>
-<div id="chart3" class="example-chart" style="height:300px;width:500px"></div>
-
-<script type="text/javascript" class="code">
-$(document).ready(function(){
-    // A Bar chart from a single series will have all the bar colors the same.
-    var line1 = [['Nissan', 4],['Porche', 6],['Acura', 2],['Aston Martin', 5],['Rolls Royce', 6]];
-
-    $('#chart1').jqplot([line1], {
-        title:'Default Bar Chart',
-        seriesDefaults:{
-            renderer:$.jqplot.BarRenderer,
-        },
-        axes:{
-            xaxis:{
-                renderer: $.jqplot.CategoryAxisRenderer
-            }
-        }
-    });
-});
-</script>
-
-<script type="text/javascript" class="code">
-$(document).ready(function(){
-    var line1 = [['Nissan', 4],['Porche', 6],['Acura', 2],['Aston Martin', 5],['Rolls Royce', 6]];
-
-    $('#chart2').jqplot([line1], {
-        title:'Bar Chart with Varying Colors',
-        seriesDefaults:{
-            renderer:$.jqplot.BarRenderer,
-            rendererOptions: {
-                // Set the varyBarColor option to true to use different colors for each bar.
-                // The default series colors are used.
-                varyBarColor: true
-            }
-        },
-        axes:{
-            xaxis:{
-                renderer: $.jqplot.CategoryAxisRenderer
-            }
-        }
-    });
-});
-</script>
-
-<script type="text/javascript" class="code">
-$(document).ready(function(){
-    var line1 = [['Nissan', 4],['Porche', 6],['Acura', 2],['Aston Martin', 5],['Rolls Royce', 6]];
-
-    $('#chart3').jqplot([line1], {
-        title:'Bar Chart with Custom Colors',
-        // Provide a custom seriesColors array to override the default colors.
-        seriesColors:['#85802b', '#00749F', '#73C774', '#C7754C', '#17BDB8'],
-        seriesDefaults:{
-            renderer:$.jqplot.BarRenderer,
-            rendererOptions: {
-                // Set varyBarColor to tru to use the custom colors on the bars.
-                varyBarColor: true
-            }
-        },
-        axes:{
-            xaxis:{
-                renderer: $.jqplot.CategoryAxisRenderer
-            }
-        }
-    });
-});
-</script>
-
-<!-- End example scripts -->
-
-<!-- Don't touch this! -->
-
-
-    <script class="include" type="text/javascript" src="../jquery.jqplot.min.js"></script>
-    <script type="text/javascript" src="syntaxhighlighter/scripts/shCore.min.js"></script>
-    <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushJScript.min.js"></script>
-    <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushXml.min.js"></script>
-<!-- End Don't touch this! -->
-
-<!-- Additional plugins go here -->
-
-    <script language="javascript" type="text/javascript" src="../plugins/jqplot.categoryAxisRenderer.min.js"></script>
-    <script language="javascript" type="text/javascript" src="../plugins/jqplot.barRenderer.min.js"></script>
-
-<!-- End additional plugins -->
-
-
-	</div>	
-	<script type="text/javascript" src="example.min.js"></script>
-
-</body>
-
-
-</html>
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/nav.inc b/wqflask/wqflask/static/packages/jqplot/examples/nav.inc
deleted file mode 100755
index d54a4bf9..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/nav.inc
+++ /dev/null
@@ -1,40 +0,0 @@
-<div class="example-nav">
-  <?php
-    $tmpnames = scandir('./');
-    $skip = array('opener.php', 'bodyOpener.php', 'nav.php', 'closer.html', 'commonScripts.html', 'topbanner.html');
-    
-    foreach( $tmpnames as $value) {
-        if (preg_match('/^[a-z0-9][a-z0-9_\-]+\.(html|php)$/i', $value)) {
-          if (! in_array($value, $skip)) {
-            $files[] = $value;
-          }
-        }
-    }
-    $fcount = count($files);
-    $parts = explode("/", $_SERVER['SCRIPT_NAME']);
-    $curfile = end($parts);
-    $prevfile = '';
-    $nextfile = '';
-    // print_r($files);
-    
-    for ($i=0; $i<$fcount; $i++) {
-      if ($curfile == $files[$i]) {
-        if ($i == 0) {
-          $prevfile = $files[$fcount-1];
-          $nextfile = $files[1];
-        }
-        elseif ($i == $fcount-1) {
-          $prevfile = $files[$i-1];
-          $nextfile = $files[0];
-        }
-        else {
-          $prevfile = $files[$i-1];
-          $nextfile = $files[$i+1];
-        }
-      }  
-    }
-    
-    echo '<a href="'.$prevfile.'">Previous</a> <a href="./">Examples</a> <a href="'.$nextfile.'">Next</a>';
-    
-  ?>
-</div>
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/pie-donut-charts.html b/wqflask/wqflask/static/packages/jqplot/examples/pie-donut-charts.html
deleted file mode 100755
index ddae1477..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/pie-donut-charts.html
+++ /dev/null
@@ -1,160 +0,0 @@
-<!DOCTYPE html>
-
-<html>
-<head>
-	
-	<title>Pie and Donut Charts</title>
-
-    <link class="include" rel="stylesheet" type="text/css" href="../jquery.jqplot.min.css" />
-    <link rel="stylesheet" type="text/css" href="examples.min.css" />
-    <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shCoreDefault.min.css" />
-    <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shThemejqPlot.min.css" />
-  
-  <!--[if lt IE 9]><script language="javascript" type="text/javascript" src="../excanvas.js"></script><![endif]-->
-    <script class="include" type="text/javascript" src="../jquery.min.js"></script>
-    
-   
-</head>
-<body>
-    <div class="logo">
-   <div class="nav">
-   <a class="nav" href="../../../index.php"><span>&gt;</span>Home</a>
-   <a class="nav"  href="../../../docs/"><span>&gt;</span>Docs</a>
-   <a class="nav"  href="../../download/"><span>&gt;</span>Download</a>
-   <a class="nav" href="../../../info.php"><span>&gt;</span>Info</a>
-   <a class="nav"  href="../../../donate.php"><span>&gt;</span>Donate</a>
-   </div>
-</div>
-    <div class="example-content">
-
-    <div class="example-nav">
-  <a href="openerNoHeader.html">Previous</a> <a href="./">Examples</a> <a href="pieTest.html">Next</a></div>
-
-      
-<!-- Example scripts go here -->
-  <style type="text/css">
-
-    .jqplot-data-label {
-      /*color: #444;*/
-/*      font-size: 1.1em;*/
-    }
-  </style>
-
-<p>jqPlot bakes up the best pie and donut charts you've ever tasted!  Like bar and filled line plots, pie and donut slices highlight when you mouse over.</p>
-
-<div id="chart1" style="height:300px; width:500px;"></div>
-
-<pre class="code prettyprint brush: js"></pre>
-
-<p>Too many calories in that pie?  Get all the taste without the filling!  Highlighting and data labels are still supported.  You can even cut out the slices!</p>
-
-<div id="chart2" style="height:300px; width:500px;"></div>
-
-<pre class="code prettyprint brush: js"></pre>
-
-<p>Coming straight from the same bakery, donut plots have nearly identical options as pie charts.</p>
-
-<div id="chart3" style="height:300px; width:500px;"></div>
-
-<pre class="code prettyprint brush: js"></pre>
-  
-<script class="code" type="text/javascript">
-$(document).ready(function(){
-  var data = [
-    ['Heavy Industry', 12],['Retail', 9], ['Light Industry', 14], 
-    ['Out of home', 16],['Commuting', 7], ['Orientation', 9]
-  ];
-  var plot1 = jQuery.jqplot ('chart1', [data], 
-    { 
-      seriesDefaults: {
-        // Make this a pie chart.
-        renderer: jQuery.jqplot.PieRenderer, 
-        rendererOptions: {
-          // Put data labels on the pie slices.
-          // By default, labels show the percentage of the slice.
-          showDataLabels: true
-        }
-      }, 
-      legend: { show:true, location: 'e' }
-    }
-  );
-});
-</script>
-
-<script class="code" type="text/javascript">
-$(document).ready(function(){
-  var data = [
-    ['Heavy Industry', 12],['Retail', 9], ['Light Industry', 14], 
-    ['Out of home', 16],['Commuting', 7], ['Orientation', 9]
-  ];
-  var plot2 = jQuery.jqplot ('chart2', [data], 
-    {
-      seriesDefaults: {
-        renderer: jQuery.jqplot.PieRenderer, 
-        rendererOptions: {
-          // Turn off filling of slices.
-          fill: false,
-          showDataLabels: true, 
-          // Add a margin to seperate the slices.
-          sliceMargin: 4, 
-          // stroke the slices with a little thicker line.
-          lineWidth: 5
-        }
-      }, 
-      legend: { show:true, location: 'e' }
-    }
-  );
-});
-</script>
-
-
-<script class="code" type="text/javascript">
-$(document).ready(function(){
-  var s1 = [['a',6], ['b',8], ['c',14], ['d',20]];
-  var s2 = [['a', 8], ['b', 12], ['c', 6], ['d', 9]];
-  
-  var plot3 = $.jqplot('chart3', [s1, s2], {
-    seriesDefaults: {
-      // make this a donut chart.
-      renderer:$.jqplot.DonutRenderer,
-      rendererOptions:{
-        // Donut's can be cut into slices like pies.
-        sliceMargin: 3,
-        // Pies and donuts can start at any arbitrary angle.
-        startAngle: -90,
-        showDataLabels: true,
-        // By default, data labels show the percentage of the donut/pie.
-        // You can show the data 'value' or data 'label' instead.
-        dataLabels: 'value'
-      }
-    }
-  });
-});
-</script>
-
-<!-- End example scripts -->
-
-<!-- Don't touch this! -->
-
-
-    <script class="include" type="text/javascript" src="../jquery.jqplot.min.js"></script>
-    <script type="text/javascript" src="syntaxhighlighter/scripts/shCore.min.js"></script>
-    <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushJScript.min.js"></script>
-    <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushXml.min.js"></script>
-<!-- End Don't touch this! -->
-
-<!-- Additional plugins go here -->
-
-    <script class="include" language="javascript" type="text/javascript" src="../plugins/jqplot.pieRenderer.min.js"></script>
-    <script class="include" language="javascript" type="text/javascript" src="../plugins/jqplot.donutRenderer.min.js"></script>
-
-<!-- End additional plugins -->
-
-
-	</div>	
-	<script type="text/javascript" src="example.min.js"></script>
-
-</body>
-
-
-</html>
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/pieTest.html b/wqflask/wqflask/static/packages/jqplot/examples/pieTest.html
deleted file mode 100755
index 43a11f13..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/pieTest.html
+++ /dev/null
@@ -1,187 +0,0 @@
-<!DOCTYPE html>
-
-<html>
-<head>
-	
-	<title>Pie Charts and Options</title>
-
-    <link class="include" rel="stylesheet" type="text/css" href="../jquery.jqplot.min.css" />
-    <link rel="stylesheet" type="text/css" href="examples.min.css" />
-    <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shCoreDefault.min.css" />
-    <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shThemejqPlot.min.css" />
-  
-  <!--[if lt IE 9]><script language="javascript" type="text/javascript" src="../excanvas.js"></script><![endif]-->
-    <script class="include" type="text/javascript" src="../jquery.min.js"></script>
-    
-   
-</head>
-<body>
-    <div class="logo">
-   <div class="nav">
-   <a class="nav" href="../../../index.php"><span>&gt;</span>Home</a>
-   <a class="nav"  href="../../../docs/"><span>&gt;</span>Docs</a>
-   <a class="nav"  href="../../download/"><span>&gt;</span>Download</a>
-   <a class="nav" href="../../../info.php"><span>&gt;</span>Info</a>
-   <a class="nav"  href="../../../donate.php"><span>&gt;</span>Donate</a>
-   </div>
-</div>
-    <div class="example-content">
-
-    <div class="example-nav">
-  <a href="pie-donut-charts.html">Previous</a> <a href="./">Examples</a> <a href="pieTest4.html">Next</a></div>
-
-      
-<!-- Example scripts go here -->
-
-
-    <div id="pie1" style="margin-top:20px; margin-left:20px; width:200px; height:200px;"></div>
-
-    <div id="pie2" style="margin-top:20px; margin-left:20px; width:200px; height:200px;"></div>
-
-    <div id="pie3" style="margin-top:20px; margin-left:20px; width:200px; height:200px;"></div>
-
-    <div id="pie4" style="margin-top:20px; margin-left:20px; width:200px; height:200px;"></div>
-
-    <div id="pie5" style="margin-top:20px; margin-left:20px; width:400px; height:240px;"></div>
-
-    <div id="pie6" style="margin-top:20px; margin-left:20px; width:400px; height:240px;"></div>
-
-    <div id="pie7" style="margin-top:20px; margin-left:20px; width:400px; height:240px;"></div>
-
-    <div id="pie8" style="margin-top:20px; margin-left:20px; width:300px; height:300px;"></div>
-
-
-  
-<script class="code" type="text/javascript">$(document).ready(function(){
-    var plot1 = $.jqplot('pie1', [[['a',25],['b',14],['c',7]]], {
-        gridPadding: {top:0, bottom:38, left:0, right:0},
-        seriesDefaults:{
-            renderer:$.jqplot.PieRenderer, 
-            trendline:{ show:false }, 
-            rendererOptions: { padding: 8, showDataLabels: true }
-        },
-        legend:{
-            show:true, 
-            placement: 'outside', 
-            rendererOptions: {
-                numberRows: 1
-            }, 
-            location:'s',
-            marginTop: '15px'
-        }       
-    });
-});</script>
-
-<script class="code" type="text/javascript">$(document).ready(function(){
-    var plot2 = $.jqplot('pie2', [[['a',25],['b',14],['c',7]]], {
-        seriesDefaults:{ renderer:$.jqplot.PieRenderer, trendline:{ show: true } },
-        legend:{ show: true }    
-    });
-});</script>
-
-<script class="code" type="text/javascript">$(document).ready(function(){    
-    var plot3 = $.jqplot('pie3', [[['a',1],['b',9],['c',1]]], {
-        seriesDefaults:{
-            shadow: false, 
-            renderer:$.jqplot.PieRenderer, 
-            rendererOptions:{
-                sliceMargin: 4, 
-                // rotate the starting position of the pie around to 12 o'clock.
-                startAngle: -90
-            }
-        },
-        legend:{ show: true }      
-    });
-});</script>
- 
-<script class="code" type="text/javascript">$(document).ready(function(){   
-    var plot4 = $.jqplot('pie4', [[["a",0],["b",1],["c",.01]]], {
-        seriesDefaults:{
-            renderer:$.jqplot.PieRenderer, 
-            rendererOptions:{ sliceMargin: 0 }
-        },
-        legend:{ show: true }      
-    });
-});</script> 
-  
-<script class="code" type="text/javascript">$(document).ready(function(){  
-    var plot5 = $.jqplot('pie5', [[["none",23],["error",0],["click",5],["impression",25]]], {
-        seriesDefaults:{ renderer: $.jqplot.PieRenderer },
-        legend:{ show:true }      
-    });   
-});</script>
-  
-<script class="code" type="text/javascript">$(document).ready(function(){  
-    var plot6 = $.jqplot('pie6', [[["none",0],["error",0],["click",0],["impression",0]]], {
-        seriesDefaults:{ renderer: $.jqplot.PieRenderer },
-        legend:{ show:true }     
-    });   
-});</script>
-  
-<script class="code" type="text/javascript">$(document).ready(function(){  
-    var plot7 = $.jqplot('pie7', [[["all", 10]]], {
-        seriesDefaults:{
-            renderer:$.jqplot.PieRenderer,
-            rendererOptions: {
-                showDataLabels: true
-            }
-        },
-        legend:{show:true}      
-    });   
-});</script>
-  
-<script class="code" type="text/javascript">$(document).ready(function(){ 
-    var s1 = [['Sony',7], ['Samsumg',13.3], ['LG',14.7], ['Vizio',5.2], ['Insignia', 1.2]];
-        
-    var plot8 = $.jqplot('pie8', [s1], {
-        grid: {
-            drawBorder: false, 
-            drawGridlines: false,
-            background: '#ffffff',
-            shadow:false
-        },
-        axesDefaults: {
-            
-        },
-        seriesDefaults:{
-            renderer:$.jqplot.PieRenderer,
-            rendererOptions: {
-                showDataLabels: true
-            }
-        },
-        legend: {
-            show: true,
-            rendererOptions: {
-                numberRows: 1
-            },
-            location: 's'
-        }
-    }); 
-});</script>
-
-
-<!-- End example scripts -->
-
-<!-- Don't touch this! -->
-
-
-    <script class="include" type="text/javascript" src="../jquery.jqplot.min.js"></script>
-    <script type="text/javascript" src="syntaxhighlighter/scripts/shCore.min.js"></script>
-    <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushJScript.min.js"></script>
-    <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushXml.min.js"></script>
-<!-- End Don't touch this! -->
-
-<!-- Additional plugins go here -->
-
-  <script class="include" type="text/javascript" src="../plugins/jqplot.pieRenderer.min.js"></script>
-
-<!-- End additional plugins -->
-
-
-	</div>	
-	<script type="text/javascript" src="example.min.js"></script>
-
-</body>
-
-
-</html>
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/pieTest2.js b/wqflask/wqflask/static/packages/jqplot/examples/pieTest2.js
deleted file mode 100755
index 91073fe6..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/pieTest2.js
+++ /dev/null
@@ -1,80 +0,0 @@
-$(document).ready(function(){
-
-    $.jqplot.config.enablePlugins = true;
-
-    s1 = [['a',2], ['b',6], ['c',7], ['d',10]];
-    s2 = [['a', 4], ['b', 7], ['c', 6], ['d', 3]];
-    s3 = [['a', 2], ['b', 1], ['c', 3], ['d', 3]];
-    s4 = [['a', 4], ['b', 3], ['c', 2], ['d', 1]];
-    
-    s5 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1];
-    
-    plot1 = $.jqplot('chart1', [s1], {
-        seriesDefaults:{
-            renderer:$.jqplot.PieRenderer
-        },
-        legend: {show:true}
-    });
-    
-    plot2 = $.jqplot('chart2', [s2], {
-        seriesDefaults: {
-            renderer:$.jqplot.PieRenderer,
-            rendererOptions:{
-                sliceMargin: 4,
-                startAngle: -90
-            }
-        }
-    });
-
-    plot3 = $.jqplot('chart3', [s3], {
-        captureRightClick: true,
-        seriesDefaults:{
-            renderer:$.jqplot.PieRenderer,
-            shadow: false,
-            rendererOptions:{
-                startAngle: 90,
-                sliceMargin: 4,
-                highlightMouseDown: true
-            }
-        },
-        legend: {
-            show: true,
-            location: 'e',
-            placement: 'outside'
-        }      
-    });
-
-    plot5 = $.jqplot('chart5', [s5], {
-        seriesDefaults:{
-            renderer:$.jqplot.PieRenderer
-        }
-    });
-    
-    plot6 = $.jqplot('chart6', [[1,2,3,4]]);
-    
-    $('#chart1').bind('jqplotDataClick', 
-        function (ev, seriesIndex, pointIndex, data) {
-            $('#info1').html('series: '+seriesIndex+', point: '+pointIndex+', data: '+data);
-        }
-    );
-    
-    $('#chart2').bind('jqplotDataHighlight', 
-        function (ev, seriesIndex, pointIndex, data) {
-            $('#info2').html('series: '+seriesIndex+', point: '+pointIndex+', data: '+data);
-        }
-    );
-    
-    $('#chart2').bind('jqplotDataUnhighlight', 
-        function (ev) {
-            $('#info2').html('Nothing');
-        }
-    ); 
-    
-    $('#chart3').bind('jqplotDataRightClick', 
-        function (ev, seriesIndex, pointIndex, data) {
-            $('#info3').html('series: '+seriesIndex+', point: '+pointIndex+', data: '+data);
-        }
-    );  
-    
-    $(document).unload(function() {$('*').unbind(); });
-});
\ No newline at end of file
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/pieTest4.html b/wqflask/wqflask/static/packages/jqplot/examples/pieTest4.html
deleted file mode 100755
index ba8832c7..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/pieTest4.html
+++ /dev/null
@@ -1,258 +0,0 @@
-<!DOCTYPE html>
-
-<html>
-<head>
-	
-	<title>Pie Charts and Options 2</title>
-
-    <link class="include" rel="stylesheet" type="text/css" href="../jquery.jqplot.min.css" />
-    <link rel="stylesheet" type="text/css" href="examples.min.css" />
-    <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shCoreDefault.min.css" />
-    <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shThemejqPlot.min.css" />
-  
-  <!--[if lt IE 9]><script language="javascript" type="text/javascript" src="../excanvas.js"></script><![endif]-->
-    <script class="include" type="text/javascript" src="../jquery.min.js"></script>
-    
-   
-</head>
-<body>
-    <div class="logo">
-   <div class="nav">
-   <a class="nav" href="../../../index.php"><span>&gt;</span>Home</a>
-   <a class="nav"  href="../../../docs/"><span>&gt;</span>Docs</a>
-   <a class="nav"  href="../../download/"><span>&gt;</span>Download</a>
-   <a class="nav" href="../../../info.php"><span>&gt;</span>Info</a>
-   <a class="nav"  href="../../../donate.php"><span>&gt;</span>Donate</a>
-   </div>
-</div>
-    <div class="example-content">
-
-    <div class="example-nav">
-  <a href="pieTest.html">Previous</a> <a href="./">Examples</a> <a href="point-labels.html">Next</a></div>
-
-      
-<!-- Example scripts go here -->
-
-    <div id="chart1" style="margin-top:20px; margin-left:20px; width:460px; height:300px;"></div>
-    
-    <pre class="code brush:js"></pre>
- 
-    <div id="chart2" style="margin-top:20px; margin-left:20px; width:460px; height:300px;"></div>
-    
-    <pre class="code brush:js"></pre>
-
-    <div id="chart3" style="margin-top:20px; margin-left:20px; width:460px; height:300px;"></div>
-    <pre class="code brush:js"></pre>
-  
-    <div id="chart4" style="margin-top:20px; margin-left:20px; width:460px; height:300px;"></div>
-    <pre class="code brush:js"></pre>
-
-    <div id="chart5" style="margin-top:20px; margin-left:20px; width:460px; height:300px;"></div>
-    <pre class="code brush:js"></pre>
-
-    <div id="chart6" style="margin-top:20px; margin-left:20px; width:460px; height:300px;"></div>
-    <pre class="code brush:js"></pre>
-
-    <div id="chart7" style="margin-top:20px; margin-left:20px; width:460px; height:300px;"></div>
-    <pre class="code brush:js"></pre>
-
-    <div id="chart8" style="margin-top:20px; margin-left:20px; width:460px; height:300px;"></div>
-    <pre class="code brush:js"></pre>
-
-    <div id="chart9" style="margin-top:20px; margin-left:20px; width:460px; height:300px;"></div>
-    <pre class="code brush:js"></pre>
-
-    <div id="chart10" style="margin-top:20px; margin-left:20px; width:460px; height:300px;"></div>
-    <pre class="code brush:js"></pre>
-
-<script class="code" type="text/javascript">$(document).ready(function(){
-    jQuery.jqplot.config.enablePlugins = true;
-    plot1 = jQuery.jqplot('chart1', 
-        [[['Verwerkende FruedenStunde Companaziert Eine industrie', 9],['Retail', 8], ['Primaire producent', 7], 
-        ['Out of home', 6],['Groothandel', 5], ['Grondstof', 4], ['Consument', 3], ['Bewerkende industrie', 2]]], 
-        {
-            title: ' ', 
-            seriesDefaults: {
-        shadow: false, 
-        renderer: jQuery.jqplot.PieRenderer, 
-        rendererOptions: { padding: 2, sliceMargin: 2, showDataLabels: false } 
-      }, 
-            legend: { show:true, location: 'e' }
-        }
-    );
-});
-</script>
-
-
-<script class="code" type="text/javascript">$(document).ready(function(){
-  plot2 = jQuery.jqplot('chart2', 
-    [[['Verwerkende industrie', 9],['Retail', 0], ['Primaire producent', 0], 
-    ['Out of home', 0],['Groothandel', 0], ['Grondstof', 0], ['Consument', 3], ['Bewerkende industrie', 2]]], 
-    {
-      title: ' ', 
-      seriesDefaults: {
-        shadow: false, 
-        renderer: jQuery.jqplot.PieRenderer, 
-        rendererOptions: { 
-          startAngle: 180, 
-          sliceMargin: 4, 
-          showDataLabels: true } 
-      }, 
-      legend: { show:true, location: 'w' }
-    }
-  );
-});
-</script>
-
-<script class="code" type="text/javascript">$(document).ready(function(){
-  plot3 = jQuery.jqplot('chart3', 
-    [[['Verwerkende industrie', 9],['Retail', 0], ['Primaire producent', 0], 
-    ['Out of home', 0],['Groothandel', 0], ['Grondstof', 0], ['Consument', 0], ['Bewerkende industrie', 2]]], 
-    {
-      title: ' ', 
-      seriesDefaults: {
-        shadow: false, 
-        renderer: jQuery.jqplot.PieRenderer, 
-        rendererOptions: { 
-          sliceMargin: 4, 
-          showDataLabels: true 
-        } 
-      }, 
-      legend: { show:true, location: 'e' }
-    }
-  );
-
-  
-});
-</script>
-
-<script class="code" type="text/javascript">$(document).ready(function(){
-  plot4 = jQuery.jqplot('chart4', 
-    [[['Verwerkende industrie', 30],['Retail', 0], ['Primaire producent', 0], 
-    ['Out of home', 0],['Groothandel', 0], ['Grondstof', 0], ['Consument', 0], ['Bewerkende industrie', 1]]], 
-    {
-      title: ' ', 
-      seriesDefaults: {shadow: false, renderer: jQuery.jqplot.PieRenderer, rendererOptions: { sliceMargin: 4, showDataLabels: true } }, 
-      legend: { show:true, location: 'e' }
-    }
-  );
-
-  
-});
-</script>
-
-<script class="code" type="text/javascript">$(document).ready(function(){
-  plot5 = jQuery.jqplot('chart5', 
-    [[['Verwerkende industrie', 100],['Retail', 0], ['Primaire producent', 0], 
-    ['Out of home', 0],['Groothandel', 0], ['Grondstof', 0], ['Consument', 0], ['Bewerkende industrie', 1]]], 
-    {
-      title: ' ', 
-      seriesDefaults: {shadow: false, renderer: jQuery.jqplot.PieRenderer, rendererOptions: { sliceMargin: 4, showDataLabels: true } }, 
-      legend: { show:true }
-    }
-  );
-});
-</script>
-
-<script class="code" type="text/javascript">$(document).ready(function(){
-  plot6 = jQuery.jqplot('chart6', 
-    [[['Verwerkende industrie', 100]]], 
-    {
-      title: ' ', 
-      seriesDefaults: {shadow: false, renderer: jQuery.jqplot.PieRenderer, rendererOptions: { sliceMargin: 4, showDataLabels: true } }, 
-      legend: { show:true }
-    }
-  );
-});
-</script>
-
-<script class="code" type="text/javascript">$(document).ready(function(){
-  jQuery.jqplot.config.enablePlugins = true;
-  plot7 = jQuery.jqplot('chart7', 
-    [[['Verwerkende industrie', 9],['Retail', 8], ['Primaire producent', 7], 
-    ['Out of home', 6],['Groothandel', 5], ['Grondstof', 4], ['Consument', 3], ['Bewerkende industrie', 2]]], 
-    {
-      title: ' ', 
-      seriesDefaults: {shadow: true, renderer: jQuery.jqplot.PieRenderer, rendererOptions: { showDataLabels: true } }, 
-      legend: { show:true }
-    }
-  );
-});
-</script>
-
-<script class="code" type="text/javascript">$(document).ready(function(){
-  plot8 = jQuery.jqplot('chart8', 
-    [[['Verwerkende industrie', 100],['Retail', 0], ['Primaire producent', 0], 
-    ['Out of home', 0],['Groothandel', 0], ['Grondstof', 0], ['Consument', 0], ['Bewerkende industrie', 1]]], 
-    {
-      title: ' ', 
-      seriesDefaults: {shadow: true, renderer: jQuery.jqplot.PieRenderer, rendererOptions: { showDataLabels: true } }, 
-      legend: { show:true }
-    }
-  );
-});
-</script>
-
-<script class="code" type="text/javascript">$(document).ready(function(){
-  jQuery.jqplot.config.enablePlugins = true;
-  plot9 = jQuery.jqplot('chart9', 
-    [[['Verwerkende industrie', 9],['Retail', 8], ['Primaire producent', 7], 
-    ['Out of home', 6],['Groothandel', 5], ['Grondstof', 4], ['Consument', 3], ['Bewerkende industrie', 2]]], 
-    {
-      title: ' ', 
-      seriesDefaults: {shadow: true, renderer: jQuery.jqplot.PieRenderer, rendererOptions: { 
-          fill: false, 
-          sliceMargin: 4, 
-          showDataLabels: true 
-          } 
-      }, 
-      legend: { show:true }
-    }
-  );
-});
-</script>
-
-<script class="code" type="text/javascript">$(document).ready(function(){
-  plot10 = jQuery.jqplot('chart10', 
-    [[['Verwerkende industrie', 100],['Retail', 0], ['Primaire producent', 0], 
-    ['Out of home', 0],['Groothandel', 0], ['Grondstof', 0], ['Consument', 0], ['Bewerkende industrie', 1]]], 
-    {
-      title: ' ', 
-      seriesDefaults: {shadow: true, renderer: jQuery.jqplot.PieRenderer, rendererOptions: { 
-          fill: false, 
-          sliceMargin: 4, 
-          showDataLabels: true 
-        } 
-      }, 
-      legend: { show:true }
-    }
-  );
-});
-</script>
-
-
-<!-- End example scripts -->
-
-<!-- Don't touch this! -->
-
-
-    <script class="include" type="text/javascript" src="../jquery.jqplot.min.js"></script>
-    <script type="text/javascript" src="syntaxhighlighter/scripts/shCore.min.js"></script>
-    <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushJScript.min.js"></script>
-    <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushXml.min.js"></script>
-<!-- End Don't touch this! -->
-
-<!-- Additional plugins go here -->
-
-  <script class="include" type="text/javascript" src="../plugins/jqplot.pieRenderer.min.js"></script>
-
-<!-- End additional plugins -->
-
-
-	</div>	
-	<script type="text/javascript" src="example.min.js"></script>
-
-</body>
-
-
-</html>
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/point-labels.html b/wqflask/wqflask/static/packages/jqplot/examples/point-labels.html
deleted file mode 100755
index c21e1bc0..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/point-labels.html
+++ /dev/null
@@ -1,193 +0,0 @@
-<!DOCTYPE html>
-
-<html>
-<head>
-	
-	<title>Data Point labels</title>
-
-    <link class="include" rel="stylesheet" type="text/css" href="../jquery.jqplot.min.css" />
-    <link rel="stylesheet" type="text/css" href="examples.min.css" />
-    <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shCoreDefault.min.css" />
-    <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shThemejqPlot.min.css" />
-  
-  <!--[if lt IE 9]><script language="javascript" type="text/javascript" src="../excanvas.js"></script><![endif]-->
-    <script class="include" type="text/javascript" src="../jquery.min.js"></script>
-    
-   
-</head>
-<body>
-    <div class="logo">
-   <div class="nav">
-   <a class="nav" href="../../../index.php"><span>&gt;</span>Home</a>
-   <a class="nav"  href="../../../docs/"><span>&gt;</span>Docs</a>
-   <a class="nav"  href="../../download/"><span>&gt;</span>Download</a>
-   <a class="nav" href="../../../info.php"><span>&gt;</span>Info</a>
-   <a class="nav"  href="../../../donate.php"><span>&gt;</span>Donate</a>
-   </div>
-</div>
-    <div class="example-content">
-
-    <div class="example-nav">
-  <a href="pieTest4.html">Previous</a> <a href="./">Examples</a> <a href="resizablePlot.html">Next</a></div>
-
-      
-<style type="text/css">
-#chart3 .jqplot-point-label {
-  border: 1.5px solid #aaaaaa;
-  padding: 1px 3px;
-  background-color: #eeccdd;
-}
-</style>
-
-<!-- Example scripts go here -->
-<P>The pointLabels plugin places labels on the plot at the data point locations.  Labeles can use the series data array or a separate labels array.  If using the series data, the last value in the data point array is used as the label by default.</p>
-
-<div id="chart1" style="height:300px; width:500px;"></div>
-
-<pre class="code prettyprint brush: js"></pre>
-
-<P>Additional data can be added to the series and it will be used for labels. If additional data is provided, each data point must have a value for the label, even if it is "null".</p>
-
-<div id="chart2" style="height:300px; width:500px;"></div>
-
-<pre class="code prettyprint brush: js"></pre>
- 
-<P>Labels work with Bar charts as well.  Here, the Labels have been supplied through the "labels" array on the "pointLabels" option to the series.  Also, additional css styling has been provided to the labels.</p>
-
-<div id="chart3" style="height:300px; width:500px;"></div>
-
-<pre class="prettyprint brush: html">
-<style type="text/css">
-#chart3 .jqplot-point-label {
-  border: 1.5px solid #aaaaaa;
-  padding: 1px 3px;
-  background-color: #eeccdd;
-}
-</style>
-</pre>
-<pre class="code prettyprint brush: js"></pre>
-
-<P>Point labels can be used on stacked bar charts.  If no labels array is specified, they will use data from the chart.  Values can be displayed individually for each series (stackedValue option is false, the default), or cumulative values for all series can be displayed (stackedValue option is true).</p>
-
-<div id="chart4" style="height:300px; width:500px;"></div>
-
-<pre class="code prettyprint brush: js"></pre>
-
-<P>Data point labels have an "edgeTolerance" option.  This options controls how close the data point label can be to an axis edge and still be drawn.  The default of 0 allows labels to touch the axis.  Positive values will increase the required distance between the axis and label, negative values will allow labels to overlap axes.</p>
-
-<div id="chart5" style="height:300px; width:500px;"></div>
-
-<pre class="code prettyprint brush: js"></pre>
-
-<script class="code" type="text/javascript">
-$(document).ready(function(){
-  var line1 = [14, 32, 41, 44, 40, 47, 53, 67];
-  var plot1 = $.jqplot('chart1', [line1], {
-      title: 'Chart with Point Labels', 
-      seriesDefaults: { 
-        showMarker:false,
-        pointLabels: { show:true } 
-      }
-  });
-});
-</script>
-
-
-<script class="code" type="text/javascript">
-$(document).ready(function(){
-  var line1 = [[-12, 7, null], [-3, 14, null], [2, -1, '(low)'], 
-      [7, -1, '(low)'], [11, 11, null], [13, -1, '(low)']];
-  var plot2 = $.jqplot('chart2', [line1], {
-    title: 'Point Labels From Extra Series Data', 
-    seriesDefaults: {
-      showMarker:false, 
-      pointLabels:{ show:true, location:'s', ypadding:3 }
-    },
-    axes:{ yaxis:{ pad: 1.3 } }
-  });
-});
-</script>
-
-
-<script class="code" type="text/javascript">
-$(document).ready(function(){
-  var line1 = [14, 32, 41, 44, 40];
-  var plot3 = $.jqplot('chart3', [line1], {
-    title: 'Bar Chart with Point Labels', 
-    seriesDefaults: {renderer: $.jqplot.BarRenderer},
-    series:[
-     {pointLabels:{
-        show: true,
-        labels:['fourteen', 'thirty two', 'fourty one', 'fourty four', 'fourty']
-      }}],
-    axes: {
-      xaxis:{renderer:$.jqplot.CategoryAxisRenderer},
-      yaxis:{padMax:1.3}}
-  });
-});
-</script>
-
-<script class="code" type="text/javascript">
-$(document).ready(function(){
-  var line1 = [14, 32, 41, 44, 40, 37, 29];
-  var line2 = [7, 12, 15, 17, 20, 27, 39];
-  var plot4 = $.jqplot('chart4', [line1, line2], {
-      title: 'Stacked Bar Chart with Cumulative Point Labels', 
-      stackSeries: true, 
-      seriesDefaults: {
-          renderer: $.jqplot.BarRenderer,
-          rendererOptions:{barMargin: 25}, 
-          pointLabels:{show:true, stackedValue: true}
-      },
-      axes: {
-          xaxis:{renderer:$.jqplot.CategoryAxisRenderer}
-      }
-  });
-});
-</script>
-
-
-<script class="code" type="text/javascript">
-$(document).ready(function(){
-  var line1 = [14, 32, 41, 44, 40, 47, 53, 67];
-  var plot5 = $.jqplot('chart5', [line1], {
-      title: 'Chart with Point Labels', 
-      seriesDefaults: {
-        showMarker:false,
-        pointLabels: {
-          show: true,
-          edgeTolerance: 5
-        }},
-      axes:{
-        xaxis:{min:3}
-      }
-  });
-});
-</script>
-
-<!-- End example scripts -->
-
-<!-- Don't touch this! -->
-
-
-    <script class="include" type="text/javascript" src="../jquery.jqplot.min.js"></script>
-    <script type="text/javascript" src="syntaxhighlighter/scripts/shCore.min.js"></script>
-    <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushJScript.min.js"></script>
-    <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushXml.min.js"></script>
-<!-- End Don't touch this! -->
-
-<!-- Additional plugins go here -->
-    <script class="include" language="javascript" type="text/javascript" src="../plugins/jqplot.barRenderer.min.js"></script>
-    <script class="include" language="javascript" type="text/javascript" src="../plugins/jqplot.categoryAxisRenderer.min.js"></script>
-    <script class="include" language="javascript" type="text/javascript" src="../plugins/jqplot.pointLabels.min.js"></script>
-
-<!-- End additional plugins -->
-
-
-	</div>	
-	<script type="text/javascript" src="example.min.js"></script>
-
-</body>
-
-
-</html>
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/quintiles.json b/wqflask/wqflask/static/packages/jqplot/examples/quintiles.json
deleted file mode 100755
index a46a169f..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/quintiles.json
+++ /dev/null
@@ -1,348 +0,0 @@
-[
-	[
-		[27777522,
-		13657657,
-		14119865,
-		22.96185242727780,
-		22.92340104876670,
-		22.99840039165770,
-		95.15435452471940],
-		[0.16814981778556500,
-		0.16938884829023600,
-		0.13029899959403300,
-		0.08445061806046640,
-		0.05811840452702920,
-		0.05631028061504850,
-		0.06512242137179920,
-		0.06861163659177230,
-		0.06020567860988050,
-		0.04355880225459750,
-		0.02803499342457000,
-		0.01912758869230340,
-		0.01515038483762410,
-		0.01223701332240520,
-		0.00869244058559189,
-		0.00529469386492945,
-		0.00328609724536106,
-		0.00194751964322071,
-		0.00114713861262733,
-		0.00086662207093871],
-		[0.15777933298339800,
-		0.15671077815250300,
-		0.12447815070139100,
-		0.08939377850853680,
-		0.07830223837100820,
-		0.08053563812713150,
-		0.07682071635522590,
-		0.06269916689630620,
-		0.04365876627610810,
-		0.03084162032257200,
-		0.02432244409407740,
-		0.02120157090634930,
-		0.01791380814933710,
-		0.01326354596024400,
-		0.00968643784396050,
-		0.00633359323592785,
-		0.00349435421488265,
-		0.00158514030722019,
-		0.00062587894057936,
-		0.00035303965324001],
-		[0.96726540940724300,
-		1.03084161446685000,
-		1.04551821911720000,
-		1.01249668698901000,
-		0.91377904610163700,
-		0.71793506186340200,
-		0.67630912102504800,
-		0.81996977584158100,
-		1.05847758500203000,
-		1.33386431492214000,
-		1.36610600401065000,
-		1.11490766666616000,
-		0.87264547467534200,
-		0.81805292713174800,
-		0.89240386671080400,
-		0.86800712885521700,
-		0.80860485322858600,
-		0.90961820179781800,
-		1.18839220506104000,
-		1.77284683642290000,
-		2.37438923518884000]
-	],[
-		[27749565,
-		13838477,
-		13911088,
-		24.59760821726010,
-		24.93140692365050,
-		24.25806641635340,
-		77.89121151531350],
-		[0.13460476947529500,
-		0.14372006850062500,
-		0.12847108657610600,
-		0.09875785820893480,
-		0.07155805029015120,
-		0.06299959058572970,
-		0.06669930695548060,
-		0.06620210601954020,
-		0.05883374707069510,
-		0.04833706700819440,
-		0.03521801565126300,
-		0.02559536412958920,
-		0.02062306586521670,
-		0.01576211515574400,
-		0.01023801649094930,
-		0.00572503164287636,
-		0.00307516687772024,
-		0.00165330051290922,
-		0.00104697926747485,
-		0.00087929371550523],
-		[0.13970508453303800,
-		0.13975442365362800,
-		0.11681679473806300,
-		0.09435373241811580,
-		0.08802952295423720,
-		0.08580953135424240,
-		0.07740975573970180,
-		0.06538018068005290,
-		0.04960049471620990,
-		0.03735678030431880,
-		0.02976493031984740,
-		0.02384624281925690,
-		0.01786909883056510,
-		0.01280223896627530,
-		0.00854305561048803,
-		0.00534781144388522,
-		0.00336845668342047,
-		0.00201559921183726,
-		0.00124722944598909,
-		0.00097903557682698],
-		[0.99478035075329800,
-		0.95846318148882600,
-		1.02300804808641000,
-		1.09402516010135000,
-		1.04121346671673000,
-		0.80864396372867400,
-		0.73034724501018900,
-		0.85714209189972800,
-		1.00728620755889000,
-		1.17996112502462000,
-		1.28717635944761000,
-		1.17702912743046000,
-		1.06774746443199000,
-		1.14809486978252000,
-		1.22477345443636000,
-		1.19214694369792000,
-		1.06494947429125000,
-		0.90816533289574900,
-		0.81597117843348200,
-		0.83506239070880300,
-		0.89343444858290900]
-	],[
-		[27773083,
-		14068521,
-		13704562,
-		26.03124974398200,
-		26.46223974345070,
-		25.59233340000260,
-		66.99286359589060],
-		[0.11075465721807600,
-		0.12531352270434800,
-		0.12461977157255700,
-		0.11125959454297800,
-		0.08638877858554280,
-		0.06731675090789110,
-		0.06187750302195390,
-		0.06283663484842800,
-		0.05868334457568110,
-		0.05026814063111530,
-		0.04079416969542070,
-		0.03139012243581270,
-		0.02388339994025160,
-		0.01756428234835730,
-		0.01203845901370310,
-		0.00701750790134651,
-		0.00386618590184589,
-		0.00206610447696370,
-		0.00117506121489637,
-		0.00088600846283140],
-		[0.11432537302481000,
-		0.12667609073231400,
-		0.11974891524623500,
-		0.10506132545858400,
-		0.09301444384053810,
-		0.08267846594852100,
-		0.07221670745205490,
-		0.06493541188927070,
-		0.05720135869997910,
-		0.04682451198762990,
-		0.03485427327295350,
-		0.02629070404866000,
-		0.01998999845792230,
-		0.01428519039077750,
-		0.00980039073555805,
-		0.00599266397652053,
-		0.00331791767499821,
-		0.00156650907345305,
-		0.00072094415435746,
-		0.00049880393486330],
-		[1.02655750690901000,
-		0.99449511323857500,
-		1.01551553024478000,
-		1.06831332671397000,
-		1.08712098857701000,
-		0.95343309606544400,
-		0.83582242597784900,
-		0.87958614394243600,
-		0.99337814815975000,
-		1.05315379343805000,
-		1.10205392288684000,
-		1.20150435531963000,
-		1.22567146812179000,
-		1.22649751828565000,
-		1.26219850103057000,
-		1.26098752647638000,
-		1.20211569414631000,
-		1.19619066818704000,
-		1.35395006440030000,
-		1.67317801793479000,
-		1.82343918147671000]
-	],[
-		[27763227,
-		14197178,
-		13566049,
-		27.18018253648030,
-		27.20726467467510,
-		27.15223055717600,
-		58.62068064918010],
-		[0.09684619409307840,
-		0.11118728522535100,
-		0.12478646127724500,
-		0.11986149426641600,
-		0.09520840637648180,
-		0.07266436962641580,
-		0.06157942773922730,
-		0.05776990145557140,
-		0.05595079146694350,
-		0.05422906155293650,
-		0.04606394160905190,
-		0.03460401579477880,
-		0.02431694855838520,
-		0.01695117276859440,
-		0.01211661291564830,
-		0.00784551008485565,
-		0.00430794264393258,
-		0.00206401896375649,
-		0.00099084255721430,
-		0.00065560102411584],
-		[0.09693358901304290,
-		0.10652960384957600,
-		0.11580433409088400,
-		0.11321777793810400,
-		0.09912292067710200,
-		0.08131783917502760,
-		0.07048109387720830,
-		0.06833459006738460,
-		0.06313644652192900,
-		0.05255568033191890,
-		0.03903863379099840,
-		0.02910689297792140,
-		0.02269025908501970,
-		0.01651322011205660,
-		0.01126491285383100,
-		0.00657328507941835,
-		0.00372023325715849,
-		0.00195236631466226,
-		0.00099341991698984,
-		0.00071290106976617],
-		[1.04652268320717000,
-		1.04557914271650000,
-		1.09227868937597000,
-		1.12769408251422000,
-		1.10793353197135000,
-		1.00519391705143000,
-		0.93515656400210500,
-		0.91434829403035100,
-		0.88472781091218400,
-		0.92741634411137500,
-		1.07984413189527000,
-		1.23485263418514000,
-		1.24416877771066000,
-		1.12154903817441000,
-		1.07427786276195000,
-		1.12564654732811000,
-		1.24907168423899000,
-		1.21184866195041000,
-		1.10637161065473000,
-		1.04380755195023000,
-		0.96240750921599800]
-	],[
-		[27754352,
-		14075999,
-		13678353,
-		29.11682279982730,
-		29.25251358929000,
-		28.97478042663600,
-		50.90167162031000],
-		[0.07773301902264660,
-		0.09756477612918870,
-		0.11769211568808000,
-		0.11953094319783700,
-		0.10070874902748300,
-		0.07710380627667010,
-		0.06107481209270700,
-		0.05557245339785060,
-		0.05625960991605260,
-		0.05655944052572760,
-		0.05050018273054490,
-		0.03998167380585820,
-		0.03018284824156070,
-		0.02178128532719260,
-		0.01546004923447120,
-		0.01053184010191340,
-		0.00618324070639374,
-		0.00309253762350306,
-		0.00148564380196157,
-		0.00100097315235749],
-		[0.07414870947175290,
-		0.08945795766137910,
-		0.11321883781048900,
-		0.11651658562245200,
-		0.09931926283967810,
-		0.08029240511352740,
-		0.07198971835798040,
-		0.07305219001114050,
-		0.06968907391161920,
-		0.06031073521142600,
-		0.04701710534217110,
-		0.03436632086919040,
-		0.02578058253156860,
-		0.01918327371957260,
-		0.01236986721101920,
-		0.00632468067099160,
-		0.00324813634215291,
-		0.00173308253350124,
-		0.00107597562154257,
-		0.00090549914684498],
-		[1.02907119007676000,
-		1.07881594924275000,
-		1.12232721275485000,
-		1.06972980730035000,
-		1.05569391096106000,
-		1.04346799653703000,
-		0.98820437091643300,
-		0.87304591541007500,
-		0.78283773210481600,
-		0.83076356851850300,
-		0.96506352588551000,
-		1.10530588311237000,
-		1.19721831153422000,
-		1.20479432618776000,
-		1.16843941971104000,
-		1.28614891275391000,
-		1.71360639234849000,
-		1.95896791328722000,
-		1.83628956559048000,
-		1.42088092397757000,
-		1.13757438283678000]
-	]
-]
\ No newline at end of file
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/resizablePlot.html b/wqflask/wqflask/static/packages/jqplot/examples/resizablePlot.html
deleted file mode 100755
index 082b623a..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/resizablePlot.html
+++ /dev/null
@@ -1,196 +0,0 @@
-<!DOCTYPE html>
-
-<html>
-<head>
-	
-	<title>Resizable Plots</title>
-
-    <link class="include" rel="stylesheet" type="text/css" href="../jquery.jqplot.min.css" />
-    <link rel="stylesheet" type="text/css" href="examples.min.css" />
-    <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shCoreDefault.min.css" />
-    <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shThemejqPlot.min.css" />
-  
-  <!--[if lt IE 9]><script language="javascript" type="text/javascript" src="../excanvas.js"></script><![endif]-->
-    <script class="include" type="text/javascript" src="../jquery.min.js"></script>
-    
-   
-</head>
-<body>
-    <div class="logo">
-   <div class="nav">
-   <a class="nav" href="../../../index.php"><span>&gt;</span>Home</a>
-   <a class="nav"  href="../../../docs/"><span>&gt;</span>Docs</a>
-   <a class="nav"  href="../../download/"><span>&gt;</span>Download</a>
-   <a class="nav" href="../../../info.php"><span>&gt;</span>Info</a>
-   <a class="nav"  href="../../../donate.php"><span>&gt;</span>Donate</a>
-   </div>
-</div>
-    <div class="example-content">
-
-    <div class="example-nav">
-  <a href="point-labels.html">Previous</a> <a href="./">Examples</a> <a href="rotated-tick-labels.html">Next</a></div>
-
-      
-<!-- Example scripts go here -->
-
-  <style type="text/css">
-  body {
-    font-family: "Trebuchet MS", Arial, Helvetica, sans-serif;
-  }
-  
-  p, pre {
-    margin: 1.5em;
-  }
-
-  body table {
-    margin: 2em;
-  }
-  
-    #resizable1, #resizable2 { 
-      width: 440px; 
-      height: 330px;
-      margin-top: 2em;
-      margin-bottom: 2em;
-      padding: 1.2em;
-    }
-    
-    
-    .jqplot-target {
-      font-size: 16px;
-    }
-    
-    .ui-resizable-helper {
-      border: 2px solid gray;
-    }
-  </style>
-
-<p>Plot targets can be placed inside of resizable containers for dynamic plot sizing.  The examples here use the jQuery UI package for resizing functionality.</p>
-
-    <table><tr>
-      <td>
-<div id="resizable1" class="ui-widget-content">
-    <div id="chart1" style="height:96%; width:96%;"></div>
-</div>
-</td>
-<td>
-
-<p>The first plot has good resize performance in Firefox, Safari and other canvas enabled browsers.  The plot will resize dynamically with the container.  IE performance will be slow since IE doesn't natively support the canvas element.</p>
-
-<p>Resizing is handled by binding a handler to the 'resize' event. The handler function replots the plot during resize.  Here, the plot targets's height and width must be specified as a percentage of the container and the container must be visible.</p>
-
-<p>The event handler looks like:</p>
-<pre>
-    $('#resizable1').bind('resize', function(event, ui) {
-        plot1.replot( { resetAxes: true } );
-    });
-</pre>
-</td>
-</tr></table>
-<table><tr>
-  <td>
-
-<div id="resizable2" class="ui-widget-content">
-    <div id="chart2" style="height:96%; width:96%;"></div>
-</div>
-</td>
-<td>
-<p>The second plot uses an alternative sizing method that is more responsive in all browsers, especially IE.  The differnece?  First, the plot target is given a static height and width that will fit inside the resizable container.  Then, instead of resizing dynamically with the container, the plots replot() method is called at the end of the resize.  When resizing is done, the plot targets hieght and width are set to a percentage of the container's and then the replot method is called.</p>
-
-<p>Also, an options object is passed into the replot method.  It contains a single option, resetAxes, which, if true, resets all axes so the min, max, numberTicks and tickInterval are recalculated.</p>
-<pre>
-    $('#resizable2').bind('resizestop', function(event, ui) {
-        $('#chart2').height($('#resizable2').height()*0.96);
-        $('#chart2').width($('#resizable2').width()*0.96);
-        plot2.replot({resetAxes:true});
-    });
-</pre>
-
-<p>You can also pass in option objects to reset specific axes like:</p>
-
-<pre>
-    {resetAxes:['yaxis', 'y2axis']};
-    
-    or
-    
-    {resetAxes:{yaxis:true, y2axis:true}};
-</pre>
-
-</td></tr></table>
-
-<pre class="code brush:js"></pre>
-
-
-  <script type="text/javascript" class="code">
-  
-  $(document).ready(function(){
-
-    $.jqplot._noToImageButton = true;
-
-    var l1 = [18, 36, 41, 93, 100, 115, 133, 129, 119, 107, 91, 146, 169];
-    var l2 = [[8, 66], [13, 46], [22,14]];
-    var l3 = [[3.3, 7], [9.5, 22], [12.1, 37], [18.6, 95], [24, 102]];
-
-    var options = {
-      title: "Lines",
-      legend:{show:true, location:'se'},
-      seriesDefaults:{trendline:{show:true, type:"exp"}},
-      axes:{
-        yaxis:{
-          renderer:$.jqplot.LogAxisRenderer
-        }
-      }
-    };
-    
-    $("#resizable1").resizable({delay:20});
-    $("#resizable2").resizable({delay:20, helper:'ui-resizable-helper'});
-
-    $('#resizable1').bind('resize', function(event, ui) {
-        // pass in resetAxes: true option to get rid of old ticks and axis properties
-        // which should be recomputed based on new plot size.
-        plot1.replot( { resetAxes: true } );
-    });
-    
-    $('#resizable2').bind('resizestop', function(event, ui) {
-        $('#chart2').height($('#resizable2').height()*0.96);
-        $('#chart2').width($('#resizable2').width()*0.96);
-        // pass in resetAxes: true option to get rid of old ticks and axis properties
-        // which should be recomputed based on new plot size.
-        plot2.replot( { resetAxes:true } );
-    });
-    
-    var plot1 = $.jqplot('chart1', [l1, l3],  options);
-    var plot2 = $.jqplot('chart2', [l1, l3],  options);
-
-  });
-  
-  </script>
-
-<!-- End example scripts -->
-
-<!-- Don't touch this! -->
-
-
-    <script class="include" type="text/javascript" src="../jquery.jqplot.min.js"></script>
-    <script type="text/javascript" src="syntaxhighlighter/scripts/shCore.min.js"></script>
-    <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushJScript.min.js"></script>
-    <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushXml.min.js"></script>
-<!-- End Don't touch this! -->
-
-<!-- Additional plugins go here -->
-
-  <script class="include" type="text/javascript" src="../jquery.jqplot.min.js"></script>
-  <script class="include" type="text/javascript" src="../plugins/jqplot.logAxisRenderer.min.js"></script>
-  <script class="include" type="text/javascript" src="../plugins/jqplot.trendline.min.js"></script>
-  
-  <link class="include" type="text/css" href="jquery-ui/css/smoothness/jquery-ui.min.css" rel="Stylesheet" /> 
-  <script class="include" type="text/javascript" src="jquery-ui/js/jquery-ui.min.js"></script>
-<!-- End additional plugins -->
-
-
-	</div>	
-	<script type="text/javascript" src="example.min.js"></script>
-
-</body>
-
-
-</html>
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/rotated-tick-labels.html b/wqflask/wqflask/static/packages/jqplot/examples/rotated-tick-labels.html
deleted file mode 100755
index e80830ad..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/rotated-tick-labels.html
+++ /dev/null
@@ -1,216 +0,0 @@
-<!DOCTYPE html>
-
-<html>
-<head>
-	
-	<title>Rotated Labels and Font Styling</title>
-
-    <link class="include" rel="stylesheet" type="text/css" href="../jquery.jqplot.min.css" />
-    <link rel="stylesheet" type="text/css" href="examples.min.css" />
-    <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shCoreDefault.min.css" />
-    <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shThemejqPlot.min.css" />
-  
-  <!--[if lt IE 9]><script language="javascript" type="text/javascript" src="../excanvas.js"></script><![endif]-->
-    <script class="include" type="text/javascript" src="../jquery.min.js"></script>
-    
-   
-</head>
-<body>
-    <div class="logo">
-   <div class="nav">
-   <a class="nav" href="../../../index.php"><span>&gt;</span>Home</a>
-   <a class="nav"  href="../../../docs/"><span>&gt;</span>Docs</a>
-   <a class="nav"  href="../../download/"><span>&gt;</span>Download</a>
-   <a class="nav" href="../../../info.php"><span>&gt;</span>Info</a>
-   <a class="nav"  href="../../../donate.php"><span>&gt;</span>Donate</a>
-   </div>
-</div>
-    <div class="example-content">
-
-    <div class="example-nav">
-  <a href="resizablePlot.html">Previous</a> <a href="./">Examples</a> <a href="rotatedTickLabelsZoom.html">Next</a></div>
-
-      
-<!-- Example scripts go here -->
-
-<p>Rotated axis tick labels are possible through the "jqplot.canvasTextRenderer.min.js" and "jqplot.canvasAxisTickRenderer.min.js" plugins. Native canvas font rendering capabilities are used in supported browsers.  This includes most recent browsers (including IE 9).  In browsers which don't support native canvas font text, text is rendered in the Hershey font.</p>
-
-<div id="chart1" style="height:300px; width:500px;"></div>
-
-<pre class="code prettyprint brush: js"></pre>
-
-
-
-<p>For comparison, here is the same graph with the "fontFamily" and "fontSize" set.  If you have a supported browser, you should see a difference in label fonts.</p>
- 
-<div id="chart1b" style="height:300px; width:500px;"></div>
-
-<pre class="code prettyprint brush: js"></pre>
-
- 
-<p>The default positioning applies to either primary or secondary axes and accounts for label rotation to ensure that the labels point to the appropriate bar or tick position.</p>
-
-<p>Also note here the use of the "autoscale" option on the y axes.  Turning this option on will force the y axes to line up tick marks for consistend grid lines across the grid.</p>
-
-<div id="chart2" style="height:300px; width:500px;"></div>
-
-<pre class="code prettyprint brush: js"></pre>
-
-
-<p>You can override the default position by specifying a labelPosition of 'start', 'middle' or 'end'. The results probably are not as pleasing as the default 'auto' setting.</p>
-
-<div id="chart3" style="height:300px; width:500px;"></div>
-
-<pre class="code prettyprint brush: js"></pre>
-
-  
-<script class="code" type="text/javascript">
-$(document).ready(function(){
-  var line1 = [['Cup Holder Pinion Bob', 7], ['Generic Fog Lamp', 9], ['HDTV Receiver', 15], 
-  ['8 Track Control Module', 12], [' Sludge Pump Fourier Modulator', 3], 
-  ['Transcender/Spice Rack', 6], ['Hair Spray Danger Indicator', 18]];
-
-  var plot1 = $.jqplot('chart1', [line1], {
-    title: 'Concern vs. Occurrance',
-    series:[{renderer:$.jqplot.BarRenderer}],
-    axesDefaults: {
-        tickRenderer: $.jqplot.CanvasAxisTickRenderer ,
-        tickOptions: {
-          angle: -30,
-          fontSize: '10pt'
-        }
-    },
-    axes: {
-      xaxis: {
-        renderer: $.jqplot.CategoryAxisRenderer
-      }
-    }
-  });
-});
-</script>
-
-
-<script class="code" type="text/javascript">
-$(document).ready(function(){
-  var line1 = [['Cup Holder Pinion Bob', 7], ['Generic Fog Lamp', 9], ['HDTV Receiver', 15], 
-  ['8 Track Control Module', 12], [' Sludge Pump Fourier Modulator', 3], 
-  ['Transcender/Spice Rack', 6], ['Hair Spray Danger Indicator', 18]];
-  var plot1b = $.jqplot('chart1b', [line1], {
-    title: 'Concern vs. Occurrance',
-    series:[{renderer:$.jqplot.BarRenderer}],
-    axesDefaults: {
-        tickRenderer: $.jqplot.CanvasAxisTickRenderer ,
-        tickOptions: {
-          fontFamily: 'Georgia',
-          fontSize: '10pt',
-          angle: -30
-        }
-    },
-    axes: {
-      xaxis: {
-        renderer: $.jqplot.CategoryAxisRenderer
-      }
-    }
-  });
-});
-</script>
-
-
-<script class="code" type="text/javascript">
-$(document).ready(function(){
-  var line1 = [['Cup Holder Pinion Bob', 7], ['Generic Fog Lamp', 9], ['HDTV Receiver', 15], 
-  ['8 Track Control Module', 12], [' Sludge Pump Fourier Modulator', 3], 
-  ['Transcender/Spice Rack', 6], ['Hair Spray Danger Indicator', 18]];
-  var line2 = [['Nickle', 28], ['Aluminum', 13], ['Xenon', 54], ['Silver', 47], 
-  ['Sulfer', 16], ['Silicon', 14], ['Vanadium', 23]];
-
-  var plot2 = $.jqplot('chart2', [line1, line2], {
-    series:[{renderer:$.jqplot.BarRenderer}, {xaxis:'x2axis', yaxis:'y2axis'}],
-    axesDefaults: {
-        tickRenderer: $.jqplot.CanvasAxisTickRenderer ,
-        tickOptions: {
-          angle: 30
-        }
-    },
-    axes: {
-      xaxis: {
-        renderer: $.jqplot.CategoryAxisRenderer
-      },
-      x2axis: {
-        renderer: $.jqplot.CategoryAxisRenderer
-      },
-      yaxis: {
-        autoscale:true
-      },
-      y2axis: {
-        autoscale:true
-      }
-    }
-  });
-});
-</script>
-
-<script class="code" type="text/javascript">
-$(document).ready(function(){
-  var line1 = [['Cup Holder Pinion Bob', 7], ['Generic Fog Lamp', 9], ['HDTV Receiver', 15], 
-  ['8 Track Control Module', 12], [' Sludge Pump Fourier Modulator', 3], 
-  ['Transcender/Spice Rack', 6], ['Hair Spray Danger Indicator', 18]];
-  var plot3 = $.jqplot('chart3', [line1], {
-    title: 'Concern vs. Occurrance',
-    series:[{renderer:$.jqplot.BarRenderer}],
-    axesDefaults: {
-        tickRenderer: $.jqplot.CanvasAxisTickRenderer,
-        tickOptions: {
-          angle: -30
-        }
-    },
-    axes: {
-      xaxis: {
-        renderer: $.jqplot.CategoryAxisRenderer,
-        tickOptions: {
-          labelPosition: 'middle'
-        }
-      },
-      yaxis: {
-        autoscale:true,
-        tickRenderer: $.jqplot.CanvasAxisTickRenderer,
-        tickOptions: {
-          labelPosition: 'start'
-        }
-      }
-    }
-  });
-});
-</script>
-
-
-
-<!-- End example scripts -->
-
-<!-- Don't touch this! -->
-
-
-    <script class="include" type="text/javascript" src="../jquery.jqplot.min.js"></script>
-    <script type="text/javascript" src="syntaxhighlighter/scripts/shCore.min.js"></script>
-    <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushJScript.min.js"></script>
-    <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushXml.min.js"></script>
-<!-- End Don't touch this! -->
-
-<!-- Additional plugins go here -->
-
-  <script class="include" language="javascript" type="text/javascript" src="../plugins/jqplot.dateAxisRenderer.min.js"></script>
-  <script class="include" language="javascript" type="text/javascript" src="../plugins/jqplot.canvasTextRenderer.min.js"></script>
-  <script class="include" language="javascript" type="text/javascript" src="../plugins/jqplot.canvasAxisTickRenderer.min.js"></script>
-  <script class="include" language="javascript" type="text/javascript" src="../plugins/jqplot.categoryAxisRenderer.min.js"></script>
-  <script class="include" language="javascript" type="text/javascript" src="../plugins/jqplot.barRenderer.min.js"></script>
-
-<!-- End additional plugins -->
-
-
-	</div>	
-	<script type="text/javascript" src="example.min.js"></script>
-
-</body>
-
-
-</html>
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/rotatedTickLabelsZoom.html b/wqflask/wqflask/static/packages/jqplot/examples/rotatedTickLabelsZoom.html
deleted file mode 100755
index 902b021b..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/rotatedTickLabelsZoom.html
+++ /dev/null
@@ -1,118 +0,0 @@
-<!DOCTYPE html>
-
-<html>
-<head>
-	
-	<title>Date Axes, Rotated Labels and Zooming</title>
-
-    <link class="include" rel="stylesheet" type="text/css" href="../jquery.jqplot.min.css" />
-    <link rel="stylesheet" type="text/css" href="examples.min.css" />
-    <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shCoreDefault.min.css" />
-    <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shThemejqPlot.min.css" />
-  
-  <!--[if lt IE 9]><script language="javascript" type="text/javascript" src="../excanvas.js"></script><![endif]-->
-    <script class="include" type="text/javascript" src="../jquery.min.js"></script>
-    
-   
-</head>
-<body>
-    <div class="logo">
-   <div class="nav">
-   <a class="nav" href="../../../index.php"><span>&gt;</span>Home</a>
-   <a class="nav"  href="../../../docs/"><span>&gt;</span>Docs</a>
-   <a class="nav"  href="../../download/"><span>&gt;</span>Download</a>
-   <a class="nav" href="../../../info.php"><span>&gt;</span>Info</a>
-   <a class="nav"  href="../../../donate.php"><span>&gt;</span>Donate</a>
-   </div>
-</div>
-    <div class="example-content">
-
-    <div class="example-nav">
-  <a href="rotated-tick-labels.html">Previous</a> <a href="./">Examples</a> <a href="selectorSyntax.html">Next</a></div>
-
-    <div class="example-plot" id="chart" style="width: 600px; height: 400px;"></div>
-  
-<!-- Example scripts go here -->
-
-<style type="text/css">
-    .jqplot-target: {
-        margin-left: 70px;
-    }
-</style>
-
-<script type="text/javascript" class="code">
-  
-$(document).ready(function(){
-    // Enable plugins like highlighter and cursor by default.
-    // Otherwise, must specify show: true option for those plugins.
-    $.jqplot.config.enablePlugins = true;
-
-    var line1=[['2008-09-30', 4], ['2008-10-30', 6.5], ['2008-11-30', 5.7], ['2008-12-30', 9], 
-    ['2009-01-30', 8.2], ['2009-02-28', 7.6], ['2009-03-30', 11.4], ['2009-04-30', 16.2], 
-    ['2009-05-30', 21.8], ['2009-06-30', 19.3], ['2009-07-30', 29.7], ['2009-08-30', 36.7], 
-    ['2009-09-30', 38.7], ['2009-10-30', 33.7], ['2009-11-30', 49.7], ['2009-12-30', 62.7]];
-    
-    var plot1 = $.jqplot('chart', [line1], {
-        title:'Rotated Axis Text',
-        axes:{
-            xaxis:{
-                renderer:$.jqplot.DateAxisRenderer, 
-                rendererOptions:{
-                    tickRenderer:$.jqplot.CanvasAxisTickRenderer
-                },
-                tickOptions:{ 
-                    fontSize:'10pt', 
-                    fontFamily:'Tahoma', 
-                    angle:-40
-                }
-            },
-            yaxis:{
-                rendererOptions:{
-                    tickRenderer:$.jqplot.CanvasAxisTickRenderer},
-                    tickOptions:{
-                        fontSize:'10pt', 
-                        fontFamily:'Tahoma', 
-                        angle:30
-                    }
-            }
-        },
-        series:[{ lineWidth:4, markerOptions:{ style:'square' } }],
-        cursor:{
-            zoom:true,
-            looseZoom: true
-        }
-    });
-
-});
-</script>
-
-
-<!-- End example scripts -->
-
-<!-- Don't touch this! -->
-
-
-    <script class="include" type="text/javascript" src="../jquery.jqplot.min.js"></script>
-    <script type="text/javascript" src="syntaxhighlighter/scripts/shCore.min.js"></script>
-    <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushJScript.min.js"></script>
-    <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushXml.min.js"></script>
-<!-- End Don't touch this! -->
-
-<!-- Additional plugins go here -->
-
-    <!-- to render rotated axis ticks, include both the canvasText and canvasAxisTick renderers -->
-    <script language="javascript" type="text/javascript" src="../plugins/jqplot.canvasTextRenderer.min.js"></script>
-    <script language="javascript" type="text/javascript" src="../plugins/jqplot.canvasAxisTickRenderer.min.js"></script>
-    <script language="javascript" type="text/javascript" src="../plugins/jqplot.dateAxisRenderer.min.js"></script>
-    <script language="javascript" type="text/javascript" src="../plugins/jqplot.cursor.min.js"></script>
-
-<!-- End additional plugins -->
-
-
-	</div>	
-	<script type="text/javascript" src="example.min.js"></script>
-
-</body>
-
-
-</html>
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/selectorSyntax.html b/wqflask/wqflask/static/packages/jqplot/examples/selectorSyntax.html
deleted file mode 100755
index 3dad914e..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/selectorSyntax.html
+++ /dev/null
@@ -1,157 +0,0 @@
-<!DOCTYPE html>
-
-<html>
-<head>
-	
-	<title>Plot Creation with jQuery Selectors</title>
-
-    <link class="include" rel="stylesheet" type="text/css" href="../jquery.jqplot.min.css" />
-    <link rel="stylesheet" type="text/css" href="examples.min.css" />
-    <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shCoreDefault.min.css" />
-    <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shThemejqPlot.min.css" />
-  
-  <!--[if lt IE 9]><script language="javascript" type="text/javascript" src="../excanvas.js"></script><![endif]-->
-    <script class="include" type="text/javascript" src="../jquery.min.js"></script>
-    
-   
-</head>
-<body>
-    <div class="logo">
-   <div class="nav">
-   <a class="nav" href="../../../index.php"><span>&gt;</span>Home</a>
-   <a class="nav"  href="../../../docs/"><span>&gt;</span>Docs</a>
-   <a class="nav"  href="../../download/"><span>&gt;</span>Download</a>
-   <a class="nav" href="../../../info.php"><span>&gt;</span>Info</a>
-   <a class="nav"  href="../../../donate.php"><span>&gt;</span>Donate</a>
-   </div>
-</div>
-    <div class="example-content">
-
-    <div class="example-nav">
-  <a href="rotatedTickLabelsZoom.html">Previous</a> <a href="./">Examples</a> <a href="smoothedLine.html">Next</a></div>
-
-      
-<!-- Example scripts go here -->
-
-<div id="chart1" style="height:300px; width:500px;"></div>
-
-<pre class="code prettyprint brush: js"></pre>
-
-<div class="chart2" style="height:300px; width:500px;"></div>
-
-<pre class="code prettyprint brush: js"></pre>
-
-<div class="jqplot" style="height:300px; width:500px;"></div>
-
-<div class="jqplot" style="height:300px; width:500px;"></div>
-
-<pre class="code prettyprint brush: js"></pre>
-
-  
-<script class="code" type="text/javascript">
-$(document).ready(function(){
-  // Use jQuery selector for a specific element ID.
-  $('#chart1').jqplot([[3,7,9,1,5,3,8,2,5]]);
-});
-</script>
-  
-<script class="code" type="text/javascript">
-$(document).ready(function(){
-  // jQuery selector for elements with a specific class attribute.
-  // Here, there is one div with the class "chart2"
-  $(".chart2").jqplot ([[3,7,9,1,5,3,8,2,5]], {
-      title: "Plot With Options",
-      axesDefaults: {
-        labelRenderer: $.jqplot.CanvasAxisLabelRenderer
-      },
-      seriesDefaults: {
-          rendererOptions: {
-              smooth: true
-          }
-      },
-      axes: {
-        xaxis: {
-          label: "X Axis",
-          pad: 0
-        },
-        yaxis: {
-          label: "Y Axis"
-        }
-      }
-    });
-});
-
-// the jqPlot plot object can be accessed through the jQuery "data" method:
-//
-// >>> $('.chart2').data('jqplot').series[0].data
-// [[1, 3], [2, 7], [3, 9], [4, 1], [5, 5], [6, 3], [7, 8], [8, 2], [9, 5]]
-  
-</script>
-  
-<script class="code" type="text/javascript">
-$(document).ready(function(){
-  // Some simple loops to build up data arrays.
-  var cosPoints = [];
-  for (var i=0; i<2*Math.PI; i+=1){ 
-    cosPoints.push([i, Math.cos(i)]); 
-  }
-   
-  var sinPoints = []; 
-  for (var i=0; i<2*Math.PI; i+=0.4){ 
-     sinPoints.push([i, 2*Math.sin(i-.8)]); 
-  }
-   
-  var powPoints1 = []; 
-  for (var i=0; i<2*Math.PI; i+=1) { 
-      powPoints1.push([i, 2.5 + Math.pow(i/4, 2)]); 
-  }
-   
-  var powPoints2 = []; 
-  for (var i=0; i<2*Math.PI; i+=1) { 
-      powPoints2.push([i, -2.5 - Math.pow(i/4, 2)]); 
-  } 
-
-  // jQuery selector for all divs with a class of "jqplot".
-  // Here, there are two divs that match.  By supplying 2 seperate
-  // arrays of data, each plot will have it's own independent series.
-  // Only one options array is supplied, so it will be used for both
-  // plots.
-  $("div.jqplot").jqplot([cosPoints, sinPoints], [powPoints1, powPoints2], {  
-      title: "One Selector, Multiple Plots",
-      seriesDefaults: {
-          rendererOptions: {
-              smooth: true
-          }
-      }
-  });
-   
-});
-</script>
-
-
-<!-- End example scripts -->
-
-<!-- Don't touch this! -->
-
-
-    <script class="include" type="text/javascript" src="../jquery.jqplot.min.js"></script>
-    <script type="text/javascript" src="syntaxhighlighter/scripts/shCore.min.js"></script>
-    <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushJScript.min.js"></script>
-    <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushXml.min.js"></script>
-<!-- End Don't touch this! -->
-
-<!-- Additional plugins go here -->
-
-  <script class="include" type="text/javascript" src="../plugins/jqplot.canvasTextRenderer.min.js"></script>
-  <script class="include" type="text/javascript" src="../plugins/jqplot.canvasAxisLabelRenderer.min.js"></script>
-
-<!-- End additional plugins -->
-
-
-	</div>	
-	<script type="text/javascript" src="example.min.js"></script>
-
-</body>
-
-
-</html>
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/smoothedLine.html b/wqflask/wqflask/static/packages/jqplot/examples/smoothedLine.html
deleted file mode 100755
index 782a44d4..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/smoothedLine.html
+++ /dev/null
@@ -1,137 +0,0 @@
-<!DOCTYPE html>
-
-<html>
-<head>
-	
-	<title>Smoothed Lines</title>
-
-    <link class="include" rel="stylesheet" type="text/css" href="../jquery.jqplot.min.css" />
-    <link rel="stylesheet" type="text/css" href="examples.min.css" />
-    <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shCoreDefault.min.css" />
-    <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shThemejqPlot.min.css" />
-  
-  <!--[if lt IE 9]><script language="javascript" type="text/javascript" src="../excanvas.js"></script><![endif]-->
-    <script class="include" type="text/javascript" src="../jquery.min.js"></script>
-    
-   
-</head>
-<body>
-    <div class="logo">
-   <div class="nav">
-   <a class="nav" href="../../../index.php"><span>&gt;</span>Home</a>
-   <a class="nav"  href="../../../docs/"><span>&gt;</span>Docs</a>
-   <a class="nav"  href="../../download/"><span>&gt;</span>Download</a>
-   <a class="nav" href="../../../info.php"><span>&gt;</span>Info</a>
-   <a class="nav"  href="../../../donate.php"><span>&gt;</span>Donate</a>
-   </div>
-</div>
-    <div class="example-content">
-
-    <div class="example-nav">
-  <a href="selectorSyntax.html">Previous</a> <a href="./">Examples</a> <a href="theming.html">Next</a></div>
-
-      
-<!-- Example scripts go here -->
-
-    <style type="text/css">
-        body {
-            background-color: #f3f3f3;
-        }
-    </style>
-
-
- <div id="chart1" style="height:400px; width:600px;"></div>
-
-    <pre class="code brush:js"></pre>
-  
-    <script type="text/javascript" class="code">
-    $(document).ready(function(){
-
-        var d1 = [[0, -10.3], [1, 7.0], [2, 15.7], [3, 0.5], [4, -10.4], [5, 1.1], [6, 13.2], 
-        [7, 1.8], [8, -4.5], [9, -1.8], [10, 2.0], [11, 3.0], [12, -3.5], [13, -7.4], [14, -11.3]];
-        var d2 = [[0, 1.3], [1, 12.8], [2, -8.2], [3, -5.2], [4, 16.4], [5, -5.3], [6, 8.1], 
-        [7, 15.1], [8, -4.4], [9, 7.8], [10, -1.4], [11, 0.2], [12, 1.3], [13, 11.7], [14, -9.7]];
-
-        var plot1 = $.jqplot('chart1', [d1, d2], {
-            grid: {
-                drawBorder: false,
-                shadow: false,
-                background: 'rgba(0,0,0,0)'
-            },
-            highlighter: { show: true },
-            seriesDefaults: { 
-                shadowAlpha: 0.1,
-                shadowDepth: 2,
-                fillToZero: true
-            },
-            series: [
-                {
-                    color: 'rgba(198,88,88,.6)',
-                    negativeColor: 'rgba(100,50,50,.6)',
-                    showMarker: true,
-                    showLine: true,
-                    fill: true,
-                    fillAndStroke: true,
-                    markerOptions: {
-                        style: 'filledCircle',
-                        size: 8
-                    },
-                    rendererOptions: {
-                        smooth: true
-                    }
-                },
-                {
-                    color: 'rgba(44, 190, 160, 0.7)',
-                    showMarker: true,
-                    rendererOptions: {
-                        smooth: true,
-                    },
-                    markerOptions: {
-                        style: 'filledSquare',
-                        size: 8
-                    },
-                }
-            ],
-            axes: {
-                xaxis: {
-                    // padding of 0 or of 1 produce same results, range 
-                    // is multiplied by 1x, so it is not padded.
-                    pad: 1.0,
-                    tickOptions: {
-                      showGridline: false
-                    }
-                },
-                yaxis: {
-                    pad: 1.05
-                }
-            }
-        });
-
-    });
-
-    </script>
-
-<!-- End example scripts -->
-
-<!-- Don't touch this! -->
-
-
-    <script class="include" type="text/javascript" src="../jquery.jqplot.min.js"></script>
-    <script type="text/javascript" src="syntaxhighlighter/scripts/shCore.min.js"></script>
-    <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushJScript.min.js"></script>
-    <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushXml.min.js"></script>
-<!-- End Don't touch this! -->
-
-<!-- Additional plugins go here -->
-    <script class="include" type="text/javascript" src="../plugins/jqplot.highlighter.min.js"></script>
-
-<!-- End additional plugins -->
-
-
-	</div>	
-	<script type="text/javascript" src="example.min.js"></script>
-
-</body>
-
-
-</html>
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/syntaxhighlighter/LGPL-LICENSE b/wqflask/wqflask/static/packages/jqplot/examples/syntaxhighlighter/LGPL-LICENSE
deleted file mode 100755
index 3f9959fc..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/syntaxhighlighter/LGPL-LICENSE
+++ /dev/null
@@ -1,165 +0,0 @@
-		   GNU LESSER GENERAL PUBLIC LICENSE
-                       Version 3, 29 June 2007
-
- Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
-
-  This version of the GNU Lesser General Public License incorporates
-the terms and conditions of version 3 of the GNU General Public
-License, supplemented by the additional permissions listed below.
-
-  0. Additional Definitions. 
-
-  As used herein, "this License" refers to version 3 of the GNU Lesser
-General Public License, and the "GNU GPL" refers to version 3 of the GNU
-General Public License.
-
-  "The Library" refers to a covered work governed by this License,
-other than an Application or a Combined Work as defined below.
-
-  An "Application" is any work that makes use of an interface provided
-by the Library, but which is not otherwise based on the Library.
-Defining a subclass of a class defined by the Library is deemed a mode
-of using an interface provided by the Library.
-
-  A "Combined Work" is a work produced by combining or linking an
-Application with the Library.  The particular version of the Library
-with which the Combined Work was made is also called the "Linked
-Version".
-
-  The "Minimal Corresponding Source" for a Combined Work means the
-Corresponding Source for the Combined Work, excluding any source code
-for portions of the Combined Work that, considered in isolation, are
-based on the Application, and not on the Linked Version.
-
-  The "Corresponding Application Code" for a Combined Work means the
-object code and/or source code for the Application, including any data
-and utility programs needed for reproducing the Combined Work from the
-Application, but excluding the System Libraries of the Combined Work.
-
-  1. Exception to Section 3 of the GNU GPL.
-
-  You may convey a covered work under sections 3 and 4 of this License
-without being bound by section 3 of the GNU GPL.
-
-  2. Conveying Modified Versions.
-
-  If you modify a copy of the Library, and, in your modifications, a
-facility refers to a function or data to be supplied by an Application
-that uses the facility (other than as an argument passed when the
-facility is invoked), then you may convey a copy of the modified
-version:
-
-   a) under this License, provided that you make a good faith effort to
-   ensure that, in the event an Application does not supply the
-   function or data, the facility still operates, and performs
-   whatever part of its purpose remains meaningful, or
-
-   b) under the GNU GPL, with none of the additional permissions of
-   this License applicable to that copy.
-
-  3. Object Code Incorporating Material from Library Header Files.
-
-  The object code form of an Application may incorporate material from
-a header file that is part of the Library.  You may convey such object
-code under terms of your choice, provided that, if the incorporated
-material is not limited to numerical parameters, data structure
-layouts and accessors, or small macros, inline functions and templates
-(ten or fewer lines in length), you do both of the following:
-
-   a) Give prominent notice with each copy of the object code that the
-   Library is used in it and that the Library and its use are
-   covered by this License.
-
-   b) Accompany the object code with a copy of the GNU GPL and this license
-   document.
-
-  4. Combined Works.
-
-  You may convey a Combined Work under terms of your choice that,
-taken together, effectively do not restrict modification of the
-portions of the Library contained in the Combined Work and reverse
-engineering for debugging such modifications, if you also do each of
-the following:
-
-   a) Give prominent notice with each copy of the Combined Work that
-   the Library is used in it and that the Library and its use are
-   covered by this License.
-
-   b) Accompany the Combined Work with a copy of the GNU GPL and this license
-   document.
-
-   c) For a Combined Work that displays copyright notices during
-   execution, include the copyright notice for the Library among
-   these notices, as well as a reference directing the user to the
-   copies of the GNU GPL and this license document.
-
-   d) Do one of the following:
-
-       0) Convey the Minimal Corresponding Source under the terms of this
-       License, and the Corresponding Application Code in a form
-       suitable for, and under terms that permit, the user to
-       recombine or relink the Application with a modified version of
-       the Linked Version to produce a modified Combined Work, in the
-       manner specified by section 6 of the GNU GPL for conveying
-       Corresponding Source.
-
-       1) Use a suitable shared library mechanism for linking with the
-       Library.  A suitable mechanism is one that (a) uses at run time
-       a copy of the Library already present on the user's computer
-       system, and (b) will operate properly with a modified version
-       of the Library that is interface-compatible with the Linked
-       Version. 
-
-   e) Provide Installation Information, but only if you would otherwise
-   be required to provide such information under section 6 of the
-   GNU GPL, and only to the extent that such information is
-   necessary to install and execute a modified version of the
-   Combined Work produced by recombining or relinking the
-   Application with a modified version of the Linked Version. (If
-   you use option 4d0, the Installation Information must accompany
-   the Minimal Corresponding Source and Corresponding Application
-   Code. If you use option 4d1, you must provide the Installation
-   Information in the manner specified by section 6 of the GNU GPL
-   for conveying Corresponding Source.)
-
-  5. Combined Libraries.
-
-  You may place library facilities that are a work based on the
-Library side by side in a single library together with other library
-facilities that are not Applications and are not covered by this
-License, and convey such a combined library under terms of your
-choice, if you do both of the following:
-
-   a) Accompany the combined library with a copy of the same work based
-   on the Library, uncombined with any other library facilities,
-   conveyed under the terms of this License.
-
-   b) Give prominent notice with the combined library that part of it
-   is a work based on the Library, and explaining where to find the
-   accompanying uncombined form of the same work.
-
-  6. Revised Versions of the GNU Lesser General Public License.
-
-  The Free Software Foundation may publish revised and/or new versions
-of the GNU Lesser General Public License from time to time. Such new
-versions will be similar in spirit to the present version, but may
-differ in detail to address new problems or concerns.
-
-  Each version is given a distinguishing version number. If the
-Library as you received it specifies that a certain numbered version
-of the GNU Lesser General Public License "or any later version"
-applies to it, you have the option of following the terms and
-conditions either of that published version or of any later version
-published by the Free Software Foundation. If the Library as you
-received it does not specify a version number of the GNU Lesser
-General Public License, you may choose any version of the GNU Lesser
-General Public License ever published by the Free Software Foundation.
-
-  If the Library as you received it specifies that a proxy can decide
-whether future versions of the GNU Lesser General Public License shall
-apply, that proxy's public statement of acceptance of any version is
-permanent authorization for you to choose that version for the
-Library.
\ No newline at end of file
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/syntaxhighlighter/MIT-LICENSE b/wqflask/wqflask/static/packages/jqplot/examples/syntaxhighlighter/MIT-LICENSE
deleted file mode 100755
index e7c70ba1..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/syntaxhighlighter/MIT-LICENSE
+++ /dev/null
@@ -1,20 +0,0 @@
-Copyright (c) 2003, 2004 Jim Weirich
-
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of this software and associated documentation files (the
-"Software"), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sublicense, and/or sell copies of the Software, and to
-permit persons to whom the Software is furnished to do so, subject to
-the following conditions:
-
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/syntaxhighlighter/scripts/shAutoloader.js b/wqflask/wqflask/static/packages/jqplot/examples/syntaxhighlighter/scripts/shAutoloader.js
deleted file mode 100755
index 4e29bdde..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/syntaxhighlighter/scripts/shAutoloader.js
+++ /dev/null
@@ -1,17 +0,0 @@
-/**
- * SyntaxHighlighter
- * http://alexgorbatchev.com/SyntaxHighlighter
- *
- * SyntaxHighlighter is donationware. If you are using it, please donate.
- * http://alexgorbatchev.com/SyntaxHighlighter/donate.html
- *
- * @version
- * 3.0.83 (July 02 2010)
- * 
- * @copyright
- * Copyright (C) 2004-2010 Alex Gorbatchev.
- *
- * @license
- * Dual licensed under the MIT and GPL licenses.
- */
-eval(function(p,a,c,k,e,d){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--){d[e(c)]=k[c]||e(c)}k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1};while(c--){if(k[c]){p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c])}}return p}('(2(){1 h=5;h.I=2(){2 n(c,a){4(1 d=0;d<c.9;d++)i[c[d]]=a}2 o(c){1 a=r.H("J"),d=3;a.K=c;a.M="L/t";a.G="t";a.u=a.v=2(){6(!d&&(!8.7||8.7=="F"||8.7=="z")){d=q;e[c]=q;a:{4(1 p y e)6(e[p]==3)B a;j&&5.C(k)}a.u=a.v=x;a.D.O(a)}};r.N.R(a)}1 f=Q,l=h.P(),i={},e={},j=3,k=x,b;5.T=2(c){k=c;j=q};4(b=0;b<f.9;b++){1 m=f[b].w?f[b]:f[b].S(/\\s+/),g=m.w();n(m,g)}4(b=0;b<l.9;b++)6(g=i[l[b].E.A]){e[g]=3;o(g)}}})();',56,56,'|var|function|false|for|SyntaxHighlighter|if|readyState|this|length|||||||||||||||||true|document||javascript|onload|onreadystatechange|pop|null|in|complete|brush|break|highlight|parentNode|params|loaded|language|createElement|autoloader|script|src|text|type|body|removeChild|findElements|arguments|appendChild|split|all'.split('|'),0,{}))
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/syntaxhighlighter/scripts/shAutoloader.min.js b/wqflask/wqflask/static/packages/jqplot/examples/syntaxhighlighter/scripts/shAutoloader.min.js
deleted file mode 100755
index b8df12a1..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/syntaxhighlighter/scripts/shAutoloader.min.js
+++ /dev/null
@@ -1 +0,0 @@
-eval(function(h,b,j,f,g,i){g=function(a){return(a<b?"":g(parseInt(a/b)))+((a=a%b)>35?String.fromCharCode(a+29):a.toString(36))};if(!"".replace(/^/,String)){while(j--){i[g(j)]=f[j]||g(j)}f=[function(a){return i[a]}];g=function(){return"\\w+"};j=1}while(j--){if(f[j]){h=h.replace(new RegExp("\\b"+g(j)+"\\b","g"),f[j])}}return h}('(2(){1 h=5;h.I=2(){2 n(c,a){4(1 d=0;d<c.9;d++)i[c[d]]=a}2 o(c){1 a=r.H("J"),d=3;a.K=c;a.M="L/t";a.G="t";a.u=a.v=2(){6(!d&&(!8.7||8.7=="F"||8.7=="z")){d=q;e[c]=q;a:{4(1 p y e)6(e[p]==3)B a;j&&5.C(k)}a.u=a.v=x;a.D.O(a)}};r.N.R(a)}1 f=Q,l=h.P(),i={},e={},j=3,k=x,b;5.T=2(c){k=c;j=q};4(b=0;b<f.9;b++){1 m=f[b].w?f[b]:f[b].S(/\\s+/),g=m.w();n(m,g)}4(b=0;b<l.9;b++)6(g=i[l[b].E.A]){e[g]=3;o(g)}}})();',56,56,"|var|function|false|for|SyntaxHighlighter|if|readyState|this|length|||||||||||||||||true|document||javascript|onload|onreadystatechange|pop|null|in|complete|brush|break|highlight|parentNode|params|loaded|language|createElement|autoloader|script|src|text|type|body|removeChild|findElements|arguments|appendChild|split|all".split("|"),0,{}));
\ No newline at end of file
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/syntaxhighlighter/scripts/shBrushJScript.js b/wqflask/wqflask/static/packages/jqplot/examples/syntaxhighlighter/scripts/shBrushJScript.js
deleted file mode 100755
index ff98daba..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/syntaxhighlighter/scripts/shBrushJScript.js
+++ /dev/null
@@ -1,52 +0,0 @@
-/**
- * SyntaxHighlighter
- * http://alexgorbatchev.com/SyntaxHighlighter
- *
- * SyntaxHighlighter is donationware. If you are using it, please donate.
- * http://alexgorbatchev.com/SyntaxHighlighter/donate.html
- *
- * @version
- * 3.0.83 (July 02 2010)
- * 
- * @copyright
- * Copyright (C) 2004-2010 Alex Gorbatchev.
- *
- * @license
- * Dual licensed under the MIT and GPL licenses.
- */
-;(function()
-{
-	// CommonJS
-	typeof(require) != 'undefined' ? SyntaxHighlighter = require('shCore').SyntaxHighlighter : null;
-
-	function Brush()
-	{
-		var keywords =	'break case catch continue ' +
-						'default delete do else false  ' +
-						'for function if in instanceof ' +
-						'new null return super switch ' +
-						'this throw true try typeof var while with'
-						;
-
-		var r = SyntaxHighlighter.regexLib;
-		
-		this.regexList = [
-			{ regex: r.multiLineDoubleQuotedString,					css: 'string' },			// double quoted strings
-			{ regex: r.multiLineSingleQuotedString,					css: 'string' },			// single quoted strings
-			{ regex: r.singleLineCComments,							css: 'comments' },			// one line comments
-			{ regex: r.multiLineCComments,							css: 'comments' },			// multiline comments
-			{ regex: /\s*#.*/gm,									css: 'preprocessor' },		// preprocessor tags like #region and #endregion
-			{ regex: new RegExp(this.getKeywords(keywords), 'gm'),	css: 'keyword' }			// keywords
-			];
-	
-		this.forHtmlScript(r.scriptScriptTags);
-	};
-
-	Brush.prototype	= new SyntaxHighlighter.Highlighter();
-	Brush.aliases	= ['js', 'jscript', 'javascript'];
-
-	SyntaxHighlighter.brushes.JScript = Brush;
-
-	// CommonJS
-	typeof(exports) != 'undefined' ? exports.Brush = Brush : null;
-})();
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/syntaxhighlighter/scripts/shBrushJScript.min.js b/wqflask/wqflask/static/packages/jqplot/examples/syntaxhighlighter/scripts/shBrushJScript.min.js
deleted file mode 100755
index c9dc5868..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/syntaxhighlighter/scripts/shBrushJScript.min.js
+++ /dev/null
@@ -1 +0,0 @@
-(function(){typeof(require)!="undefined"?SyntaxHighlighter=require("shCore").SyntaxHighlighter:null;function a(){var b="break case catch continue default delete do else false  for function if in instanceof new null return super switch this throw true try typeof var while with";var c=SyntaxHighlighter.regexLib;this.regexList=[{regex:c.multiLineDoubleQuotedString,css:"string"},{regex:c.multiLineSingleQuotedString,css:"string"},{regex:c.singleLineCComments,css:"comments"},{regex:c.multiLineCComments,css:"comments"},{regex:/\s*#.*/gm,css:"preprocessor"},{regex:new RegExp(this.getKeywords(b),"gm"),css:"keyword"}];this.forHtmlScript(c.scriptScriptTags)}a.prototype=new SyntaxHighlighter.Highlighter();a.aliases=["js","jscript","javascript"];SyntaxHighlighter.brushes.JScript=a;typeof(exports)!="undefined"?exports.Brush=a:null})();
\ No newline at end of file
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/syntaxhighlighter/scripts/shBrushXml.js b/wqflask/wqflask/static/packages/jqplot/examples/syntaxhighlighter/scripts/shBrushXml.js
deleted file mode 100755
index 69d9fd0b..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/syntaxhighlighter/scripts/shBrushXml.js
+++ /dev/null
@@ -1,69 +0,0 @@
-/**
- * SyntaxHighlighter
- * http://alexgorbatchev.com/SyntaxHighlighter
- *
- * SyntaxHighlighter is donationware. If you are using it, please donate.
- * http://alexgorbatchev.com/SyntaxHighlighter/donate.html
- *
- * @version
- * 3.0.83 (July 02 2010)
- * 
- * @copyright
- * Copyright (C) 2004-2010 Alex Gorbatchev.
- *
- * @license
- * Dual licensed under the MIT and GPL licenses.
- */
-;(function()
-{
-	// CommonJS
-	typeof(require) != 'undefined' ? SyntaxHighlighter = require('shCore').SyntaxHighlighter : null;
-
-	function Brush()
-	{
-		function process(match, regexInfo)
-		{
-			var constructor = SyntaxHighlighter.Match,
-				code = match[0],
-				tag = new XRegExp('(&lt;|<)[\\s\\/\\?]*(?<name>[:\\w-\\.]+)', 'xg').exec(code),
-				result = []
-				;
-		
-			if (match.attributes != null) 
-			{
-				var attributes,
-					regex = new XRegExp('(?<name> [\\w:\\-\\.]+)' +
-										'\\s*=\\s*' +
-										'(?<value> ".*?"|\'.*?\'|\\w+)',
-										'xg');
-
-				while ((attributes = regex.exec(code)) != null) 
-				{
-					result.push(new constructor(attributes.name, match.index + attributes.index, 'color1'));
-					result.push(new constructor(attributes.value, match.index + attributes.index + attributes[0].indexOf(attributes.value), 'string'));
-				}
-			}
-
-			if (tag != null)
-				result.push(
-					new constructor(tag.name, match.index + tag[0].indexOf(tag.name), 'keyword')
-				);
-
-			return result;
-		}
-	
-		this.regexList = [
-			{ regex: new XRegExp('(\\&lt;|<)\\!\\[[\\w\\s]*?\\[(.|\\s)*?\\]\\](\\&gt;|>)', 'gm'),			css: 'color2' },	// <![ ... [ ... ]]>
-			{ regex: SyntaxHighlighter.regexLib.xmlComments,												css: 'comments' },	// <!-- ... -->
-			{ regex: new XRegExp('(&lt;|<)[\\s\\/\\?]*(\\w+)(?<attributes>.*?)[\\s\\/\\?]*(&gt;|>)', 'sg'), func: process }
-		];
-	};
-
-	Brush.prototype	= new SyntaxHighlighter.Highlighter();
-	Brush.aliases	= ['xml', 'xhtml', 'xslt', 'html'];
-
-	SyntaxHighlighter.brushes.Xml = Brush;
-
-	// CommonJS
-	typeof(exports) != 'undefined' ? exports.Brush = Brush : null;
-})();
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/syntaxhighlighter/scripts/shBrushXml.min.js b/wqflask/wqflask/static/packages/jqplot/examples/syntaxhighlighter/scripts/shBrushXml.min.js
deleted file mode 100755
index a1c959c7..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/syntaxhighlighter/scripts/shBrushXml.min.js
+++ /dev/null
@@ -1 +0,0 @@
-(function(){typeof(require)!="undefined"?SyntaxHighlighter=require("shCore").SyntaxHighlighter:null;function a(){function b(f,j){var g=SyntaxHighlighter.Match,i=f[0],d=new XRegExp("(&lt;|<)[\\s\\/\\?]*(?<name>[:\\w-\\.]+)","xg").exec(i),c=[];if(f.attributes!=null){var e,h=new XRegExp("(?<name> [\\w:\\-\\.]+)\\s*=\\s*(?<value> \".*?\"|'.*?'|\\w+)","xg");while((e=h.exec(i))!=null){c.push(new g(e.name,f.index+e.index,"color1"));c.push(new g(e.value,f.index+e.index+e[0].indexOf(e.value),"string"))}}if(d!=null){c.push(new g(d.name,f.index+d[0].indexOf(d.name),"keyword"))}return c}this.regexList=[{regex:new XRegExp("(\\&lt;|<)\\!\\[[\\w\\s]*?\\[(.|\\s)*?\\]\\](\\&gt;|>)","gm"),css:"color2"},{regex:SyntaxHighlighter.regexLib.xmlComments,css:"comments"},{regex:new XRegExp("(&lt;|<)[\\s\\/\\?]*(\\w+)(?<attributes>.*?)[\\s\\/\\?]*(&gt;|>)","sg"),func:b}]}a.prototype=new SyntaxHighlighter.Highlighter();a.aliases=["xml","xhtml","xslt","html"];SyntaxHighlighter.brushes.Xml=a;typeof(exports)!="undefined"?exports.Brush=a:null})();
\ No newline at end of file
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/syntaxhighlighter/scripts/shCore.js b/wqflask/wqflask/static/packages/jqplot/examples/syntaxhighlighter/scripts/shCore.js
deleted file mode 100755
index b47b6454..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/syntaxhighlighter/scripts/shCore.js
+++ /dev/null
@@ -1,17 +0,0 @@
-/**
- * SyntaxHighlighter
- * http://alexgorbatchev.com/SyntaxHighlighter
- *
- * SyntaxHighlighter is donationware. If you are using it, please donate.
- * http://alexgorbatchev.com/SyntaxHighlighter/donate.html
- *
- * @version
- * 3.0.83 (July 02 2010)
- * 
- * @copyright
- * Copyright (C) 2004-2010 Alex Gorbatchev.
- *
- * @license
- * Dual licensed under the MIT and GPL licenses.
- */
-eval(function(p,a,c,k,e,d){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--){d[e(c)]=k[c]||e(c)}k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1};while(c--){if(k[c]){p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c])}}return p}('K M;I(M)1S 2U("2a\'t 4k M 4K 2g 3l 4G 4H");(6(){6 r(f,e){I(!M.1R(f))1S 3m("3s 15 4R");K a=f.1w;f=M(f.1m,t(f)+(e||""));I(a)f.1w={1m:a.1m,19:a.19?a.19.1a(0):N};H f}6 t(f){H(f.1J?"g":"")+(f.4s?"i":"")+(f.4p?"m":"")+(f.4v?"x":"")+(f.3n?"y":"")}6 B(f,e,a,b){K c=u.L,d,h,g;v=R;5K{O(;c--;){g=u[c];I(a&g.3r&&(!g.2p||g.2p.W(b))){g.2q.12=e;I((h=g.2q.X(f))&&h.P===e){d={3k:g.2b.W(b,h,a),1C:h};1N}}}}5v(i){1S i}5q{v=11}H d}6 p(f,e,a){I(3b.Z.1i)H f.1i(e,a);O(a=a||0;a<f.L;a++)I(f[a]===e)H a;H-1}M=6(f,e){K a=[],b=M.1B,c=0,d,h;I(M.1R(f)){I(e!==1d)1S 3m("2a\'t 5r 5I 5F 5B 5C 15 5E 5p");H r(f)}I(v)1S 2U("2a\'t W 3l M 59 5m 5g 5x 5i");e=e||"";O(d={2N:11,19:[],2K:6(g){H e.1i(g)>-1},3d:6(g){e+=g}};c<f.L;)I(h=B(f,c,b,d)){a.U(h.3k);c+=h.1C[0].L||1}Y I(h=n.X.W(z[b],f.1a(c))){a.U(h[0]);c+=h[0].L}Y{h=f.3a(c);I(h==="[")b=M.2I;Y I(h==="]")b=M.1B;a.U(h);c++}a=15(a.1K(""),n.Q.W(e,w,""));a.1w={1m:f,19:d.2N?d.19:N};H a};M.3v="1.5.0";M.2I=1;M.1B=2;K C=/\\$(?:(\\d\\d?|[$&`\'])|{([$\\w]+)})/g,w=/[^5h]+|([\\s\\S])(?=[\\s\\S]*\\1)/g,A=/^(?:[?*+]|{\\d+(?:,\\d*)?})\\??/,v=11,u=[],n={X:15.Z.X,1A:15.Z.1A,1C:1r.Z.1C,Q:1r.Z.Q,1e:1r.Z.1e},x=n.X.W(/()??/,"")[1]===1d,D=6(){K f=/^/g;n.1A.W(f,"");H!f.12}(),y=6(){K f=/x/g;n.Q.W("x",f,"");H!f.12}(),E=15.Z.3n!==1d,z={};z[M.2I]=/^(?:\\\\(?:[0-3][0-7]{0,2}|[4-7][0-7]?|x[\\29-26-f]{2}|u[\\29-26-f]{4}|c[A-3o-z]|[\\s\\S]))/;z[M.1B]=/^(?:\\\\(?:0(?:[0-3][0-7]{0,2}|[4-7][0-7]?)?|[1-9]\\d*|x[\\29-26-f]{2}|u[\\29-26-f]{4}|c[A-3o-z]|[\\s\\S])|\\(\\?[:=!]|[?*+]\\?|{\\d+(?:,\\d*)?}\\??)/;M.1h=6(f,e,a,b){u.U({2q:r(f,"g"+(E?"y":"")),2b:e,3r:a||M.1B,2p:b||N})};M.2n=6(f,e){K a=f+"/"+(e||"");H M.2n[a]||(M.2n[a]=M(f,e))};M.3c=6(f){H r(f,"g")};M.5l=6(f){H f.Q(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g,"\\\\$&")};M.5e=6(f,e,a,b){e=r(e,"g"+(b&&E?"y":""));e.12=a=a||0;f=e.X(f);H b?f&&f.P===a?f:N:f};M.3q=6(){M.1h=6(){1S 2U("2a\'t 55 1h 54 3q")}};M.1R=6(f){H 53.Z.1q.W(f)==="[2m 15]"};M.3p=6(f,e,a,b){O(K c=r(e,"g"),d=-1,h;h=c.X(f);){a.W(b,h,++d,f,c);c.12===h.P&&c.12++}I(e.1J)e.12=0};M.57=6(f,e){H 6 a(b,c){K d=e[c].1I?e[c]:{1I:e[c]},h=r(d.1I,"g"),g=[],i;O(i=0;i<b.L;i++)M.3p(b[i],h,6(k){g.U(d.3j?k[d.3j]||"":k[0])});H c===e.L-1||!g.L?g:a(g,c+1)}([f],0)};15.Z.1p=6(f,e){H J.X(e[0])};15.Z.W=6(f,e){H J.X(e)};15.Z.X=6(f){K e=n.X.1p(J,14),a;I(e){I(!x&&e.L>1&&p(e,"")>-1){a=15(J.1m,n.Q.W(t(J),"g",""));n.Q.W(f.1a(e.P),a,6(){O(K c=1;c<14.L-2;c++)I(14[c]===1d)e[c]=1d})}I(J.1w&&J.1w.19)O(K b=1;b<e.L;b++)I(a=J.1w.19[b-1])e[a]=e[b];!D&&J.1J&&!e[0].L&&J.12>e.P&&J.12--}H e};I(!D)15.Z.1A=6(f){(f=n.X.W(J,f))&&J.1J&&!f[0].L&&J.12>f.P&&J.12--;H!!f};1r.Z.1C=6(f){M.1R(f)||(f=15(f));I(f.1J){K e=n.1C.1p(J,14);f.12=0;H e}H f.X(J)};1r.Z.Q=6(f,e){K a=M.1R(f),b,c;I(a&&1j e.58()==="3f"&&e.1i("${")===-1&&y)H n.Q.1p(J,14);I(a){I(f.1w)b=f.1w.19}Y f+="";I(1j e==="6")c=n.Q.W(J,f,6(){I(b){14[0]=1f 1r(14[0]);O(K d=0;d<b.L;d++)I(b[d])14[0][b[d]]=14[d+1]}I(a&&f.1J)f.12=14[14.L-2]+14[0].L;H e.1p(N,14)});Y{c=J+"";c=n.Q.W(c,f,6(){K d=14;H n.Q.W(e,C,6(h,g,i){I(g)5b(g){24"$":H"$";24"&":H d[0];24"`":H d[d.L-1].1a(0,d[d.L-2]);24"\'":H d[d.L-1].1a(d[d.L-2]+d[0].L);5a:i="";g=+g;I(!g)H h;O(;g>d.L-3;){i=1r.Z.1a.W(g,-1)+i;g=1Q.3i(g/10)}H(g?d[g]||"":"$")+i}Y{g=+i;I(g<=d.L-3)H d[g];g=b?p(b,i):-1;H g>-1?d[g+1]:h}})})}I(a&&f.1J)f.12=0;H c};1r.Z.1e=6(f,e){I(!M.1R(f))H n.1e.1p(J,14);K a=J+"",b=[],c=0,d,h;I(e===1d||+e<0)e=5D;Y{e=1Q.3i(+e);I(!e)H[]}O(f=M.3c(f);d=f.X(a);){I(f.12>c){b.U(a.1a(c,d.P));d.L>1&&d.P<a.L&&3b.Z.U.1p(b,d.1a(1));h=d[0].L;c=f.12;I(b.L>=e)1N}f.12===d.P&&f.12++}I(c===a.L){I(!n.1A.W(f,"")||h)b.U("")}Y b.U(a.1a(c));H b.L>e?b.1a(0,e):b};M.1h(/\\(\\?#[^)]*\\)/,6(f){H n.1A.W(A,f.2S.1a(f.P+f[0].L))?"":"(?:)"});M.1h(/\\((?!\\?)/,6(){J.19.U(N);H"("});M.1h(/\\(\\?<([$\\w]+)>/,6(f){J.19.U(f[1]);J.2N=R;H"("});M.1h(/\\\\k<([\\w$]+)>/,6(f){K e=p(J.19,f[1]);H e>-1?"\\\\"+(e+1)+(3R(f.2S.3a(f.P+f[0].L))?"":"(?:)"):f[0]});M.1h(/\\[\\^?]/,6(f){H f[0]==="[]"?"\\\\b\\\\B":"[\\\\s\\\\S]"});M.1h(/^\\(\\?([5A]+)\\)/,6(f){J.3d(f[1]);H""});M.1h(/(?:\\s+|#.*)+/,6(f){H n.1A.W(A,f.2S.1a(f.P+f[0].L))?"":"(?:)"},M.1B,6(){H J.2K("x")});M.1h(/\\./,6(){H"[\\\\s\\\\S]"},M.1B,6(){H J.2K("s")})})();1j 2e!="1d"&&(2e.M=M);K 1v=6(){6 r(a,b){a.1l.1i(b)!=-1||(a.1l+=" "+b)}6 t(a){H a.1i("3e")==0?a:"3e"+a}6 B(a){H e.1Y.2A[t(a)]}6 p(a,b,c){I(a==N)H N;K d=c!=R?a.3G:[a.2G],h={"#":"1c",".":"1l"}[b.1o(0,1)]||"3h",g,i;g=h!="3h"?b.1o(1):b.5u();I((a[h]||"").1i(g)!=-1)H a;O(a=0;d&&a<d.L&&i==N;a++)i=p(d[a],b,c);H i}6 C(a,b){K c={},d;O(d 2g a)c[d]=a[d];O(d 2g b)c[d]=b[d];H c}6 w(a,b,c,d){6 h(g){g=g||1P.5y;I(!g.1F){g.1F=g.52;g.3N=6(){J.5w=11}}c.W(d||1P,g)}a.3g?a.3g("4U"+b,h):a.4y(b,h,11)}6 A(a,b){K c=e.1Y.2j,d=N;I(c==N){c={};O(K h 2g e.1U){K g=e.1U[h];d=g.4x;I(d!=N){g.1V=h.4w();O(g=0;g<d.L;g++)c[d[g]]=h}}e.1Y.2j=c}d=e.1U[c[a]];d==N&&b!=11&&1P.1X(e.13.1x.1X+(e.13.1x.3E+a));H d}6 v(a,b){O(K c=a.1e("\\n"),d=0;d<c.L;d++)c[d]=b(c[d],d);H c.1K("\\n")}6 u(a,b){I(a==N||a.L==0||a=="\\n")H a;a=a.Q(/</g,"&1y;");a=a.Q(/ {2,}/g,6(c){O(K d="",h=0;h<c.L-1;h++)d+=e.13.1W;H d+" "});I(b!=N)a=v(a,6(c){I(c.L==0)H"";K d="";c=c.Q(/^(&2s;| )+/,6(h){d=h;H""});I(c.L==0)H d;H d+\'<17 1g="\'+b+\'">\'+c+"</17>"});H a}6 n(a,b){a.1e("\\n");O(K c="",d=0;d<50;d++)c+="                    ";H a=v(a,6(h){I(h.1i("\\t")==-1)H h;O(K g=0;(g=h.1i("\\t"))!=-1;)h=h.1o(0,g)+c.1o(0,b-g%b)+h.1o(g+1,h.L);H h})}6 x(a){H a.Q(/^\\s+|\\s+$/g,"")}6 D(a,b){I(a.P<b.P)H-1;Y I(a.P>b.P)H 1;Y I(a.L<b.L)H-1;Y I(a.L>b.L)H 1;H 0}6 y(a,b){6 c(k){H k[0]}O(K d=N,h=[],g=b.2D?b.2D:c;(d=b.1I.X(a))!=N;){K i=g(d,b);I(1j i=="3f")i=[1f e.2L(i,d.P,b.23)];h=h.1O(i)}H h}6 E(a){K b=/(.*)((&1G;|&1y;).*)/;H a.Q(e.3A.3M,6(c){K d="",h=N;I(h=b.X(c)){c=h[1];d=h[2]}H\'<a 2h="\'+c+\'">\'+c+"</a>"+d})}6 z(){O(K a=1E.36("1k"),b=[],c=0;c<a.L;c++)a[c].3s=="20"&&b.U(a[c]);H b}6 f(a){a=a.1F;K b=p(a,".20",R);a=p(a,".3O",R);K c=1E.4i("3t");I(!(!a||!b||p(a,"3t"))){B(b.1c);r(b,"1m");O(K d=a.3G,h=[],g=0;g<d.L;g++)h.U(d[g].4z||d[g].4A);h=h.1K("\\r");c.39(1E.4D(h));a.39(c);c.2C();c.4C();w(c,"4u",6(){c.2G.4E(c);b.1l=b.1l.Q("1m","")})}}I(1j 3F!="1d"&&1j M=="1d")M=3F("M").M;K e={2v:{"1g-27":"","2i-1s":1,"2z-1s-2t":11,1M:N,1t:N,"42-45":R,"43-22":4,1u:R,16:R,"3V-17":R,2l:11,"41-40":R,2k:11,"1z-1k":11},13:{1W:"&2s;",2M:R,46:11,44:11,34:"4n",1x:{21:"4o 1m",2P:"?",1X:"1v\\n\\n",3E:"4r\'t 4t 1D O: ",4g:"4m 4B\'t 51 O 1z-1k 4F: ",37:\'<!4T 1z 4S "-//4V//3H 4W 1.0 4Z//4Y" "1Z://2y.3L.3K/4X/3I/3H/3I-4P.4J"><1z 4I="1Z://2y.3L.3K/4L/5L"><3J><4N 1Z-4M="5G-5M" 6K="2O/1z; 6J=6I-8" /><1t>6L 1v</1t></3J><3B 1L="25-6M:6Q,6P,6O,6N-6F;6y-2f:#6x;2f:#6w;25-22:6v;2O-3D:3C;"><T 1L="2O-3D:3C;3w-32:1.6z;"><T 1L="25-22:6A-6E;">1v</T><T 1L="25-22:.6C;3w-6B:6R;"><T>3v 3.0.76 (72 73 3x)</T><T><a 2h="1Z://3u.2w/1v" 1F="38" 1L="2f:#3y">1Z://3u.2w/1v</a></T><T>70 17 6U 71.</T><T>6T 6X-3x 6Y 6D.</T></T><T>6t 61 60 J 1k, 5Z <a 2h="6u://2y.62.2w/63-66/65?64=5X-5W&5P=5O" 1L="2f:#3y">5R</a> 5V <2R/>5U 5T 5S!</T></T></3B></1z>\'}},1Y:{2j:N,2A:{}},1U:{},3A:{6n:/\\/\\*[\\s\\S]*?\\*\\//2c,6m:/\\/\\/.*$/2c,6l:/#.*$/2c,6k:/"([^\\\\"\\n]|\\\\.)*"/g,6o:/\'([^\\\\\'\\n]|\\\\.)*\'/g,6p:1f M(\'"([^\\\\\\\\"]|\\\\\\\\.)*"\',"3z"),6s:1f M("\'([^\\\\\\\\\']|\\\\\\\\.)*\'","3z"),6q:/(&1y;|<)!--[\\s\\S]*?--(&1G;|>)/2c,3M:/\\w+:\\/\\/[\\w-.\\/?%&=:@;]*/g,6a:{18:/(&1y;|<)\\?=?/g,1b:/\\?(&1G;|>)/g},69:{18:/(&1y;|<)%=?/g,1b:/%(&1G;|>)/g},6d:{18:/(&1y;|<)\\s*1k.*?(&1G;|>)/2T,1b:/(&1y;|<)\\/\\s*1k\\s*(&1G;|>)/2T}},16:{1H:6(a){6 b(i,k){H e.16.2o(i,k,e.13.1x[k])}O(K c=\'<T 1g="16">\',d=e.16.2x,h=d.2X,g=0;g<h.L;g++)c+=(d[h[g]].1H||b)(a,h[g]);c+="</T>";H c},2o:6(a,b,c){H\'<2W><a 2h="#" 1g="6e 6h\'+b+" "+b+\'">\'+c+"</a></2W>"},2b:6(a){K b=a.1F,c=b.1l||"";b=B(p(b,".20",R).1c);K d=6(h){H(h=15(h+"6f(\\\\w+)").X(c))?h[1]:N}("6g");b&&d&&e.16.2x[d].2B(b);a.3N()},2x:{2X:["21","2P"],21:{1H:6(a){I(a.V("2l")!=R)H"";K b=a.V("1t");H e.16.2o(a,"21",b?b:e.13.1x.21)},2B:6(a){a=1E.6j(t(a.1c));a.1l=a.1l.Q("47","")}},2P:{2B:6(){K a="68=0";a+=", 18="+(31.30-33)/2+", 32="+(31.2Z-2Y)/2+", 30=33, 2Z=2Y";a=a.Q(/^,/,"");a=1P.6Z("","38",a);a.2C();K b=a.1E;b.6W(e.13.1x.37);b.6V();a.2C()}}}},35:6(a,b){K c;I(b)c=[b];Y{c=1E.36(e.13.34);O(K d=[],h=0;h<c.L;h++)d.U(c[h]);c=d}c=c;d=[];I(e.13.2M)c=c.1O(z());I(c.L===0)H d;O(h=0;h<c.L;h++){O(K g=c[h],i=a,k=c[h].1l,j=3W 0,l={},m=1f M("^\\\\[(?<2V>(.*?))\\\\]$"),s=1f M("(?<27>[\\\\w-]+)\\\\s*:\\\\s*(?<1T>[\\\\w-%#]+|\\\\[.*?\\\\]|\\".*?\\"|\'.*?\')\\\\s*;?","g");(j=s.X(k))!=N;){K o=j.1T.Q(/^[\'"]|[\'"]$/g,"");I(o!=N&&m.1A(o)){o=m.X(o);o=o.2V.L>0?o.2V.1e(/\\s*,\\s*/):[]}l[j.27]=o}g={1F:g,1n:C(i,l)};g.1n.1D!=N&&d.U(g)}H d},1M:6(a,b){K c=J.35(a,b),d=N,h=e.13;I(c.L!==0)O(K g=0;g<c.L;g++){b=c[g];K i=b.1F,k=b.1n,j=k.1D,l;I(j!=N){I(k["1z-1k"]=="R"||e.2v["1z-1k"]==R){d=1f e.4l(j);j="4O"}Y I(d=A(j))d=1f d;Y 6H;l=i.3X;I(h.2M){l=l;K m=x(l),s=11;I(m.1i("<![6G[")==0){m=m.4h(9);s=R}K o=m.L;I(m.1i("]]\\>")==o-3){m=m.4h(0,o-3);s=R}l=s?m:l}I((i.1t||"")!="")k.1t=i.1t;k.1D=j;d.2Q(k);b=d.2F(l);I((i.1c||"")!="")b.1c=i.1c;i.2G.74(b,i)}}},2E:6(a){w(1P,"4k",6(){e.1M(a)})}};e.2E=e.2E;e.1M=e.1M;e.2L=6(a,b,c){J.1T=a;J.P=b;J.L=a.L;J.23=c;J.1V=N};e.2L.Z.1q=6(){H J.1T};e.4l=6(a){6 b(j,l){O(K m=0;m<j.L;m++)j[m].P+=l}K c=A(a),d,h=1f e.1U.5Y,g=J,i="2F 1H 2Q".1e(" ");I(c!=N){d=1f c;O(K k=0;k<i.L;k++)(6(){K j=i[k];g[j]=6(){H h[j].1p(h,14)}})();d.28==N?1P.1X(e.13.1x.1X+(e.13.1x.4g+a)):h.2J.U({1I:d.28.17,2D:6(j){O(K l=j.17,m=[],s=d.2J,o=j.P+j.18.L,F=d.28,q,G=0;G<s.L;G++){q=y(l,s[G]);b(q,o);m=m.1O(q)}I(F.18!=N&&j.18!=N){q=y(j.18,F.18);b(q,j.P);m=m.1O(q)}I(F.1b!=N&&j.1b!=N){q=y(j.1b,F.1b);b(q,j.P+j[0].5Q(j.1b));m=m.1O(q)}O(j=0;j<m.L;j++)m[j].1V=c.1V;H m}})}};e.4j=6(){};e.4j.Z={V:6(a,b){K c=J.1n[a];c=c==N?b:c;K d={"R":R,"11":11}[c];H d==N?c:d},3Y:6(a){H 1E.4i(a)},4c:6(a,b){K c=[];I(a!=N)O(K d=0;d<a.L;d++)I(1j a[d]=="2m")c=c.1O(y(b,a[d]));H J.4e(c.6b(D))},4e:6(a){O(K b=0;b<a.L;b++)I(a[b]!==N)O(K c=a[b],d=c.P+c.L,h=b+1;h<a.L&&a[b]!==N;h++){K g=a[h];I(g!==N)I(g.P>d)1N;Y I(g.P==c.P&&g.L>c.L)a[b]=N;Y I(g.P>=c.P&&g.P<d)a[h]=N}H a},4d:6(a){K b=[],c=2u(J.V("2i-1s"));v(a,6(d,h){b.U(h+c)});H b},3U:6(a){K b=J.V("1M",[]);I(1j b!="2m"&&b.U==N)b=[b];a:{a=a.1q();K c=3W 0;O(c=c=1Q.6c(c||0,0);c<b.L;c++)I(b[c]==a){b=c;1N a}b=-1}H b!=-1},2r:6(a,b,c){a=["1s","6i"+b,"P"+a,"6r"+(b%2==0?1:2).1q()];J.3U(b)&&a.U("67");b==0&&a.U("1N");H\'<T 1g="\'+a.1K(" ")+\'">\'+c+"</T>"},3Q:6(a,b){K c="",d=a.1e("\\n").L,h=2u(J.V("2i-1s")),g=J.V("2z-1s-2t");I(g==R)g=(h+d-1).1q().L;Y I(3R(g)==R)g=0;O(K i=0;i<d;i++){K k=b?b[i]:h+i,j;I(k==0)j=e.13.1W;Y{j=g;O(K l=k.1q();l.L<j;)l="0"+l;j=l}a=j;c+=J.2r(i,k,a)}H c},49:6(a,b){a=x(a);K c=a.1e("\\n");J.V("2z-1s-2t");K d=2u(J.V("2i-1s"));a="";O(K h=J.V("1D"),g=0;g<c.L;g++){K i=c[g],k=/^(&2s;|\\s)+/.X(i),j=N,l=b?b[g]:d+g;I(k!=N){j=k[0].1q();i=i.1o(j.L);j=j.Q(" ",e.13.1W)}i=x(i);I(i.L==0)i=e.13.1W;a+=J.2r(g,l,(j!=N?\'<17 1g="\'+h+\' 5N">\'+j+"</17>":"")+i)}H a},4f:6(a){H a?"<4a>"+a+"</4a>":""},4b:6(a,b){6 c(l){H(l=l?l.1V||g:g)?l+" ":""}O(K d=0,h="",g=J.V("1D",""),i=0;i<b.L;i++){K k=b[i],j;I(!(k===N||k.L===0)){j=c(k);h+=u(a.1o(d,k.P-d),j+"48")+u(k.1T,j+k.23);d=k.P+k.L+(k.75||0)}}h+=u(a.1o(d),c()+"48");H h},1H:6(a){K b="",c=["20"],d;I(J.V("2k")==R)J.1n.16=J.1n.1u=11;1l="20";J.V("2l")==R&&c.U("47");I((1u=J.V("1u"))==11)c.U("6S");c.U(J.V("1g-27"));c.U(J.V("1D"));a=a.Q(/^[ ]*[\\n]+|[\\n]*[ ]*$/g,"").Q(/\\r/g," ");b=J.V("43-22");I(J.V("42-45")==R)a=n(a,b);Y{O(K h="",g=0;g<b;g++)h+=" ";a=a.Q(/\\t/g,h)}a=a;a:{b=a=a;h=/<2R\\s*\\/?>|&1y;2R\\s*\\/?&1G;/2T;I(e.13.46==R)b=b.Q(h,"\\n");I(e.13.44==R)b=b.Q(h,"");b=b.1e("\\n");h=/^\\s*/;g=4Q;O(K i=0;i<b.L&&g>0;i++){K k=b[i];I(x(k).L!=0){k=h.X(k);I(k==N){a=a;1N a}g=1Q.4q(k[0].L,g)}}I(g>0)O(i=0;i<b.L;i++)b[i]=b[i].1o(g);a=b.1K("\\n")}I(1u)d=J.4d(a);b=J.4c(J.2J,a);b=J.4b(a,b);b=J.49(b,d);I(J.V("41-40"))b=E(b);1j 2H!="1d"&&2H.3S&&2H.3S.1C(/5s/)&&c.U("5t");H b=\'<T 1c="\'+t(J.1c)+\'" 1g="\'+c.1K(" ")+\'">\'+(J.V("16")?e.16.1H(J):"")+\'<3Z 5z="0" 5H="0" 5J="0">\'+J.4f(J.V("1t"))+"<3T><3P>"+(1u?\'<2d 1g="1u">\'+J.3Q(a)+"</2d>":"")+\'<2d 1g="17"><T 1g="3O">\'+b+"</T></2d></3P></3T></3Z></T>"},2F:6(a){I(a===N)a="";J.17=a;K b=J.3Y("T");b.3X=J.1H(a);J.V("16")&&w(p(b,".16"),"5c",e.16.2b);J.V("3V-17")&&w(p(b,".17"),"56",f);H b},2Q:6(a){J.1c=""+1Q.5d(1Q.5n()*5k).1q();e.1Y.2A[t(J.1c)]=J;J.1n=C(e.2v,a||{});I(J.V("2k")==R)J.1n.16=J.1n.1u=11},5j:6(a){a=a.Q(/^\\s+|\\s+$/g,"").Q(/\\s+/g,"|");H"\\\\b(?:"+a+")\\\\b"},5f:6(a){J.28={18:{1I:a.18,23:"1k"},1b:{1I:a.1b,23:"1k"},17:1f M("(?<18>"+a.18.1m+")(?<17>.*?)(?<1b>"+a.1b.1m+")","5o")}}};H e}();1j 2e!="1d"&&(2e.1v=1v);',62,441,'||||||function|||||||||||||||||||||||||||||||||||||return|if|this|var|length|XRegExp|null|for|index|replace|true||div|push|getParam|call|exec|else|prototype||false|lastIndex|config|arguments|RegExp|toolbar|code|left|captureNames|slice|right|id|undefined|split|new|class|addToken|indexOf|typeof|script|className|source|params|substr|apply|toString|String|line|title|gutter|SyntaxHighlighter|_xregexp|strings|lt|html|test|OUTSIDE_CLASS|match|brush|document|target|gt|getHtml|regex|global|join|style|highlight|break|concat|window|Math|isRegExp|throw|value|brushes|brushName|space|alert|vars|http|syntaxhighlighter|expandSource|size|css|case|font|Fa|name|htmlScript|dA|can|handler|gm|td|exports|color|in|href|first|discoveredBrushes|light|collapse|object|cache|getButtonHtml|trigger|pattern|getLineHtml|nbsp|numbers|parseInt|defaults|com|items|www|pad|highlighters|execute|focus|func|all|getDiv|parentNode|navigator|INSIDE_CLASS|regexList|hasFlag|Match|useScriptTags|hasNamedCapture|text|help|init|br|input|gi|Error|values|span|list|250|height|width|screen|top|500|tagName|findElements|getElementsByTagName|aboutDialog|_blank|appendChild|charAt|Array|copyAsGlobal|setFlag|highlighter_|string|attachEvent|nodeName|floor|backref|output|the|TypeError|sticky|Za|iterate|freezeTokens|scope|type|textarea|alexgorbatchev|version|margin|2010|005896|gs|regexLib|body|center|align|noBrush|require|childNodes|DTD|xhtml1|head|org|w3|url|preventDefault|container|tr|getLineNumbersHtml|isNaN|userAgent|tbody|isLineHighlighted|quick|void|innerHTML|create|table|links|auto|smart|tab|stripBrs|tabs|bloggerMode|collapsed|plain|getCodeLinesHtml|caption|getMatchesHtml|findMatches|figureOutLineNumbers|removeNestedMatches|getTitleHtml|brushNotHtmlScript|substring|createElement|Highlighter|load|HtmlScript|Brush|pre|expand|multiline|min|Can|ignoreCase|find|blur|extended|toLowerCase|aliases|addEventListener|innerText|textContent|wasn|select|createTextNode|removeChild|option|same|frame|xmlns|dtd|twice|1999|equiv|meta|htmlscript|transitional|1E3|expected|PUBLIC|DOCTYPE|on|W3C|XHTML|TR|EN|Transitional||configured|srcElement|Object|after|run|dblclick|matchChain|valueOf|constructor|default|switch|click|round|execAt|forHtmlScript|token|gimy|functions|getKeywords|1E6|escape|within|random|sgi|another|finally|supply|MSIE|ie|toUpperCase|catch|returnValue|definition|event|border|imsx|constructing|one|Infinity|from|when|Content|cellpadding|flags|cellspacing|try|xhtml|Type|spaces|2930402|hosted_button_id|lastIndexOf|donate|active|development|keep|to|xclick|_s|Xml|please|like|you|paypal|cgi|cmd|webscr|bin|highlighted|scrollbars|aspScriptTags|phpScriptTags|sort|max|scriptScriptTags|toolbar_item|_|command|command_|number|getElementById|doubleQuotedString|singleLinePerlComments|singleLineCComments|multiLineCComments|singleQuotedString|multiLineDoubleQuotedString|xmlComments|alt|multiLineSingleQuotedString|If|https|1em|000|fff|background|5em|xx|bottom|75em|Gorbatchev|large|serif|CDATA|continue|utf|charset|content|About|family|sans|Helvetica|Arial|Geneva|3em|nogutter|Copyright|syntax|close|write|2004|Alex|open|JavaScript|highlighter|July|02|replaceChild|offset|83'.split('|'),0,{}))
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/syntaxhighlighter/scripts/shCore.min.js b/wqflask/wqflask/static/packages/jqplot/examples/syntaxhighlighter/scripts/shCore.min.js
deleted file mode 100755
index 0ec48344..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/syntaxhighlighter/scripts/shCore.min.js
+++ /dev/null
@@ -1 +0,0 @@
-eval(function(h,b,j,f,g,i){g=function(a){return(a<b?"":g(parseInt(a/b)))+((a=a%b)>35?String.fromCharCode(a+29):a.toString(36))};if(!"".replace(/^/,String)){while(j--){i[g(j)]=f[j]||g(j)}f=[function(a){return i[a]}];g=function(){return"\\w+"};j=1}while(j--){if(f[j]){h=h.replace(new RegExp("\\b"+g(j)+"\\b","g"),f[j])}}return h}('K M;I(M)1S 2U("2a\'t 4k M 4K 2g 3l 4G 4H");(6(){6 r(f,e){I(!M.1R(f))1S 3m("3s 15 4R");K a=f.1w;f=M(f.1m,t(f)+(e||""));I(a)f.1w={1m:a.1m,19:a.19?a.19.1a(0):N};H f}6 t(f){H(f.1J?"g":"")+(f.4s?"i":"")+(f.4p?"m":"")+(f.4v?"x":"")+(f.3n?"y":"")}6 B(f,e,a,b){K c=u.L,d,h,g;v=R;5K{O(;c--;){g=u[c];I(a&g.3r&&(!g.2p||g.2p.W(b))){g.2q.12=e;I((h=g.2q.X(f))&&h.P===e){d={3k:g.2b.W(b,h,a),1C:h};1N}}}}5v(i){1S i}5q{v=11}H d}6 p(f,e,a){I(3b.Z.1i)H f.1i(e,a);O(a=a||0;a<f.L;a++)I(f[a]===e)H a;H-1}M=6(f,e){K a=[],b=M.1B,c=0,d,h;I(M.1R(f)){I(e!==1d)1S 3m("2a\'t 5r 5I 5F 5B 5C 15 5E 5p");H r(f)}I(v)1S 2U("2a\'t W 3l M 59 5m 5g 5x 5i");e=e||"";O(d={2N:11,19:[],2K:6(g){H e.1i(g)>-1},3d:6(g){e+=g}};c<f.L;)I(h=B(f,c,b,d)){a.U(h.3k);c+=h.1C[0].L||1}Y I(h=n.X.W(z[b],f.1a(c))){a.U(h[0]);c+=h[0].L}Y{h=f.3a(c);I(h==="[")b=M.2I;Y I(h==="]")b=M.1B;a.U(h);c++}a=15(a.1K(""),n.Q.W(e,w,""));a.1w={1m:f,19:d.2N?d.19:N};H a};M.3v="1.5.0";M.2I=1;M.1B=2;K C=/\\$(?:(\\d\\d?|[$&`\'])|{([$\\w]+)})/g,w=/[^5h]+|([\\s\\S])(?=[\\s\\S]*\\1)/g,A=/^(?:[?*+]|{\\d+(?:,\\d*)?})\\??/,v=11,u=[],n={X:15.Z.X,1A:15.Z.1A,1C:1r.Z.1C,Q:1r.Z.Q,1e:1r.Z.1e},x=n.X.W(/()??/,"")[1]===1d,D=6(){K f=/^/g;n.1A.W(f,"");H!f.12}(),y=6(){K f=/x/g;n.Q.W("x",f,"");H!f.12}(),E=15.Z.3n!==1d,z={};z[M.2I]=/^(?:\\\\(?:[0-3][0-7]{0,2}|[4-7][0-7]?|x[\\29-26-f]{2}|u[\\29-26-f]{4}|c[A-3o-z]|[\\s\\S]))/;z[M.1B]=/^(?:\\\\(?:0(?:[0-3][0-7]{0,2}|[4-7][0-7]?)?|[1-9]\\d*|x[\\29-26-f]{2}|u[\\29-26-f]{4}|c[A-3o-z]|[\\s\\S])|\\(\\?[:=!]|[?*+]\\?|{\\d+(?:,\\d*)?}\\??)/;M.1h=6(f,e,a,b){u.U({2q:r(f,"g"+(E?"y":"")),2b:e,3r:a||M.1B,2p:b||N})};M.2n=6(f,e){K a=f+"/"+(e||"");H M.2n[a]||(M.2n[a]=M(f,e))};M.3c=6(f){H r(f,"g")};M.5l=6(f){H f.Q(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g,"\\\\$&")};M.5e=6(f,e,a,b){e=r(e,"g"+(b&&E?"y":""));e.12=a=a||0;f=e.X(f);H b?f&&f.P===a?f:N:f};M.3q=6(){M.1h=6(){1S 2U("2a\'t 55 1h 54 3q")}};M.1R=6(f){H 53.Z.1q.W(f)==="[2m 15]"};M.3p=6(f,e,a,b){O(K c=r(e,"g"),d=-1,h;h=c.X(f);){a.W(b,h,++d,f,c);c.12===h.P&&c.12++}I(e.1J)e.12=0};M.57=6(f,e){H 6 a(b,c){K d=e[c].1I?e[c]:{1I:e[c]},h=r(d.1I,"g"),g=[],i;O(i=0;i<b.L;i++)M.3p(b[i],h,6(k){g.U(d.3j?k[d.3j]||"":k[0])});H c===e.L-1||!g.L?g:a(g,c+1)}([f],0)};15.Z.1p=6(f,e){H J.X(e[0])};15.Z.W=6(f,e){H J.X(e)};15.Z.X=6(f){K e=n.X.1p(J,14),a;I(e){I(!x&&e.L>1&&p(e,"")>-1){a=15(J.1m,n.Q.W(t(J),"g",""));n.Q.W(f.1a(e.P),a,6(){O(K c=1;c<14.L-2;c++)I(14[c]===1d)e[c]=1d})}I(J.1w&&J.1w.19)O(K b=1;b<e.L;b++)I(a=J.1w.19[b-1])e[a]=e[b];!D&&J.1J&&!e[0].L&&J.12>e.P&&J.12--}H e};I(!D)15.Z.1A=6(f){(f=n.X.W(J,f))&&J.1J&&!f[0].L&&J.12>f.P&&J.12--;H!!f};1r.Z.1C=6(f){M.1R(f)||(f=15(f));I(f.1J){K e=n.1C.1p(J,14);f.12=0;H e}H f.X(J)};1r.Z.Q=6(f,e){K a=M.1R(f),b,c;I(a&&1j e.58()==="3f"&&e.1i("${")===-1&&y)H n.Q.1p(J,14);I(a){I(f.1w)b=f.1w.19}Y f+="";I(1j e==="6")c=n.Q.W(J,f,6(){I(b){14[0]=1f 1r(14[0]);O(K d=0;d<b.L;d++)I(b[d])14[0][b[d]]=14[d+1]}I(a&&f.1J)f.12=14[14.L-2]+14[0].L;H e.1p(N,14)});Y{c=J+"";c=n.Q.W(c,f,6(){K d=14;H n.Q.W(e,C,6(h,g,i){I(g)5b(g){24"$":H"$";24"&":H d[0];24"`":H d[d.L-1].1a(0,d[d.L-2]);24"\'":H d[d.L-1].1a(d[d.L-2]+d[0].L);5a:i="";g=+g;I(!g)H h;O(;g>d.L-3;){i=1r.Z.1a.W(g,-1)+i;g=1Q.3i(g/10)}H(g?d[g]||"":"$")+i}Y{g=+i;I(g<=d.L-3)H d[g];g=b?p(b,i):-1;H g>-1?d[g+1]:h}})})}I(a&&f.1J)f.12=0;H c};1r.Z.1e=6(f,e){I(!M.1R(f))H n.1e.1p(J,14);K a=J+"",b=[],c=0,d,h;I(e===1d||+e<0)e=5D;Y{e=1Q.3i(+e);I(!e)H[]}O(f=M.3c(f);d=f.X(a);){I(f.12>c){b.U(a.1a(c,d.P));d.L>1&&d.P<a.L&&3b.Z.U.1p(b,d.1a(1));h=d[0].L;c=f.12;I(b.L>=e)1N}f.12===d.P&&f.12++}I(c===a.L){I(!n.1A.W(f,"")||h)b.U("")}Y b.U(a.1a(c));H b.L>e?b.1a(0,e):b};M.1h(/\\(\\?#[^)]*\\)/,6(f){H n.1A.W(A,f.2S.1a(f.P+f[0].L))?"":"(?:)"});M.1h(/\\((?!\\?)/,6(){J.19.U(N);H"("});M.1h(/\\(\\?<([$\\w]+)>/,6(f){J.19.U(f[1]);J.2N=R;H"("});M.1h(/\\\\k<([\\w$]+)>/,6(f){K e=p(J.19,f[1]);H e>-1?"\\\\"+(e+1)+(3R(f.2S.3a(f.P+f[0].L))?"":"(?:)"):f[0]});M.1h(/\\[\\^?]/,6(f){H f[0]==="[]"?"\\\\b\\\\B":"[\\\\s\\\\S]"});M.1h(/^\\(\\?([5A]+)\\)/,6(f){J.3d(f[1]);H""});M.1h(/(?:\\s+|#.*)+/,6(f){H n.1A.W(A,f.2S.1a(f.P+f[0].L))?"":"(?:)"},M.1B,6(){H J.2K("x")});M.1h(/\\./,6(){H"[\\\\s\\\\S]"},M.1B,6(){H J.2K("s")})})();1j 2e!="1d"&&(2e.M=M);K 1v=6(){6 r(a,b){a.1l.1i(b)!=-1||(a.1l+=" "+b)}6 t(a){H a.1i("3e")==0?a:"3e"+a}6 B(a){H e.1Y.2A[t(a)]}6 p(a,b,c){I(a==N)H N;K d=c!=R?a.3G:[a.2G],h={"#":"1c",".":"1l"}[b.1o(0,1)]||"3h",g,i;g=h!="3h"?b.1o(1):b.5u();I((a[h]||"").1i(g)!=-1)H a;O(a=0;d&&a<d.L&&i==N;a++)i=p(d[a],b,c);H i}6 C(a,b){K c={},d;O(d 2g a)c[d]=a[d];O(d 2g b)c[d]=b[d];H c}6 w(a,b,c,d){6 h(g){g=g||1P.5y;I(!g.1F){g.1F=g.52;g.3N=6(){J.5w=11}}c.W(d||1P,g)}a.3g?a.3g("4U"+b,h):a.4y(b,h,11)}6 A(a,b){K c=e.1Y.2j,d=N;I(c==N){c={};O(K h 2g e.1U){K g=e.1U[h];d=g.4x;I(d!=N){g.1V=h.4w();O(g=0;g<d.L;g++)c[d[g]]=h}}e.1Y.2j=c}d=e.1U[c[a]];d==N&&b!=11&&1P.1X(e.13.1x.1X+(e.13.1x.3E+a));H d}6 v(a,b){O(K c=a.1e("\\n"),d=0;d<c.L;d++)c[d]=b(c[d],d);H c.1K("\\n")}6 u(a,b){I(a==N||a.L==0||a=="\\n")H a;a=a.Q(/</g,"&1y;");a=a.Q(/ {2,}/g,6(c){O(K d="",h=0;h<c.L-1;h++)d+=e.13.1W;H d+" "});I(b!=N)a=v(a,6(c){I(c.L==0)H"";K d="";c=c.Q(/^(&2s;| )+/,6(h){d=h;H""});I(c.L==0)H d;H d+\'<17 1g="\'+b+\'">\'+c+"</17>"});H a}6 n(a,b){a.1e("\\n");O(K c="",d=0;d<50;d++)c+="                    ";H a=v(a,6(h){I(h.1i("\\t")==-1)H h;O(K g=0;(g=h.1i("\\t"))!=-1;)h=h.1o(0,g)+c.1o(0,b-g%b)+h.1o(g+1,h.L);H h})}6 x(a){H a.Q(/^\\s+|\\s+$/g,"")}6 D(a,b){I(a.P<b.P)H-1;Y I(a.P>b.P)H 1;Y I(a.L<b.L)H-1;Y I(a.L>b.L)H 1;H 0}6 y(a,b){6 c(k){H k[0]}O(K d=N,h=[],g=b.2D?b.2D:c;(d=b.1I.X(a))!=N;){K i=g(d,b);I(1j i=="3f")i=[1f e.2L(i,d.P,b.23)];h=h.1O(i)}H h}6 E(a){K b=/(.*)((&1G;|&1y;).*)/;H a.Q(e.3A.3M,6(c){K d="",h=N;I(h=b.X(c)){c=h[1];d=h[2]}H\'<a 2h="\'+c+\'">\'+c+"</a>"+d})}6 z(){O(K a=1E.36("1k"),b=[],c=0;c<a.L;c++)a[c].3s=="20"&&b.U(a[c]);H b}6 f(a){a=a.1F;K b=p(a,".20",R);a=p(a,".3O",R);K c=1E.4i("3t");I(!(!a||!b||p(a,"3t"))){B(b.1c);r(b,"1m");O(K d=a.3G,h=[],g=0;g<d.L;g++)h.U(d[g].4z||d[g].4A);h=h.1K("\\r");c.39(1E.4D(h));a.39(c);c.2C();c.4C();w(c,"4u",6(){c.2G.4E(c);b.1l=b.1l.Q("1m","")})}}I(1j 3F!="1d"&&1j M=="1d")M=3F("M").M;K e={2v:{"1g-27":"","2i-1s":1,"2z-1s-2t":11,1M:N,1t:N,"42-45":R,"43-22":4,1u:R,16:R,"3V-17":R,2l:11,"41-40":R,2k:11,"1z-1k":11},13:{1W:"&2s;",2M:R,46:11,44:11,34:"4n",1x:{21:"4o 1m",2P:"?",1X:"1v\\n\\n",3E:"4r\'t 4t 1D O: ",4g:"4m 4B\'t 51 O 1z-1k 4F: ",37:\'<!4T 1z 4S "-//4V//3H 4W 1.0 4Z//4Y" "1Z://2y.3L.3K/4X/3I/3H/3I-4P.4J"><1z 4I="1Z://2y.3L.3K/4L/5L"><3J><4N 1Z-4M="5G-5M" 6K="2O/1z; 6J=6I-8" /><1t>6L 1v</1t></3J><3B 1L="25-6M:6Q,6P,6O,6N-6F;6y-2f:#6x;2f:#6w;25-22:6v;2O-3D:3C;"><T 1L="2O-3D:3C;3w-32:1.6z;"><T 1L="25-22:6A-6E;">1v</T><T 1L="25-22:.6C;3w-6B:6R;"><T>3v 3.0.76 (72 73 3x)</T><T><a 2h="1Z://3u.2w/1v" 1F="38" 1L="2f:#3y">1Z://3u.2w/1v</a></T><T>70 17 6U 71.</T><T>6T 6X-3x 6Y 6D.</T></T><T>6t 61 60 J 1k, 5Z <a 2h="6u://2y.62.2w/63-66/65?64=5X-5W&5P=5O" 1L="2f:#3y">5R</a> 5V <2R/>5U 5T 5S!</T></T></3B></1z>\'}},1Y:{2j:N,2A:{}},1U:{},3A:{6n:/\\/\\*[\\s\\S]*?\\*\\//2c,6m:/\\/\\/.*$/2c,6l:/#.*$/2c,6k:/"([^\\\\"\\n]|\\\\.)*"/g,6o:/\'([^\\\\\'\\n]|\\\\.)*\'/g,6p:1f M(\'"([^\\\\\\\\"]|\\\\\\\\.)*"\',"3z"),6s:1f M("\'([^\\\\\\\\\']|\\\\\\\\.)*\'","3z"),6q:/(&1y;|<)!--[\\s\\S]*?--(&1G;|>)/2c,3M:/\\w+:\\/\\/[\\w-.\\/?%&=:@;]*/g,6a:{18:/(&1y;|<)\\?=?/g,1b:/\\?(&1G;|>)/g},69:{18:/(&1y;|<)%=?/g,1b:/%(&1G;|>)/g},6d:{18:/(&1y;|<)\\s*1k.*?(&1G;|>)/2T,1b:/(&1y;|<)\\/\\s*1k\\s*(&1G;|>)/2T}},16:{1H:6(a){6 b(i,k){H e.16.2o(i,k,e.13.1x[k])}O(K c=\'<T 1g="16">\',d=e.16.2x,h=d.2X,g=0;g<h.L;g++)c+=(d[h[g]].1H||b)(a,h[g]);c+="</T>";H c},2o:6(a,b,c){H\'<2W><a 2h="#" 1g="6e 6h\'+b+" "+b+\'">\'+c+"</a></2W>"},2b:6(a){K b=a.1F,c=b.1l||"";b=B(p(b,".20",R).1c);K d=6(h){H(h=15(h+"6f(\\\\w+)").X(c))?h[1]:N}("6g");b&&d&&e.16.2x[d].2B(b);a.3N()},2x:{2X:["21","2P"],21:{1H:6(a){I(a.V("2l")!=R)H"";K b=a.V("1t");H e.16.2o(a,"21",b?b:e.13.1x.21)},2B:6(a){a=1E.6j(t(a.1c));a.1l=a.1l.Q("47","")}},2P:{2B:6(){K a="68=0";a+=", 18="+(31.30-33)/2+", 32="+(31.2Z-2Y)/2+", 30=33, 2Z=2Y";a=a.Q(/^,/,"");a=1P.6Z("","38",a);a.2C();K b=a.1E;b.6W(e.13.1x.37);b.6V();a.2C()}}}},35:6(a,b){K c;I(b)c=[b];Y{c=1E.36(e.13.34);O(K d=[],h=0;h<c.L;h++)d.U(c[h]);c=d}c=c;d=[];I(e.13.2M)c=c.1O(z());I(c.L===0)H d;O(h=0;h<c.L;h++){O(K g=c[h],i=a,k=c[h].1l,j=3W 0,l={},m=1f M("^\\\\[(?<2V>(.*?))\\\\]$"),s=1f M("(?<27>[\\\\w-]+)\\\\s*:\\\\s*(?<1T>[\\\\w-%#]+|\\\\[.*?\\\\]|\\".*?\\"|\'.*?\')\\\\s*;?","g");(j=s.X(k))!=N;){K o=j.1T.Q(/^[\'"]|[\'"]$/g,"");I(o!=N&&m.1A(o)){o=m.X(o);o=o.2V.L>0?o.2V.1e(/\\s*,\\s*/):[]}l[j.27]=o}g={1F:g,1n:C(i,l)};g.1n.1D!=N&&d.U(g)}H d},1M:6(a,b){K c=J.35(a,b),d=N,h=e.13;I(c.L!==0)O(K g=0;g<c.L;g++){b=c[g];K i=b.1F,k=b.1n,j=k.1D,l;I(j!=N){I(k["1z-1k"]=="R"||e.2v["1z-1k"]==R){d=1f e.4l(j);j="4O"}Y I(d=A(j))d=1f d;Y 6H;l=i.3X;I(h.2M){l=l;K m=x(l),s=11;I(m.1i("<![6G[")==0){m=m.4h(9);s=R}K o=m.L;I(m.1i("]]\\>")==o-3){m=m.4h(0,o-3);s=R}l=s?m:l}I((i.1t||"")!="")k.1t=i.1t;k.1D=j;d.2Q(k);b=d.2F(l);I((i.1c||"")!="")b.1c=i.1c;i.2G.74(b,i)}}},2E:6(a){w(1P,"4k",6(){e.1M(a)})}};e.2E=e.2E;e.1M=e.1M;e.2L=6(a,b,c){J.1T=a;J.P=b;J.L=a.L;J.23=c;J.1V=N};e.2L.Z.1q=6(){H J.1T};e.4l=6(a){6 b(j,l){O(K m=0;m<j.L;m++)j[m].P+=l}K c=A(a),d,h=1f e.1U.5Y,g=J,i="2F 1H 2Q".1e(" ");I(c!=N){d=1f c;O(K k=0;k<i.L;k++)(6(){K j=i[k];g[j]=6(){H h[j].1p(h,14)}})();d.28==N?1P.1X(e.13.1x.1X+(e.13.1x.4g+a)):h.2J.U({1I:d.28.17,2D:6(j){O(K l=j.17,m=[],s=d.2J,o=j.P+j.18.L,F=d.28,q,G=0;G<s.L;G++){q=y(l,s[G]);b(q,o);m=m.1O(q)}I(F.18!=N&&j.18!=N){q=y(j.18,F.18);b(q,j.P);m=m.1O(q)}I(F.1b!=N&&j.1b!=N){q=y(j.1b,F.1b);b(q,j.P+j[0].5Q(j.1b));m=m.1O(q)}O(j=0;j<m.L;j++)m[j].1V=c.1V;H m}})}};e.4j=6(){};e.4j.Z={V:6(a,b){K c=J.1n[a];c=c==N?b:c;K d={"R":R,"11":11}[c];H d==N?c:d},3Y:6(a){H 1E.4i(a)},4c:6(a,b){K c=[];I(a!=N)O(K d=0;d<a.L;d++)I(1j a[d]=="2m")c=c.1O(y(b,a[d]));H J.4e(c.6b(D))},4e:6(a){O(K b=0;b<a.L;b++)I(a[b]!==N)O(K c=a[b],d=c.P+c.L,h=b+1;h<a.L&&a[b]!==N;h++){K g=a[h];I(g!==N)I(g.P>d)1N;Y I(g.P==c.P&&g.L>c.L)a[b]=N;Y I(g.P>=c.P&&g.P<d)a[h]=N}H a},4d:6(a){K b=[],c=2u(J.V("2i-1s"));v(a,6(d,h){b.U(h+c)});H b},3U:6(a){K b=J.V("1M",[]);I(1j b!="2m"&&b.U==N)b=[b];a:{a=a.1q();K c=3W 0;O(c=c=1Q.6c(c||0,0);c<b.L;c++)I(b[c]==a){b=c;1N a}b=-1}H b!=-1},2r:6(a,b,c){a=["1s","6i"+b,"P"+a,"6r"+(b%2==0?1:2).1q()];J.3U(b)&&a.U("67");b==0&&a.U("1N");H\'<T 1g="\'+a.1K(" ")+\'">\'+c+"</T>"},3Q:6(a,b){K c="",d=a.1e("\\n").L,h=2u(J.V("2i-1s")),g=J.V("2z-1s-2t");I(g==R)g=(h+d-1).1q().L;Y I(3R(g)==R)g=0;O(K i=0;i<d;i++){K k=b?b[i]:h+i,j;I(k==0)j=e.13.1W;Y{j=g;O(K l=k.1q();l.L<j;)l="0"+l;j=l}a=j;c+=J.2r(i,k,a)}H c},49:6(a,b){a=x(a);K c=a.1e("\\n");J.V("2z-1s-2t");K d=2u(J.V("2i-1s"));a="";O(K h=J.V("1D"),g=0;g<c.L;g++){K i=c[g],k=/^(&2s;|\\s)+/.X(i),j=N,l=b?b[g]:d+g;I(k!=N){j=k[0].1q();i=i.1o(j.L);j=j.Q(" ",e.13.1W)}i=x(i);I(i.L==0)i=e.13.1W;a+=J.2r(g,l,(j!=N?\'<17 1g="\'+h+\' 5N">\'+j+"</17>":"")+i)}H a},4f:6(a){H a?"<4a>"+a+"</4a>":""},4b:6(a,b){6 c(l){H(l=l?l.1V||g:g)?l+" ":""}O(K d=0,h="",g=J.V("1D",""),i=0;i<b.L;i++){K k=b[i],j;I(!(k===N||k.L===0)){j=c(k);h+=u(a.1o(d,k.P-d),j+"48")+u(k.1T,j+k.23);d=k.P+k.L+(k.75||0)}}h+=u(a.1o(d),c()+"48");H h},1H:6(a){K b="",c=["20"],d;I(J.V("2k")==R)J.1n.16=J.1n.1u=11;1l="20";J.V("2l")==R&&c.U("47");I((1u=J.V("1u"))==11)c.U("6S");c.U(J.V("1g-27"));c.U(J.V("1D"));a=a.Q(/^[ ]*[\\n]+|[\\n]*[ ]*$/g,"").Q(/\\r/g," ");b=J.V("43-22");I(J.V("42-45")==R)a=n(a,b);Y{O(K h="",g=0;g<b;g++)h+=" ";a=a.Q(/\\t/g,h)}a=a;a:{b=a=a;h=/<2R\\s*\\/?>|&1y;2R\\s*\\/?&1G;/2T;I(e.13.46==R)b=b.Q(h,"\\n");I(e.13.44==R)b=b.Q(h,"");b=b.1e("\\n");h=/^\\s*/;g=4Q;O(K i=0;i<b.L&&g>0;i++){K k=b[i];I(x(k).L!=0){k=h.X(k);I(k==N){a=a;1N a}g=1Q.4q(k[0].L,g)}}I(g>0)O(i=0;i<b.L;i++)b[i]=b[i].1o(g);a=b.1K("\\n")}I(1u)d=J.4d(a);b=J.4c(J.2J,a);b=J.4b(a,b);b=J.49(b,d);I(J.V("41-40"))b=E(b);1j 2H!="1d"&&2H.3S&&2H.3S.1C(/5s/)&&c.U("5t");H b=\'<T 1c="\'+t(J.1c)+\'" 1g="\'+c.1K(" ")+\'">\'+(J.V("16")?e.16.1H(J):"")+\'<3Z 5z="0" 5H="0" 5J="0">\'+J.4f(J.V("1t"))+"<3T><3P>"+(1u?\'<2d 1g="1u">\'+J.3Q(a)+"</2d>":"")+\'<2d 1g="17"><T 1g="3O">\'+b+"</T></2d></3P></3T></3Z></T>"},2F:6(a){I(a===N)a="";J.17=a;K b=J.3Y("T");b.3X=J.1H(a);J.V("16")&&w(p(b,".16"),"5c",e.16.2b);J.V("3V-17")&&w(p(b,".17"),"56",f);H b},2Q:6(a){J.1c=""+1Q.5d(1Q.5n()*5k).1q();e.1Y.2A[t(J.1c)]=J;J.1n=C(e.2v,a||{});I(J.V("2k")==R)J.1n.16=J.1n.1u=11},5j:6(a){a=a.Q(/^\\s+|\\s+$/g,"").Q(/\\s+/g,"|");H"\\\\b(?:"+a+")\\\\b"},5f:6(a){J.28={18:{1I:a.18,23:"1k"},1b:{1I:a.1b,23:"1k"},17:1f M("(?<18>"+a.18.1m+")(?<17>.*?)(?<1b>"+a.1b.1m+")","5o")}}};H e}();1j 2e!="1d"&&(2e.1v=1v);',62,441,"||||||function|||||||||||||||||||||||||||||||||||||return|if|this|var|length|XRegExp|null|for|index|replace|true||div|push|getParam|call|exec|else|prototype||false|lastIndex|config|arguments|RegExp|toolbar|code|left|captureNames|slice|right|id|undefined|split|new|class|addToken|indexOf|typeof|script|className|source|params|substr|apply|toString|String|line|title|gutter|SyntaxHighlighter|_xregexp|strings|lt|html|test|OUTSIDE_CLASS|match|brush|document|target|gt|getHtml|regex|global|join|style|highlight|break|concat|window|Math|isRegExp|throw|value|brushes|brushName|space|alert|vars|http|syntaxhighlighter|expandSource|size|css|case|font|Fa|name|htmlScript|dA|can|handler|gm|td|exports|color|in|href|first|discoveredBrushes|light|collapse|object|cache|getButtonHtml|trigger|pattern|getLineHtml|nbsp|numbers|parseInt|defaults|com|items|www|pad|highlighters|execute|focus|func|all|getDiv|parentNode|navigator|INSIDE_CLASS|regexList|hasFlag|Match|useScriptTags|hasNamedCapture|text|help|init|br|input|gi|Error|values|span|list|250|height|width|screen|top|500|tagName|findElements|getElementsByTagName|aboutDialog|_blank|appendChild|charAt|Array|copyAsGlobal|setFlag|highlighter_|string|attachEvent|nodeName|floor|backref|output|the|TypeError|sticky|Za|iterate|freezeTokens|scope|type|textarea|alexgorbatchev|version|margin|2010|005896|gs|regexLib|body|center|align|noBrush|require|childNodes|DTD|xhtml1|head|org|w3|url|preventDefault|container|tr|getLineNumbersHtml|isNaN|userAgent|tbody|isLineHighlighted|quick|void|innerHTML|create|table|links|auto|smart|tab|stripBrs|tabs|bloggerMode|collapsed|plain|getCodeLinesHtml|caption|getMatchesHtml|findMatches|figureOutLineNumbers|removeNestedMatches|getTitleHtml|brushNotHtmlScript|substring|createElement|Highlighter|load|HtmlScript|Brush|pre|expand|multiline|min|Can|ignoreCase|find|blur|extended|toLowerCase|aliases|addEventListener|innerText|textContent|wasn|select|createTextNode|removeChild|option|same|frame|xmlns|dtd|twice|1999|equiv|meta|htmlscript|transitional|1E3|expected|PUBLIC|DOCTYPE|on|W3C|XHTML|TR|EN|Transitional||configured|srcElement|Object|after|run|dblclick|matchChain|valueOf|constructor|default|switch|click|round|execAt|forHtmlScript|token|gimy|functions|getKeywords|1E6|escape|within|random|sgi|another|finally|supply|MSIE|ie|toUpperCase|catch|returnValue|definition|event|border|imsx|constructing|one|Infinity|from|when|Content|cellpadding|flags|cellspacing|try|xhtml|Type|spaces|2930402|hosted_button_id|lastIndexOf|donate|active|development|keep|to|xclick|_s|Xml|please|like|you|paypal|cgi|cmd|webscr|bin|highlighted|scrollbars|aspScriptTags|phpScriptTags|sort|max|scriptScriptTags|toolbar_item|_|command|command_|number|getElementById|doubleQuotedString|singleLinePerlComments|singleLineCComments|multiLineCComments|singleQuotedString|multiLineDoubleQuotedString|xmlComments|alt|multiLineSingleQuotedString|If|https|1em|000|fff|background|5em|xx|bottom|75em|Gorbatchev|large|serif|CDATA|continue|utf|charset|content|About|family|sans|Helvetica|Arial|Geneva|3em|nogutter|Copyright|syntax|close|write|2004|Alex|open|JavaScript|highlighter|July|02|replaceChild|offset|83".split("|"),0,{}));
\ No newline at end of file
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/syntaxhighlighter/styles/shCore.css b/wqflask/wqflask/static/packages/jqplot/examples/syntaxhighlighter/styles/shCore.css
deleted file mode 100755
index 34f6864a..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/syntaxhighlighter/styles/shCore.css
+++ /dev/null
@@ -1,226 +0,0 @@
-/**
- * SyntaxHighlighter
- * http://alexgorbatchev.com/SyntaxHighlighter
- *
- * SyntaxHighlighter is donationware. If you are using it, please donate.
- * http://alexgorbatchev.com/SyntaxHighlighter/donate.html
- *
- * @version
- * 3.0.83 (July 02 2010)
- * 
- * @copyright
- * Copyright (C) 2004-2010 Alex Gorbatchev.
- *
- * @license
- * Dual licensed under the MIT and GPL licenses.
- */
-.syntaxhighlighter a,
-.syntaxhighlighter div,
-.syntaxhighlighter code,
-.syntaxhighlighter table,
-.syntaxhighlighter table td,
-.syntaxhighlighter table tr,
-.syntaxhighlighter table tbody,
-.syntaxhighlighter table thead,
-.syntaxhighlighter table caption,
-.syntaxhighlighter textarea {
-  -moz-border-radius: 0 0 0 0 !important;
-  -webkit-border-radius: 0 0 0 0 !important;
-  background: none !important;
-  border: 0 !important;
-  bottom: auto !important;
-  float: none !important;
-  height: auto !important;
-  left: auto !important;
-  line-height: 1.1em !important;
-  margin: 0 !important;
-  outline: 0 !important;
-  overflow: visible !important;
-  padding: 0 !important;
-  position: static !important;
-  right: auto !important;
-  text-align: left !important;
-  top: auto !important;
-  vertical-align: baseline !important;
-  width: auto !important;
-  box-sizing: content-box !important;
-  font-family: "Consolas", "Bitstream Vera Sans Mono", "Courier New", Courier, monospace !important;
-  font-weight: normal !important;
-  font-style: normal !important;
-  font-size: 1em !important;
-  min-height: inherit !important;
-  min-height: auto !important;
-}
-
-.syntaxhighlighter {
-  width: 100% !important;
-  margin: 1em 0 1em 0 !important;
-  position: relative !important;
-  overflow: auto !important;
-  font-size: 1em !important;
-}
-.syntaxhighlighter.source {
-  overflow: hidden !important;
-}
-.syntaxhighlighter .bold {
-  font-weight: bold !important;
-}
-.syntaxhighlighter .italic {
-  font-style: italic !important;
-}
-.syntaxhighlighter .line {
-  white-space: pre !important;
-}
-.syntaxhighlighter table {
-  width: 100% !important;
-}
-.syntaxhighlighter table caption {
-  text-align: left !important;
-  padding: .5em 0 0.5em 1em !important;
-}
-.syntaxhighlighter table td.code {
-  width: 100% !important;
-}
-.syntaxhighlighter table td.code .container {
-  position: relative !important;
-}
-.syntaxhighlighter table td.code .container textarea {
-  box-sizing: border-box !important;
-  position: absolute !important;
-  left: 0 !important;
-  top: 0 !important;
-  width: 100% !important;
-  height: 100% !important;
-  border: none !important;
-  background: white !important;
-  padding-left: 1em !important;
-  overflow: hidden !important;
-  white-space: pre !important;
-}
-.syntaxhighlighter table td.gutter .line {
-  text-align: right !important;
-  padding: 0 0.5em 0 1em !important;
-}
-.syntaxhighlighter table td.code .line {
-  padding: 0 1em !important;
-}
-.syntaxhighlighter.nogutter td.code .container textarea, .syntaxhighlighter.nogutter td.code .line {
-  padding-left: 0em !important;
-}
-.syntaxhighlighter.show {
-  display: block !important;
-}
-.syntaxhighlighter.collapsed table {
-  display: none !important;
-}
-.syntaxhighlighter.collapsed .toolbar {
-  padding: 0.1em 0.8em 0em 0.8em !important;
-  font-size: 1em !important;
-  position: static !important;
-  width: auto !important;
-  height: auto !important;
-}
-.syntaxhighlighter.collapsed .toolbar span {
-  display: inline !important;
-  margin-right: 1em !important;
-}
-.syntaxhighlighter.collapsed .toolbar span a {
-  padding: 0 !important;
-  display: none !important;
-}
-.syntaxhighlighter.collapsed .toolbar span a.expandSource {
-  display: inline !important;
-}
-.syntaxhighlighter .toolbar {
-  position: absolute !important;
-  right: 1px !important;
-  top: 1px !important;
-  width: 11px !important;
-  height: 11px !important;
-  font-size: 10px !important;
-  z-index: 10 !important;
-}
-.syntaxhighlighter .toolbar span.title {
-  display: inline !important;
-}
-.syntaxhighlighter .toolbar a {
-  display: block !important;
-  text-align: center !important;
-  text-decoration: none !important;
-  padding-top: 1px !important;
-}
-.syntaxhighlighter .toolbar a.expandSource {
-  display: none !important;
-}
-.syntaxhighlighter.ie {
-  font-size: .9em !important;
-  padding: 1px 0 1px 0 !important;
-}
-.syntaxhighlighter.ie .toolbar {
-  line-height: 8px !important;
-}
-.syntaxhighlighter.ie .toolbar a {
-  padding-top: 0px !important;
-}
-.syntaxhighlighter.printing .line.alt1 .content,
-.syntaxhighlighter.printing .line.alt2 .content,
-.syntaxhighlighter.printing .line.highlighted .number,
-.syntaxhighlighter.printing .line.highlighted.alt1 .content,
-.syntaxhighlighter.printing .line.highlighted.alt2 .content {
-  background: none !important;
-}
-.syntaxhighlighter.printing .line .number {
-  color: #bbbbbb !important;
-}
-.syntaxhighlighter.printing .line .content {
-  color: black !important;
-}
-.syntaxhighlighter.printing .toolbar {
-  display: none !important;
-}
-.syntaxhighlighter.printing a {
-  text-decoration: none !important;
-}
-.syntaxhighlighter.printing .plain, .syntaxhighlighter.printing .plain a {
-  color: black !important;
-}
-.syntaxhighlighter.printing .comments, .syntaxhighlighter.printing .comments a {
-  color: #008200 !important;
-}
-.syntaxhighlighter.printing .string, .syntaxhighlighter.printing .string a {
-  color: blue !important;
-}
-.syntaxhighlighter.printing .keyword {
-  color: #006699 !important;
-  font-weight: bold !important;
-}
-.syntaxhighlighter.printing .preprocessor {
-  color: gray !important;
-}
-.syntaxhighlighter.printing .variable {
-  color: #aa7700 !important;
-}
-.syntaxhighlighter.printing .value {
-  color: #009900 !important;
-}
-.syntaxhighlighter.printing .functions {
-  color: #ff1493 !important;
-}
-.syntaxhighlighter.printing .constants {
-  color: #0066cc !important;
-}
-.syntaxhighlighter.printing .script {
-  font-weight: bold !important;
-}
-.syntaxhighlighter.printing .color1, .syntaxhighlighter.printing .color1 a {
-  color: gray !important;
-}
-.syntaxhighlighter.printing .color2, .syntaxhighlighter.printing .color2 a {
-  color: #ff1493 !important;
-}
-.syntaxhighlighter.printing .color3, .syntaxhighlighter.printing .color3 a {
-  color: red !important;
-}
-.syntaxhighlighter.printing .break, .syntaxhighlighter.printing .break a {
-  color: black !important;
-}
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/syntaxhighlighter/styles/shCore.min.css b/wqflask/wqflask/static/packages/jqplot/examples/syntaxhighlighter/styles/shCore.min.css
deleted file mode 100755
index a2d3a61f..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/syntaxhighlighter/styles/shCore.min.css
+++ /dev/null
@@ -1 +0,0 @@
-.syntaxhighlighter a,.syntaxhighlighter div,.syntaxhighlighter code,.syntaxhighlighter table,.syntaxhighlighter table td,.syntaxhighlighter table tr,.syntaxhighlighter table tbody,.syntaxhighlighter table thead,.syntaxhighlighter table caption,.syntaxhighlighter textarea{-moz-border-radius:0 0 0 0!important;-webkit-border-radius:0 0 0 0!important;background:none!important;border:0!important;bottom:auto!important;float:none!important;height:auto!important;left:auto!important;line-height:1.1em!important;margin:0!important;outline:0!important;overflow:visible!important;padding:0!important;position:static!important;right:auto!important;text-align:left!important;top:auto!important;vertical-align:baseline!important;width:auto!important;box-sizing:content-box!important;font-family:"Consolas","Bitstream Vera Sans Mono","Courier New",Courier,monospace!important;font-weight:normal!important;font-style:normal!important;font-size:1em!important;min-height:inherit!important;min-height:auto!important;}.syntaxhighlighter{width:100%!important;margin:1em 0 1em 0!important;position:relative!important;overflow:auto!important;font-size:1em!important;}.syntaxhighlighter.source{overflow:hidden!important;}.syntaxhighlighter .bold{font-weight:bold!important;}.syntaxhighlighter .italic{font-style:italic!important;}.syntaxhighlighter .line{white-space:pre!important;}.syntaxhighlighter table{width:100%!important;}.syntaxhighlighter table caption{text-align:left!important;padding:.5em 0 .5em 1em!important;}.syntaxhighlighter table td.code{width:100%!important;}.syntaxhighlighter table td.code .container{position:relative!important;}.syntaxhighlighter table td.code .container textarea{box-sizing:border-box!important;position:absolute!important;left:0!important;top:0!important;width:100%!important;height:100%!important;border:none!important;background:white!important;padding-left:1em!important;overflow:hidden!important;white-space:pre!important;}.syntaxhighlighter table td.gutter .line{text-align:right!important;padding:0 .5em 0 1em!important;}.syntaxhighlighter table td.code .line{padding:0 1em!important;}.syntaxhighlighter.nogutter td.code .container textarea,.syntaxhighlighter.nogutter td.code .line{padding-left:0!important;}.syntaxhighlighter.show{display:block!important;}.syntaxhighlighter.collapsed table{display:none!important;}.syntaxhighlighter.collapsed .toolbar{padding:.1em .8em 0 .8em!important;font-size:1em!important;position:static!important;width:auto!important;height:auto!important;}.syntaxhighlighter.collapsed .toolbar span{display:inline!important;margin-right:1em!important;}.syntaxhighlighter.collapsed .toolbar span a{padding:0!important;display:none!important;}.syntaxhighlighter.collapsed .toolbar span a.expandSource{display:inline!important;}.syntaxhighlighter .toolbar{position:absolute!important;right:1px!important;top:1px!important;width:11px!important;height:11px!important;font-size:10px!important;z-index:10!important;}.syntaxhighlighter .toolbar span.title{display:inline!important;}.syntaxhighlighter .toolbar a{display:block!important;text-align:center!important;text-decoration:none!important;padding-top:1px!important;}.syntaxhighlighter .toolbar a.expandSource{display:none!important;}.syntaxhighlighter.ie{font-size:.9em!important;padding:1px 0 1px 0!important;}.syntaxhighlighter.ie .toolbar{line-height:8px!important;}.syntaxhighlighter.ie .toolbar a{padding-top:0!important;}.syntaxhighlighter.printing .line.alt1 .content,.syntaxhighlighter.printing .line.alt2 .content,.syntaxhighlighter.printing .line.highlighted .number,.syntaxhighlighter.printing .line.highlighted.alt1 .content,.syntaxhighlighter.printing .line.highlighted.alt2 .content{background:none!important;}.syntaxhighlighter.printing .line .number{color:#bbb!important;}.syntaxhighlighter.printing .line .content{color:black!important;}.syntaxhighlighter.printing .toolbar{display:none!important;}.syntaxhighlighter.printing a{text-decoration:none!important;}.syntaxhighlighter.printing .plain,.syntaxhighlighter.printing .plain a{color:black!important;}.syntaxhighlighter.printing .comments,.syntaxhighlighter.printing .comments a{color:#008200!important;}.syntaxhighlighter.printing .string,.syntaxhighlighter.printing .string a{color:blue!important;}.syntaxhighlighter.printing .keyword{color:#069!important;font-weight:bold!important;}.syntaxhighlighter.printing .preprocessor{color:gray!important;}.syntaxhighlighter.printing .variable{color:#a70!important;}.syntaxhighlighter.printing .value{color:#090!important;}.syntaxhighlighter.printing .functions{color:#ff1493!important;}.syntaxhighlighter.printing .constants{color:#06c!important;}.syntaxhighlighter.printing .script{font-weight:bold!important;}.syntaxhighlighter.printing .color1,.syntaxhighlighter.printing .color1 a{color:gray!important;}.syntaxhighlighter.printing .color2,.syntaxhighlighter.printing .color2 a{color:#ff1493!important;}.syntaxhighlighter.printing .color3,.syntaxhighlighter.printing .color3 a{color:red!important;}.syntaxhighlighter.printing .break,.syntaxhighlighter.printing .break a{color:black!important;}
\ No newline at end of file
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/syntaxhighlighter/styles/shCoreDefault.css b/wqflask/wqflask/static/packages/jqplot/examples/syntaxhighlighter/styles/shCoreDefault.css
deleted file mode 100755
index 08f9e10e..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/syntaxhighlighter/styles/shCoreDefault.css
+++ /dev/null
@@ -1,328 +0,0 @@
-/**
- * SyntaxHighlighter
- * http://alexgorbatchev.com/SyntaxHighlighter
- *
- * SyntaxHighlighter is donationware. If you are using it, please donate.
- * http://alexgorbatchev.com/SyntaxHighlighter/donate.html
- *
- * @version
- * 3.0.83 (July 02 2010)
- * 
- * @copyright
- * Copyright (C) 2004-2010 Alex Gorbatchev.
- *
- * @license
- * Dual licensed under the MIT and GPL licenses.
- */
-.syntaxhighlighter a,
-.syntaxhighlighter div,
-.syntaxhighlighter code,
-.syntaxhighlighter table,
-.syntaxhighlighter table td,
-.syntaxhighlighter table tr,
-.syntaxhighlighter table tbody,
-.syntaxhighlighter table thead,
-.syntaxhighlighter table caption,
-.syntaxhighlighter textarea {
-  -moz-border-radius: 0 0 0 0 !important;
-  -webkit-border-radius: 0 0 0 0 !important;
-  background: none !important;
-  border: 0 !important;
-  bottom: auto !important;
-  float: none !important;
-  height: auto !important;
-  left: auto !important;
-  line-height: 1.1em !important;
-  margin: 0 !important;
-  outline: 0 !important;
-  overflow: visible !important;
-  padding: 0 !important;
-  position: static !important;
-  right: auto !important;
-  text-align: left !important;
-  top: auto !important;
-  vertical-align: baseline !important;
-  width: auto !important;
-  box-sizing: content-box !important;
-  font-family: "Consolas", "Bitstream Vera Sans Mono", "Courier New", Courier, monospace !important;
-  font-weight: normal !important;
-  font-style: normal !important;
-  font-size: 1em !important;
-  min-height: inherit !important;
-  min-height: auto !important;
-}
-
-.syntaxhighlighter {
-  width: 100% !important;
-  margin: 1em 0 1em 0 !important;
-  position: relative !important;
-  overflow: auto !important;
-  font-size: 1em !important;
-}
-.syntaxhighlighter.source {
-  overflow: hidden !important;
-}
-.syntaxhighlighter .bold {
-  font-weight: bold !important;
-}
-.syntaxhighlighter .italic {
-  font-style: italic !important;
-}
-.syntaxhighlighter .line {
-  white-space: pre !important;
-}
-.syntaxhighlighter table {
-  width: 100% !important;
-}
-.syntaxhighlighter table caption {
-  text-align: left !important;
-  padding: .5em 0 0.5em 1em !important;
-}
-.syntaxhighlighter table td.code {
-  width: 100% !important;
-}
-.syntaxhighlighter table td.code .container {
-  position: relative !important;
-}
-.syntaxhighlighter table td.code .container textarea {
-  box-sizing: border-box !important;
-  position: absolute !important;
-  left: 0 !important;
-  top: 0 !important;
-  width: 100% !important;
-  height: 100% !important;
-  border: none !important;
-  background: white !important;
-  padding-left: 1em !important;
-  overflow: hidden !important;
-  white-space: pre !important;
-}
-.syntaxhighlighter table td.gutter .line {
-  text-align: right !important;
-  padding: 0 0.5em 0 1em !important;
-}
-.syntaxhighlighter table td.code .line {
-  padding: 0 1em !important;
-}
-.syntaxhighlighter.nogutter td.code .container textarea, .syntaxhighlighter.nogutter td.code .line {
-  padding-left: 0em !important;
-}
-.syntaxhighlighter.show {
-  display: block !important;
-}
-.syntaxhighlighter.collapsed table {
-  display: none !important;
-}
-.syntaxhighlighter.collapsed .toolbar {
-  padding: 0.1em 0.8em 0em 0.8em !important;
-  font-size: 1em !important;
-  position: static !important;
-  width: auto !important;
-  height: auto !important;
-}
-.syntaxhighlighter.collapsed .toolbar span {
-  display: inline !important;
-  margin-right: 1em !important;
-}
-.syntaxhighlighter.collapsed .toolbar span a {
-  padding: 0 !important;
-  display: none !important;
-}
-.syntaxhighlighter.collapsed .toolbar span a.expandSource {
-  display: inline !important;
-}
-.syntaxhighlighter .toolbar {
-  position: absolute !important;
-  right: 1px !important;
-  top: 1px !important;
-  width: 11px !important;
-  height: 11px !important;
-  font-size: 10px !important;
-  z-index: 10 !important;
-}
-.syntaxhighlighter .toolbar span.title {
-  display: inline !important;
-}
-.syntaxhighlighter .toolbar a {
-  display: block !important;
-  text-align: center !important;
-  text-decoration: none !important;
-  padding-top: 1px !important;
-}
-.syntaxhighlighter .toolbar a.expandSource {
-  display: none !important;
-}
-.syntaxhighlighter.ie {
-  font-size: .9em !important;
-  padding: 1px 0 1px 0 !important;
-}
-.syntaxhighlighter.ie .toolbar {
-  line-height: 8px !important;
-}
-.syntaxhighlighter.ie .toolbar a {
-  padding-top: 0px !important;
-}
-.syntaxhighlighter.printing .line.alt1 .content,
-.syntaxhighlighter.printing .line.alt2 .content,
-.syntaxhighlighter.printing .line.highlighted .number,
-.syntaxhighlighter.printing .line.highlighted.alt1 .content,
-.syntaxhighlighter.printing .line.highlighted.alt2 .content {
-  background: none !important;
-}
-.syntaxhighlighter.printing .line .number {
-  color: #bbbbbb !important;
-}
-.syntaxhighlighter.printing .line .content {
-  color: black !important;
-}
-.syntaxhighlighter.printing .toolbar {
-  display: none !important;
-}
-.syntaxhighlighter.printing a {
-  text-decoration: none !important;
-}
-.syntaxhighlighter.printing .plain, .syntaxhighlighter.printing .plain a {
-  color: black !important;
-}
-.syntaxhighlighter.printing .comments, .syntaxhighlighter.printing .comments a {
-  color: #008200 !important;
-}
-.syntaxhighlighter.printing .string, .syntaxhighlighter.printing .string a {
-  color: blue !important;
-}
-.syntaxhighlighter.printing .keyword {
-  color: #006699 !important;
-  font-weight: bold !important;
-}
-.syntaxhighlighter.printing .preprocessor {
-  color: gray !important;
-}
-.syntaxhighlighter.printing .variable {
-  color: #aa7700 !important;
-}
-.syntaxhighlighter.printing .value {
-  color: #009900 !important;
-}
-.syntaxhighlighter.printing .functions {
-  color: #ff1493 !important;
-}
-.syntaxhighlighter.printing .constants {
-  color: #0066cc !important;
-}
-.syntaxhighlighter.printing .script {
-  font-weight: bold !important;
-}
-.syntaxhighlighter.printing .color1, .syntaxhighlighter.printing .color1 a {
-  color: gray !important;
-}
-.syntaxhighlighter.printing .color2, .syntaxhighlighter.printing .color2 a {
-  color: #ff1493 !important;
-}
-.syntaxhighlighter.printing .color3, .syntaxhighlighter.printing .color3 a {
-  color: red !important;
-}
-.syntaxhighlighter.printing .break, .syntaxhighlighter.printing .break a {
-  color: black !important;
-}
-
-.syntaxhighlighter {
-  background-color: white !important;
-}
-.syntaxhighlighter .line.alt1 {
-  background-color: white !important;
-}
-.syntaxhighlighter .line.alt2 {
-  background-color: white !important;
-}
-.syntaxhighlighter .line.highlighted.alt1, .syntaxhighlighter .line.highlighted.alt2 {
-  background-color: #e0e0e0 !important;
-}
-.syntaxhighlighter .line.highlighted.number {
-  color: black !important;
-}
-.syntaxhighlighter table caption {
-  color: black !important;
-}
-.syntaxhighlighter .gutter {
-  color: #afafaf !important;
-}
-.syntaxhighlighter .gutter .line {
-  border-right: 3px solid #6ce26c !important;
-}
-.syntaxhighlighter .gutter .line.highlighted {
-  background-color: #6ce26c !important;
-  color: white !important;
-}
-.syntaxhighlighter.printing .line .content {
-  border: none !important;
-}
-.syntaxhighlighter.collapsed {
-  overflow: visible !important;
-}
-.syntaxhighlighter.collapsed .toolbar {
-  color: blue !important;
-  background: white !important;
-  border: 1px solid #6ce26c !important;
-}
-.syntaxhighlighter.collapsed .toolbar a {
-  color: blue !important;
-}
-.syntaxhighlighter.collapsed .toolbar a:hover {
-  color: red !important;
-}
-.syntaxhighlighter .toolbar {
-  color: white !important;
-  background: #6ce26c !important;
-  border: none !important;
-}
-.syntaxhighlighter .toolbar a {
-  color: white !important;
-}
-.syntaxhighlighter .toolbar a:hover {
-  color: black !important;
-}
-.syntaxhighlighter .plain, .syntaxhighlighter .plain a {
-  color: black !important;
-}
-.syntaxhighlighter .comments, .syntaxhighlighter .comments a {
-  color: #008200 !important;
-}
-.syntaxhighlighter .string, .syntaxhighlighter .string a {
-  color: blue !important;
-}
-.syntaxhighlighter .keyword {
-  color: #006699 !important;
-}
-.syntaxhighlighter .preprocessor {
-  color: gray !important;
-}
-.syntaxhighlighter .variable {
-  color: #aa7700 !important;
-}
-.syntaxhighlighter .value {
-  color: #009900 !important;
-}
-.syntaxhighlighter .functions {
-  color: #ff1493 !important;
-}
-.syntaxhighlighter .constants {
-  color: #0066cc !important;
-}
-.syntaxhighlighter .script {
-  font-weight: bold !important;
-  color: #006699 !important;
-  background-color: none !important;
-}
-.syntaxhighlighter .color1, .syntaxhighlighter .color1 a {
-  color: gray !important;
-}
-.syntaxhighlighter .color2, .syntaxhighlighter .color2 a {
-  color: #ff1493 !important;
-}
-.syntaxhighlighter .color3, .syntaxhighlighter .color3 a {
-  color: red !important;
-}
-
-.syntaxhighlighter .keyword {
-  font-weight: bold !important;
-}
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/syntaxhighlighter/styles/shCoreDefault.min.css b/wqflask/wqflask/static/packages/jqplot/examples/syntaxhighlighter/styles/shCoreDefault.min.css
deleted file mode 100755
index 0b99c299..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/syntaxhighlighter/styles/shCoreDefault.min.css
+++ /dev/null
@@ -1 +0,0 @@
-.syntaxhighlighter a,.syntaxhighlighter div,.syntaxhighlighter code,.syntaxhighlighter table,.syntaxhighlighter table td,.syntaxhighlighter table tr,.syntaxhighlighter table tbody,.syntaxhighlighter table thead,.syntaxhighlighter table caption,.syntaxhighlighter textarea{-moz-border-radius:0 0 0 0!important;-webkit-border-radius:0 0 0 0!important;background:none!important;border:0!important;bottom:auto!important;float:none!important;height:auto!important;left:auto!important;line-height:1.1em!important;margin:0!important;outline:0!important;overflow:visible!important;padding:0!important;position:static!important;right:auto!important;text-align:left!important;top:auto!important;vertical-align:baseline!important;width:auto!important;box-sizing:content-box!important;font-family:"Consolas","Bitstream Vera Sans Mono","Courier New",Courier,monospace!important;font-weight:normal!important;font-style:normal!important;font-size:1em!important;min-height:inherit!important;min-height:auto!important;}.syntaxhighlighter{width:100%!important;margin:1em 0 1em 0!important;position:relative!important;overflow:auto!important;font-size:1em!important;}.syntaxhighlighter.source{overflow:hidden!important;}.syntaxhighlighter .bold{font-weight:bold!important;}.syntaxhighlighter .italic{font-style:italic!important;}.syntaxhighlighter .line{white-space:pre!important;}.syntaxhighlighter table{width:100%!important;}.syntaxhighlighter table caption{text-align:left!important;padding:.5em 0 .5em 1em!important;}.syntaxhighlighter table td.code{width:100%!important;}.syntaxhighlighter table td.code .container{position:relative!important;}.syntaxhighlighter table td.code .container textarea{box-sizing:border-box!important;position:absolute!important;left:0!important;top:0!important;width:100%!important;height:100%!important;border:none!important;background:white!important;padding-left:1em!important;overflow:hidden!important;white-space:pre!important;}.syntaxhighlighter table td.gutter .line{text-align:right!important;padding:0 .5em 0 1em!important;}.syntaxhighlighter table td.code .line{padding:0 1em!important;}.syntaxhighlighter.nogutter td.code .container textarea,.syntaxhighlighter.nogutter td.code .line{padding-left:0!important;}.syntaxhighlighter.show{display:block!important;}.syntaxhighlighter.collapsed table{display:none!important;}.syntaxhighlighter.collapsed .toolbar{padding:.1em .8em 0 .8em!important;font-size:1em!important;position:static!important;width:auto!important;height:auto!important;}.syntaxhighlighter.collapsed .toolbar span{display:inline!important;margin-right:1em!important;}.syntaxhighlighter.collapsed .toolbar span a{padding:0!important;display:none!important;}.syntaxhighlighter.collapsed .toolbar span a.expandSource{display:inline!important;}.syntaxhighlighter .toolbar{position:absolute!important;right:1px!important;top:1px!important;width:11px!important;height:11px!important;font-size:10px!important;z-index:10!important;}.syntaxhighlighter .toolbar span.title{display:inline!important;}.syntaxhighlighter .toolbar a{display:block!important;text-align:center!important;text-decoration:none!important;padding-top:1px!important;}.syntaxhighlighter .toolbar a.expandSource{display:none!important;}.syntaxhighlighter.ie{font-size:.9em!important;padding:1px 0 1px 0!important;}.syntaxhighlighter.ie .toolbar{line-height:8px!important;}.syntaxhighlighter.ie .toolbar a{padding-top:0!important;}.syntaxhighlighter.printing .line.alt1 .content,.syntaxhighlighter.printing .line.alt2 .content,.syntaxhighlighter.printing .line.highlighted .number,.syntaxhighlighter.printing .line.highlighted.alt1 .content,.syntaxhighlighter.printing .line.highlighted.alt2 .content{background:none!important;}.syntaxhighlighter.printing .line .number{color:#bbb!important;}.syntaxhighlighter.printing .line .content{color:black!important;}.syntaxhighlighter.printing .toolbar{display:none!important;}.syntaxhighlighter.printing a{text-decoration:none!important;}.syntaxhighlighter.printing .plain,.syntaxhighlighter.printing .plain a{color:black!important;}.syntaxhighlighter.printing .comments,.syntaxhighlighter.printing .comments a{color:#008200!important;}.syntaxhighlighter.printing .string,.syntaxhighlighter.printing .string a{color:blue!important;}.syntaxhighlighter.printing .keyword{color:#069!important;font-weight:bold!important;}.syntaxhighlighter.printing .preprocessor{color:gray!important;}.syntaxhighlighter.printing .variable{color:#a70!important;}.syntaxhighlighter.printing .value{color:#090!important;}.syntaxhighlighter.printing .functions{color:#ff1493!important;}.syntaxhighlighter.printing .constants{color:#06c!important;}.syntaxhighlighter.printing .script{font-weight:bold!important;}.syntaxhighlighter.printing .color1,.syntaxhighlighter.printing .color1 a{color:gray!important;}.syntaxhighlighter.printing .color2,.syntaxhighlighter.printing .color2 a{color:#ff1493!important;}.syntaxhighlighter.printing .color3,.syntaxhighlighter.printing .color3 a{color:red!important;}.syntaxhighlighter.printing .break,.syntaxhighlighter.printing .break a{color:black!important;}.syntaxhighlighter{background-color:white!important;}.syntaxhighlighter .line.alt1{background-color:white!important;}.syntaxhighlighter .line.alt2{background-color:white!important;}.syntaxhighlighter .line.highlighted.alt1,.syntaxhighlighter .line.highlighted.alt2{background-color:#e0e0e0!important;}.syntaxhighlighter .line.highlighted.number{color:black!important;}.syntaxhighlighter table caption{color:black!important;}.syntaxhighlighter .gutter{color:#afafaf!important;}.syntaxhighlighter .gutter .line{border-right:3px solid #6ce26c!important;}.syntaxhighlighter .gutter .line.highlighted{background-color:#6ce26c!important;color:white!important;}.syntaxhighlighter.printing .line .content{border:none!important;}.syntaxhighlighter.collapsed{overflow:visible!important;}.syntaxhighlighter.collapsed .toolbar{color:blue!important;background:white!important;border:1px solid #6ce26c!important;}.syntaxhighlighter.collapsed .toolbar a{color:blue!important;}.syntaxhighlighter.collapsed .toolbar a:hover{color:red!important;}.syntaxhighlighter .toolbar{color:white!important;background:#6ce26c!important;border:none!important;}.syntaxhighlighter .toolbar a{color:white!important;}.syntaxhighlighter .toolbar a:hover{color:black!important;}.syntaxhighlighter .plain,.syntaxhighlighter .plain a{color:black!important;}.syntaxhighlighter .comments,.syntaxhighlighter .comments a{color:#008200!important;}.syntaxhighlighter .string,.syntaxhighlighter .string a{color:blue!important;}.syntaxhighlighter .keyword{color:#069!important;}.syntaxhighlighter .preprocessor{color:gray!important;}.syntaxhighlighter .variable{color:#a70!important;}.syntaxhighlighter .value{color:#090!important;}.syntaxhighlighter .functions{color:#ff1493!important;}.syntaxhighlighter .constants{color:#06c!important;}.syntaxhighlighter .script{font-weight:bold!important;color:#069!important;background-color:none!important;}.syntaxhighlighter .color1,.syntaxhighlighter .color1 a{color:gray!important;}.syntaxhighlighter .color2,.syntaxhighlighter .color2 a{color:#ff1493!important;}.syntaxhighlighter .color3,.syntaxhighlighter .color3 a{color:red!important;}.syntaxhighlighter .keyword{font-weight:bold!important;}
\ No newline at end of file
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/syntaxhighlighter/styles/shThemeDefault.css b/wqflask/wqflask/static/packages/jqplot/examples/syntaxhighlighter/styles/shThemeDefault.css
deleted file mode 100755
index 13654117..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/syntaxhighlighter/styles/shThemeDefault.css
+++ /dev/null
@@ -1,117 +0,0 @@
-/**
- * SyntaxHighlighter
- * http://alexgorbatchev.com/SyntaxHighlighter
- *
- * SyntaxHighlighter is donationware. If you are using it, please donate.
- * http://alexgorbatchev.com/SyntaxHighlighter/donate.html
- *
- * @version
- * 3.0.83 (July 02 2010)
- * 
- * @copyright
- * Copyright (C) 2004-2010 Alex Gorbatchev.
- *
- * @license
- * Dual licensed under the MIT and GPL licenses.
- */
-.syntaxhighlighter {
-  background-color: white !important;
-}
-.syntaxhighlighter .line.alt1 {
-  background-color: white !important;
-}
-.syntaxhighlighter .line.alt2 {
-  background-color: white !important;
-}
-.syntaxhighlighter .line.highlighted.alt1, .syntaxhighlighter .line.highlighted.alt2 {
-  background-color: #e0e0e0 !important;
-}
-.syntaxhighlighter .line.highlighted.number {
-  color: black !important;
-}
-.syntaxhighlighter table caption {
-  color: black !important;
-}
-.syntaxhighlighter .gutter {
-  color: #afafaf !important;
-}
-.syntaxhighlighter .gutter .line {
-  border-right: 3px solid #6ce26c !important;
-}
-.syntaxhighlighter .gutter .line.highlighted {
-  background-color: #6ce26c !important;
-  color: white !important;
-}
-.syntaxhighlighter.printing .line .content {
-  border: none !important;
-}
-.syntaxhighlighter.collapsed {
-  overflow: visible !important;
-}
-.syntaxhighlighter.collapsed .toolbar {
-  color: blue !important;
-  background: white !important;
-  border: 1px solid #6ce26c !important;
-}
-.syntaxhighlighter.collapsed .toolbar a {
-  color: blue !important;
-}
-.syntaxhighlighter.collapsed .toolbar a:hover {
-  color: red !important;
-}
-.syntaxhighlighter .toolbar {
-  color: white !important;
-  background: #6ce26c !important;
-  border: none !important;
-}
-.syntaxhighlighter .toolbar a {
-  color: white !important;
-}
-.syntaxhighlighter .toolbar a:hover {
-  color: black !important;
-}
-.syntaxhighlighter .plain, .syntaxhighlighter .plain a {
-  color: black !important;
-}
-.syntaxhighlighter .comments, .syntaxhighlighter .comments a {
-  color: #008200 !important;
-}
-.syntaxhighlighter .string, .syntaxhighlighter .string a {
-  color: blue !important;
-}
-.syntaxhighlighter .keyword {
-  color: #006699 !important;
-}
-.syntaxhighlighter .preprocessor {
-  color: gray !important;
-}
-.syntaxhighlighter .variable {
-  color: #aa7700 !important;
-}
-.syntaxhighlighter .value {
-  color: #009900 !important;
-}
-.syntaxhighlighter .functions {
-  color: #ff1493 !important;
-}
-.syntaxhighlighter .constants {
-  color: #0066cc !important;
-}
-.syntaxhighlighter .script {
-  font-weight: bold !important;
-  color: #006699 !important;
-  background-color: none !important;
-}
-.syntaxhighlighter .color1, .syntaxhighlighter .color1 a {
-  color: gray !important;
-}
-.syntaxhighlighter .color2, .syntaxhighlighter .color2 a {
-  color: #ff1493 !important;
-}
-.syntaxhighlighter .color3, .syntaxhighlighter .color3 a {
-  color: red !important;
-}
-
-.syntaxhighlighter .keyword {
-  font-weight: bold !important;
-}
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/syntaxhighlighter/styles/shThemeDefault.min.css b/wqflask/wqflask/static/packages/jqplot/examples/syntaxhighlighter/styles/shThemeDefault.min.css
deleted file mode 100755
index 57326f47..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/syntaxhighlighter/styles/shThemeDefault.min.css
+++ /dev/null
@@ -1 +0,0 @@
-.syntaxhighlighter{background-color:white!important;}.syntaxhighlighter .line.alt1{background-color:white!important;}.syntaxhighlighter .line.alt2{background-color:white!important;}.syntaxhighlighter .line.highlighted.alt1,.syntaxhighlighter .line.highlighted.alt2{background-color:#e0e0e0!important;}.syntaxhighlighter .line.highlighted.number{color:black!important;}.syntaxhighlighter table caption{color:black!important;}.syntaxhighlighter .gutter{color:#afafaf!important;}.syntaxhighlighter .gutter .line{border-right:3px solid #6ce26c!important;}.syntaxhighlighter .gutter .line.highlighted{background-color:#6ce26c!important;color:white!important;}.syntaxhighlighter.printing .line .content{border:none!important;}.syntaxhighlighter.collapsed{overflow:visible!important;}.syntaxhighlighter.collapsed .toolbar{color:blue!important;background:white!important;border:1px solid #6ce26c!important;}.syntaxhighlighter.collapsed .toolbar a{color:blue!important;}.syntaxhighlighter.collapsed .toolbar a:hover{color:red!important;}.syntaxhighlighter .toolbar{color:white!important;background:#6ce26c!important;border:none!important;}.syntaxhighlighter .toolbar a{color:white!important;}.syntaxhighlighter .toolbar a:hover{color:black!important;}.syntaxhighlighter .plain,.syntaxhighlighter .plain a{color:black!important;}.syntaxhighlighter .comments,.syntaxhighlighter .comments a{color:#008200!important;}.syntaxhighlighter .string,.syntaxhighlighter .string a{color:blue!important;}.syntaxhighlighter .keyword{color:#069!important;}.syntaxhighlighter .preprocessor{color:gray!important;}.syntaxhighlighter .variable{color:#a70!important;}.syntaxhighlighter .value{color:#090!important;}.syntaxhighlighter .functions{color:#ff1493!important;}.syntaxhighlighter .constants{color:#06c!important;}.syntaxhighlighter .script{font-weight:bold!important;color:#069!important;background-color:none!important;}.syntaxhighlighter .color1,.syntaxhighlighter .color1 a{color:gray!important;}.syntaxhighlighter .color2,.syntaxhighlighter .color2 a{color:#ff1493!important;}.syntaxhighlighter .color3,.syntaxhighlighter .color3 a{color:red!important;}.syntaxhighlighter .keyword{font-weight:bold!important;}
\ No newline at end of file
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/syntaxhighlighter/styles/shThemejqPlot.css b/wqflask/wqflask/static/packages/jqplot/examples/syntaxhighlighter/styles/shThemejqPlot.css
deleted file mode 100755
index 9ccf1074..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/syntaxhighlighter/styles/shThemejqPlot.css
+++ /dev/null
@@ -1,138 +0,0 @@
-/**
- * SyntaxHighlighter
- * http://alexgorbatchev.com/SyntaxHighlighter
- *
- * SyntaxHighlighter is donationware. If you are using it, please donate.
- * http://alexgorbatchev.com/SyntaxHighlighter/donate.html
- *
- * @version
- * 3.0.83 (July 02 2010)
- * 
- * @copyright
- * Copyright (C) 2004-2010 Alex Gorbatchev.
- *
- * @license
- * Dual licensed under the MIT and GPL licenses.
- */
-.syntaxhighlighter {
-  background-color: transparent !important;
-}
-.syntaxhighlighter .line.alt1 {
-  background-color: transparent !important;
-}
-.syntaxhighlighter .line.alt2 {
-  background-color: transparent !important;
-}
-.syntaxhighlighter .line.highlighted.alt1, .syntaxhighlighter .line.highlighted.alt2 {
-  background-color: #e0e0e0 !important;
-}
-.syntaxhighlighter .line.highlighted.number {
-  color: black !important;
-}
-.syntaxhighlighter table caption {
-  color: black !important;
-}
-.syntaxhighlighter .gutter {
-  color: #afafaf !important;
-}
-.syntaxhighlighter .gutter .line {
-  border-right: 3px solid #6ce26c !important;
-}
-.syntaxhighlighter .gutter .line.highlighted {
-  background-color: #6ce26c !important;
-  color: white !important;
-}
-.syntaxhighlighter.printing .line .content {
-  border: none !important;
-}
-.syntaxhighlighter.collapsed {
-  overflow: visible !important;
-}
-.syntaxhighlighter.collapsed .toolbar {
-  color: blue !important;
-  background: white !important;
-  border: 1px solid #6ce26c !important;
-}
-.syntaxhighlighter.collapsed .toolbar a {
-  color: blue !important;
-}
-.syntaxhighlighter.collapsed .toolbar a:hover {
-  color: red !important;
-}
-.syntaxhighlighter .toolbar {
-  color: white !important;
-  background: #6ce26c !important;
-  border: none !important;
-}
-.syntaxhighlighter .toolbar a {
-  color: white !important;
-}
-.syntaxhighlighter .toolbar a:hover {
-  color: black !important;
-}
-.syntaxhighlighter .plain, .syntaxhighlighter .plain a {
-  color: black !important;
-}
-.syntaxhighlighter .comments, .syntaxhighlighter .comments a {
-  color: #008200 !important;
-}
-.syntaxhighlighter .string, .syntaxhighlighter .string a {
-  color: blue !important;
-}
-.syntaxhighlighter .keyword {
-  color: #006699 !important;
-}
-.syntaxhighlighter .preprocessor {
-  color: gray !important;
-}
-.syntaxhighlighter .variable {
-  color: #aa7700 !important;
-}
-.syntaxhighlighter .value {
-  color: #009900 !important;
-}
-.syntaxhighlighter .functions {
-  color: #ff1493 !important;
-}
-.syntaxhighlighter .constants {
-  color: #0066cc !important;
-}
-.syntaxhighlighter .script {
-  font-weight: bold !important;
-  color: #006699 !important;
-  background-color: none !important;
-}
-.syntaxhighlighter .color1, .syntaxhighlighter .color1 a {
-  color: gray !important;
-}
-.syntaxhighlighter .color2, .syntaxhighlighter .color2 a {
-  color: #ff1493 !important;
-}
-.syntaxhighlighter .color3, .syntaxhighlighter .color3 a {
-  color: red !important;
-}
-
-.syntaxhighlighter .keyword {
-  font-weight: bold !important;
-}
-
-.syntaxhighlighter a,
-.syntaxhighlighter div,
-.syntaxhighlighter code,
-.syntaxhighlighter table,
-.syntaxhighlighter table td,
-.syntaxhighlighter table tr,
-.syntaxhighlighter table tbody,
-.syntaxhighlighter table thead,
-.syntaxhighlighter table caption,
-.syntaxhighlighter textarea {
-  line-height: 1.3em !important;
-}
-
-div.syntaxhighlighter {
-  font-size: 0.85em !important;
-}
-
-div.include div.syntaxhighlighter table td.code .line {
-  margin-top: 0.1em !important;
-}
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/syntaxhighlighter/styles/shThemejqPlot.min.css b/wqflask/wqflask/static/packages/jqplot/examples/syntaxhighlighter/styles/shThemejqPlot.min.css
deleted file mode 100755
index 20210ff7..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/syntaxhighlighter/styles/shThemejqPlot.min.css
+++ /dev/null
@@ -1 +0,0 @@
-.syntaxhighlighter{background-color:transparent!important;}.syntaxhighlighter .line.alt1{background-color:transparent!important;}.syntaxhighlighter .line.alt2{background-color:transparent!important;}.syntaxhighlighter .line.highlighted.alt1,.syntaxhighlighter .line.highlighted.alt2{background-color:#e0e0e0!important;}.syntaxhighlighter .line.highlighted.number{color:black!important;}.syntaxhighlighter table caption{color:black!important;}.syntaxhighlighter .gutter{color:#afafaf!important;}.syntaxhighlighter .gutter .line{border-right:3px solid #6ce26c!important;}.syntaxhighlighter .gutter .line.highlighted{background-color:#6ce26c!important;color:white!important;}.syntaxhighlighter.printing .line .content{border:none!important;}.syntaxhighlighter.collapsed{overflow:visible!important;}.syntaxhighlighter.collapsed .toolbar{color:blue!important;background:white!important;border:1px solid #6ce26c!important;}.syntaxhighlighter.collapsed .toolbar a{color:blue!important;}.syntaxhighlighter.collapsed .toolbar a:hover{color:red!important;}.syntaxhighlighter .toolbar{color:white!important;background:#6ce26c!important;border:none!important;}.syntaxhighlighter .toolbar a{color:white!important;}.syntaxhighlighter .toolbar a:hover{color:black!important;}.syntaxhighlighter .plain,.syntaxhighlighter .plain a{color:black!important;}.syntaxhighlighter .comments,.syntaxhighlighter .comments a{color:#008200!important;}.syntaxhighlighter .string,.syntaxhighlighter .string a{color:blue!important;}.syntaxhighlighter .keyword{color:#069!important;}.syntaxhighlighter .preprocessor{color:gray!important;}.syntaxhighlighter .variable{color:#a70!important;}.syntaxhighlighter .value{color:#090!important;}.syntaxhighlighter .functions{color:#ff1493!important;}.syntaxhighlighter .constants{color:#06c!important;}.syntaxhighlighter .script{font-weight:bold!important;color:#069!important;background-color:none!important;}.syntaxhighlighter .color1,.syntaxhighlighter .color1 a{color:gray!important;}.syntaxhighlighter .color2,.syntaxhighlighter .color2 a{color:#ff1493!important;}.syntaxhighlighter .color3,.syntaxhighlighter .color3 a{color:red!important;}.syntaxhighlighter .keyword{font-weight:bold!important;}.syntaxhighlighter a,.syntaxhighlighter div,.syntaxhighlighter code,.syntaxhighlighter table,.syntaxhighlighter table td,.syntaxhighlighter table tr,.syntaxhighlighter table tbody,.syntaxhighlighter table thead,.syntaxhighlighter table caption,.syntaxhighlighter textarea{line-height:1.3em!important;}div.syntaxhighlighter{font-size:.85em!important;}div.include div.syntaxhighlighter table td.code .line{margin-top:.1em!important;}
\ No newline at end of file
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/theming.html b/wqflask/wqflask/static/packages/jqplot/examples/theming.html
deleted file mode 100755
index 92f397a4..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/theming.html
+++ /dev/null
@@ -1,519 +0,0 @@
-<!DOCTYPE html>
-
-<html>
-<head>
-	
-	<title>Chart Theming</title>
-
-    <link class="include" rel="stylesheet" type="text/css" href="../jquery.jqplot.min.css" />
-    <link rel="stylesheet" type="text/css" href="examples.min.css" />
-    <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shCoreDefault.min.css" />
-    <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shThemejqPlot.min.css" />
-  
-  <!--[if lt IE 9]><script language="javascript" type="text/javascript" src="../excanvas.js"></script><![endif]-->
-    <script class="include" type="text/javascript" src="../jquery.min.js"></script>
-    
-   
-</head>
-<body>
-    <div class="logo">
-   <div class="nav">
-   <a class="nav" href="../../../index.php"><span>&gt;</span>Home</a>
-   <a class="nav"  href="../../../docs/"><span>&gt;</span>Docs</a>
-   <a class="nav"  href="../../download/"><span>&gt;</span>Download</a>
-   <a class="nav" href="../../../info.php"><span>&gt;</span>Info</a>
-   <a class="nav"  href="../../../donate.php"><span>&gt;</span>Donate</a>
-   </div>
-</div>
-    <div class="example-content">
-
-    <div class="example-nav">
-  <a href="smoothedLine.html">Previous</a> <a href="./">Examples</a> <a href="waterfall.html">Next</a></div>
-
-      
-<!-- Example scripts go here -->
-
-<style type="text/css">
-.jqplot-target {
-    margin: 30px;
-}
-</style>
-
-<p>jqPlot has basic theming support for commonly styled atributes of plot elements.  Upon creation, each plot will have a "themeEngine" that controls modificaition, adding, removing and activating of plot themes.  In addition, each plot will have a "Default" theme which corresponds to the styling of the plot at plot creation.<p>
-    
-<p>Creation of new themes is easy.  A "style" object is created with properties for the various plot elements to be styles.  Attached to each of those is an ojbect with the actual styling properties.  A simple style object might look like:</p>
-
-<pre>
-    gabe = {
-        series: [
-            {color: 'rgba(216, 159, 60, 0.4)'},
-            {color: 'rgba(159, 216, 60, 0.4)'},
-            {color: 'rgba(60, 159, 216, 0.4)'},
-        ],
-        grid: {
-            backgroundColor: '#DEA493'
-        }
-    }
-</pre>
-
-<p>This new style would then be added to the plot's themeEngine as a new theme.  it can then be activated by calling the plot's <code>activateTheme</code> method.</p>
-<pre>
-    plot1b.themeEngine.newTheme('gabe', gabe);
-    plot1b.activateTheme('gabe');
-</pre>
-    
-<div id="chart1b" class="plot" style="width:400px;height:260px;"></div>
-<p>Select Theme for area plot:
-<select id="p1bswitcher" onchange="switch1b();">
-    <option value="Default" selected>Default</option>
-    <option value="gabe">gabe</option>
-</select>
-</p>
-
-<p>Themes can be reused between plots.  Here a style object is created and assigned to two different plots.  For convenience, the theme is given the same name when added to each plot's themeEngine.  Since each plot keeps it's own copy of the theme, the names do not need to be the same.  Also note that themes are added as deep copies by value and not by reference.  This avoids strange behavior due to the cascading nature of css related styles.</p>
-
-<pre>
-    temp = {
-        seriesStyles: {
-            seriesColors: ['red', 'orange', 'yellow', 'green', 'blue', 'indigo'],
-            highlightColors: ['lightpink', 'lightsalmon', 'lightyellow', 'lightgreen', 'lightblue', 'mediumslateblue']
-        },
-        legend: {
-            fontSize: '8pt'
-        },
-        title: {
-            fontSize: '18pt'
-        },
-        grid: {
-            backgroundColor: 'rgb(211, 233, 195)'
-        }
-    };
-    
-    plot3.themeEngine.newTheme('uma', temp);
-    plot5.themeEngine.newTheme('uma', temp);
-</pre>
-
-<p>Select Theme for funnel and pie charts at same time:
-<select id="p35switcher" onchange="switch35();">
-    <option value="Default" selected>Default</option>
-    <option value="uma">uma</option>
-</select>
-</p>
-
-<div id="chart3" class="plot" style="width:400px;height:320px;"></div>
-
-<p>Select Theme for funnel plot:
-<select id="p3switcher" onchange="switch3();">
-    <option value="Default" selected>Default</option>
-    <option value="uma">uma</option>
-</select>
-</p>
-
-<div id="chart5" class="plot" style="width:400px;height:260px;"></div>
-
-<p>Select Theme for pie chart:
-<select id="p5switcher" onchange="switch5();">
-    <option value="Default" selected>Default</option>
-    <option value="uma">uma</option>
-</select>
-</p>
-
-<p>There are various was to create and edit themes for a plot.  Below are two different methods for creating additional themes for a line plot and adding them to the plots themeEngine.  Here the <code>axesStyles</code> property is used to supply styling to all axes at one time.  A similar property, <code>seriesStyles</code>, exists for styling all series of a plot at one time. Note, neither of these methods is as straightforward as using the <code>newTheme()</code> method of the plots themeEngine, but are included for illustrative purposes.</p>
-
-<pre> 
-    e1 = plot1.themeEngine;
-    brass = e1.copy('Default', 'brass');
-    brass.title.fontFamily = 'Copperplate, Impact';
-    brass.grid.backgroundColor = "rgb(216, 198, 114)";
-    brass.grid.drawGridlines = false;
-    brass.series[0].lineWidth = 6.5;
-    brass.series[0].markerOptions.show = false;
-    brass.axesStyles.label.fontFamily = "Copperplate, 'Copperplate Gothic Light', Impact";
-    brass.axesStyles.ticks.fontFamily = "Copperplate, 'Copperplate Gothic Light', Impact";
-    brass.axesStyles.label.fontSize = '14pt';
-    
-    temp = {
-        grid: {
-            backgroundColor: "#593D2B",
-            gridLineColor: '#E8E8E8',
-            gridLineWidth: 3
-        },
-        title: {
-            fontFamily: '"Comic Sans MS", cursive',
-            fontSize: '18pt',
-            textColor: '#C7CC4E'
-        },
-        seriesStyles: {
-            color: "#DBBCAF",
-            lineWidth: 8,
-            markerOptions: {
-                show: false
-            }
-        },
-        axes: {
-            xaxis: {
-                label: {
-                    fontFamily: '"Comic Sans MS", cursive',
-                    textColor: '#C7CC4E'
-                }
-            }
-        }
-    };
-    
-    chocolate = plot1.themeEngine.copy('Default', 'chocolate', temp);
-</pre>
-
-<div id="chart1" class="plot" style="width:400px;height:260px;"></div>
-
-<p>Select theme for line chart:
-<select id="p1switcher" onchange="switch1();">
-    <option value="Default" selected>Default</option>
-    <option value="brass">brass</option>
-    <option value="chocolate">chocolate</option>
-</select>
-</p>
-
-<p>The example below shows more extensive use of the various styling options to give the chart a rather ugly and dated appearence.  Note that, for bar (and funnel, pie and donut charts), <code>highlightColors</code> can be specified as an array of colors which will be applied to each bar individually, as a single string giving a color to apply to all bars, or as an empty array which will force jqPlot to auto calculate highlight colors based on the current bar color.<p>
-    
-<pre>
-    oldstyle = {
-        title: {
-            fontFamily: 'Times New Roman',
-            textColor: 'black'
-        },
-        axesStyles: {
-           borderWidth: 0,
-           ticks: {
-               fontSize: '12pt',
-               fontFamily: 'Times New Roman',
-               textColor: 'black'
-           },
-           label: {
-               fontFamily: 'Times New Roman',
-               textColor: 'black'
-           }
-        },
-        grid: {
-            backgroundColor: 'white',
-            borderWidth: 0,
-            gridLineColor: 'black',
-            gridLineWidth: 2,
-            borderColor: 'black'
-        },
-        series: [
-            {color: 'red', highlightColors: ['aqua', 'black', 'blue', 'fuchsia', 'gray', 'green', 'lime', 'maroon', 'navy', 'olive', 'purple', 'red', 'silver', 'teal', 'white', 'yellow']},
-            {color: 'green', highlightColors: []},
-            {color: 'blue', highlightColors: []},
-            {color: 'yellow', highlightColors: 'rgb(255, 245, 185)'}
-        ],
-        legend: {
-            background: 'white',
-            textColor: 'black',
-            fontFamily: 'Times New Roman',
-            border: '1px solid black'
-        }
-    };
-    
-    plot2.themeEngine.newTheme('oldstyle', oldstyle);
-</pre>
-
-<div id="chart2" class="plot" style="width:760px;height:360px;"></div>
-
-<p>Select theme for bar chart:
-<select id="p2switcher" onchange="switch2();">
-    <option value="Default" selected>Default</option>
-    <option value="oldstyle">oldstyle</option>
-</select>
-</p>
-
-  
-  </div>
-  
-
-<script language="javascript" type="text/javascript">
-$(document).ready(function(){
-
-    l1 = [['Seoul', 1], ['Paris', 7], ['Singapore',3], ['Hong  Kong',5], ['Chicago', 2], ['New York', 9]];
-    l2 = [11, 9, 5, 12, 14];
-    l3 = [4, 8, 5, 3, 6];
-    l4 = [12, 6, 13, 11, 2];
-    l5 = [4, -3, 3, 6, 2, -2];
-
-    pop1980 = [7071639, 2968528, 3005072, 1595138, 789704, 1688210, 785940, 904599];
-    pop1990 = [7322564, 3485398, 2783726, 1630553, 983403, 1585577, 935933, 1006877];
-    pop2000 = [8008654, 3694644, 2896051, 1974152, 1322025, 1517550, 1160005, 1188603];
-    pop2008 = [8363710, 3833995, 2853114, 2242193, 1567924, 1447395, 1351305, 1279910];
-
-    ticks = ["New York", "Los Angeles", "Chicago", "Houston", "Phoenix", "Philadelphia", "San Antonio", "Dallas"];
-
-    plot1 = $.jqplot('chart1',[l2],{
-       title: 'Line Chart',
-       highlighter: {
-           show:true
-       },
-       cursor: {
-           show: true,
-           zoom: true
-       },
-       axes: {
-           xaxis: {
-               label: 'Sample'
-           }
-       }
-    });
-    
-    plot1b = $.jqplot('chart1b',[l2, l3, l4],{
-       stackSeries: true,
-       showMarker: false,
-       seriesDefaults: {
-           fill: true
-       }
-    });
-
-    plot2 = $.jqplot('chart2',[pop1980, pop1990, pop2000, pop2008],{
-       title: 'City Population',
-       legend: {
-           show: true
-       },
-       seriesDefaults: {
-           renderer: $.jqplot.BarRenderer,
-           rendererOptions: {
-               barPadding: 2
-           }
-       },
-       series: [
-          {label: '1980'},
-          {label: '1990'},
-          {label: '2000'},
-          {label: '2008 (est)'}
-       ],
-       axes: {
-           xaxis: {
-               label: 'City',
-               renderer: $.jqplot.CategoryAxisRenderer,
-               tickRenderer: $.jqplot.CanvasAxisTickRenderer,
-               labelRenderer: $.jqplot.CanvasAxisLabelRenderer,
-               ticks: ticks,
-               tickOptions: {
-                   angle: -30
-                }
-           },
-           yaxis: {
-               tickRenderer: $.jqplot.CanvasAxisTickRenderer,
-               max: 9000000,
-               min: 0,
-               tickOptions: {
-                   formatString: '%d',
-                   angle: -30
-                }
-           }
-       }
-    });
-    
-    plot3 = $.jqplot('chart3',[l1],{
-       title: 'Global City Index',
-       legend: {
-           show: true,
-           rendererOptions: {
-               // numberColumns: 2,
-               fontSize: '10pt'
-           }
-        },
-       seriesDefaults: {
-           renderer: $.jqplot.FunnelRenderer
-       }
-    });
-        
-    plot5 = $.jqplot('chart5',[l1],{
-       title: 'Pie Chart',
-       seriesDefaults: {
-           renderer: $.jqplot.PieRenderer
-       },
-       legend: {
-           show: true
-       }
-    });
-        
-    e1 = plot1.themeEngine;
-    brass = e1.copy('Default', 'brass');
-    brass.title.fontFamily = 'Copperplate, Impact';
-    brass.grid.backgroundColor = "rgb(216, 198, 114)";
-    brass.grid.drawGridlines = false;
-    brass.series[0].lineWidth = 6.5;
-    brass.series[0].markerOptions.show = false;
-    // brass.axes.xaxis.ticks.fontFamily = "Copperplate, Impact";
-    brass.axesStyles.label.fontFamily = "Copperplate, 'Copperplate Gothic Light', Impact";
-    brass.axesStyles.ticks.fontFamily = "Copperplate, 'Copperplate Gothic Light', Impact";
-    brass.axesStyles.label.fontSize = '14pt';
-    
-    temp = {
-        grid: {
-            backgroundColor: "#593D2B",
-            gridLineColor: '#E8E8E8',
-            gridLineWidth: 3
-        },
-        title: {
-            fontFamily: '"Comic Sans MS", cursive',
-            fontSize: '18pt',
-            textColor: '#C7CC4E'
-        },
-        seriesStyles: {
-            color: "#DBBCAF",
-            lineWidth: 8,
-            markerOptions: {
-                show: false
-            }
-        },
-        axes: {
-            xaxis: {
-                label: {
-                    fontFamily: '"Comic Sans MS", cursive',
-                    textColor: '#C7CC4E'
-                }
-            }
-        }
-    };
-    
-    chocolate = plot1.themeEngine.copy('Default', 'chocolate', temp);
-    
-    gabe = {
-        series: [
-            {color: 'rgba(216, 159, 60, 0.6)'},
-            {color: 'rgba(159, 216, 60, 0.6)'},
-            {color: 'rgba(60, 159, 216, 0.6)'},
-        ],
-        grid: {
-            backgroundColor: '#DEA493'
-        }
-    }
-    
-    gabe = plot1b.themeEngine.newTheme('gabe', gabe);
-    
-    oldstyle = {
-        title: {
-            fontFamily: 'Times New Roman',
-            textColor: 'black'
-        },
-        axesStyles: {
-           borderWidth: 0,
-           ticks: {
-               fontSize: '12pt',
-               fontFamily: 'Times New Roman',
-               textColor: 'black'
-           },
-           label: {
-               fontFamily: 'Times New Roman',
-               textColor: 'black'
-           }
-        },
-        grid: {
-            backgroundColor: 'white',
-            borderWidth: 0,
-            gridLineColor: 'black',
-            gridLineWidth: 2,
-            borderColor: 'black'
-        },
-        series: [
-            {color: 'red', highlightColors: ['aqua', 'black', 'blue', 'fuchsia', 'gray', 'green', 'lime', 'maroon', 'navy', 'olive', 'purple', 'red', 'silver', 'teal', 'white', 'yellow']},
-            {color: 'green', highlightColors: []},
-            {color: 'blue', highlightColors: []},
-            {color: 'yellow', highlightColors: 'rgb(255, 245, 185)'}
-        ],
-        legend: {
-            background: 'white',
-            textColor: 'black',
-            fontFamily: 'Times New Roman',
-            border: '1px solid black'
-        }
-    };
-    
-    plot2.themeEngine.newTheme('oldstyle', oldstyle);
-    
-    temp = {
-        seriesStyles: {
-            seriesColors: ['red', 'orange', 'yellow', 'green', 'blue', 'indigo'],
-            highlightColors: ['lightpink', 'lightsalmon', 'lightyellow', 'lightgreen', 'lightblue', 'mediumslateblue']
-        },
-        legend: {
-            fontSize: '8pt'
-        },
-        title: {
-            fontSize: '18pt'
-        },
-        grid: {
-            backgroundColor: 'rgb(211, 233, 195)'
-        }
-    };
-    
-    plot3.themeEngine.newTheme('uma', temp);
-    plot5.themeEngine.newTheme('uma', temp);
-    
-});
-
-function switch1() {
-    var th = $('#p1switcher').val();
-    plot1.activateTheme(th);
-}
-
-function switch1b() {
-    var th = $('#p1bswitcher').val();
-    plot1b.activateTheme(th);
-}
-
-function switch2() {
-    var th = $('#p2switcher').val();
-    plot2.activateTheme(th);
-}
-
-function switch3() {
-    var th = $('#p3switcher').val();
-    plot3.activateTheme(th);
-}
-
-function switch5() {
-    var th = $('#p5switcher').val();
-    plot5.activateTheme(th);
-}
-
-function switch35() {
-    var th = $('#p35switcher').val();
-    plot3.activateTheme(th);
-    plot5.activateTheme(th);
-}
-
-
-</script>
-
-<!-- End example scripts -->
-
-<!-- Don't touch this! -->
-
-
-    <script class="include" type="text/javascript" src="../jquery.jqplot.min.js"></script>
-    <script type="text/javascript" src="syntaxhighlighter/scripts/shCore.min.js"></script>
-    <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushJScript.min.js"></script>
-    <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushXml.min.js"></script>
-<!-- End Don't touch this! -->
-
-<!-- Additional plugins go here -->
-  <script language="javascript" type="text/javascript" src="../plugins/jqplot.barRenderer.min.js"></script>
-  <script language="javascript" type="text/javascript" src="../plugins/jqplot.categoryAxisRenderer.min.js"></script>
-  <script language="javascript" type="text/javascript" src="../plugins/jqplot.pieRenderer.min.js"></script>
-  <script language="javascript" type="text/javascript" src="../plugins/jqplot.donutRenderer.min.js"></script>
-  <script language="javascript" type="text/javascript" src="../plugins/jqplot.highlighter.min.js"></script>
-  <script language="javascript" type="text/javascript" src="../plugins/jqplot.cursor.min.js"></script>
-  <script language="javascript" type="text/javascript" src="../plugins/jqplot.funnelRenderer.min.js"></script>
-  <script language="javascript" type="text/javascript" src="../plugins/jqplot.canvasTextRenderer.min.js"></script>
-  <script language="javascript" type="text/javascript" src="../plugins/jqplot.canvasAxisTickRenderer.min.js"></script>
-  <script language="javascript" type="text/javascript" src="../plugins/jqplot.canvasAxisLabelRenderer.min.js"></script>
-
-<!-- End additional plugins -->
-
-
-	</div>	
-	<script type="text/javascript" src="example.min.js"></script>
-
-</body>
-
-
-</html>
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/topbanner.inc b/wqflask/wqflask/static/packages/jqplot/examples/topbanner.inc
deleted file mode 100755
index 6977d1f9..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/topbanner.inc
+++ /dev/null
@@ -1,9 +0,0 @@
-<div class="logo">
-   <div class="nav">
-   <a class="nav" href="../../../index.php"><span>&gt;</span>Home</a>
-   <a class="nav"  href="../../../docs/"><span>&gt;</span>Docs</a>
-   <a class="nav"  href="../../download/"><span>&gt;</span>Download</a>
-   <a class="nav" href="../../../info.php"><span>&gt;</span>Info</a>
-   <a class="nav"  href="../../../donate.php"><span>&gt;</span>Donate</a>
-   </div>
-</div>
\ No newline at end of file
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/waterfall.html b/wqflask/wqflask/static/packages/jqplot/examples/waterfall.html
deleted file mode 100755
index 639c7c4e..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/waterfall.html
+++ /dev/null
@@ -1,162 +0,0 @@
-<!DOCTYPE html>
-
-<html>
-<head>
-	
-	<title>Waterfall Charts</title>
-
-    <link class="include" rel="stylesheet" type="text/css" href="../jquery.jqplot.min.css" />
-    <link rel="stylesheet" type="text/css" href="examples.min.css" />
-    <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shCoreDefault.min.css" />
-    <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shThemejqPlot.min.css" />
-  
-  <!--[if lt IE 9]><script language="javascript" type="text/javascript" src="../excanvas.js"></script><![endif]-->
-    <script class="include" type="text/javascript" src="../jquery.min.js"></script>
-    
-   
-</head>
-<body>
-    <div class="logo">
-   <div class="nav">
-   <a class="nav" href="../../../index.php"><span>&gt;</span>Home</a>
-   <a class="nav"  href="../../../docs/"><span>&gt;</span>Docs</a>
-   <a class="nav"  href="../../download/"><span>&gt;</span>Download</a>
-   <a class="nav" href="../../../info.php"><span>&gt;</span>Info</a>
-   <a class="nav"  href="../../../donate.php"><span>&gt;</span>Donate</a>
-   </div>
-</div>
-    <div class="example-content">
-
-    <div class="example-nav">
-  <a href="theming.html">Previous</a> <a href="./">Examples</a> <a href="waterfall2.html">Next</a></div>
-
-      
-<!-- Example scripts go here -->
-
-  <style type="text/css" media="screen">
-    .jqplot-axis {
-      font-size: 0.85em;
-    }
-    .jqplot-title {
-      font-size: 16px;
-    }
-      p {
-        margin: 20px;
-        font-family:Arial,Helvetica,Sans-serif;
-      }
-  </style>
-
-    <p>Waterfall chart using default bar colors.</p>
-    <div id="chart1" style="margin-top:20px; margin-left:20px; width:350px; height:350px;"></div>
-
-    <p>Waterfall chart using custom colors and "useNegativeColors" set to "false".</p>
-    <div id="chart2" style="margin-top:20px; margin-left:20px; width:350px; height:350px;"></div>
-
-  
-
-<script class="code" type="text/javascript">$(document).ready(function(){
-    var line1 = [14, 3, 4, -3, 5, 2, -3, -7];
-    var ticks = ['2008', 'Apricots', 'Tomatoes', 'Potatoes', 'Rhubarb', 'Squash', 'Grapes', 'Peanuts', '2009'];
-
-
-    var plot1 = $.jqplot('chart1', [line1], {
-        title: 'Crop Yield Charnge, 2008 to 2009',
-        seriesDefaults:{
-            renderer:$.jqplot.BarRenderer, 
-            rendererOptions:{
-                waterfall:true,
-                varyBarColor: true
-            },
-            pointLabels: {
-                hideZeros: true
-            },
-            yaxis:'y2axis'
-        },
-        axes:{
-            xaxis:{
-                renderer:$.jqplot.CategoryAxisRenderer, 
-                ticks:ticks,
-                tickRenderer: $.jqplot.CanvasAxisTickRenderer,
-                tickOptions: {
-                    angle: -90,
-                    fontSize: '10pt',
-                    showMark: false,
-                    showGridline: false
-                }
-            },
-            y2axis: {
-                min: 0,
-                tickInterval: 5
-            }
-        }
-    });
-});</script>
-
-
-<script class="code" type="text/javascript">$(document).ready(function(){
-
-    var line1 = [14, 3, 4, -3, 5, 2, -3, -7];
-    var ticks = ['2008', 'Apricots', 'Tomatoes', 'Potatoes', 'Rhubarb', 'Squash', 'Grapes', 'Peanuts', '2009'];
-    var plot2 = $.jqplot('chart2', [line1], {
-        title: 'Crop Yield Charnge, 2008 to 2009',
-        seriesColors:['#333333', '#999999', '#3EA140', '#3EA140', '#3EA140', '#783F16', '#783F16', '#783F16', '#333333'],
-        seriesDefaults:{
-            renderer:$.jqplot.BarRenderer, 
-            rendererOptions:{
-                waterfall:true,
-                varyBarColor: true,
-                useNegativeColors: false
-            },
-            pointLabels: {
-                hideZeros: true
-            },
-            yaxis:'y2axis'
-        },
-        axes:{
-            xaxis:{
-                renderer:$.jqplot.CategoryAxisRenderer, 
-                ticks:ticks,
-                tickRenderer: $.jqplot.CanvasAxisTickRenderer,
-                tickOptions: {
-                    angle: -90,
-                    fontSize: '10pt',
-                    showMark: false,
-                    showGridline: false
-                }
-            },
-            y2axis: {
-                min: 0,
-                tickInterval: 5
-            }
-        }
-    });
-});</script>
-
-<!-- End example scripts -->
-
-<!-- Don't touch this! -->
-
-
-    <script class="include" type="text/javascript" src="../jquery.jqplot.min.js"></script>
-    <script type="text/javascript" src="syntaxhighlighter/scripts/shCore.min.js"></script>
-    <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushJScript.min.js"></script>
-    <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushXml.min.js"></script>
-<!-- End Don't touch this! -->
-
-<!-- Additional plugins go here -->
-  <script class="include" type="text/javascript" src="../plugins/jqplot.barRenderer.min.js"></script>
-  <script class="include" type="text/javascript" src="../plugins/jqplot.categoryAxisRenderer.min.js"></script>
-  <script class="include" type="text/javascript" src="../plugins/jqplot.canvasAxisTickRenderer.min.js"></script>
-  <script class="include" type="text/javascript" src="../plugins/jqplot.canvasTextRenderer.min.js"></script>
-  <script class="include" type="text/javascript" src="../plugins/jqplot.pointLabels.min.js"></script>
-
-<!-- End additional plugins -->
-
-
-	</div>	
-	<script type="text/javascript" src="example.min.js"></script>
-
-</body>
-
-
-</html>
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/waterfall2.html b/wqflask/wqflask/static/packages/jqplot/examples/waterfall2.html
deleted file mode 100755
index 541f7e33..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/waterfall2.html
+++ /dev/null
@@ -1,231 +0,0 @@
-<!DOCTYPE html>
-
-<html>
-<head>
-	
-	<title>Waterfall charts 2</title>
-
-    <link class="include" rel="stylesheet" type="text/css" href="../jquery.jqplot.min.css" />
-    <link rel="stylesheet" type="text/css" href="examples.min.css" />
-    <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shCoreDefault.min.css" />
-    <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shThemejqPlot.min.css" />
-  
-  <!--[if lt IE 9]><script language="javascript" type="text/javascript" src="../excanvas.js"></script><![endif]-->
-    <script class="include" type="text/javascript" src="../jquery.min.js"></script>
-    
-   
-</head>
-<body>
-    <div class="logo">
-   <div class="nav">
-   <a class="nav" href="../../../index.php"><span>&gt;</span>Home</a>
-   <a class="nav"  href="../../../docs/"><span>&gt;</span>Docs</a>
-   <a class="nav"  href="../../download/"><span>&gt;</span>Download</a>
-   <a class="nav" href="../../../info.php"><span>&gt;</span>Info</a>
-   <a class="nav"  href="../../../donate.php"><span>&gt;</span>Donate</a>
-   </div>
-</div>
-    <div class="example-content">
-
-    <div class="example-nav">
-  <a href="waterfall.html">Previous</a> <a href="./">Examples</a> <a href="zoom1.html">Next</a></div>
-
-      
-<!-- Example scripts go here -->
-
-  <style type="text/css" media="screen">
-    .jqplot-axis {
-      font-size: 0.85em;
-    }
-    .jqplot-title {
-      font-size: 16px;
-    }
-      p {
-        margin: 20px;
-        font-family:Arial,Helvetica,Sans-serif;
-      }
-  </style>
-
-
-    <div id="chart1" style="margin-top:20px; margin-left:20px; width:350px; height:350px;"></div>
-
-    <div id="chart1b" style="margin-top:20px; margin-left:20px; width:350px; height:350px;"></div>
-
-    <div id="chart1c" style="margin-top:20px; margin-left:20px; width:350px; height:350px;"></div>
-
-    <div id="chart1d" style="margin-top:20px; margin-left:20px; width:350px; height:350px;"></div>
-
-
-  
-
-<script class="code" type="text/javascript">$(document).ready(function(){
-    var line1 = [14, 4, 3, -23, 5, 2, -3, -7];
-    var ticks = ['2008', 'Apricots', 'Tomatoes', 'Potatoes', 'Rhubarb', 'Squash', 'Grapes', 'Peanuts', '2009'];
-
-
-    plot1 = $.jqplot('chart1', [line1], {
-        title: 'Crop Yield Change, 2008 to 2009',
-        seriesDefaults:{
-            fill: true,
-            fillToZero: true,
-            renderer:$.jqplot.BarRenderer, 
-            rendererOptions:{
-                waterfall:true,
-                disableStack: true,
-                varyBarColor: true
-            },
-            pointLabels: {
-                show: true,
-                hideZeros: true
-            },
-            yaxis:'y2axis'
-        },
-        axes:{
-            xaxis:{
-                renderer:$.jqplot.CategoryAxisRenderer, 
-                ticks:ticks,
-                tickRenderer: $.jqplot.CanvasAxisTickRenderer,
-                tickOptions: {
-                    angle: -90,
-                    fontSize: '10pt',
-                    showMark: false,
-                    showGridline: false
-                }
-            }
-        }
-    });
-});</script>
-
-<script class="code" type="text/javascript">$(document).ready(function(){
-    var line1 = [14, 4, 0, -23, 5, 0, -3, -7];
-    var ticks = ['2008', 'Apricots', 'Tomatoes', 'Potatoes', 'Rhubarb', 'Squash', 'Grapes', 'Peanuts', '2009'];
-
-
-    plot1b = $.jqplot('chart1b', [line1], {
-        title: 'Crop Yield Change, 2008 to 2009',
-        seriesDefaults:{
-            renderer:$.jqplot.BarRenderer, 
-            rendererOptions:{
-                waterfall:true,
-                varyBarColor: true
-            },
-            pointLabels: {
-                show: true,
-                hideZeros: true
-            },
-            yaxis:'y2axis'
-        },
-        axes:{
-            xaxis:{
-                renderer:$.jqplot.CategoryAxisRenderer, 
-                ticks:ticks,
-                tickRenderer: $.jqplot.CanvasAxisTickRenderer,
-                tickOptions: {
-                    angle: -90,
-                    fontSize: '10pt',
-                    showMark: false,
-                    showGridline: false
-                }
-            }
-        }
-    });
-});</script>
-
-<script class="code" type="text/javascript">$(document).ready(function(){
-    var line1 = [14, 0, 13, 0, -5, -9, 3, 7];
-    var ticks = ['2008', 'Apricots', 'Tomatoes', 'Potatoes', 'Rhubarb', 'Squash', 'Grapes', 'Peanuts', '2009'];
-
-
-    plot1c = $.jqplot('chart1c', [line1], {
-        title: 'Crop Yield Change, 2008 to 2009',
-        seriesDefaults:{
-            renderer:$.jqplot.BarRenderer, 
-            rendererOptions:{
-                waterfall:true,
-                varyBarColor: true
-            },
-            pointLabels: {
-                show: true,
-                hideZeros: true
-            },
-            yaxis:'y2axis'
-        },
-        axes:{
-            xaxis:{
-                renderer:$.jqplot.CategoryAxisRenderer, 
-                ticks:ticks,
-                tickRenderer: $.jqplot.CanvasAxisTickRenderer,
-                tickOptions: {
-                    angle: -90,
-                    fontSize: '10pt',
-                    showMark: false,
-                    showGridline: false
-                }
-            }
-        }
-    });
-});</script>
-
-<script class="code" type="text/javascript">$(document).ready(function(){
-    var line1 = [-14, 0, -13, 0, 5, 9, -3, -7];
-    var ticks = ['2008', 'Apricots', 'Tomatoes', 'Potatoes', 'Rhubarb', 'Squash', 'Grapes', 'Peanuts', '2009'];
-
-
-    plot1d = $.jqplot('chart1d', [line1], {
-        title: 'Crop Yield Change, 2008 to 2009',
-        seriesDefaults:{
-            renderer:$.jqplot.BarRenderer, 
-            rendererOptions:{
-                waterfall: true,
-                varyBarColor: true
-            },
-            pointLabels: {
-                show: true,
-                hideZeros: true
-            },
-            yaxis:'y2axis'
-        },
-        axes:{
-            xaxis:{
-                renderer:$.jqplot.CategoryAxisRenderer, 
-                ticks:ticks,
-                tickRenderer: $.jqplot.CanvasAxisTickRenderer,
-                tickOptions: {
-                    angle: -90,
-                    fontSize: '10pt',
-                    showMark: false,
-                    showGridline: false
-                }
-            }
-        }
-    });
-});</script>
-
-<!-- End example scripts -->
-
-<!-- Don't touch this! -->
-
-
-    <script class="include" type="text/javascript" src="../jquery.jqplot.min.js"></script>
-    <script type="text/javascript" src="syntaxhighlighter/scripts/shCore.min.js"></script>
-    <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushJScript.min.js"></script>
-    <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushXml.min.js"></script>
-<!-- End Don't touch this! -->
-
-<!-- Additional plugins go here -->
-  <script class="include" type="text/javascript" src="../plugins/jqplot.barRenderer.min.js"></script>
-  <script class="include" type="text/javascript" src="../plugins/jqplot.categoryAxisRenderer.min.js"></script>
-  <script class="include" type="text/javascript" src="../plugins/jqplot.canvasAxisTickRenderer.min.js"></script>
-  <script class="include" type="text/javascript" src="../plugins/jqplot.canvasTextRenderer.min.js"></script>
-  <script class="include" type="text/javascript" src="../plugins/jqplot.pointLabels.min.js"></script>
-
-<!-- End additional plugins -->
-
-
-	</div>	
-	<script type="text/javascript" src="example.min.js"></script>
-
-</body>
-
-
-</html>
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/yahooData.js b/wqflask/wqflask/static/packages/jqplot/examples/yahooData.js
deleted file mode 100755
index 66dcb749..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/yahooData.js
+++ /dev/null
@@ -1,1807 +0,0 @@
-var yahoo=[["2011-10-18",580.19,592.56,577.40,590.51,3800800,590.51],
-["2011-10-17",583.72,591.83,578.00,582.41,4008200,582.41],
-["2011-10-14",599.47,599.60,587.57,591.68,8529900,591.68],
-["2011-10-13",550.03,559.00,548.02,558.99,5639600,558.99],
-["2011-10-12",548.13,555.23,544.63,548.50,3177800,548.50],
-["2011-10-11",533.46,546.80,533.46,543.18,2853400,543.18],
-["2011-10-10",525.18,537.47,523.20,537.17,2322200,537.17],
-["2011-10-07",516.83,520.50,510.30,515.12,2855900,515.12],
-["2011-10-06",507.50,515.23,502.60,514.71,3424300,514.71],
-["2011-10-05",496.35,507.80,480.77,504.70,4534100,504.70],
-["2011-10-04",490.03,503.44,480.60,501.90,4158800,501.90],
-["2011-10-03",509.85,512.00,495.00,495.52,4474400,495.52],
-["2011-09-30",520.21,524.00,514.38,515.04,2723600,515.04],
-["2011-09-29",536.04,537.30,519.41,527.50,2906600,527.50],
-["2011-09-28",541.50,544.02,527.70,528.84,2263300,528.84],
-["2011-09-27",538.20,547.05,536.05,539.34,3010900,539.34],
-["2011-09-26",527.25,532.93,513.25,531.89,2634200,531.89],
-["2011-09-23",516.56,526.42,514.50,525.51,2777300,525.51],
-["2011-09-22",526.25,528.78,514.00,520.66,4400300,520.66],
-["2011-09-21",547.69,555.00,538.86,539.20,2514300,539.20],
-["2011-09-20",549.40,558.52,542.67,546.63,2779100,546.63],
-["2011-09-19",540.35,549.90,535.38,546.67,2468400,546.67],
-["2011-09-16",544.80,546.84,543.14,546.68,3534300,546.68],
-["2011-09-15",535.50,544.98,534.56,542.56,2960800,542.56],
-["2011-09-14",532.59,536.95,525.82,532.07,2694400,532.07],
-["2011-09-13",532.00,533.88,523.40,529.52,2354200,529.52],
-["2011-09-12",517.96,531.99,517.50,530.12,2670400,530.12],
-["2011-09-09",531.40,534.65,521.19,524.85,3268800,524.85],
-["2011-09-08",533.80,539.10,531.90,534.96,2380500,534.96],
-["2011-09-07",530.45,535.94,527.40,534.03,2755800,534.03],
-["2011-09-06",510.80,522.76,510.50,522.18,2715800,522.18],
-["2011-09-02",524.47,527.92,520.73,524.84,2401200,524.84],
-["2011-09-01",540.75,543.83,531.22,532.50,2415500,532.50],
-["2011-08-31",544.74,546.30,536.00,540.96,2693300,540.96],
-["2011-08-30",538.19,542.99,530.81,540.70,2989000,540.70],
-["2011-08-29",534.56,539.45,533.56,539.08,2335800,539.08],
-["2011-08-26",519.99,530.45,513.14,526.86,3596300,526.86],
-["2011-08-25",530.38,537.27,518.30,520.04,3293000,520.04],
-["2011-08-24",519.33,530.00,517.23,523.29,3594500,523.29],
-["2011-08-23",503.50,521.41,499.06,518.82,4346800,518.82],
-["2011-08-22",504.00,507.00,494.53,498.17,4905900,498.17],
-["2011-08-19",499.34,514.87,490.86,490.92,5410000,490.92],
-["2011-08-18",523.47,524.89,500.49,504.88,6290700,504.88],
-["2011-08-17",540.03,543.69,530.77,533.15,4055000,533.15],
-["2011-08-16",552.43,552.44,530.30,539.00,6939400,539.00],
-["2011-08-15",553.43,564.99,546.05,557.23,7144900,557.23],
-["2011-08-12",569.50,570.50,560.40,563.77,3154300,563.77],
-["2011-08-11",553.82,568.50,548.41,562.13,4830600,562.13],
-["2011-08-10",561.38,564.12,547.73,549.01,5369600,549.01],
-["2011-08-09",561.00,574.61,541.01,573.41,6469700,573.41],
-["2011-08-08",562.98,569.00,544.35,546.02,7496600,546.02],
-["2011-08-05",582.54,590.00,562.00,579.04,5929100,579.04],
-["2011-08-04",594.50,598.85,577.47,577.52,4914600,577.52],
-["2011-08-03",594.27,603.00,583.63,601.17,3825700,601.17],
-["2011-08-02",606.00,609.67,591.57,592.40,3200600,592.40],
-["2011-08-01",611.22,615.50,599.18,606.77,3966100,606.77],
-["2011-07-29",604.23,614.96,603.69,603.69,4137400,603.69],
-["2011-07-28",605.19,615.98,603.00,610.94,3108400,610.94],
-["2011-07-27",617.18,620.95,604.75,607.22,3934400,607.22],
-["2011-07-26",618.05,627.50,617.22,622.52,2342900,622.52],
-["2011-07-25",613.36,625.41,613.00,618.98,3131600,618.98],
-["2011-07-22",605.39,619.50,604.27,618.23,3528200,618.23],
-["2011-07-21",594.03,608.06,594.01,606.99,3469500,606.99],
-["2011-07-20",602.18,602.83,595.35,595.35,2227800,595.35],
-["2011-07-19",596.14,604.68,595.53,602.55,2967500,602.55],
-["2011-07-18",592.49,602.05,592.00,594.94,4468300,594.94],
-["2011-07-15",597.50,600.25,588.16,597.62,13732100,597.62],
-["2011-07-14",539.12,542.00,526.73,528.94,6594400,528.94],
-["2011-07-13",537.00,544.00,536.48,538.26,2790200,538.26],
-["2011-07-12",528.16,539.42,526.00,534.01,2841200,534.01],
-["2011-07-11",528.18,535.98,525.50,527.28,2839300,527.28],
-["2011-07-08",532.95,537.65,527.27,531.99,4770200,531.99],
-["2011-07-07",541.00,550.68,535.88,546.60,3935500,546.60],
-["2011-07-06",533.50,538.51,533.04,535.36,2695600,535.36],
-["2011-07-05",525.30,535.40,525.30,532.44,3849200,532.44],
-["2011-07-01",506.74,521.18,506.38,521.03,3636700,521.03],
-["2011-06-30",501.99,506.67,501.50,506.38,2428400,506.38],
-["2011-06-29",496.54,500.25,492.38,497.57,2343000,497.57],
-["2011-06-28",484.02,496.21,484.02,493.65,2715100,493.65],
-["2011-06-27",474.00,488.40,473.60,482.80,3444700,482.80],
-["2011-06-24",480.68,480.75,473.02,474.88,3805600,474.88],
-["2011-06-23",482.13,482.86,473.73,480.22,4801700,480.22],
-["2011-06-22",491.45,492.35,486.73,487.01,2407100,487.01],
-["2011-06-21",487.19,493.94,484.73,493.00,2765400,493.00],
-["2011-06-20",485.00,486.23,479.23,484.58,3028600,484.58],
-["2011-06-17",506.18,506.69,484.80,485.02,5245400,485.02],
-["2011-06-16",502.81,506.57,496.67,500.37,2757000,500.37],
-["2011-06-15",505.03,508.35,500.61,502.95,2073300,502.95],
-["2011-06-14",508.15,514.08,506.99,508.37,2341500,508.37],
-["2011-06-13",510.00,510.20,502.17,504.73,2427300,504.73],
-["2011-06-10",514.08,516.69,509.29,509.51,2439900,509.51],
-["2011-06-09",520.00,520.00,515.64,516.73,1689100,516.73],
-["2011-06-08",516.53,521.24,515.78,519.17,1653400,519.17],
-["2011-06-07",522.89,524.63,518.99,519.03,1907600,519.03],
-["2011-06-06",523.54,526.82,519.25,521.06,1942100,521.06],
-["2011-06-03",522.00,527.60,521.50,523.08,1748500,523.08],
-["2011-06-02",527.57,530.30,522.48,528.06,2204500,528.06],
-["2011-06-01",528.04,533.20,525.31,525.60,2955900,525.60],
-["2011-05-31",525.00,529.05,523.50,529.02,2687300,529.02],
-["2011-05-27",518.48,521.79,516.30,520.90,1745800,520.90],
-["2011-05-26",517.70,522.12,515.00,518.13,2118500,518.13],
-["2011-05-25",517.33,522.77,517.25,519.67,1301600,519.67],
-["2011-05-24",520.37,523.96,518.15,518.26,1888400,518.26],
-["2011-05-23",516.60,520.00,513.40,518.39,2252700,518.39],
-["2011-05-20",531.80,531.99,523.13,524.03,2317500,524.03],
-["2011-05-19",532.73,536.54,529.72,531.25,2468700,531.25],
-["2011-05-18",529.54,530.33,525.70,529.81,1953200,529.81],
-["2011-05-17",515.43,531.22,515.03,530.46,3303600,530.46],
-["2011-05-16",526.31,527.27,516.40,518.42,2958200,518.42],
-["2011-05-13",534.61,535.92,529.05,529.55,2108700,529.55],
-["2011-05-12",535.24,536.94,530.91,535.05,1400000,535.05],
-["2011-05-11",540.14,543.55,533.69,535.45,2338800,535.45],
-["2011-05-10",540.00,544.43,537.54,542.66,2042900,542.66],
-["2011-05-09",535.00,538.49,531.10,537.68,1948700,537.68],
-["2011-05-06",538.15,541.46,535.18,535.30,2056100,535.30],
-["2011-05-05",533.86,539.42,531.50,534.27,1997800,534.27],
-["2011-05-04",535.17,539.00,533.02,535.79,2117000,535.79],
-["2011-05-03",537.13,542.01,529.63,533.89,2081500,533.89],
-["2011-05-02",545.70,545.73,537.12,538.56,2133700,538.56],
-["2011-04-29",540.00,544.10,538.51,544.10,4200000,544.10],
-["2011-04-28",538.06,539.25,534.08,537.97,2037400,537.97],
-["2011-04-27",538.00,538.11,534.35,537.76,2298400,537.76],
-["2011-04-26",526.52,537.44,525.21,532.82,3535400,532.82],
-["2011-04-25",525.25,527.00,522.01,525.05,1630800,525.05],
-["2011-04-21",527.49,528.28,522.39,525.10,2470100,525.10],
-["2011-04-20",525.90,526.82,521.39,525.73,3060000,525.73],
-["2011-04-19",529.95,530.88,520.90,521.53,2684100,521.53],
-["2011-04-18",526.42,527.66,519.00,526.84,5039800,526.84],
-["2011-04-15",545.29,545.75,530.06,530.70,14043700,530.70],
-["2011-04-14",575.19,579.45,572.10,578.51,5456300,578.51],
-["2011-04-13",575.51,577.60,571.75,576.28,2069400,576.28],
-["2011-04-12",575.00,576.91,568.05,570.61,2085600,570.61],
-["2011-04-11",576.20,578.10,573.00,577.37,1858200,577.37],
-["2011-04-08",584.89,584.89,578.06,578.16,1901800,578.16],
-["2011-04-07",575.73,580.64,574.19,580.00,2531500,580.00],
-["2011-04-06",572.18,575.16,568.00,574.18,2668300,574.18],
-["2011-04-05",581.08,581.49,565.68,569.09,6047500,569.09],
-["2011-04-04",593.00,594.74,583.10,587.68,2054500,587.68],
-["2011-04-01",588.76,595.19,588.76,591.80,2613200,591.80],
-["2011-03-31",583.00,588.16,581.74,586.76,2029400,586.76],
-["2011-03-30",584.38,585.50,580.58,581.84,1422300,581.84],
-["2011-03-29",576.00,581.89,573.01,581.73,1604800,581.73],
-["2011-03-28",582.07,584.99,574.71,575.36,2218400,575.36],
-["2011-03-25",586.88,586.91,579.24,579.74,2858400,579.74],
-["2011-03-24",585.43,588.39,578.80,586.89,2098700,586.89],
-["2011-03-23",575.19,582.45,572.00,582.16,1816200,582.16],
-["2011-03-22",577.27,579.23,572.51,577.32,1886900,577.32],
-["2011-03-21",570.22,579.80,569.02,576.50,3020900,576.50],
-["2011-03-18",564.64,567.99,559.74,561.06,3298600,561.06],
-["2011-03-17",564.48,569.00,560.54,561.36,2899300,561.36],
-["2011-03-16",568.01,569.79,551.28,557.10,3798500,557.10],
-["2011-03-15",557.50,571.00,555.50,569.56,4005600,569.56],
-["2011-03-14",572.80,578.29,568.02,569.99,2816100,569.99],
-["2011-03-11",578.22,580.00,573.33,576.71,3032000,576.71],
-["2011-03-10",585.44,586.62,579.45,580.30,3128100,580.30],
-["2011-03-09",591.00,594.51,585.75,591.77,2151000,591.77],
-["2011-03-08",592.93,597.98,590.20,592.31,2284900,592.31],
-["2011-03-07",600.55,603.69,587.00,591.66,3462700,591.66],
-["2011-03-04",608.33,608.98,600.20,600.62,3011000,600.62],
-["2011-03-03",606.38,611.49,605.00,609.56,1945300,609.56],
-["2011-03-02",599.80,606.00,595.19,600.79,2026700,600.79],
-["2011-03-01",617.78,619.22,599.30,600.76,3323200,600.76],
-["2011-02-28",610.00,616.49,608.01,613.40,2281500,613.40],
-["2011-02-25",611.86,614.72,609.50,610.04,1932400,610.04],
-["2011-02-24",611.39,613.09,601.35,608.82,2711700,608.82],
-["2011-02-23",610.33,614.70,604.00,611.32,2889600,611.32],
-["2011-02-22",620.03,624.93,607.77,610.21,3639900,610.21],
-["2011-02-18",626.00,631.18,624.18,630.08,3217900,630.08],
-["2011-02-17",621.25,627.25,620.28,625.26,1478800,625.26],
-["2011-02-16",625.63,626.50,622.10,624.22,1684000,624.22],
-["2011-02-15",627.32,630.09,623.10,624.15,2092000,624.15],
-["2011-02-14",623.34,629.64,620.04,628.15,2128000,628.15],
-["2011-02-11",613.79,625.00,613.00,624.50,2589900,624.50],
-["2011-02-10",613.90,617.50,611.56,616.44,2334400,616.44],
-["2011-02-09",616.87,619.45,612.34,616.50,1842500,616.50],
-["2011-02-08",614.93,619.63,614.51,618.38,1694900,618.38],
-["2011-02-07",610.16,618.39,609.21,614.29,1799600,614.29],
-["2011-02-04",610.15,611.44,606.61,610.98,1550800,610.98],
-["2011-02-03",609.48,611.45,606.13,610.15,1495100,610.15],
-["2011-02-02",611.00,614.34,607.53,612.00,1760700,612.00],
-["2011-02-01",604.49,613.35,603.11,611.04,2745300,611.04],
-["2011-01-31",603.60,604.47,595.55,600.36,2804900,600.36],
-["2011-01-28",619.07,620.36,599.76,600.99,4231100,600.99],
-["2011-01-27",617.89,619.70,613.25,616.79,2019200,616.79],
-["2011-01-26",620.33,622.49,615.28,616.50,2038100,616.50],
-["2011-01-25",608.20,620.69,606.52,619.91,3646800,619.91],
-["2011-01-24",607.57,612.49,601.23,611.08,4599200,611.08],
-["2011-01-21",639.58,641.73,611.36,611.83,8904400,611.83],
-["2011-01-20",632.21,634.08,623.29,626.77,5485800,626.77],
-["2011-01-19",642.12,642.96,629.66,631.75,3406100,631.75],
-["2011-01-18",626.06,641.99,625.27,639.63,3617000,639.63],
-["2011-01-14",617.40,624.27,617.08,624.18,2365600,624.18],
-["2011-01-13",616.97,619.67,614.16,616.69,1334000,616.69],
-["2011-01-12",619.35,619.35,614.77,616.87,1632700,616.87],
-["2011-01-11",617.71,618.80,614.50,616.01,1439300,616.01],
-["2011-01-10",614.80,615.39,608.56,614.21,1579200,614.21],
-["2011-01-07",615.91,618.25,610.13,616.44,2101200,616.44],
-["2011-01-06",610.68,618.43,610.05,613.50,2057800,613.50],
-["2011-01-05",600.07,610.33,600.05,609.07,2532300,609.07],
-["2011-01-04",605.62,606.18,600.12,602.12,1824500,602.12],
-["2011-01-03",596.48,605.59,596.48,604.35,2365200,604.35],
-["2010-12-31",596.74,598.42,592.03,593.97,1539300,593.97],
-["2010-12-30",598.00,601.33,597.39,598.86,989500,598.86],
-["2010-12-29",602.00,602.41,598.92,601.00,1019200,601.00],
-["2010-12-28",602.05,603.87,598.01,598.92,1064800,598.92],
-["2010-12-27",602.74,603.78,599.50,602.38,1208100,602.38],
-["2010-12-23",605.34,606.00,602.03,604.23,1110800,604.23],
-["2010-12-22",604.00,607.00,603.28,605.49,1207500,605.49],
-["2010-12-21",598.57,604.72,597.61,603.07,1879500,603.07],
-["2010-12-20",594.65,597.88,588.66,595.06,1973300,595.06],
-["2010-12-17",591.00,592.56,587.67,590.80,3087100,590.80],
-["2010-12-16",592.85,593.77,588.07,591.71,1596900,591.71],
-["2010-12-15",594.20,596.45,589.15,590.30,2167700,590.30],
-["2010-12-14",597.09,598.29,592.48,594.91,1643300,594.91],
-["2010-12-13",597.12,603.00,594.09,594.62,2398500,594.62],
-["2010-12-10",593.14,593.99,590.29,592.21,1704700,592.21],
-["2010-12-09",593.88,595.58,589.00,591.50,1868900,591.50],
-["2010-12-08",591.97,592.52,583.69,590.54,1756900,590.54],
-["2010-12-07",591.27,593.00,586.00,587.14,3042200,587.14],
-["2010-12-06",580.57,582.00,576.61,578.36,2093800,578.36],
-["2010-12-03",569.45,576.48,568.00,573.00,2631200,573.00],
-["2010-12-02",568.66,573.33,565.35,571.82,2547900,571.82],
-["2010-12-01",563.00,571.57,562.40,564.35,3754100,564.35],
-["2010-11-30",574.32,574.32,553.31,555.71,7117400,555.71],
-["2010-11-29",589.17,589.80,579.95,582.11,2859700,582.11],
-["2010-11-26",590.46,592.98,587.00,590.00,1311100,590.00],
-["2010-11-24",587.31,596.60,587.05,594.97,2396400,594.97],
-["2010-11-23",587.01,589.01,578.20,583.01,2162600,583.01],
-["2010-11-22",587.47,593.44,582.75,591.22,2186600,591.22],
-["2010-11-19",597.00,597.89,590.34,590.83,2297500,590.83],
-["2010-11-18",589.00,599.98,588.56,596.56,2590000,596.56],
-["2010-11-17",585.00,589.50,581.37,583.55,2442500,583.55],
-["2010-11-16",592.76,597.89,583.45,583.72,3307400,583.72],
-["2010-11-15",603.08,604.00,594.05,595.47,3478900,595.47],
-["2010-11-12",613.99,616.90,601.21,603.29,3393000,603.29],
-["2010-11-11",619.70,619.85,614.21,617.19,2261600,617.19],
-["2010-11-10",622.08,623.00,617.51,622.88,2497000,622.88],
-["2010-11-09",630.00,630.85,620.51,624.82,2237200,624.82],
-["2010-11-08",624.02,629.49,623.13,626.77,2101300,626.77],
-["2010-11-05",623.18,625.49,621.11,625.08,1765700,625.08],
-["2010-11-04",624.64,629.92,622.10,624.27,3570800,624.27],
-["2010-11-03",617.50,621.83,613.50,620.18,3380500,620.18],
-["2010-11-02",618.67,620.00,614.58,615.60,1997600,615.60],
-["2010-11-01",615.73,620.66,611.21,615.00,3087100,615.00],
-["2010-10-29",617.07,619.00,612.99,613.70,2278300,613.70],
-["2010-10-28",620.05,621.00,613.30,618.58,2184300,618.58],
-["2010-10-27",615.77,620.00,612.33,616.47,2241900,616.47],
-["2010-10-26",613.10,621.23,611.03,618.60,2512900,618.60],
-["2010-10-25",615.59,624.74,614.97,616.50,3158400,616.50],
-["2010-10-22",611.92,614.82,610.05,612.53,2256100,612.53],
-["2010-10-21",611.51,616.00,606.00,611.99,2920500,611.99],
-["2010-10-20",608.14,617.38,607.50,607.98,3525100,607.98],
-["2010-10-19",608.85,614.82,602.86,607.83,4587900,607.83],
-["2010-10-18",600.55,619.69,600.55,617.71,7098200,617.71],
-["2010-10-15",599.27,601.64,591.60,601.45,14824800,601.45],
-["2010-10-14",544.18,545.25,537.11,540.93,6634100,540.93],
-["2010-10-13",547.00,547.49,542.33,543.30,3055600,543.30],
-["2010-10-12",540.12,545.99,537.79,541.39,3753600,541.39],
-["2010-10-11",538.48,544.60,537.17,538.84,2626300,538.84],
-["2010-10-08",532.77,537.60,527.62,536.35,2859200,536.35],
-["2010-10-07",536.21,537.20,529.14,530.01,2395800,530.01],
-["2010-10-06",539.26,539.95,529.94,534.35,2762300,534.35],
-["2010-10-05",528.38,540.00,526.55,538.23,3507100,538.23],
-["2010-10-04",524.95,528.25,518.85,522.35,1940500,522.35],
-["2010-10-01",530.00,530.62,523.00,525.62,2225000,525.62],
-["2010-09-30",529.16,531.87,518.92,525.79,3244100,525.79],
-["2010-09-29",527.85,532.94,524.71,527.69,2172200,527.69],
-["2010-09-28",533.48,533.59,518.45,527.17,3654700,527.17],
-["2010-09-27",528.85,536.85,528.85,530.41,3107400,530.41],
-["2010-09-24",521.74,527.83,518.26,527.29,3356900,527.29],
-["2010-09-23",514.61,519.69,511.30,513.48,2317400,513.48],
-["2010-09-22",512.86,517.78,511.68,516.00,2537100,516.00],
-["2010-09-21",509.68,519.98,508.91,513.46,4466300,513.46],
-["2010-09-20",492.50,510.41,492.06,508.28,4403500,508.28],
-["2010-09-17",483.75,491.20,481.18,490.15,5641600,490.15],
-["2010-09-16",479.95,482.45,479.41,481.06,1969500,481.06],
-["2010-09-15",479.95,481.89,478.50,480.64,2402800,480.64],
-["2010-09-14",482.01,484.75,480.08,480.43,2216500,480.43],
-["2010-09-13",480.90,484.35,479.53,482.27,2241500,482.27],
-["2010-09-10",479.02,479.79,475.08,476.14,1974300,476.14],
-["2010-09-09",477.83,480.40,470.58,476.18,2430600,476.18],
-["2010-09-08",465.19,472.50,464.51,470.58,2401800,470.58],
-["2010-09-07",464.50,467.59,463.02,464.40,1709900,464.40],
-["2010-09-03",470.52,471.88,467.44,470.30,2540400,470.30],
-["2010-09-02",462.84,464.43,460.31,463.18,1684200,463.18],
-["2010-09-01",454.98,464.94,452.50,460.33,3228300,460.33],
-["2010-08-31",450.11,454.87,448.00,450.02,1946800,450.02],
-["2010-08-30",459.15,459.76,452.42,452.69,1231400,452.69],
-["2010-08-27",452.56,459.99,447.65,458.83,2312400,458.83],
-["2010-08-26",456.06,457.26,450.44,450.98,1777000,450.98],
-["2010-08-25",450.00,457.81,450.00,454.62,2592100,454.62],
-["2010-08-24",457.70,458.37,450.92,451.39,2762700,451.39],
-["2010-08-23",461.50,468.25,457.73,464.07,2986200,464.07],
-["2010-08-20",467.97,471.59,461.02,462.02,3917600,462.02],
-["2010-08-19",481.01,482.51,467.25,467.97,3925000,467.97],
-["2010-08-18",490.44,490.87,481.55,482.15,2686400,482.15],
-["2010-08-17",488.53,494.70,486.03,490.52,1890700,490.52],
-["2010-08-16",483.68,489.87,480.50,485.59,1305000,485.59],
-["2010-08-13",489.00,491.19,486.01,486.35,1934700,486.35],
-["2010-08-12",483.94,494.75,482.51,492.01,2204600,492.01],
-["2010-08-11",497.73,498.00,491.50,491.74,2223000,491.74],
-["2010-08-10",502.35,506.00,498.57,503.71,2074000,503.71],
-["2010-08-09",502.25,505.50,501.36,505.35,1872200,505.35],
-["2010-08-06",505.40,505.74,496.05,500.22,3319500,500.22],
-["2010-08-05",505.89,508.60,503.56,508.10,2420400,508.10],
-["2010-08-04",492.18,507.00,491.05,506.32,3812500,506.32],
-["2010-08-03",490.50,492.46,486.76,489.83,1802300,489.83],
-["2010-08-02",488.99,493.28,486.94,490.41,1858700,490.41],
-["2010-07-30",479.65,487.36,479.14,484.85,2144100,484.85],
-["2010-07-29",485.95,488.88,479.33,484.99,2675500,484.99],
-["2010-07-28",494.94,495.25,482.67,484.35,2496000,484.35],
-["2010-07-27",490.58,497.50,490.17,492.63,2451200,492.63],
-["2010-07-26",489.09,490.75,484.88,488.97,1995200,488.97],
-["2010-07-23",480.77,490.59,480.01,490.06,2264400,490.06],
-["2010-07-22",483.23,488.98,482.48,484.81,2147700,484.81],
-["2010-07-21",484.00,485.70,475.43,477.50,3279600,477.50],
-["2010-07-20",461.03,482.99,460.60,481.59,4054500,481.59],
-["2010-07-19",461.01,469.65,457.52,466.18,4550300,466.18],
-["2010-07-16",469.12,470.56,459.52,459.61,7824800,459.61],
-["2010-07-15",491.73,494.70,482.68,494.02,4858200,494.02],
-["2010-07-14",489.88,493.83,486.46,491.34,3118000,491.34],
-["2010-07-13",482.25,492.99,480.28,489.20,3976300,489.20],
-["2010-07-12",472.37,479.44,471.08,475.83,3334400,475.83],
-["2010-07-09",471.96,473.26,462.78,467.49,4331500,467.49],
-["2010-07-08",453.55,457.33,449.66,456.56,2668900,456.56],
-["2010-07-07",438.31,451.29,435.38,450.20,3129700,450.20],
-["2010-07-06",444.00,447.67,433.63,436.07,2560100,436.07],
-["2010-07-02",441.62,442.28,436.00,436.55,1936000,436.55],
-["2010-07-01",445.29,448.40,433.63,439.49,3513600,439.49],
-["2010-06-30",454.96,457.83,444.72,444.95,3603200,444.95],
-["2010-06-29",463.44,464.55,451.12,454.26,3502100,454.26],
-["2010-06-28",472.59,477.55,469.01,472.08,1762300,472.08],
-["2010-06-25",477.06,477.65,470.56,472.68,2245200,472.68],
-["2010-06-24",479.66,482.75,473.26,475.10,1893600,475.10],
-["2010-06-23",486.89,486.89,478.16,482.05,2029100,482.05],
-["2010-06-22",489.90,496.60,485.73,486.25,2219700,486.25],
-["2010-06-21",499.90,500.97,484.89,488.56,2983500,488.56],
-["2010-06-18",502.51,503.47,498.13,500.03,2872900,500.03],
-["2010-06-17",503.45,505.87,496.69,500.08,1977300,500.08],
-["2010-06-16",496.17,504.00,496.11,501.27,2289300,501.27],
-["2010-06-15",483.08,500.40,482.18,497.99,4259600,497.99],
-["2010-06-14",494.48,494.50,483.19,483.19,2040400,483.19],
-["2010-06-11",482.50,488.71,481.62,488.50,1781700,488.50],
-["2010-06-10",480.37,488.50,475.84,487.01,2577900,487.01],
-["2010-06-09",487.22,488.88,472.00,474.02,2729000,474.02],
-["2010-06-08",487.85,488.84,477.54,484.78,2685100,484.78],
-["2010-06-07",499.06,500.91,483.15,485.52,3632700,485.52],
-["2010-06-04",499.72,509.25,496.70,498.72,3920300,498.72],
-["2010-06-03",495.11,508.00,494.70,505.60,3650700,505.60],
-["2010-06-02",486.68,493.87,481.46,493.37,2540800,493.37],
-["2010-06-01",480.43,491.06,480.12,482.37,2666800,482.37],
-["2010-05-28",492.74,493.45,483.00,485.63,2894800,485.63],
-["2010-05-27",484.95,492.31,481.05,490.46,2809100,490.46],
-["2010-05-26",482.07,489.76,475.00,475.47,3475600,475.47],
-["2010-05-25",468.15,477.45,464.01,477.07,3017400,477.07],
-["2010-05-24",480.73,489.79,476.80,477.16,4345600,477.16],
-["2010-05-21",469.06,485.00,464.40,472.05,9690800,472.05],
-["2010-05-20",485.07,485.58,473.80,475.01,4913300,475.01],
-["2010-05-19",496.26,499.44,487.74,494.43,3445700,494.43],
-["2010-05-18",510.00,510.97,497.07,498.37,2825500,498.37],
-["2010-05-17",506.78,508.36,498.35,507.97,2793800,507.97],
-["2010-05-14",509.77,510.99,496.25,507.53,4116000,507.53],
-["2010-05-13",516.50,522.00,510.37,510.88,3325800,510.88],
-["2010-05-12",512.04,512.04,502.00,505.39,3851800,505.39],
-["2010-05-11",515.67,519.88,508.22,509.05,3322600,509.05],
-["2010-05-10",513.97,522.82,512.60,521.65,4128000,521.65],
-["2010-05-07",499.97,505.32,481.33,493.14,5089000,493.14],
-["2010-05-06",508.75,517.52,460.00,498.67,5000100,498.67],
-["2010-05-05",500.98,515.72,500.47,509.76,4582200,509.76],
-["2010-05-04",526.52,526.74,504.21,506.37,6076300,506.37],
-["2010-05-03",526.50,532.92,525.08,530.60,1857800,530.60],
-["2010-04-30",531.13,537.68,525.44,525.70,2435400,525.70],
-["2010-04-29",533.37,536.50,526.67,532.00,3058900,532.00],
-["2010-04-28",532.10,534.83,521.03,529.19,3406100,529.19],
-["2010-04-27",528.95,538.33,527.23,529.06,3844700,529.06],
-["2010-04-26",544.97,544.99,529.21,531.64,4368800,531.64],
-["2010-04-23",547.25,549.32,542.27,544.99,2089400,544.99],
-["2010-04-22",552.00,552.50,543.35,547.06,3280700,547.06],
-["2010-04-21",556.46,560.25,552.16,554.30,2391500,554.30],
-["2010-04-20",554.17,559.66,551.06,555.04,2977400,555.04],
-["2010-04-19",548.75,553.99,545.00,550.10,3894000,550.10],
-["2010-04-16",563.00,568.81,549.63,550.15,12235500,550.15],
-["2010-04-15",592.17,597.84,588.29,595.30,6761800,595.30],
-["2010-04-14",590.06,592.34,584.01,589.00,3402700,589.00],
-["2010-04-13",572.53,588.88,571.13,586.77,3912300,586.77],
-["2010-04-12",567.35,574.00,566.22,572.73,2352400,572.73],
-["2010-04-09",567.49,568.77,564.00,566.22,2056600,566.22],
-["2010-04-08",563.32,569.85,560.05,567.49,1947500,567.49],
-["2010-04-07",567.30,568.75,561.86,563.54,2581000,563.54],
-["2010-04-06",569.46,570.89,565.40,568.22,2060100,568.22],
-["2010-04-05",570.90,574.88,569.00,571.01,1901500,571.01],
-["2010-04-01",571.35,573.45,565.55,568.80,2102700,568.80],
-["2010-03-31",565.05,569.74,562.81,567.12,3030800,567.12],
-["2010-03-30",562.83,567.63,560.28,566.71,1977900,566.71],
-["2010-03-29",563.00,564.72,560.57,562.45,3104500,562.45],
-["2010-03-26",565.27,567.39,560.02,562.69,2696200,562.69],
-["2010-03-25",559.02,572.00,558.66,562.88,3930900,562.88],
-["2010-03-24",545.51,559.85,539.70,557.33,6565200,557.33],
-["2010-03-23",557.04,558.31,542.00,549.00,5501300,549.00],
-["2010-03-22",556.11,566.85,554.28,557.50,4004800,557.50],
-["2010-03-19",566.23,568.00,557.28,560.00,4792400,560.00],
-["2010-03-18",564.72,568.44,562.96,566.40,1777200,566.40],
-["2010-03-17",568.30,571.45,564.25,565.56,3321600,565.56],
-["2010-03-16",561.83,568.42,560.76,565.20,3431500,565.20],
-["2010-03-15",566.68,569.45,556.00,563.18,4653900,563.18],
-["2010-03-12",588.14,588.28,579.16,579.54,2753400,579.54],
-["2010-03-11",574.26,586.21,574.20,581.14,4233300,581.14],
-["2010-03-10",563.76,578.50,562.21,576.45,5654900,576.45],
-["2010-03-09",559.85,564.66,556.50,560.19,3176600,560.19],
-["2010-03-08",564.78,565.18,561.01,562.48,2386400,562.48],
-["2010-03-05",561.35,567.67,559.90,564.21,3912200,564.21],
-["2010-03-04",546.50,556.13,546.20,554.59,3183800,554.59],
-["2010-03-03",542.36,548.12,539.25,545.32,3089400,545.32],
-["2010-03-02",535.48,545.66,535.01,541.06,4356800,541.06],
-["2010-03-01",529.20,533.29,527.74,532.69,2237900,532.69],
-["2010-02-26",527.42,531.75,523.48,526.80,2049300,526.80],
-["2010-02-25",527.12,528.49,520.00,526.43,3309200,526.43],
-["2010-02-24",533.98,538.44,530.51,531.47,2326600,531.47],
-["2010-02-23",543.00,543.63,532.29,535.07,2872600,535.07],
-["2010-02-22",547.35,547.50,541.00,542.80,2144600,542.80],
-["2010-02-19",540.53,544.03,539.70,540.76,2553100,540.76],
-["2010-02-18",537.54,545.01,536.14,543.22,2336900,543.22],
-["2010-02-17",542.00,543.40,537.61,538.21,2029700,538.21],
-["2010-02-16",536.87,544.13,534.30,541.30,3654400,541.30],
-["2010-02-12",532.97,537.15,530.50,533.12,2279700,533.12],
-["2010-02-11",533.32,540.49,529.50,536.40,2410000,536.40],
-["2010-02-10",534.07,537.79,527.69,534.45,2674500,534.45],
-["2010-02-09",539.54,541.53,535.07,536.44,2819600,536.44],
-["2010-02-08",532.50,542.00,531.53,533.47,2694300,533.47],
-["2010-02-05",528.40,533.50,522.46,531.29,3156000,531.29],
-["2010-02-04",537.00,538.00,525.56,526.78,3377700,526.78],
-["2010-02-03",528.67,542.10,528.23,540.82,2999100,540.82],
-["2010-02-02",534.96,534.96,527.61,531.12,4096200,531.12],
-["2010-02-01",534.60,535.81,530.30,533.02,2250800,533.02],
-["2010-01-29",538.49,540.99,525.61,529.94,4140500,529.94],
-["2010-01-28",544.49,547.00,530.60,534.29,3229100,534.29],
-["2010-01-27",541.27,547.65,535.31,542.10,3964400,542.10],
-["2010-01-26",537.97,549.60,536.29,542.42,4355500,542.42],
-["2010-01-25",546.59,549.88,535.51,540.00,4419900,540.00],
-["2010-01-22",564.50,570.60,534.86,550.01,6800400,550.01],
-["2010-01-21",583.44,586.82,572.25,582.98,6307700,582.98],
-["2010-01-20",585.98,585.98,575.29,580.41,3250700,580.41],
-["2010-01-19",581.20,590.42,576.29,587.62,4316700,587.62],
-["2010-01-15",593.34,593.56,578.04,580.00,5434500,580.00],
-["2010-01-14",583.90,594.20,582.81,589.85,4240100,589.85],
-["2010-01-13",576.49,588.38,573.90,587.09,6496600,587.09],
-["2010-01-12",597.65,598.16,588.00,590.48,4853300,590.48],
-["2010-01-11",604.46,604.46,594.04,601.11,7212900,601.11],
-["2010-01-08",592.00,603.25,589.11,602.02,4724300,602.02],
-["2010-01-07",609.40,610.00,592.65,594.10,6414300,594.10],
-["2010-01-06",625.86,625.86,606.36,608.26,3978700,608.26],
-["2010-01-05",627.18,627.84,621.54,623.99,3004700,623.99],
-["2010-01-04",626.95,629.51,624.24,626.75,1956200,626.75],
-["2009-12-31",624.75,625.40,619.98,619.98,1219800,619.98],
-["2009-12-30",618.50,622.73,618.01,622.73,1465600,622.73],
-["2009-12-29",624.74,624.84,618.29,619.40,1424800,619.40],
-["2009-12-28",621.66,625.99,618.48,622.87,1697900,622.87],
-["2009-12-24",612.93,619.52,612.27,618.48,858700,618.48],
-["2009-12-23",603.50,612.87,602.85,611.68,2072700,611.68],
-["2009-12-22",601.34,601.50,598.85,601.12,1880800,601.12],
-["2009-12-21",597.61,599.84,595.67,598.68,2571200,598.68],
-["2009-12-18",596.03,598.93,595.00,596.42,3531500,596.42],
-["2009-12-17",596.44,597.64,593.76,593.94,2638800,593.94],
-["2009-12-16",598.60,600.37,596.64,597.76,2809400,597.76],
-["2009-12-15",593.30,596.38,590.99,593.14,2280400,593.14],
-["2009-12-14",595.35,597.31,592.61,595.73,1913400,595.73],
-["2009-12-11",594.68,594.75,587.73,590.51,1720000,590.51],
-["2009-12-10",590.44,594.71,590.41,591.50,1668300,591.50],
-["2009-12-09",587.50,589.33,583.58,589.02,1781000,589.02],
-["2009-12-08",583.50,590.66,582.00,587.05,1524000,587.05],
-["2009-12-07",584.21,588.69,581.00,586.25,1636200,586.25],
-["2009-12-04",593.02,594.83,579.18,585.01,2513600,585.01],
-["2009-12-03",589.04,591.45,585.00,585.74,1428700,585.74],
-["2009-12-02",591.00,593.01,586.22,587.51,1663200,587.51],
-["2009-12-01",588.13,591.22,583.00,589.87,2320300,589.87],
-["2009-11-30",580.63,583.67,577.11,583.00,1725100,583.00],
-["2009-11-27",572.00,582.46,570.97,579.76,1384600,579.76],
-["2009-11-25",586.41,587.06,582.69,585.74,1461200,585.74],
-["2009-11-24",582.52,584.29,576.54,583.09,1605200,583.09],
-["2009-11-23",576.49,586.60,575.86,582.35,2547500,582.35],
-["2009-11-20",569.50,571.60,569.40,569.96,2006200,569.96],
-["2009-11-19",573.77,574.00,570.00,572.99,2168000,572.99],
-["2009-11-18",576.65,578.78,572.07,576.65,1549600,576.65],
-["2009-11-17",574.87,577.50,573.72,577.49,1916700,577.49],
-["2009-11-16",575.00,576.99,572.78,576.28,2199200,576.28],
-["2009-11-13",569.29,572.51,566.61,572.05,1666800,572.05],
-["2009-11-12",569.56,572.90,565.50,567.85,1886300,567.85],
-["2009-11-11",570.48,573.50,565.86,570.56,2319700,570.56],
-["2009-11-10",562.73,568.78,562.00,566.76,2230800,566.76],
-["2009-11-09",555.45,562.58,554.23,562.51,2649900,562.51],
-["2009-11-06",547.72,551.78,545.50,551.10,1826700,551.10],
-["2009-11-05",543.49,549.77,542.66,548.65,1847700,548.65],
-["2009-11-04",540.80,545.50,536.42,540.33,2332700,540.33],
-["2009-11-03",530.01,537.50,528.30,537.29,2380200,537.29],
-["2009-11-02",537.08,539.46,528.24,533.99,3202100,533.99],
-["2009-10-30",550.00,550.17,534.24,536.12,3468500,536.12],
-["2009-10-29",543.01,551.83,541.00,551.05,2522600,551.05],
-["2009-10-28",547.87,550.00,538.25,540.30,2567800,540.30],
-["2009-10-27",550.97,554.56,544.16,548.29,3216500,548.29],
-["2009-10-26",555.75,561.64,550.89,554.21,2970400,554.21],
-["2009-10-23",555.25,557.89,551.20,553.69,2392700,553.69],
-["2009-10-22",550.00,555.00,548.00,554.09,2336500,554.09],
-["2009-10-21",549.91,559.35,549.00,551.10,3670600,551.10],
-["2009-10-20",551.64,552.95,540.70,551.72,4043700,551.72],
-["2009-10-19",552.69,553.60,548.73,552.09,3217900,552.09],
-["2009-10-16",547.33,554.75,544.53,549.85,8841900,549.85],
-["2009-10-15",533.75,536.90,527.27,529.91,6100400,529.91],
-["2009-10-14",532.46,535.58,530.00,535.32,3258400,535.32],
-["2009-10-13",524.39,527.46,521.38,526.11,3037400,526.11],
-["2009-10-12",523.42,525.76,519.32,524.04,3322200,524.04],
-["2009-10-09",516.65,521.51,514.50,516.25,2738100,516.25],
-["2009-10-08",519.57,523.25,513.34,514.18,4303800,514.18],
-["2009-10-07",499.00,518.99,497.81,517.54,4874200,517.54],
-["2009-10-06",491.70,499.37,491.70,498.74,2732300,498.74],
-["2009-10-05",487.65,492.43,483.34,488.52,2144600,488.52],
-["2009-10-02",483.74,491.74,482.60,484.58,2600800,484.58],
-["2009-10-01",493.00,496.47,487.00,487.20,2813200,487.20],
-["2009-09-30",500.00,500.14,487.24,495.85,3141700,495.85],
-["2009-09-29",499.53,499.75,493.01,498.53,2099200,498.53],
-["2009-09-28",494.84,501.50,493.30,498.53,1839300,498.53],
-["2009-09-25",494.29,499.93,492.00,492.48,2049600,492.48],
-["2009-09-24",500.47,501.41,493.00,496.77,2527600,496.77],
-["2009-09-23",500.78,507.00,497.71,498.46,2704200,498.46],
-["2009-09-22",500.92,501.99,497.81,499.06,3041200,499.06],
-["2009-09-21",487.74,498.90,486.22,497.00,2116400,497.00],
-["2009-09-18",496.77,496.98,491.23,491.46,3283500,491.46],
-["2009-09-17",490.57,497.37,487.15,491.72,4483100,491.72],
-["2009-09-16",479.80,489.37,478.48,488.29,2585300,488.29],
-["2009-09-15",475.08,478.91,472.71,477.54,2398100,477.54],
-["2009-09-14",470.51,476.80,470.05,475.12,1975700,475.12],
-["2009-09-11",470.40,473.30,467.63,472.14,1902900,472.14],
-["2009-09-10",466.65,470.94,462.00,470.94,2534600,470.94],
-["2009-09-09",459.06,466.27,458.80,463.97,2195400,463.97],
-["2009-09-08",464.29,466.99,455.84,458.62,2656700,458.62],
-["2009-09-04",457.57,462.60,455.78,461.30,1499200,461.30],
-["2009-09-03",455.82,458.25,455.00,457.52,1646200,457.52],
-["2009-09-02",455.82,458.33,452.59,453.01,1804800,453.01],
-["2009-09-01",459.68,466.82,454.42,455.76,2594900,455.76],
-["2009-08-31",459.79,461.86,458.00,461.67,1957900,461.67],
-["2009-08-28",469.26,472.37,463.38,464.75,1771600,464.75],
-["2009-08-27",468.58,468.58,460.73,466.06,1998900,466.06],
-["2009-08-26",472.76,473.00,466.70,468.00,1987800,468.00],
-["2009-08-25",469.13,474.35,468.72,471.37,2341000,471.37],
-["2009-08-24",467.35,470.09,464.42,468.73,2453400,468.73],
-["2009-08-21",465.54,466.09,462.65,465.24,3560500,465.24],
-["2009-08-20",452.00,462.18,451.23,460.41,3998900,460.41],
-["2009-08-19",439.99,445.00,438.56,443.97,2255000,443.97],
-["2009-08-18",445.10,447.70,442.32,445.28,2351100,445.28],
-["2009-08-17",451.50,451.99,443.12,444.89,2620200,444.89],
-["2009-08-14",462.78,463.18,456.89,460.00,1675100,460.00],
-["2009-08-13",462.15,464.72,458.91,462.28,1995200,462.28],
-["2009-08-12",455.41,461.75,454.92,458.58,2341400,458.58],
-["2009-08-11",453.67,457.23,452.38,453.94,1712500,453.94],
-["2009-08-10",455.14,458.41,453.79,456.61,1742000,456.61],
-["2009-08-07",455.67,459.42,454.99,457.10,2543100,457.10],
-["2009-08-06",454.30,454.88,448.53,450.36,2110900,450.36],
-["2009-08-05",456.00,456.91,447.88,451.14,2342000,451.14],
-["2009-08-04",449.37,454.00,448.43,453.73,2389800,453.73],
-["2009-08-03",448.74,453.90,447.64,452.21,2590300,452.21],
-["2009-07-31",449.98,452.70,442.43,443.05,2860400,443.05],
-["2009-07-30",442.61,451.47,442.61,445.64,3198600,445.64],
-["2009-07-29",437.23,437.80,431.89,436.24,1987000,436.24],
-["2009-07-28",441.00,442.81,436.10,439.85,2532500,439.85],
-["2009-07-27",446.04,446.75,437.61,444.80,2504400,444.80],
-["2009-07-24",435.81,450.49,435.00,446.72,3626900,446.72],
-["2009-07-23",428.68,441.21,425.50,437.34,3478200,437.34],
-["2009-07-22",428.00,430.20,423.50,427.69,2586700,427.69],
-["2009-07-21",430.94,431.90,425.72,427.90,2968200,427.90],
-["2009-07-20",429.88,432.85,426.25,430.17,3153500,430.17],
-["2009-07-17",433.00,435.48,426.70,430.25,6854100,430.25],
-["2009-07-16",436.68,445.75,434.10,442.60,6554500,442.60],
-["2009-07-15",429.66,438.68,428.49,438.17,3777000,438.17],
-["2009-07-14",423.71,426.73,420.87,424.69,2895800,424.69],
-["2009-07-13",416.17,424.52,415.18,424.30,4045700,424.30],
-["2009-07-10",409.58,417.37,408.70,414.40,2926600,414.40],
-["2009-07-09",406.12,414.45,405.80,410.39,3275600,410.39],
-["2009-07-08",400.00,406.00,398.06,402.49,3441200,402.49],
-["2009-07-07",408.24,409.19,395.98,396.63,3259300,396.63],
-["2009-07-06",406.50,410.64,401.66,409.61,2262600,409.61],
-["2009-07-02",415.41,415.41,406.81,408.49,2517600,408.49],
-["2009-07-01",424.20,426.40,418.15,418.99,2310800,418.99],
-["2009-06-30",424.00,427.21,418.22,421.59,2593900,421.59],
-["2009-06-29",426.00,427.80,422.24,424.14,2169300,424.14],
-["2009-06-26",413.68,428.23,413.11,425.32,3256700,425.32],
-["2009-06-25",407.00,415.90,406.51,415.77,3044500,415.77],
-["2009-06-24",408.74,412.23,406.56,409.29,2457800,409.29],
-["2009-06-23",406.65,408.99,402.55,405.68,2899600,405.68],
-["2009-06-22",416.95,417.49,401.89,407.35,4124400,407.35],
-["2009-06-19",418.21,420.46,414.58,420.09,4259100,420.09],
-["2009-06-18",415.68,418.69,413.00,414.06,3085200,414.06],
-["2009-06-17",416.19,419.72,411.56,415.16,3490100,415.16],
-["2009-06-16",419.31,421.09,415.42,416.00,3049700,416.00],
-["2009-06-15",421.50,421.50,414.00,416.77,3736900,416.77],
-["2009-06-12",426.86,427.70,421.21,424.84,2918400,424.84],
-["2009-06-11",431.77,433.73,428.37,429.00,2865200,429.00],
-["2009-06-10",436.23,437.89,426.67,432.60,3358900,432.60],
-["2009-06-09",438.58,440.50,431.76,435.62,3254900,435.62],
-["2009-06-08",439.50,440.92,434.12,438.77,3098700,438.77],
-["2009-06-05",445.07,447.34,439.46,444.32,3680800,444.32],
-["2009-06-04",435.30,441.24,434.50,440.28,3638100,440.28],
-["2009-06-03",426.00,432.46,424.00,431.65,3532800,431.65],
-["2009-06-02",426.25,429.96,423.40,428.40,2623600,428.40],
-["2009-06-01",418.73,429.60,418.53,426.56,3322400,426.56],
-["2009-05-29",412.11,417.23,410.70,417.23,2648200,417.23],
-["2009-05-28",408.68,411.62,404.61,410.40,2668800,410.40],
-["2009-05-27",405.64,411.86,404.81,405.56,3034300,405.56],
-["2009-05-26",391.95,405.00,390.00,404.36,3104500,404.36],
-["2009-05-22",396.66,398.65,392.00,393.50,1718600,393.50],
-["2009-05-21",396.30,402.84,393.84,396.50,2719800,396.50],
-["2009-05-20",402.09,405.67,395.00,397.18,2284000,397.18],
-["2009-05-19",396.10,401.64,393.00,398.88,2837500,398.88],
-["2009-05-18",394.73,397.31,385.40,396.84,3351700,396.84],
-["2009-05-15",391.10,394.11,389.09,390.00,3008700,390.00],
-["2009-05-14",388.80,392.21,384.69,387.50,2937000,387.50],
-["2009-05-13",394.09,396.39,388.35,389.54,2842800,389.54],
-["2009-05-12",410.01,410.99,395.11,399.01,3790800,399.01],
-["2009-05-11",402.80,412.00,401.20,407.98,2559300,407.98],
-["2009-05-08",402.85,410.13,395.00,407.33,3865100,407.33],
-["2009-05-07",404.10,404.99,392.50,396.61,2999800,396.61],
-["2009-05-06",406.79,408.28,401.00,403.47,2632900,403.47],
-["2009-05-05",399.98,405.00,397.25,402.99,2400800,402.99],
-["2009-05-04",398.17,402.40,394.79,401.98,3203000,401.98],
-["2009-05-01",395.03,397.59,391.55,393.69,2427700,393.69],
-["2009-04-30",395.76,403.75,394.80,395.97,4355700,395.97],
-["2009-04-29",385.97,394.97,385.83,391.47,3610000,391.47],
-["2009-04-28",383.75,389.05,381.54,383.71,2943600,383.71],
-["2009-04-27",384.34,389.49,382.75,385.95,2290600,385.95],
-["2009-04-24",386.05,393.18,380.50,389.49,3385400,389.49],
-["2009-04-23",387.51,389.75,381.11,384.69,2609000,384.69],
-["2009-04-22",381.75,390.00,379.01,383.86,3501800,383.86],
-["2009-04-21",376.17,384.30,376.10,381.47,3695400,381.47],
-["2009-04-20",386.15,390.65,375.89,379.30,4428900,379.30],
-["2009-04-17",386.02,399.82,384.81,392.24,10730800,392.24],
-["2009-04-16",381.50,392.90,381.02,388.74,10185100,388.74],
-["2009-04-15",367.10,381.06,364.16,379.50,4930700,379.50],
-["2009-04-14",376.94,376.99,365.60,368.91,3428600,368.91],
-["2009-04-13",371.33,379.10,370.30,378.11,3050100,378.11],
-["2009-04-09",369.50,374.35,366.25,372.50,3382600,372.50],
-["2009-04-08",363.50,365.00,356.21,362.00,2765200,362.00],
-["2009-04-07",362.60,363.75,355.31,358.65,3680100,358.65],
-["2009-04-06",367.00,369.82,361.40,368.24,3280300,368.24],
-["2009-04-03",364.50,371.72,358.00,369.78,3789800,369.78],
-["2009-04-02",363.31,369.76,360.32,362.50,4488000,362.50],
-["2009-04-01",343.78,355.24,340.61,354.09,3301200,354.09],
-["2009-03-31",348.93,353.51,346.18,348.06,3655300,348.06],
-["2009-03-30",342.55,343.81,336.05,342.69,3094100,342.69],
-["2009-03-27",350.00,352.00,345.47,347.70,3322800,347.70],
-["2009-03-26",353.13,359.16,348.50,353.29,6003300,353.29],
-["2009-03-25",350.40,351.34,336.25,344.07,4336300,344.07],
-["2009-03-24",346.50,353.84,344.00,347.17,3820000,347.17],
-["2009-03-23",333.56,349.45,333.03,348.60,4271500,348.60],
-["2009-03-20",330.30,332.99,326.34,330.16,4737900,330.16],
-["2009-03-19",331.68,336.00,327.38,329.94,4111200,329.94],
-["2009-03-18",334.81,340.00,328.05,333.10,5012200,333.10],
-["2009-03-17",320.18,335.34,319.09,335.34,4712500,335.34],
-["2009-03-16",325.99,329.73,318.59,319.69,4946800,319.69],
-["2009-03-13",326.10,327.46,319.03,324.42,3906400,324.42],
-["2009-03-12",317.54,325.00,313.65,323.53,5024100,323.53],
-["2009-03-11",310.10,320.00,305.71,317.91,5923600,317.91],
-["2009-03-10",298.25,310.50,294.25,308.17,6730200,308.17],
-["2009-03-09",299.98,306.57,289.45,290.89,6471300,290.89],
-["2009-03-06",307.22,310.19,294.25,308.57,7234200,308.57],
-["2009-03-05",316.48,319.08,302.64,305.64,6529900,305.64],
-["2009-03-04",323.16,329.00,315.38,318.92,7818400,318.92],
-["2009-03-03",330.07,333.69,322.35,325.48,6524800,325.48],
-["2009-03-02",333.33,340.70,326.00,327.16,5788500,327.16],
-["2009-02-27",332.95,343.82,331.11,337.99,5420000,337.99],
-["2009-02-26",345.96,352.49,337.16,337.18,5605600,337.18],
-["2009-02-25",342.15,352.30,338.92,341.64,6439100,341.64],
-["2009-02-24",331.02,349.62,330.89,345.45,6095900,345.45],
-["2009-02-23",347.00,349.80,329.55,330.06,5221100,330.06],
-["2009-02-20",338.05,348.92,335.00,346.45,6217100,346.45],
-["2009-02-19",357.47,359.80,341.41,342.64,4988700,342.64],
-["2009-02-18",347.24,353.38,340.52,353.11,6024500,353.11],
-["2009-02-17",346.51,347.09,339.69,342.66,5680400,342.66],
-["2009-02-13",362.19,362.99,355.23,357.68,4146700,357.68],
-["2009-02-12",353.16,363.62,351.48,363.05,5550300,363.05],
-["2009-02-11",358.95,365.00,353.00,358.04,5231600,358.04],
-["2009-02-10",375.98,377.50,357.89,358.51,7103700,358.51],
-["2009-02-09",371.28,381.00,367.30,378.77,4977300,378.77],
-["2009-02-06",356.46,373.81,355.44,371.28,7038100,371.28],
-["2009-02-05",340.91,355.38,337.00,353.72,7264400,353.72],
-["2009-02-04",340.07,354.44,339.17,343.00,6817400,343.00],
-["2009-02-03",342.57,343.00,333.83,340.45,6556500,340.45],
-["2009-02-02",334.29,345.00,332.00,340.57,5206900,340.57],
-["2009-01-30",344.69,348.80,336.00,338.53,4672000,338.53],
-["2009-01-29",344.54,345.05,340.11,343.32,7283800,343.32],
-["2009-01-28",337.98,352.33,336.31,348.67,7691400,348.67],
-["2009-01-27",326.45,333.87,324.27,331.48,4927300,331.48],
-["2009-01-26",324.85,328.00,320.56,323.87,4610700,323.87],
-["2009-01-23",309.27,331.96,304.22,324.70,10732800,324.70],
-["2009-01-22",298.04,309.35,295.15,306.50,8267000,306.50],
-["2009-01-21",288.35,303.50,288.35,303.08,4924500,303.08],
-["2009-01-20",299.14,299.50,282.75,282.75,5048200,282.75],
-["2009-01-16",305.02,308.25,295.70,299.67,5224400,299.67],
-["2009-01-15",297.57,303.58,286.79,298.99,5934500,298.99],
-["2009-01-14",310.00,313.80,297.75,300.97,5467900,300.97],
-["2009-01-13",311.77,320.60,310.39,314.32,4432500,314.32],
-["2009-01-12",316.31,318.95,310.23,312.69,3304300,312.69],
-["2009-01-09",327.50,327.50,313.40,315.07,4340500,315.07],
-["2009-01-08",318.28,325.19,317.34,325.19,3600700,325.19],
-["2009-01-07",328.32,330.91,318.75,322.01,4494500,322.01],
-["2009-01-06",332.98,340.80,326.39,334.06,6425200,334.06],
-["2009-01-05",321.00,331.24,315.00,328.05,4889000,328.05],
-["2009-01-02",308.60,321.82,305.50,321.32,3610500,321.32],
-["2008-12-31",304.20,311.00,302.61,307.65,2886800,307.65],
-["2008-12-30",300.80,306.81,298.71,303.11,3843500,303.11],
-["2008-12-29",300.22,301.38,291.58,297.42,3701900,297.42],
-["2008-12-26",304.07,305.26,298.31,300.36,1959100,300.36],
-["2008-12-24",301.48,306.34,298.38,302.95,1921500,302.95],
-["2008-12-23",300.43,303.31,296.67,298.02,3777700,298.02],
-["2008-12-22",308.56,309.50,290.63,297.11,3917600,297.11],
-["2008-12-19",310.99,317.79,309.00,310.17,5612600,310.17],
-["2008-12-18",316.70,320.35,309.11,310.28,4763500,310.28],
-["2008-12-17",318.64,322.13,312.42,315.24,5789700,315.24],
-["2008-12-16",314.52,329.50,311.27,325.28,7059600,325.28],
-["2008-12-15",314.01,318.49,305.11,310.67,6737900,310.67],
-["2008-12-12",295.71,316.47,294.00,315.76,5722100,315.76],
-["2008-12-11",304.17,312.88,297.80,300.22,6179200,300.22],
-["2008-12-10",309.24,314.90,304.51,308.82,5237000,308.82],
-["2008-12-09",297.69,318.00,297.01,305.97,6889900,305.97],
-["2008-12-08",289.99,309.44,282.00,302.11,8144300,302.11],
-["2008-12-05",271.02,284.24,264.02,283.99,6521200,283.99],
-["2008-12-04",276.53,283.49,268.77,274.34,4886600,274.34],
-["2008-12-03",269.85,281.36,265.34,279.43,5904800,279.43],
-["2008-12-02",269.73,277.78,262.58,275.11,5839700,275.11],
-["2008-12-01",286.68,287.38,265.98,265.99,5711200,265.99],
-["2008-11-28",290.58,296.45,288.28,292.96,2565500,292.96],
-["2008-11-26",280.28,295.46,276.20,292.09,6356600,292.09],
-["2008-11-25",268.68,286.66,267.32,282.05,10771200,282.05],
-["2008-11-24",269.26,269.95,249.01,257.44,10054700,257.44],
-["2008-11-21",262.51,269.37,247.30,262.43,10244500,262.43],
-["2008-11-20",274.89,282.94,259.04,259.56,9779400,259.56],
-["2008-11-19",295.39,300.19,278.58,280.18,7834600,280.18],
-["2008-11-18",301.57,303.73,285.35,297.42,8346100,297.42],
-["2008-11-17",303.00,310.16,297.95,300.12,7543800,300.12],
-["2008-11-14",303.25,324.99,302.56,310.02,9517100,310.02],
-["2008-11-13",291.77,313.00,280.00,312.08,13234700,312.08],
-["2008-11-12",302.05,312.49,287.76,291.00,10051100,291.00],
-["2008-11-11",308.69,316.30,300.52,311.46,10146600,311.46],
-["2008-11-10",328.00,329.44,309.47,318.78,8080100,318.78],
-["2008-11-07",333.12,341.15,325.33,331.14,4681300,331.14],
-["2008-11-06",339.97,344.42,325.81,331.22,8574800,331.22],
-["2008-11-05",362.15,368.88,341.31,342.24,6946500,342.24],
-["2008-11-04",353.44,372.36,345.50,366.94,7349900,366.94],
-["2008-11-03",357.58,362.99,341.43,346.49,5954500,346.49],
-["2008-10-31",356.16,371.96,354.27,359.36,7423300,359.36],
-["2008-10-30",368.46,372.00,358.37,359.69,7988900,359.69],
-["2008-10-29",365.79,371.00,352.37,358.00,9756600,358.00],
-["2008-10-28",339.05,369.31,328.51,368.75,8105400,368.75],
-["2008-10-27",334.81,343.00,325.60,329.49,6200700,329.49],
-["2008-10-24",326.47,350.47,324.74,339.29,7359000,339.29],
-["2008-10-23",353.65,358.00,337.99,352.32,6478900,352.32],
-["2008-10-22",356.99,369.69,344.00,355.67,6560000,355.67],
-["2008-10-21",372.39,383.78,362.00,362.75,5782000,362.75],
-["2008-10-20",379.75,380.98,359.59,379.32,6753400,379.32],
-["2008-10-17",378.96,386.00,363.55,372.54,14249200,372.54],
-["2008-10-16",332.76,356.50,309.44,353.02,16239700,353.02],
-["2008-10-15",354.65,359.00,338.83,339.17,6721400,339.17],
-["2008-10-14",393.53,394.50,357.00,362.71,7784800,362.71],
-["2008-10-13",355.79,381.95,345.75,381.02,8905500,381.02],
-["2008-10-10",313.16,341.89,310.30,332.00,10597800,332.00],
-["2008-10-09",344.52,348.57,321.67,328.98,8075000,328.98],
-["2008-10-08",330.16,358.99,326.11,338.11,11826400,338.11],
-["2008-10-07",373.33,374.98,345.37,346.01,11054400,346.01],
-["2008-10-06",373.98,375.99,357.16,371.21,11220600,371.21],
-["2008-10-03",397.35,412.50,383.07,386.91,7992900,386.91],
-["2008-10-02",409.79,409.98,386.00,390.49,5984900,390.49],
-["2008-10-01",411.15,416.98,403.10,411.72,6234800,411.72],
-["2008-09-30",395.98,425.08,392.32,400.52,3086300,400.52],
-["2008-09-29",419.51,423.51,380.71,381.00,10762900,381.00],
-["2008-09-26",428.00,437.16,421.03,431.04,5292500,431.04],
-["2008-09-25",438.84,450.00,435.98,439.60,5020300,439.60],
-["2008-09-24",430.34,445.00,430.11,435.11,4242000,435.11],
-["2008-09-23",433.25,440.79,425.72,429.27,5204200,429.27],
-["2008-09-22",454.13,454.13,429.00,430.14,4407300,430.14],
-["2008-09-19",461.00,462.07,443.28,449.15,10006000,449.15],
-["2008-09-18",422.64,439.18,410.50,439.08,8589400,439.08],
-["2008-09-17",438.48,439.14,413.44,414.49,9126900,414.49],
-["2008-09-16",425.96,449.28,425.49,442.93,6990700,442.93],
-["2008-09-15",424.00,441.97,423.71,433.86,6567400,433.86],
-["2008-09-12",430.21,441.99,429.00,437.66,6028000,437.66],
-["2008-09-11",408.35,435.09,406.38,433.75,6471400,433.75],
-["2008-09-10",424.47,424.48,409.68,414.16,6226800,414.16],
-["2008-09-09",423.17,432.38,415.00,418.66,7229600,418.66],
-["2008-09-08",452.02,452.94,417.55,419.95,9017900,419.95],
-["2008-09-05",445.49,452.46,440.08,444.25,4534300,444.25],
-["2008-09-04",460.00,463.24,449.40,450.26,4848500,450.26],
-["2008-09-03",468.73,474.29,459.58,464.41,4314600,464.41],
-["2008-09-02",476.77,482.18,461.42,465.25,6111500,465.25],
-["2008-08-29",469.75,471.01,462.33,463.29,3848200,463.29],
-["2008-08-28",472.49,476.45,470.33,473.78,3029700,473.78],
-["2008-08-27",473.73,474.83,464.84,468.58,4387100,468.58],
-["2008-08-26",483.46,483.46,470.59,474.16,3308200,474.16],
-["2008-08-25",486.11,497.00,481.50,483.01,2014300,483.01],
-["2008-08-22",491.50,494.88,489.48,490.59,2297200,490.59],
-["2008-08-21",482.92,489.90,479.27,486.53,3514100,486.53],
-["2008-08-20",494.72,496.69,482.57,485.00,3982100,485.00],
-["2008-08-19",490.43,498.28,486.63,490.50,3046500,490.50],
-["2008-08-18",509.84,510.00,495.51,498.30,3333900,498.30],
-["2008-08-15",506.99,510.66,505.50,510.15,3545700,510.15],
-["2008-08-14",497.70,507.61,496.29,505.49,2918600,505.49],
-["2008-08-13",501.60,503.54,493.88,500.03,3625500,500.03],
-["2008-08-12",502.00,506.13,498.00,502.61,2755700,502.61],
-["2008-08-11",492.47,508.88,491.78,500.84,4239300,500.84],
-["2008-08-08",480.15,495.75,475.69,495.01,3739300,495.01],
-["2008-08-07",482.00,484.00,476.41,479.12,2773800,479.12],
-["2008-08-06",478.37,489.77,472.51,486.34,3375800,486.34],
-["2008-08-05",467.59,480.08,466.33,479.85,3584500,479.85],
-["2008-08-04",468.12,473.01,461.90,463.00,2487000,463.00],
-["2008-08-01",472.51,473.22,462.50,467.86,3007900,467.86],
-["2008-07-31",474.56,480.89,471.44,473.75,2865100,473.75],
-["2008-07-30",485.50,486.02,472.81,482.70,3490700,482.70],
-["2008-07-29",479.30,487.26,478.00,483.11,2802800,483.11],
-["2008-07-28",492.09,492.09,475.13,477.12,3160000,477.12],
-["2008-07-25",486.49,493.13,481.50,491.98,3183500,491.98],
-["2008-07-24",496.70,496.87,475.62,475.62,3540900,475.62],
-["2008-07-23",481.61,497.23,478.10,489.22,4894100,489.22],
-["2008-07-22",466.72,480.25,465.60,477.11,4691500,477.11],
-["2008-07-21",480.88,484.09,465.70,468.80,5901500,468.80],
-["2008-07-18",498.35,498.98,478.19,481.32,11292400,481.32],
-["2008-07-17",534.16,537.05,524.50,533.44,8787400,533.44],
-["2008-07-16",514.04,536.50,510.60,535.60,4742200,535.60],
-["2008-07-15",516.28,527.50,501.10,516.09,6071000,516.09],
-["2008-07-14",539.00,540.06,515.45,521.62,4424800,521.62],
-["2008-07-11",536.50,539.50,519.43,533.80,4981400,533.80],
-["2008-07-10",545.00,549.50,530.72,540.57,4331700,540.57],
-["2008-07-09",550.76,555.68,540.73,541.55,4154000,541.55],
-["2008-07-08",545.99,555.19,540.00,554.53,4932400,554.53],
-["2008-07-07",542.30,549.00,535.60,543.91,4255200,543.91],
-["2008-07-03",530.88,539.23,527.50,537.00,2400500,537.00],
-["2008-07-02",536.51,540.38,526.06,527.04,4223000,527.04],
-["2008-07-01",519.58,536.72,517.00,534.73,4959900,534.73],
-["2008-06-30",532.47,538.00,523.06,526.42,3765300,526.42],
-["2008-06-27",527.68,530.00,515.09,528.07,5447500,528.07],
-["2008-06-26",544.10,544.93,528.26,528.82,5659500,528.82],
-["2008-06-25",544.97,557.80,543.67,551.00,4122200,551.00],
-["2008-06-24",545.14,551.19,535.10,542.30,4672600,542.30],
-["2008-06-23",545.36,553.15,542.02,545.21,3635900,545.21],
-["2008-06-20",556.98,556.98,544.51,546.43,5983100,546.43],
-["2008-06-19",555.35,563.78,550.81,560.20,5683100,560.20],
-["2008-06-18",564.51,568.99,559.16,562.38,3381200,562.38],
-["2008-06-17",576.35,578.07,568.38,569.46,3462900,569.46],
-["2008-06-16",566.50,579.10,566.50,572.81,3542800,572.81],
-["2008-06-13",561.49,575.70,561.34,571.51,6184400,571.51],
-["2008-06-12",548.76,558.00,546.88,552.95,5491600,552.95],
-["2008-06-11",556.24,557.34,544.46,545.20,3812900,545.20],
-["2008-06-10",549.56,558.82,546.78,554.17,3657400,554.17],
-["2008-06-09",568.06,570.00,545.40,557.87,5288300,557.87],
-["2008-06-06",579.75,580.72,567.00,567.00,4734500,567.00],
-["2008-06-05",577.08,588.04,576.21,586.30,3916700,586.30],
-["2008-06-04",565.33,578.00,564.55,572.22,3363200,572.22],
-["2008-06-03",576.50,580.50,560.61,567.30,4305300,567.30],
-["2008-06-02",582.50,583.89,571.27,575.00,3674200,575.00],
-["2008-05-30",583.47,589.92,581.30,585.80,3225200,585.80],
-["2008-05-29",574.79,585.88,573.20,583.00,4845000,583.00],
-["2008-05-28",567.94,571.49,561.10,568.24,4050400,568.24],
-["2008-05-27",544.96,562.60,543.85,560.90,3865500,560.90],
-["2008-05-23",546.96,553.00,537.81,544.62,4431500,544.62],
-["2008-05-22",551.95,554.21,540.25,549.46,5076300,549.46],
-["2008-05-21",578.52,581.41,547.89,549.99,6468100,549.99],
-["2008-05-20",574.63,582.48,572.91,578.60,3313600,578.60],
-["2008-05-19",578.55,588.88,573.52,577.52,5604500,577.52],
-["2008-05-16",581.43,584.68,578.32,580.07,4274100,580.07],
-["2008-05-15",579.00,582.95,575.61,581.00,4342700,581.00],
-["2008-05-14",586.49,591.19,575.25,576.30,4375800,576.30],
-["2008-05-13",586.23,587.95,578.55,583.00,5163500,583.00],
-["2008-05-12",574.75,586.75,568.91,584.94,4863900,584.94],
-["2008-05-09",579.00,585.00,571.30,573.20,4484900,573.20],
-["2008-05-08",586.20,589.30,578.91,583.01,5122900,583.01],
-["2008-05-07",590.27,599.49,576.43,579.00,6613000,579.00],
-["2008-05-06",591.00,592.00,583.00,586.36,4629300,586.36],
-["2008-05-05",598.86,599.00,587.13,594.90,6281000,594.90],
-["2008-05-02",598.49,602.45,579.30,581.29,6998800,581.29],
-["2008-05-01",578.31,594.93,576.97,593.08,6602800,593.08],
-["2008-04-30",562.21,584.86,558.47,574.29,7903000,574.29],
-["2008-04-29",550.83,563.40,550.01,558.47,4346000,558.47],
-["2008-04-28",545.88,556.81,539.00,552.12,4008600,552.12],
-["2008-04-25",549.02,553.00,542.73,544.06,4164400,544.06],
-["2008-04-24",551.29,554.49,540.02,543.04,4135100,543.04],
-["2008-04-23",557.94,559.31,540.95,546.49,4921500,546.49],
-["2008-04-22",537.57,560.83,537.56,555.00,7938500,555.00],
-["2008-04-21",539.39,542.59,530.29,537.79,7439700,537.79],
-["2008-04-18",535.21,547.70,524.77,539.41,18235600,539.41],
-["2008-04-17",455.63,459.37,446.52,449.54,13353000,449.54],
-["2008-04-16",444.40,458.28,441.00,455.03,7630700,455.03],
-["2008-04-15",458.13,459.72,443.72,446.84,4577600,446.84],
-["2008-04-14",457.16,457.45,450.15,451.66,3842600,451.66],
-["2008-04-11",464.07,467.26,455.01,457.45,4169700,457.45],
-["2008-04-10",464.96,473.86,461.85,469.08,5072400,469.08],
-["2008-04-09",469.13,472.00,457.54,464.19,6048100,464.19],
-["2008-04-08",473.04,474.14,462.01,467.81,4547000,467.81],
-["2008-04-07",477.03,485.44,473.53,476.82,5943500,476.82],
-["2008-04-04",457.01,477.83,456.20,471.09,5897200,471.09],
-["2008-04-03",461.73,463.29,448.13,455.12,6778400,455.12],
-["2008-04-02",469.90,475.74,460.39,465.70,5999000,465.70],
-["2008-04-01",447.74,466.50,446.87,465.71,6093100,465.71],
-["2008-03-31",435.64,442.69,432.01,440.47,4446400,440.47],
-["2008-03-28",447.46,453.57,434.31,438.08,4376200,438.08],
-["2008-03-27",446.00,448.61,440.49,444.08,5832200,444.08],
-["2008-03-26",452.59,462.87,449.29,458.19,5225700,458.19],
-["2008-03-25",457.46,457.47,446.00,450.78,5831600,450.78],
-["2008-03-24",438.43,465.78,437.72,460.56,6763500,460.56],
-["2008-03-20",427.32,435.70,417.50,433.55,9913400,433.55],
-["2008-03-19",441.11,447.50,431.67,432.00,6179000,432.00],
-["2008-03-18",428.98,440.84,425.53,439.16,7237200,439.16],
-["2008-03-17",427.99,433.71,412.11,419.87,7888200,419.87],
-["2008-03-14",442.98,449.34,430.62,437.92,6574400,437.92],
-["2008-03-13",432.67,446.98,428.78,443.01,7726600,443.01],
-["2008-03-12",440.01,447.88,438.07,440.18,6651900,440.18],
-["2008-03-11",425.26,440.15,424.65,439.84,8826900,439.84],
-["2008-03-10",428.83,431.00,413.04,413.62,7987600,413.62],
-["2008-03-07",428.88,440.00,426.24,433.35,8071800,433.35],
-["2008-03-06",447.69,453.30,431.18,432.70,7470100,432.70],
-["2008-03-05",445.25,454.17,444.00,447.70,7436600,447.70],
-["2008-03-04",450.95,453.36,435.78,444.60,13621700,444.60],
-["2008-03-03",471.51,472.72,450.11,457.02,7554500,457.02],
-["2008-02-29",471.87,479.74,464.65,471.18,9425400,471.18],
-["2008-02-28",470.50,479.09,467.36,475.39,6586900,475.39],
-["2008-02-27",460.13,475.49,459.64,472.86,10121900,472.86],
-["2008-02-26",461.20,466.47,446.85,464.19,23287300,464.19],
-["2008-02-25",505.95,506.50,485.74,486.44,8372800,486.44],
-["2008-02-22",502.06,509.00,497.55,507.80,5515900,507.80],
-["2008-02-21",512.85,513.21,499.50,502.86,5677800,502.86],
-["2008-02-20",503.51,511.01,498.82,509.00,6662200,509.00],
-["2008-02-19",534.94,535.06,506.50,508.95,6350400,508.95],
-["2008-02-15",528.31,532.66,524.33,529.64,5240100,529.64],
-["2008-02-14",538.35,541.04,531.00,532.25,6476700,532.25],
-["2008-02-13",522.50,534.99,518.69,534.62,6624700,534.62],
-["2008-02-12",523.39,530.60,513.03,518.09,6662300,518.09],
-["2008-02-11",520.52,523.71,513.40,521.16,5826000,521.16],
-["2008-02-08",509.41,517.73,508.70,516.69,6828900,516.69],
-["2008-02-07",496.86,514.19,494.76,504.95,7928900,504.95],
-["2008-02-06",511.14,511.17,497.93,501.71,7636400,501.71],
-["2008-02-05",489.43,509.00,488.52,506.80,11203300,506.80],
-["2008-02-04",509.07,512.78,492.55,495.43,13157100,495.43],
-["2008-02-01",528.67,536.67,510.00,515.90,17600500,515.90],
-["2008-01-31",539.01,573.00,534.29,564.30,14871300,564.30],
-["2008-01-30",549.19,560.43,543.51,548.27,7939600,548.27],
-["2008-01-29",560.47,561.33,540.67,550.52,6283000,550.52],
-["2008-01-28",570.97,572.24,548.60,555.98,5816700,555.98],
-["2008-01-25",591.81,595.00,566.18,566.40,6966000,566.40],
-["2008-01-24",558.80,579.69,554.14,574.49,9400900,574.49],
-["2008-01-23",560.71,568.00,519.00,548.62,16965700,548.62],
-["2008-01-22",562.03,597.50,561.20,584.35,9501500,584.35],
-["2008-01-18",608.36,609.99,598.45,600.25,8539600,600.25],
-["2008-01-17",620.76,625.74,598.01,600.79,8216800,600.79],
-["2008-01-16",628.97,639.99,601.93,615.95,10560000,615.95],
-["2008-01-15",645.90,649.05,635.38,637.65,5568200,637.65],
-["2008-01-14",651.14,657.40,645.25,653.82,4447500,653.82],
-["2008-01-11",642.70,649.47,630.11,638.25,4977000,638.25],
-["2008-01-10",645.01,657.20,640.11,646.73,6334200,646.73],
-["2008-01-09",630.04,653.34,622.51,653.20,6739700,653.20],
-["2008-01-08",653.00,659.96,631.00,631.68,5339100,631.68],
-["2008-01-07",653.94,662.28,637.35,649.25,6403400,649.25],
-["2008-01-04",679.69,680.96,655.00,657.00,5359800,657.00],
-["2008-01-03",685.26,686.85,676.52,685.33,3252500,685.33],
-["2008-01-02",692.87,697.37,677.73,685.19,4306900,685.19],
-["2007-12-31",698.57,702.49,690.58,691.48,2376200,691.48],
-["2007-12-28",704.93,707.95,696.54,702.53,2562700,702.53],
-["2007-12-27",707.07,716.00,700.74,700.74,2942500,700.74],
-["2007-12-26",698.99,713.22,698.21,710.84,2530000,710.84],
-["2007-12-24",694.99,700.73,693.06,700.73,1628400,700.73],
-["2007-12-21",697.88,699.26,693.24,696.69,5382000,696.69],
-["2007-12-20",685.83,691.00,680.61,689.69,4422200,689.69],
-["2007-12-19",674.21,679.50,669.00,677.37,4421100,677.37],
-["2007-12-18",674.16,676.71,652.50,673.35,7166700,673.35],
-["2007-12-17",688.00,695.42,663.67,669.23,5486000,669.23],
-["2007-12-14",687.51,699.70,687.26,689.96,3673500,689.96],
-["2007-12-13",696.31,697.62,681.21,694.05,5040800,694.05],
-["2007-12-12",714.00,714.32,688.50,699.35,6159100,699.35],
-["2007-12-11",719.94,720.99,698.78,699.20,6139100,699.20],
-["2007-12-10",715.99,724.80,714.00,718.42,3856200,718.42],
-["2007-12-07",714.99,718.00,710.50,714.87,3852100,714.87],
-["2007-12-06",697.80,716.56,697.01,715.26,4909000,715.26],
-["2007-12-05",692.73,698.93,687.50,698.51,4209600,698.51],
-["2007-12-04",678.31,692.00,677.12,684.16,4231800,684.16],
-["2007-12-03",691.01,695.00,681.14,681.53,4325100,681.53],
-["2007-11-30",711.00,711.06,682.11,693.00,7895500,693.00],
-["2007-11-29",690.75,702.79,687.77,697.00,6208000,697.00],
-["2007-11-28",682.11,694.30,672.14,692.26,7916500,692.26],
-["2007-11-27",674.80,676.43,650.26,673.57,8904500,673.57],
-["2007-11-26",680.20,693.40,665.00,666.00,6790100,666.00],
-["2007-11-23",670.00,678.28,668.11,676.70,2738700,676.70],
-["2007-11-21",643.77,669.97,642.08,660.52,7013500,660.52],
-["2007-11-20",636.48,659.10,632.87,648.54,9840600,648.54],
-["2007-11-19",629.59,636.77,618.50,625.85,5527400,625.85],
-["2007-11-16",633.94,635.49,616.02,633.63,9042800,633.63],
-["2007-11-15",638.57,647.50,624.00,629.65,6967700,629.65],
-["2007-11-14",673.28,675.49,636.27,641.68,8094700,641.68],
-["2007-11-13",644.99,660.92,632.07,660.55,8426100,660.55],
-["2007-11-12",657.74,669.93,626.21,632.07,10227300,632.07],
-["2007-11-09",675.78,681.88,661.21,663.97,11388100,663.97],
-["2007-11-08",734.60,734.89,677.18,693.84,16512200,693.84],
-["2007-11-07",741.13,747.24,723.14,732.94,8252900,732.94],
-["2007-11-06",737.56,741.79,725.00,741.79,8436300,741.79],
-["2007-11-05",706.99,730.23,706.07,725.65,8883700,725.65],
-["2007-11-02",710.51,713.58,697.34,711.25,5841500,711.25],
-["2007-11-01",702.79,713.72,701.78,703.21,6527200,703.21],
-["2007-10-31",700.69,707.00,696.04,707.00,6876800,707.00],
-["2007-10-30",677.51,699.91,677.51,694.77,6900600,694.77],
-["2007-10-29",677.77,680.00,672.09,679.23,3066300,679.23],
-["2007-10-26",674.03,676.54,668.06,674.60,3353900,674.60],
-["2007-10-25",678.68,678.97,663.55,668.51,5795500,668.51],
-["2007-10-24",672.71,677.47,659.56,675.82,7404200,675.82],
-["2007-10-23",661.25,677.60,660.00,675.77,6793700,675.77],
-["2007-10-22",638.67,655.00,636.28,650.75,6664400,650.75],
-["2007-10-19",654.56,658.49,643.23,644.71,15789000,644.71],
-["2007-10-18",635.41,641.37,628.50,639.62,12289200,639.62],
-["2007-10-17",630.45,634.00,621.59,633.48,6030500,633.48],
-["2007-10-16",618.49,625.92,611.99,616.00,6025300,616.00],
-["2007-10-15",638.47,639.86,615.55,620.11,6943800,620.11],
-["2007-10-12",623.98,638.40,618.24,637.39,6823700,637.39],
-["2007-10-11",633.64,641.41,609.00,622.00,11799000,622.00],
-["2007-10-10",621.36,625.68,616.80,625.39,5385600,625.39],
-["2007-10-09",615.11,623.78,608.39,615.18,8767800,615.18],
-["2007-10-08",595.00,610.26,593.95,609.62,5028000,609.62],
-["2007-10-05",587.11,596.00,587.01,594.05,5068700,594.05],
-["2007-10-04",585.09,585.09,577.06,579.03,2986700,579.03],
-["2007-10-03",586.25,588.99,580.36,584.02,3879500,584.02],
-["2007-10-02",583.38,596.81,580.01,584.39,7067500,584.39],
-["2007-10-01",569.97,584.35,569.61,582.55,4711300,582.55],
-["2007-09-28",567.00,569.55,564.12,567.27,2639500,567.27],
-["2007-09-27",571.73,571.74,565.78,567.50,2056300,567.50],
-["2007-09-26",570.40,571.79,563.81,568.16,3346100,568.16],
-["2007-09-25",564.00,569.56,562.86,569.00,2730600,569.00],
-["2007-09-24",561.00,571.46,560.00,568.02,5297000,568.02],
-["2007-09-21",556.34,560.79,552.83,560.10,8011700,560.10],
-["2007-09-20",547.00,556.80,546.03,552.83,5525000,552.83],
-["2007-09-19",539.27,549.45,538.86,546.85,5526900,546.85],
-["2007-09-18",526.52,537.25,524.27,535.27,4215700,535.27],
-["2007-09-17",526.53,529.28,524.07,525.30,2197500,525.30],
-["2007-09-14",523.20,530.27,522.22,528.75,2764900,528.75],
-["2007-09-13",524.06,527.21,523.22,524.78,1891100,524.78],
-["2007-09-12",520.53,527.98,519.00,522.65,2986000,522.65],
-["2007-09-11",516.99,521.65,515.73,521.33,2703600,521.33],
-["2007-09-10",521.28,522.07,510.88,514.48,3225800,514.48],
-["2007-09-07",517.86,521.24,516.80,519.35,3663600,519.35],
-["2007-09-06",529.36,529.83,518.24,523.52,3625900,523.52],
-["2007-09-05",523.40,529.48,522.25,527.80,3312900,527.80],
-["2007-09-04",515.02,528.00,514.62,525.15,3693700,525.15],
-["2007-08-31",513.10,516.50,511.47,515.25,2977600,515.25],
-["2007-08-30",512.36,515.40,510.58,511.40,2651700,511.40],
-["2007-08-29",507.84,513.30,507.23,512.88,2549300,512.88],
-["2007-08-28",511.53,514.98,505.79,506.40,3273900,506.40],
-["2007-08-27",514.43,517.45,511.40,513.26,2325100,513.26],
-["2007-08-24",512.61,515.55,508.50,515.00,2472700,515.00],
-["2007-08-23",516.00,516.13,507.00,512.19,3076700,512.19],
-["2007-08-22",509.96,516.25,509.25,512.75,3252700,512.75],
-["2007-08-21",498.94,508.16,497.77,506.61,3610600,506.61],
-["2007-08-20",502.46,502.56,496.00,497.92,2697300,497.92],
-["2007-08-17",497.44,501.00,491.65,500.04,5479400,500.04],
-["2007-08-16",492.02,496.43,480.46,491.52,8645600,491.52],
-["2007-08-15",509.00,511.69,496.71,497.55,5409500,497.55],
-["2007-08-14",515.72,517.40,508.00,508.60,3633700,508.60],
-["2007-08-13",519.54,519.75,513.03,515.50,3179300,515.50],
-["2007-08-10",510.18,518.72,505.63,515.75,5875200,515.75],
-["2007-08-09",520.80,526.82,514.63,514.73,4846500,514.73],
-["2007-08-08",519.34,525.78,517.09,525.78,4068800,525.78],
-["2007-08-07",509.75,519.88,509.04,516.02,4264300,516.02],
-["2007-08-06",503.00,510.15,502.50,510.00,3651500,510.00],
-["2007-08-03",510.05,513.20,503.00,503.00,3176200,503.00],
-["2007-08-02",513.72,514.99,509.00,511.01,3154900,511.01],
-["2007-08-01",510.50,516.51,508.14,512.94,4421500,512.94],
-["2007-07-31",520.23,520.44,510.00,510.00,4270500,510.00],
-["2007-07-30",512.92,519.34,510.50,516.11,3963300,516.11],
-["2007-07-27",508.53,516.62,505.50,511.89,5509100,511.89],
-["2007-07-26",508.74,512.59,498.88,508.00,6883400,508.00],
-["2007-07-25",516.98,517.02,505.56,509.76,5545000,509.76],
-["2007-07-24",509.30,518.69,507.11,514.00,5572100,514.00],
-["2007-07-23",519.01,520.00,512.15,512.51,6356700,512.51],
-["2007-07-20",511.90,523.18,509.50,520.12,17772300,520.12],
-["2007-07-19",553.46,553.52,542.24,548.59,11127200,548.59],
-["2007-07-18",553.89,554.50,543.81,549.50,6080000,549.50],
-["2007-07-17",555.04,557.73,552.38,555.00,4328600,555.00],
-["2007-07-16",550.30,558.58,549.31,552.99,6599500,552.99],
-["2007-07-13",547.91,552.67,547.25,552.16,5237100,552.16],
-["2007-07-12",545.86,547.32,540.22,545.33,3441600,545.33],
-["2007-07-11",543.61,546.50,540.01,544.47,3309300,544.47],
-["2007-07-10",543.79,547.00,541.65,543.34,3856000,543.34],
-["2007-07-09",543.00,548.74,540.26,542.56,3729800,542.56],
-["2007-07-06",541.25,543.87,538.73,539.40,2747000,539.40],
-["2007-07-05",535.56,544.40,532.15,541.63,4942900,541.63],
-["2007-07-03",531.06,534.40,527.50,534.34,1871800,534.34],
-["2007-07-02",525.49,531.85,524.20,530.38,3487600,530.38],
-["2007-06-29",526.02,527.40,519.46,522.70,3880600,522.70],
-["2007-06-28",524.88,529.50,523.80,525.01,4168400,525.01],
-["2007-06-27",525.00,527.99,519.56,526.29,6123100,526.29],
-["2007-06-26",532.73,533.20,526.24,530.26,5689500,530.26],
-["2007-06-25",528.98,534.99,523.38,527.42,7925000,527.42],
-["2007-06-22",516.42,524.99,516.10,524.98,7203700,524.98],
-["2007-06-21",510.98,515.29,506.28,514.11,4409700,514.11],
-["2007-06-20",516.96,518.75,509.06,509.97,4338200,509.97],
-["2007-06-19",514.01,517.25,511.54,514.31,4355300,514.31],
-["2007-06-18",506.18,516.00,504.24,515.20,4835900,515.20],
-["2007-06-15",508.19,509.00,501.23,505.89,6174100,505.89],
-["2007-06-14",505.38,505.88,501.70,502.84,4621200,502.84],
-["2007-06-13",507.09,508.54,498.69,505.24,7034000,505.24],
-["2007-06-12",508.71,511.67,503.17,504.77,6419500,504.77],
-["2007-06-11",514.02,518.25,510.00,511.34,4647700,511.34],
-["2007-06-08",516.20,519.64,509.46,515.49,6358200,515.49],
-["2007-06-07",519.75,526.50,512.51,515.06,10630500,515.06],
-["2007-06-06",516.75,520.78,515.26,518.25,7886700,518.25],
-["2007-06-05",509.75,519.00,506.61,518.84,10447100,518.84],
-["2007-06-04",497.91,510.51,497.59,507.07,7101000,507.07],
-["2007-06-01",501.00,505.02,497.93,500.40,4799000,500.40],
-["2007-05-31",500.56,508.78,497.06,497.91,8924300,497.91],
-["2007-05-30",484.50,498.84,483.00,498.60,7245800,498.60],
-["2007-05-29",485.00,491.80,484.00,487.11,5218000,487.11],
-["2007-05-25",479.70,484.95,477.27,483.52,5348500,483.52],
-["2007-05-24",475.15,479.20,471.50,474.33,4173600,474.33],
-["2007-05-23",480.82,483.41,473.75,473.97,5060200,473.97],
-["2007-05-22",473.00,479.01,473.00,475.86,3839000,475.86],
-["2007-05-21",469.53,479.20,466.72,470.60,6159300,470.60],
-["2007-05-18",472.03,472.70,469.75,470.32,3695900,470.32],
-["2007-05-17",472.46,475.22,470.81,470.96,4660600,470.96],
-["2007-05-16",462.00,473.14,459.02,472.61,6554200,472.61],
-["2007-05-15",461.96,462.54,457.41,458.00,4119000,458.00],
-["2007-05-14",465.48,467.51,460.00,461.78,3872700,461.78],
-["2007-05-11",461.83,467.00,461.00,466.74,2944100,466.74],
-["2007-05-10",467.04,469.49,461.02,461.47,3686300,461.47],
-["2007-05-09",466.15,471.73,463.88,469.25,3889900,469.25],
-["2007-05-08",466.13,468.17,464.73,466.81,2905100,466.81],
-["2007-05-07",472.14,472.82,466.47,467.27,3020100,467.27],
-["2007-05-04",470.12,474.84,465.88,471.12,3950000,471.12],
-["2007-05-03",466.22,474.07,465.29,473.23,3594200,473.23],
-["2007-05-02",468.65,471.08,465.73,465.78,3062700,465.78],
-["2007-05-01",472.19,472.81,464.17,469.00,3658200,469.00],
-["2007-04-30",479.15,481.35,471.38,471.38,3641200,471.38],
-["2007-04-27",480.07,482.40,478.33,479.01,2925700,479.01],
-["2007-04-26",478.10,484.45,477.11,481.18,4124900,481.18],
-["2007-04-25",480.00,481.37,476.11,477.99,3966800,477.99],
-["2007-04-24",478.61,479.98,475.55,477.53,3694700,477.53],
-["2007-04-23",480.10,485.00,478.26,479.08,5674600,479.08],
-["2007-04-20",490.52,492.50,482.02,482.48,12161500,482.48],
-["2007-04-19",474.50,481.95,469.59,471.65,11009600,471.65],
-["2007-04-18",471.26,479.90,469.53,476.01,5670500,476.01],
-["2007-04-17",473.80,476.39,471.60,472.80,3210100,472.80],
-["2007-04-16",468.46,476.99,468.15,474.27,5077900,474.27],
-["2007-04-13",468.45,468.77,463.36,466.29,2794800,466.29],
-["2007-04-12",464.00,468.00,462.24,467.39,2707900,467.39],
-["2007-04-11",466.06,469.40,462.61,464.53,3812000,464.53],
-["2007-04-10",467.09,470.79,465.16,466.50,2979300,466.50],
-["2007-04-09",472.98,473.00,465.59,468.21,3062100,468.21],
-["2007-04-05",471.30,472.09,469.62,471.51,2715800,471.51],
-["2007-04-04",472.14,473.00,469.58,471.02,3778800,471.02],
-["2007-04-03",464.05,474.25,464.00,472.60,6501800,472.60],
-["2007-04-02",457.76,458.53,452.12,458.53,3448500,458.53],
-["2007-03-30",462.10,463.40,456.14,458.16,3380200,458.16],
-["2007-03-29",464.55,466.00,455.00,460.92,3988500,460.92],
-["2007-03-28",461.87,465.44,460.15,461.88,4591600,461.88],
-["2007-03-27",463.55,465.23,460.34,463.62,3741200,463.62],
-["2007-03-26",460.55,465.00,455.62,465.00,4710300,465.00],
-["2007-03-23",461.45,463.39,457.08,461.83,4111300,461.83],
-["2007-03-22",455.61,462.17,452.53,462.04,5680700,462.04],
-["2007-03-21",445.30,456.57,445.21,456.55,5798300,456.55],
-["2007-03-20",445.79,447.60,443.60,445.28,3421500,445.28],
-["2007-03-19",443.25,448.50,440.63,447.23,5197700,447.23],
-["2007-03-16",445.65,446.70,439.89,440.85,5659100,440.85],
-["2007-03-15",447.86,449.82,443.94,446.19,3944200,446.19],
-["2007-03-14",443.23,448.66,439.00,448.00,8016900,448.00],
-["2007-03-13",450.11,451.93,442.83,443.03,6377300,443.03],
-["2007-03-12",452.57,455.25,451.11,454.75,3465400,454.75],
-["2007-03-09",458.00,458.40,450.10,452.96,4977700,452.96],
-["2007-03-08",459.22,465.50,454.10,454.72,5362800,454.72],
-["2007-03-07",462.69,463.14,454.29,455.64,6534100,455.64],
-["2007-03-06",447.47,459.00,447.38,457.55,7533700,457.55],
-["2007-03-05",437.02,445.50,437.00,440.95,6355100,440.95],
-["2007-03-02",445.11,448.70,438.68,438.68,6583600,438.68],
-["2007-03-01",442.67,452.42,440.00,448.23,8685200,448.23],
-["2007-02-28",450.41,453.67,443.04,449.45,8032300,449.45],
-["2007-02-27",455.00,459.80,447.17,448.77,9312800,448.77],
-["2007-02-26",472.83,475.25,463.75,464.93,3969900,464.93],
-["2007-02-23",475.75,476.95,467.80,470.62,3882600,470.62],
-["2007-02-22",478.69,484.24,474.39,475.85,5743900,475.85],
-["2007-02-21",469.84,478.68,467.74,475.86,5640600,475.86],
-["2007-02-20",468.47,472.75,464.71,472.10,4067600,472.10],
-["2007-02-16",462.80,470.15,462.06,469.94,6177000,469.94],
-["2007-02-15",466.00,466.13,460.72,461.47,4042400,461.47],
-["2007-02-14",460.00,469.13,459.22,465.93,5698800,465.93],
-["2007-02-13",459.15,462.78,457.26,459.10,4062600,459.10],
-["2007-02-12",460.68,462.39,455.02,458.29,5754500,458.29],
-["2007-02-09",471.65,472.68,461.50,461.89,4858600,461.89],
-["2007-02-08",468.05,473.75,465.15,471.03,4076700,471.03],
-["2007-02-07",473.82,474.35,468.78,470.01,4119800,470.01],
-["2007-02-06",468.10,473.30,467.26,471.48,5321900,471.48],
-["2007-02-05",477.50,478.00,466.19,467.16,7206900,467.16],
-["2007-02-02",482.61,485.00,477.81,481.50,6286500,481.50],
-["2007-02-01",506.00,506.01,481.53,481.75,15658700,481.75],
-["2007-01-31",496.49,505.00,495.51,501.50,12206100,501.50],
-["2007-01-30",494.00,498.00,491.22,494.32,4180500,494.32],
-["2007-01-29",498.00,498.75,490.50,492.47,4775700,492.47],
-["2007-01-26",490.93,497.90,487.03,495.84,5496500,495.84],
-["2007-01-25",501.00,504.50,485.66,488.09,6368500,488.09],
-["2007-01-24",484.45,499.54,483.29,499.07,6059300,499.07],
-["2007-01-23",480.79,484.75,477.29,479.05,4665500,479.05],
-["2007-01-22",492.50,492.65,478.50,480.84,5404300,480.84],
-["2007-01-19",487.98,490.76,486.74,489.75,4978300,489.75],
-["2007-01-18",494.52,496.48,487.43,487.83,5932000,487.83],
-["2007-01-17",503.39,507.77,494.38,497.28,6699100,497.28],
-["2007-01-16",507.55,513.00,503.30,504.28,7568900,504.28],
-["2007-01-12",501.99,505.00,500.00,505.00,4473700,505.00],
-["2007-01-11",497.20,501.75,496.18,499.72,7208200,499.72],
-["2007-01-10",484.43,493.55,482.04,489.46,5968500,489.46],
-["2007-01-09",485.45,488.25,481.20,485.50,5381400,485.50],
-["2007-01-08",487.69,489.87,482.20,483.58,4754400,483.58],
-["2007-01-05",482.50,487.50,478.11,487.19,6872100,487.19],
-["2007-01-04",469.00,483.95,468.35,483.26,7887600,483.26],
-["2007-01-03",466.00,476.66,461.11,467.59,7706500,467.59],
-["2006-12-29",462.10,464.47,459.86,460.48,2559200,460.48],
-["2006-12-28",467.12,468.58,462.25,462.56,3116200,462.56],
-["2006-12-27",460.00,468.08,459.10,468.03,4231500,468.03],
-["2006-12-26",456.52,459.47,454.59,457.53,2074300,457.53],
-["2006-12-22",457.50,458.64,452.73,455.58,3988300,455.58],
-["2006-12-21",464.18,465.25,452.34,456.20,6953300,456.20],
-["2006-12-20",470.00,471.50,462.33,462.90,4367800,462.90],
-["2006-12-19",461.72,469.31,458.50,468.63,6587000,468.63],
-["2006-12-18",482.51,482.74,460.72,462.80,8016600,462.80],
-["2006-12-15",482.64,484.11,479.84,480.30,5190800,480.30],
-["2006-12-14",480.25,483.75,477.26,482.12,4748900,482.12],
-["2006-12-13",484.69,485.50,477.02,478.99,4662100,478.99],
-["2006-12-12",483.85,486.36,480.28,481.78,4181000,481.78],
-["2006-12-11",484.92,488.90,483.80,483.93,3263400,483.93],
-["2006-12-08",481.94,488.60,480.00,484.11,3974900,484.11],
-["2006-12-07",490.23,491.80,482.42,482.64,4664300,482.64],
-["2006-12-06",486.96,492.40,484.52,488.71,4450300,488.71],
-["2006-12-05",487.40,489.44,484.89,487.00,4103000,487.00],
-["2006-12-04",483.00,487.43,479.35,484.85,4899900,484.85],
-["2006-12-01",485.98,488.39,478.50,480.80,5631400,480.80],
-["2006-11-30",484.19,490.40,481.55,484.81,5577500,484.81],
-["2006-11-29",494.24,494.74,482.25,484.65,6315300,484.65],
-["2006-11-28",481.13,489.86,477.03,489.50,7797600,489.50],
-["2006-11-27",501.37,501.78,484.75,484.75,7324700,484.75],
-["2006-11-24",504.50,507.50,504.00,505.00,1732700,505.00],
-["2006-11-22",510.97,513.00,505.78,508.01,4500700,508.01],
-["2006-11-21",496.54,510.00,495.83,509.65,8427500,509.65],
-["2006-11-20",498.40,498.40,492.65,495.05,5124500,495.05],
-["2006-11-17",493.25,499.66,493.00,498.79,5511000,498.79],
-["2006-11-16",495.00,497.68,492.56,495.90,5092600,495.90],
-["2006-11-15",493.43,499.85,491.93,491.93,8370700,491.93],
-["2006-11-14",480.70,489.95,480.50,489.30,7223400,489.30],
-["2006-11-13",474.90,481.17,474.14,481.03,4341900,481.03],
-["2006-11-10",473.78,474.72,470.29,473.55,2796700,473.55],
-["2006-11-09",476.50,479.49,471.86,472.63,4879200,472.63],
-["2006-11-08",470.35,481.74,468.60,475.00,7965000,475.00],
-["2006-11-07",476.95,479.02,471.77,472.57,4897100,472.57],
-["2006-11-06",473.77,479.66,472.33,476.95,4991500,476.95],
-["2006-11-03",472.23,473.75,465.06,471.80,4907700,471.80],
-["2006-11-02",467.50,473.73,466.38,469.91,5236700,469.91],
-["2006-11-01",478.76,479.13,465.26,467.50,5426300,467.50],
-["2006-10-31",478.06,482.16,473.84,476.39,6285400,476.39],
-["2006-10-30",474.82,480.46,470.01,476.57,6563100,476.57],
-["2006-10-27",483.90,485.24,472.49,475.20,6604000,475.20],
-["2006-10-26",487.68,491.96,484.20,485.10,7031700,485.10],
-["2006-10-25",477.49,488.50,475.11,486.60,9187500,486.60],
-["2006-10-24",476.28,477.86,471.41,473.31,8660200,473.31],
-["2006-10-23",462.28,484.64,460.37,480.78,15104500,480.78],
-["2006-10-20",458.99,460.10,453.59,459.67,11647900,459.67],
-["2006-10-19",420.23,429.50,419.57,426.06,11503500,426.06],
-["2006-10-18",422.99,424.75,417.50,419.31,6017300,419.31],
-["2006-10-17",420.30,423.75,416.70,420.64,5211000,420.64],
-["2006-10-16",427.70,429.20,421.34,421.75,4319400,421.75],
-["2006-10-13",427.76,429.50,425.56,427.30,3622500,427.30],
-["2006-10-12",428.56,429.68,424.00,427.44,4844000,427.44],
-["2006-10-11",425.02,429.91,423.76,426.50,5635400,426.50],
-["2006-10-10",431.56,437.85,422.39,426.65,9788600,426.65],
-["2006-10-09",424.80,431.95,423.42,429.00,7583300,429.00],
-["2006-10-06",410.22,421.91,409.75,420.50,7336500,420.50],
-["2006-10-05",414.70,418.24,410.86,411.81,5789800,411.81],
-["2006-10-04",404.97,415.77,403.05,415.70,6661800,415.70],
-["2006-10-03",401.29,406.46,398.19,404.04,5464700,404.04],
-["2006-10-02",401.90,406.00,400.80,401.44,3651900,401.44],
-["2006-09-29",405.13,405.62,401.41,401.90,3310900,401.90],
-["2006-09-28",404.08,406.98,400.54,403.58,5107400,403.58],
-["2006-09-27",406.30,411.22,402.37,402.92,5876700,402.92],
-["2006-09-26",405.50,407.68,401.77,406.87,5289400,406.87],
-["2006-09-25",405.58,409.45,402.50,403.98,5737300,403.98],
-["2006-09-22",404.98,407.45,401.36,403.78,4649600,403.78],
-["2006-09-21",400.30,408.45,399.86,406.85,10692100,406.85],
-["2006-09-20",407.10,407.39,394.62,397.00,9147800,397.00],
-["2006-09-19",415.46,415.49,392.74,403.81,14292900,403.81],
-["2006-09-18",410.00,418.69,409.47,414.69,7106700,414.69],
-["2006-09-15",407.48,410.05,406.74,409.88,7838200,409.88],
-["2006-09-14",404.30,406.28,401.93,403.98,5366100,403.98],
-["2006-09-13",395.15,406.76,395.10,406.57,9768200,406.57],
-["2006-09-12",385.00,392.73,384.88,391.90,5442200,391.90],
-["2006-09-11",378.26,384.69,377.77,384.09,4529200,384.09],
-["2006-09-08",376.72,380.79,376.72,377.85,3083400,377.85],
-["2006-09-07",379.39,381.75,377.40,378.49,3842000,378.49],
-["2006-09-06",382.10,383.19,379.66,380.14,3724100,380.14],
-["2006-09-05",379.87,385.40,377.44,384.36,4074300,384.36],
-["2006-09-01",380.99,381.28,377.19,378.60,2672900,378.60],
-["2006-08-31",381.49,382.15,378.20,378.53,2959900,378.53],
-["2006-08-30",379.21,384.65,378.51,380.75,4044400,380.75],
-["2006-08-29",380.78,382.32,377.20,378.95,4460000,378.95],
-["2006-08-28",375.61,380.95,375.00,380.95,4164000,380.95],
-["2006-08-25",373.08,375.32,372.50,373.26,2466700,373.26],
-["2006-08-24",374.44,376.40,372.26,373.73,3482500,373.73],
-["2006-08-23",377.64,378.27,372.66,373.43,3642300,373.43],
-["2006-08-22",377.73,379.26,374.84,378.29,4164100,378.29],
-["2006-08-21",378.10,379.00,375.22,377.30,4023300,377.30],
-["2006-08-18",386.31,387.09,380.75,383.36,4952200,383.36],
-["2006-08-17",386.39,390.00,383.92,385.80,5080200,385.80],
-["2006-08-16",383.48,388.45,382.12,387.72,5853200,387.72],
-["2006-08-15",374.11,381.67,372.60,380.97,6698200,380.97],
-["2006-08-14",371.50,375.13,368.67,369.43,4968300,369.43],
-["2006-08-11",374.40,375.28,368.00,368.50,3766500,368.50],
-["2006-08-10",373.88,377.67,372.46,374.20,4261900,374.20],
-["2006-08-09",382.80,384.68,376.36,376.94,4311000,376.94],
-["2006-08-08",382.82,384.50,379.09,381.00,5743200,381.00],
-["2006-08-07",371.50,379.73,371.15,377.95,3946900,377.95],
-["2006-08-04",379.56,380.68,371.75,373.85,5095200,373.85],
-["2006-08-03",364.98,377.91,363.36,375.39,6327000,375.39],
-["2006-08-02",375.60,377.17,365.20,367.23,7097800,367.23],
-["2006-08-01",385.11,385.77,375.51,375.51,5463200,375.51],
-["2006-07-31",388.00,389.17,383.31,386.60,4595300,386.60],
-["2006-07-28",382.00,389.56,381.73,388.12,4083600,388.12],
-["2006-07-27",387.37,387.49,377.95,382.40,5641100,382.40],
-["2006-07-26",388.20,391.91,383.00,385.50,5531900,385.50],
-["2006-07-25",385.02,391.31,383.80,389.36,5761100,389.36],
-["2006-07-24",392.82,393.89,381.21,390.90,8086100,390.90],
-["2006-07-21",386.14,391.75,377.69,390.11,11754600,390.11],
-["2006-07-20",404.28,404.44,385.66,387.12,12538700,387.12],
-["2006-07-19",395.01,401.14,394.66,399.00,8518500,399.00],
-["2006-07-18",409.75,410.57,397.74,403.05,8536800,403.05],
-["2006-07-17",404.63,411.00,403.72,407.89,5811900,407.89],
-["2006-07-14",410.33,411.49,398.61,403.50,7552100,403.50],
-["2006-07-13",414.00,418.34,406.83,408.83,6924500,408.83],
-["2006-07-12",422.09,422.74,416.73,417.25,4906700,417.25],
-["2006-07-11",418.51,425.05,413.03,424.56,5971300,424.56],
-["2006-07-10",423.44,425.23,416.38,418.20,4436400,418.20],
-["2006-07-07",426.05,427.89,415.88,420.45,6041900,420.45],
-["2006-07-06",423.38,425.38,421.98,423.19,3687100,423.19],
-["2006-07-05",421.52,422.80,415.64,421.46,4985600,421.46],
-["2006-07-03",420.04,423.77,419.45,423.20,2156700,423.20],
-["2006-06-30",415.60,419.33,412.33,419.33,6258000,419.33],
-["2006-06-29",407.99,418.20,405.82,417.81,6658200,417.81],
-["2006-06-28",404.01,406.48,401.13,406.11,3710500,406.11],
-["2006-06-27",405.71,408.00,401.01,402.32,4107100,402.32],
-["2006-06-26",406.75,408.30,403.25,404.22,3551200,404.22],
-["2006-06-23",402.76,409.75,400.74,404.86,5314800,404.86],
-["2006-06-22",401.58,406.00,388.00,399.95,5911900,399.95],
-["2006-06-21",391.06,404.00,389.75,402.13,8744400,402.13],
-["2006-06-20",388.03,391.87,386.51,387.17,4039900,387.17],
-["2006-06-19",390.85,394.80,386.98,388.14,7633100,388.14],
-["2006-06-16",389.10,390.93,388.00,390.70,5304600,390.70],
-["2006-06-15",386.62,392.25,383.00,391.00,6785700,391.00],
-["2006-06-14",389.83,391.10,378.52,384.39,7772000,384.39],
-["2006-06-13",380.90,387.00,378.12,386.52,7659100,386.52],
-["2006-06-12",388.34,390.49,381.00,381.54,5019100,381.54],
-["2006-06-09",392.19,395.43,385.35,386.57,6157500,386.57],
-["2006-06-08",387.75,394.27,378.59,393.30,10359500,393.30],
-["2006-06-07",393.24,394.86,386.50,386.51,8911300,386.51],
-["2006-06-06",376.58,390.00,376.30,389.99,10259800,389.99],
-["2006-06-05",376.18,381.45,374.15,374.44,5558500,374.44],
-["2006-06-02",386.84,387.08,377.45,379.44,6386400,379.44],
-["2006-06-01",373.54,382.99,371.60,382.62,6278000,382.62],
-["2006-05-31",373.80,378.25,366.78,371.82,7981300,371.82],
-["2006-05-30",378.28,381.00,371.45,371.94,4316000,371.94],
-["2006-05-26",384.55,385.88,380.03,381.35,3667000,381.35],
-["2006-05-25",379.08,383.00,372.31,382.99,8194600,382.99],
-["2006-05-24",377.35,383.44,371.61,381.25,9553800,381.25],
-["2006-05-23",374.21,383.88,373.56,375.58,8983000,375.58],
-["2006-05-22",367.85,373.03,365.25,370.95,8604400,370.95],
-["2006-05-19",373.28,374.50,360.57,370.02,11398200,370.02],
-["2006-05-18",378.78,381.81,370.71,370.99,5835000,370.99],
-["2006-05-17",370.61,379.84,370.22,374.50,10643800,374.50],
-["2006-05-16",375.99,376.86,369.89,371.30,6491100,371.30],
-["2006-05-15",375.93,380.15,368.25,376.20,8590100,376.20],
-["2006-05-12",383.54,384.87,373.55,374.13,10087600,374.13],
-["2006-05-11",403.42,404.71,384.98,387.00,8892800,387.00],
-["2006-05-10",408.31,411.71,401.86,402.98,6187200,402.98],
-["2006-05-09",395.70,409.00,393.75,408.80,9140600,408.80],
-["2006-05-08",395.11,397.12,390.05,394.78,5118600,394.78],
-["2006-05-05",397.60,400.68,391.78,394.30,6065000,394.30],
-["2006-05-04",395.03,398.87,392.21,394.75,4652000,394.75],
-["2006-05-03",396.35,401.50,390.88,394.17,8072200,394.17],
-["2006-05-02",401.08,402.49,388.40,394.80,13104300,394.80],
-["2006-05-01",418.47,419.44,398.55,398.90,10361200,398.90],
-["2006-04-28",418.63,425.73,416.30,417.94,7421300,417.94],
-["2006-04-27",422.91,426.91,419.39,420.03,8337900,420.03],
-["2006-04-26",427.74,430.04,423.53,425.97,7277800,425.97],
-["2006-04-25",439.63,441.04,426.00,427.16,9569000,427.16],
-["2006-04-24",439.40,444.70,436.52,440.50,8836400,440.50],
-["2006-04-21",448.90,450.72,436.17,437.10,22551300,437.10],
-["2006-04-20",411.01,416.00,408.20,415.00,12271500,415.00],
-["2006-04-19",412.57,413.64,406.73,410.50,6781700,410.50],
-["2006-04-18",407.93,409.83,401.50,404.24,8137600,404.24],
-["2006-04-17",403.45,412.50,400.84,406.82,8259500,406.82],
-["2006-04-13",408.63,409.76,400.50,402.16,6552900,402.16],
-["2006-04-12",409.00,411.33,405.19,408.95,6017000,408.95],
-["2006-04-11",416.42,419.10,406.22,409.66,11107200,409.66],
-["2006-04-10",407.08,417.17,405.25,416.38,9320100,416.38],
-["2006-04-07",412.41,412.85,404.02,406.16,7025900,406.16],
-["2006-04-06",406.49,413.89,405.43,411.18,8598500,411.18],
-["2006-04-05",408.20,414.57,402.82,407.99,13410500,407.99],
-["2006-04-04",389.90,404.90,388.14,404.34,15715700,404.34],
-["2006-04-03",389.53,392.47,387.93,389.70,8122700,389.70],
-["2006-03-31",388.74,391.87,384.03,390.00,36521400,390.00],
-["2006-03-30",389.19,393.50,383.61,388.44,14711700,388.44],
-["2006-03-29",379.94,399.00,379.51,394.98,19027500,394.98],
-["2006-03-28",371.71,377.86,371.17,377.20,8945800,377.20],
-["2006-03-27",367.09,371.71,365.00,369.69,7023700,369.69],
-["2006-03-24",368.62,370.09,362.51,365.80,15180600,365.80],
-["2006-03-23",342.35,345.75,340.20,341.89,7434700,341.89],
-["2006-03-22",339.75,344.10,337.50,340.22,7596000,340.22],
-["2006-03-21",350.01,351.66,339.08,339.92,9831100,339.92],
-["2006-03-20",342.34,350.09,341.54,348.19,10407600,348.19],
-["2006-03-17",338.80,341.78,334.93,339.79,8551700,339.79],
-["2006-03-16",348.61,348.75,337.90,338.77,10016700,338.77],
-["2006-03-15",350.77,352.30,340.53,344.50,12768800,344.50],
-["2006-03-14",337.14,352.37,332.62,351.16,18450700,351.16],
-["2006-03-13",340.93,346.10,335.45,337.06,13642400,337.06],
-["2006-03-10",343.50,344.50,331.55,337.50,19325600,337.50],
-["2006-03-09",355.39,358.53,341.50,343.00,13910400,343.00],
-["2006-03-08",353.93,360.03,350.54,353.88,11745600,353.88],
-["2006-03-07",365.02,368.45,358.15,364.45,10378800,364.45],
-["2006-03-06",380.91,383.40,367.14,368.10,8939700,368.10],
-["2006-03-03",384.30,387.24,375.76,378.18,11962000,378.18],
-["2006-03-02",364.28,381.10,362.20,376.45,18330300,376.45],
-["2006-03-01",368.56,369.45,361.30,364.80,12061200,364.80],
-["2006-02-28",393.20,397.54,338.51,362.62,39437600,362.62],
-["2006-02-27",381.27,391.70,380.28,390.38,10212200,390.38],
-["2006-02-24",377.30,380.07,373.49,377.40,6484300,377.40],
-["2006-02-23",365.61,381.24,365.39,378.07,12551600,378.07],
-["2006-02-22",367.15,368.95,363.86,365.49,6476200,365.49],
-["2006-02-21",366.44,373.54,365.11,366.59,8686000,366.59],
-["2006-02-17",369.86,372.14,363.62,368.75,14320200,368.75],
-["2006-02-16",345.67,367.00,344.49,366.46,21315500,366.46],
-["2006-02-15",341.27,346.00,337.83,342.38,12947000,342.38],
-["2006-02-14",345.33,351.69,342.40,343.32,14654000,343.32],
-["2006-02-13",346.64,350.60,341.89,345.70,19717800,345.70],
-["2006-02-10",361.95,364.50,353.14,362.61,15223500,362.61],
-["2006-02-09",371.20,374.40,356.11,358.77,11912400,358.77],
-["2006-02-08",368.48,370.69,354.67,369.08,20804100,369.08],
-["2006-02-07",382.99,383.70,363.35,367.92,16630200,367.92],
-["2006-02-06",385.31,389.90,379.56,385.10,8940400,385.10],
-["2006-02-03",393.62,393.90,372.57,381.55,18281800,381.55],
-["2006-02-02",403.82,406.50,395.98,396.04,11807700,396.04],
-["2006-02-01",389.03,402.00,387.52,401.78,27122500,401.78],
-["2006-01-31",430.57,439.60,423.97,432.66,22066000,432.66],
-["2006-01-30",429.23,433.28,425.00,426.82,8588900,426.82],
-["2006-01-27",435.00,438.22,428.98,433.49,8452200,433.49],
-["2006-01-26",439.54,439.99,423.56,434.27,12926100,434.27],
-["2006-01-25",451.26,454.23,429.22,433.00,18739800,433.00],
-["2006-01-24",436.03,444.95,434.48,443.03,15464600,443.03],
-["2006-01-23",407.38,428.39,405.73,427.50,22741400,427.50],
-["2006-01-20",438.70,440.03,394.74,399.46,41116700,399.46],
-["2006-01-19",451.17,453.49,433.00,436.45,14537300,436.45],
-["2006-01-18",447.30,457.36,443.25,444.91,20485700,444.91],
-["2006-01-17",463.06,469.90,462.53,467.11,8270300,467.11],
-["2006-01-13",464.31,466.89,461.61,466.25,7656600,466.25],
-["2006-01-12",473.72,474.99,461.50,463.63,10125300,463.63],
-["2006-01-11",471.27,475.11,469.18,471.63,9007400,471.63],
-["2006-01-10",464.42,470.25,462.04,469.76,9097100,469.76],
-["2006-01-09",466.41,473.40,460.94,466.90,12791900,466.90],
-["2006-01-06",456.87,470.50,453.24,465.66,17756900,465.66],
-["2006-01-05",446.00,451.55,441.50,451.24,10808300,451.24],
-["2006-01-04",443.90,448.96,439.75,445.24,15286400,445.24],
-["2006-01-03",422.52,435.67,418.22,435.23,13121200,435.23],
-["2005-12-30",417.27,418.21,413.74,414.86,7587100,414.86],
-["2005-12-29",427.98,428.73,419.17,420.15,6945800,420.15],
-["2005-12-28",424.34,427.78,421.26,426.69,7117900,426.69],
-["2005-12-27",431.86,431.86,422.76,424.64,6702800,424.64],
-["2005-12-23",432.15,432.50,428.78,430.93,4595100,430.93],
-["2005-12-22",431.77,432.86,425.93,432.04,7546600,432.04],
-["2005-12-21",433.55,436.86,420.71,426.33,11221900,426.33],
-["2005-12-20",427.86,432.20,424.67,429.74,10084700,429.74],
-["2005-12-19",432.20,446.21,420.11,424.60,21936800,424.60],
-["2005-12-16",425.34,432.50,422.75,430.15,16330500,430.15],
-["2005-12-15",419.11,423.14,416.50,422.55,6045800,422.55],
-["2005-12-14",417.04,419.73,415.49,418.96,6630400,418.96],
-["2005-12-13",412.50,418.00,411.64,417.49,8157000,417.49],
-["2005-12-12",414.63,415.21,409.95,412.61,6950100,412.61],
-["2005-12-09",415.00,415.78,408.56,409.20,7643400,409.20],
-["2005-12-08",405.30,410.65,402.64,410.65,8910100,410.65],
-["2005-12-07",406.16,406.70,399.01,404.22,11665900,404.22],
-["2005-12-06",408.70,416.41,401.70,404.54,15114700,404.54],
-["2005-12-05",417.00,417.50,404.28,405.85,10289400,405.85],
-["2005-12-02",416.94,419.53,413.86,417.70,7543500,417.70],
-["2005-12-01",409.20,415.44,408.29,414.09,9744900,414.09],
-["2005-11-30",404.26,408.45,395.56,404.91,15596600,404.91],
-["2005-11-29",424.46,426.40,402.14,403.54,21495800,403.54],
-["2005-11-28",429.82,431.24,422.44,423.48,11008400,423.48],
-["2005-11-25",425.78,428.75,425.30,428.62,4840100,428.62],
-["2005-11-23",417.04,424.72,415.78,422.86,10085000,422.86],
-["2005-11-22",408.65,417.31,406.23,416.47,9596000,416.47],
-["2005-11-21",399.17,409.98,393.49,409.36,10335100,409.36],
-["2005-11-18",403.49,404.50,399.85,400.21,7025700,400.21],
-["2005-11-17",401.80,403.81,399.53,403.45,9212200,403.45],
-["2005-11-16",396.20,398.85,394.11,398.15,8695200,398.15],
-["2005-11-15",394.38,397.00,390.95,392.80,8624900,392.80],
-["2005-11-14",392.12,398.22,391.53,396.97,7807900,396.97],
-["2005-11-11",395.12,396.90,388.85,390.40,7063900,390.40],
-["2005-11-10",378.36,391.35,377.43,391.10,9128700,391.10],
-["2005-11-09",386.67,388.29,378.03,379.15,10466900,379.15],
-["2005-11-08",394.25,395.59,388.58,389.90,7897500,389.90],
-["2005-11-07",395.10,397.47,392.15,395.03,9591500,395.03],
-["2005-11-04",389.98,391.79,385.45,390.43,8824900,390.43],
-["2005-11-03",382.41,386.58,381.38,385.95,7448400,385.95],
-["2005-11-02",381.70,385.00,377.17,379.68,10565400,379.68],
-["2005-11-01",371.86,383.90,369.01,379.38,16356100,379.38],
-["2005-10-31",360.24,374.75,359.51,372.14,14342900,372.14],
-["2005-10-28",355.27,358.95,355.02,358.17,5903500,358.17],
-["2005-10-27",356.60,357.09,351.68,353.06,5134400,353.06],
-["2005-10-26",346.28,356.00,346.19,355.44,8907500,355.44],
-["2005-10-25",345.78,347.40,342.86,346.91,6878300,346.91],
-["2005-10-24",343.37,349.30,342.19,348.65,9431700,348.65],
-["2005-10-21",345.80,346.43,333.00,339.90,22892400,339.90],
-["2005-10-20",309.99,311.13,301.21,303.20,13911700,303.20],
-["2005-10-19",304.00,309.87,303.96,308.70,7010700,308.70],
-["2005-10-18",304.96,307.96,302.74,303.28,7077800,303.28],
-["2005-10-17",297.50,305.20,294.56,305.00,7566700,305.00],
-["2005-10-14",299.90,300.23,292.54,296.14,8519100,296.14],
-["2005-10-13",302.00,302.00,290.68,297.44,10567700,297.44],
-["2005-10-12",305.20,307.19,299.00,300.97,9306200,300.97],
-["2005-10-11",310.61,312.65,304.86,306.10,8542600,306.10],
-["2005-10-10",313.31,314.82,309.15,310.65,5572200,310.65],
-["2005-10-07",314.79,316.67,310.54,312.99,6770300,312.99],
-["2005-10-06",314.14,314.48,310.09,312.75,7993800,312.75],
-["2005-10-05",312.69,314.90,308.00,310.71,8328400,310.71],
-["2005-10-04",319.95,321.28,310.74,311.00,9144300,311.00],
-["2005-10-03",313.63,320.11,312.79,318.68,9160300,318.68],
-["2005-09-30",314.22,317.50,312.29,316.46,9151300,316.46],
-["2005-09-29",306.68,310.72,306.08,309.62,5613800,309.62],
-["2005-09-28",314.22,315.10,305.60,306.00,7997400,306.00],
-["2005-09-27",314.95,318.41,313.38,313.94,6873100,313.94],
-["2005-09-26",319.50,320.95,312.56,314.28,9894400,314.28],
-["2005-09-23",313.00,317.21,312.59,315.36,8483800,315.36],
-["2005-09-22",311.50,319.22,310.17,311.37,13006400,311.37],
-["2005-09-21",308.41,313.76,305.96,311.90,10119700,311.90],
-["2005-09-20",306.15,311.30,305.23,307.91,9351000,307.91],
-["2005-09-19",301.00,306.00,300.71,303.79,5761900,303.79],
-["2005-09-16",304.02,304.50,299.87,300.20,7579800,300.20],
-["2005-09-15",299.52,306.75,297.91,302.62,15466200,302.62],
-["2005-09-14",308.73,313.28,300.30,303.00,11275800,303.00],
-["2005-09-13",309.00,315.53,306.17,311.68,10299900,311.68],
-["2005-09-12",301.75,311.42,301.00,309.74,10386500,309.74],
-["2005-09-09",297.28,299.10,296.56,299.09,4390500,299.09],
-["2005-09-08",294.83,299.28,293.36,295.39,6613300,295.39],
-["2005-09-07",285.89,295.50,285.28,294.87,7499500,294.87],
-["2005-09-06",289.00,289.39,286.80,287.11,4212300,287.11],
-["2005-09-02",286.51,289.99,286.44,288.45,3434500,288.45],
-["2005-09-01",285.91,287.50,285.00,286.25,2742100,286.25],
-["2005-08-31",288.23,288.50,284.36,286.00,5034000,286.00],
-["2005-08-30",287.39,289.51,285.88,287.27,4792000,287.27],
-["2005-08-29",282.24,289.12,282.24,288.45,5903000,288.45],
-["2005-08-26",283.48,285.02,282.66,283.58,3755300,283.58],
-["2005-08-25",282.55,284.00,279.97,282.59,4376600,282.59],
-["2005-08-24",277.57,284.75,276.45,282.57,8593100,282.57],
-["2005-08-23",276.16,279.74,274.12,279.58,5821700,279.58],
-["2005-08-22",281.24,281.47,273.35,274.01,6813000,274.01],
-["2005-08-19",280.99,281.45,279.62,280.00,5542900,280.00],
-["2005-08-18",275.91,280.50,275.00,279.99,11872800,279.99],
-["2005-08-17",285.51,286.57,284.00,285.10,3883300,285.10],
-["2005-08-16",284.88,287.79,283.34,285.65,7109200,285.65],
-["2005-08-15",289.80,292.77,283.77,284.00,8174700,284.00],
-["2005-08-12",283.36,290.20,281.64,289.72,6585900,289.72],
-["2005-08-11",285.89,286.58,280.62,284.05,7514900,284.05],
-["2005-08-10",291.30,292.33,284.88,285.68,6879000,285.68],
-["2005-08-09",291.96,292.68,288.51,291.57,5779300,291.57],
-["2005-08-08",293.60,295.65,290.49,291.25,4481800,291.25],
-["2005-08-05",297.50,298.51,291.31,292.35,5939700,292.35],
-["2005-08-04",295.55,299.00,295.25,297.73,5236500,297.73],
-["2005-08-03",298.00,299.72,295.60,297.30,5930600,297.30],
-["2005-08-02",291.60,299.52,291.12,299.19,7290200,299.19],
-["2005-08-01",288.12,292.50,288.10,291.61,5662400,291.61],
-["2005-07-29",292.14,292.84,286.99,287.76,8363300,287.76],
-["2005-07-28",297.41,297.41,293.28,293.50,5925600,293.50],
-["2005-07-27",297.74,298.23,292.40,296.93,7217900,296.93],
-["2005-07-26",295.01,298.00,292.09,296.09,9816900,296.09],
-["2005-07-25",302.39,303.29,294.96,295.85,9658800,295.85],
-["2005-07-22",306.37,309.25,296.33,302.40,23386800,302.40],
-["2005-07-21",314.05,317.80,311.21,313.94,19789400,313.94],
-["2005-07-20",305.57,312.61,301.80,312.00,14310400,312.00],
-["2005-07-19",302.10,310.35,301.80,309.90,12621400,309.90],
-["2005-07-18",300.00,301.90,297.75,299.54,6207800,299.54],
-["2005-07-15",301.24,303.40,299.78,301.19,8438400,301.19],
-["2005-07-14",305.34,306.75,300.07,300.89,10667700,300.89],
-["2005-07-13",292.51,299.24,292.10,298.86,11437900,298.86],
-["2005-07-12",293.39,294.40,290.93,291.78,5864900,291.78],
-["2005-07-11",296.40,296.60,291.02,293.35,8390300,293.35],
-["2005-07-08",296.25,297.50,294.05,296.23,7457600,296.23],
-["2005-07-07",289.39,295.80,288.51,295.54,10672100,295.54],
-["2005-07-06",297.30,297.60,291.38,291.52,8000300,291.52],
-["2005-07-05",292.10,295.98,290.23,295.71,7494000,295.71],
-["2005-07-01",295.04,296.24,289.22,291.25,9227600,291.25],
-["2005-06-30",294.34,298.93,291.04,294.15,15094400,294.15],
-["2005-06-29",302.50,304.38,292.15,292.72,18298700,292.72],
-["2005-06-28",306.28,309.25,302.00,302.00,19036500,302.00],
-["2005-06-27",298.90,304.47,293.86,304.10,17802900,304.10],
-["2005-06-24",290.90,298.00,289.58,297.25,17771200,297.25],
-["2005-06-23",288.00,294.81,286.50,289.71,14056400,289.71],
-["2005-06-22",289.67,292.32,288.67,289.30,10474000,289.30],
-["2005-06-21",288.07,290.30,284.97,287.84,15132300,287.84],
-["2005-06-20",276.09,287.67,271.73,286.70,21024700,286.70],
-["2005-06-17",279.00,280.30,275.90,280.30,10434400,280.30],
-["2005-06-16",274.26,278.30,273.07,277.44,12462400,277.44],
-["2005-06-15",275.00,277.30,267.43,274.80,20883100,274.80],
-["2005-06-14",278.59,281.24,277.75,278.35,10091900,278.35],
-["2005-06-13",279.82,284.19,276.52,282.75,12803200,282.75],
-["2005-06-10",286.99,287.28,280.02,282.50,12696600,282.50],
-["2005-06-09",284.72,288.50,280.56,286.31,16441100,286.31],
-["2005-06-08",292.85,293.19,278.00,279.56,25700900,279.56],
-["2005-06-07",297.10,299.59,290.30,293.12,24323000,293.12],
-["2005-06-06",282.39,293.75,281.83,290.94,22525900,290.94],
-["2005-06-03",286.79,289.30,277.41,280.26,18782300,280.26],
-["2005-06-02",288.73,289.78,284.60,287.90,17974100,287.90],
-["2005-06-01",283.20,292.89,282.02,288.00,35191700,288.00],
-["2005-05-31",269.43,278.40,269.37,277.27,22236800,277.27],
-["2005-05-27",260.46,266.05,259.25,266.00,12184100,266.00],
-["2005-05-26",260.96,263.76,258.30,259.20,13546600,259.20],
-["2005-05-25",252.73,260.98,250.63,260.81,18057900,260.81],
-["2005-05-24",256.96,265.44,253.50,256.00,29043100,256.00],
-["2005-05-23",243.16,258.10,242.71,255.45,21388300,255.45],
-["2005-05-20",241.21,241.67,239.65,241.61,8163500,241.61],
-["2005-05-19",240.34,241.17,238.27,239.18,9716500,239.18],
-["2005-05-18",233.61,239.97,233.52,239.16,12312000,239.16],
-["2005-05-17",230.56,233.45,230.20,233.13,7808900,233.13],
-["2005-05-16",229.68,231.62,228.57,231.05,5681400,231.05],
-["2005-05-13",229.18,231.09,227.32,229.24,7415500,229.24],
-["2005-05-12",230.81,232.23,228.20,228.72,8948200,228.72],
-["2005-05-11",228.97,231.98,227.93,231.29,11478800,231.29],
-["2005-05-10",225.47,227.80,224.72,227.80,6345800,227.80],
-["2005-05-09",228.00,228.50,225.43,226.02,5536800,226.02],
-["2005-05-06",228.40,229.25,226.47,228.02,6763900,228.02],
-["2005-05-05",228.62,228.62,225.88,226.98,7509600,226.98],
-["2005-05-04",227.23,229.88,227.00,228.50,12083500,228.50],
-["2005-05-03",221.85,228.15,221.32,226.19,17780200,226.19],
-["2005-05-02",222.05,223.70,220.21,222.29,9767400,222.29],
-["2005-04-29",221.91,222.25,217.82,220.00,9170200,220.00],
-["2005-04-28",219.50,222.08,217.71,219.45,8682800,219.45],
-["2005-04-27",217.99,220.85,216.74,219.78,10264800,219.78],
-["2005-04-26",220.22,222.00,218.29,218.75,17272000,218.75],
-["2005-04-25",217.82,224.74,217.52,223.53,19840000,223.53],
-["2005-04-22",222.90,224.00,214.26,215.81,33205100,215.81],
-["2005-04-21",200.42,205.00,199.32,204.22,17751900,204.22],
-["2005-04-20",198.58,200.50,195.91,198.10,15451500,198.10],
-["2005-04-19",189.33,192.00,188.03,191.40,8430000,191.40],
-["2005-04-18",184.58,187.88,183.49,186.97,6550300,186.97],
-["2005-04-15",190.10,190.34,184.66,185.00,11577400,185.00],
-["2005-04-14",193.27,194.36,190.10,191.45,6152700,191.45],
-["2005-04-13",193.47,194.32,189.73,192.93,6555800,192.93],
-["2005-04-12",193.00,194.42,189.41,193.96,7319600,193.96],
-["2005-04-11",193.09,194.80,192.32,193.23,5410500,193.23],
-["2005-04-08",193.69,195.10,191.45,192.05,5116600,192.05],
-["2005-04-07",188.78,194.62,188.64,193.76,9692200,193.76],
-["2005-04-06",189.24,189.65,187.58,189.22,5252600,189.22],
-["2005-04-05",187.73,190.26,187.57,188.57,8736700,188.57],
-["2005-04-04",179.95,185.32,179.84,185.29,8076400,185.29],
-["2005-04-01",181.76,182.95,179.99,180.04,6182000,180.04],
-["2005-03-31",177.95,181.39,177.64,180.51,6768600,180.51],
-["2005-03-30",180.64,181.45,179.60,180.45,6236100,180.45],
-["2005-03-29",181.05,183.28,178.07,179.57,6473000,179.57],
-["2005-03-28",181.68,184.80,180.95,181.42,8738000,181.42],
-["2005-03-24",180.70,180.86,179.20,179.25,3705200,179.25],
-["2005-03-23",177.97,180.24,177.97,178.98,4845000,178.98],
-["2005-03-22",181.18,181.94,177.85,178.60,5631700,178.60],
-["2005-03-21",179.27,182.17,177.25,180.88,7483700,180.88],
-["2005-03-18",178.81,180.40,178.31,180.04,7090000,180.04],
-["2005-03-17",177.13,179.64,175.80,179.29,8260600,179.29],
-["2005-03-16",176.70,178.61,175.01,175.60,7106300,175.60],
-["2005-03-15",175.30,180.00,174.21,178.61,10422100,178.61],
-["2005-03-14",178.33,178.40,172.57,174.99,11146600,174.99],
-["2005-03-11",180.44,180.95,177.15,177.80,8028300,177.80],
-["2005-03-10",181.01,181.20,177.40,179.98,10960500,179.98],
-["2005-03-09",184.21,184.65,180.16,181.35,11360400,181.35],
-["2005-03-08",189.10,189.85,184.97,185.20,8046100,185.20],
-["2005-03-07",187.78,189.60,187.03,188.81,8667400,188.81],
-["2005-03-04",186.70,187.25,185.07,185.90,6774100,185.90],
-["2005-03-03",186.13,187.75,184.31,187.01,7608600,187.01],
-["2005-03-02",185.95,187.67,184.36,185.18,7285500,185.18],
-["2005-03-01",189.29,189.75,182.00,186.06,9311200,186.06],
-["2005-02-28",186.00,189.87,185.85,187.99,7818400,187.99],
-["2005-02-25",189.15,189.92,185.51,185.87,9973500,185.87],
-["2005-02-24",183.37,189.85,182.23,188.89,25814300,188.89],
-["2005-02-23",193.30,194.48,188.66,193.95,15586000,193.95],
-["2005-02-22",196.50,198.90,190.39,191.37,13483700,191.37],
-["2005-02-18",198.51,198.84,196.66,197.95,8485900,197.95],
-["2005-02-17",197.83,199.75,196.81,197.90,10414400,197.90],
-["2005-02-16",194.70,199.33,194.30,198.41,16532300,198.41],
-["2005-02-15",193.60,199.84,193.08,195.23,25782800,195.23],
-["2005-02-14",182.85,193.08,181.00,192.99,38562200,192.99],
-["2005-02-11",186.66,192.32,186.07,187.40,13116000,187.40],
-["2005-02-10",191.97,192.21,185.25,187.98,18982700,187.98],
-["2005-02-09",200.76,201.60,189.46,191.58,17171500,191.58],
-["2005-02-08",196.96,200.02,194.53,198.64,11480000,198.64],
-["2005-02-07",205.26,206.40,195.51,196.03,12960400,196.03],
-["2005-02-04",206.47,207.75,202.60,204.36,14819300,204.36],
-["2005-02-03",205.99,213.37,205.81,210.86,12988100,210.86],
-["2005-02-02",215.55,216.80,203.66,205.96,32799300,205.96],
-["2005-02-01",194.38,196.66,190.63,191.90,18839000,191.90],
-["2005-01-31",193.69,196.36,191.72,195.62,9596700,195.62],
-["2005-01-28",190.02,194.70,186.34,190.34,12208200,190.34],
-["2005-01-27",188.76,188.86,185.20,188.08,6627400,188.08],
-["2005-01-26",179.27,189.41,179.15,189.24,12307900,189.24],
-["2005-01-25",181.94,182.24,176.29,177.12,10659200,177.12],
-["2005-01-24",188.69,189.33,180.32,180.72,14022700,180.72],
-["2005-01-21",194.54,195.36,188.12,188.28,9258400,188.28],
-["2005-01-20",192.50,196.25,192.00,193.92,9001600,193.92],
-["2005-01-19",204.65,205.30,196.71,197.30,11257700,197.30],
-["2005-01-18",200.97,205.02,198.66,203.90,13172600,203.90],
-["2005-01-14",196.00,200.01,194.13,199.97,9640300,199.97],
-["2005-01-13",195.38,197.39,194.05,195.33,6849400,195.33],
-["2005-01-12",194.33,195.93,190.50,195.38,8177800,195.38],
-["2005-01-11",195.62,197.71,193.18,193.54,6958700,193.54],
-["2005-01-10",194.50,198.10,191.83,195.06,7539600,195.06],
-["2005-01-07",190.64,194.25,188.78,193.85,9662900,193.85],
-["2005-01-06",195.08,195.90,187.72,188.55,10387100,188.55],
-["2005-01-05",193.45,196.90,192.23,193.51,8236600,193.51],
-["2005-01-04",201.40,202.93,193.48,194.50,13755900,194.50],
-["2005-01-03",197.40,203.64,195.46,202.71,15844200,202.71],
-["2004-12-31",199.23,199.88,192.56,192.79,7668500,192.79],
-["2004-12-30",192.97,198.23,191.85,197.60,5904300,197.60],
-["2004-12-29",191.78,193.52,191.78,192.90,2678100,192.90],
-["2004-12-28",192.11,193.55,191.01,192.76,4145800,192.76],
-["2004-12-27",189.15,193.30,189.10,191.91,6104100,191.91],
-["2004-12-23",187.45,188.60,186.00,187.90,3614600,187.90],
-["2004-12-22",183.90,186.85,183.01,186.30,3907000,186.30],
-["2004-12-21",186.31,187.88,183.40,183.75,5516300,183.75],
-["2004-12-20",182.00,188.46,181.87,185.02,9834500,185.02],
-["2004-12-17",176.76,180.50,176.55,180.08,7386200,180.08],
-["2004-12-16",176.95,180.49,175.95,176.47,8572800,176.47],
-["2004-12-15",177.99,180.69,176.66,179.78,11471000,179.78],
-["2004-12-14",171.00,178.82,169.60,178.69,11088400,178.69],
-["2004-12-13",172.17,173.18,169.45,170.45,4818600,170.45],
-["2004-12-10",173.43,174.88,171.29,171.65,4317200,171.65],
-["2004-12-09",170.25,173.50,168.47,173.43,7654000,173.43],
-["2004-12-08",170.35,173.68,168.73,169.98,7541800,169.98],
-["2004-12-07",176.00,176.20,170.55,171.43,6870900,171.43],
-["2004-12-06",179.13,180.70,176.02,176.29,6254000,176.29],
-["2004-12-03",179.95,181.06,177.60,180.40,5869200,180.40],
-["2004-12-02",179.90,181.51,178.55,179.40,6260900,179.40],
-["2004-12-01",181.95,182.50,179.55,179.96,7864100,179.96],
-["2004-11-30",180.71,183.00,180.25,181.98,7700000,181.98],
-["2004-11-29",180.36,182.95,177.51,181.05,10666600,181.05],
-["2004-11-26",175.80,180.03,175.32,179.39,6480100,179.39],
-["2004-11-24",174.82,177.21,172.51,174.76,15281000,174.76],
-["2004-11-23",167.97,170.83,166.50,167.52,12413300,167.52],
-["2004-11-22",164.47,169.50,161.31,165.10,12368200,165.10],
-["2004-11-19",169.10,169.98,166.52,169.40,8769300,169.40],
-["2004-11-18",170.29,174.42,165.73,167.54,16629600,167.54],
-["2004-11-17",169.02,177.50,169.00,172.50,18132900,172.50],
-["2004-11-16",177.50,179.47,170.83,172.54,20917400,172.54],
-["2004-11-15",180.45,188.32,178.75,184.87,11901500,184.87],
-["2004-11-12",185.23,189.80,177.40,182.00,16746100,182.00],
-["2004-11-11",169.13,183.75,167.57,183.02,14985500,183.02],
-["2004-11-10",170.67,172.52,166.33,167.86,10644000,167.86],
-["2004-11-09",174.10,175.20,165.27,168.70,11064200,168.70],
-["2004-11-08",170.93,175.44,169.40,172.55,11191800,172.55],
-["2004-11-05",181.98,182.30,168.55,169.35,19833100,169.35],
-["2004-11-04",188.44,190.40,183.35,184.70,14409600,184.70],
-["2004-11-03",198.18,201.60,190.75,191.67,13888700,191.67],
-["2004-11-02",198.78,199.25,193.34,194.87,11346300,194.87],
-["2004-11-01",193.55,197.67,191.27,196.03,12224900,196.03],
-["2004-10-29",198.89,199.95,190.60,190.64,21162500,190.64],
-["2004-10-28",186.68,194.39,185.60,193.30,14846800,193.30],
-["2004-10-27",182.72,189.52,181.77,185.97,13356500,185.97],
-["2004-10-26",186.34,192.64,180.00,181.80,22307100,181.80],
-["2004-10-25",176.40,194.43,172.55,187.40,32764200,187.40],
-["2004-10-22",170.54,180.17,164.08,172.43,36891900,172.43],
-["2004-10-21",144.40,150.13,141.62,149.38,14589500,149.38],
-["2004-10-20",148.03,148.99,139.60,140.49,11372700,140.49],
-["2004-10-19",150.50,152.40,147.35,147.94,9064000,147.94],
-["2004-10-18",143.20,149.20,141.21,149.16,7025200,149.16],
-["2004-10-15",144.93,145.50,141.95,144.11,6604000,144.11],
-["2004-10-14",141.01,142.38,138.56,142.00,5226300,142.00],
-["2004-10-13",143.32,143.55,140.08,140.90,9893000,140.90],
-["2004-10-12",134.44,137.61,133.40,137.40,5838600,137.40],
-["2004-10-11",137.00,138.86,133.85,135.26,5241300,135.26],
-["2004-10-08",138.72,139.68,137.02,137.73,5540300,137.73],
-["2004-10-07",136.92,139.88,136.55,138.85,7064600,138.85],
-["2004-10-06",137.55,138.45,136.00,137.08,6697400,137.08],
-["2004-10-05",134.66,138.53,132.24,138.37,7494100,138.37],
-["2004-10-04",135.25,136.87,134.03,135.06,6517900,135.06],
-["2004-10-01",130.80,134.24,128.90,132.58,7570000,132.58],
-["2004-09-30",129.90,132.30,129.00,129.60,6885900,129.60],
-["2004-09-29",126.70,135.02,126.23,131.08,15273500,131.08],
-["2004-09-28",121.30,127.40,120.21,126.86,8473000,126.86],
-["2004-09-27",119.56,120.88,117.80,118.26,3536600,118.26],
-["2004-09-24",120.94,124.10,119.76,119.83,4566300,119.83],
-["2004-09-23",118.84,122.63,117.02,120.82,4272100,120.82],
-["2004-09-22",117.40,119.67,116.81,118.38,3794400,118.38],
-["2004-09-21",119.81,120.42,117.51,117.84,3618000,117.84],
-["2004-09-20",116.95,121.60,116.77,119.36,5319700,119.36],
-["2004-09-17",114.42,117.49,113.55,117.49,4741000,117.49],
-["2004-09-16",112.34,115.80,111.65,113.97,4637800,113.97],
-["2004-09-15",110.56,114.23,110.20,112.00,5361900,112.00],
-["2004-09-14",107.45,112.00,106.79,111.49,5419900,111.49],
-["2004-09-13",106.63,108.41,106.46,107.50,3926000,107.50],
-["2004-09-10",101.60,106.56,101.30,105.33,4353800,105.33],
-["2004-09-09",102.53,102.71,101.00,102.31,2032900,102.31],
-["2004-09-08",100.74,103.03,100.50,102.30,2495300,102.30],
-["2004-09-07",101.01,102.00,99.61,101.58,2926700,101.58],
-["2004-09-03",100.95,101.74,99.32,100.01,2578800,100.01],
-["2004-09-02",99.19,102.37,98.94,101.51,7566900,101.51],
-["2004-09-01",102.70,102.97,99.67,100.25,4573700,100.25],
-["2004-08-31",102.30,103.71,102.16,102.37,2461400,102.37],
-["2004-08-30",105.28,105.49,102.01,102.01,2601000,102.01],
-["2004-08-27",108.10,108.62,105.69,106.15,3109000,106.15],
-["2004-08-26",104.95,107.95,104.66,107.91,3551000,107.91],
-["2004-08-25",104.96,108.00,103.88,106.00,4598900,106.00],
-["2004-08-24",111.24,111.60,103.57,104.87,7631300,104.87],
-["2004-08-23",110.75,113.48,109.05,109.40,9137200,109.40],
-["2004-08-20",101.01,109.08,100.50,108.31,11428600,108.31],
-["2004-08-19",100.00,104.06,95.96,100.34,22351900,100.34]
-];
\ No newline at end of file
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/yahooData.min.js b/wqflask/wqflask/static/packages/jqplot/examples/yahooData.min.js
deleted file mode 100755
index 11da48a8..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/yahooData.min.js
+++ /dev/null
@@ -1 +0,0 @@
-var yahoo=[["2011-10-18",580.19,592.56,577.4,590.51,3800800,590.51],["2011-10-17",583.72,591.83,578,582.41,4008200,582.41],["2011-10-14",599.47,599.6,587.57,591.68,8529900,591.68],["2011-10-13",550.03,559,548.02,558.99,5639600,558.99],["2011-10-12",548.13,555.23,544.63,548.5,3177800,548.5],["2011-10-11",533.46,546.8,533.46,543.18,2853400,543.18],["2011-10-10",525.18,537.47,523.2,537.17,2322200,537.17],["2011-10-07",516.83,520.5,510.3,515.12,2855900,515.12],["2011-10-06",507.5,515.23,502.6,514.71,3424300,514.71],["2011-10-05",496.35,507.8,480.77,504.7,4534100,504.7],["2011-10-04",490.03,503.44,480.6,501.9,4158800,501.9],["2011-10-03",509.85,512,495,495.52,4474400,495.52],["2011-09-30",520.21,524,514.38,515.04,2723600,515.04],["2011-09-29",536.04,537.3,519.41,527.5,2906600,527.5],["2011-09-28",541.5,544.02,527.7,528.84,2263300,528.84],["2011-09-27",538.2,547.05,536.05,539.34,3010900,539.34],["2011-09-26",527.25,532.93,513.25,531.89,2634200,531.89],["2011-09-23",516.56,526.42,514.5,525.51,2777300,525.51],["2011-09-22",526.25,528.78,514,520.66,4400300,520.66],["2011-09-21",547.69,555,538.86,539.2,2514300,539.2],["2011-09-20",549.4,558.52,542.67,546.63,2779100,546.63],["2011-09-19",540.35,549.9,535.38,546.67,2468400,546.67],["2011-09-16",544.8,546.84,543.14,546.68,3534300,546.68],["2011-09-15",535.5,544.98,534.56,542.56,2960800,542.56],["2011-09-14",532.59,536.95,525.82,532.07,2694400,532.07],["2011-09-13",532,533.88,523.4,529.52,2354200,529.52],["2011-09-12",517.96,531.99,517.5,530.12,2670400,530.12],["2011-09-09",531.4,534.65,521.19,524.85,3268800,524.85],["2011-09-08",533.8,539.1,531.9,534.96,2380500,534.96],["2011-09-07",530.45,535.94,527.4,534.03,2755800,534.03],["2011-09-06",510.8,522.76,510.5,522.18,2715800,522.18],["2011-09-02",524.47,527.92,520.73,524.84,2401200,524.84],["2011-09-01",540.75,543.83,531.22,532.5,2415500,532.5],["2011-08-31",544.74,546.3,536,540.96,2693300,540.96],["2011-08-30",538.19,542.99,530.81,540.7,2989000,540.7],["2011-08-29",534.56,539.45,533.56,539.08,2335800,539.08],["2011-08-26",519.99,530.45,513.14,526.86,3596300,526.86],["2011-08-25",530.38,537.27,518.3,520.04,3293000,520.04],["2011-08-24",519.33,530,517.23,523.29,3594500,523.29],["2011-08-23",503.5,521.41,499.06,518.82,4346800,518.82],["2011-08-22",504,507,494.53,498.17,4905900,498.17],["2011-08-19",499.34,514.87,490.86,490.92,5410000,490.92],["2011-08-18",523.47,524.89,500.49,504.88,6290700,504.88],["2011-08-17",540.03,543.69,530.77,533.15,4055000,533.15],["2011-08-16",552.43,552.44,530.3,539,6939400,539],["2011-08-15",553.43,564.99,546.05,557.23,7144900,557.23],["2011-08-12",569.5,570.5,560.4,563.77,3154300,563.77],["2011-08-11",553.82,568.5,548.41,562.13,4830600,562.13],["2011-08-10",561.38,564.12,547.73,549.01,5369600,549.01],["2011-08-09",561,574.61,541.01,573.41,6469700,573.41],["2011-08-08",562.98,569,544.35,546.02,7496600,546.02],["2011-08-05",582.54,590,562,579.04,5929100,579.04],["2011-08-04",594.5,598.85,577.47,577.52,4914600,577.52],["2011-08-03",594.27,603,583.63,601.17,3825700,601.17],["2011-08-02",606,609.67,591.57,592.4,3200600,592.4],["2011-08-01",611.22,615.5,599.18,606.77,3966100,606.77],["2011-07-29",604.23,614.96,603.69,603.69,4137400,603.69],["2011-07-28",605.19,615.98,603,610.94,3108400,610.94],["2011-07-27",617.18,620.95,604.75,607.22,3934400,607.22],["2011-07-26",618.05,627.5,617.22,622.52,2342900,622.52],["2011-07-25",613.36,625.41,613,618.98,3131600,618.98],["2011-07-22",605.39,619.5,604.27,618.23,3528200,618.23],["2011-07-21",594.03,608.06,594.01,606.99,3469500,606.99],["2011-07-20",602.18,602.83,595.35,595.35,2227800,595.35],["2011-07-19",596.14,604.68,595.53,602.55,2967500,602.55],["2011-07-18",592.49,602.05,592,594.94,4468300,594.94],["2011-07-15",597.5,600.25,588.16,597.62,13732100,597.62],["2011-07-14",539.12,542,526.73,528.94,6594400,528.94],["2011-07-13",537,544,536.48,538.26,2790200,538.26],["2011-07-12",528.16,539.42,526,534.01,2841200,534.01],["2011-07-11",528.18,535.98,525.5,527.28,2839300,527.28],["2011-07-08",532.95,537.65,527.27,531.99,4770200,531.99],["2011-07-07",541,550.68,535.88,546.6,3935500,546.6],["2011-07-06",533.5,538.51,533.04,535.36,2695600,535.36],["2011-07-05",525.3,535.4,525.3,532.44,3849200,532.44],["2011-07-01",506.74,521.18,506.38,521.03,3636700,521.03],["2011-06-30",501.99,506.67,501.5,506.38,2428400,506.38],["2011-06-29",496.54,500.25,492.38,497.57,2343000,497.57],["2011-06-28",484.02,496.21,484.02,493.65,2715100,493.65],["2011-06-27",474,488.4,473.6,482.8,3444700,482.8],["2011-06-24",480.68,480.75,473.02,474.88,3805600,474.88],["2011-06-23",482.13,482.86,473.73,480.22,4801700,480.22],["2011-06-22",491.45,492.35,486.73,487.01,2407100,487.01],["2011-06-21",487.19,493.94,484.73,493,2765400,493],["2011-06-20",485,486.23,479.23,484.58,3028600,484.58],["2011-06-17",506.18,506.69,484.8,485.02,5245400,485.02],["2011-06-16",502.81,506.57,496.67,500.37,2757000,500.37],["2011-06-15",505.03,508.35,500.61,502.95,2073300,502.95],["2011-06-14",508.15,514.08,506.99,508.37,2341500,508.37],["2011-06-13",510,510.2,502.17,504.73,2427300,504.73],["2011-06-10",514.08,516.69,509.29,509.51,2439900,509.51],["2011-06-09",520,520,515.64,516.73,1689100,516.73],["2011-06-08",516.53,521.24,515.78,519.17,1653400,519.17],["2011-06-07",522.89,524.63,518.99,519.03,1907600,519.03],["2011-06-06",523.54,526.82,519.25,521.06,1942100,521.06],["2011-06-03",522,527.6,521.5,523.08,1748500,523.08],["2011-06-02",527.57,530.3,522.48,528.06,2204500,528.06],["2011-06-01",528.04,533.2,525.31,525.6,2955900,525.6],["2011-05-31",525,529.05,523.5,529.02,2687300,529.02],["2011-05-27",518.48,521.79,516.3,520.9,1745800,520.9],["2011-05-26",517.7,522.12,515,518.13,2118500,518.13],["2011-05-25",517.33,522.77,517.25,519.67,1301600,519.67],["2011-05-24",520.37,523.96,518.15,518.26,1888400,518.26],["2011-05-23",516.6,520,513.4,518.39,2252700,518.39],["2011-05-20",531.8,531.99,523.13,524.03,2317500,524.03],["2011-05-19",532.73,536.54,529.72,531.25,2468700,531.25],["2011-05-18",529.54,530.33,525.7,529.81,1953200,529.81],["2011-05-17",515.43,531.22,515.03,530.46,3303600,530.46],["2011-05-16",526.31,527.27,516.4,518.42,2958200,518.42],["2011-05-13",534.61,535.92,529.05,529.55,2108700,529.55],["2011-05-12",535.24,536.94,530.91,535.05,1400000,535.05],["2011-05-11",540.14,543.55,533.69,535.45,2338800,535.45],["2011-05-10",540,544.43,537.54,542.66,2042900,542.66],["2011-05-09",535,538.49,531.1,537.68,1948700,537.68],["2011-05-06",538.15,541.46,535.18,535.3,2056100,535.3],["2011-05-05",533.86,539.42,531.5,534.27,1997800,534.27],["2011-05-04",535.17,539,533.02,535.79,2117000,535.79],["2011-05-03",537.13,542.01,529.63,533.89,2081500,533.89],["2011-05-02",545.7,545.73,537.12,538.56,2133700,538.56],["2011-04-29",540,544.1,538.51,544.1,4200000,544.1],["2011-04-28",538.06,539.25,534.08,537.97,2037400,537.97],["2011-04-27",538,538.11,534.35,537.76,2298400,537.76],["2011-04-26",526.52,537.44,525.21,532.82,3535400,532.82],["2011-04-25",525.25,527,522.01,525.05,1630800,525.05],["2011-04-21",527.49,528.28,522.39,525.1,2470100,525.1],["2011-04-20",525.9,526.82,521.39,525.73,3060000,525.73],["2011-04-19",529.95,530.88,520.9,521.53,2684100,521.53],["2011-04-18",526.42,527.66,519,526.84,5039800,526.84],["2011-04-15",545.29,545.75,530.06,530.7,14043700,530.7],["2011-04-14",575.19,579.45,572.1,578.51,5456300,578.51],["2011-04-13",575.51,577.6,571.75,576.28,2069400,576.28],["2011-04-12",575,576.91,568.05,570.61,2085600,570.61],["2011-04-11",576.2,578.1,573,577.37,1858200,577.37],["2011-04-08",584.89,584.89,578.06,578.16,1901800,578.16],["2011-04-07",575.73,580.64,574.19,580,2531500,580],["2011-04-06",572.18,575.16,568,574.18,2668300,574.18],["2011-04-05",581.08,581.49,565.68,569.09,6047500,569.09],["2011-04-04",593,594.74,583.1,587.68,2054500,587.68],["2011-04-01",588.76,595.19,588.76,591.8,2613200,591.8],["2011-03-31",583,588.16,581.74,586.76,2029400,586.76],["2011-03-30",584.38,585.5,580.58,581.84,1422300,581.84],["2011-03-29",576,581.89,573.01,581.73,1604800,581.73],["2011-03-28",582.07,584.99,574.71,575.36,2218400,575.36],["2011-03-25",586.88,586.91,579.24,579.74,2858400,579.74],["2011-03-24",585.43,588.39,578.8,586.89,2098700,586.89],["2011-03-23",575.19,582.45,572,582.16,1816200,582.16],["2011-03-22",577.27,579.23,572.51,577.32,1886900,577.32],["2011-03-21",570.22,579.8,569.02,576.5,3020900,576.5],["2011-03-18",564.64,567.99,559.74,561.06,3298600,561.06],["2011-03-17",564.48,569,560.54,561.36,2899300,561.36],["2011-03-16",568.01,569.79,551.28,557.1,3798500,557.1],["2011-03-15",557.5,571,555.5,569.56,4005600,569.56],["2011-03-14",572.8,578.29,568.02,569.99,2816100,569.99],["2011-03-11",578.22,580,573.33,576.71,3032000,576.71],["2011-03-10",585.44,586.62,579.45,580.3,3128100,580.3],["2011-03-09",591,594.51,585.75,591.77,2151000,591.77],["2011-03-08",592.93,597.98,590.2,592.31,2284900,592.31],["2011-03-07",600.55,603.69,587,591.66,3462700,591.66],["2011-03-04",608.33,608.98,600.2,600.62,3011000,600.62],["2011-03-03",606.38,611.49,605,609.56,1945300,609.56],["2011-03-02",599.8,606,595.19,600.79,2026700,600.79],["2011-03-01",617.78,619.22,599.3,600.76,3323200,600.76],["2011-02-28",610,616.49,608.01,613.4,2281500,613.4],["2011-02-25",611.86,614.72,609.5,610.04,1932400,610.04],["2011-02-24",611.39,613.09,601.35,608.82,2711700,608.82],["2011-02-23",610.33,614.7,604,611.32,2889600,611.32],["2011-02-22",620.03,624.93,607.77,610.21,3639900,610.21],["2011-02-18",626,631.18,624.18,630.08,3217900,630.08],["2011-02-17",621.25,627.25,620.28,625.26,1478800,625.26],["2011-02-16",625.63,626.5,622.1,624.22,1684000,624.22],["2011-02-15",627.32,630.09,623.1,624.15,2092000,624.15],["2011-02-14",623.34,629.64,620.04,628.15,2128000,628.15],["2011-02-11",613.79,625,613,624.5,2589900,624.5],["2011-02-10",613.9,617.5,611.56,616.44,2334400,616.44],["2011-02-09",616.87,619.45,612.34,616.5,1842500,616.5],["2011-02-08",614.93,619.63,614.51,618.38,1694900,618.38],["2011-02-07",610.16,618.39,609.21,614.29,1799600,614.29],["2011-02-04",610.15,611.44,606.61,610.98,1550800,610.98],["2011-02-03",609.48,611.45,606.13,610.15,1495100,610.15],["2011-02-02",611,614.34,607.53,612,1760700,612],["2011-02-01",604.49,613.35,603.11,611.04,2745300,611.04],["2011-01-31",603.6,604.47,595.55,600.36,2804900,600.36],["2011-01-28",619.07,620.36,599.76,600.99,4231100,600.99],["2011-01-27",617.89,619.7,613.25,616.79,2019200,616.79],["2011-01-26",620.33,622.49,615.28,616.5,2038100,616.5],["2011-01-25",608.2,620.69,606.52,619.91,3646800,619.91],["2011-01-24",607.57,612.49,601.23,611.08,4599200,611.08],["2011-01-21",639.58,641.73,611.36,611.83,8904400,611.83],["2011-01-20",632.21,634.08,623.29,626.77,5485800,626.77],["2011-01-19",642.12,642.96,629.66,631.75,3406100,631.75],["2011-01-18",626.06,641.99,625.27,639.63,3617000,639.63],["2011-01-14",617.4,624.27,617.08,624.18,2365600,624.18],["2011-01-13",616.97,619.67,614.16,616.69,1334000,616.69],["2011-01-12",619.35,619.35,614.77,616.87,1632700,616.87],["2011-01-11",617.71,618.8,614.5,616.01,1439300,616.01],["2011-01-10",614.8,615.39,608.56,614.21,1579200,614.21],["2011-01-07",615.91,618.25,610.13,616.44,2101200,616.44],["2011-01-06",610.68,618.43,610.05,613.5,2057800,613.5],["2011-01-05",600.07,610.33,600.05,609.07,2532300,609.07],["2011-01-04",605.62,606.18,600.12,602.12,1824500,602.12],["2011-01-03",596.48,605.59,596.48,604.35,2365200,604.35],["2010-12-31",596.74,598.42,592.03,593.97,1539300,593.97],["2010-12-30",598,601.33,597.39,598.86,989500,598.86],["2010-12-29",602,602.41,598.92,601,1019200,601],["2010-12-28",602.05,603.87,598.01,598.92,1064800,598.92],["2010-12-27",602.74,603.78,599.5,602.38,1208100,602.38],["2010-12-23",605.34,606,602.03,604.23,1110800,604.23],["2010-12-22",604,607,603.28,605.49,1207500,605.49],["2010-12-21",598.57,604.72,597.61,603.07,1879500,603.07],["2010-12-20",594.65,597.88,588.66,595.06,1973300,595.06],["2010-12-17",591,592.56,587.67,590.8,3087100,590.8],["2010-12-16",592.85,593.77,588.07,591.71,1596900,591.71],["2010-12-15",594.2,596.45,589.15,590.3,2167700,590.3],["2010-12-14",597.09,598.29,592.48,594.91,1643300,594.91],["2010-12-13",597.12,603,594.09,594.62,2398500,594.62],["2010-12-10",593.14,593.99,590.29,592.21,1704700,592.21],["2010-12-09",593.88,595.58,589,591.5,1868900,591.5],["2010-12-08",591.97,592.52,583.69,590.54,1756900,590.54],["2010-12-07",591.27,593,586,587.14,3042200,587.14],["2010-12-06",580.57,582,576.61,578.36,2093800,578.36],["2010-12-03",569.45,576.48,568,573,2631200,573],["2010-12-02",568.66,573.33,565.35,571.82,2547900,571.82],["2010-12-01",563,571.57,562.4,564.35,3754100,564.35],["2010-11-30",574.32,574.32,553.31,555.71,7117400,555.71],["2010-11-29",589.17,589.8,579.95,582.11,2859700,582.11],["2010-11-26",590.46,592.98,587,590,1311100,590],["2010-11-24",587.31,596.6,587.05,594.97,2396400,594.97],["2010-11-23",587.01,589.01,578.2,583.01,2162600,583.01],["2010-11-22",587.47,593.44,582.75,591.22,2186600,591.22],["2010-11-19",597,597.89,590.34,590.83,2297500,590.83],["2010-11-18",589,599.98,588.56,596.56,2590000,596.56],["2010-11-17",585,589.5,581.37,583.55,2442500,583.55],["2010-11-16",592.76,597.89,583.45,583.72,3307400,583.72],["2010-11-15",603.08,604,594.05,595.47,3478900,595.47],["2010-11-12",613.99,616.9,601.21,603.29,3393000,603.29],["2010-11-11",619.7,619.85,614.21,617.19,2261600,617.19],["2010-11-10",622.08,623,617.51,622.88,2497000,622.88],["2010-11-09",630,630.85,620.51,624.82,2237200,624.82],["2010-11-08",624.02,629.49,623.13,626.77,2101300,626.77],["2010-11-05",623.18,625.49,621.11,625.08,1765700,625.08],["2010-11-04",624.64,629.92,622.1,624.27,3570800,624.27],["2010-11-03",617.5,621.83,613.5,620.18,3380500,620.18],["2010-11-02",618.67,620,614.58,615.6,1997600,615.6],["2010-11-01",615.73,620.66,611.21,615,3087100,615],["2010-10-29",617.07,619,612.99,613.7,2278300,613.7],["2010-10-28",620.05,621,613.3,618.58,2184300,618.58],["2010-10-27",615.77,620,612.33,616.47,2241900,616.47],["2010-10-26",613.1,621.23,611.03,618.6,2512900,618.6],["2010-10-25",615.59,624.74,614.97,616.5,3158400,616.5],["2010-10-22",611.92,614.82,610.05,612.53,2256100,612.53],["2010-10-21",611.51,616,606,611.99,2920500,611.99],["2010-10-20",608.14,617.38,607.5,607.98,3525100,607.98],["2010-10-19",608.85,614.82,602.86,607.83,4587900,607.83],["2010-10-18",600.55,619.69,600.55,617.71,7098200,617.71],["2010-10-15",599.27,601.64,591.6,601.45,14824800,601.45],["2010-10-14",544.18,545.25,537.11,540.93,6634100,540.93],["2010-10-13",547,547.49,542.33,543.3,3055600,543.3],["2010-10-12",540.12,545.99,537.79,541.39,3753600,541.39],["2010-10-11",538.48,544.6,537.17,538.84,2626300,538.84],["2010-10-08",532.77,537.6,527.62,536.35,2859200,536.35],["2010-10-07",536.21,537.2,529.14,530.01,2395800,530.01],["2010-10-06",539.26,539.95,529.94,534.35,2762300,534.35],["2010-10-05",528.38,540,526.55,538.23,3507100,538.23],["2010-10-04",524.95,528.25,518.85,522.35,1940500,522.35],["2010-10-01",530,530.62,523,525.62,2225000,525.62],["2010-09-30",529.16,531.87,518.92,525.79,3244100,525.79],["2010-09-29",527.85,532.94,524.71,527.69,2172200,527.69],["2010-09-28",533.48,533.59,518.45,527.17,3654700,527.17],["2010-09-27",528.85,536.85,528.85,530.41,3107400,530.41],["2010-09-24",521.74,527.83,518.26,527.29,3356900,527.29],["2010-09-23",514.61,519.69,511.3,513.48,2317400,513.48],["2010-09-22",512.86,517.78,511.68,516,2537100,516],["2010-09-21",509.68,519.98,508.91,513.46,4466300,513.46],["2010-09-20",492.5,510.41,492.06,508.28,4403500,508.28],["2010-09-17",483.75,491.2,481.18,490.15,5641600,490.15],["2010-09-16",479.95,482.45,479.41,481.06,1969500,481.06],["2010-09-15",479.95,481.89,478.5,480.64,2402800,480.64],["2010-09-14",482.01,484.75,480.08,480.43,2216500,480.43],["2010-09-13",480.9,484.35,479.53,482.27,2241500,482.27],["2010-09-10",479.02,479.79,475.08,476.14,1974300,476.14],["2010-09-09",477.83,480.4,470.58,476.18,2430600,476.18],["2010-09-08",465.19,472.5,464.51,470.58,2401800,470.58],["2010-09-07",464.5,467.59,463.02,464.4,1709900,464.4],["2010-09-03",470.52,471.88,467.44,470.3,2540400,470.3],["2010-09-02",462.84,464.43,460.31,463.18,1684200,463.18],["2010-09-01",454.98,464.94,452.5,460.33,3228300,460.33],["2010-08-31",450.11,454.87,448,450.02,1946800,450.02],["2010-08-30",459.15,459.76,452.42,452.69,1231400,452.69],["2010-08-27",452.56,459.99,447.65,458.83,2312400,458.83],["2010-08-26",456.06,457.26,450.44,450.98,1777000,450.98],["2010-08-25",450,457.81,450,454.62,2592100,454.62],["2010-08-24",457.7,458.37,450.92,451.39,2762700,451.39],["2010-08-23",461.5,468.25,457.73,464.07,2986200,464.07],["2010-08-20",467.97,471.59,461.02,462.02,3917600,462.02],["2010-08-19",481.01,482.51,467.25,467.97,3925000,467.97],["2010-08-18",490.44,490.87,481.55,482.15,2686400,482.15],["2010-08-17",488.53,494.7,486.03,490.52,1890700,490.52],["2010-08-16",483.68,489.87,480.5,485.59,1305000,485.59],["2010-08-13",489,491.19,486.01,486.35,1934700,486.35],["2010-08-12",483.94,494.75,482.51,492.01,2204600,492.01],["2010-08-11",497.73,498,491.5,491.74,2223000,491.74],["2010-08-10",502.35,506,498.57,503.71,2074000,503.71],["2010-08-09",502.25,505.5,501.36,505.35,1872200,505.35],["2010-08-06",505.4,505.74,496.05,500.22,3319500,500.22],["2010-08-05",505.89,508.6,503.56,508.1,2420400,508.1],["2010-08-04",492.18,507,491.05,506.32,3812500,506.32],["2010-08-03",490.5,492.46,486.76,489.83,1802300,489.83],["2010-08-02",488.99,493.28,486.94,490.41,1858700,490.41],["2010-07-30",479.65,487.36,479.14,484.85,2144100,484.85],["2010-07-29",485.95,488.88,479.33,484.99,2675500,484.99],["2010-07-28",494.94,495.25,482.67,484.35,2496000,484.35],["2010-07-27",490.58,497.5,490.17,492.63,2451200,492.63],["2010-07-26",489.09,490.75,484.88,488.97,1995200,488.97],["2010-07-23",480.77,490.59,480.01,490.06,2264400,490.06],["2010-07-22",483.23,488.98,482.48,484.81,2147700,484.81],["2010-07-21",484,485.7,475.43,477.5,3279600,477.5],["2010-07-20",461.03,482.99,460.6,481.59,4054500,481.59],["2010-07-19",461.01,469.65,457.52,466.18,4550300,466.18],["2010-07-16",469.12,470.56,459.52,459.61,7824800,459.61],["2010-07-15",491.73,494.7,482.68,494.02,4858200,494.02],["2010-07-14",489.88,493.83,486.46,491.34,3118000,491.34],["2010-07-13",482.25,492.99,480.28,489.2,3976300,489.2],["2010-07-12",472.37,479.44,471.08,475.83,3334400,475.83],["2010-07-09",471.96,473.26,462.78,467.49,4331500,467.49],["2010-07-08",453.55,457.33,449.66,456.56,2668900,456.56],["2010-07-07",438.31,451.29,435.38,450.2,3129700,450.2],["2010-07-06",444,447.67,433.63,436.07,2560100,436.07],["2010-07-02",441.62,442.28,436,436.55,1936000,436.55],["2010-07-01",445.29,448.4,433.63,439.49,3513600,439.49],["2010-06-30",454.96,457.83,444.72,444.95,3603200,444.95],["2010-06-29",463.44,464.55,451.12,454.26,3502100,454.26],["2010-06-28",472.59,477.55,469.01,472.08,1762300,472.08],["2010-06-25",477.06,477.65,470.56,472.68,2245200,472.68],["2010-06-24",479.66,482.75,473.26,475.1,1893600,475.1],["2010-06-23",486.89,486.89,478.16,482.05,2029100,482.05],["2010-06-22",489.9,496.6,485.73,486.25,2219700,486.25],["2010-06-21",499.9,500.97,484.89,488.56,2983500,488.56],["2010-06-18",502.51,503.47,498.13,500.03,2872900,500.03],["2010-06-17",503.45,505.87,496.69,500.08,1977300,500.08],["2010-06-16",496.17,504,496.11,501.27,2289300,501.27],["2010-06-15",483.08,500.4,482.18,497.99,4259600,497.99],["2010-06-14",494.48,494.5,483.19,483.19,2040400,483.19],["2010-06-11",482.5,488.71,481.62,488.5,1781700,488.5],["2010-06-10",480.37,488.5,475.84,487.01,2577900,487.01],["2010-06-09",487.22,488.88,472,474.02,2729000,474.02],["2010-06-08",487.85,488.84,477.54,484.78,2685100,484.78],["2010-06-07",499.06,500.91,483.15,485.52,3632700,485.52],["2010-06-04",499.72,509.25,496.7,498.72,3920300,498.72],["2010-06-03",495.11,508,494.7,505.6,3650700,505.6],["2010-06-02",486.68,493.87,481.46,493.37,2540800,493.37],["2010-06-01",480.43,491.06,480.12,482.37,2666800,482.37],["2010-05-28",492.74,493.45,483,485.63,2894800,485.63],["2010-05-27",484.95,492.31,481.05,490.46,2809100,490.46],["2010-05-26",482.07,489.76,475,475.47,3475600,475.47],["2010-05-25",468.15,477.45,464.01,477.07,3017400,477.07],["2010-05-24",480.73,489.79,476.8,477.16,4345600,477.16],["2010-05-21",469.06,485,464.4,472.05,9690800,472.05],["2010-05-20",485.07,485.58,473.8,475.01,4913300,475.01],["2010-05-19",496.26,499.44,487.74,494.43,3445700,494.43],["2010-05-18",510,510.97,497.07,498.37,2825500,498.37],["2010-05-17",506.78,508.36,498.35,507.97,2793800,507.97],["2010-05-14",509.77,510.99,496.25,507.53,4116000,507.53],["2010-05-13",516.5,522,510.37,510.88,3325800,510.88],["2010-05-12",512.04,512.04,502,505.39,3851800,505.39],["2010-05-11",515.67,519.88,508.22,509.05,3322600,509.05],["2010-05-10",513.97,522.82,512.6,521.65,4128000,521.65],["2010-05-07",499.97,505.32,481.33,493.14,5089000,493.14],["2010-05-06",508.75,517.52,460,498.67,5000100,498.67],["2010-05-05",500.98,515.72,500.47,509.76,4582200,509.76],["2010-05-04",526.52,526.74,504.21,506.37,6076300,506.37],["2010-05-03",526.5,532.92,525.08,530.6,1857800,530.6],["2010-04-30",531.13,537.68,525.44,525.7,2435400,525.7],["2010-04-29",533.37,536.5,526.67,532,3058900,532],["2010-04-28",532.1,534.83,521.03,529.19,3406100,529.19],["2010-04-27",528.95,538.33,527.23,529.06,3844700,529.06],["2010-04-26",544.97,544.99,529.21,531.64,4368800,531.64],["2010-04-23",547.25,549.32,542.27,544.99,2089400,544.99],["2010-04-22",552,552.5,543.35,547.06,3280700,547.06],["2010-04-21",556.46,560.25,552.16,554.3,2391500,554.3],["2010-04-20",554.17,559.66,551.06,555.04,2977400,555.04],["2010-04-19",548.75,553.99,545,550.1,3894000,550.1],["2010-04-16",563,568.81,549.63,550.15,12235500,550.15],["2010-04-15",592.17,597.84,588.29,595.3,6761800,595.3],["2010-04-14",590.06,592.34,584.01,589,3402700,589],["2010-04-13",572.53,588.88,571.13,586.77,3912300,586.77],["2010-04-12",567.35,574,566.22,572.73,2352400,572.73],["2010-04-09",567.49,568.77,564,566.22,2056600,566.22],["2010-04-08",563.32,569.85,560.05,567.49,1947500,567.49],["2010-04-07",567.3,568.75,561.86,563.54,2581000,563.54],["2010-04-06",569.46,570.89,565.4,568.22,2060100,568.22],["2010-04-05",570.9,574.88,569,571.01,1901500,571.01],["2010-04-01",571.35,573.45,565.55,568.8,2102700,568.8],["2010-03-31",565.05,569.74,562.81,567.12,3030800,567.12],["2010-03-30",562.83,567.63,560.28,566.71,1977900,566.71],["2010-03-29",563,564.72,560.57,562.45,3104500,562.45],["2010-03-26",565.27,567.39,560.02,562.69,2696200,562.69],["2010-03-25",559.02,572,558.66,562.88,3930900,562.88],["2010-03-24",545.51,559.85,539.7,557.33,6565200,557.33],["2010-03-23",557.04,558.31,542,549,5501300,549],["2010-03-22",556.11,566.85,554.28,557.5,4004800,557.5],["2010-03-19",566.23,568,557.28,560,4792400,560],["2010-03-18",564.72,568.44,562.96,566.4,1777200,566.4],["2010-03-17",568.3,571.45,564.25,565.56,3321600,565.56],["2010-03-16",561.83,568.42,560.76,565.2,3431500,565.2],["2010-03-15",566.68,569.45,556,563.18,4653900,563.18],["2010-03-12",588.14,588.28,579.16,579.54,2753400,579.54],["2010-03-11",574.26,586.21,574.2,581.14,4233300,581.14],["2010-03-10",563.76,578.5,562.21,576.45,5654900,576.45],["2010-03-09",559.85,564.66,556.5,560.19,3176600,560.19],["2010-03-08",564.78,565.18,561.01,562.48,2386400,562.48],["2010-03-05",561.35,567.67,559.9,564.21,3912200,564.21],["2010-03-04",546.5,556.13,546.2,554.59,3183800,554.59],["2010-03-03",542.36,548.12,539.25,545.32,3089400,545.32],["2010-03-02",535.48,545.66,535.01,541.06,4356800,541.06],["2010-03-01",529.2,533.29,527.74,532.69,2237900,532.69],["2010-02-26",527.42,531.75,523.48,526.8,2049300,526.8],["2010-02-25",527.12,528.49,520,526.43,3309200,526.43],["2010-02-24",533.98,538.44,530.51,531.47,2326600,531.47],["2010-02-23",543,543.63,532.29,535.07,2872600,535.07],["2010-02-22",547.35,547.5,541,542.8,2144600,542.8],["2010-02-19",540.53,544.03,539.7,540.76,2553100,540.76],["2010-02-18",537.54,545.01,536.14,543.22,2336900,543.22],["2010-02-17",542,543.4,537.61,538.21,2029700,538.21],["2010-02-16",536.87,544.13,534.3,541.3,3654400,541.3],["2010-02-12",532.97,537.15,530.5,533.12,2279700,533.12],["2010-02-11",533.32,540.49,529.5,536.4,2410000,536.4],["2010-02-10",534.07,537.79,527.69,534.45,2674500,534.45],["2010-02-09",539.54,541.53,535.07,536.44,2819600,536.44],["2010-02-08",532.5,542,531.53,533.47,2694300,533.47],["2010-02-05",528.4,533.5,522.46,531.29,3156000,531.29],["2010-02-04",537,538,525.56,526.78,3377700,526.78],["2010-02-03",528.67,542.1,528.23,540.82,2999100,540.82],["2010-02-02",534.96,534.96,527.61,531.12,4096200,531.12],["2010-02-01",534.6,535.81,530.3,533.02,2250800,533.02],["2010-01-29",538.49,540.99,525.61,529.94,4140500,529.94],["2010-01-28",544.49,547,530.6,534.29,3229100,534.29],["2010-01-27",541.27,547.65,535.31,542.1,3964400,542.1],["2010-01-26",537.97,549.6,536.29,542.42,4355500,542.42],["2010-01-25",546.59,549.88,535.51,540,4419900,540],["2010-01-22",564.5,570.6,534.86,550.01,6800400,550.01],["2010-01-21",583.44,586.82,572.25,582.98,6307700,582.98],["2010-01-20",585.98,585.98,575.29,580.41,3250700,580.41],["2010-01-19",581.2,590.42,576.29,587.62,4316700,587.62],["2010-01-15",593.34,593.56,578.04,580,5434500,580],["2010-01-14",583.9,594.2,582.81,589.85,4240100,589.85],["2010-01-13",576.49,588.38,573.9,587.09,6496600,587.09],["2010-01-12",597.65,598.16,588,590.48,4853300,590.48],["2010-01-11",604.46,604.46,594.04,601.11,7212900,601.11],["2010-01-08",592,603.25,589.11,602.02,4724300,602.02],["2010-01-07",609.4,610,592.65,594.1,6414300,594.1],["2010-01-06",625.86,625.86,606.36,608.26,3978700,608.26],["2010-01-05",627.18,627.84,621.54,623.99,3004700,623.99],["2010-01-04",626.95,629.51,624.24,626.75,1956200,626.75],["2009-12-31",624.75,625.4,619.98,619.98,1219800,619.98],["2009-12-30",618.5,622.73,618.01,622.73,1465600,622.73],["2009-12-29",624.74,624.84,618.29,619.4,1424800,619.4],["2009-12-28",621.66,625.99,618.48,622.87,1697900,622.87],["2009-12-24",612.93,619.52,612.27,618.48,858700,618.48],["2009-12-23",603.5,612.87,602.85,611.68,2072700,611.68],["2009-12-22",601.34,601.5,598.85,601.12,1880800,601.12],["2009-12-21",597.61,599.84,595.67,598.68,2571200,598.68],["2009-12-18",596.03,598.93,595,596.42,3531500,596.42],["2009-12-17",596.44,597.64,593.76,593.94,2638800,593.94],["2009-12-16",598.6,600.37,596.64,597.76,2809400,597.76],["2009-12-15",593.3,596.38,590.99,593.14,2280400,593.14],["2009-12-14",595.35,597.31,592.61,595.73,1913400,595.73],["2009-12-11",594.68,594.75,587.73,590.51,1720000,590.51],["2009-12-10",590.44,594.71,590.41,591.5,1668300,591.5],["2009-12-09",587.5,589.33,583.58,589.02,1781000,589.02],["2009-12-08",583.5,590.66,582,587.05,1524000,587.05],["2009-12-07",584.21,588.69,581,586.25,1636200,586.25],["2009-12-04",593.02,594.83,579.18,585.01,2513600,585.01],["2009-12-03",589.04,591.45,585,585.74,1428700,585.74],["2009-12-02",591,593.01,586.22,587.51,1663200,587.51],["2009-12-01",588.13,591.22,583,589.87,2320300,589.87],["2009-11-30",580.63,583.67,577.11,583,1725100,583],["2009-11-27",572,582.46,570.97,579.76,1384600,579.76],["2009-11-25",586.41,587.06,582.69,585.74,1461200,585.74],["2009-11-24",582.52,584.29,576.54,583.09,1605200,583.09],["2009-11-23",576.49,586.6,575.86,582.35,2547500,582.35],["2009-11-20",569.5,571.6,569.4,569.96,2006200,569.96],["2009-11-19",573.77,574,570,572.99,2168000,572.99],["2009-11-18",576.65,578.78,572.07,576.65,1549600,576.65],["2009-11-17",574.87,577.5,573.72,577.49,1916700,577.49],["2009-11-16",575,576.99,572.78,576.28,2199200,576.28],["2009-11-13",569.29,572.51,566.61,572.05,1666800,572.05],["2009-11-12",569.56,572.9,565.5,567.85,1886300,567.85],["2009-11-11",570.48,573.5,565.86,570.56,2319700,570.56],["2009-11-10",562.73,568.78,562,566.76,2230800,566.76],["2009-11-09",555.45,562.58,554.23,562.51,2649900,562.51],["2009-11-06",547.72,551.78,545.5,551.1,1826700,551.1],["2009-11-05",543.49,549.77,542.66,548.65,1847700,548.65],["2009-11-04",540.8,545.5,536.42,540.33,2332700,540.33],["2009-11-03",530.01,537.5,528.3,537.29,2380200,537.29],["2009-11-02",537.08,539.46,528.24,533.99,3202100,533.99],["2009-10-30",550,550.17,534.24,536.12,3468500,536.12],["2009-10-29",543.01,551.83,541,551.05,2522600,551.05],["2009-10-28",547.87,550,538.25,540.3,2567800,540.3],["2009-10-27",550.97,554.56,544.16,548.29,3216500,548.29],["2009-10-26",555.75,561.64,550.89,554.21,2970400,554.21],["2009-10-23",555.25,557.89,551.2,553.69,2392700,553.69],["2009-10-22",550,555,548,554.09,2336500,554.09],["2009-10-21",549.91,559.35,549,551.1,3670600,551.1],["2009-10-20",551.64,552.95,540.7,551.72,4043700,551.72],["2009-10-19",552.69,553.6,548.73,552.09,3217900,552.09],["2009-10-16",547.33,554.75,544.53,549.85,8841900,549.85],["2009-10-15",533.75,536.9,527.27,529.91,6100400,529.91],["2009-10-14",532.46,535.58,530,535.32,3258400,535.32],["2009-10-13",524.39,527.46,521.38,526.11,3037400,526.11],["2009-10-12",523.42,525.76,519.32,524.04,3322200,524.04],["2009-10-09",516.65,521.51,514.5,516.25,2738100,516.25],["2009-10-08",519.57,523.25,513.34,514.18,4303800,514.18],["2009-10-07",499,518.99,497.81,517.54,4874200,517.54],["2009-10-06",491.7,499.37,491.7,498.74,2732300,498.74],["2009-10-05",487.65,492.43,483.34,488.52,2144600,488.52],["2009-10-02",483.74,491.74,482.6,484.58,2600800,484.58],["2009-10-01",493,496.47,487,487.2,2813200,487.2],["2009-09-30",500,500.14,487.24,495.85,3141700,495.85],["2009-09-29",499.53,499.75,493.01,498.53,2099200,498.53],["2009-09-28",494.84,501.5,493.3,498.53,1839300,498.53],["2009-09-25",494.29,499.93,492,492.48,2049600,492.48],["2009-09-24",500.47,501.41,493,496.77,2527600,496.77],["2009-09-23",500.78,507,497.71,498.46,2704200,498.46],["2009-09-22",500.92,501.99,497.81,499.06,3041200,499.06],["2009-09-21",487.74,498.9,486.22,497,2116400,497],["2009-09-18",496.77,496.98,491.23,491.46,3283500,491.46],["2009-09-17",490.57,497.37,487.15,491.72,4483100,491.72],["2009-09-16",479.8,489.37,478.48,488.29,2585300,488.29],["2009-09-15",475.08,478.91,472.71,477.54,2398100,477.54],["2009-09-14",470.51,476.8,470.05,475.12,1975700,475.12],["2009-09-11",470.4,473.3,467.63,472.14,1902900,472.14],["2009-09-10",466.65,470.94,462,470.94,2534600,470.94],["2009-09-09",459.06,466.27,458.8,463.97,2195400,463.97],["2009-09-08",464.29,466.99,455.84,458.62,2656700,458.62],["2009-09-04",457.57,462.6,455.78,461.3,1499200,461.3],["2009-09-03",455.82,458.25,455,457.52,1646200,457.52],["2009-09-02",455.82,458.33,452.59,453.01,1804800,453.01],["2009-09-01",459.68,466.82,454.42,455.76,2594900,455.76],["2009-08-31",459.79,461.86,458,461.67,1957900,461.67],["2009-08-28",469.26,472.37,463.38,464.75,1771600,464.75],["2009-08-27",468.58,468.58,460.73,466.06,1998900,466.06],["2009-08-26",472.76,473,466.7,468,1987800,468],["2009-08-25",469.13,474.35,468.72,471.37,2341000,471.37],["2009-08-24",467.35,470.09,464.42,468.73,2453400,468.73],["2009-08-21",465.54,466.09,462.65,465.24,3560500,465.24],["2009-08-20",452,462.18,451.23,460.41,3998900,460.41],["2009-08-19",439.99,445,438.56,443.97,2255000,443.97],["2009-08-18",445.1,447.7,442.32,445.28,2351100,445.28],["2009-08-17",451.5,451.99,443.12,444.89,2620200,444.89],["2009-08-14",462.78,463.18,456.89,460,1675100,460],["2009-08-13",462.15,464.72,458.91,462.28,1995200,462.28],["2009-08-12",455.41,461.75,454.92,458.58,2341400,458.58],["2009-08-11",453.67,457.23,452.38,453.94,1712500,453.94],["2009-08-10",455.14,458.41,453.79,456.61,1742000,456.61],["2009-08-07",455.67,459.42,454.99,457.1,2543100,457.1],["2009-08-06",454.3,454.88,448.53,450.36,2110900,450.36],["2009-08-05",456,456.91,447.88,451.14,2342000,451.14],["2009-08-04",449.37,454,448.43,453.73,2389800,453.73],["2009-08-03",448.74,453.9,447.64,452.21,2590300,452.21],["2009-07-31",449.98,452.7,442.43,443.05,2860400,443.05],["2009-07-30",442.61,451.47,442.61,445.64,3198600,445.64],["2009-07-29",437.23,437.8,431.89,436.24,1987000,436.24],["2009-07-28",441,442.81,436.1,439.85,2532500,439.85],["2009-07-27",446.04,446.75,437.61,444.8,2504400,444.8],["2009-07-24",435.81,450.49,435,446.72,3626900,446.72],["2009-07-23",428.68,441.21,425.5,437.34,3478200,437.34],["2009-07-22",428,430.2,423.5,427.69,2586700,427.69],["2009-07-21",430.94,431.9,425.72,427.9,2968200,427.9],["2009-07-20",429.88,432.85,426.25,430.17,3153500,430.17],["2009-07-17",433,435.48,426.7,430.25,6854100,430.25],["2009-07-16",436.68,445.75,434.1,442.6,6554500,442.6],["2009-07-15",429.66,438.68,428.49,438.17,3777000,438.17],["2009-07-14",423.71,426.73,420.87,424.69,2895800,424.69],["2009-07-13",416.17,424.52,415.18,424.3,4045700,424.3],["2009-07-10",409.58,417.37,408.7,414.4,2926600,414.4],["2009-07-09",406.12,414.45,405.8,410.39,3275600,410.39],["2009-07-08",400,406,398.06,402.49,3441200,402.49],["2009-07-07",408.24,409.19,395.98,396.63,3259300,396.63],["2009-07-06",406.5,410.64,401.66,409.61,2262600,409.61],["2009-07-02",415.41,415.41,406.81,408.49,2517600,408.49],["2009-07-01",424.2,426.4,418.15,418.99,2310800,418.99],["2009-06-30",424,427.21,418.22,421.59,2593900,421.59],["2009-06-29",426,427.8,422.24,424.14,2169300,424.14],["2009-06-26",413.68,428.23,413.11,425.32,3256700,425.32],["2009-06-25",407,415.9,406.51,415.77,3044500,415.77],["2009-06-24",408.74,412.23,406.56,409.29,2457800,409.29],["2009-06-23",406.65,408.99,402.55,405.68,2899600,405.68],["2009-06-22",416.95,417.49,401.89,407.35,4124400,407.35],["2009-06-19",418.21,420.46,414.58,420.09,4259100,420.09],["2009-06-18",415.68,418.69,413,414.06,3085200,414.06],["2009-06-17",416.19,419.72,411.56,415.16,3490100,415.16],["2009-06-16",419.31,421.09,415.42,416,3049700,416],["2009-06-15",421.5,421.5,414,416.77,3736900,416.77],["2009-06-12",426.86,427.7,421.21,424.84,2918400,424.84],["2009-06-11",431.77,433.73,428.37,429,2865200,429],["2009-06-10",436.23,437.89,426.67,432.6,3358900,432.6],["2009-06-09",438.58,440.5,431.76,435.62,3254900,435.62],["2009-06-08",439.5,440.92,434.12,438.77,3098700,438.77],["2009-06-05",445.07,447.34,439.46,444.32,3680800,444.32],["2009-06-04",435.3,441.24,434.5,440.28,3638100,440.28],["2009-06-03",426,432.46,424,431.65,3532800,431.65],["2009-06-02",426.25,429.96,423.4,428.4,2623600,428.4],["2009-06-01",418.73,429.6,418.53,426.56,3322400,426.56],["2009-05-29",412.11,417.23,410.7,417.23,2648200,417.23],["2009-05-28",408.68,411.62,404.61,410.4,2668800,410.4],["2009-05-27",405.64,411.86,404.81,405.56,3034300,405.56],["2009-05-26",391.95,405,390,404.36,3104500,404.36],["2009-05-22",396.66,398.65,392,393.5,1718600,393.5],["2009-05-21",396.3,402.84,393.84,396.5,2719800,396.5],["2009-05-20",402.09,405.67,395,397.18,2284000,397.18],["2009-05-19",396.1,401.64,393,398.88,2837500,398.88],["2009-05-18",394.73,397.31,385.4,396.84,3351700,396.84],["2009-05-15",391.1,394.11,389.09,390,3008700,390],["2009-05-14",388.8,392.21,384.69,387.5,2937000,387.5],["2009-05-13",394.09,396.39,388.35,389.54,2842800,389.54],["2009-05-12",410.01,410.99,395.11,399.01,3790800,399.01],["2009-05-11",402.8,412,401.2,407.98,2559300,407.98],["2009-05-08",402.85,410.13,395,407.33,3865100,407.33],["2009-05-07",404.1,404.99,392.5,396.61,2999800,396.61],["2009-05-06",406.79,408.28,401,403.47,2632900,403.47],["2009-05-05",399.98,405,397.25,402.99,2400800,402.99],["2009-05-04",398.17,402.4,394.79,401.98,3203000,401.98],["2009-05-01",395.03,397.59,391.55,393.69,2427700,393.69],["2009-04-30",395.76,403.75,394.8,395.97,4355700,395.97],["2009-04-29",385.97,394.97,385.83,391.47,3610000,391.47],["2009-04-28",383.75,389.05,381.54,383.71,2943600,383.71],["2009-04-27",384.34,389.49,382.75,385.95,2290600,385.95],["2009-04-24",386.05,393.18,380.5,389.49,3385400,389.49],["2009-04-23",387.51,389.75,381.11,384.69,2609000,384.69],["2009-04-22",381.75,390,379.01,383.86,3501800,383.86],["2009-04-21",376.17,384.3,376.1,381.47,3695400,381.47],["2009-04-20",386.15,390.65,375.89,379.3,4428900,379.3],["2009-04-17",386.02,399.82,384.81,392.24,10730800,392.24],["2009-04-16",381.5,392.9,381.02,388.74,10185100,388.74],["2009-04-15",367.1,381.06,364.16,379.5,4930700,379.5],["2009-04-14",376.94,376.99,365.6,368.91,3428600,368.91],["2009-04-13",371.33,379.1,370.3,378.11,3050100,378.11],["2009-04-09",369.5,374.35,366.25,372.5,3382600,372.5],["2009-04-08",363.5,365,356.21,362,2765200,362],["2009-04-07",362.6,363.75,355.31,358.65,3680100,358.65],["2009-04-06",367,369.82,361.4,368.24,3280300,368.24],["2009-04-03",364.5,371.72,358,369.78,3789800,369.78],["2009-04-02",363.31,369.76,360.32,362.5,4488000,362.5],["2009-04-01",343.78,355.24,340.61,354.09,3301200,354.09],["2009-03-31",348.93,353.51,346.18,348.06,3655300,348.06],["2009-03-30",342.55,343.81,336.05,342.69,3094100,342.69],["2009-03-27",350,352,345.47,347.7,3322800,347.7],["2009-03-26",353.13,359.16,348.5,353.29,6003300,353.29],["2009-03-25",350.4,351.34,336.25,344.07,4336300,344.07],["2009-03-24",346.5,353.84,344,347.17,3820000,347.17],["2009-03-23",333.56,349.45,333.03,348.6,4271500,348.6],["2009-03-20",330.3,332.99,326.34,330.16,4737900,330.16],["2009-03-19",331.68,336,327.38,329.94,4111200,329.94],["2009-03-18",334.81,340,328.05,333.1,5012200,333.1],["2009-03-17",320.18,335.34,319.09,335.34,4712500,335.34],["2009-03-16",325.99,329.73,318.59,319.69,4946800,319.69],["2009-03-13",326.1,327.46,319.03,324.42,3906400,324.42],["2009-03-12",317.54,325,313.65,323.53,5024100,323.53],["2009-03-11",310.1,320,305.71,317.91,5923600,317.91],["2009-03-10",298.25,310.5,294.25,308.17,6730200,308.17],["2009-03-09",299.98,306.57,289.45,290.89,6471300,290.89],["2009-03-06",307.22,310.19,294.25,308.57,7234200,308.57],["2009-03-05",316.48,319.08,302.64,305.64,6529900,305.64],["2009-03-04",323.16,329,315.38,318.92,7818400,318.92],["2009-03-03",330.07,333.69,322.35,325.48,6524800,325.48],["2009-03-02",333.33,340.7,326,327.16,5788500,327.16],["2009-02-27",332.95,343.82,331.11,337.99,5420000,337.99],["2009-02-26",345.96,352.49,337.16,337.18,5605600,337.18],["2009-02-25",342.15,352.3,338.92,341.64,6439100,341.64],["2009-02-24",331.02,349.62,330.89,345.45,6095900,345.45],["2009-02-23",347,349.8,329.55,330.06,5221100,330.06],["2009-02-20",338.05,348.92,335,346.45,6217100,346.45],["2009-02-19",357.47,359.8,341.41,342.64,4988700,342.64],["2009-02-18",347.24,353.38,340.52,353.11,6024500,353.11],["2009-02-17",346.51,347.09,339.69,342.66,5680400,342.66],["2009-02-13",362.19,362.99,355.23,357.68,4146700,357.68],["2009-02-12",353.16,363.62,351.48,363.05,5550300,363.05],["2009-02-11",358.95,365,353,358.04,5231600,358.04],["2009-02-10",375.98,377.5,357.89,358.51,7103700,358.51],["2009-02-09",371.28,381,367.3,378.77,4977300,378.77],["2009-02-06",356.46,373.81,355.44,371.28,7038100,371.28],["2009-02-05",340.91,355.38,337,353.72,7264400,353.72],["2009-02-04",340.07,354.44,339.17,343,6817400,343],["2009-02-03",342.57,343,333.83,340.45,6556500,340.45],["2009-02-02",334.29,345,332,340.57,5206900,340.57],["2009-01-30",344.69,348.8,336,338.53,4672000,338.53],["2009-01-29",344.54,345.05,340.11,343.32,7283800,343.32],["2009-01-28",337.98,352.33,336.31,348.67,7691400,348.67],["2009-01-27",326.45,333.87,324.27,331.48,4927300,331.48],["2009-01-26",324.85,328,320.56,323.87,4610700,323.87],["2009-01-23",309.27,331.96,304.22,324.7,10732800,324.7],["2009-01-22",298.04,309.35,295.15,306.5,8267000,306.5],["2009-01-21",288.35,303.5,288.35,303.08,4924500,303.08],["2009-01-20",299.14,299.5,282.75,282.75,5048200,282.75],["2009-01-16",305.02,308.25,295.7,299.67,5224400,299.67],["2009-01-15",297.57,303.58,286.79,298.99,5934500,298.99],["2009-01-14",310,313.8,297.75,300.97,5467900,300.97],["2009-01-13",311.77,320.6,310.39,314.32,4432500,314.32],["2009-01-12",316.31,318.95,310.23,312.69,3304300,312.69],["2009-01-09",327.5,327.5,313.4,315.07,4340500,315.07],["2009-01-08",318.28,325.19,317.34,325.19,3600700,325.19],["2009-01-07",328.32,330.91,318.75,322.01,4494500,322.01],["2009-01-06",332.98,340.8,326.39,334.06,6425200,334.06],["2009-01-05",321,331.24,315,328.05,4889000,328.05],["2009-01-02",308.6,321.82,305.5,321.32,3610500,321.32],["2008-12-31",304.2,311,302.61,307.65,2886800,307.65],["2008-12-30",300.8,306.81,298.71,303.11,3843500,303.11],["2008-12-29",300.22,301.38,291.58,297.42,3701900,297.42],["2008-12-26",304.07,305.26,298.31,300.36,1959100,300.36],["2008-12-24",301.48,306.34,298.38,302.95,1921500,302.95],["2008-12-23",300.43,303.31,296.67,298.02,3777700,298.02],["2008-12-22",308.56,309.5,290.63,297.11,3917600,297.11],["2008-12-19",310.99,317.79,309,310.17,5612600,310.17],["2008-12-18",316.7,320.35,309.11,310.28,4763500,310.28],["2008-12-17",318.64,322.13,312.42,315.24,5789700,315.24],["2008-12-16",314.52,329.5,311.27,325.28,7059600,325.28],["2008-12-15",314.01,318.49,305.11,310.67,6737900,310.67],["2008-12-12",295.71,316.47,294,315.76,5722100,315.76],["2008-12-11",304.17,312.88,297.8,300.22,6179200,300.22],["2008-12-10",309.24,314.9,304.51,308.82,5237000,308.82],["2008-12-09",297.69,318,297.01,305.97,6889900,305.97],["2008-12-08",289.99,309.44,282,302.11,8144300,302.11],["2008-12-05",271.02,284.24,264.02,283.99,6521200,283.99],["2008-12-04",276.53,283.49,268.77,274.34,4886600,274.34],["2008-12-03",269.85,281.36,265.34,279.43,5904800,279.43],["2008-12-02",269.73,277.78,262.58,275.11,5839700,275.11],["2008-12-01",286.68,287.38,265.98,265.99,5711200,265.99],["2008-11-28",290.58,296.45,288.28,292.96,2565500,292.96],["2008-11-26",280.28,295.46,276.2,292.09,6356600,292.09],["2008-11-25",268.68,286.66,267.32,282.05,10771200,282.05],["2008-11-24",269.26,269.95,249.01,257.44,10054700,257.44],["2008-11-21",262.51,269.37,247.3,262.43,10244500,262.43],["2008-11-20",274.89,282.94,259.04,259.56,9779400,259.56],["2008-11-19",295.39,300.19,278.58,280.18,7834600,280.18],["2008-11-18",301.57,303.73,285.35,297.42,8346100,297.42],["2008-11-17",303,310.16,297.95,300.12,7543800,300.12],["2008-11-14",303.25,324.99,302.56,310.02,9517100,310.02],["2008-11-13",291.77,313,280,312.08,13234700,312.08],["2008-11-12",302.05,312.49,287.76,291,10051100,291],["2008-11-11",308.69,316.3,300.52,311.46,10146600,311.46],["2008-11-10",328,329.44,309.47,318.78,8080100,318.78],["2008-11-07",333.12,341.15,325.33,331.14,4681300,331.14],["2008-11-06",339.97,344.42,325.81,331.22,8574800,331.22],["2008-11-05",362.15,368.88,341.31,342.24,6946500,342.24],["2008-11-04",353.44,372.36,345.5,366.94,7349900,366.94],["2008-11-03",357.58,362.99,341.43,346.49,5954500,346.49],["2008-10-31",356.16,371.96,354.27,359.36,7423300,359.36],["2008-10-30",368.46,372,358.37,359.69,7988900,359.69],["2008-10-29",365.79,371,352.37,358,9756600,358],["2008-10-28",339.05,369.31,328.51,368.75,8105400,368.75],["2008-10-27",334.81,343,325.6,329.49,6200700,329.49],["2008-10-24",326.47,350.47,324.74,339.29,7359000,339.29],["2008-10-23",353.65,358,337.99,352.32,6478900,352.32],["2008-10-22",356.99,369.69,344,355.67,6560000,355.67],["2008-10-21",372.39,383.78,362,362.75,5782000,362.75],["2008-10-20",379.75,380.98,359.59,379.32,6753400,379.32],["2008-10-17",378.96,386,363.55,372.54,14249200,372.54],["2008-10-16",332.76,356.5,309.44,353.02,16239700,353.02],["2008-10-15",354.65,359,338.83,339.17,6721400,339.17],["2008-10-14",393.53,394.5,357,362.71,7784800,362.71],["2008-10-13",355.79,381.95,345.75,381.02,8905500,381.02],["2008-10-10",313.16,341.89,310.3,332,10597800,332],["2008-10-09",344.52,348.57,321.67,328.98,8075000,328.98],["2008-10-08",330.16,358.99,326.11,338.11,11826400,338.11],["2008-10-07",373.33,374.98,345.37,346.01,11054400,346.01],["2008-10-06",373.98,375.99,357.16,371.21,11220600,371.21],["2008-10-03",397.35,412.5,383.07,386.91,7992900,386.91],["2008-10-02",409.79,409.98,386,390.49,5984900,390.49],["2008-10-01",411.15,416.98,403.1,411.72,6234800,411.72],["2008-09-30",395.98,425.08,392.32,400.52,3086300,400.52],["2008-09-29",419.51,423.51,380.71,381,10762900,381],["2008-09-26",428,437.16,421.03,431.04,5292500,431.04],["2008-09-25",438.84,450,435.98,439.6,5020300,439.6],["2008-09-24",430.34,445,430.11,435.11,4242000,435.11],["2008-09-23",433.25,440.79,425.72,429.27,5204200,429.27],["2008-09-22",454.13,454.13,429,430.14,4407300,430.14],["2008-09-19",461,462.07,443.28,449.15,10006000,449.15],["2008-09-18",422.64,439.18,410.5,439.08,8589400,439.08],["2008-09-17",438.48,439.14,413.44,414.49,9126900,414.49],["2008-09-16",425.96,449.28,425.49,442.93,6990700,442.93],["2008-09-15",424,441.97,423.71,433.86,6567400,433.86],["2008-09-12",430.21,441.99,429,437.66,6028000,437.66],["2008-09-11",408.35,435.09,406.38,433.75,6471400,433.75],["2008-09-10",424.47,424.48,409.68,414.16,6226800,414.16],["2008-09-09",423.17,432.38,415,418.66,7229600,418.66],["2008-09-08",452.02,452.94,417.55,419.95,9017900,419.95],["2008-09-05",445.49,452.46,440.08,444.25,4534300,444.25],["2008-09-04",460,463.24,449.4,450.26,4848500,450.26],["2008-09-03",468.73,474.29,459.58,464.41,4314600,464.41],["2008-09-02",476.77,482.18,461.42,465.25,6111500,465.25],["2008-08-29",469.75,471.01,462.33,463.29,3848200,463.29],["2008-08-28",472.49,476.45,470.33,473.78,3029700,473.78],["2008-08-27",473.73,474.83,464.84,468.58,4387100,468.58],["2008-08-26",483.46,483.46,470.59,474.16,3308200,474.16],["2008-08-25",486.11,497,481.5,483.01,2014300,483.01],["2008-08-22",491.5,494.88,489.48,490.59,2297200,490.59],["2008-08-21",482.92,489.9,479.27,486.53,3514100,486.53],["2008-08-20",494.72,496.69,482.57,485,3982100,485],["2008-08-19",490.43,498.28,486.63,490.5,3046500,490.5],["2008-08-18",509.84,510,495.51,498.3,3333900,498.3],["2008-08-15",506.99,510.66,505.5,510.15,3545700,510.15],["2008-08-14",497.7,507.61,496.29,505.49,2918600,505.49],["2008-08-13",501.6,503.54,493.88,500.03,3625500,500.03],["2008-08-12",502,506.13,498,502.61,2755700,502.61],["2008-08-11",492.47,508.88,491.78,500.84,4239300,500.84],["2008-08-08",480.15,495.75,475.69,495.01,3739300,495.01],["2008-08-07",482,484,476.41,479.12,2773800,479.12],["2008-08-06",478.37,489.77,472.51,486.34,3375800,486.34],["2008-08-05",467.59,480.08,466.33,479.85,3584500,479.85],["2008-08-04",468.12,473.01,461.9,463,2487000,463],["2008-08-01",472.51,473.22,462.5,467.86,3007900,467.86],["2008-07-31",474.56,480.89,471.44,473.75,2865100,473.75],["2008-07-30",485.5,486.02,472.81,482.7,3490700,482.7],["2008-07-29",479.3,487.26,478,483.11,2802800,483.11],["2008-07-28",492.09,492.09,475.13,477.12,3160000,477.12],["2008-07-25",486.49,493.13,481.5,491.98,3183500,491.98],["2008-07-24",496.7,496.87,475.62,475.62,3540900,475.62],["2008-07-23",481.61,497.23,478.1,489.22,4894100,489.22],["2008-07-22",466.72,480.25,465.6,477.11,4691500,477.11],["2008-07-21",480.88,484.09,465.7,468.8,5901500,468.8],["2008-07-18",498.35,498.98,478.19,481.32,11292400,481.32],["2008-07-17",534.16,537.05,524.5,533.44,8787400,533.44],["2008-07-16",514.04,536.5,510.6,535.6,4742200,535.6],["2008-07-15",516.28,527.5,501.1,516.09,6071000,516.09],["2008-07-14",539,540.06,515.45,521.62,4424800,521.62],["2008-07-11",536.5,539.5,519.43,533.8,4981400,533.8],["2008-07-10",545,549.5,530.72,540.57,4331700,540.57],["2008-07-09",550.76,555.68,540.73,541.55,4154000,541.55],["2008-07-08",545.99,555.19,540,554.53,4932400,554.53],["2008-07-07",542.3,549,535.6,543.91,4255200,543.91],["2008-07-03",530.88,539.23,527.5,537,2400500,537],["2008-07-02",536.51,540.38,526.06,527.04,4223000,527.04],["2008-07-01",519.58,536.72,517,534.73,4959900,534.73],["2008-06-30",532.47,538,523.06,526.42,3765300,526.42],["2008-06-27",527.68,530,515.09,528.07,5447500,528.07],["2008-06-26",544.1,544.93,528.26,528.82,5659500,528.82],["2008-06-25",544.97,557.8,543.67,551,4122200,551],["2008-06-24",545.14,551.19,535.1,542.3,4672600,542.3],["2008-06-23",545.36,553.15,542.02,545.21,3635900,545.21],["2008-06-20",556.98,556.98,544.51,546.43,5983100,546.43],["2008-06-19",555.35,563.78,550.81,560.2,5683100,560.2],["2008-06-18",564.51,568.99,559.16,562.38,3381200,562.38],["2008-06-17",576.35,578.07,568.38,569.46,3462900,569.46],["2008-06-16",566.5,579.1,566.5,572.81,3542800,572.81],["2008-06-13",561.49,575.7,561.34,571.51,6184400,571.51],["2008-06-12",548.76,558,546.88,552.95,5491600,552.95],["2008-06-11",556.24,557.34,544.46,545.2,3812900,545.2],["2008-06-10",549.56,558.82,546.78,554.17,3657400,554.17],["2008-06-09",568.06,570,545.4,557.87,5288300,557.87],["2008-06-06",579.75,580.72,567,567,4734500,567],["2008-06-05",577.08,588.04,576.21,586.3,3916700,586.3],["2008-06-04",565.33,578,564.55,572.22,3363200,572.22],["2008-06-03",576.5,580.5,560.61,567.3,4305300,567.3],["2008-06-02",582.5,583.89,571.27,575,3674200,575],["2008-05-30",583.47,589.92,581.3,585.8,3225200,585.8],["2008-05-29",574.79,585.88,573.2,583,4845000,583],["2008-05-28",567.94,571.49,561.1,568.24,4050400,568.24],["2008-05-27",544.96,562.6,543.85,560.9,3865500,560.9],["2008-05-23",546.96,553,537.81,544.62,4431500,544.62],["2008-05-22",551.95,554.21,540.25,549.46,5076300,549.46],["2008-05-21",578.52,581.41,547.89,549.99,6468100,549.99],["2008-05-20",574.63,582.48,572.91,578.6,3313600,578.6],["2008-05-19",578.55,588.88,573.52,577.52,5604500,577.52],["2008-05-16",581.43,584.68,578.32,580.07,4274100,580.07],["2008-05-15",579,582.95,575.61,581,4342700,581],["2008-05-14",586.49,591.19,575.25,576.3,4375800,576.3],["2008-05-13",586.23,587.95,578.55,583,5163500,583],["2008-05-12",574.75,586.75,568.91,584.94,4863900,584.94],["2008-05-09",579,585,571.3,573.2,4484900,573.2],["2008-05-08",586.2,589.3,578.91,583.01,5122900,583.01],["2008-05-07",590.27,599.49,576.43,579,6613000,579],["2008-05-06",591,592,583,586.36,4629300,586.36],["2008-05-05",598.86,599,587.13,594.9,6281000,594.9],["2008-05-02",598.49,602.45,579.3,581.29,6998800,581.29],["2008-05-01",578.31,594.93,576.97,593.08,6602800,593.08],["2008-04-30",562.21,584.86,558.47,574.29,7903000,574.29],["2008-04-29",550.83,563.4,550.01,558.47,4346000,558.47],["2008-04-28",545.88,556.81,539,552.12,4008600,552.12],["2008-04-25",549.02,553,542.73,544.06,4164400,544.06],["2008-04-24",551.29,554.49,540.02,543.04,4135100,543.04],["2008-04-23",557.94,559.31,540.95,546.49,4921500,546.49],["2008-04-22",537.57,560.83,537.56,555,7938500,555],["2008-04-21",539.39,542.59,530.29,537.79,7439700,537.79],["2008-04-18",535.21,547.7,524.77,539.41,18235600,539.41],["2008-04-17",455.63,459.37,446.52,449.54,13353000,449.54],["2008-04-16",444.4,458.28,441,455.03,7630700,455.03],["2008-04-15",458.13,459.72,443.72,446.84,4577600,446.84],["2008-04-14",457.16,457.45,450.15,451.66,3842600,451.66],["2008-04-11",464.07,467.26,455.01,457.45,4169700,457.45],["2008-04-10",464.96,473.86,461.85,469.08,5072400,469.08],["2008-04-09",469.13,472,457.54,464.19,6048100,464.19],["2008-04-08",473.04,474.14,462.01,467.81,4547000,467.81],["2008-04-07",477.03,485.44,473.53,476.82,5943500,476.82],["2008-04-04",457.01,477.83,456.2,471.09,5897200,471.09],["2008-04-03",461.73,463.29,448.13,455.12,6778400,455.12],["2008-04-02",469.9,475.74,460.39,465.7,5999000,465.7],["2008-04-01",447.74,466.5,446.87,465.71,6093100,465.71],["2008-03-31",435.64,442.69,432.01,440.47,4446400,440.47],["2008-03-28",447.46,453.57,434.31,438.08,4376200,438.08],["2008-03-27",446,448.61,440.49,444.08,5832200,444.08],["2008-03-26",452.59,462.87,449.29,458.19,5225700,458.19],["2008-03-25",457.46,457.47,446,450.78,5831600,450.78],["2008-03-24",438.43,465.78,437.72,460.56,6763500,460.56],["2008-03-20",427.32,435.7,417.5,433.55,9913400,433.55],["2008-03-19",441.11,447.5,431.67,432,6179000,432],["2008-03-18",428.98,440.84,425.53,439.16,7237200,439.16],["2008-03-17",427.99,433.71,412.11,419.87,7888200,419.87],["2008-03-14",442.98,449.34,430.62,437.92,6574400,437.92],["2008-03-13",432.67,446.98,428.78,443.01,7726600,443.01],["2008-03-12",440.01,447.88,438.07,440.18,6651900,440.18],["2008-03-11",425.26,440.15,424.65,439.84,8826900,439.84],["2008-03-10",428.83,431,413.04,413.62,7987600,413.62],["2008-03-07",428.88,440,426.24,433.35,8071800,433.35],["2008-03-06",447.69,453.3,431.18,432.7,7470100,432.7],["2008-03-05",445.25,454.17,444,447.7,7436600,447.7],["2008-03-04",450.95,453.36,435.78,444.6,13621700,444.6],["2008-03-03",471.51,472.72,450.11,457.02,7554500,457.02],["2008-02-29",471.87,479.74,464.65,471.18,9425400,471.18],["2008-02-28",470.5,479.09,467.36,475.39,6586900,475.39],["2008-02-27",460.13,475.49,459.64,472.86,10121900,472.86],["2008-02-26",461.2,466.47,446.85,464.19,23287300,464.19],["2008-02-25",505.95,506.5,485.74,486.44,8372800,486.44],["2008-02-22",502.06,509,497.55,507.8,5515900,507.8],["2008-02-21",512.85,513.21,499.5,502.86,5677800,502.86],["2008-02-20",503.51,511.01,498.82,509,6662200,509],["2008-02-19",534.94,535.06,506.5,508.95,6350400,508.95],["2008-02-15",528.31,532.66,524.33,529.64,5240100,529.64],["2008-02-14",538.35,541.04,531,532.25,6476700,532.25],["2008-02-13",522.5,534.99,518.69,534.62,6624700,534.62],["2008-02-12",523.39,530.6,513.03,518.09,6662300,518.09],["2008-02-11",520.52,523.71,513.4,521.16,5826000,521.16],["2008-02-08",509.41,517.73,508.7,516.69,6828900,516.69],["2008-02-07",496.86,514.19,494.76,504.95,7928900,504.95],["2008-02-06",511.14,511.17,497.93,501.71,7636400,501.71],["2008-02-05",489.43,509,488.52,506.8,11203300,506.8],["2008-02-04",509.07,512.78,492.55,495.43,13157100,495.43],["2008-02-01",528.67,536.67,510,515.9,17600500,515.9],["2008-01-31",539.01,573,534.29,564.3,14871300,564.3],["2008-01-30",549.19,560.43,543.51,548.27,7939600,548.27],["2008-01-29",560.47,561.33,540.67,550.52,6283000,550.52],["2008-01-28",570.97,572.24,548.6,555.98,5816700,555.98],["2008-01-25",591.81,595,566.18,566.4,6966000,566.4],["2008-01-24",558.8,579.69,554.14,574.49,9400900,574.49],["2008-01-23",560.71,568,519,548.62,16965700,548.62],["2008-01-22",562.03,597.5,561.2,584.35,9501500,584.35],["2008-01-18",608.36,609.99,598.45,600.25,8539600,600.25],["2008-01-17",620.76,625.74,598.01,600.79,8216800,600.79],["2008-01-16",628.97,639.99,601.93,615.95,10560000,615.95],["2008-01-15",645.9,649.05,635.38,637.65,5568200,637.65],["2008-01-14",651.14,657.4,645.25,653.82,4447500,653.82],["2008-01-11",642.7,649.47,630.11,638.25,4977000,638.25],["2008-01-10",645.01,657.2,640.11,646.73,6334200,646.73],["2008-01-09",630.04,653.34,622.51,653.2,6739700,653.2],["2008-01-08",653,659.96,631,631.68,5339100,631.68],["2008-01-07",653.94,662.28,637.35,649.25,6403400,649.25],["2008-01-04",679.69,680.96,655,657,5359800,657],["2008-01-03",685.26,686.85,676.52,685.33,3252500,685.33],["2008-01-02",692.87,697.37,677.73,685.19,4306900,685.19],["2007-12-31",698.57,702.49,690.58,691.48,2376200,691.48],["2007-12-28",704.93,707.95,696.54,702.53,2562700,702.53],["2007-12-27",707.07,716,700.74,700.74,2942500,700.74],["2007-12-26",698.99,713.22,698.21,710.84,2530000,710.84],["2007-12-24",694.99,700.73,693.06,700.73,1628400,700.73],["2007-12-21",697.88,699.26,693.24,696.69,5382000,696.69],["2007-12-20",685.83,691,680.61,689.69,4422200,689.69],["2007-12-19",674.21,679.5,669,677.37,4421100,677.37],["2007-12-18",674.16,676.71,652.5,673.35,7166700,673.35],["2007-12-17",688,695.42,663.67,669.23,5486000,669.23],["2007-12-14",687.51,699.7,687.26,689.96,3673500,689.96],["2007-12-13",696.31,697.62,681.21,694.05,5040800,694.05],["2007-12-12",714,714.32,688.5,699.35,6159100,699.35],["2007-12-11",719.94,720.99,698.78,699.2,6139100,699.2],["2007-12-10",715.99,724.8,714,718.42,3856200,718.42],["2007-12-07",714.99,718,710.5,714.87,3852100,714.87],["2007-12-06",697.8,716.56,697.01,715.26,4909000,715.26],["2007-12-05",692.73,698.93,687.5,698.51,4209600,698.51],["2007-12-04",678.31,692,677.12,684.16,4231800,684.16],["2007-12-03",691.01,695,681.14,681.53,4325100,681.53],["2007-11-30",711,711.06,682.11,693,7895500,693],["2007-11-29",690.75,702.79,687.77,697,6208000,697],["2007-11-28",682.11,694.3,672.14,692.26,7916500,692.26],["2007-11-27",674.8,676.43,650.26,673.57,8904500,673.57],["2007-11-26",680.2,693.4,665,666,6790100,666],["2007-11-23",670,678.28,668.11,676.7,2738700,676.7],["2007-11-21",643.77,669.97,642.08,660.52,7013500,660.52],["2007-11-20",636.48,659.1,632.87,648.54,9840600,648.54],["2007-11-19",629.59,636.77,618.5,625.85,5527400,625.85],["2007-11-16",633.94,635.49,616.02,633.63,9042800,633.63],["2007-11-15",638.57,647.5,624,629.65,6967700,629.65],["2007-11-14",673.28,675.49,636.27,641.68,8094700,641.68],["2007-11-13",644.99,660.92,632.07,660.55,8426100,660.55],["2007-11-12",657.74,669.93,626.21,632.07,10227300,632.07],["2007-11-09",675.78,681.88,661.21,663.97,11388100,663.97],["2007-11-08",734.6,734.89,677.18,693.84,16512200,693.84],["2007-11-07",741.13,747.24,723.14,732.94,8252900,732.94],["2007-11-06",737.56,741.79,725,741.79,8436300,741.79],["2007-11-05",706.99,730.23,706.07,725.65,8883700,725.65],["2007-11-02",710.51,713.58,697.34,711.25,5841500,711.25],["2007-11-01",702.79,713.72,701.78,703.21,6527200,703.21],["2007-10-31",700.69,707,696.04,707,6876800,707],["2007-10-30",677.51,699.91,677.51,694.77,6900600,694.77],["2007-10-29",677.77,680,672.09,679.23,3066300,679.23],["2007-10-26",674.03,676.54,668.06,674.6,3353900,674.6],["2007-10-25",678.68,678.97,663.55,668.51,5795500,668.51],["2007-10-24",672.71,677.47,659.56,675.82,7404200,675.82],["2007-10-23",661.25,677.6,660,675.77,6793700,675.77],["2007-10-22",638.67,655,636.28,650.75,6664400,650.75],["2007-10-19",654.56,658.49,643.23,644.71,15789000,644.71],["2007-10-18",635.41,641.37,628.5,639.62,12289200,639.62],["2007-10-17",630.45,634,621.59,633.48,6030500,633.48],["2007-10-16",618.49,625.92,611.99,616,6025300,616],["2007-10-15",638.47,639.86,615.55,620.11,6943800,620.11],["2007-10-12",623.98,638.4,618.24,637.39,6823700,637.39],["2007-10-11",633.64,641.41,609,622,11799000,622],["2007-10-10",621.36,625.68,616.8,625.39,5385600,625.39],["2007-10-09",615.11,623.78,608.39,615.18,8767800,615.18],["2007-10-08",595,610.26,593.95,609.62,5028000,609.62],["2007-10-05",587.11,596,587.01,594.05,5068700,594.05],["2007-10-04",585.09,585.09,577.06,579.03,2986700,579.03],["2007-10-03",586.25,588.99,580.36,584.02,3879500,584.02],["2007-10-02",583.38,596.81,580.01,584.39,7067500,584.39],["2007-10-01",569.97,584.35,569.61,582.55,4711300,582.55],["2007-09-28",567,569.55,564.12,567.27,2639500,567.27],["2007-09-27",571.73,571.74,565.78,567.5,2056300,567.5],["2007-09-26",570.4,571.79,563.81,568.16,3346100,568.16],["2007-09-25",564,569.56,562.86,569,2730600,569],["2007-09-24",561,571.46,560,568.02,5297000,568.02],["2007-09-21",556.34,560.79,552.83,560.1,8011700,560.1],["2007-09-20",547,556.8,546.03,552.83,5525000,552.83],["2007-09-19",539.27,549.45,538.86,546.85,5526900,546.85],["2007-09-18",526.52,537.25,524.27,535.27,4215700,535.27],["2007-09-17",526.53,529.28,524.07,525.3,2197500,525.3],["2007-09-14",523.2,530.27,522.22,528.75,2764900,528.75],["2007-09-13",524.06,527.21,523.22,524.78,1891100,524.78],["2007-09-12",520.53,527.98,519,522.65,2986000,522.65],["2007-09-11",516.99,521.65,515.73,521.33,2703600,521.33],["2007-09-10",521.28,522.07,510.88,514.48,3225800,514.48],["2007-09-07",517.86,521.24,516.8,519.35,3663600,519.35],["2007-09-06",529.36,529.83,518.24,523.52,3625900,523.52],["2007-09-05",523.4,529.48,522.25,527.8,3312900,527.8],["2007-09-04",515.02,528,514.62,525.15,3693700,525.15],["2007-08-31",513.1,516.5,511.47,515.25,2977600,515.25],["2007-08-30",512.36,515.4,510.58,511.4,2651700,511.4],["2007-08-29",507.84,513.3,507.23,512.88,2549300,512.88],["2007-08-28",511.53,514.98,505.79,506.4,3273900,506.4],["2007-08-27",514.43,517.45,511.4,513.26,2325100,513.26],["2007-08-24",512.61,515.55,508.5,515,2472700,515],["2007-08-23",516,516.13,507,512.19,3076700,512.19],["2007-08-22",509.96,516.25,509.25,512.75,3252700,512.75],["2007-08-21",498.94,508.16,497.77,506.61,3610600,506.61],["2007-08-20",502.46,502.56,496,497.92,2697300,497.92],["2007-08-17",497.44,501,491.65,500.04,5479400,500.04],["2007-08-16",492.02,496.43,480.46,491.52,8645600,491.52],["2007-08-15",509,511.69,496.71,497.55,5409500,497.55],["2007-08-14",515.72,517.4,508,508.6,3633700,508.6],["2007-08-13",519.54,519.75,513.03,515.5,3179300,515.5],["2007-08-10",510.18,518.72,505.63,515.75,5875200,515.75],["2007-08-09",520.8,526.82,514.63,514.73,4846500,514.73],["2007-08-08",519.34,525.78,517.09,525.78,4068800,525.78],["2007-08-07",509.75,519.88,509.04,516.02,4264300,516.02],["2007-08-06",503,510.15,502.5,510,3651500,510],["2007-08-03",510.05,513.2,503,503,3176200,503],["2007-08-02",513.72,514.99,509,511.01,3154900,511.01],["2007-08-01",510.5,516.51,508.14,512.94,4421500,512.94],["2007-07-31",520.23,520.44,510,510,4270500,510],["2007-07-30",512.92,519.34,510.5,516.11,3963300,516.11],["2007-07-27",508.53,516.62,505.5,511.89,5509100,511.89],["2007-07-26",508.74,512.59,498.88,508,6883400,508],["2007-07-25",516.98,517.02,505.56,509.76,5545000,509.76],["2007-07-24",509.3,518.69,507.11,514,5572100,514],["2007-07-23",519.01,520,512.15,512.51,6356700,512.51],["2007-07-20",511.9,523.18,509.5,520.12,17772300,520.12],["2007-07-19",553.46,553.52,542.24,548.59,11127200,548.59],["2007-07-18",553.89,554.5,543.81,549.5,6080000,549.5],["2007-07-17",555.04,557.73,552.38,555,4328600,555],["2007-07-16",550.3,558.58,549.31,552.99,6599500,552.99],["2007-07-13",547.91,552.67,547.25,552.16,5237100,552.16],["2007-07-12",545.86,547.32,540.22,545.33,3441600,545.33],["2007-07-11",543.61,546.5,540.01,544.47,3309300,544.47],["2007-07-10",543.79,547,541.65,543.34,3856000,543.34],["2007-07-09",543,548.74,540.26,542.56,3729800,542.56],["2007-07-06",541.25,543.87,538.73,539.4,2747000,539.4],["2007-07-05",535.56,544.4,532.15,541.63,4942900,541.63],["2007-07-03",531.06,534.4,527.5,534.34,1871800,534.34],["2007-07-02",525.49,531.85,524.2,530.38,3487600,530.38],["2007-06-29",526.02,527.4,519.46,522.7,3880600,522.7],["2007-06-28",524.88,529.5,523.8,525.01,4168400,525.01],["2007-06-27",525,527.99,519.56,526.29,6123100,526.29],["2007-06-26",532.73,533.2,526.24,530.26,5689500,530.26],["2007-06-25",528.98,534.99,523.38,527.42,7925000,527.42],["2007-06-22",516.42,524.99,516.1,524.98,7203700,524.98],["2007-06-21",510.98,515.29,506.28,514.11,4409700,514.11],["2007-06-20",516.96,518.75,509.06,509.97,4338200,509.97],["2007-06-19",514.01,517.25,511.54,514.31,4355300,514.31],["2007-06-18",506.18,516,504.24,515.2,4835900,515.2],["2007-06-15",508.19,509,501.23,505.89,6174100,505.89],["2007-06-14",505.38,505.88,501.7,502.84,4621200,502.84],["2007-06-13",507.09,508.54,498.69,505.24,7034000,505.24],["2007-06-12",508.71,511.67,503.17,504.77,6419500,504.77],["2007-06-11",514.02,518.25,510,511.34,4647700,511.34],["2007-06-08",516.2,519.64,509.46,515.49,6358200,515.49],["2007-06-07",519.75,526.5,512.51,515.06,10630500,515.06],["2007-06-06",516.75,520.78,515.26,518.25,7886700,518.25],["2007-06-05",509.75,519,506.61,518.84,10447100,518.84],["2007-06-04",497.91,510.51,497.59,507.07,7101000,507.07],["2007-06-01",501,505.02,497.93,500.4,4799000,500.4],["2007-05-31",500.56,508.78,497.06,497.91,8924300,497.91],["2007-05-30",484.5,498.84,483,498.6,7245800,498.6],["2007-05-29",485,491.8,484,487.11,5218000,487.11],["2007-05-25",479.7,484.95,477.27,483.52,5348500,483.52],["2007-05-24",475.15,479.2,471.5,474.33,4173600,474.33],["2007-05-23",480.82,483.41,473.75,473.97,5060200,473.97],["2007-05-22",473,479.01,473,475.86,3839000,475.86],["2007-05-21",469.53,479.2,466.72,470.6,6159300,470.6],["2007-05-18",472.03,472.7,469.75,470.32,3695900,470.32],["2007-05-17",472.46,475.22,470.81,470.96,4660600,470.96],["2007-05-16",462,473.14,459.02,472.61,6554200,472.61],["2007-05-15",461.96,462.54,457.41,458,4119000,458],["2007-05-14",465.48,467.51,460,461.78,3872700,461.78],["2007-05-11",461.83,467,461,466.74,2944100,466.74],["2007-05-10",467.04,469.49,461.02,461.47,3686300,461.47],["2007-05-09",466.15,471.73,463.88,469.25,3889900,469.25],["2007-05-08",466.13,468.17,464.73,466.81,2905100,466.81],["2007-05-07",472.14,472.82,466.47,467.27,3020100,467.27],["2007-05-04",470.12,474.84,465.88,471.12,3950000,471.12],["2007-05-03",466.22,474.07,465.29,473.23,3594200,473.23],["2007-05-02",468.65,471.08,465.73,465.78,3062700,465.78],["2007-05-01",472.19,472.81,464.17,469,3658200,469],["2007-04-30",479.15,481.35,471.38,471.38,3641200,471.38],["2007-04-27",480.07,482.4,478.33,479.01,2925700,479.01],["2007-04-26",478.1,484.45,477.11,481.18,4124900,481.18],["2007-04-25",480,481.37,476.11,477.99,3966800,477.99],["2007-04-24",478.61,479.98,475.55,477.53,3694700,477.53],["2007-04-23",480.1,485,478.26,479.08,5674600,479.08],["2007-04-20",490.52,492.5,482.02,482.48,12161500,482.48],["2007-04-19",474.5,481.95,469.59,471.65,11009600,471.65],["2007-04-18",471.26,479.9,469.53,476.01,5670500,476.01],["2007-04-17",473.8,476.39,471.6,472.8,3210100,472.8],["2007-04-16",468.46,476.99,468.15,474.27,5077900,474.27],["2007-04-13",468.45,468.77,463.36,466.29,2794800,466.29],["2007-04-12",464,468,462.24,467.39,2707900,467.39],["2007-04-11",466.06,469.4,462.61,464.53,3812000,464.53],["2007-04-10",467.09,470.79,465.16,466.5,2979300,466.5],["2007-04-09",472.98,473,465.59,468.21,3062100,468.21],["2007-04-05",471.3,472.09,469.62,471.51,2715800,471.51],["2007-04-04",472.14,473,469.58,471.02,3778800,471.02],["2007-04-03",464.05,474.25,464,472.6,6501800,472.6],["2007-04-02",457.76,458.53,452.12,458.53,3448500,458.53],["2007-03-30",462.1,463.4,456.14,458.16,3380200,458.16],["2007-03-29",464.55,466,455,460.92,3988500,460.92],["2007-03-28",461.87,465.44,460.15,461.88,4591600,461.88],["2007-03-27",463.55,465.23,460.34,463.62,3741200,463.62],["2007-03-26",460.55,465,455.62,465,4710300,465],["2007-03-23",461.45,463.39,457.08,461.83,4111300,461.83],["2007-03-22",455.61,462.17,452.53,462.04,5680700,462.04],["2007-03-21",445.3,456.57,445.21,456.55,5798300,456.55],["2007-03-20",445.79,447.6,443.6,445.28,3421500,445.28],["2007-03-19",443.25,448.5,440.63,447.23,5197700,447.23],["2007-03-16",445.65,446.7,439.89,440.85,5659100,440.85],["2007-03-15",447.86,449.82,443.94,446.19,3944200,446.19],["2007-03-14",443.23,448.66,439,448,8016900,448],["2007-03-13",450.11,451.93,442.83,443.03,6377300,443.03],["2007-03-12",452.57,455.25,451.11,454.75,3465400,454.75],["2007-03-09",458,458.4,450.1,452.96,4977700,452.96],["2007-03-08",459.22,465.5,454.1,454.72,5362800,454.72],["2007-03-07",462.69,463.14,454.29,455.64,6534100,455.64],["2007-03-06",447.47,459,447.38,457.55,7533700,457.55],["2007-03-05",437.02,445.5,437,440.95,6355100,440.95],["2007-03-02",445.11,448.7,438.68,438.68,6583600,438.68],["2007-03-01",442.67,452.42,440,448.23,8685200,448.23],["2007-02-28",450.41,453.67,443.04,449.45,8032300,449.45],["2007-02-27",455,459.8,447.17,448.77,9312800,448.77],["2007-02-26",472.83,475.25,463.75,464.93,3969900,464.93],["2007-02-23",475.75,476.95,467.8,470.62,3882600,470.62],["2007-02-22",478.69,484.24,474.39,475.85,5743900,475.85],["2007-02-21",469.84,478.68,467.74,475.86,5640600,475.86],["2007-02-20",468.47,472.75,464.71,472.1,4067600,472.1],["2007-02-16",462.8,470.15,462.06,469.94,6177000,469.94],["2007-02-15",466,466.13,460.72,461.47,4042400,461.47],["2007-02-14",460,469.13,459.22,465.93,5698800,465.93],["2007-02-13",459.15,462.78,457.26,459.1,4062600,459.1],["2007-02-12",460.68,462.39,455.02,458.29,5754500,458.29],["2007-02-09",471.65,472.68,461.5,461.89,4858600,461.89],["2007-02-08",468.05,473.75,465.15,471.03,4076700,471.03],["2007-02-07",473.82,474.35,468.78,470.01,4119800,470.01],["2007-02-06",468.1,473.3,467.26,471.48,5321900,471.48],["2007-02-05",477.5,478,466.19,467.16,7206900,467.16],["2007-02-02",482.61,485,477.81,481.5,6286500,481.5],["2007-02-01",506,506.01,481.53,481.75,15658700,481.75],["2007-01-31",496.49,505,495.51,501.5,12206100,501.5],["2007-01-30",494,498,491.22,494.32,4180500,494.32],["2007-01-29",498,498.75,490.5,492.47,4775700,492.47],["2007-01-26",490.93,497.9,487.03,495.84,5496500,495.84],["2007-01-25",501,504.5,485.66,488.09,6368500,488.09],["2007-01-24",484.45,499.54,483.29,499.07,6059300,499.07],["2007-01-23",480.79,484.75,477.29,479.05,4665500,479.05],["2007-01-22",492.5,492.65,478.5,480.84,5404300,480.84],["2007-01-19",487.98,490.76,486.74,489.75,4978300,489.75],["2007-01-18",494.52,496.48,487.43,487.83,5932000,487.83],["2007-01-17",503.39,507.77,494.38,497.28,6699100,497.28],["2007-01-16",507.55,513,503.3,504.28,7568900,504.28],["2007-01-12",501.99,505,500,505,4473700,505],["2007-01-11",497.2,501.75,496.18,499.72,7208200,499.72],["2007-01-10",484.43,493.55,482.04,489.46,5968500,489.46],["2007-01-09",485.45,488.25,481.2,485.5,5381400,485.5],["2007-01-08",487.69,489.87,482.2,483.58,4754400,483.58],["2007-01-05",482.5,487.5,478.11,487.19,6872100,487.19],["2007-01-04",469,483.95,468.35,483.26,7887600,483.26],["2007-01-03",466,476.66,461.11,467.59,7706500,467.59],["2006-12-29",462.1,464.47,459.86,460.48,2559200,460.48],["2006-12-28",467.12,468.58,462.25,462.56,3116200,462.56],["2006-12-27",460,468.08,459.1,468.03,4231500,468.03],["2006-12-26",456.52,459.47,454.59,457.53,2074300,457.53],["2006-12-22",457.5,458.64,452.73,455.58,3988300,455.58],["2006-12-21",464.18,465.25,452.34,456.2,6953300,456.2],["2006-12-20",470,471.5,462.33,462.9,4367800,462.9],["2006-12-19",461.72,469.31,458.5,468.63,6587000,468.63],["2006-12-18",482.51,482.74,460.72,462.8,8016600,462.8],["2006-12-15",482.64,484.11,479.84,480.3,5190800,480.3],["2006-12-14",480.25,483.75,477.26,482.12,4748900,482.12],["2006-12-13",484.69,485.5,477.02,478.99,4662100,478.99],["2006-12-12",483.85,486.36,480.28,481.78,4181000,481.78],["2006-12-11",484.92,488.9,483.8,483.93,3263400,483.93],["2006-12-08",481.94,488.6,480,484.11,3974900,484.11],["2006-12-07",490.23,491.8,482.42,482.64,4664300,482.64],["2006-12-06",486.96,492.4,484.52,488.71,4450300,488.71],["2006-12-05",487.4,489.44,484.89,487,4103000,487],["2006-12-04",483,487.43,479.35,484.85,4899900,484.85],["2006-12-01",485.98,488.39,478.5,480.8,5631400,480.8],["2006-11-30",484.19,490.4,481.55,484.81,5577500,484.81],["2006-11-29",494.24,494.74,482.25,484.65,6315300,484.65],["2006-11-28",481.13,489.86,477.03,489.5,7797600,489.5],["2006-11-27",501.37,501.78,484.75,484.75,7324700,484.75],["2006-11-24",504.5,507.5,504,505,1732700,505],["2006-11-22",510.97,513,505.78,508.01,4500700,508.01],["2006-11-21",496.54,510,495.83,509.65,8427500,509.65],["2006-11-20",498.4,498.4,492.65,495.05,5124500,495.05],["2006-11-17",493.25,499.66,493,498.79,5511000,498.79],["2006-11-16",495,497.68,492.56,495.9,5092600,495.9],["2006-11-15",493.43,499.85,491.93,491.93,8370700,491.93],["2006-11-14",480.7,489.95,480.5,489.3,7223400,489.3],["2006-11-13",474.9,481.17,474.14,481.03,4341900,481.03],["2006-11-10",473.78,474.72,470.29,473.55,2796700,473.55],["2006-11-09",476.5,479.49,471.86,472.63,4879200,472.63],["2006-11-08",470.35,481.74,468.6,475,7965000,475],["2006-11-07",476.95,479.02,471.77,472.57,4897100,472.57],["2006-11-06",473.77,479.66,472.33,476.95,4991500,476.95],["2006-11-03",472.23,473.75,465.06,471.8,4907700,471.8],["2006-11-02",467.5,473.73,466.38,469.91,5236700,469.91],["2006-11-01",478.76,479.13,465.26,467.5,5426300,467.5],["2006-10-31",478.06,482.16,473.84,476.39,6285400,476.39],["2006-10-30",474.82,480.46,470.01,476.57,6563100,476.57],["2006-10-27",483.9,485.24,472.49,475.2,6604000,475.2],["2006-10-26",487.68,491.96,484.2,485.1,7031700,485.1],["2006-10-25",477.49,488.5,475.11,486.6,9187500,486.6],["2006-10-24",476.28,477.86,471.41,473.31,8660200,473.31],["2006-10-23",462.28,484.64,460.37,480.78,15104500,480.78],["2006-10-20",458.99,460.1,453.59,459.67,11647900,459.67],["2006-10-19",420.23,429.5,419.57,426.06,11503500,426.06],["2006-10-18",422.99,424.75,417.5,419.31,6017300,419.31],["2006-10-17",420.3,423.75,416.7,420.64,5211000,420.64],["2006-10-16",427.7,429.2,421.34,421.75,4319400,421.75],["2006-10-13",427.76,429.5,425.56,427.3,3622500,427.3],["2006-10-12",428.56,429.68,424,427.44,4844000,427.44],["2006-10-11",425.02,429.91,423.76,426.5,5635400,426.5],["2006-10-10",431.56,437.85,422.39,426.65,9788600,426.65],["2006-10-09",424.8,431.95,423.42,429,7583300,429],["2006-10-06",410.22,421.91,409.75,420.5,7336500,420.5],["2006-10-05",414.7,418.24,410.86,411.81,5789800,411.81],["2006-10-04",404.97,415.77,403.05,415.7,6661800,415.7],["2006-10-03",401.29,406.46,398.19,404.04,5464700,404.04],["2006-10-02",401.9,406,400.8,401.44,3651900,401.44],["2006-09-29",405.13,405.62,401.41,401.9,3310900,401.9],["2006-09-28",404.08,406.98,400.54,403.58,5107400,403.58],["2006-09-27",406.3,411.22,402.37,402.92,5876700,402.92],["2006-09-26",405.5,407.68,401.77,406.87,5289400,406.87],["2006-09-25",405.58,409.45,402.5,403.98,5737300,403.98],["2006-09-22",404.98,407.45,401.36,403.78,4649600,403.78],["2006-09-21",400.3,408.45,399.86,406.85,10692100,406.85],["2006-09-20",407.1,407.39,394.62,397,9147800,397],["2006-09-19",415.46,415.49,392.74,403.81,14292900,403.81],["2006-09-18",410,418.69,409.47,414.69,7106700,414.69],["2006-09-15",407.48,410.05,406.74,409.88,7838200,409.88],["2006-09-14",404.3,406.28,401.93,403.98,5366100,403.98],["2006-09-13",395.15,406.76,395.1,406.57,9768200,406.57],["2006-09-12",385,392.73,384.88,391.9,5442200,391.9],["2006-09-11",378.26,384.69,377.77,384.09,4529200,384.09],["2006-09-08",376.72,380.79,376.72,377.85,3083400,377.85],["2006-09-07",379.39,381.75,377.4,378.49,3842000,378.49],["2006-09-06",382.1,383.19,379.66,380.14,3724100,380.14],["2006-09-05",379.87,385.4,377.44,384.36,4074300,384.36],["2006-09-01",380.99,381.28,377.19,378.6,2672900,378.6],["2006-08-31",381.49,382.15,378.2,378.53,2959900,378.53],["2006-08-30",379.21,384.65,378.51,380.75,4044400,380.75],["2006-08-29",380.78,382.32,377.2,378.95,4460000,378.95],["2006-08-28",375.61,380.95,375,380.95,4164000,380.95],["2006-08-25",373.08,375.32,372.5,373.26,2466700,373.26],["2006-08-24",374.44,376.4,372.26,373.73,3482500,373.73],["2006-08-23",377.64,378.27,372.66,373.43,3642300,373.43],["2006-08-22",377.73,379.26,374.84,378.29,4164100,378.29],["2006-08-21",378.1,379,375.22,377.3,4023300,377.3],["2006-08-18",386.31,387.09,380.75,383.36,4952200,383.36],["2006-08-17",386.39,390,383.92,385.8,5080200,385.8],["2006-08-16",383.48,388.45,382.12,387.72,5853200,387.72],["2006-08-15",374.11,381.67,372.6,380.97,6698200,380.97],["2006-08-14",371.5,375.13,368.67,369.43,4968300,369.43],["2006-08-11",374.4,375.28,368,368.5,3766500,368.5],["2006-08-10",373.88,377.67,372.46,374.2,4261900,374.2],["2006-08-09",382.8,384.68,376.36,376.94,4311000,376.94],["2006-08-08",382.82,384.5,379.09,381,5743200,381],["2006-08-07",371.5,379.73,371.15,377.95,3946900,377.95],["2006-08-04",379.56,380.68,371.75,373.85,5095200,373.85],["2006-08-03",364.98,377.91,363.36,375.39,6327000,375.39],["2006-08-02",375.6,377.17,365.2,367.23,7097800,367.23],["2006-08-01",385.11,385.77,375.51,375.51,5463200,375.51],["2006-07-31",388,389.17,383.31,386.6,4595300,386.6],["2006-07-28",382,389.56,381.73,388.12,4083600,388.12],["2006-07-27",387.37,387.49,377.95,382.4,5641100,382.4],["2006-07-26",388.2,391.91,383,385.5,5531900,385.5],["2006-07-25",385.02,391.31,383.8,389.36,5761100,389.36],["2006-07-24",392.82,393.89,381.21,390.9,8086100,390.9],["2006-07-21",386.14,391.75,377.69,390.11,11754600,390.11],["2006-07-20",404.28,404.44,385.66,387.12,12538700,387.12],["2006-07-19",395.01,401.14,394.66,399,8518500,399],["2006-07-18",409.75,410.57,397.74,403.05,8536800,403.05],["2006-07-17",404.63,411,403.72,407.89,5811900,407.89],["2006-07-14",410.33,411.49,398.61,403.5,7552100,403.5],["2006-07-13",414,418.34,406.83,408.83,6924500,408.83],["2006-07-12",422.09,422.74,416.73,417.25,4906700,417.25],["2006-07-11",418.51,425.05,413.03,424.56,5971300,424.56],["2006-07-10",423.44,425.23,416.38,418.2,4436400,418.2],["2006-07-07",426.05,427.89,415.88,420.45,6041900,420.45],["2006-07-06",423.38,425.38,421.98,423.19,3687100,423.19],["2006-07-05",421.52,422.8,415.64,421.46,4985600,421.46],["2006-07-03",420.04,423.77,419.45,423.2,2156700,423.2],["2006-06-30",415.6,419.33,412.33,419.33,6258000,419.33],["2006-06-29",407.99,418.2,405.82,417.81,6658200,417.81],["2006-06-28",404.01,406.48,401.13,406.11,3710500,406.11],["2006-06-27",405.71,408,401.01,402.32,4107100,402.32],["2006-06-26",406.75,408.3,403.25,404.22,3551200,404.22],["2006-06-23",402.76,409.75,400.74,404.86,5314800,404.86],["2006-06-22",401.58,406,388,399.95,5911900,399.95],["2006-06-21",391.06,404,389.75,402.13,8744400,402.13],["2006-06-20",388.03,391.87,386.51,387.17,4039900,387.17],["2006-06-19",390.85,394.8,386.98,388.14,7633100,388.14],["2006-06-16",389.1,390.93,388,390.7,5304600,390.7],["2006-06-15",386.62,392.25,383,391,6785700,391],["2006-06-14",389.83,391.1,378.52,384.39,7772000,384.39],["2006-06-13",380.9,387,378.12,386.52,7659100,386.52],["2006-06-12",388.34,390.49,381,381.54,5019100,381.54],["2006-06-09",392.19,395.43,385.35,386.57,6157500,386.57],["2006-06-08",387.75,394.27,378.59,393.3,10359500,393.3],["2006-06-07",393.24,394.86,386.5,386.51,8911300,386.51],["2006-06-06",376.58,390,376.3,389.99,10259800,389.99],["2006-06-05",376.18,381.45,374.15,374.44,5558500,374.44],["2006-06-02",386.84,387.08,377.45,379.44,6386400,379.44],["2006-06-01",373.54,382.99,371.6,382.62,6278000,382.62],["2006-05-31",373.8,378.25,366.78,371.82,7981300,371.82],["2006-05-30",378.28,381,371.45,371.94,4316000,371.94],["2006-05-26",384.55,385.88,380.03,381.35,3667000,381.35],["2006-05-25",379.08,383,372.31,382.99,8194600,382.99],["2006-05-24",377.35,383.44,371.61,381.25,9553800,381.25],["2006-05-23",374.21,383.88,373.56,375.58,8983000,375.58],["2006-05-22",367.85,373.03,365.25,370.95,8604400,370.95],["2006-05-19",373.28,374.5,360.57,370.02,11398200,370.02],["2006-05-18",378.78,381.81,370.71,370.99,5835000,370.99],["2006-05-17",370.61,379.84,370.22,374.5,10643800,374.5],["2006-05-16",375.99,376.86,369.89,371.3,6491100,371.3],["2006-05-15",375.93,380.15,368.25,376.2,8590100,376.2],["2006-05-12",383.54,384.87,373.55,374.13,10087600,374.13],["2006-05-11",403.42,404.71,384.98,387,8892800,387],["2006-05-10",408.31,411.71,401.86,402.98,6187200,402.98],["2006-05-09",395.7,409,393.75,408.8,9140600,408.8],["2006-05-08",395.11,397.12,390.05,394.78,5118600,394.78],["2006-05-05",397.6,400.68,391.78,394.3,6065000,394.3],["2006-05-04",395.03,398.87,392.21,394.75,4652000,394.75],["2006-05-03",396.35,401.5,390.88,394.17,8072200,394.17],["2006-05-02",401.08,402.49,388.4,394.8,13104300,394.8],["2006-05-01",418.47,419.44,398.55,398.9,10361200,398.9],["2006-04-28",418.63,425.73,416.3,417.94,7421300,417.94],["2006-04-27",422.91,426.91,419.39,420.03,8337900,420.03],["2006-04-26",427.74,430.04,423.53,425.97,7277800,425.97],["2006-04-25",439.63,441.04,426,427.16,9569000,427.16],["2006-04-24",439.4,444.7,436.52,440.5,8836400,440.5],["2006-04-21",448.9,450.72,436.17,437.1,22551300,437.1],["2006-04-20",411.01,416,408.2,415,12271500,415],["2006-04-19",412.57,413.64,406.73,410.5,6781700,410.5],["2006-04-18",407.93,409.83,401.5,404.24,8137600,404.24],["2006-04-17",403.45,412.5,400.84,406.82,8259500,406.82],["2006-04-13",408.63,409.76,400.5,402.16,6552900,402.16],["2006-04-12",409,411.33,405.19,408.95,6017000,408.95],["2006-04-11",416.42,419.1,406.22,409.66,11107200,409.66],["2006-04-10",407.08,417.17,405.25,416.38,9320100,416.38],["2006-04-07",412.41,412.85,404.02,406.16,7025900,406.16],["2006-04-06",406.49,413.89,405.43,411.18,8598500,411.18],["2006-04-05",408.2,414.57,402.82,407.99,13410500,407.99],["2006-04-04",389.9,404.9,388.14,404.34,15715700,404.34],["2006-04-03",389.53,392.47,387.93,389.7,8122700,389.7],["2006-03-31",388.74,391.87,384.03,390,36521400,390],["2006-03-30",389.19,393.5,383.61,388.44,14711700,388.44],["2006-03-29",379.94,399,379.51,394.98,19027500,394.98],["2006-03-28",371.71,377.86,371.17,377.2,8945800,377.2],["2006-03-27",367.09,371.71,365,369.69,7023700,369.69],["2006-03-24",368.62,370.09,362.51,365.8,15180600,365.8],["2006-03-23",342.35,345.75,340.2,341.89,7434700,341.89],["2006-03-22",339.75,344.1,337.5,340.22,7596000,340.22],["2006-03-21",350.01,351.66,339.08,339.92,9831100,339.92],["2006-03-20",342.34,350.09,341.54,348.19,10407600,348.19],["2006-03-17",338.8,341.78,334.93,339.79,8551700,339.79],["2006-03-16",348.61,348.75,337.9,338.77,10016700,338.77],["2006-03-15",350.77,352.3,340.53,344.5,12768800,344.5],["2006-03-14",337.14,352.37,332.62,351.16,18450700,351.16],["2006-03-13",340.93,346.1,335.45,337.06,13642400,337.06],["2006-03-10",343.5,344.5,331.55,337.5,19325600,337.5],["2006-03-09",355.39,358.53,341.5,343,13910400,343],["2006-03-08",353.93,360.03,350.54,353.88,11745600,353.88],["2006-03-07",365.02,368.45,358.15,364.45,10378800,364.45],["2006-03-06",380.91,383.4,367.14,368.1,8939700,368.1],["2006-03-03",384.3,387.24,375.76,378.18,11962000,378.18],["2006-03-02",364.28,381.1,362.2,376.45,18330300,376.45],["2006-03-01",368.56,369.45,361.3,364.8,12061200,364.8],["2006-02-28",393.2,397.54,338.51,362.62,39437600,362.62],["2006-02-27",381.27,391.7,380.28,390.38,10212200,390.38],["2006-02-24",377.3,380.07,373.49,377.4,6484300,377.4],["2006-02-23",365.61,381.24,365.39,378.07,12551600,378.07],["2006-02-22",367.15,368.95,363.86,365.49,6476200,365.49],["2006-02-21",366.44,373.54,365.11,366.59,8686000,366.59],["2006-02-17",369.86,372.14,363.62,368.75,14320200,368.75],["2006-02-16",345.67,367,344.49,366.46,21315500,366.46],["2006-02-15",341.27,346,337.83,342.38,12947000,342.38],["2006-02-14",345.33,351.69,342.4,343.32,14654000,343.32],["2006-02-13",346.64,350.6,341.89,345.7,19717800,345.7],["2006-02-10",361.95,364.5,353.14,362.61,15223500,362.61],["2006-02-09",371.2,374.4,356.11,358.77,11912400,358.77],["2006-02-08",368.48,370.69,354.67,369.08,20804100,369.08],["2006-02-07",382.99,383.7,363.35,367.92,16630200,367.92],["2006-02-06",385.31,389.9,379.56,385.1,8940400,385.1],["2006-02-03",393.62,393.9,372.57,381.55,18281800,381.55],["2006-02-02",403.82,406.5,395.98,396.04,11807700,396.04],["2006-02-01",389.03,402,387.52,401.78,27122500,401.78],["2006-01-31",430.57,439.6,423.97,432.66,22066000,432.66],["2006-01-30",429.23,433.28,425,426.82,8588900,426.82],["2006-01-27",435,438.22,428.98,433.49,8452200,433.49],["2006-01-26",439.54,439.99,423.56,434.27,12926100,434.27],["2006-01-25",451.26,454.23,429.22,433,18739800,433],["2006-01-24",436.03,444.95,434.48,443.03,15464600,443.03],["2006-01-23",407.38,428.39,405.73,427.5,22741400,427.5],["2006-01-20",438.7,440.03,394.74,399.46,41116700,399.46],["2006-01-19",451.17,453.49,433,436.45,14537300,436.45],["2006-01-18",447.3,457.36,443.25,444.91,20485700,444.91],["2006-01-17",463.06,469.9,462.53,467.11,8270300,467.11],["2006-01-13",464.31,466.89,461.61,466.25,7656600,466.25],["2006-01-12",473.72,474.99,461.5,463.63,10125300,463.63],["2006-01-11",471.27,475.11,469.18,471.63,9007400,471.63],["2006-01-10",464.42,470.25,462.04,469.76,9097100,469.76],["2006-01-09",466.41,473.4,460.94,466.9,12791900,466.9],["2006-01-06",456.87,470.5,453.24,465.66,17756900,465.66],["2006-01-05",446,451.55,441.5,451.24,10808300,451.24],["2006-01-04",443.9,448.96,439.75,445.24,15286400,445.24],["2006-01-03",422.52,435.67,418.22,435.23,13121200,435.23],["2005-12-30",417.27,418.21,413.74,414.86,7587100,414.86],["2005-12-29",427.98,428.73,419.17,420.15,6945800,420.15],["2005-12-28",424.34,427.78,421.26,426.69,7117900,426.69],["2005-12-27",431.86,431.86,422.76,424.64,6702800,424.64],["2005-12-23",432.15,432.5,428.78,430.93,4595100,430.93],["2005-12-22",431.77,432.86,425.93,432.04,7546600,432.04],["2005-12-21",433.55,436.86,420.71,426.33,11221900,426.33],["2005-12-20",427.86,432.2,424.67,429.74,10084700,429.74],["2005-12-19",432.2,446.21,420.11,424.6,21936800,424.6],["2005-12-16",425.34,432.5,422.75,430.15,16330500,430.15],["2005-12-15",419.11,423.14,416.5,422.55,6045800,422.55],["2005-12-14",417.04,419.73,415.49,418.96,6630400,418.96],["2005-12-13",412.5,418,411.64,417.49,8157000,417.49],["2005-12-12",414.63,415.21,409.95,412.61,6950100,412.61],["2005-12-09",415,415.78,408.56,409.2,7643400,409.2],["2005-12-08",405.3,410.65,402.64,410.65,8910100,410.65],["2005-12-07",406.16,406.7,399.01,404.22,11665900,404.22],["2005-12-06",408.7,416.41,401.7,404.54,15114700,404.54],["2005-12-05",417,417.5,404.28,405.85,10289400,405.85],["2005-12-02",416.94,419.53,413.86,417.7,7543500,417.7],["2005-12-01",409.2,415.44,408.29,414.09,9744900,414.09],["2005-11-30",404.26,408.45,395.56,404.91,15596600,404.91],["2005-11-29",424.46,426.4,402.14,403.54,21495800,403.54],["2005-11-28",429.82,431.24,422.44,423.48,11008400,423.48],["2005-11-25",425.78,428.75,425.3,428.62,4840100,428.62],["2005-11-23",417.04,424.72,415.78,422.86,10085000,422.86],["2005-11-22",408.65,417.31,406.23,416.47,9596000,416.47],["2005-11-21",399.17,409.98,393.49,409.36,10335100,409.36],["2005-11-18",403.49,404.5,399.85,400.21,7025700,400.21],["2005-11-17",401.8,403.81,399.53,403.45,9212200,403.45],["2005-11-16",396.2,398.85,394.11,398.15,8695200,398.15],["2005-11-15",394.38,397,390.95,392.8,8624900,392.8],["2005-11-14",392.12,398.22,391.53,396.97,7807900,396.97],["2005-11-11",395.12,396.9,388.85,390.4,7063900,390.4],["2005-11-10",378.36,391.35,377.43,391.1,9128700,391.1],["2005-11-09",386.67,388.29,378.03,379.15,10466900,379.15],["2005-11-08",394.25,395.59,388.58,389.9,7897500,389.9],["2005-11-07",395.1,397.47,392.15,395.03,9591500,395.03],["2005-11-04",389.98,391.79,385.45,390.43,8824900,390.43],["2005-11-03",382.41,386.58,381.38,385.95,7448400,385.95],["2005-11-02",381.7,385,377.17,379.68,10565400,379.68],["2005-11-01",371.86,383.9,369.01,379.38,16356100,379.38],["2005-10-31",360.24,374.75,359.51,372.14,14342900,372.14],["2005-10-28",355.27,358.95,355.02,358.17,5903500,358.17],["2005-10-27",356.6,357.09,351.68,353.06,5134400,353.06],["2005-10-26",346.28,356,346.19,355.44,8907500,355.44],["2005-10-25",345.78,347.4,342.86,346.91,6878300,346.91],["2005-10-24",343.37,349.3,342.19,348.65,9431700,348.65],["2005-10-21",345.8,346.43,333,339.9,22892400,339.9],["2005-10-20",309.99,311.13,301.21,303.2,13911700,303.2],["2005-10-19",304,309.87,303.96,308.7,7010700,308.7],["2005-10-18",304.96,307.96,302.74,303.28,7077800,303.28],["2005-10-17",297.5,305.2,294.56,305,7566700,305],["2005-10-14",299.9,300.23,292.54,296.14,8519100,296.14],["2005-10-13",302,302,290.68,297.44,10567700,297.44],["2005-10-12",305.2,307.19,299,300.97,9306200,300.97],["2005-10-11",310.61,312.65,304.86,306.1,8542600,306.1],["2005-10-10",313.31,314.82,309.15,310.65,5572200,310.65],["2005-10-07",314.79,316.67,310.54,312.99,6770300,312.99],["2005-10-06",314.14,314.48,310.09,312.75,7993800,312.75],["2005-10-05",312.69,314.9,308,310.71,8328400,310.71],["2005-10-04",319.95,321.28,310.74,311,9144300,311],["2005-10-03",313.63,320.11,312.79,318.68,9160300,318.68],["2005-09-30",314.22,317.5,312.29,316.46,9151300,316.46],["2005-09-29",306.68,310.72,306.08,309.62,5613800,309.62],["2005-09-28",314.22,315.1,305.6,306,7997400,306],["2005-09-27",314.95,318.41,313.38,313.94,6873100,313.94],["2005-09-26",319.5,320.95,312.56,314.28,9894400,314.28],["2005-09-23",313,317.21,312.59,315.36,8483800,315.36],["2005-09-22",311.5,319.22,310.17,311.37,13006400,311.37],["2005-09-21",308.41,313.76,305.96,311.9,10119700,311.9],["2005-09-20",306.15,311.3,305.23,307.91,9351000,307.91],["2005-09-19",301,306,300.71,303.79,5761900,303.79],["2005-09-16",304.02,304.5,299.87,300.2,7579800,300.2],["2005-09-15",299.52,306.75,297.91,302.62,15466200,302.62],["2005-09-14",308.73,313.28,300.3,303,11275800,303],["2005-09-13",309,315.53,306.17,311.68,10299900,311.68],["2005-09-12",301.75,311.42,301,309.74,10386500,309.74],["2005-09-09",297.28,299.1,296.56,299.09,4390500,299.09],["2005-09-08",294.83,299.28,293.36,295.39,6613300,295.39],["2005-09-07",285.89,295.5,285.28,294.87,7499500,294.87],["2005-09-06",289,289.39,286.8,287.11,4212300,287.11],["2005-09-02",286.51,289.99,286.44,288.45,3434500,288.45],["2005-09-01",285.91,287.5,285,286.25,2742100,286.25],["2005-08-31",288.23,288.5,284.36,286,5034000,286],["2005-08-30",287.39,289.51,285.88,287.27,4792000,287.27],["2005-08-29",282.24,289.12,282.24,288.45,5903000,288.45],["2005-08-26",283.48,285.02,282.66,283.58,3755300,283.58],["2005-08-25",282.55,284,279.97,282.59,4376600,282.59],["2005-08-24",277.57,284.75,276.45,282.57,8593100,282.57],["2005-08-23",276.16,279.74,274.12,279.58,5821700,279.58],["2005-08-22",281.24,281.47,273.35,274.01,6813000,274.01],["2005-08-19",280.99,281.45,279.62,280,5542900,280],["2005-08-18",275.91,280.5,275,279.99,11872800,279.99],["2005-08-17",285.51,286.57,284,285.1,3883300,285.1],["2005-08-16",284.88,287.79,283.34,285.65,7109200,285.65],["2005-08-15",289.8,292.77,283.77,284,8174700,284],["2005-08-12",283.36,290.2,281.64,289.72,6585900,289.72],["2005-08-11",285.89,286.58,280.62,284.05,7514900,284.05],["2005-08-10",291.3,292.33,284.88,285.68,6879000,285.68],["2005-08-09",291.96,292.68,288.51,291.57,5779300,291.57],["2005-08-08",293.6,295.65,290.49,291.25,4481800,291.25],["2005-08-05",297.5,298.51,291.31,292.35,5939700,292.35],["2005-08-04",295.55,299,295.25,297.73,5236500,297.73],["2005-08-03",298,299.72,295.6,297.3,5930600,297.3],["2005-08-02",291.6,299.52,291.12,299.19,7290200,299.19],["2005-08-01",288.12,292.5,288.1,291.61,5662400,291.61],["2005-07-29",292.14,292.84,286.99,287.76,8363300,287.76],["2005-07-28",297.41,297.41,293.28,293.5,5925600,293.5],["2005-07-27",297.74,298.23,292.4,296.93,7217900,296.93],["2005-07-26",295.01,298,292.09,296.09,9816900,296.09],["2005-07-25",302.39,303.29,294.96,295.85,9658800,295.85],["2005-07-22",306.37,309.25,296.33,302.4,23386800,302.4],["2005-07-21",314.05,317.8,311.21,313.94,19789400,313.94],["2005-07-20",305.57,312.61,301.8,312,14310400,312],["2005-07-19",302.1,310.35,301.8,309.9,12621400,309.9],["2005-07-18",300,301.9,297.75,299.54,6207800,299.54],["2005-07-15",301.24,303.4,299.78,301.19,8438400,301.19],["2005-07-14",305.34,306.75,300.07,300.89,10667700,300.89],["2005-07-13",292.51,299.24,292.1,298.86,11437900,298.86],["2005-07-12",293.39,294.4,290.93,291.78,5864900,291.78],["2005-07-11",296.4,296.6,291.02,293.35,8390300,293.35],["2005-07-08",296.25,297.5,294.05,296.23,7457600,296.23],["2005-07-07",289.39,295.8,288.51,295.54,10672100,295.54],["2005-07-06",297.3,297.6,291.38,291.52,8000300,291.52],["2005-07-05",292.1,295.98,290.23,295.71,7494000,295.71],["2005-07-01",295.04,296.24,289.22,291.25,9227600,291.25],["2005-06-30",294.34,298.93,291.04,294.15,15094400,294.15],["2005-06-29",302.5,304.38,292.15,292.72,18298700,292.72],["2005-06-28",306.28,309.25,302,302,19036500,302],["2005-06-27",298.9,304.47,293.86,304.1,17802900,304.1],["2005-06-24",290.9,298,289.58,297.25,17771200,297.25],["2005-06-23",288,294.81,286.5,289.71,14056400,289.71],["2005-06-22",289.67,292.32,288.67,289.3,10474000,289.3],["2005-06-21",288.07,290.3,284.97,287.84,15132300,287.84],["2005-06-20",276.09,287.67,271.73,286.7,21024700,286.7],["2005-06-17",279,280.3,275.9,280.3,10434400,280.3],["2005-06-16",274.26,278.3,273.07,277.44,12462400,277.44],["2005-06-15",275,277.3,267.43,274.8,20883100,274.8],["2005-06-14",278.59,281.24,277.75,278.35,10091900,278.35],["2005-06-13",279.82,284.19,276.52,282.75,12803200,282.75],["2005-06-10",286.99,287.28,280.02,282.5,12696600,282.5],["2005-06-09",284.72,288.5,280.56,286.31,16441100,286.31],["2005-06-08",292.85,293.19,278,279.56,25700900,279.56],["2005-06-07",297.1,299.59,290.3,293.12,24323000,293.12],["2005-06-06",282.39,293.75,281.83,290.94,22525900,290.94],["2005-06-03",286.79,289.3,277.41,280.26,18782300,280.26],["2005-06-02",288.73,289.78,284.6,287.9,17974100,287.9],["2005-06-01",283.2,292.89,282.02,288,35191700,288],["2005-05-31",269.43,278.4,269.37,277.27,22236800,277.27],["2005-05-27",260.46,266.05,259.25,266,12184100,266],["2005-05-26",260.96,263.76,258.3,259.2,13546600,259.2],["2005-05-25",252.73,260.98,250.63,260.81,18057900,260.81],["2005-05-24",256.96,265.44,253.5,256,29043100,256],["2005-05-23",243.16,258.1,242.71,255.45,21388300,255.45],["2005-05-20",241.21,241.67,239.65,241.61,8163500,241.61],["2005-05-19",240.34,241.17,238.27,239.18,9716500,239.18],["2005-05-18",233.61,239.97,233.52,239.16,12312000,239.16],["2005-05-17",230.56,233.45,230.2,233.13,7808900,233.13],["2005-05-16",229.68,231.62,228.57,231.05,5681400,231.05],["2005-05-13",229.18,231.09,227.32,229.24,7415500,229.24],["2005-05-12",230.81,232.23,228.2,228.72,8948200,228.72],["2005-05-11",228.97,231.98,227.93,231.29,11478800,231.29],["2005-05-10",225.47,227.8,224.72,227.8,6345800,227.8],["2005-05-09",228,228.5,225.43,226.02,5536800,226.02],["2005-05-06",228.4,229.25,226.47,228.02,6763900,228.02],["2005-05-05",228.62,228.62,225.88,226.98,7509600,226.98],["2005-05-04",227.23,229.88,227,228.5,12083500,228.5],["2005-05-03",221.85,228.15,221.32,226.19,17780200,226.19],["2005-05-02",222.05,223.7,220.21,222.29,9767400,222.29],["2005-04-29",221.91,222.25,217.82,220,9170200,220],["2005-04-28",219.5,222.08,217.71,219.45,8682800,219.45],["2005-04-27",217.99,220.85,216.74,219.78,10264800,219.78],["2005-04-26",220.22,222,218.29,218.75,17272000,218.75],["2005-04-25",217.82,224.74,217.52,223.53,19840000,223.53],["2005-04-22",222.9,224,214.26,215.81,33205100,215.81],["2005-04-21",200.42,205,199.32,204.22,17751900,204.22],["2005-04-20",198.58,200.5,195.91,198.1,15451500,198.1],["2005-04-19",189.33,192,188.03,191.4,8430000,191.4],["2005-04-18",184.58,187.88,183.49,186.97,6550300,186.97],["2005-04-15",190.1,190.34,184.66,185,11577400,185],["2005-04-14",193.27,194.36,190.1,191.45,6152700,191.45],["2005-04-13",193.47,194.32,189.73,192.93,6555800,192.93],["2005-04-12",193,194.42,189.41,193.96,7319600,193.96],["2005-04-11",193.09,194.8,192.32,193.23,5410500,193.23],["2005-04-08",193.69,195.1,191.45,192.05,5116600,192.05],["2005-04-07",188.78,194.62,188.64,193.76,9692200,193.76],["2005-04-06",189.24,189.65,187.58,189.22,5252600,189.22],["2005-04-05",187.73,190.26,187.57,188.57,8736700,188.57],["2005-04-04",179.95,185.32,179.84,185.29,8076400,185.29],["2005-04-01",181.76,182.95,179.99,180.04,6182000,180.04],["2005-03-31",177.95,181.39,177.64,180.51,6768600,180.51],["2005-03-30",180.64,181.45,179.6,180.45,6236100,180.45],["2005-03-29",181.05,183.28,178.07,179.57,6473000,179.57],["2005-03-28",181.68,184.8,180.95,181.42,8738000,181.42],["2005-03-24",180.7,180.86,179.2,179.25,3705200,179.25],["2005-03-23",177.97,180.24,177.97,178.98,4845000,178.98],["2005-03-22",181.18,181.94,177.85,178.6,5631700,178.6],["2005-03-21",179.27,182.17,177.25,180.88,7483700,180.88],["2005-03-18",178.81,180.4,178.31,180.04,7090000,180.04],["2005-03-17",177.13,179.64,175.8,179.29,8260600,179.29],["2005-03-16",176.7,178.61,175.01,175.6,7106300,175.6],["2005-03-15",175.3,180,174.21,178.61,10422100,178.61],["2005-03-14",178.33,178.4,172.57,174.99,11146600,174.99],["2005-03-11",180.44,180.95,177.15,177.8,8028300,177.8],["2005-03-10",181.01,181.2,177.4,179.98,10960500,179.98],["2005-03-09",184.21,184.65,180.16,181.35,11360400,181.35],["2005-03-08",189.1,189.85,184.97,185.2,8046100,185.2],["2005-03-07",187.78,189.6,187.03,188.81,8667400,188.81],["2005-03-04",186.7,187.25,185.07,185.9,6774100,185.9],["2005-03-03",186.13,187.75,184.31,187.01,7608600,187.01],["2005-03-02",185.95,187.67,184.36,185.18,7285500,185.18],["2005-03-01",189.29,189.75,182,186.06,9311200,186.06],["2005-02-28",186,189.87,185.85,187.99,7818400,187.99],["2005-02-25",189.15,189.92,185.51,185.87,9973500,185.87],["2005-02-24",183.37,189.85,182.23,188.89,25814300,188.89],["2005-02-23",193.3,194.48,188.66,193.95,15586000,193.95],["2005-02-22",196.5,198.9,190.39,191.37,13483700,191.37],["2005-02-18",198.51,198.84,196.66,197.95,8485900,197.95],["2005-02-17",197.83,199.75,196.81,197.9,10414400,197.9],["2005-02-16",194.7,199.33,194.3,198.41,16532300,198.41],["2005-02-15",193.6,199.84,193.08,195.23,25782800,195.23],["2005-02-14",182.85,193.08,181,192.99,38562200,192.99],["2005-02-11",186.66,192.32,186.07,187.4,13116000,187.4],["2005-02-10",191.97,192.21,185.25,187.98,18982700,187.98],["2005-02-09",200.76,201.6,189.46,191.58,17171500,191.58],["2005-02-08",196.96,200.02,194.53,198.64,11480000,198.64],["2005-02-07",205.26,206.4,195.51,196.03,12960400,196.03],["2005-02-04",206.47,207.75,202.6,204.36,14819300,204.36],["2005-02-03",205.99,213.37,205.81,210.86,12988100,210.86],["2005-02-02",215.55,216.8,203.66,205.96,32799300,205.96],["2005-02-01",194.38,196.66,190.63,191.9,18839000,191.9],["2005-01-31",193.69,196.36,191.72,195.62,9596700,195.62],["2005-01-28",190.02,194.7,186.34,190.34,12208200,190.34],["2005-01-27",188.76,188.86,185.2,188.08,6627400,188.08],["2005-01-26",179.27,189.41,179.15,189.24,12307900,189.24],["2005-01-25",181.94,182.24,176.29,177.12,10659200,177.12],["2005-01-24",188.69,189.33,180.32,180.72,14022700,180.72],["2005-01-21",194.54,195.36,188.12,188.28,9258400,188.28],["2005-01-20",192.5,196.25,192,193.92,9001600,193.92],["2005-01-19",204.65,205.3,196.71,197.3,11257700,197.3],["2005-01-18",200.97,205.02,198.66,203.9,13172600,203.9],["2005-01-14",196,200.01,194.13,199.97,9640300,199.97],["2005-01-13",195.38,197.39,194.05,195.33,6849400,195.33],["2005-01-12",194.33,195.93,190.5,195.38,8177800,195.38],["2005-01-11",195.62,197.71,193.18,193.54,6958700,193.54],["2005-01-10",194.5,198.1,191.83,195.06,7539600,195.06],["2005-01-07",190.64,194.25,188.78,193.85,9662900,193.85],["2005-01-06",195.08,195.9,187.72,188.55,10387100,188.55],["2005-01-05",193.45,196.9,192.23,193.51,8236600,193.51],["2005-01-04",201.4,202.93,193.48,194.5,13755900,194.5],["2005-01-03",197.4,203.64,195.46,202.71,15844200,202.71],["2004-12-31",199.23,199.88,192.56,192.79,7668500,192.79],["2004-12-30",192.97,198.23,191.85,197.6,5904300,197.6],["2004-12-29",191.78,193.52,191.78,192.9,2678100,192.9],["2004-12-28",192.11,193.55,191.01,192.76,4145800,192.76],["2004-12-27",189.15,193.3,189.1,191.91,6104100,191.91],["2004-12-23",187.45,188.6,186,187.9,3614600,187.9],["2004-12-22",183.9,186.85,183.01,186.3,3907000,186.3],["2004-12-21",186.31,187.88,183.4,183.75,5516300,183.75],["2004-12-20",182,188.46,181.87,185.02,9834500,185.02],["2004-12-17",176.76,180.5,176.55,180.08,7386200,180.08],["2004-12-16",176.95,180.49,175.95,176.47,8572800,176.47],["2004-12-15",177.99,180.69,176.66,179.78,11471000,179.78],["2004-12-14",171,178.82,169.6,178.69,11088400,178.69],["2004-12-13",172.17,173.18,169.45,170.45,4818600,170.45],["2004-12-10",173.43,174.88,171.29,171.65,4317200,171.65],["2004-12-09",170.25,173.5,168.47,173.43,7654000,173.43],["2004-12-08",170.35,173.68,168.73,169.98,7541800,169.98],["2004-12-07",176,176.2,170.55,171.43,6870900,171.43],["2004-12-06",179.13,180.7,176.02,176.29,6254000,176.29],["2004-12-03",179.95,181.06,177.6,180.4,5869200,180.4],["2004-12-02",179.9,181.51,178.55,179.4,6260900,179.4],["2004-12-01",181.95,182.5,179.55,179.96,7864100,179.96],["2004-11-30",180.71,183,180.25,181.98,7700000,181.98],["2004-11-29",180.36,182.95,177.51,181.05,10666600,181.05],["2004-11-26",175.8,180.03,175.32,179.39,6480100,179.39],["2004-11-24",174.82,177.21,172.51,174.76,15281000,174.76],["2004-11-23",167.97,170.83,166.5,167.52,12413300,167.52],["2004-11-22",164.47,169.5,161.31,165.1,12368200,165.1],["2004-11-19",169.1,169.98,166.52,169.4,8769300,169.4],["2004-11-18",170.29,174.42,165.73,167.54,16629600,167.54],["2004-11-17",169.02,177.5,169,172.5,18132900,172.5],["2004-11-16",177.5,179.47,170.83,172.54,20917400,172.54],["2004-11-15",180.45,188.32,178.75,184.87,11901500,184.87],["2004-11-12",185.23,189.8,177.4,182,16746100,182],["2004-11-11",169.13,183.75,167.57,183.02,14985500,183.02],["2004-11-10",170.67,172.52,166.33,167.86,10644000,167.86],["2004-11-09",174.1,175.2,165.27,168.7,11064200,168.7],["2004-11-08",170.93,175.44,169.4,172.55,11191800,172.55],["2004-11-05",181.98,182.3,168.55,169.35,19833100,169.35],["2004-11-04",188.44,190.4,183.35,184.7,14409600,184.7],["2004-11-03",198.18,201.6,190.75,191.67,13888700,191.67],["2004-11-02",198.78,199.25,193.34,194.87,11346300,194.87],["2004-11-01",193.55,197.67,191.27,196.03,12224900,196.03],["2004-10-29",198.89,199.95,190.6,190.64,21162500,190.64],["2004-10-28",186.68,194.39,185.6,193.3,14846800,193.3],["2004-10-27",182.72,189.52,181.77,185.97,13356500,185.97],["2004-10-26",186.34,192.64,180,181.8,22307100,181.8],["2004-10-25",176.4,194.43,172.55,187.4,32764200,187.4],["2004-10-22",170.54,180.17,164.08,172.43,36891900,172.43],["2004-10-21",144.4,150.13,141.62,149.38,14589500,149.38],["2004-10-20",148.03,148.99,139.6,140.49,11372700,140.49],["2004-10-19",150.5,152.4,147.35,147.94,9064000,147.94],["2004-10-18",143.2,149.2,141.21,149.16,7025200,149.16],["2004-10-15",144.93,145.5,141.95,144.11,6604000,144.11],["2004-10-14",141.01,142.38,138.56,142,5226300,142],["2004-10-13",143.32,143.55,140.08,140.9,9893000,140.9],["2004-10-12",134.44,137.61,133.4,137.4,5838600,137.4],["2004-10-11",137,138.86,133.85,135.26,5241300,135.26],["2004-10-08",138.72,139.68,137.02,137.73,5540300,137.73],["2004-10-07",136.92,139.88,136.55,138.85,7064600,138.85],["2004-10-06",137.55,138.45,136,137.08,6697400,137.08],["2004-10-05",134.66,138.53,132.24,138.37,7494100,138.37],["2004-10-04",135.25,136.87,134.03,135.06,6517900,135.06],["2004-10-01",130.8,134.24,128.9,132.58,7570000,132.58],["2004-09-30",129.9,132.3,129,129.6,6885900,129.6],["2004-09-29",126.7,135.02,126.23,131.08,15273500,131.08],["2004-09-28",121.3,127.4,120.21,126.86,8473000,126.86],["2004-09-27",119.56,120.88,117.8,118.26,3536600,118.26],["2004-09-24",120.94,124.1,119.76,119.83,4566300,119.83],["2004-09-23",118.84,122.63,117.02,120.82,4272100,120.82],["2004-09-22",117.4,119.67,116.81,118.38,3794400,118.38],["2004-09-21",119.81,120.42,117.51,117.84,3618000,117.84],["2004-09-20",116.95,121.6,116.77,119.36,5319700,119.36],["2004-09-17",114.42,117.49,113.55,117.49,4741000,117.49],["2004-09-16",112.34,115.8,111.65,113.97,4637800,113.97],["2004-09-15",110.56,114.23,110.2,112,5361900,112],["2004-09-14",107.45,112,106.79,111.49,5419900,111.49],["2004-09-13",106.63,108.41,106.46,107.5,3926000,107.5],["2004-09-10",101.6,106.56,101.3,105.33,4353800,105.33],["2004-09-09",102.53,102.71,101,102.31,2032900,102.31],["2004-09-08",100.74,103.03,100.5,102.3,2495300,102.3],["2004-09-07",101.01,102,99.61,101.58,2926700,101.58],["2004-09-03",100.95,101.74,99.32,100.01,2578800,100.01],["2004-09-02",99.19,102.37,98.94,101.51,7566900,101.51],["2004-09-01",102.7,102.97,99.67,100.25,4573700,100.25],["2004-08-31",102.3,103.71,102.16,102.37,2461400,102.37],["2004-08-30",105.28,105.49,102.01,102.01,2601000,102.01],["2004-08-27",108.1,108.62,105.69,106.15,3109000,106.15],["2004-08-26",104.95,107.95,104.66,107.91,3551000,107.91],["2004-08-25",104.96,108,103.88,106,4598900,106],["2004-08-24",111.24,111.6,103.57,104.87,7631300,104.87],["2004-08-23",110.75,113.48,109.05,109.4,9137200,109.4],["2004-08-20",101.01,109.08,100.5,108.31,11428600,108.31],["2004-08-19",100,104.06,95.96,100.34,22351900,100.34]];
\ No newline at end of file
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/zoom1.html b/wqflask/wqflask/static/packages/jqplot/examples/zoom1.html
deleted file mode 100755
index 5808fb16..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/zoom1.html
+++ /dev/null
@@ -1,149 +0,0 @@
-<!DOCTYPE html>
-
-<html>
-<head>
-	
-	<title>Zooming</title>
-
-    <link class="include" rel="stylesheet" type="text/css" href="../jquery.jqplot.min.css" />
-    <link rel="stylesheet" type="text/css" href="examples.min.css" />
-    <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shCoreDefault.min.css" />
-    <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shThemejqPlot.min.css" />
-  
-  <!--[if lt IE 9]><script language="javascript" type="text/javascript" src="../excanvas.js"></script><![endif]-->
-    <script class="include" type="text/javascript" src="../jquery.min.js"></script>
-    
-   
-</head>
-<body>
-    <div class="logo">
-   <div class="nav">
-   <a class="nav" href="../../../index.php"><span>&gt;</span>Home</a>
-   <a class="nav"  href="../../../docs/"><span>&gt;</span>Docs</a>
-   <a class="nav"  href="../../download/"><span>&gt;</span>Download</a>
-   <a class="nav" href="../../../info.php"><span>&gt;</span>Info</a>
-   <a class="nav"  href="../../../donate.php"><span>&gt;</span>Donate</a>
-   </div>
-</div>
-    <div class="example-content">
-
-    <div class="example-nav">
-  <a href="waterfall2.html">Previous</a> <a href="./">Examples</a> <a href="zoomOptions.html">Next</a></div>
-
-      
-<!-- Example scripts go here -->
-
-    <style type="text/css">
-        .jqplot-cursor-legend {
-            width: 160px;
-            font-family: "Courier New";
-            font-size: 0.85em;
-        }
-
-        td.jqplot-cursor-legend-swatch {
-            width: 1.3em;
-        }
-    </style>  
-
-
-
-    <div id="chart1" style="height:200px; width:600px;"></div>
-    <div id="chart2" style="height:500px; width:600px;"></div>
-
-
-<script type="text/javascript" class="code">
-$(document).ready(function(){
-    goog = [["6/22/2009",425.32], ["6/8/2009",424.84], ["5/26/2009",417.23], ["5/11/2009",390], 
-    ["4/27/2009",393.69], ["4/13/2009",392.24], ["3/30/2009",369.78], ["3/16/2009",330.16], ["3/2/2009",308.57], 
-    ["2/17/2009",346.45], ["2/2/2009",371.28], ["1/20/2009",324.7], ["1/5/2009",315.07], ["12/22/2008",300.36], 
-    ["12/8/2008",315.76], ["11/24/2008",292.96], ["11/10/2008",310.02], ["10/27/2008",359.36], ["10/13/2008",372.54],
-    ["9/29/2008",386.91], ["9/15/2008",449.15], ["9/2/2008",444.25], ["8/25/2008",463.29],  ["8/11/2008",510.15], 
-    ["7/28/2008",467.86], ["7/14/2008",481.32], ["6/30/2008",537], ["6/16/2008",546.43], ["6/2/2008",567], 
-    ["5/19/2008",544.62], ["5/5/2008",573.2], ["4/21/2008",544.06], ["4/7/2008",457.45], ["3/24/2008",438.08], 
-    ["3/10/2008",437.92], ["2/25/2008",471.18], ["2/11/2008",529.64], ["1/28/2008",515.9], ["1/14/2008",600.25], 
-    ["12/31/2007",657], ["12/17/2007",696.69], ["12/3/2007",714.87], ["11/19/2007",676.7], ["11/5/2007",663.97], 
-    ["10/22/2007",674.6], ["10/8/2007",637.39], ["9/24/2007",567.27], ["9/10/2007",528.75], ["8/27/2007",515.25]];
-
-    var plot1 = $.jqplot('chart1', [goog], { 
-        title: 'Google, Inc.', 
-        series: [{ 
-            label: 'Google, Inc.', 
-            neighborThreshold: -1 
-        }], 
-        axes: { 
-            xaxis: { 
-                renderer:$.jqplot.DateAxisRenderer,
-                tickRenderer: $.jqplot.CanvasAxisTickRenderer,
-                tickOptions: {
-                  angle: -30
-                } 
-            }, 
-            yaxis: {  
-                renderer: $.jqplot.LogAxisRenderer,
-                tickOptions:{ prefix: '$' } 
-            } 
-        }, 
-        cursor:{
-            show: true, 
-            zoom: true
-        } 
-    });
-});
-</script>
-
-<script type="text/javascript" class="code">
-$(document).ready(function(){    
-    plot2 = $.jqplot('chart2', [goog], { 
-        title: 'Google, Inc.', 
-        series: [{ 
-            label: 'Google, Inc.', 
-            neighborThreshold: -1 
-        }], 
-        axes: { 
-            xaxis: { 
-                renderer:$.jqplot.DateAxisRenderer,
-                tickRenderer: $.jqplot.CanvasAxisTickRenderer, 
-                tickOptions: {
-                  angle: -30
-                } 
-            }, 
-            yaxis: {  
-                renderer: $.jqplot.LogAxisRenderer,
-                tickOptions:{ prefix: '$' } 
-            } 
-        }, 
-        cursor:{
-            show: true, 
-            zoom: true
-        } 
-    });
-});
-</script>
-
-<!-- End example scripts -->
-
-<!-- Don't touch this! -->
-
-
-    <script class="include" type="text/javascript" src="../jquery.jqplot.min.js"></script>
-    <script type="text/javascript" src="syntaxhighlighter/scripts/shCore.min.js"></script>
-    <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushJScript.min.js"></script>
-    <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushXml.min.js"></script>
-<!-- End Don't touch this! -->
-
-<!-- Additional plugins go here -->
-    <script class="include" type="text/javascript" src="../plugins/jqplot.cursor.min.js"></script>
-    <script class="include" type="text/javascript" src="../plugins/jqplot.dateAxisRenderer.min.js"></script>
-    <script class="include" type="text/javascript" src="../plugins/jqplot.logAxisRenderer.min.js"></script>
-    <script class="include" type="text/javascript" src="../plugins/jqplot.canvasTextRenderer.min.js"></script>
-    <script class="include" type="text/javascript" src="../plugins/jqplot.canvasAxisTickRenderer.min.js"></script>
-<!-- End additional plugins -->
-
-
-	</div>	
-	<script type="text/javascript" src="example.min.js"></script>
-
-</body>
-
-
-</html>
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/zoomOptions.html b/wqflask/wqflask/static/packages/jqplot/examples/zoomOptions.html
deleted file mode 100755
index ace74b43..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/zoomOptions.html
+++ /dev/null
@@ -1,176 +0,0 @@
-<!DOCTYPE html>
-
-<html>
-<head>
-	
-	<title>Zoom Options</title>
-
-    <link class="include" rel="stylesheet" type="text/css" href="../jquery.jqplot.min.css" />
-    <link rel="stylesheet" type="text/css" href="examples.min.css" />
-    <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shCoreDefault.min.css" />
-    <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shThemejqPlot.min.css" />
-  
-  <!--[if lt IE 9]><script language="javascript" type="text/javascript" src="../excanvas.js"></script><![endif]-->
-    <script class="include" type="text/javascript" src="../jquery.min.js"></script>
-    
-   
-</head>
-<body>
-    <div class="logo">
-   <div class="nav">
-   <a class="nav" href="../../../index.php"><span>&gt;</span>Home</a>
-   <a class="nav"  href="../../../docs/"><span>&gt;</span>Docs</a>
-   <a class="nav"  href="../../download/"><span>&gt;</span>Download</a>
-   <a class="nav" href="../../../info.php"><span>&gt;</span>Info</a>
-   <a class="nav"  href="../../../donate.php"><span>&gt;</span>Donate</a>
-   </div>
-</div>
-    <div class="example-content">
-
-    <div class="example-nav">
-  <a href="zoom1.html">Previous</a> <a href="./">Examples</a> <a href="zoomProxy.html">Next</a></div>
-
-      
-<!-- Example scripts go here -->
- <style type="text/css" media="screen">
-    .jqplot-axis {
-      font-size: 0.85em;
-    }
-    .jqplot-axis{
-      font-size: 0.75em;
-    }
-  </style>
-
-<p>Zooming has been enhanced to maintain plot zoom while the mouse moves over the entire document, not just the plot.  Two new options have been added to the cursor plugin to further enhance zooming:</p>
-
-<dl>
-   <dt>constrainOutsideZoom</dt>
-    <dd>True to limit the resulting zoom area to the edges of grid, even if the cursor is outside of the grid.  That is, you can't expand the axis ranges by moving the cursor outside of the plot area when this is true.  If set to false, you can effectively zoom out by mousing outside of the plot region.  Default false.</dd>
-    <dt>showTooltipOutsideZoom</dt>
-    <dd>True to keep showing and updating the tooltip even when the cursor is outside of the plot area.  Not applicable if zoomOutsidePlot is false.  Default false</dd>
-</dl>
-
-<p>The fist plot demonstrates the default functionality where you can move the mouse off of the plot while zooming but the actual area zoomed will not extend beyond the axes.</p>
-    <div id="chart1" style="margin-top:20px; margin-left:20px; width:400px; height:200px;"></div>
-    <div style="padding-top:20px"><button value="reset" type="button" onclick="plot1.resetZoom();">Reset Zoom</button></div>
-
-    <pre class="code brush:js"></pre>
-
-<p>The second plot sets constrainOutsideZoom to false, so zooming will not only function when the mouse is outside of the plot, but the zoom range will be extended to the mouse position outside of the grid.</p>
-    <div id="chart2" style="margin-top:20px; margin-left:20px; width:400px; height:200px;"></div>
-    <div style="padding-top:20px"><button value="reset" type="button" onclick="plot2.resetZoom();">Reset Zoom</button></div>
-
-    <pre class="code brush:js"></pre>
-
-<p>The third plot is like the third, but showTooltipOutsideZoom is true and the tooltip is set to follow the mouse, so you have an idea of what your range is while zooming.</p>
-    <div id="chart3" style="margin-top:20px; margin-left:20px; width:400px; height:200px;"></div>
-    <div style="padding-top:20px"><button value="reset" type="button" onclick="plot3.resetZoom();">Reset Zoom</button></div>
-
-    <pre class="code brush:js"></pre>
-
-
-  <script type="text/javascript" class="code">
-  $(document).ready(function(){
-      // Enable plugins like cursor and highlighter by default.
-      $.jqplot.config.enablePlugins = true;
-      // For these examples, don't show the to image button.
-      $.jqplot._noToImageButton = true;
-
-    goog = [["6/22/2009",425.32],["6/15/2009",420.09],["6/8/2009",424.84],["6/1/2009",444.32],["5/26/2009",417.23],
-    ["5/18/2009",393.5],["5/11/2009",390],["5/4/2009",407.33],["4/27/2009",393.69],["4/20/2009",389.49],
-    ["4/13/2009",392.24],["4/6/2009",372.5],["3/30/2009",369.78],["3/23/2009",347.7],["3/16/2009",330.16],
-    ["3/9/2009",324.42],["3/2/2009",308.57],["2/23/2009",337.99],["2/17/2009",346.45],["2/9/2009",357.68],
-    ["2/2/2009",371.28],["1/26/2009",338.53],["1/20/2009",324.7],["1/12/2009",299.67],["1/5/2009",315.07],
-    ["12/29/2008",321.32],["12/22/2008",300.36],["12/15/2008",310.17],["12/8/2008",315.76],["12/1/2008",283.99],
-    ["11/24/2008",292.96],["11/17/2008",262.43],["11/10/2008",310.02],["11/3/2008",331.14],["10/27/2008",359.36],
-    ["10/20/2008",339.29],["10/13/2008",372.54],["10/6/2008",332],["9/29/2008",386.91],["9/22/2008",431.04],
-    ["9/15/2008",449.15],["9/8/2008",437.66],["9/2/2008",444.25],["8/25/2008",463.29],["8/18/2008",490.59], 
-    ["8/11/2008",510.15], ["8/4/2008",495.01], ["7/28/2008",467.86],["7/21/2008",491.98], ["7/14/2008",481.32],
-    ["7/7/2008",533.8],["6/30/2008",537], ["6/23/2008",528.07], ["6/16/2008",546.43],["6/9/2008",571.51],["6/2/2008",567],
-    ["5/27/2008",585.8],["5/19/2008",544.62], ["5/12/2008",580.07],["5/5/2008",573.2],["4/28/2008",581.29],
-    ["4/21/2008",544.06],["4/14/2008",539.41],["4/7/2008",457.45], ["3/31/2008",471.09],["3/24/2008",438.08],
-    ["3/17/2008",433.55], ["3/10/2008",437.92], ["3/3/2008",433.35],["2/25/2008",471.18],["2/19/2008",507.8],
-    ["2/11/2008",529.64],["2/4/2008",516.69],["1/28/2008",515.9], ["1/22/2008",566.4],["1/14/2008",600.25],
-    ["1/7/2008",638.25],["12/31/2007",657],["12/24/2007",702.53],["12/17/2007",696.69],["12/10/2007",689.96],
-    ["12/3/2007",714.87], ["11/26/2007",693], ["11/19/2007",676.7],["11/12/2007",633.63],["11/5/2007",663.97],
-    ["10/29/2007",711.25],["10/22/2007",674.6],["10/15/2007",644.71],["10/8/2007",637.39],["10/1/2007",594.05],
-    ["9/24/2007",567.27], ["9/17/2007",560.1], ["9/10/2007",528.75], ["9/4/2007",519.35],["8/27/2007",515.25],
-    ["8/20/2007",515]];
-
-
-    opts = {
-        title: 'Google, Inc.',
-        series: [{
-            neighborThreshold: 0
-        }],
-        axes: {
-            xaxis: {
-              renderer:$.jqplot.DateAxisRenderer,
-              min:'August 1, 2007',
-              tickInterval: "6 months",
-              tickOptions:{formatString:"%Y/%#m/%#d"}
-            },
-            yaxis: {
-                // renderer: $.jqplot.LogAxisRenderer,
-                tickOptions:{prefix: '$'}
-            }
-        },
-        cursor:{zoom:true}
-    };
-
-    plot1 = $.jqplot('chart1', [goog], opts);
-    });
-
-  </script>
-  <script type="text/javascript" class="code">
-  $(document).ready(function(){
-    opts.cursor = {
-        zoom:true, 
-        looseZoom: true, 
-        constrainOutsideZoom: false
-    };
-
-    plot2 = $.jqplot('chart2', [goog], opts);
-
-    });
-  </script>
-  <script type="text/javascript" class="code">
-  $(document).ready(function(){
-    opts.cursor = {
-        zoom:true, 
-        looseZoom: true, 
-        showTooltip:true, 
-        followMouse: true, 
-        showTooltipOutsideZoom: true, 
-        constrainOutsideZoom: false
-    };
-    
-    plot3 = $.jqplot('chart3', [goog], opts);
-  });
-  </script>
-
-<!-- End example scripts -->
-
-<!-- Don't touch this! -->
-
-
-    <script class="include" type="text/javascript" src="../jquery.jqplot.min.js"></script>
-    <script type="text/javascript" src="syntaxhighlighter/scripts/shCore.min.js"></script>
-    <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushJScript.min.js"></script>
-    <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushXml.min.js"></script>
-<!-- End Don't touch this! -->
-
-<!-- Additional plugins go here -->
-  <script class="include" type="text/javascript" src="../plugins/jqplot.dateAxisRenderer.min.js"></script>
-  <script class="include" type="text/javascript" src="../plugins/jqplot.cursor.min.js"></script>
-  <script class="include" type="text/javascript" src="../plugins/jqplot.highlighter.min.js"></script>
-<!-- End additional plugins -->
-
-
-	</div>	
-	<script type="text/javascript" src="example.min.js"></script>
-
-</body>
-
-
-</html>
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/zoomProxy.html b/wqflask/wqflask/static/packages/jqplot/examples/zoomProxy.html
deleted file mode 100755
index 1596a886..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/zoomProxy.html
+++ /dev/null
@@ -1,161 +0,0 @@
-<!DOCTYPE html>
-
-<html>
-<head>
-	
-	<title>Zoom Proxy - Control one plot from another</title>
-
-    <link class="include" rel="stylesheet" type="text/css" href="../jquery.jqplot.min.css" />
-    <link rel="stylesheet" type="text/css" href="examples.min.css" />
-    <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shCoreDefault.min.css" />
-    <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shThemejqPlot.min.css" />
-  
-  <!--[if lt IE 9]><script language="javascript" type="text/javascript" src="../excanvas.js"></script><![endif]-->
-    <script class="include" type="text/javascript" src="../jquery.min.js"></script>
-    
-   
-</head>
-<body>
-    <div class="logo">
-   <div class="nav">
-   <a class="nav" href="../../../index.php"><span>&gt;</span>Home</a>
-   <a class="nav"  href="../../../docs/"><span>&gt;</span>Docs</a>
-   <a class="nav"  href="../../download/"><span>&gt;</span>Download</a>
-   <a class="nav" href="../../../info.php"><span>&gt;</span>Info</a>
-   <a class="nav"  href="../../../donate.php"><span>&gt;</span>Donate</a>
-   </div>
-</div>
-    <div class="example-content">
-
-    <div class="example-nav">
-  <a href="zoomOptions.html">Previous</a> <a href="./">Examples</a> <a href="zooming.html">Next</a></div>
-
-      
-<!-- Example scripts go here -->
-
-  <style type="text/css">
-    .jqplot-cursor-legend {
-      width: 160px;
-      font-family: "Courier New";
-      font-size: 0.8em;
-    }
-    
-    td.jqplot-cursor-legend-swatch {
-      width: 1.3em;
-    }
-    
-    div.jqplot-cursor-legend-swatch {
-/*      width: 15px;*/
-    }
-  </style>
-
-<p>Click and drag on the bottom plot to zoom on the top plot.  Double click inside the bottom plot or click the "reset" button to reset zoom.</p>
-
-<div class="jqPlot" id="chart1" style="height:320px; width:600px;"></div>
-<div class="jqPlot" id="chart2" style="margin-top: 30px; height:100px; width:600px;"></div>
-<button value="reset" onclick="controllerPlot.resetZoom();">Reset</button>
-
-<pre class="code brush:js"></pre>
-
-
-<script type="text/javascript">
-// Disable automatic image button insertion.    
-      
-var InPr = [[0.0,85.0],[10.0,87.4],[20.0,90.0],[30.0,91.3],[40.0,93.5],[50.0,94.1],[60.0,95.4],[70.0,95.8],[80.0,96.1],[90.0,97.6],[100.0,97.4],[110.0,97.7],[120.0,97.9],[130.0,98.3],[140.0,97.9],[150.0,98.4],[160.0,99.8],[170.0,100.5],[180.0,100.4],[190.0,100.3],[200.0,102.9],[210.0,104.1],[220.0,104.4],[230.0,103.9],[240.0,104.4],[250.0,104.0],[260.0,103.9],[270.0,103.5],[280.0,105.4],[290.0,105.7],[300.0,105.7],[310.0,105.3],[320.0,105.0],[330.0,105.1],[340.0,105.0],[350.0,105.1],[360.0,104.7],[370.0,104.4],[380.0,104.3],[390.0,105.7],[400.0,106.4],[410.0,105.7],[420.0,105.4],[430.0,105.7],[440.0,105.7],[450.0,105.9],[460.0,105.3],[470.0,105.7],[480.0,105.8],[490.0,105.4],[500.0,105.4],[510.0,105.4],[520.0,105.6],[530.0,104.9],[540.0,104.8],[550.0,105.2],[560.0,105.2],[570.0,105.1],[580.0,104.8],[590.0,104.6],[600.0,104.3],[610.0,104.2],[620.0,104.1],[630.0,104.7],[640.0,104.6],[650.0,104.7],[660.0,104.6],[670.0,104.4],[680.0,106.8],[690.0,106.6],
-[700.0,106.3],[710.0,107.1],[720.0,106.2],[730.0,106.1],[740.0,106.7],[750.0,106.5],[760.0,106.8],[770.0,106.7],[780.0,106.6],[790.0,106.7],[800.0,106.8],[810.0,106.4],[820.0,106.7],[830.0,106.5],[840.0,106.9],[850.0,106.7],[860.0,106.7],[870.0,106.8],[880.0,107.1],[890.0,106.6],[900.0,106.8],[910.0,106.9],[920.0,106.8],[930.0,107.3],[940.0,106.9],[950.0,106.5],[960.0,107.2],[970.0,107.0],[980.0,106.9],[990.0,107.2],[1000.0,107.7],[1010.0,107.6],[1020.0,107.1],[1030.0,107.6],[1040.0,107.2],[1050.0,107.2],[1060.0,107.5],[1070.0,107.7],[1080.0,107.3],[1090.0,107.0],[1100.0,107.7],[1110.0,107.0],[1120.0,107.8],[1130.0,107.8],[1140.0,107.7],[1150.0,107.4],[1160.0,107.8],[1170.0,107.8],[1180.0,107.6],[1190.0,107.7],[1200.0,107.4],[1210.0,108.0],[1220.0,372.6],[1230.0,90.4],[1240.0,125.0],[1250.0,110.4],[1260.0,108.5],[1270.0,109.7],[1280.0,108.9],[1290.0,109.6],[1300.0,110.2],[1310.0,110.0],[1320.0,110.7],[1330.0,110.3],[1340.0,110.6],[1350.0,110.5],
-[1360.0,110.8],[1370.0,110.6],[1380.0,111.0],[1390.0,113.0],[1400.0,112.1],[1410.0,112.3],[1420.0,112.3],[1430.0,137.6],[1440.0,179.0],[1450.0,216.9],[1460.0,399.2],[1470.0,433.6],[1480.0,203.5],[1490.0,223.3],[1500.0,229.8],[1510.0,416.9],[1520.0,198.8],[1530.0,208.7],[1540.0,172.0],[1550.0,145.7],[1560.0,119.2],[1570.0,104.8],[1580.0,100.1],[1590.0,97.7],[1600.0,97.2],[1610.0,98.8],[1620.0,98.1],[1630.0,98.1],[1640.0,98.8],[1650.0,98.7],[1660.0,98.5],[1670.0,98.8],[1680.0,98.2],[1690.0,98.2],[1700.0,97.7],[1710.0,98.1],[1720.0,97.1],[1730.0,97.6],[1740.0,97.7],[1750.0,97.4],[1760.0,97.6],[1770.0,98.0],[1780.0,97.6],[1790.0,97.7],[1800.0,97.8],[1810.0,97.6],[1820.0,97.9],
-[1830.0,97.9],[1840.0,97.8],[1850.0,97.7],[1860.0,97.7],[1870.0,97.7],[1880.0,97.4],[1890.0,97.3],[1900.0,97.2],[1910.0,96.9],[1920.0,97.2],[1930.0,97.4],[1940.0,97.7],[1950.0,97.1],[1960.0,97.1],[1970.0,96.6],[1980.0,96.7],[1990.0,96.5],[2000.0,97.2],[2010.0,96.6],[2020.0,96.4],[2030.0,96.7],[2040.0,96.8],[2050.0,96.6],[2060.0,96.6],[2070.0,96.5],[2080.0,96.6],[2090.0,96.4],[2100.0,96.6],[2110.0,96.5],[2120.0,96.2],[2130.0,96.2],[2140.0,96.5],[2150.0,96.0],[2160.0,96.2],[2170.0,96.3],[2180.0,96.4],[2190.0,97.0],[2200.0,96.8],[2210.0,96.5],[2220.0,96.6],[2230.0,96.1],[2240.0,96.1],[2250.0,96.6],[2260.0,96.5],[2270.0,96.6],[2280.0,96.4],[2290.0,96.5],[2300.0,96.6],[2310.0,96.9],[2320.0,96.8],[2330.0,96.9],[2340.0,97.2],[2350.0,96.6],[2360.0,97.3],[2370.0,97.4],[2380.0,97.1],[2390.0,97.1],[2400.0,96.8],[2410.0,97.0],[2420.0,97.1],[2430.0,97.1],[2440.0,97.0],[2450.0,97.1],[2460.0,97.1],[2470.0,97.5],[2480.0,96.9],[2490.0,96.8],[2500.0,96.8],[2510.0,97.0],[2520.0,96.7],[2530.0,97.0],[2540.0,97.1],[2550.0,97.2],[2560.0,97.1],[2570.0,97.1],[2580.0,97.1],[2590.0,96.8],[2600.0,97.2],[2610.0,97.1],[2620.0,97.3],[2630.0,97.1],[2640.0,97.1],[2650.0,97.1],[2660.0,97.0],[2670.0,96.8],[2680.0,97.3],[2690.0,97.4],[2700.0,97.3],[2710.0,97.2],[2720.0,97.1],[2730.0,97.2],[2740.0,97.1],[2750.0,97.1],[2760.0,97.1],[2770.0,96.8],[2780.0,96.4],[2790.0,96.6],[2800.0,96.6]];
-var OutPr = [[0.0,1788.1],[10.0,1803.3],[20.0,1807.3],[30.0,1813.5],[40.0,1822.0],[50.0,1820.3],[60.0,1823.7],[70.0,1823.7],[80.0,1825.3],[90.0,1831.0],[100.0,1832.1],[110.0,1834.4],[120.0,1834.4],[130.0,1831.5],[140.0,1832.7],[150.0,1834.4],[160.0,1831.5],[170.0,1832.1],[180.0,1830.4],[190.0,1831.0],[200.0,1830.4],[210.0,1829.3],[220.0,1829.9],[230.0,1828.2],[240.0,1831.0],[250.0,1828.7],[260.0,1827.0],[270.0,1829.3],[280.0,1826.5],[290.0,1824.8],[300.0,1824.2],[310.0,1823.7],[320.0,1823.7],[330.0,1823.7],[340.0,1825.3],[350.0,1822.0],[360.0,1820.3],[370.0,1818.0],[380.0,1819.1],[390.0,1816.3],[400.0,1820.8],[410.0,1820.8],[420.0,1819.7],[430.0,1820.3],[440.0,1819.7],[450.0,1819.1],
-[460.0,1819.1],[470.0,1821.4],[480.0,1821.4],[490.0,1818.0],[500.0,1816.9],[510.0,1819.1],[520.0,1818.6],[530.0,1816.9],[540.0,1816.9],[550.0,1815.2],[560.0,1814.1],[570.0,1814.6],[580.0,1811.2],[590.0,1814.1],[600.0,1813.5],[610.0,1812.4],[620.0,1809.0],[630.0,1813.5],[640.0,1811.8],[650.0,1815.8],[660.0,1816.3],[670.0,1815.2],[680.0,1815.2],[690.0,1815.8],[700.0,1816.3],[710.0,1818.6],[720.0,1816.9],[730.0,1814.6],[740.0,1816.3],[750.0,1814.1],[760.0,1812.9],[770.0,1812.9],[780.0,1811.2],[790.0,1812.4],[800.0,1815.2],[810.0,1812.4],[820.0,1813.5],[830.0,1811.8],[840.0,1811.2],[850.0,1812.9],[860.0,1809.0],[870.0,1811.2],[880.0,1816.9],[890.0,1815.2],[900.0,1813.5],[910.0,1812.9],
-[920.0,1815.8],[930.0,1819.1],[940.0,1818.0],[950.0,1816.3],[960.0,1818.0],[970.0,1815.2],[980.0,1818.6],[990.0,1815.2],[1000.0,1822.5],[1010.0,1822.5],[1020.0,1816.9],[1030.0,1816.3],[1040.0,1817.4],[1050.0,1816.9],[1060.0,1811.8],[1070.0,1818.6],[1080.0,1818.6],[1090.0,1815.2],[1100.0,1816.9],[1110.0,1815.8],[1120.0,1815.8],[1130.0,1816.9],[1140.0,1815.2],[1150.0,1815.2],[1160.0,1818.0],[1170.0,1817.4],[1180.0,1818.0],[1190.0,1819.1],[1200.0,1817.4],[1210.0,1822.5],[1220.0,1313.9],[1230.0,1694.5],[1240.0,1891.3],[1250.0,1813.5],[1260.0,1827.0],[1270.0,1831.5],[1280.0,1827.6],[1290.0,1832.1],[1300.0,1831.5],[1310.0,1829.9],[1320.0,1834.4],[1330.0,1831.0],[1340.0,1827.6],
-[1350.0,1829.3],[1360.0,1832.1],[1370.0,1834.9],[1380.0,1834.9],[1390.0,1839.4],[1400.0,1830.4],[1410.0,1832.7],[1420.0,1833.8],[1430.0,1847.9],[1440.0,1770.6],[1450.0,1668.0],[1460.0,1279.5],[1470.0,1138.5],[1480.0,1724.4],[1490.0,1571.0],[1500.0,1740.8],[1510.0,1326.8],[1520.0,1661.2],[1530.0,1859.2],[1540.0,1851.8],[1550.0,1885.7],[1560.0,1876.1],[1570.0,1860.3],[1580.0,1870.5],[1590.0,1851.8],[1600.0,1853.5],[1610.0,1863.7],[1620.0,1854.1],[1630.0,1855.8],[1640.0,1858.6],[1650.0,1857.5],[1660.0,1858.6],[1670.0,1841.7],[1680.0,1824.2],[1690.0,1817.4],[1700.0,1813.5],[1710.0,1814.6],[1720.0,1809.0],[1730.0,1806.2],[1740.0,1803.9],[1750.0,1804.5],[1760.0,1798.8],[1770.0,1793.8],[1780.0,1792.1],[1790.0,1793.2],[1800.0,1792.6],[1810.0,1787.0],[1820.0,1787.0],[1830.0,1786.4],[1840.0,1788.1],[1850.0,1784.7],
-[1860.0,1781.4],[1870.0,1780.2],[1880.0,1777.4],[1890.0,1775.7],[1900.0,1775.2],[1910.0,1775.2],[1920.0,1776.8],[1930.0,1778.0],[1940.0,1775.7],[1950.0,1769.5],[1960.0,1769.5],[1970.0,1768.4],[1980.0,1771.2],[1990.0,1770.1],[2000.0,1769.5],[2010.0,1767.8],[2020.0,1764.4],[2030.0,1764.4],[2040.0,1765.0],[2050.0,1762.7],[2060.0,1765.6],[2070.0,1763.9],[2080.0,1762.2],[2090.0,1759.9],[2100.0,1759.9],[2110.0,1762.2],[2120.0,1762.7],[2130.0,1762.2],[2140.0,1762.7],[2150.0,1759.4],[2160.0,1761.1],[2170.0,1761.6],[2180.0,1763.3],[2190.0,1765.0],[2200.0,1768.4],[2210.0,1763.3],[2220.0,1762.7],[2230.0,1759.9],[2240.0,1762.7],[2250.0,1764.4],[2260.0,1765.6],[2270.0,1766.7],[2280.0,1763.3],[2290.0,1763.3],[2300.0,1763.9],[2310.0,1762.7],[2320.0,1762.7],[2330.0,1767.3],[2340.0,1767.8],[2350.0,1765.6],[2360.0,1766.1],
-[2370.0,1766.7],[2380.0,1766.7],[2390.0,1765.0],[2400.0,1765.0],[2410.0,1765.0],[2420.0,1765.0],[2430.0,1765.6],[2440.0,1765.6],[2450.0,1763.3],[2460.0,1767.8],[2470.0,1767.8],[2480.0,1765.0],[2490.0,1761.6],[2500.0,1761.6],[2510.0,1762.7],[2520.0,1763.3],[2530.0,1763.3],[2540.0,1763.9],[2550.0,1765.0],[2560.0,1766.1],[2570.0,1765.6],[2580.0,1766.7],[2590.0,1765.6],[2600.0,1768.4],[2610.0,1766.7],[2620.0,1764.4],[2630.0,1764.4],[2640.0,1766.1],[2650.0,1766.1],[2660.0,1766.1],[2670.0,1763.9],[2680.0,1765.6],[2690.0,1765.6],[2700.0,1765.6],[2710.0,1765.0],[2720.0,1765.6],[2730.0,1766.1],[2740.0,1767.3],[2750.0,1766.7],[2760.0,1762.2],[2770.0,1754.9],[2780.0,1750.9],[2790.0,1750.3],[2800.0,1748.1]];
-var ERPM = [[0.0,1503.],[10.0,3006.],[20.0,3005.],[30.0,1505.],[40.0,1505.],[50.0,3015.],[60.0,1503.],[70.0,3006.],[80.0,3006.],[90.0,1503.],[100.0,1503.],[110.0,1503.],[120.0,1500.],[130.0,1503.],[140.0,752.],[150.0,1503.],[160.0,1503.],[170.0,1503.],[180.0,1505.],[190.0,1503.],[200.0,1503.],[210.0,3006.],[220.0,1503.],[230.0,1503.],[240.0,1502.],[250.0,1503.],[260.0,3005.],[270.0,1500.],[280.0,1502.],[290.0,1502.],[300.0,1502.],[310.0,752.],[320.0,1502.],[330.0,1502.],[340.0,1504.],[350.0,1502.],[360.0,1502.],[370.0,1501.],[380.0,1502.],[390.0,501.],[400.0,1501.],[410.0,501.],[420.0,751.],[430.0,751.],[440.0,1503.],[450.0,750.],[460.0,1501.],[470.0,1503.],[480.0,501.],[490.0,1501.],[500.0,1501.],[510.0,501.],[520.0,1501.],[530.0,751.],[540.0,1501.],[550.0,1501.],[560.0,1501.],[570.0,1501.],[580.0,1504.],[590.0,1504.],
-[600.0,1502.],[610.0,751.],[620.0,1501.],[630.0,1501.],[640.0,1501.],[650.0,1501.],[660.0,1504.],[670.0,1502.],[680.0,751.],[690.0,751.],[700.0,1501.],[710.0,751.],[720.0,1501.],[730.0,1502.],[740.0,1502.],[750.0,751.],[760.0,376.],[770.0,1502.],[780.0,1501.],[790.0,1502.],[800.0,1499.],[810.0,1499.],[820.0,750.],[830.0,1499.],[840.0,501.],[850.0,300.],[860.0,1504.],[870.0,751.],[880.0,1502.],[890.0,1502.],[900.0,1502.],[910.0,751.],[920.0,501.],[930.0,1502.],[940.0,751.],[950.0,1502.],[960.0,501.],[970.0,1504.],[980.0,751.],[990.0,1502.],[1000.0,751.],[1010.0,1502.],[1020.0,500.],[1030.0,751.],[1040.0,1502.],[1050.0,751.],[1060.0,1502.],[1070.0,1502.],[1080.0,751.],[1090.0,751.],[1100.0,1502.],[1110.0,750.],[1120.0,1502.],[1130.0,375.],[1140.0,1502.],[1150.0,300.],[1160.0,375.],[1170.0,1499.],[1180.0,300.],
-[1190.0,375.],[1200.0,1502.],[1210.0,373.],[1220.0,368.],[1230.0,502.],[1240.0,495.],[1250.0,1475.],[1260.0,1468.],[1270.0,732.],[1280.0,1461.],[1290.0,1458.],[1300.0,1456.],[1310.0,1456.],[1320.0,1451.],[1330.0,1453.],[1340.0,1453.],[1350.0,726.],[1360.0,1451.],[1370.0,1451.],[1380.0,1451.],[1390.0,1451.],[1400.0,1449.],[1410.0,1449.],[1420.0,1449.],[1430.0,1944.],[1440.0,1197.],[1450.0,786.],[1460.0,0.],[1470.0,0.],[1480.0,1079.],[1490.0,1070.],[1500.0,1085.],[1510.0,923.],[1520.0,1121.],[1530.0,1293.],[1540.0,1762.],[1550.0,367.],[1560.0,352.],[1570.0,186.],[1580.0,892.],[1590.0,892.],[1600.0,892.],[1610.0,892.],[1620.0,892.],[1630.0,892.],[1640.0,892.],[1650.0,892.],[1660.0,892.],[1670.0,892.],[1680.0,0.],[1690.0,0.],[1700.0,0.],[1710.0,0.],[1720.0,0.],[1730.0,0.],[1740.0,0.],[1750.0,0.],[1760.0,0.],
-[1770.0,0.],[1780.0,0.],[1790.0,0.],[1800.0,0.],[1810.0,0.],[1820.0,0.],[1830.0,0.],[1840.0,0.],[1850.0,0.],[1860.0,0.],[1870.0,0.],[1880.0,0.],[1890.0,0.],[1900.0,0.],[1910.0,0.],[1920.0,0.],[1930.0,0.],[1940.0,0.],[1950.0,0.],[1960.0,0.],[1970.0,0.],[1980.0,0.],[1990.0,0.],[2000.0,0.],[2010.0,0.],[2020.0,0.],[2030.0,0.],[2040.0,0.],[2050.0,0.],[2060.0,0.],[2070.0,0.],[2080.0,0.],[2090.0,0.],[2100.0,0.],[2110.0,0.],[2120.0,0.],[2130.0,0.],[2140.0,0.],[2150.0,0.],[2160.0,0.],[2170.0,0.],[2180.0,0.],[2190.0,0.],[2200.0,0.],[2210.0,0.],[2220.0,0.],[2230.0,0.],[2240.0,0.],[2250.0,0.],[2260.0,0.],[2270.0,0.],[2280.0,0.],[2290.0,0.],[2300.0,0.],[2310.0,0.],[2320.0,0.],[2330.0,0.],[2340.0,0.],[2350.0,0.],[2360.0,0.],[2370.0,0.],[2380.0,0.],[2390.0,0.],[2400.0,0.],[2410.0,0.],[2420.0,0.],[2430.0,0.],[2440.0,0.],
-[2450.0,0.],[2460.0,0.],[2470.0,0.],[2480.0,0.],[2490.0,0.],[2500.0,0.],[2510.0,0.],[2520.0,0.],[2530.0,0.],[2540.0,0.],[2550.0,0.],[2560.0,0.],[2570.0,0.],[2580.0,0.],[2590.0,0.],[2600.0,0.],[2610.0,0.],[2620.0,0.],[2630.0,0.],[2640.0,0.],[2650.0,0.],[2660.0,0.],[2670.0,0.],[2680.0,0.],[2690.0,0.],[2700.0,0.],[2710.0,0.],[2720.0,0.],[2730.0,0.],[2740.0,0.],[2750.0,0.],[2760.0,0.],[2770.0,0.],[2780.0,0.],[2790.0,0.],[2800.0,0.]]; 
-</script>
-
-  
-  <script type="text/javascript" class="code">
-    $(document).ready(function(){
-      // InPr, OutPr and ERPM are defined separately.  They are large datasets.
-      targetPlot = $.jqplot('chart1', [InPr, OutPr, ERPM], {
-        seriesDefaults:{ showMarker: false },
-        series:[
-          {label:'P In'},
-          {label:'P Out', yaxis:'y2axis'},
-          {label:'RPM', yaxis:'y3axis'},
-        ],
-        cursor:{
-          show: true,
-          zoom:true,
-          showTooltip:false
-        },
-        legend:{
-          location:'nw',
-          xoffset: 270,
-          yoffset: 100
-        },
-        axesDefaults: { 
-          useSeriesColor:true, 
-          rendererOptions: {
-            alignTicks: true
-          } 
-        }
-          
-      }); 
-      
-      controllerPlot = $.jqplot('chart2', [InPr, OutPr, ERPM], {
-        seriesDefaults:{ showMarker: false },
-        series:[
-          {label:'P In'},
-          {label:'P Out', yaxis:'y2axis'},
-          {label:'RPM', yaxis:'y3axis'},
-        ],
-        cursor:{
-          show: true,
-          showTooltip: false,
-          zoom:true,
-          constrainZoomTo: 'x'
-        },
-        axesDefaults: { 
-          useSeriesColor:true, 
-          rendererOptions: {
-            alignTicks: true
-          } 
-        }
-      });
-      
-      $.jqplot.Cursor.zoomProxy(targetPlot, controllerPlot);
-        
-      $.jqplot._noToImageButton = true;
-      
-    });
-</script>
-
-<!-- End example scripts -->
-
-<!-- Don't touch this! -->
-
-
-    <script class="include" type="text/javascript" src="../jquery.jqplot.min.js"></script>
-    <script type="text/javascript" src="syntaxhighlighter/scripts/shCore.min.js"></script>
-    <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushJScript.min.js"></script>
-    <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushXml.min.js"></script>
-<!-- End Don't touch this! -->
-
-<!-- Additional plugins go here -->
-  <script class="include" type="text/javascript" src="../plugins/jqplot.cursor.min.js"></script>
-<!-- End additional plugins -->
-
-
-	</div>	
-	<script type="text/javascript" src="example.min.js"></script>
-
-</body>
-
-
-</html>
diff --git a/wqflask/wqflask/static/packages/jqplot/examples/zooming.html b/wqflask/wqflask/static/packages/jqplot/examples/zooming.html
deleted file mode 100755
index 4c1cb2b6..00000000
--- a/wqflask/wqflask/static/packages/jqplot/examples/zooming.html
+++ /dev/null
@@ -1,209 +0,0 @@
-<!DOCTYPE html>
-
-<html>
-<head>
-	
-	<title>Plot Zooming and Cursor Control</title>
-
-    <link class="include" rel="stylesheet" type="text/css" href="../jquery.jqplot.min.css" />
-    <link rel="stylesheet" type="text/css" href="examples.min.css" />
-    <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shCoreDefault.min.css" />
-    <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shThemejqPlot.min.css" />
-  
-  <!--[if lt IE 9]><script language="javascript" type="text/javascript" src="../excanvas.js"></script><![endif]-->
-    <script class="include" type="text/javascript" src="../jquery.min.js"></script>
-    
-   
-</head>
-<body>
-    <div class="logo">
-   <div class="nav">
-   <a class="nav" href="../../../index.php"><span>&gt;</span>Home</a>
-   <a class="nav"  href="../../../docs/"><span>&gt;</span>Docs</a>
-   <a class="nav"  href="../../download/"><span>&gt;</span>Download</a>
-   <a class="nav" href="../../../info.php"><span>&gt;</span>Info</a>
-   <a class="nav"  href="../../../donate.php"><span>&gt;</span>Donate</a>
-   </div>
-</div>
-    <div class="example-content">
-
-    <div class="example-nav">
-  <a href="zoomProxy.html">Previous</a> <a href="./">Examples</a> <a href="area.html">Next</a></div>
-
-      
-<!-- Example scripts go here -->
-
-  <style type="text/css">
-    .button-reset {
-      margin: 30px;
-      margin-left: 90px;
-    }
-
-
-  </style>
-
-<p>The cursor plugin also enables plot zooming functionality.  Click and drag on the plot to zoom.  Double click to reset.</p>
-
-<p>You can disable the double click zoom reset.  The cursor plugin also extends the plot object with a resetZoom() method which can be called from user code or other html element (a button for example) to reset the plot zoom.</p>
-
-<div id="chart1" style="height:300px; width:500px;"></div>
-<button class="button-reset">Reset Zoom</button>
-
-<pre class="code prettyprint brush: js"></pre>
-
-
-<p>Plot zooming also works will multiple axes.  The following plot uses 3 large datasets.</p>
-<div id="chart2" style="height:300px; width:500px;"></div>
-
-<pre class="code prettyprint brush: js"></pre>
-
-<script language="javascript" type="text/javascript">
-var goog = [["6/22/2009 16:00:00",425.32],
-["6/8/2009 16:00:00",424.84],
-["5/26/2009 16:00:00",417.23],
-["5/11/2009 16:00:00",390],
-["4/27/2009 16:00:00",393.69],
-["4/13/2009 16:00:00",392.24],
-["3/30/2009 16:00:00",369.78],
-["3/16/2009 16:00:00",330.16],
-["3/2/2009 16:00:00",308.57],
-["2/17/2009 16:00:00",346.45],
-["2/2/2009 16:00:00",371.28],
-["1/20/2009 16:00:00",324.7],
-["1/5/2009 16:00:00",315.07],
-["12/22/2008 16:00:00",300.36],
-["12/8/2008 16:00:00",315.76],
-["11/24/2008 16:00:00",292.96],
-["11/10/2008 16:00:00",310.02],
-["10/27/2008 16:00:00",359.36],
-["10/13/2008 16:00:00",372.54],
-["9/29/2008 16:00:00",386.91],
-["9/15/2008 16:00:00",449.15],
-["9/2/2008 16:00:00",444.25],
-["8/25/2008 16:00:00",463.29],
-["8/11/2008 16:00:00",510.15],
-["7/28/2008 16:00:00",467.86],
-["7/14/2008 16:00:00",481.32],
-["6/30/2008 16:00:00",537],
-["6/16/2008 16:00:00",546.43],
-["6/2/2008 16:00:00",567],
-["5/19/2008 16:00:00",544.62],
-["5/5/2008 16:00:00",573.2],
-["4/21/2008 16:00:00",544.06],
-["4/7/2008 16:00:00",457.45],
-["3/24/2008 16:00:00",438.08],
-["3/10/2008 16:00:00",437.92],
-["2/25/2008 16:00:00",471.18],
-["2/11/2008 16:00:00",529.64],
-["1/28/2008 16:00:00",515.9],
-["1/14/2008 16:00:00",600.25],
-["12/31/2007 16:00:00",657],
-["12/17/2007 16:00:00",696.69],
-["12/3/2007 16:00:00",714.87],
-["11/19/2007 16:00:00",676.7],
-["11/5/2007 16:00:00",663.97],
-["10/22/2007 16:00:00",674.6],
-["10/8/2007 16:00:00",637.39],
-["9/24/2007 16:00:00",567.27],
-["9/10/2007 16:00:00",528.75],
-["8/27/2007 16:00:00",515.25]];
-var InPr = [[0.0,85.0],[10.0,87.4],[20.0,90.0],[30.0,91.3],[40.0,93.5],[50.0,94.1],[60.0,95.4],[70.0,95.8],[80.0,96.1],[90.0,97.6],[100.0,97.4],[110.0,97.7],[120.0,97.9],[130.0,98.3],[140.0,97.9],[150.0,98.4],[160.0,99.8],[170.0,100.5],[180.0,100.4],[190.0,100.3],[200.0,102.9],[210.0,104.1],[220.0,104.4],[230.0,103.9],[240.0,104.4],[250.0,104.0],[260.0,103.9],[270.0,103.5],[280.0,105.4],[290.0,105.7],[300.0,105.7],[310.0,105.3],[320.0,105.0],[330.0,105.1],[340.0,105.0],[350.0,105.1],[360.0,104.7],[370.0,104.4],[380.0,104.3],[390.0,105.7],[400.0,106.4],[410.0,105.7],[420.0,105.4],[430.0,105.7],[440.0,105.7],[450.0,105.9],[460.0,105.3],[470.0,105.7],[480.0,105.8],[490.0,105.4],[500.0,105.4],[510.0,105.4],[520.0,105.6],[530.0,104.9],[540.0,104.8],[550.0,105.2],[560.0,105.2],[570.0,105.1],[580.0,104.8],[590.0,104.6],[600.0,104.3],[610.0,104.2],[620.0,104.1],[630.0,104.7],[640.0,104.6],[650.0,104.7],[660.0,104.6],[670.0,104.4],[680.0,106.8],[690.0,106.6],
-[700.0,106.3],[710.0,107.1],[720.0,106.2],[730.0,106.1],[740.0,106.7],[750.0,106.5],[760.0,106.8],[770.0,106.7],[780.0,106.6],[790.0,106.7],[800.0,106.8],[810.0,106.4],[820.0,106.7],[830.0,106.5],[840.0,106.9],[850.0,106.7],[860.0,106.7],[870.0,106.8],[880.0,107.1],[890.0,106.6],[900.0,106.8],[910.0,106.9],[920.0,106.8],[930.0,107.3],[940.0,106.9],[950.0,106.5],[960.0,107.2],[970.0,107.0],[980.0,106.9],[990.0,107.2],[1000.0,107.7],[1010.0,107.6],[1020.0,107.1],[1030.0,107.6],[1040.0,107.2],[1050.0,107.2],[1060.0,107.5],[1070.0,107.7],[1080.0,107.3],[1090.0,107.0],[1100.0,107.7],[1110.0,107.0],[1120.0,107.8],[1130.0,107.8],[1140.0,107.7],[1150.0,107.4],[1160.0,107.8],[1170.0,107.8],[1180.0,107.6],[1190.0,107.7],[1200.0,107.4],[1210.0,108.0],[1220.0,372.6],[1230.0,90.4],[1240.0,125.0],[1250.0,110.4],[1260.0,108.5],[1270.0,109.7],[1280.0,108.9],[1290.0,109.6],[1300.0,110.2],[1310.0,110.0],[1320.0,110.7],[1330.0,110.3],[1340.0,110.6],[1350.0,110.5],
-[1360.0,110.8],[1370.0,110.6],[1380.0,111.0],[1390.0,113.0],[1400.0,112.1],[1410.0,112.3],[1420.0,112.3],[1430.0,137.6],[1440.0,179.0],[1450.0,216.9],[1460.0,399.2],[1470.0,433.6],[1480.0,203.5],[1490.0,223.3],[1500.0,229.8],[1510.0,416.9],[1520.0,198.8],[1530.0,208.7],[1540.0,172.0],[1550.0,145.7],[1560.0,119.2],[1570.0,104.8],[1580.0,100.1],[1590.0,97.7],[1600.0,97.2],[1610.0,98.8],[1620.0,98.1],[1630.0,98.1],[1640.0,98.8],[1650.0,98.7],[1660.0,98.5],[1670.0,98.8],[1680.0,98.2],[1690.0,98.2],[1700.0,97.7],[1710.0,98.1],[1720.0,97.1],[1730.0,97.6],[1740.0,97.7],[1750.0,97.4],[1760.0,97.6],[1770.0,98.0],[1780.0,97.6],[1790.0,97.7],[1800.0,97.8],[1810.0,97.6],[1820.0,97.9],
-[1830.0,97.9],[1840.0,97.8],[1850.0,97.7],[1860.0,97.7],[1870.0,97.7],[1880.0,97.4],[1890.0,97.3],[1900.0,97.2],[1910.0,96.9],[1920.0,97.2],[1930.0,97.4],[1940.0,97.7],[1950.0,97.1],[1960.0,97.1],[1970.0,96.6],[1980.0,96.7],[1990.0,96.5],[2000.0,97.2],[2010.0,96.6],[2020.0,96.4],[2030.0,96.7],[2040.0,96.8],[2050.0,96.6],[2060.0,96.6],[2070.0,96.5],[2080.0,96.6],[2090.0,96.4],[2100.0,96.6],[2110.0,96.5],[2120.0,96.2],[2130.0,96.2],[2140.0,96.5],[2150.0,96.0],[2160.0,96.2],[2170.0,96.3],[2180.0,96.4],[2190.0,97.0],[2200.0,96.8],[2210.0,96.5],[2220.0,96.6],[2230.0,96.1],[2240.0,96.1],[2250.0,96.6],[2260.0,96.5],[2270.0,96.6],[2280.0,96.4],[2290.0,96.5],[2300.0,96.6],[2310.0,96.9],[2320.0,96.8],[2330.0,96.9],[2340.0,97.2],[2350.0,96.6],[2360.0,97.3],[2370.0,97.4],[2380.0,97.1],[2390.0,97.1],[2400.0,96.8],[2410.0,97.0],[2420.0,97.1],[2430.0,97.1],[2440.0,97.0],[2450.0,97.1],[2460.0,97.1],[2470.0,97.5],[2480.0,96.9],[2490.0,96.8],[2500.0,96.8],[2510.0,97.0],[2520.0,96.7],[2530.0,97.0],[2540.0,97.1],[2550.0,97.2],[2560.0,97.1],[2570.0,97.1],[2580.0,97.1],[2590.0,96.8],[2600.0,97.2],[2610.0,97.1],[2620.0,97.3],[2630.0,97.1],[2640.0,97.1],[2650.0,97.1],[2660.0,97.0],[2670.0,96.8],[2680.0,97.3],[2690.0,97.4],[2700.0,97.3],[2710.0,97.2],[2720.0,97.1],[2730.0,97.2],[2740.0,97.1],[2750.0,97.1],[2760.0,97.1],[2770.0,96.8],[2780.0,96.4],[2790.0,96.6],[2800.0,96.6]];
-var OutPr = [[0.0,1788.1],[10.0,1803.3],[20.0,1807.3],[30.0,1813.5],[40.0,1822.0],[50.0,1820.3],[60.0,1823.7],[70.0,1823.7],[80.0,1825.3],[90.0,1831.0],[100.0,1832.1],[110.0,1834.4],[120.0,1834.4],[130.0,1831.5],[140.0,1832.7],[150.0,1834.4],[160.0,1831.5],[170.0,1832.1],[180.0,1830.4],[190.0,1831.0],[200.0,1830.4],[210.0,1829.3],[220.0,1829.9],[230.0,1828.2],[240.0,1831.0],[250.0,1828.7],[260.0,1827.0],[270.0,1829.3],[280.0,1826.5],[290.0,1824.8],[300.0,1824.2],[310.0,1823.7],[320.0,1823.7],[330.0,1823.7],[340.0,1825.3],[350.0,1822.0],[360.0,1820.3],[370.0,1818.0],[380.0,1819.1],[390.0,1816.3],[400.0,1820.8],[410.0,1820.8],[420.0,1819.7],[430.0,1820.3],[440.0,1819.7],[450.0,1819.1],
-[460.0,1819.1],[470.0,1821.4],[480.0,1821.4],[490.0,1818.0],[500.0,1816.9],[510.0,1819.1],[520.0,1818.6],[530.0,1816.9],[540.0,1816.9],[550.0,1815.2],[560.0,1814.1],[570.0,1814.6],[580.0,1811.2],[590.0,1814.1],[600.0,1813.5],[610.0,1812.4],[620.0,1809.0],[630.0,1813.5],[640.0,1811.8],[650.0,1815.8],[660.0,1816.3],[670.0,1815.2],[680.0,1815.2],[690.0,1815.8],[700.0,1816.3],[710.0,1818.6],[720.0,1816.9],[730.0,1814.6],[740.0,1816.3],[750.0,1814.1],[760.0,1812.9],[770.0,1812.9],[780.0,1811.2],[790.0,1812.4],[800.0,1815.2],[810.0,1812.4],[820.0,1813.5],[830.0,1811.8],[840.0,1811.2],[850.0,1812.9],[860.0,1809.0],[870.0,1811.2],[880.0,1816.9],[890.0,1815.2],[900.0,1813.5],[910.0,1812.9],
-[920.0,1815.8],[930.0,1819.1],[940.0,1818.0],[950.0,1816.3],[960.0,1818.0],[970.0,1815.2],[980.0,1818.6],[990.0,1815.2],[1000.0,1822.5],[1010.0,1822.5],[1020.0,1816.9],[1030.0,1816.3],[1040.0,1817.4],[1050.0,1816.9],[1060.0,1811.8],[1070.0,1818.6],[1080.0,1818.6],[1090.0,1815.2],[1100.0,1816.9],[1110.0,1815.8],[1120.0,1815.8],[1130.0,1816.9],[1140.0,1815.2],[1150.0,1815.2],[1160.0,1818.0],[1170.0,1817.4],[1180.0,1818.0],[1190.0,1819.1],[1200.0,1817.4],[1210.0,1822.5],[1220.0,1313.9],[1230.0,1694.5],[1240.0,1891.3],[1250.0,1813.5],[1260.0,1827.0],[1270.0,1831.5],[1280.0,1827.6],[1290.0,1832.1],[1300.0,1831.5],[1310.0,1829.9],[1320.0,1834.4],[1330.0,1831.0],[1340.0,1827.6],
-[1350.0,1829.3],[1360.0,1832.1],[1370.0,1834.9],[1380.0,1834.9],[1390.0,1839.4],[1400.0,1830.4],[1410.0,1832.7],[1420.0,1833.8],[1430.0,1847.9],[1440.0,1770.6],[1450.0,1668.0],[1460.0,1279.5],[1470.0,1138.5],[1480.0,1724.4],[1490.0,1571.0],[1500.0,1740.8],[1510.0,1326.8],[1520.0,1661.2],[1530.0,1859.2],[1540.0,1851.8],[1550.0,1885.7],[1560.0,1876.1],[1570.0,1860.3],[1580.0,1870.5],[1590.0,1851.8],[1600.0,1853.5],[1610.0,1863.7],[1620.0,1854.1],[1630.0,1855.8],[1640.0,1858.6],[1650.0,1857.5],[1660.0,1858.6],[1670.0,1841.7],[1680.0,1824.2],[1690.0,1817.4],[1700.0,1813.5],[1710.0,1814.6],[1720.0,1809.0],[1730.0,1806.2],[1740.0,1803.9],[1750.0,1804.5],[1760.0,1798.8],[1770.0,1793.8],[1780.0,1792.1],[1790.0,1793.2],[1800.0,1792.6],[1810.0,1787.0],[1820.0,1787.0],[1830.0,1786.4],[1840.0,1788.1],[1850.0,1784.7],
-[1860.0,1781.4],[1870.0,1780.2],[1880.0,1777.4],[1890.0,1775.7],[1900.0,1775.2],[1910.0,1775.2],[1920.0,1776.8],[1930.0,1778.0],[1940.0,1775.7],[1950.0,1769.5],[1960.0,1769.5],[1970.0,1768.4],[1980.0,1771.2],[1990.0,1770.1],[2000.0,1769.5],[2010.0,1767.8],[2020.0,1764.4],[2030.0,1764.4],[2040.0,1765.0],[2050.0,1762.7],[2060.0,1765.6],[2070.0,1763.9],[2080.0,1762.2],[2090.0,1759.9],[2100.0,1759.9],[2110.0,1762.2],[2120.0,1762.7],[2130.0,1762.2],[2140.0,1762.7],[2150.0,1759.4],[2160.0,1761.1],[2170.0,1761.6],[2180.0,1763.3],[2190.0,1765.0],[2200.0,1768.4],[2210.0,1763.3],[2220.0,1762.7],[2230.0,1759.9],[2240.0,1762.7],[2250.0,1764.4],[2260.0,1765.6],[2270.0,1766.7],[2280.0,1763.3],[2290.0,1763.3],[2300.0,1763.9],[2310.0,1762.7],[2320.0,1762.7],[2330.0,1767.3],[2340.0,1767.8],[2350.0,1765.6],[2360.0,1766.1],
-[2370.0,1766.7],[2380.0,1766.7],[2390.0,1765.0],[2400.0,1765.0],[2410.0,1765.0],[2420.0,1765.0],[2430.0,1765.6],[2440.0,1765.6],[2450.0,1763.3],[2460.0,1767.8],[2470.0,1767.8],[2480.0,1765.0],[2490.0,1761.6],[2500.0,1761.6],[2510.0,1762.7],[2520.0,1763.3],[2530.0,1763.3],[2540.0,1763.9],[2550.0,1765.0],[2560.0,1766.1],[2570.0,1765.6],[2580.0,1766.7],[2590.0,1765.6],[2600.0,1768.4],[2610.0,1766.7],[2620.0,1764.4],[2630.0,1764.4],[2640.0,1766.1],[2650.0,1766.1],[2660.0,1766.1],[2670.0,1763.9],[2680.0,1765.6],[2690.0,1765.6],[2700.0,1765.6],[2710.0,1765.0],[2720.0,1765.6],[2730.0,1766.1],[2740.0,1767.3],[2750.0,1766.7],[2760.0,1762.2],[2770.0,1754.9],[2780.0,1750.9],[2790.0,1750.3],[2800.0,1748.1]];
-var ERPM = [[0.0,1503.],[10.0,3006.],[20.0,3005.],[30.0,1505.],[40.0,1505.],[50.0,3015.],[60.0,1503.],[70.0,3006.],[80.0,3006.],[90.0,1503.],[100.0,1503.],[110.0,1503.],[120.0,1500.],[130.0,1503.],[140.0,752.],[150.0,1503.],[160.0,1503.],[170.0,1503.],[180.0,1505.],[190.0,1503.],[200.0,1503.],[210.0,3006.],[220.0,1503.],[230.0,1503.],[240.0,1502.],[250.0,1503.],[260.0,3005.],[270.0,1500.],[280.0,1502.],[290.0,1502.],[300.0,1502.],[310.0,752.],[320.0,1502.],[330.0,1502.],[340.0,1504.],[350.0,1502.],[360.0,1502.],[370.0,1501.],[380.0,1502.],[390.0,501.],[400.0,1501.],[410.0,501.],[420.0,751.],[430.0,751.],[440.0,1503.],[450.0,750.],[460.0,1501.],[470.0,1503.],[480.0,501.],[490.0,1501.],[500.0,1501.],[510.0,501.],[520.0,1501.],[530.0,751.],[540.0,1501.],[550.0,1501.],[560.0,1501.],[570.0,1501.],[580.0,1504.],[590.0,1504.],
-[600.0,1502.],[610.0,751.],[620.0,1501.],[630.0,1501.],[640.0,1501.],[650.0,1501.],[660.0,1504.],[670.0,1502.],[680.0,751.],[690.0,751.],[700.0,1501.],[710.0,751.],[720.0,1501.],[730.0,1502.],[740.0,1502.],[750.0,751.],[760.0,376.],[770.0,1502.],[780.0,1501.],[790.0,1502.],[800.0,1499.],[810.0,1499.],[820.0,750.],[830.0,1499.],[840.0,501.],[850.0,300.],[860.0,1504.],[870.0,751.],[880.0,1502.],[890.0,1502.],[900.0,1502.],[910.0,751.],[920.0,501.],[930.0,1502.],[940.0,751.],[950.0,1502.],[960.0,501.],[970.0,1504.],[980.0,751.],[990.0,1502.],[1000.0,751.],[1010.0,1502.],[1020.0,500.],[1030.0,751.],[1040.0,1502.],[1050.0,751.],[1060.0,1502.],[1070.0,1502.],[1080.0,751.],[1090.0,751.],[1100.0,1502.],[1110.0,750.],[1120.0,1502.],[1130.0,375.],[1140.0,1502.],[1150.0,300.],[1160.0,375.],[1170.0,1499.],[1180.0,300.],
-[1190.0,375.],[1200.0,1502.],[1210.0,373.],[1220.0,368.],[1230.0,502.],[1240.0,495.],[1250.0,1475.],[1260.0,1468.],[1270.0,732.],[1280.0,1461.],[1290.0,1458.],[1300.0,1456.],[1310.0,1456.],[1320.0,1451.],[1330.0,1453.],[1340.0,1453.],[1350.0,726.],[1360.0,1451.],[1370.0,1451.],[1380.0,1451.],[1390.0,1451.],[1400.0,1449.],[1410.0,1449.],[1420.0,1449.],[1430.0,1944.],[1440.0,1197.],[1450.0,786.],[1460.0,0.],[1470.0,0.],[1480.0,1079.],[1490.0,1070.],[1500.0,1085.],[1510.0,923.],[1520.0,1121.],[1530.0,1293.],[1540.0,1762.],[1550.0,367.],[1560.0,352.],[1570.0,186.],[1580.0,892.],[1590.0,892.],[1600.0,892.],[1610.0,892.],[1620.0,892.],[1630.0,892.],[1640.0,892.],[1650.0,892.],[1660.0,892.],[1670.0,892.],[1680.0,0.],[1690.0,0.],[1700.0,0.],[1710.0,0.],[1720.0,0.],[1730.0,0.],[1740.0,0.],[1750.0,0.],[1760.0,0.],
-[1770.0,0.],[1780.0,0.],[1790.0,0.],[1800.0,0.],[1810.0,0.],[1820.0,0.],[1830.0,0.],[1840.0,0.],[1850.0,0.],[1860.0,0.],[1870.0,0.],[1880.0,0.],[1890.0,0.],[1900.0,0.],[1910.0,0.],[1920.0,0.],[1930.0,0.],[1940.0,0.],[1950.0,0.],[1960.0,0.],[1970.0,0.],[1980.0,0.],[1990.0,0.],[2000.0,0.],[2010.0,0.],[2020.0,0.],[2030.0,0.],[2040.0,0.],[2050.0,0.],[2060.0,0.],[2070.0,0.],[2080.0,0.],[2090.0,0.],[2100.0,0.],[2110.0,0.],[2120.0,0.],[2130.0,0.],[2140.0,0.],[2150.0,0.],[2160.0,0.],[2170.0,0.],[2180.0,0.],[2190.0,0.],[2200.0,0.],[2210.0,0.],[2220.0,0.],[2230.0,0.],[2240.0,0.],[2250.0,0.],[2260.0,0.],[2270.0,0.],[2280.0,0.],[2290.0,0.],[2300.0,0.],[2310.0,0.],[2320.0,0.],[2330.0,0.],[2340.0,0.],[2350.0,0.],[2360.0,0.],[2370.0,0.],[2380.0,0.],[2390.0,0.],[2400.0,0.],[2410.0,0.],[2420.0,0.],[2430.0,0.],[2440.0,0.],
-[2450.0,0.],[2460.0,0.],[2470.0,0.],[2480.0,0.],[2490.0,0.],[2500.0,0.],[2510.0,0.],[2520.0,0.],[2530.0,0.],[2540.0,0.],[2550.0,0.],[2560.0,0.],[2570.0,0.],[2580.0,0.],[2590.0,0.],[2600.0,0.],[2610.0,0.],[2620.0,0.],[2630.0,0.],[2640.0,0.],[2650.0,0.],[2660.0,0.],[2670.0,0.],[2680.0,0.],[2690.0,0.],[2700.0,0.],[2710.0,0.],[2720.0,0.],[2730.0,0.],[2740.0,0.],[2750.0,0.],[2760.0,0.],[2770.0,0.],[2780.0,0.],[2790.0,0.],[2800.0,0.]];
-</script>
-
-<script class="code" type="text/javascript">
-$(document).ready(function(){
-  var plot1 = $.jqplot('chart1', [goog], { 
-      title: 'Google, Inc.', 
-      series: [{ 
-          label: 'Google, Inc.', 
-          neighborThreshold: -1 
-      }], 
-      axes: { 
-          xaxis: { 
-              renderer: $.jqplot.DateAxisRenderer
-          }, 
-          yaxis: { 
-              tickOptions:{ prefix: '$' } 
-          } 
-      }, 
-      cursor:{ 
-        show: true,
-        zoom:true, 
-        showTooltip:false
-      } 
-  });
-
-  $('.button-reset').click(function() { plot1.resetZoom() });
-});
-</script>
-
-<script class="code" type="text/javascript">
-$(document).ready(function(){
-    var plot2 = $.jqplot('chart2', [InPr, OutPr, ERPM], { 
-        title:'Plot with Zooming and 3 Y Axes', 
-        seriesDefaults: {showMarker:false}, 
-        series:[
-            {},
-            {yaxis:'y2axis'}, 
-            {yaxis:'y3axis'}
-        ], 
-        cursor: {
-            show: true,
-            tooltipLocation:'sw', 
-            zoom:true
-        }, 
-        axesDefaults:{
-            // color the axes baselines the same color as the series.
-            useSeriesColor: true,
-            rendererOptions: {
-                // align ticks for each axis across the grid
-                alignTicks: true
-            }
-        }, 
-        axes:{
-            // Let the lines start at the edge of the axis.
-            xaxis:{ pad: 0 }
-        } 
-    });
-});
-</script>
-
-<!-- End example scripts -->
-
-<!-- Don't touch this! -->
-
-
-    <script class="include" type="text/javascript" src="../jquery.jqplot.min.js"></script>
-    <script type="text/javascript" src="syntaxhighlighter/scripts/shCore.min.js"></script>
-    <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushJScript.min.js"></script>
-    <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushXml.min.js"></script>
-<!-- End Don't touch this! -->
-
-<!-- Additional plugins go here -->
-    <script class="include" language="javascript" type="text/javascript" src="../plugins/jqplot.cursor.min.js"></script>
-    <script class="include" language="javascript" type="text/javascript" src="../plugins/jqplot.dateAxisRenderer.min.js"></script>
-
-<!-- End additional plugins -->
-
-
-	</div>	
-	<script type="text/javascript" src="example.min.js"></script>
-
-</body>
-
-
-</html>
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/.gitignore b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/.gitignore
deleted file mode 100755
index 99eb693b..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/.gitignore
+++ /dev/null
@@ -1,27 +0,0 @@
-
-# Jekyll Files #
-################
-_site
-
-
-# Random Files #
-################
-*.swp
-*~
-*.log
-
-
-# Private Test Data #
-#####################
-*REALDATA*
-
-
-# OS generated files #
-######################
-.DS_Store*
-ehthumbs.db
-Icon?
-Thumbs.db
-#  nodejs packages   #
-######################
-node_modules
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/.jshintrc b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/.jshintrc
deleted file mode 100755
index 66d7029b..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/.jshintrc
+++ /dev/null
@@ -1,3 +0,0 @@
-{
-    "asi": true
-}
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/GruntFile.js b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/GruntFile.js
deleted file mode 100755
index b6ed18ae..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/GruntFile.js
+++ /dev/null
@@ -1,106 +0,0 @@
-module.exports = function(grunt) {
-
-    //Project configuration.
-    grunt.initConfig({
-        pkg: grunt.file.readJSON('package.json'),
-        concat: {
-            options: {
-                separator: ''
-            },
-            dist: {
-                src: [
-                     'src/intro.js',
-                     'src/core.js',
-                     'src/interactiveLayer.js',
-                     'src/tooltip.js',
-                     'src/utils.js',
-                     'src/models/axis.js',
-                     'src/models/historicalBar.js',
-                     'src/models/bullet.js',
-                     'src/models/bulletChart.js',
-                     'src/models/cumulativeLineChart.js',
-                     'src/models/discreteBar.js',
-                     'src/models/discreteBarChart.js',
-                     'src/models/distribution.js',
-                     'src/models/historicalBar.js',
-                     'src/models/historicalBarChart.js',
-                     'src/models/indentedTree.js',
-                     'src/models/legend.js',
-                     'src/models/line.js',
-                     'src/models/lineChart.js',
-                     'src/models/linePlusBarChart.js',
-                     'src/models/lineWithFocusChart.js',
-                     'src/models/linePlusBarWithFocusChart.js',
-                     'src/models/multiBar.js',
-                     'src/models/multiBarChart.js',
-                     'src/models/multiBarHorizontal.js',
-                     'src/models/multiBarHorizontalChart.js',
-                     'src/models/multiChart.js',
-                     'src/models/ohlcBar.js',
-                     'src/models/pie.js',
-                     'src/models/pieChart.js',
-                     'src/models/scatter.js',
-                     'src/models/scatterChart.js',
-                     'src/models/scatterPlusLineChart.js',
-                     'src/models/sparkline.js',
-                     'src/models/sparklinePlus.js',
-                     'src/models/stackedArea.js',
-                     'src/models/stackedAreaChart.js',
-                     'src/outro.js'
-                     ],
-                dest: 'nv.d3.js'
-            }
-        },
-        uglify: {
-            options: {
-                banner: '/*! <%= pkg.name %> - v<%= pkg.version %> - ' +
-                    '<%= grunt.template.today("yyyy-mm-dd") %> */'
-            },
-            js: {
-                files: {
-                    'nv.d3.min.js': ['nv.d3.js']
-                }
-            }
-        },
-        jshint: {
-            foo: {
-                src: "src/**/*.js"
-            },
-            options: {
-                jshintrc: '.jshintrc'
-            }
-        },
-        watch: {
-            js: {
-                files: ["src/**/*.js"],
-                tasks: ['concat']
-            }
-        },
-        copy: {
-          css: {
-            files: [
-              { src: 'src/nv.d3.css', dest: 'nv.d3.css' }
-            ]
-          }
-        },
-        cssmin: {
-          dist: {
-            files: {
-              'nv.d3.min.css' : ['nv.d3.css']
-            }
-          }
-        }
-    });
-
-    grunt.loadNpmTasks('grunt-contrib-watch');
-    grunt.loadNpmTasks('grunt-contrib-concat');
-    grunt.loadNpmTasks('grunt-contrib-jshint');
-    grunt.loadNpmTasks('grunt-contrib-uglify');
-    grunt.loadNpmTasks('grunt-contrib-copy');
-    grunt.loadNpmTasks('grunt-contrib-cssmin');
-
-    grunt.registerTask('default', ['concat', 'copy']);
-    grunt.registerTask('production', ['concat', 'uglify', 'copy', 'cssmin']);
-    grunt.registerTask('release', ['production']);
-    grunt.registerTask('lint', ['jshint']);
-};
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/LICENSE.md b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/LICENSE.md
deleted file mode 100755
index 82bfea0c..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/LICENSE.md
+++ /dev/null
@@ -1,49 +0,0 @@
-
-##nvd3.js License
-
-Copyright (c) 2011, 2012 [Novus Partners, Inc.][novus]
-
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
-    http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-
-[novus]: https://www.novus.com/
-
-
-
-##d3.js License
-
-Copyright (c) 2012, Michael Bostock
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
-* Redistributions of source code must retain the above copyright notice, this
-  list of conditions and the following disclaimer.
-
-* Redistributions in binary form must reproduce the above copyright notice,
-  this list of conditions and the following disclaimer in the documentation
-  and/or other materials provided with the distribution.
-
-* The name Michael Bostock may not be used to endorse or promote products
-  derived from this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-DISCLAIMED. IN NO EVENT SHALL MICHAEL BOSTOCK BE LIABLE FOR ANY DIRECT,
-INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
-BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
-OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
-EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/Makefile b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/Makefile
deleted file mode 100755
index a234fed8..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/Makefile
+++ /dev/null
@@ -1,72 +0,0 @@
-JS_FILES = \
-	src/intro.js \
-	src/core.js \
-	src/interactiveLayer.js \
-	src/tooltip.js \
-	src/utils.js \
-	src/models/axis.js \
-	src/models/bullet.js \
-	src/models/bulletChart.js \
-	src/models/cumulativeLineChart.js \
-	src/models/discreteBar.js \
-	src/models/discreteBarChart.js \
-	src/models/distribution.js \
-	src/models/historicalBar.js \
-	src/models/historicalBarChart.js \
-	src/models/indentedTree.js \
-	src/models/legend.js \
-	src/models/line.js \
-	src/models/lineChart.js \
-	src/models/linePlusBarChart.js \
-	src/models/lineWithFocusChart.js \
-	src/models/linePlusBarWithFocusChart.js \
-	src/models/multiBar.js \
-	src/models/multiBarChart.js \
-	src/models/multiBarHorizontal.js \
-	src/models/multiBarHorizontalChart.js \
-	src/models/multiChart.js \
-	src/models/ohlcBar.js \
-	src/models/pie.js \
-	src/models/pieChart.js \
-	src/models/scatter.js \
-	src/models/scatterChart.js \
-	src/models/scatterPlusLineChart.js \
-	src/models/sparkline.js \
-	src/models/sparklinePlus.js \
-	src/models/stackedArea.js \
-	src/models/stackedAreaChart.js \
-	src/outro.js
-CSS_FILES = \
-	src/nv.d3.css
-
-JS_COMPILER = \
-	uglifyjs
-
-CSS_COMPILER = \
-	cssmin
-
-all: nv.d3.js nv.d3.min.js nv.d3.css nv.d3.min.css
-nv.d3.js: $(JS_FILES)
-nv.d3.min.js: $(JS_FILES)
-nv.d3.css: $(CSS_FILES)
-nv.d3.min.css: $(CSS_FILES)
-
-nv.d3.js: Makefile
-	rm -f $@
-	cat $(filter %.js,$^) >> $@
-
-nv.d3.css: Makefile
-	rm -f $@
-	cat $(filter %.css,$^) >> $@
-
-%.min.js:: Makefile
-	rm -f $@
-	$(JS_COMPILER) nv.d3.js >> $@
-
-%.min.css:: Makefile
-	rm -f $@
-	$(CSS_COMPILER) nv.d3.css >> $@
-
-
-clean:
-	rm -rf nv.d3*.js nv.d3*.css
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/README.md b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/README.md
deleted file mode 100755
index 7c61aa49..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/README.md
+++ /dev/null
@@ -1,105 +0,0 @@
-# NVD3 - v1.1.10-beta
-## Release notes for version 1.1.10 beta
-* Line charts now have a new tooltip option available. This new tooltip displays all series information at once, and shows up anywhere your mouse moves.
-To enable, set **useInteractiveGuideline** to true. See examples in the **test/** directory for how this tooltip works.
-* New test pages have been created for various kinds of charts. They live in the **test/** directory. The goal of these test pages is to aid
-in regression testing coverage when changes are made to charts.
-* Pie charts accept data in a different way, and if you update to version 1.1, **your pie charts will break**. See the pie chart examples for how
-data should be properly passed in. It's a very simple change.
-* Pie charts can now accept a 'labelType' property. 
-* Tooltip transitions are **turned off** by default, if you update to the latest nv.d3.css.  To bring them back, add a 'with-transitions' CSS class
-to the containing chart DIV.
-* Stacked area charts have transitions again. Duration is controlled via a 'transitionDuration' property.
-* Line, cumulative, scatter, multi bar and discrete bar charts also have the 'transitionDuration' property.
-* Issue #127: Adding ability to override individual scatter plot point colors.
-* Issue #216: Exposing xRange and yRange overrides for all charts.
-* Issue #168: Adding legend.radioButtonMode(). When set to true, legend click behavior will match those of radio buttons.
-* Line stroke-width has been reduced to 1.5px, from 2.5px.
-* Hover points on line and stacked area charts are now a small solid dot, instead of a large ring.
-* Added Multibar chart property "groupSpacing".
-* Charts now have a method called "options()", where you can pass in chart configurations via an object.
-* examples/index.html page created, for quick access to all NVD3 examples and test pages.
-
-## Overview
-A reusable chart library for d3.js.
-
-NVD3 may change from its current state, but will always try to follow the style of d3.js.
-
-You can also check out the [examples page](http://nvd3.org/ghpages/examples.html).
-**Note:** The examples on nvd3.org are outdated.  For examples on how to use the latest NVD3, please checkout the **examples/** directory in the repository.
-
----
-
-# Current development focus
-
-- Getting documentation up.
-- Unifying common API functions between charts.
-- Bug fixes that come up.
-
----
-
-# Installation Instructions
-
-`d3.v3.js` is a dependency of `nv.d3.js`. Be sure to include in in your project, then:  
-Add a script tag to include `nv.d3.js` OR `nv.d3.min.js` in your project.  
-Also add a link to the `nv.d3.css` file.
-
-See wiki -> Documentation for more detail
-
----
-
-If one of [the existing models](https://github.com/novus/nvd3/tree/master/src/models) doesn't meet your needs, fork the project, implement the model and an example using it, send us a pull request, for consideration for inclusion in the project.
-
-We cannot honor all pull requests, but we will review all of them.
-
-Please do not aggregate pull requests. Aggregated pull requests are actually more difficult to review.
-
-We are currently changing our branch structure so that master will be gauranteed stable. In addition, there is now a "development" branch. This branch reflects the latest changes to NVD3 and is not necessarily stable.
-
----
-
-## Minifying your fork:
-
-### Using Make
-The Makefile requires [UglifyJS](https://github.com/mishoo/UglifyJS) and [CSSMin](https://github.com/jbleuzen/node-cssmin)
-
-The easiest way to install UglifyJS and CSSMin is via npm. Run `npm install -g uglify-js cssmin`. After installing verify the setup by running `uglifyjs --version` and `cssmin --help`.
-
-Once you have the `uglifyjs` and `cssmin` commands available, running `make` from your
-fork's root directory will rebuild both `nv.d3.js` and `nv.d3.min.js`.
-
-    make # build nv.d3.js and nv.d3.css and minify
-    make nv.d3.js # Build nv.d3.js
-    make nv.d3.min.js # Minify nv.d3.js into nv.d3.min.js
-    make nv.d3.css # Build nv.d3.css
-    make nv.d3.min.css # Minify nv.d3.css into nv.d3.min.css
-    make clean # Delete nv.d3.*js and nv.d3.*css
-
-
-*Without UglifyJS of CSSMin, you won't get the minified versions when running make.**
-
-### Using Grunt
-
-You can use grunt instead of makefile to build js file. See more about [grunt](http://gruntjs.com/).
-***[Nodejs](http://nodejs.org/) must be installed before you can use grunt.***
-Run `npm install` in root dir to install grunt and it's dependencies.
-
-Then, you can use these commands:
-
-    grunt # build nv.d3.js
-    grunt production # build nv.d3.js and nv.d3.min.js
-    grunt watch # watch file changes in src/, and rebuild nv.d3.js, it's very helpful when delevop NVD3
-    grunt lint # run jshint on src/**/*.js
-
-**We ask that you DO NOT minify pull requests... 
-If you need to minify please build pull request in separate branch, and
-merge and minify in your master.
-
-## Supported Browsers
-NVD3 runs best on WebKit based browsers. 
-
-* **Google Chrome: latest version (preferred)**
-* **Opera 15+ (preferred)**
-* Safari: latest version
-* Firefox: latest version
-* Internet Explorer: 9 and 10
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/bower.json b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/bower.json
deleted file mode 100755
index 37470dc2..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/bower.json
+++ /dev/null
@@ -1,35 +0,0 @@
-{
-  "name": "nvd3",
-  "version": "1.1.14-beta",
-  "homepage": "http://www.nvd3.org",
-  "authors": [
-    "Bob Monteverde",
-    "Tyler Wolf",
-    "Robin Hu",
-    "Frank Shao"
-  ],
-  "description": "Re-usable charts and chart components for d3.",
-  "main": ["nv.d3.js", "src/nv.d3.css"],
-  "keywords": [
-    "d3",
-    "visualization",
-    "svg",
-    "charts"
-  ],
-  "license": "Apache License, v2.0",
-  "dependencies": {
-    "d3": "3.3.5"
-  },
-  "ignore" : [
-    "**/.*",
-    "node_modules",
-    "bower_components",
-    "test",
-    "tests",
-    "src/models/*",
-    "src/*.js",
-    "lib",
-    "examples",
-    "deprecated"
-  ]
-}
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/build.bat b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/build.bat
deleted file mode 100755
index de98b5a3..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/build.bat
+++ /dev/null
@@ -1,6 +0,0 @@
-@echo off
-copy src\intro.js /B + src\core.js /B + src\tooltip.js /B temp1.js /B
-copy src\models\*.js /B temp2.js /B
-copy temp1.js /B + temp2.js /B + src\outro.js /B nv.d3.js /B
-del temp1.js
-del temp2.js
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/bar.html b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/bar.html
deleted file mode 100755
index f25e177b..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/bar.html
+++ /dev/null
@@ -1,198 +0,0 @@
-<!DOCTYPE html>
-<meta charset="utf-8">
-<link href="../src/d3.css" rel="stylesheet" type="text/css">
-<style>
-
-body {
-  overflow-y:scroll;
-}
-
-text {
-  font: 12px sans-serif;
-}
-
-</style>
-<body>
-
-<svg id="test1"></svg>
-
-<script src="../lib/d3.v2.js"></script>
-<script src="../nv.d3.js"></script>
-<script src="../src/models/bar.js"></script>
-<script> 
-
-  var testdata = [
-    { 
-      label: "One is a very long",
-      y: 5
-    },
-    { 
-      label: "Two is also very long",
-      y: 2
-    },
-    { 
-      label: "Three",
-      y: 9
-    },
-    { 
-      label: "Four",
-      y:  7
-    },
-    { 
-      label: "Five",
-      y: 4
-    },
-    {
-        label: "Six",
-        y: 3
-    }
-  ];
-
-
-  var testdata2 = [
-      {
-          label: "One is a very long",
-          y: 1
-      },
-      {
-          label: "Two is also very long",
-          y: 12
-      },
-      {
-          label: "Three",
-          y: -9
-      },
-      {
-          label: "Four",
-          y:  4
-      },
-      {
-          label: "Five",
-          y: 6
-      }
-  ];
-
-  var td = 0;
-  var a = (Math.random()*10)+1;
-  if (a > 5) td = 1;
-
-//Format A
-nv.addGraph({
-  generate: function() {
-    var width = nv.utils.windowSize().width - 40,
-        height = nv.utils.windowSize().height - 40;
-
-    var chart = nv.models.bar()
-        .width(width)
-        .height(height)
-        .labelField('label')
-        .dataField('y')
-        .showLabels(true)
-        .title("This is a sample chart title")
-         ;
-
-    if (td === 0) {
-      d3.select("#test1")
-        .attr('width', width)
-        .attr('height', height)
-        .datum(testdata)
-        .call(chart);
-    } else {
-        d3.select("#test1")
-                .attr('width', width)
-                .attr('height', height)
-                .datum(testdata2)
-                .call(chart);
-    }
-
-    return chart;
-  },
-  callback: function(graph) {
-
-      graph.dispatch.on('tooltipShow', function(e) {
-          var offsetElement = document.getElementById("chart"),
-                  left = e.pos[0],
-                  top = e.pos[1];
-
-          var content = '<h3>' + e.label + '</h3>' +
-                  '<p>' +
-                  e.value +
-                  '</p>';
-
-          nv.tooltip.show([left, top], content);
-      });
-
-      graph.dispatch.on('tooltipHide', function(e) {
-          nv.tooltip.cleanup();
-      });
-
-      graph.dispatch.on('elementClick', function(e) {
-          console.log("Bar Click",e);
-      });
-
-      graph.dispatch.on('chartClick', function(e) {
-          console.log("Chart Click",e);
-      });
-
-      graph.dispatch.on('chartClick', function(e) {
-          console.log('Click Switching to');
-          if (td === 0) {
-              d3.select("#test1")
-                      .datum(testdata2)
-                      .call(graph);
-              td = 1;
-
-          } else {
-              d3.select("#test1")
-                      .datum(testdata)
-                      .call(graph);
-              td = 0;
-          }
-      });
-
-
-      window.onresize = function() {
-      var width = nv.utils.windowSize().width - 40,
-          height = nv.utils.windowSize().height - 40;
-
-      d3.select("#test1")
-        .attr('width', width)
-        .attr('height', height)
-        .call(
-          graph
-            .width(width)
-            .height(height)
-        )
-    };
-  }
-});
-
-/*
-//Format B
-nv.addGraph(function() {
-    var selection = d3.select("body")
-        .datum(irwinHallDistribution(10000, 10));
-
-    var chart = nv.models.histogram()
-          .bins(d3.scale.linear().ticks(20))
-          .tickFormat(d3.format(".02f"));
-
-    chart(selection);
-
-    return chart;
-}, function(g) { console.log(g.width(), g.height()) })
-
-//Format C
-nv.addGraph(function() {
-  return nv.models.histogram()
-           .bins(d3.scale.linear().ticks(20))
-           .tickFormat(d3.format(".02f"))(
-             d3.select("body")
-              .datum(irwinHallDistribution(10000, 10))
-             );
-}, function(g) { console.log(g.width(), g.height()) })
-*/
-
-
-
-</script>
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/bar.js b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/bar.js
deleted file mode 100755
index 3aa38e76..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/bar.js
+++ /dev/null
@@ -1,250 +0,0 @@
-
-nv.models.bar = function() {
-  var margin = {top: 20, right: 10, bottom: 80, left: 60},
-      width = 960,
-      height = 500,
-      animate = 500,
-      label ='label',
-      rotatedLabel = true,
-      showLabels = true,
-      id = Math.floor(Math.random() * 10000), //Create semi-unique ID in case user doesn't select one
-      color = d3.scale.category20(),
-      field ='y',
-      title = '';
-
-  var x = d3.scale.ordinal(),
-      y = d3.scale.linear(),
-      xAxis = d3.svg.axis().scale(x).orient('bottom'),
-      yAxis = d3.svg.axis().scale(y).orient('left'),
-      dispatch = d3.dispatch('chartClick', 'elementClick', 'elementDblClick', 'tooltipShow', 'tooltipHide');
-
-
-  function chart(selection) {
-    selection.each(function(data) {
-      x .domain(data.map(function(d,i) { return d[label]; }))
-        .rangeRoundBands([0, width - margin.left - margin.right], .1);
-
-
-      var min = d3.min(data, function(d) { return d[field] });
-      var max = d3.max(data, function(d) { return d[field] });
-      var x0 = Math.max(-min, max);
-      var x1 = -x0;
-
-      // If we have no negative values, then lets stack this with just positive bars
-      if (min >= 0) x1 = 0;
-
-      y .domain([x1, x0])
-        .range([height - margin.top - margin.bottom, 0])
-        .nice();
-
-      xAxis.ticks( width / 100 );
-      yAxis.ticks( height / 36 ).tickSize(-(width - margin.right - margin.left), 0);
-
-      var parent = d3.select(this)
-          .on("click", function(d,i) {
-            dispatch.chartClick({
-                data: d,
-                index: i,
-                pos: d3.event,
-                id: id
-            });
-          });
-
-
-      var wrap = parent.selectAll('g.wrap').data([data]);
-      var gEnter = wrap.enter();
-      gEnter.append("text")
-          .attr("class", "title")
-          .attr("dy", ".91em")
-          .attr("text-anchor", "start")
-          .text(title);
-      gEnter = gEnter.append('g').attr('class', 'nvd3 wrap').attr('id','wrap-'+id).append('g');
-
-
-
-      gEnter.append('g').attr('class', 'x axis');
-      gEnter.append('g').attr('class', 'y axis');
-      gEnter.append('g').attr('class', 'bars');
-
-
-      wrap.attr('width', width)
-          .attr('height', height);
-
-      var g = wrap.select('g')
-          .attr('transform', 'translate(' + margin.left + ',' + margin.top + ')');
-
-
-      var bars = wrap.select('.bars').selectAll('.bar')
-          .data(function(d) { return d; });
-
-      bars.exit().remove();
-
-
-      var barsEnter = bars.enter().append('svg:rect')
-          .attr('class', function(d) { return d[field] < 0 ? "bar negative" : "bar positive"})
-          .attr("fill", function(d, i) { return color(i); })
-          .attr('x', 0 )
-          .on('mouseover', function(d,i){
-            d3.select(this).classed('hover', true);
-            dispatch.tooltipShow({
-                label: d[label],
-                value: d[field],
-                data: d,
-                index: i,
-                // TODO: Calculate the center to the bar
-                pos: [d3.event.pageX, d3.event.pageY],
-                id: id
-            });
-
-          })
-          .on('mouseout', function(d,i){
-                d3.select(this).classed('hover', false);
-                dispatch.tooltipHide({
-                    label: d[label],
-                    value: d[field],
-                    data: d,
-                    index: i,
-                    id: id
-                });
-          })
-          .on('click', function(d,i) {
-                dispatch.elementClick({
-                    label: d[label],
-                    value: d[field],
-                    data: d,
-                    index: i,
-                    pos: d3.event,
-                    id: id
-                });
-              d3.event.stopPropagation();
-          })
-          .on('dblclick', function(d,i) {
-              dispatch.elementDblClick({
-                  label: d[label],
-                  value: d[field],
-                  data: d,
-                  index: i,
-                  pos: d3.event,
-                  id: id
-              });
-              d3.event.stopPropagation();
-          });
-
-
-      bars
-          .attr('class', function(d) { return d[field] < 0 ? "bar negative" : "bar positive"})
-          .attr('transform', function(d,i) { return 'translate(' + x(d[label]) + ',0)'; })
-          .attr('width', x.rangeBand )
-          .order()
-          .transition()
-          .duration(animate)
-          .attr('y', function(d) {  return y(Math.max(0, d[field])); })
-          .attr('height', function(d) { return Math.abs(y(d[field]) - y(0));  });
-
-
-      g.select('.x.axis')
-          .attr('transform', 'translate(0,' + y.range()[0] + ')')
-          .call(xAxis);
-
-
-      if (rotatedLabel) {
-        g.select('.x.axis').selectAll('text').attr('text-anchor','start').attr("transform", function(d) {
-          return "rotate(35)translate(" + this.getBBox().height/2 + "," + '0' + ")";
-        });
-      }
-      if (!showLabels) {
-        g.select('.x.axis').selectAll('text').attr('fill', 'rgba(0,0,0,0)');
-        g.select('.x.axis').selectAll('line').attr('style', 'opacity: 0');
-      }
-      /*else {
-        g.select('.x.axis').selectAll('text').attr('fill', 'rgba(0,0,0,1)');
-        g.select('.x.axis').selectAll('line').attr('style', 'opacity: 1');
-      }*/
-
-
-
-      g.select('.y.axis')
-        .call(yAxis);
-    });
-
-    return chart;
-  }
-
-  chart.margin = function(_) {
-    if (!arguments.length) return margin;
-    margin = _;
-    return chart;
-  };
-
-  chart.width = function(_) {
-    if (!arguments.length) return width;
-    if (margin.left + margin.right + 20 > _)
-      width = margin.left + margin.right + 20; // Min width
-    else
-      width = _;
-    return chart;
-  };
-
-  chart.height = function(_) {
-    if (!arguments.length) return height;
-    if (margin.top + margin.bottom + 20 > _)
-      height = margin.top + margin.bottom + 20; // Min height
-    else
-      height = _;
-    return chart;
-  };
-
-  chart.animate = function(_) {
-    if (!arguments.length) return animate;
-    animate = _;
-    return chart;
-  };
-
-  chart.labelField = function(_) {
-    if (!arguments.length) return (label);
-      label = _;
-      return chart;
-  };
-
-  chart.dataField = function(_) {
-    if (!arguments.length) return (field);
-    field = _;
-    return chart;
-  };
-
-  chart.id = function(_) {
-        if (!arguments.length) return id;
-        id = _;
-        return chart;
-  };
-
-  chart.rotatedLabel = function(_) {
-        if (!arguments.length) return rotatedLabel;
-        rotatedLabel = _;
-        return chart;
-  };
-
-  chart.showLabels = function(_) {
-        if (!arguments.length) return (showLabels);
-        showLabels = _;
-        return chart;
-  };
-
-  chart.title = function(_) {
-      if (!arguments.length) return (title);
-      title = _;
-      return chart;
-  };
-
-  chart.xaxis = {};
-  // Expose the x-axis' tickFormat method.
-  d3.rebind(chart.xaxis, xAxis, 'tickFormat');
-
-  chart.yaxis = {};
-  // Expose the y-axis' tickFormat method.
-  d3.rebind(chart.yaxis, yAxis, 'tickFormat');
-
-  chart.dispatch = dispatch;
-
-  return chart;
-}
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/charts/cumulativeLineChart.js b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/charts/cumulativeLineChart.js
deleted file mode 100755
index 43022ccb..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/charts/cumulativeLineChart.js
+++ /dev/null
@@ -1,174 +0,0 @@
-
-// This technique works AS IS for month end data points
-//   In fact, this works for any series where each value is evenly spaced,
-//   and every series starts at the same value and is 1 to 1
-//     In other words, values at the same index, need to have the same x value
-//     for all series
-//
-// TODO: now that tooltips don't use jquery, could likely get rid of the charts 
-//       collection by simply adding some optional functionality to the model
-nv.charts.cumulativeLineChartDaily = function() {
-  var selector = null,
-      data = [],
-      duration = 500,
-      tooltip = function(key, x, y, e, graph) { 
-        return '<h3>' + key + '</h3>' +
-               '<p>' +  y + ' at ' + x + '</p>'
-      };
-
-
-  var graph = nv.models.cumulativeLine()
-                .x(function(d,i) { return i })
-                .color(d3.scale.category10().range()),
-      showTooltip = function(e) {
-        var offsetElement = document.getElementById(selector.substr(1)),
-            left = e.pos[0] + offsetElement.offsetLeft,
-            top = e.pos[1] + offsetElement.offsetTop,
-            formatX = graph.xAxis.tickFormat(),
-            formatY = graph.yAxis.tickFormat(),
-            x = formatX(graph.x()(e, e.pointIndex)),
-            //x = formatX(graph.x()(e.point)),
-            y = formatY(graph.y()(e.point)),
-            content = tooltip(e.series.key, x, y, e, graph);
-
-        nv.tooltip.show([left, top], content);
-      };
-
-  //setting component defaults
-  //graph.xAxis.tickFormat(d3.format(',r'));
-  graph.xAxis.tickFormat(function(d) {
-    //return d3.time.format('%x')(new Date(d))
-    return d3.time.format('%x')(new Date(data[0].values[d].x))
-  });
-
-  //graph.yAxis.tickFormat(d3.format(',.2f'));
-  graph.yAxis.tickFormat(d3.format(',.2%'));
-
-
-  //TODO: consider a method more similar to how the models are built
-  function chart() {
-    if (!selector || !data.length) return chart; //do nothing if you have nothing to work with
-
-    d3.select(selector).select('svg')
-        .datum(data)
-      .transition().duration(duration).call(graph); //consider using transition chaining like in the models
-
-    return chart;
-  }
-
-
-  // This should always only be called once, then update should be used after, 
-  //     in which case should consider the 'd3 way' and merge this with update, 
-  //     but simply do this on enter... will try another example the d3 way
-  chart.build = function() {
-    if (!selector || !data.length) return chart; //do nothing if you have nothing to work with
-
-    nv.addGraph({
-      generate: function() {
-        var container = d3.select(selector),
-            width = function() { return parseInt(container.style('width')) },
-            height = function() { return parseInt(container.style('height')) },
-            svg = container.append('svg');
-
-        graph
-            .width(width)
-            .height(height);
-
-        svg
-            .attr('width', width())
-            .attr('height', height())
-            .datum(data)
-          .transition().duration(duration).call(graph);
-
-        return graph;
-      },
-      callback: function(graph) {
-        graph.dispatch.on('tooltipShow', showTooltip);
-        graph.dispatch.on('tooltipHide', nv.tooltip.cleanup);
-
-        //TODO: fix issue of multiple graphs failing on resize
-        //TODO: create resize queue and have nv core handle resize instead of binding all to window resize
-        window.onresize =
-        function() {
-          // now that width and height are functions, should be automatic..of course you can always override them
-          d3.select(selector + ' svg')
-              .attr('width', graph.width()()) //need to set SVG dimensions, chart is not aware of the SVG component
-              .attr('height', graph.height()())
-              .call(graph);
-        };
-      }
-    });
-
-    return chart;
-  };
-
-
-  /*
-  //  moved to chart()
-  chart.update = function() {
-    if (!selector || !data.length) return chart; //do nothing if you have nothing to work with
-
-    d3.select(selector).select('svg')
-        .datum(data)
-      .transition().duration(duration).call(graph);
-
-    return chart;
-  };
-  */
-
-  chart.data = function(_) {
-    if (!arguments.length) return data;
-    data = _;
-    return chart;
-  };
-
-  chart.selector = function(_) {
-    if (!arguments.length) return selector;
-    selector = _;
-    return chart;
-  };
-
-  chart.duration = function(_) {
-    if (!arguments.length) return duration;
-    duration = _;
-    return chart;
-  };
-
-  chart.tooltip = function(_) {
-    if (!arguments.length) return tooltip;
-    tooltip = _;
-    return chart;
-  };
-
-  chart.xTickFormat = function(_) {
-    if (!arguments.length) return graph.xAxis.tickFormat();
-    graph.xAxis.tickFormat(typeof _ === 'function' ? _ : d3.format(_));
-    return chart;
-  };
-
-  chart.yTickFormat = function(_) {
-    if (!arguments.length) return graph.yAxis.tickFormat();
-    graph.yAxis.tickFormat(typeof _ === 'function' ? _ : d3.format(_));
-    return chart;
-  };
-
-  chart.xAxisLabel = function(_) {
-    if (!arguments.length) return graph.xAxis.axisLabel();
-    graph.xAxis.axisLabel(_);
-    return chart;
-  };
-
-  chart.yAxisLabel = function(_) {
-    if (!arguments.length) return graph.yAxis.axisLabel();
-    graph.yAxis.axisLabel(_);
-    return chart;
-  };
-
-  d3.rebind(chart, graph, 'x', 'y');
-
-  chart.graph = graph; // Give direct access for getter/setters, and dispatchers
-
-  return chart;
-};
-
-
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/charts/discreteBarChart.js b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/charts/discreteBarChart.js
deleted file mode 100755
index db22ca34..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/charts/discreteBarChart.js
+++ /dev/null
@@ -1,157 +0,0 @@
-
-nv.charts.discreteBar = function() {
-  var selector = null,
-      data = [],
-      duration = 500,
-      tooltip = function(key, x, y, e, graph) { 
-        return '<h3>' + x + '</h3>' +
-               '<p>' +  y + '</p>'
-      };
-
-
-  var graph = nv.models.discreteBarWithAxes(),
-      showTooltip = function(e) {
-        var offsetElement = document.getElementById(selector.substr(1)),
-            left = e.pos[0] + offsetElement.offsetLeft,
-            top = e.pos[1] + offsetElement.offsetTop,
-            formatY = graph.yAxis.tickFormat(), //Assumes using same format as axis, can customize to show higher precision, etc.
-            formatX = graph.xAxis.tickFormat(),
-            x = formatX(graph.x()(e.point)),
-            y = formatY(graph.y()(e.point)),
-            content = tooltip(e.series.key, x, y, e, graph);
-
-        nv.tooltip.show([left, top], content, e.value < 0 ? 'n' : 's');
-      };
-
-  //setting component defaults
-  graph.xAxis.tickFormat(function(d) { return d });
-  graph.yAxis.tickFormat(d3.format(',.f'));
-
-
-  //TODO: consider a method more similar to how the models are built
-  function chart() {
-    if (!selector || !data.length) return chart; //do nothing if you have nothing to work with
-
-    d3.select(selector).select('svg')
-        .datum(data)
-      .transition().duration(duration).call(graph); //consider using transition chaining like in the models
-
-    return chart;
-  }
-
-
-  // This should always only be called once, then update should be used after, 
-  //     in which case should consider the 'd3 way' and merge this with update, 
-  //     but simply do this on enter... should try anoter example that way
-  chart.build = function() {
-    if (!selector || !data.length) return chart; //do nothing if you have nothing to work with
-
-    nv.addGraph({
-      generate: function() {
-        var container = d3.select(selector),
-            width = function() { return parseInt(container.style('width')) },
-            height = function() { return parseInt(container.style('height')) },
-            svg = container.append('svg');
-
-        graph
-            .width(width)
-            .height(height);
-
-        svg
-            .attr('width', width())
-            .attr('height', height())
-            .datum(data)
-          .transition().duration(duration).call(graph);
-
-        return graph;
-      },
-      callback: function(graph) {
-        graph.dispatch.on('tooltipShow', showTooltip);
-        graph.dispatch.on('tooltipHide', nv.tooltip.cleanup);
-
-        //TODO: create resize queue and have nv core handle resize instead of binding all to window resize
-        nv.utils.windowResize(
-          function() {
-            // now that width and height are functions, should be automatic..of course you can always override them
-            d3.select(selector + ' svg')
-                .attr('width', graph.width()()) //need to set SVG dimensions, chart is not aware of the SVG component
-                .attr('height', graph.height()())
-                .transition().duration(duration).call(graph);
-                //.call(graph);
-          }
-        );
-      }
-    });
-
-    return chart;
-  };
-
-
-  /*
-  //  moved to chart()
-  chart.update = function() {
-    if (!selector || !data.length) return chart; //do nothing if you have nothing to work with
-
-    d3.select(selector).select('svg')
-        .datum(data)
-      .transition().duration(duration).call(graph);
-
-    return chart;
-  };
-  */
-
-  chart.data = function(_) {
-    if (!arguments.length) return data;
-    data = _;
-    return chart;
-  };
-
-  chart.selector = function(_) {
-    if (!arguments.length) return selector;
-    selector = _;
-    return chart;
-  };
-
-  chart.duration = function(_) {
-    if (!arguments.length) return duration;
-    duration = _;
-    return chart;
-  };
-
-  chart.tooltip = function(_) {
-    if (!arguments.length) return tooltip;
-    tooltip = _;
-    return chart;
-  };
-
-  chart.xTickFormat = function(_) {
-    if (!arguments.length) return graph.xAxis.tickFormat();
-    graph.xAxis.tickFormat(typeof _ === 'function' ? _ : d3.format(_));
-    return chart;
-  };
-
-  chart.yTickFormat = function(_) {
-    if (!arguments.length) return graph.yAxis.tickFormat();
-    graph.yAxis.tickFormat(typeof _ === 'function' ? _ : d3.format(_));
-    return chart;
-  };
-
-  chart.xAxisLabel = function(_) {
-    if (!arguments.length) return graph.xAxis.axisLabel();
-    graph.xAxis.axisLabel(_);
-    return chart;
-  };
-
-  chart.yAxisLabel = function(_) {
-    if (!arguments.length) return graph.yAxis.axisLabel();
-    graph.yAxis.axisLabel(_);
-    return chart;
-  };
-
-  d3.rebind(chart, graph, 'x', 'y', 'staggerLabels');
-
-  chart.graph = graph; // Give direct access for getter/setters, and dispatchers
-
-  return chart;
-};
-
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/charts/lineChart.js b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/charts/lineChart.js
deleted file mode 100755
index 35da87e4..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/charts/lineChart.js
+++ /dev/null
@@ -1,159 +0,0 @@
-
-// This is an attempt to make an extremely easy to use chart that is ready to go,
-//    basically the chart models with the extra glue... Queuing, tooltips, automatic resize, etc.
-// I may make these more specific, like 'time series line with month end data points', etc.
-//    or may make yet another layer of abstraction... common settings.
-nv.charts.line = function() {
-  var selector = null,
-      data = [],
-      duration = 500,
-      tooltip = function(key, x, y, e, graph) { 
-        return '<h3>' + key + '</h3>' +
-               '<p>' +  y + ' at ' + x + '</p>'
-      };
-
-
-  var graph = nv.models.lineWithLegend(),
-      showTooltip = function(e) {
-        var offsetElement = document.getElementById(selector.substr(1)),
-            left = e.pos[0] + offsetElement.offsetLeft,
-            top = e.pos[1] + offsetElement.offsetTop,
-            formatX = graph.xAxis.tickFormat(),
-            formatY = graph.yAxis.tickFormat(),
-            x = formatX(graph.x()(e.point)),
-            y = formatY(graph.y()(e.point)),
-            content = tooltip(e.series.key, x, y, e, graph);
-
-        nv.tooltip.show([left, top], content);
-      };
-
-  //setting component defaults
-  graph.xAxis.tickFormat(d3.format(',r'));
-  graph.yAxis.tickFormat(d3.format(',.2f'));
-
-
-  //TODO: consider a method more similar to how the models are built
-  function chart() {
-    if (!selector || !data.length) return chart; //do nothing if you have nothing to work with
-
-    d3.select(selector).select('svg')
-        .datum(data)
-      .transition().duration(duration).call(graph); //consider using transition chaining like in the models
-
-    return chart;
-  }
-
-
-  // This should always only be called once, then update should be used after, 
-  //     in which case should consider the 'd3 way' and merge this with update, 
-  //     but simply do this on enter... should try anoter example that way
-  chart.build = function() {
-    if (!selector || !data.length) return chart; //do nothing if you have nothing to work with
-
-    nv.addGraph({
-      generate: function() {
-        var container = d3.select(selector),
-            width = function() { return parseInt(container.style('width')) },
-            height = function() { return parseInt(container.style('height')) },
-            svg = container.append('svg');
-
-        graph
-            .width(width)
-            .height(height);
-
-        svg
-            .attr('width', width())
-            .attr('height', height())
-            .datum(data)
-          .transition().duration(duration).call(graph);
-
-        return graph;
-      },
-      callback: function(graph) {
-        graph.dispatch.on('tooltipShow', showTooltip);
-        graph.dispatch.on('tooltipHide', nv.tooltip.cleanup);
-
-        //TODO: create resize queue and have nv core handle resize instead of binding all to window resize
-        window.onresize =
-        function() {
-          // now that width and height are functions, should be automatic..of course you can always override them
-          d3.select(selector + ' svg')
-              .attr('width', graph.width()()) //need to set SVG dimensions, chart is not aware of the SVG component
-              .attr('height', graph.height()())
-              .call(graph);
-        };
-      }
-    });
-
-    return chart;
-  };
-
-
-  /*
-  //  moved to chart()
-  chart.update = function() {
-    if (!selector || !data.length) return chart; //do nothing if you have nothing to work with
-
-    d3.select(selector).select('svg')
-        .datum(data)
-      .transition().duration(duration).call(graph);
-
-    return chart;
-  };
-  */
-
-  chart.data = function(_) {
-    if (!arguments.length) return data;
-    data = _;
-    return chart;
-  };
-
-  chart.selector = function(_) {
-    if (!arguments.length) return selector;
-    selector = _;
-    return chart;
-  };
-
-  chart.duration = function(_) {
-    if (!arguments.length) return duration;
-    duration = _;
-    return chart;
-  };
-
-  chart.tooltip = function(_) {
-    if (!arguments.length) return tooltip;
-    tooltip = _;
-    return chart;
-  };
-
-  chart.xTickFormat = function(_) {
-    if (!arguments.length) return graph.xAxis.tickFormat();
-    graph.xAxis.tickFormat(typeof _ === 'function' ? _ : d3.format(_));
-    return chart;
-  };
-
-  chart.yTickFormat = function(_) {
-    if (!arguments.length) return graph.yAxis.tickFormat();
-    graph.yAxis.tickFormat(typeof _ === 'function' ? _ : d3.format(_));
-    return chart;
-  };
-
-  chart.xAxisLabel = function(_) {
-    if (!arguments.length) return graph.xAxis.axisLabel();
-    graph.xAxis.axisLabel(_);
-    return chart;
-  };
-
-  chart.yAxisLabel = function(_) {
-    if (!arguments.length) return graph.yAxis.axisLabel();
-    graph.yAxis.axisLabel(_);
-    return chart;
-  };
-
-  d3.rebind(chart, graph, 'x', 'y');
-
-  chart.graph = graph; // Give direct access for getter/setters, and dispatchers
-
-  return chart;
-};
-
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/charts/lineChartDaily.js b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/charts/lineChartDaily.js
deleted file mode 100755
index 592a2851..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/charts/lineChartDaily.js
+++ /dev/null
@@ -1,168 +0,0 @@
-
-// This is an attempt to make an extremely easy to use chart that is ready to go,
-//    basically the chart models with the extra glue... Queuing, tooltips, automatic resize, etc.
-// I may make these more specific, like 'time series line with month end data points', etc.
-//    or may make yet another layer of abstraction... common settings.
-nv.charts.lineChartDaily = function() {
-  var selector = null,
-      data = [],
-      duration = 500,
-      tooltip = function(key, x, y, e, graph) { 
-        return '<h3>' + key + '</h3>' +
-               '<p>' +  y + ' at ' + x + '</p>'
-      };
-
-
-  var graph = nv.models.lineWithLegend()
-                .x(function(d,i) { return i }),
-      showTooltip = function(e) {
-        var offsetElement = document.getElementById(selector.substr(1)),
-            left = e.pos[0] + offsetElement.offsetLeft,
-            top = e.pos[1] + offsetElement.offsetTop,
-            formatX = graph.xAxis.tickFormat(),
-            formatY = graph.yAxis.tickFormat(),
-            x = formatX(graph.x()(e, e.pointIndex)),
-            //x = formatX(graph.x()(e.point)),
-            y = formatY(graph.y()(e.point)),
-            content = tooltip(e.series.key, x, y, e, graph);
-
-        nv.tooltip.show([left, top], content);
-      };
-
-  //setting component defaults
-  //graph.xAxis.tickFormat(d3.format(',r'));
-  graph.xAxis.tickFormat(function(d) {
-    //return d3.time.format('%x')(new Date(d))
-    //log(d, data[0].values[d]);
-    return d3.time.format('%x')(new Date(data[0].values[d].x))
-  });
-
-  //graph.yAxis.tickFormat(d3.format(',.2f'));
-  graph.yAxis.tickFormat(d3.format(',.2%'));
-
-
-  //TODO: consider a method more similar to how the models are built
-  function chart() {
-    if (!selector || !data.length) return chart; //do nothing if you have nothing to work with
-
-    d3.select(selector).select('svg')
-        .datum(data)
-      .transition().duration(duration).call(graph); //consider using transition chaining like in the models
-
-    return chart;
-  }
-
-
-  // This should always only be called once, then update should be used after, 
-  //     in which case should consider the 'd3 way' and merge this with update, 
-  //     but simply do this on enter... should try anoter example that way
-  chart.build = function() {
-    if (!selector || !data.length) return chart; //do nothing if you have nothing to work with
-
-    nv.addGraph({
-      generate: function() {
-        var container = d3.select(selector),
-            width = function() { return parseInt(container.style('width')) },
-            height = function() { return parseInt(container.style('height')) },
-            svg = container.append('svg');
-
-        graph
-            .width(width)
-            .height(height);
-
-        svg
-            .attr('width', width())
-            .attr('height', height())
-            .datum(data)
-          .transition().duration(duration).call(graph);
-
-        return graph;
-      },
-      callback: function(graph) {
-        graph.dispatch.on('tooltipShow', showTooltip);
-        graph.dispatch.on('tooltipHide', nv.tooltip.cleanup);
-
-        //TODO: create resize queue and have nv core handle resize instead of binding all to window resize
-        window.onresize =
-        function() {
-          // now that width and height are functions, should be automatic..of course you can always override them
-          d3.select(selector + ' svg')
-              .attr('width', graph.width()()) //need to set SVG dimensions, chart is not aware of the SVG component
-              .attr('height', graph.height()())
-              .call(graph);
-        };
-      }
-    });
-
-    return chart;
-  };
-
-
-  /*
-  //  moved to chart()
-  chart.update = function() {
-    if (!selector || !data.length) return chart; //do nothing if you have nothing to work with
-
-    d3.select(selector).select('svg')
-        .datum(data)
-      .transition().duration(duration).call(graph);
-
-    return chart;
-  };
-  */
-
-  chart.data = function(_) {
-    if (!arguments.length) return data;
-    data = _;
-    return chart;
-  };
-
-  chart.selector = function(_) {
-    if (!arguments.length) return selector;
-    selector = _;
-    return chart;
-  };
-
-  chart.duration = function(_) {
-    if (!arguments.length) return duration;
-    duration = _;
-    return chart;
-  };
-
-  chart.tooltip = function(_) {
-    if (!arguments.length) return tooltip;
-    tooltip = _;
-    return chart;
-  };
-
-  chart.xTickFormat = function(_) {
-    if (!arguments.length) return graph.xAxis.tickFormat();
-    graph.xAxis.tickFormat(typeof _ === 'function' ? _ : d3.format(_));
-    return chart;
-  };
-
-  chart.yTickFormat = function(_) {
-    if (!arguments.length) return graph.yAxis.tickFormat();
-    graph.yAxis.tickFormat(typeof _ === 'function' ? _ : d3.format(_));
-    return chart;
-  };
-
-  chart.xAxisLabel = function(_) {
-    if (!arguments.length) return graph.xAxis.axisLabel();
-    graph.xAxis.axisLabel(_);
-    return chart;
-  };
-
-  chart.yAxisLabel = function(_) {
-    if (!arguments.length) return graph.yAxis.axisLabel();
-    graph.yAxis.axisLabel(_);
-    return chart;
-  };
-
-  d3.rebind(chart, graph, 'x', 'y');
-
-  chart.graph = graph; // Give direct access for getter/setters, and dispatchers
-
-  return chart;
-};
-
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/charts/stackedAreaChart.js b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/charts/stackedAreaChart.js
deleted file mode 100755
index 8444bbbd..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/charts/stackedAreaChart.js
+++ /dev/null
@@ -1,177 +0,0 @@
-
-/***
- * This chart treats the X position as the INDEX, not the value
- * Each series at the same index MUST be the same x value for a valid representation
- * This is needed specifically for daily data where the gap between Friday and Monday
- * should be equal to the gap from Monday to Tuesday. (and of course, holidays can be 
- * omitted without issue, as long as ALL series omit the same days).
- * An intentional side effect is that ALL ticks will land on actual data points,
- * so this visualization can also be used for Month End data points, showing Month End
- * ticks on the X axis
- ***/
-
-nv.charts.stackedAreaChart = function() {
-  var selector = null,
-      data = [],
-      duration = 500,
-      tooltip = function(key, x, y, e, graph) { 
-        return '<h3>' + key + '</h3>' +
-               '<p>' +  y + ' at ' + x + '</p>'
-      };
-
-
-  var graph = nv.models.stackedAreaWithLegend()
-                .x(function(d,i) { return i }),
-      showTooltip = function(e) {
-        var offsetElement = document.getElementById(selector.substr(1)),
-            left = e.pos[0] + offsetElement.offsetLeft,
-            top = e.pos[1] + offsetElement.offsetTop,
-            formatX = graph.xAxis.tickFormat(),
-            formatY = graph.yAxis.tickFormat(),
-            x = formatX(graph.x()(e, e.pointIndex)),
-            //x = formatX(graph.x()(e.point)),
-            y = formatY(graph.y()(e.point)),
-            content = tooltip(e.series.key, x, y, e, graph);
-
-        nv.tooltip.show([left, top], content);
-      };
-
-  //setting component defaults
-  //graph.xAxis.tickFormat(d3.format(',r'));
-  graph.xAxis.tickFormat(function(d) {
-    //return d3.time.format('%x')(new Date(d))
-    //log(d, data[0].values[d]);
-    return d3.time.format('%x')(new Date(data[0].values[d].x))
-  });
-
-  //graph.yAxis.tickFormat(d3.format(',.2f'));
-  graph.yAxis.tickFormat(d3.format(',.2%'));
-
-
-  //TODO: consider a method more similar to how the models are built
-  function chart() {
-    if (!selector || !data.length) return chart; //do nothing if you have nothing to work with
-
-    d3.select(selector).select('svg')
-        .datum(data)
-      .transition().duration(duration)
-        .call(graph); //consider using transition chaining like in the models
-
-    return chart;
-  }
-
-
-  // This should always only be called once, then update should be used after, 
-  //     in which case should consider the 'd3 way' and merge this with update, 
-  //     but simply do this on enter... should try anoter example that way
-  chart.build = function() {
-    if (!selector || !data.length) return chart; //do nothing if you have nothing to work with
-
-    nv.addGraph({
-      generate: function() {
-        var container = d3.select(selector),
-            width = function() { return parseInt(container.style('width')) },
-            height = function() { return parseInt(container.style('height')) },
-            svg = container.append('svg');
-
-        graph
-            .width(width)
-            .height(height);
-
-        svg
-            .attr('width', width())
-            .attr('height', height())
-            .datum(data)
-          .transition().duration(duration)
-            .call(graph);
-
-        return graph;
-      },
-      callback: function(graph) {
-        graph.dispatch.on('tooltipShow', showTooltip);
-        graph.dispatch.on('tooltipHide', nv.tooltip.cleanup);
-
-        //TODO: create resize queue and have nv core handle resize instead of binding all to window resize
-        window.onresize =
-        function() {
-          // now that width and height are functions, should be automatic..of course you can always override them
-          d3.select(selector + ' svg')
-              .attr('width', graph.width()()) //need to set SVG dimensions, chart is not aware of the SVG component
-              .attr('height', graph.height()())
-              .call(graph);
-        };
-      }
-    });
-
-    return chart;
-  };
-
-
-  /*
-  //  moved to chart()
-  chart.update = function() {
-    if (!selector || !data.length) return chart; //do nothing if you have nothing to work with
-
-    d3.select(selector).select('svg')
-        .datum(data)
-      .transition().duration(duration).call(graph);
-
-    return chart;
-  };
-  */
-
-  chart.data = function(_) {
-    if (!arguments.length) return data;
-    data = _;
-    return chart;
-  };
-
-  chart.selector = function(_) {
-    if (!arguments.length) return selector;
-    selector = _;
-    return chart;
-  };
-
-  chart.duration = function(_) {
-    if (!arguments.length) return duration;
-    duration = _;
-    return chart;
-  };
-
-  chart.tooltip = function(_) {
-    if (!arguments.length) return tooltip;
-    tooltip = _;
-    return chart;
-  };
-
-  chart.xTickFormat = function(_) {
-    if (!arguments.length) return graph.xAxis.tickFormat();
-    graph.xAxis.tickFormat(typeof _ === 'function' ? _ : d3.format(_));
-    return chart;
-  };
-
-  chart.yTickFormat = function(_) {
-    if (!arguments.length) return graph.yAxis.tickFormat();
-    graph.yAxis.tickFormat(typeof _ === 'function' ? _ : d3.format(_));
-    return chart;
-  };
-
-  chart.xAxisLabel = function(_) {
-    if (!arguments.length) return graph.xAxis.axisLabel();
-    graph.xAxis.axisLabel(_);
-    return chart;
-  };
-
-  chart.yAxisLabel = function(_) {
-    if (!arguments.length) return graph.yAxis.axisLabel();
-    graph.yAxis.axisLabel(_);
-    return chart;
-  };
-
-  d3.rebind(chart, graph, 'x', 'y');
-
-  chart.graph = graph; // Give direct access for getter/setters, and dispatchers
-
-  return chart;
-};
-
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/cumulativeLine.html b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/cumulativeLine.html
deleted file mode 100755
index 0a7bab8b..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/cumulativeLine.html
+++ /dev/null
@@ -1,171 +0,0 @@
-<!DOCTYPE html>
-<meta charset="utf-8">
-
-<link href="../src/d3.css" rel="stylesheet" type="text/css">
-
-<style>
-
-body {
-  overflow-y:scroll;
-}
-
-text {
-  font: 12px sans-serif;
-}
-
-</style>
-<body>
-
-  <div id="test1">
-    <svg></svg>
-  </div>
-
-<script src="../lib/d3.v2.js"></script>
-<script src="../nv.d3.js"></script>
-<script src="../src/tooltip.js"></script>
-<script src="../src/models/legend.js"></script>
-<script src="../src/models/axis.js"></script>
-<script src="../src/models/line.js"></script>
-<script src="../src/models/cumulativeLine.js"></script>
-<script>
-
-
-
-var cumulativeMonthEndTestData = [
-                {
-                    key: "Long",
-                    values: [ [ 1025409600000 , 0] , [ 1028088000000 , -6.3382185140371] , [ 1030766400000 , -5.9507873460847] , [ 1033358400000 , -11.569146943813] , [ 1036040400000 , -5.4767332317425] , [ 1038632400000 , 0.50794682203014] , [ 1041310800000 , -5.5310285460542] , [ 1043989200000 , -5.7838296963382] , [ 1046408400000 , -7.3249341615649] , [ 1049086800000 , -6.7078630712489] , [ 1051675200000 , 0.44227126150934] , [ 1054353600000 , 7.2481659343222] , [ 1056945600000 , 9.2512381306992] , [ 1059624000000 , 11.341210982529] , [ 1062302400000 , 14.734820409020] , [ 1064894400000 , 12.387148007542] , [ 1067576400000 , 18.436471461827] , [ 1070168400000 , 19.830742266977] , [ 1072846800000 , 22.643205829887] , [ 1075525200000 , 26.743156781239] , [ 1078030800000 , 29.597478802228] , [ 1080709200000 , 30.831697585341] , [ 1083297600000 , 28.054068024708] , [ 1085976000000 , 29.294079423832] , [ 1088568000000 , 30.269264061274] , [ 1091246400000 , 24.934526898906] , [ 1093924800000 , 24.265982759406] , [ 1096516800000 , 27.217794897473] , [ 1099195200000 , 30.802601992077] , [ 1101790800000 , 36.331003758254] , [ 1104469200000 , 43.142498700060] , [ 1107147600000 , 40.558263931958] , [ 1109566800000 , 42.543622385800] , [ 1112245200000 , 41.683584710331] , [ 1114833600000 , 36.375367302328] , [ 1117512000000 , 40.719688980730] , [ 1120104000000 , 43.897963036919] , [ 1122782400000 , 49.797033975368] , [ 1125460800000 , 47.085993935989] , [ 1128052800000 , 46.601972859745] , [ 1130734800000 , 41.567784572762] , [ 1133326800000 , 47.296923737245] , [ 1136005200000 , 47.642969612080] , [ 1138683600000 , 50.781515820954] , [ 1141102800000 , 52.600229204305] , [ 1143781200000 , 55.599684490628] , [ 1146369600000 , 57.920388436633] , [ 1149048000000 , 53.503593218971] , [ 1151640000000 , 53.522973979964] , [ 1154318400000 , 49.846822298548] , [ 1156996800000 , 54.721341614650] , [ 1159588800000 , 58.186236223191] , [ 1162270800000 , 63.908065540997] , [ 1164862800000 , 69.767285129367] , [ 1167541200000 , 72.534013373592] , [ 1170219600000 , 77.991819436573] , [ 1172638800000 , 78.143584404990] , [ 1175313600000 , 83.702398665233] , [ 1177905600000 , 91.140859312418] , [ 1180584000000 , 98.590960607028] , [ 1183176000000 , 96.245634754228] , [ 1185854400000 , 92.326364432615] , [ 1188532800000 , 97.068765332230] , [ 1191124800000 , 105.81025556260] , [ 1193803200000 , 114.38348777791] , [ 1196398800000 , 103.59604949810] , [ 1199077200000 , 101.72488429307] , [ 1201755600000 , 89.840147735028] , [ 1204261200000 , 86.963597532664] , [ 1206936000000 , 84.075505208491] , [ 1209528000000 , 93.170105645831] , [ 1212206400000 , 103.62838083121] , [ 1214798400000 , 87.458241365091] , [ 1217476800000 , 85.808374141319] , [ 1220155200000 , 93.158054469193] , [ 1222747200000 , 65.973252382360] , [ 1225425600000 , 44.580686638224] , [ 1228021200000 , 36.418977140128] , [ 1230699600000 , 38.727678144761] , [ 1233378000000 , 36.692674173387] , [ 1235797200000 , 30.033022809480] , [ 1238472000000 , 36.707532162718] , [ 1241064000000 , 52.191457688389] , [ 1243742400000 , 56.357883979735] , [ 1246334400000 , 57.629002180305] , [ 1249012800000 , 66.650985790166] , [ 1251691200000 , 70.839243432186] , [ 1254283200000 , 78.731998491499] , [ 1256961600000 , 72.375528540349] , [ 1259557200000 , 81.738387881630] , [ 1262235600000 , 87.539792394232] , [ 1264914000000 , 84.320762662273] , [ 1267333200000 , 90.621278391889] , [ 1270008000000 , 102.47144881651] , [ 1272600000000 , 102.79320353429] , [ 1275278400000 , 90.529736050479] , [ 1277870400000 , 76.580859994531] , [ 1280548800000 , 86.548979376972] , [ 1283227200000 , 81.879653334089] , [ 1285819200000 , 101.72550015956] , [ 1288497600000 , 107.97964852260] , [ 1291093200000 , 106.16240630785] , [ 1293771600000 , 114.84268599533] , [ 1296450000000 , 121.60793322282] , [ 1298869200000 , 133.41437346605] , [ 1301544000000 , 125.46646042904] , [ 1304136000000 , 129.76784954301] , [ 1306814400000 , 128.15798861044] , [ 1309406400000 , 121.92388706072] , [ 1312084800000 , 116.70036100870] , [ 1314763200000 , 88.367701837033] , [ 1317355200000 , 59.159665765725] , [ 1320033600000 , 79.793568139753] , [ 1322629200000 , 75.903834028417] , [ 1325307600000 , 72.704218209157] , [ 1327986000000 , 84.936990804097] , [ 1330491600000 , 93.388148670744]]
-                },
-                {
-                    key: "Short",
-                    values: [ [ 1025409600000 , 0] , [ 1028088000000 , 0] , [ 1030766400000 , 0] , [ 1033358400000 , 0] , [ 1036040400000 , 0] , [ 1038632400000 , 0] , [ 1041310800000 , 0] , [ 1043989200000 , 0] , [ 1046408400000 , 0] , [ 1049086800000 , 0] , [ 1051675200000 , 0] , [ 1054353600000 , 0] , [ 1056945600000 , 0] , [ 1059624000000 , 0] , [ 1062302400000 , 0] , [ 1064894400000 , 0] , [ 1067576400000 , 0] , [ 1070168400000 , 0] , [ 1072846800000 , 0] , [ 1075525200000 , -0.049184266875945] , [ 1078030800000 , -0.10757569491991] , [ 1080709200000 , -0.075601531307242] , [ 1083297600000 , -0.061245277988149] , [ 1085976000000 , -0.068227316401169] , [ 1088568000000 , -0.11242758058502] , [ 1091246400000 , -0.074848439408270] , [ 1093924800000 , -0.11465623676497] , [ 1096516800000 , -0.24370633342416] , [ 1099195200000 , -0.21523268478893] , [ 1101790800000 , -0.37859370911822] , [ 1104469200000 , -0.41932884345151] , [ 1107147600000 , -0.45393735984802] , [ 1109566800000 , -0.50868179522598] , [ 1112245200000 , -0.48164396881207] , [ 1114833600000 , -0.41605962887194] , [ 1117512000000 , -0.48490348490240] , [ 1120104000000 , -0.55071036101311] , [ 1122782400000 , -0.67489170505394] , [ 1125460800000 , -0.74978070939342] , [ 1128052800000 , -0.86395050745343] , [ 1130734800000 , -0.78524898506764] , [ 1133326800000 , -0.99800440950854] , [ 1136005200000 , -1.1177951153878] , [ 1138683600000 , -1.4119975432964] , [ 1141102800000 , -1.2409959736465] , [ 1143781200000 , -1.3088936375431] , [ 1146369600000 , -1.5495785469683] , [ 1149048000000 , -1.1563414981293] , [ 1151640000000 , -0.87192471725994] , [ 1154318400000 , -0.84073995183442] , [ 1156996800000 , -0.88761892867370] , [ 1159588800000 , -0.81748513917485] , [ 1162270800000 , -1.2874081041274] , [ 1164862800000 , -1.9234702981339] , [ 1167541200000 , -1.8377768147648] , [ 1170219600000 , -2.7107654031830] , [ 1172638800000 , -2.6493268125418] , [ 1175313600000 , -3.0814553134551] , [ 1177905600000 , -3.8509837783574] , [ 1180584000000 , -5.2919167850718] , [ 1183176000000 , -5.2297750650773] , [ 1185854400000 , -3.9335668501451] , [ 1188532800000 , -2.3695525190114] , [ 1191124800000 , -2.3084243151854] , [ 1193803200000 , -3.0753680726738] , [ 1196398800000 , -2.2346609938962] , [ 1199077200000 , -3.0598810361615] , [ 1201755600000 , -1.8410154270386] , [ 1204261200000 , -1.6479442038620] , [ 1206936000000 , -1.9293858622780] , [ 1209528000000 , -3.0769590460943] , [ 1212206400000 , -4.2423933501421] , [ 1214798400000 , -2.6951491617768] , [ 1217476800000 , -2.8981825939957] , [ 1220155200000 , -2.9662727940324] , [ 1222747200000 , 0.21556750497498] , [ 1225425600000 , 2.6784995167088] , [ 1228021200000 , 4.1296711248958] , [ 1230699600000 , 3.7311068218734] , [ 1233378000000 , 4.7695330866954] , [ 1235797200000 , 5.1919133040990] , [ 1238472000000 , 4.1025856045660] , [ 1241064000000 , 2.8498939666225] , [ 1243742400000 , 2.8106017222851] , [ 1246334400000 , 2.8456526669963] , [ 1249012800000 , 0.65563070754298] , [ 1251691200000 , -0.30022343874633] , [ 1254283200000 , -1.1600358228964] , [ 1256961600000 , -0.26674408835052] , [ 1259557200000 , -1.4693389757812] , [ 1262235600000 , -2.7855421590594] , [ 1264914000000 , -1.2668244065703] , [ 1267333200000 , -2.5537804115548] , [ 1270008000000 , -4.9144552474502] , [ 1272600000000 , -6.0484408234831] , [ 1275278400000 , -3.3834349033750] , [ 1277870400000 , -0.46752826932523] , [ 1280548800000 , -1.8030186027963] , [ 1283227200000 , -0.99623230097881] , [ 1285819200000 , -3.3475370235594] , [ 1288497600000 , -3.8187026520342] , [ 1291093200000 , -4.2354146250353] , [ 1293771600000 , -5.6795404292885] , [ 1296450000000 , -6.2928665328172] , [ 1298869200000 , -6.8549277434419] , [ 1301544000000 , -6.9925308360918] , [ 1304136000000 , -8.3216548655839] , [ 1306814400000 , -7.7682867271435] , [ 1309406400000 , -6.9244213301058] , [ 1312084800000 , -5.7407624451404] , [ 1314763200000 , -2.1813149077927] , [ 1317355200000 , 2.9407596325999] , [ 1320033600000 , -1.1130607112134] , [ 1322629200000 , -2.0274822307752] , [ 1325307600000 , -1.8372559072154] , [ 1327986000000 , -4.0732815531148] , [ 1330491600000 , -6.4417038470291]]
-                },
-                {
-                    key: "Gross",
-                    values: [ [ 1025409600000 , 0] , [ 1028088000000 , -6.3382185140371] , [ 1030766400000 , -5.9507873460847] , [ 1033358400000 , -11.569146943813] , [ 1036040400000 , -5.4767332317425] , [ 1038632400000 , 0.50794682203014] , [ 1041310800000 , -5.5310285460542] , [ 1043989200000 , -5.7838296963382] , [ 1046408400000 , -7.3249341615649] , [ 1049086800000 , -6.7078630712489] , [ 1051675200000 , 0.44227126150934] , [ 1054353600000 , 7.2481659343222] , [ 1056945600000 , 9.2512381306992] , [ 1059624000000 , 11.341210982529] , [ 1062302400000 , 14.734820409020] , [ 1064894400000 , 12.387148007542] , [ 1067576400000 , 18.436471461827] , [ 1070168400000 , 19.830742266977] , [ 1072846800000 , 22.643205829887] , [ 1075525200000 , 26.693972514363] , [ 1078030800000 , 29.489903107308] , [ 1080709200000 , 30.756096054034] , [ 1083297600000 , 27.992822746720] , [ 1085976000000 , 29.225852107431] , [ 1088568000000 , 30.156836480689] , [ 1091246400000 , 24.859678459498] , [ 1093924800000 , 24.151326522641] , [ 1096516800000 , 26.974088564049] , [ 1099195200000 , 30.587369307288] , [ 1101790800000 , 35.952410049136] , [ 1104469200000 , 42.723169856608] , [ 1107147600000 , 40.104326572110] , [ 1109566800000 , 42.034940590574] , [ 1112245200000 , 41.201940741519] , [ 1114833600000 , 35.959307673456] , [ 1117512000000 , 40.234785495828] , [ 1120104000000 , 43.347252675906] , [ 1122782400000 , 49.122142270314] , [ 1125460800000 , 46.336213226596] , [ 1128052800000 , 45.738022352292] , [ 1130734800000 , 40.782535587694] , [ 1133326800000 , 46.298919327736] , [ 1136005200000 , 46.525174496692] , [ 1138683600000 , 49.369518277658] , [ 1141102800000 , 51.359233230659] , [ 1143781200000 , 54.290790853085] , [ 1146369600000 , 56.370809889665] , [ 1149048000000 , 52.347251720842] , [ 1151640000000 , 52.651049262704] , [ 1154318400000 , 49.006082346714] , [ 1156996800000 , 53.833722685976] , [ 1159588800000 , 57.368751084016] , [ 1162270800000 , 62.620657436870] , [ 1164862800000 , 67.843814831233] , [ 1167541200000 , 70.696236558827] , [ 1170219600000 , 75.281054033390] , [ 1172638800000 , 75.494257592448] , [ 1175313600000 , 80.620943351778] , [ 1177905600000 , 87.289875534061] , [ 1180584000000 , 93.299043821956] , [ 1183176000000 , 91.015859689151] , [ 1185854400000 , 88.392797582470] , [ 1188532800000 , 94.699212813219] , [ 1191124800000 , 103.50183124741] , [ 1193803200000 , 111.30811970524] , [ 1196398800000 , 101.36138850420] , [ 1199077200000 , 98.665003256909] , [ 1201755600000 , 87.999132307989] , [ 1204261200000 , 85.315653328802] , [ 1206936000000 , 82.146119346213] , [ 1209528000000 , 90.093146599737] , [ 1212206400000 , 99.385987481068] , [ 1214798400000 , 84.763092203314] , [ 1217476800000 , 82.910191547323] , [ 1220155200000 , 90.191781675161] , [ 1222747200000 , 66.188819887335] , [ 1225425600000 , 47.259186154933] , [ 1228021200000 , 40.548648265024] , [ 1230699600000 , 42.458784966634] , [ 1233378000000 , 41.462207260082] , [ 1235797200000 , 35.224936113579] , [ 1238472000000 , 40.810117767284] , [ 1241064000000 , 55.041351655012] , [ 1243742400000 , 59.168485702020] , [ 1246334400000 , 60.474654847301] , [ 1249012800000 , 67.306616497709] , [ 1251691200000 , 70.539019993440] , [ 1254283200000 , 77.571962668603] , [ 1256961600000 , 72.108784451998] , [ 1259557200000 , 80.269048905849] , [ 1262235600000 , 84.754250235173] , [ 1264914000000 , 83.053938255703] , [ 1267333200000 , 88.067497980334] , [ 1270008000000 , 97.556993569060] , [ 1272600000000 , 96.744762710807] , [ 1275278400000 , 87.146301147104] , [ 1277870400000 , 76.113331725206] , [ 1280548800000 , 84.745960774176] , [ 1283227200000 , 80.883421033110] , [ 1285819200000 , 98.377963136001] , [ 1288497600000 , 104.16094587057] , [ 1291093200000 , 101.92699168281] , [ 1293771600000 , 109.16314556604] , [ 1296450000000 , 115.31506669000] , [ 1298869200000 , 126.55944572261] , [ 1301544000000 , 118.47392959295] , [ 1304136000000 , 121.44619467743] , [ 1306814400000 , 120.38970188330] , [ 1309406400000 , 114.99946573061] , [ 1312084800000 , 110.95959856356] , [ 1314763200000 , 86.186386929240] , [ 1317355200000 , 62.100425398325] , [ 1320033600000 , 78.680507428540] , [ 1322629200000 , 73.876351797642] , [ 1325307600000 , 70.866962301942] , [ 1327986000000 , 80.863709250982] , [ 1330491600000 , 86.946444823715]]
-                },
-                {
-                    key: "S&P 1500",
-                    values: [ [ 1025409600000 , -7.0674410638835] , [ 1028088000000 , -14.663359292964] , [ 1030766400000 , -14.104393060540] , [ 1033358400000 , -23.114477037218] , [ 1036040400000 , -16.774256687841] , [ 1038632400000 , -11.902028464000] , [ 1041310800000 , -16.883038668422] , [ 1043989200000 , -19.104223676831] , [ 1046408400000 , -20.420523282736] , [ 1049086800000 , -19.660555051587] , [ 1051675200000 , -13.106911231646] , [ 1054353600000 , -8.2448460302143] , [ 1056945600000 , -7.0313058730976] , [ 1059624000000 , -5.1485118700389] , [ 1062302400000 , -3.0011028761469] , [ 1064894400000 , -4.1367265281467] , [ 1067576400000 , 1.5425209565025] , [ 1070168400000 , 2.7673533607299] , [ 1072846800000 , 7.7077114755360] , [ 1075525200000 , 9.7565015112434] , [ 1078030800000 , 11.396888609473] , [ 1080709200000 , 10.013964745578] , [ 1083297600000 , 8.0558890950562] , [ 1085976000000 , 9.6081966657458] , [ 1088568000000 , 11.918590426432] , [ 1091246400000 , 7.9945345523982] , [ 1093924800000 , 8.3201276776796] , [ 1096516800000 , 9.8283954846342] , [ 1099195200000 , 11.527125859650] , [ 1101790800000 , 16.413657596527] , [ 1104469200000 , 20.393798297928] , [ 1107147600000 , 17.456308413907] , [ 1109566800000 , 20.087778400999] , [ 1112245200000 , 17.988336990817] , [ 1114833600000 , 15.378490151331] , [ 1117512000000 , 19.474322935730] , [ 1120104000000 , 20.013851070354] , [ 1122782400000 , 24.749943726975] , [ 1125460800000 , 23.558710274826] , [ 1128052800000 , 24.558915040889] , [ 1130734800000 , 22.355860488034] , [ 1133326800000 , 27.138026265756] , [ 1136005200000 , 27.202220808591] , [ 1138683600000 , 31.219437344964] , [ 1141102800000 , 31.392355525125] , [ 1143781200000 , 33.373099232542] , [ 1146369600000 , 35.095277582309] , [ 1149048000000 , 30.923356507615] , [ 1151640000000 , 31.083717332561] , [ 1154318400000 , 31.290690671561] , [ 1156996800000 , 34.247769216679] , [ 1159588800000 , 37.411073177620] , [ 1162270800000 , 42.079177096411] , [ 1164862800000 , 44.978191659648] , [ 1167541200000 , 46.713271025310] , [ 1170219600000 , 49.203892437699] , [ 1172638800000 , 46.684723471826] , [ 1175313600000 , 48.385458973500] , [ 1177905600000 , 54.660197840305] , [ 1180584000000 , 60.311838415602] , [ 1183176000000 , 57.583282204682] , [ 1185854400000 , 52.425398898751] , [ 1188532800000 , 54.663538086985] , [ 1191124800000 , 60.181844325224] , [ 1193803200000 , 62.877219773621] , [ 1196398800000 , 55.760611512951] , [ 1199077200000 , 54.735280367784] , [ 1201755600000 , 45.495912959474] , [ 1204261200000 , 40.934919015876] , [ 1206936000000 , 40.303777633187] , [ 1209528000000 , 47.403740368773] , [ 1212206400000 , 49.951960898839] , [ 1214798400000 , 37.534590035098] , [ 1217476800000 , 36.405758293321] , [ 1220155200000 , 38.545373001858] , [ 1222747200000 , 26.106358664455] , [ 1225425600000 , 4.2658006768744] , [ 1228021200000 , -3.5517839867557] , [ 1230699600000 , -2.0878920761513] , [ 1233378000000 , -10.408879093829] , [ 1235797200000 , -19.924242196038] , [ 1238472000000 , -12.906491912782] , [ 1241064000000 , -3.9774866468346] , [ 1243742400000 , 1.0319171601402] , [ 1246334400000 , 1.3109350357718] , [ 1249012800000 , 9.1668309061935] , [ 1251691200000 , 13.121178985954] , [ 1254283200000 , 17.578680237511] , [ 1256961600000 , 14.971294355085] , [ 1259557200000 , 21.551327027338] , [ 1262235600000 , 24.592328423819] , [ 1264914000000 , 20.158087829555] , [ 1267333200000 , 24.135661929185] , [ 1270008000000 , 31.815205405903] , [ 1272600000000 , 34.389524768466] , [ 1275278400000 , 23.785555857522] , [ 1277870400000 , 17.082756649072] , [ 1280548800000 , 25.248007727100] , [ 1283227200000 , 19.415179069165] , [ 1285819200000 , 30.413636349327] , [ 1288497600000 , 35.357952964550] , [ 1291093200000 , 35.886413535859] , [ 1293771600000 , 45.003601951959] , [ 1296450000000 , 48.274893564020] , [ 1298869200000 , 53.562864914648] , [ 1301544000000 , 54.108274337412] , [ 1304136000000 , 58.618190111927] , [ 1306814400000 , 56.806793965598] , [ 1309406400000 , 54.135477252994] , [ 1312084800000 , 50.735258942442] , [ 1314763200000 , 42.208170945813] , [ 1317355200000 , 31.617916826724] , [ 1320033600000 , 46.492005006737] , [ 1322629200000 , 46.203116922145] , [ 1325307600000 , 47.541427643137] , [ 1327986000000 , 54.518998440993] , [ 1330491600000 , 61.099720234693]]
-                }
-].map(function(line) {
-  line.values = line.values.map(function(d) { return {x: d[0], y: d[1]/100  }});
-  return line;
-});
-
-
-
-
-
-nv.addGraph({
-  generate: function() {
-    var width = nv.utils.windowSize().width - 40,
-        height = nv.utils.windowSize().height - 40;
-
-    var chart = nv.models.cumulativeLine()
-                .width(width)
-                .height(height)
-                .color(d3.scale.category10().range())
-                //.margin({top: 20, right: 10, bottom: 50, left: 80})
-
-        //chart.yAxis.axisLabel('Cumulative');
-        //chart.xAxis.axisLabel('Date');
-
-        //these are specific for a chart containing only month end data points
-        chart.xAxis.scale(d3.time.scale());
-        chart.xAxis.ticks(d3.time.monthEnds, 12); //need to figure out the best way to calculate the step here... preferably without knowledge of the data domain
-
-        chart.yAxis.tickFormat(d3.format(',%'));
-        chart.xAxis.tickFormat(function(d) {
-          return d3.time.format('%x')(new Date(d))
-        });
-
-    //chart.xaxis.tickFormat(d3.format(".02f"))
-
-    var svg = d3.select('#test1 svg')
-      .attr('width', width)
-      .attr('height', height)
-      .datum(cumulativeMonthEndTestData)
-
-    svg.transition().duration(500).call(chart);
-
-    return chart;
-  },
-  callback: function(graph) {
-
-    graph.dispatch.on('tooltipShow', function(e) {
-        var offsetElement = document.getElementById("test1"),
-                left = e.pos[0] + offsetElement.offsetLeft,
-                top = e.pos[1] + offsetElement.offsetTop,
-          formatterY = d3.format(",.2%"),
-          formatterX = function(d) {
-            return d3.time.format('%x')(new Date(d))
-          };
-
-      var content = '<h3>' + e.series.key + '</h3>' +
-                    '<p>' +
-                    formatterY(graph.y()(e.point)) + ' on ' + formatterX(graph.x()(e.point)) +
-                    '</p>';
-
-      nv.tooltip.show([left, top], content);
-    });
-
-    graph.dispatch.on('tooltipHide', function(e) {
-      nv.tooltip.cleanup();
-    });
-
-
-
-    window.onresize = function() {
-        var width = nv.utils.windowSize().width - 40,
-           height = nv.utils.windowSize().height - 40,
-           margin = graph.margin();
-
-
-      if (width < margin.left + margin.right + 20)
-        width = margin.left + margin.right + 20;
-
-      if (height < margin.top + margin.bottom + 20)
-        height = margin.top + margin.bottom + 20;
-
-
-      graph
-         .width(width)
-         .height(height);
-
-      d3.select('#test1 svg')
-        .attr('width', width)
-        .attr('height', height)
-        .call(graph);
-
-    };
-  }
-});
-
-
-
-function sinAndCos() {
-  var sin = [],
-      cos = [];
-
-  for (var i = 0; i < 100; i++) {
-    sin.push({x: i, y: Math.sin(i/10)});
-    cos.push({x: i, y: .5 * Math.cos(i/10)});
-  }
-
-  return [
-    {
-      values: sin,
-      key: "Sine Wave",
-      color: "#ff7f0e"
-    },
-    {
-      values: cos,
-      key: "Cosine Wave",
-      color: "#2ca02c"
-    }
-  ];
-}
-
-
-</script>
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/cumulativeLine.js b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/cumulativeLine.js
deleted file mode 100755
index 127d9407..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/cumulativeLine.js
+++ /dev/null
@@ -1,334 +0,0 @@
-
-nv.models.cumulativeLine = function() {
-  var margin = {top: 30, right: 20, bottom: 30, left: 60},
-      getWidth = function() { return 960 },
-      getHeight = function() { return 500 },
-      color = d3.scale.category20().range(),
-      dotRadius = function() { return 2.5 },
-      getX = function(d) { return d.x },
-      getY = function(d) { return d.y },
-      id = Math.floor(Math.random() * 10000), //Create semi-unique ID incase user doesn't select one
-      showRescaleToggle = true,
-      rescaleY = true;
-
-  var x = d3.scale.linear(),
-      dx = d3.scale.linear(),
-      y = d3.scale.linear(),
-      xAxis = nv.models.axis().scale(x).orient('bottom'),
-      yAxis = nv.models.axis().scale(y).orient('left'),
-      legend = nv.models.legend().height(30),
-      controls = nv.models.legend().height(30),
-      lines = nv.models.line(),
-      dispatch = d3.dispatch('tooltipShow', 'tooltipHide'),
-      index = {i: 0, x: 0};
-
-  //TODO: let user select default
-  var controlsData = [
-    { key: 'Re-scale y-axis' }
-  ];
-
-  var indexDrag = d3.behavior.drag()
-                    .on('dragstart', dragStart)
-                    .on('drag', dragMove)
-                    .on('dragend', dragEnd);
-
-  function dragStart(d,i) {}
-
-  function dragMove(d,i) {
-    d.x += d3.event.dx;
-    d.i = Math.round(dx.invert(d.x));
-
-    //d3.transition(d3.select('.chart-' + id)).call(chart);
-    d3.select(this).attr("transform", "translate(" + dx(d.i) + ",0)");
-  }
-
-  function dragEnd(d,i) {
-    d3.transition(d3.select('.chart-' + id)).call(chart);
-  }
-
-
-  function chart(selection) {
-    selection.each(function(data) {
-      var width = getWidth(),
-          height = getHeight(),
-          availableWidth = width - margin.left - margin.right,
-          availableHeight = height - margin.top - margin.bottom;
-
-      var series = indexify(index.i, data);
-
-      var seriesData = series
-            .filter(function(d) { return !rescaleY || !d.disabled }) // only filter out if rescaling y axis
-            .map(function(d) { return d.values });
-
-
-      x   .domain(d3.extent(d3.merge(seriesData), function(d) { return d.x } ))
-          .range([0, availableWidth]);
-
-      dx  .domain([0, data[0].values.length - 1]) //Assumes all series have same length
-          .range([0, availableWidth])
-          .clamp(true);
-
-      y   .domain(d3.extent(d3.merge(seriesData), function(d) { return d.y } ))
-          .range([availableHeight, 0]);
-
-
-      lines
-        .width(availableWidth)
-        .height(availableHeight)
-        .color(data.map(function(d,i) {
-          return d.color || color[i % color.length];
-        }).filter(function(d,i) { return !data[i].disabled }))
-
-
-      var wrap = d3.select(this).classed('chart-' + id, true).selectAll('g.wrap').data([series]);
-      var gEnter = wrap.enter().append('g').attr('class', 'wrap nvd3 cumulativeLine').append('g');
-
-      gEnter.append('g').attr('class', 'x axis');
-      gEnter.append('g').attr('class', 'y axis');
-      gEnter.append('g').attr('class', 'linesWrap');
-      gEnter.append('g').attr('class', 'legendWrap');
-      gEnter.append('g').attr('class', 'controlsWrap');
-
-
-
-      //TODO: margins should be adjusted based on what components are used: axes, axis labels, legend
-      margin.top = legend.height();
-
-      var g = wrap.select('g')
-          .attr('transform', 'translate(' + margin.left + ',' + margin.top + ')');
-
-
-      legend.width(width/2 - margin.right);
-
-      g.select('.legendWrap')
-          .datum(data)
-          .attr('transform', 'translate(' + (width/2 - margin.left) + ',' + (-margin.top) +')')
-          .call(legend);
-
-      if (showRescaleToggle) {
-        controls.width(140).color(['#444', '#444', '#444']);
-        g.select('.controlsWrap')
-            .datum(controlsData)
-            .attr('transform', 'translate(0,' + (-margin.top) +')')
-            .call(controls);
-      }
-
-
-      var linesWrap = g.select('.linesWrap')
-          .datum(series.filter(function(d) { return !d.disabled }))
-
-
-      d3.transition(linesWrap).call(lines);
-
-
-      var indexLine = linesWrap.selectAll('.indexLine')
-          .data([index]);
-      indexLine.enter().append('rect').attr('class', 'indexLine')
-          .attr('width', 3)
-          .attr('x', -2)
-          .attr('fill', 'red')
-          .attr('fill-opacity', .5)
-          .call(indexDrag)
-
-      indexLine
-          .attr("transform", function(d) { return "translate(" + dx(d.i) + ",0)" })
-          .attr('height', availableHeight)
-
-
-      xAxis
-        .domain(x.domain())
-        .range(x.range())
-        .ticks( width / 100 )
-        .tickSize(-availableHeight, 0);
-
-      g.select('.x.axis')
-          .attr('transform', 'translate(0,' + y.range()[0] + ')');
-      d3.transition(g.select('.x.axis'))
-          .call(xAxis);
-
-      yAxis
-        .domain(y.domain())
-        .range(y.range())
-        .ticks( height / 36 )
-        .tickSize(-availableWidth, 0);
-
-      d3.transition(g.select('.y.axis'))
-          .call(yAxis);
-
-
-
-
-
-      // ********** EVENT LISTENERS **********
-
-      legend.dispatch.on('legendClick', function(d,i) { 
-        d.disabled = !d.disabled;
-
-        if (!data.filter(function(d) { return !d.disabled }).length) {
-          data.map(function(d) {
-            d.disabled = false;
-            wrap.selectAll('.series').classed('disabled', false);
-            return d;
-          });
-        }
-
-        selection.transition().call(chart);
-      });
-
-      /*
-      legend.dispatch.on('legendMouseover', function(d, i) {
-        d.hover = true;
-        selection.transition().call(chart)
-      });
-
-      legend.dispatch.on('legendMouseout', function(d, i) {
-        d.hover = false;
-        selection.transition().call(chart)
-      });
-      */
-
-
-      controls.dispatch.on('legendClick', function(d,i) { 
-        d.disabled = !d.disabled;
-        rescaleY = !d.disabled;
-
-        //console.log(d,i,arguments);
-
-        selection.transition().call(chart);
-      });
-
-
-
-
-      lines.dispatch.on('elementMouseover.tooltip', function(e) {
-        dispatch.tooltipShow({
-          point: e.point,
-          series: e.series,
-          pos: [e.pos[0] + margin.left, e.pos[1] + margin.top],
-          seriesIndex: e.seriesIndex,
-          pointIndex: e.pointIndex
-        });
-      });
-
-      lines.dispatch.on('elementMouseout.tooltip', function(e) {
-        dispatch.tooltipHide(e);
-      });
-
-
-    });
-
-    return chart;
-  }
-
-
-
-  // ********** FUNCTIONS **********
-
-  /* Normalize the data according to an index point. */
-  function indexify(idx, data) {
-    return data.map(function(line, i) {
-      var v = getY(line.values[idx], idx);
-
-      return {
-        key: line.key,
-        values: line.values.map(function(point, pointIndex) {
-          return {'x': getX(point, pointIndex), 'y': (getY(point, pointIndex) - v) / (1 + v) };
-        }),
-        disabled: line.disabled,
-        hover: line.hover
-        /*
-        if (v < -.9) {
-          //if a series loses more than 100%, calculations fail.. anything close can cause major distortion (but is mathematically currect till it hits 100)
-        }
-        */
-      };
-    });
-  };
-
-
-
-
-  // ********** PUBLIC ACCESSORS **********
-
-  chart.dispatch = dispatch;
-
-  chart.x = function(_) {
-    if (!arguments.length) return getX;
-    getX = _;
-    //lines.x(_);
-    return chart;
-  };
-
-  chart.y = function(_) {
-    if (!arguments.length) return getY;
-    getY = _;
-    //lines.y(_);
-    return chart;
-  };
-
-  chart.margin = function(_) {
-    if (!arguments.length) return margin;
-    margin = _;
-    return chart;
-  };
-
-  /*
-  chart.width = function(_) {
-    if (!arguments.length) return width;
-    width = _;
-    return chart;
-  };
-
-  chart.height = function(_) {
-    if (!arguments.length) return height;
-    height = _;
-    return chart;
-  };
-  */
-
-  chart.width = function(_) {
-    if (!arguments.length) return getWidth;
-    getWidth = d3.functor(_);
-    return chart;
-  };
-
-  chart.height = function(_) {
-    if (!arguments.length) return getHeight;
-    getHeight = d3.functor(_);
-    return chart;
-  };
-
-  chart.color = function(_) {
-    if (!arguments.length) return color;
-    color = _;
-    legend.color(_);
-    return chart;
-  };
-
-  chart.dotRadius = function(_) {
-    if (!arguments.length) return dotRadius;
-    dotRadius = d3.functor(_);
-    lines.dotRadius = _;
-    return chart;
-  };
-
-  chart.showRescaleToggle = function(_) {
-    if (!arguments.length) return showRescaleToggle;
-    showRescaleToggle = _;
-    return chart;
-  };
-
-
-  // Expose the x-axis' tickFormat method.
-  //chart.xAxis = {};
-  //d3.rebind(chart.xAxis, xAxis, 'tickFormat');
-  chart.xAxis = xAxis;
-
-  // Expose the y-axis' tickFormat method.
-  //chart.yAxis = {};
-  //d3.rebind(chart.yAxis, yAxis, 'tickFormat');
-  chart.yAxis = yAxis;
-
-
-  return chart;
-}
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/discreteBarChartWithEnabledTooltip.html b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/discreteBarChartWithEnabledTooltip.html
deleted file mode 100755
index f23732cc..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/discreteBarChartWithEnabledTooltip.html
+++ /dev/null
@@ -1,129 +0,0 @@
-<!DOCTYPE html>
-<meta charset="utf-8">
-
-<link href="../src/d3.css" rel="stylesheet" type="text/css">
-
-<style>
-
-body {
-  overflow-y:scroll;
-}
-
-text {
-  font: 12px sans-serif;
-}
-
-svg {
-  display: block;
-}
-
-#wrapper {
-  width: 960;
-  padding: 100px;  
-}
-
-#chart1 {
-  width: 960px;
-}
-
-#chart1 svg{
-  height: 500px;
-  min-width: 100px;
-  min-height: 100px;
-/*
-  margin: 10px;
-  Minimum height and width is a good idea to prevent negative SVG dimensions...
-  For example width should be =< margin.left + margin.right + 1,
-  of course 1 pixel for the entire chart would not be very useful, BUT should not have errors
-*/
-}
-
-</style>
-<body>
-  <div id="wrapper">
-
-    <div id="chart1">
-      <svg></svg>
-    </div>
-
-  </div>
-
-<script src="../lib/d3.v2.js"></script>
-<script src="../nv.d3.js"></script>
-<!-- including all the components so I don't have to minify every time I test in development -->
-<script src="../src/tooltip.js"></script>
-<script src="../src/models/axis.js"></script>
-<script src="../src/models/discreteBar.js"></script>
-<script src="../src/models/discreteBarChartWithEnabledTooltip.js"></script>
-<script>
-
-
-
-
-
-historicalBarChart = [ 
-  {
-    key: "Cumulative Return",
-    values: [
-      { 
-        "label" : "CDS / Options" ,
-        "value" : -29.765957771107
-      } , 
-      { 
-        "label" : "Cash" , 
-        "value" : 0
-      } , 
-      { 
-        "label" : "Corporate Bonds" , 
-        "value" : 32.807804682612
-      } , 
-      { 
-        "label" : "Equity" , 
-        "value" : 196.45946739256
-      } , 
-      { 
-        "label" : "Index Futures" ,
-        "value" : 0.19434030906893
-      } , 
-      { 
-        "label" : "Options" , 
-        "value" : -98.079782601442
-      } , 
-      { 
-        "label" : "Preferred" , 
-        "value" : -13.925743130903
-      } , 
-      { 
-        "label" : "Not Available" , 
-        "value" : -5.1387322875705
-      }
-    ]
-  }
-];
-
-
-
-
-nv.addGraph(function() {  
-  var chart = nv.models.discreteBarChart()
-      .x(function(d) { return d.label })
-      .y(function(d) { return d.value })
-      .staggerLabels(true)
-      //.staggerLabels(historicalBarChart[0].values.length > 8)
-      .tooltips(true)
-      .showValues(true)
-
-
-  d3.select('#chart1 svg')
-      .datum(historicalBarChart)
-    .transition().duration(500)
-      .call(chart);
-
-  nv.utils.windowResize(chart.update);
-
-  return chart;
-});
-
-
-</script>
-</body>
\ No newline at end of file
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/discreteBarChartWithEnabledTooltip.js b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/discreteBarChartWithEnabledTooltip.js
deleted file mode 100755
index d4465cac..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/discreteBarChartWithEnabledTooltip.js
+++ /dev/null
@@ -1,222 +0,0 @@
-
-nv.models.discreteBarChart = function() {
-  var margin = {top: 30, right: 20, bottom: 50, left: 60},
-      width = null,
-      height = null,
-      color = d3.scale.category20().range(),
-      staggerLabels = false,
-      tooltips = true,
-      tooltip = function(key, x, y, e, graph) { 
-        return '<h3>' + x + '</h3>' +
-               '<p>' +  y + '</p>'
-      };
-
-
-  var discretebar = nv.models.discreteBar(),
-      x = discretebar.xScale(),
-      y = discretebar.yScale(),
-      xAxis = nv.models.axis().scale(x).orient('bottom').highlightZero(false).showMaxMin(false),
-      yAxis = nv.models.axis().scale(y).orient('left'),
-      dispatch = d3.dispatch('tooltipShow', 'tooltipHide');
-
-  xAxis.tickFormat(function(d) { return d });
-  yAxis.tickFormat(d3.format(',.1f'));
-
-
-  var showTooltip = function(e, offsetElement) {
-    var left = e.pos[0] + ( offsetElement.offsetLeft || 0 ),
-        top = e.pos[1] + ( offsetElement.offsetTop || 0),
-        x = xAxis.tickFormat()(discretebar.x()(e.point)),
-        y = yAxis.tickFormat()(discretebar.y()(e.point)),
-        content = tooltip(e.series.key, x, y, e, chart);
-
-    nv.tooltip.show([left, top], content, e.value < 0 ? 'n' : 's', null, offsetElement);
-  };
-
-
-  //TODO: let user select default
-  var controlsData = [
-    { key: 'Grouped' },
-    { key: 'Stacked', disabled: true }
-  ];
-
-  function chart(selection) {
-    selection.each(function(data) {
-      var container = d3.select(this),
-          that = this;
-
-      var availableWidth = (width  || parseInt(container.style('width')) || 960)
-                             - margin.left - margin.right,
-          availableHeight = (height || parseInt(container.style('height')) || 400)
-                             - margin.top - margin.bottom;
-
-
-      discretebar
-        .width(availableWidth)
-        .height(availableHeight);
-
-
-      var wrap = container.selectAll('g.wrap.discreteBarWithAxes').data([data]);
-      var gEnter = wrap.enter().append('g').attr('class', 'wrap nvd3 discreteBarWithAxes').append('g');
-      var defsEnter = gEnter.append('defs');
-
-      gEnter.append('g').attr('class', 'x axis');
-      gEnter.append('g').attr('class', 'y axis');
-      gEnter.append('g').attr('class', 'barsWrap');
-
-
-
-      var g = wrap.select('g');
-
-
-      g.attr('transform', 'translate(' + margin.left + ',' + margin.top + ')');
-
-      var barsWrap = g.select('.barsWrap')
-          .datum(data.filter(function(d) { return !d.disabled }))
-
-
-      d3.transition(barsWrap).call(discretebar);
-
-
-      defsEnter.append('clipPath')
-          .attr('id', 'x-label-clip-' + discretebar.id())
-        .append('rect')
-
-      g.select('#x-label-clip-' + discretebar.id() + ' rect')
-          .attr('width', x.rangeBand() * (staggerLabels ? 2 : 1))
-          .attr('height', 16)
-          .attr('x', -x.rangeBand() / (staggerLabels ? 1 : 2 ));
-
-      /*
-      var evenLabelClips = defsEnter.append('clipPath')
-          .attr('id', 'x-label-clip-even-' + discretebar.id())
-        .selectAll('rect')
-          .data(function(d) { return d[0].values.filter(function(d,i) { return i % 2 === 0 }) });
-
-      evenLabelClips.enter().append('rect')
-            .attr('width', x.rangeBand())
-            .attr('height', 32)
-            .attr('y', y.range()[0])
-            .attr('x', function(d,i) { return x(discretebar.x()(d,i)) });
-
-      var oddLabelClips = defsEnter.append('clipPath')
-          .attr('id', 'x-label-clip-odd-' + discretebar.id())
-        .selectAll('rect')
-          .data(function(d) { return d[0].values.filter(function(d,i) { return i % 2 === 1 }) });
-
-      oddLabelClips.enter().append('rect')
-            .attr('width', x.rangeBand())
-            .attr('height', 16)
-            .attr('y', y.range()[0] + 16 + (staggerLabels ? 12: 0))
-            .attr('x', function(d,i) { return x(discretebar.x()(d,i)) });
-            */
-
-
-
-      xAxis
-        .ticks( availableWidth / 100 )
-        .tickSize(-availableHeight, 0);
-
-      g.select('.x.axis')
-          .attr('transform', 'translate(0,' + (y.range()[0] + (discretebar.showValues() ? 16 : 0)) + ')')
-      //d3.transition(g.select('.x.axis'))
-      g.select('.x.axis').transition().duration(0)
-          .call(xAxis);
-
-
-      var xTicks = g.select('.x.axis').selectAll('g');
-
-      if (staggerLabels)
-        xTicks
-            .selectAll('text')
-            .attr('transform', function(d,i,j) { return 'translate(0,' + (j % 2 == 0 ? '0' : '12') + ')' })
-
-      xTicks
-          .selectAll('text')
-          .attr('clip-path', function(d,i,j) { return 'url(#x-label-clip-' + discretebar.id() + ')' });
-
-
-      yAxis
-        .ticks( availableHeight / 36 )
-        .tickSize( -availableWidth, 0);
-
-      d3.transition(g.select('.y.axis'))
-          .call(yAxis);
-
-
-      discretebar.dispatch.on('elementMouseover.tooltip', function(e) {
-        e.pos = [e.pos[0] +  margin.left, e.pos[1] + margin.top];
-        dispatch.tooltipShow(e);
-      });
-      if (tooltips) dispatch.on('tooltipShow', function(e) { showTooltip(e, that.parentNode) } ); // TODO: maybe merge with above?
-
-      discretebar.dispatch.on('elementMouseout.tooltip', function(e) {
-        dispatch.tooltipHide(e);
-      });
-      if (tooltips) dispatch.on('tooltipHide', nv.tooltip.cleanup);
-
-
-      //TODO: decide if this makes sense to add into all the models for ease of updating (updating without needing the selection)
-      chart.update = function() { selection.transition().call(chart); };
-      chart.container = this; // I need a reference to the container in order to have outside code check if the chart is visible or not
-
-    });
-
-    return chart;
-  }
-
-
-  chart.dispatch = dispatch;
-  chart.discretebar = discretebar; // really just makign the accessible for discretebar.dispatch, may rethink slightly
-  chart.xAxis = xAxis;
-  chart.yAxis = yAxis;
-
-  d3.rebind(chart, discretebar, 'x', 'y', 'xDomain', 'yDomain', 'forceX', 'forceY', 'id', 'showValues', 'valueFormat');
-
-
-  chart.margin = function(_) {
-    if (!arguments.length) return margin;
-    margin = _;
-    return chart;
-  };
-
-  chart.width = function(_) {
-    if (!arguments.length) return width;
-    width = _;
-    return chart;
-  };
-
-  chart.height = function(_) {
-    if (!arguments.length) return height;
-    height = _;
-    return chart;
-  };
-
-  chart.color = function(_) {
-    if (!arguments.length) return color;
-    color = _;
-    discretebar.color(_);
-    return chart;
-  };
-
-  chart.staggerLabels = function(_) {
-    if (!arguments.length) return staggerLabels;
-    staggerLabels = _;
-    return chart;
-  };
-
-  chart.tooltips = function(_) {
-    if (!arguments.length) return tooltips;
-    tooltips = _;
-    return chart;
-  };
-
-  chart.tooltipContent = function(_) {
-    if (!arguments.length) return tooltip;
-    tooltip = _;
-    return chart;
-  };
-
-
-  return chart;
-}
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/discreteBarWithAxes.html b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/discreteBarWithAxes.html
deleted file mode 100755
index fc7ef621..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/discreteBarWithAxes.html
+++ /dev/null
@@ -1,172 +0,0 @@
-<!DOCTYPE html>
-<meta charset="utf-8">
-
-<link href="../src/d3.css" rel="stylesheet" type="text/css">
-
-<style>
-
-body {
-  overflow-y:scroll;
-}
-
-text {
-  font: 12px sans-serif;
-}
-
-#chart1 {
-  height: 500px;
-  margin: 10px;
-  min-width: 100px;
-  min-height: 100px;
-/*
-  Minimum height and width is a good idea to prevent negative SVG dimensions...
-  For example width should be =< margin.left + margin.right + 1,
-  of course 1 pixel for the entire chart would not be very useful, BUT should not have errors
-*/
-}
-
-</style>
-<body>
-
-  <div id="chart1">
-  </div>
-
-<script src="../lib/d3.v2.js"></script>
-<script src="../nv.d3.js"></script>
-<script src="../src/tooltip.js"></script>
-<script src="../src/models/axis.js"></script>
-<script src="../src/models/discreteBar.js"></script>
-<script src="../src/models/discreteBarWithAxes.js"></script>
-<script src="stream_layers.js"></script>
-<script>
-
-
-
-historicalBarChart = [ 
-  {
-    key: "Cumulative Return",
-    values: [
-      { 
-        "label" : "CDS / Options" ,
-        "value" : -29.765957771107
-      } , 
-      { 
-        "label" : "Cash" , 
-        "value" : 0
-      } , 
-      { 
-        "label" : "Corporate Bonds" , 
-        "value" : 32.807804682612
-      } , 
-      { 
-        "label" : "Equity" , 
-        "value" : 196.45946739256
-      } , 
-      { 
-        "label" : "Index Futures" ,
-        "value" : 0.19434030906893
-      } , 
-      { 
-        "label" : "Options" , 
-        "value" : -98.079782601442
-      } , 
-      { 
-        "label" : "Preferred" , 
-        "value" : -13.925743130903
-      } , 
-      { 
-        "label" : "Not Available" , 
-        "value" : -5.1387322875705
-      }
-    ]
-  }
-];
- 
-
-
-
-
-
-var selector = '#chart1',
-    chart = nv.models.discreteBarWithAxes()
-              .color(d3.scale.category10().range())
-              .x(function(d) { return d.label })
-              .y(function(d) { return d.value }),
-    data = historicalBarChart,
-    xTickFormat = function(d) { return d },
-    yTickFormat = d3.format(',.2f'),
-    xAxisLabel = null,
-    yAxisLabel = null,
-    duration = 500;
-
-nv.addGraph({
-  generate: function() {
-    var container = d3.select(selector),
-        width = function() { return parseInt(container.style('width')) },
-        height = function() { return parseInt(container.style('height')) },
-        svg = container.append('svg');
-
-    chart
-        .width(width)
-        .height(height)
-        .staggerLabels(true);
-
-    chart.xAxis
-        .tickFormat(xTickFormat);
-
-    chart.yAxis
-        .tickFormat(yTickFormat)
-        .axisLabel(yAxisLabel);
-
-    svg
-        .attr('width', width())
-        .attr('height', height())
-        .datum(data)
-      .transition().duration(duration).call(chart);
-
-    return chart;
-  },
-  callback: function(chart) {
-    var showTooltip = function(e) {
-      var offsetElement = document.getElementById(selector.substr(1)),
-          left = e.pos[0] + offsetElement.offsetLeft,
-          top = e.pos[1] + offsetElement.offsetTop,
-          formatY = chart.yAxis.tickFormat(), //Assumes using same format as axis, can customize to show higher precision, etc.
-          formatX = chart.xAxis.tickFormat();
-
-      // uses the chart's getX and getY, you may customize if x position is not the same as the value you want
-      //   ex. daily data without weekends, x is the index, while you want the date
-      var content = '<h3>' + formatX(chart.x()(e.point))  + '</h3>' +
-                    '<p>' +
-                    formatY(chart.y()(e.point)) + 
-                    '</p>';
-
-      nv.tooltip.show([left, top], content, e.value < 0 ? 'n' : 's');
-    };
-
-    chart.dispatch.on('tooltipShow', showTooltip);
-    chart.dispatch.on('tooltipHide', nv.tooltip.cleanup);
-
-
-    window.onresize= function() {
-      // now that width and height are functions, should be automatic..of course you can always override them
-
-      d3.select('#chart1 svg')
-          .attr('width', chart.width()()) //need to set SVG dimensions, chart is not aware of the SVG component
-          .attr('height', chart.height()())
-        .transition().duration(duration)
-          .call(chart);
-
-/*
-      d3.select('#chart1 svg')
-          .attr('width', chart.width()()) //need to set SVG dimensions, chart is not aware of the SVG component
-          .attr('height', chart.height()())
-          .call(chart);
-*/
-    };
-  }
-});
-
-
-
-</script>
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/discreteBarWithAxes.js b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/discreteBarWithAxes.js
deleted file mode 100755
index 558efaf5..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/discreteBarWithAxes.js
+++ /dev/null
@@ -1,152 +0,0 @@
-
-nv.models.discreteBarWithAxes = function() {
-  var margin = {top: 30, right: 20, bottom: 50, left: 60},
-      width = function() { return 960 },
-      height = function() { return 500 },
-      color = d3.scale.category20().range(),
-      staggerLabels = false;
-
-  var discretebar = nv.models.discreteBar(),
-      x = discretebar.xScale(),
-      y = discretebar.yScale(),
-      xAxis = nv.models.axis().scale(x).orient('bottom').highlightZero(false),
-      yAxis = nv.models.axis().scale(y).orient('left'),
-      dispatch = d3.dispatch('tooltipShow', 'tooltipHide');
-
-  //TODO: let user select default
-  var controlsData = [
-    { key: 'Grouped' },
-    { key: 'Stacked', disabled: true }
-  ];
-
-  function chart(selection) {
-    selection.each(function(data) {
-      var availableWidth = width() - margin.left - margin.right,
-          availableHeight = height() - margin.top - margin.bottom;
-
-      var seriesData = data.filter(function(d) { return !d.disabled })
-          .map(function(d) { 
-            return d.values.map(function(d,i) {
-              return { x: discretebar.x()(d,i), y: discretebar.y()(d,i) }
-            })
-          });
-
-
-
-      discretebar
-        .width(availableWidth)
-        .height(availableHeight);
-
-
-      var wrap = d3.select(this).selectAll('g.wrap.discreteBarWithAxes').data([data]);
-      var gEnter = wrap.enter().append('g').attr('class', 'wrap nvd3 discreteBarWithAxes').append('g');
-
-      gEnter.append('g').attr('class', 'x axis');
-      gEnter.append('g').attr('class', 'y axis');
-      gEnter.append('g').attr('class', 'barsWrap');
-
-
-
-      var g = wrap.select('g');
-
-
-      g.attr('transform', 'translate(' + margin.left + ',' + margin.top + ')');
-
-      var barsWrap = g.select('.barsWrap')
-          .datum(data.filter(function(d) { return !d.disabled }))
-
-
-      d3.transition(barsWrap).call(discretebar);
-
-
-      xAxis
-        .scale(x)
-        .ticks( availableWidth / 100 )
-        .tickSize(-availableHeight, 0);
-
-      g.select('.x.axis')
-          .attr('transform', 'translate(0,' + y.range()[0] + ')');
-      d3.transition(g.select('.x.axis'))
-          .call(xAxis);
-
-
-      var xTicks = g.select('.x.axis').selectAll('g');
-
-      if (staggerLabels)
-        xTicks
-            .selectAll('text')
-            .attr('transform', function(d,i,j) { return 'translate(0,' + (j % 2 == 0 ? '0' : '12') + ')' })
-
-          /*
-      xTicks.filter(function(d,i) {
-            return i % Math.ceil(data[0].values.length / (availableWidth / 100)) !== 0;
-          })
-          .selectAll('line, text')
-          .style('opacity', 0)
-         */
-
-      yAxis
-        .scale(y)
-        .ticks( availableHeight / 36 )
-        .tickSize( -availableWidth, 0);
-
-      d3.transition(g.select('.y.axis'))
-          .call(yAxis);
-
-
-      discretebar.dispatch.on('elementMouseover.tooltip', function(e) {
-        e.pos = [e.pos[0] +  margin.left, e.pos[1] + margin.top];
-        dispatch.tooltipShow(e);
-      });
-
-      discretebar.dispatch.on('elementMouseout.tooltip', function(e) {
-        dispatch.tooltipHide(e);
-      });
-
-    });
-
-    return chart;
-  }
-
-
-  chart.dispatch = dispatch;
-  chart.xAxis = xAxis;
-  chart.yAxis = yAxis;
-
-  d3.rebind(chart, discretebar, 'x', 'y', 'xDomain', 'yDomain', 'forceX', 'forceY', 'clipEdge', 'id');
-
-
-  chart.margin = function(_) {
-    if (!arguments.length) return margin;
-    margin = _;
-    return chart;
-  };
-
-  chart.width = function(_) {
-    if (!arguments.length) return width;
-    width = d3.functor(_);
-    return chart;
-  };
-
-  chart.height = function(_) {
-    if (!arguments.length) return height;
-    height = d3.functor(_);
-    return chart;
-  };
-
-  chart.color = function(_) {
-    if (!arguments.length) return color;
-    color = _;
-    discretebar.color(_);
-    return chart;
-  };
-
-  chart.staggerLabels = function(_) {
-    if (!arguments.length) return staggerLabels;
-    staggerLabels = _;
-    return chart;
-  };
-
-
-  return chart;
-}
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/lineChart-old.html b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/lineChart-old.html
deleted file mode 100755
index 84f0c705..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/lineChart-old.html
+++ /dev/null
@@ -1,83 +0,0 @@
-<!DOCTYPE html>
-<meta charset="utf-8">
-
-<link href="../src/d3.css" rel="stylesheet" type="text/css">
-
-<style>
-
-body {
-  overflow-y:scroll;
-}
-
-text {
-  font: 12px sans-serif;
-}
-
-#chart1 {
-  height: 500px;
-  margin: 10px;
-  min-width: 100px;
-  min-height: 100px;
-/*
-  Minimum height and width is a good idea to prevent negative SVG dimensions...
-  For example width should be =< margin.left + margin.right + 1,
-  of course 1 pixel for the entire chart would not be very useful, BUT should not have errors
-*/
-}
-
-</style>
-<body>
-
-  <div id="chart1">
-  </div>
-
-<script src="../lib/d3.v2.js"></script>
-<script src="../nv.d3.js"></script>
-<!-- including all the components so I don't have to minify every time I test in development -->
-<script src="../src/tooltip.js"></script>
-<script src="../src/models/legend.js"></script>
-<script src="../src/models/axis.js"></script>
-<script src="../src/models/line.js"></script>
-<script src="../src/models/lineWithLegend.js"></script>
-<script src="../src/charts/lineChart.js"></script>
-<script>
-
-
-
-nv.charts.line()
-    .selector('#chart1')
-    .data(sinAndCos())
-    .y(function(d) { return d.voltage })
-    .yAxisLabel('Voltage (v)')
-    .build();
-
-
-
-
-function sinAndCos() {
-  var sin = [],
-      cos = [],
-      r1 = Math.random(),
-      r2 = Math.random();
-
-  for (var i = 0; i < 100; i++) {
-    sin.push({x: i, voltage: r2 * Math.sin(i/10)});
-    cos.push({x: i, voltage: r1 * Math.cos(i/10)});
-  }
-
-  return [
-    {
-      values: sin,
-      key: "Sine Wave",
-      color: "#ff7f0e"
-    },
-    {
-      values: cos,
-      key: "Cosine Wave",
-      color: "#2ca02c"
-    }
-  ];
-}
-
-
-</script>
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/lineChartDaily.html b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/lineChartDaily.html
deleted file mode 100755
index 2ef09544..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/lineChartDaily.html
+++ /dev/null
@@ -1,109 +0,0 @@
-<!DOCTYPE html>
-<meta charset="utf-8">
-
-<link href="../src/d3.css" rel="stylesheet" type="text/css">
-
-<style>
-
-body {
-  overflow-y:scroll;
-}
-
-text {
-  font: 12px sans-serif;
-}
-
-#chart1 {
-  height: 500px;
-  margin: 10px;
-  min-width: 100px;
-  min-height: 100px;
-/*
-  Minimum height and width is a good idea to prevent negative SVG dimensions...
-  For example width should be =< margin.left + margin.right + 1,
-  of course 1 pixel for the entire chart would not be very useful, BUT should not have errors
-*/
-}
-
-</style>
-<body>
-
-  <div id="chart1">
-  </div>
-
-<script src="../lib/d3.v2.js"></script>
-<script src="../nv.d3.js"></script>
-<!-- including all the components so I don't have to minify every time I test in development -->
-<script src="../src/tooltip.js"></script>
-<script src="../src/models/legend.js"></script>
-<script src="../src/models/axis.js"></script>
-<script src="../src/models/line.js"></script>
-<script src="../src/models/lineWithLegend.js"></script>
-<script src="../src/charts/lineChartDaily.js"></script>
-<script>
-
-
-
-var cumulativeDailyTestData = [
-  {
-    key: "Actual Return" ,
-    values: [ [ 1317614400000 , -1.4475640131507] , [ 1317700800000 , -0.50785241139112] , [ 1317787200000 , 1.2232844878178] , [ 1317873600000 , 2.3277976069464] , [ 1317960000000 , 0.87828538009238] , [ 1318046400000 , 0.87828538009238] , [ 1318132800000 , 0.87828538009238] , [ 1318219200000 , 2.8821394715025] , [ 1318305600000 , 3.0600496997189] , [ 1318392000000 , 4.1615801183747] , [ 1318478400000 , 3.8560316339337] , [ 1318564800000 , 4.2624578565545] , [ 1318651200000 , 4.2624578565545] , [ 1318737600000 , 4.2624578565545] , [ 1318824000000 , 2.8760203477064] , [ 1318910400000 , 4.2802792900813] , [ 1318996800000 , 3.5644216125341] , [ 1319083200000 , 3.8267230522883] , [ 1319169600000 , 4.5897674196334] , [ 1319256000000 , 4.5897674196334] , [ 1319342400000 , 4.5897674196334] , [ 1319428800000 , 6.1435681595838] , [ 1319515200000 , 4.6773634913148] , [ 1319601600000 , 5.5686828861057] , [ 1319688000000 , 8.6510229437140] , [ 1319774400000 , 8.4035095885256] , [ 1319860800000 , 8.4035095885256] , [ 1319947200000 , 8.4035095885256] , [ 1320033600000 , 5.9304228949775] , [ 1320120000000 , 4.6694048881845] , [ 1320206400000 , 5.5755229192740] , [ 1320292800000 , 5.9596062543264] , [ 1320379200000 , 5.8750173069172] , [ 1320465600000 , 5.8750173069172] , [ 1320552000000 , 5.8750173069172] , [ 1320642000000 , 6.2705601567990] , [ 1320728400000 , 6.4422984536501] , [ 1320814800000 , 3.7696655204518] , [ 1320901200000 , 3.9256502879070] , [ 1320987600000 , 4.9896568610477] , [ 1321074000000 , 4.9896568610477] , [ 1321160400000 , 4.9896568610477] , [ 1321246800000 , 4.5101581898062] , [ 1321333200000 , 5.1852026589187] , [ 1321419600000 , 4.1412722333259] , [ 1321506000000 , 2.6646651357988] , [ 1321592400000 , 2.5391402402758] , [ 1321678800000 , 2.5391402402758] , [ 1321765200000 , 2.5391402402758] , [ 1321851600000 , 1.4480191418839] , [ 1321938000000 , 1.1851353770435] , [ 1322024400000 , -0.0110471601546] , [ 1322110800000 , -0.0110471601546] , [ 1322197200000 , -0.2607790366052] , [ 1322283600000 , -0.2607790366052] , [ 1322370000000 , -0.2607790366052] , [ 1322456400000 , -0.2993491727393] , [ 1322542800000 , -0.8721365094791] , [ 1322629200000 , 1.3826624677829] , [ 1322715600000 , 1.1413888639683] , [ 1322802000000 , 1.1916488459919] , [ 1322888400000 , 1.1916488459919] , [ 1322974800000 , 1.1916488459919] , [ 1323061200000 , 1.6640075295100] , [ 1323147600000 , 1.4333447279330] , [ 1323234000000 , 1.5756501095903] , [ 1323320400000 , 0.1566240837346] , [ 1323406800000 , 1.1957087351357] , [ 1323493200000 , 1.1957087351357] , [ 1323579600000 , 1.1957087351357] , [ 1323666000000 , 0.1529279857726] , [ 1323752400000 , -0.4379146622043] , [ 1323838800000 , -1.6307803651431] , [ 1323925200000 , -1.8097182178695] , [ 1324011600000 , -1.6612784009542] , [ 1324098000000 , -1.6612784009542] , [ 1324184400000 , -1.6612784009542] , [ 1324270800000 , -2.7123628804330] , [ 1324357200000 , -0.9156099608796] , [ 1324443600000 , -1.3441101479801] , [ 1324530000000 , -0.4285924644141] , [ 1324616400000 , 0.0289302220607] , [ 1324702800000 , 0.0289302220607] , [ 1324789200000 , 0.0289302220607] , [ 1324875600000 , 0.0289302220607] , [ 1324962000000 , -0.1680182906741] , [ 1325048400000 , -1.1735228321827] , [ 1325134800000 , -0.4819867447246] , [ 1325221200000 , -0.5667569440908] , [ 1325307600000 , -0.5667569440908] , [ 1325394000000 , -0.5667569440908] , [ 1325480400000 , -0.5667569440908] , [ 1325566800000 , 0.6031318427099] , [ 1325653200000 , 0.5247518205078] , [ 1325739600000 , 0.8575949798359] , [ 1325826000000 , 0.9983061584652] , [ 1325912400000 , 0.9983061584652] , [ 1325998800000 , 0.9983061584652] , [ 1326085200000 , 1.4032665222444] , [ 1326171600000 , 1.8976558759597] , [ 1326258000000 , 2.1532858156245] , [ 1326344400000 , 2.3864413393018] , [ 1326430800000 , 1.8718218939651] , [ 1326517200000 , 1.8718218939651] , [ 1326603600000 , 1.8718218939651] , [ 1326690000000 , 1.8718218939651] , [ 1326776400000 , 1.7604328445901] , [ 1326862800000 , 2.6068832572249] , [ 1326949200000 , 3.0615220945767] , [ 1327035600000 , 2.9348684033730] , [ 1327122000000 , 2.9348684033730] , [ 1327208400000 , 2.9348684033730] , [ 1327294800000 , 3.1172684824147] , [ 1327381200000 , 2.9842827363639] , [ 1327467600000 , 3.2794961257832] , [ 1327554000000 , 3.2797701308936] , [ 1327640400000 , 3.7651100285428] , [ 1327726800000 , 3.7651100285428] , [ 1327813200000 , 3.7651100285428] , [ 1327899600000 , 3.4448337693528] , [ 1327986000000 , 3.4404569794837] , [ 1328072400000 , 4.1401512200522] , [ 1328158800000 , 4.6727018946707] , [ 1328245200000 , 5.2867004865128] , [ 1328331600000 , 5.2867004865128] , [ 1328418000000 , 5.2867004865128] , [ 1328504400000 , 5.3018888374398] , [ 1328590800000 , 5.1280880489145] , [ 1328677200000 , 5.4871623117969] , [ 1328763600000 , 5.9003310858354] , [ 1328850000000 , 5.0814183419277] , [ 1328936400000 , 5.0814183419277] , [ 1329022800000 , 5.0814183419277] , [ 1329109200000 , 5.2642419624752] , [ 1329195600000 , 4.8821179791227] , [ 1329282000000 , 4.5757484771430] , [ 1329368400000 , 5.3842423229681] , [ 1329454800000 , 5.8228981100571] , [ 1329541200000 , 5.8228981100571] , [ 1329627600000 , 5.8228981100571] , [ 1329714000000 , 5.8228981100571] , [ 1329800400000 , 5.9363351939783] , [ 1329886800000 , 5.8228361646391] , [ 1329973200000 , 6.0558840413572] , [ 1330059600000 , 5.9445876811563] , [ 1330146000000 , 5.9445876811563] , [ 1330232400000 , 5.9445876811563] , [ 1330318800000 , 6.1681584877353] , [ 1330405200000 , 6.3035995639854] , [ 1330491600000 , 5.6363506399283]]
-  },
-  {
-    key: "Average Exposure Return" ,
-    values: [ [ 1317614400000 , -1.4090582224638] , [ 1317700800000 , -0.33947919866996] , [ 1317787200000 , 1.3209670502436] , [ 1317873600000 , 2.4188464341509] , [ 1317960000000 , 1.0255951936249] , [ 1318046400000 , 1.0255951936249] , [ 1318132800000 , 1.0255951936249] , [ 1318219200000 , 2.6899883270271] , [ 1318305600000 , 2.8018416928856] , [ 1318392000000 , 3.8403942243892] , [ 1318478400000 , 3.5468986968984] , [ 1318564800000 , 4.0243375950513] , [ 1318651200000 , 4.0243375950513] , [ 1318737600000 , 4.0243375950513] , [ 1318824000000 , 2.4581180602808] , [ 1318910400000 , 4.1316695396727] , [ 1318996800000 , 3.1991658519074] , [ 1319083200000 , 3.3754265861117] , [ 1319169600000 , 4.4804434889521] , [ 1319256000000 , 4.4804434889521] , [ 1319342400000 , 4.4804434889521] , [ 1319428800000 , 6.0509760703797] , [ 1319515200000 , 4.5220450819341] , [ 1319601600000 , 5.4035696887952] , [ 1319688000000 , 8.5378579094975] , [ 1319774400000 , 8.3016796632707] , [ 1319860800000 , 8.3016796632707] , [ 1319947200000 , 8.3016796632707] , [ 1320033600000 , 6.2091232673734] , [ 1320120000000 , 4.6685577522987] , [ 1320206400000 , 5.6873278908841] , [ 1320292800000 , 6.1826552943765] , [ 1320379200000 , 6.0959959548027] , [ 1320465600000 , 6.0959959548027] , [ 1320552000000 , 6.0959959548027] , [ 1320642000000 , 6.4745420383103] , [ 1320728400000 , 6.6925431963260] , [ 1320814800000 , 4.0430621035979] , [ 1320901200000 , 4.2956347789229] , [ 1320987600000 , 5.5492974385965] , [ 1321074000000 , 5.5492974385965] , [ 1321160400000 , 5.5492974385965] , [ 1321246800000 , 5.0642000641245] , [ 1321333200000 , 5.6666120553597] , [ 1321419600000 , 4.6202390103380] , [ 1321506000000 , 3.0124066565603] , [ 1321592400000 , 2.8681458220660] , [ 1321678800000 , 2.8681458220660] , [ 1321765200000 , 2.8681458220660] , [ 1321851600000 , 1.6604177140523] , [ 1321938000000 , 1.3391308252236] , [ 1322024400000 , -0.1027204753207] , [ 1322110800000 , -0.1027204753207] , [ 1322197200000 , -0.4062707232214] , [ 1322283600000 , -0.4062707232214] , [ 1322370000000 , -0.4062707232214] , [ 1322456400000 , 0.5651520529190] , [ 1322542800000 , 0.1114911016548] , [ 1322629200000 , 2.2135818365753] , [ 1322715600000 , 1.9445161544187] , [ 1322802000000 , 1.9427980090936] , [ 1322888400000 , 1.9427980090936] , [ 1322974800000 , 1.9427980090936] , [ 1323061200000 , 2.3501860364827] , [ 1323147600000 , 2.1136672636407] , [ 1323234000000 , 2.2418743103244] , [ 1323320400000 , 1.0064931140733] , [ 1323406800000 , 1.9661258515092] , [ 1323493200000 , 1.9661258515092] , [ 1323579600000 , 1.9661258515092] , [ 1323666000000 , 1.0175542221399] , [ 1323752400000 , 0.5024676440828] , [ 1323838800000 , -0.6545437495700] , [ 1323925200000 , -0.8689652158149] , [ 1324011600000 , -0.7645004652824] , [ 1324098000000 , -0.7645004652824] , [ 1324184400000 , -0.7645004652824] , [ 1324270800000 , -1.7880862317039] , [ 1324357200000 , -0.1461682112898] , [ 1324443600000 , -0.5871487877962] , [ 1324530000000 , 0.2867400066741] , [ 1324616400000 , 0.7000618003773] , [ 1324702800000 , 0.7000618003773] , [ 1324789200000 , 0.7000618003773] , [ 1324875600000 , 0.7000618003773] , [ 1324962000000 , 0.4859463316191] , [ 1325048400000 , -0.4119526235861] , [ 1325134800000 , 0.2230991860845] , [ 1325221200000 , 0.1595400012524] , [ 1325307600000 , 0.1595400012524] , [ 1325394000000 , 0.1595400012524] , [ 1325480400000 , 0.1595400012524] , [ 1325566800000 , 1.2638744291023] , [ 1325653200000 , 1.1480591676914] , [ 1325739600000 , 1.4876618741657] , [ 1325826000000 , 1.6476476765120] , [ 1325912400000 , 1.6476476765120] , [ 1325998800000 , 1.6476476765120] , [ 1326085200000 , 2.1063050593731] , [ 1326171600000 , 2.5653649043989] , [ 1326258000000 , 2.8466857983576] , [ 1326344400000 , 3.0747141460071] , [ 1326430800000 , 2.4992620202541] , [ 1326517200000 , 2.4992620202541] , [ 1326603600000 , 2.4992620202541] , [ 1326690000000 , 2.4992620202541] , [ 1326776400000 , 2.2880782376570] , [ 1326862800000 , 3.1353436274553] , [ 1326949200000 , 3.5677616820370] , [ 1327035600000 , 3.5059469003623] , [ 1327122000000 , 3.5059469003623] , [ 1327208400000 , 3.5059469003623] , [ 1327294800000 , 3.6741640726128] , [ 1327381200000 , 3.5476135299444] , [ 1327467600000 , 3.8207752112587] , [ 1327554000000 , 3.8616315638872] , [ 1327640400000 , 4.3254831376284] , [ 1327726800000 , 4.3254831376284] , [ 1327813200000 , 4.3254831376284] , [ 1327899600000 , 4.0133484282063] , [ 1327986000000 , 4.0086992762233] , [ 1328072400000 , 4.6741072621578] , [ 1328158800000 , 5.1853600238372] , [ 1328245200000 , 5.7164828688020] , [ 1328331600000 , 5.7164828688020] , [ 1328418000000 , 5.7164828688020] , [ 1328504400000 , 5.7706486616140] , [ 1328590800000 , 5.5821721041319] , [ 1328677200000 , 5.9281978759001] , [ 1328763600000 , 6.3202608081270] , [ 1328850000000 , 5.4952215782126] , [ 1328936400000 , 5.4952215782126] , [ 1329022800000 , 5.4952215782126] , [ 1329109200000 , 5.6378737590063] , [ 1329195600000 , 5.2228974160623] , [ 1329282000000 , 4.8974412407240] , [ 1329368400000 , 5.7203603398934] , [ 1329454800000 , 6.1518150836713] , [ 1329541200000 , 6.1518150836713] , [ 1329627600000 , 6.1518150836713] , [ 1329714000000 , 6.1518150836713] , [ 1329800400000 , 6.2799444735621] , [ 1329886800000 , 6.1985966532271] , [ 1329973200000 , 6.3441512518544] , [ 1330059600000 , 6.2162658382840] , [ 1330146000000 , 6.2162658382840] , [ 1330232400000 , 6.2162658382840] , [ 1330318800000 , 6.4153940933982] , [ 1330405200000 , 6.5112028076997] , [ 1330491600000 , 5.8186218494908]]
-  }
-].map(function(line) {
-  line.values = line.values.map(function(d) { return {x: d[0], y: d[1]/100  }})
-                           .filter(function(d) { 
-                             var day = (new Date(d.x)).getDay();
-                             return day != 0 && day != 6; //get rid of weekends for this example
-                            });
-  return line;
-});
-
-
-
-
-
-
-
-
-
-
-nv.charts.lineChartDaily()
-    .selector('#chart1')
-    //.data(sinAndCos())
-    .data(cumulativeDailyTestData)
-    .build();
-
-
-
-
-function sinAndCos() {
-  var sin = [],
-      cos = [],
-      r1 = Math.random(),
-      r2 = Math.random();
-
-  for (var i = 0; i < 100; i++) {
-    sin.push({x: i, voltage: r2 * Math.sin(i/10)});
-    cos.push({x: i, voltage: r1 * Math.cos(i/10)});
-  }
-
-  return [
-    {
-      values: sin,
-      key: "Sine Wave",
-      color: "#ff7f0e"
-    },
-    {
-      values: cos,
-      key: "Cosine Wave",
-      color: "#2ca02c"
-    }
-  ];
-}
-
-
-</script>
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/linePlusBar.html b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/linePlusBar.html
deleted file mode 100755
index a64ec4bf..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/linePlusBar.html
+++ /dev/null
@@ -1,173 +0,0 @@
-<!DOCTYPE html>
-<meta charset="utf-8">
-
-<link href="../src/d3.css" rel="stylesheet" type="text/css">
-
-<style>
-
-body {
-  overflow-y:scroll;
-}
-
-text {
-  font: 12px sans-serif;
-}
-
-#chart1 {
-  height: 500px;
-  margin: 10px;
-  min-width: 100px;
-  min-height: 100px;
-/*
-  Minimum height and width is a good idea to prevent negative SVG dimensions...
-  For example width should be =< margin.left + margin.right + 1,
-  of course 1 pixel for the entire chart would not be very useful, BUT should not have errors
-*/
-}
-
-</style>
-<body>
-
-  <div id="chart1">
-  </div>
-
-<script src="../lib/d3.v2.js"></script>
-<script src="../nv.d3.js"></script>
-<script src="../src/tooltip.js"></script>
-<script src="../src/models/legend.js"></script>
-<script src="../src/models/axis.js"></script>
-<script src="../src/models/scatter.js"></script>
-<script src="../src/models/line.js"></script>
-<script src="../src/models/historicalBar.js"></script>
-<script src="../src/models/linePlusBar.js"></script>
-<script>
-
-
-
-var valueVsQuantity = [ 
-  { 
-    "key" : "Quantity" , 
-    "bar": true,
-    "values" : [ [ 1136005200000 , 1271000.0] , [ 1138683600000 , 1271000.0] , [ 1141102800000 , 1271000.0] , [ 1143781200000 , 0] , [ 1146369600000 , 0] , [ 1149048000000 , 0] , [ 1151640000000 , 0] , [ 1154318400000 , 0] , [ 1156996800000 , 0] , [ 1159588800000 , 3899486.0] , [ 1162270800000 , 3899486.0] , [ 1164862800000 , 3899486.0] , [ 1167541200000 , 3564700.0] , [ 1170219600000 , 3564700.0] , [ 1172638800000 , 3564700.0] , [ 1175313600000 , 2648493.0] , [ 1177905600000 , 2648493.0] , [ 1180584000000 , 2648493.0] , [ 1183176000000 , 2522993.0] , [ 1185854400000 , 2522993.0] , [ 1188532800000 , 2522993.0] , [ 1191124800000 , 2906501.0] , [ 1193803200000 , 2906501.0] , [ 1196398800000 , 2906501.0] , [ 1199077200000 , 2206761.0] , [ 1201755600000 , 2206761.0] , [ 1204261200000 , 2206761.0] , [ 1206936000000 , 2287726.0] , [ 1209528000000 , 2287726.0] , [ 1212206400000 , 2287726.0] , [ 1214798400000 , 2732646.0] , [ 1217476800000 , 2732646.0] , [ 1220155200000 , 2732646.0] , [ 1222747200000 , 2599196.0] , [ 1225425600000 , 2599196.0] , [ 1228021200000 , 2599196.0] , [ 1230699600000 , 1924387.0] , [ 1233378000000 , 1924387.0] , [ 1235797200000 , 1924387.0] , [ 1238472000000 , 1756311.0] , [ 1241064000000 , 1756311.0] , [ 1243742400000 , 1756311.0] , [ 1246334400000 , 1743470.0] , [ 1249012800000 , 1743470.0] , [ 1251691200000 , 1743470.0] , [ 1254283200000 , 1519010.0] , [ 1256961600000 , 1519010.0] , [ 1259557200000 , 1519010.0] , [ 1262235600000 , 1591444.0] , [ 1264914000000 , 1591444.0] , [ 1267333200000 , 1591444.0] , [ 1270008000000 , 1543784.0] , [ 1272600000000 , 1543784.0] , [ 1275278400000 , 1543784.0] , [ 1277870400000 , 1309915.0] , [ 1280548800000 , 1309915.0] , [ 1283227200000 , 1309915.0] , [ 1285819200000 , 1331875.0] , [ 1288497600000 , 1331875.0] , [ 1291093200000 , 1331875.0] , [ 1293771600000 , 1331875.0] , [ 1296450000000 , 1154695.0] , [ 1298869200000 , 1154695.0] , [ 1301544000000 , 1194025.0] , [ 1304136000000 , 1194025.0] , [ 1306814400000 , 1194025.0] , [ 1309406400000 , 1194025.0] , [ 1312084800000 , 1194025.0] , [ 1314763200000 , 1244525.0] , [ 1317355200000 , 475000.0] , [ 1320033600000 , 475000.0] , [ 1322629200000 , 475000.0] , [ 1325307600000 , 690033.0] , [ 1327986000000 , 690033.0] , [ 1330491600000 , 690033.0] , [ 1333166400000 , 514733.0] , [ 1335758400000 , 514733.0]]
-  } , 
-
-  { 
-    "key" : "Price" , 
-    "values" : [ [ 1136005200000 , 71.89] , [ 1138683600000 , 75.51] , [ 1141102800000 , 68.49] , [ 1143781200000 , 62.72] , [ 1146369600000 , 70.39] , [ 1149048000000 , 59.77] , [ 1151640000000 , 57.27] , [ 1154318400000 , 67.96] , [ 1156996800000 , 67.85] , [ 1159588800000 , 76.98] , [ 1162270800000 , 81.08] , [ 1164862800000 , 91.66] , [ 1167541200000 , 84.84] , [ 1170219600000 , 85.73] , [ 1172638800000 , 84.61] , [ 1175313600000 , 92.91] , [ 1177905600000 , 99.8] , [ 1180584000000 , 121.191] , [ 1183176000000 , 122.04] , [ 1185854400000 , 131.76] , [ 1188532800000 , 138.48] , [ 1191124800000 , 153.47] , [ 1193803200000 , 189.95] , [ 1196398800000 , 182.22] , [ 1199077200000 , 198.08] , [ 1201755600000 , 135.36] , [ 1204261200000 , 125.02] , [ 1206936000000 , 143.5] , [ 1209528000000 , 173.95] , [ 1212206400000 , 188.75] , [ 1214798400000 , 167.44] , [ 1217476800000 , 158.95] , [ 1220155200000 , 169.53] , [ 1222747200000 , 113.66] , [ 1225425600000 , 107.59] , [ 1228021200000 , 92.67] , [ 1230699600000 , 85.35] , [ 1233378000000 , 90.13] , [ 1235797200000 , 89.31] , [ 1238472000000 , 105.12] , [ 1241064000000 , 125.83] , [ 1243742400000 , 135.81] , [ 1246334400000 , 142.43] , [ 1249012800000 , 163.39] , [ 1251691200000 , 168.21] , [ 1254283200000 , 185.35] , [ 1256961600000 , 188.5] , [ 1259557200000 , 199.91] , [ 1262235600000 , 210.732] , [ 1264914000000 , 192.063] , [ 1267333200000 , 204.62] , [ 1270008000000 , 235.0] , [ 1272600000000 , 261.09] , [ 1275278400000 , 256.88] , [ 1277870400000 , 251.53] , [ 1280548800000 , 257.25] , [ 1283227200000 , 243.1] , [ 1285819200000 , 283.75] , [ 1288497600000 , 300.98] , [ 1291093200000 , 311.15] , [ 1293771600000 , 322.56] , [ 1296450000000 , 339.32] , [ 1298869200000 , 353.21] , [ 1301544000000 , 348.5075] , [ 1304136000000 , 350.13] , [ 1306814400000 , 347.83] , [ 1309406400000 , 335.67] , [ 1312084800000 , 390.48] , [ 1314763200000 , 384.83] , [ 1317355200000 , 381.32] , [ 1320033600000 , 404.78] , [ 1322629200000 , 382.2] , [ 1325307600000 , 405.0] , [ 1327986000000 , 456.48] , [ 1330491600000 , 542.44] , [ 1333166400000 , 599.55] , [ 1335758400000 , 583.98]]
-  }
-].map(function(series) {
-  series.values = series.values.map(function(d) { return {x: d[0], y: d[1] } });
-  return series;
-}); 
-
-
-
-
-
-var selector = '#chart1',
-    chart = nv.models.linePlusBar(),
-    //data = sinAndCos(),
-    data = valueVsQuantity,
-    xTickFormat = d3.format(',r'),
-    y1TickFormat = d3.format(',f'),
-    y2TickFormat = function(d) { return '$' + d3.format(',f')(d) },
-    duration = 500;
-
-nv.addGraph({
-  generate: function() {
-    var container = d3.select(selector),
-        width = function() { return parseInt(container.style('width')) },
-        height = function() { return parseInt(container.style('height')) },
-        svg = container.append('svg');
-
-    chart
-        .x(function(d,i) { return i })
-        .width(width)
-        .height(height)
-        .color(d3.scale.category10().range());
-
-    chart.xAxis.tickFormat(function(d) {
-      var dx = data[0].values[d] && data[0].values[d].x || 0;
-      return d3.time.format('%x')(new Date(dx))
-      //return d3.time.format('%x')(new Date(data[0].values[d].x))
-    });
-
-    chart.yAxis1
-        .tickFormat(y1TickFormat)
-    chart.yAxis2
-        .tickFormat(y2TickFormat)
-
-    chart.bars.forceY([0]);
-    //chart.lines.forceY([0]);
-
-    svg
-        .attr('width', width())
-        .attr('height', height())
-        .datum(data)
-      .transition().duration(duration).call(chart);
-
-    return chart;
-  },
-  callback: function(chart) {
-    var showTooltip = function(e) {
-      var offsetElement = document.getElementById(selector.substr(1)),
-          left = e.pos[0] + offsetElement.offsetLeft,
-          top = e.pos[1] + offsetElement.offsetTop,
-          formatY1 = chart.yAxis1.tickFormat(), //Assumes using same format as axis, can customize to show higher precision, etc.
-          formatY2 = chart.yAxis2.tickFormat(), //Assumes using same format as axis, can customize to show higher precision, etc.
-          formatX = chart.xAxis.tickFormat(),
-          x = formatX(chart.x()(e, e.pointIndex)),
-          y = e.series.bar ? formatY1(chart.y()(e.point)) : formatY2(chart.y()(e.point));
-
-
-
-      // uses the chart's getX and getY, you may customize if x position is not the same as the value you want
-      //   ex. daily data without weekends, x is the index, while you want the date
-      var content = '<h3>' + e.series.key.replace(/\s*\(.*\)/, '') + '</h3>' + //removing the (left/right axis) note from series label in tooltip
-                    '<p>' +
-                    y + ' at ' + x +
-                    '</p>';
-
-                    nv.tooltip.show([left, top], content, chart.y()(e.point) < 0 ? 'n' : 's' );
-    };
-
-    chart.dispatch.on('tooltipShow', showTooltip);
-    chart.dispatch.on('tooltipHide', nv.tooltip.cleanup);
-
-
-    window.onresize= function() {
-      // now that width and height are functions, should be automatic..of course you can always override them
-      d3.select('#chart1 svg')
-          .attr('width', chart.width()()) //need to set SVG dimensions, chart is not aware of the SVG component
-          .attr('height', chart.height()())
-          .call(chart);
-    };
-  }
-});
-
-
-
-function sinAndCos() {
-  var sin = [],
-      cos = [];
-
-  for (var i = 0; i < 100; i++) {
-    sin.push({x: i, y: Math.sin(i/10) + 1});
-    cos.push({x: i, y: .5 * Math.cos(i/10) + .5});
-  }
-
-  return [
-    {
-      values: sin,
-      key: "Sine Wave",
-      bar: true
-    },
-    {
-      values: cos,
-      key: "Cosine Wave"
-    }
-  ];
-}
-
-
-</script>
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/linePlusBar.js b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/linePlusBar.js
deleted file mode 100755
index c5c690af..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/linePlusBar.js
+++ /dev/null
@@ -1,250 +0,0 @@
-
-nv.models.linePlusBar = function() {
-  var margin = {top: 30, right: 60, bottom: 50, left: 60},
-      getWidth = function() { return 960 },
-      getHeight = function() { return 500 },
-      dotRadius = function() { return 2.5 },
-      getX = function(d) { return d.x },
-      getY = function(d) { return d.y },
-      color = d3.scale.category20().range(),
-      dispatch = d3.dispatch('tooltipShow', 'tooltipHide');
-
-  var x = d3.scale.linear(),
-      y1 = d3.scale.linear(),
-      y2 = d3.scale.linear(),
-      xAxis = nv.models.axis().scale(x).orient('bottom'),
-      yAxis1 = nv.models.axis().scale(y1).orient('left'),
-      yAxis2 = nv.models.axis().scale(y2).orient('right'),
-      legend = nv.models.legend().height(30),
-      lines = nv.models.line(),
-      bars = nv.models.historicalBar();
-
-
-  function chart(selection) {
-    selection.each(function(data) {
-      var width = getWidth(),
-          height = getHeight(),
-          availableWidth = width - margin.left - margin.right,
-          availableHeight = height - margin.top - margin.bottom;
-
-      var series1 = data.filter(function(d) { return !d.disabled && d.bar })
-            .map(function(d) { 
-              return d.values.map(function(d,i) {
-                return { x: getX(d,i), y: getY(d,i) }
-              })
-            });
-
-      var series2 = data.filter(function(d) { return !d.disabled && !d.bar })
-            .map(function(d) { 
-              return d.values.map(function(d,i) {
-                return { x: getX(d,i), y: getY(d,i) }
-              })
-            });
-
-      x   .domain(d3.extent(d3.merge(series1.concat(series2)), function(d) { return d.x } ))
-          .range([0, availableWidth]);
-
-      y1  .domain(d3.extent(d3.merge(series1), function(d) { return d.y } ))
-          .range([availableHeight, 0]);
-
-      y2  .domain(d3.extent(d3.merge(series2), function(d) { return d.y } ))
-          .range([availableHeight, 0]);
-
-      lines
-        .width(availableWidth)
-        .height(availableHeight)
-        .color(data.map(function(d,i) {
-          return d.color || color[i % 10];
-        }).filter(function(d,i) { return !data[i].disabled && !data[i].bar }))
-
-      bars
-        .width(availableWidth)
-        .height(availableHeight)
-        .color(data.map(function(d,i) {
-          return d.color || color[i % 10];
-        }).filter(function(d,i) { return !data[i].disabled && data[i].bar }))
-
-
-      var wrap = d3.select(this).selectAll('g.wrap.linePlusBar').data([data]);
-      var gEnter = wrap.enter().append('g').attr('class', 'wrap nvd3 linePlusBar').append('g');
-
-      gEnter.append('g').attr('class', 'x axis');
-      gEnter.append('g').attr('class', 'y1 axis');
-      gEnter.append('g').attr('class', 'y2 axis');
-      gEnter.append('g').attr('class', 'barsWrap');
-      gEnter.append('g').attr('class', 'linesWrap');
-      gEnter.append('g').attr('class', 'legendWrap');
-
-
-      legend.dispatch.on('legendClick', function(d,i) { 
-        d.disabled = !d.disabled;
-
-        if (!data.filter(function(d) { return !d.disabled }).length) {
-          data.map(function(d) {
-            d.disabled = false;
-            wrap.selectAll('.series').classed('disabled', false);
-            return d;
-          });
-        }
-
-        selection.transition().call(chart);
-      });
-
-
-      lines.dispatch.on('elementMouseover.tooltip', function(e) {
-        dispatch.tooltipShow({
-          point: e.point,
-          series: e.series,
-          pos: [e.pos[0] + margin.left, e.pos[1] + margin.top],
-          seriesIndex: e.seriesIndex,
-          pointIndex: e.pointIndex
-        });
-      });
-
-      lines.dispatch.on('elementMouseout.tooltip', function(e) {
-        dispatch.tooltipHide(e);
-      });
-
-
-
-      bars.dispatch.on('elementMouseover.tooltip', function(e) {
-        e.pos = [e.pos[0] +  margin.left, e.pos[1] + margin.top];
-        dispatch.tooltipShow(e);
-      });
-
-      bars.dispatch.on('elementMouseout.tooltip', function(e) {
-        dispatch.tooltipHide(e);
-      });
-
-
-
-      //TODO: margins should be adjusted based on what components are used: axes, axis labels, legend
-      margin.top = legend.height();
-
-      var g = wrap.select('g')
-          .attr('transform', 'translate(' + margin.left + ',' + margin.top + ')');
-
-
-      legend.width(width/2 - margin.right);
-
-      g.select('.legendWrap')
-          .datum(data.map(function(series) { 
-            series.key = series.key + (series.bar ? ' (left axis)' : ' (right axis)');
-            return series;
-          }))
-          .attr('transform', 'translate(' + (width/2 - margin.left) + ',' + (-margin.top) +')')
-          .call(legend);
-
-
-      var barsData = data.filter(function(d) { return !d.disabled && d.bar });
-
-      var barsWrap = g.select('.barsWrap')
-          .datum(barsData.length ? barsData : [{values:[]}])
-          //.datum(data.filter(function(d) { return !d.disabled && d.bar }))
-
-      var linesWrap = g.select('.linesWrap')
-          .datum(data.filter(function(d) { return !d.disabled && !d.bar }))
-
-
-      d3.transition(barsWrap).call(bars);
-      d3.transition(linesWrap).call(lines);
-
-
-      xAxis
-        .domain(x.domain())
-        .range(x.range())
-        .ticks( width / 100 )
-        .tickSize(-availableHeight, 0);
-
-      g.select('.x.axis')
-          .attr('transform', 'translate(0,' + y1.range()[0] + ')');
-      d3.transition(g.select('.x.axis'))
-          .call(xAxis);
-
-      yAxis1
-        .domain(y1.domain())
-        .range(y1.range())
-        .ticks( height / 36 )
-        .tickSize(-availableWidth, 0);
-
-      d3.transition(g.select('.y1.axis'))
-          .call(yAxis1);
-
-      yAxis2
-        .domain(y2.domain())
-        .range(y2.range())
-        .ticks( height / 36 )
-        .tickSize(series1.length ? 0 : -availableWidth, 0); // Show the y2 rules only if y1 has none
-
-      g.select('.y2.axis')
-          .attr('transform', 'translate(' + x.range()[1] + ',0)');
-
-      d3.transition(g.select('.y2.axis'))
-          .call(yAxis2);
-
-    });
-
-    return chart;
-  }
-
-  chart.dispatch = dispatch;
-  chart.legend = legend;
-  chart.lines = lines;
-  chart.bars = bars;
-  chart.xAxis = xAxis;
-  chart.yAxis1 = yAxis1;
-  chart.yAxis2 = yAxis2;
-
-  //d3.rebind(chart, lines, 'interactive');
-  //consider rebinding x and y as well
-
-  chart.x = function(_) {
-    if (!arguments.length) return getX;
-    getX = _;
-    lines.x(_);
-    bars.x(_);
-    return chart;
-  };
-
-  chart.y = function(_) {
-    if (!arguments.length) return getY;
-    getY = _;
-    lines.y(_);
-    bars.y(_);
-    return chart;
-  };
-
-  chart.margin = function(_) {
-    if (!arguments.length) return margin;
-    margin = _;
-    return chart;
-  };
-
-  chart.width = function(_) {
-    if (!arguments.length) return getWidth;
-    getWidth = d3.functor(_);
-    return chart;
-  };
-
-  chart.height = function(_) {
-    if (!arguments.length) return getHeight;
-    getHeight = d3.functor(_);
-    return chart;
-  };
-
-  chart.dotRadius = function(_) {
-    if (!arguments.length) return dotRadius;
-    dotRadius = d3.functor(_);
-    lines.dotRadius = _;
-    return chart;
-  };
-
-  chart.color = function(_) {
-    if (!arguments.length) return color;
-    color = _;
-    legend.color(_);
-    return chart;
-  };
-
-  return chart;
-}
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/lineWithFocus.html b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/lineWithFocus.html
deleted file mode 100755
index c845bcf8..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/lineWithFocus.html
+++ /dev/null
@@ -1,137 +0,0 @@
-<!DOCTYPE html>
-<meta charset="utf-8">
-
-<link href="../src/d3.css" rel="stylesheet" type="text/css">
-
-<style>
-
-
-body {
-  overflow-y:scroll;
-}
-
-text {
-  font: 12px sans-serif;
-}
-
-</style>
-<body>
-
-  <div id="test1">
-    <svg></svg>
-  </div>
-
-<script src="../lib/d3.v2.js"></script>
-<script src="../nv.d3.js"></script>
-<script src="../src/tooltip.js"></script>
-<script src="../src/models/legend.js"></script>
-<script src="../src/models/axis.js"></script>
-<script src="../src/models/scatter.js"></script>
-<script src="../src/models/line.js"></script>
-<script src="../src/models/lineWithFocus.js"></script>
-<script src="stream_layers.js"></script>
-<script>
-
-  var test_data = stream_layers(3,128,.1).map(function(data, i) {
-    return { 
-      key: 'Stream' + i,
-      values: data
-    };
-  });
-
-nv.addGraph({
-  generate: function() {
-      var width = nv.utils.windowSize().width - 40,
-          height = nv.utils.windowSize().height - 40;
-
-      var chart = nv.models.lineWithFocus()
-                .width(width)
-                .height(height)
-                .yTickFormat(d3.format('.2r'))
-                .xTickFormat(d3.format('.2r'))
-
-
-    var svg = d3.select('#test1 svg')
-      .attr('width', width)
-      .attr('height', height)
-      .datum(test_data);
-
-    svg.transition().duration(500).call(chart);
-
-    return chart;
-  },
-  callback: function(graph) {
-
-    graph.dispatch.on('tooltipShow', function(e) {
-        var offsetElement = document.getElementById("test1"),
-                left = e.pos[0] + offsetElement.offsetLeft,
-                top = e.pos[1] + offsetElement.offsetTop,
-                formatter = d3.format('.2r');
-
-      var content = '<h3>' + e.series.key + '</h3>' +
-                    '<p>' +
-                    formatter(graph.y()(e.point)) + ', ' + formatter(graph.x()(e.point)) +
-                    '</p>';
-
-      nv.tooltip.show([left, top], content);
-    });
-
-    graph.dispatch.on('tooltipHide', function(e) {
-      nv.tooltip.cleanup();
-    });
-
-
-
-    window.onresize = function() {
-    var width = nv.utils.windowSize().width - 40,
-        height = nv.utils.windowSize().height - 40,
-        margin = graph.margin();
-
-
-      if (width < margin.left + margin.right + 20)
-        width = margin.left + margin.right + 20;
-
-      if (height < margin.top + margin.bottom + 20)
-        height = margin.top + margin.bottom + 20;
-
-
-      graph
-         .width(width)
-         .height(height);
-
-      d3.select('#test1 svg')
-        .attr('width', width)
-        .attr('height', height)
-        .call(graph);
-
-      };
-  }
-});
-
-
-
-function sinAndCos() {
-  var sin = [],
-      cos = [];
-
-  for (var i = 0; i < 100; i++) {
-    sin.push({x: i, y: Math.sin(i/10)});
-    cos.push({x: i, y: .5 * Math.cos(i/10)});
-  }
-
-  return [
-    {
-      values: sin,
-      key: "Sine Wave",
-      color: "#ff7f0e"
-    },
-    {
-      values: cos,
-      key: "Cosine Wave",
-      color: "#2ca02c"
-    }
-  ];
-}
-
-
-</script>
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/lineWithFocus.js b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/lineWithFocus.js
deleted file mode 100755
index e359fff5..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/lineWithFocus.js
+++ /dev/null
@@ -1,354 +0,0 @@
-
-nv.models.lineWithFocus = function() {
-  var margin  = {top: 30, right: 20, bottom: 30, left: 60},
-      margin2 = {top: 0, right: 20, bottom: 20, left: 60},
-      width = 960,
-      height = 500,
-      height1 = 400,
-      height2 = 100,
-      color = d3.scale.category20().range(),
-      getX = function(d) { return d.x },
-      getY = function(d) { return d.y },
-      id = Math.floor(Math.random() * 10000); //Create semi-unique ID incase user doesn't select one
-
-  var x = d3.scale.linear(),
-      y = d3.scale.linear(),
-      x2 = d3.scale.linear(),
-      y2 = d3.scale.linear(),
-      xAxis = nv.models.axis().scale(x).orient('bottom'),
-      yAxis = nv.models.axis().scale(y).orient('left'),
-      xAxis2 = nv.models.axis().scale(x2).orient('bottom'),
-      yAxis2 = nv.models.axis().scale(y2).orient('left'),
-      legend = nv.models.legend().height(30),
-      focus = nv.models.line().clipEdge(true),
-      context = nv.models.line().interactive(false),
-      dispatch = d3.dispatch('tooltipShow', 'tooltipHide'),
-      brush = d3.svg.brush()
-            .x(x2);
-
-
-  //var wrap, gEnter, g, focus, focusLines, contextWrap, focusWrap, contextLines;  //brought all variables to this scope for use within brush function... is this a bad idea?
-
-  //var seriesData;  //Temporarily bringing this data to this scope.... may be bad idea (same with above).. may need to rethink brushing
-
-  function chart(selection) {
-    selection.each(function(data) {
-      var seriesData = data.filter(function(d) { return !d.disabled })
-            .map(function(d) { return d.values }),
-          availableWidth = width - margin.left - margin.right,
-          availableHeight1 = height1 - margin.top - margin.bottom,
-          availableHeight2 = height2 - margin2.top - margin2.bottom;
-
-      x2  .domain(d3.extent(d3.merge(seriesData), getX ))
-          .range([0, availableWidth]);
-      y2  .domain(d3.extent(d3.merge(seriesData), getY ))
-          .range([availableHeight2, 0]);
-
-      x   .domain(brush.empty() ? x2.domain() : brush.extent())
-          .range([0, availableWidth]);
-      y   .domain(y2.domain())
-          .range([availableHeight1, 0]);
-
-      brush.on('brush', onBrush);
-
-      focus
-        .width(availableWidth)
-        .height(availableHeight1)
-        .color(data.map(function(d,i) {
-          return d.color || color[i % 10];
-        }).filter(function(d,i) { return !data[i].disabled }))
-
-      context
-        .width(availableWidth)
-        .height(availableHeight2)
-        .color(data.map(function(d,i) {
-          return d.color || color[i % 10];
-        }).filter(function(d,i) { return !data[i].disabled }))
-
-
-      updateFocus();
-
-
-      var wrap = d3.select(this).selectAll('g.wrap').data([data]);
-      var gEnter = wrap.enter().append('g').attr('class', 'wrap nvd3 lineWithFocus').append('g');
-
-      gEnter.append('g').attr('class', 'focus');
-      gEnter.append('g').attr('class', 'context');
-      gEnter.append('g').attr('class', 'legendWrap');
-
-
-
-      var g = wrap.select('g')
-          //.attr('transform', 'translate(0,0)');
-
-
-
-
-      // ********** LEGEND **********
-
-      legend.width(width/2 - margin.right);
-
-      g.select('.legendWrap')
-          .datum(data)
-          .attr('transform', 'translate(' + (availableWidth / 2) + ',0)')
-          .call(legend);
-
-
-      //TODO: margins should be adjusted based on what components are used: axes, axis labels, legend
-      margin.top = legend.height();
-
-
-
-
-      // ********** FOCUS **********
-
-      var focusWrap = g.select('.focus')
-          .attr('transform', 'translate(' + margin.left + ',' + margin.top + ')');
-
-      gEnter.select('.focus').append('g').attr('class', 'x axis');
-      gEnter.select('.focus').append('g').attr('class', 'y axis');
-      gEnter.select('.focus').append('g').attr('class', 'focusLines');
-
-
-      var focusLines = focusWrap.select('.focusLines')
-          .datum(data.filter(function(d) { return !d.disabled }))
-
-      d3.transition(focusLines).call(focus);
-
-
-      xAxis
-        .domain(x.domain())
-        .range(x.range())
-        .ticks( width / 100 )
-        .tickSize(-(availableHeight1), 0);
-
-      focusWrap.select('.x.axis')
-          .attr('transform', 'translate(0,' + y.range()[0] + ')');
-      d3.transition(g.select('.x.axis'))
-          .call(xAxis);
-
-      yAxis
-        .domain(y.domain())
-        .range(y.range())
-        .ticks( height / 36 )
-        .tickSize(-(availableWidth), 0);
-
-      d3.transition(g.select('.y.axis'))
-          .call(yAxis);
-
-
-
-
-      // ********** CONTEXT **********
-
-      var contextWrap = g.select('.context')
-          .attr('transform', 'translate(' + margin2.left + ',' + height1 + ')');
-
-      gEnter.select('.context').append('g').attr('class', 'x2 axis');
-      gEnter.select('.context').append('g').attr('class', 'y2 axis');
-      gEnter.select('.context').append('g').attr('class', 'contextLines');
-      gEnter.select('.context').append('g').attr('class', 'x brush')
-          .attr('class', 'x brush')
-          .call(brush)
-        .selectAll('rect')
-          .attr('y', -5)
-          .attr('height', height2 + 4);
-
-      var contextLines = contextWrap.select('.contextLines')
-          .datum(data.filter(function(d) { return !d.disabled }))
-
-      d3.transition(contextLines).call(context);
-
-
-      xAxis2
-        .domain(x2.domain())
-        .range(x2.range())
-        .ticks( width / 100 )
-        .tickSize(-(availableHeight2), 0);
-
-      contextWrap.select('.x2.axis')
-          .attr('transform', 'translate(0,' + y2.range()[0] + ')');
-      d3.transition(contextWrap.select('.x2.axis'))
-          .call(xAxis2);
-
-
-      yAxis2
-        .domain(y2.domain())
-        .range(y2.range())
-        .ticks( availableHeight2 / 24 )
-        .tickSize(-(availableWidth), 0);
-
-      contextWrap.select('.y2.axis');
-
-      d3.transition(contextWrap.select('.y2.axis'))
-          .call(yAxis2);
-
-
-
-
-
-
-      // ********** EVENT LISTENERS **********
-
-      legend.dispatch.on('legendClick', function(d,i) {
-        d.disabled = !d.disabled;
-
-        if (!data.filter(function(d) { return !d.disabled }).length) {
-          data.map(function(d) {
-            d.disabled = false;
-            wrap.selectAll('.series').classed('disabled', false);
-            return d;
-          });
-        }
-
-        selection.transition().call(chart);
-      });
-
-/*
-      legend.dispatch.on('legendMouseover', function(d, i) {
-        d.hover = true;
-        selection.transition().call(chart)
-      });
-      legend.dispatch.on('legendMouseout', function(d, i) {
-        d.hover = false;
-        selection.transition().call(chart)
-      });
-*/
-
-      focus.dispatch.on('elementMouseover.tooltip', function(e) {
-        dispatch.tooltipShow({
-          point: e.point,
-          series: e.series,
-          pos: [e.pos[0] + margin.left, e.pos[1] + margin.top],
-          seriesIndex: e.seriesIndex,
-          pointIndex: e.pointIndex
-        });
-      });
-      focus.dispatch.on('elementMouseout.tooltip', function(e) {
-        dispatch.tooltipHide(e);
-      });
-
-
-
-
-
-      function onBrush() {
-        updateFocus();
-
-        focusLines.call(focus)
-        wrap.select('.x.axis').call(xAxis);
-        wrap.select('.y.axis').call(yAxis);
-      }
-
-      function updateFocus() {
-        var yDomain = brush.empty() ? y2.domain() : d3.extent(d3.merge(seriesData).filter(function(d) {
-          return getX(d) >= brush.extent()[0] && getX(d) <= brush.extent()[1];
-        }), getY);  //This doesn't account for the 1 point before and the 1 point after the domain.  Would fix, but likely need to change entire methodology here
-
-        if (typeof yDomain[0] == 'undefined') yDomain = y2.domain(); //incase the brush doesn't cover a single point
-
-
-        x.domain(brush.empty() ? x2.domain() : brush.extent());
-        y.domain(yDomain);
-
-        //TODO: Rethink this... performance is horrible, likely need to cut off focus data to within the range
-        //      If I limit the data for focusLines would want to include 1 point before and after the extent,
-        //      Need to figure out an optimized way to accomplish this.
-        //      ***One concern is to try not to make the assumption that all lines are of the same length, and
-        //         points with the same index have the same x value (while this is true in our test cases, may 
-        //         not always be)
-        
-        focus.xDomain(x.domain());
-        focus.yDomain(y.domain());
-      }
-
-
-    });
-
-    return chart;
-  }
-
-
-
-  // ********** FUNCTIONS **********
-
-
-
-
-  // ********** PUBLIC ACCESSORS **********
-
-  chart.dispatch = dispatch;
-
-  chart.x = function(_) {
-    if (!arguments.length) return getX;
-    getX = _;
-    focus.x(_);
-    context.x(_);
-    return chart;
-  };
-
-  chart.y = function(_) {
-    if (!arguments.length) return getY;
-    getY = _;
-    focus.y(_);
-    context.y(_);
-    return chart;
-  };
-
-  chart.margin = function(_) {
-    if (!arguments.length) return margin;
-    margin = _;
-    return chart;
-  };
-
-  chart.width = function(_) {
-    if (!arguments.length) return width;
-    width = _;
-    return chart;
-  };
-
-  chart.height = function(_) {
-    if (!arguments.length) return height;
-    height = _;
-    height1 =  _ - height2;
-    return chart;
-  };
-
-  chart.contextHeight = function(_) {
-    if (!arguments.length) return height2;
-    height2 = _;
-    height1 = height - _;
-    return chart;
-  };
-
-  chart.id = function(_) {
-    if (!arguments.length) return id;
-    id = _;
-    return chart;
-  };
-
-
-  // Chart has multiple similar Axes, to prevent code duplication, probably need to link all axis functions manually like below
-  chart.xTickFormat = function(_) {
-    if (!arguments.length) return x.tickFormat();
-    xAxis.tickFormat(_);
-    xAxis2.tickFormat(_);
-    return chart;
-  };
-
-  chart.yTickFormat = function(_) {
-    if (!arguments.length) return y.tickFormat();
-    yAxis.tickFormat(_);
-    yAxis2.tickFormat(_);
-    return chart;
-  };
-
-
-
-  //TODO: allow for both focus and context axes to be linked
-  chart.xAxis = xAxis;
-  chart.yAxis = yAxis;
-
-
-  return chart;
-}
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/lineWithFourAxes.html b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/lineWithFourAxes.html
deleted file mode 100755
index 736b5719..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/lineWithFourAxes.html
+++ /dev/null
@@ -1,144 +0,0 @@
-<!DOCTYPE html>
-<meta charset="utf-8">
-
-<link href="../src/d3.css" rel="stylesheet" type="text/css">
-
-<style>
-
-body {
-  overflow-y:scroll;
-}
-
-text {
-  font: 12px sans-serif;
-}
-
-#chart1 {
-  height: 500px;
-  margin: 10px;
-  min-width: 100px;
-  min-height: 100px;
-/*
-  Minimum height and width is a good idea to prevent negative SVG dimensions...
-  For example width should be =< margin.left + margin.right + 1,
-  of course 1 pixel for the entire chart would not be very useful, BUT should not have errors
-*/
-}
-
-</style>
-<body>
-
-  <div id="chart1">
-  </div>
-
-<script src="../lib/d3.v2.js"></script>
-<script src="../nv.d3.js"></script>
-<script src="../src/tooltip.js"></script>
-<script src="../src/models/legend.js"></script>
-<script src="../src/models/axis.js"></script>
-<script src="../src/models/line.js"></script>
-<script src="../src/models/lineWithFourAxes.js"></script>
-<script>
-
-/************
- * Considering making an nv.charts object which will contain abstractions similar to the one below, 
- *     but with the usual d3 reusable style.
- * I could make this abstraction inside the layer above, but this layer incorporates some jQuery, so
- *     thinking nv.charts can be the glue that's not 100% d3
- ************/
-
-var selector = '#chart1',
-    chart = nv.models.lineWithLegend(),
-    data = sinAndCos(),
-    xTickFormat = d3.format(',r'),
-    yTickFormat = d3.format(',.2f'),
-    xAxisLabel = null,
-    yAxisLabel = 'Voltage (v)',
-    duration = 500;
-
-nv.addGraph({
-  generate: function() {
-    var container = d3.select(selector),
-        width = function() { return parseInt(container.style('width')) },
-        height = function() { return parseInt(container.style('height')) },
-        svg = container.append('svg');
-
-    chart
-        .width(width)
-        .height(height)
-
-    chart.xAxis
-        .tickFormat(xTickFormat);
-
-    chart.yAxis
-        .tickFormat(yTickFormat)
-        .axisLabel(yAxisLabel);
-
-    svg
-        .attr('width', width())
-        .attr('height', height())
-        .datum(data)
-      .transition().duration(duration).call(chart);
-
-    return chart;
-  },
-  callback: function(chart) {
-    var showTooltip = function(e) {
-          var offsetElement = document.getElementById(selector.substr(1)),
-              left = e.pos[0] + offsetElement.offsetLeft,
-              top = e.pos[1] + offsetElement.offsetTop,
-              formatY = chart.yAxis.tickFormat(), //Assumes using same format as axis, can customize to show higher precision, etc.
-              formatX = chart.xAxis.tickFormat();
-
-          // uses the chart's getX and getY, you may customize if x position is not the same as the value you want 
-          //   ex. daily data without weekends, x is the index, while you want the date
-          var content = '<h3>' + e.series.key + '</h3>' +
-                        '<p>' +
-                        formatY(chart.y()(e.point)) + ' at ' + formatX(chart.x()(e.point)) +
-                        '</p>';
-
-          nv.tooltip.show([left, top], content);
-        };
-
-    chart.dispatch.on('tooltipShow', showTooltip);
-    chart.dispatch.on('tooltipHide', nv.tooltip.cleanup);
-
-
-    window.onresize =
-    function() {
-      // now that width and height are functions, should be automatic..of course you can always override them
-      d3.select('#chart1 svg')
-          .attr('width', chart.width()()) //need to set SVG dimensions, chart is not aware of the SVG component
-          .attr('height', chart.height()())
-          .call(chart);
-    };
-  }
-});
-
-
-
-function sinAndCos() {
-  var sin = [],
-      cos = [];
-
-  for (var i = 0; i < 100; i++) {
-    sin.push({x: i, y: Math.sin(i/10)});
-    cos.push({x: i, y: .5 * Math.cos(i/10)});
-  }
-
-  return [
-    {
-      values: sin,
-      key: "Sine Wave",
-      color: "#ff7f0e"
-    },
-    {
-      values: cos,
-      key: "Cosine Wave",
-      color: "#2ca02c"
-    }
-  ];
-}
-
-
-</script>
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/lineWithFourAxes.js b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/lineWithFourAxes.js
deleted file mode 100755
index f42c7733..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/lineWithFourAxes.js
+++ /dev/null
@@ -1,218 +0,0 @@
-
-nv.models.lineWithLegend = function() {
-  var margin = {top: 60, right: 60, bottom: 40, left: 60},
-      getWidth = function() { return 960 },
-      getHeight = function() { return 500 },
-      dotRadius = function() { return 2.5 },
-      getX = function(d) { return d.x },
-      getY = function(d) { return d.y },
-      color = d3.scale.category20().range(),
-      dispatch = d3.dispatch('tooltipShow', 'tooltipHide');
-
-  var x = d3.scale.linear(),
-      y = d3.scale.linear(),
-      xAxis = nv.models.axis().scale(x).orient('bottom'),
-      yAxis = nv.models.axis().scale(y).orient('left'),
-      x2Axis = nv.models.axis().scale(x).orient('top'),
-      y2Axis = nv.models.axis().scale(y).orient('right'),
-      legend = nv.models.legend().height(30),
-      lines = nv.models.line();
-
-
-  function chart(selection) {
-    selection.each(function(data) {
-      var width = getWidth(),
-          height = getHeight(),
-          availableWidth = width - margin.left - margin.right,
-          availableHeight = height - margin.top - margin.bottom;
-
-      var series = data.filter(function(d) { return !d.disabled })
-            .map(function(d) { 
-              return d.values.map(function(d,i) {
-                return { x: getX(d,i), y: getY(d,i) }
-              })
-            });
-
-      x   .domain(d3.extent(d3.merge(series), function(d) { return d.x } ))
-          .range([0, availableWidth]);
-
-      y   .domain(d3.extent(d3.merge(series), function(d) { return d.y } ))
-          .range([availableHeight, 0]);
-
-      lines
-        .width(availableWidth)
-        .height(availableHeight)
-        .color(data.map(function(d,i) {
-          return d.color || color[i % 10];
-        }).filter(function(d,i) { return !data[i].disabled }))
-
-
-      var wrap = d3.select(this).selectAll('g.wrap').data([data]);
-      var gEnter = wrap.enter().append('g').attr('class', 'wrap nvd3 lineWithLegend').append('g');
-
-      gEnter.append('g').attr('class', 'x axis');
-      gEnter.append('g').attr('class', 'y axis');
-      gEnter.append('g').attr('class', 'x2 axis');
-      gEnter.append('g').attr('class', 'y2 axis');
-      gEnter.append('g').attr('class', 'linesWrap');
-      gEnter.append('g').attr('class', 'legendWrap');
-
-
-      legend.dispatch.on('legendClick', function(d,i) { 
-        d.disabled = !d.disabled;
-
-        if (!data.filter(function(d) { return !d.disabled }).length) {
-          data.map(function(d) {
-            d.disabled = false;
-            wrap.selectAll('.series').classed('disabled', false);
-            return d;
-          });
-        }
-
-        selection.transition().call(chart);
-      });
-
-/*
-      //
-      legend.dispatch.on('legendMouseover', function(d, i) {
-        d.hover = true;
-        selection.transition().call(chart)
-      });
-
-      legend.dispatch.on('legendMouseout', function(d, i) {
-        d.hover = false;
-        selection.transition().call(chart)
-      });
-*/
-
-      lines.dispatch.on('elementMouseover.tooltip', function(e) {
-        dispatch.tooltipShow({
-          point: e.point,
-          series: e.series,
-          pos: [e.pos[0] + margin.left, e.pos[1] + margin.top],
-          seriesIndex: e.seriesIndex,
-          pointIndex: e.pointIndex
-        });
-      });
-
-      lines.dispatch.on('elementMouseout.tooltip', function(e) {
-        dispatch.tooltipHide(e);
-      });
-
-
-      //TODO: margins should be adjusted based on what components are used: axes, axis labels, legend
-      margin.top = legend.height() + 20; // 20 is for the x2 axis...  this should be done in a better place, but just doing this to show the 4 axes in an example
-
-      var g = wrap.select('g')
-          .attr('transform', 'translate(' + margin.left + ',' + margin.top + ')');
-
-
-      legend.width(width/2 - margin.right);
-
-      g.select('.legendWrap')
-          .datum(data)
-          .attr('transform', 'translate(' + (width/2 - margin.left) + ',' + (-margin.top) +')')
-          .call(legend);
-
-
-      var linesWrap = g.select('.linesWrap')
-          .datum(data.filter(function(d) { return !d.disabled }))
-
-
-      d3.transition(linesWrap).call(lines);
-
-
-      xAxis
-        .domain(x.domain())
-        .range(x.range())
-        .ticks( width / 100 )
-        .tickSize(-availableHeight, 0);
-
-      g.select('.x.axis')
-          .attr('transform', 'translate(0,' + y.range()[0] + ')');
-      d3.transition(g.select('.x.axis'))
-          .call(xAxis);
-
-      yAxis
-        .domain(y.domain())
-        .range(y.range())
-        .ticks( height / 36 )
-        .tickSize(-availableWidth, 0);
-
-      d3.transition(g.select('.y.axis'))
-          .call(yAxis);
-
-      x2Axis
-        .domain(x.domain())
-        .range(x.range())
-        .ticks( width / 100 )
-        .tickSize(-availableHeight, 0);
-
-      d3.transition(g.select('.x2.axis'))
-          .call(x2Axis);
-
-      y2Axis
-        .domain(y.domain())
-        .range(y.range())
-        .ticks( height / 36 )
-        .tickSize(-availableWidth, 0);
-
-      g.select('.y2.axis')
-          .attr('transform', 'translate('+ x.range()[1] + ',0)');
-      d3.transition(g.select('.y2.axis'))
-          .call(y2Axis);
-    });
-
-    return chart;
-  }
-
-  chart.dispatch = dispatch;
-  chart.legend = legend;
-  chart.xAxis = xAxis;
-  chart.yAxis = yAxis;
-
-  d3.rebind(chart, lines, 'interactive');
-  //consider rebinding x and y as well
-
-  chart.x = function(_) {
-    if (!arguments.length) return getX;
-    getX = _;
-    lines.x(_);
-    return chart;
-  };
-
-  chart.y = function(_) {
-    if (!arguments.length) return getY;
-    getY = _;
-    lines.y(_);
-    return chart;
-  };
-
-  chart.margin = function(_) {
-    if (!arguments.length) return margin;
-    margin = _;
-    return chart;
-  };
-
-  chart.width = function(_) {
-    if (!arguments.length) return getWidth;
-    getWidth = d3.functor(_);
-    return chart;
-  };
-
-  chart.height = function(_) {
-    if (!arguments.length) return getHeight;
-    getHeight = d3.functor(_);
-    return chart;
-  };
-
-  chart.dotRadius = function(_) {
-    if (!arguments.length) return dotRadius;
-    dotRadius = d3.functor(_);
-    lines.dotRadius = _;
-    return chart;
-  };
-
-
-  return chart;
-}
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/lineWithLegend.html b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/lineWithLegend.html
deleted file mode 100755
index 9aa9fab6..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/lineWithLegend.html
+++ /dev/null
@@ -1,142 +0,0 @@
-<!DOCTYPE html>
-<meta charset="utf-8">
-
-<link href="../src/d3.css" rel="stylesheet" type="text/css">
-
-<style>
-
-body {
-  overflow-y:scroll;
-}
-
-text {
-  font: 12px sans-serif;
-}
-
-svg {
-  display: block;
-}
-
-#chart1 {
-  height: 500px;
-  margin: 10px;
-  min-width: 100px;
-  min-height: 100px;
-/*
-  Minimum height and width is a good idea to prevent negative SVG dimensions...
-  For example width should be =< margin.left + margin.right + 1,
-  of course 1 pixel for the entire chart would not be very useful, BUT should not have errors
-*/
-}
-
-</style>
-<body>
-
-  <div id="chart1">
-  </div>
-
-<script src="../lib/d3.v2.js"></script>
-<script src="../nv.d3.js"></script>
-<script src="../src/tooltip.js"></script>
-<script src="../src/models/legend.js"></script>
-<script src="../src/models/axis.js"></script>
-<script src="../src/models/scatter.js"></script>
-<script src="../src/models/line.js"></script>
-<script src="../src/models/lineWithLegend.js"></script>
-<script>
-
-
-var selector = '#chart1',
-    chart = nv.models.lineWithLegend(),
-    data = sinAndCos(),
-    xTickFormat = d3.format(',r'),
-    yTickFormat = d3.format(',.2f'),
-    xAxisLabel = null,
-    yAxisLabel = 'Voltage (v)',
-    duration = 500;
-
-nv.addGraph({
-  generate: function() {
-    var container = d3.select(selector),
-        width = function() { return parseInt(container.style('width')) },
-        height = function() { return parseInt(container.style('height')) },
-        svg = container.append('svg').style('height', '500px');
-
-    chart
-        //.width(width)
-        //.height(height);
-
-    chart.xAxis
-        .tickFormat(xTickFormat);
-
-    chart.yAxis
-        .tickFormat(yTickFormat)
-        .axisLabel(yAxisLabel);
-
-    svg
-        //.attr('width', width())
-        //.attr('height', height())
-        .datum(data)
-      .transition().duration(duration).call(chart);
-
-    return chart;
-  },
-  callback: function(chart) {
-    var showTooltip = function(e) {
-      var offsetElement = document.getElementById(selector.substr(1)),
-          left = e.pos[0] + offsetElement.offsetLeft,
-          top = e.pos[1] + offsetElement.offsetTop,
-          formatY = chart.yAxis.tickFormat(), //Assumes using same format as axis, can customize to show higher precision, etc.
-          formatX = chart.xAxis.tickFormat();
-
-      // uses the chart's getX and getY, you may customize if x position is not the same as the value you want
-      //   ex. daily data without weekends, x is the index, while you want the date
-      var content = '<h3>' + e.series.key + '</h3>' +
-                    '<p>' +
-                    formatY(chart.y()(e.point)) + ' at ' + formatX(chart.x()(e.point)) +
-                    '</p>';
-
-      nv.tooltip.show([left, top], content);
-    };
-
-    chart.dispatch.on('tooltipShow', showTooltip);
-    chart.dispatch.on('tooltipHide', nv.tooltip.cleanup);
-
-
-    window.onresize= function() {
-      // now that width and height are functions, should be automatic..of course you can always override them
-      d3.select('#chart1 svg')
-          //.attr('width', chart.width()()) //need to set SVG dimensions, chart is not aware of the SVG component
-          //.attr('height', chart.height()())
-          .call(chart);
-    };
-  }
-});
-
-
-
-function sinAndCos() {
-  var sin = [],
-      cos = [];
-
-  for (var i = 0; i < 100; i++) {
-    sin.push({x: i, y: Math.sin(i/10)});
-    cos.push({x: i, y: .5 * Math.cos(i/10)});
-  }
-
-  return [
-    {
-      values: sin,
-      key: "Sine Wave",
-      color: "#ff7f0e"
-    },
-    {
-      values: cos,
-      key: "Cosine Wave",
-      color: "#2ca02c"
-    }
-  ];
-}
-
-
-</script>
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/lineWithLegend.js b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/lineWithLegend.js
deleted file mode 100755
index edd5aef2..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/lineWithLegend.js
+++ /dev/null
@@ -1,176 +0,0 @@
-
-nv.models.lineWithLegend = function() {
-  var margin = {top: 30, right: 20, bottom: 50, left: 60},
-      color = d3.scale.category20().range(),
-      width, height;
-
-  var lines = nv.models.line(),
-      //x = d3.scale.linear(),
-      //y = d3.scale.linear(),
-      x = lines.xScale(),
-      y = lines.yScale(),
-      xAxis = nv.models.axis().scale(x).orient('bottom'),
-      yAxis = nv.models.axis().scale(y).orient('left'),
-      legend = nv.models.legend().height(30),
-      dispatch = d3.dispatch('tooltipShow', 'tooltipHide');
-
-
-  function chart(selection) {
-    selection.each(function(data) {
-
-      var availableWidth = (width  || parseInt(d3.select(this).style('width')) || 960)
-                             - margin.left - margin.right,
-          availableHeight = (height || parseInt(d3.select(this).style('height')) || 400)
-                             - margin.top - margin.bottom;
-
-
-      lines
-        .width(availableWidth)
-        .height(availableHeight)
-        .color(data.map(function(d,i) {
-            return d.color || color[i % 10];
-          }).filter(function(d,i) { return !data[i].disabled }));
-
-
-      var wrap = d3.select(this).selectAll('g.wrap.lineWithLegend').data([data]);
-      var gEnter = wrap.enter().append('g').attr('class', 'wrap nvd3 lineWithLegend').append('g');
-
-      gEnter.append('g').attr('class', 'x axis');
-      gEnter.append('g').attr('class', 'y axis');
-      gEnter.append('g').attr('class', 'linesWrap');
-      gEnter.append('g').attr('class', 'legendWrap');
-
-
-
-      //TODO: margins should be adjusted based on what components are used: axes, axis labels, legend
-      margin.top = legend.height();
-
-      var g = wrap.select('g')
-          .attr('transform', 'translate(' + margin.left + ',' + margin.top + ')');
-
-
-
-      legend.width(availableWidth / 2);
-
-      g.select('.legendWrap')
-          .datum(data)
-          .attr('transform', 'translate(' + (availableWidth / 2) + ',' + (-margin.top) +')')
-          .call(legend);
-
-
-
-      var linesWrap = g.select('.linesWrap')
-          .datum(data.filter(function(d) { return !d.disabled }))
-
-      d3.transition(linesWrap).call(lines);
-
-
-
-      xAxis
-        .domain(x.domain())
-        .range(x.range())
-        .ticks( availableWidth / 100 )
-        .tickSize(-availableHeight, 0);
-
-      g.select('.x.axis')
-          .attr('transform', 'translate(0,' + y.range()[0] + ')');
-      d3.transition(g.select('.x.axis'))
-          .call(xAxis);
-
-
-      yAxis
-        .domain(y.domain())
-        .range(y.range())
-        .ticks( availableHeight / 36 )
-        .tickSize( -availableWidth, 0);
-
-      d3.transition(g.select('.y.axis'))
-          .call(yAxis);
-
-
-
-
-      legend.dispatch.on('legendClick', function(d,i) { 
-        d.disabled = !d.disabled;
-
-        if (!data.filter(function(d) { return !d.disabled }).length) {
-          data.map(function(d) {
-            d.disabled = false;
-            wrap.selectAll('.series').classed('disabled', false);
-            return d;
-          });
-        }
-
-        selection.transition().call(chart);
-      });
-
-/*
-      //
-      legend.dispatch.on('legendMouseover', function(d, i) {
-        d.hover = true;
-        selection.transition().call(chart)
-      });
-
-      legend.dispatch.on('legendMouseout', function(d, i) {
-        d.hover = false;
-        selection.transition().call(chart)
-      });
-*/
-
-      lines.dispatch.on('elementMouseover.tooltip', function(e) {
-        dispatch.tooltipShow({
-          point: e.point,
-          series: e.series,
-          pos: [e.pos[0] + margin.left, e.pos[1] + margin.top],
-          seriesIndex: e.seriesIndex,
-          pointIndex: e.pointIndex
-        });
-      });
-
-      lines.dispatch.on('elementMouseout.tooltip', function(e) {
-        dispatch.tooltipHide(e);
-      });
-
-    });
-
-
-    // If the legend changed the margin's height, need to recalc positions... should think of a better way to prevent duplicate work
-    if (margin.top != legend.height())
-      chart(selection);
- 
-
-    return chart;
-  }
-
-
-  chart.dispatch = dispatch;
-  chart.legend = legend;
-  chart.xAxis = xAxis;
-  chart.yAxis = yAxis;
-
-  d3.rebind(chart, lines, 'x', 'y', 'size', 'xDomain', 'yDomain', 'forceX', 'forceY', 'interactive', 'clipEdge', 'clipVoronoi', 'id');
-
-
-  chart.margin = function(_) {
-    if (!arguments.length) return margin;
-    margin = _;
-    return chart;
-  };
-
-  chart.width = function(_) {
-    if (!arguments.length) return width;
-    width = _;
-    //width = d3.functor(_);
-    return chart;
-  };
-
-  chart.height = function(_) {
-    if (!arguments.length) return height;
-    height = _;
-    //height = d3.functor(_);
-    return chart;
-  };
-
-
-  return chart;
-}
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/monthendAxis.html b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/monthendAxis.html
deleted file mode 100755
index fafd7020..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/monthendAxis.html
+++ /dev/null
@@ -1,99 +0,0 @@
-<!DOCTYPE html>
-<meta charset="utf-8">
-<link href="../src/nv.d3.css" rel="stylesheet" type="text/css">
-<style>
-
-</style>
-
-<body>
-
-
-  <script src="../lib/d3.v2.js"></script>
-  <script src="../nv.d3.js"></script>
-  <script>
-
-    function ilog(text) {
-      console.log(text);
-      return text;
-    }
-
-
-  function daysInMonth(month,year) {
-    var m = [31,28,31,30,31,30,31,31,30,31,30,31];
-    if (month != 2) return m[month - 1];
-    if (year%4 != 0) return m[1];
-    if (year%100 == 0 && year%400 != 0) return m[1];
-    return m[1] + 1;
-  }
-
-
-  function d3_time_range(floor, step, number) {
-    return function(t0, t1, dt) {
-      var time = floor(t0), times = [];
-      if (time < t0) step(time);
-      if (dt > 1) {
-        while (time < t1) {
-          var date = new Date(+time);
-          if (!(number(date) % dt)) times.push(date);
-          step(time);
-        }
-      } else {
-        while (time < t1) times.push(new Date(+time)), step(time);
-      }
-      return times;
-    };
-  }
-
-
-  d3.time.monthEnd = function(date) {
-    return new Date(date.getFullYear(), date.getMonth(), 0);
-  };
-
-
-  d3.time.monthEnds = d3_time_range(d3.time.monthEnd, function(date) {
-      date.setUTCDate(date.getUTCDate() + 1);
-      date.setDate(daysInMonth(date.getMonth() + 1, date.getFullYear()));
-    }, function(date) {
-      return date.getMonth();
-    }
-  );
-
-
-
-
-  var margin = {top: 10, right: 40, bottom: 40, left: 40},
-      width = 960 - margin.left - margin.right,
-      height = 80 - margin.top - margin.bottom;
-
-  var x = d3.time.scale()
-      .domain([new Date(2010, 0, 1), new Date(2011, 0, 1)])
-      .range([0, width]);
-
-  var xAxis = d3.svg.axis()
-      .scale(x)
-      .orient("bottom")
-      //.ticks(d3.time.months)
-      .ticks(d3.time.monthEnds)
-      //.tickSubdivide(3)
-      .tickSize(8, 4, 0)
-      .tickFormat(d3.time.format("%x"));
-      //.tickFormat(d3.time.format("%B"));
-
-  var svg = d3.select("body").append("svg")
-      .attr("width", width + margin.left + margin.right)
-      .attr("height", height + margin.top + margin.bottom)
-    .append("g")
-      .attr("transform", "translate(" + margin.left + "," + margin.top + ")");
-
-  svg.append("g")
-      .attr("class", "x axis")
-      .attr("transform", "translate(0," + height + ")")
-      .call(xAxis)
-
-    .selectAll("text")
-      .attr("text-anchor", "middle")
-      //.attr("text-anchor", "start")
-      .attr("x", 0)
-      .attr("y", 12);
-
-  </script>
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/multiBarHorizontalWithLegend.html b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/multiBarHorizontalWithLegend.html
deleted file mode 100755
index 297244ef..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/multiBarHorizontalWithLegend.html
+++ /dev/null
@@ -1,258 +0,0 @@
-<!DOCTYPE html>
-<meta charset="utf-8">
-
-<link href="../src/d3.css" rel="stylesheet" type="text/css">
-
-<style>
-
-body {
-  overflow-y:scroll;
-}
-
-text {
-  font: 12px sans-serif;
-}
-
-#chart1 {
-  height: 500px;
-  margin: 10px;
-  min-width: 100px;
-  min-height: 100px;
-/*
-  Minimum height and width is a good idea to prevent negative SVG dimensions...
-  For example width should be =< margin.left + margin.right + 1,
-  of course 1 pixel for the entire chart would not be very useful, BUT should not have errors
-*/
-}
-
-</style>
-<body>
-
-  <div id="chart1">
-  </div>
-
-<script src="../lib/d3.v2.js"></script>
-<script src="../nv.d3.js"></script>
-<script src="../src/tooltip.js"></script>
-<script src="../src/models/legend.js"></script>
-<script src="../src/models/axis.js"></script>
-<script src="../src/models/multiBarHorizontal.js"></script>
-<script src="../src/models/multiBarHorizontalWithLegend.js"></script>
-<script src="stream_layers.js"></script>
-<script>
-
-var test_data = stream_layers(3,12,.1).map(function(data, i) {
-  return {
-    key: 'Stream' + i,
-    values: data
-  };
-});
-
-
-
-long_short_data = [ 
-  {
-    key: 'Short',
-    color: '#d62728',
-    values: [
-      { 
-        "label" : "Information Technology" ,
-        "y" : -1.8746444827653
-      } , 
-      { 
-        "label" : "Consumer Discretionary" ,
-        "y" : -8.0961543492239
-      } , 
-      { 
-        "label" : "Health Care" ,
-        "y" : -0.57072943117674
-      } , 
-      { 
-        "label" : "Consumer Staples" ,
-        "y" : -2.4174010336624
-      } , 
-      {
-        "label" : "Financials" ,
-        "y" : -0.72009071426284
-      } , 
-      { 
-        "label" : "Industrials" ,
-        "y" : -0.77154485523777
-      } , 
-      { 
-        "label" : "Energy" ,
-        "y" : -0.90152097798131
-      } , 
-      {
-        "label" : "Materials" , 
-        "y" : -0.91445417330854
-      } , 
-      { 
-        "label" : "Telecommunication Services" , 
-        "y" : -0.055746319141851
-      }
-    ]
-  },
-  {
-    key: 'Long',
-    color: '#1f77b4',
-    values: [
-      { 
-        "label" : "Information Technology" ,
-        "y" : 25.307646510375
-      } , 
-      { 
-        "label" : "Consumer Discretionary" ,
-        "y" : 16.756779544553
-      } , 
-      { 
-        "label" : "Health Care" ,
-        "y" : 18.451534877007
-      } , 
-      { 
-        "label" : "Consumer Staples" ,
-        "y" : 8.6142352811805
-      } , 
-      {
-        "label" : "Financials" ,
-        "y" : 7.8082472075876
-      } , 
-      { 
-        "label" : "Industrials" ,
-        "y" : 5.259101026956
-      } , 
-      { 
-        "label" : "Energy" ,
-        "y" : 0.30947953487127
-      } , 
-      { 
-        "label" : "Materials" ,
-        "y" : 0
-      } , 
-      { 
-        "label" : "Telecommunication Services" ,
-        "y" : 0 
-      }
-    ]
-  }
-];
-
-
-
-  var selector = '#chart1',
-  chart = nv.models.multiBarHorizontalWithLegend()
-            .x(function(d) { return d.label })
-            .margin({top: 30, right: 20, bottom: 50, left: 160})
-            .showControls(false),
-      data = long_short_data,
-      //data = test_data,
-      xTickFormat = function(d) { return d },
-      //xTickFormat = d3.format(',r'),
-      yTickFormat = d3.format(',.2f'),
-      xAxisLabel = null,
-      yAxisLabel = null,
-    duration = 500;
-
-nv.addGraph({
-  generate: function() {
-    var container = d3.select(selector),
-        width = function() { return parseInt(container.style('width')) },
-        height = function() { return parseInt(container.style('height')) },
-        svg = container.append('svg');
-
-    chart
-        .width(width)
-        .height(height);
-
-    chart.xAxis
-        .tickFormat(xTickFormat);
-
-    chart.yAxis
-        .tickFormat(yTickFormat)
-        .axisLabel(yAxisLabel);
-
-    svg
-        .attr('width', width())
-        .attr('height', height())
-        .datum(data)
-      .transition().duration(duration).call(chart);
-
-    return chart;
-  },
-  callback: function(chart) {
-    var showTooltip = function showTooltip(e) {
-      var offsetElement = document.getElementById(selector.substr(1)),
-          left = e.pos[0] + offsetElement.offsetLeft,
-          top = e.pos[1] + offsetElement.offsetTop,
-          formatY = chart.yAxis.tickFormat(), //Assumes using same format as axis, can customize to show higher precision, etc.
-          formatX = chart.xAxis.tickFormat();
-
-      // uses the chart's getX and getY, you may customize if x position is not the same as the value you want
-      //   ex. daily data without weekends, x is the index, while you want the date
-      var content = '<h3>' + e.series.key + '</h3>' +
-                    '<p>' +
-                    formatX(chart.x()(e.point)) + ': ' + formatY(chart.y()(e.point)) +
-                    //formatY(chart.y()(e.point)) + ' at ' + formatX(chart.x()(e.point)) +
-                    '</p>';
-
-      var tooltip = nv.tooltip.show([left, top], content, e.value < 0 ? 'e' : 'w');
-
-      /*
-      if (!arguments[1]) {
-        tooltip.onmouseenter = function() { showTooltip(e, 1) }; //working on geting tooltips to stay if mouse hovers over them
-        //tooltip.onmouseout = function() { console.log('mouseout'); };
-        tooltip.onmouseout = nv.tooltip.cleanup;
-      }
-      */
-    };
-
-    chart.dispatch.on('tooltipShow', showTooltip);
-    chart.dispatch.on('tooltipHide', nv.tooltip.cleanup);
-
-
-    window.onresize= function() {
-      // now that width and height are functions, should be automatic..of course you can always override them
-
-      d3.select('#chart1 svg')
-          .attr('width', chart.width()()) //need to set SVG dimensions, chart is not aware of the SVG component
-          .attr('height', chart.height()())
-        .transition().duration(duration)
-          .call(chart);
-
-/*
-      d3.select('#chart1 svg')
-          .attr('width', chart.width()()) //need to set SVG dimensions, chart is not aware of the SVG component
-          .attr('height', chart.height()())
-          .call(chart);
-*/
-    };
-  }
-});
-
-
-
-function sinAndCos() {
-  var sin = [],
-      cos = [];
-
-  for (var i = 0; i < 100; i++) {
-    sin.push({x: i, y: Math.sin(i/10)});
-    cos.push({x: i, y: .5 * Math.cos(i/10)});
-  }
-
-  return [
-    {
-      values: sin,
-      key: "Sine Wave",
-      color: "#ff7f0e"
-    },
-    {
-      values: cos,
-      key: "Cosine Wave",
-      color: "#2ca02c"
-    }
-  ];
-}
-
-
-</script>
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/multiBarHorizontalWithLegend.js b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/multiBarHorizontalWithLegend.js
deleted file mode 100755
index ab2087be..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/multiBarHorizontalWithLegend.js
+++ /dev/null
@@ -1,226 +0,0 @@
-
-nv.models.multiBarHorizontalWithLegend = function() {
-  var margin = {top: 30, right: 20, bottom: 50, left: 60},
-      width = function() { return 960 },
-      height = function() { return 500 },
-      color = d3.scale.category20().range(),
-      showControls = true;
-
-  //var x = d3.scale.linear(),
-  var x = d3.scale.ordinal(),
-      y = d3.scale.linear(),
-      xAxis = nv.models.axis().scale(x).orient('left').highlightZero(false),
-      yAxis = nv.models.axis().scale(y).orient('bottom'),
-      legend = nv.models.legend().height(30),
-      controls = nv.models.legend().height(30),
-      multibar = nv.models.multiBarHorizontal().stacked(false),
-      dispatch = d3.dispatch('tooltipShow', 'tooltipHide');
-
-  //TODO: let user select default
-  var controlsData = [
-    { key: 'Grouped' },
-    { key: 'Stacked', disabled: true },
-  ];
-
-  function chart(selection) {
-    selection.each(function(data) {
-      var availableWidth = width() - margin.left - margin.right,
-          availableHeight = height() - margin.top - margin.bottom,
-          seriesData;
-
-      if (multibar.stacked()) {
-        seriesData = data.filter(function(d) { return !d.disabled })
-          .reduce(function(prev, curr, index) {  //sum up all the y's
-              curr.values.forEach(function(d,i) {
-                if (!index) prev[i] = {x: multibar.x()(d,i), y:0};
-                prev[i].y += multibar.y()(d,i);
-              });
-              return prev;
-            }, []);
-      } else {
-        seriesData = data.filter(function(d) { return !d.disabled })
-          .map(function(d) { 
-            return d.values.map(function(d,i) {
-              return { x: multibar.x()(d,i), y: multibar.y()(d,i) }
-            })
-          });
-      }
-
-
-      x   .domain(d3.merge(seriesData).map(function(d) { return d.x }))
-          .rangeBands([0, availableHeight], .1);
-
-      y   .domain(d3.extent(d3.merge(seriesData).map(function(d) { return d.y }).concat(multibar.forceY) ))
-          .range([0, availableWidth]);
-
-      multibar
-        .width(availableWidth)
-        .height(availableHeight)
-        .color(data.map(function(d,i) {
-          return d.color || color[i % 10];
-        }).filter(function(d,i) { return !data[i].disabled }))
-
-
-
-      var wrap = d3.select(this).selectAll('g.wrap').data([data]);
-      var gEnter = wrap.enter().append('g').attr('class', 'wrap nvd3 multiBarHorizontalWithLegend').append('g');
-
-      gEnter.append('g').attr('class', 'x axis');
-      gEnter.append('g').attr('class', 'y axis');
-      gEnter.append('g').attr('class', 'linesWrap');
-      gEnter.append('g').attr('class', 'legendWrap');
-      gEnter.append('g').attr('class', 'controlsWrap');
-
-
-
-      //TODO: margins should be adjusted based on what components are used: axes, axis labels, legend
-      margin.top = legend.height();
-
-      var g = wrap.select('g')
-          .attr('transform', 'translate(' + margin.left + ',' + margin.top + ')');
-
-
-      legend.width(availableWidth / 2);
-
-      g.select('.legendWrap')
-          .datum(data)
-          .attr('transform', 'translate(' + (availableWidth / 2) + ',' + (-margin.top) +')')
-          .call(legend);
-
-      if (showControls) {
-        controls.width(180).color(['#444', '#444', '#444']);
-        g.select('.controlsWrap')
-            .datum(controlsData)
-            .attr('transform', 'translate(0,' + (-margin.top) +')')
-            .call(controls);
-      }
-
-
-      var linesWrap = g.select('.linesWrap')
-          .datum(data.filter(function(d) { return !d.disabled }))
-
-
-      d3.transition(linesWrap).call(multibar);
-
-
-      xAxis
-        .scale(x)
-        .ticks( availableHeight / 24 )
-        .tickSize(-availableWidth, 0);
-
-      //g.select('.x.axis')
-          //.attr('transform', 'translate(0,' + y.range()[0] + ')');
-      d3.transition(g.select('.x.axis'))
-          .call(xAxis);
-
-      var xTicks = g.select('.x.axis').selectAll('g');
-
-      xTicks
-          .selectAll('line, text')
-          .style('opacity', 1)
-
-      xTicks.filter(function(d,i) {
-            return i % Math.ceil(data[0].values.length / (availableWidth / 100)) !== 0;
-          })
-          .selectAll('line, text')
-          .style('opacity', 0)
-
-      yAxis
-        .domain(y.domain())
-        .range(y.range())
-        .ticks( availableWidth / 100 )
-        .tickSize( -availableHeight, 0);
-
-      g.select('.y.axis')
-          .attr('transform', 'translate(0,' + availableHeight + ')');
-      d3.transition(g.select('.y.axis'))
-          .call(yAxis);
-
-
-
-
-      legend.dispatch.on('legendClick', function(d,i) {
-        d.disabled = !d.disabled;
-
-        if (!data.filter(function(d) { return !d.disabled }).length) {
-          data.map(function(d) {
-            d.disabled = false;
-            wrap.selectAll('.series').classed('disabled', false);
-            return d;
-          });
-        }
-
-        selection.transition().call(chart);
-      });
-
-      controls.dispatch.on('legendClick', function(d,i) { 
-        if (!d.disabled) return;
-        controlsData = controlsData.map(function(s) {
-          s.disabled = true;
-          return s;
-        });
-        d.disabled = false;
-
-        switch (d.key) {
-          case 'Grouped':
-            multibar.stacked(false);
-            break;
-          case 'Stacked':
-            multibar.stacked(true);
-            break;
-        }
-
-        selection.transition().call(chart);
-      });
-
-
-      multibar.dispatch.on('elementMouseover.tooltip', function(e) {
-        e.pos = [e.pos[0] +  margin.left, e.pos[1] + margin.top];
-        dispatch.tooltipShow(e);
-      });
-
-      multibar.dispatch.on('elementMouseout.tooltip', function(e) {
-        dispatch.tooltipHide(e);
-      });
-
-    });
-
-    return chart;
-  }
-
-
-  chart.dispatch = dispatch;
-  chart.legend = legend;
-  chart.xAxis = xAxis;
-  chart.yAxis = yAxis;
-
-  d3.rebind(chart, multibar, 'x', 'y', 'xDomain', 'yDomain', 'forceX', 'forceY', 'clipEdge', 'id');
-
-
-  chart.margin = function(_) {
-    if (!arguments.length) return margin;
-    margin = _;
-    return chart;
-  };
-
-  chart.width = function(_) {
-    if (!arguments.length) return width;
-    width = d3.functor(_);
-    return chart;
-  };
-
-  chart.height = function(_) {
-    if (!arguments.length) return height;
-    height = d3.functor(_);
-    return chart;
-  };
-
-  chart.showControls = function(_) {
-    if (!arguments.length) return showControls;
-    showControls = _;
-    return chart;
-  };
-
-
-  return chart;
-}
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/multiBarWithLegend.html b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/multiBarWithLegend.html
deleted file mode 100755
index 2942b9fb..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/multiBarWithLegend.html
+++ /dev/null
@@ -1,162 +0,0 @@
-<!DOCTYPE html>
-<meta charset="utf-8">
-
-<link href="../src/d3.css" rel="stylesheet" type="text/css">
-
-<style>
-
-body {
-  overflow-y:scroll;
-}
-
-text {
-  font: 12px sans-serif;
-}
-
-#chart1 {
-  height: 500px;
-  margin: 10px;
-  min-width: 100px;
-  min-height: 100px;
-/*
-  Minimum height and width is a good idea to prevent negative SVG dimensions...
-  For example width should be =< margin.left + margin.right + 1,
-  of course 1 pixel for the entire chart would not be very useful, BUT should not have errors
-*/
-}
-
-</style>
-<body>
-
-  <div id="chart1">
-  </div>
-
-<script src="../lib/d3.v2.js"></script>
-<script src="../nv.d3.js"></script>
-<script src="../src/tooltip.js"></script>
-<script src="../src/models/legend.js"></script>
-<script src="../src/models/axis.js"></script>
-<script src="../src/models/multiBar.js"></script>
-<script src="../src/models/multiBarWithLegend.js"></script>
-<script src="stream_layers.js"></script>
-<script>
-
-var test_data = stream_layers(3,Math.random()*200,.1).map(function(data, i) {
-  return {
-    key: 'Stream' + i,
-    values: data
-  };
-});
-
-
-
-
-
-
-
-
-var selector = '#chart1',
-    chart = nv.models.multiBarWithLegend(),
-              //.x(function(d) { return d.label })
-              //.y(function(d) { return d.value })
-    data = test_data,
-    xTickFormat = d3.format(',f'),
-    yTickFormat = d3.format(',.2f'),
-    xAxisLabel = null,
-    yAxisLabel = null,
-    duration = 500;
-
-nv.addGraph({
-  generate: function() {
-    var container = d3.select(selector),
-        width = function() { return parseInt(container.style('width')) },
-        height = function() { return parseInt(container.style('height')) },
-        svg = container.append('svg');
-
-    chart
-        .width(width)
-        .height(height);
-
-    chart.xAxis
-        .tickFormat(xTickFormat);
-
-    chart.yAxis
-        .tickFormat(yTickFormat)
-        .axisLabel(yAxisLabel);
-
-    svg
-        .attr('width', width())
-        .attr('height', height())
-        .datum(data)
-      .transition().duration(duration).call(chart);
-
-    return chart;
-  },
-  callback: function(chart) {
-    var showTooltip = function(e) {
-      var offsetElement = document.getElementById(selector.substr(1)),
-          left = e.pos[0] + offsetElement.offsetLeft,
-          top = e.pos[1] + offsetElement.offsetTop,
-          formatY = chart.yAxis.tickFormat(), //Assumes using same format as axis, can customize to show higher precision, etc.
-          formatX = chart.xAxis.tickFormat();
-
-      // uses the chart's getX and getY, you may customize if x position is not the same as the value you want
-      //   ex. daily data without weekends, x is the index, while you want the date
-      var content = '<h3>' + e.series.key + '</h3>' +
-                    '<p>' +
-                    formatY(chart.y()(e.point)) + ' at ' + formatX(chart.x()(e.point)) +
-                    '</p>';
-
-      nv.tooltip.show([left, top], content, e.value < 0 ? 'n' : 's');
-    };
-
-    chart.dispatch.on('tooltipShow', showTooltip);
-    chart.dispatch.on('tooltipHide', nv.tooltip.cleanup);
-
-
-    window.onresize= function() {
-      // now that width and height are functions, should be automatic..of course you can always override them
-
-      d3.select('#chart1 svg')
-          .attr('width', chart.width()()) //need to set SVG dimensions, chart is not aware of the SVG component
-          .attr('height', chart.height()())
-        .transition().duration(duration)
-          .call(chart);
-
-/*
-      d3.select('#chart1 svg')
-          .attr('width', chart.width()()) //need to set SVG dimensions, chart is not aware of the SVG component
-          .attr('height', chart.height()())
-          .call(chart);
-*/
-    };
-  }
-});
-
-
-
-function sinAndCos() {
-  var sin = [],
-      cos = [];
-
-  for (var i = 0; i < 100; i++) {
-    sin.push({x: i, y: Math.sin(i/10)});
-    cos.push({x: i, y: .5 * Math.cos(i/10)});
-  }
-
-  return [
-    {
-      values: sin,
-      key: "Sine Wave",
-      color: "#ff7f0e"
-    },
-    {
-      values: cos,
-      key: "Cosine Wave",
-      color: "#2ca02c"
-    }
-  ];
-}
-
-
-</script>
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/multiBarWithLegend.js b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/multiBarWithLegend.js
deleted file mode 100755
index 2d3d4067..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/multiBarWithLegend.js
+++ /dev/null
@@ -1,249 +0,0 @@
-
-nv.models.multiBarWithLegend = function() {
-  var margin = {top: 30, right: 20, bottom: 50, left: 60},
-      width = function() { return 960 },
-      height = function() { return 500 },
-      color = d3.scale.category20().range(),
-      showControls = true,
-      showLegend = true;
-
-  //var x = d3.scale.linear(),
-  var x = d3.scale.ordinal(),
-      y = d3.scale.linear(),
-      xAxis = nv.models.axis().scale(x).orient('bottom').highlightZero(false),
-      yAxis = nv.models.axis().scale(y).orient('left'),
-      legend = nv.models.legend().height(30),
-      controls = nv.models.legend().height(30),
-      multibar = nv.models.multiBar().stacked(false),
-      dispatch = d3.dispatch('tooltipShow', 'tooltipHide');
-
-  //TODO: let user select default
-  var controlsData = [
-    { key: 'Grouped' },
-    { key: 'Stacked', disabled: true }
-  ];
-
-  function chart(selection) {
-    selection.each(function(data) {
-      var availableWidth = width() - margin.left - margin.right,
-          availableHeight = height() - margin.top - margin.bottom,
-          seriesData;
-
-      if (multibar.stacked()) {
-        seriesData = data.filter(function(d) { return !d.disabled })
-          .reduce(function(prev, curr, index) {  //sum up all the y's
-              curr.values.forEach(function(d,i) {
-                if (!index) prev[i] = {x: multibar.x()(d,i), y:0};
-                prev[i].y += multibar.y()(d,i);
-              });
-              return prev;
-            }, []);
-      } else {
-        seriesData = data.filter(function(d) { return !d.disabled })
-          .map(function(d) { 
-            return d.values.map(function(d,i) {
-              return { x: multibar.x()(d,i), y: multibar.y()(d,i) }
-            })
-          });
-      }
-
-
-      //x   .domain(d3.extent(d3.merge(seriesData).map(function(d) { return d.x }).concat(multibar.forceX) ))
-          //.range([0, availableWidth]);
-
-      x   .domain(d3.merge(seriesData).map(function(d) { return d.x }))
-          .rangeBands([0, availableWidth], .1);
-          //.rangeRoundBands([0, availableWidth], .1);
-
-      y   .domain(d3.extent(d3.merge(seriesData).map(function(d) { return d.y }).concat(multibar.forceY) ))
-          .range([availableHeight, 0]);
-
-      multibar
-        .width(availableWidth)
-        .height(availableHeight)
-        //.xDomain(x.domain())
-        //.yDomain(y.domain())
-        .color(data.map(function(d,i) {
-          return d.color || color[i % 20];
-        }).filter(function(d,i) { return !data[i].disabled }))
-
-
-
-      var wrap = d3.select(this).selectAll('g.wrap.multiBarWithLegend').data([data]);
-      var gEnter = wrap.enter().append('g').attr('class', 'wrap nvd3 multiBarWithLegend').append('g');
-
-      gEnter.append('g').attr('class', 'x axis');
-      gEnter.append('g').attr('class', 'y axis');
-      gEnter.append('g').attr('class', 'linesWrap');
-      gEnter.append('g').attr('class', 'legendWrap');
-      gEnter.append('g').attr('class', 'controlsWrap');
-
-
-
-      var g = wrap.select('g');
-
-
-      if (showLegend) {
-        //TODO: margins should be adjusted based on what components are used: axes, axis labels, legend
-        margin.top = legend.height();
-
-        legend.width(availableWidth / 2);
-
-        g.select('.legendWrap')
-            .datum(data)
-            .attr('transform', 'translate(' + (availableWidth / 2) + ',' + (-margin.top) +')')
-            .call(legend);
-      }
-
-      if (showControls) {
-        controls.width(180).color(['#444', '#444', '#444']);
-        g.select('.controlsWrap')
-            .datum(controlsData)
-            .attr('transform', 'translate(0,' + (-margin.top) +')')
-            .call(controls);
-      }
-
-
-      g.attr('transform', 'translate(' + margin.left + ',' + margin.top + ')');
-
-      var linesWrap = g.select('.linesWrap')
-          .datum(data.filter(function(d) { return !d.disabled }))
-
-
-      d3.transition(linesWrap).call(multibar);
-
-
-      xAxis
-        .scale(x)
-        //.domain(x.domain())
-        //.range(x.range())
-        .ticks( availableWidth / 100 )
-        .tickSize(-availableHeight, 0);
-
-      g.select('.x.axis')
-          .attr('transform', 'translate(0,' + y.range()[0] + ')');
-      d3.transition(g.select('.x.axis'))
-          .call(xAxis);
-
-      var xTicks = g.select('.x.axis').selectAll('g');
-
-      xTicks
-          .selectAll('line, text')
-          .style('opacity', 1)
-
-      xTicks.filter(function(d,i) {
-            return i % Math.ceil(data[0].values.length / (availableWidth / 100)) !== 0;
-          })
-          .selectAll('line, text')
-          .style('opacity', 0)
-
-      yAxis
-        .domain(y.domain())
-        .range(y.range())
-        .ticks( availableHeight / 36 )
-        .tickSize( -availableWidth, 0);
-
-      d3.transition(g.select('.y.axis'))
-          .call(yAxis);
-
-
-
-
-      legend.dispatch.on('legendClick', function(d,i) {
-        d.disabled = !d.disabled;
-
-        if (!data.filter(function(d) { return !d.disabled }).length) {
-          data.map(function(d) {
-            d.disabled = false;
-            wrap.selectAll('.series').classed('disabled', false);
-            return d;
-          });
-        }
-
-        selection.transition().call(chart);
-      });
-
-      controls.dispatch.on('legendClick', function(d,i) { 
-        if (!d.disabled) return;
-        controlsData = controlsData.map(function(s) {
-          s.disabled = true;
-          return s;
-        });
-        d.disabled = false;
-
-        switch (d.key) {
-          case 'Grouped':
-            multibar.stacked(false);
-            break;
-          case 'Stacked':
-            multibar.stacked(true);
-            break;
-        }
-
-        selection.transition().call(chart);
-      });
-
-
-      multibar.dispatch.on('elementMouseover.tooltip', function(e) {
-        e.pos = [e.pos[0] +  margin.left, e.pos[1] + margin.top];
-        dispatch.tooltipShow(e);
-      });
-
-      multibar.dispatch.on('elementMouseout.tooltip', function(e) {
-        dispatch.tooltipHide(e);
-      });
-
-    });
-
-    return chart;
-  }
-
-
-  chart.dispatch = dispatch;
-  chart.legend = legend;
-  chart.xAxis = xAxis;
-  chart.yAxis = yAxis;
-
-  d3.rebind(chart, multibar, 'x', 'y', 'xDomain', 'yDomain', 'forceX', 'forceY', 'clipEdge', 'id', 'stacked');
-
-
-  chart.margin = function(_) {
-    if (!arguments.length) return margin;
-    margin = _;
-    return chart;
-  };
-
-  chart.width = function(_) {
-    if (!arguments.length) return width;
-    width = d3.functor(_);
-    return chart;
-  };
-
-  chart.height = function(_) {
-    if (!arguments.length) return height;
-    height = d3.functor(_);
-    return chart;
-  };
-
-  chart.color = function(_) {
-    if (!arguments.length) return color;
-    color = _;
-    legend.color(_);
-    return chart;
-  };
-
-  chart.showControls = function(_) {
-    if (!arguments.length) return showControls;
-    showControls = _;
-    return chart;
-  };
-
-  chart.showLegend = function(_) {
-    if (!arguments.length) return showLegend;
-    showLegend = _;
-    return chart;
-  };
-
-
-  return chart;
-}
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/pie.js b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/pie.js
deleted file mode 100755
index 7c2f785a..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/pie.js
+++ /dev/null
@@ -1,263 +0,0 @@
-
-nv.models.pie = function() {
-  var margin = {top: 20, right: 20, bottom: 20, left: 20},
-      width = 500,
-      height = 500,
-      animate = 2000,
-      radius = Math.min(width-(margin.right+margin.left), height-(margin.top+margin.bottom)) / 2,
-      label ='label',
-      field ='y',
-      id = Math.floor(Math.random() * 10000), //Create semi-unique ID in case user doesn't select one
-      color = d3.scale.category20(),
-      showLabels = true,
-      donut = false,
-      title = '';
-
-      var lastWidth = 0,
-      lastHeight = 0;
-
-
-  var  dispatch = d3.dispatch('chartClick', 'elementClick', 'elementDblClick', 'tooltipShow', 'tooltipHide');
-
-  function chart(selection) {
-    selection.each(function(data) {
-
-      var svg = d3.select(this)
-          .on("click", function(d,i) {
-              dispatch.chartClick({
-                  data: d,
-                  index: i,
-                  pos: d3.event,
-                  id: id
-              });
-          });
-
-
-
-        var background = svg.selectAll('svg.margin').data([data]);
-        var parent = background.enter();
-        parent.append("text")
-            .attr("class", "title")
-            .attr("dy", ".91em")
-            .attr("text-anchor", "start")
-            .text(title);
-        parent.append('svg')
-            .attr('class','margin')
-            .attr('x', margin.left)
-            .attr('y', margin.top)
-            .style('overflow','visible');
-
-        var wrap = background.selectAll('g.wrap').data([data]);
-        wrap.exit().remove();
-        var wEnter = wrap.enter();
-
-        wEnter
-          .append('g')
-            .attr('class', 'wrap')
-            .attr('id','wrap-'+id)
-          .append('g')
-            .attr('class', 'pie');
-
-
-
-        wrap
-            .attr('width', width) //-(margin.left+margin.right))
-            .attr('height', height) //-(margin.top+margin.bottom))
-            .attr("transform", "translate(" + radius + "," + radius + ")");
-
-
-
-
-        var arc = d3.svg.arc()
-          .outerRadius((radius-(radius / 5)));
-
-        if (donut) arc.innerRadius(radius / 2);
-
-
-      // Setup the Pie chart and choose the data element
-      var pie = d3.layout.pie()
-         .value(function (d) { return d[field]; });
-
-      var slices = background.select('.pie').selectAll(".slice")
-            .data(pie);
-
-          slices.exit().remove();
-
-        var ae = slices.enter().append("svg:g")
-              .attr("class", "slice")
-              .on('mouseover', function(d,i){
-                        d3.select(this).classed('hover', true);
-                        dispatch.tooltipShow({
-                            label: d.data[label],
-                            value: d.data[field],
-                            data: d.data,
-                            index: i,
-                            pos: [d3.event.pageX, d3.event.pageY],
-                            id: id
-                        });
-
-              })
-              .on('mouseout', function(d,i){
-                        d3.select(this).classed('hover', false);
-                        dispatch.tooltipHide({
-                            label: d.data[label],
-                            value: d.data[field],
-                            data: d.data,
-                            index: i,
-                            id: id
-                        });
-              })
-              .on('click', function(d,i) {
-                    dispatch.elementClick({
-                        label: d.data[label],
-                        value: d.data[field],
-                        data: d.data,
-                        index: i,
-                        pos: d3.event,
-                        id: id
-                    });
-                    d3.event.stopPropagation();
-              })
-              .on('dblclick', function(d,i) {
-                dispatch.elementDblClick({
-                    label: d.data[label],
-                    value: d.data[field],
-                    data: d.data,
-                    index: i,
-                    pos: d3.event,
-                    id: id
-                });
-                 d3.event.stopPropagation();
-              });
-
-        var paths = ae.append("svg:path")
-            .attr('class','path')
-            .attr("fill", function(d, i) { return color(i); });
-            //.attr('d', arc);
-
-        slices.select('.path')
-            .attr('d', arc)
-            .transition()
-            .ease("bounce")
-            .duration(animate)
-            .attrTween("d", tweenPie);
-
-        if (showLabels) {
-            // This does the normal label
-            ae.append("text");
-
-            slices.select("text")
-              .transition()
-              .duration(animate)
-              .ease('bounce')
-              .attr("transform", function(d) {
-                 d.outerRadius = radius + 10; // Set Outer Coordinate
-                 d.innerRadius = radius + 15; // Set Inner Coordinate
-                 return "translate(" + arc.centroid(d) + ")";
-              })
-              .attr("text-anchor", "middle") //center the text on it's origin
-              .style("font", "bold 12px Arial")
-              .text(function(d, i) {  return d.data[label]; });
-        }
-
-
-        // Computes the angle of an arc, converting from radians to degrees.
-        function angle(d) {
-            var a = (d.startAngle + d.endAngle) * 90 / Math.PI - 90;
-            return a > 90 ? a - 180 : a;
-        }
-
-
-
-
-
-        function tweenPie(b) {
-            b.innerRadius = 0;
-            var i = d3.interpolate({startAngle: 0, endAngle: 0}, b);
-            return function(t) {
-                return arc(i(t));
-            };
-        }
-
-
-    });
-
-    return chart;
-  }
-
-  chart.margin = function(_) {
-    if (!arguments.length) return margin;
-    margin = _;
-    return chart;
-  };
-
-  chart.width = function(_) {
-    if (!arguments.length) return width;
-    if (margin.left + margin.right + 20 > _) {
-      width = margin.left + margin.right + 20; // Min width
-    } else {
-      width = _;
-    }
-    radius = Math.min(width-(margin.left+margin.right), height-(margin.top+margin.bottom)) / 2;
-    return chart;
-  };
-
-  chart.height = function(_) {
-    if (!arguments.length) return height;
-    if (margin.top + margin.bottom + 20 > _) {
-      height = margin.top + margin.bottom + 20; // Min height
-    } else {
-      height = _;
-    }
-    radius = Math.min(width-(margin.left+margin.right), height-(margin.top+margin.bottom)) / 2;
-    return chart;
-  };
-
-  chart.animate = function(_) {
-    if (!arguments.length) return animate;
-    animate = _;
-    return chart;
-  };
-
-  chart.labelField = function(_) {
-    if (!arguments.length) return (label);
-      label = _;
-      return chart;
-  };
-
-  chart.dataField = function(_) {
-    if (!arguments.length) return (field);
-    field = _;
-    return chart;
-  };
-
-  chart.showLabels = function(_) {
-      if (!arguments.length) return (showLabels);
-      showLabels = _;
-      return chart;
-  };
-
-  chart.donut = function(_) {
-        if (!arguments.length) return (donut);
-        donut = _;
-        return chart;
-  };
-
-  chart.title = function(_) {
-        if (!arguments.length) return (title);
-        title = _;
-        return chart;
-  };
-
-  chart.id = function(_) {
-        if (!arguments.length) return id;
-        id = _;
-        return chart;
-  };
-
-  chart.dispatch = dispatch;
-
-
-
-    return chart;
-}
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/scatterChart.html b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/scatterChart.html
deleted file mode 100755
index 7bb78ae5..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/scatterChart.html
+++ /dev/null
@@ -1,110 +0,0 @@
-<!DOCTYPE html>
-<meta charset="utf-8">
-
-<link href="../src/d3.css" rel="stylesheet" type="text/css">
-
-<style>
-
-body {
-  overflow-y:scroll;
-  margin: 0;
-  padding: 0;
-}
-
-svg {
-  overflow: hidden;
-}
-
-div {
-  border: 0;
-  margin: 0;
-}
-
-/*
-#offsetDiv {
-  margin-left: 100px;
-  margin-top: 100px;
-}
-*/
-
-#test1 {
-  margin: 0;
-  height: 500px;
-}
-
-#test1 svg {
-  height: 500px;
-}
-
-</style>
-
-<body>
-
-<div id="offsetDiv">
-  <div id="test1" class="chartWrap">
-    <svg></svg>
-  </div>
-</div>
-
-<script src="../lib/d3.v2.js"></script>
-<script src="../lib/fisheye.js"></script>
-<script src="../nv.d3.js"></script>
-<script src="../src/tooltip.js"></script>
-<script src="../src/models/legend.js"></script>
-<script src="../src/models/axis.js"></script>
-<script src="../src/models/distribution.js"></script>
-<script src="../src/models/scatter.js"></script>
-<script src="../src/models/scatterChart.js"></script>
-<script>
-
-
-
-//Format A
-nv.addGraph(function() {
-  var chart = nv.models.scatterChart()
-                .showDistX(true)
-                .showDistY(true)
-                //.height(500)
-                .color(d3.scale.category10().range());
-
-  chart.xAxis.tickFormat(d3.format('.02f'))
-  chart.yAxis.tickFormat(d3.format('.02f'))
-
-  d3.select('#test1 svg')
-      .datum(randomData(4,40))
-    .transition().duration(500)
-      .call(chart);
-
-  nv.utils.windowResize(chart.update);
-
-  return chart;
-});
-
-
-function randomData(groups, points) { //# groups,# points per group
-  var data = [],
-      shapes = ['circle', 'cross', 'triangle-up', 'triangle-down', 'diamond', 'square'],
-      random = d3.random.normal();
-
-  for (i = 0; i < groups; i++) {
-    data.push({
-      key: 'Group ' + i,
-      values: []
-    });
-
-    for (j = 0; j < points; j++) {
-      data[i].values.push({
-        x: random(), 
-        y: random(), 
-        size: Math.random(), 
-        shape: shapes[j % 6]
-      });
-    }
-  }
-
-  return data;
-}
-
-
-
-</script>
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/scatterChart.js b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/scatterChart.js
deleted file mode 100755
index 224dee8f..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/scatterChart.js
+++ /dev/null
@@ -1,293 +0,0 @@
-nv.models.scatterChart = function() {
-  var margin = {top: 30, right: 20, bottom: 50, left: 60},
-      width = null,
-      height = null,
-      color = d3.scale.category20().range(),
-      showDistX = false,
-      showDistY = false,
-      showLegend = true,
-      tooltips = true,
-      tooltipX = function(key, x, y) { return '<strong>' + x + '</strong>' },
-      tooltipY = function(key, x, y) { return '<strong>' + y + '</strong>' },
-      tooltip = function(key, x, y, e, graph) { 
-        return '<h3>' + key + '</h3>' +
-               '<p>' +  y + ' at ' + x + '</p>'
-      };
-
-
-  var scatter = nv.models.scatter(),
-      x = scatter.xScale(),
-      y = scatter.yScale(),
-      xAxis = nv.models.axis().orient('bottom').scale(x).tickPadding(10),
-      yAxis = nv.models.axis().orient('left').scale(y).tickPadding(10),
-      legend = nv.models.legend().height(30),
-      distX = nv.models.distribution().axis('x').scale(x),
-      distY = nv.models.distribution().axis('y').scale(y),
-      dispatch = d3.dispatch('tooltipShow', 'tooltipHide'),
-      x0, y0; //TODO: abstract distribution component and have old scales stored there
-
-  var showTooltip = function(e, offsetElement) {
-    //TODO: make tooltip style an option between single or dual on axes (maybe on all charts with axes?)
-
-    //var left = e.pos[0] + ( offsetElement.offsetLeft || 0 ),
-        //top = e.pos[1] + ( offsetElement.offsetTop || 0),
-    var leftX = e.pos[0] + ( offsetElement.offsetLeft || 0 ),
-        topX = y.range()[0] + margin.top + ( offsetElement.offsetTop || 0),
-        leftY = x.range()[0] + margin.left + ( offsetElement.offsetLeft || 0 ),
-        topY = e.pos[1] + ( offsetElement.offsetTop || 0),
-        xVal = xAxis.tickFormat()(scatter.x()(e.point)),
-        yVal = yAxis.tickFormat()(scatter.y()(e.point)),
-        contentX = tooltipX(e.series.key, xVal, yVal, e, chart),
-        contentY = tooltipY(e.series.key, xVal, yVal, e, chart);
-        //content = tooltip(e.series.key, xVal, yVal, e, chart);
-
-    nv.tooltip.show([leftX, topX], contentX, 'n', 1);
-    nv.tooltip.show([leftY, topY], contentY, 'e', 1);
-    //nv.tooltip.show([left, top], content, e.value < 0 ? 'n' : 's');
-  };
-
-
-  function chart(selection) {
-    selection.each(function(data) {
-      var container = d3.select(this),
-          that = this;
-
-      //TODO: decide if this makes sense to add into all the models for ease of updating (updating without needing the selection)
-      chart.update = function() { container.transition().call(chart) };
-
-
-      var availableWidth = (width  || parseInt(container.style('width')) || 960)
-                             - margin.left - margin.right,
-          availableHeight = (height || parseInt(container.style('height')) || 400)
-                             - margin.top - margin.bottom;
-
-
-
-      x0 = x0 || scatter.xScale();
-      y0 = y0 || scatter.yScale();
-
-
-
-      var wrap = container.selectAll('g.wrap.scatterChart').data([data]);
-      var gEnter = wrap.enter().append('g').attr('class', 'wrap nvd3 scatterChart chart-' + scatter.id()).append('g');
-
-      gEnter.append('g').attr('class', 'legendWrap');
-      gEnter.append('g').attr('class', 'x axis');
-      gEnter.append('g').attr('class', 'y axis');
-      gEnter.append('g').attr('class', 'scatterWrap');
-      gEnter.append('g').attr('class', 'distWrap');
-
-      var g = wrap.select('g')
-
-      if (showLegend) {
-        legend.width( availableWidth / 2 );
-
-        wrap.select('.legendWrap')
-            .datum(data)
-            .call(legend);
-
-        if ( margin.top != legend.height()) {
-          margin.top = legend.height();
-          availableHeight = (height || parseInt(container.style('height')) || 400)
-                             - margin.top - margin.bottom;
-        }
-
-        wrap.select('.legendWrap')
-            .attr('transform', 'translate(' + (availableWidth / 2) + ',' + (-margin.top) +')');
-      }
-
-
-      scatter
-        .width(availableWidth)
-        .height(availableHeight)
-        .color(data.map(function(d,i) {
-          return d.color || color[i % color.length];
-        }).filter(function(d,i) { return !data[i].disabled }))
-
-
-      g.attr('transform', 'translate(' + margin.left + ',' + margin.top + ')');
-
-
-      var scatterWrap = wrap.select('.scatterWrap')
-          .datum(data.filter(function(d) { return !d.disabled }));
-      d3.transition(scatterWrap).call(scatter);
-
-
-      xAxis
-        .ticks( availableWidth / 100 )
-        .tickSize( -availableHeight , 0);
-
-      g.select('.x.axis')
-          .attr('transform', 'translate(0,' + y.range()[0] + ')');
-      d3.transition(g.select('.x.axis'))
-          .call(xAxis);
-
-
-      yAxis
-        .ticks( availableHeight / 36 )
-        .tickSize( -availableWidth, 0);
-
-      d3.transition(g.select('.y.axis'))
-          .call(yAxis);
-
-
-      distX
-        .width(availableWidth)
-        .color(data.map(function(d,i) {
-          return d.color || color[i % color.length];
-        }).filter(function(d,i) { return !data[i].disabled }));
-      gEnter.select('.distWrap').append('g')
-          .attr('class', 'distributionX')
-          .attr('transform', 'translate(0,' + y.range()[0] + ')');
-      g.select('.distributionX')
-          .datum(data.filter(function(d) { return !d.disabled }))
-          .call(distX);
-
-
-      distY
-        .width(availableHeight)
-        .color(data.map(function(d,i) {
-          return d.color || color[i % color.length];
-        }).filter(function(d,i) { return !data[i].disabled }));
-      gEnter.select('.distWrap').append('g')
-          .attr('class', 'distributionY')
-          .attr('transform', 'translate(-' + distY.size() + ',0)');
-      g.select('.distributionY')
-          .datum(data.filter(function(d) { return !d.disabled }))
-          .call(distY);
-
-
-
-      legend.dispatch.on('legendClick', function(d,i, that) {
-        d.disabled = !d.disabled;
-
-        if (!data.filter(function(d) { return !d.disabled }).length) {
-          data.map(function(d) {
-            d.disabled = false;
-            wrap.selectAll('.series').classed('disabled', false);
-            return d;
-          });
-        }
-        
-        chart.update();
-      });
-
-      /*
-      legend.dispatch.on('legendMouseover', function(d, i) {
-        d.hover = true;
-        selection.transition().call(chart)
-      });
-
-      legend.dispatch.on('legendMouseout', function(d, i) {
-        d.hover = false;
-        selection.transition().call(chart)
-      });
-      */
-
-
-      scatter.dispatch.on('elementMouseover.tooltip', function(e) {
-        d3.select('.chart-' + scatter.id() + ' .series-' + e.seriesIndex + ' .distx-' + e.pointIndex)
-            .attr('y1', e.pos[1] - availableHeight);
-        d3.select('.chart-' + scatter.id() + ' .series-' + e.seriesIndex + ' .disty-' + e.pointIndex)
-            .attr('x2', e.pos[0] + distX.size());
-
-        e.pos = [e.pos[0] + margin.left, e.pos[1] + margin.top];
-        dispatch.tooltipShow(e);
-      });
-      if (tooltips) dispatch.on('tooltipShow', function(e) { showTooltip(e, that.parentNode) } ); // TODO: maybe merge with above?
-
-      scatter.dispatch.on('elementMouseout.tooltip', function(e) {
-        dispatch.tooltipHide(e);
-
-        d3.select('.chart-' + scatter.id() + ' .series-' + e.seriesIndex + ' .distx-' + e.pointIndex)
-            .attr('y1', 0);
-        d3.select('.chart-' + scatter.id() + ' .series-' + e.seriesIndex + ' .disty-' + e.pointIndex)
-            .attr('x2', distY.size());
-      });
-      if (tooltips) dispatch.on('tooltipHide', nv.tooltip.cleanup);
-
-
-      //store old scales for use in transitions on update, to animate from old to new positions, and sizes
-      x0 = x.copy();
-      y0 = y.copy();
-
-    });
-
-    return chart;
-  }
-
-
-  chart.dispatch = dispatch;
-  chart.legend = legend;
-  chart.xAxis = xAxis;
-  chart.yAxis = yAxis;
-
-  d3.rebind(chart, scatter, 'interactive', 'shape', 'size', 'xScale', 'yScale', 'zScale', 'xDomain', 'yDomain', 'sizeDomain', 'forceX', 'forceY', 'forceSize', 'clipVoronoi', 'clipRadius', 'fisheye', 'fisheyeRadius');
-
-
-  chart.margin = function(_) {
-    if (!arguments.length) return margin;
-    margin = _;
-    return chart;
-  };
-
-  chart.width = function(_) {
-    if (!arguments.length) return width;
-    width = _;
-    return chart;
-  };
-
-  chart.height = function(_) {
-    if (!arguments.length) return height;
-    height = _;
-    return chart;
-  };
-
-  chart.color = function(_) {
-    if (!arguments.length) return color;
-    color = _;
-    legend.color(_);
-    distX.color(_);
-    distY.color(_);
-    return chart;
-  };
-
-  chart.showDistX = function(_) {
-    if (!arguments.length) return showDistX;
-    showDistX = _;
-    return chart;
-  };
-
-  chart.showDistY = function(_) {
-    if (!arguments.length) return showDistY;
-    showDistY = _;
-    return chart;
-  };
-
-  chart.showControls = function(_) {
-    if (!arguments.length) return showControls;
-    showControls = _;
-    return chart;
-  };
-
-  chart.showLegend = function(_) {
-    if (!arguments.length) return showLegend;
-    showLegend = _;
-    return chart;
-  };
-
-  chart.tooltips = function(_) {
-    if (!arguments.length) return tooltips;
-    tooltips = _;
-    return chart;
-  };
-
-  chart.tooltipContent = function(_) {
-    if (!arguments.length) return tooltip;
-    tooltip = _;
-    return chart;
-  };
-
-
-  return chart;
-}
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/scatterFisheyeChart.js b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/scatterFisheyeChart.js
deleted file mode 100755
index d9963559..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/scatterFisheyeChart.js
+++ /dev/null
@@ -1,418 +0,0 @@
-
-nv.models.scatterFisheyeChart = function() {
-  var margin = {top: 30, right: 20, bottom: 50, left: 60},
-      width = null,
-      height = null,
-      color = nv.utils.defaultColor(),
-      showDistX = false,
-      showDistY = false,
-      showLegend = true,
-      showControls = true,
-      fisheye = 0,
-      tooltips = true,
-      tooltipX = function(key, x, y) { return '<strong>' + x + '</strong>' },
-      tooltipY = function(key, x, y) { return '<strong>' + y + '</strong>' },
-      tooltip = function(key, x, y, e, graph) { 
-        return '<h3>' + key + '</h3>' +
-               '<p>' +  y + ' at ' + x + '</p>'
-      },
-      noData = "No Data Available."
-      ;
-
-  var x = d3.fisheye.scale(d3.scale.linear).distortion(0),
-      y = d3.fisheye.scale(d3.scale.linear).distortion(0);
-
-  var scatter = nv.models.scatter().xScale(x).yScale(y),
-      //x = scatter.xScale(),
-      //y = scatter.yScale(),
-      xAxis = nv.models.axis().orient('bottom').scale(x).tickPadding(10),
-      yAxis = nv.models.axis().orient('left').scale(y).tickPadding(10),
-      legend = nv.models.legend().height(30),
-      controls = nv.models.legend().height(30),
-      dispatch = d3.dispatch('tooltipShow', 'tooltipHide'),
-      x0, y0; //TODO: abstract distribution component and have old scales stored there
-
-  var showTooltip = function(e, offsetElement) {
-    //TODO: make tooltip style an option between single or dual on axes (maybe on all charts with axes?)
-
-    //var left = e.pos[0] + ( offsetElement.offsetLeft || 0 ),
-        //top = e.pos[1] + ( offsetElement.offsetTop || 0),
-    var leftX = e.pos[0] + ( offsetElement.offsetLeft || 0 ),
-        topX = y.range()[0] + margin.top + ( offsetElement.offsetTop || 0),
-        leftY = x.range()[0] + margin.left + ( offsetElement.offsetLeft || 0 ),
-        topY = e.pos[1] + ( offsetElement.offsetTop || 0),
-        xVal = xAxis.tickFormat()(scatter.x()(e.point, e.pointIndex)),
-        yVal = yAxis.tickFormat()(scatter.y()(e.point, e.pointIndex)),
-        contentX = tooltipX(e.series.key, xVal, yVal, e, chart),
-        contentY = tooltipY(e.series.key, xVal, yVal, e, chart);
-        //content = tooltip(e.series.key, xVal, yVal, e, chart);
-
-    nv.tooltip.show([leftX, topX], contentX, 'n', 1, offsetElement);
-    nv.tooltip.show([leftY, topY], contentY, 'e', 1, offsetElement);
-    //nv.tooltip.show([left, top], content, e.value < 0 ? 'n' : 's');
-  };
-
-  var controlsData = [
-    { key: 'Magnify', disabled: true }
-  ];
-
-  function chart(selection) {
-    selection.each(function(data) {
-      var container = d3.select(this),
-          that = this;
-
-      //TODO: decide if this makes sense to add into all the models for ease of updating (updating without needing the selection)
-      chart.update = function() { selection.transition().call(chart) };
-
-
-      var availableWidth = (width  || parseInt(container.style('width')) || 960)
-                             - margin.left - margin.right,
-          availableHeight = (height || parseInt(container.style('height')) || 400)
-                             - margin.top - margin.bottom;
-
-
-      //------------------------------------------------------------
-      // Display No Data message if there's nothing to show.
-
-      if (!data || !data.length || !data.filter(function(d) { return d.values.length }).length) {
-        container.append('text')
-          .attr('class', 'nvd3 nv-noData')
-          .attr('x', availableWidth / 2)
-          .attr('y', availableHeight / 2)
-          .attr('dy', '-.7em')
-          .style('text-anchor', 'middle')
-          .text(noData);
-          return chart;
-      } else {
-        container.select('.nv-noData').remove();
-      }
-
-      //------------------------------------------------------------
-
-
-
-      x0 = x0 || scatter.xScale();
-      y0 = y0 || scatter.yScale();
-
-
-      var wrap = container.selectAll('g.nv-wrap.nv-scatterChart').data([data]);
-      var gEnter = wrap.enter().append('g').attr('class', 'nvd3 nv-wrap nv-scatterChart nv-chart-' + scatter.id()).append('g');
-
-
-      gEnter.append('rect')
-          .attr('class', 'nvd3 nv-background')
-          .attr('width', availableWidth)
-          .attr('height', availableHeight);
-
-
-      gEnter.append('g').attr('class', 'nv-legendWrap');
-      gEnter.append('g').attr('class', 'nv-x nv-axis');
-      gEnter.append('g').attr('class', 'nv-y nv-axis');
-      gEnter.append('g').attr('class', 'nv-scatterWrap');
-      gEnter.append('g').attr('class', 'nv-controlsWrap');
-      //gEnter.append('g').attr('class', 'nv-distWrap');
-
-      var g = wrap.select('g')
-
-      if (showLegend) {
-        legend.width( availableWidth / 2 );
-
-        wrap.select('.nv-legendWrap')
-            .datum(data)
-            .call(legend);
-
-        if ( margin.top != legend.height()) {
-          margin.top = legend.height();
-          availableHeight = (height || parseInt(container.style('height')) || 400)
-                             - margin.top - margin.bottom;
-        }
-
-        wrap.select('.nv-legendWrap')
-            .attr('transform', 'translate(' + (availableWidth / 2) + ',' + (-margin.top) +')');
-      }
-
-
-      scatter
-        .width(availableWidth)
-        .height(availableHeight)
-        .color(data.map(function(d,i) {
-          return d.color || color(d, i);
-        }).filter(function(d,i) { return !data[i].disabled }))
-
-
-      if (showControls) {
-        controls.width(180).color(['#444']);
-        g.select('.nv-controlsWrap')
-            .datum(controlsData)
-            .attr('transform', 'translate(0,' + (-margin.top) +')')
-            .call(controls);
-      }
-
-
-      g.attr('transform', 'translate(' + margin.left + ',' + margin.top + ')');
-
-
-      var scatterWrap = wrap.select('.nv-scatterWrap')
-          .datum(data.filter(function(d) { return !d.disabled }));
-      d3.transition(scatterWrap).call(scatter);
-
-
-      xAxis
-        .ticks( availableWidth / 100 )
-        .tickSize( -availableHeight , 0);
-
-      g.select('.nv-x.nv-axis')
-          .attr('transform', 'translate(0,' + y.range()[0] + ')');
-      d3.transition(g.select('.nv-x.nv-axis'))
-          .call(xAxis);
-
-
-      yAxis
-        .ticks( availableHeight / 36 )
-        .tickSize( -availableWidth, 0);
-
-      d3.transition(g.select('.nv-y.nv-axis'))
-          .call(yAxis);
-
-
-
-
-      //TODO abstract Distribution into its own component
-      if ( showDistX || showDistY) {
-        var distWrap = scatterWrap.selectAll('g.nv-distribution')
-            .data(function(d) { return d }, function(d) { return d.key });
-
-        distWrap.enter().append('g').attr('class', function(d,i) { return 'nv-distribution nv-series-' + i })
-
-        distWrap.style('stroke', function(d,i) { return color.filter(function(d,i) { return data[i] && !data[i].disabled })[i % color.length] })
-      }
-
-      if (showDistX) {
-        var distX = distWrap.selectAll('line.nv-distX')
-              .data(function(d) { return d.values })
-        distX.enter().append('line')
-            .attr('x1', function(d,i) { return x0(scatter.x()(d,i)) })
-            .attr('x2', function(d,i) { return x0(scatter.x()(d,i)) })
-        //d3.transition(distX.exit())
-        d3.transition(distWrap.exit().selectAll('line.nv-distX'))
-            .attr('x1', function(d,i) { return x(scatter.x()(d,i)) })
-            .attr('x2', function(d,i) { return x(scatter.x()(d,i)) })
-            .remove();
-        distX
-            .attr('class', function(d,i) { return 'nv-distX nv-distX-' + i })
-            .attr('y1', y.range()[0])
-            .attr('y2', y.range()[0] + 8);
-        d3.transition(distX)
-            .attr('x1', function(d,i) { return x(scatter.x()(d,i)) })
-            .attr('x2', function(d,i) { return x(scatter.x()(d,i)) })
-      }
-
-
-      if (showDistY) {
-        var distY = distWrap.selectAll('line.nv-distY')
-            .data(function(d) { return d.values })
-        distY.enter().append('line')
-            .attr('y1', function(d,i) { return y0(scatter.y()(d,i)) })
-            .attr('y2', function(d,i) { return y0(scatter.y()(d,i)) });
-        //d3.transition(distY.exit())
-        d3.transition(distWrap.exit().selectAll('line.nv-distY'))
-            .attr('y1', function(d,i) { return y(scatter.y()(d,i)) })
-            .attr('y2', function(d,i) { return y(scatter.y()(d,i)) })
-            .remove();
-        distY
-            .attr('class', function(d,i) { return 'nv-distY nv-distY-' + i })
-            .attr('x1', x.range()[0])
-            .attr('x2', x.range()[0] - 8)
-        d3.transition(distY)
-            .attr('y1', function(d,i) { return y(scatter.y()(d,i)) })
-            .attr('y2', function(d,i) { return y(scatter.y()(d,i)) });
-      }
-
-
-
-
-      legend.dispatch.on('legendClick', function(d,i, that) {
-        d.disabled = !d.disabled;
-
-        if (!data.filter(function(d) { return !d.disabled }).length) {
-          data.map(function(d) {
-            d.disabled = false;
-            wrap.selectAll('.nv-series').classed('disabled', false);
-            return d;
-          });
-        }
-
-        selection.transition().call(chart)
-      });
-
-      controls.dispatch.on('legendClick', function(d,i) { 
-        d.disabled = !d.disabled;
-
-        fisheye = d.disabled ? 0 : 2.5;
-        g.select('.nv-background').style('pointer-events', d.disabled ? 'none' : 'all');
-        scatter.interactive(d.disabled);
-        tooltips = d.disabled;
-
-        if (d.disabled) {
-          x.distortion(fisheye).focus(0);
-          y.distortion(fisheye).focus(0);
-
-          scatterWrap.call(scatter);
-          g.select('.nv-x.nv-axis').call(xAxis);
-          g.select('.nv-y.nv-axis').call(yAxis);
-        }
-
-        selection.transition().call(chart);
-      });
-
-      /*
-      legend.dispatch.on('legendMouseover', function(d, i) {
-        d.hover = true;
-        selection.transition().call(chart)
-      });
-
-      legend.dispatch.on('legendMouseout', function(d, i) {
-        d.hover = false;
-        selection.transition().call(chart)
-      });
-      */
-
-
-      scatter.dispatch.on('elementMouseover.tooltip', function(e) {
-        //scatterWrap.select('.series-' + e.seriesIndex + ' .distX-' + e.pointIndex)
-        d3.select('.nv-chart-' + scatter.id() + ' .nv-series-' + e.seriesIndex + ' .nv-distX-' + e.pointIndex)
-            .attr('y1', e.pos[1]);
-        //scatterWrap.select('.series-' + e.seriesIndex + ' .distY-' + e.pointIndex)
-        d3.select('.nv-chart-' + scatter.id() + ' .nv-series-' + e.seriesIndex + ' .nv-distY-' + e.pointIndex)
-            .attr('x1', e.pos[0]);
-
-        e.pos = [e.pos[0] + margin.left, e.pos[1] + margin.top];
-        dispatch.tooltipShow(e);
-      });
-      //if (tooltips) dispatch.on('tooltipShow', function(e) { showTooltip(e, container[0][0].parentNode) } ); // TODO: maybe merge with above?
-      dispatch.on('tooltipShow', function(e) {
-        if (tooltips) showTooltip(e, that.parentNode);
-      });
-
-      scatter.dispatch.on('elementMouseout.tooltip', function(e) {
-        dispatch.tooltipHide(e);
-
-        //scatterWrap.select('.series-' + e.seriesIndex + ' .distX-' + e.pointIndex)
-        d3.select('.nv-chart-' + scatter.id() + ' .nv-series-' + e.seriesIndex + ' .nv-distX-' + e.pointIndex)
-            .attr('y1', y.range()[0]);
-        //scatterWrap.select('.series-' + e.seriesIndex + ' .distY-' + e.pointIndex)
-        d3.select('.nv-chart-' + scatter.id() + ' .nv-series-' + e.seriesIndex + ' .nv-distY-' + e.pointIndex)
-            .attr('x1', x.range()[0]);
-      });
-      dispatch.on('tooltipHide', nv.tooltip.cleanup);
-
-
-
-      //TODO: get distributions to work with fisheye
-      g.select('.nv-background').on('mousemove', updateFisheye);
-      g.select('.nv-point-paths').on('mousemove', updateFisheye);
-
-      function updateFisheye() {
-        var mouse = d3.mouse(this);
-        x.distortion(fisheye).focus(mouse[0]);
-        y.distortion(fisheye).focus(mouse[1]);
-
-        scatterWrap.call(scatter);
-        g.select('.nv-x.nv-axis').call(xAxis);
-        g.select('.nv-y.nv-axis').call(yAxis);
-      }
-
-      //store old scales for use in transitions on update, to animate from old to new positions, and sizes
-      x0 = x.copy();
-      y0 = y.copy();
-
-    });
-
-    return chart;
-  }
-
-
-  chart.dispatch = dispatch;
-  chart.legend = legend;
-  chart.xAxis = xAxis;
-  chart.yAxis = yAxis;
-
-  d3.rebind(chart, scatter, 'interactive', 'shape', 'size', 'xScale', 'yScale', 'zScale', 'xDomain', 'yDomain', 'sizeDomain', 'forceX', 'forceY', 'forceSize', 'clipVoronoi', 'clipRadius', 'fisheye', 'fisheyeRadius');
-
-
-  chart.margin = function(_) {
-    if (!arguments.length) return margin;
-    margin = _;
-    return chart;
-  };
-
-  chart.width = function(_) {
-    if (!arguments.length) return width;
-    width = _;
-    return chart;
-  };
-
-  chart.height = function(_) {
-    if (!arguments.length) return height;
-    height = _;
-    return chart;
-  };
-
-  chart.color = function(_) {
-    if (!arguments.length) return color;
-    color = nv.utils.getColor(_);
-    legend.color(color);
-    return chart;
-  };
-
-  chart.showDistX = function(_) {
-    if (!arguments.length) return showDistX;
-    showDistX = _;
-    return chart;
-  };
-
-  chart.showDistY = function(_) {
-    if (!arguments.length) return showDistY;
-    showDistY = _;
-    return chart;
-  };
-
-  chart.showControls = function(_) {
-    if (!arguments.length) return showControls;
-    showControls = _;
-    return chart;
-  };
-
-  chart.showLegend = function(_) {
-    if (!arguments.length) return showLegend;
-    showLegend = _;
-    return chart;
-  };
-
-  chart.fisheye = function(_) {
-    if (!arguments.length) return fisheye;
-    fisheye = _;
-    return chart;
-  };
-
-  chart.tooltips = function(_) {
-    if (!arguments.length) return tooltips;
-    tooltips = _;
-    return chart;
-  };
-
-  chart.tooltipContent = function(_) {
-    if (!arguments.length) return tooltip;
-    tooltip = _;
-    return chart;
-  };
-
-  chart.noData = function(_) {
-    if (!arguments.length) return noData;
-    noData = _;
-    return chart;
-  };
-
-
-  return chart;
-}
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/scatterWithLegend.html b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/scatterWithLegend.html
deleted file mode 100755
index 24cb22bc..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/scatterWithLegend.html
+++ /dev/null
@@ -1,167 +0,0 @@
-<!DOCTYPE html>
-<meta charset="utf-8">
-
-<link href="../src/d3.css" rel="stylesheet" type="text/css">
-
-<style>
-
-body {
-  overflow-y:scroll;
-  margin: 0;
-  padding: 0;
-}
-
-svg {
-  overflow: hidden;
-}
-
-div {
-  border: 0;
-  margin: 0;
-}
-
-
-#offsetDiv {
-}
-
-
-#test1 {
-  margin: 0;
-}
-
-
-</style>
-
-<body>
-
-<div id="offsetDiv">
-  <div id="test1" class="chartWrap">
-    <svg></svg>
-  </div>
-</div>
-
-<script src="../lib/d3.v2.js"></script>
-<script src="../nv.d3.js"></script>
-<script src="../src/tooltip.js"></script>
-<script src="../src/models/legend.js"></script>
-<script src="../src/models/axis.js"></script>
-<script src="../src/models/scatter.js"></script>
-<script src="../src/models/scatterWithLegend.js"></script>
-<script>
-
-
-
-//Format A
-nv.addGraph({
-  generate: function() {
-      var width = nv.utils.windowSize().width - 40,
-          height = nv.utils.windowSize().height - 40;
-
-      var chart = nv.models.scatterWithLegend()
-                .width(width)
-                .height(height)
-                .showDistX(true)
-                .showDistY(true)
-                .color(d3.scale.category10().range());
-                //.width(width)
-                //.height(height)
-                //.forceX([-4,4])
-                //.forceY([-4,4])
-                //.margin({top: 20, right: 10, bottom: 50, left: 80})
-
-
-    //chart.xaxis.tickFormat(d3.format(".02f"))
-
-    var svg =d3.select('#test1 svg')
-      .datum(randomData());
-
-
-    svg.transition().duration(500)
-      .attr('width', width)
-      .attr('height', height)
-      .call(chart)
-      //.attr('width', wid0th)
-      //.attr('height', height)
-
-    return chart;
-  },
-  callback: function(graph) {
-
-    graph.dispatch.on('tooltipShow', function(e) {
-        var offsetElement = document.getElementById("test1"),
-                left = e.pos[0] + offsetElement.offsetLeft,
-                top = e.pos[1] + offsetElement.offsetTop,
-                formatter = d3.format(".2f");
-
-
-      /*
-      var content = '<h3>' + e.series.key + '</h3>' +
-                    '<p>' +
-                    '<span class="value"><span class="label">x:</span><span class="val">' + formatter(e.point.x) + '</span></span><br>' +
-                    '<s0pan class="value"><span class="label">y:</span><span class="val">' + formatter(e.point.y) + '</span></span>' +
-                    '</p>';
-
-      nvtooltip.show([left, top], content);
-      */
-
-      var contentX = '<strong>' + formatter(e.point.x) + '</strong>';
-      var contentY = '<strong>' + formatter(e.point.y) + '</strong>';
-      var height = nv.utils.windowSize().height - 40;
-
-      nv.tooltip.show([left, height - 50], contentX, 'n', 1);
-      nv.tooltip.show([5, top], contentY, 'w', 1);
-    });
-
-
-    graph.dispatch.on('tooltipHide', function(e) {
-      nv.tooltip.cleanup();
-    });
-
-    window.onresize = function() {
-     var width = nv.utils.windowSize().width - 40,
-        height = nv.utils.windowSize().height - 40,
-        margin = graph.margin();
-
-
-      if (width < margin.left + margin.right + 20)
-        width = margin.left + margin.right + 20;
-
-      if (height < margin.top + margin.bottom + 20)
-        height = margin.top + margin.bottom + 20;
-
-
-      graph
-        .width(width)
-        .height(height);
-
-      d3.select('#test1 svg')
-        .attr('width', width)
-        .attr('height', height)
-        .call(graph);
-
-      };
-  }
-});
-
-
-function randomData() {
-  var data = [],
-      random = d3.random.normal();
-
-  for (i = 0; i < 2; i++) {
-    data.push({
-      key: 'Group ' + i,
-      values: []
-    });
-
-    for (j = 0; j < 100; j++) {
-      data[i].values.push({x: random(), y: random(), size: Math.random()});
-    }
-  }
-
-  return data;
-}
-
-
-
-</script>
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/scatterWithLegend.js b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/scatterWithLegend.js
deleted file mode 100755
index 8434523f..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/scatterWithLegend.js
+++ /dev/null
@@ -1,261 +0,0 @@
-
-nv.models.scatterWithLegend = function() {
-  var margin = {top: 30, right: 20, bottom: 50, left: 60},
-      width = function() { return 960 }, //TODO: should probably make this consistent... or maybe constant in the models, closure in the charts
-      height = function() { return 500 },
-      xAxisLabelText = false,
-      yAxisLabelText = false,
-      showDistX = false,
-      showDistY = false,
-      color = d3.scale.category20().range();
-
-  var xAxis = nv.models.axis().orient('bottom').tickPadding(10),
-      yAxis = nv.models.axis().orient('left').tickPadding(10),
-      legend = nv.models.legend().height(30),
-      scatter = nv.models.scatter(),
-      dispatch = d3.dispatch('tooltipShow', 'tooltipHide'),
-      x, y, x0, y0;
-
-
-  function chart(selection) {
-    selection.each(function(data) {
-      var availableWidth = width() - margin.left - margin.right,
-          availableHeight = height() - margin.top - margin.bottom;
-
-      x0 = x0 || scatter.xScale();
-      y0 = y0 || scatter.yScale();
-
-
-
-      var wrap = d3.select(this).selectAll('g.wrap.scatterWithLegend').data([data]);
-      var gEnter = wrap.enter().append('g').attr('class', 'wrap nvd3 scatterWithLegend').append('g');
-
-      gEnter.append('g').attr('class', 'legendWrap');
-      gEnter.append('g').attr('class', 'x axis');
-      gEnter.append('g').attr('class', 'y axis');
-      gEnter.append('g').attr('class', 'scatterWrap');
-      //gEnter.append('g').attr('class', 'distWrap');
-
-
-
-      scatter
-        .width(availableWidth)
-        .height(availableHeight)
-        //.xDomain(x.domain())
-        //.yDomain(y.domain())
-        .color(data.map(function(d,i) {
-          return d.color || color[i % 20];
-        }).filter(function(d,i) { return !data[i].disabled }))
-
-      var scatterWrap = wrap.select('.scatterWrap')
-          .datum(data.filter(function(d) { return !d.disabled }));
-
-      d3.transition(scatterWrap).call(scatter);
-
-
-      x = scatter.xScale();
-      y = scatter.yScale();
-
-      xAxis.scale(x);
-      yAxis.scale(y);
-
-
-      //TODO: margins should be adjusted based on what components are used: axes, axis labels, legend
-      //TODO: Fix height issue on first render if legend height is larger than margin.top, NEED TO FIX EVERY MODEL WITH A LEGEND
-      margin.top = legend.height();
-
-      var g = wrap.select('g')
-          .attr('transform', 'translate(' + margin.left + ',' + margin.top + ')');
-
-
-      legend.width(availableWidth / 2);
-
-      wrap.select('.legendWrap')
-          .datum(data)
-          .attr('transform', 'translate(' + (availableWidth / 2) + ',' + (-margin.top) +')')
-          .call(legend);
-
-
-
-
-      if ( showDistX || showDistY) {
-        var distWrap = scatterWrap.selectAll('g.distribution')
-            .data(function(d) { return d }, function(d) { return d.key });
-
-        distWrap.enter().append('g').attr('class', function(d,i) { return 'distribution series-' + i })
-
-        distWrap.style('stroke', function(d,i) { return color.filter(function(d,i) { return data[i] && !data[i].disabled })[i % 10] })
-      }
-
-      if (showDistX) {
-        var distX = distWrap.selectAll('line.distX')
-              .data(function(d) { return d.values })
-        distX.enter().append('line')
-            .attr('x1', function(d,i) { return x0(scatter.x()(d,i)) })
-            .attr('x2', function(d,i) { return x0(scatter.x()(d,i)) })
-        //d3.transition(distX.exit())
-        d3.transition(distWrap.exit().selectAll('line.distX'))
-            .attr('x1', function(d,i) { return x(scatter.x()(d,i)) })
-            .attr('x2', function(d,i) { return x(scatter.x()(d,i)) })
-            .remove();
-        distX
-            .attr('class', function(d,i) { return 'distX distX-' + i })
-            .attr('y1', y.range()[0])
-            .attr('y2', y.range()[0] + 8);
-        d3.transition(distX)
-            .attr('x1', function(d,i) { return x(scatter.x()(d,i)) })
-            .attr('x2', function(d,i) { return x(scatter.x()(d,i)) })
-      }
-
-
-      if (showDistY) {
-        var distY = distWrap.selectAll('line.distY')
-            .data(function(d) { return d.values })
-        distY.enter().append('line')
-            .attr('y1', function(d,i) { return y0(scatter.y()(d,i)) })
-            .attr('y2', function(d,i) { return y0(scatter.y()(d,i)) });
-        //d3.transition(distY.exit())
-        d3.transition(distWrap.exit().selectAll('line.distY'))
-            .attr('y1', function(d,i) { return y(scatter.y()(d,i)) })
-            .attr('y2', function(d,i) { return y(scatter.y()(d,i)) })
-            .remove();
-        distY
-            .attr('class', function(d,i) { return 'distY distY-' + i })
-            .attr('x1', x.range()[0])
-            .attr('x2', x.range()[0] - 8)
-        d3.transition(distY)
-            .attr('y1', function(d,i) { return y(scatter.y()(d,i)) }) .attr('y2', function(d,i) { return y(scatter.y()(d,i)) });
-      }
-
-
-      xAxis
-        .ticks( availableWidth / 100 )
-        .tickSize( -availableHeight , 0);
-
-      g.select('.x.axis')
-          .attr('transform', 'translate(0,' + y.range()[0] + ')');
-
-      d3.transition(g.select('.x.axis'))
-          .call(xAxis);
-
-
-      yAxis
-        .ticks( availableHeight / 36 )
-        .tickSize( -availableWidth, 0);
-
-      d3.transition(g.select('.y.axis'))
-          .call(yAxis);
-
-
-
-
-      legend.dispatch.on('legendClick', function(d,i, that) {
-        d.disabled = !d.disabled;
-
-        if (!data.filter(function(d) { return !d.disabled }).length) {
-          data.map(function(d) {
-            d.disabled = false;
-            wrap.selectAll('.series').classed('disabled', false);
-            return d;
-          });
-        }
-
-        selection.transition().call(chart)
-      });
-
-      /*
-      legend.dispatch.on('legendMouseover', function(d, i) {
-        d.hover = true;
-        selection.transition().call(chart)
-      });
-
-      legend.dispatch.on('legendMouseout', function(d, i) {
-        d.hover = false;
-        selection.transition().call(chart)
-      });
-      */
-
-
-      scatter.dispatch.on('elementMouseover.tooltip', function(e) {
-        dispatch.tooltipShow({
-          point: e.point,
-          series: e.series,
-          pos: [e.pos[0] + margin.left, e.pos[1] + margin.top],
-          seriesIndex: e.seriesIndex,
-          pointIndex: e.pointIndex
-        });
-
-        scatterWrap.select('.series-' + e.seriesIndex + ' .distX-' + e.pointIndex)
-            .attr('y1', e.pos[1]);
-        scatterWrap.select('.series-' + e.seriesIndex + ' .distY-' + e.pointIndex)
-            .attr('x1', e.pos[0]);
-      });
-
-      scatter.dispatch.on('elementMouseout.tooltip', function(e) {
-        dispatch.tooltipHide(e);
-
-        scatterWrap.select('.series-' + e.seriesIndex + ' .distX-' + e.pointIndex)
-            .attr('y1', y.range()[0]);
-        scatterWrap.select('.series-' + e.seriesIndex + ' .distY-' + e.pointIndex)
-            .attr('x1', x.range()[0]);
-      });
-
-
-      //store old scales for use in transitions on update, to animate from old to new positions, and sizes
-      x0 = x.copy();
-      y0 = y.copy();
-
-    });
-
-    return chart;
-  }
-
-
-  chart.dispatch = dispatch;
-  chart.legend = legend;
-  chart.xAxis = xAxis;
-  chart.yAxis = yAxis;
-
-  d3.rebind(chart, scatter, 'interactive', 'size', 'xScale', 'yScale', 'zScale', 'xDomain', 'yDomain', 'sizeDomain', 'forceX', 'forceY', 'forceSize', 'clipVoronoi', 'clipRadius');
-
-
-  chart.margin = function(_) {
-    if (!arguments.length) return margin;
-    margin = _;
-    return chart;
-  };
-
-  chart.width = function(_) {
-    if (!arguments.length) return width;
-    width = d3.functor(_);
-    return chart;
-  };
-
-  chart.height = function(_) {
-    if (!arguments.length) return height;
-    height = d3.functor(_);
-    return chart;
-  };
-
-  chart.color = function(_) {
-    if (!arguments.length) return color;
-    color = _;
-    legend.color(_);
-    return chart;
-  };
-
-  chart.showDistX = function(_) {
-    if (!arguments.length) return showDistX;
-    showDistX = _;
-    return chart;
-  };
-
-  chart.showDistY = function(_) {
-    if (!arguments.length) return showDistY;
-    showDistY = _;
-    return chart;
-  };
-
-
-  return chart;
-}
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/stackedArea.js b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/stackedArea.js
deleted file mode 100755
index c5851cbd..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/stackedArea.js
+++ /dev/null
@@ -1,286 +0,0 @@
-
-nv.models.stackedArea = function() {
-  //Default Settings
-  var margin = {top: 0, right: 0, bottom: 0, left: 0},
-      width = 960,
-      height = 500,
-      color = d3.scale.category20().range(), // array of colors to be used in order
-      id = Math.floor(Math.random() * 100000), //Create semi-unique ID incase user doesn't selet one
-      getX = function(d) { return d.x }, // accessor to get the x value from a data point
-      getY = function(d) { return d.y }, // accessor to get the y value from a data point
-      style = 'stack',
-      offset = 'zero',
-      order = 'default',
-      clipEdge = false; // if true, masks lines within x and y scale
-
-/************************************
- * offset:
- *   'wiggle' (stream)
- *   'zero' (stacked)
- *   'expand' (normalize to 100%)
- *   'silhouette' (simple centered)
- *
- * order:
- *   'inside-out' (stream)
- *   'default' (input order)
- ************************************/
-
-  var scatter= nv.models.scatter()
-        .size(2.2) // default size
-        .sizeDomain([2.5]), //set to speed up calculation, needs to be unset if there is a cstom size accessor
-      x = scatter.xScale(),
-      y = scatter.yScale(),
-      dispatch =  d3.dispatch('tooltipShow', 'tooltipHide', 'areaClick', 'areaMouseover', 'areaMouseout');
-
-  function chart(selection) {
-    selection.each(function(data) {
-        // Need to leave data alone to switch between stacked, stream, and expanded
-        var dataCopy = JSON.parse(JSON.stringify(data)),
-            availableWidth = width - margin.left - margin.right,
-            availableHeight = height - margin.top - margin.bottom;
-
-        //TODO: try to get rid of the need for copying the data, and use the data directly
-
-        //console.log(dataCopy);
-        dataCopy = dataCopy.map(function(series,i) {
-          if (series.disabled)
-            series.values = series.values.map(function(d,i) {
-              d._y = d.y || d._y; 
-              d.y = 0;  //TODO: need to use value from getY, not always d.y
-              return d 
-            });
-          return series;
-        });
-
-
-        //TODO: deal with negative stacked charts
-
-        //compute the data based on offset and order (calc's y0 for every point)
-        dataCopy = d3.layout.stack()
-                     .offset(offset)
-                     .order(order)
-                     .values(function(d){ return d.values })
-                     .y(getY)
-                     (dataCopy);
-
-
-
-        var wrap = d3.select(this).selectAll('g.wrap.stackedarea').data([dataCopy]);
-        var wrapEnter = wrap.enter().append('g').attr('class', 'wrap nvd3 stackedarea');
-        var defsEnter = wrapEnter.append('defs');
-        var gEnter = wrapEnter.append('g');
-        var g = wrap.select('g');
-
-        gEnter.append('g').attr('class', 'areaWrap');
-
-
-        scatter
-          .width(availableWidth)
-          .height(availableHeight)
-          //.x(getX)
-          .y(function(d) { return d.y + d.y0 }) // TODO: allow for getY to be other than d.y
-          .forceY([0])
-          .color(dataCopy.map(function(d,i) {
-            return d.color || color[i % color.length];
-          }).filter(function(d,i) { return !dataCopy[i].disabled }));
-
-        gEnter.append('g').attr('class', 'scatterWrap');
-        var scatterWrap= g.select('.scatterWrap')
-            .datum(dataCopy.filter(function(d) { return !d.disabled }))
-
-        d3.transition(scatterWrap).call(scatter);
-
-
-
-
-        wrap.attr('transform', 'translate(' + margin.left + ',' + margin.top + ')');
-
-
-        defsEnter.append('clipPath')
-            .attr('id', 'edge-clip-' + id)
-          .append('rect');
-
-        wrap.select('#edge-clip-' + id + ' rect')
-            .attr('width', availableWidth)
-            .attr('height', availableHeight);
-
-        g   .attr('clip-path', clipEdge ? 'url(#edge-clip-' + id + ')' : '');
-
-
-
-
-        var area = d3.svg.area()
-            .x(function(d,i) { return x(scatter.x()(d,i)) })
-            .y0(function(d) { return y(d.y0) })
-            .y1(function(d) { return y(d.y + d.y0) });
-
-        var zeroArea = d3.svg.area()
-            .x(function(d,i) { return x(scatter.x()(d,i)) })
-            .y0(function(d) { return y(d.y0) })
-            .y1(function(d) { return y(d.y0) });
-
-
-        var path = g.select('.areaWrap').selectAll('path.area')
-            .data(function(d) { return d });
-            //.data(function(d) { return d }, function(d) { return d.key });
-        path.enter().append('path').attr('class', function(d,i) { return 'area area-' + i })
-            .on('mouseover', function(d,i) {
-              d3.select(this).classed('hover', true);
-              dispatch.areaMouseover({
-                point: d,
-                series: d.key,
-                //pos: [x(getX(point, d.point)) + margin.left, y(getY(point, d.point)) + margin.top],
-                pos: [d3.event.pageX, d3.event.pageY],
-                seriesIndex: i
-                //pointIndex: d.point
-              });
-            })
-            .on('mouseout', function(d,i) {
-              d3.select(this).classed('hover', false);
-              dispatch.areaMouseout({
-                point: d,
-                series: d.key,
-                //pos: [x(getX(point, d.point)) + margin.left, y(getY(point, d.point)) + margin.top],
-                pos: [d3.event.pageX, d3.event.pageY],
-                seriesIndex: i
-                //pointIndex: d.point
-              });
-            })
-            .on('click', function(d,i) {
-              d3.select(this).classed('hover', false);
-              dispatch.areaClick({
-                point: d,
-                series: d.key,
-                //pos: [x(getX(point, d.point)) + margin.left, y(getY(point, d.point)) + margin.top],
-                pos: [d3.event.pageX, d3.event.pageY],
-                seriesIndex: i
-                //pointIndex: d.point
-              });
-            })
-        d3.transition(path.exit())
-            .attr('d', function(d,i) { return zeroArea(d.values,i) }) // TODO: fix this so transition is still fluid
-            .remove();
-        path
-            .style('fill', function(d,i){ return d.color || color[i % color.length] })
-            .style('stroke', function(d,i){ return d.color || color[i % color.length] });
-        d3.transition(path)
-            .attr('d', function(d,i) { return area(d.values,i) })
-
-
-        scatter.dispatch.on('elementClick.area', function(e) {
-          dispatch.areaClick(e);
-        })
-        scatter.dispatch.on('elementMouseover.area', function(e) {
-          g.select('.area-' + e.seriesIndex).classed('hover', true);
-        });
-        scatter.dispatch.on('elementMouseout.area', function(e) {
-          g.select('.area-' + e.seriesIndex).classed('hover', false);
-        });
-
-    });
-
-
-    return chart;
-  }
-
-
-  chart.dispatch = dispatch;
-  chart.scatter = scatter;
-
-  d3.rebind(chart, scatter, 'x', 'interactive', 'size', 'xScale', 'yScale', 'zScale', 'xDomain', 'yDomain', 'sizeDomain', 'forceX', 'forceY', 'forceSize', 'clipVoronoi', 'clipRadius');
-
-  /*
-  chart.x = function(_) {
-    if (!arguments.length) return getX;
-    getX = d3.functor(_);
-    scatter.x(_);
-    return chart;
-  };
-  */
-
-  chart.y = function(_) {
-    if (!arguments.length) return getY;
-    getY = d3.functor(_);
-    //scatter.y(_);
-    return chart;
-  }
-
-  chart.margin = function(_) {
-    if (!arguments.length) return margin;
-    margin = _;
-    return chart;
-  };
-
-  chart.width = function(_) {
-    if (!arguments.length) return width;
-    width = _;
-    return chart;
-  };
-
-  chart.height = function(_) {
-    if (!arguments.length) return height;
-    height = _;
-    return chart;
-  };
-
-  chart.clipEdge = function(_) {
-    if (!arguments.length) return clipEdge;
-    clipEdge = _;
-    return chart;
-  };
-
-  chart.color = function(_) {
-    if (!arguments.length) return color;
-    color = _;
-    return chart;
-  };
-
-  chart.offset = function(_) {
-    if (!arguments.length) return offset;
-    offset = _;
-    return chart;
-  };
-
-  chart.order = function(_) {
-    if (!arguments.length) return order;
-    order = _;
-    return chart;
-  };
-
-  //shortcut for offset + order
-  chart.style = function(_) {
-    if (!arguments.length) return style;
-    style = _;
-
-    switch (style) {
-      case 'stack':
-        offset = 'zero';
-        order = 'default';
-        break;
-      case 'stream':
-        offset = 'wiggle';
-        order = 'inside-out';
-        break;
-      case 'expand':
-        offset = 'expand';
-        order = 'default';
-        break;
-    }
-
-    return chart;
-  };
-
-
-
-  scatter.dispatch.on('elementMouseover.tooltip', function(e) {
-        e.pos = [e.pos[0] + margin.left, e.pos[1] + margin.top],
-        dispatch.tooltipShow(e);
-  });
-
-  scatter.dispatch.on('elementMouseout.tooltip', function(e) {
-        dispatch.tooltipHide(e);
-  });
-
-
-  return chart;
-}
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/stackedAreaChart.html b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/stackedAreaChart.html
deleted file mode 100755
index 340d7420..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/stackedAreaChart.html
+++ /dev/null
@@ -1,183 +0,0 @@
-<!DOCTYPE html>
-<meta charset="utf-8">
-
-<link href="../src/d3.css" rel="stylesheet" type="text/css">
-
-<style>
-
-body {
-  overflow-y:scroll;
-}
-
-text {
-  font: 12px sans-serif;
-}
-
-#chart1, #chart2 {
-  height: 500px;
-}
-
-</style>
-<body>
-
-  <div>
-    <svg id="chart1"></svg>
-  </div>
-
-  <div>
-    <svg id="chart2"></svg>
-  </div>
-
-<script src="../lib/d3.v2.js"></script>
-<script src="../nv.d3.js"></script>
-<script src="../src/models/axis.js"></script>
-<script src="../src/tooltip.js"></script>
-<script src="../src/models/legend.js"></script>
-<script src="../src/models/axis.js"></script>
-<script src="../src/models/scatter.js"></script>
-<script src="../src/models/stackedArea.js"></script>
-<script src="../src/models/stackedAreaChart.js"></script>
-<script>
-
-
-var histcatexplong = [ 
-  { 
-    "key" : "Consumer Discretionary" , 
-    "values" : [ [ 1138683600000 , 27.38478809681] , [ 1141102800000 , 27.371377218208] , [ 1143781200000 , 26.309915460827] , [ 1146369600000 , 26.425199957521] , [ 1149048000000 , 26.823411519395] , [ 1151640000000 , 23.850443591584] , [ 1154318400000 , 23.158355444054] , [ 1156996800000 , 22.998689393694] , [ 1159588800000 , 27.977128511299] , [ 1162270800000 , 29.073672469721] , [ 1164862800000 , 28.587640408904] , [ 1167541200000 , 22.788453687638] , [ 1170219600000 , 22.429199073597] , [ 1172638800000 , 22.324103271051] , [ 1175313600000 , 17.558388444186] , [ 1177905600000 , 16.769518096208] , [ 1180584000000 , 16.214738201302] , [ 1183176000000 , 18.729632971228] , [ 1185854400000 , 18.814523318848] , [ 1188532800000 , 19.789986451358] , [ 1191124800000 , 17.070049054933] , [ 1193803200000 , 16.121349575715] , [ 1196398800000 , 15.141659430091] , [ 1199077200000 , 17.175388025298] , [ 1201755600000 , 17.286592443521] , [ 1204261200000 , 16.323141626569] , [ 1206936000000 , 19.231263773952] , [ 1209528000000 , 18.446256391094] , [ 1212206400000 , 17.822632399764] , [ 1214798400000 , 15.539366475979] , [ 1217476800000 , 15.255131790216] , [ 1220155200000 , 15.660963922593] , [ 1222747200000 , 13.254482273697] , [ 1225425600000 , 11.920796202299] , [ 1228021200000 , 12.122809090925] , [ 1230699600000 , 15.691026271393] , [ 1233378000000 , 14.720881635107] , [ 1235797200000 , 15.387939360044] , [ 1238472000000 , 13.765436672229] , [ 1241064000000 , 14.6314458648] , [ 1243742400000 , 14.292446536221] , [ 1246334400000 , 16.170071367016] , [ 1249012800000 , 15.948135554337] , [ 1251691200000 , 16.612872685134] , [ 1254283200000 , 18.778338719091] , [ 1256961600000 , 16.75602606542] , [ 1259557200000 , 19.385804443147] , [ 1262235600000 , 22.950590240168] , [ 1264914000000 , 23.61159018141] , [ 1267333200000 , 25.708586989581] , [ 1270008000000 , 26.883915999885] , [ 1272600000000 , 25.893486687065] , [ 1275278400000 , 24.678914263176] , [ 1277870400000 , 25.937275793023] , [ 1280548800000 , 29.46138169384] , [ 1283227200000 , 27.357322961862] , [ 1285819200000 , 29.057235285673] , [ 1288497600000 , 28.549434189386] , [ 1291093200000 , 28.506352379723] , [ 1293771600000 , 29.449241421597] , [ 1296450000000 , 25.796838168807] , [ 1298869200000 , 28.740145449189] , [ 1301544000000 , 22.091744141872] , [ 1304136000000 , 25.079662545409] , [ 1306814400000 , 23.674906973064] , [ 1309406400000 , 23.41800274293] , [ 1312084800000 , 23.243644138871] , [ 1314763200000 , 31.591854066817] , [ 1317355200000 , 31.497112374114] , [ 1320033600000 , 26.672380820431] , [ 1322629200000 , 27.297080015495] , [ 1325307600000 , 20.174315530051] , [ 1327986000000 , 19.631084213899] , [ 1330491600000 , 20.366462219462] , [ 1333166400000 , 17.429019937289] , [ 1335758400000 , 16.75543633539] , [ 1338436800000 , 16.182906906042]]
-  } , 
-  { 
-    "key" : "Consumer Staples" , 
-    "values" : [ [ 1138683600000 , 7.2800122043237] , [ 1141102800000 , 7.1187787503354] , [ 1143781200000 , 8.351887016482] , [ 1146369600000 , 8.4156698763993] , [ 1149048000000 , 8.1673298604231] , [ 1151640000000 , 5.5132447126042] , [ 1154318400000 , 6.1152537710599] , [ 1156996800000 , 6.076765091942] , [ 1159588800000 , 4.6304473798646] , [ 1162270800000 , 4.6301068469402] , [ 1164862800000 , 4.3466656309389] , [ 1167541200000 , 6.830104897003] , [ 1170219600000 , 7.241633040029] , [ 1172638800000 , 7.1432372054153] , [ 1175313600000 , 10.608942063374] , [ 1177905600000 , 10.914964549494] , [ 1180584000000 , 10.933223880565] , [ 1183176000000 , 8.3457524851265] , [ 1185854400000 , 8.1078413081882] , [ 1188532800000 , 8.2697185922474] , [ 1191124800000 , 8.4742436475968] , [ 1193803200000 , 8.4994601179319] , [ 1196398800000 , 8.7387319683243] , [ 1199077200000 , 6.8829183612895] , [ 1201755600000 , 6.984133637885] , [ 1204261200000 , 7.0860136043287] , [ 1206936000000 , 4.3961787956053] , [ 1209528000000 , 3.8699674365231] , [ 1212206400000 , 3.6928925238305] , [ 1214798400000 , 6.7571718894253] , [ 1217476800000 , 6.4367313362344] , [ 1220155200000 , 6.4048441521454] , [ 1222747200000 , 5.4643833239669] , [ 1225425600000 , 5.3150786833374] , [ 1228021200000 , 5.3011272612576] , [ 1230699600000 , 4.1203601430809] , [ 1233378000000 , 4.0881783200525] , [ 1235797200000 , 4.1928665957189] , [ 1238472000000 , 7.0249415663205] , [ 1241064000000 , 7.006530880769] , [ 1243742400000 , 6.994835633224] , [ 1246334400000 , 6.1220222336254] , [ 1249012800000 , 6.1177436137653] , [ 1251691200000 , 6.1413396231981] , [ 1254283200000 , 4.8046006145874] , [ 1256961600000 , 4.6647600660544] , [ 1259557200000 , 4.544865006255] , [ 1262235600000 , 6.0488249316539] , [ 1264914000000 , 6.3188669540206] , [ 1267333200000 , 6.5873958262306] , [ 1270008000000 , 6.2281189839578] , [ 1272600000000 , 5.8948915746059] , [ 1275278400000 , 5.5967320482214] , [ 1277870400000 , 0.99784432084837] , [ 1280548800000 , 1.0950794175359] , [ 1283227200000 , 0.94479734407491] , [ 1285819200000 , 1.222093988688] , [ 1288497600000 , 1.335093106856] , [ 1291093200000 , 1.3302565104985] , [ 1293771600000 , 1.340824670897] , [ 1296450000000 , 0] , [ 1298869200000 , 0] , [ 1301544000000 , 0] , [ 1304136000000 , 0] , [ 1306814400000 , 0] , [ 1309406400000 , 0] , [ 1312084800000 , 0] , [ 1314763200000 , 0] , [ 1317355200000 , 4.4583692315] , [ 1320033600000 , 3.6493043348059] , [ 1322629200000 , 3.8610064091761] , [ 1325307600000 , 5.5144800685202] , [ 1327986000000 , 5.1750695220792] , [ 1330491600000 , 5.6710066952691] , [ 1333166400000 , 8.5658461590953] , [ 1335758400000 , 8.6135447714243] , [ 1338436800000 , 8.0231460925212]]
-  } , 
-  { 
-    "key" : "Energy" , 
-    "values" : [ [ 1138683600000 , 1.544303464167] , [ 1141102800000 , 1.4387289432421] , [ 1143781200000 , 0] , [ 1146369600000 , 0] , [ 1149048000000 , 0] , [ 1151640000000 , 1.328626801128] , [ 1154318400000 , 1.2874050802627] , [ 1156996800000 , 1.0872743105593] , [ 1159588800000 , 0.96042562635813] , [ 1162270800000 , 0.93139372870616] , [ 1164862800000 , 0.94432167305385] , [ 1167541200000 , 1.277750166208] , [ 1170219600000 , 1.2204893886811] , [ 1172638800000 , 1.207489123122] , [ 1175313600000 , 1.2490651414113] , [ 1177905600000 , 1.2593129913052] , [ 1180584000000 , 1.373329808388] , [ 1183176000000 , 0] , [ 1185854400000 , 0] , [ 1188532800000 , 0] , [ 1191124800000 , 0] , [ 1193803200000 , 0] , [ 1196398800000 , 0] , [ 1199077200000 , 0] , [ 1201755600000 , 0] , [ 1204261200000 , 0] , [ 1206936000000 , 0] , [ 1209528000000 , 0] , [ 1212206400000 , 0] , [ 1214798400000 , 0] , [ 1217476800000 , 0] , [ 1220155200000 , 0] , [ 1222747200000 , 1.4516108933695] , [ 1225425600000 , 1.1856025268225] , [ 1228021200000 , 1.3430470355439] , [ 1230699600000 , 2.2752595354509] , [ 1233378000000 , 2.4031560010523] , [ 1235797200000 , 2.0822430731926] , [ 1238472000000 , 1.5640902826938] , [ 1241064000000 , 1.5812873972356] , [ 1243742400000 , 1.9462448548894] , [ 1246334400000 , 2.9464870223957] , [ 1249012800000 , 3.0744699383222] , [ 1251691200000 , 2.9422304628446] , [ 1254283200000 , 2.7503075599999] , [ 1256961600000 , 2.6506701800427] , [ 1259557200000 , 2.8005425319977] , [ 1262235600000 , 2.6816184971185] , [ 1264914000000 , 2.681206271327] , [ 1267333200000 , 2.8195488011259] , [ 1270008000000 , 0] , [ 1272600000000 , 0] , [ 1275278400000 , 0] , [ 1277870400000 , 1.0687057346382] , [ 1280548800000 , 1.2539400544134] , [ 1283227200000 , 1.1862969445955] , [ 1285819200000 , 0] , [ 1288497600000 , 0] , [ 1291093200000 , 0] , [ 1293771600000 , 0] , [ 1296450000000 , 1.941972859484] , [ 1298869200000 , 2.1142247697552] , [ 1301544000000 , 2.3788590206824] , [ 1304136000000 , 2.5337302877545] , [ 1306814400000 , 2.3163370395199] , [ 1309406400000 , 2.0645451843195] , [ 1312084800000 , 2.1004446672411] , [ 1314763200000 , 3.6301875804303] , [ 1317355200000 , 2.454204664652] , [ 1320033600000 , 2.196082370894] , [ 1322629200000 , 2.3358418255202] , [ 1325307600000 , 0] , [ 1327986000000 , 0] , [ 1330491600000 , 0] , [ 1333166400000 , 0.39001201038526] , [ 1335758400000 , 0.30945472725559] , [ 1338436800000 , 0.31062439305591]]
-  } , 
-  { 
-    "key" : "Financials" , 
-    "values" : [ [ 1138683600000 , 13.356778764352] , [ 1141102800000 , 13.611196863271] , [ 1143781200000 , 6.895903006119] , [ 1146369600000 , 6.9939633271352] , [ 1149048000000 , 6.7241510257675] , [ 1151640000000 , 5.5611293669516] , [ 1154318400000 , 5.6086488714041] , [ 1156996800000 , 5.4962849907033] , [ 1159588800000 , 6.9193153169279] , [ 1162270800000 , 7.0016334389777] , [ 1164862800000 , 6.7865422443273] , [ 1167541200000 , 9.0006454225383] , [ 1170219600000 , 9.2233916171431] , [ 1172638800000 , 8.8929316009479] , [ 1175313600000 , 10.345937520404] , [ 1177905600000 , 10.075914677026] , [ 1180584000000 , 10.089006188111] , [ 1183176000000 , 10.598330295008] , [ 1185854400000 , 9.968954653301] , [ 1188532800000 , 9.7740580198146] , [ 1191124800000 , 10.558483060626] , [ 1193803200000 , 9.9314651823603] , [ 1196398800000 , 9.3997715873769] , [ 1199077200000 , 8.4086493387262] , [ 1201755600000 , 8.9698309085926] , [ 1204261200000 , 8.2778357995396] , [ 1206936000000 , 8.8585045600123] , [ 1209528000000 , 8.7013756413322] , [ 1212206400000 , 7.7933605469443] , [ 1214798400000 , 7.0236183483064] , [ 1217476800000 , 6.9873088186829] , [ 1220155200000 , 6.8031713070097] , [ 1222747200000 , 6.6869531315723] , [ 1225425600000 , 6.138256993963] , [ 1228021200000 , 5.6434994016354] , [ 1230699600000 , 5.495220262512] , [ 1233378000000 , 4.6885326869846] , [ 1235797200000 , 4.4524349883438] , [ 1238472000000 , 5.6766520778185] , [ 1241064000000 , 5.7675774480752] , [ 1243742400000 , 5.7882863168337] , [ 1246334400000 , 7.2666010034924] , [ 1249012800000 , 7.519182132226] , [ 1251691200000 , 7.849651451445] , [ 1254283200000 , 10.383992037985] , [ 1256961600000 , 9.0653691861818] , [ 1259557200000 , 9.6705248324159] , [ 1262235600000 , 10.856380561349] , [ 1264914000000 , 11.27452370892] , [ 1267333200000 , 11.754156529088] , [ 1270008000000 , 8.2870811422456] , [ 1272600000000 , 8.0210264360699] , [ 1275278400000 , 7.5375074474865] , [ 1277870400000 , 8.3419527338039] , [ 1280548800000 , 9.4197471818443] , [ 1283227200000 , 8.7321733185797] , [ 1285819200000 , 9.6627062648126] , [ 1288497600000 , 10.187962234549] , [ 1291093200000 , 9.8144201733476] , [ 1293771600000 , 10.275723361713] , [ 1296450000000 , 16.796066079353] , [ 1298869200000 , 17.543254984075] , [ 1301544000000 , 16.673660675084] , [ 1304136000000 , 17.963944353609] , [ 1306814400000 , 16.637740867211] , [ 1309406400000 , 15.84857094609] , [ 1312084800000 , 14.767303362182] , [ 1314763200000 , 24.778452182432] , [ 1317355200000 , 18.370353229999] , [ 1320033600000 , 15.2531374291] , [ 1322629200000 , 14.989600840649] , [ 1325307600000 , 16.052539160125] , [ 1327986000000 , 16.424390322793] , [ 1330491600000 , 17.884020741105] , [ 1333166400000 , 7.1424929577921] , [ 1335758400000 , 7.8076213051482] , [ 1338436800000 , 7.2462684949232]]
-  } , 
-  { 
-    "key" : "Health Care" , 
-    "values" : [ [ 1138683600000 , 14.212410956029] , [ 1141102800000 , 13.973193618249] , [ 1143781200000 , 15.218233920665] , [ 1146369600000 , 14.38210972745] , [ 1149048000000 , 13.894310878491] , [ 1151640000000 , 15.593086090032] , [ 1154318400000 , 16.244839695188] , [ 1156996800000 , 16.017088850646] , [ 1159588800000 , 14.183951830055] , [ 1162270800000 , 14.148523245697] , [ 1164862800000 , 13.424326059972] , [ 1167541200000 , 12.974450435753] , [ 1170219600000 , 13.23247041802] , [ 1172638800000 , 13.318762655574] , [ 1175313600000 , 15.961407746104] , [ 1177905600000 , 16.287714639805] , [ 1180584000000 , 16.246590583889] , [ 1183176000000 , 17.564505594809] , [ 1185854400000 , 17.872725373165] , [ 1188532800000 , 18.018998508757] , [ 1191124800000 , 15.584518016603] , [ 1193803200000 , 15.480850647181] , [ 1196398800000 , 15.699120036984] , [ 1199077200000 , 19.184281817226] , [ 1201755600000 , 19.691226605207] , [ 1204261200000 , 18.982314051295] , [ 1206936000000 , 18.707820309008] , [ 1209528000000 , 17.459630929761] , [ 1212206400000 , 16.500616076782] , [ 1214798400000 , 18.086324003979] , [ 1217476800000 , 18.929464156258] , [ 1220155200000 , 18.233728682084] , [ 1222747200000 , 16.315776297325] , [ 1225425600000 , 14.63289219025] , [ 1228021200000 , 14.667835024478] , [ 1230699600000 , 13.946993947308] , [ 1233378000000 , 14.394304684397] , [ 1235797200000 , 13.724462792967] , [ 1238472000000 , 10.930879035806] , [ 1241064000000 , 9.8339915513708] , [ 1243742400000 , 10.053858541872] , [ 1246334400000 , 11.786998438287] , [ 1249012800000 , 11.780994901769] , [ 1251691200000 , 11.305889670276] , [ 1254283200000 , 10.918452290083] , [ 1256961600000 , 9.6811395055706] , [ 1259557200000 , 10.971529744038] , [ 1262235600000 , 13.330210480209] , [ 1264914000000 , 14.592637568961] , [ 1267333200000 , 14.605329141157] , [ 1270008000000 , 13.936853794037] , [ 1272600000000 , 12.189480759072] , [ 1275278400000 , 11.676151385046] , [ 1277870400000 , 13.058852800017] , [ 1280548800000 , 13.62891543203] , [ 1283227200000 , 13.811107569918] , [ 1285819200000 , 13.786494560787] , [ 1288497600000 , 14.04516285753] , [ 1291093200000 , 13.697412447288] , [ 1293771600000 , 13.677681376221] , [ 1296450000000 , 19.961511864531] , [ 1298869200000 , 21.049198298158] , [ 1301544000000 , 22.687631094008] , [ 1304136000000 , 25.469010617433] , [ 1306814400000 , 24.883799437121] , [ 1309406400000 , 24.203843814248] , [ 1312084800000 , 22.138760964038] , [ 1314763200000 , 16.034636966228] , [ 1317355200000 , 15.394958944556] , [ 1320033600000 , 12.625642461969] , [ 1322629200000 , 12.973735699739] , [ 1325307600000 , 15.786018336149] , [ 1327986000000 , 15.227368020134] , [ 1330491600000 , 15.899752650734] , [ 1333166400000 , 18.994731295388] , [ 1335758400000 , 18.450055817702] , [ 1338436800000 , 17.863719889669]]
-  } , 
-  { 
-    "key" : "Industrials" , 
-    "values" : [ [ 1138683600000 , 7.1590087090398] , [ 1141102800000 , 7.1297210970108] , [ 1143781200000 , 5.5774588290586] , [ 1146369600000 , 5.4977254491156] , [ 1149048000000 , 5.5138153113634] , [ 1151640000000 , 4.3198084032122] , [ 1154318400000 , 3.9179295839125] , [ 1156996800000 , 3.8110093051479] , [ 1159588800000 , 5.5629020916939] , [ 1162270800000 , 5.7241673711336] , [ 1164862800000 , 5.4715049695004] , [ 1167541200000 , 4.9193763571618] , [ 1170219600000 , 5.136053947247] , [ 1172638800000 , 5.1327258759766] , [ 1175313600000 , 5.1888943925082] , [ 1177905600000 , 5.5191481293345] , [ 1180584000000 , 5.6093625614921] , [ 1183176000000 , 4.2706312987397] , [ 1185854400000 , 4.4453235132117] , [ 1188532800000 , 4.6228003109761] , [ 1191124800000 , 5.0645764756954] , [ 1193803200000 , 5.0723447230959] , [ 1196398800000 , 5.1457765818846] , [ 1199077200000 , 5.4067851597282] , [ 1201755600000 , 5.472241916816] , [ 1204261200000 , 5.3742740389688] , [ 1206936000000 , 6.251751933664] , [ 1209528000000 , 6.1406852153472] , [ 1212206400000 , 5.8164385627465] , [ 1214798400000 , 5.4255846656171] , [ 1217476800000 , 5.3738499417204] , [ 1220155200000 , 5.1815627753979] , [ 1222747200000 , 5.0305983235349] , [ 1225425600000 , 4.6823058607165] , [ 1228021200000 , 4.5941481589093] , [ 1230699600000 , 5.4669598474575] , [ 1233378000000 , 5.1249037357] , [ 1235797200000 , 4.3504421250742] , [ 1238472000000 , 4.6260881026002] , [ 1241064000000 , 5.0140402458946] , [ 1243742400000 , 4.7458462454774] , [ 1246334400000 , 6.0437019654564] , [ 1249012800000 , 6.4595216249754] , [ 1251691200000 , 6.6420468254155] , [ 1254283200000 , 5.8927271960913] , [ 1256961600000 , 5.4712108838003] , [ 1259557200000 , 6.1220254207747] , [ 1262235600000 , 5.5385935169255] , [ 1264914000000 , 5.7383377612639] , [ 1267333200000 , 6.1715976730415] , [ 1270008000000 , 4.0102262681174] , [ 1272600000000 , 3.769389679692] , [ 1275278400000 , 3.5301571031152] , [ 1277870400000 , 2.7660252652526] , [ 1280548800000 , 3.1409983385775] , [ 1283227200000 , 3.0528024863055] , [ 1285819200000 , 4.3126123157971] , [ 1288497600000 , 4.594654041683] , [ 1291093200000 , 4.5424126126793] , [ 1293771600000 , 4.7790043987302] , [ 1296450000000 , 7.4969154058289] , [ 1298869200000 , 7.9424751557821] , [ 1301544000000 , 7.1560736250547] , [ 1304136000000 , 7.9478117337855] , [ 1306814400000 , 7.4109214848895] , [ 1309406400000 , 7.5966457641101] , [ 1312084800000 , 7.165754444071] , [ 1314763200000 , 5.4816702524302] , [ 1317355200000 , 4.9893656089584] , [ 1320033600000 , 4.498385105327] , [ 1322629200000 , 4.6776090358151] , [ 1325307600000 , 8.1350814368063] , [ 1327986000000 , 8.0732769990652] , [ 1330491600000 , 8.5602340387277] , [ 1333166400000 , 5.1293714074325] , [ 1335758400000 , 5.2586794619016] , [ 1338436800000 , 5.1100853569977]]
-  } , 
-  { 
-    "key" : "Information Technology" , 
-    "values" : [ [ 1138683600000 , 13.242301508051] , [ 1141102800000 , 12.863536342042] , [ 1143781200000 , 21.034044171629] , [ 1146369600000 , 21.419084618803] , [ 1149048000000 , 21.142678863691] , [ 1151640000000 , 26.568489677529] , [ 1154318400000 , 24.839144939905] , [ 1156996800000 , 25.456187462167] , [ 1159588800000 , 26.350164502826] , [ 1162270800000 , 26.47833320519] , [ 1164862800000 , 26.425979547847] , [ 1167541200000 , 28.191461582256] , [ 1170219600000 , 28.930307448808] , [ 1172638800000 , 29.521413891117] , [ 1175313600000 , 28.188285966466] , [ 1177905600000 , 27.704619625832] , [ 1180584000000 , 27.490862424829] , [ 1183176000000 , 28.770679721286] , [ 1185854400000 , 29.060480671449] , [ 1188532800000 , 28.240998844973] , [ 1191124800000 , 33.004893194127] , [ 1193803200000 , 34.075180359928] , [ 1196398800000 , 32.548560664833] , [ 1199077200000 , 30.629727432728] , [ 1201755600000 , 28.642858788159] , [ 1204261200000 , 27.973575227842] , [ 1206936000000 , 27.393351882726] , [ 1209528000000 , 28.476095288523] , [ 1212206400000 , 29.29667866426] , [ 1214798400000 , 29.222333802896] , [ 1217476800000 , 28.092966093843] , [ 1220155200000 , 28.107159262922] , [ 1222747200000 , 25.482974832098] , [ 1225425600000 , 21.208115993834] , [ 1228021200000 , 20.295043095268] , [ 1230699600000 , 15.925754618401] , [ 1233378000000 , 17.162864628346] , [ 1235797200000 , 17.084345773174] , [ 1238472000000 , 22.246007102281] , [ 1241064000000 , 24.530543998509] , [ 1243742400000 , 25.084184918242] , [ 1246334400000 , 16.606166527358] , [ 1249012800000 , 17.239620011628] , [ 1251691200000 , 17.336739127379] , [ 1254283200000 , 25.478492475753] , [ 1256961600000 , 23.017152085245] , [ 1259557200000 , 25.617745423683] , [ 1262235600000 , 24.061133998642] , [ 1264914000000 , 23.223933318644] , [ 1267333200000 , 24.425887263937] , [ 1270008000000 , 35.501471156693] , [ 1272600000000 , 33.775013878676] , [ 1275278400000 , 30.417993630285] , [ 1277870400000 , 30.023598978467] , [ 1280548800000 , 33.327519522436] , [ 1283227200000 , 31.963388450371] , [ 1285819200000 , 30.498967232092] , [ 1288497600000 , 32.403696817912] , [ 1291093200000 , 31.47736071922] , [ 1293771600000 , 31.53259666241] , [ 1296450000000 , 41.760282761548] , [ 1298869200000 , 45.605771243237] , [ 1301544000000 , 39.986557966215] , [ 1304136000000 , 43.846330510051] , [ 1306814400000 , 39.857316881857] , [ 1309406400000 , 37.675127768208] , [ 1312084800000 , 35.775077970313] , [ 1314763200000 , 48.631009702577] , [ 1317355200000 , 42.830831754505] , [ 1320033600000 , 35.611502589362] , [ 1322629200000 , 35.320136981738] , [ 1325307600000 , 31.564136901516] , [ 1327986000000 , 32.074407502433] , [ 1330491600000 , 35.053013769976] , [ 1333166400000 , 26.434568573937] , [ 1335758400000 , 25.305617871002] , [ 1338436800000 , 24.520919418236]]
-  } , 
-  { 
-    "key" : "Materials" , 
-    "values" : [ [ 1138683600000 , 5.5806167415681] , [ 1141102800000 , 5.4539047069985] , [ 1143781200000 , 7.6728842432362] , [ 1146369600000 , 7.719946716654] , [ 1149048000000 , 8.0144619912942] , [ 1151640000000 , 7.942223133434] , [ 1154318400000 , 8.3998279827444] , [ 1156996800000 , 8.532324572605] , [ 1159588800000 , 4.7324285199763] , [ 1162270800000 , 4.7402397487697] , [ 1164862800000 , 4.9042069355168] , [ 1167541200000 , 5.9583963430882] , [ 1170219600000 , 6.3693899239171] , [ 1172638800000 , 6.261153903813] , [ 1175313600000 , 5.3443942184584] , [ 1177905600000 , 5.4932111235361] , [ 1180584000000 , 5.5747393101109] , [ 1183176000000 , 5.3833633060013] , [ 1185854400000 , 5.5125898831832] , [ 1188532800000 , 5.8116112661327] , [ 1191124800000 , 4.3962296939996] , [ 1193803200000 , 4.6967663605521] , [ 1196398800000 , 4.7963004350914] , [ 1199077200000 , 4.1817985183351] , [ 1201755600000 , 4.3797643870182] , [ 1204261200000 , 4.6966642197965] , [ 1206936000000 , 4.3609995132565] , [ 1209528000000 , 4.4736290996496] , [ 1212206400000 , 4.3749762738128] , [ 1214798400000 , 3.3274661194507] , [ 1217476800000 , 3.0316184691337] , [ 1220155200000 , 2.5718140204728] , [ 1222747200000 , 2.7034994044603] , [ 1225425600000 , 2.2033786591364] , [ 1228021200000 , 1.9850621240805] , [ 1230699600000 , 0] , [ 1233378000000 , 0] , [ 1235797200000 , 0] , [ 1238472000000 , 0] , [ 1241064000000 , 0] , [ 1243742400000 , 0] , [ 1246334400000 , 0] , [ 1249012800000 , 0] , [ 1251691200000 , 0] , [ 1254283200000 , 0.44495950017788] , [ 1256961600000 , 0.33945469262483] , [ 1259557200000 , 0.38348269455195] , [ 1262235600000 , 0] , [ 1264914000000 , 0] , [ 1267333200000 , 0] , [ 1270008000000 , 0] , [ 1272600000000 , 0] , [ 1275278400000 , 0] , [ 1277870400000 , 0] , [ 1280548800000 , 0] , [ 1283227200000 , 0] , [ 1285819200000 , 0] , [ 1288497600000 , 0] , [ 1291093200000 , 0] , [ 1293771600000 , 0] , [ 1296450000000 , 0.52216435716176] , [ 1298869200000 , 0.59275786698454] , [ 1301544000000 , 0] , [ 1304136000000 , 0] , [ 1306814400000 , 0] , [ 1309406400000 , 0] , [ 1312084800000 , 0] , [ 1314763200000 , 0] , [ 1317355200000 , 0] , [ 1320033600000 , 0] , [ 1322629200000 , 0] , [ 1325307600000 , 0] , [ 1327986000000 , 0] , [ 1330491600000 , 0] , [ 1333166400000 , 0] , [ 1335758400000 , 0] , [ 1338436800000 , 0]]
-  } , 
-  { 
-    "key" : "Telecommunication Services" , 
-    "values" : [ [ 1138683600000 , 3.7056975170243] , [ 1141102800000 , 3.7561118692318] , [ 1143781200000 , 2.861913700854] , [ 1146369600000 , 2.9933744103381] , [ 1149048000000 , 2.7127537218463] , [ 1151640000000 , 3.1195497076283] , [ 1154318400000 , 3.4066964004508] , [ 1156996800000 , 3.3754571113569] , [ 1159588800000 , 2.2965579982924] , [ 1162270800000 , 2.4486818633018] , [ 1164862800000 , 2.4002308848517] , [ 1167541200000 , 1.9649579750349] , [ 1170219600000 , 1.9385263638056] , [ 1172638800000 , 1.9128975336387] , [ 1175313600000 , 2.3412869836298] , [ 1177905600000 , 2.4337870351445] , [ 1180584000000 , 2.62179703171] , [ 1183176000000 , 3.2642864957929] , [ 1185854400000 , 3.3200396223709] , [ 1188532800000 , 3.3934212707572] , [ 1191124800000 , 4.2822327088179] , [ 1193803200000 , 4.1474964228541] , [ 1196398800000 , 4.1477082879801] , [ 1199077200000 , 5.2947122916128] , [ 1201755600000 , 5.2919843508028] , [ 1204261200000 , 5.1989783050309] , [ 1206936000000 , 3.5603057673513] , [ 1209528000000 , 3.3009087690692] , [ 1212206400000 , 3.1784852603792] , [ 1214798400000 , 4.5889503538868] , [ 1217476800000 , 4.401779617494] , [ 1220155200000 , 4.2208301828278] , [ 1222747200000 , 3.89396671475] , [ 1225425600000 , 3.0423832241354] , [ 1228021200000 , 3.135520611578] , [ 1230699600000 , 1.9631418164089] , [ 1233378000000 , 1.8963543874958] , [ 1235797200000 , 1.8266636017025] , [ 1238472000000 , 0.93136635895188] , [ 1241064000000 , 0.92737801918888] , [ 1243742400000 , 0.97591889805002] , [ 1246334400000 , 2.6841193805515] , [ 1249012800000 , 2.5664341140531] , [ 1251691200000 , 2.3887523699873] , [ 1254283200000 , 1.1737801663681] , [ 1256961600000 , 1.0953582317281] , [ 1259557200000 , 1.2495674976653] , [ 1262235600000 , 0.36607452464754] , [ 1264914000000 , 0.3548719047291] , [ 1267333200000 , 0.36769242398939] , [ 1270008000000 , 0] , [ 1272600000000 , 0] , [ 1275278400000 , 0] , [ 1277870400000 , 0] , [ 1280548800000 , 0] , [ 1283227200000 , 0] , [ 1285819200000 , 0.85450741275337] , [ 1288497600000 , 0.91360317921637] , [ 1291093200000 , 0.89647678692269] , [ 1293771600000 , 0.87800687192639] , [ 1296450000000 , 0] , [ 1298869200000 , 0] , [ 1301544000000 , 0.43668720882994] , [ 1304136000000 , 0.4756523602692] , [ 1306814400000 , 0.46947368328469] , [ 1309406400000 , 0.45138896152316] , [ 1312084800000 , 0.43828726648117] , [ 1314763200000 , 2.0820861395316] , [ 1317355200000 , 0.9364411075395] , [ 1320033600000 , 0.60583907839773] , [ 1322629200000 , 0.61096950747437] , [ 1325307600000 , 0] , [ 1327986000000 , 0] , [ 1330491600000 , 0] , [ 1333166400000 , 0] , [ 1335758400000 , 0] , [ 1338436800000 , 0]]
-  } , 
-  { 
-    "key" : "Utilities" , 
-    "values" : [ [ 1138683600000 , 0] , [ 1141102800000 , 0] , [ 1143781200000 , 0] , [ 1146369600000 , 0] , [ 1149048000000 , 0] , [ 1151640000000 , 0] , [ 1154318400000 , 0] , [ 1156996800000 , 0] , [ 1159588800000 , 0] , [ 1162270800000 , 0] , [ 1164862800000 , 0] , [ 1167541200000 , 0] , [ 1170219600000 , 0] , [ 1172638800000 , 0] , [ 1175313600000 , 0] , [ 1177905600000 , 0] , [ 1180584000000 , 0] , [ 1183176000000 , 0] , [ 1185854400000 , 0] , [ 1188532800000 , 0] , [ 1191124800000 , 0] , [ 1193803200000 , 0] , [ 1196398800000 , 0] , [ 1199077200000 , 0] , [ 1201755600000 , 0] , [ 1204261200000 , 0] , [ 1206936000000 , 0] , [ 1209528000000 , 0] , [ 1212206400000 , 0] , [ 1214798400000 , 0] , [ 1217476800000 , 0] , [ 1220155200000 , 0] , [ 1222747200000 , 0] , [ 1225425600000 , 0] , [ 1228021200000 , 0] , [ 1230699600000 , 0] , [ 1233378000000 , 0] , [ 1235797200000 , 0] , [ 1238472000000 , 0] , [ 1241064000000 , 0] , [ 1243742400000 , 0] , [ 1246334400000 , 0] , [ 1249012800000 , 0] , [ 1251691200000 , 0] , [ 1254283200000 , 0] , [ 1256961600000 , 0] , [ 1259557200000 , 0] , [ 1262235600000 , 0] , [ 1264914000000 , 0] , [ 1267333200000 , 0] , [ 1270008000000 , 0] , [ 1272600000000 , 0] , [ 1275278400000 , 0] , [ 1277870400000 , 0] , [ 1280548800000 , 0] , [ 1283227200000 , 0] , [ 1285819200000 , 0] , [ 1288497600000 , 0] , [ 1291093200000 , 0] , [ 1293771600000 , 0] , [ 1296450000000 , 0] , [ 1298869200000 , 0] , [ 1301544000000 , 0] , [ 1304136000000 , 0] , [ 1306814400000 , 0] , [ 1309406400000 , 0] , [ 1312084800000 , 0] , [ 1314763200000 , 0] , [ 1317355200000 , 0] , [ 1320033600000 , 0] , [ 1322629200000 , 0] , [ 1325307600000 , 0] , [ 1327986000000 , 0] , [ 1330491600000 , 0] , [ 1333166400000 , 0] , [ 1335758400000 , 0] , [ 1338436800000 , 0]]
-  } 
-].map(function(series) {
-  series.values = series.values.map(function(d) {
-    return { x: d[0], y: d[1] }
-  });
-  return series;
-});
-
-
-
-var histcatexpshort = [ 
-  { 
-    "key" : "Consumer Discretionary" , 
-    "values" : [ [ 1138683600000 , -0.62238434102863] , [ 1141102800000 , -0.61484565039024] , [ 1143781200000 , -1.0769367918668] , [ 1146369600000 , -1.2221156604129] , [ 1149048000000 , -1.2434858263377] , [ 1151640000000 , -0.58606435489597] , [ 1154318400000 , -0.61478911495141] , [ 1156996800000 , -0.61429362688591] , [ 1159588800000 , -1.1168614112788] , [ 1162270800000 , -1.1510268716612] , [ 1164862800000 , -1.1104724164222] , [ 1167541200000 , -1.2298338563471] , [ 1170219600000 , -1.5053664389104] , [ 1172638800000 , -1.5535266372193] , [ 1175313600000 , -3.1690472535854] , [ 1177905600000 , -3.1273013967041] , [ 1180584000000 , -3.155466271777] , [ 1183176000000 , -3.7158562579437] , [ 1185854400000 , -3.8244546635586] , [ 1188532800000 , -3.5524464859972] , [ 1191124800000 , -3.0472339109128] , [ 1193803200000 , -3.064978140815] , [ 1196398800000 , -3.0818130124986] , [ 1199077200000 , -2.9806791138312] , [ 1201755600000 , -3.7360958775824] , [ 1204261200000 , -3.4687841733263] , [ 1206936000000 , -3.3702018615806] , [ 1209528000000 , -3.1982756208679] , [ 1212206400000 , -3.0489433155104] , [ 1214798400000 , -3.7008275605963] , [ 1217476800000 , -3.8980507260892] , [ 1220155200000 , -3.7680083260241] , [ 1222747200000 , -3.2061890012391] , [ 1225425600000 , -2.6727551440484] , [ 1228021200000 , -2.4469327462935] , [ 1230699600000 , -3.0192419668784] , [ 1233378000000 , -2.892958553476] , [ 1235797200000 , -3.1153570053479] , [ 1238472000000 , -2.9927580570711] , [ 1241064000000 , -3.5061796706294] , [ 1243742400000 , -3.2944159516725] , [ 1246334400000 , -3.4154213240617] , [ 1249012800000 , -3.6492125438171] , [ 1251691200000 , -3.6674164998394] , [ 1254283200000 , -4.6271484977727] , [ 1256961600000 , -4.2433407292676] , [ 1259557200000 , -4.4742625247274] , [ 1262235600000 , -5.2078214612359] , [ 1264914000000 , -5.2209579214469] , [ 1267333200000 , -5.4596395756061] , [ 1270008000000 , -5.6906459276584] , [ 1272600000000 , -6.4981737808665] , [ 1275278400000 , -6.2563044048578] , [ 1277870400000 , -6.175479487959] , [ 1280548800000 , -6.6641002427295] , [ 1283227200000 , -6.3648667745556] , [ 1285819200000 , -5.0270168607884] , [ 1288497600000 , -5.1186072976233] , [ 1291093200000 , -5.1127601587872] , [ 1293771600000 , -5.3015262972641] , [ 1296450000000 , -4.4295728671596] , [ 1298869200000 , -4.5488139745696] , [ 1301544000000 , -2.9021260315957] , [ 1304136000000 , -3.1482096241139] , [ 1306814400000 , -2.8648831814763] , [ 1309406400000 , -2.8149423433441] , [ 1312084800000 , -2.6350669145713] , [ 1314763200000 , -5.9871754759038] , [ 1317355200000 , -8.6127555816399] , [ 1320033600000 , -7.0712887348892] , [ 1322629200000 , -7.3930257999857] , [ 1325307600000 , -6.5183071556304] , [ 1327986000000 , -7.4388913793503] , [ 1330491600000 , -8.2134465182649] , [ 1333166400000 , -7.7836036697105] , [ 1335758400000 , -8.0955053683936] , [ 1338436800000 , -8.0981845818893]]
-  } , 
-  { 
-    "key" : "Consumer Staples" , 
-    "values" : [ [ 1138683600000 , 0] , [ 1141102800000 , 0] , [ 1143781200000 , 0] , [ 1146369600000 , 0] , [ 1149048000000 , 0] , [ 1151640000000 , 0] , [ 1154318400000 , 0] , [ 1156996800000 , 0] , [ 1159588800000 , 0] , [ 1162270800000 , 0] , [ 1164862800000 , 0] , [ 1167541200000 , -0.24102139376003] , [ 1170219600000 , -0.69960584365035] , [ 1172638800000 , -0.67365051426185] , [ 1175313600000 , 0] , [ 1177905600000 , 0] , [ 1180584000000 , 0] , [ 1183176000000 , -0.31429312464988] , [ 1185854400000 , -0.90018700397153] , [ 1188532800000 , -0.96926214328714] , [ 1191124800000 , -1.1343386468131] , [ 1193803200000 , -1.1335426595455] , [ 1196398800000 , -1.2327663032424] , [ 1199077200000 , -0.41027135492155] , [ 1201755600000 , -0.41779167524802] , [ 1204261200000 , -0.38133883625885] , [ 1206936000000 , 0] , [ 1209528000000 , -0.32550520320253] , [ 1212206400000 , -0.33185144615505] , [ 1214798400000 , -0.68609668877894] , [ 1217476800000 , -0.70001207744308] , [ 1220155200000 , -0.68378680840919] , [ 1222747200000 , -0.40908783182034] , [ 1225425600000 , -0.39074266525646] , [ 1228021200000 , -0.40358490474562] , [ 1230699600000 , -0.85752207262267] , [ 1233378000000 , -0.74395750438805] , [ 1235797200000 , -0.70718832429489] , [ 1238472000000 , -0.76244465406965] , [ 1241064000000 , -0.67618572591984] , [ 1243742400000 , -0.67649596761402] , [ 1246334400000 , -0.94618002703247] , [ 1249012800000 , -0.95408485581014] , [ 1251691200000 , -0.96272139504276] , [ 1254283200000 , 0] , [ 1256961600000 , 0] , [ 1259557200000 , 0] , [ 1262235600000 , 0] , [ 1264914000000 , 0] , [ 1267333200000 , 0] , [ 1270008000000 , -0.25516420149471] , [ 1272600000000 , -0.24106264576017] , [ 1275278400000 , -0.22802547751448] , [ 1277870400000 , -0.62187524046697] , [ 1280548800000 , -0.72155608677106] , [ 1283227200000 , -0.70221659944774] , [ 1285819200000 , -1.1117002584543] , [ 1288497600000 , -1.190911001336] , [ 1291093200000 , -1.1781082003972] , [ 1293771600000 , -1.2125860264875] , [ 1296450000000 , -1.7748010365657] , [ 1298869200000 , -1.8919594178596] , [ 1301544000000 , -1.7077946421533] , [ 1304136000000 , -2.024238803094] , [ 1306814400000 , -1.9769844081819] , [ 1309406400000 , -2.0730275464065] , [ 1312084800000 , -1.9690128240888] , [ 1314763200000 , -5.5557852269348] , [ 1317355200000 , -7.2527933190641] , [ 1320033600000 , -5.7367677053109] , [ 1322629200000 , -6.0409316206662] , [ 1325307600000 , -4.6511525539195] , [ 1327986000000 , -4.526116059083] , [ 1330491600000 , -4.846292325197] , [ 1333166400000 , -2.2663198779425] , [ 1335758400000 , -2.4172072568564] , [ 1338436800000 , -2.3204729601189]]
-  } , 
-  { 
-    "key" : "Energy" , 
-    "values" : [ [ 1138683600000 , -0.95707527558303] , [ 1141102800000 , -0.78324346694487] , [ 1143781200000 , -1.2905241058019] , [ 1146369600000 , -1.3880880486779] , [ 1149048000000 , -1.3337247185993] , [ 1151640000000 , -1.0342112071924] , [ 1154318400000 , -1.1264764100183] , [ 1156996800000 , -1.0001002640852] , [ 1159588800000 , -0.85341153093953] , [ 1162270800000 , -0.88452017844596] , [ 1164862800000 , -0.84305725300642] , [ 1167541200000 , -1.0874455682301] , [ 1170219600000 , -1.1714969043168] , [ 1172638800000 , -1.1445856467934] , [ 1175313600000 , -1.1928513334073] , [ 1177905600000 , -1.2365691634265] , [ 1180584000000 , -1.2690940962478] , [ 1183176000000 , -1.662233774695] , [ 1185854400000 , -1.745760538781] , [ 1188532800000 , -1.5209200931271] , [ 1191124800000 , -1.7874791820886] , [ 1193803200000 , -1.7755668105117] , [ 1196398800000 , -1.5456069064618] , [ 1199077200000 , -1.7077541586335] , [ 1201755600000 , -1.6462081650757] , [ 1204261200000 , -1.8624735339628] , [ 1206936000000 , -0.71073453533048] , [ 1209528000000 , -0.75380709640219] , [ 1212206400000 , -0.71020554911716] , [ 1214798400000 , -1.2077850914504] , [ 1217476800000 , -1.0505576787644] , [ 1220155200000 , -0.97804595164878] , [ 1222747200000 , -0.34591294663671] , [ 1225425600000 , -0.19958331514025] , [ 1228021200000 , -0.17599782216296] , [ 1230699600000 , -0.49577714121027] , [ 1233378000000 , -0.51644059173978] , [ 1235797200000 , -0.48576859637083] , [ 1238472000000 , -0.75596531126452] , [ 1241064000000 , -0.72073358315801] , [ 1243742400000 , -0.82125996732294] , [ 1246334400000 , -1.4933216860121] , [ 1249012800000 , -1.5003760525933] , [ 1251691200000 , -1.4744921420596] , [ 1254283200000 , -1.8197844060652] , [ 1256961600000 , -1.6558574419626] , [ 1259557200000 , -1.7256149254159] , [ 1262235600000 , -2.7667194124217] , [ 1264914000000 , -2.9113351806903] , [ 1267333200000 , -3.0172806042796] , [ 1270008000000 , -2.8607175559701] , [ 1272600000000 , -2.629226972169] , [ 1275278400000 , -2.1855196883832] , [ 1277870400000 , 0] , [ 1280548800000 , 0] , [ 1283227200000 , 0] , [ 1285819200000 , -1.3788733828844] , [ 1288497600000 , -1.4136792139765] , [ 1291093200000 , -1.5176522942901] , [ 1293771600000 , -1.5776651933208] , [ 1296450000000 , -1.7171675182182] , [ 1298869200000 , -1.8121885250566] , [ 1301544000000 , -1.2221934283206] , [ 1304136000000 , -1.2910715239439] , [ 1306814400000 , -1.1492301612576] , [ 1309406400000 , -1.0613891302841] , [ 1312084800000 , -0.99605193205308] , [ 1314763200000 , -1.7324212072278] , [ 1317355200000 , -1.5226856867477] , [ 1320033600000 , -1.3159138896549] , [ 1322629200000 , -1.3925952659299] , [ 1325307600000 , -1.59624913621] , [ 1327986000000 , -1.5235879880296] , [ 1330491600000 , -1.7315573519279] , [ 1333166400000 , -0.86883431220926] , [ 1335758400000 , -0.90144871282829] , [ 1338436800000 , -0.7010492182517]]
-  } , 
-  { 
-    "key" : "Financials" , 
-    "values" : [ [ 1138683600000 , -0.56797103580254] , [ 1141102800000 , -0.57324319174933] , [ 1143781200000 , -1.1014818753272] , [ 1146369600000 , -1.1480256918118] , [ 1149048000000 , -1.0709335336775] , [ 1151640000000 , -0.84876993929658] , [ 1154318400000 , -0.88122638919979] , [ 1156996800000 , -0.86421146074279] , [ 1159588800000 , -0.95093689377974] , [ 1162270800000 , -0.96646862382248] , [ 1164862800000 , -0.96726919442167] , [ 1167541200000 , -0.99874655234936] , [ 1170219600000 , -1.0004843898938] , [ 1172638800000 , -0.9925349676815] , [ 1175313600000 , -1.1888941931287] , [ 1177905600000 , -1.9402228220929] , [ 1180584000000 , -2.03915987194] , [ 1183176000000 , -2.4620526931074] , [ 1185854400000 , -2.2423544651877] , [ 1188532800000 , -1.8790998536037] , [ 1191124800000 , -0.43246873489492] , [ 1193803200000 , -0.40142684216371] , [ 1196398800000 , -0.35646635110466] , [ 1199077200000 , -0.90385702817642] , [ 1201755600000 , -0.86997575249605] , [ 1204261200000 , -0.80101406775415] , [ 1206936000000 , 0] , [ 1209528000000 , 0] , [ 1212206400000 , 0] , [ 1214798400000 , -0.31816167663298] , [ 1217476800000 , -0.309250081849] , [ 1220155200000 , -0.27723698582762] , [ 1222747200000 , -0.32001379372079] , [ 1225425600000 , -0.1940212908561] , [ 1228021200000 , -0.051964569203423] , [ 1230699600000 , -0.68342686502452] , [ 1233378000000 , -0.57645644730726] , [ 1235797200000 , -0.50860972184555] , [ 1238472000000 , -0.44405217759605] , [ 1241064000000 , -0.45224333626901] , [ 1243742400000 , -0.41691818252313] , [ 1246334400000 , -2.4654561579904] , [ 1249012800000 , -2.5473566378551] , [ 1251691200000 , -2.8340604021307] , [ 1254283200000 , -1.8452445924041] , [ 1256961600000 , -1.5626544265386] , [ 1259557200000 , -1.707842764916] , [ 1262235600000 , -1.2237258567344] , [ 1264914000000 , -1.9756896168227] , [ 1267333200000 , -2.0920321696833] , [ 1270008000000 , -1.9782327706952] , [ 1272600000000 , -2.0416328165753] , [ 1275278400000 , -1.7816736134798] , [ 1277870400000 , -0.66092275437689] , [ 1280548800000 , -0.73608099025756] , [ 1283227200000 , -0.63686713461189] , [ 1285819200000 , -0.0024159482973197] , [ 1288497600000 , -0.0023052643588188] , [ 1291093200000 , -0.0023008251965446] , [ 1293771600000 , -0.002247807834351] , [ 1296450000000 , -0.62004345920743] , [ 1298869200000 , -0.69634926653235] , [ 1301544000000 , -0.76013525555354] , [ 1304136000000 , -1.505368495849] , [ 1306814400000 , -1.3456949237707] , [ 1309406400000 , -1.3013934898695] , [ 1312084800000 , -1.183199519395] , [ 1314763200000 , -0.0074317809719494] , [ 1317355200000 , -0.019430458325379] , [ 1320033600000 , -0.015777413509084] , [ 1322629200000 , -0.016463879837718] , [ 1325307600000 , -0.0031338919976225] , [ 1327986000000 , -0.0029770278967514] , [ 1330491600000 , -0.003048902987439] , [ 1333166400000 , -0.71171545945298] , [ 1335758400000 , -0.72003299240508] , [ 1338436800000 , -0.72961974845039]]
-  } , 
-  { 
-    "key" : "Health Care" , 
-    "values" : [ [ 1138683600000 , 0] , [ 1141102800000 , 0] , [ 1143781200000 , 0] , [ 1146369600000 , 0] , [ 1149048000000 , 0] , [ 1151640000000 , 0] , [ 1154318400000 , 0] , [ 1156996800000 , 0] , [ 1159588800000 , 0] , [ 1162270800000 , 0] , [ 1164862800000 , 0] , [ 1167541200000 , 0] , [ 1170219600000 , 0] , [ 1172638800000 , 0] , [ 1175313600000 , 0] , [ 1177905600000 , 0] , [ 1180584000000 , 0] , [ 1183176000000 , -0.16816074963595] , [ 1185854400000 , -0.19318598121302] , [ 1188532800000 , -0.20130864403797] , [ 1191124800000 , 0] , [ 1193803200000 , 0] , [ 1196398800000 , 0] , [ 1199077200000 , 0] , [ 1201755600000 , 0] , [ 1204261200000 , 0] , [ 1206936000000 , 0] , [ 1209528000000 , 0] , [ 1212206400000 , 0] , [ 1214798400000 , -0.30476443991021] , [ 1217476800000 , -0.31836730824777] , [ 1220155200000 , -0.30797427879366] , [ 1222747200000 , -0.48318623977865] , [ 1225425600000 , -0.50834562674351] , [ 1228021200000 , -0.47936068182503] , [ 1230699600000 , -0.61753010081956] , [ 1233378000000 , -0.59493587396819] , [ 1235797200000 , -0.62664324339064] , [ 1238472000000 , 0] , [ 1241064000000 , 0] , [ 1243742400000 , 0] , [ 1246334400000 , 0] , [ 1249012800000 , 0] , [ 1251691200000 , 0] , [ 1254283200000 , -1.3076157801726] , [ 1256961600000 , -1.2306204787628] , [ 1259557200000 , -1.4728435992801] , [ 1262235600000 , -1.7729831226837] , [ 1264914000000 , -1.7711733839842] , [ 1267333200000 , -1.8233584472099] , [ 1270008000000 , -1.8505979461969] , [ 1272600000000 , -1.5989071613823] , [ 1275278400000 , -1.6636770720413] , [ 1277870400000 , -1.4523909758725] , [ 1280548800000 , -1.503771584105] , [ 1283227200000 , -1.5458561450475] , [ 1285819200000 , -1.457331837483] , [ 1288497600000 , -1.4217332434071] , [ 1291093200000 , -1.4687927303394] , [ 1293771600000 , -1.437223057967] , [ 1296450000000 , -0.72221871524334] , [ 1298869200000 , -0.7399575414588] , [ 1301544000000 , -1.9712239746745] , [ 1304136000000 , -2.2360949351942] , [ 1306814400000 , -2.2147572530541] , [ 1309406400000 , -2.0440932285023] , [ 1312084800000 , -1.9438209561938] , [ 1314763200000 , -4.9035620630386] , [ 1317355200000 , -4.9036674804213] , [ 1320033600000 , -4.1900706458801] , [ 1322629200000 , -4.5602615827955] , [ 1325307600000 , -1.9194421885814] , [ 1327986000000 , -1.8854470816382] , [ 1330491600000 , -1.9514785018245] , [ 1333166400000 , -0.65282205870454] , [ 1335758400000 , -0.57068368199209] , [ 1338436800000 , -0.55902563384907]]
-  } , 
-  { 
-    "key" : "Industrials" , 
-    "values" : [ [ 1138683600000 , -0.390983707093] , [ 1141102800000 , -0.38471122730537] , [ 1143781200000 , -0.22897173467143] , [ 1146369600000 , -0.23798946472286] , [ 1149048000000 , -0.20721233428173] , [ 1151640000000 , -0.54577697700394] , [ 1154318400000 , -0.50300252995937] , [ 1156996800000 , -0.49609518628103] , [ 1159588800000 , -0.19582276889273] , [ 1162270800000 , -0.60399139945108] , [ 1164862800000 , -0.61477368082886] , [ 1167541200000 , -0.13665869881705] , [ 1170219600000 , -0.13147565243332] , [ 1172638800000 , -0.11819441593356] , [ 1175313600000 , -0.41610825689528] , [ 1177905600000 , -0.38815419659358] , [ 1180584000000 , -0.3703838943035] , [ 1183176000000 , -1.6193903804534] , [ 1185854400000 , -1.6502660417328] , [ 1188532800000 , -1.481875010149] , [ 1191124800000 , -0.96180099322536] , [ 1193803200000 , -0.97017301394967] , [ 1196398800000 , -0.97432971260093] , [ 1199077200000 , -0.36071934518387] , [ 1201755600000 , -0.42150070991777] , [ 1204261200000 , -0.41784042793202] , [ 1206936000000 , -0.70494708349169] , [ 1209528000000 , -0.73449590911984] , [ 1212206400000 , -0.7400163600788] , [ 1214798400000 , -0.52584502195668] , [ 1217476800000 , -0.56224806965368] , [ 1220155200000 , -0.50830855192741] , [ 1222747200000 , -0.79494637898049] , [ 1225425600000 , -0.70391433947286] , [ 1228021200000 , -0.61420660317009] , [ 1230699600000 , -0.41699636242004] , [ 1233378000000 , -0.3779041158185] , [ 1235797200000 , -0.34282498854047] , [ 1238472000000 , -0.83845630450592] , [ 1241064000000 , -0.85937944918912] , [ 1243742400000 , -0.85530287999615] , [ 1246334400000 , -1.2819866264007] , [ 1249012800000 , -1.4598491663715] , [ 1251691200000 , -1.5261472177779] , [ 1254283200000 , -1.2503948993549] , [ 1256961600000 , -1.1767079775724] , [ 1259557200000 , -1.2585538260386] , [ 1262235600000 , -3.420972598165] , [ 1264914000000 , -3.3381337072954] , [ 1267333200000 , -3.7043129330694] , [ 1270008000000 , -4.6924500756609] , [ 1272600000000 , -4.6880683704908] , [ 1275278400000 , -4.3335249071719] , [ 1277870400000 , -3.6545810416445] , [ 1280548800000 , -4.1639787701262] , [ 1283227200000 , -3.8249597612047] , [ 1285819200000 , -0.33221815335641] , [ 1288497600000 , -0.33346468179047] , [ 1291093200000 , -0.34546911228789] , [ 1293771600000 , -0.36609971997147] , [ 1296450000000 , -0.42502545672607] , [ 1298869200000 , -0.38192733348507] , [ 1301544000000 , -0.01991033447621] , [ 1304136000000 , -0.020319195299659] , [ 1306814400000 , -0.018147820835144] , [ 1309406400000 , -0.017923186209383] , [ 1312084800000 , -0.016133999253684] , [ 1314763200000 , -0.72058656278977] , [ 1317355200000 , -0.42812646564889] , [ 1320033600000 , -0.35896134792589] , [ 1322629200000 , -0.38637896444549] , [ 1325307600000 , -0.31794663984021] , [ 1327986000000 , -0.32220831831888] , [ 1330491600000 , -0.37107872672214] , [ 1333166400000 , -0.81968633933695] , [ 1335758400000 , -0.77148300885994] , [ 1338436800000 , -0.77392261735539]]
-  } , 
-  { 
-    "key" : "Information Technology" , 
-    "values" : [ [ 1138683600000 , -0.86346955704548] , [ 1141102800000 , -0.88352373534584] , [ 1143781200000 , -1.2630802711685] , [ 1146369600000 , -1.2352593999242] , [ 1149048000000 , -1.2086379045093] , [ 1151640000000 , -1.0416778473647] , [ 1154318400000 , -0.99326278105154] , [ 1156996800000 , -1.0095045907007] , [ 1159588800000 , -2.0762515478576] , [ 1162270800000 , -2.13066829429] , [ 1164862800000 , -2.2458400474235] , [ 1167541200000 , -2.1315262677135] , [ 1170219600000 , -2.4063108252146] , [ 1172638800000 , -2.3753290631454] , [ 1175313600000 , -2.1119577565913] , [ 1177905600000 , -2.1546804750397] , [ 1180584000000 , -2.3768374034303] , [ 1183176000000 , -1.244878330098] , [ 1185854400000 , -1.2233210265236] , [ 1188532800000 , -1.1715073644317] , [ 1191124800000 , -1.0036136395928] , [ 1193803200000 , -0.9510676777939] , [ 1196398800000 , -0.97553526602196] , [ 1199077200000 , -1.9083849411912] , [ 1201755600000 , -1.855965027796] , [ 1204261200000 , -1.7343633512402] , [ 1206936000000 , -2.1847032903649] , [ 1209528000000 , -2.2095446284368] , [ 1212206400000 , -2.2060678671735] , [ 1214798400000 , -1.0941627910924] , [ 1217476800000 , -1.0004352405294] , [ 1220155200000 , -0.93563501378075] , [ 1222747200000 , 0] , [ 1225425600000 , -0.65155092645953] , [ 1228021200000 , -0.66021585164047] , [ 1230699600000 , 0] , [ 1233378000000 , 0] , [ 1235797200000 , 0] , [ 1238472000000 , 0] , [ 1241064000000 , 0] , [ 1243742400000 , 0] , [ 1246334400000 , 0] , [ 1249012800000 , 0] , [ 1251691200000 , 0] , [ 1254283200000 , -0.29297573068109] , [ 1256961600000 , -0.75043756379084] , [ 1259557200000 , -0.85690846482745] , [ 1262235600000 , -0.21937480770873] , [ 1264914000000 , -0.93232569935343] , [ 1267333200000 , -0.94180327525084] , [ 1270008000000 , 0] , [ 1272600000000 , 0] , [ 1275278400000 , 0] , [ 1277870400000 , 0] , [ 1280548800000 , 0] , [ 1283227200000 , 0] , [ 1285819200000 , -0.21253553193891] , [ 1288497600000 , -0.23178244747722] , [ 1291093200000 , -0.21481706129968] , [ 1293771600000 , -0.23306463011242] , [ 1296450000000 , -0.90244048159158] , [ 1298869200000 , -1.0410052083529] , [ 1301544000000 , -2.209350937089] , [ 1304136000000 , -2.6540796712932] , [ 1306814400000 , -3.2481210590957] , [ 1309406400000 , -3.0717986354635] , [ 1312084800000 , -2.7493296528921] , [ 1314763200000 , -2.1973991293256] , [ 1317355200000 , -0.86403111842659] , [ 1320033600000 , -0.87824756160219] , [ 1322629200000 , -0.80812571482871] , [ 1325307600000 , -1.6419820357151] , [ 1327986000000 , -1.6893790342619] , [ 1330491600000 , -1.8614499455474] , [ 1333166400000 , -1.814727017516] , [ 1335758400000 , -1.8744942128618] , [ 1338436800000 , -1.7880124850882]]
-  } , 
-  { 
-    "key" : "Materials" , 
-    "values" : [ [ 1138683600000 , -0.26079769654951] , [ 1141102800000 , -0.23368425410881] , [ 1143781200000 , -0.46285283466193] , [ 1146369600000 , -0.4588429059205] , [ 1149048000000 , -0.43055120080853] , [ 1151640000000 , -0.26428963363642] , [ 1154318400000 , -0.26203611963364] , [ 1156996800000 , -0.26706156717825] , [ 1159588800000 , -0.024613610779192] , [ 1162270800000 , -0.024351047945929] , [ 1164862800000 , -0.031497065480344] , [ 1167541200000 , 0] , [ 1170219600000 , 0] , [ 1172638800000 , 0] , [ 1175313600000 , 0] , [ 1177905600000 , 0] , [ 1180584000000 , 0] , [ 1183176000000 , 0] , [ 1185854400000 , 0] , [ 1188532800000 , 0] , [ 1191124800000 , 0] , [ 1193803200000 , 0] , [ 1196398800000 , 0] , [ 1199077200000 , 0] , [ 1201755600000 , 0] , [ 1204261200000 , 0] , [ 1206936000000 , -0.83875613435932] , [ 1209528000000 , -0.84367445572656] , [ 1212206400000 , -0.78928126005463] , [ 1214798400000 , -1.1075954825404] , [ 1217476800000 , -1.2704836497926] , [ 1220155200000 , -1.307504052056] , [ 1222747200000 , -0.70440409992826] , [ 1225425600000 , -0.74122140007729] , [ 1228021200000 , -0.82224393045109] , [ 1230699600000 , -1.8719055314571] , [ 1233378000000 , -1.5200311233975] , [ 1235797200000 , -1.5552386899059] , [ 1238472000000 , -1.1576593040773] , [ 1241064000000 , -1.0757811060575] , [ 1243742400000 , -1.0250125722511] , [ 1246334400000 , -2.2747597224127] , [ 1249012800000 , -2.3125499227974] , [ 1251691200000 , -2.2784386530745] , [ 1254283200000 , -1.1518806233757] , [ 1256961600000 , -1.0075503399018] , [ 1259557200000 , -1.1400577929481] , [ 1262235600000 , -0.50677891891165] , [ 1264914000000 , -0.54332908490051] , [ 1267333200000 , -0.55473181189807] , [ 1270008000000 , -0.3633796157757] , [ 1272600000000 , -0.30361861470847] , [ 1275278400000 , -0.24614951229153] , [ 1277870400000 , -1.0959443687647] , [ 1280548800000 , -1.1881529264637] , [ 1283227200000 , -1.1835349242596] , [ 1285819200000 , -0.92507477884561] , [ 1288497600000 , -0.94531016133473] , [ 1291093200000 , -0.93519433603434] , [ 1293771600000 , -1.009221344252] , [ 1296450000000 , -2.3640716285835] , [ 1298869200000 , -2.4914494188556] , [ 1301544000000 , -1.7979456141716] , [ 1304136000000 , -2.1389760840247] , [ 1306814400000 , -1.9721362241269] , [ 1309406400000 , -1.9170229522382] , [ 1312084800000 , -1.8076246545605] , [ 1314763200000 , -2.1010686108381] , [ 1317355200000 , -2.2396373791195] , [ 1320033600000 , -1.8469012813015] , [ 1322629200000 , -2.0079125997321] , [ 1325307600000 , -1.9170007806182] , [ 1327986000000 , -1.9239118384243] , [ 1330491600000 , -2.0649464738798] , [ 1333166400000 , -0.88385747789351] , [ 1335758400000 , -0.91438087144161] , [ 1338436800000 , -0.96513752020965]]
-  } , 
-  { 
-    "key" : "Telecommunication Services" , 
-    "values" : [ [ 1138683600000 , 0] , [ 1141102800000 , 0] , [ 1143781200000 , -0.077395192503573] , [ 1146369600000 , -0.079342784160835] , [ 1149048000000 , -0.07376956808809] , [ 1151640000000 , -0.041850521681201] , [ 1154318400000 , -0.037598545052499] , [ 1156996800000 , -0.040984079427717] , [ 1159588800000 , -0.19335817797448] , [ 1162270800000 , -0.18578493919925] , [ 1164862800000 , -0.1769473933101] , [ 1167541200000 , -0.57245352054975] , [ 1170219600000 , -0.61554187332911] , [ 1172638800000 , -0.63016714701151] , [ 1175313600000 , 0] , [ 1177905600000 , 0] , [ 1180584000000 , 0] , [ 1183176000000 , -0.12118014109021] , [ 1185854400000 , -0.11085831487208] , [ 1188532800000 , -0.10901265358445] , [ 1191124800000 , -0.17205583275088] , [ 1193803200000 , -0.16573676303991] , [ 1196398800000 , -0.17954841680392] , [ 1199077200000 , -0.82703336198161] , [ 1201755600000 , -0.76741763304227] , [ 1204261200000 , -0.79430844816827] , [ 1206936000000 , -1.0279404050708] , [ 1209528000000 , -1.0342425093761] , [ 1212206400000 , -1.0903083860383] , [ 1214798400000 , -1.0895432841007] , [ 1217476800000 , -1.1392703218146] , [ 1220155200000 , -0.98872086340391] , [ 1222747200000 , -1.227654651568] , [ 1225425600000 , -1.0527419580394] , [ 1228021200000 , -0.84338280322309] , [ 1230699600000 , -0.5982617279246] , [ 1233378000000 , -0.74123723862634] , [ 1235797200000 , -0.81665712408277] , [ 1238472000000 , -0.89868760705228] , [ 1241064000000 , -0.86338472153689] , [ 1243742400000 , -0.85040889603889] , [ 1246334400000 , -0.82872733882926] , [ 1249012800000 , -1.2797824676355] , [ 1251691200000 , -1.152043882336] , [ 1254283200000 , -0.70125890680538] , [ 1256961600000 , -0.69496338525418] , [ 1259557200000 , -0.81982038022784] , [ 1262235600000 , -0.42841700219624] , [ 1264914000000 , -0.43298861575253] , [ 1267333200000 , -0.46951194437705] , [ 1270008000000 , -0.46723980191721] , [ 1272600000000 , -0.43139262322841] , [ 1275278400000 , -0.4052075794202] , [ 1277870400000 , -0.45399431179247] , [ 1280548800000 , -0.50492374473014] , [ 1283227200000 , -0.49032976375464] , [ 1285819200000 , -0.95769381063728] , [ 1288497600000 , -0.92968381683254] , [ 1291093200000 , -0.90984207437415] , [ 1293771600000 , -0.91448295661871] , [ 1296450000000 , -1.3204103334172] , [ 1298869200000 , -1.3896989018] , [ 1301544000000 , -1.8536993972883] , [ 1304136000000 , -1.9901582471947] , [ 1306814400000 , -1.8731097808809] , [ 1309406400000 , -1.8109819859122] , [ 1312084800000 , -1.7946593386661] , [ 1314763200000 , -1.6002716669781] , [ 1317355200000 , -0.056479286204019] , [ 1320033600000 , -0.046232413998891] , [ 1322629200000 , -0.051182355563531] , [ 1325307600000 , -0.032858749040145] , [ 1327986000000 , -0.032326418106178] , [ 1330491600000 , -0.033980477379241] , [ 1333166400000 , -0.053069550536519] , [ 1335758400000 , -0.055741850564434] , [ 1338436800000 , -0.055851808568252]]
-  } , 
-  { 
-    "key" : "Utilities" , 
-    "values" : [ [ 1138683600000 , 0] , [ 1141102800000 , 0] , [ 1143781200000 , -0.073769471773675] , [ 1146369600000 , -0.077824496315782] , [ 1149048000000 , -0.080696288096361] , [ 1151640000000 , 0] , [ 1154318400000 , 0] , [ 1156996800000 , 0] , [ 1159588800000 , 0] , [ 1162270800000 , 0] , [ 1164862800000 , 0] , [ 1167541200000 , 0] , [ 1170219600000 , 0] , [ 1172638800000 , 0] , [ 1175313600000 , 0] , [ 1177905600000 , 0] , [ 1180584000000 , 0] , [ 1183176000000 , -0.16073291656515] , [ 1185854400000 , -0.1646253606633] , [ 1188532800000 , -0.1655815581449] , [ 1191124800000 , -0.74417496631713] , [ 1193803200000 , -0.76230340423681] , [ 1196398800000 , -0.73882938190048] , [ 1199077200000 , -0.3820573391806] , [ 1201755600000 , -0.360757285179] , [ 1204261200000 , -0.38081058463615] , [ 1206936000000 , -0.92767439811083] , [ 1209528000000 , -0.92774728028789] , [ 1212206400000 , -0.85273481694714] , [ 1214798400000 , -1.69407085613] , [ 1217476800000 , -1.5179726219101] , [ 1220155200000 , -1.3576700600738] , [ 1222747200000 , -1.0404839864076] , [ 1225425600000 , -0.95251478838915] , [ 1228021200000 , -1.0610509118017] , [ 1230699600000 , -0.3316792294278] , [ 1233378000000 , -0.33745002288524] , [ 1235797200000 , -0.28806366796683] , [ 1238472000000 , 0] , [ 1241064000000 , 0] , [ 1243742400000 , 0] , [ 1246334400000 , -0.6338555382785] , [ 1249012800000 , -0.62797265130959] , [ 1251691200000 , -0.60264057253794] , [ 1254283200000 , -0.28687231077181] , [ 1256961600000 , -0.22215649778327] , [ 1259557200000 , -0.24027664555676] , [ 1262235600000 , 0] , [ 1264914000000 , 0] , [ 1267333200000 , 0] , [ 1270008000000 , 0] , [ 1272600000000 , 0] , [ 1275278400000 , 0] , [ 1277870400000 , 0] , [ 1280548800000 , 0] , [ 1283227200000 , 0] , [ 1285819200000 , 0] , [ 1288497600000 , 0] , [ 1291093200000 , 0] , [ 1293771600000 , 0] , [ 1296450000000 , 0] , [ 1298869200000 , 0] , [ 1301544000000 , 0] , [ 1304136000000 , 0] , [ 1306814400000 , 0] , [ 1309406400000 , 0] , [ 1312084800000 , 0] , [ 1314763200000 , 0] , [ 1317355200000 , 0] , [ 1320033600000 , 0] , [ 1322629200000 , 0] , [ 1325307600000 , 0] , [ 1327986000000 , 0] , [ 1330491600000 , 0] , [ 1333166400000 , 0] , [ 1335758400000 , 0] , [ 1338436800000 , 0]]
-  } 
-].map(function(series) {
-  series.values = series.values.map(function(d) {
-    return { x: d[0], y: d[1] }
-  });
-  return series;
-});
-
-
-
-nv.addGraph(function() {
-  var chart = nv.models.stackedAreaChart()
-                .clipEdge(true);
-
-  chart.xAxis
-      .tickFormat(function(d) { return d3.time.format('%x')(new Date(d)) });
-
-  chart.yAxis
-      .tickFormat(d3.format(',.2f'));
-
-  d3.select('#chart1')
-    .datum(histcatexplong)
-      .transition().duration(500).call(chart);
-
-  nv.utils.windowResize(chart.update);
-
-  return chart;
-});
-
-nv.addGraph(function() {
-  var chart = nv.models.stackedAreaChart()
-                .clipEdge(true);
-
-  chart.xAxis
-      .tickFormat(function(d) { return d3.time.format('%x')(new Date(d)) });
-
-  chart.yAxis
-      .tickFormat(d3.format(',.2f'));
-
-  d3.select('#chart2')
-    .datum(histcatexpshort)
-      .transition().duration(500).call(chart);
-
-  nv.utils.windowResize(chart.update);
-
-  return chart;
-});
-
-
-
-</script>
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/stackedAreaChart_old.html b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/stackedAreaChart_old.html
deleted file mode 100755
index e3449928..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/stackedAreaChart_old.html
+++ /dev/null
@@ -1,137 +0,0 @@
-<!DOCTYPE html>
-<meta charset="utf-8">
-
-<link href="../src/d3.css" rel="stylesheet" type="text/css">
-
-<style>
-
-body {
-  overflow-y:scroll;
-}
-
-text {
-  font: 12px sans-serif;
-}
-
-#chart1 {
-  height: 500px;
-  margin: 10px;
-  min-width: 100px;
-  min-height: 100px;
-/*
-  Minimum height and width is a good idea to prevent negative SVG dimensions...
-  For example width should be =< margin.left + margin.right + 1,
-  of course 1 pixel for the entire chart would not be very useful, BUT should not have errors
-*/
-}
-
-</style>
-<body>
-
-  <div id="chart1">
-  </div>
-
-<script src="../lib/d3.v2.js"></script>
-<script src="../nv.d3.js"></script>
-<!-- including all the components so I don't have to minify every time I test in development -->
-<script src="../src/tooltip.js"></script>
-<script src="../src/models/legend.js"></script>
-<script src="../src/models/axis.js"></script>
-<script src="../src/models/scatter.js"></script>
-<script src="../src/models/stackedArea.js"></script>
-<script src="../src/models/stackedAreaWithLegend.js"></script>
-<script src="../src/charts/stackedAreaChart.js"></script>
-<script>
-
-
-
-
-var histcatexplong = [ 
-  { 
-    "key" : "Consumer Discretionary" , 
-    "values" : [ [ 1025409600000 , 23.041422681023] , [ 1028088000000 , 19.854291255832] , [ 1030766400000 , 21.02286281168] , [ 1033358400000 , 22.093608385173] , [ 1036040400000 , 25.108079299458] , [ 1038632400000 , 26.982389242348] , [ 1041310800000 , 19.828984957662] , [ 1043989200000 , 19.914055036294] , [ 1046408400000 , 19.436150539916] , [ 1049086800000 , 21.558650338602] , [ 1051675200000 , 24.395594061773] , [ 1054353600000 , 24.747089309384] , [ 1056945600000 , 23.491755498807] , [ 1059624000000 , 23.376634878164] , [ 1062302400000 , 24.581223154533] , [ 1064894400000 , 24.922476843538] , [ 1067576400000 , 27.357712939042] , [ 1070168400000 , 26.503020572593] , [ 1072846800000 , 26.658901244878] , [ 1075525200000 , 27.065704156445] , [ 1078030800000 , 28.735320452588] , [ 1080709200000 , 31.572277846319] , [ 1083297600000 , 30.932161503638] , [ 1085976000000 , 31.627029785554] , [ 1088568000000 , 28.728743674232] , [ 1091246400000 , 26.858365172675] , [ 1093924800000 , 27.279922830032] , [ 1096516800000 , 34.408301211324] , [ 1099195200000 , 34.794362930439] , [ 1101790800000 , 35.609978198951] , [ 1104469200000 , 33.574394968037] , [ 1107147600000 , 31.979405070598] , [ 1109566800000 , 31.19009040297] , [ 1112245200000 , 31.083933968994] , [ 1114833600000 , 29.668971113185] , [ 1117512000000 , 31.490638014379] , [ 1120104000000 , 31.818617451128] , [ 1122782400000 , 32.960314008183] , [ 1125460800000 , 31.313383196209] , [ 1128052800000 , 33.125486081852] , [ 1130734800000 , 32.791805509149] , [ 1133326800000 , 33.506038030366] , [ 1136005200000 , 26.96501697216] , [ 1138683600000 , 27.38478809681] , [ 1141102800000 , 27.371377218209] , [ 1143781200000 , 26.309915460827] , [ 1146369600000 , 26.425199957518] , [ 1149048000000 , 26.823411519396] , [ 1151640000000 , 23.850443591587] , [ 1154318400000 , 23.158355444054] , [ 1156996800000 , 22.998689393695] , [ 1159588800000 , 27.9771285113] , [ 1162270800000 , 29.073672469719] , [ 1164862800000 , 28.587640408904] , [ 1167541200000 , 22.788453687637] , [ 1170219600000 , 22.429199073597] , [ 1172638800000 , 22.324103271052] , [ 1175313600000 , 17.558388444187] , [ 1177905600000 , 16.769518096208] , [ 1180584000000 , 16.214738201301] , [ 1183176000000 , 18.729632971229] , [ 1185854400000 , 18.814523318847] , [ 1188532800000 , 19.789986451358] , [ 1191124800000 , 17.070049054933] , [ 1193803200000 , 16.121349575716] , [ 1196398800000 , 15.141659430091] , [ 1199077200000 , 17.175388025297] , [ 1201755600000 , 17.286592443522] , [ 1204261200000 , 16.323141626568] , [ 1206936000000 , 19.231263773952] , [ 1209528000000 , 18.446256391095] , [ 1212206400000 , 17.822632399764] , [ 1214798400000 , 15.53936647598] , [ 1217476800000 , 15.255131790217] , [ 1220155200000 , 15.660963922592] , [ 1222747200000 , 13.254482273698] , [ 1225425600000 , 11.920796202299] , [ 1228021200000 , 12.122809090924] , [ 1230699600000 , 15.691026271393] , [ 1233378000000 , 14.720881635107] , [ 1235797200000 , 15.387939360044] , [ 1238472000000 , 13.765436672228] , [ 1241064000000 , 14.631445864799] , [ 1243742400000 , 14.292446536221] , [ 1246334400000 , 16.170071367017] , [ 1249012800000 , 15.948135554337] , [ 1251691200000 , 16.612872685134] , [ 1254283200000 , 18.778338719091] , [ 1256961600000 , 16.756026065421] , [ 1259557200000 , 19.385804443146] , [ 1262235600000 , 22.950590240168] , [ 1264914000000 , 23.61159018141] , [ 1267333200000 , 25.708586989581] , [ 1270008000000 , 26.883915999885] , [ 1272600000000 , 25.893486687065] , [ 1275278400000 , 24.678914263176] , [ 1277870400000 , 25.937275793024] , [ 1280548800000 , 29.461381693838] , [ 1283227200000 , 27.357322961861] , [ 1285819200000 , 29.057235285673] , [ 1288497600000 , 28.549434189386] , [ 1291093200000 , 28.506352379724] , [ 1293771600000 , 29.449241421598] , [ 1296450000000 , 25.796838168807] , [ 1298869200000 , 28.740145449188] , [ 1301544000000 , 22.091744141872] , [ 1304136000000 , 25.07966254541] , [ 1306814400000 , 23.674906973064] , [ 1309406400000 , 23.418002742929] , [ 1312084800000 , 23.24364413887] , [ 1314763200000 , 31.591854066817] , [ 1317355200000 , 31.497112374114] , [ 1320033600000 , 26.67238082043] , [ 1322629200000 , 27.297080015495] , [ 1325307600000 , 20.174315530051] , [ 1327986000000 , 19.631084213898] , [ 1330491600000 , 20.366462219461] , [ 1333166400000 , 19.284784434185] , [ 1335758400000 , 19.157810257624]]
-  }, 
-
-  { 
-    "key" : "Consumer Staples" , 
-    "values" : [ [ 1025409600000 , 7.9356392949025] , [ 1028088000000 , 7.4514668527298] , [ 1030766400000 , 7.9085410566608] , [ 1033358400000 , 5.8996782364764] , [ 1036040400000 , 6.0591869346923] , [ 1038632400000 , 5.9667815800451] , [ 1041310800000 , 8.65528925664] , [ 1043989200000 , 8.7690763386254] , [ 1046408400000 , 8.6386160387453] , [ 1049086800000 , 5.9895557449743] , [ 1051675200000 , 6.3840324338159] , [ 1054353600000 , 6.5196511461441] , [ 1056945600000 , 7.0738618553114] , [ 1059624000000 , 6.5745957367133] , [ 1062302400000 , 6.4658359184444] , [ 1064894400000 , 2.7622758754954] , [ 1067576400000 , 2.9794782986241] , [ 1070168400000 , 2.8735432712019] , [ 1072846800000 , 1.6344817513645] , [ 1075525200000 , 1.5869248754883] , [ 1078030800000 , 1.7172279157246] , [ 1080709200000 , 1.9649927409867] , [ 1083297600000 , 2.0261695079196] , [ 1085976000000 , 2.0541261923929] , [ 1088568000000 , 3.9466318927569] , [ 1091246400000 , 3.7826770946089] , [ 1093924800000 , 3.9543021004028] , [ 1096516800000 , 3.8309891064711] , [ 1099195200000 , 3.6340958946166] , [ 1101790800000 , 3.5289755762525] , [ 1104469200000 , 5.702378559857] , [ 1107147600000 , 5.6539569019223] , [ 1109566800000 , 5.5449506370392] , [ 1112245200000 , 4.7579993280677] , [ 1114833600000 , 4.4816139372906] , [ 1117512000000 , 4.5965558568606] , [ 1120104000000 , 4.3747066116976] , [ 1122782400000 , 4.4588822917087] , [ 1125460800000 , 4.4460351848286] , [ 1128052800000 , 3.7989113035136] , [ 1130734800000 , 3.7743883140088] , [ 1133326800000 , 3.7727852823828] , [ 1136005200000 , 7.2968111448895] , [ 1138683600000 , 7.2800122043237] , [ 1141102800000 , 7.1187787503354] , [ 1143781200000 , 8.351887016482] , [ 1146369600000 , 8.4156698763993] , [ 1149048000000 , 8.1673298604231] , [ 1151640000000 , 5.5132447126042] , [ 1154318400000 , 6.1152537710599] , [ 1156996800000 , 6.076765091942] , [ 1159588800000 , 4.6304473798646] , [ 1162270800000 , 4.6301068469402] , [ 1164862800000 , 4.3466656309389] , [ 1167541200000 , 6.830104897003] , [ 1170219600000 , 7.241633040029] , [ 1172638800000 , 7.1432372054153] , [ 1175313600000 , 10.608942063374] , [ 1177905600000 , 10.914964549494] , [ 1180584000000 , 10.933223880565] , [ 1183176000000 , 8.3457524851265] , [ 1185854400000 , 8.1078413081882] , [ 1188532800000 , 8.2697185922474] , [ 1191124800000 , 8.4742436475968] , [ 1193803200000 , 8.4994601179319] , [ 1196398800000 , 8.7387319683243] , [ 1199077200000 , 6.8829183612895] , [ 1201755600000 , 6.984133637885] , [ 1204261200000 , 7.0860136043287] , [ 1206936000000 , 4.3961787956053] , [ 1209528000000 , 3.8699674365231] , [ 1212206400000 , 3.6928925238305] , [ 1214798400000 , 6.7571718894253] , [ 1217476800000 , 6.4367313362344] , [ 1220155200000 , 6.4048441521454] , [ 1222747200000 , 5.4643833239669] , [ 1225425600000 , 5.3150786833374] , [ 1228021200000 , 5.3011272612576] , [ 1230699600000 , 4.1203601430809] , [ 1233378000000 , 4.0881783200525] , [ 1235797200000 , 4.1928665957189] , [ 1238472000000 , 7.0249415663205] , [ 1241064000000 , 7.006530880769] , [ 1243742400000 , 6.994835633224] , [ 1246334400000 , 6.1220222336254] , [ 1249012800000 , 6.1177436137653] , [ 1251691200000 , 6.1413396231981] , [ 1254283200000 , 4.8046006145874] , [ 1256961600000 , 4.6647600660544] , [ 1259557200000 , 4.544865006255] , [ 1262235600000 , 6.0488249316539] , [ 1264914000000 , 6.3188669540206] , [ 1267333200000 , 6.5873958262306] , [ 1270008000000 , 6.2281189839578] , [ 1272600000000 , 5.8948915746059] , [ 1275278400000 , 5.5967320482214] , [ 1277870400000 , 0.99784432084837] , [ 1280548800000 , 1.0950794175359] , [ 1283227200000 , 0.94479734407491] , [ 1285819200000 , 1.222093988688] , [ 1288497600000 , 1.335093106856] , [ 1291093200000 , 1.3302565104985] , [ 1293771600000 , 1.340824670897] , [ 1296450000000 , 0] , [ 1298869200000 , 0] , [ 1301544000000 , 0] , [ 1304136000000 , 0] , [ 1306814400000 , 0] , [ 1309406400000 , 0] , [ 1312084800000 , 0] , [ 1314763200000 , 0] , [ 1317355200000 , 4.4583692315] , [ 1320033600000 , 3.6493043348059] , [ 1322629200000 , 3.8610064091761] , [ 1325307600000 , 5.5144800685202] , [ 1327986000000 , 5.1750695220791] , [ 1330491600000 , 5.6710066952691] , [ 1333166400000 , 5.5611890039181] , [ 1335758400000 , 5.5979368839939]]
-  }, 
-
-  { 
-    "key" : "Energy" , 
-    "values" : [ [ 1025409600000 , 1.4646843173806] , [ 1028088000000 , 1.2255947178893] , [ 1030766400000 , 1.4158447149914] , [ 1033358400000 , 1.0079176473732] , [ 1036040400000 , 1.30237558984] , [ 1038632400000 , 1.688609181773] , [ 1041310800000 , 2.084300956831] , [ 1043989200000 , 2.1374370551873] , [ 1046408400000 , 2.3282783517776] , [ 1049086800000 , 2.1973076058812] , [ 1051675200000 , 2.157261693164] , [ 1054353600000 , 2.2517863434814] , [ 1056945600000 , 1.2228256346504] , [ 1059624000000 , 1.1440109589209] , [ 1062302400000 , 1.2064470359759] , [ 1064894400000 , 2.500656510238] , [ 1067576400000 , 2.5387208947759] , [ 1070168400000 , 2.4603613044678] , [ 1072846800000 , 3.0150440824201] , [ 1075525200000 , 3.0543883162347] , [ 1078030800000 , 3.2706600781893] , [ 1080709200000 , 3.6312746608013] , [ 1083297600000 , 3.7328532659082] , [ 1085976000000 , 3.766358446065] , [ 1088568000000 , 2.6344481471685] , [ 1091246400000 , 2.763489510345] , [ 1093924800000 , 2.8565862394721] , [ 1096516800000 , 3.8555975117279] , [ 1099195200000 , 3.7062421881707] , [ 1101790800000 , 3.8020128704686] , [ 1104469200000 , 4.309131851142] , [ 1107147600000 , 4.3553997741931] , [ 1109566800000 , 4.8208488504576] , [ 1112245200000 , 4.1337237657138] , [ 1114833600000 , 3.8976502361354] , [ 1117512000000 , 4.0038454785722] , [ 1120104000000 , 3.6457285169699] , [ 1122782400000 , 3.7645930389974] , [ 1125460800000 , 3.9638322190019] , [ 1128052800000 , 4.2470697064323] , [ 1130734800000 , 3.9259866763827] , [ 1133326800000 , 3.8872767584613] , [ 1136005200000 , 1.4275237035221] , [ 1138683600000 , 1.544303464167] , [ 1141102800000 , 1.4387289432421] , [ 1143781200000 , 0] , [ 1146369600000 , 0] , [ 1149048000000 , 0] , [ 1151640000000 , 1.328626801128] , [ 1154318400000 , 1.2874050802627] , [ 1156996800000 , 1.0872743105593] , [ 1159588800000 , 0.96042562635813] , [ 1162270800000 , 0.93139372870616] , [ 1164862800000 , 0.94432167305385] , [ 1167541200000 , 1.277750166208] , [ 1170219600000 , 1.2204893886811] , [ 1172638800000 , 1.207489123122] , [ 1175313600000 , 1.2490651414113] , [ 1177905600000 , 1.2593129913052] , [ 1180584000000 , 1.373329808388] , [ 1183176000000 , 0] , [ 1185854400000 , 0] , [ 1188532800000 , 0] , [ 1191124800000 , 0] , [ 1193803200000 , 0] , [ 1196398800000 , 0] , [ 1199077200000 , 0] , [ 1201755600000 , 0] , [ 1204261200000 , 0] , [ 1206936000000 , 0] , [ 1209528000000 , 0] , [ 1212206400000 , 0] , [ 1214798400000 , 0] , [ 1217476800000 , 0] , [ 1220155200000 , 0] , [ 1222747200000 , 1.4516108933695] , [ 1225425600000 , 1.1856025268225] , [ 1228021200000 , 1.3430470355439] , [ 1230699600000 , 2.2752595354509] , [ 1233378000000 , 2.4031560010523] , [ 1235797200000 , 2.0822430731926] , [ 1238472000000 , 1.5640902826938] , [ 1241064000000 , 1.5812873972356] , [ 1243742400000 , 1.9462448548894] , [ 1246334400000 , 2.9464870223957] , [ 1249012800000 , 3.0744699383222] , [ 1251691200000 , 2.9422304628446] , [ 1254283200000 , 2.7503075599999] , [ 1256961600000 , 2.6506701800427] , [ 1259557200000 , 2.8005425319977] , [ 1262235600000 , 2.6816184971185] , [ 1264914000000 , 2.681206271327] , [ 1267333200000 , 2.8195488011259] , [ 1270008000000 , 0] , [ 1272600000000 , 0] , [ 1275278400000 , 0] , [ 1277870400000 , 1.0687057346382] , [ 1280548800000 , 1.2539400544134] , [ 1283227200000 , 1.1862969445955] , [ 1285819200000 , 0] , [ 1288497600000 , 0] , [ 1291093200000 , 0] , [ 1293771600000 , 0] , [ 1296450000000 , 1.941972859484] , [ 1298869200000 , 2.1142247697552] , [ 1301544000000 , 2.3788590206824] , [ 1304136000000 , 2.5337302877545] , [ 1306814400000 , 2.3163370395199] , [ 1309406400000 , 2.0645451843195] , [ 1312084800000 , 2.1004446672411] , [ 1314763200000 , 3.6301875804303] , [ 1317355200000 , 2.454204664652] , [ 1320033600000 , 2.196082370894] , [ 1322629200000 , 2.3358418255202] , [ 1325307600000 , 0] , [ 1327986000000 , 0] , [ 1330491600000 , 0] , [ 1333166400000 , 0] , [ 1335758400000 , 0]]
-  }, 
-
-  { 
-    "key" : "Financials" , 
-    "values" : [ [ 1025409600000 , 7.9149900245423] , [ 1028088000000 , 7.0899888751059] , [ 1030766400000 , 7.5996132380614] , [ 1033358400000 , 8.2741174301034] , [ 1036040400000 , 9.3564460833513] , [ 1038632400000 , 9.7066786059904] , [ 1041310800000 , 10.213363052343] , [ 1043989200000 , 10.285809585273] , [ 1046408400000 , 10.222053149228] , [ 1049086800000 , 8.6188592137975] , [ 1051675200000 , 9.3335447543566] , [ 1054353600000 , 8.9312402186628] , [ 1056945600000 , 8.1895089343658] , [ 1059624000000 , 8.260622135079] , [ 1062302400000 , 7.7700786851364] , [ 1064894400000 , 7.9907428771318] , [ 1067576400000 , 8.7769091865606] , [ 1070168400000 , 8.4855077060661] , [ 1072846800000 , 9.6277203033655] , [ 1075525200000 , 9.9685913452624] , [ 1078030800000 , 10.615085181759] , [ 1080709200000 , 9.2902488079646] , [ 1083297600000 , 8.8610439830061] , [ 1085976000000 , 9.1075344931229] , [ 1088568000000 , 9.9156737639203] , [ 1091246400000 , 9.7826003238782] , [ 1093924800000 , 10.55403610555] , [ 1096516800000 , 10.926900264097] , [ 1099195200000 , 10.903144818736] , [ 1101790800000 , 10.862890389067] , [ 1104469200000 , 10.64604998964] , [ 1107147600000 , 10.042790814087] , [ 1109566800000 , 9.7173391591038] , [ 1112245200000 , 9.6122415755443] , [ 1114833600000 , 9.4337921146562] , [ 1117512000000 , 9.814827171183] , [ 1120104000000 , 12.059260396788] , [ 1122782400000 , 12.139649903873] , [ 1125460800000 , 12.281290663822] , [ 1128052800000 , 8.8037085409056] , [ 1130734800000 , 8.6300618239176] , [ 1133326800000 , 9.1225708491432] , [ 1136005200000 , 12.988124170836] , [ 1138683600000 , 13.356778764353] , [ 1141102800000 , 13.611196863271] , [ 1143781200000 , 6.8959030061189] , [ 1146369600000 , 6.9939633271353] , [ 1149048000000 , 6.7241510257676] , [ 1151640000000 , 5.5611293669517] , [ 1154318400000 , 5.6086488714041] , [ 1156996800000 , 5.4962849907033] , [ 1159588800000 , 6.9193153169278] , [ 1162270800000 , 7.0016334389778] , [ 1164862800000 , 6.7865422443273] , [ 1167541200000 , 9.0006454225383] , [ 1170219600000 , 9.2233916171431] , [ 1172638800000 , 8.8929316009479] , [ 1175313600000 , 10.345937520404] , [ 1177905600000 , 10.075914677026] , [ 1180584000000 , 10.089006188111] , [ 1183176000000 , 10.598330295008] , [ 1185854400000 , 9.9689546533009] , [ 1188532800000 , 9.7740580198146] , [ 1191124800000 , 10.558483060626] , [ 1193803200000 , 9.9314651823603] , [ 1196398800000 , 9.3997715873769] , [ 1199077200000 , 8.4086493387262] , [ 1201755600000 , 8.9698309085926] , [ 1204261200000 , 8.2778357995396] , [ 1206936000000 , 8.8585045600123] , [ 1209528000000 , 8.7013756413322] , [ 1212206400000 , 7.7933605469443] , [ 1214798400000 , 7.0236183483064] , [ 1217476800000 , 6.9873088186829] , [ 1220155200000 , 6.8031713070097] , [ 1222747200000 , 6.6869531315723] , [ 1225425600000 , 6.138256993963] , [ 1228021200000 , 5.6434994016354] , [ 1230699600000 , 5.495220262512] , [ 1233378000000 , 4.6885326869846] , [ 1235797200000 , 4.4524349883438] , [ 1238472000000 , 5.6766520778185] , [ 1241064000000 , 5.7675774480752] , [ 1243742400000 , 5.7882863168337] , [ 1246334400000 , 7.2666010034924] , [ 1249012800000 , 7.5191821322261] , [ 1251691200000 , 7.849651451445] , [ 1254283200000 , 10.383992037985] , [ 1256961600000 , 9.0653691861818] , [ 1259557200000 , 9.6705248324159] , [ 1262235600000 , 10.856380561349] , [ 1264914000000 , 11.27452370892] , [ 1267333200000 , 11.754156529088] , [ 1270008000000 , 8.2870811422455] , [ 1272600000000 , 8.0210264360699] , [ 1275278400000 , 7.5375074474865] , [ 1277870400000 , 8.3419527338039] , [ 1280548800000 , 9.4197471818443] , [ 1283227200000 , 8.7321733185797] , [ 1285819200000 , 9.6627062648126] , [ 1288497600000 , 10.187962234548] , [ 1291093200000 , 9.8144201733476] , [ 1293771600000 , 10.275723361712] , [ 1296450000000 , 16.796066079353] , [ 1298869200000 , 17.543254984075] , [ 1301544000000 , 16.673660675083] , [ 1304136000000 , 17.963944353609] , [ 1306814400000 , 16.63774086721] , [ 1309406400000 , 15.84857094609] , [ 1312084800000 , 14.767303362181] , [ 1314763200000 , 24.778452182433] , [ 1317355200000 , 18.370353229999] , [ 1320033600000 , 15.253137429099] , [ 1322629200000 , 14.989600840649] , [ 1325307600000 , 16.052539160125] , [ 1327986000000 , 16.424390322793] , [ 1330491600000 , 17.884020741104] , [ 1333166400000 , 18.372698836036] , [ 1335758400000 , 18.315881576096]]
-  },
-
-  { 
-    "key" : "Health Care" , 
-    "values" : [ [ 1025409600000 , 13.153938631352] , [ 1028088000000 , 12.456410521864] , [ 1030766400000 , 12.537048663919] , [ 1033358400000 , 13.947386398309] , [ 1036040400000 , 14.421680682568] , [ 1038632400000 , 14.143238262286] , [ 1041310800000 , 12.229635347478] , [ 1043989200000 , 12.508479916948] , [ 1046408400000 , 12.155368409526] , [ 1049086800000 , 13.335455563994] , [ 1051675200000 , 12.888210138167] , [ 1054353600000 , 12.842092790511] , [ 1056945600000 , 12.513816474199] , [ 1059624000000 , 12.21453674494] , [ 1062302400000 , 11.750848343935] , [ 1064894400000 , 10.526579636787] , [ 1067576400000 , 10.873596086087] , [ 1070168400000 , 11.019967131519] , [ 1072846800000 , 11.235789380602] , [ 1075525200000 , 11.859910850657] , [ 1078030800000 , 12.531031616536] , [ 1080709200000 , 11.360451067019] , [ 1083297600000 , 11.456244780202] , [ 1085976000000 , 11.436991407309] , [ 1088568000000 , 11.638595744327] , [ 1091246400000 , 11.190418301469] , [ 1093924800000 , 11.835608007589] , [ 1096516800000 , 11.540980244475] , [ 1099195200000 , 10.958762325687] , [ 1101790800000 , 10.885791159509] , [ 1104469200000 , 13.605810720109] , [ 1107147600000 , 13.128978067437] , [ 1109566800000 , 13.119012086882] , [ 1112245200000 , 13.003706129783] , [ 1114833600000 , 13.326996807689] , [ 1117512000000 , 13.547947991743] , [ 1120104000000 , 12.807959646616] , [ 1122782400000 , 12.931763821068] , [ 1125460800000 , 12.795359993008] , [ 1128052800000 , 9.6998935538319] , [ 1130734800000 , 9.3473740089131] , [ 1133326800000 , 9.36902067716] , [ 1136005200000 , 14.258619539875] , [ 1138683600000 , 14.21241095603] , [ 1141102800000 , 13.973193618249] , [ 1143781200000 , 15.218233920664] , [ 1146369600000 , 14.382109727451] , [ 1149048000000 , 13.894310878491] , [ 1151640000000 , 15.593086090031] , [ 1154318400000 , 16.244839695189] , [ 1156996800000 , 16.017088850647] , [ 1159588800000 , 14.183951830057] , [ 1162270800000 , 14.148523245696] , [ 1164862800000 , 13.424326059971] , [ 1167541200000 , 12.974450435754] , [ 1170219600000 , 13.232470418021] , [ 1172638800000 , 13.318762655574] , [ 1175313600000 , 15.961407746104] , [ 1177905600000 , 16.287714639805] , [ 1180584000000 , 16.24659058389] , [ 1183176000000 , 17.564505594808] , [ 1185854400000 , 17.872725373164] , [ 1188532800000 , 18.018998508756] , [ 1191124800000 , 15.584518016602] , [ 1193803200000 , 15.480850647182] , [ 1196398800000 , 15.699120036985] , [ 1199077200000 , 19.184281817226] , [ 1201755600000 , 19.691226605205] , [ 1204261200000 , 18.982314051293] , [ 1206936000000 , 18.707820309008] , [ 1209528000000 , 17.459630929759] , [ 1212206400000 , 16.500616076782] , [ 1214798400000 , 18.086324003978] , [ 1217476800000 , 18.929464156259] , [ 1220155200000 , 18.233728682084] , [ 1222747200000 , 16.315776297325] , [ 1225425600000 , 14.632892190251] , [ 1228021200000 , 14.667835024479] , [ 1230699600000 , 13.946993947309] , [ 1233378000000 , 14.394304684398] , [ 1235797200000 , 13.724462792967] , [ 1238472000000 , 10.930879035807] , [ 1241064000000 , 9.8339915513708] , [ 1243742400000 , 10.053858541872] , [ 1246334400000 , 11.786998438286] , [ 1249012800000 , 11.780994901769] , [ 1251691200000 , 11.305889670277] , [ 1254283200000 , 10.918452290083] , [ 1256961600000 , 9.6811395055706] , [ 1259557200000 , 10.971529744038] , [ 1262235600000 , 13.330210480209] , [ 1264914000000 , 14.592637568961] , [ 1267333200000 , 14.605329141157] , [ 1270008000000 , 13.936853794037] , [ 1272600000000 , 12.189480759072] , [ 1275278400000 , 11.676151385046] , [ 1277870400000 , 13.058852800018] , [ 1280548800000 , 13.62891543203] , [ 1283227200000 , 13.811107569918] , [ 1285819200000 , 13.786494560786] , [ 1288497600000 , 14.045162857531] , [ 1291093200000 , 13.697412447286] , [ 1293771600000 , 13.677681376221] , [ 1296450000000 , 19.96151186453] , [ 1298869200000 , 21.049198298156] , [ 1301544000000 , 22.687631094009] , [ 1304136000000 , 25.469010617433] , [ 1306814400000 , 24.88379943712] , [ 1309406400000 , 24.203843814249] , [ 1312084800000 , 22.138760964036] , [ 1314763200000 , 16.034636966228] , [ 1317355200000 , 15.394958944555] , [ 1320033600000 , 12.62564246197] , [ 1322629200000 , 12.973735699739] , [ 1325307600000 , 15.78601833615] , [ 1327986000000 , 15.227368020134] , [ 1330491600000 , 15.899752650733] , [ 1333166400000 , 15.661317319168] , [ 1335758400000 , 15.359891177281]]
-  } , 
-
-  { 
-    "key" : "Industrials" , 
-    "values" : [ [ 1025409600000 , 3.9133244953315] , [ 1028088000000 , 3.518489051173] , [ 1030766400000 , 3.7355675327774] , [ 1033358400000 , 2.6282873198607] , [ 1036040400000 , 2.8090400696474] , [ 1038632400000 , 3.0820718825965] , [ 1041310800000 , 4.2312761636941] , [ 1043989200000 , 4.2510922012943] , [ 1046408400000 , 4.07193350752] , [ 1049086800000 , 4.4040931689245] , [ 1051675200000 , 4.9759379689913] , [ 1054353600000 , 5.0856875680608] , [ 1056945600000 , 4.2233639497997] , [ 1059624000000 , 4.1845715132052] , [ 1062302400000 , 4.3055194312575] , [ 1064894400000 , 3.349297776236] , [ 1067576400000 , 3.7023871871544] , [ 1070168400000 , 3.7170568683668] , [ 1072846800000 , 3.9155694541972] , [ 1075525200000 , 3.9774182471036] , [ 1078030800000 , 4.1580444091887] , [ 1080709200000 , 4.5495573666535] , [ 1083297600000 , 4.5050302469253] , [ 1085976000000 , 4.7094278163836] , [ 1088568000000 , 6.1937658979517] , [ 1091246400000 , 6.0412923676877] , [ 1093924800000 , 6.1747253413885] , [ 1096516800000 , 6.0800072674329] , [ 1099195200000 , 5.7092602419448] , [ 1101790800000 , 6.092841893499] , [ 1104469200000 , 5.7466125264224] , [ 1107147600000 , 5.5824356250394] , [ 1109566800000 , 5.5727222001361] , [ 1112245200000 , 6.2116832774493] , [ 1114833600000 , 5.8847941423832] , [ 1117512000000 , 5.8120124594798] , [ 1120104000000 , 5.9445727342442] , [ 1122782400000 , 6.1631035517269] , [ 1125460800000 , 5.8577541392534] , [ 1128052800000 , 4.6507957123369] , [ 1130734800000 , 4.4741764311828] , [ 1133326800000 , 4.7062417975264] , [ 1136005200000 , 7.2759032827647] , [ 1138683600000 , 7.1590087090399] , [ 1141102800000 , 7.1297210970108] , [ 1143781200000 , 5.5774588290586] , [ 1146369600000 , 5.4977254491156] , [ 1149048000000 , 5.5138153113634] , [ 1151640000000 , 4.3198084032122] , [ 1154318400000 , 3.9179295839125] , [ 1156996800000 , 3.8110093051479] , [ 1159588800000 , 5.5629020916939] , [ 1162270800000 , 5.7241673711336] , [ 1164862800000 , 5.4715049695004] , [ 1167541200000 , 4.9193763571618] , [ 1170219600000 , 5.1360539472469] , [ 1172638800000 , 5.1327258759766] , [ 1175313600000 , 5.1888943925083] , [ 1177905600000 , 5.5191481293346] , [ 1180584000000 , 5.6093625614921] , [ 1183176000000 , 4.2706312987397] , [ 1185854400000 , 4.4453235132117] , [ 1188532800000 , 4.6228003109761] , [ 1191124800000 , 5.0645764756954] , [ 1193803200000 , 5.0723447230959] , [ 1196398800000 , 5.1457765818846] , [ 1199077200000 , 5.4067851597282] , [ 1201755600000 , 5.472241916816] , [ 1204261200000 , 5.3742740389688] , [ 1206936000000 , 6.251751933664] , [ 1209528000000 , 6.1406852153472] , [ 1212206400000 , 5.8164385627465] , [ 1214798400000 , 5.4255846656171] , [ 1217476800000 , 5.3738499417204] , [ 1220155200000 , 5.1815627753979] , [ 1222747200000 , 5.0305983235349] , [ 1225425600000 , 4.6823058607165] , [ 1228021200000 , 4.5941481589093] , [ 1230699600000 , 5.4669598474574] , [ 1233378000000 , 5.1249037357] , [ 1235797200000 , 4.3504421250742] , [ 1238472000000 , 4.6260881026002] , [ 1241064000000 , 5.0140402458945] , [ 1243742400000 , 4.7458462454773] , [ 1246334400000 , 6.0437019654564] , [ 1249012800000 , 6.4595216249754] , [ 1251691200000 , 6.6420468254156] , [ 1254283200000 , 5.8927271960913] , [ 1256961600000 , 5.4712108838002] , [ 1259557200000 , 6.1220254207747] , [ 1262235600000 , 5.5385935169255] , [ 1264914000000 , 5.7383377612639] , [ 1267333200000 , 6.1715976730415] , [ 1270008000000 , 4.0102262681174] , [ 1272600000000 , 3.769389679692] , [ 1275278400000 , 3.5301571031152] , [ 1277870400000 , 2.7660252652526] , [ 1280548800000 , 3.1409983385775] , [ 1283227200000 , 3.0528024863055] , [ 1285819200000 , 4.3126123157971] , [ 1288497600000 , 4.594654041683] , [ 1291093200000 , 4.5424126126793] , [ 1293771600000 , 4.7790043987302] , [ 1296450000000 , 7.4969154058289] , [ 1298869200000 , 7.9424751557821] , [ 1301544000000 , 7.1560736250547] , [ 1304136000000 , 7.9478117337855] , [ 1306814400000 , 7.4109214848895] , [ 1309406400000 , 7.5966457641101] , [ 1312084800000 , 7.165754444071] , [ 1314763200000 , 5.4816702524302] , [ 1317355200000 , 4.9893656089584] , [ 1320033600000 , 4.498385105327] , [ 1322629200000 , 4.6776090358151] , [ 1325307600000 , 8.1350814368063] , [ 1327986000000 , 8.0732769990652] , [ 1330491600000 , 8.5602340387277] , [ 1333166400000 , 8.5387619987197] , [ 1335758400000 , 8.5984656985168]]
-  } , 
-
-  { 
-    "key" : "Information Technology" , 
-    "values" : [ [ 1025409600000 , 9.3433263069351] , [ 1028088000000 , 8.4583069475546] , [ 1030766400000 , 8.0342398154196] , [ 1033358400000 , 8.1538966876572] , [ 1036040400000 , 10.743604786849] , [ 1038632400000 , 12.349366155851] , [ 1041310800000 , 10.742682503899] , [ 1043989200000 , 11.360983869935] , [ 1046408400000 , 11.441336039535] , [ 1049086800000 , 10.897508791837] , [ 1051675200000 , 11.469101547709] , [ 1054353600000 , 12.086311476742] , [ 1056945600000 , 8.0697180773504] , [ 1059624000000 , 8.2004392233445] , [ 1062302400000 , 8.4566434900643] , [ 1064894400000 , 7.9565760979059] , [ 1067576400000 , 9.3764619255827] , [ 1070168400000 , 9.0747664160538] , [ 1072846800000 , 10.508939004673] , [ 1075525200000 , 10.69936754483] , [ 1078030800000 , 10.681562399145] , [ 1080709200000 , 13.184786109406] , [ 1083297600000 , 12.668213052351] , [ 1085976000000 , 13.430509403986] , [ 1088568000000 , 12.393086349213] , [ 1091246400000 , 11.942374044842] , [ 1093924800000 , 12.062227685742] , [ 1096516800000 , 11.969974363623] , [ 1099195200000 , 12.14374574055] , [ 1101790800000 , 12.69422821995] , [ 1104469200000 , 9.1235211044692] , [ 1107147600000 , 8.758211757584] , [ 1109566800000 , 8.8072309258443] , [ 1112245200000 , 11.687595946835] , [ 1114833600000 , 11.079723082664] , [ 1117512000000 , 12.049712896076] , [ 1120104000000 , 10.725319428684] , [ 1122782400000 , 10.844849996286] , [ 1125460800000 , 10.833535488461] , [ 1128052800000 , 17.180932407865] , [ 1130734800000 , 15.894764896516] , [ 1133326800000 , 16.412751299498] , [ 1136005200000 , 12.573569093402] , [ 1138683600000 , 13.242301508051] , [ 1141102800000 , 12.863536342041] , [ 1143781200000 , 21.034044171629] , [ 1146369600000 , 21.419084618802] , [ 1149048000000 , 21.142678863692] , [ 1151640000000 , 26.56848967753] , [ 1154318400000 , 24.839144939906] , [ 1156996800000 , 25.456187462166] , [ 1159588800000 , 26.350164502825] , [ 1162270800000 , 26.478333205189] , [ 1164862800000 , 26.425979547846] , [ 1167541200000 , 28.191461582256] , [ 1170219600000 , 28.930307448808] , [ 1172638800000 , 29.521413891117] , [ 1175313600000 , 28.188285966466] , [ 1177905600000 , 27.704619625831] , [ 1180584000000 , 27.49086242483] , [ 1183176000000 , 28.770679721286] , [ 1185854400000 , 29.06048067145] , [ 1188532800000 , 28.240998844973] , [ 1191124800000 , 33.004893194128] , [ 1193803200000 , 34.075180359928] , [ 1196398800000 , 32.548560664834] , [ 1199077200000 , 30.629727432729] , [ 1201755600000 , 28.642858788159] , [ 1204261200000 , 27.973575227843] , [ 1206936000000 , 27.393351882726] , [ 1209528000000 , 28.476095288522] , [ 1212206400000 , 29.29667866426] , [ 1214798400000 , 29.222333802896] , [ 1217476800000 , 28.092966093842] , [ 1220155200000 , 28.107159262922] , [ 1222747200000 , 25.482974832099] , [ 1225425600000 , 21.208115993834] , [ 1228021200000 , 20.295043095268] , [ 1230699600000 , 15.925754618402] , [ 1233378000000 , 17.162864628346] , [ 1235797200000 , 17.084345773174] , [ 1238472000000 , 22.24600710228] , [ 1241064000000 , 24.530543998508] , [ 1243742400000 , 25.084184918241] , [ 1246334400000 , 16.606166527359] , [ 1249012800000 , 17.239620011628] , [ 1251691200000 , 17.336739127379] , [ 1254283200000 , 25.478492475754] , [ 1256961600000 , 23.017152085244] , [ 1259557200000 , 25.617745423684] , [ 1262235600000 , 24.061133998641] , [ 1264914000000 , 23.223933318646] , [ 1267333200000 , 24.425887263936] , [ 1270008000000 , 35.501471156693] , [ 1272600000000 , 33.775013878675] , [ 1275278400000 , 30.417993630285] , [ 1277870400000 , 30.023598978467] , [ 1280548800000 , 33.327519522436] , [ 1283227200000 , 31.963388450372] , [ 1285819200000 , 30.49896723209] , [ 1288497600000 , 32.403696817913] , [ 1291093200000 , 31.47736071922] , [ 1293771600000 , 31.53259666241] , [ 1296450000000 , 41.760282761548] , [ 1298869200000 , 45.605771243237] , [ 1301544000000 , 39.986557966215] , [ 1304136000000 , 43.84633051005] , [ 1306814400000 , 39.857316881858] , [ 1309406400000 , 37.675127768207] , [ 1312084800000 , 35.775077970313] , [ 1314763200000 , 48.631009702578] , [ 1317355200000 , 42.830831754505] , [ 1320033600000 , 35.611502589362] , [ 1322629200000 , 35.320136981738] , [ 1325307600000 , 31.564136901516] , [ 1327986000000 , 32.074407502433] , [ 1330491600000 , 35.053013769977] , [ 1333166400000 , 33.873085184128] , [ 1335758400000 , 32.321039427046]]
-  } , 
-
-  {
-    "key" : "Materials" , 
-    "values" : [ [ 1025409600000 , 5.1162447683392] , [ 1028088000000 , 4.2022848306513] , [ 1030766400000 , 4.3543715758736] , [ 1033358400000 , 5.4641223667245] , [ 1036040400000 , 6.0041275884577] , [ 1038632400000 , 6.6050520064486] , [ 1041310800000 , 5.0154059912793] , [ 1043989200000 , 5.1835708554647] , [ 1046408400000 , 5.1142682006164] , [ 1049086800000 , 5.0271381717695] , [ 1051675200000 , 5.3437782653456] , [ 1054353600000 , 5.2105844515767] , [ 1056945600000 , 6.552565997799] , [ 1059624000000 , 6.9873363581831] , [ 1062302400000 , 7.010986789097] , [ 1064894400000 , 4.4254242025515] , [ 1067576400000 , 4.9613848042174] , [ 1070168400000 , 4.8854920484764] , [ 1072846800000 , 4.0441111794228] , [ 1075525200000 , 4.0219596813179] , [ 1078030800000 , 4.3065749225355] , [ 1080709200000 , 3.9148434915404] , [ 1083297600000 , 3.8659430654512] , [ 1085976000000 , 3.9572824600686] , [ 1088568000000 , 4.7372190641522] , [ 1091246400000 , 4.6871476374455] , [ 1093924800000 , 5.0398702564196] , [ 1096516800000 , 5.5221787544964] , [ 1099195200000 , 5.424646299798] , [ 1101790800000 , 5.9240223067349] , [ 1104469200000 , 5.9936860983601] , [ 1107147600000 , 5.8499523215019] , [ 1109566800000 , 6.4149040329325] , [ 1112245200000 , 6.4547895561969] , [ 1114833600000 , 5.9385382611161] , [ 1117512000000 , 6.0486751030592] , [ 1120104000000 , 5.23108613838] , [ 1122782400000 , 5.5857797121029] , [ 1125460800000 , 5.3454665096987] , [ 1128052800000 , 5.0439154120119] , [ 1130734800000 , 5.054634702913] , [ 1133326800000 , 5.3819451380848] , [ 1136005200000 , 5.2638869269803] , [ 1138683600000 , 5.5806167415681] , [ 1141102800000 , 5.4539047069985] , [ 1143781200000 , 7.6728842432362] , [ 1146369600000 , 7.719946716654] , [ 1149048000000 , 8.0144619912942] , [ 1151640000000 , 7.942223133434] , [ 1154318400000 , 8.3998279827444] , [ 1156996800000 , 8.532324572605] , [ 1159588800000 , 4.7324285199763] , [ 1162270800000 , 4.7402397487697] , [ 1164862800000 , 4.9042069355168] , [ 1167541200000 , 5.9583963430882] , [ 1170219600000 , 6.3693899239171] , [ 1172638800000 , 6.261153903813] , [ 1175313600000 , 5.3443942184584] , [ 1177905600000 , 5.4932111235361] , [ 1180584000000 , 5.5747393101109] , [ 1183176000000 , 5.3833633060013] , [ 1185854400000 , 5.5125898831832] , [ 1188532800000 , 5.8116112661327] , [ 1191124800000 , 4.3962296939996] , [ 1193803200000 , 4.6967663605521] , [ 1196398800000 , 4.7963004350914] , [ 1199077200000 , 4.1817985183351] , [ 1201755600000 , 4.3797643870182] , [ 1204261200000 , 4.6966642197965] , [ 1206936000000 , 4.3609995132565] , [ 1209528000000 , 4.4736290996496] , [ 1212206400000 , 4.3749762738128] , [ 1214798400000 , 3.3274661194507] , [ 1217476800000 , 3.0316184691337] , [ 1220155200000 , 2.5718140204728] , [ 1222747200000 , 2.7034994044603] , [ 1225425600000 , 2.2033786591364] , [ 1228021200000 , 1.9850621240805] , [ 1230699600000 , 0] , [ 1233378000000 , 0] , [ 1235797200000 , 0] , [ 1238472000000 , 0] , [ 1241064000000 , 0] , [ 1243742400000 , 0] , [ 1246334400000 , 0] , [ 1249012800000 , 0] , [ 1251691200000 , 0] , [ 1254283200000 , 0.44495950017788] , [ 1256961600000 , 0.33945469262483] , [ 1259557200000 , 0.38348269455195] , [ 1262235600000 , 0] , [ 1264914000000 , 0] , [ 1267333200000 , 0] , [ 1270008000000 , 0] , [ 1272600000000 , 0] , [ 1275278400000 , 0] , [ 1277870400000 , 0] , [ 1280548800000 , 0] , [ 1283227200000 , 0] , [ 1285819200000 , 0] , [ 1288497600000 , 0] , [ 1291093200000 , 0] , [ 1293771600000 , 0] , [ 1296450000000 , 0.52216435716176] , [ 1298869200000 , 0.59275786698454] , [ 1301544000000 , 0] , [ 1304136000000 , 0] , [ 1306814400000 , 0] , [ 1309406400000 , 0] , [ 1312084800000 , 0] , [ 1314763200000 , 0] , [ 1317355200000 , 0] , [ 1320033600000 , 0] , [ 1322629200000 , 0] , [ 1325307600000 , 0] , [ 1327986000000 , 0] , [ 1330491600000 , 0] , [ 1333166400000 , 0] , [ 1335758400000 , 0]]
-  } , 
-
-  { 
-    "key" : "Telecommunication Services" , 
-    "values" : [ [ 1025409600000 , 1.3503144674343] , [ 1028088000000 , 1.2232741112434] , [ 1030766400000 , 1.3930470790784] , [ 1033358400000 , 1.2631275030593] , [ 1036040400000 , 1.5842699103708] , [ 1038632400000 , 1.9546996043116] , [ 1041310800000 , 0.8504048300986] , [ 1043989200000 , 0.85340686311353] , [ 1046408400000 , 0.843061357391] , [ 1049086800000 , 2.119846992476] , [ 1051675200000 , 2.5285382124858] , [ 1054353600000 , 2.5056570712835] , [ 1056945600000 , 2.5212789901005] , [ 1059624000000 , 2.6192011642534] , [ 1062302400000 , 2.5382187823805] , [ 1064894400000 , 2.3393223047168] , [ 1067576400000 , 2.491219888698] , [ 1070168400000 , 2.497555874906] , [ 1072846800000 , 1.734018115546] , [ 1075525200000 , 1.9307268299646] , [ 1078030800000 , 2.2261679836799] , [ 1080709200000 , 1.7608893704206] , [ 1083297600000 , 1.6242690616808] , [ 1085976000000 , 1.7161663801295] , [ 1088568000000 , 1.7183554537038] , [ 1091246400000 , 1.7179780759145] , [ 1093924800000 , 1.7314274801784] , [ 1096516800000 , 1.2596883356752] , [ 1099195200000 , 1.381177053009] , [ 1101790800000 , 1.4408819615814] , [ 1104469200000 , 3.4743581836444] , [ 1107147600000 , 3.3603749903192] , [ 1109566800000 , 3.5350883257893] , [ 1112245200000 , 3.0949644237828] , [ 1114833600000 , 3.0796455899995] , [ 1117512000000 , 3.3441247640644] , [ 1120104000000 , 4.0947643978168] , [ 1122782400000 , 4.4072631274052] , [ 1125460800000 , 4.4870979780825] , [ 1128052800000 , 4.8404549457934] , [ 1130734800000 , 4.8293016233697] , [ 1133326800000 , 5.2238093263952] , [ 1136005200000 , 3.382306337815] , [ 1138683600000 , 3.7056975170243] , [ 1141102800000 , 3.7561118692318] , [ 1143781200000 , 2.861913700854] , [ 1146369600000 , 2.9933744103381] , [ 1149048000000 , 2.7127537218463] , [ 1151640000000 , 3.1195497076283] , [ 1154318400000 , 3.4066964004508] , [ 1156996800000 , 3.3754571113569] , [ 1159588800000 , 2.2965579982924] , [ 1162270800000 , 2.4486818633018] , [ 1164862800000 , 2.4002308848517] , [ 1167541200000 , 1.9649579750349] , [ 1170219600000 , 1.9385263638056] , [ 1172638800000 , 1.9128975336387] , [ 1175313600000 , 2.3412869836298] , [ 1177905600000 , 2.4337870351445] , [ 1180584000000 , 2.62179703171] , [ 1183176000000 , 3.2642864957929] , [ 1185854400000 , 3.3200396223709] , [ 1188532800000 , 3.3934212707572] , [ 1191124800000 , 4.2822327088179] , [ 1193803200000 , 4.1474964228541] , [ 1196398800000 , 4.1477082879801] , [ 1199077200000 , 5.2947122916128] , [ 1201755600000 , 5.2919843508028] , [ 1204261200000 , 5.198978305031] , [ 1206936000000 , 3.5603057673513] , [ 1209528000000 , 3.3009087690692] , [ 1212206400000 , 3.1784852603792] , [ 1214798400000 , 4.5889503538868] , [ 1217476800000 , 4.401779617494] , [ 1220155200000 , 4.2208301828278] , [ 1222747200000 , 3.89396671475] , [ 1225425600000 , 3.0423832241354] , [ 1228021200000 , 3.135520611578] , [ 1230699600000 , 1.9631418164089] , [ 1233378000000 , 1.8963543874958] , [ 1235797200000 , 1.8266636017025] , [ 1238472000000 , 0.93136635895188] , [ 1241064000000 , 0.92737801918888] , [ 1243742400000 , 0.97591889805002] , [ 1246334400000 , 2.6841193805515] , [ 1249012800000 , 2.5664341140531] , [ 1251691200000 , 2.3887523699873] , [ 1254283200000 , 1.1737801663681] , [ 1256961600000 , 1.0953582317281] , [ 1259557200000 , 1.2495674976653] , [ 1262235600000 , 0.36607452464754] , [ 1264914000000 , 0.3548719047291] , [ 1267333200000 , 0.36769242398939] , [ 1270008000000 , 0] , [ 1272600000000 , 0] , [ 1275278400000 , 0] , [ 1277870400000 , 0] , [ 1280548800000 , 0] , [ 1283227200000 , 0] , [ 1285819200000 , 0.85450741275337] , [ 1288497600000 , 0.91360317921637] , [ 1291093200000 , 0.89647678692269] , [ 1293771600000 , 0.87800687192639] , [ 1296450000000 , 0] , [ 1298869200000 , 0] , [ 1301544000000 , 0.43668720882994] , [ 1304136000000 , 0.4756523602692] , [ 1306814400000 , 0.46947368328469] , [ 1309406400000 , 0.45138896152316] , [ 1312084800000 , 0.43828726648117] , [ 1314763200000 , 2.0820861395316] , [ 1317355200000 , 0.9364411075395] , [ 1320033600000 , 0.60583907839773] , [ 1322629200000 , 0.61096950747437] , [ 1325307600000 , 0] , [ 1327986000000 , 0] , [ 1330491600000 , 0] , [ 1333166400000 , 0] , [ 1335758400000 , 0]]
-  } , 
-
-  { 
-    "key" : "Utilities" , 
-    "values" : [ [ 1025409600000 , 0] , [ 1028088000000 , 0] , [ 1030766400000 , 0] , [ 1033358400000 , 0.17112421375328] , [ 1036040400000 , 0.16363405009242] , [ 1038632400000 , 0.21933570171591] , [ 1041310800000 , 0] , [ 1043989200000 , 0] , [ 1046408400000 , 0] , [ 1049086800000 , 0] , [ 1051675200000 , 0] , [ 1054353600000 , 0] , [ 1056945600000 , 0] , [ 1059624000000 , 0] , [ 1062302400000 , 0] , [ 1064894400000 , 0] , [ 1067576400000 , 0] , [ 1070168400000 , 0] , [ 1072846800000 , 0] , [ 1075525200000 , 0] , [ 1078030800000 , 0] , [ 1080709200000 , 0] , [ 1083297600000 , 0] , [ 1085976000000 , 0] , [ 1088568000000 , 0] , [ 1091246400000 , 0] , [ 1093924800000 , 0] , [ 1096516800000 , 0] , [ 1099195200000 , 0] , [ 1101790800000 , 0] , [ 1104469200000 , 0] , [ 1107147600000 , 0] , [ 1109566800000 , 0] , [ 1112245200000 , 0] , [ 1114833600000 , 0] , [ 1117512000000 , 0] , [ 1120104000000 , 0] , [ 1122782400000 , 0] , [ 1125460800000 , 0] , [ 1128052800000 , 0] , [ 1130734800000 , 0] , [ 1133326800000 , 0] , [ 1136005200000 , 0] , [ 1138683600000 , 0] , [ 1141102800000 , 0] , [ 1143781200000 , 0] , [ 1146369600000 , 0] , [ 1149048000000 , 0] , [ 1151640000000 , 0] , [ 1154318400000 , 0] , [ 1156996800000 , 0] , [ 1159588800000 , 0] , [ 1162270800000 , 0] , [ 1164862800000 , 0] , [ 1167541200000 , 0] , [ 1170219600000 , 0] , [ 1172638800000 , 0] , [ 1175313600000 , 0] , [ 1177905600000 , 0] , [ 1180584000000 , 0] , [ 1183176000000 , 0] , [ 1185854400000 , 0] , [ 1188532800000 , 0] , [ 1191124800000 , 0] , [ 1193803200000 , 0] , [ 1196398800000 , 0] , [ 1199077200000 , 0] , [ 1201755600000 , 0] , [ 1204261200000 , 0] , [ 1206936000000 , 0] , [ 1209528000000 , 0] , [ 1212206400000 , 0] , [ 1214798400000 , 0] , [ 1217476800000 , 0] , [ 1220155200000 , 0] , [ 1222747200000 , 0] , [ 1225425600000 , 0] , [ 1228021200000 , 0] , [ 1230699600000 , 0] , [ 1233378000000 , 0] , [ 1235797200000 , 0] , [ 1238472000000 , 0] , [ 1241064000000 , 0] , [ 1243742400000 , 0] , [ 1246334400000 , 0] , [ 1249012800000 , 0] , [ 1251691200000 , 0] , [ 1254283200000 , 0] , [ 1256961600000 , 0] , [ 1259557200000 , 0] , [ 1262235600000 , 0] , [ 1264914000000 , 0] , [ 1267333200000 , 0] , [ 1270008000000 , 0] , [ 1272600000000 , 0] , [ 1275278400000 , 0] , [ 1277870400000 , 0] , [ 1280548800000 , 0] , [ 1283227200000 , 0] , [ 1285819200000 , 0] , [ 1288497600000 , 0] , [ 1291093200000 , 0] , [ 1293771600000 , 0] , [ 1296450000000 , 0] , [ 1298869200000 , 0] , [ 1301544000000 , 0] , [ 1304136000000 , 0] , [ 1306814400000 , 0] , [ 1309406400000 , 0] , [ 1312084800000 , 0] , [ 1314763200000 , 0] , [ 1317355200000 , 0] , [ 1320033600000 , 0] , [ 1322629200000 , 0] , [ 1325307600000 , 0] , [ 1327986000000 , 0] , [ 1330491600000 , 0] , [ 1333166400000 , 0] , [ 1335758400000 , 0]]
-  } , 
-  { 
-    "key" : "Not Available" , 
-    "values" : [ [ 1025409600000 , 0] , [ 1028088000000 , 0] , [ 1030766400000 , 0] , [ 1033358400000 , 0] , [ 1036040400000 , 0] , [ 1038632400000 , 0] , [ 1041310800000 , 0] , [ 1043989200000 , 0] , [ 1046408400000 , 0] , [ 1049086800000 , 0] , [ 1051675200000 , 0] , [ 1054353600000 , 0] , [ 1056945600000 , 0] , [ 1059624000000 , 0] , [ 1062302400000 , 0] , [ 1064894400000 , 0] , [ 1067576400000 , 0] , [ 1070168400000 , 0] , [ 1072846800000 , 0] , [ 1075525200000 , 0] , [ 1078030800000 , 0] , [ 1080709200000 , 0] , [ 1083297600000 , 0] , [ 1085976000000 , 0] , [ 1088568000000 , 0] , [ 1091246400000 , 0] , [ 1093924800000 , 0] , [ 1096516800000 , 0] , [ 1099195200000 , 0] , [ 1101790800000 , 0] , [ 1104469200000 , 0] , [ 1107147600000 , 0] , [ 1109566800000 , 0] , [ 1112245200000 , 0] , [ 1114833600000 , 0] , [ 1117512000000 , 0] , [ 1120104000000 , 0] , [ 1122782400000 , 0] , [ 1125460800000 , 0] , [ 1128052800000 , 0] , [ 1130734800000 , 0] , [ 1133326800000 , 0] , [ 1136005200000 , 0] , [ 1138683600000 , 0] , [ 1141102800000 , 0] , [ 1143781200000 , 0] , [ 1146369600000 , 0] , [ 1149048000000 , 0] , [ 1151640000000 , 0] , [ 1154318400000 , 0] , [ 1156996800000 , 0] , [ 1159588800000 , 0] , [ 1162270800000 , 0] , [ 1164862800000 , 0] , [ 1167541200000 , 0.050172677311163] , [ 1170219600000 , 0.05010459739003] , [ 1172638800000 , 0.050681828777765] , [ 1175313600000 , 0] , [ 1177905600000 , 0] , [ 1180584000000 , 0] , [ 1183176000000 , 0] , [ 1185854400000 , 0] , [ 1188532800000 , 0] , [ 1191124800000 , 0] , [ 1193803200000 , 0] , [ 1196398800000 , 0] , [ 1199077200000 , 0] , [ 1201755600000 , 0] , [ 1204261200000 , 0] , [ 1206936000000 , 0.18678212114368] , [ 1209528000000 , 0.17442959307088] , [ 1212206400000 , 0.16359572139598] , [ 1214798400000 , 0.15837381236842] , [ 1217476800000 , 0.15577933366753] , [ 1220155200000 , 0.14891802647046] , [ 1222747200000 , 0.1770757948046] , [ 1225425600000 , 0.18278762496453] , [ 1228021200000 , 0.19687349078343] , [ 1230699600000 , 0.23551013647077] , [ 1233378000000 , 0.25042391829233] , [ 1235797200000 , 0.26937282915476] , [ 1238472000000 , 0.23271248456665] , [ 1241064000000 , 0.20745841982123] , [ 1243742400000 , 0.2011712690448] , [ 1246334400000 , 0.21168244254666] , [ 1249012800000 , 0.20333696030696] , [ 1251691200000 , 0.19775078467844] , [ 1254283200000 , 0] , [ 1256961600000 , 0] , [ 1259557200000 , 0] , [ 1262235600000 , 0] , [ 1264914000000 , 0] , [ 1267333200000 , 0] , [ 1270008000000 , 0] , [ 1272600000000 , 0] , [ 1275278400000 , 0] , [ 1277870400000 , 0] , [ 1280548800000 , 0] , [ 1283227200000 , 0] , [ 1285819200000 , 0] , [ 1288497600000 , 0] , [ 1291093200000 , 0] , [ 1293771600000 , 0] , [ 1296450000000 , 0] , [ 1298869200000 , 0] , [ 1301544000000 , 0] , [ 1304136000000 , 0] , [ 1306814400000 , 0] , [ 1309406400000 , 0] , [ 1312084800000 , 0] , [ 1314763200000 , 1.3103821402664] , [ 1317355200000 , 1.0444700235618] , [ 1320033600000 , 0.81900499903221] , [ 1322629200000 , 0.81445352296526] , [ 1325307600000 , 0.27519092496306] , [ 1327986000000 , 0.28953340933973] , [ 1330491600000 , 0.31305944539777] , [ 1333166400000 , 0.28710464914403] , [ 1335758400000 , 0.27229889783707]]
-  }
-].map(function(series) {
-  series.values = series.values.map(function(d) {
-    return { x: d[0], y: d[1] }
-  });
-  return series;
-});
-
-
-
-
-//10 years of daily data may be too much
-var histcatexplongDaily = [ { "key" : "Mega Cap (>50B)" , "stack" : true , "shadowSize" : 0 , "color" : undefined , "lines" : { "fillColor" : undefined , "fill" : 0.5} , "values" : [ [ 1028088000000 , 13.642805422451] , [ 1028174400000 , 11.875679731479] , [ 1028260800000 , 11.421399549073] , [ 1028520000000 , 10.733251897009] , [ 1028606400000 , 11.661530061211] , [ 1028692800000 , 11.7112917692] , [ 1028779200000 , 14.103819662727] , [ 1028865600000 , 14.082769347465] , [ 1029124800000 , 11.740860483129] , [ 1029211200000 , 11.860424786601] , [ 1029297600000 , 14.634217807063] , [ 1029384000000 , 14.849983335535] , [ 1029470400000 , 14.617469163739] , [ 1029729600000 , 16.134528802301] , [ 1029816000000 , 16.001785130598] , [ 1029902400000 , 16.289976697577] , [ 1029988800000 , 16.345547017617] , [ 1030075200000 , 15.016771768137] , [ 1030334400000 , 16.514428994396] , [ 1030420800000 , 14.718654428932] , [ 1030507200000 , 14.659657936075] , [ 1030593600000 , 14.845581798872] , [ 1030680000000 , 14.425886992903] , [ 1031025600000 , 13.063561294758] , [ 1031112000000 , 13.932122906329] , [ 1031198400000 , 13.476416945626] , [ 1031284800000 , 13.756946025748] , [ 1031544000000 , 13.666796050119] , [ 1031630400000 , 14.526688014728] , [ 1031716800000 , 13.968113142817] , [ 1031803200000 , 13.387419611065] , [ 1031889600000 , 14.17368612619] , [ 1032148800000 , 14.224580841348] , [ 1032235200000 , 13.09290735702] , [ 1032321600000 , 13.056668289673] , [ 1032408000000 , 12.53361020337] , [ 1032494400000 , 11.662262454349] , [ 1032753600000 , 11.501669840888] , [ 1032840000000 , 11.226801655125] , [ 1032926400000 , 11.284497082087] , [ 1033012800000 , 13.129946485984] , [ 1033099200000 , 11.420661775583] , [ 1033358400000 , 12.764104543578] , [ 1033444800000 , 14.37974813639] , [ 1033531200000 , 14.319534627705] , [ 1033617600000 , 14.431969665087] , [ 1033704000000 , 14.535355684779] , [ 1033963200000 , 11.845381966522] , [ 1034049600000 , 11.906971573215] , [ 1034136000000 , 11.816803497933] , [ 1034222400000 , 14.636112555474] , [ 1034308800000 , 14.401140047604] , [ 1034568000000 , 14.4383532965] , [ 1034654400000 , 15.315563063954] , [ 1034740800000 , 14.878971028191] , [ 1034827200000 , 15.208585835815] , [ 1034913600000 , 15.693137174719] , [ 1035172800000 , 15.034598277674] , [ 1035259200000 , 15.023394017354] , [ 1035345600000 , 14.965539966377] , [ 1035432000000 , 15.068204517412] , [ 1035518400000 , 15.496372824134] , [ 1035781200000 , 15.026019327515] , [ 1035867600000 , 15.789780199601] , [ 1035954000000 , 15.420988765552] , [ 1036040400000 , 15.19068428749] , [ 1036126800000 , 15.98425855061] , [ 1036386000000 , 16.064783253946] , [ 1036472400000 , 16.966824273022] , [ 1036558800000 , 17.45596964696] , [ 1036645200000 , 16.916788666137] , [ 1036731600000 , 17.102426108455] , [ 1036990800000 , 17.34028845108] , [ 1037077200000 , 16.539143629842] , [ 1037163600000 , 15.80939735903] , [ 1037250000000 , 15.855111176764] , [ 1037336400000 , 15.734618234129] , [ 1037595600000 , 15.892924558938] , [ 1037682000000 , 15.545253114352] , [ 1037768400000 , 15.359085649129] , [ 1037854800000 , 16.072238596472] , [ 1037941200000 , 16.365375421162] , [ 1038200400000 , 16.438801060852] , [ 1038286800000 , 16.422576783929] , [ 1038373200000 , 16.541782274988] , [ 1038546000000 , 16.207167343549] , [ 1038805200000 , 15.665677501251] , [ 1038891600000 , 15.138537937859] , [ 1038978000000 , 15.331036283493] , [ 1039064400000 , 15.596673890063] , [ 1039150800000 , 15.398694716648] , [ 1039410000000 , 15.598158295174] , [ 1039496400000 , 15.558200031584] , [ 1039582800000 , 15.599933124483] , [ 1039669200000 , 15.112047186248] , [ 1039755600000 , 14.880637017925] , [ 1040014800000 , 14.630613583715] , [ 1040101200000 , 14.82218746051] , [ 1040187600000 , 14.801519512875] , [ 1040274000000 , 14.842062090649] , [ 1040360400000 , 14.510085979012] , [ 1040619600000 , 14.554647932203] , [ 1040706000000 , 14.497183052048] , [ 1040878800000 , 14.51456751301] , [ 1040965200000 , 14.747037948545] , [ 1041224400000 , 14.692528022465] , [ 1041310800000 , 10.392519679861] , [ 1041483600000 , 11.141137461306] , [ 1041570000000 , 11.206272326815] , [ 1041829200000 , 10.85789519811] , [ 1041915600000 , 11.311933609858] , [ 1042002000000 , 11.380161044131] , [ 1042088400000 , 11.717784290934] , [ 1042174800000 , 12.028210339248] , [ 1042434000000 , 12.276472894786] , [ 1042520400000 , 12.116208904131] , [ 1042606800000 , 11.689835194616] , [ 1042693200000 , 11.368457891523] , [ 1042779600000 , 11.051942634899] , [ 1043125200000 , 11.458426582014] , [ 1043211600000 , 10.950568262598] , [ 1043298000000 , 11.10679225975] , [ 1043384400000 , 11.203723777266] , [ 1043643600000 , 10.658424091851] , [ 1043730000000 , 10.871300642742] , [ 1043816400000 , 10.988239003581] , [ 1043902800000 , 10.358133215817] , [ 1043989200000 , 10.940753926428] , [ 1044248400000 , 11.14568006166] , [ 1044334800000 , 8.9585208923151] , [ 1044421200000 , 8.7817744346045] , [ 1044507600000 , 8.6129438711747] , [ 1044594000000 , 8.8633555330641] , [ 1044853200000 , 8.8343864359275] , [ 1044939600000 , 8.9465395795616] , [ 1045026000000 , 8.7634195320425] , [ 1045112400000 , 8.8871361315497] , [ 1045198800000 , 9.0291418122569] , [ 1045544400000 , 9.1237102415204] , [ 1045630800000 , 8.9858137336982] , [ 1045717200000 , 8.742546099706] , [ 1045803600000 , 8.9344443211012] , [ 1046062800000 , 9.0829293925095] , [ 1046149200000 , 8.8989225778379] , [ 1046235600000 , 8.1117656346095] , [ 1046322000000 , 8.3742305185827] , [ 1046408400000 , 10.727262439505] , [ 1046667600000 , 7.9188332277937] , [ 1046754000000 , 7.9146112750991] , [ 1046840400000 , 7.8459787036756] , [ 1046926800000 , 7.8420047254525] , [ 1047013200000 , 9.9371886629479] , [ 1047272400000 , 9.8240393297163] , [ 1047358800000 , 7.8413860601701] , [ 1047445200000 , 7.9650084142396] , [ 1047531600000 , 7.8786797985204] , [ 1047618000000 , 8.2055012905663] , [ 1047877200000 , 10.601478390204] , [ 1047963600000 , 10.398902029867] , [ 1048050000000 , 10.627615775823] , [ 1048136400000 , 10.762012027294] , [ 1048222800000 , 10.614053354236] , [ 1048482000000 , 8.5741879317356] , [ 1048568400000 , 10.54633171406] , [ 1048654800000 , 10.480316498744] , [ 1048741200000 , 10.41622472039] , [ 1048827600000 , 9.6987100256535] , [ 1049086800000 , 12.885147762294] , [ 1049173200000 , 13.600005371931] , [ 1049259600000 , 15.346046890346] , [ 1049346000000 , 15.804959425555] , [ 1049432400000 , 15.351618676967] , [ 1049688000000 , 15.860383742938] , [ 1049774400000 , 16.328614913588] , [ 1049860800000 , 16.046403127886] , [ 1049947200000 , 15.516364809914] , [ 1050033600000 , 15.355850037441] , [ 1050292800000 , 16.247978845396] , [ 1050379200000 , 15.701258642673] , [ 1050465600000 , 14.959206508197] , [ 1050552000000 , 15.209934799192] , [ 1050897600000 , 15.187040797633] , [ 1050984000000 , 15.310717394893] , [ 1051070400000 , 15.069678308094] , [ 1051156800000 , 15.186547639857] , [ 1051243200000 , 15.401844311752] , [ 1051502400000 , 14.965182242755] , [ 1051588800000 , 15.218815048588] , [ 1051675200000 , 15.044080101465] , [ 1051761600000 , 14.765024470894] , [ 1051848000000 , 14.894364306767] , [ 1052107200000 , 15.041520717597] , [ 1052193600000 , 14.679874556597] , [ 1052280000000 , 14.474117898334] , [ 1052366400000 , 14.875142665563] , [ 1052452800000 , 14.985666574026] , [ 1052712000000 , 15.083672916948] , [ 1052798400000 , 15.251333976098] , [ 1052884800000 , 14.488853489281] , [ 1052971200000 , 14.808389069554] , [ 1053057600000 , 14.615289253814] , [ 1053316800000 , 14.285356974173] , [ 1053403200000 , 15.08853169358] , [ 1053489600000 , 14.791686647147] , [ 1053576000000 , 15.494360129981] , [ 1053662400000 , 16.177500930842] , [ 1054008000000 , 16.305832521808] , [ 1054094400000 , 15.188433161517] , [ 1054180800000 , 14.948735463896] , [ 1054267200000 , 15.355674341407] , [ 1054526400000 , 15.264621469184] , [ 1054612800000 , 15.629277028235] , [ 1054699200000 , 16.955159834879] , [ 1054785600000 , 17.170978563286] , [ 1054872000000 , 17.087791328279] , [ 1055131200000 , 15.514289662549] , [ 1055217600000 , 15.748133673022] , [ 1055304000000 , 15.342799611773] , [ 1055390400000 , 16.616357713953] , [ 1055476800000 , 15.923041806377] , [ 1055736000000 , 15.732325502646] , [ 1055822400000 , 16.048370788878] , [ 1055908800000 , 15.618822159283] , [ 1055995200000 , 15.667291211562] , [ 1056081600000 , 16.761828187852] , [ 1056340800000 , 17.004445546769] , [ 1056427200000 , 17.306815913129] , [ 1056513600000 , 16.623094943016] , [ 1056600000000 , 16.897845029001] , [ 1056686400000 , 17.069588755468] , [ 1056945600000 , 14.757520989809] , [ 1057032000000 , 14.425659827603] , [ 1057118400000 , 14.44363775387] , [ 1057204800000 , 14.494591369121] , [ 1057550400000 , 15.012695798485] , [ 1057636800000 , 14.67349624342] , [ 1057723200000 , 14.418032233926] , [ 1057809600000 , 14.345910201699] , [ 1057896000000 , 14.056283240203] , [ 1058155200000 , 14.51821296933] , [ 1058241600000 , 14.145380868777] , [ 1058328000000 , 14.190701738129] , [ 1058414400000 , 13.129214389333] , [ 1058500800000 , 13.80206240454] , [ 1058760000000 , 13.568708520953] , [ 1058846400000 , 14.206671663782] , [ 1058932800000 , 13.093978065096] , [ 1059019200000 , 13.125162062641] , [ 1059105600000 , 13.109987856564] , [ 1059364800000 , 13.021345728351] , [ 1059451200000 , 13.329027948944] , [ 1059537600000 , 13.477784993802] , [ 1059624000000 , 12.734291817889] , [ 1059710400000 , 13.010113797305] , [ 1059969600000 , 13.017475752135] , [ 1060056000000 , 13.182601569482] , [ 1060142400000 , 13.047852582519] , [ 1060228800000 , 13.03708153917] , [ 1060315200000 , 13.045203429325] , [ 1060574400000 , 13.014488305995] , [ 1060660800000 , 13.030372596575] , [ 1060747200000 , 12.822027505415] , [ 1060833600000 , 12.930627114618] , [ 1060920000000 , 13.046547621206] , [ 1061179200000 , 12.944810608192] , [ 1061265600000 , 12.808411539645] , [ 1061352000000 , 12.947018675176] , [ 1061438400000 , 13.048692063836] , [ 1061524800000 , 12.586172295027] , [ 1061784000000 , 13.327695547504] , [ 1061870400000 , 13.297675405593] , [ 1061956800000 , 12.940141294158] , [ 1062043200000 , 13.209094653523] , [ 1062129600000 , 13.297359958206] , [ 1062475200000 , 13.159985269884] , [ 1062561600000 , 13.114684186086] , [ 1062648000000 , 13.245856819083] , [ 1062734400000 , 12.977072683393] , [ 1062993600000 , 13.394814823289] , [ 1063080000000 , 13.212225945919] , [ 1063166400000 , 13.435464107877] , [ 1063252800000 , 12.98756152002] , [ 1063339200000 , 13.203589274977] , [ 1063598400000 , 13.265765654294] , [ 1063684800000 , 13.383166202067] , [ 1063771200000 , 13.416947848623] , [ 1063857600000 , 13.633832246794] , [ 1063944000000 , 13.218462211004] , [ 1064203200000 , 13.19676330301] , [ 1064289600000 , 13.752487198232] , [ 1064376000000 , 13.443831315224] , [ 1064462400000 , 13.138291171685] , [ 1064548800000 , 13.352279539814] , [ 1064808000000 , 13.215754544261] , [ 1064894400000 , 10.592808398291] , [ 1064980800000 , 11.584316660978] , [ 1065067200000 , 11.592860206884] , [ 1065153600000 , 11.67357840872] , [ 1065412800000 , 11.618432522208] , [ 1065499200000 , 11.62460513772] , [ 1065585600000 , 11.419449828613] , [ 1065672000000 , 11.369890322531] , [ 1065758400000 , 11.426658907868] , [ 1066017600000 , 11.551454757181] , [ 1066104000000 , 11.174308388585] , [ 1066190400000 , 11.430070167733] , [ 1066276800000 , 11.610321240776] , [ 1066363200000 , 11.911265707813] , [ 1066622400000 , 11.628635363612] , [ 1066708800000 , 11.490094710753] , [ 1066795200000 , 11.37777392182] , [ 1066881600000 , 11.287595621855] , [ 1066968000000 , 11.660852133475] , [ 1067230800000 , 11.404622674833] , [ 1067317200000 , 11.620454905862] , [ 1067403600000 , 11.233217971118] , [ 1067490000000 , 11.554977553954] , [ 1067576400000 , 11.562633227696] , [ 1067835600000 , 11.236870599706] , [ 1067922000000 , 11.174994107749] , [ 1068008400000 , 10.985573678768] , [ 1068094800000 , 10.971711382603] , [ 1068181200000 , 11.228481720983] , [ 1068440400000 , 11.173321488567] , [ 1068526800000 , 11.160687490218] , [ 1068613200000 , 10.958180611759] , [ 1068699600000 , 11.215246697489] , [ 1068786000000 , 11.003353777202] , [ 1069045200000 , 11.118979809353] , [ 1069131600000 , 11.351024430878] , [ 1069218000000 , 11.22386406551] , [ 1069304400000 , 11.234282691785] , [ 1069390800000 , 11.182994371566] , [ 1069650000000 , 11.073089635305] , [ 1069736400000 , 11.261198025458] , [ 1069822800000 , 11.297554650262] , [ 1069995600000 , 11.259109011658] , [ 1070254800000 , 11.710803411353] , [ 1070341200000 , 11.766425730406] , [ 1070427600000 , 13.796050893655] , [ 1070514000000 , 14.006188181326] , [ 1070600400000 , 11.950626949166] , [ 1070859600000 , 13.798685011172] , [ 1070946000000 , 11.983535857453] , [ 1071032400000 , 12.051234620267] , [ 1071118800000 , 11.929515424882] , [ 1071205200000 , 14.190401017053] , [ 1071464400000 , 14.024013929524] , [ 1071550800000 , 14.183457200954] , [ 1071637200000 , 14.266961776334] , [ 1071723600000 , 14.430128319216] , [ 1071810000000 , 16.080375421735] , [ 1072069200000 , 16.103353017977] , [ 1072155600000 , 16.279199588854] , [ 1072242000000 , 16.478764873731] , [ 1072414800000 , 16.207205065304] , [ 1072674000000 , 16.39838899585] , [ 1072760400000 , 16.12908590395] , [ 1072846800000 , 15.698379778345] , [ 1073019600000 , 16.020791556937] , [ 1073278800000 , 16.953664091607] , [ 1073365200000 , 16.546879877942] , [ 1073451600000 , 16.380875635123] , [ 1073538000000 , 16.6222746874] , [ 1073624400000 , 16.571366479677] , [ 1073883600000 , 16.503192742954] , [ 1073970000000 , 16.230087714326] , [ 1074056400000 , 16.441952205705] , [ 1074142800000 , 16.467902285953] , [ 1074229200000 , 16.419146113837] , [ 1074574800000 , 16.423642095641] , [ 1074661200000 , 16.315847871454] , [ 1074747600000 , 16.480925866583] , [ 1074834000000 , 16.494885756585] , [ 1075093200000 , 16.451962488884] , [ 1075179600000 , 16.693217958733] , [ 1075266000000 , 15.993935310967] , [ 1075352400000 , 16.445424514045] , [ 1075438800000 , 16.233245530602] , [ 1075698000000 , 16.770975957267] , [ 1075784400000 , 16.637095267862] , [ 1075870800000 , 16.398496990066] , [ 1075957200000 , 16.636433656028] , [ 1076043600000 , 16.741241709345] , [ 1076302800000 , 16.358863820936] , [ 1076389200000 , 16.804453904285] , [ 1076475600000 , 17.122769194349] , [ 1076562000000 , 16.843936830372] , [ 1076648400000 , 17.204663287995] , [ 1076994000000 , 16.861333045809] , [ 1077080400000 , 16.689613022807] , [ 1077166800000 , 17.069156733239] , [ 1077253200000 , 17.161781983051] , [ 1077512400000 , 16.937063286204] , [ 1077598800000 , 16.948634220352] , [ 1077685200000 , 16.805364901553] , [ 1077771600000 , 16.916473084864] , [ 1077858000000 , 16.777305107502] , [ 1078117200000 , 17.195747006378] , [ 1078203600000 , 17.260214849649] , [ 1078290000000 , 17.088976632499] , [ 1078376400000 , 16.815022141032] , [ 1078462800000 , 16.918967781785] , [ 1078722000000 , 17.095709840362] , [ 1078808400000 , 16.836646934174] , [ 1078894800000 , 17.018821619004] , [ 1078981200000 , 16.816361729484] , [ 1079067600000 , 17.289801592392] , [ 1079326800000 , 16.815813656255] , [ 1079413200000 , 17.098047668609] , [ 1079499600000 , 16.914468151547] , [ 1079586000000 , 17.178240266542] , [ 1079672400000 , 17.354705199071] , [ 1079931600000 , 16.706216878288] , [ 1080018000000 , 17.160532281065] , [ 1080104400000 , 17.126776074911] , [ 1080190800000 , 16.889812930307] , [ 1080277200000 , 17.195582036562] , [ 1080536400000 , 17.129316356616] , [ 1080622800000 , 16.904386511219] , [ 1080709200000 , 18.009684567824] , [ 1080795600000 , 17.799449380861] , [ 1080882000000 , 17.786822940824] , [ 1081137600000 , 17.500423232337] , [ 1081224000000 , 19.313645067984] , [ 1081310400000 , 19.523468874436] , [ 1081396800000 , 19.38619537995] , [ 1081742400000 , 19.658135223291] , [ 1081828800000 , 19.285586968736] , [ 1081915200000 , 19.937320237822] , [ 1082001600000 , 19.994342925797] , [ 1082088000000 , 19.306947454208] , [ 1082347200000 , 19.467817124598] , [ 1082433600000 , 19.547761579486] , [ 1082520000000 , 19.322232980481] , [ 1082606400000 , 19.422049603292] , [ 1082692800000 , 19.854231531335] , [ 1082952000000 , 19.671559642044] , [ 1083038400000 , 19.558592251637] , [ 1083124800000 , 19.560424905437] , [ 1083211200000 , 17.254982535721] , [ 1083297600000 , 17.404378517866] , [ 1083556800000 , 18.521278479691] , [ 1083643200000 , 20.518112787263] , [ 1083729600000 , 20.542027197683] , [ 1083816000000 , 18.434303546789] , [ 1083902400000 , 18.176188098008] , [ 1084161600000 , 18.136835001878] , [ 1084248000000 , 18.334410773677] , [ 1084334400000 , 18.990311544463] , [ 1084420800000 , 18.528100939765] , [ 1084507200000 , 18.941798712947] , [ 1084766400000 , 19.159421901243] , [ 1084852800000 , 18.489152131064] , [ 1084939200000 , 18.445857868638] , [ 1085025600000 , 19.117471754165] , [ 1085112000000 , 18.644622094647] , [ 1085371200000 , 18.401791512441] , [ 1085457600000 , 18.10245512817] , [ 1085544000000 , 18.950943150102] , [ 1085630400000 , 20.504012201316] , [ 1085716800000 , 18.729061506676] , [ 1086062400000 , 18.237299730796] , [ 1086148800000 , 18.59102613868] , [ 1086235200000 , 18.799149239853] , [ 1086321600000 , 18.690471126419] , [ 1086580800000 , 20.219228596347] , [ 1086667200000 , 18.410218443454] , [ 1086753600000 , 18.589056441112] , [ 1086840000000 , 18.614078045357] , [ 1087185600000 , 18.75429019969] , [ 1087272000000 , 18.963689720757] , [ 1087358400000 , 18.525491900713] , [ 1087444800000 , 18.591273866415] , [ 1087531200000 , 18.621490700609] , [ 1087790400000 , 18.820314117456] , [ 1087876800000 , 18.654201199086] , [ 1087963200000 , 18.62375596118] , [ 1088049600000 , 18.737678674737] , [ 1088136000000 , 18.779965448567] , [ 1088395200000 , 18.490854345986] , [ 1088481600000 , 18.738058580821] , [ 1088568000000 , 20.646278442114] , [ 1088654400000 , 18.682511679245] , [ 1088740800000 , 18.698327809272] , [ 1089086400000 , 18.94892162567] , [ 1089172800000 , 18.723378716348] , [ 1089259200000 , 18.651336681983] , [ 1089345600000 , 18.898278242083] , [ 1089604800000 , 18.953074409831] , [ 1089691200000 , 19.531665648188] , [ 1089777600000 , 18.597919821526] , [ 1089864000000 , 18.837996019127] , [ 1089950400000 , 18.988809190689] , [ 1090209600000 , 18.964646217864] , [ 1090296000000 , 18.736684594864] , [ 1090382400000 , 19.270952039733] , [ 1090468800000 , 19.072379282817] , [ 1090555200000 , 19.015495000666] , [ 1090814400000 , 19.195675588444] , [ 1090900800000 , 18.709063584519] , [ 1090987200000 , 18.538093091108] , [ 1091073600000 , 18.575715218408] , [ 1091160000000 , 19.098123547811] , [ 1091419200000 , 20.002312938094] , [ 1091505600000 , 19.98285002465] , [ 1091592000000 , 19.995584270913] , [ 1091678400000 , 20.466331536224] , [ 1091764800000 , 19.794414355997] , [ 1092024000000 , 19.749518059094] , [ 1092110400000 , 20.093965457367] , [ 1092196800000 , 19.905652626558] , [ 1092283200000 , 19.678775168419] , [ 1092369600000 , 20.545901299164] , [ 1092628800000 , 19.884869707957] , [ 1092715200000 , 19.776774242544] , [ 1092801600000 , 20.117304302343] , [ 1092888000000 , 19.96093061678] , [ 1092974400000 , 20.143095881477] , [ 1093233600000 , 20.467025105078] , [ 1093320000000 , 19.873677876376] , [ 1093406400000 , 20.385336063088] , [ 1093492800000 , 20.249263649503] , [ 1093579200000 , 19.699915446254] , [ 1093838400000 , 19.513758387166] , [ 1093924800000 , 19.813911853858] , [ 1094011200000 , 19.583613688386] , [ 1094097600000 , 19.585256836835] , [ 1094184000000 , 19.437733249656] , [ 1094529600000 , 19.805095952845] , [ 1094616000000 , 19.784757316099] , [ 1094702400000 , 19.295977520675] , [ 1094788800000 , 19.993577416633] , [ 1095048000000 , 19.728654046906] , [ 1095134400000 , 19.909586376169] , [ 1095220800000 , 19.541292932254] , [ 1095307200000 , 19.538547958006] , [ 1095393600000 , 19.532972576562] , [ 1095652800000 , 19.92993562423] , [ 1095739200000 , 19.507718588521] , [ 1095825600000 , 19.447016394926] , [ 1095912000000 , 19.581582894327] , [ 1095998400000 , 19.397279775437] , [ 1096257600000 , 18.972414718906] , [ 1096344000000 , 19.512430110099] , [ 1096430400000 , 19.160750389058] , [ 1096516800000 , 21.646177747611] , [ 1096603200000 , 21.586752516928] , [ 1096862400000 , 21.933768036886] , [ 1096948800000 , 21.124057573676] , [ 1097035200000 , 20.990484155309] , [ 1097121600000 , 23.202774998191] , [ 1097208000000 , 21.755446722827] , [ 1097467200000 , 21.804100588778] , [ 1097553600000 , 21.937564086025] , [ 1097640000000 , 22.116028802006] , [ 1097726400000 , 21.659512536315] , [ 1097812800000 , 21.587450251975] , [ 1098072000000 , 21.838642600605] , [ 1098158400000 , 21.837029815784] , [ 1098244800000 , 21.813031424014] , [ 1098331200000 , 21.984920792141] , [ 1098417600000 , 21.758729063109] , [ 1098676800000 , 21.935734869092] , [ 1098763200000 , 22.052128108546] , [ 1098849600000 , 21.930648574612] , [ 1098936000000 , 21.78668335978] , [ 1099022400000 , 21.618924642802] , [ 1099285200000 , 21.804042802029] , [ 1099371600000 , 22.169576349235] , [ 1099458000000 , 25.517578427313] , [ 1099544400000 , 25.448725495882] , [ 1099630800000 , 25.496696102096] , [ 1099890000000 , 25.325219480162] , [ 1099976400000 , 25.097074932518] , [ 1100062800000 , 25.222388005927] , [ 1100149200000 , 25.24984515615] , [ 1100235600000 , 25.498608839824] , [ 1100494800000 , 25.157044703788] , [ 1100581200000 , 25.557232435226] , [ 1100667600000 , 25.545893239426] , [ 1100754000000 , 26.070383826557] , [ 1100840400000 , 25.774054391672] , [ 1101099600000 , 25.571637755899] , [ 1101186000000 , 25.416194920183] , [ 1101272400000 , 25.864344506792] , [ 1101445200000 , 26.292748099602] , [ 1101704400000 , 25.362976673756] , [ 1101790800000 , 25.773336316286] , [ 1101877200000 , 25.783090485939] , [ 1101963600000 , 25.194967754687] , [ 1102050000000 , 25.622802162205] , [ 1102309200000 , 25.6425833043] , [ 1102395600000 , 24.920549696072] , [ 1102482000000 , 25.316343230822] , [ 1102568400000 , 25.30531188148] , [ 1102654800000 , 25.225131464585] , [ 1102914000000 , 24.590153649434] , [ 1103000400000 , 25.033533767403] , [ 1103086800000 , 25.008830962368] , [ 1103173200000 , 25.649906697849] , [ 1103259600000 , 25.862079663767] , [ 1103518800000 , 25.148058458615] , [ 1103605200000 , 25.12527979799] , [ 1103691600000 , 25.0574436886] , [ 1103778000000 , 25.09707573417] , [ 1104123600000 , 25.088365613838] , [ 1104210000000 , 24.979491165026] , [ 1104296400000 , 25.170881221308] , [ 1104382800000 , 25.625396478155] , [ 1104469200000 , 24.031265206517] , [ 1104728400000 , 23.343419810151] , [ 1104814800000 , 24.008106210856] , [ 1104901200000 , 23.420005383033] , [ 1104987600000 , 23.275472973038] , [ 1105074000000 , 23.569345951836] , [ 1105333200000 , 22.961729007326] , [ 1105419600000 , 23.55442839573] , [ 1105506000000 , 23.506813486298] , [ 1105592400000 , 23.731268021536] , [ 1105678800000 , 23.696580084935] , [ 1106024400000 , 23.129559778933] , [ 1106110800000 , 22.821363436635] , [ 1106197200000 , 20.86015164814] , [ 1106283600000 , 22.893029615037] , [ 1106542800000 , 23.355475025064] , [ 1106629200000 , 23.089272093595] , [ 1106715600000 , 23.344106490732] , [ 1106802000000 , 23.347887014173] , [ 1106888400000 , 23.36078869705] , [ 1107147600000 , 23.373245981279] , [ 1107234000000 , 23.705979354142] , [ 1107320400000 , 23.865947771013] , [ 1107406800000 , 21.283879539416] , [ 1107493200000 , 23.66199789454] , [ 1107752400000 , 22.965888865612] , [ 1107838800000 , 23.308724058174] , [ 1107925200000 , 23.235706362274] , [ 1108011600000 , 23.205107046442] , [ 1108098000000 , 24.136713081779] , [ 1108357200000 , 23.664808565396] , [ 1108443600000 , 26.075064884573] , [ 1108530000000 , 26.606421256181] , [ 1108616400000 , 26.763619078589] , [ 1108702800000 , 26.640415422821] , [ 1109048400000 , 24.99289465022] , [ 1109134800000 , 24.648148178797] , [ 1109221200000 , 24.968975921517] , [ 1109307600000 , 26.931337546753] , [ 1109566800000 , 24.942658784793] , [ 1109653200000 , 23.471329508474] , [ 1109739600000 , 25.239087941343] , [ 1109826000000 , 25.567769147767] , [ 1109912400000 , 25.483492246231] , [ 1110171600000 , 25.387248674556] , [ 1110258000000 , 26.050717483278] , [ 1110344400000 , 25.295141819132] , [ 1110430800000 , 25.54231254846] , [ 1110517200000 , 25.769024354756] , [ 1110776400000 , 25.245202642321] , [ 1110862800000 , 24.907994697428] , [ 1110949200000 , 23.199402426676] , [ 1111035600000 , 22.585933640283] , [ 1111122000000 , 25.848734598723] , [ 1111381200000 , 22.586407411227] , [ 1111467600000 , 22.852807521609] , [ 1111554000000 , 22.371428313299] , [ 1111640400000 , 22.229261875096] , [ 1111986000000 , 22.340486663288] , [ 1112072400000 , 22.491793252308] , [ 1112158800000 , 22.679006834333] , [ 1112245200000 , 27.086827026963] , [ 1112331600000 , 25.897902387814] , [ 1112587200000 , 26.314813301572] , [ 1112673600000 , 26.317053082588] , [ 1112760000000 , 26.222744149315] , [ 1112846400000 , 25.977457886062] , [ 1112932800000 , 25.781076625606] , [ 1113192000000 , 25.700445032017] , [ 1113278400000 , 25.767099175701] , [ 1113364800000 , 25.254627006031] , [ 1113451200000 , 23.443125239257] , [ 1113537600000 , 23.80709168838] , [ 1113796800000 , 23.267449744421] , [ 1113883200000 , 23.706859094307] , [ 1113969600000 , 23.661405563013] , [ 1114056000000 , 23.689943876315] , [ 1114142400000 , 23.928464880017] , [ 1114401600000 , 24.028677477634] , [ 1114488000000 , 23.6073103617] , [ 1114574400000 , 23.649084903904] , [ 1114660800000 , 23.372608135229] , [ 1114747200000 , 24.22242907229] , [ 1115006400000 , 24.825534085466] , [ 1115092800000 , 25.117295984672] , [ 1115179200000 , 24.979352307832] , [ 1115265600000 , 24.490943462094] , [ 1115352000000 , 24.621445279336] , [ 1115611200000 , 24.878598742424] , [ 1115697600000 , 25.148812466565] , [ 1115784000000 , 24.501099784189] , [ 1115870400000 , 24.478445620986] , [ 1115956800000 , 24.472276247696] , [ 1116216000000 , 24.606928221896] , [ 1116302400000 , 24.579133999631] , [ 1116388800000 , 24.470721627489] , [ 1116475200000 , 25.006560259093] , [ 1116561600000 , 24.309741420169] , [ 1116820800000 , 24.434908261044] , [ 1116907200000 , 24.315643820248] , [ 1116993600000 , 24.861249818558] , [ 1117080000000 , 24.862310288608] , [ 1117166400000 , 24.632493623236] , [ 1117512000000 , 24.329603964259] , [ 1117598400000 , 24.814648698674] , [ 1117684800000 , 25.084052215672] , [ 1117771200000 , 24.273608633215] , [ 1118030400000 , 25.001264387652] , [ 1118116800000 , 25.096801174557] , [ 1118203200000 , 24.801175740278] , [ 1118289600000 , 25.435184904398] , [ 1118376000000 , 24.873408886896] , [ 1118635200000 , 26.951916090161] , [ 1118721600000 , 25.024823913702] , [ 1118808000000 , 26.754562842156] , [ 1118894400000 , 26.83564131576] , [ 1118980800000 , 27.217585001329] , [ 1119240000000 , 26.89094176222] , [ 1119326400000 , 26.76317711477] , [ 1119412800000 , 27.092925092423] , [ 1119499200000 , 27.497947062659] , [ 1119585600000 , 27.35194467719] , [ 1119844800000 , 25.32067578663] , [ 1119931200000 , 24.530768706756] , [ 1120017600000 , 24.364126825119] , [ 1120104000000 , 24.081940207813] , [ 1120190400000 , 23.994423637651] , [ 1120536000000 , 24.788867547072] , [ 1120622400000 , 24.444638477398] , [ 1120708800000 , 25.533775508509] , [ 1120795200000 , 25.074839094522] , [ 1121054400000 , 26.440444017973] , [ 1121140800000 , 26.852648939926] , [ 1121227200000 , 26.83924137895] , [ 1121313600000 , 27.433778491168] , [ 1121400000000 , 26.758522515686] , [ 1121659200000 , 26.935642144492] , [ 1121745600000 , 26.734070820088] , [ 1121832000000 , 27.519441433785] , [ 1121918400000 , 26.518017862082] , [ 1122004800000 , 26.407194381858] , [ 1122264000000 , 26.829477744392] , [ 1122350400000 , 26.302677246028] , [ 1122436800000 , 26.577720100341] , [ 1122523200000 , 27.370389646336] , [ 1122609600000 , 26.636843688831] , [ 1122868800000 , 26.289915786381] , [ 1122955200000 , 25.643665769494] , [ 1123041600000 , 25.029059231656] , [ 1123128000000 , 24.516982777476] , [ 1123214400000 , 24.474346193421] , [ 1123473600000 , 24.359648701401] , [ 1123560000000 , 23.867882495626] , [ 1123646400000 , 25.96989361759] , [ 1123732800000 , 25.744337365068] , [ 1123819200000 , 26.240498253735] , [ 1124078400000 , 26.329012585941] , [ 1124164800000 , 25.860356508261] , [ 1124251200000 , 26.221018056402] , [ 1124337600000 , 26.778749319194] , [ 1124424000000 , 26.102180305031] , [ 1124683200000 , 27.013918924362] , [ 1124769600000 , 26.071662697116] , [ 1124856000000 , 25.5179447868] , [ 1124942400000 , 25.481361146192] , [ 1125028800000 , 25.242448591984] , [ 1125288000000 , 25.798476198329] , [ 1125374400000 , 23.603038168679] , [ 1125460800000 , 23.765648005627] , [ 1125547200000 , 24.753831401627] , [ 1125633600000 , 24.85739962812] , [ 1125979200000 , 26.839336602318] , [ 1126065600000 , 26.596991879082] , [ 1126152000000 , 26.155432451299] , [ 1126238400000 , 26.763242035993] , [ 1126497600000 , 26.560563934301] , [ 1126584000000 , 24.884536060694] , [ 1126670400000 , 25.289649287108] , [ 1126756800000 , 25.085448265753] , [ 1126843200000 , 25.280138080234] , [ 1127102400000 , 25.458692583337] , [ 1127188800000 , 24.916888571226] , [ 1127275200000 , 24.893011271785] , [ 1127361600000 , 25.12227670638] , [ 1127448000000 , 24.931304717681] , [ 1127707200000 , 24.767500892636] , [ 1127793600000 , 24.637929467534] , [ 1127880000000 , 25.395025320764] , [ 1127966400000 , 24.962928819126] , [ 1128052800000 , 18.782225765597] , [ 1128312000000 , 18.413068947688] , [ 1128398400000 , 18.187456094151] , [ 1128484800000 , 16.382273962111] , [ 1128571200000 , 15.781938061444] , [ 1128657600000 , 17.641712023808] , [ 1128916800000 , 17.507777940228] , [ 1129003200000 , 14.982575484996] , [ 1129089600000 , 14.76203928617] , [ 1129176000000 , 13.901962618455] , [ 1129262400000 , 13.833857995254] , [ 1129521600000 , 14.626739123052] , [ 1129608000000 , 14.809415558199] , [ 1129694400000 , 3.750262011271] , [ 1129780800000 , 15.022145959914] , [ 1129867200000 , 14.84289646174] , [ 1130126400000 , 14.600076623491] , [ 1130212800000 , 15.069384911686] , [ 1130299200000 , 14.910371659041] , [ 1130385600000 , 14.862105763073] , [ 1130472000000 , 14.727048171468] , [ 1130734800000 , 15.260100765166] , [ 1130821200000 , 15.5600151884] , [ 1130907600000 , 19.731000055362] , [ 1130994000000 , 16.795807306913] , [ 1131080400000 , 16.996738001815] , [ 1131339600000 , 19.556926922237] , [ 1131426000000 , 19.506935609171] , [ 1131512400000 , 19.29703424702] , [ 1131598800000 , 19.419718073663] , [ 1131685200000 , 19.567047213518] , [ 1131944400000 , 19.115098715137] , [ 1132030800000 , 17.472432281025] , [ 1132117200000 , 17.618400449771] , [ 1132203600000 , 20.517479002355] , [ 1132290000000 , 20.756239971058] , [ 1132549200000 , 21.519442983346] , [ 1132635600000 , 21.031188726302] , [ 1132722000000 , 22.43582291989] , [ 1132894800000 , 22.296678352786] , [ 1133154000000 , 22.533858503329] , [ 1133240400000 , 21.117870159608] , [ 1133326800000 , 20.95249121599] , [ 1133413200000 , 23.24722174208] , [ 1133499600000 , 22.675001400472] , [ 1133758800000 , 23.576237213841] , [ 1133845200000 , 22.88787129189] , [ 1133931600000 , 22.770908601935] , [ 1134018000000 , 22.439568857468] , [ 1134104400000 , 23.182558381821] , [ 1134363600000 , 22.874630115583] , [ 1134450000000 , 23.222236128125] , [ 1134536400000 , 23.592275271288] , [ 1134622800000 , 23.539378476459] , [ 1134709200000 , 23.071905750877] , [ 1134968400000 , 23.424903415098] , [ 1135054800000 , 23.39950282514] , [ 1135141200000 , 23.409965487841] , [ 1135227600000 , 23.505376564929] , [ 1135314000000 , 23.215465806029] , [ 1135659600000 , 23.38563750444] , [ 1135746000000 , 23.045892837142] , [ 1135832400000 , 25.14020101049] , [ 1135918800000 , 25.050918121167] , [ 1136264400000 , 18.257548285625] , [ 1136350800000 , 18.07138317334] , [ 1136437200000 , 18.559144836085] , [ 1136523600000 , 18.215748263083] , [ 1136782800000 , 18.423599466293] , [ 1136869200000 , 18.610764159025] , [ 1136955600000 , 18.279225081891] , [ 1137042000000 , 18.809905785103] , [ 1137128400000 , 18.290641439478] , [ 1137474000000 , 18.524362589947] , [ 1137560400000 , 18.436439687609] , [ 1137646800000 , 18.502251312832] , [ 1137733200000 , 18.487969528691] , [ 1137992400000 , 18.373389449381] , [ 1138078800000 , 18.544218820834] , [ 1138165200000 , 17.937750581715] , [ 1138251600000 , 18.224226859228] , [ 1138338000000 , 18.141385195538] , [ 1138597200000 , 18.249738085169] , [ 1138683600000 , 17.814814745686] , [ 1138770000000 , 17.781574362648] , [ 1138856400000 , 17.091167436213] , [ 1138942800000 , 17.206455021631] , [ 1139202000000 , 17.117879064923] , [ 1139288400000 , 16.875142284891] , [ 1139374800000 , 17.277388501519] , [ 1139461200000 , 17.220400630502] , [ 1139547600000 , 17.029670100642] , [ 1139806800000 , 16.927030268445] , [ 1139893200000 , 17.11816727047] , [ 1139979600000 , 17.558611556387] , [ 1140066000000 , 19.402576903908] , [ 1140152400000 , 19.126188201194] , [ 1140498000000 , 19.560761598583] , [ 1140584400000 , 17.903979712653] , [ 1140670800000 , 18.068981731732] , [ 1140757200000 , 18.024217118293] , [ 1141016400000 , 17.873109133417] , [ 1141102800000 , 17.899192393827] , [ 1141189200000 , 26.199588971665] , [ 1141275600000 , 26.479951387053] , [ 1141362000000 , 25.285815879786] , [ 1141621200000 , 27.058703715471] , [ 1141707600000 , 26.642800176315] , [ 1141794000000 , 26.141193814971] , [ 1141880400000 , 26.425976309753] , [ 1141966800000 , 26.568547718159] , [ 1142226000000 , 27.028560386674] , [ 1142312400000 , 26.675373079039] , [ 1142398800000 , 26.296471957074] , [ 1142485200000 , 26.965051777048] , [ 1142571600000 , 26.795307264427] , [ 1142830800000 , 26.677598766824] , [ 1142917200000 , 26.970489623405] , [ 1143003600000 , 28.767926238413] , [ 1143090000000 , 28.662078861382] , [ 1143176400000 , 28.715033437514] , [ 1143435600000 , 26.866965491591] , [ 1143522000000 , 26.665697187005] , [ 1143608400000 , 27.094212566212] , [ 1143694800000 , 26.377198899426] , [ 1143781200000 , 17.988157107376] , [ 1144036800000 , 17.979227136598] , [ 1144123200000 , 17.50168156796] , [ 1144209600000 , 17.533902324096] , [ 1144296000000 , 17.397391875646] , [ 1144382400000 , 17.435889964946] , [ 1144641600000 , 14.837627151408] , [ 1144728000000 , 14.99708771983] , [ 1144814400000 , 15.230545192078] , [ 1144900800000 , 15.345313643955] , [ 1145246400000 , 15.339384664918] , [ 1145332800000 , 14.876865461271] , [ 1145419200000 , 15.78988738222] , [ 1145505600000 , 15.333583730992] , [ 1145592000000 , 15.193608641755] , [ 1145851200000 , 15.808246257597] , [ 1145937600000 , 15.295969552787] , [ 1146024000000 , 15.148371812064] , [ 1146110400000 , 16.106107352727] , [ 1146196800000 , 16.333282112859] , [ 1146456000000 , 14.884650055543] , [ 1146542400000 , 15.258810745364] , [ 1146628800000 , 14.721963563743] , [ 1146715200000 , 15.2488988172] , [ 1146801600000 , 15.988431274052] , [ 1147060800000 , 15.45824595417] , [ 1147147200000 , 15.124739435655] , [ 1147233600000 , 14.811828262885] , [ 1147320000000 , 15.128441576062] , [ 1147406400000 , 15.018746494625] , [ 1147665600000 , 14.665379658074] , [ 1147752000000 , 14.765323064912] , [ 1147838400000 , 14.610784280202] , [ 1147924800000 , 14.718816211393] , [ 1148011200000 , 14.656810601301] , [ 1148270400000 , 14.556786699143] , [ 1148356800000 , 14.478198586853] , [ 1148443200000 , 14.397840236351] , [ 1148529600000 , 15.024252979406] , [ 1148616000000 , 14.580051069348] , [ 1148961600000 , 14.300391303681] , [ 1149048000000 , 14.591842079573] , [ 1149134400000 , 14.045879482711] , [ 1149220800000 , 14.998948551386] , [ 1149480000000 , 13.603082280637] , [ 1149566400000 , 13.015273433491] , [ 1149652800000 , 12.020962072274] , [ 1149739200000 , 12.734804729782] , [ 1149825600000 , 12.05908953184] , [ 1150084800000 , 11.962310367146] , [ 1150171200000 , 11.905675823274] , [ 1150257600000 , 11.678390952591] , [ 1150344000000 , 12.617974891559] , [ 1150430400000 , 13.00428261632] , [ 1150689600000 , 13.166905117976] , [ 1150776000000 , 12.838210852649] , [ 1150862400000 , 14.205857720773] , [ 1150948800000 , 14.27781290629] , [ 1151035200000 , 14.125291213995] , [ 1151294400000 , 14.258487640197] , [ 1151380800000 , 14.308394058436] , [ 1151467200000 , 14.086062503522] , [ 1151553600000 , 14.45395852164] , [ 1151640000000 , 18.972180774132] , [ 1151899200000 , 18.652505008389] , [ 1152072000000 , 18.263695576831] , [ 1152158400000 , 18.957193689658] , [ 1152244800000 , 18.910911266653] , [ 1152504000000 , 19.193861121078] , [ 1152590400000 , 19.060382975069] , [ 1152676800000 , 18.642412821412] , [ 1152763200000 , 17.957834193597] , [ 1152849600000 , 18.139793734162] , [ 1153108800000 , 17.83004083653] , [ 1153195200000 , 18.316139409078] , [ 1153281600000 , 19.710064937605] , [ 1153368000000 , 19.815399598556] , [ 1153454400000 , 19.787228349669] , [ 1153713600000 , 19.911735187935] , [ 1153800000000 , 21.693668259119] , [ 1153886400000 , 19.476081037883] , [ 1153972800000 , 18.295259329633] , [ 1154059200000 , 18.540577437238] , [ 1154318400000 , 18.074751426702] , [ 1154404800000 , 18.033785983588] , [ 1154491200000 , 18.536305278278] , [ 1154577600000 , 18.227915383291] , [ 1154664000000 , 18.391363101455] , [ 1154923200000 , 18.404022282016] , [ 1155009600000 , 18.968827749274] , [ 1155096000000 , 18.117429090696] , [ 1155182400000 , 18.47137275146] , [ 1155268800000 , 18.558952579185] , [ 1155528000000 , 18.156270409235] , [ 1155614400000 , 18.3013893827] , [ 1155700800000 , 18.057174959825] , [ 1155787200000 , 17.810843618971] , [ 1155873600000 , 18.399431442516] , [ 1156132800000 , 18.190058208738] , [ 1156219200000 , 17.840873866815] , [ 1156305600000 , 17.88239730099] , [ 1156392000000 , 17.927104960481] , [ 1156478400000 , 18.100084639678] , [ 1156737600000 , 18.743432892674] , [ 1156824000000 , 20.487978570463] , [ 1156910400000 , 20.530437630303] , [ 1156996800000 , 18.392773541144] , [ 1157083200000 , 18.338310657286] , [ 1157428800000 , 18.130242907716] , [ 1157515200000 , 18.161660796396] , [ 1157601600000 , 18.419104380403] , [ 1157688000000 , 18.106628670965] , [ 1157947200000 , 18.031398770232] , [ 1158033600000 , 20.076944645868] , [ 1158120000000 , 19.70954459831] , [ 1158206400000 , 19.702415530463] , [ 1158292800000 , 19.869219429035] , [ 1158552000000 , 17.971188530998] , [ 1158638400000 , 17.502486043943] , [ 1158724800000 , 17.786824315026] , [ 1158811200000 , 17.728769927902] , [ 1158897600000 , 18.005797602079] , [ 1159156800000 , 18.040393315711] , [ 1159243200000 , 18.900396698947] , [ 1159329600000 , 18.36048699901] , [ 1159416000000 , 17.731875803548] , [ 1159502400000 , 18.108465169671] , [ 1159761600000 , 20.617022865239] , [ 1159848000000 , 20.324185511727] , [ 1159934400000 , 19.944348897435] , [ 1160020800000 , 20.165689108673] , [ 1160107200000 , 20.784792008539] , [ 1160366400000 , 20.199437314135] , [ 1160452800000 , 20.160773448853] , [ 1160539200000 , 20.274802983803] , [ 1160625600000 , 20.602039599417] , [ 1160712000000 , 20.844066708918] , [ 1160971200000 , 21.106207814522] , [ 1161057600000 , 20.815435947609] , [ 1161144000000 , 20.761198511671] , [ 1161230400000 , 21.09423075218] , [ 1161316800000 , 21.10012619968] , [ 1161576000000 , 20.604110246386] , [ 1161662400000 , 20.295673392568] , [ 1161748800000 , 21.402529155514] , [ 1161835200000 , 21.034137818923] , [ 1161921600000 , 21.183590022355] , [ 1162184400000 , 20.952086891424] , [ 1162270800000 , 21.083320862704] , [ 1162357200000 , 20.337267179176] , [ 1162443600000 , 20.157909334038] , [ 1162530000000 , 20.514329006349] , [ 1162789200000 , 20.906242344223] , [ 1162875600000 , 20.548808226328] , [ 1162962000000 , 20.744002277779] , [ 1163048400000 , 20.563063891109] , [ 1163134800000 , 20.025272140506] , [ 1163394000000 , 20.099216372837] , [ 1163480400000 , 19.912323206182] , [ 1163566800000 , 20.132170489552] , [ 1163653200000 , 20.136836618356] , [ 1163739600000 , 20.279758319526] , [ 1163998800000 , 20.568083117312] , [ 1164085200000 , 20.245443195972] , [ 1164171600000 , 20.769354587751] , [ 1164344400000 , 20.058253473611] , [ 1164603600000 , 20.337288984382] , [ 1164690000000 , 20.489598727098] , [ 1164776400000 , 20.584535521244] , [ 1164862800000 , 20.321611077092] , [ 1164949200000 , 23.762477566775] , [ 1165208400000 , 23.933785218143] , [ 1165294800000 , 23.748190856458] , [ 1165381200000 , 24.472420307822] , [ 1165467600000 , 23.200391877317] , [ 1165554000000 , 23.986587878633] , [ 1165813200000 , 23.98901218464] , [ 1165899600000 , 23.686472866355] , [ 1165986000000 , 23.505163243857] , [ 1166072400000 , 23.749279172726] , [ 1166158800000 , 24.191182857934] , [ 1166418000000 , 24.103058358597] , [ 1166504400000 , 23.048914477117] , [ 1166590800000 , 23.263622267113] , [ 1166677200000 , 23.56769729586] , [ 1166763600000 , 23.618655123764] , [ 1167109200000 , 23.764764642496] , [ 1167195600000 , 23.311395546953] , [ 1167282000000 , 23.34602969198] , [ 1167368400000 , 23.247356469844] , [ 1167800400000 , 21.922350329319] , [ 1167886800000 , 21.793062390508] , [ 1167973200000 , 21.508430555457] , [ 1168232400000 , 21.753304923368] , [ 1168318800000 , 19.669014235032] , [ 1168405200000 , 19.85880321668] , [ 1168491600000 , 19.581369484627] , [ 1168578000000 , 19.416006540692] , [ 1168923600000 , 22.021976979642] , [ 1169010000000 , 22.275963382653] , [ 1169096400000 , 19.621490055971] , [ 1169182800000 , 19.515635937224] , [ 1169442000000 , 19.602346675605] , [ 1169528400000 , 19.978458804271] , [ 1169614800000 , 20.103823579633] , [ 1169701200000 , 19.670461491514] , [ 1169787600000 , 19.953030709912] , [ 1170046800000 , 19.65022612132] , [ 1170133200000 , 19.566798471479] , [ 1170219600000 , 22.552508642478] , [ 1170306000000 , 21.749117654183] , [ 1170392400000 , 21.510747610586] , [ 1170651600000 , 21.272220668557] , [ 1170738000000 , 21.733052020999] , [ 1170824400000 , 21.413067852542] , [ 1170910800000 , 21.357602635129] , [ 1170997200000 , 21.180685726204] , [ 1171256400000 , 22.339017576621] , [ 1171342800000 , 21.611798739066] , [ 1171429200000 , 21.912189034003] , [ 1171515600000 , 21.69862259892] , [ 1171602000000 , 22.387144323734] , [ 1171947600000 , 21.732919970863] , [ 1172034000000 , 22.702979955779] , [ 1172120400000 , 22.182754221217] , [ 1172206800000 , 22.232087752829] , [ 1172466000000 , 22.021621152722] , [ 1172552400000 , 21.724709810714] , [ 1172638800000 , 21.309248152985] , [ 1172725200000 , 23.038720157624] , [ 1172811600000 , 23.356060049391] , [ 1173070800000 , 23.91823257137] , [ 1173157200000 , 22.991381215984] , [ 1173243600000 , 23.17102160603] , [ 1173330000000 , 23.148971918654] , [ 1173416400000 , 23.610353211214] , [ 1173672000000 , 22.922249541257] , [ 1173758400000 , 23.315409134103] , [ 1173844800000 , 23.422547502573] , [ 1173931200000 , 24.177029283137] , [ 1174017600000 , 23.697482422289] , [ 1174276800000 , 23.756025363803] , [ 1174363200000 , 23.496613226255] , [ 1174449600000 , 24.010318972134] , [ 1174536000000 , 24.520421953475] , [ 1174622400000 , 23.623580969787] , [ 1174881600000 , 24.183789369369] , [ 1174968000000 , 23.996590482842] , [ 1175054400000 , 23.661950238353] , [ 1175140800000 , 23.417498406301] , [ 1175227200000 , 23.616740231748] , [ 1175486400000 , 25.535225571539] , [ 1175572800000 , 26.298255894295] , [ 1175659200000 , 26.309566077768] , [ 1175745600000 , 26.765619703864] , [ 1176091200000 , 25.882859817876] , [ 1176177600000 , 26.129452063368] , [ 1176264000000 , 26.642867398103] , [ 1176350400000 , 26.377155585326] , [ 1176436800000 , 26.625738484848] , [ 1176696000000 , 26.459071522205] , [ 1176782400000 , 26.676956427588] , [ 1176868800000 , 26.571556769682] , [ 1176955200000 , 26.3442172594] , [ 1177041600000 , 26.417506846359] , [ 1177300800000 , 26.705784414423] , [ 1177387200000 , 28.853822046765] , [ 1177473600000 , 28.023777635482] , [ 1177560000000 , 27.331722900396] , [ 1177646400000 , 27.357543106507] , [ 1177905600000 , 27.590602889594] , [ 1177992000000 , 26.721966524083] , [ 1178078400000 , 27.94744888776] , [ 1178164800000 , 27.871342504924] , [ 1178251200000 , 28.41898415852] , [ 1178510400000 , 28.139301891821] , [ 1178596800000 , 27.374842696624] , [ 1178683200000 , 28.396528363687] , [ 1178769600000 , 28.151062742446] , [ 1178856000000 , 28.210159898373] , [ 1179115200000 , 28.46627446548] , [ 1179201600000 , 27.889711089443] , [ 1179288000000 , 28.180379553365] , [ 1179374400000 , 28.419925545727] , [ 1179460800000 , 28.79884527223] , [ 1179720000000 , 28.773776030343] , [ 1179806400000 , 28.615671957672] , [ 1179892800000 , 28.226955800775] , [ 1179979200000 , 28.838980751694] , [ 1180065600000 , 28.333474694122] , [ 1180411200000 , 28.175136947162] , [ 1180497600000 , 28.250907436745] , [ 1180584000000 , 28.205031775171] , [ 1180670400000 , 30.562122167461] , [ 1180929600000 , 31.727077547446] , [ 1181016000000 , 31.526712861038] , [ 1181102400000 , 31.371311997888] , [ 1181188800000 , 31.341044313773] , [ 1181275200000 , 32.096525408199] , [ 1181534400000 , 31.102052663028] , [ 1181620800000 , 30.663687036323] , [ 1181707200000 , 31.392135349684] , [ 1181793600000 , 31.303621208067] , [ 1181880000000 , 31.327399629624] , [ 1182139200000 , 30.815822835417] , [ 1182225600000 , 31.942482340983] , [ 1182312000000 , 30.829787514049] , [ 1182398400000 , 29.579785566092] , [ 1182484800000 , 29.644816900172] , [ 1182744000000 , 30.152312600311] , [ 1182830400000 , 31.579014171397] , [ 1182916800000 , 31.648084647514] , [ 1183003200000 , 31.474781607087] , [ 1183089600000 , 29.559060758977] , [ 1183348800000 , 26.454181388487] , [ 1183435200000 , 26.870879403404] , [ 1183608000000 , 27.152761618507] , [ 1183694400000 , 27.522144912008] , [ 1183953600000 , 27.20262813974] , [ 1184040000000 , 25.286880129754] , [ 1184126400000 , 27.076057103394] , [ 1184212800000 , 27.659724803308] , [ 1184299200000 , 27.260718916646] , [ 1184558400000 , 27.492932031785] , [ 1184644800000 , 27.224553608661] , [ 1184731200000 , 27.408650007885] , [ 1184817600000 , 28.047951006202] , [ 1184904000000 , 27.408641988594] , [ 1185163200000 , 27.263249362455] , [ 1185249600000 , 26.846192097814] , [ 1185336000000 , 25.510336963729] , [ 1185422400000 , 25.9319625012] , [ 1185508800000 , 26.048453322021] , [ 1185768000000 , 25.680783888657] , [ 1185854400000 , 26.155314939312] , [ 1185940800000 , 26.042748190345] , [ 1186027200000 , 26.112906314178] , [ 1186113600000 , 25.651501389506] , [ 1186372800000 , 25.978730028686] , [ 1186459200000 , 25.516935670171] , [ 1186545600000 , 25.846110544803] , [ 1186632000000 , 25.003994813684] , [ 1186718400000 , 24.574945831102] , [ 1186977600000 , 25.03458234529] , [ 1187064000000 , 24.728273782212] , [ 1187150400000 , 24.548380537133] , [ 1187236800000 , 25.349499639045] , [ 1187323200000 , 25.399321016235] , [ 1187582400000 , 24.865053752481] , [ 1187668800000 , 24.071211320408] , [ 1187755200000 , 24.313207809179] , [ 1187841600000 , 25.815463088034] , [ 1187928000000 , 25.243808192447] , [ 1188187200000 , 25.659634715983] , [ 1188273600000 , 25.078534407655] , [ 1188360000000 , 25.58598642899] , [ 1188446400000 , 25.638710574976] , [ 1188532800000 , 25.573118710052] , [ 1188878400000 , 27.188374349953] , [ 1188964800000 , 27.275932492214] , [ 1189051200000 , 26.129383672332] , [ 1189137600000 , 25.9551511911] , [ 1189396800000 , 25.897083543731] , [ 1189483200000 , 26.34658405879] , [ 1189569600000 , 25.772151157655] , [ 1189656000000 , 25.505666353462] , [ 1189742400000 , 26.265711263021] , [ 1190001600000 , 26.428538843515] , [ 1190088000000 , 26.090201800345] , [ 1190174400000 , 26.49027091283] , [ 1190260800000 , 25.936695107827] , [ 1190347200000 , 25.560688469795] , [ 1190606400000 , 25.607839534311] , [ 1190692800000 , 26.548172129456] , [ 1190779200000 , 26.648152184763] , [ 1190865600000 , 26.51583644917] , [ 1190952000000 , 26.332757939256] , [ 1191211200000 , 26.152249906616] , [ 1191297600000 , 26.198070214474] , [ 1191384000000 , 25.990253277907] , [ 1191470400000 , 26.654530155526] , [ 1191556800000 , 25.972330764668] , [ 1191816000000 , 26.26248509896] , [ 1191902400000 , 26.348741583743] , [ 1191988800000 , 26.122186986449] , [ 1192075200000 , 29.593995471618] , [ 1192161600000 , 29.731603491274] , [ 1192420800000 , 28.827068536248] , [ 1192507200000 , 29.194892101581] , [ 1192593600000 , 26.924772425739] , [ 1192680000000 , 28.816812772785] , [ 1192766400000 , 26.733109839428] , [ 1193025600000 , 27.58180355578] , [ 1193112000000 , 27.173638592314] , [ 1193198400000 , 27.460463827787] , [ 1193284800000 , 30.621878493441] , [ 1193371200000 , 30.095645552523] , [ 1193630400000 , 29.558326096275] , [ 1193716800000 , 29.618512803515] , [ 1193803200000 , 30.460041175267] , [ 1193889600000 , 30.20410064808] , [ 1193976000000 , 30.268400946785] , [ 1194238800000 , 29.815054700452] , [ 1194325200000 , 29.663525457932] , [ 1194411600000 , 29.717734967739] , [ 1194498000000 , 29.923031415874] , [ 1194584400000 , 29.229595749207] , [ 1194843600000 , 26.876680107031] , [ 1194930000000 , 30.146205827268] , [ 1195016400000 , 29.963451454048] , [ 1195102800000 , 30.409258893906] , [ 1195189200000 , 30.587158002259] , [ 1195448400000 , 30.755226139371] , [ 1195534800000 , 29.958261264696] , [ 1195621200000 , 28.308697359232] , [ 1195794000000 , 30.64361038118] , [ 1196053200000 , 27.883612444559] , [ 1196139600000 , 30.005693265425] , [ 1196226000000 , 32.152433012248] , [ 1196312400000 , 32.424570146425] , [ 1196398800000 , 32.463470052891] , [ 1196658000000 , 29.782382006346] , [ 1196744400000 , 29.926958811799] , [ 1196830800000 , 30.40999379846] , [ 1196917200000 , 30.875736091533] , [ 1197003600000 , 29.697383078305] , [ 1197262800000 , 30.544967835139] , [ 1197349200000 , 30.339856651392] , [ 1197435600000 , 30.958770963045] , [ 1197522000000 , 31.105045247869] , [ 1197608400000 , 31.432564318877] , [ 1197867600000 , 30.713544524238] , [ 1197954000000 , 31.665432740145] , [ 1198040400000 , 30.659352150987] , [ 1198126800000 , 31.307794398172] , [ 1198213200000 , 30.79998865816] , [ 1198472400000 , 30.894681084193] , [ 1198645200000 , 30.912643462141] , [ 1198731600000 , 30.818603352572] , [ 1198818000000 , 30.985941180304] , [ 1199077200000 , 27.413147883654] , [ 1199250000000 , 28.214619106765] , [ 1199336400000 , 27.967472010083] , [ 1199422800000 , 28.627713526321] , [ 1199682000000 , 28.28827242333] , [ 1199768400000 , 28.101528173604] , [ 1199854800000 , 28.352660481501] , [ 1199941200000 , 28.423038285602] , [ 1200027600000 , 28.087400882261] , [ 1200286800000 , 24.531206834157] , [ 1200373200000 , 24.399806157282] , [ 1200459600000 , 27.915965227441] , [ 1200546000000 , 25.596194000672] , [ 1200632400000 , 26.724265623222] , [ 1200978000000 , 26.894494880297] , [ 1201064400000 , 25.744075642582] , [ 1201150800000 , 21.681648035334] , [ 1201237200000 , 21.421956476879] , [ 1201496400000 , 21.88447853606] , [ 1201582800000 , 22.061316137597] , [ 1201669200000 , 21.845894637271] , [ 1201755600000 , 25.891996188941] , [ 1201842000000 , 24.230482021313] , [ 1202101200000 , 24.598196667826] , [ 1202187600000 , 25.127139922963] , [ 1202274000000 , 23.71018712034] , [ 1202360400000 , 24.25191536915] , [ 1202446800000 , 24.764513426041] , [ 1202706000000 , 24.794348551806] , [ 1202792400000 , 24.533467311971] , [ 1202878800000 , 25.146466377668] , [ 1202965200000 , 24.494779263233] , [ 1203051600000 , 25.174922360197] , [ 1203397200000 , 24.718588536863] , [ 1203483600000 , 26.644245593025] , [ 1203570000000 , 26.156882900416] , [ 1203656400000 , 26.693685598849] , [ 1203915600000 , 26.318812850104] , [ 1204002000000 , 26.348379927677] , [ 1204088400000 , 26.629064175102] , [ 1204174800000 , 26.083020219303] , [ 1204261200000 , 26.586782515792] , [ 1204520400000 , 26.193953449032] , [ 1204606800000 , 26.658552584796] , [ 1204693200000 , 26.244226180682] , [ 1204779600000 , 25.707184371059] , [ 1204866000000 , 26.092414482193] , [ 1205121600000 , 24.72292084406] , [ 1205208000000 , 26.308078958154] , [ 1205294400000 , 25.31471453403] , [ 1205380800000 , 26.146616425211] , [ 1205467200000 , 26.904697150929] , [ 1205726400000 , 25.889697756321] , [ 1205812800000 , 25.46994685133] , [ 1205899200000 , 23.466208784145] , [ 1205985600000 , 23.199301432366] , [ 1206331200000 , 23.271085746455] , [ 1206417600000 , 25.295478659124] , [ 1206504000000 , 25.398182765923] , [ 1206590400000 , 25.694775105726] , [ 1206676800000 , 26.242795777833] , [ 1206936000000 , 22.71655362857] , [ 1207022400000 , 27.17234307449] , [ 1207108800000 , 23.751264791711] , [ 1207195200000 , 21.845581803881] , [ 1207281600000 , 24.198228794102] , [ 1207540800000 , 24.268870566536] , [ 1207627200000 , 24.238984288108] , [ 1207713600000 , 21.793077045426] , [ 1207800000000 , 24.343799824906] , [ 1207886400000 , 21.94502438827] , [ 1208145600000 , 22.269752613239] , [ 1208232000000 , 22.222300563448] , [ 1208318400000 , 26.794812806313] , [ 1208404800000 , 22.314978916188] , [ 1208491200000 , 24.839879328614] , [ 1208750400000 , 25.272063275883] , [ 1208836800000 , 22.647336954423] , [ 1208923200000 , 22.934695941336] , [ 1209009600000 , 22.491124452202] , [ 1209096000000 , 24.578552711705] , [ 1209355200000 , 27.352133020993] , [ 1209441600000 , 24.943859876554] , [ 1209528000000 , 24.125931140489] , [ 1209614400000 , 26.423198278426] , [ 1209700800000 , 26.215479844692] , [ 1209960000000 , 26.416050638718] , [ 1210046400000 , 26.699691148575] , [ 1210132800000 , 26.101180004743] , [ 1210219200000 , 25.883455903863] , [ 1210305600000 , 24.476429845243] , [ 1210564800000 , 26.560429014593] , [ 1210651200000 , 26.91243689922] , [ 1210737600000 , 26.550192630343] , [ 1210824000000 , 26.017240433928] , [ 1210910400000 , 25.850483367086] , [ 1211169600000 , 26.134682637347] , [ 1211256000000 , 25.511949418952] , [ 1211342400000 , 23.529168791348] , [ 1211428800000 , 25.387789070145] , [ 1211515200000 , 26.007759236212] , [ 1211860800000 , 25.840951541333] , [ 1211947200000 , 26.09480511976] , [ 1212033600000 , 25.832538213261] , [ 1212120000000 , 26.356864378434] , [ 1212379200000 , 21.859967055432] , [ 1212465600000 , 21.319303995557] , [ 1212552000000 , 21.792925854319] , [ 1212638400000 , 22.129303455338] , [ 1212724800000 , 22.397402638128] , [ 1212984000000 , 22.303887979305] , [ 1213070400000 , 22.677863368026] , [ 1213156800000 , 22.653114874681] , [ 1213243200000 , 22.055703112603] , [ 1213329600000 , 22.727336932122] , [ 1213588800000 , 22.600847997062] , [ 1213675200000 , 23.16434142917] , [ 1213761600000 , 23.190382803556] , [ 1213848000000 , 23.363509389946] , [ 1213934400000 , 22.90010736863] , [ 1214193600000 , 22.8960950063] , [ 1214280000000 , 23.112857459234] , [ 1214366400000 , 22.81464933731] , [ 1214452800000 , 22.599602343324] , [ 1214539200000 , 22.436628140001] , [ 1214798400000 , 25.101287933423] , [ 1214884800000 , 23.836698482432] , [ 1214971200000 , 21.598716730413] , [ 1215057600000 , 22.294848464403] , [ 1215403200000 , 21.890008710296] , [ 1215489600000 , 24.277998808076] , [ 1215576000000 , 24.16752987296] , [ 1215662400000 , 24.492420061962] , [ 1215748800000 , 24.36928386042] , [ 1216008000000 , 24.549310029453] , [ 1216094400000 , 24.525332576232] , [ 1216180800000 , 24.965527476087] , [ 1216267200000 , 24.262546016276] , [ 1216353600000 , 21.748843865619] , [ 1216612800000 , 22.248559554158] , [ 1216699200000 , 22.10105807761] , [ 1216785600000 , 24.118783930638] , [ 1216872000000 , 23.974858603682] , [ 1216958400000 , 23.899785139264] , [ 1217217600000 , 23.632034963543] , [ 1217304000000 , 24.573074179882] , [ 1217390400000 , 24.354176258483] , [ 1217476800000 , 23.586970077894] , [ 1217563200000 , 23.09281686853] , [ 1217822400000 , 22.381924573295] , [ 1217908800000 , 22.849960585469] , [ 1217995200000 , 23.308008650987] , [ 1218081600000 , 22.389528201348] , [ 1218168000000 , 22.617965778037] , [ 1218427200000 , 22.630018460434] , [ 1218513600000 , 22.429165436362] , [ 1218600000000 , 22.796193531372] , [ 1218686400000 , 22.91869049774] , [ 1218772800000 , 22.534177781093] , [ 1219032000000 , 22.307458869795] , [ 1219118400000 , 23.149998429395] , [ 1219204800000 , 22.809047920243] , [ 1219291200000 , 23.033620878128] , [ 1219377600000 , 22.88353839716] , [ 1219636800000 , 23.038231781339] , [ 1219723200000 , 22.837092985369] , [ 1219809600000 , 22.406121172016] , [ 1219896000000 , 22.543052050748] , [ 1219982400000 , 22.134325786459] , [ 1220328000000 , 22.90619352181] , [ 1220414400000 , 21.577514891646] , [ 1220500800000 , 20.964597997079] , [ 1220587200000 , 22.254316769503] , [ 1220846400000 , 20.978428684385] , [ 1220932800000 , 20.201251837107] , [ 1221019200000 , 20.716021429156] , [ 1221105600000 , 20.853607736708] , [ 1221192000000 , 22.637860530824] , [ 1221451200000 , 20.992548843385] , [ 1221537600000 , 22.640013229632] , [ 1221624000000 , 22.147932603234] , [ 1221710400000 , 23.107616271124] , [ 1221796800000 , 23.235208756356] , [ 1222056000000 , 23.073297051895] , [ 1222142400000 , 19.996488794335] , [ 1222228800000 , 20.798546480039] , [ 1222315200000 , 22.66049516895] , [ 1222401600000 , 17.13679183253] , [ 1222660800000 , 13.826273349744] , [ 1222747200000 , 13.077093752263] , [ 1222833600000 , 12.284675874792] , [ 1222920000000 , 11.065707170455] , [ 1223006400000 , 10.630383687986] , [ 1223265600000 , 9.4303250495554] , [ 1223352000000 , 8.9012730203526] , [ 1223438400000 , 8.9293325135165] , [ 1223524800000 , 8.0470811501794] , [ 1223611200000 , 7.9534190943532] , [ 1223870400000 , 10.148470568683] , [ 1223956800000 , 9.1884455797275] , [ 1224043200000 , 9.0306456153854] , [ 1224129600000 , 8.8795457738235] , [ 1224216000000 , 8.8804579858153] , [ 1224475200000 , 9.9480570220264] , [ 1224561600000 , 8.6699372921443] , [ 1224648000000 , 6.7828772739367] , [ 1224734400000 , 6.7194378835375] , [ 1224820800000 , 6.5576831314375] , [ 1225080000000 , 6.5526827191332] , [ 1225166400000 , 6.6431801167441] , [ 1225252800000 , 6.8171009374029] , [ 1225339200000 , 8.7180683997897] , [ 1225425600000 , 8.3266530080935] , [ 1225688400000 , 9.5157540775547] , [ 1225774800000 , 11.339344847983] , [ 1225861200000 , 9.4464996479877] , [ 1225947600000 , 9.0778210074445] , [ 1226034000000 , 9.2546275932455] , [ 1226293200000 , 8.8597595230316] , [ 1226379600000 , 9.3397889090676] , [ 1226466000000 , 7.2479518212381] , [ 1226552400000 , 9.2479344681812] , [ 1226638800000 , 9.416877333381] , [ 1226898000000 , 8.810496809664] , [ 1226984400000 , 9.0032294081395] , [ 1227070800000 , 7.0276364787384] , [ 1227157200000 , 6.7043268468833] , [ 1227243600000 , 7.0636555606867] , [ 1227502800000 , 9.0329047830937] , [ 1227589200000 , 8.8839970790477] , [ 1227675600000 , 9.1324522586047] , [ 1227848400000 , 9.0440300229022] , [ 1228107600000 , 9.2406157582628] , [ 1228194000000 , 8.6662271585896] , [ 1228280400000 , 8.552032165721] , [ 1228366800000 , 8.4684799027423] , [ 1228453200000 , 8.8685387993201] , [ 1228712400000 , 11.237542569647] , [ 1228798800000 , 11.618966861671] , [ 1228885200000 , 11.634559104171] , [ 1228971600000 , 11.296954170121] , [ 1229058000000 , 11.546905256863] , [ 1229317200000 , 11.317508652977] , [ 1229403600000 , 11.577530719706] , [ 1229490000000 , 13.056293486221] , [ 1229576400000 , 12.670963990739] , [ 1229662800000 , 12.908010105666] , [ 1229922000000 , 10.943709273262] , [ 1230008400000 , 10.487188096375] , [ 1230094800000 , 10.880843499761] , [ 1230267600000 , 10.76296928134] , [ 1230526800000 , 11.125879644882] , [ 1230613200000 , 12.423958890591] , [ 1230699600000 , 15.375914364972] , [ 1230872400000 , 17.931848968257] , [ 1231131600000 , 15.967743128748] , [ 1231218000000 , 15.955731604841] , [ 1231304400000 , 15.750434305136] , [ 1231390800000 , 15.504689513544] , [ 1231477200000 , 16.08339635538] , [ 1231736400000 , 15.801648291214] , [ 1231822800000 , 15.842640752539] , [ 1231909200000 , 14.469656332513] , [ 1231995600000 , 14.047963432084] , [ 1232082000000 , 14.112345335294] , [ 1232427600000 , 14.041375734523] , [ 1232514000000 , 14.464446317295] , [ 1232600400000 , 14.170330638073] , [ 1232686800000 , 14.402546781906] , [ 1232946000000 , 14.295167847681] , [ 1233032400000 , 14.616834831255] , [ 1233118800000 , 15.485715273776] , [ 1233205200000 , 14.363478044307] , [ 1233291600000 , 14.785085502528] , [ 1233550800000 , 13.964576959879] , [ 1233637200000 , 16.214519014731] , [ 1233723600000 , 14.091750418726] , [ 1233810000000 , 16.337866980437] , [ 1233896400000 , 17.946644946538] , [ 1234155600000 , 15.77196604476] , [ 1234242000000 , 15.360662859138] , [ 1234328400000 , 16.095973396396] , [ 1234414800000 , 15.75503189211] , [ 1234501200000 , 16.170650295906] , [ 1234846800000 , 14.172722551245] , [ 1234933200000 , 14.310638455276] , [ 1235019600000 , 14.099565212181] , [ 1235106000000 , 13.684697059175] , [ 1235365200000 , 13.817948103314] , [ 1235451600000 , 14.334290991514] , [ 1235538000000 , 14.337909782235] , [ 1235624400000 , 14.146042421534] , [ 1235710800000 , 13.725040132025] , [ 1235970000000 , 12.11065253521] , [ 1236056400000 , 12.327904770327] , [ 1236142800000 , 12.471291302517] , [ 1236229200000 , 12.02915540764] , [ 1236315600000 , 10.187129325878] , [ 1236571200000 , 10.229137796771] , [ 1236657600000 , 12.597415074867] , [ 1236744000000 , 12.500500687553] , [ 1236830400000 , 12.775131207967] , [ 1236916800000 , 12.7714990873] , [ 1237176000000 , 13.156437647158] , [ 1237262400000 , 12.852271200328] , [ 1237348800000 , 14.132033344691] , [ 1237435200000 , 12.993143907842] , [ 1237521600000 , 12.903808030145] , [ 1237780800000 , 14.297168381677] , [ 1237867200000 , 14.366190770734] , [ 1237953600000 , 14.719911368313] , [ 1238040000000 , 13.391019202654] , [ 1238126400000 , 12.092033674534] , [ 1238385600000 , 12.435613981786] , [ 1238472000000 , 12.6411945345] , [ 1238558400000 , 12.28157338962] , [ 1238644800000 , 10.35675853168] , [ 1238731200000 , 10.860453911764] , [ 1238990400000 , 10.28966794386] , [ 1239076800000 , 10.278064045435] , [ 1239163200000 , 10.355890587737] , [ 1239249600000 , 10.721229431724] , [ 1239595200000 , 10.702562788036] , [ 1239681600000 , 10.6121927661] , [ 1239768000000 , 10.495356287245] , [ 1239854400000 , 10.951066937501] , [ 1239940800000 , 11.057051832987] , [ 1240200000000 , 10.038186680346] , [ 1240286400000 , 10.718857242302] , [ 1240372800000 , 10.093156859055] , [ 1240459200000 , 10.504566873295] , [ 1240545600000 , 12.050084965623] , [ 1240804800000 , 12.463270454031] , [ 1240891200000 , 12.390350685738] , [ 1240977600000 , 12.502252881803] , [ 1241064000000 , 12.160534312241] , [ 1241150400000 , 12.092519674715] , [ 1241409600000 , 13.371542376789] , [ 1241496000000 , 11.589162775079] , [ 1241582400000 , 11.895101606214] , [ 1241668800000 , 10.776395347324] , [ 1241755200000 , 11.499715860942] , [ 1242014400000 , 10.67998570401] , [ 1242100800000 , 12.13969278283] , [ 1242187200000 , 10.315100211108] , [ 1242273600000 , 10.560365451866] , [ 1242360000000 , 10.522348869076] , [ 1242619200000 , 12.998005975456] , [ 1242705600000 , 12.31086464647] , [ 1242792000000 , 12.104483056899] , [ 1242878400000 , 13.112410404644] , [ 1242964800000 , 12.382999937646] , [ 1243310400000 , 13.507413734788] , [ 1243396800000 , 12.126701970815] , [ 1243483200000 , 13.659733333421] , [ 1243569600000 , 13.391649599842] , [ 1243828800000 , 13.613056683013] , [ 1243915200000 , 13.654699620719] , [ 1244001600000 , 13.361138434443] , [ 1244088000000 , 13.467323739931] , [ 1244174400000 , 13.436960051452] , [ 1244433600000 , 13.45010448311] , [ 1244520000000 , 13.309266105666] , [ 1244606400000 , 13.218842936387] , [ 1244692800000 , 13.452871572254] , [ 1244779200000 , 12.42635307245] , [ 1245038400000 , 12.669706123069] , [ 1245124800000 , 12.465435661844] , [ 1245211200000 , 12.7736913381] , [ 1245297600000 , 12.425895741098] , [ 1245384000000 , 13.036568250712] , [ 1245643200000 , 12.786440632451] , [ 1245729600000 , 12.779269016226] , [ 1245816000000 , 13.014836133492] , [ 1245902400000 , 13.209957760354] , [ 1245988800000 , 12.893413435344] , [ 1246248000000 , 12.824302626282] , [ 1246334400000 , 15.146379713486] , [ 1246420800000 , 14.981558532708] , [ 1246507200000 , 14.678460239031] , [ 1246852800000 , 14.925775723023] , [ 1246939200000 , 15.029877764704] , [ 1247025600000 , 15.092001811196] , [ 1247112000000 , 14.760093425351] , [ 1247198400000 , 15.119413720695] , [ 1247457600000 , 15.498838587115] , [ 1247544000000 , 14.898473206687] , [ 1247630400000 , 15.531483438437] , [ 1247716800000 , 15.249077746618] , [ 1247803200000 , 15.778483995946] , [ 1248062400000 , 16.082101777482] , [ 1248148800000 , 16.133146637217] , [ 1248235200000 , 16.546432092559] , [ 1248321600000 , 16.523569388775] , [ 1248408000000 , 16.701863514799] , [ 1248667200000 , 16.604960969268] , [ 1248753600000 , 16.488294531585] , [ 1248840000000 , 16.937620473844] , [ 1248926400000 , 16.790560076824] , [ 1249012800000 , 16.248363435705] , [ 1249272000000 , 16.564558948816] , [ 1249358400000 , 16.455641854637] , [ 1249444800000 , 16.328809339246] , [ 1249531200000 , 16.67638807089] , [ 1249617600000 , 16.166396498024] , [ 1249876800000 , 16.769085318686] , [ 1249963200000 , 16.530374048977] , [ 1250049600000 , 16.526183772843] , [ 1250136000000 , 16.375829790545] , [ 1250222400000 , 16.713968276809] , [ 1250481600000 , 15.993095112877] , [ 1250568000000 , 16.799051128538] , [ 1250654400000 , 16.276637187387] , [ 1250740800000 , 17.089509782316] , [ 1250827200000 , 16.616106779777] , [ 1251086400000 , 16.515549315826] , [ 1251172800000 , 17.147634467285] , [ 1251259200000 , 16.436917136596] , [ 1251345600000 , 16.841369557117] , [ 1251432000000 , 16.43122112384] , [ 1251691200000 , 17.043513078952] , [ 1251777600000 , 16.446925526842] , [ 1251864000000 , 16.652504066228] , [ 1251950400000 , 16.591432415903] , [ 1252036800000 , 16.499772581029] , [ 1252382400000 , 16.947320880146] , [ 1252468800000 , 16.14629738553] , [ 1252555200000 , 16.484439747556] , [ 1252641600000 , 16.578694320843] , [ 1252900800000 , 16.78566904875] , [ 1252987200000 , 16.2408123932] , [ 1253073600000 , 17.078787515196] , [ 1253160000000 , 16.906755525169] , [ 1253246400000 , 16.40574598804] , [ 1253505600000 , 16.806216143902] , [ 1253592000000 , 16.605729657111] , [ 1253678400000 , 16.617032132274] , [ 1253764800000 , 16.704580255368] , [ 1253851200000 , 16.812202786435] , [ 1254110400000 , 16.799071360461] , [ 1254196800000 , 16.852378487751] , [ 1254283200000 , 25.431309344777] , [ 1254369600000 , 23.222965579702] , [ 1254456000000 , 23.071826417577] , [ 1254715200000 , 22.808853567902] , [ 1254801600000 , 23.294389753777] , [ 1254888000000 , 23.573116652391] , [ 1254974400000 , 23.431317210644] , [ 1255060800000 , 23.690869262506] , [ 1255320000000 , 23.24339486172] , [ 1255406400000 , 23.059988275802] , [ 1255492800000 , 23.764274725182] , [ 1255579200000 , 23.637926378417] , [ 1255665600000 , 23.845872985185] , [ 1255924800000 , 23.822856926594] , [ 1256011200000 , 24.189098034702] , [ 1256097600000 , 23.858046664592] , [ 1256184000000 , 23.914516419148] , [ 1256270400000 , 24.101276775982] , [ 1256529600000 , 23.610922571498] , [ 1256616000000 , 23.332362896484] , [ 1256702400000 , 22.523655846395] , [ 1256788800000 , 23.856829700669] , [ 1256875200000 , 22.730673476776] , [ 1257138000000 , 24.23137735378] , [ 1257224400000 , 24.096752556324] , [ 1257310800000 , 24.109409371527] , [ 1257397200000 , 22.564794855246] , [ 1257483600000 , 22.649642224419] , [ 1257742800000 , 24.179234907903] , [ 1257829200000 , 24.303220424767] , [ 1257915600000 , 24.317365812853] , [ 1258002000000 , 22.731651939541] , [ 1258088400000 , 23.34987104225] , [ 1258347600000 , 24.422306141472] , [ 1258434000000 , 24.537018123608] , [ 1258520400000 , 24.367809159498] , [ 1258606800000 , 24.290993426035] , [ 1258693200000 , 24.428182583715] , [ 1258952400000 , 24.301937798758] , [ 1259038800000 , 24.390442427645] , [ 1259125200000 , 24.431572163766] , [ 1259298000000 , 22.526546825726] , [ 1259557200000 , 22.802553442303] , [ 1259643600000 , 23.653721374343] , [ 1259730000000 , 23.962687684298] , [ 1259816400000 , 23.879837022716] , [ 1259902800000 , 23.954751867427] , [ 1260162000000 , 23.525075445341] , [ 1260248400000 , 23.636489057379] , [ 1260334800000 , 23.85626674156] , [ 1260421200000 , 23.683181821437] , [ 1260507600000 , 23.21737564337] , [ 1260766800000 , 23.642669163225] , [ 1260853200000 , 22.992072451748] , [ 1260939600000 , 23.432811457962] , [ 1261026000000 , 23.335920037782] , [ 1261112400000 , 23.992227508716] , [ 1261371600000 , 24.381927235956] , [ 1261458000000 , 24.236594141442] , [ 1261544400000 , 23.568873106735] , [ 1261630800000 , 24.146892015266] , [ 1261976400000 , 23.506983441902] , [ 1262062800000 , 23.770955283415] , [ 1262149200000 , 24.143157377049] , [ 1262235600000 , 17.511609505034] , [ 1262581200000 , 17.59587584334] , [ 1262667600000 , 17.862805755291] , [ 1262754000000 , 18.335681939449] , [ 1262840400000 , 17.785662981034] , [ 1262926800000 , 17.962483283397] , [ 1263186000000 , 18.216639190617] , [ 1263272400000 , 18.22073741648] , [ 1263358800000 , 17.825672675711] , [ 1263445200000 , 17.620939720051] , [ 1263531600000 , 16.762564236566] , [ 1263877200000 , 16.578206266095] , [ 1263963600000 , 17.060135351263] , [ 1264050000000 , 16.602073884753] , [ 1264136400000 , 16.423668597664] , [ 1264395600000 , 16.341401994621] , [ 1264482000000 , 16.72635341813] , [ 1264568400000 , 16.603279629631] , [ 1264654800000 , 16.342152650635] , [ 1264741200000 , 16.375539291939] , [ 1265000400000 , 17.286845962765] , [ 1265086800000 , 17.17888456086] , [ 1265173200000 , 17.328217107089] , [ 1265259600000 , 17.170126797622] , [ 1265346000000 , 17.275895152661] , [ 1265605200000 , 16.838521104494] , [ 1265691600000 , 17.209221833795] , [ 1265778000000 , 16.840751919696] , [ 1265864400000 , 17.402253054405] , [ 1265950800000 , 17.283267017109] , [ 1266296400000 , 17.839877867831] , [ 1266382800000 , 17.2585660445] , [ 1266469200000 , 17.312477312482] , [ 1266555600000 , 17.229088874178] , [ 1266814800000 , 17.992792901541] , [ 1266901200000 , 17.545611419769] , [ 1266987600000 , 19.555610161782] , [ 1267074000000 , 17.402460137181] , [ 1267160400000 , 17.457900479237] , [ 1267419600000 , 18.059506166626] , [ 1267506000000 , 19.556832046321] , [ 1267592400000 , 20.074915026725] , [ 1267678800000 , 20.239852202039] , [ 1267765200000 , 19.784459877733] , [ 1268024400000 , 19.794727149886] , [ 1268110800000 , 19.411627409137] , [ 1268197200000 , 19.672556345457] , [ 1268283600000 , 19.938508059385] , [ 1268370000000 , 19.84674433628] , [ 1268625600000 , 20.128999533093] , [ 1268712000000 , 20.01245357768] , [ 1268798400000 , 19.660623009837] , [ 1268884800000 , 19.656052984352] , [ 1268971200000 , 19.471326821212] , [ 1269230400000 , 19.790704235255] , [ 1269316800000 , 20.018793862282] , [ 1269403200000 , 19.979656850697] , [ 1269489600000 , 20.230336707568] , [ 1269576000000 , 20.506839341548] , [ 1269835200000 , 20.146748216221] , [ 1269921600000 , 20.672365386495] , [ 1270008000000 , 28.751555982445] , [ 1270094400000 , 26.677017709142] , [ 1270440000000 , 26.76186385082] , [ 1270526400000 , 27.662001071617] , [ 1270612800000 , 23.488342033375] , [ 1270699200000 , 27.198945324419] , [ 1270785600000 , 27.562965762261] , [ 1271044800000 , 27.846225990178] , [ 1271131200000 , 27.829440811172] , [ 1271217600000 , 27.10037617327] , [ 1271304000000 , 27.683409145171] , [ 1271390400000 , 26.765047606893] , [ 1271649600000 , 26.854352509615] , [ 1271736000000 , 27.079240867802] , [ 1271822400000 , 27.27729711969] , [ 1271908800000 , 26.625626502005] , [ 1271995200000 , 26.765297220688] , [ 1272254400000 , 26.918302756881] , [ 1272340800000 , 27.417694228616] , [ 1272427200000 , 27.403471927842] , [ 1272513600000 , 27.286730861361] , [ 1272600000000 , 27.395148380185] , [ 1272859200000 , 26.114660928377] , [ 1272945600000 , 25.657945898722] , [ 1273032000000 , 25.55589643361] , [ 1273118400000 , 21.706935040814] , [ 1273204800000 , 21.69441045433] , [ 1273464000000 , 24.81823453287] , [ 1273550400000 , 21.87067760687] , [ 1273636800000 , 25.359497192713] , [ 1273723200000 , 25.227126100012] , [ 1273809600000 , 21.52499740982] , [ 1274068800000 , 24.558568519266] , [ 1274155200000 , 21.010311356319] , [ 1274241600000 , 21.254694184854] , [ 1274328000000 , 20.702102888533] , [ 1274414400000 , 21.238444633236] , [ 1274673600000 , 20.729017098259] , [ 1274760000000 , 20.738313908135] , [ 1274846400000 , 21.033355970039] , [ 1274932800000 , 21.23460634468] , [ 1275019200000 , 21.088356917231] , [ 1275364800000 , 22.004737299363] , [ 1275451200000 , 21.820503579706] , [ 1275537600000 , 22.630243104102] , [ 1275624000000 , 21.49833946787] , [ 1275883200000 , 21.580562388482] , [ 1275969600000 , 21.705634911623] , [ 1276056000000 , 21.551377724378] , [ 1276142400000 , 21.715668604885] , [ 1276228800000 , 21.677988055615] , [ 1276488000000 , 22.437451894376] , [ 1276574400000 , 21.791896372432] , [ 1276660800000 , 21.836693756879] , [ 1276747200000 , 22.412160647473] , [ 1276833600000 , 22.700670017784] , [ 1277092800000 , 22.703292258233] , [ 1277179200000 , 22.32005929544] , [ 1277265600000 , 22.135458897354] , [ 1277352000000 , 22.261160362687] , [ 1277438400000 , 22.259757873921] , [ 1277697600000 , 22.356935481008] , [ 1277784000000 , 22.704287207773] , [ 1277870400000 , 16.05420062686] , [ 1277956800000 , 19.596394322249] , [ 1278043200000 , 17.221863063885] , [ 1278388800000 , 20.237168940716] , [ 1278475200000 , 20.228154071202] , [ 1278561600000 , 19.599048817893] , [ 1278648000000 , 20.100296801153] , [ 1278907200000 , 19.898139041109] , [ 1278993600000 , 21.449430769871] , [ 1279080000000 , 21.027450612016] , [ 1279166400000 , 20.761140771166] , [ 1279252800000 , 20.56922039679] , [ 1279512000000 , 20.331058844227] , [ 1279598400000 , 19.94187419945] , [ 1279684800000 , 20.194392373305] , [ 1279771200000 , 19.885449595918] , [ 1279857600000 , 20.150953255056] , [ 1280116800000 , 19.977909053698] , [ 1280203200000 , 20.306063487985] , [ 1280289600000 , 19.990022596044] , [ 1280376000000 , 20.536239497791] , [ 1280462400000 , 20.251947918853] , [ 1280721600000 , 18.791308697595] , [ 1280808000000 , 19.499755197734] , [ 1280894400000 , 19.227509289044] , [ 1280980800000 , 19.34411262702] , [ 1281067200000 , 19.307545278758] , [ 1281326400000 , 18.971763342798] , [ 1281412800000 , 19.521632486579] , [ 1281499200000 , 19.767849754926] , [ 1281585600000 , 19.487641720993] , [ 1281672000000 , 19.03340909661] , [ 1281931200000 , 19.71805260588] , [ 1282017600000 , 18.941204690514] , [ 1282104000000 , 18.949283618331] , [ 1282190400000 , 19.050510406256] , [ 1282276800000 , 18.88152804134] , [ 1282536000000 , 16.949535632409] , [ 1282622400000 , 16.665719801984] , [ 1282708800000 , 16.753272095777] , [ 1282795200000 , 16.287068495466] , [ 1282881600000 , 16.618921167238] , [ 1283140800000 , 15.98441290019] , [ 1283227200000 , 16.625931265272] , [ 1283313600000 , 18.740687400848] , [ 1283400000000 , 18.218829255882] , [ 1283486400000 , 18.42997098831] , [ 1283832000000 , 19.45362711179] , [ 1283918400000 , 19.345664866617] , [ 1284004800000 , 19.093031639436] , [ 1284091200000 , 18.909043610256] , [ 1284350400000 , 19.539612248667] , [ 1284436800000 , 18.943698845934] , [ 1284523200000 , 19.054050930712] , [ 1284609600000 , 16.679477750336] , [ 1284696000000 , 16.935001872909] , [ 1284955200000 , 19.701024204411] , [ 1285041600000 , 20.051422228717] , [ 1285128000000 , 19.969665647018] , [ 1285214400000 , 20.486198042956] , [ 1285300800000 , 19.891263054402] , [ 1285560000000 , 18.769890528074] , [ 1285646400000 , 19.014827368429] , [ 1285732800000 , 18.662086460667] , [ 1285819200000 , 23.898415710948] , [ 1285905600000 , 24.11480692944] , [ 1286164800000 , 22.888098943395] , [ 1286251200000 , 24.693634057583] , [ 1286337600000 , 22.872537431949] , [ 1286424000000 , 24.404360624536] , [ 1286510400000 , 24.778369969679] , [ 1286769600000 , 24.651633997256] , [ 1286856000000 , 24.884268452062] , [ 1286942400000 , 24.975369067386] , [ 1287028800000 , 25.010149025336] , [ 1287115200000 , 26.95954877975] , [ 1287374400000 , 25.819950664795] , [ 1287460800000 , 25.490113017719] , [ 1287547200000 , 26.381871986207] , [ 1287633600000 , 25.769025736212] , [ 1287720000000 , 26.193526119475] , [ 1287979200000 , 25.072761302693] , [ 1288065600000 , 24.96224892059] , [ 1288152000000 , 24.922096771807] , [ 1288238400000 , 25.351386850428] , [ 1288324800000 , 25.609036598253] , [ 1288584000000 , 24.775702680422] , [ 1288670400000 , 25.493191075839] , [ 1288756800000 , 25.378669738968] , [ 1288843200000 , 25.135007745534] , [ 1288929600000 , 25.195906023095] , [ 1289192400000 , 25.039965734786] , [ 1289278800000 , 25.082586275708] , [ 1289365200000 , 25.667933604689] , [ 1289451600000 , 24.748560845718] , [ 1289538000000 , 24.91695263463] , [ 1289797200000 , 24.605226120371] , [ 1289883600000 , 24.855764415965] , [ 1289970000000 , 25.168176311491] , [ 1290056400000 , 24.340821897791] , [ 1290142800000 , 25.016093707043] , [ 1290402000000 , 24.850053022832] , [ 1290488400000 , 24.655597571244] , [ 1290574800000 , 25.102500772745] , [ 1290747600000 , 24.395010402445] , [ 1291006800000 , 24.860334037232] , [ 1291093200000 , 23.796133383393] , [ 1291179600000 , 25.400848276042] , [ 1291266000000 , 24.958338710485] , [ 1291352400000 , 24.117883941613] , [ 1291611600000 , 24.442564389286] , [ 1291698000000 , 24.777851053778] , [ 1291784400000 , 24.981486014327] , [ 1291870800000 , 24.831625575598] , [ 1291957200000 , 25.055055878476] , [ 1292216400000 , 24.645546468675] , [ 1292302800000 , 25.1951968076] , [ 1292389200000 , 24.846967890964] , [ 1292475600000 , 25.476557222784] , [ 1292562000000 , 24.873610898292] , [ 1292821200000 , 24.992757034363] , [ 1292907600000 , 25.027367617635] , [ 1292994000000 , 25.326429994786] , [ 1293080400000 , 25.400231012356] , [ 1293426000000 , 26.113124364103] , [ 1293512400000 , 25.198872439023] , [ 1293598800000 , 25.482130379281] , [ 1293685200000 , 25.688645503032] , [ 1293771600000 , 25.306388246839] , [ 1294030800000 , 25.36459570696] , [ 1294117200000 , 25.687983390493] , [ 1294203600000 , 26.094321969653] , [ 1294290000000 , 25.449849891007] , [ 1294376400000 , 26.192775432124] , [ 1294635600000 , 26.002488169068] , [ 1294722000000 , 26.051468321052] , [ 1294808400000 , 27.619473102251] , [ 1294894800000 , 26.705886700555] , [ 1294981200000 , 26.323134959679] , [ 1295326800000 , 27.023507240033] , [ 1295413200000 , 25.553451290321] , [ 1295499600000 , 25.641441399244] , [ 1295586000000 , 25.506905335216] , [ 1295845200000 , 25.490820900811] , [ 1295931600000 , 26.704117574935] , [ 1296018000000 , 26.700070517511] , [ 1296104400000 , 26.117075289003] , [ 1296190800000 , 26.091700933962] , [ 1296450000000 , 25.831331701153] , [ 1296536400000 , 27.119893526929] , [ 1296622800000 , 26.796829714037] , [ 1296709200000 , 27.251562599365] , [ 1296795600000 , 25.239238527205] , [ 1297054800000 , 27.127650128824] , [ 1297141200000 , 25.205555973598] , [ 1297227600000 , 26.061076261635] , [ 1297314000000 , 24.723386881568] , [ 1297400400000 , 25.181105799696] , [ 1297659600000 , 25.893618232639] , [ 1297746000000 , 26.465819971151] , [ 1297832400000 , 26.603595241409] , [ 1297918800000 , 26.284739691125] , [ 1298005200000 , 26.228994520127] , [ 1298350800000 , 25.501061017414] , [ 1298437200000 , 25.644711243746] , [ 1298523600000 , 24.505518479099] , [ 1298610000000 , 24.710692269574] , [ 1298869200000 , 25.305693710332] , [ 1298955600000 , 25.303258057098] , [ 1299042000000 , 24.960972271129] , [ 1299128400000 , 28.586701575536] , [ 1299214800000 , 28.164881344198] , [ 1299474000000 , 25.047709149433] , [ 1299560400000 , 25.036110115328] , [ 1299646800000 , 28.064505577487] , [ 1299733200000 , 25.365629343474] , [ 1299819600000 , 25.011246263326] , [ 1300075200000 , 25.669985094568] , [ 1300161600000 , 25.290486031435] , [ 1300248000000 , 24.46281324856] , [ 1300334400000 , 24.663380019377] , [ 1300420800000 , 25.094681277589] , [ 1300680000000 , 25.145367104644] , [ 1300766400000 , 26.135504527832] , [ 1300852800000 , 25.599397988325] , [ 1300939200000 , 25.485459688586] , [ 1301025600000 , 25.329921568923] , [ 1301284800000 , 25.638385273154] , [ 1301371200000 , 28.949598515781] , [ 1301457600000 , 28.439424813101] , [ 1301544000000 , 25.780730641051] , [ 1301630400000 , 27.633391932031] , [ 1301889600000 , 27.755208547663] , [ 1301976000000 , 24.589995869242] , [ 1302062400000 , 24.504717652488] , [ 1302148800000 , 24.731928161232] , [ 1302235200000 , 24.357227719503] , [ 1302494400000 , 24.812448966534] , [ 1302580800000 , 25.150710531704] , [ 1302667200000 , 25.11896626483] , [ 1302753600000 , 24.397375694316] , [ 1302840000000 , 24.541663596991] , [ 1303099200000 , 24.783459749743] , [ 1303185600000 , 24.335736536054] , [ 1303272000000 , 24.88808373959] , [ 1303358400000 , 27.589549952522] , [ 1303704000000 , 27.953281956336] , [ 1303790400000 , 27.585340356178] , [ 1303876800000 , 28.160100447269] , [ 1303963200000 , 27.446515382208] , [ 1304049600000 , 27.608966991097] , [ 1304308800000 , 28.777466101837] , [ 1304395200000 , 29.180290170784] , [ 1304481600000 , 29.346019353302] , [ 1304568000000 , 29.395801384325] , [ 1304654400000 , 29.452148336956] , [ 1304913600000 , 28.704040632275] , [ 1305000000000 , 29.312203826479] , [ 1305086400000 , 28.853806332882] , [ 1305172800000 , 28.718535229337] , [ 1305259200000 , 28.716899720519] , [ 1305518400000 , 28.096806729878] , [ 1305604800000 , 27.26754241696] , [ 1305691200000 , 27.246665772335] , [ 1305777600000 , 27.496062469545] , [ 1305864000000 , 27.090226664809] , [ 1306123200000 , 27.521262028507] , [ 1306209600000 , 27.111251207062] , [ 1306296000000 , 26.715428931325] , [ 1306382400000 , 27.878259778988] , [ 1306468800000 , 28.398263400927] , [ 1306814400000 , 28.423434916843] , [ 1306900800000 , 26.790597301426] , [ 1306987200000 , 27.215478415815] , [ 1307073600000 , 26.791794446882] , [ 1307332800000 , 27.289633869408] , [ 1307419200000 , 26.820277000071] , [ 1307505600000 , 26.5691855452] , [ 1307592000000 , 27.259772970539] , [ 1307678400000 , 25.820870966346] , [ 1307937600000 , 27.058733743783] , [ 1308024000000 , 27.396275937504] , [ 1308110400000 , 27.369857482521] , [ 1308196800000 , 26.892699473036] , [ 1308283200000 , 26.940060489474] , [ 1308542400000 , 27.412521110469] , [ 1308628800000 , 27.766635740117] , [ 1308715200000 , 27.386425581275] , [ 1308801600000 , 26.918010623003] , [ 1308888000000 , 27.232371616367] , [ 1309147200000 , 26.836844855166] , [ 1309233600000 , 27.906685156972] , [ 1309320000000 , 27.954092422443] , [ 1309406400000 , 27.074102810043] , [ 1309492800000 , 26.279822408479] , [ 1309838400000 , 26.01874441868] , [ 1309924800000 , 26.225797736704] , [ 1310011200000 , 26.051477989298] , [ 1310097600000 , 26.219940204659] , [ 1310356800000 , 25.089996497267] , [ 1310443200000 , 25.016128092919] , [ 1310529600000 , 25.008348193964] , [ 1310616000000 , 25.5500617145] , [ 1310702400000 , 25.630388944842] , [ 1310961600000 , 25.536088921763] , [ 1311048000000 , 25.274336268572] , [ 1311134400000 , 25.50588001502] , [ 1311220800000 , 25.97676621425] , [ 1311307200000 , 25.918251264831] , [ 1311566400000 , 25.895584776114] , [ 1311652800000 , 26.155812874342] , [ 1311739200000 , 25.973504725924] , [ 1311825600000 , 22.005504661556] , [ 1311912000000 , 21.901642088437] , [ 1314763200000 , 20.611854638729] , [ 1314849600000 , 20.806302035488] , [ 1314936000000 , 20.39315336605] , [ 1315281600000 , 20.321606951254] , [ 1315368000000 , 20.57177837784] , [ 1315454400000 , 20.928539181222] , [ 1315540800000 , 20.070835621616] , [ 1315800000000 , 20.579538524538] , [ 1315886400000 , 20.008943531928] , [ 1315972800000 , 21.002529504578] , [ 1316059200000 , 20.600040567661] , [ 1316145600000 , 20.450077647397] , [ 1316404800000 , 20.648324212044] , [ 1316491200000 , 20.811616497537] , [ 1316577600000 , 20.846592907441] , [ 1316664000000 , 20.432266740358] , [ 1316750400000 , 20.497802818551] , [ 1317009600000 , 20.357261528122] , [ 1317096000000 , 20.691829731811] , [ 1317182400000 , 20.906999403533] , [ 1317268800000 , 20.555513564685] , [ 1317355200000 , 16.831115451175] , [ 1317614400000 , 15.660365199854] , [ 1317700800000 , 16.162864252296] , [ 1317787200000 , 16.168815648261] , [ 1317873600000 , 16.918319035941] , [ 1317960000000 , 15.900039977092] , [ 1318219200000 , 16.715443422272] , [ 1318305600000 , 16.983186931775] , [ 1318392000000 , 16.857280237471] , [ 1318478400000 , 17.043292522606] , [ 1318564800000 , 17.100161150229] , [ 1318824000000 , 16.942108266257] , [ 1318910400000 , 16.848382043396] , [ 1318996800000 , 16.723866632805] , [ 1319083200000 , 17.109412880037] , [ 1319169600000 , 16.98691902971] , [ 1319428800000 , 17.109847768306] , [ 1319515200000 , 17.176790314354] , [ 1319601600000 , 17.395503357433] , [ 1319688000000 , 18.120215236657] , [ 1319774400000 , 18.208495030036] , [ 1320033600000 , 17.204446894063] , [ 1320120000000 , 17.350163988829] , [ 1320206400000 , 17.666770311911] , [ 1320292800000 , 17.992414015282] , [ 1320379200000 , 17.730167909186] , [ 1320642000000 , 17.78540693483] , [ 1320728400000 , 19.230356158657] , [ 1320814800000 , 17.930397927692] , [ 1320901200000 , 17.758045721417] , [ 1320987600000 , 18.112660862711] , [ 1321246800000 , 17.777577166795] , [ 1321333200000 , 17.924996192204] , [ 1321419600000 , 17.727740473551] , [ 1321506000000 , 17.646091083267] , [ 1321592400000 , 17.796758667436] , [ 1321851600000 , 17.37197245438] , [ 1321938000000 , 17.522133599105] , [ 1322024400000 , 17.341643801545] , [ 1322197200000 , 17.335102273917] , [ 1322456400000 , 18.019343681609] , [ 1322542800000 , 17.792427717329] , [ 1322629200000 , 18.870695767008] , [ 1322715600000 , 17.852232277547] , [ 1322802000000 , 18.089784127726] , [ 1323061200000 , 17.937454450063] , [ 1323147600000 , 19.699367115869] , [ 1323234000000 , 19.218087674502] , [ 1323320400000 , 17.619476226833] , [ 1323406800000 , 19.887347730436] , [ 1323666000000 , 18.994060101082] , [ 1323752400000 , 18.257092168861] , [ 1323838800000 , 18.036619429622] , [ 1323925200000 , 17.62355167219] , [ 1324011600000 , 17.651081664693] , [ 1324270800000 , 17.59611604172] , [ 1324357200000 , 19.777473901257] , [ 1324443600000 , 19.758549269087] , [ 1324530000000 , 19.305745168067] , [ 1324616400000 , 19.477508577279] , [ 1324962000000 , 19.658721540993] , [ 1325048400000 , 19.776982079363] , [ 1325134800000 , 19.79775445985] , [ 1325221200000 , 19.579266534893] , [ 1325566800000 , 16.875348360168] , [ 1325653200000 , 16.51209005265] , [ 1325739600000 , 16.795893273324] , [ 1325826000000 , 16.326297265428] , [ 1326085200000 , 16.761544609478] , [ 1326171600000 , 16.796673291854] , [ 1326258000000 , 16.801006429788] , [ 1326344400000 , 17.19421119679] , [ 1326430800000 , 16.633966739158] , [ 1326776400000 , 16.753558364068] , [ 1326862800000 , 16.766434823515] , [ 1326949200000 , 16.825333048226] , [ 1327035600000 , 16.678310382725] , [ 1327294800000 , 16.77940068599] , [ 1327381200000 , 16.92981395854] , [ 1327467600000 , 16.553116404341] , [ 1327554000000 , 17.145607011141] , [ 1327640400000 , 16.692101288003] , [ 1327899600000 , 17.1299138523] , [ 1327986000000 , 17.334934272582] , [ 1328072400000 , 17.569473903845] , [ 1328158800000 , 17.58055014551] , [ 1328245200000 , 18.007674283266] , [ 1328504400000 , 17.535861038513] , [ 1328590800000 , 17.421484434178] , [ 1328677200000 , 17.938624242102] , [ 1328763600000 , 17.715337292554] , [ 1328850000000 , 17.931002605532] , [ 1329109200000 , 18.011429799705] , [ 1329195600000 , 18.3091954067] , [ 1329282000000 , 18.095545618131] , [ 1329368400000 , 18.226804681101] , [ 1329454800000 , 17.98353379404] , [ 1329800400000 , 18.09949815032] , [ 1329886800000 , 18.086187687455] , [ 1329973200000 , 17.915288923399] , [ 1330059600000 , 18.374018109841] , [ 1330318800000 , 18.156400246042] , [ 1330405200000 , 18.738362295645] , [ 1330491600000 , 18.510314079729] , [ 1330578000000 , 19.773995591892] , [ 1330664400000 , 18.896451364909] , [ 1330923600000 , 18.172901864277] , [ 1331010000000 , 18.696979766004] , [ 1331096400000 , 18.344758870553] , [ 1331182800000 , 18.885229510643] , [ 1331269200000 , 19.018587397692] , [ 1331524800000 , 18.61530115808] , [ 1331611200000 , 20.970817301504] , [ 1331697600000 , 20.703376995314] , [ 1331784000000 , 20.578699286128] , [ 1331870400000 , 20.691463563521] , [ 1332129600000 , 21.143694848039] , [ 1332216000000 , 19.379720324102] , [ 1332302400000 , 20.808095479968] , [ 1332388800000 , 19.472592938835] , [ 1332475200000 , 19.652527661877] , [ 1332734400000 , 21.319534334979] , [ 1332820800000 , 21.179475089546] , [ 1332907200000 , 19.568980241469] , [ 1332993600000 , 19.863211296898] , [ 1333080000000 , 19.65540387795] , [ 1333339200000 , 21.144017361843] , [ 1333425600000 , 20.881242071529] , [ 1333512000000 , 20.836864506942] , [ 1333598400000 , 20.483725369894] , [ 1333944000000 , 21.122797747373] , [ 1334030400000 , 20.254940889753] , [ 1334116800000 , 20.774866008916] , [ 1334203200000 , 20.773364518715] , [ 1334289600000 , 20.235143467857] , [ 1334548800000 , 20.148228074432] , [ 1334635200000 , 20.724827715557] , [ 1334721600000 , 20.663449722631] , [ 1334808000000 , 20.078903654826] , [ 1334894400000 , 20.721033124183] , [ 1335153600000 , 20.169262488388] , [ 1335240000000 , 20.176916238341] , [ 1335326400000 , 20.363612663085] , [ 1335412800000 , 20.832437662049] , [ 1335499200000 , 20.537239147509] , [ 1335758400000 , 20.625282410928]]} , { "key" : "Large Cap (10B-50B)" , "stack" : true , "shadowSize" : 0 , "color" : undefined , "lines" : { "fillColor" : undefined , "fill" : 0.5} , "values" : [ [ 1028088000000 , 20.782152937155] , [ 1028174400000 , 23.167704910613] , [ 1028260800000 , 22.171485568143] , [ 1028520000000 , 22.936983725774] , [ 1028606400000 , 21.56545365553] , [ 1028692800000 , 21.943889063222] , [ 1028779200000 , 20.665503464675] , [ 1028865600000 , 20.920751105494] , [ 1029124800000 , 23.212923219962] , [ 1029211200000 , 22.705047901514] , [ 1029297600000 , 21.835872974522] , [ 1029384000000 , 21.805004897089] , [ 1029470400000 , 22.292170105531] , [ 1029729600000 , 21.359075504707] , [ 1029816000000 , 21.723362171238] , [ 1029902400000 , 21.345218476122] , [ 1029988800000 , 21.522763882663] , [ 1030075200000 , 22.329740748497] , [ 1030334400000 , 21.302720154928] , [ 1030420800000 , 22.12030009798] , [ 1030507200000 , 22.239136994577] , [ 1030593600000 , 22.234773062834] , [ 1030680000000 , 21.914162612983] , [ 1031025600000 , 21.19891926077] , [ 1031112000000 , 20.817209431075] , [ 1031198400000 , 20.114702595205] , [ 1031284800000 , 21.082098542664] , [ 1031544000000 , 21.099556827862] , [ 1031630400000 , 20.280142116335] , [ 1031716800000 , 19.975099430939] , [ 1031803200000 , 20.751851708586] , [ 1031889600000 , 19.696919001755] , [ 1032148800000 , 20.092137818157] , [ 1032235200000 , 21.272445177921] , [ 1032321600000 , 20.660914346082] , [ 1032408000000 , 19.82278581788] , [ 1032494400000 , 20.995048359611] , [ 1032753600000 , 20.61414087338] , [ 1032840000000 , 20.524243135334] , [ 1032926400000 , 20.569385930342] , [ 1033012800000 , 20.336308442039] , [ 1033099200000 , 20.290556338481] , [ 1033358400000 , 19.57721304082] , [ 1033444800000 , 21.629104970703] , [ 1033531200000 , 22.079218937278] , [ 1033617600000 , 21.006968249858] , [ 1033704000000 , 18.765047179563] , [ 1033963200000 , 20.927127639002] , [ 1034049600000 , 21.204207591207] , [ 1034136000000 , 20.962951268977] , [ 1034222400000 , 18.84619083411] , [ 1034308800000 , 21.741147594626] , [ 1034568000000 , 21.245709193631] , [ 1034654400000 , 21.909229908762] , [ 1034740800000 , 21.84774740032] , [ 1034827200000 , 22.015639651441] , [ 1034913600000 , 22.320133213376] , [ 1035172800000 , 24.433083344435] , [ 1035259200000 , 23.069989420893] , [ 1035345600000 , 24.497378584815] , [ 1035432000000 , 23.89660401034] , [ 1035518400000 , 24.136840213198] , [ 1035781200000 , 25.575033513127] , [ 1035867600000 , 25.730092965715] , [ 1035954000000 , 25.568380783999] , [ 1036040400000 , 25.407828649116] , [ 1036126800000 , 27.288183817396] , [ 1036386000000 , 27.35938498534] , [ 1036472400000 , 26.678297533218] , [ 1036558800000 , 27.25587540393] , [ 1036645200000 , 26.642939120816] , [ 1036731600000 , 26.8886918317] , [ 1036990800000 , 26.130645597624] , [ 1037077200000 , 26.116883564436] , [ 1037163600000 , 27.010669713278] , [ 1037250000000 , 27.57884816499] , [ 1037336400000 , 27.183554602181] , [ 1037595600000 , 27.509334163742] , [ 1037682000000 , 27.830464716683] , [ 1037768400000 , 27.806765010411] , [ 1037854800000 , 27.32395284742] , [ 1037941200000 , 27.231367541687] , [ 1038200400000 , 27.655200293518] , [ 1038286800000 , 27.451839744896] , [ 1038373200000 , 27.218864531579] , [ 1038546000000 , 28.038964821136] , [ 1038805200000 , 27.67259719238] , [ 1038891600000 , 26.788949026044] , [ 1038978000000 , 26.907309917122] , [ 1039064400000 , 26.722388308064] , [ 1039150800000 , 26.664471995124] , [ 1039410000000 , 26.239664788106] , [ 1039496400000 , 25.889168535614] , [ 1039582800000 , 26.06632917537] , [ 1039669200000 , 27.360436484745] , [ 1039755600000 , 26.820513813669] , [ 1040014800000 , 27.431048745967] , [ 1040101200000 , 27.279302688254] , [ 1040187600000 , 27.052912497541] , [ 1040274000000 , 27.28941852896] , [ 1040360400000 , 27.49768855426] , [ 1040619600000 , 27.02432113222] , [ 1040706000000 , 26.769178536929] , [ 1040878800000 , 26.884066155653] , [ 1040965200000 , 24.933209727831] , [ 1041224400000 , 26.525442732585] , [ 1041310800000 , 24.836009955168] , [ 1041483600000 , 28.148434112631] , [ 1041570000000 , 28.585248260421] , [ 1041829200000 , 26.588164848779] , [ 1041915600000 , 26.484322683618] , [ 1042002000000 , 26.959667286326] , [ 1042088400000 , 27.431086615605] , [ 1042174800000 , 27.461473066225] , [ 1042434000000 , 27.377655497688] , [ 1042520400000 , 28.459801338542] , [ 1042606800000 , 28.761328803191] , [ 1042693200000 , 29.30367038452] , [ 1042779600000 , 26.480780480109] , [ 1043125200000 , 28.314249704972] , [ 1043211600000 , 28.217531135865] , [ 1043298000000 , 28.182500568192] , [ 1043384400000 , 26.215418018396] , [ 1043643600000 , 25.837843506598] , [ 1043730000000 , 25.95211023829] , [ 1043816400000 , 27.35855317206] , [ 1043902800000 , 26.135626995708] , [ 1043989200000 , 26.83359749941] , [ 1044248400000 , 25.200227171645] , [ 1044334800000 , 26.16023626428] , [ 1044421200000 , 26.573032237491] , [ 1044507600000 , 27.026861148349] , [ 1044594000000 , 25.546081485539] , [ 1044853200000 , 27.751441629168] , [ 1044939600000 , 27.109502185008] , [ 1045026000000 , 26.955339488016] , [ 1045112400000 , 26.635921045161] , [ 1045198800000 , 26.473324927012] , [ 1045544400000 , 27.579970132886] , [ 1045630800000 , 27.943972694132] , [ 1045717200000 , 27.462371071406] , [ 1045803600000 , 29.257485248321] , [ 1046062800000 , 27.364546535318] , [ 1046149200000 , 27.254731868848] , [ 1046235600000 , 27.695724658927] , [ 1046322000000 , 30.090893211161] , [ 1046408400000 , 26.657118369336] , [ 1046667600000 , 28.194399188654] , [ 1046754000000 , 27.719581327647] , [ 1046840400000 , 28.103967781241] , [ 1046926800000 , 28.052251152739] , [ 1047013200000 , 26.161720683778] , [ 1047272400000 , 23.610360854361] , [ 1047358800000 , 25.857011365628] , [ 1047445200000 , 27.676820217549] , [ 1047531600000 , 28.151309495162] , [ 1047618000000 , 28.668948137881] , [ 1047877200000 , 26.496536140439] , [ 1047963600000 , 26.687043118953] , [ 1048050000000 , 26.273192321151] , [ 1048136400000 , 26.648670764247] , [ 1048222800000 , 28.542316470431] , [ 1048482000000 , 27.750857458509] , [ 1048568400000 , 26.204441932957] , [ 1048654800000 , 26.595514769297] , [ 1048741200000 , 26.855626674862] , [ 1048827600000 , 27.171681295054] , [ 1049086800000 , 28.841779143028] , [ 1049173200000 , 29.708378318146] , [ 1049259600000 , 29.388557444219] , [ 1049346000000 , 28.515897137815] , [ 1049432400000 , 28.678387772809] , [ 1049688000000 , 28.261039648194] , [ 1049774400000 , 28.843990815368] , [ 1049860800000 , 27.442375698804] , [ 1049947200000 , 28.277039866021] , [ 1050033600000 , 28.420426598954] , [ 1050292800000 , 27.924860258371] , [ 1050379200000 , 28.808303116857] , [ 1050465600000 , 28.115148048304] , [ 1050552000000 , 28.041837502505] , [ 1050897600000 , 27.65036838858] , [ 1050984000000 , 29.098561970905] , [ 1051070400000 , 29.045548896001] , [ 1051156800000 , 29.571081066633] , [ 1051243200000 , 29.315645134302] , [ 1051502400000 , 29.584752672106] , [ 1051588800000 , 30.294478870927] , [ 1051675200000 , 29.987692254818] , [ 1051761600000 , 29.7035238959] , [ 1051848000000 , 30.064092166374] , [ 1052107200000 , 32.161446807271] , [ 1052193600000 , 31.741232247918] , [ 1052280000000 , 33.599316702576] , [ 1052366400000 , 31.645346219228] , [ 1052452800000 , 30.869945241992] , [ 1052712000000 , 33.942694565393] , [ 1052798400000 , 34.45728576228] , [ 1052884800000 , 33.941291408044] , [ 1052971200000 , 35.005246088651] , [ 1053057600000 , 34.514335540975] , [ 1053316800000 , 33.957836454212] , [ 1053403200000 , 33.513800644952] , [ 1053489600000 , 34.337897872934] , [ 1053576000000 , 34.926524488091] , [ 1053662400000 , 33.006206654011] , [ 1054008000000 , 33.318069356354] , [ 1054094400000 , 34.704964073105] , [ 1054180800000 , 34.13573506733] , [ 1054267200000 , 34.469688530643] , [ 1054526400000 , 35.780722519275] , [ 1054612800000 , 35.193101123469] , [ 1054699200000 , 34.349010572232] , [ 1054785600000 , 34.278660998595] , [ 1054872000000 , 34.010874612573] , [ 1055131200000 , 35.061218475203] , [ 1055217600000 , 34.606788376764] , [ 1055304000000 , 35.027487501906] , [ 1055390400000 , 33.969891082805] , [ 1055476800000 , 35.53629096676] , [ 1055736000000 , 34.353137386336] , [ 1055822400000 , 35.191289157046] , [ 1055908800000 , 34.702256566671] , [ 1055995200000 , 35.304145343765] , [ 1056081600000 , 33.742983861236] , [ 1056340800000 , 32.440214432063] , [ 1056427200000 , 32.507448936614] , [ 1056513600000 , 34.096674352075] , [ 1056600000000 , 33.560325432684] , [ 1056686400000 , 34.131436527295] , [ 1056945600000 , 28.578298679901] , [ 1057032000000 , 26.896979102175] , [ 1057118400000 , 27.301370679479] , [ 1057204800000 , 26.832445005201] , [ 1057550400000 , 27.178607928561] , [ 1057636800000 , 27.429816543007] , [ 1057723200000 , 28.590033808004] , [ 1057809600000 , 26.931059342407] , [ 1057896000000 , 27.255337954372] , [ 1058155200000 , 26.91639993488] , [ 1058241600000 , 27.036044512766] , [ 1058328000000 , 27.857685678582] , [ 1058414400000 , 27.954452428144] , [ 1058500800000 , 28.656092733595] , [ 1058760000000 , 29.225401154513] , [ 1058846400000 , 28.456122392084] , [ 1058932800000 , 29.1173699278] , [ 1059019200000 , 29.080448398973] , [ 1059105600000 , 29.848534965666] , [ 1059364800000 , 30.143372848203] , [ 1059451200000 , 29.580617711667] , [ 1059537600000 , 29.916327475977] , [ 1059624000000 , 29.497964363278] , [ 1059710400000 , 29.751264104278] , [ 1059969600000 , 29.639960379051] , [ 1060056000000 , 28.658393113539] , [ 1060142400000 , 26.690032589424] , [ 1060228800000 , 30.875955871864] , [ 1060315200000 , 30.72912065775] , [ 1060574400000 , 30.646975006887] , [ 1060660800000 , 30.806821962881] , [ 1060747200000 , 30.303720995787] , [ 1060833600000 , 30.655138255848] , [ 1060920000000 , 31.295514321094] , [ 1061179200000 , 30.919465598305] , [ 1061265600000 , 32.200682855556] , [ 1061352000000 , 32.212197869654] , [ 1061438400000 , 31.856813927148] , [ 1061524800000 , 32.013387699754] , [ 1061784000000 , 31.402132986026] , [ 1061870400000 , 31.048960092193] , [ 1061956800000 , 31.305466816242] , [ 1062043200000 , 31.123830136075] , [ 1062129600000 , 31.256646521609] , [ 1062475200000 , 31.021234688933] , [ 1062561600000 , 30.798809181972] , [ 1062648000000 , 30.49600956723] , [ 1062734400000 , 31.136829691953] , [ 1062993600000 , 30.832609843013] , [ 1063080000000 , 30.50466839629] , [ 1063166400000 , 30.311373885893] , [ 1063252800000 , 30.642648639514] , [ 1063339200000 , 30.422970273599] , [ 1063598400000 , 30.183876137079] , [ 1063684800000 , 29.697319588858] , [ 1063771200000 , 29.970134502786] , [ 1063857600000 , 29.862591317043] , [ 1063944000000 , 30.809460561167] , [ 1064203200000 , 30.144929589582] , [ 1064289600000 , 30.017920467163] , [ 1064376000000 , 31.974874927938] , [ 1064462400000 , 28.559522775458] , [ 1064548800000 , 28.6644544221] , [ 1064808000000 , 30.536148345128] , [ 1064894400000 , 32.016717242239] , [ 1064980800000 , 35.946276181884] , [ 1065067200000 , 36.166146105882] , [ 1065153600000 , 35.896222214324] , [ 1065412800000 , 36.244066616979] , [ 1065499200000 , 36.121062696516] , [ 1065585600000 , 34.844634102182] , [ 1065672000000 , 34.843999828237] , [ 1065758400000 , 34.766144046676] , [ 1066017600000 , 36.046514350984] , [ 1066104000000 , 36.317140718784] , [ 1066190400000 , 36.294414591758] , [ 1066276800000 , 35.445953010604] , [ 1066363200000 , 35.863853283659] , [ 1066622400000 , 35.256528661886] , [ 1066708800000 , 36.014129918883] , [ 1066795200000 , 34.811742463702] , [ 1066881600000 , 35.391265083244] , [ 1066968000000 , 35.368115083133] , [ 1067230800000 , 35.615234111754] , [ 1067317200000 , 33.389779085783] , [ 1067403600000 , 33.80917727041] , [ 1067490000000 , 34.601149968833] , [ 1067576400000 , 34.013141728195] , [ 1067835600000 , 32.952290001697] , [ 1067922000000 , 33.215699534027] , [ 1068008400000 , 33.061520188406] , [ 1068094800000 , 33.144842813528] , [ 1068181200000 , 33.316420665338] , [ 1068440400000 , 32.986092184385] , [ 1068526800000 , 33.674044999869] , [ 1068613200000 , 35.520013924767] , [ 1068699600000 , 35.382809834917] , [ 1068786000000 , 33.729366877104] , [ 1069045200000 , 33.893930728457] , [ 1069131600000 , 33.968225489223] , [ 1069218000000 , 33.604253300371] , [ 1069304400000 , 33.426828515228] , [ 1069390800000 , 33.146245036819] , [ 1069650000000 , 34.961602464834] , [ 1069736400000 , 36.565505612835] , [ 1069822800000 , 37.009135026163] , [ 1069995600000 , 37.355953698679] , [ 1070254800000 , 39.855887984286] , [ 1070341200000 , 39.222936402912] , [ 1070427600000 , 37.516976020756] , [ 1070514000000 , 37.445141353931] , [ 1070600400000 , 39.772649313679] , [ 1070859600000 , 37.718741100527] , [ 1070946000000 , 37.935919975035] , [ 1071032400000 , 38.201610453147] , [ 1071118800000 , 38.146494131187] , [ 1071205200000 , 36.218732193314] , [ 1071464400000 , 35.552238458164] , [ 1071550800000 , 35.826303305569] , [ 1071637200000 , 35.850641782482] , [ 1071723600000 , 38.04466082467] , [ 1071810000000 , 34.846725027469] , [ 1072069200000 , 36.241674247339] , [ 1072155600000 , 36.244827016598] , [ 1072242000000 , 36.142054086258] , [ 1072414800000 , 35.886753023625] , [ 1072674000000 , 35.66097760701] , [ 1072760400000 , 36.249092418383] , [ 1072846800000 , 30.621489538058] , [ 1073019600000 , 31.700083226709] , [ 1073278800000 , 30.709597618161] , [ 1073365200000 , 31.162921295679] , [ 1073451600000 , 31.138025867932] , [ 1073538000000 , 31.175504886164] , [ 1073624400000 , 30.948180149575] , [ 1073883600000 , 30.921099507251] , [ 1073970000000 , 31.319692495787] , [ 1074056400000 , 30.816529823296] , [ 1074142800000 , 30.975614703117] , [ 1074229200000 , 31.500006427174] , [ 1074574800000 , 31.114026851326] , [ 1074661200000 , 30.895780267549] , [ 1074747600000 , 30.933620812386] , [ 1074834000000 , 31.632265260642] , [ 1075093200000 , 31.236842115894] , [ 1075179600000 , 31.100665229642] , [ 1075266000000 , 31.921791142017] , [ 1075352400000 , 31.480945515383] , [ 1075438800000 , 31.174600651958] , [ 1075698000000 , 33.414952912803] , [ 1075784400000 , 32.875008410345] , [ 1075870800000 , 33.4613538009] , [ 1075957200000 , 32.971464632742] , [ 1076043600000 , 33.271708293655] , [ 1076302800000 , 33.730606409999] , [ 1076389200000 , 33.366890578633] , [ 1076475600000 , 33.360072083473] , [ 1076562000000 , 33.972749424161] , [ 1076648400000 , 33.66325484954] , [ 1076994000000 , 33.56804215399] , [ 1077080400000 , 33.341614887461] , [ 1077166800000 , 34.750077417368] , [ 1077253200000 , 34.382046367213] , [ 1077512400000 , 33.536298812729] , [ 1077598800000 , 33.44175955838] , [ 1077685200000 , 33.603623859891] , [ 1077771600000 , 32.875416612982] , [ 1077858000000 , 33.6715744417] , [ 1078117200000 , 34.027947265531] , [ 1078203600000 , 35.113094495983] , [ 1078290000000 , 35.124846375015] , [ 1078376400000 , 35.131113968822] , [ 1078462800000 , 35.195875684841] , [ 1078722000000 , 34.980143162459] , [ 1078808400000 , 34.657969891596] , [ 1078894800000 , 33.71307114824] , [ 1078981200000 , 33.432831653555] , [ 1079067600000 , 33.178017586773] , [ 1079326800000 , 33.781788496598] , [ 1079413200000 , 33.605185303588] , [ 1079499600000 , 33.878419201487] , [ 1079586000000 , 35.81295464893] , [ 1079672400000 , 33.735259221234] , [ 1079931600000 , 35.836241360064] , [ 1080018000000 , 33.14374704932] , [ 1080104400000 , 33.7412400922] , [ 1080190800000 , 36.322939768613] , [ 1080277200000 , 35.868408389608] , [ 1080536400000 , 35.521065690465] , [ 1080622800000 , 36.077027613518] , [ 1080709200000 , 37.573832172896] , [ 1080795600000 , 36.080968661875] , [ 1080882000000 , 36.118329160337] , [ 1081137600000 , 36.178646926618] , [ 1081224000000 , 34.852899994423] , [ 1081310400000 , 34.778523467953] , [ 1081396800000 , 34.549427187411] , [ 1081742400000 , 34.619799728577] , [ 1081828800000 , 34.448832520837] , [ 1081915200000 , 34.533754302949] , [ 1082001600000 , 34.547350945292] , [ 1082088000000 , 34.499948098932] , [ 1082347200000 , 34.664092861345] , [ 1082433600000 , 34.812754468043] , [ 1082520000000 , 34.158912995764] , [ 1082606400000 , 34.909632522985] , [ 1082692800000 , 34.865063037213] , [ 1082952000000 , 34.87086957709] , [ 1083038400000 , 33.318942090927] , [ 1083124800000 , 32.985367793398] , [ 1083211200000 , 35.515941230021] , [ 1083297600000 , 35.345434273289] , [ 1083556800000 , 35.56734742731] , [ 1083643200000 , 33.59117834143] , [ 1083729600000 , 33.925583096491] , [ 1083816000000 , 35.952156746267] , [ 1083902400000 , 35.780892232841] , [ 1084161600000 , 35.22587747326] , [ 1084248000000 , 35.488165645014] , [ 1084334400000 , 33.581512693719] , [ 1084420800000 , 33.604646783731] , [ 1084507200000 , 33.520888118776] , [ 1084766400000 , 33.691796687735] , [ 1084852800000 , 35.991015359376] , [ 1084939200000 , 35.445559427984] , [ 1085025600000 , 35.436376254759] , [ 1085112000000 , 34.775241381353] , [ 1085371200000 , 35.42982510811] , [ 1085457600000 , 35.748882256019] , [ 1085544000000 , 35.269256272209] , [ 1085630400000 , 34.504815482558] , [ 1085716800000 , 36.200256460337] , [ 1086062400000 , 35.357324686821] , [ 1086148800000 , 35.46563742992] , [ 1086235200000 , 34.863374757175] , [ 1086321600000 , 34.618650968461] , [ 1086580800000 , 33.49835335296] , [ 1086667200000 , 35.690931335719] , [ 1086753600000 , 35.394249929009] , [ 1086840000000 , 35.324125413566] , [ 1087185600000 , 35.273846374602] , [ 1087272000000 , 35.067823928278] , [ 1087358400000 , 34.862695344878] , [ 1087444800000 , 36.456675431841] , [ 1087531200000 , 36.860304488459] , [ 1087790400000 , 36.26350855705] , [ 1087876800000 , 36.910690292132] , [ 1087963200000 , 36.69845046556] , [ 1088049600000 , 37.140551698172] , [ 1088136000000 , 37.19203939064] , [ 1088395200000 , 36.777802274284] , [ 1088481600000 , 37.743304623197] , [ 1088568000000 , 36.957750234096] , [ 1088654400000 , 35.179592120996] , [ 1088740800000 , 35.971757474468] , [ 1089086400000 , 35.953872822652] , [ 1089172800000 , 35.195041368972] , [ 1089259200000 , 33.719085963576] , [ 1089345600000 , 33.719454772482] , [ 1089604800000 , 33.343755096164] , [ 1089691200000 , 35.259682038058] , [ 1089777600000 , 35.130300629567] , [ 1089864000000 , 35.627804959389] , [ 1089950400000 , 35.856242299135] , [ 1090209600000 , 35.19605820946] , [ 1090296000000 , 34.366048164566] , [ 1090382400000 , 34.415606244368] , [ 1090468800000 , 33.72604045124] , [ 1090555200000 , 33.501282385982] , [ 1090814400000 , 33.202199675917] , [ 1090900800000 , 32.830059989005] , [ 1090987200000 , 34.738380878607] , [ 1091073600000 , 34.77837530342] , [ 1091160000000 , 34.98141365024] , [ 1091419200000 , 34.971606739683] , [ 1091505600000 , 34.919484163021] , [ 1091592000000 , 34.190172525865] , [ 1091678400000 , 33.783022417657] , [ 1091764800000 , 33.480473460807] , [ 1092024000000 , 34.070612230614] , [ 1092110400000 , 34.805256090309] , [ 1092196800000 , 34.750826609801] , [ 1092283200000 , 34.178844843315] , [ 1092369600000 , 33.727032090252] , [ 1092628800000 , 34.278013195518] , [ 1092715200000 , 33.630895830164] , [ 1092801600000 , 33.43317129271] , [ 1092888000000 , 33.747978405917] , [ 1092974400000 , 33.884823223026] , [ 1093233600000 , 34.307197218335] , [ 1093320000000 , 33.5095588746] , [ 1093406400000 , 34.789664569944] , [ 1093492800000 , 35.402148408374] , [ 1093579200000 , 34.948816792509] , [ 1093838400000 , 34.705798755337] , [ 1093924800000 , 35.102951607888] , [ 1094011200000 , 34.57879038413] , [ 1094097600000 , 35.405580622395] , [ 1094184000000 , 35.286261774484] , [ 1094529600000 , 35.362343577632] , [ 1094616000000 , 35.072676406746] , [ 1094702400000 , 35.143308034056] , [ 1094788800000 , 34.631417044956] , [ 1095048000000 , 34.312090631943] , [ 1095134400000 , 34.369866267093] , [ 1095220800000 , 36.647756003092] , [ 1095307200000 , 36.189810972106] , [ 1095393600000 , 36.887979517367] , [ 1095652800000 , 36.258789503071] , [ 1095739200000 , 36.437625958101] , [ 1095825600000 , 35.64395750975] , [ 1095912000000 , 34.860705548815] , [ 1095998400000 , 35.491850529845] , [ 1096257600000 , 34.559887935367] , [ 1096344000000 , 34.861934523359] , [ 1096430400000 , 35.489617057756] , [ 1096516800000 , 37.062672361663] , [ 1096603200000 , 36.972723332959] , [ 1096862400000 , 37.426816302493] , [ 1096948800000 , 37.592486370351] , [ 1097035200000 , 38.188500570235] , [ 1097121600000 , 36.920973165811] , [ 1097208000000 , 37.622574761399] , [ 1097467200000 , 38.009313146508] , [ 1097553600000 , 37.696331730285] , [ 1097640000000 , 38.397439580707] , [ 1097726400000 , 39.211459506775] , [ 1097812800000 , 38.130200108537] , [ 1098072000000 , 38.661585901311] , [ 1098158400000 , 39.011281074571] , [ 1098244800000 , 39.168392468547] , [ 1098331200000 , 38.733289080043] , [ 1098417600000 , 38.998113795981] , [ 1098676800000 , 38.720441491193] , [ 1098763200000 , 38.950923626086] , [ 1098849600000 , 40.176332024159] , [ 1098936000000 , 40.331423328065] , [ 1099022400000 , 38.902137338209] , [ 1099285200000 , 38.468176868573] , [ 1099371600000 , 38.751203982778] , [ 1099458000000 , 37.281017817914] , [ 1099544400000 , 37.489219450381] , [ 1099630800000 , 37.379096648202] , [ 1099890000000 , 37.712409768349] , [ 1099976400000 , 36.850720409689] , [ 1100062800000 , 37.413808246441] , [ 1100149200000 , 37.787797742661] , [ 1100235600000 , 37.507731005452] , [ 1100494800000 , 37.573609603023] , [ 1100581200000 , 37.344252614603] , [ 1100667600000 , 36.788082265238] , [ 1100754000000 , 37.250890891018] , [ 1100840400000 , 37.791397451038] , [ 1101099600000 , 38.119683409798] , [ 1101186000000 , 37.681848341174] , [ 1101272400000 , 38.448947285106] , [ 1101445200000 , 38.207195849538] , [ 1101704400000 , 38.21014904083] , [ 1101790800000 , 38.970040540152] , [ 1101877200000 , 37.233630963626] , [ 1101963600000 , 38.032095482422] , [ 1102050000000 , 37.484448510528] , [ 1102309200000 , 37.419563686497] , [ 1102395600000 , 38.141655940335] , [ 1102482000000 , 37.860222838637] , [ 1102568400000 , 38.921399776818] , [ 1102654800000 , 37.685675881274] , [ 1102914000000 , 37.694561045617] , [ 1103000400000 , 37.509265854216] , [ 1103086800000 , 38.781596858096] , [ 1103173200000 , 37.849676197162] , [ 1103259600000 , 38.436888389496] , [ 1103518800000 , 37.152234590549] , [ 1103605200000 , 37.353914990849] , [ 1103691600000 , 37.621646851687] , [ 1103778000000 , 37.984456350252] , [ 1104123600000 , 38.351153974459] , [ 1104210000000 , 38.125525912586] , [ 1104296400000 , 37.590675361222] , [ 1104382800000 , 40.039604906909] , [ 1104469200000 , 37.701280232352] , [ 1104728400000 , 36.32768064337] , [ 1104814800000 , 36.09942019546] , [ 1104901200000 , 34.142323910415] , [ 1104987600000 , 34.427478981573] , [ 1105074000000 , 34.466730026272] , [ 1105333200000 , 35.412905339113] , [ 1105419600000 , 35.029254067577] , [ 1105506000000 , 34.77702168723] , [ 1105592400000 , 35.992104384032] , [ 1105678800000 , 35.932257015488] , [ 1106024400000 , 35.922201782439] , [ 1106110800000 , 34.566179329391] , [ 1106197200000 , 36.285171844918] , [ 1106283600000 , 34.818089042177] , [ 1106542800000 , 34.512918300948] , [ 1106629200000 , 33.79740180972] , [ 1106715600000 , 34.598948223696] , [ 1106802000000 , 34.107995808921] , [ 1106888400000 , 33.740610615246] , [ 1107147600000 , 35.745447840158] , [ 1107234000000 , 36.098299221463] , [ 1107320400000 , 36.029757824523] , [ 1107406800000 , 38.854971784934] , [ 1107493200000 , 36.8835150774] , [ 1107752400000 , 36.9000223708] , [ 1107838800000 , 36.357883099866] , [ 1107925200000 , 36.662128952549] , [ 1108011600000 , 35.633383451781] , [ 1108098000000 , 35.926367677232] , [ 1108357200000 , 36.07834734151] , [ 1108443600000 , 33.387023899029] , [ 1108530000000 , 33.668946331638] , [ 1108616400000 , 33.540818011929] , [ 1108702800000 , 33.673093767923] , [ 1109048400000 , 32.707744179971] , [ 1109134800000 , 34.227065283707] , [ 1109221200000 , 34.192067268571] , [ 1109307600000 , 32.965405076295] , [ 1109566800000 , 34.126193532526] , [ 1109653200000 , 33.593028823117] , [ 1109739600000 , 31.06252783532] , [ 1109826000000 , 31.377529475201] , [ 1109912400000 , 31.373285305342] , [ 1110171600000 , 31.9387475147] , [ 1110258000000 , 32.36276141705] , [ 1110344400000 , 31.715049603287] , [ 1110430800000 , 31.669543925407] , [ 1110517200000 , 32.173517637243] , [ 1110776400000 , 31.455915635672] , [ 1110862800000 , 32.656974481299] , [ 1110949200000 , 35.619878018892] , [ 1111035600000 , 35.189045748171] , [ 1111122000000 , 31.417504568494] , [ 1111381200000 , 35.237522378169] , [ 1111467600000 , 34.659802361222] , [ 1111554000000 , 34.484975823538] , [ 1111640400000 , 34.716760476881] , [ 1111986000000 , 35.209869590921] , [ 1112072400000 , 35.630710839041] , [ 1112158800000 , 35.464235555469] , [ 1112245200000 , 35.556194795435] , [ 1112331600000 , 34.30485724367] , [ 1112587200000 , 34.262532305365] , [ 1112673600000 , 34.837468281161] , [ 1112760000000 , 34.972116779153] , [ 1112846400000 , 34.454711113367] , [ 1112932800000 , 34.184876753143] , [ 1113192000000 , 34.370129717587] , [ 1113278400000 , 34.026139212323] , [ 1113364800000 , 34.136121211528] , [ 1113451200000 , 36.484987273601] , [ 1113537600000 , 32.256269421636] , [ 1113796800000 , 33.272383381821] , [ 1113883200000 , 33.08635408501] , [ 1113969600000 , 33.275919377746] , [ 1114056000000 , 34.705597667494] , [ 1114142400000 , 33.146534134095] , [ 1114401600000 , 35.248334471813] , [ 1114488000000 , 33.094933000729] , [ 1114574400000 , 33.040890848337] , [ 1114660800000 , 32.383859722243] , [ 1114747200000 , 32.956457583442] , [ 1115006400000 , 35.25476937522] , [ 1115092800000 , 34.93508420001] , [ 1115179200000 , 35.017615115124] , [ 1115265600000 , 35.444880566821] , [ 1115352000000 , 34.662066987122] , [ 1115611200000 , 34.978649029471] , [ 1115697600000 , 35.231798879402] , [ 1115784000000 , 35.189173109602] , [ 1115870400000 , 34.098929785653] , [ 1115956800000 , 34.965665300545] , [ 1116216000000 , 35.33310254828] , [ 1116302400000 , 35.327452664272] , [ 1116388800000 , 35.184668659904] , [ 1116475200000 , 34.972293218571] , [ 1116561600000 , 34.898524545706] , [ 1116820800000 , 34.82511182672] , [ 1116907200000 , 35.291423726777] , [ 1116993600000 , 35.499278063825] , [ 1117080000000 , 36.360545112276] , [ 1117166400000 , 36.064262122562] , [ 1117512000000 , 36.939280235001] , [ 1117598400000 , 37.176516239756] , [ 1117684800000 , 37.125877522574] , [ 1117771200000 , 37.663368514969] , [ 1118030400000 , 37.147609477452] , [ 1118116800000 , 38.14957407077] , [ 1118203200000 , 37.773623087991] , [ 1118289600000 , 38.09259699337] , [ 1118376000000 , 38.022450528027] , [ 1118635200000 , 34.933782265782] , [ 1118721600000 , 38.559702626728] , [ 1118808000000 , 36.400407189965] , [ 1118894400000 , 37.122653894364] , [ 1118980800000 , 37.376535430078] , [ 1119240000000 , 37.033173259849] , [ 1119326400000 , 37.03710926125] , [ 1119412800000 , 36.917647013739] , [ 1119499200000 , 34.855413999149] , [ 1119585600000 , 34.932556573976] , [ 1119844800000 , 38.005371063674] , [ 1119931200000 , 37.209031612439] , [ 1120017600000 , 39.097736759506] , [ 1120104000000 , 34.303901241605] , [ 1120190400000 , 34.656914255499] , [ 1120536000000 , 34.440796356574] , [ 1120622400000 , 34.740222239674] , [ 1120708800000 , 34.339101153525] , [ 1120795200000 , 34.745446407813] , [ 1121054400000 , 32.808834484697] , [ 1121140800000 , 33.193324056921] , [ 1121227200000 , 33.176246686149] , [ 1121313600000 , 32.6304209599] , [ 1121400000000 , 33.618850768518] , [ 1121659200000 , 32.913219473454] , [ 1121745600000 , 33.15723895324] , [ 1121832000000 , 33.440360839534] , [ 1121918400000 , 33.248786152488] , [ 1122004800000 , 33.04570084332] , [ 1122264000000 , 32.945957569531] , [ 1122350400000 , 33.417257804502] , [ 1122436800000 , 33.002812636003] , [ 1122523200000 , 33.289204399572] , [ 1122609600000 , 33.054134891372] , [ 1122868800000 , 32.433598898209] , [ 1122955200000 , 33.257566123828] , [ 1123041600000 , 34.316705113254] , [ 1123128000000 , 35.151852666961] , [ 1123214400000 , 35.307825838341] , [ 1123473600000 , 35.897355701538] , [ 1123560000000 , 35.713381842899] , [ 1123646400000 , 33.800816986159] , [ 1123732800000 , 33.826312872189] , [ 1123819200000 , 32.852399971332] , [ 1124078400000 , 32.625343623356] , [ 1124164800000 , 33.67931959259] , [ 1124251200000 , 33.638491037627] , [ 1124337600000 , 33.279061337361] , [ 1124424000000 , 33.690948973697] , [ 1124683200000 , 32.870324449322] , [ 1124769600000 , 34.95885187401] , [ 1124856000000 , 33.722803788033] , [ 1124942400000 , 33.805043706086] , [ 1125028800000 , 33.084171218571] , [ 1125288000000 , 32.797476731941] , [ 1125374400000 , 34.951844742643] , [ 1125460800000 , 35.34346399059] , [ 1125547200000 , 36.089453913685] , [ 1125633600000 , 36.85637833275] , [ 1125979200000 , 35.262182939029] , [ 1126065600000 , 34.201012889921] , [ 1126152000000 , 33.946465818246] , [ 1126238400000 , 33.914195415859] , [ 1126497600000 , 33.822840966785] , [ 1126584000000 , 35.009551665424] , [ 1126670400000 , 35.220611758553] , [ 1126756800000 , 35.127643340204] , [ 1126843200000 , 36.383495631418] , [ 1127102400000 , 34.726269086065] , [ 1127188800000 , 35.095334211073] , [ 1127275200000 , 35.24956964052] , [ 1127361600000 , 35.342179891616] , [ 1127448000000 , 36.065857185126] , [ 1127707200000 , 36.385521496362] , [ 1127793600000 , 36.462782459528] , [ 1127880000000 , 35.845318249115] , [ 1127966400000 , 36.363275856063] , [ 1128052800000 , 36.072135896826] , [ 1128312000000 , 35.153590452456] , [ 1128398400000 , 35.975496456615] , [ 1128484800000 , 36.548711383227] , [ 1128571200000 , 36.850126363729] , [ 1128657600000 , 36.479820665931] , [ 1128916800000 , 35.393152267139] , [ 1129003200000 , 38.253113193037] , [ 1129089600000 , 38.239427481354] , [ 1129176000000 , 39.311851451163] , [ 1129262400000 , 40.077836034903] , [ 1129521600000 , 38.390564864298] , [ 1129608000000 , 38.644587842762] , [ 1129694400000 , 26.854772819487] , [ 1129780800000 , 38.405619170555] , [ 1129867200000 , 38.267604982325] , [ 1130126400000 , 38.671045488684] , [ 1130212800000 , 38.863923613658] , [ 1130299200000 , 38.527676302969] , [ 1130385600000 , 38.176934215806] , [ 1130472000000 , 38.615615567328] , [ 1130734800000 , 39.029254695908] , [ 1130821200000 , 40.345935638008] , [ 1130907600000 , 36.040400308219] , [ 1130994000000 , 38.380001866798] , [ 1131080400000 , 38.152664716617] , [ 1131339600000 , 34.447873616487] , [ 1131426000000 , 35.163550315799] , [ 1131512400000 , 35.284210246933] , [ 1131598800000 , 34.787855760406] , [ 1131685200000 , 36.541454039291] , [ 1131944400000 , 35.817677167594] , [ 1132030800000 , 37.111554350089] , [ 1132117200000 , 35.914771950142] , [ 1132203600000 , 34.256979049371] , [ 1132290000000 , 32.288086077253] , [ 1132549200000 , 33.693676625169] , [ 1132635600000 , 33.319180224836] , [ 1132722000000 , 32.447672948837] , [ 1132894800000 , 32.83521336049] , [ 1133154000000 , 31.86079803623] , [ 1133240400000 , 33.447392145536] , [ 1133326800000 , 33.194693868177] , [ 1133413200000 , 34.05038018519] , [ 1133499600000 , 34.266078095003] , [ 1133758800000 , 36.281653072547] , [ 1133845200000 , 36.395604508473] , [ 1133931600000 , 36.371301663593] , [ 1134018000000 , 36.659153905129] , [ 1134104400000 , 36.034564671531] , [ 1134363600000 , 33.307768127274] , [ 1134450000000 , 33.900360947226] , [ 1134536400000 , 36.032467902097] , [ 1134622800000 , 35.836994524746] , [ 1134709200000 , 35.51223490125] , [ 1134968400000 , 35.555248868886] , [ 1135054800000 , 35.860761941202] , [ 1135141200000 , 33.09434184741] , [ 1135227600000 , 33.086054616538] , [ 1135314000000 , 33.281782296023] , [ 1135659600000 , 32.986247810646] , [ 1135746000000 , 32.896876050255] , [ 1135832400000 , 29.820219566301] , [ 1135918800000 , 30.632136365846] , [ 1136264400000 , 44.920989565915] , [ 1136350800000 , 44.689486676175] , [ 1136437200000 , 43.935531446195] , [ 1136523600000 , 45.382203356841] , [ 1136782800000 , 45.278347077518] , [ 1136869200000 , 44.21356252252] , [ 1136955600000 , 44.789599572693] , [ 1137042000000 , 44.179007511053] , [ 1137128400000 , 45.062314142306] , [ 1137474000000 , 43.114283635779] , [ 1137560400000 , 43.666161708325] , [ 1137646800000 , 45.000874970129] , [ 1137733200000 , 44.54722680117] , [ 1137992400000 , 43.998768537089] , [ 1138078800000 , 45.334963538757] , [ 1138165200000 , 41.422894514679] , [ 1138251600000 , 41.765289072857] , [ 1138338000000 , 41.361837364233] , [ 1138597200000 , 41.467309975936] , [ 1138683600000 , 44.388767922429] , [ 1138770000000 , 42.849230569584] , [ 1138856400000 , 42.670378064767] , [ 1138942800000 , 43.607945339449] , [ 1139202000000 , 42.913143892052] , [ 1139288400000 , 42.038511907006] , [ 1139374800000 , 42.059997327191] , [ 1139461200000 , 42.668521384309] , [ 1139547600000 , 42.508830425147] , [ 1139806800000 , 42.360977340191] , [ 1139893200000 , 42.450464118612] , [ 1139979600000 , 41.534308383372] , [ 1140066000000 , 40.514021280382] , [ 1140152400000 , 40.747646796332] , [ 1140498000000 , 41.116758915735] , [ 1140584400000 , 42.374772075595] , [ 1140670800000 , 41.68214532166] , [ 1140757200000 , 42.24235753426] , [ 1141016400000 , 41.441747369369] , [ 1141102800000 , 41.448070251769] , [ 1141189200000 , 56.275981568947] , [ 1141275600000 , 55.282627169559] , [ 1141362000000 , 56.647027485319] , [ 1141621200000 , 56.059660028106] , [ 1141707600000 , 54.77918132076] , [ 1141794000000 , 54.478201978136] , [ 1141880400000 , 54.620549543794] , [ 1141966800000 , 55.510981587484] , [ 1142226000000 , 55.406167363186] , [ 1142312400000 , 55.352302193651] , [ 1142398800000 , 55.147409450116] , [ 1142485200000 , 55.444964855182] , [ 1142571600000 , 55.627238682548] , [ 1142830800000 , 56.854644322019] , [ 1142917200000 , 57.023277554471] , [ 1143003600000 , 55.018950347698] , [ 1143090000000 , 54.352959079547] , [ 1143176400000 , 54.996261045117] , [ 1143435600000 , 56.639708274569] , [ 1143522000000 , 57.180670453799] , [ 1143608400000 , 56.842700893772] , [ 1143694800000 , 56.973261893324] , [ 1143781200000 , 45.958572168113] , [ 1144036800000 , 44.899077837883] , [ 1144123200000 , 44.320622028659] , [ 1144209600000 , 44.219804252191] , [ 1144296000000 , 45.173865376276] , [ 1144382400000 , 45.732509493847] , [ 1144641600000 , 48.1891780745] , [ 1144728000000 , 46.840271938897] , [ 1144814400000 , 46.789706444344] , [ 1144900800000 , 46.393449417654] , [ 1145246400000 , 45.645233846302] , [ 1145332800000 , 47.326547762145] , [ 1145419200000 , 46.332232113328] , [ 1145505600000 , 47.267052922945] , [ 1145592000000 , 47.693265582401] , [ 1145851200000 , 47.401272809184] , [ 1145937600000 , 47.052191663825] , [ 1146024000000 , 47.998220631374] , [ 1146110400000 , 46.279773880716] , [ 1146196800000 , 45.958311743231] , [ 1146456000000 , 46.581353772922] , [ 1146542400000 , 46.679770406725] , [ 1146628800000 , 46.970527577035] , [ 1146715200000 , 49.467528887389] , [ 1146801600000 , 48.86749946278] , [ 1147060800000 , 49.648628502483] , [ 1147147200000 , 50.494348136037] , [ 1147233600000 , 50.337969671596] , [ 1147320000000 , 49.571689687202] , [ 1147406400000 , 46.990254393641] , [ 1147665600000 , 47.304911630878] , [ 1147752000000 , 47.983917320898] , [ 1147838400000 , 45.854540750668] , [ 1147924800000 , 45.510137611603] , [ 1148011200000 , 46.151175817378] , [ 1148270400000 , 45.62364868657] , [ 1148356800000 , 46.110148005872] , [ 1148443200000 , 45.810233526614] , [ 1148529600000 , 44.9930408698] , [ 1148616000000 , 46.363888952819] , [ 1148961600000 , 47.143012944602] , [ 1149048000000 , 47.327707321384] , [ 1149134400000 , 45.175104405284] , [ 1149220800000 , 45.34703424423] , [ 1149480000000 , 46.216779893393] , [ 1149566400000 , 46.598040617359] , [ 1149652800000 , 47.189241289933] , [ 1149739200000 , 45.658398048284] , [ 1149825600000 , 46.9164487272] , [ 1150084800000 , 46.011284533759] , [ 1150171200000 , 46.113819310332] , [ 1150257600000 , 46.190932441443] , [ 1150344000000 , 46.750676824435] , [ 1150430400000 , 46.487507306337] , [ 1150689600000 , 46.383666602358] , [ 1150776000000 , 48.314734663751] , [ 1150862400000 , 45.904959801309] , [ 1150948800000 , 46.414508246488] , [ 1151035200000 , 45.827051574341] , [ 1151294400000 , 45.660314700071] , [ 1151380800000 , 46.072521952446] , [ 1151467200000 , 45.154916189936] , [ 1151553600000 , 47.901416171471] , [ 1151640000000 , 37.229325012319] , [ 1151899200000 , 37.761444779987] , [ 1152072000000 , 37.684391952883] , [ 1152158400000 , 36.901070341916] , [ 1152244800000 , 35.027909343394] , [ 1152504000000 , 35.590532623892] , [ 1152590400000 , 36.323481699381] , [ 1152676800000 , 35.373968184744] , [ 1152763200000 , 36.112919872847] , [ 1152849600000 , 35.877394091331] , [ 1153108800000 , 35.904079397751] , [ 1153195200000 , 34.982167807466] , [ 1153281600000 , 34.866840916243] , [ 1153368000000 , 35.461239442698] , [ 1153454400000 , 35.178443755199] , [ 1153713600000 , 35.874799052439] , [ 1153800000000 , 34.315979895357] , [ 1153886400000 , 35.263596736544] , [ 1153972800000 , 36.720199730035] , [ 1154059200000 , 36.582484990637] , [ 1154318400000 , 36.146231730222] , [ 1154404800000 , 36.473218758824] , [ 1154491200000 , 39.350334069031] , [ 1154577600000 , 39.349849644247] , [ 1154664000000 , 38.905126995273] , [ 1154923200000 , 38.501874531275] , [ 1155009600000 , 38.085057200453] , [ 1155096000000 , 36.580874486445] , [ 1155182400000 , 35.278564569285] , [ 1155268800000 , 35.339867546352] , [ 1155528000000 , 38.144145011232] , [ 1155614400000 , 38.527057988677] , [ 1155700800000 , 38.512057817284] , [ 1155787200000 , 38.633124563109] , [ 1155873600000 , 38.441142917546] , [ 1156132800000 , 38.198057114995] , [ 1156219200000 , 39.387052916829] , [ 1156305600000 , 38.539204428591] , [ 1156392000000 , 38.403254514578] , [ 1156478400000 , 36.985515551347] , [ 1156737600000 , 38.43679432035] , [ 1156824000000 , 36.879754047101] , [ 1156910400000 , 36.833854632532] , [ 1156996800000 , 37.981440096908] , [ 1157083200000 , 38.972302352471] , [ 1157428800000 , 39.04251002197] , [ 1157515200000 , 38.914819281455] , [ 1157601600000 , 38.109923576759] , [ 1157688000000 , 38.357930697252] , [ 1157947200000 , 37.827158778622] , [ 1158033600000 , 36.780706791936] , [ 1158120000000 , 36.509922890579] , [ 1158206400000 , 36.26065959187] , [ 1158292800000 , 36.600766410154] , [ 1158552000000 , 38.705470046823] , [ 1158638400000 , 38.401807247359] , [ 1158724800000 , 38.515622354436] , [ 1158811200000 , 38.315859920133] , [ 1158897600000 , 38.250951237303] , [ 1159156800000 , 38.67982448146] , [ 1159243200000 , 37.224057114459] , [ 1159329600000 , 38.660376868643] , [ 1159416000000 , 38.830427200907] , [ 1159502400000 , 38.706842387278] , [ 1159761600000 , 41.079742461457] , [ 1159848000000 , 40.444930825372] , [ 1159934400000 , 40.886912676513] , [ 1160020800000 , 41.224822083341] , [ 1160107200000 , 40.347601367712] , [ 1160366400000 , 41.837356554128] , [ 1160452800000 , 40.897932943193] , [ 1160539200000 , 40.518543650028] , [ 1160625600000 , 40.288752137816] , [ 1160712000000 , 41.043190919031] , [ 1160971200000 , 41.587317963957] , [ 1161057600000 , 41.506640506137] , [ 1161144000000 , 42.119301433006] , [ 1161230400000 , 41.682102125416] , [ 1161316800000 , 41.658385997837] , [ 1161576000000 , 41.364755536555] , [ 1161662400000 , 41.118329642666] , [ 1161748800000 , 41.930530943983] , [ 1161835200000 , 41.701997048839] , [ 1161921600000 , 41.523275953147] , [ 1162184400000 , 42.250622483593] , [ 1162270800000 , 41.46919877524] , [ 1162357200000 , 40.652998161448] , [ 1162443600000 , 40.301949948859] , [ 1162530000000 , 40.765389738426] , [ 1162789200000 , 40.377269979391] , [ 1162875600000 , 40.153092201418] , [ 1162962000000 , 40.333395774847] , [ 1163048400000 , 40.34239887406] , [ 1163134800000 , 39.862900128257] , [ 1163394000000 , 40.215906322029] , [ 1163480400000 , 40.261573859441] , [ 1163566800000 , 40.232379320879] , [ 1163653200000 , 40.855851614849] , [ 1163739600000 , 40.249521139052] , [ 1163998800000 , 40.310180760733] , [ 1164085200000 , 40.615769349049] , [ 1164171600000 , 42.51425827267] , [ 1164344400000 , 42.563323885289] , [ 1164603600000 , 40.875145750298] , [ 1164690000000 , 40.948224280484] , [ 1164776400000 , 40.473905934522] , [ 1164862800000 , 40.849014399588] , [ 1164949200000 , 48.028193886878] , [ 1165208400000 , 49.283546585] , [ 1165294800000 , 49.28735947581] , [ 1165381200000 , 49.582676075971] , [ 1165467600000 , 49.505520921541] , [ 1165554000000 , 49.334066135561] , [ 1165813200000 , 47.361493884564] , [ 1165899600000 , 48.022668447577] , [ 1165986000000 , 48.136007177164] , [ 1166072400000 , 49.530879789181] , [ 1166158800000 , 49.049605191802] , [ 1166418000000 , 47.79272343811] , [ 1166504400000 , 47.956058613061] , [ 1166590800000 , 47.251710880592] , [ 1166677200000 , 48.081631554785] , [ 1166763600000 , 47.789565103002] , [ 1167109200000 , 46.999857094634] , [ 1167195600000 , 47.256470084764] , [ 1167282000000 , 48.260105754234] , [ 1167368400000 , 47.200164209204] , [ 1167800400000 , 40.549288786421] , [ 1167886800000 , 40.677964850113] , [ 1167973200000 , 38.61986361478] , [ 1168232400000 , 39.533449972988] , [ 1168318800000 , 43.077590371278] , [ 1168405200000 , 42.273909561109] , [ 1168491600000 , 41.970722386306] , [ 1168578000000 , 42.365794801946] , [ 1168923600000 , 40.58045315325] , [ 1169010000000 , 40.166084518201] , [ 1169096400000 , 42.75059731468] , [ 1169182800000 , 42.404230220348] , [ 1169442000000 , 42.900567347161] , [ 1169528400000 , 43.83166540379] , [ 1169614800000 , 43.52394327365] , [ 1169701200000 , 43.757051115448] , [ 1169787600000 , 43.797231102267] , [ 1170046800000 , 43.835763850656] , [ 1170133200000 , 44.207104496916] , [ 1170219600000 , 41.649989577322] , [ 1170306000000 , 41.294349341683] , [ 1170392400000 , 40.978546978348] , [ 1170651600000 , 42.886190399794] , [ 1170738000000 , 40.933388651012] , [ 1170824400000 , 42.966105369238] , [ 1170910800000 , 42.399655191504] , [ 1170997200000 , 41.278267224216] , [ 1171256400000 , 41.514161952875] , [ 1171342800000 , 41.75837231568] , [ 1171429200000 , 42.864861082849] , [ 1171515600000 , 42.040457105532] , [ 1171602000000 , 41.705396079693] , [ 1171947600000 , 43.617273023627] , [ 1172034000000 , 43.168627647137] , [ 1172120400000 , 42.972722792162] , [ 1172206800000 , 41.83791221391] , [ 1172466000000 , 39.783182892268] , [ 1172552400000 , 39.438729187683] , [ 1172638800000 , 40.1247547104] , [ 1172725200000 , 41.699042365727] , [ 1172811600000 , 41.851533446016] , [ 1173070800000 , 42.011879379647] , [ 1173157200000 , 42.039333165794] , [ 1173243600000 , 41.275902320569] , [ 1173330000000 , 42.348740478519] , [ 1173416400000 , 41.586648653507] , [ 1173672000000 , 42.654881252113] , [ 1173758400000 , 41.691200648855] , [ 1173844800000 , 41.855349262981] , [ 1173931200000 , 42.517086809842] , [ 1174017600000 , 42.865130428195] , [ 1174276800000 , 43.238550747996] , [ 1174363200000 , 41.798874003536] , [ 1174449600000 , 42.291275186549] , [ 1174536000000 , 42.013470636387] , [ 1174622400000 , 41.530432572068] , [ 1174881600000 , 41.910687468403] , [ 1174968000000 , 42.15736146194] , [ 1175054400000 , 41.492349901568] , [ 1175140800000 , 42.560352462857] , [ 1175227200000 , 41.97254938106] , [ 1175486400000 , 45.374436924472] , [ 1175572800000 , 45.893545304187] , [ 1175659200000 , 45.22506003574] , [ 1175745600000 , 46.05209467202] , [ 1176091200000 , 47.035327960171] , [ 1176177600000 , 46.576342048869] , [ 1176264000000 , 46.295802288735] , [ 1176350400000 , 47.041541599954] , [ 1176436800000 , 47.159100540413] , [ 1176696000000 , 48.44665937597] , [ 1176782400000 , 47.152224419599] , [ 1176868800000 , 48.212432491054] , [ 1176955200000 , 49.068611571573] , [ 1177041600000 , 48.602141536117] , [ 1177300800000 , 47.742362179746] , [ 1177387200000 , 45.698690353783] , [ 1177473600000 , 48.371240280254] , [ 1177560000000 , 48.415485725908] , [ 1177646400000 , 48.55405459696] , [ 1177905600000 , 47.304778703626] , [ 1177992000000 , 46.225008783656] , [ 1178078400000 , 44.229418778794] , [ 1178164800000 , 44.406564625653] , [ 1178251200000 , 45.50742880888] , [ 1178510400000 , 44.984448759391] , [ 1178596800000 , 44.65448956982] , [ 1178683200000 , 45.588829075533] , [ 1178769600000 , 45.020749850888] , [ 1178856000000 , 45.465243868375] , [ 1179115200000 , 45.519305456743] , [ 1179201600000 , 44.911170952119] , [ 1179288000000 , 44.745521815018] , [ 1179374400000 , 45.940956506756] , [ 1179460800000 , 46.306072153648] , [ 1179720000000 , 46.22792700306] , [ 1179806400000 , 46.956904197167] , [ 1179892800000 , 46.573345705707] , [ 1179979200000 , 46.43786344348] , [ 1180065600000 , 46.094432535573] , [ 1180411200000 , 46.697477331175] , [ 1180497600000 , 46.428879450571] , [ 1180584000000 , 50.499545993297] , [ 1180670400000 , 55.339281464709] , [ 1180929600000 , 54.409050782759] , [ 1181016000000 , 54.593169041359] , [ 1181102400000 , 55.412911246063] , [ 1181188800000 , 53.665870169968] , [ 1181275200000 , 50.928028587585] , [ 1181534400000 , 50.923673347514] , [ 1181620800000 , 50.845287393009] , [ 1181707200000 , 54.947494876833] , [ 1181793600000 , 52.888928872303] , [ 1181880000000 , 53.052353110611] , [ 1182139200000 , 53.852433577049] , [ 1182225600000 , 53.390913524952] , [ 1182312000000 , 51.231387895907] , [ 1182398400000 , 55.248891533728] , [ 1182484800000 , 53.132739002471] , [ 1182744000000 , 54.932644045835] , [ 1182830400000 , 51.454250922562] , [ 1182916800000 , 49.516775558942] , [ 1183003200000 , 50.807400759558] , [ 1183089600000 , 55.668820880205] , [ 1183348800000 , 40.677665131618] , [ 1183435200000 , 40.957823912031] , [ 1183608000000 , 43.070762941754] , [ 1183694400000 , 44.001891147519] , [ 1183953600000 , 41.316806970291] , [ 1184040000000 , 42.640942591304] , [ 1184126400000 , 41.480018575865] , [ 1184212800000 , 43.794516056231] , [ 1184299200000 , 44.136091304711] , [ 1184558400000 , 44.486575362551] , [ 1184644800000 , 43.128278487299] , [ 1184731200000 , 43.465973749196] , [ 1184817600000 , 43.796431410073] , [ 1184904000000 , 43.7061873612] , [ 1185163200000 , 43.286353767759] , [ 1185249600000 , 40.301127610827] , [ 1185336000000 , 42.276206724195] , [ 1185422400000 , 41.647404419762] , [ 1185508800000 , 40.836581996412] , [ 1185768000000 , 42.082497022874] , [ 1185854400000 , 41.819782438579] , [ 1185940800000 , 40.864923131589] , [ 1186027200000 , 40.752166804551] , [ 1186113600000 , 40.827600193087] , [ 1186372800000 , 40.25752064843] , [ 1186459200000 , 40.336744579352] , [ 1186545600000 , 41.526885374386] , [ 1186632000000 , 39.201321809451] , [ 1186718400000 , 40.824568472821] , [ 1186977600000 , 39.938781115159] , [ 1187064000000 , 40.275412920888] , [ 1187150400000 , 39.585179984672] , [ 1187236800000 , 38.550944472758] , [ 1187323200000 , 39.506420207732] , [ 1187582400000 , 38.98522762966] , [ 1187668800000 , 39.12668775225] , [ 1187755200000 , 38.826709386529] , [ 1187841600000 , 39.74645920889] , [ 1187928000000 , 39.907580166007] , [ 1188187200000 , 40.172651639289] , [ 1188273600000 , 39.271745306592] , [ 1188360000000 , 39.1410155061] , [ 1188446400000 , 40.075153010354] , [ 1188532800000 , 40.043023694857] , [ 1188878400000 , 38.762379226903] , [ 1188964800000 , 38.976244721011] , [ 1189051200000 , 40.888712180786] , [ 1189137600000 , 40.773231611241] , [ 1189396800000 , 39.686618837375] , [ 1189483200000 , 40.315506851923] , [ 1189569600000 , 40.768000686391] , [ 1189656000000 , 41.120158728705] , [ 1189742400000 , 41.289395778372] , [ 1190001600000 , 41.54453121935] , [ 1190088000000 , 40.448292109836] , [ 1190174400000 , 40.880259975885] , [ 1190260800000 , 40.769880453321] , [ 1190347200000 , 40.749304927693] , [ 1190606400000 , 40.630832500314] , [ 1190692800000 , 38.885351668649] , [ 1190779200000 , 38.583006012709] , [ 1190865600000 , 39.606330180132] , [ 1190952000000 , 40.128161596718] , [ 1191211200000 , 43.060065039489] , [ 1191297600000 , 43.196113993927] , [ 1191384000000 , 42.883319982201] , [ 1191470400000 , 43.067998208361] , [ 1191556800000 , 41.980852012484] , [ 1191816000000 , 42.883383613468] , [ 1191902400000 , 43.344013615142] , [ 1191988800000 , 42.614619640333] , [ 1192075200000 , 40.389984508037] , [ 1192161600000 , 42.693081639034] , [ 1192420800000 , 40.482578994898] , [ 1192507200000 , 40.260055795754] , [ 1192593600000 , 44.676963280551] , [ 1192680000000 , 42.95041649405] , [ 1192766400000 , 44.644292986367] , [ 1193025600000 , 44.639042554631] , [ 1193112000000 , 44.490801914855] , [ 1193198400000 , 42.591597590587] , [ 1193284800000 , 37.893186596748] , [ 1193371200000 , 38.44069180621] , [ 1193630400000 , 44.041100448824] , [ 1193716800000 , 43.361989197879] , [ 1193803200000 , 43.435786819594] , [ 1193889600000 , 42.460190442791] , [ 1193976000000 , 41.73837439964] , [ 1194238800000 , 39.47118358751] , [ 1194325200000 , 38.524217012563] , [ 1194411600000 , 40.577263626423] , [ 1194498000000 , 39.752284978368] , [ 1194584400000 , 40.103726892742] , [ 1194843600000 , 41.943328015222] , [ 1194930000000 , 39.597327285491] , [ 1195016400000 , 39.398666765961] , [ 1195102800000 , 39.011877833744] , [ 1195189200000 , 39.394878904507] , [ 1195448400000 , 36.009903702726] , [ 1195534800000 , 36.445892022393] , [ 1195621200000 , 39.75755712015] , [ 1195794000000 , 36.983322528572] , [ 1196053200000 , 38.251248776703] , [ 1196139600000 , 37.768716680642] , [ 1196226000000 , 36.870397086207] , [ 1196312400000 , 35.559626500934] , [ 1196398800000 , 36.370747685327] , [ 1196658000000 , 33.842649797434] , [ 1196744400000 , 35.023557058628] , [ 1196830800000 , 34.842328804301] , [ 1196917200000 , 34.112676542924] , [ 1197003600000 , 37.754414754838] , [ 1197262800000 , 36.252302733294] , [ 1197349200000 , 35.451916280442] , [ 1197435600000 , 34.915457858297] , [ 1197522000000 , 35.444820052421] , [ 1197608400000 , 34.183774983403] , [ 1197867600000 , 34.567832554773] , [ 1197954000000 , 39.384903210135] , [ 1198040400000 , 38.5810369827] , [ 1198126800000 , 38.229836463596] , [ 1198213200000 , 38.683044435007] , [ 1198472400000 , 39.02123959916] , [ 1198645200000 , 37.833081338653] , [ 1198731600000 , 38.108065472603] , [ 1198818000000 , 38.794022935015] , [ 1199077200000 , 40.228624536054] , [ 1199250000000 , 39.187498445172] , [ 1199336400000 , 36.417462496835] , [ 1199422800000 , 34.62763742216] , [ 1199682000000 , 36.736459264427] , [ 1199768400000 , 35.497559317682] , [ 1199854800000 , 34.918752591596] , [ 1199941200000 , 35.101531833782] , [ 1200027600000 , 35.49974607981] , [ 1200286800000 , 39.282649339878] , [ 1200373200000 , 39.080607719521] , [ 1200459600000 , 35.37988216736] , [ 1200546000000 , 37.663243683233] , [ 1200632400000 , 36.648070379947] , [ 1200978000000 , 37.430305878223] , [ 1201064400000 , 36.793485008657] , [ 1201150800000 , 40.381650279604] , [ 1201237200000 , 40.203730091606] , [ 1201496400000 , 40.368928796249] , [ 1201582800000 , 41.184304062135] , [ 1201669200000 , 40.276940973753] , [ 1201755600000 , 37.480905497643] , [ 1201842000000 , 37.474563506702] , [ 1202101200000 , 37.297125127342] , [ 1202187600000 , 36.117916684956] , [ 1202274000000 , 37.445680046014] , [ 1202360400000 , 38.22381673917] , [ 1202446800000 , 37.050419257962] , [ 1202706000000 , 36.592088770769] , [ 1202792400000 , 38.547831893985] , [ 1202878800000 , 38.684311217747] , [ 1202965200000 , 36.364014574572] , [ 1203051600000 , 36.622361890048] , [ 1203397200000 , 37.389531306573] , [ 1203483600000 , 36.607946999831] , [ 1203570000000 , 34.963636332469] , [ 1203656400000 , 35.248929477753] , [ 1203915600000 , 34.872771074855] , [ 1204002000000 , 34.208830042527] , [ 1204088400000 , 34.932674355541] , [ 1204174800000 , 35.114539235381] , [ 1204261200000 , 34.676553202955] , [ 1204520400000 , 34.880232048577] , [ 1204606800000 , 32.430681962075] , [ 1204693200000 , 33.367813465533] , [ 1204779600000 , 32.769464389519] , [ 1204866000000 , 32.65236118665] , [ 1205121600000 , 34.509687450756] , [ 1205208000000 , 32.6915298708] , [ 1205294400000 , 33.51547698851] , [ 1205380800000 , 32.942210625387] , [ 1205467200000 , 32.439117893938] , [ 1205726400000 , 32.02628003709] , [ 1205812800000 , 33.260143761914] , [ 1205899200000 , 35.300786089085] , [ 1205985600000 , 35.670818768413] , [ 1206331200000 , 34.77147703954] , [ 1206417600000 , 33.471427674497] , [ 1206504000000 , 33.485837485181] , [ 1206590400000 , 33.348124961012] , [ 1206676800000 , 32.070210983497] , [ 1206936000000 , 39.197005614678] , [ 1207022400000 , 32.875938058923] , [ 1207108800000 , 35.972483201689] , [ 1207195200000 , 37.822999108873] , [ 1207281600000 , 34.558692301518] , [ 1207540800000 , 35.663359305262] , [ 1207627200000 , 35.593770054148] , [ 1207713600000 , 37.504651476483] , [ 1207800000000 , 35.07776246529] , [ 1207886400000 , 37.200906256181] , [ 1208145600000 , 37.199331996473] , [ 1208232000000 , 37.024155456066] , [ 1208318400000 , 33.082697917005] , [ 1208404800000 , 37.498634214621] , [ 1208491200000 , 34.734977015412] , [ 1208750400000 , 34.973859459185] , [ 1208836800000 , 36.406870312099] , [ 1208923200000 , 36.819230799301] , [ 1209009600000 , 36.612076784378] , [ 1209096000000 , 34.622810267797] , [ 1209355200000 , 32.461347638351] , [ 1209441600000 , 34.125045067366] , [ 1209528000000 , 34.425567518522] , [ 1209614400000 , 31.328533980854] , [ 1209700800000 , 31.390511559334] , [ 1209960000000 , 30.93291579694] , [ 1210046400000 , 32.736477783621] , [ 1210132800000 , 31.082287302438] , [ 1210219200000 , 31.332602001184] , [ 1210305600000 , 33.038838836022] , [ 1210564800000 , 30.913599008659] , [ 1210651200000 , 30.870227455724] , [ 1210737600000 , 31.031635816925] , [ 1210824000000 , 30.568308358227] , [ 1210910400000 , 31.40338252109] , [ 1211169600000 , 31.025819584984] , [ 1211256000000 , 31.291018686243] , [ 1211342400000 , 33.089494963542] , [ 1211428800000 , 30.8501775222] , [ 1211515200000 , 31.024905920823] , [ 1211860800000 , 30.702659361613] , [ 1211947200000 , 30.370309143047] , [ 1212033600000 , 31.835536752185] , [ 1212120000000 , 34.224295895796] , [ 1212379200000 , 33.82551690261] , [ 1212465600000 , 33.448117799035] , [ 1212552000000 , 33.731957555327] , [ 1212638400000 , 33.419056433778] , [ 1212724800000 , 33.652076676877] , [ 1212984000000 , 34.75833390842] , [ 1213070400000 , 33.966852974712] , [ 1213156800000 , 31.962763579633] , [ 1213243200000 , 32.208757342848] , [ 1213329600000 , 34.378374528998] , [ 1213588800000 , 33.951741881089] , [ 1213675200000 , 34.007606108374] , [ 1213761600000 , 33.867845903539] , [ 1213848000000 , 33.616751259121] , [ 1213934400000 , 33.019184619914] , [ 1214193600000 , 33.285147543414] , [ 1214280000000 , 33.08342304721] , [ 1214366400000 , 33.714107912463] , [ 1214452800000 , 32.154610339661] , [ 1214539200000 , 32.600039373083] , [ 1214798400000 , 34.649653437429] , [ 1214884800000 , 34.390173491777] , [ 1214971200000 , 35.23482859762] , [ 1215057600000 , 35.420659797581] , [ 1215403200000 , 35.570715325359] , [ 1215489600000 , 33.990330369821] , [ 1215576000000 , 31.16151397514] , [ 1215662400000 , 31.474278442991] , [ 1215748800000 , 31.504568467653] , [ 1216008000000 , 31.638407811974] , [ 1216094400000 , 32.039690527103] , [ 1216180800000 , 32.158187913673] , [ 1216267200000 , 31.319105002908] , [ 1216353600000 , 33.857835760582] , [ 1216612800000 , 33.495854613048] , [ 1216699200000 , 34.641115439895] , [ 1216785600000 , 32.236073288275] , [ 1216872000000 , 32.869189753549] , [ 1216958400000 , 32.343041827239] , [ 1217217600000 , 33.173104251573] , [ 1217304000000 , 33.287531889745] , [ 1217390400000 , 33.07280240245] , [ 1217476800000 , 33.426480222396] , [ 1217563200000 , 30.844548573866] , [ 1217822400000 , 32.28517554945] , [ 1217908800000 , 32.556948418259] , [ 1217995200000 , 32.432127438834] , [ 1218081600000 , 30.976399153564] , [ 1218168000000 , 31.377955916811] , [ 1218427200000 , 33.871175546353] , [ 1218513600000 , 33.33184275627] , [ 1218600000000 , 34.131115594087] , [ 1218686400000 , 33.317052289572] , [ 1218772800000 , 33.799231225749] , [ 1219032000000 , 33.972974049901] , [ 1219118400000 , 34.021095752275] , [ 1219204800000 , 32.70456236339] , [ 1219291200000 , 33.030834770455] , [ 1219377600000 , 33.070958393187] , [ 1219636800000 , 30.144131693869] , [ 1219723200000 , 30.78660466756] , [ 1219809600000 , 30.626977812395] , [ 1219896000000 , 31.52675612422] , [ 1219982400000 , 30.729114716114] , [ 1220328000000 , 38.47221528415] , [ 1220414400000 , 38.863261471035] , [ 1220500800000 , 37.796975285052] , [ 1220587200000 , 37.463504689182] , [ 1220846400000 , 38.309577989911] , [ 1220932800000 , 38.025058836407] , [ 1221019200000 , 38.439129554542] , [ 1221105600000 , 39.036709791057] , [ 1221192000000 , 37.072770822385] , [ 1221451200000 , 39.673848596407] , [ 1221537600000 , 37.393032387866] , [ 1221624000000 , 36.35594364229] , [ 1221710400000 , 37.622993399094] , [ 1221796800000 , 36.649795639694] , [ 1222056000000 , 36.039113983115] , [ 1222142400000 , 37.085628887268] , [ 1222228800000 , 38.279678406166] , [ 1222315200000 , 36.846136815299] , [ 1222401600000 , 41.761604845869] , [ 1222660800000 , 42.996960939161] , [ 1222747200000 , 33.707564403266] , [ 1222833600000 , 32.779504578017] , [ 1222920000000 , 32.112840357214] , [ 1223006400000 , 32.42422434075] , [ 1223265600000 , 31.599745522692] , [ 1223352000000 , 31.394080666881] , [ 1223438400000 , 29.721685327049] , [ 1223524800000 , 27.656707679591] , [ 1223611200000 , 26.387053183114] , [ 1223870400000 , 28.427127462265] , [ 1223956800000 , 29.767151228933] , [ 1224043200000 , 24.885042683004] , [ 1224129600000 , 25.610585646098] , [ 1224216000000 , 25.89660408197] , [ 1224475200000 , 30.367206353123] , [ 1224561600000 , 28.68964289268] , [ 1224648000000 , 29.190070102203] , [ 1224734400000 , 30.01512936251] , [ 1224820800000 , 27.051664168982] , [ 1225080000000 , 26.468243159649] , [ 1225166400000 , 27.674346811166] , [ 1225252800000 , 31.060537460226] , [ 1225339200000 , 31.967700145343] , [ 1225425600000 , 31.76727442402] , [ 1225688400000 , 35.570908267855] , [ 1225774800000 , 35.087758911288] , [ 1225861200000 , 35.766405090511] , [ 1225947600000 , 34.77773045396] , [ 1226034000000 , 34.845497191942] , [ 1226293200000 , 35.277699974382] , [ 1226379600000 , 34.718926452526] , [ 1226466000000 , 31.031349237292] , [ 1226552400000 , 35.399989845419] , [ 1226638800000 , 32.11552775258] , [ 1226898000000 , 31.525057902617] , [ 1226984400000 , 31.849977729409] , [ 1227070800000 , 32.942855581261] , [ 1227157200000 , 30.034016952172] , [ 1227243600000 , 33.501536066258] , [ 1227502800000 , 31.6050659041] , [ 1227589200000 , 31.999708123932] , [ 1227675600000 , 34.317936159881] , [ 1227848400000 , 33.960673832941] , [ 1228107600000 , 41.356804380912] , [ 1228194000000 , 40.129327818544] , [ 1228280400000 , 43.113526837888] , [ 1228366800000 , 42.607006676072] , [ 1228453200000 , 43.406461937838] , [ 1228712400000 , 40.8109747939] , [ 1228798800000 , 38.042813404614] , [ 1228885200000 , 38.490896527889] , [ 1228971600000 , 38.361494759777] , [ 1229058000000 , 38.595507797191] , [ 1229317200000 , 35.42595407476] , [ 1229403600000 , 37.775749413766] , [ 1229490000000 , 37.165777579711] , [ 1229576400000 , 37.176995489902] , [ 1229662800000 , 36.507937046549] , [ 1229922000000 , 38.177645291644] , [ 1230008400000 , 37.649679034135] , [ 1230094800000 , 38.068189110701] , [ 1230267600000 , 38.38426027261] , [ 1230526800000 , 38.765332768625] , [ 1230613200000 , 37.032713183818] , [ 1230699600000 , 23.829064190627] , [ 1230872400000 , 22.323728883138] , [ 1231131600000 , 24.797109928227] , [ 1231218000000 , 24.977344869187] , [ 1231304400000 , 24.93584365895] , [ 1231390800000 , 24.86436284949] , [ 1231477200000 , 24.443104865996] , [ 1231736400000 , 24.362937970688] , [ 1231822800000 , 25.342113747091] , [ 1231909200000 , 25.783881702714] , [ 1231995600000 , 27.792844806944] , [ 1232082000000 , 28.466705182171] , [ 1232427600000 , 27.369176753396] , [ 1232514000000 , 28.269278787546] , [ 1232600400000 , 27.537922432643] , [ 1232686800000 , 27.003816799455] , [ 1232946000000 , 27.675275368673] , [ 1233032400000 , 27.8817155491] , [ 1233118800000 , 26.456390928983] , [ 1233205200000 , 28.240227295843] , [ 1233291600000 , 27.905504232911] , [ 1233550800000 , 26.999949466703] , [ 1233637200000 , 25.470908064245] , [ 1233723600000 , 28.989051436527] , [ 1233810000000 , 28.080202997704] , [ 1233896400000 , 26.903951189081] , [ 1234155600000 , 26.804750308913] , [ 1234242000000 , 26.373036159637] , [ 1234328400000 , 26.22710293064] , [ 1234414800000 , 25.976932262381] , [ 1234501200000 , 26.595980451527] , [ 1234846800000 , 26.997996030368] , [ 1234933200000 , 26.001787664701] , [ 1235019600000 , 26.823501051723] , [ 1235106000000 , 26.267779023414] , [ 1235365200000 , 25.668870153301] , [ 1235451600000 , 26.775597084663] , [ 1235538000000 , 25.275682373883] , [ 1235624400000 , 24.818032360792] , [ 1235710800000 , 24.645579842038] , [ 1235970000000 , 19.620474811209] , [ 1236056400000 , 19.33780594747] , [ 1236142800000 , 20.440066303085] , [ 1236229200000 , 19.829317263913] , [ 1236315600000 , 21.415210658775] , [ 1236571200000 , 21.303851376023] , [ 1236657600000 , 19.864297629264] , [ 1236744000000 , 19.742427275066] , [ 1236830400000 , 21.828028325853] , [ 1236916800000 , 22.500437749723] , [ 1237176000000 , 22.302540792889] , [ 1237262400000 , 21.578233125833] , [ 1237348800000 , 20.314706697852] , [ 1237435200000 , 23.099506359262] , [ 1237521600000 , 21.604664867372] , [ 1237780800000 , 23.475786966577] , [ 1237867200000 , 24.193821943723] , [ 1237953600000 , 24.621593410665] , [ 1238040000000 , 26.260389324484] , [ 1238126400000 , 25.671214412778] , [ 1238385600000 , 25.619911577679] , [ 1238472000000 , 26.624467688263] , [ 1238558400000 , 25.913842497553] , [ 1238644800000 , 28.093070112629] , [ 1238731200000 , 27.994692201554] , [ 1238990400000 , 28.950646665392] , [ 1239076800000 , 28.086407604621] , [ 1239163200000 , 28.202869326475] , [ 1239249600000 , 28.432365962191] , [ 1239595200000 , 28.685344294338] , [ 1239681600000 , 28.410679589095] , [ 1239768000000 , 30.039209606373] , [ 1239854400000 , 29.688706833586] , [ 1239940800000 , 29.706077416411] , [ 1240200000000 , 30.240307995292] , [ 1240286400000 , 28.578706705541] , [ 1240372800000 , 29.096068525004] , [ 1240459200000 , 28.327577765114] , [ 1240545600000 , 26.466292647955] , [ 1240804800000 , 27.945309878163] , [ 1240891200000 , 28.251203544513] , [ 1240977600000 , 28.537588121271] , [ 1241064000000 , 28.656205597444] , [ 1241150400000 , 27.628665994293] , [ 1241409600000 , 26.623800410378] , [ 1241496000000 , 28.016342607653] , [ 1241582400000 , 28.988641572085] , [ 1241668800000 , 30.039982046018] , [ 1241755200000 , 28.434028256357] , [ 1242014400000 , 29.59225552833] , [ 1242100800000 , 27.785411138546] , [ 1242187200000 , 29.418424521603] , [ 1242273600000 , 30.636173934021] , [ 1242360000000 , 30.795827580262] , [ 1242619200000 , 28.177711133148] , [ 1242705600000 , 28.793529692606] , [ 1242792000000 , 27.376818367252] , [ 1242878400000 , 28.398443513777] , [ 1242964800000 , 27.845729112892] , [ 1243310400000 , 26.460688515913] , [ 1243396800000 , 26.854143707776] , [ 1243483200000 , 26.557808273823] , [ 1243569600000 , 26.684434779597] , [ 1243828800000 , 27.100068229825] , [ 1243915200000 , 28.226521744201] , [ 1244001600000 , 28.262916900497] , [ 1244088000000 , 27.664168471968] , [ 1244174400000 , 28.231769628935] , [ 1244433600000 , 28.238963490918] , [ 1244520000000 , 28.004078808844] , [ 1244606400000 , 28.071903331404] , [ 1244692800000 , 27.813249689294] , [ 1244779200000 , 28.492472877507] , [ 1245038400000 , 28.464916428286] , [ 1245124800000 , 28.614368981678] , [ 1245211200000 , 28.751436856064] , [ 1245297600000 , 28.839287109765] , [ 1245384000000 , 28.094781061945] , [ 1245643200000 , 26.991399319554] , [ 1245729600000 , 27.017618743579] , [ 1245816000000 , 27.611586538852] , [ 1245902400000 , 28.531369218994] , [ 1245988800000 , 28.174659628256] , [ 1246248000000 , 28.261484117477] , [ 1246334400000 , 29.378488292711] , [ 1246420800000 , 28.491081890381] , [ 1246507200000 , 26.635091892613] , [ 1246852800000 , 27.575195657508] , [ 1246939200000 , 25.903518055184] , [ 1247025600000 , 26.201180132958] , [ 1247112000000 , 25.99200938652] , [ 1247198400000 , 26.574062926405] , [ 1247457600000 , 27.923560133383] , [ 1247544000000 , 26.256367387531] , [ 1247630400000 , 29.160278680176] , [ 1247716800000 , 29.541387493221] , [ 1247803200000 , 28.244742675086] , [ 1248062400000 , 28.85146071325] , [ 1248148800000 , 29.098461226849] , [ 1248235200000 , 28.6595764147] , [ 1248321600000 , 28.822453436923] , [ 1248408000000 , 29.421334698504] , [ 1248667200000 , 29.584631868865] , [ 1248753600000 , 29.188658115312] , [ 1248840000000 , 29.104979516564] , [ 1248926400000 , 29.302745916854] , [ 1249012800000 , 30.019885466665] , [ 1249272000000 , 28.633967945525] , [ 1249358400000 , 31.637773688305] , [ 1249444800000 , 31.459872617638] , [ 1249531200000 , 31.29180205981] , [ 1249617600000 , 31.264415381862] , [ 1249876800000 , 31.001209816008] , [ 1249963200000 , 31.353357089508] , [ 1250049600000 , 31.513079769152] , [ 1250136000000 , 31.118737391028] , [ 1250222400000 , 31.163740753117] , [ 1250481600000 , 30.857579123642] , [ 1250568000000 , 30.660715942171] , [ 1250654400000 , 31.484636006781] , [ 1250740800000 , 31.576129669043] , [ 1250827200000 , 31.706973036288] , [ 1251086400000 , 31.690668563346] , [ 1251172800000 , 32.131611613695] , [ 1251259200000 , 31.524750801396] , [ 1251345600000 , 31.698631894692] , [ 1251432000000 , 31.475475399814] , [ 1251691200000 , 31.483997840346] , [ 1251777600000 , 30.858988668614] , [ 1251864000000 , 31.895989345579] , [ 1251950400000 , 31.776773377473] , [ 1252036800000 , 33.210317711836] , [ 1252382400000 , 33.066184557937] , [ 1252468800000 , 33.381672419564] , [ 1252555200000 , 33.84959123019] , [ 1252641600000 , 33.201501859076] , [ 1252900800000 , 33.438071806197] , [ 1252987200000 , 34.357609729756] , [ 1253073600000 , 35.004175998601] , [ 1253160000000 , 35.498577686823] , [ 1253246400000 , 35.11971724555] , [ 1253505600000 , 33.679035707771] , [ 1253592000000 , 33.962755107976] , [ 1253678400000 , 33.593891726317] , [ 1253764800000 , 33.73678055515] , [ 1253851200000 , 33.37567212126] , [ 1254110400000 , 33.554009104935] , [ 1254196800000 , 33.649684871815] , [ 1254283200000 , 30.147301414053] , [ 1254369600000 , 25.934243058138] , [ 1254456000000 , 26.209047889237] , [ 1254715200000 , 25.706355954648] , [ 1254801600000 , 27.563062457787] , [ 1254888000000 , 26.063430782934] , [ 1254974400000 , 26.39388289134] , [ 1255060800000 , 28.152935395273] , [ 1255320000000 , 28.282765303329] , [ 1255406400000 , 27.778999654842] , [ 1255492800000 , 28.144025202672] , [ 1255579200000 , 27.95103244924] , [ 1255665600000 , 28.798290929345] , [ 1255924800000 , 28.469183101046] , [ 1256011200000 , 26.42118964483] , [ 1256097600000 , 26.97121730656] , [ 1256184000000 , 26.834603326648] , [ 1256270400000 , 26.575321586635] , [ 1256529600000 , 25.840551079218] , [ 1256616000000 , 26.100881876267] , [ 1256702400000 , 25.707809071169] , [ 1256788800000 , 23.811145576094] , [ 1256875200000 , 25.697068771961] , [ 1257138000000 , 27.701413605445] , [ 1257224400000 , 27.662842444162] , [ 1257310800000 , 27.615553967098] , [ 1257397200000 , 29.311367772105] , [ 1257483600000 , 29.332672522399] , [ 1257742800000 , 29.834663545089] , [ 1257829200000 , 32.427305926641] , [ 1257915600000 , 29.983956251278] , [ 1258002000000 , 30.237206739217] , [ 1258088400000 , 34.436470446052] , [ 1258347600000 , 32.718941607834] , [ 1258434000000 , 32.835738339453] , [ 1258520400000 , 32.539205854498] , [ 1258606800000 , 33.050356677292] , [ 1258693200000 , 30.922974198726] , [ 1258952400000 , 30.993085634217] , [ 1259038800000 , 31.412334018492] , [ 1259125200000 , 31.537487526328] , [ 1259298000000 , 33.111900337051] , [ 1259557200000 , 33.13436824218] , [ 1259643600000 , 34.901027027741] , [ 1259730000000 , 34.865224206832] , [ 1259816400000 , 35.991408938557] , [ 1259902800000 , 35.631850898439] , [ 1260162000000 , 35.564889085754] , [ 1260248400000 , 35.495794223539] , [ 1260334800000 , 35.762274293506] , [ 1260421200000 , 35.390730795658] , [ 1260507600000 , 36.582357390584] , [ 1260766800000 , 36.013060621389] , [ 1260853200000 , 35.969740142244] , [ 1260939600000 , 36.307505038637] , [ 1261026000000 , 36.02536358376] , [ 1261112400000 , 36.466656441152] , [ 1261371600000 , 36.35420113605] , [ 1261458000000 , 35.827401428777] , [ 1261544400000 , 36.524433432014] , [ 1261630800000 , 36.206144531425] , [ 1261976400000 , 35.683275902136] , [ 1262062800000 , 36.072852867663] , [ 1262149200000 , 36.320255948353] , [ 1262235600000 , 33.435457056377] , [ 1262581200000 , 34.907530028007] , [ 1262667600000 , 35.365138953809] , [ 1262754000000 , 35.214913077417] , [ 1262840400000 , 36.013297405915] , [ 1262926800000 , 35.698281983951] , [ 1263186000000 , 36.351044274157] , [ 1263272400000 , 36.279449872408] , [ 1263358800000 , 36.470377514925] , [ 1263445200000 , 36.403986859445] , [ 1263531600000 , 36.712083494082] , [ 1263877200000 , 37.105685062809] , [ 1263963600000 , 37.571421578996] , [ 1264050000000 , 36.800346856747] , [ 1264136400000 , 36.600162906088] , [ 1264395600000 , 37.1176213738] , [ 1264482000000 , 36.714928550894] , [ 1264568400000 , 40.096454568442] , [ 1264654800000 , 36.160579119041] , [ 1264741200000 , 36.378595261955] , [ 1265000400000 , 38.30830922407] , [ 1265086800000 , 38.410788338653] , [ 1265173200000 , 38.114154823839] , [ 1265259600000 , 36.29629119399] , [ 1265346000000 , 36.972461459393] , [ 1265605200000 , 36.916176968829] , [ 1265691600000 , 37.859226521851] , [ 1265778000000 , 37.823180258657] , [ 1265864400000 , 38.370318510334] , [ 1265950800000 , 37.824219551091] , [ 1266296400000 , 37.908446034763] , [ 1266382800000 , 38.080488086584] , [ 1266469200000 , 38.22377537947] , [ 1266555600000 , 38.585808959558] , [ 1266814800000 , 38.4005951816] , [ 1266901200000 , 38.285575644728] , [ 1266987600000 , 35.790348744646] , [ 1267074000000 , 37.96859053117] , [ 1267160400000 , 37.740082932519] , [ 1267419600000 , 40.173788871749] , [ 1267506000000 , 38.013781049181] , [ 1267592400000 , 37.831792492987] , [ 1267678800000 , 38.624445440848] , [ 1267765200000 , 40.164448205377] , [ 1268024400000 , 39.993699476922] , [ 1268110800000 , 39.798437401604] , [ 1268197200000 , 40.097755586565] , [ 1268283600000 , 40.103417469112] , [ 1268370000000 , 39.863177414001] , [ 1268625600000 , 40.470443774091] , [ 1268712000000 , 43.79568503296] , [ 1268798400000 , 39.927130819992] , [ 1268884800000 , 43.907732146241] , [ 1268971200000 , 40.360534264835] , [ 1269230400000 , 43.693623379079] , [ 1269316800000 , 40.779403599522] , [ 1269403200000 , 40.945366282494] , [ 1269489600000 , 40.185643296942] , [ 1269576000000 , 40.790799253411] , [ 1269835200000 , 40.056421642469] , [ 1269921600000 , 40.231594390602] , [ 1270008000000 , 33.277843543055] , [ 1270094400000 , 31.095349397634] , [ 1270440000000 , 31.342909730238] , [ 1270526400000 , 31.448320158913] , [ 1270612800000 , 37.24566959702] , [ 1270699200000 , 30.952736606136] , [ 1270785600000 , 30.682580856701] , [ 1271044800000 , 30.923522289166] , [ 1271131200000 , 33.505663921683] , [ 1271217600000 , 34.270252302119] , [ 1271304000000 , 33.253887020523] , [ 1271390400000 , 34.341869018662] , [ 1271649600000 , 35.775793893406] , [ 1271736000000 , 34.511332548409] , [ 1271822400000 , 34.893409815552] , [ 1271908800000 , 37.514835192186] , [ 1271995200000 , 35.083876851145] , [ 1272254400000 , 35.380783302863] , [ 1272340800000 , 33.849259337893] , [ 1272427200000 , 33.865823717848] , [ 1272513600000 , 34.108342663063] , [ 1272600000000 , 31.000657427436] , [ 1272859200000 , 33.780954947041] , [ 1272945600000 , 28.968203310591] , [ 1273032000000 , 28.394287159406] , [ 1273118400000 , 29.807537899614] , [ 1273204800000 , 29.869231562726] , [ 1273464000000 , 31.378659542766] , [ 1273550400000 , 35.073190943946] , [ 1273636800000 , 33.761652254879] , [ 1273723200000 , 32.437230823903] , [ 1273809600000 , 34.293122964253] , [ 1274068800000 , 30.763269709765] , [ 1274155200000 , 34.507129451768] , [ 1274241600000 , 33.022172171191] , [ 1274328000000 , 30.201207614191] , [ 1274414400000 , 32.768071346365] , [ 1274673600000 , 30.694306725899] , [ 1274760000000 , 30.990054628062] , [ 1274846400000 , 30.369352971151] , [ 1274932800000 , 33.029423543515] , [ 1275019200000 , 31.661989239004] , [ 1275364800000 , 33.837400306477] , [ 1275451200000 , 34.057766642032] , [ 1275537600000 , 34.57383222484] , [ 1275624000000 , 34.188542244708] , [ 1275883200000 , 31.583078557024] , [ 1275969600000 , 30.955930714953] , [ 1276056000000 , 33.997163861054] , [ 1276142400000 , 33.587415751608] , [ 1276228800000 , 33.973725461298] , [ 1276488000000 , 33.662449513853] , [ 1276574400000 , 33.838575602223] , [ 1276660800000 , 34.108867579774] , [ 1276747200000 , 34.745503549485] , [ 1276833600000 , 35.08410642738] , [ 1277092800000 , 35.739596051654] , [ 1277179200000 , 34.949766813922] , [ 1277265600000 , 34.859655921177] , [ 1277352000000 , 34.363800898487] , [ 1277438400000 , 35.301331761941] , [ 1277697600000 , 34.026104763241] , [ 1277784000000 , 33.277683497305] , [ 1277870400000 , 31.750654488375] , [ 1277956800000 , 33.078878869453] , [ 1278043200000 , 36.304276877891] , [ 1278388800000 , 33.082680853865] , [ 1278475200000 , 33.223925715191] , [ 1278561600000 , 34.185935793846] , [ 1278648000000 , 34.148348905182] , [ 1278907200000 , 34.806569050501] , [ 1278993600000 , 33.12730640127] , [ 1279080000000 , 33.706174986492] , [ 1279166400000 , 34.928784921873] , [ 1279252800000 , 34.458765569389] , [ 1279512000000 , 34.059144916891] , [ 1279598400000 , 35.388592631488] , [ 1279684800000 , 33.253858431042] , [ 1279771200000 , 33.342174218917] , [ 1279857600000 , 34.993939726378] , [ 1280116800000 , 34.589106013143] , [ 1280203200000 , 35.165670564159] , [ 1280289600000 , 34.083051499201] , [ 1280376000000 , 36.259991728726] , [ 1280462400000 , 36.929407640376] , [ 1280721600000 , 36.138441527405] , [ 1280808000000 , 36.622046879936] , [ 1280894400000 , 36.531607452018] , [ 1280980800000 , 37.352734763354] , [ 1281067200000 , 36.561407857321] , [ 1281326400000 , 36.624433716888] , [ 1281412800000 , 36.879867076158] , [ 1281499200000 , 32.02015553142] , [ 1281585600000 , 31.992719243324] , [ 1281672000000 , 32.148641606816] , [ 1281931200000 , 33.003367519772] , [ 1282017600000 , 32.308588294911] , [ 1282104000000 , 36.52740247878] , [ 1282190400000 , 34.823914224432] , [ 1282276800000 , 35.284179669701] , [ 1282536000000 , 37.33386457907] , [ 1282622400000 , 37.011312920765] , [ 1282708800000 , 37.482519292702] , [ 1282795200000 , 37.21793966309] , [ 1282881600000 , 36.996733849199] , [ 1283140800000 , 36.479471629722] , [ 1283227200000 , 37.118646226498] , [ 1283313600000 , 34.141100541676] , [ 1283400000000 , 35.329393069044] , [ 1283486400000 , 35.174347212961] , [ 1283832000000 , 35.350859256073] , [ 1283918400000 , 34.889954470079] , [ 1284004800000 , 35.310559501858] , [ 1284091200000 , 35.016168537587] , [ 1284350400000 , 37.800281522275] , [ 1284436800000 , 38.084919146086] , [ 1284523200000 , 38.706035656266] , [ 1284609600000 , 37.410176834377] , [ 1284696000000 , 38.30940484949] , [ 1284955200000 , 38.006662172848] , [ 1285041600000 , 37.842503468038] , [ 1285128000000 , 35.016729658458] , [ 1285214400000 , 34.30026068685] , [ 1285300800000 , 39.128036349933] , [ 1285560000000 , 36.624248018346] , [ 1285646400000 , 39.526177860501] , [ 1285732800000 , 39.274607385689] , [ 1285819200000 , 35.64860868532] , [ 1285905600000 , 35.502171984277] , [ 1286164800000 , 35.507462432145] , [ 1286251200000 , 36.333250983552] , [ 1286337600000 , 39.375460507552] , [ 1286424000000 , 36.791682694467] , [ 1286510400000 , 36.436939194919] , [ 1286769600000 , 33.168861405363] , [ 1286856000000 , 35.126106671538] , [ 1286942400000 , 35.769492391214] , [ 1287028800000 , 34.781032342599] , [ 1287115200000 , 33.595984328638] , [ 1287374400000 , 36.620757294971] , [ 1287460800000 , 32.045463803646] , [ 1287547200000 , 33.352440318755] , [ 1287633600000 , 35.646957750992] , [ 1287720000000 , 36.188989253892] , [ 1287979200000 , 35.095040865863] , [ 1288065600000 , 35.29764383392] , [ 1288152000000 , 35.513587107451] , [ 1288238400000 , 35.166588228279] , [ 1288324800000 , 37.468941664393] , [ 1288584000000 , 37.018195313607] , [ 1288670400000 , 36.769837157924] , [ 1288756800000 , 36.621205716934] , [ 1288843200000 , 37.159399861398] , [ 1288929600000 , 36.868316796882] , [ 1289192400000 , 36.480989334529] , [ 1289278800000 , 36.326900851898] , [ 1289365200000 , 37.932312881325] , [ 1289451600000 , 34.96894496169] , [ 1289538000000 , 38.699835492325] , [ 1289797200000 , 37.029744279617] , [ 1289883600000 , 38.820204421394] , [ 1289970000000 , 38.298942228742] , [ 1290056400000 , 38.262425983355] , [ 1290142800000 , 38.386528810994] , [ 1290402000000 , 38.55883906089] , [ 1290488400000 , 36.540082307385] , [ 1290574800000 , 38.362048307576] , [ 1290747600000 , 38.350927160223] , [ 1291006800000 , 38.527978962647] , [ 1291093200000 , 37.651949459423] , [ 1291179600000 , 38.420457698632] , [ 1291266000000 , 38.646645266104] , [ 1291352400000 , 39.94133910387] , [ 1291611600000 , 39.774321274737] , [ 1291698000000 , 39.568429683539] , [ 1291784400000 , 37.962799739182] , [ 1291870800000 , 37.453389895533] , [ 1291957200000 , 39.20013427121] , [ 1292216400000 , 38.89687408421] , [ 1292302800000 , 39.027177838899] , [ 1292389200000 , 39.235547628996] , [ 1292475600000 , 38.697717239141] , [ 1292562000000 , 38.373248689446] , [ 1292821200000 , 38.428124471379] , [ 1292907600000 , 39.47894657379] , [ 1292994000000 , 39.949932386039] , [ 1293080400000 , 39.505445939108] , [ 1293426000000 , 39.347797168533] , [ 1293512400000 , 39.263075541409] , [ 1293598800000 , 38.898452232755] , [ 1293685200000 , 39.794265989297] , [ 1293771600000 , 36.459297978129] , [ 1294030800000 , 39.340954709459] , [ 1294117200000 , 39.842950846606] , [ 1294203600000 , 39.613143726892] , [ 1294290000000 , 37.45457593678] , [ 1294376400000 , 36.002625602579] , [ 1294635600000 , 37.769790889898] , [ 1294722000000 , 37.743948482854] , [ 1294808400000 , 37.373124527893] , [ 1294894800000 , 35.780001006905] , [ 1294981200000 , 38.593826569236] , [ 1295326800000 , 39.294319653796] , [ 1295413200000 , 35.749095334815] , [ 1295499600000 , 37.413295015199] , [ 1295586000000 , 32.274464409447] , [ 1295845200000 , 32.042931696741] , [ 1295931600000 , 30.136207894781] , [ 1296018000000 , 34.02849822859] , [ 1296104400000 , 35.200263238653] , [ 1296190800000 , 33.75017712943] , [ 1296450000000 , 33.680917154403] , [ 1296536400000 , 33.427662754804] , [ 1296622800000 , 33.898639304486] , [ 1296709200000 , 34.728626887791] , [ 1296795600000 , 35.476700429613] , [ 1297054800000 , 34.262398163765] , [ 1297141200000 , 36.895887296995] , [ 1297227600000 , 35.952386843097] , [ 1297314000000 , 36.291522875947] , [ 1297400400000 , 36.270637938443] , [ 1297659600000 , 36.983900637887] , [ 1297746000000 , 35.942649318742] , [ 1297832400000 , 36.979167437989] , [ 1297918800000 , 38.236849314059] , [ 1298005200000 , 38.767362822905] , [ 1298350800000 , 36.605615067091] , [ 1298437200000 , 35.392619732159] , [ 1298523600000 , 34.233297505701] , [ 1298610000000 , 37.328984263384] , [ 1298869200000 , 37.621664854417] , [ 1298955600000 , 34.671221034312] , [ 1299042000000 , 37.552906425447] , [ 1299128400000 , 34.92286739263] , [ 1299214800000 , 32.56669276663] , [ 1299474000000 , 35.582638804059] , [ 1299560400000 , 35.791012858369] , [ 1299646800000 , 34.548408656259] , [ 1299733200000 , 36.478929399863] , [ 1299819600000 , 36.05214073414] , [ 1300075200000 , 35.980489427851] , [ 1300161600000 , 34.436650239585] , [ 1300248000000 , 36.226495431029] , [ 1300334400000 , 36.997592388008] , [ 1300420800000 , 36.321917153819] , [ 1300680000000 , 38.675907276758] , [ 1300766400000 , 36.219542098038] , [ 1300852800000 , 36.107176745201] , [ 1300939200000 , 36.27800421437] , [ 1301025600000 , 38.445191941016] , [ 1301284800000 , 36.058904142005] , [ 1301371200000 , 36.219633719465] , [ 1301457600000 , 35.870886870251] , [ 1301544000000 , 38.768139162577] , [ 1301630400000 , 34.867996693624] , [ 1301889600000 , 34.963111948772] , [ 1301976000000 , 38.686748378841] , [ 1302062400000 , 37.157436301834] , [ 1302148800000 , 37.90750019482] , [ 1302235200000 , 37.750413181325] , [ 1302494400000 , 37.23279151134] , [ 1302580800000 , 37.600564524123] , [ 1302667200000 , 36.992749572144] , [ 1302753600000 , 36.958951280939] , [ 1302840000000 , 37.479040274722] , [ 1303099200000 , 37.227690423178] , [ 1303185600000 , 37.220808638183] , [ 1303272000000 , 37.764234413811] , [ 1303358400000 , 34.902790681371] , [ 1303704000000 , 34.442429723825] , [ 1303790400000 , 36.664125835231] , [ 1303876800000 , 36.843903427316] , [ 1303963200000 , 36.89956245277] , [ 1304049600000 , 36.653639634918] , [ 1304308800000 , 37.281585907609] , [ 1304395200000 , 34.636725000415] , [ 1304481600000 , 35.111898291533] , [ 1304568000000 , 34.781156562687] , [ 1304654400000 , 34.648338331251] , [ 1304913600000 , 35.739673412394] , [ 1305000000000 , 34.968753860628] , [ 1305086400000 , 35.103101819269] , [ 1305172800000 , 35.388825138354] , [ 1305259200000 , 35.924838674317] , [ 1305518400000 , 34.960820477813] , [ 1305604800000 , 35.973630460062] , [ 1305691200000 , 35.605308175872] , [ 1305777600000 , 37.326832495088] , [ 1305864000000 , 35.889418924143] , [ 1306123200000 , 33.772409521422] , [ 1306209600000 , 34.034402179435] , [ 1306296000000 , 34.200842801862] , [ 1306382400000 , 33.517540222228] , [ 1306468800000 , 36.080834718889] , [ 1306814400000 , 36.465426321256] , [ 1306900800000 , 34.284986433542] , [ 1306987200000 , 34.265134617523] , [ 1307073600000 , 31.028996466799] , [ 1307332800000 , 31.100272438022] , [ 1307419200000 , 30.98271252324] , [ 1307505600000 , 32.957358420477] , [ 1307592000000 , 33.450955741534] , [ 1307678400000 , 34.092762309181] , [ 1307937600000 , 33.081172510602] , [ 1308024000000 , 33.773710576316] , [ 1308110400000 , 33.352918553074] , [ 1308196800000 , 34.015653625477] , [ 1308283200000 , 34.098658792954] , [ 1308542400000 , 33.862591585449] , [ 1308628800000 , 33.97348315542] , [ 1308715200000 , 34.429517374157] , [ 1308801600000 , 34.780309630186] , [ 1308888000000 , 34.231861510064] , [ 1309147200000 , 34.271848439779] , [ 1309233600000 , 34.773956476095] , [ 1309320000000 , 34.821649169869] , [ 1309406400000 , 34.506886225694] , [ 1309492800000 , 33.838287727816] , [ 1309838400000 , 33.058587959516] , [ 1309924800000 , 32.252363370228] , [ 1310011200000 , 34.771520004843] , [ 1310097600000 , 34.905976942129] , [ 1310356800000 , 32.084820014206] , [ 1310443200000 , 31.704912418915] , [ 1310529600000 , 32.448402322535] , [ 1310616000000 , 31.814367556164] , [ 1310702400000 , 31.903271933748] , [ 1310961600000 , 31.835557009452] , [ 1311048000000 , 31.80167207967] , [ 1311134400000 , 32.124432743094] , [ 1311220800000 , 33.38145736179] , [ 1311307200000 , 36.3542103346] , [ 1311566400000 , 36.370937133799] , [ 1311652800000 , 35.40444968471] , [ 1311739200000 , 31.30918374243] , [ 1311825600000 , 31.911828812233] , [ 1311912000000 , 31.933635060916] , [ 1314763200000 , 27.912435953998] , [ 1314849600000 , 27.858955982669] , [ 1314936000000 , 27.590441027541] , [ 1315281600000 , 27.449908969165] , [ 1315368000000 , 28.308087342146] , [ 1315454400000 , 27.864007729814] , [ 1315540800000 , 26.51873970389] , [ 1315800000000 , 25.96088438347] , [ 1315886400000 , 26.445144064307] , [ 1315972800000 , 27.166840190276] , [ 1316059200000 , 27.763808275266] , [ 1316145600000 , 27.868825540656] , [ 1316404800000 , 27.849832930945] , [ 1316491200000 , 27.730622141967] , [ 1316577600000 , 27.021412493534] , [ 1316664000000 , 27.154094213807] , [ 1316750400000 , 27.173678817712] , [ 1317009600000 , 27.25265747808] , [ 1317096000000 , 28.111301933821] , [ 1317182400000 , 27.675088819395] , [ 1317268800000 , 27.397141576077] , [ 1317355200000 , 26.008946860927] , [ 1317614400000 , 22.784250299387] , [ 1317700800000 , 23.258283887907] , [ 1317787200000 , 23.52556109749] , [ 1317873600000 , 24.168011704327] , [ 1317960000000 , 24.189339650432] , [ 1318219200000 , 24.088437144876] , [ 1318305600000 , 25.309729214533] , [ 1318392000000 , 25.621696806823] , [ 1318478400000 , 25.803927533174] , [ 1318564800000 , 25.730135954474] , [ 1318824000000 , 25.232049798745] , [ 1318910400000 , 26.299088396713] , [ 1318996800000 , 26.081177597944] , [ 1319083200000 , 25.744660815696] , [ 1319169600000 , 26.110937113201] , [ 1319428800000 , 26.391894616565] , [ 1319515200000 , 26.163865846148] , [ 1319601600000 , 26.019077042899] , [ 1319688000000 , 25.701251097636] , [ 1319774400000 , 26.033219376512] , [ 1320033600000 , 26.769262371619] , [ 1320120000000 , 28.219781260132] , [ 1320206400000 , 27.875537960411] , [ 1320292800000 , 28.435734918914] , [ 1320379200000 , 28.37695006055] , [ 1320642000000 , 28.386347366617] , [ 1320728400000 , 27.050237610995] , [ 1320814800000 , 28.542924033334] , [ 1320901200000 , 28.707393530494] , [ 1320987600000 , 29.648112657972] , [ 1321246800000 , 29.322949475894] , [ 1321333200000 , 29.377122427588] , [ 1321419600000 , 29.378870071797] , [ 1321506000000 , 28.948532095807] , [ 1321592400000 , 28.595167739804] , [ 1321851600000 , 28.347855177473] , [ 1321938000000 , 28.499102610622] , [ 1322024400000 , 28.422468195549] , [ 1322197200000 , 27.332989897308] , [ 1322456400000 , 28.958514447523] , [ 1322542800000 , 28.890330016953] , [ 1322629200000 , 29.481947822086] , [ 1322715600000 , 27.991357150191] , [ 1322802000000 , 27.941868294165] , [ 1323061200000 , 27.843735865237] , [ 1323147600000 , 26.922176837905] , [ 1323234000000 , 27.015798100333] , [ 1323320400000 , 27.263209224338] , [ 1323406800000 , 26.456838737469] , [ 1323666000000 , 26.401042012447] , [ 1323752400000 , 27.877607635054] , [ 1323838800000 , 27.581039665227] , [ 1323925200000 , 27.2973685004] , [ 1324011600000 , 27.74230960503] , [ 1324270800000 , 27.044483722805] , [ 1324357200000 , 25.93184136956] , [ 1324443600000 , 25.944550738896] , [ 1324530000000 , 26.382111667947] , [ 1324616400000 , 26.049738307156] , [ 1324962000000 , 26.397301203399] , [ 1325048400000 , 26.63948360842] , [ 1325134800000 , 26.503400156535] , [ 1325221200000 , 26.663468520915] , [ 1325566800000 , 20.369010258412] , [ 1325653200000 , 20.535456446317] , [ 1325739600000 , 20.783522487651] , [ 1325826000000 , 20.828880975143] , [ 1326085200000 , 20.743505978852] , [ 1326171600000 , 20.735211928143] , [ 1326258000000 , 20.753245327163] , [ 1326344400000 , 20.467275522023] , [ 1326430800000 , 20.513692945667] , [ 1326776400000 , 20.016627674743] , [ 1326862800000 , 20.311380089956] , [ 1326949200000 , 20.222652145663] , [ 1327035600000 , 18.469927801759] , [ 1327294800000 , 19.107414066951] , [ 1327381200000 , 19.028981070925] , [ 1327467600000 , 18.778563163791] , [ 1327554000000 , 18.843778543884] , [ 1327640400000 , 18.682548355123] , [ 1327899600000 , 18.400166919043] , [ 1327986000000 , 18.846673505431] , [ 1328072400000 , 19.707548431719] , [ 1328158800000 , 22.398912563613] , [ 1328245200000 , 22.563238893325] , [ 1328504400000 , 22.610668580979] , [ 1328590800000 , 22.390423368718] , [ 1328677200000 , 22.235875064032] , [ 1328763600000 , 23.228409867673] , [ 1328850000000 , 23.21464697295] , [ 1329109200000 , 21.256839293262] , [ 1329195600000 , 20.664910881563] , [ 1329282000000 , 23.507289742819] , [ 1329368400000 , 24.54315363805] , [ 1329454800000 , 24.090256296906] , [ 1329800400000 , 21.691318895455] , [ 1329886800000 , 21.300766136539] , [ 1329973200000 , 23.806753141786] , [ 1330059600000 , 22.02174453369] , [ 1330318800000 , 21.488031757223] , [ 1330405200000 , 21.185090645418] , [ 1330491600000 , 21.58010592471] , [ 1330578000000 , 20.258305715091] , [ 1330664400000 , 21.519434160237] , [ 1330923600000 , 21.880533102984] , [ 1331010000000 , 20.969947806067] , [ 1331096400000 , 21.77473350985] , [ 1331182800000 , 21.975645206024] , [ 1331269200000 , 21.659450601544] , [ 1331524800000 , 21.662976187068] , [ 1331611200000 , 20.546200926164] , [ 1331697600000 , 20.61787210687] , [ 1331784000000 , 20.981141819687] , [ 1331870400000 , 20.663082211781] , [ 1332129600000 , 20.915730344473] , [ 1332216000000 , 22.469149441744] , [ 1332302400000 , 20.620749894381] , [ 1332388800000 , 22.60142430917] , [ 1332475200000 , 22.201982491098] , [ 1332734400000 , 21.316314091025] , [ 1332820800000 , 20.496107160055] , [ 1332907200000 , 23.047419596272] , [ 1332993600000 , 22.654311233235] , [ 1333080000000 , 22.337293872246] , [ 1333339200000 , 23.946414462189] , [ 1333425600000 , 24.110745120813] , [ 1333512000000 , 23.590861882963] , [ 1333598400000 , 24.008469053094] , [ 1333944000000 , 23.735343231837] , [ 1334030400000 , 23.619625149045] , [ 1334116800000 , 23.847128526228] , [ 1334203200000 , 23.78838862675] , [ 1334289600000 , 23.900353383736] , [ 1334548800000 , 23.915152008667] , [ 1334635200000 , 23.818198006008] , [ 1334721600000 , 23.526257232307] , [ 1334808000000 , 23.825136627851] , [ 1334894400000 , 23.302821257734] , [ 1335153600000 , 23.783869526542] , [ 1335240000000 , 23.346258102273] , [ 1335326400000 , 23.883709018548] , [ 1335412800000 , 23.912410151809] , [ 1335499200000 , 23.608353554272] , [ 1335758400000 , 24.194447998517]]} , { "key" : "Mid Cap (2B-10B)" , "stack" : true , "shadowSize" : 0 , "color" : undefined , "lines" : { "fillColor" : undefined , "fill" : 0.5} , "values" : [ [ 1028088000000 , 26.648084176456] , [ 1028174400000 , 27.116997639189] , [ 1028260800000 , 27.682143241035] , [ 1028520000000 , 26.328585368531] , [ 1028606400000 , 27.451781731008] , [ 1028692800000 , 27.791449536659] , [ 1028779200000 , 27.647810531415] , [ 1028865600000 , 27.293929716927] , [ 1029124800000 , 27.651424385712] , [ 1029211200000 , 27.500758469049] , [ 1029297600000 , 26.466118326218] , [ 1029384000000 , 26.8079657638] , [ 1029470400000 , 26.202008808647] , [ 1029729600000 , 26.713696625561] , [ 1029816000000 , 26.712230989619] , [ 1029902400000 , 26.468795174047] , [ 1029988800000 , 26.516121893956] , [ 1030075200000 , 26.677397544384] , [ 1030334400000 , 26.458336073512] , [ 1030420800000 , 25.977179609203] , [ 1030507200000 , 26.161302670868] , [ 1030593600000 , 26.34263386739] , [ 1030680000000 , 25.718024012525] , [ 1031025600000 , 23.775464963408] , [ 1031112000000 , 23.889025011022] , [ 1031198400000 , 24.244411278271] , [ 1031284800000 , 24.236379597202] , [ 1031544000000 , 24.22588790369] , [ 1031630400000 , 24.515838713928] , [ 1031716800000 , 24.471560922442] , [ 1031803200000 , 24.494192997962] , [ 1031889600000 , 24.80641477221] , [ 1032148800000 , 25.13558242538] , [ 1032235200000 , 24.484572575716] , [ 1032321600000 , 24.787900832005] , [ 1032408000000 , 25.285129032109] , [ 1032494400000 , 24.21347294449] , [ 1032753600000 , 24.865146573119] , [ 1032840000000 , 24.895949167994] , [ 1032926400000 , 24.958209375895] , [ 1033012800000 , 24.40791942302] , [ 1033099200000 , 25.142559133677] , [ 1033358400000 , 31.230536644411] , [ 1033444800000 , 34.819823542889] , [ 1033531200000 , 34.333179574062] , [ 1033617600000 , 34.287178467783] , [ 1033704000000 , 36.873290509507] , [ 1033963200000 , 36.4717458661] , [ 1034049600000 , 36.262591569296] , [ 1034136000000 , 33.596990605426] , [ 1034222400000 , 34.739643527467] , [ 1034308800000 , 32.339596477507] , [ 1034568000000 , 32.185294983191] , [ 1034654400000 , 33.972730532713] , [ 1034740800000 , 32.115162022095] , [ 1034827200000 , 32.400596436107] , [ 1034913600000 , 34.39888255219] , [ 1035172800000 , 33.050930329011] , [ 1035259200000 , 33.243540991604] , [ 1035345600000 , 32.976333744211] , [ 1035432000000 , 33.13705540888] , [ 1035518400000 , 33.066464705336] , [ 1035781200000 , 30.751761237254] , [ 1035867600000 , 31.861227321151] , [ 1035954000000 , 31.644607501683] , [ 1036040400000 , 31.608751708151] , [ 1036126800000 , 33.532061296005] , [ 1036386000000 , 34.313784800218] , [ 1036472400000 , 31.874903442376] , [ 1036558800000 , 31.487953307912] , [ 1036645200000 , 31.549115394091] , [ 1036731600000 , 30.813361822779] , [ 1036990800000 , 29.947268330276] , [ 1037077200000 , 30.15204955382] , [ 1037163600000 , 30.545466512856] , [ 1037250000000 , 31.77327516677] , [ 1037336400000 , 31.752640526411] , [ 1037595600000 , 32.067869084328] , [ 1037682000000 , 31.946289665113] , [ 1037768400000 , 31.961630315859] , [ 1037854800000 , 32.455658255339] , [ 1037941200000 , 31.743054374724] , [ 1038200400000 , 32.327086292595] , [ 1038286800000 , 31.611905457775] , [ 1038373200000 , 32.0401033911] , [ 1038546000000 , 34.312573492749] , [ 1038805200000 , 29.62506145048] , [ 1038891600000 , 30.820114674593] , [ 1038978000000 , 30.699362469023] , [ 1039064400000 , 31.016942747677] , [ 1039150800000 , 29.784105737093] , [ 1039410000000 , 30.519749816455] , [ 1039496400000 , 31.147399473958] , [ 1039582800000 , 30.991754253521] , [ 1039669200000 , 31.274414546895] , [ 1039755600000 , 31.07999080185] , [ 1040014800000 , 31.19747022074] , [ 1040101200000 , 31.285375875836] , [ 1040187600000 , 30.887184314729] , [ 1040274000000 , 31.02572697197] , [ 1040360400000 , 30.389838082036] , [ 1040619600000 , 31.187800382938] , [ 1040706000000 , 31.219064410391] , [ 1040878800000 , 30.660338576839] , [ 1040965200000 , 31.782094394828] , [ 1041224400000 , 30.936971432068] , [ 1041310800000 , 32.150719436859] , [ 1041483600000 , 30.857584476619] , [ 1041570000000 , 31.329013086037] , [ 1041829200000 , 33.174429000062] , [ 1041915600000 , 32.516126115097] , [ 1042002000000 , 32.686064630184] , [ 1042088400000 , 31.297729959223] , [ 1042174800000 , 31.036859651468] , [ 1042434000000 , 31.562287184568] , [ 1042520400000 , 30.143471997708] , [ 1042606800000 , 30.254564588906] , [ 1042693200000 , 30.759164657571] , [ 1042779600000 , 32.846416076492] , [ 1043125200000 , 31.631183165124] , [ 1043211600000 , 31.642036756637] , [ 1043298000000 , 31.487404360426] , [ 1043384400000 , 32.157831806068] , [ 1043643600000 , 32.50443310405] , [ 1043730000000 , 33.066167590052] , [ 1043816400000 , 31.6076586863] , [ 1043902800000 , 33.717637512362] , [ 1043989200000 , 31.736501562535] , [ 1044248400000 , 31.864178991732] , [ 1044334800000 , 34.281894385896] , [ 1044421200000 , 32.551421744888] , [ 1044507600000 , 32.05516769272] , [ 1044594000000 , 33.070048876623] , [ 1044853200000 , 31.68130841716] , [ 1044939600000 , 31.634300094534] , [ 1045026000000 , 31.919773482353] , [ 1045112400000 , 31.791489713631] , [ 1045198800000 , 32.03142652115] , [ 1045544400000 , 31.948871479026] , [ 1045630800000 , 31.521873577061] , [ 1045717200000 , 30.904427126658] , [ 1045803600000 , 30.359917173364] , [ 1046062800000 , 31.361922635464] , [ 1046149200000 , 32.001555939897] , [ 1046235600000 , 32.307245785873] , [ 1046322000000 , 30.558578011726] , [ 1046408400000 , 31.033106565683] , [ 1046667600000 , 29.924444910136] , [ 1046754000000 , 29.753177508224] , [ 1046840400000 , 28.940518203418] , [ 1046926800000 , 29.179481983546] , [ 1047013200000 , 29.784664914033] , [ 1047272400000 , 30.753658995783] , [ 1047358800000 , 30.81977861129] , [ 1047445200000 , 29.010312523714] , [ 1047531600000 , 28.943463420531] , [ 1047618000000 , 29.439647264104] , [ 1047877200000 , 29.439167569011] , [ 1047963600000 , 29.739061337633] , [ 1048050000000 , 29.863147322082] , [ 1048136400000 , 29.802951649361] , [ 1048222800000 , 27.675732943194] , [ 1048482000000 , 29.517204549119] , [ 1048568400000 , 29.546753778333] , [ 1048654800000 , 29.33010734911] , [ 1048741200000 , 29.156670464212] , [ 1048827600000 , 29.181366678824] , [ 1049086800000 , 26.538385206639] , [ 1049173200000 , 27.793228667297] , [ 1049259600000 , 27.740130623983] , [ 1049346000000 , 27.073742461823] , [ 1049432400000 , 27.708372088887] , [ 1049688000000 , 27.546409800404] , [ 1049774400000 , 27.109908989978] , [ 1049860800000 , 27.508892052309] , [ 1049947200000 , 27.573024766248] , [ 1050033600000 , 27.562904099803] , [ 1050292800000 , 27.883823957353] , [ 1050379200000 , 26.94243582592] , [ 1050465600000 , 27.30044036495] , [ 1050552000000 , 27.655953950572] , [ 1050897600000 , 28.132830532753] , [ 1050984000000 , 29.145011235441] , [ 1051070400000 , 29.130019130891] , [ 1051156800000 , 27.015243803643] , [ 1051243200000 , 26.934190127075] , [ 1051502400000 , 28.315003336058] , [ 1051588800000 , 28.810881493325] , [ 1051675200000 , 28.874221112727] , [ 1051761600000 , 28.711297712595] , [ 1051848000000 , 29.083225255704] , [ 1052107200000 , 26.320631467029] , [ 1052193600000 , 26.526521297556] , [ 1052280000000 , 24.322739229005] , [ 1052366400000 , 26.486448875014] , [ 1052452800000 , 26.972380031488] , [ 1052712000000 , 24.572217709244] , [ 1052798400000 , 24.051647354042] , [ 1052884800000 , 24.704515259426] , [ 1052971200000 , 24.802337151678] , [ 1053057600000 , 25.582272542621] , [ 1053316800000 , 24.312531647399] , [ 1053403200000 , 24.647022413273] , [ 1053489600000 , 23.790785115662] , [ 1053576000000 , 23.791637931508] , [ 1053662400000 , 24.014901742655] , [ 1054008000000 , 24.842987578224] , [ 1054094400000 , 24.972509328848] , [ 1054180800000 , 25.2052915838] , [ 1054267200000 , 26.15292802979] , [ 1054526400000 , 26.546745648802] , [ 1054612800000 , 25.763233542036] , [ 1054699200000 , 25.862864549934] , [ 1054785600000 , 27.299999516698] , [ 1054872000000 , 26.146104760761] , [ 1055131200000 , 26.038996269704] , [ 1055217600000 , 26.412318690367] , [ 1055304000000 , 27.33266075208] , [ 1055390400000 , 27.382021008308] , [ 1055476800000 , 27.31130922726] , [ 1055736000000 , 27.387763132386] , [ 1055822400000 , 27.164485352963] , [ 1055908800000 , 26.81380256074] , [ 1055995200000 , 27.098002966452] , [ 1056081600000 , 26.953852590721] , [ 1056340800000 , 27.999474337505] , [ 1056427200000 , 27.633585949698] , [ 1056513600000 , 26.105925993639] , [ 1056600000000 , 26.058206775338] , [ 1056686400000 , 26.020371871416] , [ 1056945600000 , 27.552446360948] , [ 1057032000000 , 28.042342288887] , [ 1057118400000 , 28.535637322137] , [ 1057204800000 , 27.815165463839] , [ 1057550400000 , 28.293810845449] , [ 1057636800000 , 28.690428979622] , [ 1057723200000 , 27.21316794978] , [ 1057809600000 , 28.388052532971] , [ 1057896000000 , 28.386478218302] , [ 1058155200000 , 28.513862181386] , [ 1058241600000 , 28.921923352876] , [ 1058328000000 , 28.445619931358] , [ 1058414400000 , 28.45776233459] , [ 1058500800000 , 28.493241492587] , [ 1058760000000 , 27.161566369607] , [ 1058846400000 , 27.845806722341] , [ 1058932800000 , 28.2333271465] , [ 1059019200000 , 28.335018123813] , [ 1059105600000 , 28.480536520454] , [ 1059364800000 , 27.792426576494] , [ 1059451200000 , 28.643490353063] , [ 1059537600000 , 27.998590255814] , [ 1059624000000 , 28.307138125836] , [ 1059710400000 , 28.489281688192] , [ 1059969600000 , 28.044634410417] , [ 1060056000000 , 27.020593958804] , [ 1060142400000 , 29.024222641301] , [ 1060228800000 , 26.036740734775] , [ 1060315200000 , 25.532181247911] , [ 1060574400000 , 25.645288355925] , [ 1060660800000 , 25.584847141052] , [ 1060747200000 , 25.942202403911] , [ 1060833600000 , 26.037906674446] , [ 1060920000000 , 26.044720884667] , [ 1061179200000 , 27.122254948494] , [ 1061265600000 , 25.827274343473] , [ 1061352000000 , 26.367693760724] , [ 1061438400000 , 25.998713594962] , [ 1061524800000 , 25.870535462403] , [ 1061784000000 , 26.150778762061] , [ 1061870400000 , 26.085352003286] , [ 1061956800000 , 25.675758155341] , [ 1062043200000 , 26.913635716641] , [ 1062129600000 , 27.430709689662] , [ 1062475200000 , 26.836649211344] , [ 1062561600000 , 27.003749563166] , [ 1062648000000 , 26.700136753919] , [ 1062734400000 , 26.503633048643] , [ 1062993600000 , 26.519318552404] , [ 1063080000000 , 27.285791831463] , [ 1063166400000 , 26.56305235234] , [ 1063252800000 , 26.1211074658] , [ 1063339200000 , 26.701814569981] , [ 1063598400000 , 26.392227803794] , [ 1063684800000 , 26.463534553542] , [ 1063771200000 , 26.780820975165] , [ 1063857600000 , 26.453794119195] , [ 1063944000000 , 27.190797475635] , [ 1064203200000 , 26.536715823385] , [ 1064289600000 , 26.711951315753] , [ 1064376000000 , 24.939511077055] , [ 1064462400000 , 27.667788937619] , [ 1064548800000 , 27.72901664558] , [ 1064808000000 , 26.281401578938] , [ 1064894400000 , 20.702580373982] , [ 1064980800000 , 20.841885584242] , [ 1065067200000 , 21.260031120312] , [ 1065153600000 , 21.358844449436] , [ 1065412800000 , 21.55964477357] , [ 1065499200000 , 22.004611721363] , [ 1065585600000 , 22.876683783608] , [ 1065672000000 , 22.647462885851] , [ 1065758400000 , 22.930614232732] , [ 1066017600000 , 21.843025326727] , [ 1066104000000 , 21.386322937833] , [ 1066190400000 , 21.614282293797] , [ 1066276800000 , 21.275818295071] , [ 1066363200000 , 21.459743238568] , [ 1066622400000 , 22.173684640338] , [ 1066708800000 , 22.401746834289] , [ 1066795200000 , 22.437817143687] , [ 1066881600000 , 22.106579104852] , [ 1066968000000 , 22.55318869793] , [ 1067230800000 , 22.417348405754] , [ 1067317200000 , 24.338272474386] , [ 1067403600000 , 23.882781220497] , [ 1067490000000 , 24.350055143818] , [ 1067576400000 , 24.256623353787] , [ 1067835600000 , 23.430771613568] , [ 1067922000000 , 23.43425345774] , [ 1068008400000 , 23.488064824779] , [ 1068094800000 , 23.813639817594] , [ 1068181200000 , 24.089718459028] , [ 1068440400000 , 23.217253153951] , [ 1068526800000 , 23.128853965563] , [ 1068613200000 , 21.229600372837] , [ 1068699600000 , 21.702481673977] , [ 1068786000000 , 22.746321941367] , [ 1069045200000 , 22.603454460411] , [ 1069131600000 , 22.682972242364] , [ 1069218000000 , 22.560376930243] , [ 1069304400000 , 22.788902916352] , [ 1069390800000 , 23.007106428771] , [ 1069650000000 , 21.199579855833] , [ 1069736400000 , 19.883676019205] , [ 1069822800000 , 20.506726149966] , [ 1069995600000 , 20.480467772447] , [ 1070254800000 , 21.298549366564] , [ 1070341200000 , 21.522901636605] , [ 1070427600000 , 20.974323682087] , [ 1070514000000 , 20.610493547569] , [ 1070600400000 , 21.071833789601] , [ 1070859600000 , 20.65853211585] , [ 1070946000000 , 22.641747961132] , [ 1071032400000 , 22.761492869515] , [ 1071118800000 , 22.638825596471] , [ 1071205200000 , 22.628354730159] , [ 1071464400000 , 22.830598061484] , [ 1071550800000 , 21.981392329159] , [ 1071637200000 , 22.287526572018] , [ 1071723600000 , 20.435466158113] , [ 1071810000000 , 22.135877815707] , [ 1072069200000 , 20.641908166412] , [ 1072155600000 , 20.604041757621] , [ 1072242000000 , 20.482513717754] , [ 1072414800000 , 20.859034129798] , [ 1072674000000 , 20.821456194651] , [ 1072760400000 , 20.767946553306] , [ 1072846800000 , 21.512414318535] , [ 1073019600000 , 21.815071893188] , [ 1073278800000 , 22.57027016871] , [ 1073365200000 , 22.362924996309] , [ 1073451600000 , 23.112960982896] , [ 1073538000000 , 23.183160792627] , [ 1073624400000 , 22.762724376465] , [ 1073883600000 , 23.130840901013] , [ 1073970000000 , 22.736456202276] , [ 1074056400000 , 23.323176939802] , [ 1074142800000 , 23.491149448881] , [ 1074229200000 , 23.632601297431] , [ 1074574800000 , 23.596027440961] , [ 1074661200000 , 23.730507370484] , [ 1074747600000 , 23.731539839131] , [ 1074834000000 , 23.670710782986] , [ 1075093200000 , 23.711864028891] , [ 1075179600000 , 23.710536645288] , [ 1075266000000 , 23.422349765442] , [ 1075352400000 , 22.897866978853] , [ 1075438800000 , 23.59903446311] , [ 1075698000000 , 24.304597455649] , [ 1075784400000 , 24.530581915524] , [ 1075870800000 , 24.666816160857] , [ 1075957200000 , 24.3699656412] , [ 1076043600000 , 24.718383579187] , [ 1076302800000 , 24.435361394139] , [ 1076389200000 , 24.716746266706] , [ 1076475600000 , 24.703215277236] , [ 1076562000000 , 24.462111914705] , [ 1076648400000 , 24.517491525145] , [ 1076994000000 , 24.65285871564] , [ 1077080400000 , 24.536403534258] , [ 1077166800000 , 23.441101800032] , [ 1077253200000 , 23.292247202584] , [ 1077512400000 , 24.673949618453] , [ 1077598800000 , 23.982506533513] , [ 1077685200000 , 24.563555008109] , [ 1077771600000 , 24.842379416268] , [ 1077858000000 , 24.598095251264] , [ 1078117200000 , 25.169288052086] , [ 1078203600000 , 23.873252187745] , [ 1078290000000 , 23.752511055326] , [ 1078376400000 , 23.298036944926] , [ 1078462800000 , 23.581947969401] , [ 1078722000000 , 23.53180827683] , [ 1078808400000 , 23.366844938769] , [ 1078894800000 , 24.353234002561] , [ 1078981200000 , 24.45805021653] , [ 1079067600000 , 24.279776894705] , [ 1079326800000 , 24.546012368839] , [ 1079413200000 , 24.484539293696] , [ 1079499600000 , 24.639325428832] , [ 1079586000000 , 22.205228203619] , [ 1079672400000 , 24.13905314141] , [ 1079931600000 , 21.943259105263] , [ 1080018000000 , 23.859385198169] , [ 1080104400000 , 24.409155043097] , [ 1080190800000 , 22.206410046771] , [ 1080277200000 , 22.242610418717] , [ 1080536400000 , 22.271628713517] , [ 1080622800000 , 22.120605105342] , [ 1080709200000 , 20.422027455951] , [ 1080795600000 , 20.602019095325] , [ 1080882000000 , 20.351415999528] , [ 1081137600000 , 20.546189995804] , [ 1081224000000 , 20.839378775748] , [ 1081310400000 , 21.529862280853] , [ 1081396800000 , 20.640624506057] , [ 1081742400000 , 20.716224328592] , [ 1081828800000 , 20.306236152751] , [ 1081915200000 , 20.773071221448] , [ 1082001600000 , 20.430042140281] , [ 1082088000000 , 20.542455723128] , [ 1082347200000 , 20.519223045686] , [ 1082433600000 , 20.64121284046] , [ 1082520000000 , 20.795652975678] , [ 1082606400000 , 20.793362696806] , [ 1082692800000 , 20.655652288275] , [ 1082952000000 , 20.614304378368] , [ 1083038400000 , 21.540868061704] , [ 1083124800000 , 21.100087713507] , [ 1083211200000 , 21.706861416669] , [ 1083297600000 , 21.821943169274] , [ 1083556800000 , 22.219548134081] , [ 1083643200000 , 22.076399309175] , [ 1083729600000 , 22.273179568579] , [ 1083816000000 , 22.175618380383] , [ 1083902400000 , 22.48996404722] , [ 1084161600000 , 21.664419955681] , [ 1084248000000 , 21.706310443164] , [ 1084334400000 , 23.698514687206] , [ 1084420800000 , 23.155670723188] , [ 1084507200000 , 22.719400449948] , [ 1084766400000 , 22.701867709153] , [ 1084852800000 , 20.915448504352] , [ 1084939200000 , 21.841096759482] , [ 1085025600000 , 21.153589250298] , [ 1085112000000 , 21.848744488386] , [ 1085371200000 , 21.981167694465] , [ 1085457600000 , 22.351726653608] , [ 1085544000000 , 21.989843194271] , [ 1085630400000 , 21.863944994199] , [ 1085716800000 , 21.992763926844] , [ 1086062400000 , 22.015250077718] , [ 1086148800000 , 21.611987080217] , [ 1086235200000 , 21.788359777903] , [ 1086321600000 , 21.865326769938] , [ 1086580800000 , 22.169677747023] , [ 1086667200000 , 22.255792326642] , [ 1086753600000 , 21.815057760968] , [ 1086840000000 , 22.079460749227] , [ 1087185600000 , 21.718833087059] , [ 1087272000000 , 22.054574375237] , [ 1087358400000 , 22.077928074568] , [ 1087444800000 , 20.286091937413] , [ 1087531200000 , 19.961563180367] , [ 1087790400000 , 20.142341027021] , [ 1087876800000 , 20.480696517221] , [ 1087963200000 , 19.568662720709] , [ 1088049600000 , 19.938945601387] , [ 1088136000000 , 19.15896941301] , [ 1088395200000 , 19.359487306427] , [ 1088481600000 , 18.342316846577] , [ 1088568000000 , 20.269511969126] , [ 1088654400000 , 19.853264793737] , [ 1088740800000 , 19.681572657923] , [ 1089086400000 , 19.511709418823] , [ 1089172800000 , 20.466949099506] , [ 1089259200000 , 21.997027219347] , [ 1089345600000 , 21.866188592113] , [ 1089604800000 , 21.777774027231] , [ 1089691200000 , 19.974660010341] , [ 1089777600000 , 20.262276003674] , [ 1089864000000 , 20.000610531766] , [ 1089950400000 , 19.521022147143] , [ 1090209600000 , 19.63746824233] , [ 1090296000000 , 20.511108907082] , [ 1090382400000 , 19.622834697758] , [ 1090468800000 , 20.440082709942] , [ 1090555200000 , 20.309018221836] , [ 1090814400000 , 19.31915943842] , [ 1090900800000 , 19.987560974175] , [ 1090987200000 , 18.383361565925] , [ 1091073600000 , 18.649058503758] , [ 1091160000000 , 18.521598662065] , [ 1091419200000 , 21.508218211147] , [ 1091505600000 , 21.421423610955] , [ 1091592000000 , 20.937252485663] , [ 1091678400000 , 20.55942501228] , [ 1091764800000 , 21.492327213057] , [ 1092024000000 , 20.428889988927] , [ 1092110400000 , 20.208000809495] , [ 1092196800000 , 21.073081835022] , [ 1092283200000 , 20.516709647732] , [ 1092369600000 , 20.494092920092] , [ 1092628800000 , 20.594653940425] , [ 1092715200000 , 21.981492718129] , [ 1092801600000 , 22.263197716196] , [ 1092888000000 , 21.913232408644] , [ 1092974400000 , 22.327152260303] , [ 1093233600000 , 21.823160490922] , [ 1093320000000 , 21.974020889413] , [ 1093406400000 , 20.969139180401] , [ 1093492800000 , 20.700113185983] , [ 1093579200000 , 20.995130774321] , [ 1093838400000 , 20.777557031366] , [ 1093924800000 , 21.338984500788] , [ 1094011200000 , 20.943168738285] , [ 1094097600000 , 20.387547324159] , [ 1094184000000 , 19.90447909376] , [ 1094529600000 , 20.410382693655] , [ 1094616000000 , 21.044187342993] , [ 1094702400000 , 20.916719632161] , [ 1094788800000 , 21.087327989672] , [ 1095048000000 , 21.535574000586] , [ 1095134400000 , 21.350278335134] , [ 1095220800000 , 19.259910059761] , [ 1095307200000 , 19.157055297116] , [ 1095393600000 , 18.55929133156] , [ 1095652800000 , 19.541945777775] , [ 1095739200000 , 19.571330603031] , [ 1095825600000 , 20.055020386358] , [ 1095912000000 , 20.370836828915] , [ 1095998400000 , 20.217795317429] , [ 1096257600000 , 20.237567086164] , [ 1096344000000 , 20.252663243133] , [ 1096430400000 , 20.554487157796] , [ 1096516800000 , 23.551279458767] , [ 1096603200000 , 23.976684313083] , [ 1096862400000 , 23.994067797713] , [ 1096948800000 , 23.847100999095] , [ 1097035200000 , 22.618851476996] , [ 1097121600000 , 21.918401702113] , [ 1097208000000 , 22.820396271098] , [ 1097467200000 , 22.405577488046] , [ 1097553600000 , 22.589819485406] , [ 1097640000000 , 22.562492142783] , [ 1097726400000 , 22.257761745121] , [ 1097812800000 , 22.753995001525] , [ 1098072000000 , 22.253093413163] , [ 1098158400000 , 22.669396781078] , [ 1098244800000 , 23.145817485586] , [ 1098331200000 , 22.806172342982] , [ 1098417600000 , 22.982721082827] , [ 1098676800000 , 23.188065641347] , [ 1098763200000 , 23.240765686738] , [ 1098849600000 , 22.304383206889] , [ 1098936000000 , 22.387804835083] , [ 1099022400000 , 23.997242736394] , [ 1099285200000 , 23.460596038298] , [ 1099371600000 , 23.382857460859] , [ 1099458000000 , 21.362278361628] , [ 1099544400000 , 21.143413395171] , [ 1099630800000 , 22.804629852184] , [ 1099890000000 , 22.753114153754] , [ 1099976400000 , 22.308729960497] , [ 1100062800000 , 22.272746270522] , [ 1100149200000 , 22.783245203563] , [ 1100235600000 , 22.775890353402] , [ 1100494800000 , 23.185607588444] , [ 1100581200000 , 21.82940204288] , [ 1100667600000 , 22.502820291752] , [ 1100754000000 , 22.379850354445] , [ 1100840400000 , 22.110429953837] , [ 1101099600000 , 22.361674556137] , [ 1101186000000 , 22.524275023246] , [ 1101272400000 , 21.900581820709] , [ 1101445200000 , 22.207349930847] , [ 1101704400000 , 21.881549405226] , [ 1101790800000 , 21.957633120137] , [ 1101877200000 , 22.17044864181] , [ 1101963600000 , 22.367574253815] , [ 1102050000000 , 22.951463592937] , [ 1102309200000 , 22.625931538911] , [ 1102395600000 , 22.103955906661] , [ 1102482000000 , 22.477792270248] , [ 1102568400000 , 22.720055377838] , [ 1102654800000 , 22.224601841384] , [ 1102914000000 , 22.177799754552] , [ 1103000400000 , 22.244472319539] , [ 1103086800000 , 21.896264211113] , [ 1103173200000 , 22.123605635153] , [ 1103259600000 , 22.89824049466] , [ 1103518800000 , 22.769850681045] , [ 1103605200000 , 23.101152533444] , [ 1103691600000 , 23.2474702024] , [ 1103778000000 , 23.353202546032] , [ 1104123600000 , 23.428164773161] , [ 1104210000000 , 23.761469178488] , [ 1104296400000 , 23.811970227979] , [ 1104382800000 , 22.053645988557] , [ 1104469200000 , 23.837387874446] , [ 1104728400000 , 22.788311956343] , [ 1104814800000 , 21.807013473423] , [ 1104901200000 , 23.986372267338] , [ 1104987600000 , 23.976865205686] , [ 1105074000000 , 23.903509394576] , [ 1105333200000 , 22.97018705308] , [ 1105419600000 , 23.039731567803] , [ 1105506000000 , 23.659672985194] , [ 1105592400000 , 23.099645411716] , [ 1105678800000 , 22.537574705101] , [ 1106024400000 , 22.870818294533] , [ 1106110800000 , 24.197816964489] , [ 1106197200000 , 23.92017568689] , [ 1106283600000 , 24.066318801579] , [ 1106542800000 , 23.690023027687] , [ 1106629200000 , 23.596535406577] , [ 1106715600000 , 23.69520786371] , [ 1106802000000 , 24.084768548503] , [ 1106888400000 , 23.472591746154] , [ 1107147600000 , 22.546788621649] , [ 1107234000000 , 23.258045524898] , [ 1107320400000 , 23.216119162924] , [ 1107406800000 , 22.562228457933] , [ 1107493200000 , 22.363221625111] , [ 1107752400000 , 22.135666602378] , [ 1107838800000 , 22.220582004241] , [ 1107925200000 , 22.34963059199] , [ 1108011600000 , 22.872322857378] , [ 1108098000000 , 23.437452894462] , [ 1108357200000 , 22.12470095394] , [ 1108443600000 , 22.231211800286] , [ 1108530000000 , 21.7623736718] , [ 1108616400000 , 22.678095212729] , [ 1108702800000 , 22.96419372684] , [ 1109048400000 , 25.194184014782] , [ 1109134800000 , 23.132155670989] , [ 1109221200000 , 23.32188574281] , [ 1109307600000 , 23.116590039209] , [ 1109566800000 , 22.941121998064] , [ 1109653200000 , 21.518588948441] , [ 1109739600000 , 22.036821237653] , [ 1109826000000 , 21.983362614837] , [ 1109912400000 , 22.64515258502] , [ 1110171600000 , 22.658965476441] , [ 1110258000000 , 22.336282873465] , [ 1110344400000 , 22.388967594312] , [ 1110430800000 , 22.81179971949] , [ 1110517200000 , 22.784722730406] , [ 1110776400000 , 22.260745763138] , [ 1110862800000 , 21.192545888542] , [ 1110949200000 , 21.513100107271] , [ 1111035600000 , 21.287356305789] , [ 1111122000000 , 21.737978227449] , [ 1111381200000 , 21.292088037944] , [ 1111467600000 , 21.822512541657] , [ 1111554000000 , 20.593097352624] , [ 1111640400000 , 21.347244824426] , [ 1111986000000 , 21.292296795504] , [ 1112072400000 , 20.933943553941] , [ 1112158800000 , 20.830648761139] , [ 1112245200000 , 20.008554354127] , [ 1112331600000 , 19.92222915956] , [ 1112587200000 , 19.651651647091] , [ 1112673600000 , 20.120343420289] , [ 1112760000000 , 19.777429658139] , [ 1112846400000 , 20.278760776431] , [ 1112932800000 , 19.852527364032] , [ 1113192000000 , 19.839957016294] , [ 1113278400000 , 20.060937152412] , [ 1113364800000 , 20.06798565859] , [ 1113451200000 , 19.739108617765] , [ 1113537600000 , 23.788284066979] , [ 1113796800000 , 22.566198442222] , [ 1113883200000 , 22.971099000729] , [ 1113969600000 , 23.069732791997] , [ 1114056000000 , 20.74096636037] , [ 1114142400000 , 22.809896306774] , [ 1114401600000 , 20.731529875719] , [ 1114488000000 , 22.882080877214] , [ 1114574400000 , 22.517347154116] , [ 1114660800000 , 23.411749917799] , [ 1114747200000 , 23.179090395579] , [ 1115006400000 , 23.557588377455] , [ 1115092800000 , 23.886047322364] , [ 1115179200000 , 23.949310371861] , [ 1115265600000 , 24.780835951678] , [ 1115352000000 , 23.849139180298] , [ 1115611200000 , 24.148953841482] , [ 1115697600000 , 24.329921634899] , [ 1115784000000 , 23.811114041933] , [ 1115870400000 , 23.788434616607] , [ 1115956800000 , 23.637715949708] , [ 1116216000000 , 23.64119689408] , [ 1116302400000 , 23.317120748076] , [ 1116388800000 , 23.812467556809] , [ 1116475200000 , 23.982405110173] , [ 1116561600000 , 24.18195432891] , [ 1116820800000 , 24.391170829899] , [ 1116907200000 , 23.841528877118] , [ 1116993600000 , 24.077109245959] , [ 1117080000000 , 22.201608086741] , [ 1117166400000 , 22.504790286828] , [ 1117512000000 , 22.630013569882] , [ 1117598400000 , 23.404504964627] , [ 1117684800000 , 23.085126228411] , [ 1117771200000 , 23.248690401656] , [ 1118030400000 , 23.256393641191] , [ 1118116800000 , 22.992919096426] , [ 1118203200000 , 23.191344100376] , [ 1118289600000 , 23.450139310017] , [ 1118376000000 , 23.324442615572] , [ 1118635200000 , 22.692106000531] , [ 1118721600000 , 21.957901717703] , [ 1118808000000 , 22.147872546362] , [ 1118894400000 , 21.79469943148] , [ 1118980800000 , 22.451958641293] , [ 1119240000000 , 22.350189888996] , [ 1119326400000 , 22.631704280603] , [ 1119412800000 , 22.427528094471] , [ 1119499200000 , 23.893835996089] , [ 1119585600000 , 23.988748698062] , [ 1119844800000 , 23.642649928892] , [ 1119931200000 , 24.068830987644] , [ 1120017600000 , 22.56720246359] , [ 1120104000000 , 24.99546628123] , [ 1120190400000 , 25.432726047103] , [ 1120536000000 , 24.43938948648] , [ 1120622400000 , 24.405779589083] , [ 1120708800000 , 24.111011393052] , [ 1120795200000 , 24.922837089358] , [ 1121054400000 , 24.927636707745] , [ 1121140800000 , 25.057917770825] , [ 1121227200000 , 24.937420101241] , [ 1121313600000 , 24.347875097745] , [ 1121400000000 , 24.574171592274] , [ 1121659200000 , 25.126013408294] , [ 1121745600000 , 25.072686421877] , [ 1121832000000 , 25.260821456271] , [ 1121918400000 , 25.596953542222] , [ 1122004800000 , 25.400792209182] , [ 1122264000000 , 24.666446433239] , [ 1122350400000 , 24.295277154765] , [ 1122436800000 , 25.089285481028] , [ 1122523200000 , 24.646806032674] , [ 1122609600000 , 24.356572428261] , [ 1122868800000 , 24.960683351891] , [ 1122955200000 , 25.549325757663] , [ 1123041600000 , 24.857664787272] , [ 1123128000000 , 25.150041173383] , [ 1123214400000 , 24.995124853776] , [ 1123473600000 , 24.990431320091] , [ 1123560000000 , 24.921532875771] , [ 1123646400000 , 25.362268036527] , [ 1123732800000 , 25.476200567557] , [ 1123819200000 , 25.244869684751] , [ 1124078400000 , 24.603016226183] , [ 1124164800000 , 23.704556481194] , [ 1124251200000 , 23.930714530168] , [ 1124337600000 , 23.702280717649] , [ 1124424000000 , 23.705926771363] , [ 1124683200000 , 23.745261019884] , [ 1124769600000 , 23.867675301904] , [ 1124856000000 , 24.480843532077] , [ 1124942400000 , 24.312361431187] , [ 1125028800000 , 24.488714153619] , [ 1125288000000 , 24.629809223467] , [ 1125374400000 , 24.47746750507] , [ 1125460800000 , 24.755638469166] , [ 1125547200000 , 25.427672976097] , [ 1125633600000 , 25.566055004721] , [ 1125979200000 , 25.676251654072] , [ 1126065600000 , 25.476497276393] , [ 1126152000000 , 26.017560468242] , [ 1126238400000 , 25.936127483998] , [ 1126497600000 , 26.059067318757] , [ 1126584000000 , 26.284790827713] , [ 1126670400000 , 26.097946527127] , [ 1126756800000 , 25.680994571817] , [ 1126843200000 , 25.219982882669] , [ 1127102400000 , 25.55341971956] , [ 1127188800000 , 25.95323179712] , [ 1127275200000 , 25.855639605436] , [ 1127361600000 , 25.302671014838] , [ 1127448000000 , 24.782969567936] , [ 1127707200000 , 24.485978295222] , [ 1127793600000 , 24.664161317193] , [ 1127880000000 , 24.922683972665] , [ 1127966400000 , 25.469475014745] , [ 1128052800000 , 31.832884219976] , [ 1128312000000 , 32.00422580579] , [ 1128398400000 , 31.012733149942] , [ 1128484800000 , 32.033755296739] , [ 1128571200000 , 32.226636515833] , [ 1128657600000 , 31.652895338555] , [ 1128916800000 , 31.825012326964] , [ 1129003200000 , 31.003476019696] , [ 1129089600000 , 31.314384992653] , [ 1129176000000 , 31.341523171026] , [ 1129262400000 , 31.784200797751] , [ 1129521600000 , 31.669952219428] , [ 1129608000000 , 31.347254597222] , [ 1129694400000 , 12.206145055635] , [ 1129780800000 , 31.473510862669] , [ 1129867200000 , 31.747099002924] , [ 1130126400000 , 31.240274960436] , [ 1130212800000 , 31.64073694867] , [ 1130299200000 , 30.801027283176] , [ 1130385600000 , 30.796451968504] , [ 1130472000000 , 31.172932024164] , [ 1130734800000 , 30.647152131554] , [ 1130821200000 , 32.072706192157] , [ 1130907600000 , 31.739864656074] , [ 1130994000000 , 32.036063794022] , [ 1131080400000 , 31.611909237799] , [ 1131339600000 , 31.733674153563] , [ 1131426000000 , 31.732636705805] , [ 1131512400000 , 32.415362885413] , [ 1131598800000 , 32.278446544564] , [ 1131685200000 , 31.097010842233] , [ 1131944400000 , 30.99444301525] , [ 1132030800000 , 31.710452266737] , [ 1132117200000 , 32.48348819077] , [ 1132203600000 , 32.073362093399] , [ 1132290000000 , 33.313418034733] , [ 1132549200000 , 31.961243771265] , [ 1132635600000 , 31.562791158413] , [ 1132722000000 , 31.53021860319] , [ 1132894800000 , 34.624189379868] , [ 1133154000000 , 32.084379040372] , [ 1133240400000 , 31.9765423891] , [ 1133326800000 , 31.984162231546] , [ 1133413200000 , 32.152674569961] , [ 1133499600000 , 31.778285608807] , [ 1133758800000 , 29.121258778258] , [ 1133845200000 , 29.311834594144] , [ 1133931600000 , 29.650199558715] , [ 1134018000000 , 29.092234692016] , [ 1134104400000 , 29.800109677029] , [ 1134363600000 , 32.085120881319] , [ 1134450000000 , 32.248988955359] , [ 1134536400000 , 30.256165327387] , [ 1134622800000 , 30.608185174303] , [ 1134709200000 , 30.412991147462] , [ 1134968400000 , 30.248358312013] , [ 1135054800000 , 29.912369358773] , [ 1135141200000 , 33.551554121293] , [ 1135227600000 , 33.533186466516] , [ 1135314000000 , 33.091647974802] , [ 1135659600000 , 33.264255806196] , [ 1135746000000 , 33.003638760148] , [ 1135832400000 , 32.514283805821] , [ 1135918800000 , 33.337098779692] , [ 1136264400000 , 25.529659425176] , [ 1136350800000 , 25.253503759086] , [ 1136437200000 , 25.667680592413] , [ 1136523600000 , 24.610404212038] , [ 1136782800000 , 24.461908447457] , [ 1136869200000 , 25.437119226817] , [ 1136955600000 , 24.943578431236] , [ 1137042000000 , 25.274617951881] , [ 1137128400000 , 25.84747162676] , [ 1137474000000 , 26.075536395048] , [ 1137560400000 , 26.708344152786] , [ 1137646800000 , 25.383003293955] , [ 1137733200000 , 25.217383650095] , [ 1137992400000 , 25.353115329768] , [ 1138078800000 , 24.954360264848] , [ 1138165200000 , 28.654765223046] , [ 1138251600000 , 28.302769507639] , [ 1138338000000 , 28.373032404194] , [ 1138597200000 , 28.163052677131] , [ 1138683600000 , 28.727503894285] , [ 1138770000000 , 28.027756157079] , [ 1138856400000 , 27.361031538257] , [ 1138942800000 , 27.402647471714] , [ 1139202000000 , 28.044230467152] , [ 1139288400000 , 28.476547862179] , [ 1139374800000 , 28.050624829875] , [ 1139461200000 , 27.915505499367] , [ 1139547600000 , 28.08611170798] , [ 1139806800000 , 28.97859125833] , [ 1139893200000 , 28.104813549959] , [ 1139979600000 , 28.240980412935] , [ 1140066000000 , 27.743968162571] , [ 1140152400000 , 27.558960443884] , [ 1140498000000 , 27.536228528067] , [ 1140584400000 , 27.500557062883] , [ 1140670800000 , 27.692039081654] , [ 1140757200000 , 27.490318497037] , [ 1141016400000 , 28.829156436114] , [ 1141102800000 , 28.450987148788] , [ 1141189200000 , 40.300330617069] , [ 1141275600000 , 41.570351501256] , [ 1141362000000 , 41.667844279089] , [ 1141621200000 , 41.607343966493] , [ 1141707600000 , 41.36959508335] , [ 1141794000000 , 41.232428456817] , [ 1141880400000 , 41.750224269446] , [ 1141966800000 , 40.821963504302] , [ 1142226000000 , 41.578527293958] , [ 1142312400000 , 41.902604471024] , [ 1142398800000 , 41.149491513676] , [ 1142485200000 , 41.175604953961] , [ 1142571600000 , 41.163121565507] , [ 1142830800000 , 40.016639353266] , [ 1142917200000 , 39.659732705306] , [ 1143003600000 , 39.584676122637] , [ 1143090000000 , 40.025666971014] , [ 1143176400000 , 39.723854886209] , [ 1143435600000 , 39.014198466242] , [ 1143522000000 , 39.025897365059] , [ 1143608400000 , 39.078011489583] , [ 1143694800000 , 39.194042018535] , [ 1143781200000 , 25.076401031907] , [ 1144036800000 , 24.749688897839] , [ 1144123200000 , 25.106301697735] , [ 1144209600000 , 25.719552294762] , [ 1144296000000 , 24.4332655269] , [ 1144382400000 , 24.362292535219] , [ 1144641600000 , 24.443115329917] , [ 1144728000000 , 24.629965330443] , [ 1144814400000 , 25.053676431536] , [ 1144900800000 , 25.553338423704] , [ 1145246400000 , 24.63853864188] , [ 1145332800000 , 24.640317578802] , [ 1145419200000 , 24.389045546756] , [ 1145505600000 , 24.264180514695] , [ 1145592000000 , 23.981966140907] , [ 1145851200000 , 23.869146013505] , [ 1145937600000 , 24.612899719958] , [ 1146024000000 , 24.553311510502] , [ 1146110400000 , 24.67686844737] , [ 1146196800000 , 24.042753146623] , [ 1146456000000 , 24.140870164853] , [ 1146542400000 , 24.381493813662] , [ 1146628800000 , 24.029031908064] , [ 1146715200000 , 21.242925011363] , [ 1146801600000 , 20.769286660932] , [ 1147060800000 , 21.141317449459] , [ 1147147200000 , 21.388633580721] , [ 1147233600000 , 20.953082345138] , [ 1147320000000 , 20.532372329159] , [ 1147406400000 , 24.303360340406] , [ 1147665600000 , 23.590839359023] , [ 1147752000000 , 23.266631012228] , [ 1147838400000 , 25.052914966934] , [ 1147924800000 , 25.043763466197] , [ 1148011200000 , 24.548527215889] , [ 1148270400000 , 24.722438408718] , [ 1148356800000 , 25.214561242106] , [ 1148443200000 , 25.634570272733] , [ 1148529600000 , 25.647165201314] , [ 1148616000000 , 25.753544167487] , [ 1148961600000 , 25.149343939348] , [ 1149048000000 , 26.854823654435] , [ 1149134400000 , 25.548585529681] , [ 1149220800000 , 26.37727083555] , [ 1149480000000 , 25.389475260201] , [ 1149566400000 , 25.396658724273] , [ 1149652800000 , 25.711045371603] , [ 1149739200000 , 26.090075952526] , [ 1149825600000 , 26.589623865854] , [ 1150084800000 , 26.478750357401] , [ 1150171200000 , 25.351679222087] , [ 1150257600000 , 26.270230537869] , [ 1150344000000 , 25.138486136012] , [ 1150430400000 , 24.912864147208] , [ 1150689600000 , 25.523276597347] , [ 1150776000000 , 25.713521178723] , [ 1150862400000 , 26.257170836193] , [ 1150948800000 , 25.997310717022] , [ 1151035200000 , 26.119086003937] , [ 1151294400000 , 26.635920589546] , [ 1151380800000 , 26.343811385476] , [ 1151467200000 , 28.124388937732] , [ 1151553600000 , 24.54731119523] , [ 1151640000000 , 31.188966156912] , [ 1151899200000 , 29.870847723237] , [ 1152072000000 , 30.688002142576] , [ 1152158400000 , 30.089827158124] , [ 1152244800000 , 31.940772585486] , [ 1152504000000 , 31.067183284601] , [ 1152590400000 , 30.924800755736] , [ 1152676800000 , 30.517136007625] , [ 1152763200000 , 31.787393493891] , [ 1152849600000 , 31.082509618961] , [ 1153108800000 , 30.894305465166] , [ 1153195200000 , 32.120863042337] , [ 1153281600000 , 31.044346734038] , [ 1153368000000 , 30.098909312396] , [ 1153454400000 , 29.530331064084] , [ 1153713600000 , 28.423433483104] , [ 1153800000000 , 29.927942135835] , [ 1153886400000 , 29.181454968641] , [ 1153972800000 , 29.333248943938] , [ 1154059200000 , 29.559442703965] , [ 1154318400000 , 30.196607322138] , [ 1154404800000 , 29.625024735712] , [ 1154491200000 , 27.025970259666] , [ 1154577600000 , 27.71523462955] , [ 1154664000000 , 28.475970074465] , [ 1154923200000 , 27.73275118605] , [ 1155009600000 , 27.531596294285] , [ 1155096000000 , 29.816437315313] , [ 1155182400000 , 31.132297764831] , [ 1155268800000 , 31.350609485479] , [ 1155528000000 , 27.4077255939] , [ 1155614400000 , 27.931060121498] , [ 1155700800000 , 27.153432710451] , [ 1155787200000 , 27.847180254777] , [ 1155873600000 , 28.115236062259] , [ 1156132800000 , 28.209521551488] , [ 1156219200000 , 27.740032215693] , [ 1156305600000 , 27.437705732559] , [ 1156392000000 , 28.080651949224] , [ 1156478400000 , 29.158903990658] , [ 1156737600000 , 26.443946908233] , [ 1156824000000 , 28.149285812323] , [ 1156910400000 , 27.606935897643] , [ 1156996800000 , 27.786851201179] , [ 1157083200000 , 27.816421928501] , [ 1157428800000 , 27.757031714495] , [ 1157515200000 , 28.109812831149] , [ 1157601600000 , 27.382887724883] , [ 1157688000000 , 27.566393964837] , [ 1157947200000 , 28.072202886242] , [ 1158033600000 , 28.339210638333] , [ 1158120000000 , 28.983363567898] , [ 1158206400000 , 28.89373971057] , [ 1158292800000 , 28.546073874183] , [ 1158552000000 , 28.569922456167] , [ 1158638400000 , 28.644564841401] , [ 1158724800000 , 29.104118011521] , [ 1158811200000 , 29.171264058902] , [ 1158897600000 , 29.174695431197] , [ 1159156800000 , 29.25146248404] , [ 1159243200000 , 29.067493265373] , [ 1159329600000 , 29.059576307809] , [ 1159416000000 , 28.792094037666] , [ 1159502400000 , 29.229903262633] , [ 1159761600000 , 29.173839342765] , [ 1159848000000 , 28.680751891991] , [ 1159934400000 , 28.844412842115] , [ 1160020800000 , 29.717735595983] , [ 1160107200000 , 29.065357982652] , [ 1160366400000 , 29.577703181664] , [ 1160452800000 , 29.388141928462] , [ 1160539200000 , 29.284519652691] , [ 1160625600000 , 29.696862390098] , [ 1160712000000 , 29.583788241009] , [ 1160971200000 , 29.717277671825] , [ 1161057600000 , 29.536517521229] , [ 1161144000000 , 30.19209470063] , [ 1161230400000 , 29.803516341494] , [ 1161316800000 , 29.762858883805] , [ 1161576000000 , 29.260692035145] , [ 1161662400000 , 28.041800630607] , [ 1161748800000 , 28.001322530788] , [ 1161835200000 , 29.254151703765] , [ 1161921600000 , 27.893380179947] , [ 1162184400000 , 28.181879353232] , [ 1162270800000 , 28.145746547181] , [ 1162357200000 , 26.2789492637] , [ 1162443600000 , 26.90231173776] , [ 1162530000000 , 26.990105956138] , [ 1162789200000 , 27.680080084703] , [ 1162875600000 , 27.564432414629] , [ 1162962000000 , 27.493107356522] , [ 1163048400000 , 27.312773824962] , [ 1163134800000 , 27.761758486306] , [ 1163394000000 , 27.537409566329] , [ 1163480400000 , 27.853753536227] , [ 1163566800000 , 27.756253824375] , [ 1163653200000 , 28.962247984012] , [ 1163739600000 , 28.365638597882] , [ 1163998800000 , 28.694093331648] , [ 1164085200000 , 29.005490800096] , [ 1164171600000 , 27.258444065642] , [ 1164344400000 , 27.61692867307] , [ 1164603600000 , 29.041615736671] , [ 1164690000000 , 29.083811356802] , [ 1164776400000 , 29.008208834138] , [ 1164862800000 , 29.285436799647] , [ 1164949200000 , 34.334496624946] , [ 1165208400000 , 32.525292751798] , [ 1165294800000 , 32.307919819272] , [ 1165381200000 , 33.373924998648] , [ 1165467600000 , 33.214072787246] , [ 1165554000000 , 32.855444052619] , [ 1165813200000 , 34.53339325839] , [ 1165899600000 , 34.518937401575] , [ 1165986000000 , 34.942214683629] , [ 1166072400000 , 32.587850416525] , [ 1166158800000 , 32.527715490379] , [ 1166418000000 , 34.364809359385] , [ 1166504400000 , 34.080545916718] , [ 1166590800000 , 34.132689605003] , [ 1166677200000 , 34.104872054323] , [ 1166763600000 , 34.323743744102] , [ 1167109200000 , 33.288380326408] , [ 1167195600000 , 34.547323073306] , [ 1167282000000 , 34.375993716023] , [ 1167368400000 , 34.050945370284] , [ 1167800400000 , 25.300692903932] , [ 1167886800000 , 25.222332899762] , [ 1167973200000 , 27.024130105771] , [ 1168232400000 , 25.2456813145] , [ 1168318800000 , 25.834632954173] , [ 1168405200000 , 25.145041463704] , [ 1168491600000 , 26.584700412957] , [ 1168578000000 , 25.847099393884] , [ 1168923600000 , 25.652151040168] , [ 1169010000000 , 25.98052974905] , [ 1169096400000 , 25.859471726107] , [ 1169182800000 , 25.077212570734] , [ 1169442000000 , 25.323172947985] , [ 1169528400000 , 25.112175095146] , [ 1169614800000 , 25.942935948696] , [ 1169701200000 , 25.395097212615] , [ 1169787600000 , 25.16933592015] , [ 1170046800000 , 25.830394390937] , [ 1170133200000 , 25.513593223622] , [ 1170219600000 , 24.36581957911] , [ 1170306000000 , 24.456646643567] , [ 1170392400000 , 24.353004508071] , [ 1170651600000 , 22.706362948211] , [ 1170738000000 , 23.773316862991] , [ 1170824400000 , 22.892314073756] , [ 1170910800000 , 23.196287432699] , [ 1170997200000 , 24.526622778603] , [ 1171256400000 , 24.444750736559] , [ 1171342800000 , 24.623535287714] , [ 1171429200000 , 23.162087403845] , [ 1171515600000 , 25.037171796906] , [ 1171602000000 , 24.350139194933] , [ 1171947600000 , 23.502911364689] , [ 1172034000000 , 23.498823181114] , [ 1172120400000 , 23.139200796032] , [ 1172206800000 , 23.742291144652] , [ 1172466000000 , 25.624758081908] , [ 1172552400000 , 24.938301474516] , [ 1172638800000 , 25.571487238295] , [ 1172725200000 , 26.527063964553] , [ 1172811600000 , 26.417975909576] , [ 1173070800000 , 26.604582192924] , [ 1173157200000 , 25.763880949593] , [ 1173243600000 , 26.420420419826] , [ 1173330000000 , 26.448933993474] , [ 1173416400000 , 27.086053003351] , [ 1173672000000 , 27.027855747942] , [ 1173758400000 , 26.990659332641] , [ 1173844800000 , 26.578320688861] , [ 1173931200000 , 26.264159657991] , [ 1174017600000 , 27.486827217766] , [ 1174276800000 , 26.259290279331] , [ 1174363200000 , 27.293928165415] , [ 1174449600000 , 27.289500680669] , [ 1174536000000 , 26.917511516188] , [ 1174622400000 , 27.545192210159] , [ 1174881600000 , 27.058783534804] , [ 1174968000000 , 28.012170827958] , [ 1175054400000 , 27.48009491153] , [ 1175140800000 , 27.130732208653] , [ 1175227200000 , 27.049918571206] , [ 1175486400000 , 17.880664598206] , [ 1175572800000 , 17.807265334563] , [ 1175659200000 , 18.202972493437] , [ 1175745600000 , 17.912649698382] , [ 1176091200000 , 17.425481268074] , [ 1176177600000 , 18.545703458137] , [ 1176264000000 , 18.613881634277] , [ 1176350400000 , 17.631685554022] , [ 1176436800000 , 17.45831457802] , [ 1176696000000 , 16.807197325678] , [ 1176782400000 , 17.537415957704] , [ 1176868800000 , 16.270090560045] , [ 1176955200000 , 15.763310958999] , [ 1177041600000 , 15.919034050236] , [ 1177300800000 , 16.037756370013] , [ 1177387200000 , 16.085193876186] , [ 1177473600000 , 14.73789421724] , [ 1177560000000 , 16.075537623262] , [ 1177646400000 , 16.136388846327] , [ 1177905600000 , 16.81063338022] , [ 1177992000000 , 16.52223459424] , [ 1178078400000 , 16.050019538099] , [ 1178164800000 , 15.637926079902] , [ 1178251200000 , 15.964954913544] , [ 1178510400000 , 16.084019150017] , [ 1178596800000 , 16.115193599934] , [ 1178683200000 , 15.29906479463] , [ 1178769600000 , 16.050303123855] , [ 1178856000000 , 15.942177052932] , [ 1179115200000 , 16.327320739846] , [ 1179201600000 , 16.567169050276] , [ 1179288000000 , 15.954884692567] , [ 1179374400000 , 15.520555372537] , [ 1179460800000 , 15.803063683541] , [ 1179720000000 , 16.058907858598] , [ 1179806400000 , 15.775392434141] , [ 1179892800000 , 15.492710738811] , [ 1179979200000 , 15.807487747828] , [ 1180065600000 , 16.460167833334] , [ 1180411200000 , 15.931278835494] , [ 1180497600000 , 15.766953824648] , [ 1180584000000 , 12.215920390306] , [ 1180670400000 , 13.383466763969] , [ 1180929600000 , 13.778081042623] , [ 1181016000000 , 13.511027657834] , [ 1181102400000 , 13.566850289866] , [ 1181188800000 , 14.212420857751] , [ 1181275200000 , 16.681046149104] , [ 1181534400000 , 17.357965625952] , [ 1181620800000 , 17.364397335248] , [ 1181707200000 , 14.113600508738] , [ 1181793600000 , 14.418535873185] , [ 1181880000000 , 14.222936582899] , [ 1182139200000 , 14.341331170428] , [ 1182225600000 , 14.700447213771] , [ 1182312000000 , 17.246935746763] , [ 1182398400000 , 14.434458966372] , [ 1182484800000 , 16.942892233606] , [ 1182744000000 , 14.302972963496] , [ 1182830400000 , 17.496053460551] , [ 1182916800000 , 17.007178523808] , [ 1183003200000 , 17.1173497837] , [ 1183089600000 , 14.738100031861] , [ 1183348800000 , 23.381360028949] , [ 1183435200000 , 23.583171411876] , [ 1183608000000 , 21.189576571504] , [ 1183694400000 , 21.379542195365] , [ 1183953600000 , 24.193565504788] , [ 1184040000000 , 23.892984361498] , [ 1184126400000 , 23.557482166335] , [ 1184212800000 , 21.398391535786] , [ 1184299200000 , 21.000192621393] , [ 1184558400000 , 21.443443411203] , [ 1184644800000 , 20.87909268732] , [ 1184731200000 , 21.106341299711] , [ 1184817600000 , 21.678832875153] , [ 1184904000000 , 21.099485258524] , [ 1185163200000 , 20.53180730183] , [ 1185249600000 , 22.753865952858] , [ 1185336000000 , 23.036155771385] , [ 1185422400000 , 22.436927650804] , [ 1185508800000 , 23.629713342946] , [ 1185768000000 , 22.973439437844] , [ 1185854400000 , 24.011681875779] , [ 1185940800000 , 23.293907291742] , [ 1186027200000 , 23.221742080601] , [ 1186113600000 , 23.136600304113] , [ 1186372800000 , 23.403613308236] , [ 1186459200000 , 24.15550391201] , [ 1186545600000 , 23.382840976484] , [ 1186632000000 , 23.569117139983] , [ 1186718400000 , 23.110364403669] , [ 1186977600000 , 22.768508508377] , [ 1187064000000 , 22.746873596873] , [ 1187150400000 , 21.912550360806] , [ 1187236800000 , 23.111375981008] , [ 1187323200000 , 22.154240319281] , [ 1187582400000 , 22.452724069829] , [ 1187668800000 , 22.971202842449] , [ 1187755200000 , 23.044703450178] , [ 1187841600000 , 22.932286638476] , [ 1187928000000 , 23.128465099576] , [ 1188187200000 , 23.053430107617] , [ 1188273600000 , 23.399278657702] , [ 1188360000000 , 22.855290558568] , [ 1188446400000 , 23.023778923147] , [ 1188532800000 , 23.30642985164] , [ 1188878400000 , 24.100190753625] , [ 1188964800000 , 23.496410386678] , [ 1189051200000 , 23.164863339011] , [ 1189137600000 , 22.984547839469] , [ 1189396800000 , 23.586261681658] , [ 1189483200000 , 23.879509037795] , [ 1189569600000 , 23.970799057706] , [ 1189656000000 , 24.203453000763] , [ 1189742400000 , 24.147554781255] , [ 1190001600000 , 23.727724576032] , [ 1190088000000 , 24.121007821814] , [ 1190174400000 , 23.547385976413] , [ 1190260800000 , 23.891283879089] , [ 1190347200000 , 24.274320682809] , [ 1190606400000 , 23.539795550406] , [ 1190692800000 , 24.124440766278] , [ 1190779200000 , 24.069128212927] , [ 1190865600000 , 23.730046995653] , [ 1190952000000 , 24.12189164708] , [ 1191211200000 , 21.828756161412] , [ 1191297600000 , 21.598908720664] , [ 1191384000000 , 22.198066739307] , [ 1191470400000 , 21.828974377747] , [ 1191556800000 , 21.865331328546] , [ 1191816000000 , 20.146481329684] , [ 1191902400000 , 22.038963127424] , [ 1191988800000 , 22.193420310202] , [ 1192075200000 , 21.902764731066] , [ 1192161600000 , 19.031850812838] , [ 1192420800000 , 22.145901417428] , [ 1192507200000 , 21.730226173364] , [ 1192593600000 , 18.717647311262] , [ 1192680000000 , 18.755527112944] , [ 1192766400000 , 18.609066458058] , [ 1193025600000 , 17.944501591207] , [ 1193112000000 , 18.274551837267] , [ 1193198400000 , 20.113228789742] , [ 1193284800000 , 22.781013325441] , [ 1193371200000 , 22.589161863023] , [ 1193630400000 , 17.461728207277] , [ 1193716800000 , 17.66706415891] , [ 1193803200000 , 17.958751721512] , [ 1193889600000 , 16.785791840302] , [ 1193976000000 , 16.757702111569] , [ 1194238800000 , 18.93409532988] , [ 1194325200000 , 19.534095495152] , [ 1194411600000 , 17.171260260302] , [ 1194498000000 , 17.736480941713] , [ 1194584400000 , 17.95514343952] , [ 1194843600000 , 16.76664120096] , [ 1194930000000 , 19.514289594417] , [ 1195016400000 , 17.907346110061] , [ 1195102800000 , 18.887036074517] , [ 1195189200000 , 18.085290433046] , [ 1195448400000 , 20.215750560331] , [ 1195534800000 , 19.728281124118] , [ 1195621200000 , 20.013901927158] , [ 1195794000000 , 20.425307638534] , [ 1196053200000 , 20.12299964298] , [ 1196139600000 , 20.615959531752] , [ 1196226000000 , 21.157573604935] , [ 1196312400000 , 21.227579026087] , [ 1196398800000 , 21.063013137686] , [ 1196658000000 , 18.952569130832] , [ 1196744400000 , 17.835169748773] , [ 1196830800000 , 18.689749074265] , [ 1196917200000 , 19.241256266257] , [ 1197003600000 , 16.106201143] , [ 1197262800000 , 18.739634285662] , [ 1197349200000 , 17.033992438966] , [ 1197435600000 , 17.526984276377] , [ 1197522000000 , 18.474421634711] , [ 1197608400000 , 18.943045807971] , [ 1197867600000 , 18.8357354204] , [ 1197954000000 , 14.317066323396] , [ 1198040400000 , 15.328387808528] , [ 1198126800000 , 15.4591742668] , [ 1198213200000 , 14.971952807451] , [ 1198472400000 , 14.486078605624] , [ 1198645200000 , 15.093829891606] , [ 1198731600000 , 14.89944253928] , [ 1198818000000 , 14.953095657488] , [ 1199077200000 , 21.14224717447] , [ 1199250000000 , 22.163125599573] , [ 1199336400000 , 25.580649670689] , [ 1199422800000 , 26.550304750539] , [ 1199682000000 , 24.92178160634] , [ 1199768400000 , 26.480917610196] , [ 1199854800000 , 26.415499888108] , [ 1199941200000 , 25.798528581908] , [ 1200027600000 , 25.968596406516] , [ 1200286800000 , 26.628155151879] , [ 1200373200000 , 26.572268363594] , [ 1200459600000 , 26.964587445107] , [ 1200546000000 , 26.021720676336] , [ 1200632400000 , 25.219318556176] , [ 1200978000000 , 25.08904004204] , [ 1201064400000 , 25.436698688495] , [ 1201150800000 , 25.705583393763] , [ 1201237200000 , 24.708314196768] , [ 1201496400000 , 25.275322535728] , [ 1201582800000 , 25.013340149085] , [ 1201669200000 , 26.087180427196] , [ 1201755600000 , 25.596819481677] , [ 1201842000000 , 27.031794299842] , [ 1202101200000 , 26.116692862418] , [ 1202187600000 , 26.18876081094] , [ 1202274000000 , 26.805914582556] , [ 1202360400000 , 26.305228563756] , [ 1202446800000 , 26.162145456199] , [ 1202706000000 , 26.078668866288] , [ 1202792400000 , 24.496696009333] , [ 1202878800000 , 24.333591780266] , [ 1202965200000 , 25.365600329799] , [ 1203051600000 , 25.073445357545] , [ 1203397200000 , 23.72831122047] , [ 1203483600000 , 22.506572846112] , [ 1203570000000 , 24.021331332996] , [ 1203656400000 , 23.66509718916] , [ 1203915600000 , 24.425976963638] , [ 1204002000000 , 24.8174208102] , [ 1204088400000 , 23.926217363698] , [ 1204174800000 , 23.12804880749] , [ 1204261200000 , 23.065751947087] , [ 1204520400000 , 22.796843375225] , [ 1204606800000 , 24.777178076373] , [ 1204693200000 , 23.972553369429] , [ 1204779600000 , 24.748169690011] , [ 1204866000000 , 24.546520937818] , [ 1205121600000 , 24.531054748032] , [ 1205208000000 , 25.050634385202] , [ 1205294400000 , 23.712509030237] , [ 1205380800000 , 22.791099148642] , [ 1205467200000 , 25.133010110595] , [ 1205726400000 , 25.729774893726] , [ 1205812800000 , 23.964300656032] , [ 1205899200000 , 24.830611435159] , [ 1205985600000 , 24.625872764332] , [ 1206331200000 , 24.167428696816] , [ 1206417600000 , 23.96580861882] , [ 1206504000000 , 23.710994480839] , [ 1206590400000 , 24.071307185252] , [ 1206676800000 , 25.578134721546] , [ 1206936000000 , 24.004366210672] , [ 1207022400000 , 23.748819146736] , [ 1207108800000 , 23.419450880062] , [ 1207195200000 , 23.977383718976] , [ 1207281600000 , 24.079681731569] , [ 1207540800000 , 23.289855010864] , [ 1207627200000 , 23.410998821727] , [ 1207713600000 , 23.516469881517] , [ 1207800000000 , 23.338729362027] , [ 1207886400000 , 23.255513637852] , [ 1208145600000 , 24.048754022449] , [ 1208232000000 , 24.082829261378] , [ 1208318400000 , 23.970518901665] , [ 1208404800000 , 24.005293898633] , [ 1208491200000 , 23.473203816222] , [ 1208750400000 , 23.533677351106] , [ 1208836800000 , 23.377124698615] , [ 1208923200000 , 23.620869290172] , [ 1209009600000 , 23.74664341712] , [ 1209096000000 , 24.310388759454] , [ 1209355200000 , 24.64043664586] , [ 1209441600000 , 24.196923166095] , [ 1209528000000 , 24.213728155036] , [ 1209614400000 , 23.92191244331] , [ 1209700800000 , 23.431732325766] , [ 1209960000000 , 23.778340073822] , [ 1210046400000 , 21.78167300827] , [ 1210132800000 , 23.022281575534] , [ 1210219200000 , 23.048837276234] , [ 1210305600000 , 23.201805997156] , [ 1210564800000 , 23.1040786704] , [ 1210651200000 , 23.965153233623] , [ 1210737600000 , 23.383754556726] , [ 1210824000000 , 23.797927960202] , [ 1210910400000 , 23.632245055346] , [ 1211169600000 , 23.04524456399] , [ 1211256000000 , 23.57340787775] , [ 1211342400000 , 23.063426658982] , [ 1211428800000 , 23.034687458765] , [ 1211515200000 , 23.065113447487] , [ 1211860800000 , 22.889624665243] , [ 1211947200000 , 22.835009873064] , [ 1212033600000 , 21.531340184817] , [ 1212120000000 , 19.575259321106] , [ 1212379200000 , 17.763724550155] , [ 1212465600000 , 17.596695125202] , [ 1212552000000 , 17.961687627204] , [ 1212638400000 , 17.671896963962] , [ 1212724800000 , 17.877674078151] , [ 1212984000000 , 17.802333395307] , [ 1213070400000 , 17.932025245841] , [ 1213156800000 , 19.615406255269] , [ 1213243200000 , 19.814081563691] , [ 1213329600000 , 17.609477469975] , [ 1213588800000 , 17.678509440137] , [ 1213675200000 , 17.856359586929] , [ 1213761600000 , 17.883324428735] , [ 1213848000000 , 17.654914600713] , [ 1213934400000 , 17.333695485667] , [ 1214193600000 , 17.09733750096] , [ 1214280000000 , 17.192721064539] , [ 1214366400000 , 17.654778485183] , [ 1214452800000 , 18.742947223993] , [ 1214539200000 , 17.954362007624] , [ 1214798400000 , 27.035541485757] , [ 1214884800000 , 25.646501324451] , [ 1214971200000 , 24.704339480623] , [ 1215057600000 , 25.528124904273] , [ 1215403200000 , 24.469221904803] , [ 1215489600000 , 24.86467084747] , [ 1215576000000 , 28.185081839725] , [ 1215662400000 , 25.931291196908] , [ 1215748800000 , 25.921172963399] , [ 1216008000000 , 26.156573606637] , [ 1216094400000 , 25.942194939115] , [ 1216180800000 , 26.372665582895] , [ 1216267200000 , 27.995468662118] , [ 1216353600000 , 28.03192309971] , [ 1216612800000 , 27.660054510448] , [ 1216699200000 , 27.033881768957] , [ 1216785600000 , 27.3314171743] , [ 1216872000000 , 27.075331862026] , [ 1216958400000 , 26.480730398212] , [ 1217217600000 , 27.168142861835] , [ 1217304000000 , 26.897933957608] , [ 1217390400000 , 27.041128147957] , [ 1217476800000 , 26.779369198304] , [ 1217563200000 , 26.574158091266] , [ 1217822400000 , 25.430941403492] , [ 1217908800000 , 25.882024678018] , [ 1217995200000 , 26.557241260329] , [ 1218081600000 , 26.592571431801] , [ 1218168000000 , 26.730520023221] , [ 1218427200000 , 24.829736435431] , [ 1218513600000 , 24.808676213762] , [ 1218600000000 , 24.761891131036] , [ 1218686400000 , 24.770206770333] , [ 1218772800000 , 25.143577874227] , [ 1219032000000 , 24.364074049182] , [ 1219118400000 , 24.508558829752] , [ 1219204800000 , 25.834189456239] , [ 1219291200000 , 26.015641689522] , [ 1219377600000 , 25.675928226745] , [ 1219636800000 , 28.411511834627] , [ 1219723200000 , 27.743761968814] , [ 1219809600000 , 27.561616699095] , [ 1219896000000 , 27.267198900374] , [ 1219982400000 , 26.768901529277] , [ 1220328000000 , 30.930829782998] , [ 1220414400000 , 32.702155801611] , [ 1220500800000 , 33.164536908551] , [ 1220587200000 , 33.0901284428] , [ 1220846400000 , 33.548026375889] , [ 1220932800000 , 32.479523954005] , [ 1221019200000 , 33.023962968015] , [ 1221105600000 , 32.518232933545] , [ 1221192000000 , 33.250608979442] , [ 1221451200000 , 32.242561777527] , [ 1221537600000 , 32.296409598697] , [ 1221624000000 , 32.626704429792] , [ 1221710400000 , 33.131294577009] , [ 1221796800000 , 32.780017106931] , [ 1222056000000 , 33.242181094218] , [ 1222142400000 , 32.949426208976] , [ 1222228800000 , 33.163455852964] , [ 1222315200000 , 32.814626929601] , [ 1222401600000 , 31.914250535078] , [ 1222660800000 , 32.805282690546] , [ 1222747200000 , 25.311667499771] , [ 1222833600000 , 23.096834463171] , [ 1222920000000 , 22.433532392245] , [ 1223006400000 , 21.855284679053] , [ 1223265600000 , 21.116434115363] , [ 1223352000000 , 20.826921172289] , [ 1223438400000 , 21.415638475657] , [ 1223524800000 , 22.725393928058] , [ 1223611200000 , 22.358739847456] , [ 1223870400000 , 22.207965001084] , [ 1223956800000 , 22.274562627241] , [ 1224043200000 , 22.507869738831] , [ 1224129600000 , 22.673218449481] , [ 1224216000000 , 23.089664277628] , [ 1224475200000 , 18.011834486638] , [ 1224561600000 , 19.500589275255] , [ 1224648000000 , 19.088347643272] , [ 1224734400000 , 17.727532675315] , [ 1224820800000 , 19.264131025944] , [ 1225080000000 , 19.943378353668] , [ 1225166400000 , 19.743342605804] , [ 1225252800000 , 17.652555994436] , [ 1225339200000 , 16.867192686438] , [ 1225425600000 , 16.544460489827] , [ 1225688400000 , 18.960925390929] , [ 1225774800000 , 19.256387931268] , [ 1225861200000 , 18.566180002383] , [ 1225947600000 , 16.024008873622] , [ 1226034000000 , 16.612438359142] , [ 1226293200000 , 16.724221319191] , [ 1226379600000 , 16.458855879352] , [ 1226466000000 , 21.593906322621] , [ 1226552400000 , 16.493261880376] , [ 1226638800000 , 19.411017873208] , [ 1226898000000 , 18.993296155293] , [ 1226984400000 , 19.159014049549] , [ 1227070800000 , 17.725731555775] , [ 1227157200000 , 20.936378007454] , [ 1227243600000 , 17.952696312063] , [ 1227502800000 , 18.700248963856] , [ 1227589200000 , 18.87332365187] , [ 1227675600000 , 17.853711923738] , [ 1227848400000 , 17.875123518555] , [ 1228107600000 , 23.854365550634] , [ 1228194000000 , 23.749540851087] , [ 1228280400000 , 21.773838225393] , [ 1228366800000 , 21.49271023225] , [ 1228453200000 , 22.215174649386] , [ 1228712400000 , 22.362045108586] , [ 1228798800000 , 24.461632267612] , [ 1228885200000 , 24.78353826837] , [ 1228971600000 , 24.547286297952] , [ 1229058000000 , 24.162234952977] , [ 1229317200000 , 27.565055857858] , [ 1229403600000 , 25.795424112755] , [ 1229490000000 , 25.507862221091] , [ 1229576400000 , 25.394514275371] , [ 1229662800000 , 25.647603062187] , [ 1229922000000 , 25.857574037331] , [ 1230008400000 , 25.180119806304] , [ 1230094800000 , 25.798192638788] , [ 1230267600000 , 25.359457083421] , [ 1230526800000 , 25.504418021474] , [ 1230613200000 , 25.60919820751] , [ 1230699600000 , 18.093063456137] , [ 1230872400000 , 18.843422158609] , [ 1231131600000 , 18.536029229138] , [ 1231218000000 , 18.880208487147] , [ 1231304400000 , 18.812077348106] , [ 1231390800000 , 18.906627265926] , [ 1231477200000 , 18.913419354209] , [ 1231736400000 , 18.814628186255] , [ 1231822800000 , 19.1706224549] , [ 1231909200000 , 19.102143486727] , [ 1231995600000 , 17.465425251457] , [ 1232082000000 , 17.599705681524] , [ 1232427600000 , 17.509814909282] , [ 1232514000000 , 17.406327433972] , [ 1232600400000 , 17.470981425726] , [ 1232686800000 , 17.530990113867] , [ 1232946000000 , 17.842813972083] , [ 1233032400000 , 18.140434304466] , [ 1233118800000 , 17.6693856356] , [ 1233205200000 , 16.978819163037] , [ 1233291600000 , 17.532772949018] , [ 1233550800000 , 17.263575771949] , [ 1233637200000 , 16.580068629166] , [ 1233723600000 , 14.824065894741] , [ 1233810000000 , 15.135730767999] , [ 1233896400000 , 15.1384624545] , [ 1234155600000 , 17.088024665479] , [ 1234242000000 , 17.004449102957] , [ 1234328400000 , 16.946486288084] , [ 1234414800000 , 17.207129217923] , [ 1234501200000 , 17.274219535868] , [ 1234846800000 , 17.165749457138] , [ 1234933200000 , 16.872328566539] , [ 1235019600000 , 17.271462712538] , [ 1235106000000 , 17.63773653607] , [ 1235365200000 , 16.923145038331] , [ 1235451600000 , 16.923103108536] , [ 1235538000000 , 18.565904750143] , [ 1235624400000 , 18.144649510144] , [ 1235710800000 , 18.561255237134] , [ 1235970000000 , 17.745719395256] , [ 1236056400000 , 17.806801922109] , [ 1236142800000 , 18.150413031812] , [ 1236229200000 , 17.309776676803] , [ 1236315600000 , 17.855132450329] , [ 1236571200000 , 17.358212313334] , [ 1236657600000 , 17.878738090715] , [ 1236744000000 , 17.867433060928] , [ 1236830400000 , 15.645269170248] , [ 1236916800000 , 15.665096191174] , [ 1237176000000 , 15.831837932892] , [ 1237262400000 , 16.556483011821] , [ 1237348800000 , 17.034555975109] , [ 1237435200000 , 15.577521066508] , [ 1237521600000 , 16.597810302851] , [ 1237780800000 , 14.537729561315] , [ 1237867200000 , 14.228041763981] , [ 1237953600000 , 14.626530704835] , [ 1238040000000 , 14.744482313161] , [ 1238126400000 , 14.339965189742] , [ 1238385600000 , 14.241431249006] , [ 1238472000000 , 20.3493662279] , [ 1238558400000 , 19.793441795222] , [ 1238644800000 , 20.579669014612] , [ 1238731200000 , 20.717037537858] , [ 1238990400000 , 20.747637125444] , [ 1239076800000 , 19.872977562246] , [ 1239163200000 , 20.658591597104] , [ 1239249600000 , 21.510069683447] , [ 1239595200000 , 21.303103619777] , [ 1239681600000 , 21.18992562077] , [ 1239768000000 , 19.883709018742] , [ 1239854400000 , 20.189045322046] , [ 1239940800000 , 20.422161239133] , [ 1240200000000 , 19.657962946924] , [ 1240286400000 , 20.918018516475] , [ 1240372800000 , 20.164627878394] , [ 1240459200000 , 21.389490434103] , [ 1240545600000 , 21.55928084029] , [ 1240804800000 , 19.93513983724] , [ 1240891200000 , 20.307326155158] , [ 1240977600000 , 20.076615200252] , [ 1241064000000 , 20.377980619966] , [ 1241150400000 , 21.502114573189] , [ 1241409600000 , 21.333842090053] , [ 1241496000000 , 21.466419194711] , [ 1241582400000 , 21.444140212785] , [ 1241668800000 , 20.650771655377] , [ 1241755200000 , 21.484763215059] , [ 1242014400000 , 21.42896252995] , [ 1242100800000 , 21.124554107238] , [ 1242187200000 , 21.597270919957] , [ 1242273600000 , 20.434117990092] , [ 1242360000000 , 20.72570990085] , [ 1242619200000 , 20.345621395289] , [ 1242705600000 , 20.705330714189] , [ 1242792000000 , 21.608527649829] , [ 1242878400000 , 20.485051690282] , [ 1242964800000 , 21.949939406529] , [ 1243310400000 , 22.574411243952] , [ 1243396800000 , 22.096216601328] , [ 1243483200000 , 22.226997007397] , [ 1243569600000 , 21.978775300645] , [ 1243828800000 , 22.759639639262] , [ 1243915200000 , 21.420671892933] , [ 1244001600000 , 21.470255024637] , [ 1244088000000 , 20.995928687618] , [ 1244174400000 , 21.522496537464] , [ 1244433600000 , 21.315298288502] , [ 1244520000000 , 21.964521450824] , [ 1244606400000 , 21.624039736813] , [ 1244692800000 , 21.401890788502] , [ 1244779200000 , 21.781807814682] , [ 1245038400000 , 21.431222616202] , [ 1245124800000 , 21.29968235956] , [ 1245211200000 , 21.180995555789] , [ 1245297600000 , 21.464139097757] , [ 1245384000000 , 21.038392851134] , [ 1245643200000 , 22.545436575189] , [ 1245729600000 , 22.074728919392] , [ 1245816000000 , 21.847986572177] , [ 1245902400000 , 21.644696203957] , [ 1245988800000 , 21.319344762663] , [ 1246248000000 , 21.474322677353] , [ 1246334400000 , 17.041786253046] , [ 1246420800000 , 16.745806924693] , [ 1246507200000 , 18.065315915016] , [ 1246852800000 , 16.067759313297] , [ 1246939200000 , 17.149399218398] , [ 1247025600000 , 17.230742402014] , [ 1247112000000 , 18.125833913957] , [ 1247198400000 , 17.203651280031] , [ 1247457600000 , 16.123584218948] , [ 1247544000000 , 18.783164750606] , [ 1247630400000 , 17.202273072063] , [ 1247716800000 , 15.628613042405] , [ 1247803200000 , 16.88693478902] , [ 1248062400000 , 16.087345982337] , [ 1248148800000 , 16.145353701807] , [ 1248235200000 , 16.826728344118] , [ 1248321600000 , 18.341761916181] , [ 1248408000000 , 18.057748750692] , [ 1248667200000 , 18.043846489699] , [ 1248753600000 , 18.194705512455] , [ 1248840000000 , 18.316101838803] , [ 1248926400000 , 19.492179039562] , [ 1249012800000 , 19.866092444726] , [ 1249272000000 , 19.5863897446] , [ 1249358400000 , 17.165108148813] , [ 1249444800000 , 16.965672370683] , [ 1249531200000 , 16.54876613592] , [ 1249617600000 , 18.099820712] , [ 1249876800000 , 17.302064800404] , [ 1249963200000 , 17.902140217521] , [ 1250049600000 , 18.027707162727] , [ 1250136000000 , 18.26385824955] , [ 1250222400000 , 17.296777192488] , [ 1250481600000 , 17.035496584359] , [ 1250568000000 , 17.319342619439] , [ 1250654400000 , 17.250945615521] , [ 1250740800000 , 17.360261177385] , [ 1250827200000 , 18.066116382468] , [ 1251086400000 , 17.308982678178] , [ 1251172800000 , 18.264915310522] , [ 1251259200000 , 18.061789277248] , [ 1251345600000 , 18.079065352463] , [ 1251432000000 , 18.565396558372] , [ 1251691200000 , 18.414552663246] , [ 1251777600000 , 17.459096724517] , [ 1251864000000 , 17.359278030104] , [ 1251950400000 , 18.477365167509] , [ 1252036800000 , 18.026975250015] , [ 1252382400000 , 17.957225302001] , [ 1252468800000 , 17.025190338259] , [ 1252555200000 , 18.04110025032] , [ 1252641600000 , 17.131512578138] , [ 1252900800000 , 19.163439930171] , [ 1252987200000 , 18.87995875185] , [ 1253073600000 , 18.893396512386] , [ 1253160000000 , 18.672376942936] , [ 1253246400000 , 16.685220454507] , [ 1253505600000 , 19.236642213738] , [ 1253592000000 , 19.609590841783] , [ 1253678400000 , 18.519089636404] , [ 1253764800000 , 18.805407620157] , [ 1253851200000 , 18.654192599505] , [ 1254110400000 , 19.024313229939] , [ 1254196800000 , 18.619862176913] , [ 1254283200000 , 20.236423704672] , [ 1254369600000 , 19.792619471893] , [ 1254456000000 , 19.66681808602] , [ 1254715200000 , 19.771041284539] , [ 1254801600000 , 18.389838011525] , [ 1254888000000 , 19.896024560924] , [ 1254974400000 , 20.467034445224] , [ 1255060800000 , 18.726208287924] , [ 1255320000000 , 19.084339434257] , [ 1255406400000 , 18.887815021506] , [ 1255492800000 , 18.784938982708] , [ 1255579200000 , 18.88089123485] , [ 1255665600000 , 18.819379905569] , [ 1255924800000 , 18.842718739355] , [ 1256011200000 , 20.618070009916] , [ 1256097600000 , 20.261192428138] , [ 1256184000000 , 20.540776234198] , [ 1256270400000 , 20.774727035528] , [ 1256529600000 , 20.866277864184] , [ 1256616000000 , 19.508262671785] , [ 1256702400000 , 19.691390854526] , [ 1256788800000 , 21.354586644388] , [ 1256875200000 , 20.511734917078] , [ 1257138000000 , 22.74043800343] , [ 1257224400000 , 23.297820087267] , [ 1257310800000 , 22.911377932421] , [ 1257397200000 , 23.092110039866] , [ 1257483600000 , 23.108860374463] , [ 1257742800000 , 21.540893186331] , [ 1257829200000 , 19.41338156802] , [ 1257915600000 , 21.538761570546] , [ 1258002000000 , 22.693144949647] , [ 1258088400000 , 19.007421987539] , [ 1258347600000 , 18.736346280782] , [ 1258434000000 , 18.979915869967] , [ 1258520400000 , 19.055883282436] , [ 1258606800000 , 19.302010218192] , [ 1258693200000 , 19.050090950757] , [ 1258952400000 , 18.877431926735] , [ 1259038800000 , 19.21397264477] , [ 1259125200000 , 18.885131361931] , [ 1259298000000 , 18.703192042869] , [ 1259557200000 , 19.106579354373] , [ 1259643600000 , 19.835588926339] , [ 1259730000000 , 19.725618708704] , [ 1259816400000 , 19.995811888843] , [ 1259902800000 , 19.49130169594] , [ 1260162000000 , 19.615487784729] , [ 1260248400000 , 19.690721644106] , [ 1260334800000 , 19.730043929742] , [ 1260421200000 , 19.962862790794] , [ 1260507600000 , 19.816320827951] , [ 1260766800000 , 19.947336537979] , [ 1260853200000 , 20.718092640299] , [ 1260939600000 , 20.4230538471] , [ 1261026000000 , 20.876969742327] , [ 1261112400000 , 20.561033236054] , [ 1261371600000 , 20.712079417203] , [ 1261458000000 , 20.454217776074] , [ 1261544400000 , 20.206792489051] , [ 1261630800000 , 19.938858516286] , [ 1261976400000 , 20.97228313499] , [ 1262062800000 , 20.073395778853] , [ 1262149200000 , 19.879278038636] , [ 1262235600000 , 31.166099502174] , [ 1262581200000 , 31.842244882842] , [ 1262667600000 , 30.435052761219] , [ 1262754000000 , 30.924329808463] , [ 1262840400000 , 31.259623681662] , [ 1262926800000 , 31.238113840482] , [ 1263186000000 , 31.082835887693] , [ 1263272400000 , 31.214767193505] , [ 1263358800000 , 31.055916746916] , [ 1263445200000 , 30.492617851659] , [ 1263531600000 , 30.809976435255] , [ 1263877200000 , 30.480065328111] , [ 1263963600000 , 30.891257006458] , [ 1264050000000 , 30.633446505165] , [ 1264136400000 , 29.64466987287] , [ 1264395600000 , 30.25761192383] , [ 1264482000000 , 29.922735930894] , [ 1264568400000 , 26.670656014875] , [ 1264654800000 , 31.519098063889] , [ 1264741200000 , 30.265672185038] , [ 1265000400000 , 31.051470338469] , [ 1265086800000 , 31.075278999204] , [ 1265173200000 , 31.328156094438] , [ 1265259600000 , 31.883533196473] , [ 1265346000000 , 31.753621185353] , [ 1265605200000 , 32.483443072721] , [ 1265691600000 , 30.887333018932] , [ 1265778000000 , 31.088478494196] , [ 1265864400000 , 31.171513578005] , [ 1265950800000 , 30.172338971532] , [ 1266296400000 , 31.631321202782] , [ 1266382800000 , 31.773284974164] , [ 1266469200000 , 32.128798050889] , [ 1266555600000 , 31.506000905348] , [ 1266814800000 , 32.543991028111] , [ 1266901200000 , 31.1510270135] , [ 1266987600000 , 31.462834206058] , [ 1267074000000 , 31.805645108837] , [ 1267160400000 , 32.565012468383] , [ 1267419600000 , 30.954586361769] , [ 1267506000000 , 30.960025145221] , [ 1267592400000 , 31.324682916881] , [ 1267678800000 , 31.804674091341] , [ 1267765200000 , 31.064445954753] , [ 1268024400000 , 30.692644563767] , [ 1268110800000 , 31.441544604149] , [ 1268197200000 , 31.372632236951] , [ 1268283600000 , 31.743207826783] , [ 1268370000000 , 31.157631103244] , [ 1268625600000 , 29.500172698299] , [ 1268712000000 , 25.856476032214] , [ 1268798400000 , 29.557877270047] , [ 1268884800000 , 25.160796729901] , [ 1268971200000 , 28.978249978658] , [ 1269230400000 , 25.288683134864] , [ 1269316800000 , 28.972614631218] , [ 1269403200000 , 29.062507286319] , [ 1269489600000 , 28.534634098897] , [ 1269576000000 , 28.170514954521] , [ 1269835200000 , 27.610926345422] , [ 1269921600000 , 28.561743640538] , [ 1270008000000 , 25.72085309218] , [ 1270094400000 , 24.143100568503] , [ 1270440000000 , 24.712126890327] , [ 1270526400000 , 24.937754133729] , [ 1270612800000 , 22.534582804873] , [ 1270699200000 , 26.60835600548] , [ 1270785600000 , 26.974488301938] , [ 1271044800000 , 24.949768369502] , [ 1271131200000 , 21.787557680229] , [ 1271217600000 , 23.156072406101] , [ 1271304000000 , 21.624412713133] , [ 1271390400000 , 20.856993995664] , [ 1271649600000 , 21.082299684764] , [ 1271736000000 , 21.394429762866] , [ 1271822400000 , 21.397625971833] , [ 1271908800000 , 18.470078083536] , [ 1271995200000 , 21.161824047677] , [ 1272254400000 , 21.788830070724] , [ 1272340800000 , 20.882644144703] , [ 1272427200000 , 20.657833498942] , [ 1272513600000 , 20.863389166903] , [ 1272600000000 , 23.835996457616] , [ 1272859200000 , 18.961702146386] , [ 1272945600000 , 22.197555756943] , [ 1273032000000 , 22.10872658541] , [ 1273118400000 , 24.336182246707] , [ 1273204800000 , 23.498064045962] , [ 1273464000000 , 19.533352258036] , [ 1273550400000 , 19.780621438586] , [ 1273636800000 , 18.043407981034] , [ 1273723200000 , 19.055325187108] , [ 1273809600000 , 20.895602982733] , [ 1274068800000 , 20.333517340938] , [ 1274155200000 , 20.094180875213] , [ 1274241600000 , 21.259520019855] , [ 1274328000000 , 23.796797254218] , [ 1274414400000 , 21.513320200099] , [ 1274673600000 , 23.517851530902] , [ 1274760000000 , 23.315153874015] , [ 1274846400000 , 23.366767890574] , [ 1274932800000 , 20.865113389037] , [ 1275019200000 , 21.024951937692] , [ 1275364800000 , 22.063226474144] , [ 1275451200000 , 22.622705338868] , [ 1275537600000 , 21.634282593345] , [ 1275624000000 , 21.771966234289] , [ 1275883200000 , 23.60652423091] , [ 1275969600000 , 23.613567386722] , [ 1276056000000 , 21.057915021657] , [ 1276142400000 , 21.99548478497] , [ 1276228800000 , 21.873527280063] , [ 1276488000000 , 21.006473672252] , [ 1276574400000 , 22.001693162211] , [ 1276660800000 , 22.106386750625] , [ 1276747200000 , 21.771228343302] , [ 1276833600000 , 21.267255977756] , [ 1277092800000 , 21.053210842176] , [ 1277179200000 , 21.343795689407] , [ 1277265600000 , 21.712872300435] , [ 1277352000000 , 21.369109965017] , [ 1277438400000 , 21.035438945093] , [ 1277697600000 , 21.525234675512] , [ 1277784000000 , 21.86404338499] , [ 1277870400000 , 27.66271259496] , [ 1277956800000 , 31.201029468826] , [ 1278043200000 , 30.369191336636] , [ 1278388800000 , 31.18896422942] , [ 1278475200000 , 31.114141889473] , [ 1278561600000 , 31.157290338903] , [ 1278648000000 , 30.92279791828] , [ 1278907200000 , 31.163937573213] , [ 1278993600000 , 31.406716077478] , [ 1279080000000 , 31.341336138768] , [ 1279166400000 , 30.097215729921] , [ 1279252800000 , 30.074765523901] , [ 1279512000000 , 30.757069606348] , [ 1279598400000 , 30.804183936829] , [ 1279684800000 , 31.813228253647] , [ 1279771200000 , 31.809354941375] , [ 1279857600000 , 31.85753806329] , [ 1280116800000 , 31.722866162199] , [ 1280203200000 , 30.741045906359] , [ 1280289600000 , 30.23563925536] , [ 1280376000000 , 28.521418206154] , [ 1280462400000 , 27.289590102591] , [ 1280721600000 , 27.755220441481] , [ 1280808000000 , 27.565942405359] , [ 1280894400000 , 26.311653811793] , [ 1280980800000 , 27.026417458782] , [ 1281067200000 , 27.994819078039] , [ 1281326400000 , 28.227948461494] , [ 1281412800000 , 27.493631089315] , [ 1281499200000 , 31.414782128485] , [ 1281585600000 , 31.399010221155] , [ 1281672000000 , 31.175796423293] , [ 1281931200000 , 30.852534293648] , [ 1282017600000 , 30.672151168827] , [ 1282104000000 , 28.350816045175] , [ 1282190400000 , 28.027792501971] , [ 1282276800000 , 26.928747617346] , [ 1282536000000 , 27.81918002094] , [ 1282622400000 , 27.479582943727] , [ 1282708800000 , 27.401896796598] , [ 1282795200000 , 25.772234596984] , [ 1282881600000 , 27.598614424648] , [ 1283140800000 , 26.550917072205] , [ 1283227200000 , 24.610446801647] , [ 1283313600000 , 28.496548160095] , [ 1283400000000 , 28.280997191492] , [ 1283486400000 , 28.391846047181] , [ 1283832000000 , 28.270233123756] , [ 1283918400000 , 29.30638346881] , [ 1284004800000 , 29.587489278456] , [ 1284091200000 , 30.021254014722] , [ 1284350400000 , 26.999956900205] , [ 1284436800000 , 26.68585346975] , [ 1284523200000 , 27.457958398696] , [ 1284609600000 , 29.945651999548] , [ 1284696000000 , 28.780050148183] , [ 1284955200000 , 26.504410525212] , [ 1285041600000 , 26.467882875554] , [ 1285128000000 , 29.572295475147] , [ 1285214400000 , 29.894729254835] , [ 1285300800000 , 25.192174183101] , [ 1285560000000 , 29.358918928152] , [ 1285646400000 , 26.81887121244] , [ 1285732800000 , 26.954758424088] , [ 1285819200000 , 26.150733527484] , [ 1285905600000 , 26.65569226731] , [ 1286164800000 , 29.948642309605] , [ 1286251200000 , 26.294147683528] , [ 1286337600000 , 26.374682869631] , [ 1286424000000 , 26.057344371343] , [ 1286510400000 , 26.544970326787] , [ 1286769600000 , 25.299375717171] , [ 1286856000000 , 28.078879867239] , [ 1286942400000 , 25.955451031994] , [ 1287028800000 , 27.189249800684] , [ 1287115200000 , 26.796275282338] , [ 1287374400000 , 25.217617743921] , [ 1287460800000 , 29.238805363492] , [ 1287547200000 , 28.946072278759] , [ 1287633600000 , 28.008506235957] , [ 1287720000000 , 27.305441046523] , [ 1287979200000 , 28.335679740985] , [ 1288065600000 , 28.220333339395] , [ 1288152000000 , 28.506512667082] , [ 1288238400000 , 27.773348759251] , [ 1288324800000 , 25.940932725812] , [ 1288584000000 , 25.59791953974] , [ 1288670400000 , 25.681175702664] , [ 1288756800000 , 25.646894232049] , [ 1288843200000 , 24.967778139194] , [ 1288929600000 , 24.891827913103] , [ 1289192400000 , 25.301225710323] , [ 1289278800000 , 25.304241006654] , [ 1289365200000 , 23.465443455061] , [ 1289451600000 , 23.666166952522] , [ 1289538000000 , 24.30829532118] , [ 1289797200000 , 25.98815437182] , [ 1289883600000 , 24.253067150498] , [ 1289970000000 , 24.589841126735] , [ 1290056400000 , 24.478150838241] , [ 1290142800000 , 24.264923577722] , [ 1290402000000 , 24.461576297796] , [ 1290488400000 , 26.687181172881] , [ 1290574800000 , 24.218795290926] , [ 1290747600000 , 23.987641827989] , [ 1291006800000 , 24.409569574947] , [ 1291093200000 , 24.327948314822] , [ 1291179600000 , 24.725033054579] , [ 1291266000000 , 24.262134759276] , [ 1291352400000 , 22.568806637867] , [ 1291611600000 , 22.967575266776] , [ 1291698000000 , 22.550488639479] , [ 1291784400000 , 23.67497086544] , [ 1291870800000 , 24.137172801979] , [ 1291957200000 , 22.981580578993] , [ 1292216400000 , 22.558038285034] , [ 1292302800000 , 22.551465967923] , [ 1292389200000 , 22.594528497073] , [ 1292475600000 , 23.025413377409] , [ 1292562000000 , 22.556822593744] , [ 1292821200000 , 21.029906943726] , [ 1292907600000 , 21.126454422318] , [ 1292994000000 , 22.737113958843] , [ 1293080400000 , 22.615473658196] , [ 1293426000000 , 22.39973019936] , [ 1293512400000 , 22.94150655225] , [ 1293598800000 , 22.643969299434] , [ 1293685200000 , 22.428258726111] , [ 1293771600000 , 21.935794150613] , [ 1294030800000 , 22.48476403799] , [ 1294117200000 , 22.422814900946] , [ 1294203600000 , 21.844187970021] , [ 1294290000000 , 24.268661124172] , [ 1294376400000 , 26.145003041675] , [ 1294635600000 , 24.091635107832] , [ 1294722000000 , 23.448108216687] , [ 1294808400000 , 24.199622375256] , [ 1294894800000 , 24.421278289587] , [ 1294981200000 , 21.259612727431] , [ 1295326800000 , 18.228849328362] , [ 1295413200000 , 22.324800869748] , [ 1295499600000 , 20.259979186891] , [ 1295586000000 , 21.878117916651] , [ 1295845200000 , 21.726336390467] , [ 1295931600000 , 23.453803728285] , [ 1296018000000 , 19.007222901012] , [ 1296104400000 , 18.958582349255] , [ 1296190800000 , 21.347589089244] , [ 1296450000000 , 21.082746351041] , [ 1296536400000 , 23.095455619962] , [ 1296622800000 , 22.412037821112] , [ 1296709200000 , 22.729984157992] , [ 1296795600000 , 22.780949220135] , [ 1297054800000 , 22.129547081673] , [ 1297141200000 , 20.7926222999] , [ 1297227600000 , 19.826288095563] , [ 1297314000000 , 19.719960604559] , [ 1297400400000 , 19.270517050316] , [ 1297659600000 , 19.773679761293] , [ 1297746000000 , 19.780429945671] , [ 1297832400000 , 18.468269341813] , [ 1297918800000 , 18.271614490515] , [ 1298005200000 , 18.531394945136] , [ 1298350800000 , 19.66539104513] , [ 1298437200000 , 21.973220001027] , [ 1298523600000 , 22.820822913293] , [ 1298610000000 , 20.187580954545] , [ 1298869200000 , 19.590340164452] , [ 1298955600000 , 22.891819768291] , [ 1299042000000 , 19.841880679018] , [ 1299128400000 , 20.330719272606] , [ 1299214800000 , 22.017232223715] , [ 1299474000000 , 22.170214817411] , [ 1299560400000 , 21.753196882447] , [ 1299646800000 , 19.708942145181] , [ 1299733200000 , 20.984970114575] , [ 1299819600000 , 21.154239281085] , [ 1300075200000 , 21.572692041089] , [ 1300161600000 , 23.211076234884] , [ 1300248000000 , 21.332720936513] , [ 1300334400000 , 21.083386364962] , [ 1300420800000 , 21.563630887333] , [ 1300680000000 , 20.078376027162] , [ 1300766400000 , 21.936057212852] , [ 1300852800000 , 21.283229802872] , [ 1300939200000 , 21.59996347062] , [ 1301025600000 , 19.981377947696] , [ 1301284800000 , 21.327816244231] , [ 1301371200000 , 20.070923644002] , [ 1301457600000 , 20.223448675649] , [ 1301544000000 , 20.378316523796] , [ 1301630400000 , 19.60384061788] , [ 1301889600000 , 20.082347129411] , [ 1301976000000 , 20.766827561109] , [ 1302062400000 , 20.56998967709] , [ 1302148800000 , 20.835522832453] , [ 1302235200000 , 20.621041131763] , [ 1302494400000 , 20.862612863662] , [ 1302580800000 , 20.949384809823] , [ 1302667200000 , 20.259674901114] , [ 1302753600000 , 20.298065987261] , [ 1302840000000 , 19.744295596235] , [ 1303099200000 , 19.834175026131] , [ 1303185600000 , 19.80597088809] , [ 1303272000000 , 19.639597995502] , [ 1303358400000 , 19.889573610719] , [ 1303704000000 , 19.376579694515] , [ 1303790400000 , 19.223546183384] , [ 1303876800000 , 18.085651157812] , [ 1303963200000 , 18.330566101579] , [ 1304049600000 , 18.533381907866] , [ 1304308800000 , 19.062961669981] , [ 1304395200000 , 22.369954028086] , [ 1304481600000 , 22.78948654317] , [ 1304568000000 , 22.202870121048] , [ 1304654400000 , 22.908323144891] , [ 1304913600000 , 23.414786154606] , [ 1305000000000 , 24.271289797312] , [ 1305086400000 , 23.783550290831] , [ 1305172800000 , 24.012484519869] , [ 1305259200000 , 24.36996382653] , [ 1305518400000 , 23.503956869244] , [ 1305604800000 , 23.870292616412] , [ 1305691200000 , 23.680020772089] , [ 1305777600000 , 21.749194229278] , [ 1305864000000 , 23.523654852151] , [ 1306123200000 , 25.057418219823] , [ 1306209600000 , 25.095989717275] , [ 1306296000000 , 25.246462677114] , [ 1306382400000 , 25.329279050008] , [ 1306468800000 , 23.731942569802] , [ 1306814400000 , 22.85305404152] , [ 1306900800000 , 22.076875455589] , [ 1306987200000 , 21.524198070308] , [ 1307073600000 , 23.972185571268] , [ 1307332800000 , 24.19768306555] , [ 1307419200000 , 24.494354673002] , [ 1307505600000 , 23.50566827752] , [ 1307592000000 , 23.524668869758] , [ 1307678400000 , 22.726351077677] , [ 1307937600000 , 22.476750334215] , [ 1308024000000 , 22.227199331415] , [ 1308110400000 , 22.087275632346] , [ 1308196800000 , 22.123918718961] , [ 1308283200000 , 21.816512853684] , [ 1308542400000 , 21.612108937632] , [ 1308628800000 , 21.491447183877] , [ 1308715200000 , 22.511746949304] , [ 1308801600000 , 21.941593903184] , [ 1308888000000 , 21.747502094317] , [ 1309147200000 , 22.815509942054] , [ 1309233600000 , 22.348003742121] , [ 1309320000000 , 22.511894720579] , [ 1309406400000 , 22.567463786775] , [ 1309492800000 , 21.448413915891] , [ 1309838400000 , 21.233016489832] , [ 1309924800000 , 23.469822957393] , [ 1310011200000 , 20.556958824859] , [ 1310097600000 , 20.368289351917] , [ 1310356800000 , 22.364638915875] , [ 1310443200000 , 22.429253041611] , [ 1310529600000 , 23.140402366033] , [ 1310616000000 , 22.786575841648] , [ 1310702400000 , 22.6535371556] , [ 1310961600000 , 22.222070370013] , [ 1311048000000 , 22.634941100329] , [ 1311134400000 , 22.577026038515] , [ 1311220800000 , 22.743173047738] , [ 1311307200000 , 19.955845367921] , [ 1311566400000 , 19.402607778325] , [ 1311652800000 , 19.253926915294] , [ 1311739200000 , 22.440497288414] , [ 1311825600000 , 20.127325131893] , [ 1311912000000 , 20.143632322935] , [ 1314763200000 , 22.312375995313] , [ 1314849600000 , 21.29036308519] , [ 1314936000000 , 21.845411255407] , [ 1315281600000 , 20.494384290589] , [ 1315368000000 , 21.001264659739] , [ 1315454400000 , 21.568705339832] , [ 1315540800000 , 21.506987601522] , [ 1315800000000 , 21.177312660135] , [ 1315886400000 , 21.868862897889] , [ 1315972800000 , 21.071764151565] , [ 1316059200000 , 21.490618475219] , [ 1316145600000 , 22.060908679368] , [ 1316404800000 , 21.362380058669] , [ 1316491200000 , 19.501621337539] , [ 1316577600000 , 19.002759253579] , [ 1316664000000 , 18.078449446615] , [ 1316750400000 , 18.949248830223] , [ 1317009600000 , 20.156156797533] , [ 1317096000000 , 20.756701014073] , [ 1317182400000 , 20.731186204217] , [ 1317268800000 , 18.771142897018] , [ 1317355200000 , 16.191064318512] , [ 1317614400000 , 15.206557534729] , [ 1317700800000 , 15.175135526032] , [ 1317787200000 , 15.866396789013] , [ 1317873600000 , 17.650368230794] , [ 1317960000000 , 17.240218968573] , [ 1318219200000 , 16.400550273503] , [ 1318305600000 , 16.3845361397] , [ 1318392000000 , 16.796836976786] , [ 1318478400000 , 16.938277456269] , [ 1318564800000 , 17.081187022189] , [ 1318824000000 , 16.451626441279] , [ 1318910400000 , 17.079582458865] , [ 1318996800000 , 17.066407588654] , [ 1319083200000 , 16.977407624556] , [ 1319169600000 , 17.446016192139] , [ 1319428800000 , 17.546943155193] , [ 1319515200000 , 17.094842621633] , [ 1319601600000 , 17.197391585973] , [ 1319688000000 , 17.670124220099] , [ 1319774400000 , 17.890559199263] , [ 1320033600000 , 17.504350123505] , [ 1320120000000 , 17.969069937755] , [ 1320206400000 , 18.369831017329] , [ 1320292800000 , 18.63351356547] , [ 1320379200000 , 18.943165342373] , [ 1320642000000 , 18.55841847658] , [ 1320728400000 , 18.333742741079] , [ 1320814800000 , 17.804195816594] , [ 1320901200000 , 18.303336555725] , [ 1320987600000 , 18.419835990016] , [ 1321246800000 , 18.564494408352] , [ 1321333200000 , 18.706475912297] , [ 1321419600000 , 18.287978832777] , [ 1321506000000 , 16.806014453248] , [ 1321592400000 , 16.573853512606] , [ 1321851600000 , 16.278677060256] , [ 1321938000000 , 15.852567514369] , [ 1322024400000 , 15.792459271772] , [ 1322197200000 , 15.771749097141] , [ 1322456400000 , 16.463980243989] , [ 1322542800000 , 17.849970037078] , [ 1322629200000 , 19.086207895423] , [ 1322715600000 , 17.984373349817] , [ 1322802000000 , 17.817600309678] , [ 1323061200000 , 18.183904534131] , [ 1323147600000 , 18.278547637501] , [ 1323234000000 , 18.098597632969] , [ 1323320400000 , 17.950155177891] , [ 1323406800000 , 17.992701543141] , [ 1323666000000 , 17.707108742335] , [ 1323752400000 , 17.106169060494] , [ 1323838800000 , 16.879044143327] , [ 1323925200000 , 15.703650051148] , [ 1324011600000 , 17.03786588506] , [ 1324270800000 , 15.730453362729] , [ 1324357200000 , 17.178449451571] , [ 1324443600000 , 16.128601580221] , [ 1324530000000 , 16.444514501668] , [ 1324616400000 , 16.367515592583] , [ 1324962000000 , 16.680559361738] , [ 1325048400000 , 16.182230963286] , [ 1325134800000 , 16.252245100018] , [ 1325221200000 , 16.848301869417] , [ 1325566800000 , 20.240025778105] , [ 1325653200000 , 20.131966646648] , [ 1325739600000 , 20.718565505576] , [ 1325826000000 , 20.852860702513] , [ 1326085200000 , 20.839150525655] , [ 1326171600000 , 20.832350512944] , [ 1326258000000 , 22.184151627169] , [ 1326344400000 , 22.440196121423] , [ 1326430800000 , 22.111700718881] , [ 1326776400000 , 22.242221555829] , [ 1326862800000 , 22.359201623444] , [ 1326949200000 , 22.412837491698] , [ 1327035600000 , 22.633953919333] , [ 1327294800000 , 22.832695812645] , [ 1327381200000 , 22.819383159278] , [ 1327467600000 , 22.121735655105] , [ 1327554000000 , 22.792767113343] , [ 1327640400000 , 23.429926311061] , [ 1327899600000 , 23.164696661813] , [ 1327986000000 , 22.446504371253] , [ 1328072400000 , 23.177192530626] , [ 1328158800000 , 20.802030833161] , [ 1328245200000 , 21.206277566764] , [ 1328504400000 , 20.803932254935] , [ 1328590800000 , 20.905318438671] , [ 1328677200000 , 21.118875695012] , [ 1328763600000 , 20.060946674808] , [ 1328850000000 , 19.976531529243] , [ 1329109200000 , 22.297368165622] , [ 1329195600000 , 22.060842770554] , [ 1329282000000 , 19.956934384488] , [ 1329368400000 , 19.640001354968] , [ 1329454800000 , 19.475145483016] , [ 1329800400000 , 22.381415384231] , [ 1329886800000 , 22.373447173711] , [ 1329973200000 , 20.320552206406] , [ 1330059600000 , 22.254781193155] , [ 1330318800000 , 22.555960613111] , [ 1330405200000 , 22.346273919032] , [ 1330491600000 , 21.728534744001] , [ 1330578000000 , 21.381268866906] , [ 1330664400000 , 21.752676586327] , [ 1330923600000 , 21.304900254731] , [ 1331010000000 , 21.603935555692] , [ 1331096400000 , 20.75840695927] , [ 1331182800000 , 20.876297133647] , [ 1331269200000 , 21.109951987892] , [ 1331524800000 , 20.974819713599] , [ 1331611200000 , 21.650754195745] , [ 1331697600000 , 21.486986393481] , [ 1331784000000 , 21.731413795962] , [ 1331870400000 , 21.559861531547] , [ 1332129600000 , 20.957089690516] , [ 1332216000000 , 21.283167163079] , [ 1332302400000 , 21.338954084611] , [ 1332388800000 , 21.3444031056] , [ 1332475200000 , 21.617798529858] , [ 1332734400000 , 21.316809806518] , [ 1332820800000 , 21.589839281434] , [ 1332907200000 , 21.100908321146] , [ 1332993600000 , 21.393302540964] , [ 1333080000000 , 21.034057096975] , [ 1333339200000 , 22.778206720699] , [ 1333425600000 , 21.191337490764] , [ 1333512000000 , 21.494718264334] , [ 1333598400000 , 21.751260379606] , [ 1333944000000 , 21.771205695747] , [ 1334030400000 , 20.674327028188] , [ 1334116800000 , 20.793809068912] , [ 1334203200000 , 21.634928440489] , [ 1334289600000 , 21.465101613771] , [ 1334548800000 , 21.308985573517] , [ 1334635200000 , 21.983740906278] , [ 1334721600000 , 21.204851850294] , [ 1334808000000 , 20.878623851535] , [ 1334894400000 , 21.258053688953] , [ 1335153600000 , 20.958670391813] , [ 1335240000000 , 20.915942167619] , [ 1335326400000 , 21.234562948807] , [ 1335412800000 , 21.356401321339] , [ 1335499200000 , 21.367305836487] , [ 1335758400000 , 21.06181346601]]} , { "key" : "Small Cap (250MM-2B)" , "stack" : true , "shadowSize" : 0 , "color" : undefined , "lines" : { "fillColor" : undefined , "fill" : 0.5} , "values" : [ [ 1028088000000 , 3.8620804466145] , [ 1028174400000 , 4.3176385462579] , [ 1028260800000 , 4.3013687899814] , [ 1028520000000 , 4.9992072271404] , [ 1028606400000 , 4.2567717722041] , [ 1028692800000 , 4.3194153642585] , [ 1028779200000 , 4.2625960229683] , [ 1028865600000 , 4.3244261502053] , [ 1029124800000 , 4.3304321263023] , [ 1029211200000 , 4.1517675844473] , [ 1029297600000 , 4.2252288599937] , [ 1029384000000 , 4.2277354138208] , [ 1029470400000 , 4.3550826538906] , [ 1029729600000 , 3.9397586220988] , [ 1029816000000 , 3.4169329063882] , [ 1029902400000 , 3.6875005171252] , [ 1029988800000 , 4.048880287207] , [ 1030075200000 , 3.6966752430108] , [ 1030334400000 , 3.7173634274879] , [ 1030420800000 , 4.0985697320555] , [ 1030507200000 , 3.9636839178967] , [ 1030593600000 , 3.6736655970805] , [ 1030680000000 , 4.3472441144356] , [ 1031025600000 , 3.9753952237385] , [ 1031112000000 , 4.042003278398] , [ 1031198400000 , 3.8537285299803] , [ 1031284800000 , 3.8813838230856] , [ 1031544000000 , 3.886769150701] , [ 1031630400000 , 3.946636853449] , [ 1031716800000 , 3.9653973783377] , [ 1031803200000 , 3.8576474336814] , [ 1031889600000 , 3.503583669769] , [ 1032148800000 , 3.3304129380009] , [ 1032235200000 , 3.2517840425404] , [ 1032321600000 , 3.7770281064242] , [ 1032408000000 , 3.6444796613163] , [ 1032494400000 , 4.0413161436998] , [ 1032753600000 , 4.0559814432677] , [ 1032840000000 , 4.159419008864] , [ 1032926400000 , 4.2969505530807] , [ 1033012800000 , 3.9536344013462] , [ 1033099200000 , 4.0329958851123] , [ 1033358400000 , 4.2042225513188] , [ 1033444800000 , 4.4029349272723] , [ 1033531200000 , 4.2688734913153] , [ 1033617600000 , 4.2393724624568] , [ 1033704000000 , 4.1467954465149] , [ 1033963200000 , 4.2285843239393] , [ 1034049600000 , 3.9801269716178] , [ 1034136000000 , 6.7502461367378] , [ 1034222400000 , 6.4239719546122] , [ 1034308800000 , 6.5755784647836] , [ 1034568000000 , 6.4600234054698] , [ 1034654400000 , 4.9077041342217] , [ 1034740800000 , 7.0194713263893] , [ 1034827200000 , 6.4543919846838] , [ 1034913600000 , 4.2701743643567] , [ 1035172800000 , 4.3368409963081] , [ 1035259200000 , 4.3296368544987] , [ 1035345600000 , 4.3167044883653] , [ 1035432000000 , 4.3024226581884] , [ 1035518400000 , 4.4778979611573] , [ 1035781200000 , 4.4390846060489] , [ 1035867600000 , 4.2524183988711] , [ 1035954000000 , 4.3126546455849] , [ 1036040400000 , 4.2858053159855] , [ 1036126800000 , 4.7515173925457] , [ 1036386000000 , 3.5555998429186] , [ 1036472400000 , 5.7654634512653] , [ 1036558800000 , 5.7255756620025] , [ 1036645200000 , 5.9746872504727] , [ 1036731600000 , 6.7032763577582] , [ 1036990800000 , 6.9283967898845] , [ 1037077200000 , 6.9267184132045] , [ 1037163600000 , 6.9490440785846] , [ 1037250000000 , 5.5289423498995] , [ 1037336400000 , 5.5439096533014] , [ 1037595600000 , 5.6607510916596] , [ 1037682000000 , 5.5708091639207] , [ 1037768400000 , 5.5947299232259] , [ 1037854800000 , 5.558087070657] , [ 1037941200000 , 5.6332497181246] , [ 1038200400000 , 5.7602562089301] , [ 1038286800000 , 5.6560592961571] , [ 1038373200000 , 5.7612278728759] , [ 1038546000000 , 3.6703847832416] , [ 1038805200000 , 5.8325229693334] , [ 1038891600000 , 5.506222051039] , [ 1038978000000 , 5.5739180445041] , [ 1039064400000 , 5.4927283974812] , [ 1039150800000 , 6.5665782959799] , [ 1039410000000 , 6.0670025991213] , [ 1039496400000 , 5.5479592919401] , [ 1039582800000 , 5.3983033339071] , [ 1039669200000 , 4.7367972355009] , [ 1039755600000 , 5.2877795417463] , [ 1040014800000 , 5.1451262856279] , [ 1040101200000 , 5.0295471424258] , [ 1040187600000 , 5.075571884014] , [ 1040274000000 , 5.2272436330748] , [ 1040360400000 , 5.6472310815817] , [ 1040619600000 , 5.2524528987366] , [ 1040706000000 , 5.2716790785115] , [ 1040878800000 , 5.1944294030096] , [ 1040965200000 , 5.813213477744] , [ 1041224400000 , 5.5328250389927] , [ 1041310800000 , 4.5976535990161] , [ 1041483600000 , 4.7510089011021] , [ 1041570000000 , 4.2695752124746] , [ 1041829200000 , 4.3046603378027] , [ 1041915600000 , 4.3964087087907] , [ 1042002000000 , 4.6964465006103] , [ 1042088400000 , 4.2183770748391] , [ 1042174800000 , 4.4348438232503] , [ 1042434000000 , 4.2803453692337] , [ 1042520400000 , 4.2920671874758] , [ 1042606800000 , 4.3645393578616] , [ 1042693200000 , 4.3127070019325] , [ 1042779600000 , 4.8440471863362] , [ 1043125200000 , 4.5413725030532] , [ 1043211600000 , 4.5262659222684] , [ 1043298000000 , 4.4474430068025] , [ 1043384400000 , 4.3524741832798] , [ 1043643600000 , 4.8466747335975] , [ 1043730000000 , 4.5932416285603] , [ 1043816400000 , 4.4695988446547] , [ 1043902800000 , 4.5530600392767] , [ 1043989200000 , 4.5177932953535] , [ 1044248400000 , 5.0059916347378] , [ 1044334800000 , 4.5164500117588] , [ 1044421200000 , 5.2874820145085] , [ 1044507600000 , 5.5426436844915] , [ 1044594000000 , 5.4932938658274] , [ 1044853200000 , 5.5423945802748] , [ 1044939600000 , 5.4101450573171] , [ 1045026000000 , 5.3087690884921] , [ 1045112400000 , 5.2880558456399] , [ 1045198800000 , 5.415722724421] , [ 1045544400000 , 4.9796472716613] , [ 1045630800000 , 5.3454582961108] , [ 1045717200000 , 5.307348397439] , [ 1045803600000 , 4.6831289181459] , [ 1046062800000 , 5.2367400263671] , [ 1046149200000 , 4.8317426862041] , [ 1046235600000 , 4.76122676879] , [ 1046322000000 , 4.7097821987599] , [ 1046408400000 , 4.7789711464909] , [ 1046667600000 , 4.6852034745146] , [ 1046754000000 , 4.5509207836993] , [ 1046840400000 , 5.0439314247003] , [ 1046926800000 , 4.9143831614728] , [ 1047013200000 , 4.3685655621745] , [ 1047272400000 , 4.884194720098] , [ 1047358800000 , 4.6984178208758] , [ 1047445200000 , 4.7806486265743] , [ 1047531600000 , 4.5015962809188] , [ 1047618000000 , 4.5387956234262] , [ 1047877200000 , 4.5307751600788] , [ 1047963600000 , 4.1149410094866] , [ 1048050000000 , 4.2149631589866] , [ 1048136400000 , 4.2097564889472] , [ 1048222800000 , 4.3788933698418] , [ 1048482000000 , 4.761270364544] , [ 1048568400000 , 4.7140550401528] , [ 1048654800000 , 4.5616983700234] , [ 1048741200000 , 4.564023981857] , [ 1048827600000 , 4.606219528503] , [ 1049086800000 , 5.4408913825225] , [ 1049173200000 , 5.5033561472653] , [ 1049259600000 , 5.2285135957919] , [ 1049346000000 , 5.7718095490645] , [ 1049432400000 , 5.7499966552938] , [ 1049688000000 , 5.8478661017785] , [ 1049774400000 , 5.9043047706447] , [ 1049860800000 , 5.7872986193248] , [ 1049947200000 , 5.8613489584169] , [ 1050033600000 , 6.0948261270436] , [ 1050292800000 , 6.0740464796495] , [ 1050379200000 , 6.1367845594565] , [ 1050465600000 , 5.9073058432377] , [ 1050552000000 , 5.9082215955743] , [ 1050897600000 , 5.9988182051613] , [ 1050984000000 , 3.9684729973834] , [ 1051070400000 , 4.0370328544847] , [ 1051156800000 , 5.5018299467167] , [ 1051243200000 , 5.6244660300099] , [ 1051502400000 , 3.9572529793979] , [ 1051588800000 , 4.0006857020832] , [ 1051675200000 , 4.0567930226932] , [ 1051761600000 , 3.900894588467] , [ 1051848000000 , 3.9150614570377] , [ 1052107200000 , 4.1300852174433] , [ 1052193600000 , 3.9920739498757] , [ 1052280000000 , 4.1020694295758] , [ 1052366400000 , 4.0156937473639] , [ 1052452800000 , 3.934814534074] , [ 1052712000000 , 4.018609992625] , [ 1052798400000 , 4.1506946404048] , [ 1052884800000 , 4.1993789123694] , [ 1052971200000 , 3.6937778411279] , [ 1053057600000 , 3.3155547642052] , [ 1053316800000 , 4.0696072870642] , [ 1053403200000 , 4.0910202611485] , [ 1053489600000 , 4.016355720699] , [ 1053576000000 , 4.0015329399337] , [ 1053662400000 , 4.0418469364687] , [ 1054008000000 , 3.7836336561428] , [ 1054094400000 , 3.7815960559094] , [ 1054180800000 , 3.8685130610845] , [ 1054267200000 , 2.8375964678971] , [ 1054526400000 , 3.0260170206941] , [ 1054612800000 , 3.8517760868521] , [ 1054699200000 , 4.0871889720479] , [ 1054785600000 , 3.1406171088481] , [ 1054872000000 , 4.1772702788735] , [ 1055131200000 , 4.0345728383825] , [ 1055217600000 , 4.0534566287035] , [ 1055304000000 , 3.3706921203709] , [ 1055390400000 , 3.472022034094] , [ 1055476800000 , 3.4525092749528] , [ 1055736000000 , 3.3534418931261] , [ 1055822400000 , 3.440373564283] , [ 1055908800000 , 3.4259275639372] , [ 1055995200000 , 3.3207687964276] , [ 1056081600000 , 3.3859717115628] , [ 1056340800000 , 3.2578786594837] , [ 1056427200000 , 3.3082214535467] , [ 1056513600000 , 3.2731689681795] , [ 1056600000000 , 3.325954221235] , [ 1056686400000 , 3.3226270589837] , [ 1056945600000 , 2.5708967342479] , [ 1057032000000 , 2.6164118611278] , [ 1057118400000 , 2.6920972001194] , [ 1057204800000 , 2.6458626837908] , [ 1057550400000 , 2.7034148470947] , [ 1057636800000 , 2.6997040482666] , [ 1057723200000 , 2.7140627555433] , [ 1057809600000 , 2.7614903874923] , [ 1057896000000 , 2.7576567615574] , [ 1058155200000 , 2.8105965829945] , [ 1058241600000 , 2.5528552750512] , [ 1058328000000 , 2.5026384478339] , [ 1058414400000 , 2.7008233949462] , [ 1058500800000 , 2.7703410547957] , [ 1058760000000 , 2.7175788890086] , [ 1058846400000 , 2.0185751224298] , [ 1058932800000 , 1.9724988489976] , [ 1059019200000 , 1.9577664980851] , [ 1059105600000 , 1.9200041827333] , [ 1059364800000 , 1.9935335111628] , [ 1059451200000 , 1.9491948446029] , [ 1059537600000 , 1.8943179030446] , [ 1059624000000 , 1.985909780469] , [ 1059710400000 , 1.9423587948316] , [ 1059969600000 , 1.9151728635918] , [ 1060056000000 , 2.7389993527887] , [ 1060142400000 , 2.6956984647066] , [ 1060228800000 , 2.6105098034892] , [ 1060315200000 , 2.6057163219235] , [ 1060574400000 , 2.5989871633281] , [ 1060660800000 , 2.6587323530382] , [ 1060747200000 , 2.6566910961028] , [ 1060833600000 , 2.554223770043] , [ 1060920000000 , 2.7015130041478] , [ 1061179200000 , 1.9442552327487] , [ 1061265600000 , 1.8890822131991] , [ 1061352000000 , 1.957779918149] , [ 1061438400000 , 1.8957815147709] , [ 1061524800000 , 1.8728337703864] , [ 1061784000000 , 1.9021460845255] , [ 1061870400000 , 1.8994290016279] , [ 1061956800000 , 2.0036671055018] , [ 1062043200000 , 1.3940226063746] , [ 1062129600000 , 1.3243621143698] , [ 1062475200000 , 1.3854722578043] , [ 1062561600000 , 1.3298180185616] , [ 1062648000000 , 1.3673894620209] , [ 1062734400000 , 1.3316049431981] , [ 1062993600000 , 1.340020412481] , [ 1063080000000 , 1.3026716314854] , [ 1063166400000 , 1.3207463795227] , [ 1063252800000 , 1.8628566804193] , [ 1063339200000 , 1.8482891853909] , [ 1063598400000 , 1.9045916584585] , [ 1063684800000 , 1.837742353553] , [ 1063771200000 , 1.9024754973246] , [ 1063857600000 , 1.8607688729118] , [ 1063944000000 , 1.3096795532289] , [ 1064203200000 , 1.8338364105511] , [ 1064289600000 , 1.8003208581704] , [ 1064376000000 , 1.811090963193] , [ 1064462400000 , 1.8002083517034] , [ 1064548800000 , 1.765936224515] , [ 1064808000000 , 1.7605645888026] , [ 1064894400000 , 2.3533837103512] , [ 1064980800000 , 2.5578066779139] , [ 1065067200000 , 2.6021325845301] , [ 1065153600000 , 2.610160353775] , [ 1065412800000 , 2.3995649422623] , [ 1065499200000 , 2.4188553889039] , [ 1065585600000 , 2.3601292493772] , [ 1065672000000 , 2.4142632443561] , [ 1065758400000 , 2.332472625984] , [ 1066017600000 , 2.3821342709168] , [ 1066104000000 , 2.3253429229386] , [ 1066190400000 , 2.3664716603706] , [ 1066276800000 , 2.4233217832875] , [ 1066363200000 , 2.3744114954904] , [ 1066622400000 , 2.3242267756738] , [ 1066708800000 , 2.3170454505916] , [ 1066795200000 , 2.3198028213604] , [ 1066881600000 , 2.3448199873629] , [ 1066968000000 , 2.2738078648518] , [ 1067230800000 , 2.2765201113944] , [ 1067317200000 , 2.3588346399806] , [ 1067403600000 , 2.3212752066114] , [ 1067490000000 , 2.3163255863937] , [ 1067576400000 , 2.3745825813123] , [ 1067835600000 , 2.3462733095574] , [ 1067922000000 , 2.2932927987058] , [ 1068008400000 , 2.3373215034755] , [ 1068094800000 , 2.2725306567513] , [ 1068181200000 , 2.3917906270981] , [ 1068440400000 , 2.2655553659808] , [ 1068526800000 , 2.310910959511] , [ 1068613200000 , 2.3195770502019] , [ 1068699600000 , 2.2912225722456] , [ 1068786000000 , 2.2569818877933] , [ 1069045200000 , 2.2289448833129] , [ 1069131600000 , 2.218422685586] , [ 1069218000000 , 2.2376872406885] , [ 1069304400000 , 2.2375961111559] , [ 1069390800000 , 2.2149950848478] , [ 1069650000000 , 2.2393607354044] , [ 1069736400000 , 2.2481596978119] , [ 1069822800000 , 1.7585060687227] , [ 1069995600000 , 1.7788982163799] , [ 1070254800000 , 1.9148614258469] , [ 1070341200000 , 1.8927511306448] , [ 1070427600000 , 1.8918271126637] , [ 1070514000000 , 1.9549925531458] , [ 1070600400000 , 1.8923430458209] , [ 1070859600000 , 1.9364165361772] , [ 1070946000000 , 1.4769360533289] , [ 1071032400000 , 1.4513767210474] , [ 1071118800000 , 1.4710731378087] , [ 1071205200000 , 1.4205989301242] , [ 1071464400000 , 1.4234994752185] , [ 1071550800000 , 1.8427770516821] , [ 1071637200000 , 1.8638708455538] , [ 1071723600000 , 1.9497158345991] , [ 1071810000000 , 1.9635521651203] , [ 1072069200000 , 1.8689155075034] , [ 1072155600000 , 1.9260144738829] , [ 1072242000000 , 1.8827565428604] , [ 1072414800000 , 1.9192658985892] , [ 1072674000000 , 1.8963393900065] , [ 1072760400000 , 1.8679186621707] , [ 1072846800000 , 2.5726272542883] , [ 1073019600000 , 2.6031822324428] , [ 1073278800000 , 2.6628120857886] , [ 1073365200000 , 2.6285242251023] , [ 1073451600000 , 2.6679861214776] , [ 1073538000000 , 2.3143736151973] , [ 1073624400000 , 2.6160317373105] , [ 1073883600000 , 2.2854270547956] , [ 1073970000000 , 2.5324487245205] , [ 1074056400000 , 2.2267342184644] , [ 1074142800000 , 2.3036203276638] , [ 1074229200000 , 2.3354761247737] , [ 1074574800000 , 2.405556806451] , [ 1074661200000 , 2.3291039355677] , [ 1074747600000 , 2.3467433074347] , [ 1074834000000 , 2.3997917116702] , [ 1075093200000 , 2.3690925799406] , [ 1075179600000 , 2.3062259085558] , [ 1075266000000 , 2.3229987814369] , [ 1075352400000 , 2.676578933804] , [ 1075438800000 , 2.5563937985446] , [ 1075698000000 , 2.7638503104826] , [ 1075784400000 , 2.7274850479449] , [ 1075870800000 , 2.6455838118095] , [ 1075957200000 , 2.7163042315533] , [ 1076043600000 , 2.6932253554656] , [ 1076302800000 , 2.6684383753015] , [ 1076389200000 , 2.7381170486182] , [ 1076475600000 , 2.7691902636693] , [ 1076562000000 , 2.8100168385674] , [ 1076648400000 , 2.6243482647816] , [ 1076994000000 , 2.7891693137676] , [ 1077080400000 , 2.6482123891634] , [ 1077166800000 , 2.5980511302957] , [ 1077253200000 , 2.6065792628998] , [ 1077512400000 , 2.5818909995678] , [ 1077598800000 , 2.5185711818756] , [ 1077685200000 , 2.5826209270431] , [ 1077771600000 , 2.5677991742216] , [ 1077858000000 , 2.5595132570808] , [ 1078117200000 , 2.6464015515661] , [ 1078203600000 , 2.7064377516549] , [ 1078290000000 , 2.7488882320609] , [ 1078376400000 , 2.7994078870317] , [ 1078462800000 , 2.8046592463289] , [ 1078722000000 , 2.7442701268229] , [ 1078808400000 , 2.7563266220511] , [ 1078894800000 , 2.7004794191501] , [ 1078981200000 , 2.735182958215] , [ 1079067600000 , 2.8053434005564] , [ 1079326800000 , 2.74684290332] , [ 1079413200000 , 2.7400749365906] , [ 1079499600000 , 2.7711386760201] , [ 1079586000000 , 2.849317559965] , [ 1079672400000 , 2.7741963276387] , [ 1079931600000 , 2.7803484316719] , [ 1080018000000 , 2.6772244108077] , [ 1080104400000 , 2.7821179684294] , [ 1080190800000 , 2.7360695694336] , [ 1080277200000 , 2.8251718224838] , [ 1080536400000 , 2.6223600417862] , [ 1080622800000 , 2.7035844074053] , [ 1080709200000 , 4.5147962184039] , [ 1080795600000 , 4.4399920083068] , [ 1080882000000 , 4.4946106384606] , [ 1081137600000 , 4.5670198594378] , [ 1081224000000 , 4.5402896231891] , [ 1081310400000 , 4.4666349162319] , [ 1081396800000 , 4.9174215501555] , [ 1081742400000 , 4.9246858252862] , [ 1081828800000 , 4.8028149108115] , [ 1081915200000 , 4.7144297817274] , [ 1082001600000 , 4.9728924475777] , [ 1082088000000 , 4.7864459221529] , [ 1082347200000 , 4.8561519263269] , [ 1082433600000 , 4.9009729198413] , [ 1082520000000 , 4.9352245164731] , [ 1082606400000 , 4.7757724520827] , [ 1082692800000 , 4.739422776248] , [ 1082952000000 , 4.7175897011702] , [ 1083038400000 , 5.3043181087674] , [ 1083124800000 , 5.2110987484839] , [ 1083211200000 , 4.6067295248307] , [ 1083297600000 , 4.6761846657013] , [ 1083556800000 , 4.7107137199876] , [ 1083643200000 , 4.7380465440178] , [ 1083729600000 , 4.6464503096187] , [ 1083816000000 , 4.7031898386398] , [ 1083902400000 , 4.6113970455103] , [ 1084161600000 , 4.5190838745349] , [ 1084248000000 , 4.6858240112362] , [ 1084334400000 , 4.645967591812] , [ 1084420800000 , 4.6179790801251] , [ 1084507200000 , 5.2501883804061] , [ 1084766400000 , 5.1783911914071] , [ 1084852800000 , 5.1599386920316] , [ 1084939200000 , 4.6518407898129] , [ 1085025600000 , 5.1780656946077] , [ 1085112000000 , 4.6065725955714] , [ 1085371200000 , 4.6521841635481] , [ 1085457600000 , 4.6647949744288] , [ 1085544000000 , 4.7466682563513] , [ 1085630400000 , 4.7209150506386] , [ 1085716800000 , 4.7009438069063] , [ 1086062400000 , 4.7786628065728] , [ 1086148800000 , 4.7006906862278] , [ 1086235200000 , 4.6189487109535] , [ 1086321600000 , 4.6622697599192] , [ 1086580800000 , 4.7062443082143] , [ 1086667200000 , 4.695677428209] , [ 1086753600000 , 4.6706939793075] , [ 1086840000000 , 4.6740459501668] , [ 1087185600000 , 4.5985200096429] , [ 1087272000000 , 4.8653223546769] , [ 1087358400000 , 4.7689698668777] , [ 1087444800000 , 4.7655140713915] , [ 1087531200000 , 4.9063134360249] , [ 1087790400000 , 4.9618791369691] , [ 1087876800000 , 4.8123002907696] , [ 1087963200000 , 4.7775900637098] , [ 1088049600000 , 4.8453040653958] , [ 1088136000000 , 5.4993674450859] , [ 1088395200000 , 5.4129139149322] , [ 1088481600000 , 5.6474668272735] , [ 1088568000000 , 2.9459514024824] , [ 1088654400000 , 2.8636355267192] , [ 1088740800000 , 2.8823758685952] , [ 1089086400000 , 2.765983593394] , [ 1089172800000 , 2.7906919735841] , [ 1089259200000 , 2.7754951779381] , [ 1089345600000 , 2.7847741457906] , [ 1089604800000 , 2.7887029312795] , [ 1089691200000 , 2.7378583801055] , [ 1089777600000 , 2.7771996196711] , [ 1089864000000 , 2.7193973654833] , [ 1089950400000 , 3.0367387079229] , [ 1090209600000 , 2.9102192685492] , [ 1090296000000 , 2.8863284789122] , [ 1090382400000 , 3.5312012993652] , [ 1090468800000 , 2.9132639655391] , [ 1090555200000 , 3.4563660018193] , [ 1090814400000 , 4.064914860099] , [ 1090900800000 , 3.9808955904664] , [ 1090987200000 , 3.3774648639094] , [ 1091073600000 , 3.3932975139182] , [ 1091160000000 , 3.3634435898808] , [ 1091419200000 , 2.6842232650317] , [ 1091505600000 , 2.6992141448213] , [ 1091592000000 , 3.2365110908137] , [ 1091678400000 , 3.2880379304585] , [ 1091764800000 , 3.1593178568862] , [ 1092024000000 , 3.6516532687154] , [ 1092110400000 , 3.5880646873506] , [ 1092196800000 , 3.1771635204813] , [ 1092283200000 , 3.1721876084837] , [ 1092369600000 , 3.2176177089476] , [ 1092628800000 , 3.2034353772176] , [ 1092715200000 , 3.1868270970914] , [ 1092801600000 , 3.3758225221765] , [ 1092888000000 , 3.2870659277483] , [ 1092974400000 , 3.4094981100458] , [ 1093233600000 , 3.2989085311695] , [ 1093320000000 , 3.3372163179485] , [ 1093406400000 , 3.3241181864077] , [ 1093492800000 , 3.3251202222669] , [ 1093579200000 , 3.2627525320187] , [ 1093838400000 , 3.2804366461928] , [ 1093924800000 , 3.2930816029164] , [ 1094011200000 , 3.2987775832752] , [ 1094097600000 , 3.3504114777327] , [ 1094184000000 , 3.3349874738248] , [ 1094529600000 , 3.3649169666716] , [ 1094616000000 , 3.2821155345039] , [ 1094702400000 , 3.2891033424462] , [ 1094788800000 , 3.3209056210498] , [ 1095048000000 , 3.3132523658143] , [ 1095134400000 , 3.3206869264932] , [ 1095220800000 , 3.2317761078221] , [ 1095307200000 , 3.3040686152239] , [ 1095393600000 , 3.283511287374] , [ 1095652800000 , 3.3197806267901] , [ 1095739200000 , 3.2435626612214] , [ 1095825600000 , 3.2219521895184] , [ 1095912000000 , 3.1028400493867] , [ 1095998400000 , 3.1615455213674] , [ 1096257600000 , 3.1156196407849] , [ 1096344000000 , 3.0914153080422] , [ 1096430400000 , 3.1865217462048] , [ 1096516800000 , 5.0518488419329] , [ 1096603200000 , 5.1570027799701] , [ 1096862400000 , 5.1536745182102] , [ 1096948800000 , 5.1213918743958] , [ 1097035200000 , 5.1966721080305] , [ 1097121600000 , 5.147048844527] , [ 1097208000000 , 5.0706856339838] , [ 1097467200000 , 5.0859530864383] , [ 1097553600000 , 5.0456830476274] , [ 1097640000000 , 5.2595396043871] , [ 1097726400000 , 5.1886141975887] , [ 1097812800000 , 5.178771850935] , [ 1098072000000 , 5.2103490038157] , [ 1098158400000 , 5.3672215044239] , [ 1098244800000 , 5.2942004144955] , [ 1098331200000 , 5.4616306787947] , [ 1098417600000 , 5.3846121749445] , [ 1098676800000 , 5.4121370915606] , [ 1098763200000 , 5.3867988364543] , [ 1098849600000 , 5.3348689003449] , [ 1098936000000 , 5.3713139402836] , [ 1099022400000 , 5.2694840386517] , [ 1099285200000 , 5.36152576613] , [ 1099371600000 , 5.1946013377303] , [ 1099458000000 , 5.147797320317] , [ 1099544400000 , 5.2218787979086] , [ 1099630800000 , 4.2297240196598] , [ 1099890000000 , 4.3309996380213] , [ 1099976400000 , 4.2301546979833] , [ 1100062800000 , 4.3092762880921] , [ 1100149200000 , 4.307769155997] , [ 1100235600000 , 4.3466461736789] , [ 1100494800000 , 4.3219280775212] , [ 1100581200000 , 5.2494205578466] , [ 1100667600000 , 5.2222488985055] , [ 1100754000000 , 5.1258653405894] , [ 1100840400000 , 5.3784172255961] , [ 1101099600000 , 5.0530060175812] , [ 1101186000000 , 5.0772183022875] , [ 1101272400000 , 5.8191089470477] , [ 1101445200000 , 5.1400084985938] , [ 1101704400000 , 5.7740779365756] , [ 1101790800000 , 5.6271381282359] , [ 1101877200000 , 5.0786111486537] , [ 1101963600000 , 4.7395062837164] , [ 1102050000000 , 4.3642819135339] , [ 1102309200000 , 4.8788473714279] , [ 1102395600000 , 4.8651500746862] , [ 1102482000000 , 4.7969720465654] , [ 1102568400000 , 4.706529240595] , [ 1102654800000 , 4.7872099248515] , [ 1102914000000 , 4.7220062790497] , [ 1103000400000 , 4.7968609240264] , [ 1103086800000 , 4.8390614998498] , [ 1103173200000 , 4.8517329290184] , [ 1103259600000 , 4.3149441239551] , [ 1103518800000 , 4.4871738839086] , [ 1103605200000 , 3.9127123546198] , [ 1103691600000 , 3.9490697882161] , [ 1103778000000 , 3.8642590501991] , [ 1104123600000 , 3.8193328881285] , [ 1104210000000 , 3.9444313530846] , [ 1104296400000 , 3.7876611108132] , [ 1104382800000 , 3.786520050655] , [ 1104469200000 , 4.5193477806708] , [ 1104728400000 , 4.6228055593582] , [ 1104814800000 , 4.8822117528037] , [ 1104901200000 , 4.8376908745624] , [ 1104987600000 , 4.7186448795618] , [ 1105074000000 , 4.7944353399991] , [ 1105333200000 , 4.7499493594108] , [ 1105419600000 , 4.7152481485596] , [ 1105506000000 , 4.772652831848] , [ 1105592400000 , 4.6959478389054] , [ 1105678800000 , 4.7469735829486] , [ 1106024400000 , 4.700055727508] , [ 1106110800000 , 4.697406415453] , [ 1106197200000 , 4.6541969609288] , [ 1106283600000 , 4.6482497273687] , [ 1106542800000 , 4.7464410887304] , [ 1106629200000 , 4.5581822800085] , [ 1106715600000 , 4.7046903882937] , [ 1106802000000 , 4.7541955629748] , [ 1106888400000 , 4.5410596563869] , [ 1107147600000 , 4.6068136491387] , [ 1107234000000 , 4.5518194614078] , [ 1107320400000 , 4.6760744238685] , [ 1107406800000 , 4.6122377389551] , [ 1107493200000 , 4.5517592985478] , [ 1107752400000 , 4.5262026746869] , [ 1107838800000 , 4.5453732289779] , [ 1107925200000 , 4.4473264714529] , [ 1108011600000 , 4.7486248237487] , [ 1108098000000 , 4.3628256743521] , [ 1108357200000 , 4.6350356292471] , [ 1108443600000 , 4.6879508818898] , [ 1108530000000 , 4.7824841159706] , [ 1108616400000 , 4.3679659491428] , [ 1108702800000 , 4.6216278685826] , [ 1109048400000 , 5.0512830899827] , [ 1109134800000 , 4.9211833720648] , [ 1109221200000 , 4.6689827360489] , [ 1109307600000 , 4.863177886258] , [ 1109566800000 , 5.0522229845508] , [ 1109653200000 , 4.511951347999] , [ 1109739600000 , 4.7421185783007] , [ 1109826000000 , 4.8763919650863] , [ 1109912400000 , 4.4655489144326] , [ 1110171600000 , 4.4003887205356] , [ 1110258000000 , 4.2953499182215] , [ 1110344400000 , 4.6376552766927] , [ 1110430800000 , 4.7273017292405] , [ 1110517200000 , 4.4087084832154] , [ 1110776400000 , 4.4959542727429] , [ 1110862800000 , 4.8104082635702] , [ 1110949200000 , 4.7689933615242] , [ 1111035600000 , 4.7290525724545] , [ 1111122000000 , 4.6908243119261] , [ 1111381200000 , 4.7793483789065] , [ 1111467600000 , 4.8343465634531] , [ 1111554000000 , 4.8997877767796] , [ 1111640400000 , 4.8446879555825] , [ 1111986000000 , 4.8481563557883] , [ 1112072400000 , 4.8330724960001] , [ 1112158800000 , 4.7915416460397] , [ 1112245200000 , 6.2851880755965] , [ 1112331600000 , 6.0343751778325] , [ 1112587200000 , 5.8527118910045] , [ 1112673600000 , 5.4393652884031] , [ 1112760000000 , 5.4421286369427] , [ 1112846400000 , 5.5758975468671] , [ 1112932800000 , 5.6819929926343] , [ 1113192000000 , 5.5775841136945] , [ 1113278400000 , 5.5436377143446] , [ 1113364800000 , 5.5710773060502] , [ 1113451200000 , 5.6254394490962] , [ 1113537600000 , 5.4684023389132] , [ 1113796800000 , 5.4895294685053] , [ 1113883200000 , 5.5482334857125] , [ 1113969600000 , 5.5547188393831] , [ 1114056000000 , 5.4129389488944] , [ 1114142400000 , 5.4374148337587] , [ 1114401600000 , 5.3847641501296] , [ 1114488000000 , 5.2878280467455] , [ 1114574400000 , 5.4522034975318] , [ 1114660800000 , 5.3594521060002] , [ 1114747200000 , 5.2420588572943] , [ 1115006400000 , 5.6606276336631] , [ 1115092800000 , 5.5230178473803] , [ 1115179200000 , 5.6290839485141] , [ 1115265600000 , 4.9727712469807] , [ 1115352000000 , 5.6618827725862] , [ 1115611200000 , 5.5643892977865] , [ 1115697600000 , 5.6004068853173] , [ 1115784000000 , 5.7133872418109] , [ 1115870400000 , 5.7555576420187] , [ 1115956800000 , 5.5711349943511] , [ 1116216000000 , 5.5540805620757] , [ 1116302400000 , 6.0415482872175] , [ 1116388800000 , 5.2798618603948] , [ 1116475200000 , 5.3538777835574] , [ 1116561600000 , 5.3767075153524] , [ 1116820800000 , 5.3656989670854] , [ 1116907200000 , 5.3894549111646] , [ 1116993600000 , 5.2959602507749] , [ 1117080000000 , 5.3041603116453] , [ 1117166400000 , 5.3513265402817] , [ 1117512000000 , 5.3042597402154] , [ 1117598400000 , 5.3830940036574] , [ 1117684800000 , 5.3640915337733] , [ 1117771200000 , 5.2424641357493] , [ 1118030400000 , 5.220943223473] , [ 1118116800000 , 5.390274597948] , [ 1118203200000 , 5.2258922939887] , [ 1118289600000 , 5.226609757616] , [ 1118376000000 , 5.4241507056066] , [ 1118635200000 , 5.2671654281895] , [ 1118721600000 , 5.2675085931666] , [ 1118808000000 , 5.3402953205449] , [ 1118894400000 , 5.3312231728129] , [ 1118980800000 , 5.0804183721655] , [ 1119240000000 , 5.0295133836202] , [ 1119326400000 , 4.9513098601892] , [ 1119412800000 , 4.9733875472667] , [ 1119499200000 , 5.4503638757024] , [ 1119585600000 , 5.1121850966213] , [ 1119844800000 , 5.4943135481574] , [ 1119931200000 , 5.2080595906057] , [ 1120017600000 , 5.5279877588814] , [ 1120104000000 , 6.679540024101] , [ 1120190400000 , 6.9579667464873] , [ 1120536000000 , 7.1861560991052] , [ 1120622400000 , 7.2488553459862] , [ 1120708800000 , 6.9281123977891] , [ 1120795200000 , 7.0183954097991] , [ 1121054400000 , 6.982471995471] , [ 1121140800000 , 7.0530086023473] , [ 1121227200000 , 6.7858799110069] , [ 1121313600000 , 6.865939748525] , [ 1121400000000 , 6.7136842364154] , [ 1121659200000 , 6.7058108447848] , [ 1121745600000 , 6.8286034893536] , [ 1121832000000 , 6.227348446981] , [ 1121918400000 , 6.4103267595588] , [ 1122004800000 , 6.4384541916729] , [ 1122264000000 , 6.8012976048913] , [ 1122350400000 , 6.6304863689862] , [ 1122436800000 , 6.6024051589843] , [ 1122523200000 , 6.5578403981454] , [ 1122609600000 , 7.0699793158618] , [ 1122868800000 , 5.70297128511] , [ 1122955200000 , 5.8599346884581] , [ 1123041600000 , 6.0432721160469] , [ 1123128000000 , 5.7085272847698] , [ 1123214400000 , 5.7739066238223] , [ 1123473600000 , 5.7407851580676] , [ 1123560000000 , 5.7503098774641] , [ 1123646400000 , 5.7350139819431] , [ 1123732800000 , 5.6387901284675] , [ 1123819200000 , 5.7064626266876] , [ 1124078400000 , 5.7735426785386] , [ 1124164800000 , 6.4849136987097] , [ 1124251200000 , 6.6216153591168] , [ 1124337600000 , 6.4980641465358] , [ 1124424000000 , 6.7613539095681] , [ 1124683200000 , 6.6865783336323] , [ 1124769600000 , 6.5712499184434] , [ 1124856000000 , 6.720170741489] , [ 1124942400000 , 6.6361956498457] , [ 1125028800000 , 6.6587153318771] , [ 1125288000000 , 6.6516914763688] , [ 1125374400000 , 6.82084224252] , [ 1125460800000 , 6.8110358144544] , [ 1125547200000 , 6.93647319994] , [ 1125633600000 , 7.0374937733289] , [ 1125979200000 , 6.7846258756745] , [ 1126065600000 , 6.9040591153524] , [ 1126152000000 , 7.0974970881943] , [ 1126238400000 , 7.1756222202082] , [ 1126497600000 , 7.0472408026096] , [ 1126584000000 , 7.0339920341342] , [ 1126670400000 , 7.2021353939179] , [ 1126756800000 , 7.0609073552108] , [ 1126843200000 , 7.004014797849] , [ 1127102400000 , 7.0400680159534] , [ 1127188800000 , 6.9843450335467] , [ 1127275200000 , 6.8880814585353] , [ 1127361600000 , 6.8543614829283] , [ 1127448000000 , 7.0464002464949] , [ 1127707200000 , 7.0173986373994] , [ 1127793600000 , 7.1143386429723] , [ 1127880000000 , 6.8611034625139] , [ 1127966400000 , 6.7545471669357] , [ 1128052800000 , 3.4108623316298] , [ 1128312000000 , 3.2358146304076] , [ 1128398400000 , 3.3486810900721] , [ 1128484800000 , 3.4841658501152] , [ 1128571200000 , 3.4581662089712] , [ 1128657600000 , 3.3815137620761] , [ 1128916800000 , 3.4974231565404] , [ 1129003200000 , 3.450184099932] , [ 1129089600000 , 3.5583842836352] , [ 1129176000000 , 3.5169603454358] , [ 1129262400000 , 3.5176978114038] , [ 1129521600000 , 3.3703592890602] , [ 1129608000000 , 3.4834570618648] , [ 1129694400000 , 1.8818434260168] , [ 1129780800000 , 3.4718401809501] , [ 1129867200000 , 3.5173146296481] , [ 1130126400000 , 3.4894834671858] , [ 1130212800000 , 3.5004514572279] , [ 1130299200000 , 3.5580877425531] , [ 1130385600000 , 3.4264846692522] , [ 1130472000000 , 3.5087175132563] , [ 1130734800000 , 3.4747366147276] , [ 1130821200000 , 3.5001994930828] , [ 1130907600000 , 3.6005100233634] , [ 1130994000000 , 3.5872694064345] , [ 1131080400000 , 3.5260521925989] , [ 1131339600000 , 3.5288462351855] , [ 1131426000000 , 3.4641649535546] , [ 1131512400000 , 3.5161931620784] , [ 1131598800000 , 3.5502260598773] , [ 1131685200000 , 3.3609479209577] , [ 1131944400000 , 3.4564684628572] , [ 1132030800000 , 3.518457312288] , [ 1132117200000 , 3.4173122983952] , [ 1132203600000 , 3.3661287991231] , [ 1132290000000 , 3.4341347614207] , [ 1132549200000 , 3.4315453279347] , [ 1132635600000 , 3.5582235129132] , [ 1132722000000 , 3.3601403083907] , [ 1132894800000 , 11.735042456197] , [ 1133154000000 , 3.2279033178203] , [ 1133240400000 , 3.2288989003019] , [ 1133326800000 , 3.1216762273473] , [ 1133413200000 , 3.3191236808366] , [ 1133499600000 , 3.1406633162912] , [ 1133758800000 , 3.1676854514161] , [ 1133845200000 , 3.1387667999364] , [ 1133931600000 , 3.2582847188262] , [ 1134018000000 , 3.2525397510316] , [ 1134104400000 , 3.1153164621531] , [ 1134363600000 , 3.2006472433155] , [ 1134450000000 , 3.1687478035612] , [ 1134536400000 , 3.1970372882292] , [ 1134622800000 , 3.4548380138956] , [ 1134709200000 , 3.3118805464002] , [ 1134968400000 , 3.326419498422] , [ 1135054800000 , 3.0390970647306] , [ 1135141200000 , 3.0782412643899] , [ 1135227600000 , 3.0929544166694] , [ 1135314000000 , 3.0818306419712] , [ 1135659600000 , 3.003312413436] , [ 1135746000000 , 3.1936998906631] , [ 1135832400000 , 3.3177551038824] , [ 1135918800000 , 3.3091613215865] , [ 1136264400000 , 2.9826177401196] , [ 1136350800000 , 2.9154923123459] , [ 1136437200000 , 3.0820319719165] , [ 1136523600000 , 3.0553583919313] , [ 1136782800000 , 3.2355273415524] , [ 1136869200000 , 3.2353049551277] , [ 1136955600000 , 3.2886317917394] , [ 1137042000000 , 3.0471701528585] , [ 1137128400000 , 3.0624568073826] , [ 1137474000000 , 3.0613364441599] , [ 1137560400000 , 3.0363355218647] , [ 1137646800000 , 3.0906664613847] , [ 1137733200000 , 3.0119817495933] , [ 1137992400000 , 3.0309654952976] , [ 1138078800000 , 3.1128124514124] , [ 1138165200000 , 3.0647154212153] , [ 1138251600000 , 3.0650605610577] , [ 1138338000000 , 3.1034627958758] , [ 1138597200000 , 3.0936374143393] , [ 1138683600000 , 3.1063435877576] , [ 1138770000000 , 3.0275743089727] , [ 1138856400000 , 2.9599684917255] , [ 1138942800000 , 3.0337617881862] , [ 1139202000000 , 3.0092058548414] , [ 1139288400000 , 3.0144780363617] , [ 1139374800000 , 2.9429987280183] , [ 1139461200000 , 2.984701201969] , [ 1139547600000 , 2.8951920125066] , [ 1139806800000 , 2.9978485844379] , [ 1139893200000 , 2.9190386448572] , [ 1139979600000 , 2.9003641090428] , [ 1140066000000 , 2.9737031873536] , [ 1140152400000 , 2.9316646939122] , [ 1140498000000 , 2.9970074993554] , [ 1140584400000 , 2.9987365595401] , [ 1140670800000 , 2.9660648090045] , [ 1140757200000 , 3.0116951121326] , [ 1141016400000 , 2.9674379764029] , [ 1141102800000 , 2.9115345133322] , [ 1141189200000 , 4.0344503315141] , [ 1141275600000 , 3.8326688104873] , [ 1141362000000 , 3.8320478551816] , [ 1141621200000 , 4.1875486284883] , [ 1141707600000 , 4.3285115138254] , [ 1141794000000 , 4.3982087935507] , [ 1141880400000 , 4.2790239034568] , [ 1141966800000 , 4.4067653344059] , [ 1142226000000 , 4.3707218547662] , [ 1142312400000 , 3.7855492134696] , [ 1142398800000 , 4.1853720862276] , [ 1142485200000 , 4.2206641653384] , [ 1142571600000 , 4.4950711219116] , [ 1142830800000 , 4.3800075450183] , [ 1142917200000 , 4.8205423187517] , [ 1143003600000 , 4.3872105163909] , [ 1143090000000 , 4.4227936414572] , [ 1143176400000 , 4.4701267766602] , [ 1143435600000 , 4.7445205307774] , [ 1143522000000 , 4.7471202084025] , [ 1143608400000 , 4.8113331137801] , [ 1143694800000 , 4.6967554281063] , [ 1143781200000 , 5.9781494476828] , [ 1144036800000 , 5.8882232918224] , [ 1144123200000 , 5.5645236773128] , [ 1144209600000 , 5.5353638892072] , [ 1144296000000 , 5.4980370986983] , [ 1144382400000 , 5.5846124418955] , [ 1144641600000 , 5.4555363382638] , [ 1144728000000 , 5.3869979612657] , [ 1144814400000 , 5.4675143705442] , [ 1144900800000 , 5.5086675311517] , [ 1145246400000 , 5.5906646811935] , [ 1145332800000 , 5.4833760916669] , [ 1145419200000 , 5.6197194837927] , [ 1145505600000 , 5.6880792497766] , [ 1145592000000 , 5.4575700123977] , [ 1145851200000 , 5.5173370831613] , [ 1145937600000 , 5.5299203373151] , [ 1146024000000 , 5.387648786116] , [ 1146110400000 , 5.2674121240033] , [ 1146196800000 , 5.4964006280171] , [ 1146456000000 , 5.579620146143] , [ 1146542400000 , 5.4972307401747] , [ 1146628800000 , 5.5488320813617] , [ 1146715200000 , 5.5010861828696] , [ 1146801600000 , 5.5872167903393] , [ 1147060800000 , 5.5673110174086] , [ 1147147200000 , 5.5885861590286] , [ 1147233600000 , 5.4797245551396] , [ 1147320000000 , 5.3304784516943] , [ 1147406400000 , 5.4252888938226] , [ 1147665600000 , 5.4351902591804] , [ 1147752000000 , 5.4861470797122] , [ 1147838400000 , 5.3539716890961] , [ 1147924800000 , 5.3418524585426] , [ 1148011200000 , 5.4109814034757] , [ 1148270400000 , 5.4143097431759] , [ 1148356800000 , 5.5022387992138] , [ 1148443200000 , 5.4933946997972] , [ 1148529600000 , 5.5255343422712] , [ 1148616000000 , 5.5705519403969] , [ 1148961600000 , 5.5743282380083] , [ 1149048000000 , 5.5221677872914] , [ 1149134400000 , 5.5913258249393] , [ 1149220800000 , 5.4890290204671] , [ 1149480000000 , 5.3513484107681] , [ 1149566400000 , 5.2952846332451] , [ 1149652800000 , 5.3809941241474] , [ 1149739200000 , 5.1807728121848] , [ 1149825600000 , 5.4015136223237] , [ 1150084800000 , 5.0948328195786] , [ 1150171200000 , 5.040817069216] , [ 1150257600000 , 5.2190053225359] , [ 1150344000000 , 4.987180477474] , [ 1150430400000 , 4.9224737306547] , [ 1150689600000 , 4.9480789412185] , [ 1150776000000 , 4.7905677717437] , [ 1150862400000 , 4.896112525399] , [ 1150948800000 , 4.8503941051066] , [ 1151035200000 , 5.0918526954809] , [ 1151294400000 , 5.0211030099049] , [ 1151380800000 , 5.0571441989304] , [ 1151467200000 , 4.5508625784706] , [ 1151553600000 , 4.5380226872913] , [ 1151640000000 , 6.6623465740296] , [ 1151899200000 , 6.6950261251744] , [ 1152072000000 , 6.5207939376521] , [ 1152158400000 , 6.5172737724921] , [ 1152244800000 , 6.3254714481969] , [ 1152504000000 , 6.6543540942611] , [ 1152590400000 , 6.2181048020914] , [ 1152676800000 , 6.6355576155026] , [ 1152763200000 , 6.1506956981831] , [ 1152849600000 , 6.5254563609616] , [ 1153108800000 , 6.4229380681102] , [ 1153195200000 , 6.4267393400886] , [ 1153281600000 , 6.151901373457] , [ 1153368000000 , 6.729525603133] , [ 1153454400000 , 6.6690569426284] , [ 1153713600000 , 8.1103304960696] , [ 1153800000000 , 6.445789660103] , [ 1153886400000 , 6.9812673500591] , [ 1153972800000 , 7.0211889294387] , [ 1154059200000 , 6.9687346671468] , [ 1154318400000 , 6.5961804321699] , [ 1154404800000 , 6.7373242629452] , [ 1154491200000 , 7.0300224654331] , [ 1154577600000 , 7.0031824973822] , [ 1154664000000 , 6.6620252125201] , [ 1154923200000 , 6.9573760194666] , [ 1155009600000 , 6.9486767083333] , [ 1155096000000 , 6.9404306158952] , [ 1155182400000 , 6.878361612199] , [ 1155268800000 , 6.8457420087184] , [ 1155528000000 , 6.9413203057534] , [ 1155614400000 , 7.1460233013256] , [ 1155700800000 , 7.2079148876614] , [ 1155787200000 , 7.150254983246] , [ 1155873600000 , 6.9421709366599] , [ 1156132800000 , 6.9475138904927] , [ 1156219200000 , 6.8080230073973] , [ 1156305600000 , 7.0339338125578] , [ 1156392000000 , 7.1193976160325] , [ 1156478400000 , 6.7160059917598] , [ 1156737600000 , 7.0844543078971] , [ 1156824000000 , 6.836665506475] , [ 1156910400000 , 6.6901412217505] , [ 1156996800000 , 7.1683903789179] , [ 1157083200000 , 6.819046312698] , [ 1157428800000 , 6.8255448366096] , [ 1157515200000 , 6.5253838879686] , [ 1157601600000 , 6.7747008690913] , [ 1157688000000 , 6.5606360796599] , [ 1157947200000 , 6.0710545360895] , [ 1158033600000 , 6.1468209558297] , [ 1158120000000 , 6.0920132683077] , [ 1158206400000 , 5.9514599625321] , [ 1158292800000 , 5.9152150415048] , [ 1158552000000 , 5.4885371988375] , [ 1158638400000 , 5.3529183330919] , [ 1158724800000 , 5.2268271486007] , [ 1158811200000 , 5.2632401820804] , [ 1158897600000 , 5.3761008893123] , [ 1159156800000 , 5.343343969615] , [ 1159243200000 , 5.1802644058266] , [ 1159329600000 , 5.1955066022022] , [ 1159416000000 , 5.2103052365711] , [ 1159502400000 , 5.2084626961236] , [ 1159761600000 , 2.8840888297049] , [ 1159848000000 , 3.2943030991496] , [ 1159934400000 , 2.7728246415702] , [ 1160020800000 , 2.8108425906082] , [ 1160107200000 , 2.9382729973757] , [ 1160366400000 , 2.8950025461164] , [ 1160452800000 , 3.0093478296508] , [ 1160539200000 , 2.9006448001696] , [ 1160625600000 , 3.0223681975413] , [ 1160712000000 , 3.0394975797056] , [ 1160971200000 , 3.131680903118] , [ 1161057600000 , 3.0463297219216] , [ 1161144000000 , 3.1180252293295] , [ 1161230400000 , 3.130091086302] , [ 1161316800000 , 3.066326072633] , [ 1161576000000 , 3.0336144148462] , [ 1161662400000 , 4.3270779423662] , [ 1161748800000 , 4.2820633154218] , [ 1161835200000 , 3.0921691457346] , [ 1161921600000 , 4.1567001237107] , [ 1162184400000 , 4.1342160586191] , [ 1162270800000 , 4.4201838733711] , [ 1162357200000 , 4.0601760116035] , [ 1162443600000 , 3.9226312951714] , [ 1162530000000 , 4.1727741508378] , [ 1162789200000 , 4.1751639139824] , [ 1162875600000 , 4.2104062763294] , [ 1162962000000 , 4.1294443133884] , [ 1163048400000 , 4.2279826023735] , [ 1163134800000 , 4.2476664933844] , [ 1163394000000 , 4.163004868497] , [ 1163480400000 , 4.3282212484836] , [ 1163566800000 , 4.3095618979983] , [ 1163653200000 , 3.0885817597712] , [ 1163739600000 , 3.076355031762] , [ 1163998800000 , 3.1715177595682] , [ 1164085200000 , 2.9935201304051] , [ 1164171600000 , 2.9505588485613] , [ 1164344400000 , 3.0040653109772] , [ 1164603600000 , 2.983071705957] , [ 1164690000000 , 3.0371467604301] , [ 1164776400000 , 3.0274381543998] , [ 1164862800000 , 3.1346408080373] , [ 1164949200000 , 3.4087737977505] , [ 1165208400000 , 3.4254924739731] , [ 1165294800000 , 3.5343918595576] , [ 1165381200000 , 3.4125407926515] , [ 1165467600000 , 3.5198360671703] , [ 1165554000000 , 3.5365570181792] , [ 1165813200000 , 3.5681992574741] , [ 1165899600000 , 3.6494092817253] , [ 1165986000000 , 3.5310150526919] , [ 1166072400000 , 3.5439775113761] , [ 1166158800000 , 3.5592274821478] , [ 1166418000000 , 3.5867485487725] , [ 1166504400000 , 3.5764165692897] , [ 1166590800000 , 3.4518894365921] , [ 1166677200000 , 3.5380784887815] , [ 1166763600000 , 3.533640313869] , [ 1167109200000 , 3.6644855856847] , [ 1167195600000 , 3.6271132635643] , [ 1167282000000 , 3.4631205159228] , [ 1167368400000 , 3.430151414344] , [ 1167800400000 , 5.8016688576954] , [ 1167886800000 , 5.8561012507285] , [ 1167973200000 , 5.9000670179267] , [ 1168232400000 , 5.9263896806362] , [ 1168318800000 , 5.8543796802947] , [ 1168405200000 , 5.7673741262945] , [ 1168491600000 , 5.8344654051468] , [ 1168578000000 , 5.8151063287842] , [ 1168923600000 , 5.7793199458949] , [ 1169010000000 , 5.8532551829404] , [ 1169096400000 , 5.9034808610366] , [ 1169182800000 , 6.2619220923265] , [ 1169442000000 , 6.2994314613823] , [ 1169528400000 , 6.3906818506851] , [ 1169614800000 , 6.425415967321] , [ 1169701200000 , 6.3440949416215] , [ 1169787600000 , 6.384556597427] , [ 1170046800000 , 6.2566253792346] , [ 1170133200000 , 6.2979627715121] , [ 1170219600000 , 6.3195197098848] , [ 1170306000000 , 6.3123489066732] , [ 1170392400000 , 6.4516205217967] , [ 1170651600000 , 6.4993536967398] , [ 1170738000000 , 6.4124443740349] , [ 1170824400000 , 6.757657132213] , [ 1170910800000 , 6.3680878374669] , [ 1170997200000 , 6.5581337362589] , [ 1171256400000 , 6.3072373462631] , [ 1171342800000 , 6.3873626954538] , [ 1171429200000 , 6.4240682680756] , [ 1171515600000 , 5.9671496300102] , [ 1171602000000 , 6.037507658937] , [ 1171947600000 , 6.1062250589464] , [ 1172034000000 , 6.2801262477535] , [ 1172120400000 , 6.302066296315] , [ 1172206800000 , 6.4887595917266] , [ 1172466000000 , 6.4467217927379] , [ 1172552400000 , 6.389548704248] , [ 1172638800000 , 6.1278454619334] , [ 1172725200000 , 6.9211809156189] , [ 1172811600000 , 6.9615876634985] , [ 1173070800000 , 6.9604977762869] , [ 1173157200000 , 6.9326942508034] , [ 1173243600000 , 6.9589612884303] , [ 1173330000000 , 6.7777321699871] , [ 1173416400000 , 6.8923887293863] , [ 1173672000000 , 6.7517726115965] , [ 1173758400000 , 7.023147151802] , [ 1173844800000 , 6.7245022171818] , [ 1173931200000 , 7.0743269506687] , [ 1174017600000 , 6.4584074364592] , [ 1174276800000 , 6.8742726853711] , [ 1174363200000 , 6.5873076915895] , [ 1174449600000 , 6.5814033590606] , [ 1174536000000 , 7.2462045395149] , [ 1174622400000 , 6.7630455587597] , [ 1174881600000 , 6.79757865691] , [ 1174968000000 , 6.7319453489698] , [ 1175054400000 , 6.7524033957435] , [ 1175140800000 , 6.7249864218552] , [ 1175227200000 , 7.1959861930335] , [ 1175486400000 , 5.5034477669994] , [ 1175572800000 , 5.5536199499359] , [ 1175659200000 , 5.5683896272104] , [ 1175745600000 , 5.3661847852395] , [ 1176091200000 , 5.3681810358806] , [ 1176177600000 , 5.3796042695304] , [ 1176264000000 , 5.2927411078476] , [ 1176350400000 , 5.4032484228754] , [ 1176436800000 , 5.2419903116433] , [ 1176696000000 , 5.287599012843] , [ 1176782400000 , 5.4691235182112] , [ 1176868800000 , 5.3771769229628] , [ 1176955200000 , 5.9053806042607] , [ 1177041600000 , 6.1057089416699] , [ 1177300800000 , 6.015503426755] , [ 1177387200000 , 5.9465881177914] , [ 1177473600000 , 6.3395994655322] , [ 1177560000000 , 5.7744036174212] , [ 1177646400000 , 5.5231895043329] , [ 1177905600000 , 5.6558448488497] , [ 1177992000000 , 5.5860638502864] , [ 1178078400000 , 5.459359650014] , [ 1178164800000 , 6.2050696116216] , [ 1178251200000 , 5.4292571311168] , [ 1178510400000 , 5.4791270687287] , [ 1178596800000 , 5.3040118648128] , [ 1178683200000 , 5.2873031992628] , [ 1178769600000 , 5.3210779246389] , [ 1178856000000 , 5.3400026357415] , [ 1179115200000 , 5.293939815581] , [ 1179201600000 , 5.3708317127123] , [ 1179288000000 , 5.3475210104787] , [ 1179374400000 , 5.2540920001683] , [ 1179460800000 , 5.3952642205536] , [ 1179720000000 , 5.2813482135364] , [ 1179806400000 , 5.4124510959808] , [ 1179892800000 , 5.5035421086896] , [ 1179979200000 , 5.4960663121103] , [ 1180065600000 , 5.4616352053186] , [ 1180411200000 , 5.5557436718824] , [ 1180497600000 , 5.5723551711376] , [ 1180584000000 , 5.3533738156704] , [ 1180670400000 , 5.9374805717135] , [ 1180929600000 , 6.070211947] , [ 1181016000000 , 6.1495771176188] , [ 1181102400000 , 6.1212709443999] , [ 1181188800000 , 5.8981165186278] , [ 1181275200000 , 6.1574300768597] , [ 1181534400000 , 6.0408959483815] , [ 1181620800000 , 5.9743807515105] , [ 1181707200000 , 6.0241707399628] , [ 1181793600000 , 6.0471828073556] , [ 1181880000000 , 6.0231956020193] , [ 1182139200000 , 5.8062793529953] , [ 1182225600000 , 5.8947211623182] , [ 1182312000000 , 5.9167961848519] , [ 1182398400000 , 5.9424652653682] , [ 1182484800000 , 5.8806090703762] , [ 1182744000000 , 5.7299888447741] , [ 1182830400000 , 5.9066810232948] , [ 1182916800000 , 5.8341177954444] , [ 1183003200000 , 5.9129760135708] , [ 1183089600000 , 5.9945552989675] , [ 1183348800000 , 5.3299023432099] , [ 1183435200000 , 5.5327509208748] , [ 1183608000000 , 5.4679149798396] , [ 1183694400000 , 5.321027188349] , [ 1183953600000 , 5.5403186088645] , [ 1184040000000 , 5.3532172072605] , [ 1184126400000 , 5.4146524564901] , [ 1184212800000 , 5.4116029343603] , [ 1184299200000 , 5.5596046002215] , [ 1184558400000 , 5.4963271012754] , [ 1184644800000 , 5.5285285896202] , [ 1184731200000 , 5.602508176099] , [ 1184817600000 , 5.5271120290838] , [ 1184904000000 , 5.6787884781165] , [ 1185163200000 , 6.2449614526858] , [ 1185249600000 , 6.2338400405605] , [ 1185336000000 , 6.1903596084878] , [ 1185422400000 , 6.0055059085675] , [ 1185508800000 , 5.9346003801545] , [ 1185768000000 , 5.9905732220651] , [ 1185854400000 , 6.0999445264832] , [ 1185940800000 , 5.7393997675728] , [ 1186027200000 , 5.9856751678157] , [ 1186113600000 , 5.8983987083987] , [ 1186372800000 , 5.8986708020035] , [ 1186459200000 , 5.844235572237] , [ 1186545600000 , 5.8996131867044] , [ 1186632000000 , 5.8255302060964] , [ 1186718400000 , 5.6149242344805] , [ 1186977600000 , 5.73472051311] , [ 1187064000000 , 5.8068166954067] , [ 1187150400000 , 5.729516260903] , [ 1187236800000 , 5.8112325352025] , [ 1187323200000 , 5.7449344656735] , [ 1187582400000 , 5.8154490136989] , [ 1187668800000 , 5.5910253062061] , [ 1187755200000 , 5.6409093357668] , [ 1187841600000 , 5.6684119675685] , [ 1187928000000 , 5.7475041526529] , [ 1188187200000 , 5.6871327863607] , [ 1188273600000 , 5.7037098436441] , [ 1188360000000 , 5.811101788082] , [ 1188446400000 , 5.4648944238788] , [ 1188532800000 , 5.6043541592909] , [ 1188878400000 , 5.6661461983708] , [ 1188964800000 , 5.7778417392083] , [ 1189051200000 , 5.8219018814405] , [ 1189137600000 , 5.7797660510698] , [ 1189396800000 , 5.6238295072176] , [ 1189483200000 , 5.6044766919031] , [ 1189569600000 , 5.7571550661925] , [ 1189656000000 , 5.6010490111957] , [ 1189742400000 , 5.7432881994906] , [ 1190001600000 , 5.6652449794256] , [ 1190088000000 , 5.6290799514664] , [ 1190174400000 , 5.6691890845799] , [ 1190260800000 , 5.5059968368363] , [ 1190347200000 , 5.6482979155196] , [ 1190606400000 , 5.3118510791031] , [ 1190692800000 , 5.1610898454063] , [ 1190779200000 , 5.2918392926565] , [ 1190865600000 , 5.4934523651225] , [ 1190952000000 , 5.3071617372149] , [ 1191211200000 , 7.531583603958] , [ 1191297600000 , 7.6309179887693] , [ 1191384000000 , 7.7475612851779] , [ 1191470400000 , 7.530998665759] , [ 1191556800000 , 7.5052768495204] , [ 1191816000000 , 7.3392760770741] , [ 1191902400000 , 7.5123552038565] , [ 1191988800000 , 7.4304766314143] , [ 1192075200000 , 7.5510139656757] , [ 1192161600000 , 7.3478862182543] , [ 1192420800000 , 7.4114198714548] , [ 1192507200000 , 7.2190603208315] , [ 1192593600000 , 7.3648933467876] , [ 1192680000000 , 7.2521365252803] , [ 1192766400000 , 7.5138792968593] , [ 1193025600000 , 7.5268260503433] , [ 1193112000000 , 7.2866924102812] , [ 1193198400000 , 7.3292193432641] , [ 1193284800000 , 7.0889666924132] , [ 1193371200000 , 7.3894936731886] , [ 1193630400000 , 7.4807562909254] , [ 1193716800000 , 7.4710525940586] , [ 1193803200000 , 7.2232358174515] , [ 1193889600000 , 7.1679314068527] , [ 1193976000000 , 7.0432978541917] , [ 1194238800000 , 7.0798348151984] , [ 1194325200000 , 6.9036648063505] , [ 1194411600000 , 8.370612728316] , [ 1194498000000 , 8.2104852640355] , [ 1194584400000 , 8.21190559032] , [ 1194843600000 , 8.9441911238644] , [ 1194930000000 , 7.2791523696694] , [ 1195016400000 , 8.4730149160941] , [ 1195102800000 , 8.209185956679] , [ 1195189200000 , 8.0011719666435] , [ 1195448400000 , 8.4778945672244] , [ 1195534800000 , 8.1219789507817] , [ 1195621200000 , 8.1291027449849] , [ 1195794000000 , 7.6854413203628] , [ 1196053200000 , 8.2394627589421] , [ 1196139600000 , 7.6000223598168] , [ 1196226000000 , 7.8489027600031] , [ 1196312400000 , 7.9388039747927] , [ 1196398800000 , 8.6805483342203] , [ 1196658000000 , 7.819093258259] , [ 1196744400000 , 7.7328736519041] , [ 1196830800000 , 7.8067506366048] , [ 1196917200000 , 6.5017053051142] , [ 1197003600000 , 6.1775351770769] , [ 1197262800000 , 6.3697699960877] , [ 1197349200000 , 7.4308824002833] , [ 1197435600000 , 7.5040897820745] , [ 1197522000000 , 7.5038617774347] , [ 1197608400000 , 7.2308756320739] , [ 1197867600000 , 7.3876330451792] , [ 1197954000000 , 7.3677231200441] , [ 1198040400000 , 7.4997185766307] , [ 1198126800000 , 7.3812934068041] , [ 1198213200000 , 7.52504039022] , [ 1198472400000 , 7.428638935131] , [ 1198645200000 , 7.5778555365401] , [ 1198731600000 , 7.6527475801177] , [ 1198818000000 , 7.3175189110682] , [ 1199077200000 , 7.3371271757066] , [ 1199250000000 , 7.2857225868223] , [ 1199336400000 , 7.1636990523452] , [ 1199422800000 , 7.1709616119198] , [ 1199682000000 , 7.1589364622782] , [ 1199768400000 , 7.1421873228132] , [ 1199854800000 , 6.9760466250496] , [ 1199941200000 , 6.9426058335034] , [ 1200027600000 , 6.7349851141438] , [ 1200286800000 , 6.6388480580742] , [ 1200373200000 , 6.8102317749132] , [ 1200459600000 , 6.9238179784892] , [ 1200546000000 , 7.6830543729485] , [ 1200632400000 , 7.425318532414] , [ 1200978000000 , 7.3857247273437] , [ 1201064400000 , 7.7083061793365] , [ 1201150800000 , 8.2583336829393] , [ 1201237200000 , 8.0128040886069] , [ 1201496400000 , 8.0358480692245] , [ 1201582800000 , 8.2671543182705] , [ 1201669200000 , 8.1161243143207] , [ 1201755600000 , 7.4107747544517] , [ 1201842000000 , 7.5294510611935] , [ 1202101200000 , 7.2113531120373] , [ 1202187600000 , 7.8864587947242] , [ 1202274000000 , 6.9586132197617] , [ 1202360400000 , 7.0281940962194] , [ 1202446800000 , 7.1447318591793] , [ 1202706000000 , 6.9935545311206] , [ 1202792400000 , 7.2883839931897] , [ 1202878800000 , 6.8361262907914] , [ 1202965200000 , 7.045918453252] , [ 1203051600000 , 6.8486631874079] , [ 1203397200000 , 6.8640500433739] , [ 1203483600000 , 6.8575958252384] , [ 1203570000000 , 6.7251897963912] , [ 1203656400000 , 6.6399026114773] , [ 1203915600000 , 6.8764282448817] , [ 1204002000000 , 6.7348063208959] , [ 1204088400000 , 7.7837095774772] , [ 1204174800000 , 7.0420456338856] , [ 1204261200000 , 6.9909081255568] , [ 1204520400000 , 7.131596990042] , [ 1204606800000 , 6.988562066534] , [ 1204693200000 , 6.9050375888978] , [ 1204779600000 , 6.546453758899] , [ 1204866000000 , 6.4087398018081] , [ 1205121600000 , 6.4589849850596] , [ 1205208000000 , 6.7042664457473] , [ 1205294400000 , 7.6568395392123] , [ 1205380800000 , 8.5402215462225] , [ 1205467200000 , 6.5463875174652] , [ 1205726400000 , 7.2179123617086] , [ 1205812800000 , 7.5810592003363] , [ 1205899200000 , 6.7979916806379] , [ 1205985600000 , 6.6322561510492] , [ 1206331200000 , 7.0681121398936] , [ 1206417600000 , 6.9023924998489] , [ 1206504000000 , 7.0389663853819] , [ 1206590400000 , 6.7662664840578] , [ 1206676800000 , 6.8266199445058] , [ 1206936000000 , 6.4383120442898] , [ 1207022400000 , 6.3647386363738] , [ 1207108800000 , 6.4786095779231] , [ 1207195200000 , 6.6539452625097] , [ 1207281600000 , 6.4080871268417] , [ 1207540800000 , 6.3709462512131] , [ 1207627200000 , 6.4178074036765] , [ 1207713600000 , 6.2886973966323] , [ 1207800000000 , 6.3496231600179] , [ 1207886400000 , 6.364158873025] , [ 1208145600000 , 6.0652076854316] , [ 1208232000000 , 6.1936331476093] , [ 1208318400000 , 6.0445426863227] , [ 1208404800000 , 6.1585521703334] , [ 1208491200000 , 6.1043624228944] , [ 1208750400000 , 6.3307197349304] , [ 1208836800000 , 6.1576593011564] , [ 1208923200000 , 6.3612863667708] , [ 1209009600000 , 6.3419854183664] , [ 1209096000000 , 6.3914985838301] , [ 1209355200000 , 6.6406534589316] , [ 1209441600000 , 6.3307424536973] , [ 1209528000000 , 6.1006329967357] , [ 1209614400000 , 6.1050692944877] , [ 1209700800000 , 6.2416533654448] , [ 1209960000000 , 6.0323755356142] , [ 1210046400000 , 5.8808279864141] , [ 1210132800000 , 5.8602372119567] , [ 1210219200000 , 5.8301290507881] , [ 1210305600000 , 5.9306036835352] , [ 1210564800000 , 5.8535113492263] , [ 1210651200000 , 5.869024671798] , [ 1210737600000 , 5.9968915060212] , [ 1210824000000 , 6.4841046190145] , [ 1210910400000 , 6.3911843735792] , [ 1211169600000 , 6.4279145976681] , [ 1211256000000 , 6.3344615627902] , [ 1211342400000 , 6.5451435993219] , [ 1211428800000 , 6.3263257246883] , [ 1211515200000 , 6.3834858918468] , [ 1211860800000 , 6.2756674350876] , [ 1211947200000 , 6.4087274603138] , [ 1212033600000 , 6.4056567020406] , [ 1212120000000 , 6.4668213862667] , [ 1212379200000 , 5.6899479336982] , [ 1212465600000 , 5.6571493593707] , [ 1212552000000 , 5.6420741867959] , [ 1212638400000 , 5.7125783186014] , [ 1212724800000 , 5.7095761377505] , [ 1212984000000 , 5.8214360886338] , [ 1213070400000 , 5.5929840492055] , [ 1213156800000 , 5.6736904761447] , [ 1213243200000 , 5.6378543169519] , [ 1213329600000 , 5.6654766298683] , [ 1213588800000 , 5.6141677216839] , [ 1213675200000 , 5.4895830900975] , [ 1213761600000 , 5.4418314612881] , [ 1213848000000 , 5.4089360286943] , [ 1213934400000 , 5.4103978864671] , [ 1214193600000 , 5.2772486632171] , [ 1214280000000 , 5.303434238248] , [ 1214366400000 , 5.3465810683818] , [ 1214452800000 , 5.31748624571] , [ 1214539200000 , 5.3256225817229] , [ 1214798400000 , 4.5634711885535] , [ 1214884800000 , 4.3352054133566] , [ 1214971200000 , 5.2858518479538] , [ 1215057600000 , 4.3089240878568] , [ 1215403200000 , 5.3310390210237] , [ 1215489600000 , 4.3994931570144] , [ 1215576000000 , 4.5262376681773] , [ 1215662400000 , 5.6201952995306] , [ 1215748800000 , 5.7241281187916] , [ 1216008000000 , 5.5945309751232] , [ 1216094400000 , 5.6549814025292] , [ 1216180800000 , 5.7173450472402] , [ 1216267200000 , 4.8222871994727] , [ 1216353600000 , 4.7662777688314] , [ 1216612800000 , 4.8973254357168] , [ 1216699200000 , 5.1341869729148] , [ 1216785600000 , 5.3227315843504] , [ 1216872000000 , 5.1605346178496] , [ 1216958400000 , 5.1779217784942] , [ 1217217600000 , 5.1627260249415] , [ 1217304000000 , 5.151367795375] , [ 1217390400000 , 5.2540963371903] , [ 1217476800000 , 5.2434106263894] , [ 1217563200000 , 5.123242170685] , [ 1217822400000 , 5.1151102720743] , [ 1217908800000 , 5.1571751778012] , [ 1217995200000 , 5.2813409796102] , [ 1218081600000 , 5.1878006573389] , [ 1218168000000 , 5.1633338429958] , [ 1218427200000 , 5.1658687536577] , [ 1218513600000 , 5.1963762301985] , [ 1218600000000 , 5.1904592425375] , [ 1218686400000 , 5.4599132933833] , [ 1218772800000 , 5.2951023740641] , [ 1219032000000 , 5.257190974208] , [ 1219118400000 , 5.205960747901] , [ 1219204800000 , 5.1564752380303] , [ 1219291200000 , 5.244274327757] , [ 1219377600000 , 5.3199814862531] , [ 1219636800000 , 5.2124082442509] , [ 1219723200000 , 5.2148884814248] , [ 1219809600000 , 5.2660924194272] , [ 1219896000000 , 5.3333946450071] , [ 1219982400000 , 5.4030897227976] , [ 1220328000000 , 6.1632828416656] , [ 1220414400000 , 6.1792048822181] , [ 1220500800000 , 5.9713757976894] , [ 1220587200000 , 5.8521299391245] , [ 1220846400000 , 5.9436493095157] , [ 1220932800000 , 5.9817984783499] , [ 1221019200000 , 5.7172182770579] , [ 1221105600000 , 5.7666370648538] , [ 1221192000000 , 5.944964277141] , [ 1221451200000 , 5.9719257119302] , [ 1221537600000 , 5.9802942073043] , [ 1221624000000 , 6.0256936190406] , [ 1221710400000 , 6.1091144225631] , [ 1221796800000 , 6.3904862634985] , [ 1222056000000 , 6.0592851258076] , [ 1222142400000 , 6.256156252881] , [ 1222228800000 , 6.1073080430961] , [ 1222315200000 , 6.2344500218342] , [ 1222401600000 , 6.0278578646831] , [ 1222660800000 , 6.2886980700582] , [ 1222747200000 , 6.3715867597887] , [ 1222833600000 , 6.1004828190244] , [ 1222920000000 , 6.8705724589124] , [ 1223006400000 , 7.3931897046016] , [ 1223265600000 , 7.1966014906334] , [ 1223352000000 , 7.1552556121799] , [ 1223438400000 , 6.9617585633052] , [ 1223524800000 , 6.9162489852899] , [ 1223611200000 , 6.4650063901045] , [ 1223870400000 , 5.8889901580469] , [ 1223956800000 , 6.3124352251941] , [ 1224043200000 , 7.0534241910929] , [ 1224129600000 , 6.928171307307] , [ 1224216000000 , 6.7743655360364] , [ 1224475200000 , 6.7381698308339] , [ 1224561600000 , 6.7054370506226] , [ 1224648000000 , 6.406504822482] , [ 1224734400000 , 7.103382664093] , [ 1224820800000 , 6.879053118491] , [ 1225080000000 , 7.0501530951534] , [ 1225166400000 , 7.2410219315205] , [ 1225252800000 , 7.2149734232993] , [ 1225339200000 , 6.1000750580465] , [ 1225425600000 , 6.5608998237398] , [ 1225688400000 , 7.123988980106] , [ 1225774800000 , 6.8776171218083] , [ 1225861200000 , 7.0158464310889] , [ 1225947600000 , 8.8410075944503] , [ 1226034000000 , 8.2074921164754] , [ 1226293200000 , 7.9855856702348] , [ 1226379600000 , 7.4313803657221] , [ 1226466000000 , 7.7020191147112] , [ 1226552400000 , 7.8028444105143] , [ 1226638800000 , 7.6554780192622] , [ 1226898000000 , 7.4595847958205] , [ 1226984400000 , 6.994906649404] , [ 1227070800000 , 7.4482824027772] , [ 1227157200000 , 7.3874704107731] , [ 1227243600000 , 6.9798023195892] , [ 1227502800000 , 7.4400257060602] , [ 1227589200000 , 7.7210407467182] , [ 1227675600000 , 7.4732422248789] , [ 1227848400000 , 7.7684304152306] , [ 1228107600000 , 8.5329094785625] , [ 1228194000000 , 8.8060305674656] , [ 1228280400000 , 8.899784335492] , [ 1228366800000 , 9.2784500142104] , [ 1228453200000 , 9.6759213234865] , [ 1228712400000 , 9.7785689323747] , [ 1228798800000 , 9.6499277173316] , [ 1228885200000 , 9.7585714821212] , [ 1228971600000 , 9.2122768495179] , [ 1229058000000 , 9.2526029184492] , [ 1229317200000 , 8.6706050462054] , [ 1229403600000 , 8.9780128399008] , [ 1229490000000 , 8.8057156535541] , [ 1229576400000 , 8.6966973743454] , [ 1229662800000 , 9.2140451310059] , [ 1229922000000 , 9.1309435083258] , [ 1230008400000 , 8.9109121975657] , [ 1230094800000 , 9.3464773473523] , [ 1230267600000 , 9.3610012655273] , [ 1230526800000 , 9.1827417030369] , [ 1230613200000 , 9.2670916903893] , [ 1230699600000 , 6.3431080048202] , [ 1230872400000 , 6.3013750687934] , [ 1231131600000 , 6.5099489965673] , [ 1231218000000 , 6.55849743454] , [ 1231304400000 , 6.4714630756925] , [ 1231390800000 , 6.5833998310811] , [ 1231477200000 , 6.5683112215553] , [ 1231736400000 , 6.3757002218161] , [ 1231822800000 , 6.693592184847] , [ 1231909200000 , 6.3253456974111] , [ 1231995600000 , 6.5288974953258] , [ 1232082000000 , 6.781495037238] , [ 1232427600000 , 6.4610451189687] , [ 1232514000000 , 6.6136023626372] , [ 1232600400000 , 6.3608139695636] , [ 1232686800000 , 6.2558795703405] , [ 1232946000000 , 6.4523686249378] , [ 1233032400000 , 6.3062428270396] , [ 1233118800000 , 6.6540931467275] , [ 1233205200000 , 6.4700292566789] , [ 1233291600000 , 6.2781833062823] , [ 1233550800000 , 5.9819810437366] , [ 1233637200000 , 6.3209702844141] , [ 1233723600000 , 6.1530614913748] , [ 1233810000000 , 6.323527908308] , [ 1233896400000 , 6.6574310261787] , [ 1234155600000 , 6.5778720158356] , [ 1234242000000 , 6.1761520311553] , [ 1234328400000 , 6.3875582022497] , [ 1234414800000 , 6.3842803816596] , [ 1234501200000 , 6.490716781387] , [ 1234846800000 , 6.3497435072981] , [ 1234933200000 , 6.116823917335] , [ 1235019600000 , 5.8740416534912] , [ 1235106000000 , 6.0737212906119] , [ 1235365200000 , 5.9585726083343] , [ 1235451600000 , 5.9455614640799] , [ 1235538000000 , 6.0341211768721] , [ 1235624400000 , 6.162371611965] , [ 1235710800000 , 6.1017574140154] , [ 1235970000000 , 5.1678350615926] , [ 1236056400000 , 5.4399137126506] , [ 1236142800000 , 5.5206558716544] , [ 1236229200000 , 5.0152715717628] , [ 1236315600000 , 5.0283432202879] , [ 1236571200000 , 5.0074448658938] , [ 1236657600000 , 5.5939616394314] , [ 1236744000000 , 5.5935741355267] , [ 1236830400000 , 5.8287996728334] , [ 1236916800000 , 6.0898295176408] , [ 1237176000000 , 5.9620067963125] , [ 1237262400000 , 5.9302401949611] , [ 1237348800000 , 6.0326010616645] , [ 1237435200000 , 5.9990119435174] , [ 1237521600000 , 5.8410716927224] , [ 1237780800000 , 6.0566484324084] , [ 1237867200000 , 5.9635888651044] , [ 1237953600000 , 6.0073272944344] , [ 1238040000000 , 6.0275162466085] , [ 1238126400000 , 6.0410443686856] , [ 1238385600000 , 5.9336174190192] , [ 1238472000000 , 6.7129522346788] , [ 1238558400000 , 6.6993943724472] , [ 1238644800000 , 6.9072938528227] , [ 1238731200000 , 6.8033335096449] , [ 1238990400000 , 6.8972173755438] , [ 1239076800000 , 6.8920177315134] , [ 1239163200000 , 6.8443892558542] , [ 1239249600000 , 7.4497699131442] , [ 1239595200000 , 7.5019861785881] , [ 1239681600000 , 7.3053193582125] , [ 1239768000000 , 7.2216169837015] , [ 1239854400000 , 7.5661499648819] , [ 1239940800000 , 7.6449159503907] , [ 1240200000000 , 7.5582219882489] , [ 1240286400000 , 7.4343755826028] , [ 1240372800000 , 7.6417895324212] , [ 1240459200000 , 7.6681262804388] , [ 1240545600000 , 7.7043797010563] , [ 1240804800000 , 7.4958396526881] , [ 1240891200000 , 7.815451554867] , [ 1240977600000 , 7.6676074512792] , [ 1241064000000 , 7.9572070113902] , [ 1241150400000 , 8.2096937565281] , [ 1241409600000 , 8.1187033449036] , [ 1241496000000 , 8.372275134873] , [ 1241582400000 , 8.0538722912475] , [ 1241668800000 , 7.9602754200426] , [ 1241755200000 , 7.6576599608334] , [ 1242014400000 , 7.4966913546928] , [ 1242100800000 , 7.2651112892492] , [ 1242187200000 , 7.1633791818655] , [ 1242273600000 , 7.1687650149386] , [ 1242360000000 , 7.3531937924814] , [ 1242619200000 , 7.4209658497273] , [ 1242705600000 , 7.5783182685381] , [ 1242792000000 , 7.4080483609847] , [ 1242878400000 , 7.277883223155] , [ 1242964800000 , 7.1453915393307] , [ 1243310400000 , 7.6300760130558] , [ 1243396800000 , 7.3772429744079] , [ 1243483200000 , 7.5724491217571] , [ 1243569600000 , 7.7562411442798] , [ 1243828800000 , 8.5403406835842] , [ 1243915200000 , 8.3017346807485] , [ 1244001600000 , 8.2455714820194] , [ 1244088000000 , 8.1419984291921] , [ 1244174400000 , 7.9302409712334] , [ 1244433600000 , 7.9514072720379] , [ 1244520000000 , 8.0555753559815] , [ 1244606400000 , 7.7992630274994] , [ 1244692800000 , 8.1167920735932] , [ 1244779200000 , 8.0712996157991] , [ 1245038400000 , 7.9545182134471] , [ 1245124800000 , 7.8830443320321] , [ 1245211200000 , 7.7760102856737] , [ 1245297600000 , 7.6688197716909] , [ 1245384000000 , 7.9738365319208] , [ 1245643200000 , 7.6816079796342] , [ 1245729600000 , 7.5975299439674] , [ 1245816000000 , 7.8071824002366] , [ 1245902400000 , 7.9398421894786] , [ 1245988800000 , 8.1599201203201] , [ 1246248000000 , 8.0475899158279] , [ 1246334400000 , 8.311713958035] , [ 1246420800000 , 8.0633325894994] , [ 1246507200000 , 8.1665001701375] , [ 1246852800000 , 8.6243924912214] , [ 1246939200000 , 8.5584631826924] , [ 1247025600000 , 8.3342287434369] , [ 1247112000000 , 7.785433826246] , [ 1247198400000 , 8.4304734788353] , [ 1247457600000 , 8.6310657763842] , [ 1247544000000 , 7.6709901103497] , [ 1247630400000 , 7.9145909860609] , [ 1247716800000 , 8.6738324194706] , [ 1247803200000 , 8.703463208222] , [ 1248062400000 , 8.8318115926649] , [ 1248148800000 , 8.8183631328174] , [ 1248235200000 , 8.9069614482835] , [ 1248321600000 , 8.1767345390385] , [ 1248408000000 , 8.3690934952353] , [ 1248667200000 , 8.0475374043464] , [ 1248753600000 , 7.9487085942204] , [ 1248840000000 , 8.0193179357719] , [ 1248926400000 , 6.7077240648159] , [ 1249012800000 , 6.3820502542407] , [ 1249272000000 , 6.1508557498966] , [ 1249358400000 , 6.2521137538601] , [ 1249444800000 , 6.1577643631846] , [ 1249531200000 , 6.2104717030372] , [ 1249617600000 , 5.4085385559598] , [ 1249876800000 , 6.1531235400728] , [ 1249963200000 , 5.4621932110819] , [ 1250049600000 , 5.4080882037869] , [ 1250136000000 , 5.4311338457152] , [ 1250222400000 , 5.9769504776449] , [ 1250481600000 , 6.1282576846105] , [ 1250568000000 , 5.9944952168109] , [ 1250654400000 , 5.9421157852003] , [ 1250740800000 , 6.0876497115901] , [ 1250827200000 , 5.3604129875169] , [ 1251086400000 , 5.9175421072838] , [ 1251172800000 , 5.0536189904237] , [ 1251259200000 , 5.2120512417561] , [ 1251345600000 , 5.203757025882] , [ 1251432000000 , 5.1944500854188] , [ 1251691200000 , 5.1506994391916] , [ 1251777600000 , 5.963103135814] , [ 1251864000000 , 6.0495921115292] , [ 1251950400000 , 4.6989879935359] , [ 1252036800000 , 4.8071428653778] , [ 1252382400000 , 4.8834539692467] , [ 1252468800000 , 6.0296791157326] , [ 1252555200000 , 5.3336486975701] , [ 1252641600000 , 5.7910847756212] , [ 1252900800000 , 4.2290028078144] , [ 1252987200000 , 4.3410520831618] , [ 1253073600000 , 3.6473356187603] , [ 1253160000000 , 3.7752491852878] , [ 1253246400000 , 4.6472183730829] , [ 1253505600000 , 3.5460608419439] , [ 1253592000000 , 3.6159341985379] , [ 1253678400000 , 3.9888812541473] , [ 1253764800000 , 4.0926619786259] , [ 1253851200000 , 3.9932972482998] , [ 1254110400000 , 3.9977003875474] , [ 1254196800000 , 4.1141840782386] , [ 1254283200000 , 3.4932618582594] , [ 1254369600000 , 2.8882406454852] , [ 1254456000000 , 2.8091023150487] , [ 1254715200000 , 2.9162883955448] , [ 1254801600000 , 2.9412596935434] , [ 1254888000000 , 2.9577064322097] , [ 1254974400000 , 2.9944107330291] , [ 1255060800000 , 2.9995959618688] , [ 1255320000000 , 2.8722133670363] , [ 1255406400000 , 3.1701861875583] , [ 1255492800000 , 3.1278205668598] , [ 1255579200000 , 3.1466051179389] , [ 1255665600000 , 3.1248428156261] , [ 1255924800000 , 3.1381573762212] , [ 1256011200000 , 2.8908983945294] , [ 1256097600000 , 2.8461903532938] , [ 1256184000000 , 2.9580400309269] , [ 1256270400000 , 2.8789406735397] , [ 1256529600000 , 2.8551257008863] , [ 1256616000000 , 3.6125500653153] , [ 1256702400000 , 4.259680329504] , [ 1256788800000 , 3.4449103324616] , [ 1256875200000 , 3.304360280782] , [ 1257138000000 , 3.4701958196407] , [ 1257224400000 , 3.5573661999414] , [ 1257310800000 , 3.5123579991949] , [ 1257397200000 , 3.8140115032809] , [ 1257483600000 , 3.741625333296] , [ 1257742800000 , 3.6480817158465] , [ 1257829200000 , 3.7597321524559] , [ 1257915600000 , 3.6614252110407] , [ 1258002000000 , 3.6303647352521] , [ 1258088400000 , 3.7106128331078] , [ 1258347600000 , 3.7522393948775] , [ 1258434000000 , 3.7692229502309] , [ 1258520400000 , 3.56446232961] , [ 1258606800000 , 3.4093546635484] , [ 1258693200000 , 3.4903814041113] , [ 1258952400000 , 3.4885064029992] , [ 1259038800000 , 3.4651593256137] , [ 1259125200000 , 3.520194463029] , [ 1259298000000 , 3.3499432520851] , [ 1259557200000 , 3.3863490553439] , [ 1259643600000 , 3.578300846024] , [ 1259730000000 , 3.5501534681494] , [ 1259816400000 , 3.6848141865906] , [ 1259902800000 , 3.6987593331625] , [ 1260162000000 , 3.8187466064014] , [ 1260248400000 , 3.7014237572608] , [ 1260334800000 , 3.6746390252432] , [ 1260421200000 , 3.6835972927098] , [ 1260507600000 , 3.7284637339994] , [ 1260766800000 , 3.7527788884899] , [ 1260853200000 , 3.7564093160659] , [ 1260939600000 , 3.6755594970563] , [ 1261026000000 , 3.7270065166822] , [ 1261112400000 , 3.5906816388481] , [ 1261371600000 , 3.5645799858099] , [ 1261458000000 , 3.5435699544913] , [ 1261544400000 , 3.6727689970369] , [ 1261630800000 , 3.5981692177625] , [ 1261976400000 , 3.5214854653168] , [ 1262062800000 , 3.5552432172187] , [ 1262149200000 , 3.6044667019261] , [ 1262235600000 , 3.6418917027612] , [ 1262581200000 , 3.7874348786051] , [ 1262667600000 , 3.7504992194283] , [ 1262754000000 , 3.7784983325609] , [ 1262840400000 , 3.8014246854259] , [ 1262926800000 , 3.8431625893614] , [ 1263186000000 , 3.8526169051741] , [ 1263272400000 , 3.7355795345891] , [ 1263358800000 , 3.7890845555981] , [ 1263445200000 , 3.7253525072644] , [ 1263531600000 , 3.7114285897826] , [ 1263877200000 , 3.9626938365861] , [ 1263963600000 , 3.8060318406823] , [ 1264050000000 , 3.8337575418691] , [ 1264136400000 , 4.3294528812616] , [ 1264395600000 , 3.8442033930898] , [ 1264482000000 , 4.285271912028] , [ 1264568400000 , 4.2087269266923] , [ 1264654800000 , 3.8284915672164] , [ 1264741200000 , 4.1534036336602] , [ 1265000400000 , 4.4103995236919] , [ 1265086800000 , 4.4068295134496] , [ 1265173200000 , 4.4450474282245] , [ 1265259600000 , 4.38131267142] , [ 1265346000000 , 4.3791201508327] , [ 1265605200000 , 4.3258532615489] , [ 1265691600000 , 4.3252719549325] , [ 1265778000000 , 4.439002994072] , [ 1265864400000 , 4.5021254673678] , [ 1265950800000 , 5.44279235516] , [ 1266296400000 , 4.4139668626965] , [ 1266382800000 , 4.5667133332052] , [ 1266469200000 , 4.1979778225181] , [ 1266555600000 , 4.2578024361996] , [ 1266814800000 , 4.4268665227754] , [ 1266901200000 , 4.2825958579183] , [ 1266987600000 , 4.3195187815662] , [ 1267074000000 , 4.3298386326078] , [ 1267160400000 , 4.3586027570776] , [ 1267419600000 , 5.3860474686307] , [ 1267506000000 , 5.4526661717604] , [ 1267592400000 , 5.5501903215109] , [ 1267678800000 , 4.4466915452437] , [ 1267765200000 , 4.4617567500702] , [ 1268024400000 , 4.5484652625856] , [ 1268110800000 , 4.0921504402963] , [ 1268197200000 , 4.1517292063227] , [ 1268283600000 , 3.9295314192248] , [ 1268370000000 , 3.9539302585784] , [ 1268625600000 , 4.6214983327108] , [ 1268712000000 , 4.6114298729669] , [ 1268798400000 , 4.6388514236374] , [ 1268884800000 , 4.5714128942135] , [ 1268971200000 , 4.5877698426337] , [ 1269230400000 , 4.5787682614556] , [ 1269316800000 , 4.6093366151174] , [ 1269403200000 , 4.5937465579186] , [ 1269489600000 , 4.4945887601257] , [ 1269576000000 , 4.6301712102649] , [ 1269835200000 , 5.6030370183914] , [ 1269921600000 , 4.5873880318819] , [ 1270008000000 , 6.7313170382762] , [ 1270094400000 , 6.3013364884648] , [ 1270440000000 , 6.3086708861358] , [ 1270526400000 , 6.3030248058021] , [ 1270612800000 , 5.0118128852357] , [ 1270699200000 , 4.2419204544294] , [ 1270785600000 , 4.2135618406375] , [ 1271044800000 , 5.5335754506193] , [ 1271131200000 , 5.6513423131026] , [ 1271217600000 , 5.5181910838466] , [ 1271304000000 , 6.3707681681438] , [ 1271390400000 , 6.4476424669834] , [ 1271649600000 , 6.2278322889791] , [ 1271736000000 , 6.3014029951744] , [ 1271822400000 , 6.4014287080629] , [ 1271908800000 , 6.4001208825908] , [ 1271995200000 , 6.4153411602686] , [ 1272254400000 , 5.8790677126048] , [ 1272340800000 , 7.5186042792919] , [ 1272427200000 , 7.1615679501375] , [ 1272513600000 , 7.4285879457305] , [ 1272600000000 , 7.2469142548274] , [ 1272859200000 , 7.0302923287331] , [ 1272945600000 , 6.845682640463] , [ 1273032000000 , 6.6936898649737] , [ 1273118400000 , 6.5069405456542] , [ 1273204800000 , 6.3535780217133] , [ 1273464000000 , 6.7572946011937] , [ 1273550400000 , 6.7036206630127] , [ 1273636800000 , 6.8717725702439] , [ 1273723200000 , 6.7438906008853] , [ 1273809600000 , 6.7468934213555] , [ 1274068800000 , 6.1905712092223] , [ 1274155200000 , 6.5614923074055] , [ 1274241600000 , 6.2405707617847] , [ 1274328000000 , 6.024849567078] , [ 1274414400000 , 6.2142465132603] , [ 1274673600000 , 6.3021277989086] , [ 1274760000000 , 6.1784138076069] , [ 1274846400000 , 6.4556681652926] , [ 1274932800000 , 6.5793719488947] , [ 1275019200000 , 6.7233612707586] , [ 1275364800000 , 6.6596716243564] , [ 1275451200000 , 6.8288444742104] , [ 1275537600000 , 7.0098406835512] , [ 1275624000000 , 6.5722192314075] , [ 1275883200000 , 6.3524539219733] , [ 1275969600000 , 6.3567308191669] , [ 1276056000000 , 6.3489727497217] , [ 1276142400000 , 6.7793768789175] , [ 1276228800000 , 7.0709702694795] , [ 1276488000000 , 7.1114219908892] , [ 1276574400000 , 7.2862410915964] , [ 1276660800000 , 7.3298640288706] , [ 1276747200000 , 7.2696972332242] , [ 1276833600000 , 7.1953625718325] , [ 1277092800000 , 7.0056100992571] , [ 1277179200000 , 6.9231922026185] , [ 1277265600000 , 6.973088291103] , [ 1277352000000 , 6.9668437225422] , [ 1277438400000 , 6.998525042556] , [ 1277697600000 , 6.9613707055658] , [ 1277784000000 , 6.7509446137765] , [ 1277870400000 , 7.9151638243465] , [ 1277956800000 , 8.850444759974] , [ 1278043200000 , 8.9508248297278] , [ 1278388800000 , 8.8308135377559] , [ 1278475200000 , 9.1557376811178] , [ 1278561600000 , 9.4389243100087] , [ 1278648000000 , 9.3526122655858] , [ 1278907200000 , 9.3695881682679] , [ 1278993600000 , 9.6143885027659] , [ 1279080000000 , 9.6793199374183] , [ 1279166400000 , 9.6797100364861] , [ 1279252800000 , 9.6687744185617] , [ 1279512000000 , 9.1860315020889] , [ 1279598400000 , 9.3724878519175] , [ 1279684800000 , 9.2574079918223] , [ 1279771200000 , 9.5402332610866] , [ 1279857600000 , 9.7999184466266] , [ 1280116800000 , 9.8346281260191] , [ 1280203200000 , 10.391316880569] , [ 1280289600000 , 10.307945373908] , [ 1280376000000 , 10.382694151976] , [ 1280462400000 , 10.619001469575] , [ 1280721600000 , 8.6910859252501] , [ 1280808000000 , 8.2780924741914] , [ 1280894400000 , 9.8210785323957] , [ 1280980800000 , 9.4482871403957] , [ 1281067200000 , 8.2540187693677] , [ 1281326400000 , 8.4215543980314] , [ 1281412800000 , 8.1324369126758] , [ 1281499200000 , 7.8419852840216] , [ 1281585600000 , 7.673037031483] , [ 1281672000000 , 7.8295547289505] , [ 1281931200000 , 7.6567786924202] , [ 1282017600000 , 7.6847540895582] , [ 1282104000000 , 7.7892363698546] , [ 1282190400000 , 7.84393381543] , [ 1282276800000 , 7.8735865802755] , [ 1282536000000 , 7.5653960395666] , [ 1282622400000 , 7.4264318973513] , [ 1282708800000 , 7.6585710369492] , [ 1282795200000 , 9.0392455531444] , [ 1282881600000 , 7.7701188723663] , [ 1283140800000 , 8.8071182900156] , [ 1283227200000 , 10.12550800946] , [ 1283313600000 , 7.7711870423724] , [ 1283400000000 , 8.1821413814992] , [ 1283486400000 , 8.3161795858023] , [ 1283832000000 , 8.1562096933006] , [ 1283918400000 , 7.2981142345076] , [ 1284004800000 , 7.3823745187454] , [ 1284091200000 , 7.5089371933272] , [ 1284350400000 , 7.6119210106499] , [ 1284436800000 , 7.3219012303246] , [ 1284523200000 , 7.3539574616439] , [ 1284609600000 , 7.391155228862] , [ 1284696000000 , 7.7910323736516] , [ 1284955200000 , 7.9891977154861] , [ 1285041600000 , 7.9845113231898] , [ 1285128000000 , 8.0280687385235] , [ 1285214400000 , 8.0220124881512] , [ 1285300800000 , 8.1721960978357] , [ 1285560000000 , 7.3762484505685] , [ 1285646400000 , 7.1849774487922] , [ 1285732800000 , 7.0881168760289] , [ 1285819200000 , 7.6165006632813] , [ 1285905600000 , 7.9281403493209] , [ 1286164800000 , 7.6877892047954] , [ 1286251200000 , 7.5545371151247] , [ 1286337600000 , 7.6163830521595] , [ 1286424000000 , 7.4660122402952] , [ 1286510400000 , 7.4747232801966] , [ 1286769600000 , 6.6670381670041] , [ 1286856000000 , 7.4362967095541] , [ 1286942400000 , 7.4098656539097] , [ 1287028800000 , 7.4308547802326] , [ 1287115200000 , 7.2787840708622] , [ 1287374400000 , 7.361186970691] , [ 1287460800000 , 7.2071009569313] , [ 1287547200000 , 7.488227566033] , [ 1287633600000 , 7.1729577071294] , [ 1287720000000 , 7.1165470501276] , [ 1287979200000 , 7.1835191848776] , [ 1288065600000 , 6.6349220593647] , [ 1288152000000 , 6.5143255314096] , [ 1288238400000 , 6.5093341407168] , [ 1288324800000 , 6.6896752601614] , [ 1288584000000 , 6.4310441067758] , [ 1288670400000 , 6.2630848540459] , [ 1288756800000 , 6.4141428045196] , [ 1288843200000 , 6.9522207665479] , [ 1288929600000 , 7.0751669468923] , [ 1289192400000 , 7.0957173039567] , [ 1289278800000 , 7.0122861213564] , [ 1289365200000 , 7.4884041899658] , [ 1289451600000 , 6.4024254287865] , [ 1289538000000 , 6.7756715157074] , [ 1289797200000 , 6.5292816699702] , [ 1289883600000 , 6.1519776284104] , [ 1289970000000 , 6.3930471671954] , [ 1290056400000 , 6.2839136396227] , [ 1290142800000 , 6.0320314051674] , [ 1290402000000 , 6.1956189210192] , [ 1290488400000 , 6.4028476068441] , [ 1290574800000 , 6.3245283221227] , [ 1290747600000 , 6.4086956263512] , [ 1291006800000 , 6.2512340532516] , [ 1291093200000 , 6.5282484862389] , [ 1291179600000 , 6.736006633423] , [ 1291266000000 , 6.4838112911972] , [ 1291352400000 , 7.2729012263385] , [ 1291611600000 , 7.3376652279673] , [ 1291698000000 , 7.4596873623813] , [ 1291784400000 , 7.0979514825498] , [ 1291870800000 , 7.0512484800374] , [ 1291957200000 , 7.0423918643231] , [ 1292216400000 , 6.9460849020085] , [ 1292302800000 , 6.7249153590091] , [ 1292389200000 , 6.9493884700924] , [ 1292475600000 , 6.9731285187246] , [ 1292562000000 , 6.9351463103721] , [ 1292821200000 , 8.2413807215699] , [ 1292907600000 , 7.9646775997402] , [ 1292994000000 , 6.8365448172611] , [ 1293080400000 , 6.9943194582886] , [ 1293426000000 , 6.7970448427131] , [ 1293512400000 , 6.8562130664842] , [ 1293598800000 , 6.8469233284141] , [ 1293685200000 , 6.8757556495549] , [ 1293771600000 , 6.6976782597699] , [ 1294030800000 , 7.015559070577] , [ 1294117200000 , 7.0626567313096] , [ 1294203600000 , 6.8032104947785] , [ 1294290000000 , 6.9352611689083] , [ 1294376400000 , 6.7857414697848] , [ 1294635600000 , 6.8633059616158] , [ 1294722000000 , 6.6808324212783] , [ 1294808400000 , 6.779464286231] , [ 1294894800000 , 7.8578611910869] , [ 1294981200000 , 6.6289795492906] , [ 1295326800000 , 7.7350355242243] , [ 1295413200000 , 7.8778729932565] , [ 1295499600000 , 7.7131378785653] , [ 1295586000000 , 7.7761093777833] , [ 1295845200000 , 7.8811340173465] , [ 1295931600000 , 7.5154894904157] , [ 1296018000000 , 7.6154099268751] , [ 1296104400000 , 7.4913704458081] , [ 1296190800000 , 7.4130494146429] , [ 1296450000000 , 7.4229098636973] , [ 1296536400000 , 6.4159596258075] , [ 1296622800000 , 6.6683657415423] , [ 1296709200000 , 6.4171737502757] , [ 1296795600000 , 6.4079790334457] , [ 1297054800000 , 6.3577488567458] , [ 1297141200000 , 6.552907119049] , [ 1297227600000 , 7.7742705226911] , [ 1297314000000 , 7.5988649174825] , [ 1297400400000 , 7.552005535535] , [ 1297659600000 , 7.9791540246632] , [ 1297746000000 , 7.7179473869873] , [ 1297832400000 , 7.6620128768293] , [ 1297918800000 , 7.9535210584646] , [ 1298005200000 , 7.8352981913095] , [ 1298350800000 , 7.6818406674459] , [ 1298437200000 , 7.441032734805] , [ 1298523600000 , 7.6264178309908] , [ 1298610000000 , 7.7511248043048] , [ 1298869200000 , 7.5983874373561] , [ 1298955600000 , 7.6328955664289] , [ 1299042000000 , 7.5712604372079] , [ 1299128400000 , 7.6943733241434] , [ 1299214800000 , 7.6908137510547] , [ 1299474000000 , 8.0394377732533] , [ 1299560400000 , 7.7006439351331] , [ 1299646800000 , 7.9939193256762] , [ 1299733200000 , 8.0146855617036] , [ 1299819600000 , 8.0652390767127] , [ 1300075200000 , 8.2111961074116] , [ 1300161600000 , 7.9977564987315] , [ 1300248000000 , 8.0094768132623] , [ 1300334400000 , 8.1670785086275] , [ 1300420800000 , 8.1911137136314] , [ 1300680000000 , 8.2122733755099] , [ 1300766400000 , 8.0278517190718] , [ 1300852800000 , 8.159377330552] , [ 1300939200000 , 8.0660341238415] , [ 1301025600000 , 7.9802936768258] , [ 1301284800000 , 8.1117644672074] , [ 1301371200000 , 8.5256638547532] , [ 1301457600000 , 8.3724148847511] , [ 1301544000000 , 8.1704221272491] , [ 1301630400000 , 8.1465935016053] , [ 1301889600000 , 8.2963751060228] , [ 1301976000000 , 8.3139066983581] , [ 1302062400000 , 8.5802750824218] , [ 1302148800000 , 8.282351658262] , [ 1302235200000 , 8.3523375679133] , [ 1302494400000 , 8.3086593229883] , [ 1302580800000 , 8.3060139547942] , [ 1302667200000 , 8.4194477655831] , [ 1302753600000 , 8.1825495239296] , [ 1302840000000 , 8.2032677516527] , [ 1303099200000 , 8.3577429427569] , [ 1303185600000 , 7.8096399779485] , [ 1303272000000 , 8.3617888252644] , [ 1303358400000 , 7.6535505430347] , [ 1303704000000 , 8.1015005464385] , [ 1303790400000 , 8.0967638446531] , [ 1303876800000 , 8.2331001032509] , [ 1303963200000 , 8.0746013906815] , [ 1304049600000 , 7.9581619431196] , [ 1304308800000 , 8.0510521992935] , [ 1304395200000 , 8.249775979159] , [ 1304481600000 , 8.0723102129181] , [ 1304568000000 , 8.0465551385201] , [ 1304654400000 , 7.8419655326199] , [ 1304913600000 , 7.8671847711793] , [ 1305000000000 , 7.9138733612804] , [ 1305086400000 , 8.1690091773467] , [ 1305172800000 , 8.1035499811016] , [ 1305259200000 , 8.2308063620259] , [ 1305518400000 , 7.825523257168] , [ 1305604800000 , 7.939293479624] , [ 1305691200000 , 7.1600370970528] , [ 1305777600000 , 7.352404651612] , [ 1305864000000 , 7.3427064169702] , [ 1306123200000 , 7.2348040826747] , [ 1306209600000 , 7.3355971509463] , [ 1306296000000 , 7.1256863273265] , [ 1306382400000 , 7.1717784277581] , [ 1306468800000 , 6.3334834365537] , [ 1306814400000 , 6.2138512486489] , [ 1306900800000 , 6.1801441591354] , [ 1306987200000 , 7.4877212752515] , [ 1307073600000 , 7.5585768235624] , [ 1307332800000 , 7.3051507363699] , [ 1307419200000 , 7.3307885537127] , [ 1307505600000 , 7.0800524850003] , [ 1307592000000 , 7.3251482222031] , [ 1307678400000 , 7.8167261821593] , [ 1307937600000 , 7.8661342217414] , [ 1308024000000 , 8.0754824328073] , [ 1308110400000 , 7.722336974834] , [ 1308196800000 , 7.7487873054549] , [ 1308283200000 , 8.2601931397118] , [ 1308542400000 , 8.8340692171413] , [ 1308628800000 , 8.8141442040852] , [ 1308715200000 , 7.3885682273556] , [ 1308801600000 , 8.524371173273] , [ 1308888000000 , 8.6577402854431] , [ 1309147200000 , 7.6707502806202] , [ 1309233600000 , 7.4978055094839] , [ 1309320000000 , 7.3818097405847] , [ 1309406400000 , 7.1612677684123] , [ 1309492800000 , 6.368782882442] , [ 1309838400000 , 6.1071313978876] , [ 1309924800000 , 6.1565523090354] , [ 1310011200000 , 6.1475887352994] , [ 1310097600000 , 6.2263430904332] , [ 1310356800000 , 6.9611041985641] , [ 1310443200000 , 7.0242315085635] , [ 1310529600000 , 7.0075843366218] , [ 1310616000000 , 6.9207678449217] , [ 1310702400000 , 7.0524800125284] , [ 1310961600000 , 6.8224030921167] , [ 1311048000000 , 6.8857127873696] , [ 1311134400000 , 6.896303722488] , [ 1311220800000 , 6.2515825214884] , [ 1311307200000 , 6.2646841372931] , [ 1311566400000 , 6.2496084036737] , [ 1311652800000 , 5.9764452251568] , [ 1311739200000 , 6.7304204313871] , [ 1311825600000 , 7.5632953623456] , [ 1311912000000 , 7.4832095921011] , [ 1314763200000 , 6.6199965715845] , [ 1314849600000 , 6.6379081921771] , [ 1314936000000 , 6.3073123029369] , [ 1315281600000 , 6.5545564105314] , [ 1315368000000 , 6.1632696315425] , [ 1315454400000 , 5.95584772283] , [ 1315540800000 , 6.3384259819469] , [ 1315800000000 , 6.1048543229922] , [ 1315886400000 , 6.1280001833333] , [ 1315972800000 , 6.1319318026661] , [ 1316059200000 , 6.1902023394527] , [ 1316145600000 , 5.4545475153717] , [ 1316404800000 , 5.4508003127033] , [ 1316491200000 , 6.6097418079225] , [ 1316577600000 , 6.2695648367966] , [ 1316664000000 , 6.5479656953968] , [ 1316750400000 , 6.1491805140902] , [ 1317009600000 , 4.8301610598105] , [ 1317096000000 , 4.8480010785993] , [ 1317182400000 , 4.5299190756869] , [ 1317268800000 , 5.8831706632668] , [ 1317355200000 , 4.9857318296672] , [ 1317614400000 , 4.729945726575] , [ 1317700800000 , 4.9627773970443] , [ 1317787200000 , 4.9572436376201] , [ 1317873600000 , 3.8804438380164] , [ 1317960000000 , 3.6313005804066] , [ 1318219200000 , 3.5099617228093] , [ 1318305600000 , 3.5809298492224] , [ 1318392000000 , 3.7509968761579] , [ 1318478400000 , 3.6976682399698] , [ 1318564800000 , 3.7554071402231] , [ 1318824000000 , 3.5532516508573] , [ 1318910400000 , 3.7157353115832] , [ 1318996800000 , 3.5546276844061] , [ 1319083200000 , 3.5726560999166] , [ 1319169600000 , 3.6278642583202] , [ 1319428800000 , 3.7698485583911] , [ 1319515200000 , 3.6957429704312] , [ 1319601600000 , 3.8119283813009] , [ 1319688000000 , 4.145999408378] , [ 1319774400000 , 4.2544005194032] , [ 1320033600000 , 3.8560840314136] , [ 1320120000000 , 4.0071099487515] , [ 1320206400000 , 3.8666864871989] , [ 1320292800000 , 3.7520383060086] , [ 1320379200000 , 3.7981325257823] , [ 1320642000000 , 3.7783368665557] , [ 1320728400000 , 3.9903973239273] , [ 1320814800000 , 3.8390780793766] , [ 1320901200000 , 3.9681792562828] , [ 1320987600000 , 4.1202577150874] , [ 1321246800000 , 3.8928918358591] , [ 1321333200000 , 3.6107778154799] , [ 1321419600000 , 3.6805629885085] , [ 1321506000000 , 5.1391631801351] , [ 1321592400000 , 4.8682926150708] , [ 1321851600000 , 4.8254893415811] , [ 1321938000000 , 5.0026171811767] , [ 1322024400000 , 5.1148078013213] , [ 1322197200000 , 5.1056031414338] , [ 1322456400000 , 5.3577325625205] , [ 1322542800000 , 3.9808664894058] , [ 1322629200000 , 4.0986002512641] , [ 1322715600000 , 3.8799962016475] , [ 1322802000000 , 3.9157907805421] , [ 1323061200000 , 4.0476244311429] , [ 1323147600000 , 4.0417379581542] , [ 1323234000000 , 4.109589045041] , [ 1323320400000 , 3.9129560226233] , [ 1323406800000 , 3.9359286132744] , [ 1323666000000 , 3.8737572501197] , [ 1323752400000 , 3.6607533440426] , [ 1323838800000 , 3.6363837386103] , [ 1323925200000 , 4.8560748249197] , [ 1324011600000 , 3.5473901577107] , [ 1324270800000 , 4.8264820658614] , [ 1324357200000 , 3.712469118749] , [ 1324443600000 , 5.0038460000171] , [ 1324530000000 , 5.065494206939] , [ 1324616400000 , 4.7531055960121] , [ 1324962000000 , 4.586323111206] , [ 1325048400000 , 4.5646901099934] , [ 1325134800000 , 4.6107139340923] , [ 1325221200000 , 4.6440461794016] , [ 1325566800000 , 4.3891725117992] , [ 1325653200000 , 4.1966238762838] , [ 1325739600000 , 4.2709900163805] , [ 1325826000000 , 4.3165911723595] , [ 1326085200000 , 4.311249907868] , [ 1326171600000 , 4.4779903572094] , [ 1326258000000 , 3.4076298835166] , [ 1326344400000 , 3.382259226764] , [ 1326430800000 , 3.4488850513864] , [ 1326776400000 , 3.4251262880477] , [ 1326862800000 , 3.3841248437391] , [ 1326949200000 , 3.2725238514] , [ 1327035600000 , 3.2522017539503] , [ 1327294800000 , 3.3809923924243] , [ 1327381200000 , 3.3682669807671] , [ 1327467600000 , 3.2717862699826] , [ 1327554000000 , 3.3970348092886] , [ 1327640400000 , 3.4297652819983] , [ 1327899600000 , 3.4286456277102] , [ 1327986000000 , 3.327524189929] , [ 1328072400000 , 3.5746074207567] , [ 1328158800000 , 3.4635795356803] , [ 1328245200000 , 3.6534724128571] , [ 1328504400000 , 3.5442830502491] , [ 1328590800000 , 3.5751719472643] , [ 1328677200000 , 3.694082546661] , [ 1328763600000 , 3.8173331135166] , [ 1328850000000 , 3.6330485898246] , [ 1329109200000 , 3.9163251063404] , [ 1329195600000 , 3.7718684252196] , [ 1329282000000 , 3.6993204637789] , [ 1329368400000 , 3.708025224958] , [ 1329454800000 , 3.797475561552] , [ 1329800400000 , 3.685289823613] , [ 1329886800000 , 3.5089097057604] , [ 1329973200000 , 3.5263770512642] , [ 1330059600000 , 3.4828938715903] , [ 1330318800000 , 3.4638916777746] , [ 1330405200000 , 3.570874631622] , [ 1330491600000 , 3.4180163343957] , [ 1330578000000 , 3.5312571551772] , [ 1330664400000 , 3.5885544133415] , [ 1330923600000 , 3.5386532308631] , [ 1331010000000 , 3.4458371857556] , [ 1331096400000 , 3.4590048086457] , [ 1331182800000 , 3.4360300363807] , [ 1331269200000 , 3.4261074878453] , [ 1331524800000 , 3.3806482189354] , [ 1331611200000 , 3.4235699326804] , [ 1331697600000 , 3.5553861596051] , [ 1331784000000 , 3.501713836318] , [ 1331870400000 , 3.4271538928069] , [ 1332129600000 , 3.3976754036284] , [ 1332216000000 , 3.4456618390394] , [ 1332302400000 , 3.2901221394091] , [ 1332388800000 , 3.4438000224947] , [ 1332475200000 , 3.5291340142731] , [ 1332734400000 , 3.4422907821278] , [ 1332820800000 , 3.4113809615801] , [ 1332907200000 , 3.4612055653647] , [ 1332993600000 , 3.3765715559162] , [ 1333080000000 , 3.3314488964373] , [ 1333339200000 , 3.7464512805593] , [ 1333425600000 , 4.1979174021391] , [ 1333512000000 , 4.2181907632685] , [ 1333598400000 , 4.0679256157396] , [ 1333944000000 , 4.1025618393266] , [ 1334030400000 , 4.1012098570324] , [ 1334116800000 , 4.1927181173986] , [ 1334203200000 , 4.2668812204674] , [ 1334289600000 , 4.1829131112528] , [ 1334548800000 , 4.1026702994764] , [ 1334635200000 , 4.1833726531351] , [ 1334721600000 , 4.2637794845203] , [ 1334808000000 , 4.1914723019635] , [ 1334894400000 , 4.1792869293066] , [ 1335153600000 , 4.1302379932279] , [ 1335240000000 , 4.0588546259813] , [ 1335326400000 , 3.9975632294602] , [ 1335412800000 , 4.0631056148253] , [ 1335499200000 , 4.1752138560418] , [ 1335758400000 , 4.8433599248432]]} , { "key" : "Micro Cap (<250MM)" , "stack" : true , "shadowSize" : 0 , "color" : undefined , "lines" : { "fillColor" : undefined , "fill" : 0.5} , "values" : [ [ 1028088000000 , 0.025581267278939] , [ 1028174400000 , 0.029736731672885] , [ 1028260800000 , 0.052794288001074] , [ 1028520000000 , 0.048830079056433] , [ 1028606400000 , 0.04830795755802] , [ 1028692800000 , 0.046694386733552] , [ 1028779200000 , 0.046048825010111] , [ 1028865600000 , 0.043968440546513] , [ 1029124800000 , 0.044179113886454] , [ 1029211200000 , 0.045862261142808] , [ 1029297600000 , 0.047735224729697] , [ 1029384000000 , 0.027402404982823] , [ 1029470400000 , 0.051283228742547] , [ 1029729600000 , 0.029734803031494] , [ 1029816000000 , 0.029447282204104] , [ 1029902400000 , 0.0081947343639122] , [ 1029988800000 , 0.0082875016441072] , [ 1030075200000 , 0.0084812154336843] , [ 1030334400000 , 0.0082494971845111] , [ 1030420800000 , 0.0087524913426621] , [ 1030507200000 , 0.0083171127501928] , [ 1030593600000 , 0.0088632848912256] , [ 1030680000000 , 0.030524537250295] , [ 1031025600000 , 0.027179553700435] , [ 1031112000000 , 0.029202412960846] , [ 1031198400000 , 0.025577102082837] , [ 1031284800000 , 0.027218780963533] , [ 1031544000000 , 0.026682952617785] , [ 1031630400000 , 0.025820358037713] , [ 1031716800000 , 0.02864180610564] , [ 1031803200000 , 0.029522574975908] , [ 1031889600000 , 0.029701526933449] , [ 1032148800000 , 0.025413548641451] , [ 1032235200000 , 0.048679365811936] , [ 1032321600000 , 0.046128734036551] , [ 1032408000000 , 0.097800944656213] , [ 1032494400000 , 0.074682035703262] , [ 1032753600000 , 0.088183756583354] , [ 1032840000000 , 0.059489216840767] , [ 1032926400000 , 0.063363353550999] , [ 1033012800000 , 0.091208294489438] , [ 1033099200000 , 0.091446537701664] , [ 1033358400000 , 0.077090765941227] , [ 1033444800000 , 0.062054377143362] , [ 1033531200000 , 0.11806649580567] , [ 1033617600000 , 0.11540633323035] , [ 1033704000000 , 0.16183853123234] , [ 1033963200000 , 0.15594632997253] , [ 1034049600000 , 0.14501347271368] , [ 1034136000000 , 0.1444919104572] , [ 1034222400000 , 0.14658465912131] , [ 1034308800000 , 0.1525043573541] , [ 1034568000000 , 0.15775913417711] , [ 1034654400000 , 0.089002682309892] , [ 1034740800000 , 0.13206548036825] , [ 1034827200000 , 0.094793857715554] , [ 1034913600000 , 0.067535937208267] , [ 1035172800000 , 0.039107073567352] , [ 1035259200000 , 0.04188756531426] , [ 1035345600000 , 0.043602389024547] , [ 1035432000000 , 0.042460499066148] , [ 1035518400000 , 0.024746193680077] , [ 1035781200000 , 0.02487105197651] , [ 1035867600000 , 0.024692166201586] , [ 1035954000000 , 0.044021787571216] , [ 1036040400000 , 0.090169160763172] , [ 1036126800000 , 0.045182782591776] , [ 1036386000000 , 0.0040918570463389] , [ 1036472400000 , 0.0044895567346257] , [ 1036558800000 , 0.0042247195544619] , [ 1036645200000 , 0.0045196884263424] , [ 1036731600000 , 0.0047440551087516] , [ 1036990800000 , 0.0047858895207734] , [ 1037077200000 , 0.004971642899429] , [ 1037163600000 , 0.0047317044827047] , [ 1037250000000 , 0.0048305425834295] , [ 1037336400000 , 0.004781439217492] , [ 1037595600000 , 0.0043689807284714] , [ 1037682000000 , 0.022253462556731] , [ 1037768400000 , 0.026890274987304] , [ 1037854800000 , 0.022485140609694] , [ 1037941200000 , 0.024723721850142] , [ 1038200400000 , 0.023444631235535] , [ 1038286800000 , 0.026729266213532] , [ 1038373200000 , 0.024916652064622] , [ 1038546000000 , 0.0237846202167] , [ 1038805200000 , 0.026376464287141] , [ 1038891600000 , 0.024033645621089] , [ 1038978000000 , 0.026191550654288] , [ 1039064400000 , 0.023248895677599] , [ 1039150800000 , 0.023243901324975] , [ 1039410000000 , 0.022479954846225] , [ 1039496400000 , 0.01955550559204] , [ 1039582800000 , 0.021456798675209] , [ 1039669200000 , 0.020558740057583] , [ 1039755600000 , 0.019106427636736] , [ 1040014800000 , 0.020710174382726] , [ 1040101200000 , 0.039712497140162] , [ 1040187600000 , 0.036802792986977] , [ 1040274000000 , 0.033606397107795] , [ 1040360400000 , 0.034075662443729] , [ 1040619600000 , 0.030958691503978] , [ 1040706000000 , 0.032604853627586] , [ 1040878800000 , 0.034465358435239] , [ 1040965200000 , 0.034676178668772] , [ 1041224400000 , 0.029097526549999] , [ 1041310800000 , 0.0044449861991488] , [ 1041483600000 , 0.0044757138046207] , [ 1041570000000 , 0.0043652404522661] , [ 1041829200000 , 0.0045893913619599] , [ 1041915600000 , 0.0043848645185263] , [ 1042002000000 , 0.03158039316712] , [ 1042088400000 , 0.004225792718503] , [ 1042174800000 , 0.0043573268247214] , [ 1042434000000 , 0.0044716623546281] , [ 1042520400000 , 0.0043682663976702] , [ 1042606800000 , 0.051929595182646] , [ 1042693200000 , 0.051270012888802] , [ 1042779600000 , 0.050178473278066] , [ 1043125200000 , 0.079459123607893] , [ 1043211600000 , 0.076861898628379] , [ 1043298000000 , 0.071371340078594] , [ 1043384400000 , 0.065395420495007] , [ 1043643600000 , 0.062287201691008] , [ 1043730000000 , 0.066276678772633] , [ 1043816400000 , 0.063832036839109] , [ 1043902800000 , 0.058481466049929] , [ 1043989200000 , 0.064383103276217] , [ 1044248400000 , 0.061181424454157] , [ 1044334800000 , 0.050001097388248] , [ 1044421200000 , 0.051447477328196] , [ 1044507600000 , 0.049162937407877] , [ 1044594000000 , 0.048224258492721] , [ 1044853200000 , 0.048446875849919] , [ 1044939600000 , 0.047703096485975] , [ 1045026000000 , 0.053712919634203] , [ 1045112400000 , 0.049263395326262] , [ 1045198800000 , 0.055243564152776] , [ 1045544400000 , 0.056366522915878] , [ 1045630800000 , 0.060553413901827] , [ 1045717200000 , 0.062769208889923] , [ 1045803600000 , 0.056711903116187] , [ 1046062800000 , 0.057990403185434] , [ 1046149200000 , 0.041380540161162] , [ 1046235600000 , 0.047823294172337] , [ 1046322000000 , 0.052248205388428] , [ 1046408400000 , 0.047172729131362] , [ 1046667600000 , 0.04405251866959] , [ 1046754000000 , 0.043194364152296] , [ 1046840400000 , 0.044360594447895] , [ 1046926800000 , 0.042564787358729] , [ 1047013200000 , 0.039079216183048] , [ 1047272400000 , 0.037938494395436] , [ 1047358800000 , 0.037448434943879] , [ 1047445200000 , 0.033718749626009] , [ 1047531600000 , 0.037932878282205] , [ 1047618000000 , 0.039314724782477] , [ 1047877200000 , 0.037658953860599] , [ 1047963600000 , 0.037762971944543] , [ 1048050000000 , 0.03871520488552] , [ 1048136400000 , 0.037349385270628] , [ 1048222800000 , 0.036011871294001] , [ 1048482000000 , 0.033739216797907] , [ 1048568400000 , 0.03589259731374] , [ 1048654800000 , 0.03737314388633] , [ 1048741200000 , 0.037481913711678] , [ 1048827600000 , 0.033454616742699] , [ 1049086800000 , 0.012507674209947] , [ 1049173200000 , 0.013105750883335] , [ 1049259600000 , 0.013018450336839] , [ 1049346000000 , 0.013707510247831] , [ 1049432400000 , 0.012990677774848] , [ 1049688000000 , 0.012564358974202] , [ 1049774400000 , 0.012801376647984] , [ 1049860800000 , 0.012613707240633] , [ 1049947200000 , 0.012552830610678] , [ 1050033600000 , 0.013200264923986] , [ 1050292800000 , 0.012872428048094] , [ 1050379200000 , 0.013210572903832] , [ 1050465600000 , 0.012968091392463] , [ 1050552000000 , 0.0042788032700636] , [ 1050897600000 , 0.0039344830528271] , [ 1050984000000 , 0.0039018367447018] , [ 1051070400000 , 0.003701306809606] , [ 1051156800000 , 0.0037373530626153] , [ 1051243200000 , 0.0038624302404062] , [ 1051502400000 , 0.0039986263360063] , [ 1051588800000 , 0.0037820446282556] , [ 1051675200000 , 0.0038901628495959] , [ 1051761600000 , 0.0041171016188502] , [ 1051848000000 , 0.0038836988933912] , [ 1052107200000 , 0.003621686788833] , [ 1052193600000 , 0.0042625972368624] , [ 1052280000000 , 0.0038269981093598] , [ 1052366400000 , 0.0037956020746228] , [ 1052452800000 , 0.0037860462253253] , [ 1052712000000 , 0.0037422250400484] , [ 1052798400000 , 0.0037026556033026] , [ 1052884800000 , 0.0038002884256296] , [ 1052971200000 , 0.0038472697130329] , [ 1053057600000 , 0.0036882588478701] , [ 1053316800000 , 0.0040364411324761] , [ 1053403200000 , 0.0040798276511065] , [ 1053489600000 , 0.003840596050564] , [ 1053576000000 , 0.0038336035126208] , [ 1053662400000 , 0.0039009660495121] , [ 1054008000000 , 0.004422002859048] , [ 1054094400000 , 0.0041860559959442] , [ 1054180800000 , 0.0043606836309608] , [ 1054267200000 , 0.0043416565265813] , [ 1054526400000 , 0.0041295814088803] , [ 1054612800000 , 0.0042963522225601] , [ 1054699200000 , 0.0042386625505222] , [ 1054785600000 , 0.0043457762698409] , [ 1054872000000 , 0.0041019360686612] , [ 1055131200000 , 0.0040616807890817] , [ 1055217600000 , 0.0043274383850849] , [ 1055304000000 , 0.0042899480830675] , [ 1055390400000 , 0.0042455668071843] , [ 1055476800000 , 0.0045749481726146] , [ 1055736000000 , 0.0044634464769408] , [ 1055822400000 , 0.0044977442312724] , [ 1055908800000 , 0.003999833396281] , [ 1055995200000 , 0.0042336290691125] , [ 1056081600000 , 0.0044770856161414] , [ 1056340800000 , 0.0044384290447745] , [ 1056427200000 , 0.004108400019291] , [ 1056513600000 , 0.0046157162910058] , [ 1056600000000 , 0.0048438038025096] , [ 1056686400000 , 0.0046748757489901] , [ 1056945600000 , 0.0041625649899761] , [ 1057032000000 , 0.0037157217666868] , [ 1057118400000 , 0.003708355330733] , [ 1057204800000 , 0.0037330351723062] , [ 1057550400000 , 0.0037187614081074] , [ 1057636800000 , 0.0038013361729803] , [ 1057723200000 , 0.0039679897321484] , [ 1057809600000 , 0.0037976430836964] , [ 1057896000000 , 0.0035868623917725] , [ 1058155200000 , 0.0035525745498187] , [ 1058241600000 , 0.0039026649865817] , [ 1058328000000 , 0.0037560146536565] , [ 1058414400000 , 0.0033891745167867] , [ 1058500800000 , 0.0033188545812138] , [ 1058760000000 , 0.003499238593776] , [ 1058846400000 , 0.0035189556376036] , [ 1058932800000 , 0.0035857553754461] , [ 1059019200000 , 0.0037630753676146] , [ 1059105600000 , 0.0035138251358084] , [ 1059364800000 , 0.0036971501123804] , [ 1059451200000 , 0.0034858490402712] , [ 1059537600000 , 0.0036694310601687] , [ 1059624000000 , 0.0030797110100797] , [ 1059710400000 , 0.003046989647545] , [ 1059969600000 , 0.0033219780674728] , [ 1060056000000 , 0.0030841714099078] , [ 1060142400000 , 0.0030472639733462] , [ 1060228800000 , 0.0029646517727957] , [ 1060315200000 , 0.0030360371652247] , [ 1060574400000 , 0.0030567111190777] , [ 1060660800000 , 0.0029746548667045] , [ 1060747200000 , 0.0028308520505102] , [ 1060833600000 , 0.0029134906418826] , [ 1060920000000 , 0.0030729314286277] , [ 1061179200000 , 0.0030316406081977] , [ 1061265600000 , 0.0030797652444305] , [ 1061352000000 , 0.0030941235796122] , [ 1061438400000 , 0.0032439084687081] , [ 1061524800000 , 0.0029552076091776] , [ 1061784000000 , 0.003282451962204] , [ 1061870400000 , 0.0029142650727789] , [ 1061956800000 , 0.0030057735100026] , [ 1062043200000 , 0.0029607647613211] , [ 1062129600000 , 0.0028558144252586] , [ 1062475200000 , 0.0029508890560702] , [ 1062561600000 , 0.0028612017105935] , [ 1062648000000 , 0.002765424444091] , [ 1062734400000 , 0.0026816827871882] , [ 1062993600000 , 0.0027934474181613] , [ 1063080000000 , 0.0028771146712526] , [ 1063166400000 , 0.0028206806742064] , [ 1063252800000 , 0.0028429443447262] , [ 1063339200000 , 0.0027126299959] , [ 1063598400000 , 0.0027648894585895] , [ 1063684800000 , 0.0029164325119996] , [ 1063771200000 , 0.0027075898441596] , [ 1063857600000 , 0.0027629859383951] , [ 1063944000000 , 0.0028710035970681] , [ 1064203200000 , 0.0028121948200106] , [ 1064289600000 , 0.0028979055225736] , [ 1064376000000 , 0.0026357785050804] , [ 1064462400000 , 0.0025855374186268] , [ 1064548800000 , 0.0026944841950042] , [ 1064808000000 , 0.0028469519608374] , [ 1064894400000 , 0.28450817412486] , [ 1064980800000 , 0.31109111101317] , [ 1065067200000 , 0.30186408684386] , [ 1065153600000 , 0.30249680948414] , [ 1065412800000 , 0.2865400635939] , [ 1065499200000 , 0.31793686980739] , [ 1065585600000 , 0.29721249885027] , [ 1065672000000 , 0.31224905608148] , [ 1065758400000 , 0.29828756004301] , [ 1066017600000 , 0.29823222376042] , [ 1066104000000 , 0.29848422539315] , [ 1066190400000 , 0.32615452875859] , [ 1066276800000 , 0.30781706307439] , [ 1066363200000 , 0.31999926538106] , [ 1066622400000 , 0.30846621267775] , [ 1066708800000 , 0.31350986157648] , [ 1066795200000 , 0.29488524651126] , [ 1066881600000 , 0.28140710689657] , [ 1066968000000 , 0.29808636614419] , [ 1067230800000 , 0.30856294304693] , [ 1067317200000 , 0.28957259176879] , [ 1067403600000 , 0.28574594167472] , [ 1067490000000 , 0.31397082372905] , [ 1067576400000 , 0.28098899739321] , [ 1067835600000 , 0.29580008798477] , [ 1067922000000 , 0.28124260869349] , [ 1068008400000 , 0.29030454217497] , [ 1068094800000 , 0.29381621565781] , [ 1068181200000 , 0.28413763662147] , [ 1068440400000 , 0.29133978452184] , [ 1068526800000 , 0.2974691241592] , [ 1068613200000 , 0.27785739697111] , [ 1068699600000 , 0.28692237955946] , [ 1068786000000 , 0.3025430975109] , [ 1069045200000 , 0.27974024019066] , [ 1069131600000 , 0.28205204096901] , [ 1069218000000 , 0.27891578500471] , [ 1069304400000 , 0.28621399096311] , [ 1069390800000 , 0.30611724687275] , [ 1069650000000 , 0.29522193733073] , [ 1069736400000 , 0.31041433675291] , [ 1069822800000 , 0.30207273938285] , [ 1069995600000 , 0.28077746495088] , [ 1070254800000 , 0.30790142300384] , [ 1070341200000 , 0.32391042322391] , [ 1070427600000 , 0.34713120693035] , [ 1070514000000 , 0.3130639380082] , [ 1070600400000 , 0.35277991114677] , [ 1070859600000 , 0.34951269944728] , [ 1070946000000 , 0.33728676441237] , [ 1071032400000 , 0.32858316551564] , [ 1071118800000 , 0.34763771488822] , [ 1071205200000 , 0.31112426298048] , [ 1071464400000 , 0.31403635126568] , [ 1071550800000 , 0.32993619699926] , [ 1071637200000 , 0.31744271908573] , [ 1071723600000 , 0.34230352522983] , [ 1071810000000 , 0.33204474901422] , [ 1072069200000 , 0.31508659873016] , [ 1072155600000 , 0.30865482857886] , [ 1072242000000 , 0.33797905101825] , [ 1072414800000 , 0.31028066128089] , [ 1072674000000 , 0.31253897726674] , [ 1072760400000 , 0.32921073586772] , [ 1072846800000 , 0.14257457669076] , [ 1073019600000 , 0.13791540423409] , [ 1073278800000 , 0.14432340497197] , [ 1073365200000 , 0.15731652697115] , [ 1073451600000 , 0.14355785855527] , [ 1073538000000 , 0.16181965532861] , [ 1073624400000 , 0.15938892375434] , [ 1073883600000 , 0.15612820664935] , [ 1073970000000 , 0.16074839713582] , [ 1074056400000 , 0.15669429168927] , [ 1074142800000 , 0.15252977201682] , [ 1074229200000 , 0.14604668084587] , [ 1074574800000 , 0.15730724457241] , [ 1074661200000 , 0.16180469669709] , [ 1074747600000 , 0.14482627470363] , [ 1074834000000 , 0.14922715192894] , [ 1075093200000 , 0.1551228043648] , [ 1075179600000 , 0.15461983207271] , [ 1075266000000 , 0.15924640096304] , [ 1075352400000 , 0.14347045313405] , [ 1075438800000 , 0.14088687051379] , [ 1075698000000 , 0.15458807863583] , [ 1075784400000 , 0.15606294751813] , [ 1075870800000 , 0.14460768492755] , [ 1075957200000 , 0.14017923217902] , [ 1076043600000 , 0.1448942047385] , [ 1076302800000 , 0.15973701641069] , [ 1076389200000 , 0.15226261560714] , [ 1076475600000 , 0.15789748591526] , [ 1076562000000 , 0.15573299785437] , [ 1076648400000 , 0.14564531768807] , [ 1076994000000 , 0.14980257281745] , [ 1077080400000 , 0.14667065102403] , [ 1077166800000 , 0.13754541763094] , [ 1077253200000 , 0.13300705129563] , [ 1077512400000 , 0.13930940301128] , [ 1077598800000 , 0.14000243690974] , [ 1077685200000 , 0.14962969085648] , [ 1077771600000 , 0.14056323655239] , [ 1077858000000 , 0.13422382457535] , [ 1078117200000 , 0.14210937327344] , [ 1078203600000 , 0.14700633353328] , [ 1078290000000 , 0.13922688521116] , [ 1078376400000 , 0.14429758068854] , [ 1078462800000 , 0.15506959894598] , [ 1078722000000 , 0.14294018272796] , [ 1078808400000 , 0.14048959983036] , [ 1078894800000 , 0.13602811904017] , [ 1078981200000 , 0.13834202833344] , [ 1079067600000 , 0.14919796731091] , [ 1079326800000 , 0.13369419896477] , [ 1079413200000 , 0.14255082934923] , [ 1079499600000 , 0.13484850822421] , [ 1079586000000 , 0.15109195448804] , [ 1079672400000 , 0.13905057529637] , [ 1079931600000 , 0.13735280549285] , [ 1080018000000 , 0.13381725746529] , [ 1080104400000 , 0.13673513876199] , [ 1080190800000 , 0.1280950099741] , [ 1080277200000 , 0.13638870404742] , [ 1080536400000 , 0.13447210188141] , [ 1080622800000 , 0.13037846707069] , [ 1080709200000 , 0.043079993242009] , [ 1080795600000 , 0.040283747607273] , [ 1080882000000 , 0.044430430484027] , [ 1081137600000 , 0.040653587592269] , [ 1081224000000 , 0.043823771403589] , [ 1081310400000 , 0.041411458422106] , [ 1081396800000 , 0.040402011530743] , [ 1081742400000 , 0.042057438639387] , [ 1081828800000 , 0.042452570156989] , [ 1081915200000 , 0.038165859581189] , [ 1082001600000 , 0.039800435677929] , [ 1082088000000 , 0.038702582698507] , [ 1082347200000 , 0.037749891296561] , [ 1082433600000 , 0.040562005953138] , [ 1082520000000 , 0.038558873688731] , [ 1082606400000 , 0.040439454716736] , [ 1082692800000 , 0.041191779962148] , [ 1082952000000 , 0.039027043724878] , [ 1083038400000 , 0.040125276167174] , [ 1083124800000 , 0.043329459718505] , [ 1083211200000 , 0.042136782417024] , [ 1083297600000 , 0.039989708477652] , [ 1083556800000 , 0.036112529587832] , [ 1083643200000 , 0.038846431332102] , [ 1083729600000 , 0.036235278931083] , [ 1083816000000 , 0.033237448382233] , [ 1083902400000 , 0.033796088137171] , [ 1084161600000 , 0.033002551404037] , [ 1084248000000 , 0.033765716675188] , [ 1084334400000 , 0.031829313688668] , [ 1084420800000 , 0.033063294629432] , [ 1084507200000 , 0.032914634549266] , [ 1084766400000 , 0.032554802145526] , [ 1084852800000 , 0.033636940345072] , [ 1084939200000 , 0.036962486047104] , [ 1085025600000 , 0.036694593609774] , [ 1085112000000 , 0.03635113401995] , [ 1085371200000 , 0.037457306639345] , [ 1085457600000 , 0.036179209670313] , [ 1085544000000 , 0.036806248250445] , [ 1085630400000 , 0.036443758510971] , [ 1085716800000 , 0.036448425901262] , [ 1086062400000 , 0.041968833381239] , [ 1086148800000 , 0.038863027838162] , [ 1086235200000 , 0.04214956816562] , [ 1086321600000 , 0.041207634063618] , [ 1086580800000 , 0.03827641940432] , [ 1086667200000 , 0.036864722915658] , [ 1086753600000 , 0.036181894590074] , [ 1086840000000 , 0.034003906026981] , [ 1087185600000 , 0.038515333181245] , [ 1087272000000 , 0.034646045294979] , [ 1087358400000 , 0.037496122292149] , [ 1087444800000 , 0.039023018918331] , [ 1087531200000 , 0.036816514296769] , [ 1087790400000 , 0.037892980128942] , [ 1087876800000 , 0.042502806354063] , [ 1087963200000 , 0.042395293229815] , [ 1088049600000 , 0.037996106758165] , [ 1088136000000 , 0.036290640119804] , [ 1088395200000 , 0.037444338433371] , [ 1088481600000 , 0.036450560918436] , [ 1088568000000 , 0.38987608574103] , [ 1088654400000 , 0.36007497681376] , [ 1088740800000 , 0.35916161356966] , [ 1089086400000 , 0.34837877579055] , [ 1089172800000 , 0.35919440094404] , [ 1089259200000 , 0.38475991637086] , [ 1089345600000 , 0.32837764490869] , [ 1089604800000 , 0.31853247564573] , [ 1089691200000 , 0.32584208381372] , [ 1089777600000 , 0.32194156348395] , [ 1089864000000 , 0.37536662084325] , [ 1089950400000 , 0.3766551887084] , [ 1090209600000 , 0.40726679545134] , [ 1090296000000 , 0.38648530146356] , [ 1090382400000 , 0.37409632246768] , [ 1090468800000 , 0.37409544007818] , [ 1090555200000 , 0.37055835119221] , [ 1090814400000 , 0.37550685955691] , [ 1090900800000 , 0.37419170032409] , [ 1090987200000 , 0.38151211478009] , [ 1091073600000 , 0.37026251646666] , [ 1091160000000 , 0.39580708538652] , [ 1091419200000 , 0.40223381041709] , [ 1091505600000 , 0.39397469057887] , [ 1091592000000 , 0.38461208040503] , [ 1091678400000 , 0.40157185514709] , [ 1091764800000 , 0.49468773985675] , [ 1092024000000 , 0.46157456459015] , [ 1092110400000 , 0.47406411916133] , [ 1092196800000 , 0.50875166265444] , [ 1092283200000 , 0.47804780106801] , [ 1092369600000 , 0.48513183701324] , [ 1092628800000 , 0.47397457255883] , [ 1092715200000 , 0.46197589413417] , [ 1092801600000 , 0.37675242805852] , [ 1092888000000 , 0.38434167263157] , [ 1092974400000 , 0.38370069077138] , [ 1093233600000 , 0.3694792334813] , [ 1093320000000 , 0.36966353326572] , [ 1093406400000 , 0.37981222720974] , [ 1093492800000 , 0.39157851067496] , [ 1093579200000 , 0.39832930183424] , [ 1093838400000 , 0.41714833138812] , [ 1093924800000 , 0.41957688664075] , [ 1094011200000 , 0.4029673674536] , [ 1094097600000 , 0.41012586224919] , [ 1094184000000 , 0.40990165088346] , [ 1094529600000 , 0.40441056282186] , [ 1094616000000 , 0.40384129044752] , [ 1094702400000 , 0.4043469357522] , [ 1094788800000 , 0.41087997979019] , [ 1095048000000 , 0.40369920893288] , [ 1095134400000 , 0.41220446836229] , [ 1095220800000 , 0.41020321980473] , [ 1095307200000 , 0.41555570322753] , [ 1095393600000 , 0.4023472363438] , [ 1095652800000 , 0.41410888862687] , [ 1095739200000 , 0.39846061791906] , [ 1095825600000 , 0.41474213178066] , [ 1095912000000 , 0.38423985142339] , [ 1095998400000 , 0.33696459849967] , [ 1096257600000 , 0.37240522401662] , [ 1096344000000 , 0.34510432816914] , [ 1096430400000 , 0.33136351494997] , [ 1096516800000 , 0.38436797167454] , [ 1096603200000 , 0.36392113068077] , [ 1096862400000 , 0.38394438541252] , [ 1096948800000 , 0.37738905657046] , [ 1097035200000 , 0.37129524939141] , [ 1097121600000 , 0.37661307666643] , [ 1097208000000 , 0.38376339925963] , [ 1097467200000 , 0.37698090395419] , [ 1097553600000 , 0.38466438465664] , [ 1097640000000 , 0.38552917097573] , [ 1097726400000 , 0.38295574557265] , [ 1097812800000 , 0.38608823287329] , [ 1098072000000 , 0.39606272849381] , [ 1098158400000 , 0.39977219262761] , [ 1098244800000 , 0.37287975500762] , [ 1098331200000 , 0.35387196145581] , [ 1098417600000 , 0.39496745491125] , [ 1098676800000 , 0.39489927197645] , [ 1098763200000 , 0.35714549128851] , [ 1098849600000 , 0.37680375842899] , [ 1098936000000 , 0.38133362981812] , [ 1099022400000 , 0.36334295857985] , [ 1099285200000 , 0.35891130650083] , [ 1099371600000 , 0.36213450201907] , [ 1099458000000 , 0.36305986324541] , [ 1099544400000 , 0.367181608239] , [ 1099630800000 , 0.345924979949] , [ 1099890000000 , 0.35545038697162] , [ 1099976400000 , 0.35130608250988] , [ 1100062800000 , 0.36291787792322] , [ 1100149200000 , 0.36461820979297] , [ 1100235600000 , 0.36548605733172] , [ 1100494800000 , 0.35408841887334] , [ 1100581200000 , 0.37310682746733] , [ 1100667600000 , 0.37161415702166] , [ 1100754000000 , 0.36646386964788] , [ 1100840400000 , 0.37513819386426] , [ 1101099600000 , 0.36383784194996] , [ 1101186000000 , 0.3651170397601] , [ 1101272400000 , 0.36683085353481] , [ 1101445200000 , 0.37539330498467] , [ 1101704400000 , 0.34882620581261] , [ 1101790800000 , 0.36517170678901] , [ 1101877200000 , 0.33963261527792] , [ 1101963600000 , 0.34647852737023] , [ 1102050000000 , 0.35698021026837] , [ 1102309200000 , 0.35844452137989] , [ 1102395600000 , 0.37978658052913] , [ 1102482000000 , 0.364670534636] , [ 1102568400000 , 0.36800280374422] , [ 1102654800000 , 0.35323070569743] , [ 1102914000000 , 0.35145593502416] , [ 1103000400000 , 0.34920002707242] , [ 1103086800000 , 0.36655737046135] , [ 1103173200000 , 0.37968359792346] , [ 1103259600000 , 0.37364127890912] , [ 1103518800000 , 0.38158951606706] , [ 1103605200000 , 0.37753112891031] , [ 1103691600000 , 0.40140328460469] , [ 1103778000000 , 0.37862280609298] , [ 1104123600000 , 0.38788453693715] , [ 1104210000000 , 0.39351850639239] , [ 1104296400000 , 0.3854342015797] , [ 1104382800000 , 0.39209212572227] , [ 1104469200000 , 0.62122235607083] , [ 1104728400000 , 0.60121120663027] , [ 1104814800000 , 0.61454818094337] , [ 1104901200000 , 0.58416165264652] , [ 1104987600000 , 0.60424076612216] , [ 1105074000000 , 0.59676116438901] , [ 1105333200000 , 0.59892159471824] , [ 1105419600000 , 0.58659097926312] , [ 1105506000000 , 0.5953209241749] , [ 1105592400000 , 0.64456653204505] , [ 1105678800000 , 0.64021470874433] , [ 1106024400000 , 0.62906481191661] , [ 1106110800000 , 0.61867908036089] , [ 1106197200000 , 0.63893923395183] , [ 1106283600000 , 0.64227178085747] , [ 1106542800000 , 0.65347064004625] , [ 1106629200000 , 0.63035617304371] , [ 1106715600000 , 0.64772810508811] , [ 1106802000000 , 0.64286914127566] , [ 1106888400000 , 0.62302840939674] , [ 1107147600000 , 0.66149167638339] , [ 1107234000000 , 0.61967119931611] , [ 1107320400000 , 0.63596342992503] , [ 1107406800000 , 0.63582183776166] , [ 1107493200000 , 0.63890003629705] , [ 1107752400000 , 0.65385112283064] , [ 1107838800000 , 0.61763865993933] , [ 1107925200000 , 0.63039219633145] , [ 1108011600000 , 0.63564728405509] , [ 1108098000000 , 0.64841840732127] , [ 1108357200000 , 0.62987978032264] , [ 1108443600000 , 0.63952467251781] , [ 1108530000000 , 0.60803506762993] , [ 1108616400000 , 0.60924199574948] , [ 1108702800000 , 0.62720795451261] , [ 1109048400000 , 0.67868561376144] , [ 1109134800000 , 0.64457773480528] , [ 1109221200000 , 0.63854921418197] , [ 1109307600000 , 0.60472528190715] , [ 1109566800000 , 0.64880843481536] , [ 1109653200000 , 0.60929190900967] , [ 1109739600000 , 0.60262584872237] , [ 1109826000000 , 0.6209822624622] , [ 1109912400000 , 0.59399619054478] , [ 1110171600000 , 0.59262634332275] , [ 1110258000000 , 0.59569530567455] , [ 1110344400000 , 0.58280395041141] , [ 1110430800000 , 0.60118706408301] , [ 1110517200000 , 0.60510096760445] , [ 1110776400000 , 0.60793443149121] , [ 1110862800000 , 0.6094232824956] , [ 1110949200000 , 0.56373698317073] , [ 1111035600000 , 0.59026315151813] , [ 1111122000000 , 0.56275388104744] , [ 1111381200000 , 0.58593902224025] , [ 1111467600000 , 0.5636885616686] , [ 1111554000000 , 0.55111487934048] , [ 1111640400000 , 0.5669793931446] , [ 1111986000000 , 0.59172264305349] , [ 1112072400000 , 0.59013350447577] , [ 1112158800000 , 0.58571949529017] , [ 1112245200000 , 0.39447011058686] , [ 1112331600000 , 0.36400425514622] , [ 1112587200000 , 0.35776258470175] , [ 1112673600000 , 0.43851650789862] , [ 1112760000000 , 0.44412013643186] , [ 1112846400000 , 0.37989410253067] , [ 1112932800000 , 0.28900177382308] , [ 1113192000000 , 0.36788915652238] , [ 1113278400000 , 0.28579009834861] , [ 1113364800000 , 0.28469677412475] , [ 1113451200000 , 0.35795943627113] , [ 1113537600000 , 0.37082979476416] , [ 1113796800000 , 0.36779695018111] , [ 1113883200000 , 0.34374004726135] , [ 1113969600000 , 0.45643149590384] , [ 1114056000000 , 0.4433743395976] , [ 1114142400000 , 0.44202423487566] , [ 1114401600000 , 0.43961049637811] , [ 1114488000000 , 0.45267658788063] , [ 1114574400000 , 0.47018137492095] , [ 1114660800000 , 0.47486798354402] , [ 1114747200000 , 0.46606299998856] , [ 1115006400000 , 0.4930085582113] , [ 1115092800000 , 0.48965988041656] , [ 1115179200000 , 0.45667786660287] , [ 1115265600000 , 0.43885993023529] , [ 1115352000000 , 0.43783601240521] , [ 1115611200000 , 0.4310821346918] , [ 1115697600000 , 0.4432921360618] , [ 1115784000000 , 0.42739604366661] , [ 1115870400000 , 0.43416913766062] , [ 1115956800000 , 0.41027380462257] , [ 1116216000000 , 0.42436135767604] , [ 1116302400000 , 0.43629236570361] , [ 1116388800000 , 0.42852586390979] , [ 1116475200000 , 0.4284589768507] , [ 1116561600000 , 0.42724164025025] , [ 1116820800000 , 0.42148141673019] , [ 1116907200000 , 0.4140427664496] , [ 1116993600000 , 0.42817051090869] , [ 1117080000000 , 0.42811591532169] , [ 1117166400000 , 0.43480202581251] , [ 1117512000000 , 0.42508589374691] , [ 1117598400000 , 0.43343422191068] , [ 1117684800000 , 0.45773506240682] , [ 1117771200000 , 0.45439490524272] , [ 1118030400000 , 0.45651971476796] , [ 1118116800000 , 0.44152980952614] , [ 1118203200000 , 0.44743209414993] , [ 1118289600000 , 0.45469129556631] , [ 1118376000000 , 0.43483167759493] , [ 1118635200000 , 0.43031082515377] , [ 1118721600000 , 0.45930933803502] , [ 1118808000000 , 0.46078342072977] , [ 1118894400000 , 0.45445895679547] , [ 1118980800000 , 0.4526778385454] , [ 1119240000000 , 0.45697274788597] , [ 1119326400000 , 0.46903515002673] , [ 1119412800000 , 0.46111612851752] , [ 1119499200000 , 0.47535664554388] , [ 1119585600000 , 0.49306841028507] , [ 1119844800000 , 0.4886760061369] , [ 1119931200000 , 0.47086383863461] , [ 1120017600000 , 0.48441858477258] , [ 1120104000000 , 0.61832296127608] , [ 1120190400000 , 0.65411477192991] , [ 1120536000000 , 0.49894747385731] , [ 1120622400000 , 0.48469523615474] , [ 1120708800000 , 0.65138056809888] , [ 1120795200000 , 0.64304910758613] , [ 1121054400000 , 0.6559920402659] , [ 1121140800000 , 0.66118089680451] , [ 1121227200000 , 0.67756803258577] , [ 1121313600000 , 0.65216285229659] , [ 1121400000000 , 0.66711843230222] , [ 1121659200000 , 0.69144986128045] , [ 1121745600000 , 0.67159046845325] , [ 1121832000000 , 0.70807395185446] , [ 1121918400000 , 0.54095667281304] , [ 1122004800000 , 0.5089879981561] , [ 1122264000000 , 0.52352511046863] , [ 1122350400000 , 0.55171566660544] , [ 1122436800000 , 0.58026398134902] , [ 1122523200000 , 0.5447757294053] , [ 1122609600000 , 0.56643699438967] , [ 1122868800000 , 0.53218738821095] , [ 1122955200000 , 0.5555811146351] , [ 1123041600000 , 0.54105772037403] , [ 1123128000000 , 0.55216349591209] , [ 1123214400000 , 0.52244767865053] , [ 1123473600000 , 0.50308456664785] , [ 1123560000000 , 0.52096614517823] , [ 1123646400000 , 0.51516200583681] , [ 1123732800000 , 0.48665176191008] , [ 1123819200000 , 0.49583589167328] , [ 1124078400000 , 0.50358898065094] , [ 1124164800000 , 0.4982600605943] , [ 1124251200000 , 0.51638595395349] , [ 1124337600000 , 0.50290108239887] , [ 1124424000000 , 0.51420298894574] , [ 1124683200000 , 0.501356133759] , [ 1124769600000 , 0.48937594076624] , [ 1124856000000 , 0.50921605539711] , [ 1124942400000 , 0.51536905675379] , [ 1125028800000 , 0.52611915688051] , [ 1125288000000 , 0.50578707765142] , [ 1125374400000 , 0.51708117737528] , [ 1125460800000 , 0.52189353916232] , [ 1125547200000 , 0.51869992233272] , [ 1125633600000 , 0.52442570632128] , [ 1125979200000 , 0.52348135667568] , [ 1126065600000 , 0.50712149207143] , [ 1126152000000 , 0.39853144070375] , [ 1126238400000 , 0.37626143304953] , [ 1126497600000 , 0.37685246722436] , [ 1126584000000 , 0.37696682338027] , [ 1126670400000 , 0.38250303488507] , [ 1126756800000 , 0.38853878601149] , [ 1126843200000 , 0.39720205350604] , [ 1127102400000 , 0.38246621359149] , [ 1127188800000 , 0.39458479224224] , [ 1127275200000 , 0.39252448023845] , [ 1127361600000 , 0.39704540681604] , [ 1127448000000 , 0.3804141699462] , [ 1127707200000 , 0.37520772307294] , [ 1127793600000 , 0.36583102378453] , [ 1127880000000 , 0.53089570606572] , [ 1127966400000 , 0.53565511348212] , [ 1128052800000 , 0.28455156477589] , [ 1128312000000 , 0.2866996913567] , [ 1128398400000 , 0.29885906476219] , [ 1128484800000 , 0.30492356780702] , [ 1128571200000 , 0.28956840100103] , [ 1128657600000 , 0.30537553801139] , [ 1128916800000 , 0.29890984099937] , [ 1129003200000 , 0.29801974804218] , [ 1129089600000 , 0.28705739517062] , [ 1129176000000 , 0.27215719953539] , [ 1129262400000 , 0.28732688046429] , [ 1129521600000 , 0.26695255074849] , [ 1129608000000 , 0.27947140042508] , [ 1129694400000 , 0.1640126970422] , [ 1129780800000 , 0.28286904367429] , [ 1129867200000 , 0.29180870225613] , [ 1130126400000 , 0.30278273692719] , [ 1130212800000 , 0.29917849034537] , [ 1130299200000 , 0.28968981038784] , [ 1130385600000 , 0.28591902219754] , [ 1130472000000 , 0.29242694961535] , [ 1130734800000 , 0.29250242176988] , [ 1130821200000 , 0.40774792665504] , [ 1130907600000 , 0.29572035611257] , [ 1130994000000 , 0.29336140612499] , [ 1131080400000 , 0.2947155489941] , [ 1131339600000 , 0.27984604730157] , [ 1131426000000 , 0.27774017894691] , [ 1131512400000 , 0.2824108179446] , [ 1131598800000 , 0.27266476139892] , [ 1131685200000 , 0.28145760872602] , [ 1131944400000 , 0.2778405488462] , [ 1132030800000 , 0.28256142896452] , [ 1132117200000 , 0.27066399823214] , [ 1132203600000 , 0.26527518282653] , [ 1132290000000 , 0.26486010438949] , [ 1132549200000 , 0.28306154292559] , [ 1132635600000 , 0.26286597932896] , [ 1132722000000 , 0.26238074457023] , [ 1132894800000 , 0.26311379043932] , [ 1133154000000 , 0.4136159331706] , [ 1133240400000 , 0.35774547973642] , [ 1133326800000 , 0.53073899262452] , [ 1133413200000 , 0.36909398779325] , [ 1133499600000 , 0.36672946509259] , [ 1133758800000 , 0.37373430250645] , [ 1133845200000 , 0.37461389366391] , [ 1133931600000 , 0.35629393000642] , [ 1134018000000 , 0.3705943383987] , [ 1134104400000 , 0.37460270901238] , [ 1134363600000 , 0.36617723158865] , [ 1134450000000 , 0.37986767534784] , [ 1134536400000 , 0.37105346542707] , [ 1134622800000 , 0.37060332722022] , [ 1134709200000 , 0.38760430571762] , [ 1134968400000 , 0.36734330004461] , [ 1135054800000 , 0.37074758732076] , [ 1135141200000 , 0.35806178929791] , [ 1135227600000 , 0.35533559469085] , [ 1135314000000 , 0.35513143545522] , [ 1135659600000 , 0.35308688957685] , [ 1135746000000 , 0.37046506819907] , [ 1135832400000 , 0.36450014374408] , [ 1135918800000 , 0.36423801932024] , [ 1136264400000 , 0.49556220548654] , [ 1136350800000 , 0.49492386336512] , [ 1136437200000 , 0.49517380178303] , [ 1136523600000 , 0.50265710202576] , [ 1136782800000 , 0.39359946387333] , [ 1136869200000 , 0.38590236409208] , [ 1136955600000 , 0.39258576463726] , [ 1137042000000 , 0.40271080665062] , [ 1137128400000 , 0.41286962452156] , [ 1137474000000 , 0.40976940608917] , [ 1137560400000 , 0.39845421293693] , [ 1137646800000 , 0.3832634147807] , [ 1137733200000 , 0.3914749468988] , [ 1137992400000 , 0.4067663698373] , [ 1138078800000 , 0.40987816320618] , [ 1138165200000 , 0.40568311448644] , [ 1138251600000 , 0.40602370679277] , [ 1138338000000 , 0.41026253822456] , [ 1138597200000 , 0.39180236917409] , [ 1138683600000 , 0.4124647390781] , [ 1138770000000 , 0.39289366662715] , [ 1138856400000 , 0.3973910882774] , [ 1138942800000 , 0.39503027438072] , [ 1139202000000 , 0.43098602778232] , [ 1139288400000 , 0.41329553872152] , [ 1139374800000 , 0.42097021571259] , [ 1139461200000 , 0.42957769919783] , [ 1139547600000 , 0.43244535976359] , [ 1139806800000 , 0.4190517765553] , [ 1139893200000 , 0.43490107104911] , [ 1139979600000 , 0.41285628161217] , [ 1140066000000 , 0.42195967755994] , [ 1140152400000 , 0.42172858109231] , [ 1140498000000 , 0.41362154756379] , [ 1140584400000 , 0.45349210070292] , [ 1140670800000 , 0.46600395549677] , [ 1140757200000 , 0.42844351639394] , [ 1141016400000 , 0.43127658230242] , [ 1141102800000 , 0.42453897781965] , [ 1141189200000 , 0.60833201574911] , [ 1141275600000 , 0.61848160852955] , [ 1141362000000 , 0.61388606396602] , [ 1141621200000 , 0.60027623023359] , [ 1141707600000 , 0.62958204282625] , [ 1141794000000 , 0.61079677023637] , [ 1141880400000 , 0.6583353531538] , [ 1141966800000 , 0.5952631240736] , [ 1142226000000 , 0.59572939852303] , [ 1142312400000 , 0.60435386557059] , [ 1142398800000 , 0.636716777749] , [ 1142485200000 , 0.62797336156748] , [ 1142571600000 , 0.26315915844954] , [ 1142830800000 , 0.26682829281146] , [ 1142917200000 , 0.26238472701991] , [ 1143003600000 , 0.25682464700449] , [ 1143090000000 , 0.25198241716011] , [ 1143176400000 , 0.27791953686874] , [ 1143435600000 , 0.25702045419556] , [ 1143522000000 , 0.26838705583958] , [ 1143608400000 , 0.25602347019898] , [ 1143694800000 , 0.2528097115847] , [ 1143781200000 , 0.25423750493061] , [ 1144036800000 , 0.26206021897448] , [ 1144123200000 , 0.24983357579782] , [ 1144209600000 , 0.23574410786279] , [ 1144296000000 , 0.23489402412885] , [ 1144382400000 , 0.24917538519566] , [ 1144641600000 , 0.24218153667918] , [ 1144728000000 , 0.22900818782637] , [ 1144814400000 , 0.24260056138376] , [ 1144900800000 , 0.24209263019634] , [ 1145246400000 , 0.24104970681171] , [ 1145332800000 , 0.22962155097921] , [ 1145419200000 , 0.23594829847787] , [ 1145505600000 , 0.23357511845316] , [ 1145592000000 , 0.23466344797748] , [ 1145851200000 , 0.25382477010585] , [ 1145937600000 , 0.24498104622533] , [ 1146024000000 , 0.24856536934551] , [ 1146110400000 , 0.25490757398913] , [ 1146196800000 , 0.23927082407406] , [ 1146456000000 , 0.23862240395176] , [ 1146542400000 , 0.25340051572152] , [ 1146628800000 , 0.25153650791439] , [ 1146715200000 , 0.23832725080541] , [ 1146801600000 , 0.25824921427519] , [ 1147060800000 , 0.24328941145447] , [ 1147147200000 , 0.2402378238822] , [ 1147233600000 , 0.2586697308268] , [ 1147320000000 , 0.30189517371947] , [ 1147406400000 , 0.32297403691478] , [ 1147665600000 , 0.3232491211303] , [ 1147752000000 , 0.32742881018582] , [ 1147838400000 , 0.38921859671899] , [ 1147924800000 , 0.33326106234356] , [ 1148011200000 , 0.32021147443471] , [ 1148270400000 , 0.32262657135279] , [ 1148356800000 , 0.33651532188139] , [ 1148443200000 , 0.30920029793323] , [ 1148529600000 , 0.3240261610407] , [ 1148616000000 , 0.32324420598769] , [ 1148961600000 , 0.32918091697612] , [ 1149048000000 , 0.31768209061131] , [ 1149134400000 , 0.30637193238745] , [ 1149220800000 , 0.32125702341211] , [ 1149480000000 , 0.33536974402701] , [ 1149566400000 , 0.32360008173408] , [ 1149652800000 , 0.33393947607866] , [ 1149739200000 , 0.31413863931084] , [ 1149825600000 , 0.3285324913035] , [ 1150084800000 , 0.38048398262873] , [ 1150171200000 , 0.38109368075766] , [ 1150257600000 , 0.38535042978206] , [ 1150344000000 , 0.37871618841262] , [ 1150430400000 , 0.30179728522937] , [ 1150689600000 , 0.30070122407365] , [ 1150776000000 , 0.2953152783643] , [ 1150862400000 , 0.30810454322489] , [ 1150948800000 , 0.30950223296979] , [ 1151035200000 , 0.30751277925044] , [ 1151294400000 , 0.28946090712408] , [ 1151380800000 , 0.28171452650496] , [ 1151467200000 , 0.26818310831493] , [ 1151553600000 , 0.25159447935111] , [ 1151640000000 , 0.29285262329978] , [ 1151899200000 , 0.29967797591809] , [ 1152072000000 , 0.30470675586592] , [ 1152158400000 , 0.29788563489538] , [ 1152244800000 , 0.29442725214254] , [ 1152504000000 , 0.28629797576532] , [ 1152590400000 , 0.28284047218036] , [ 1152676800000 , 0.3078549818262] , [ 1152763200000 , 0.29413642561555] , [ 1152849600000 , 0.2873364630212] , [ 1153108800000 , 0.29703563639096] , [ 1153195200000 , 0.29728147488916] , [ 1153281600000 , 0.34407083185299] , [ 1153368000000 , 0.33524111767625] , [ 1153454400000 , 0.35641579241026] , [ 1153713600000 , 0.33240152203203] , [ 1153800000000 , 0.33354102856487] , [ 1153886400000 , 0.32793727373281] , [ 1153972800000 , 0.32817019149387] , [ 1154059200000 , 0.25158326201658] , [ 1154318400000 , 0.25146778780225] , [ 1154404800000 , 0.25668488474603] , [ 1154491200000 , 0.24462027564784] , [ 1154577600000 , 0.23861168877594] , [ 1154664000000 , 0.24589478883994] , [ 1154923200000 , 0.24349309598349] , [ 1155009600000 , 0.23003941539242] , [ 1155096000000 , 0.23378888406009] , [ 1155182400000 , 0.23368460417548] , [ 1155268800000 , 0.24430217598693] , [ 1155528000000 , 0.23769761182813] , [ 1155614400000 , 0.22834717036674] , [ 1155700800000 , 0.22584122842512] , [ 1155787200000 , 0.21766258101038] , [ 1155873600000 , 0.23037546015835] , [ 1156132800000 , 0.24360698144711] , [ 1156219200000 , 0.23495113421301] , [ 1156305600000 , 0.23659104095268] , [ 1156392000000 , 0.23023311394933] , [ 1156478400000 , 0.19878228456548] , [ 1156737600000 , 0.19888283980978] , [ 1156824000000 , 0.18547047820099] , [ 1156910400000 , 0.19185078217396] , [ 1156996800000 , 0.19612220913794] , [ 1157083200000 , 0.19278636372742] , [ 1157428800000 , 0.19575613171536] , [ 1157515200000 , 0.19329067240882] , [ 1157601600000 , 0.19531517865992] , [ 1157688000000 , 0.1907315812117] , [ 1157947200000 , 0.18142922122266] , [ 1158033600000 , 0.19112810429448] , [ 1158120000000 , 0.18870012670334] , [ 1158206400000 , 0.18390553429849] , [ 1158292800000 , 0.18644727481368] , [ 1158552000000 , 0.18732023567372] , [ 1158638400000 , 0.18227254965398] , [ 1158724800000 , 0.18159843957856] , [ 1158811200000 , 0.18252102362501] , [ 1158897600000 , 0.1825931067065] , [ 1159156800000 , 0.18472261365044] , [ 1159243200000 , 0.17929881821499] , [ 1159329600000 , 0.19123889443147] , [ 1159416000000 , 0.18870273880387] , [ 1159502400000 , 0.18300240244295] , [ 1159761600000 , 0.50863993408795] , [ 1159848000000 , 0.48210449075571] , [ 1159934400000 , 0.47013337407988] , [ 1160020800000 , 0.48312664523393] , [ 1160107200000 , 0.49058381810915] , [ 1160366400000 , 0.48050490107879] , [ 1160452800000 , 0.36585322228025] , [ 1160539200000 , 0.50152250092668] , [ 1160625600000 , 0.35485455328239] , [ 1160712000000 , 0.38250667491279] , [ 1160971200000 , 0.37524019406877] , [ 1161057600000 , 0.35275337851052] , [ 1161144000000 , 0.35519237337929] , [ 1161230400000 , 0.35783747889518] , [ 1161316800000 , 0.35517712832824] , [ 1161576000000 , 0.38316572493612] , [ 1161662400000 , 0.38881796691042] , [ 1161748800000 , 0.37077626954309] , [ 1161835200000 , 0.35576229140568] , [ 1161921600000 , 0.52311007405192] , [ 1162184400000 , 0.49950514781134] , [ 1162270800000 , 0.35248264643404] , [ 1162357200000 , 0.48193502789331] , [ 1162443600000 , 0.45811153980309] , [ 1162530000000 , 0.46310937441848] , [ 1162789200000 , 0.49430930171419] , [ 1162875600000 , 0.34999979746123] , [ 1162962000000 , 0.36459341236543] , [ 1163048400000 , 0.35833603482679] , [ 1163134800000 , 0.35284589030886] , [ 1163394000000 , 0.40174104775192] , [ 1163480400000 , 0.35965085861264] , [ 1163566800000 , 0.35616853377325] , [ 1163653200000 , 0.37896776933586] , [ 1163739600000 , 0.37501110100191] , [ 1163998800000 , 0.37500220936742] , [ 1164085200000 , 0.39169939900146] , [ 1164171600000 , 0.36894756973605] , [ 1164344400000 , 0.37040294560006] , [ 1164603600000 , 0.38705053246262] , [ 1164690000000 , 0.36832634961052] , [ 1164776400000 , 0.34213417956824] , [ 1164862800000 , 0.34580465211495] , [ 1164949200000 , 0.40108806571521] , [ 1165208400000 , 0.42709230888276] , [ 1165294800000 , 0.40266641573382] , [ 1165381200000 , 0.39310646135032] , [ 1165467600000 , 0.50726360184158] , [ 1165554000000 , 0.47312214678718] , [ 1165813200000 , 0.47820333998284] , [ 1165899600000 , 0.46011449047854] , [ 1165986000000 , 0.5051922251437] , [ 1166072400000 , 0.50801248223675] , [ 1166158800000 , 0.49312204582104] , [ 1166418000000 , 0.49685353518185] , [ 1166504400000 , 0.54566237720795] , [ 1166590800000 , 0.50492611045697] , [ 1166677200000 , 0.48747798678124] , [ 1166763600000 , 0.52323968216806] , [ 1167109200000 , 0.58047024339905] , [ 1167195600000 , 0.53058049638283] , [ 1167282000000 , 0.523959678361] , [ 1167368400000 , 0.64436565009557] , [ 1167800400000 , 0.66769291913771] , [ 1167886800000 , 0.49765317381037] , [ 1167973200000 , 0.49163486346533] , [ 1168232400000 , 0.51522575100992] , [ 1168318800000 , 0.55916689291074] , [ 1168405200000 , 0.65212629830864] , [ 1168491600000 , 0.4907080289554] , [ 1168578000000 , 0.45544641818386] , [ 1168923600000 , 0.46022875844913] , [ 1169010000000 , 0.44731829098412] , [ 1169096400000 , 0.44244076049051] , [ 1169182800000 , 0.47381721404682] , [ 1169442000000 , 0.42751964859032] , [ 1169528400000 , 0.50191666048328] , [ 1169614800000 , 0.47256376840505] , [ 1169701200000 , 0.46867343244732] , [ 1169787600000 , 0.46687731984312] , [ 1170046800000 , 0.47846097997401] , [ 1170133200000 , 0.46826006923677] , [ 1170219600000 , 0.48109723322224] , [ 1170306000000 , 0.48641267470987] , [ 1170392400000 , 0.46591979546739] , [ 1170651600000 , 0.48116119567998] , [ 1170738000000 , 0.50539475360323] , [ 1170824400000 , 0.478613401008] , [ 1170910800000 , 0.48352093437406] , [ 1170997200000 , 0.44605779350788] , [ 1171256400000 , 0.48583744996642] , [ 1171342800000 , 0.4554893549375] , [ 1171429200000 , 0.45750877647433] , [ 1171515600000 , 0.45047787930712] , [ 1171602000000 , 0.42610011741245] , [ 1171947600000 , 0.45037970946695] , [ 1172034000000 , 0.45916838083336] , [ 1172120400000 , 0.4748533114785] , [ 1172206800000 , 0.49644225792847] , [ 1172466000000 , 0.50071744162037] , [ 1172552400000 , 0.60957094744557] , [ 1172638800000 , 0.62555888985632] , [ 1172725200000 , 0.65948576333958] , [ 1172811600000 , 0.5886253227668] , [ 1173070800000 , 0.42403713120847] , [ 1173157200000 , 0.43371457920983] , [ 1173243600000 , 0.6226001715887] , [ 1173330000000 , 0.62667389133331] , [ 1173416400000 , 0.63295473653827] , [ 1173672000000 , 0.58942903175236] , [ 1173758400000 , 0.59100362666202] , [ 1173844800000 , 0.59693723078734] , [ 1173931200000 , 0.60010240865825] , [ 1174017600000 , 0.61159616491547] , [ 1174276800000 , 0.61360517145536] , [ 1174363200000 , 0.42601195213011] , [ 1174449600000 , 0.41949523257628] , [ 1174536000000 , 0.44693079557426] , [ 1174622400000 , 0.41914838579865] , [ 1174881600000 , 0.42440655055001] , [ 1174968000000 , 0.43569046168251] , [ 1175054400000 , 0.4330238907678] , [ 1175140800000 , 0.45415135645919] , [ 1175227200000 , 0.59796556904616] , [ 1175486400000 , 0.45192845294115] , [ 1175572800000 , 0.42993112423138] , [ 1175659200000 , 0.44166803154689] , [ 1175745600000 , 0.42915671533333] , [ 1176091200000 , 0.33112012454111] , [ 1176177600000 , 0.45328129653457] , [ 1176264000000 , 0.44925474507227] , [ 1176350400000 , 0.44187452671787] , [ 1176436800000 , 0.47452041996444] , [ 1176696000000 , 0.4844987901415] , [ 1176782400000 , 0.34239500671849] , [ 1176868800000 , 0.3696048774802] , [ 1176955200000 , 0.45814063042943] , [ 1177041600000 , 0.37066630901813] , [ 1177300800000 , 0.39161491066633] , [ 1177387200000 , 0.34366812991218] , [ 1177473600000 , 0.34304929686105] , [ 1177560000000 , 0.35123762526151] , [ 1177646400000 , 0.38433077705585] , [ 1177905600000 , 0.36212330242843] , [ 1177992000000 , 0.35227440119665] , [ 1178078400000 , 0.33312827981479] , [ 1178164800000 , 0.3292686231049] , [ 1178251200000 , 0.3515948159995] , [ 1178510400000 , 0.36791431316468] , [ 1178596800000 , 0.37399378492007] , [ 1178683200000 , 0.38686176679898] , [ 1178769600000 , 0.34253071045616] , [ 1178856000000 , 0.33994900497176] , [ 1179115200000 , 0.34136261037104] , [ 1179201600000 , 0.32839795017151] , [ 1179288000000 , 0.32833865270696] , [ 1179374400000 , 0.34281049697099] , [ 1179460800000 , 0.33022523043443] , [ 1179720000000 , 0.33552807617414] , [ 1179806400000 , 0.30861439673485] , [ 1179892800000 , 0.35026918665455] , [ 1179979200000 , 0.36022828871516] , [ 1180065600000 , 0.31608415566601] , [ 1180411200000 , 0.33717769857896] , [ 1180497600000 , 0.32855205537625] , [ 1180584000000 , 0.33723673802866] , [ 1180670400000 , 0.36429829817467] , [ 1180929600000 , 0.34321562074903] , [ 1181016000000 , 0.35344641788559] , [ 1181102400000 , 0.34091712635513] , [ 1181188800000 , 0.37959716840531] , [ 1181275200000 , 0.34160191437995] , [ 1181534400000 , 0.34413519421482] , [ 1181620800000 , 0.34205570706973] , [ 1181707200000 , 0.37181620578684] , [ 1181793600000 , 0.35504424736893] , [ 1181880000000 , 0.34663801494764] , [ 1182139200000 , 0.3591705944613] , [ 1182225600000 , 0.36388788504953] , [ 1182312000000 , 0.3578945897143] , [ 1182398400000 , 0.35605078432052] , [ 1182484800000 , 0.40881990315009] , [ 1182744000000 , 0.3839507038504] , [ 1182830400000 , 0.36799165042463] , [ 1182916800000 , 0.36051111716486] , [ 1183003200000 , 0.35701679835689] , [ 1183089600000 , 0.35360843257564] , [ 1183348800000 , 0.38999403044285] , [ 1183435200000 , 0.35266034491331] , [ 1183608000000 , 0.37625534896865] , [ 1183694400000 , 0.35468844128475] , [ 1183953600000 , 0.35522533840884] , [ 1184040000000 , 0.34814896187095] , [ 1184126400000 , 0.38368959037691] , [ 1184212800000 , 0.34989984817338] , [ 1184299200000 , 0.34549990396978] , [ 1184558400000 , 0.35401219273819] , [ 1184644800000 , 0.35661977440322] , [ 1184731200000 , 0.33441778940366] , [ 1184817600000 , 0.35285368325153] , [ 1184904000000 , 0.35251182214195] , [ 1185163200000 , 0.36185231903605] , [ 1185249600000 , 0.3513384959364] , [ 1185336000000 , 0.34514255273762] , [ 1185422400000 , 0.32654950716599] , [ 1185508800000 , 0.35440284257421] , [ 1185768000000 , 0.31761658366267] , [ 1185854400000 , 0.35053234250323] , [ 1185940800000 , 0.32990248955656] , [ 1186027200000 , 0.34944474295037] , [ 1186113600000 , 0.35219361962543] , [ 1186372800000 , 0.33885123808326] , [ 1186459200000 , 0.33874184127437] , [ 1186545600000 , 0.3827000362796] , [ 1186632000000 , 0.3972977831726] , [ 1186718400000 , 0.38179263855366] , [ 1186977600000 , 0.40098071477787] , [ 1187064000000 , 0.3517564247507] , [ 1187150400000 , 0.37134614015731] , [ 1187236800000 , 0.37281646565152] , [ 1187323200000 , 0.36374067616171] , [ 1187582400000 , 0.36715817710172] , [ 1187668800000 , 0.33774938217278] , [ 1187755200000 , 0.3575023635914] , [ 1187841600000 , 0.35930492878238] , [ 1187928000000 , 0.37088218551724] , [ 1188187200000 , 0.349901562867] , [ 1188273600000 , 0.39164134731053] , [ 1188360000000 , 0.37220908723581] , [ 1188446400000 , 0.39503434085077] , [ 1188532800000 , 0.3874315205728] , [ 1188878400000 , 0.4053960227751] , [ 1188964800000 , 0.38715213648249] , [ 1189051200000 , 0.41451572337682] , [ 1189137600000 , 0.39751925642349] , [ 1189396800000 , 0.38704323105016] , [ 1189483200000 , 0.55730159784617] , [ 1189569600000 , 0.51700787367752] , [ 1189656000000 , 0.53180445343496] , [ 1189742400000 , 0.4780829790157] , [ 1190001600000 , 0.48801901762186] , [ 1190088000000 , 0.46532644449301] , [ 1190174400000 , 0.46309911871631] , [ 1190260800000 , 0.51279230165321] , [ 1190347200000 , 0.46255158883255] , [ 1190606400000 , 0.45767716125555] , [ 1190692800000 , 0.57907479297358] , [ 1190779200000 , 0.49267378930433] , [ 1190865600000 , 0.46648065987463] , [ 1190952000000 , 0.51398815092557] , [ 1191211200000 , 0.54608624816476] , [ 1191297600000 , 0.51014139003078] , [ 1191384000000 , 0.51294971785755] , [ 1191470400000 , 0.60288377917451] , [ 1191556800000 , 0.59341410351494] , [ 1191816000000 , 0.54768993725445] , [ 1191902400000 , 0.60186635000502] , [ 1191988800000 , 0.59444389496371] , [ 1192075200000 , 0.60827578052517] , [ 1192161600000 , 0.5923407911311] , [ 1192420800000 , 0.56567261352008] , [ 1192507200000 , 0.58312319852293] , [ 1192593600000 , 0.56835190866986] , [ 1192680000000 , 0.54273759692647] , [ 1192766400000 , 0.55290907413212] , [ 1193025600000 , 0.57342356654063] , [ 1193112000000 , 0.53989229709743] , [ 1193198400000 , 0.54796297370074] , [ 1193284800000 , 0.55828955698586] , [ 1193371200000 , 0.56530460892424] , [ 1193630400000 , 0.57049918248034] , [ 1193716800000 , 0.58411662549602] , [ 1193803200000 , 0.56635612421056] , [ 1193889600000 , 0.53239285331907] , [ 1193976000000 , 0.55799506646466] , [ 1194238800000 , 0.5638533423884] , [ 1194325200000 , 0.52398882568473] , [ 1194411600000 , 0.51125076497479] , [ 1194498000000 , 0.50036491232785] , [ 1194584400000 , 0.50473296198008] , [ 1194843600000 , 0.50751996213126] , [ 1194930000000 , 0.50631827082877] , [ 1195016400000 , 0.51962016312469] , [ 1195102800000 , 0.48530275751029] , [ 1195189200000 , 0.50566195644821] , [ 1195448400000 , 0.50312685796735] , [ 1195534800000 , 0.52511269580625] , [ 1195621200000 , 0.51020695995909] , [ 1195794000000 , 0.52020250555388] , [ 1196053200000 , 0.54016245667867] , [ 1196139600000 , 0.50233077589654] , [ 1196226000000 , 0.57540817076044] , [ 1196312400000 , 0.54122469660488] , [ 1196398800000 , 0.53255676099218] , [ 1196658000000 , 0.48987079043713] , [ 1196744400000 , 0.51099914354867] , [ 1196830800000 , 0.48220483136174] , [ 1196917200000 , 0.50071694285758] , [ 1197003600000 , 0.43774125830557] , [ 1197262800000 , 0.44706581264167] , [ 1197349200000 , 0.41905967062687] , [ 1197435600000 , 0.43535798100637] , [ 1197522000000 , 0.43384076902771] , [ 1197608400000 , 0.42799235129191] , [ 1197867600000 , 0.4160358173521] , [ 1197954000000 , 0.42001922130138] , [ 1198040400000 , 0.43195494789721] , [ 1198126800000 , 0.40631638637452] , [ 1198213200000 , 0.41972249653293] , [ 1198472400000 , 0.42463704903975] , [ 1198645200000 , 0.40013745529622] , [ 1198731600000 , 0.41837467920978] , [ 1198818000000 , 0.41271860020779] , [ 1199077200000 , 0.59438219971072] , [ 1199250000000 , 0.56663906060379] , [ 1199336400000 , 0.59526759475876] , [ 1199422800000 , 0.61100606531897] , [ 1199682000000 , 0.59983444531871] , [ 1199768400000 , 0.5772723810895] , [ 1199854800000 , 0.5883384206392] , [ 1199941200000 , 0.56861512866532] , [ 1200027600000 , 0.69750205422881] , [ 1200286800000 , 0.68711665402178] , [ 1200373200000 , 0.68221621286151] , [ 1200459600000 , 0.70312184433284] , [ 1200546000000 , 0.52426599794058] , [ 1200632400000 , 0.85343636191757] , [ 1200978000000 , 0.84790713039977] , [ 1201064400000 , 0.51330146872139] , [ 1201150800000 , 0.49404147411636] , [ 1201237200000 , 0.52666315074101] , [ 1201496400000 , 0.54303395376686] , [ 1201582800000 , 0.50820303088143] , [ 1201669200000 , 0.53297916958598] , [ 1201755600000 , 0.5147423355755] , [ 1201842000000 , 0.32088748006788] , [ 1202101200000 , 0.47122510068009] , [ 1202187600000 , 0.4601881597235] , [ 1202274000000 , 0.49098887103771] , [ 1202360400000 , 0.50072687031917] , [ 1202446800000 , 0.48163833030278] , [ 1202706000000 , 0.47308960010952] , [ 1202792400000 , 0.28957826766051] , [ 1202878800000 , 0.63131329374437] , [ 1202965200000 , 0.49824592238269] , [ 1203051600000 , 0.43994941396234] , [ 1203397200000 , 0.46514395736995] , [ 1203483600000 , 0.30738083288633] , [ 1203570000000 , 0.58825777235301] , [ 1203656400000 , 0.74137887163376] , [ 1203915600000 , 0.44065028861912] , [ 1204002000000 , 0.41996992252552] , [ 1204088400000 , 0.42754621820944] , [ 1204174800000 , 0.70697181063901] , [ 1204261200000 , 0.73193451043205] , [ 1204520400000 , 0.5906598071835] , [ 1204606800000 , 0.56928160224787] , [ 1204693200000 , 0.54182093171447] , [ 1204779600000 , 0.73063341297567] , [ 1204866000000 , 0.68371429610051] , [ 1205121600000 , 0.7625751244819] , [ 1205208000000 , 0.68055600216233] , [ 1205294400000 , 0.72473204995729] , [ 1205380800000 , 0.61218401083118] , [ 1205467200000 , 0.63617053799207] , [ 1205726400000 , 0.65166322269631] , [ 1205812800000 , 0.47611150252336] , [ 1205899200000 , 0.48277505401083] , [ 1205985600000 , 0.4846160317978] , [ 1206331200000 , 0.48556883069728] , [ 1206417600000 , 0.60726222412037] , [ 1206504000000 , 0.52383185754016] , [ 1206590400000 , 0.52365946774961] , [ 1206676800000 , 0.46417144966408] , [ 1206936000000 , 0.46527375852488] , [ 1207022400000 , 0.31585234391762] , [ 1207108800000 , 0.30916994796591] , [ 1207195200000 , 0.29811157436356] , [ 1207281600000 , 0.3092650937521] , [ 1207540800000 , 0.28075979729864] , [ 1207627200000 , 0.28859701542657] , [ 1207713600000 , 0.39689109181309] , [ 1207800000000 , 0.37749328174235] , [ 1207886400000 , 0.47622742545283] , [ 1208145600000 , 0.48720217118092] , [ 1208232000000 , 0.48244781192799] , [ 1208318400000 , 0.38980360034172] , [ 1208404800000 , 0.46578673955616] , [ 1208491200000 , 0.28086773059726] , [ 1208750400000 , 0.29236080787843] , [ 1208836800000 , 0.37331729326201] , [ 1208923200000 , 0.24953690256591] , [ 1209009600000 , 0.23022602856364] , [ 1209096000000 , 0.39633403248474] , [ 1209355200000 , 0.2380498772201] , [ 1209441600000 , 0.24280444478866] , [ 1209528000000 , 0.4020588351358] , [ 1209614400000 , 0.2452576454461] , [ 1209700800000 , 0.2432963797158] , [ 1209960000000 , 0.34089055038622] , [ 1210046400000 , 0.48814119108104] , [ 1210132800000 , 0.47004768691489] , [ 1210219200000 , 0.48022168675292] , [ 1210305600000 , 0.3650270719607] , [ 1210564800000 , 0.43960211465952] , [ 1210651200000 , 0.4551940569925] , [ 1210737600000 , 0.29118997916081] , [ 1210824000000 , 0.29321541292478] , [ 1210910400000 , 0.29807045827194] , [ 1211169600000 , 0.30021381179841] , [ 1211256000000 , 0.29871829156008] , [ 1211342400000 , 0.30043632935097] , [ 1211428800000 , 0.31338776196321] , [ 1211515200000 , 0.30323078836955] , [ 1211860800000 , 0.3045491446009] , [ 1211947200000 , 0.290242502233] , [ 1212033600000 , 0.29815942519378] , [ 1212120000000 , 0.30460432747926] , [ 1212379200000 , 0.26519350005928] , [ 1212465600000 , 0.26679139461481] , [ 1212552000000 , 0.26782545006753] , [ 1212638400000 , 0.27707376672124] , [ 1212724800000 , 0.38177367859955] , [ 1212984000000 , 0.37853767585651] , [ 1213070400000 , 0.3776399677321] , [ 1213156800000 , 0.37494369153164] , [ 1213243200000 , 0.37513032442289] , [ 1213329600000 , 0.37978491627173] , [ 1213588800000 , 0.37466366072811] , [ 1213675200000 , 0.36411230431799] , [ 1213761600000 , 0.36571677111738] , [ 1213848000000 , 0.36863375073017] , [ 1213934400000 , 0.37016327177331] , [ 1214193600000 , 0.35735480164753] , [ 1214280000000 , 0.35612152163447] , [ 1214366400000 , 0.35681657686682] , [ 1214452800000 , 0.37669445472584] , [ 1214539200000 , 0.35526667692706] , [ 1214798400000 , 0.3334171863603] , [ 1214884800000 , 0.32127794433588] , [ 1214971200000 , 0.3174169226431] , [ 1215057600000 , 0.3147256845205] , [ 1215403200000 , 0.31559725779491] , [ 1215489600000 , 0.31727905149011] , [ 1215576000000 , 0.30029706852334] , [ 1215662400000 , 0.30119949008169] , [ 1215748800000 , 0.27744941323013] , [ 1216008000000 , 0.26443664201933] , [ 1216094400000 , 0.25203546214315] , [ 1216180800000 , 0.26469570348968] , [ 1216267200000 , 0.27582094633375] , [ 1216353600000 , 0.25051203314215] , [ 1216612800000 , 0.21487661255261] , [ 1216699200000 , 0.2115682876953] , [ 1216785600000 , 0.21405133657672] , [ 1216872000000 , 0.21734683331501] , [ 1216958400000 , 0.21805949749064] , [ 1217217600000 , 0.24216664905691] , [ 1217304000000 , 0.21347237195378] , [ 1217390400000 , 0.21052618229433] , [ 1217476800000 , 0.20059773204849] , [ 1217563200000 , 0.18431878929575] , [ 1217822400000 , 0.17457179609389] , [ 1217908800000 , 0.16046211075731] , [ 1217995200000 , 0.16278321880382] , [ 1218081600000 , 0.12222384064905] , [ 1218168000000 , 0.11017965804903] , [ 1218427200000 , 0.10366785996478] , [ 1218513600000 , 0.1050097612081] , [ 1218600000000 , 0.15083749031544] , [ 1218686400000 , 0.10836717227927] , [ 1218772800000 , 0.108304102963] , [ 1219032000000 , 0.10667186849872] , [ 1219118400000 , 0.10865629424988] , [ 1219204800000 , 0.27127940139193] , [ 1219291200000 , 0.11173129227623] , [ 1219377600000 , 0.1046282127183] , [ 1219636800000 , 0.10391925096026] , [ 1219723200000 , 0.10177457137334] , [ 1219809600000 , 0.11329005002127] , [ 1219896000000 , 0.10527229287128] , [ 1219982400000 , 0.10758987874272] , [ 1220328000000 , 0.12480149431746] , [ 1220414400000 , 0.12420749383721] , [ 1220500800000 , 0.32457721551735] , [ 1220587200000 , 0.31259829180426] , [ 1220846400000 , 0.3069937006216] , [ 1220932800000 , 0.32317321559431] , [ 1221019200000 , 0.32660259527589] , [ 1221105600000 , 0.32075271782241] , [ 1221192000000 , 0.31305817834662] , [ 1221451200000 , 0.30623195711465] , [ 1221537600000 , 0.29611642841759] , [ 1221624000000 , 0.34495164607981] , [ 1221710400000 , 0.30357639845052] , [ 1221796800000 , 0.31481625284856] , [ 1222056000000 , 0.29472551605557] , [ 1222142400000 , 0.30865296764001] , [ 1222228800000 , 0.31173679899285] , [ 1222315200000 , 0.12648206101732] , [ 1222401600000 , 0.1296858319747] , [ 1222660800000 , 0.22153255385947] , [ 1222747200000 , 0.17772961427872] , [ 1222833600000 , 0.11902389673784] , [ 1222920000000 , 0.15741775119452] , [ 1223006400000 , 0.36578848607961] , [ 1223265600000 , 0.34469047998149] , [ 1223352000000 , 0.32989529511665] , [ 1223438400000 , 0.32144894066685] , [ 1223524800000 , 0.51430740780089] , [ 1223611200000 , 0.31200610521655] , [ 1223870400000 , 0.34930648168189] , [ 1223956800000 , 0.348049261098] , [ 1224043200000 , 0.47752533615353] , [ 1224129600000 , 0.34036307923862] , [ 1224216000000 , 0.34777965260155] , [ 1224475200000 , 0.30346610565607] , [ 1224561600000 , 0.29762149487832] , [ 1224648000000 , 0.30294066113067] , [ 1224734400000 , 0.3966885732434] , [ 1224820800000 , 0.36495351678967] , [ 1225080000000 , 0.39772408712588] , [ 1225166400000 , 0.28230635353554] , [ 1225252800000 , 0.3713217379313] , [ 1225339200000 , 0.49514710353798] , [ 1225425600000 , 0.29878195834702] , [ 1225688400000 , 0.48572850545185] , [ 1225774800000 , 0.47588879164015] , [ 1225861200000 , 0.57016264728502] , [ 1225947600000 , 0.55261804041056] , [ 1226034000000 , 0.55630372382609] , [ 1226293200000 , 0.56222142171884] , [ 1226379600000 , 0.57467770664666] , [ 1226466000000 , 0.56005559773731] , [ 1226552400000 , 0.59216964824764] , [ 1226638800000 , 0.57198130596015] , [ 1226898000000 , 0.53925607658231] , [ 1226984400000 , 0.76150001336095] , [ 1227070800000 , 0.71687298964713] , [ 1227157200000 , 0.74180135105241] , [ 1227243600000 , 0.78157325845356] , [ 1227502800000 , 0.78575524690454] , [ 1227589200000 , 0.82628988537806] , [ 1227675600000 , 0.53102148702081] , [ 1227848400000 , 0.53597499365299] , [ 1228107600000 , 0.84070854625485] , [ 1228194000000 , 0.92197329151934] , [ 1228280400000 , 0.82392245184232] , [ 1228366800000 , 0.85902316367763] , [ 1228453200000 , 0.82092938903034] , [ 1228712400000 , 0.85877211515616] , [ 1228798800000 , 0.82205510131298] , [ 1228885200000 , 0.81832907789421] , [ 1228971600000 , 0.84265695092228] , [ 1229058000000 , 0.58930442947479] , [ 1229317200000 , 0.85855285160156] , [ 1229403600000 , 0.81389563175646] , [ 1229490000000 , 0.85715079094207] , [ 1229576400000 , 0.86868357909078] , [ 1229662800000 , 0.61479048052935] , [ 1229922000000 , 0.64592182573864] , [ 1230008400000 , 0.64563822868834] , [ 1230094800000 , 0.36313942942696] , [ 1230267600000 , 0.38790947116659] , [ 1230526800000 , 0.35064085791612] , [ 1230613200000 , 0.38911108106029] , [ 1230699600000 , 0.18940004334571] , [ 1230872400000 , 0.1704784207332] , [ 1231131600000 , 0.18373706624239] , [ 1231218000000 , 0.1761245524483] , [ 1231304400000 , 0.17181723784677] , [ 1231390800000 , 0.17828072113707] , [ 1231477200000 , 0.16439458069931] , [ 1231736400000 , 0.35398878522463] , [ 1231822800000 , 0.15399052224597] , [ 1231909200000 , 0.27547708693355] , [ 1231995600000 , 0.35114247847651] , [ 1232082000000 , 0.34632910547372] , [ 1232427600000 , 0.30573353519992] , [ 1232514000000 , 0.3311135533928] , [ 1232600400000 , 0.29577210789856] , [ 1232686800000 , 0.27373981494358] , [ 1232946000000 , 0.28402867506106] , [ 1233032400000 , 0.27315559672525] , [ 1233118800000 , 0.26118724292253] , [ 1233205200000 , 0.24792999422078] , [ 1233291600000 , 0.23791380300149] , [ 1233550800000 , 0.45923597670993] , [ 1233637200000 , 0.44905625712369] , [ 1233723600000 , 0.44432726957627] , [ 1233810000000 , 0.22114315919681] , [ 1233896400000 , 0.2330948601108] , [ 1234155600000 , 0.22442050519721] , [ 1234242000000 , 0.43558487901564] , [ 1234328400000 , 0.41441049299744] , [ 1234414800000 , 0.40388097337704] , [ 1234501200000 , 0.40551726758713] , [ 1234846800000 , 0.36681354313206] , [ 1234933200000 , 0.37259737223335] , [ 1235019600000 , 0.54728589471741] , [ 1235106000000 , 0.57941599436443] , [ 1235365200000 , 0.49886848882963] , [ 1235451600000 , 0.50484880776678] , [ 1235538000000 , 0.51298567500563] , [ 1235624400000 , 0.51951620083703] , [ 1235710800000 , 0.50562680761225] , [ 1235970000000 , 0.43111919837371] , [ 1236056400000 , 0.22269692879935] , [ 1236142800000 , 0.22185137086912] , [ 1236229200000 , 0.3853600314828] , [ 1236315600000 , 0.40786667470187] , [ 1236571200000 , 0.36117947910811] , [ 1236657600000 , 0.18118578034245] , [ 1236744000000 , 0.20744102884774] , [ 1236830400000 , 0.21924063705196] , [ 1236916800000 , 0.26518381872913] , [ 1237176000000 , 0.25693149376704] , [ 1237262400000 , 0.2601997137348] , [ 1237348800000 , 0.30591907384986] , [ 1237435200000 , 0.30980521532039] , [ 1237521600000 , 0.28531010556109] , [ 1237780800000 , 0.32997212544042] , [ 1237867200000 , 0.30180263306483] , [ 1237953600000 , 0.30557198415586] , [ 1238040000000 , 0.35574073219029] , [ 1238126400000 , 0.32144121083197] , [ 1238385600000 , 0.27642669365771] , [ 1238472000000 , 0.38988059521306] , [ 1238558400000 , 0.3891957245978] , [ 1238644800000 , 0.41156214438479] , [ 1238731200000 , 0.4063019560013] , [ 1238990400000 , 0.39814789095604] , [ 1239076800000 , 0.37835830452098] , [ 1239163200000 , 0.37464325706583] , [ 1239249600000 , 0.40691809369142] , [ 1239595200000 , 0.41690557781091] , [ 1239681600000 , 0.38124585608813] , [ 1239768000000 , 0.41927036668188] , [ 1239854400000 , 0.41331203405089] , [ 1239940800000 , 0.3357905317095] , [ 1240200000000 , 0.41403714383105] , [ 1240286400000 , 0.42938568785804] , [ 1240372800000 , 0.3998056312926] , [ 1240459200000 , 0.30525401131279] , [ 1240545600000 , 0.30803908383263] , [ 1240804800000 , 0.30946646403815] , [ 1240891200000 , 0.30539809017731] , [ 1240977600000 , 0.32402483601616] , [ 1241064000000 , 0.3352333777588] , [ 1241150400000 , 0.3231292194158] , [ 1241409600000 , 0.36391852351921] , [ 1241496000000 , 0.34906714963989] , [ 1241582400000 , 0.34554192955696] , [ 1241668800000 , 0.3363823613639] , [ 1241755200000 , 0.38176012454461] , [ 1242014400000 , 0.4155050120935] , [ 1242100800000 , 0.385050768114] , [ 1242187200000 , 0.35101490295465] , [ 1242273600000 , 0.35887369973598] , [ 1242360000000 , 0.34653549546251] , [ 1242619200000 , 0.38060015172214] , [ 1242705600000 , 0.36945975492405] , [ 1242792000000 , 0.38935380107142] , [ 1242878400000 , 0.35950644076065] , [ 1242964800000 , 0.35198173104045] , [ 1243310400000 , 0.36243672592418] , [ 1243396800000 , 0.36571346535268] , [ 1243483200000 , 0.22906947139021] , [ 1243569600000 , 0.22215358473121] , [ 1243828800000 , 0.21184635282126] , [ 1243915200000 , 0.20557954580039] , [ 1244001600000 , 0.19464008066655] , [ 1244088000000 , 0.21051287267926] , [ 1244174400000 , 0.20960156265391] , [ 1244433600000 , 0.19895851833365] , [ 1244520000000 , 0.19105463895038] , [ 1244606400000 , 0.19020544907649] , [ 1244692800000 , 0.20467634381558] , [ 1244779200000 , 0.20633782755332] , [ 1245038400000 , 0.20256864984063] , [ 1245124800000 , 0.35231942170134] , [ 1245211200000 , 0.31102027443779] , [ 1245297600000 , 0.30008552208958] , [ 1245384000000 , 0.29954475552943] , [ 1245643200000 , 0.28945291747839] , [ 1245729600000 , 0.2871211618924] , [ 1245816000000 , 0.28309779963668] , [ 1245902400000 , 0.30134156157185] , [ 1245988800000 , 0.27166160658573] , [ 1246248000000 , 0.27934762558543] , [ 1246334400000 , 0.14770869804104] , [ 1246420800000 , 0.14979476896266] , [ 1246507200000 , 0.14216949018174] , [ 1246852800000 , 0.13739961409394] , [ 1246939200000 , 0.13641087294924] , [ 1247025600000 , 0.13737164160635] , [ 1247112000000 , 0.13382902031685] , [ 1247198400000 , 0.13770655564258] , [ 1247457600000 , 0.14356559248214] , [ 1247544000000 , 0.14166283205255] , [ 1247630400000 , 0.1531671099261] , [ 1247716800000 , 0.15782742307609] , [ 1247803200000 , 0.15383929619665] , [ 1248062400000 , 0.15852002056909] , [ 1248148800000 , 0.16059524423929] , [ 1248235200000 , 0.1590144089316] , [ 1248321600000 , 0.16624647762889] , [ 1248408000000 , 0.16054117548756] , [ 1248667200000 , 0.15913207686089] , [ 1248753600000 , 0.1672455589495] , [ 1248840000000 , 0.16794697386573] , [ 1248926400000 , 0.18474207035615] , [ 1249012800000 , 0.18438010735533] , [ 1249272000000 , 0.19072223849322] , [ 1249358400000 , 0.18134005712753] , [ 1249444800000 , 0.19043247185569] , [ 1249531200000 , 0.20066491344588] , [ 1249617600000 , 0.19955573612602] , [ 1249876800000 , 0.19939565572904] , [ 1249963200000 , 0.19067278308172] , [ 1250049600000 , 0.19509349391207] , [ 1250136000000 , 0.18994509337313] , [ 1250222400000 , 0.1860099818871] , [ 1250481600000 , 0.18628513256275] , [ 1250568000000 , 0.17645189245217] , [ 1250654400000 , 0.19281227318698] , [ 1250740800000 , 0.19378724445722] , [ 1250827200000 , 0.19628627239007] , [ 1251086400000 , 0.19793806848804] , [ 1251172800000 , 0.19298338258851] , [ 1251259200000 , 0.18656361482999] , [ 1251345600000 , 0.19496898208799] , [ 1251432000000 , 0.19933498732004] , [ 1251691200000 , 0.20235729217823] , [ 1251777600000 , 0.18946434807889] , [ 1251864000000 , 0.18618620809442] , [ 1251950400000 , 0.20522471015788] , [ 1252036800000 , 0.19897677649474] , [ 1252382400000 , 0.19160557658922] , [ 1252468800000 , 0.18976793778464] , [ 1252555200000 , 0.20329707522992] , [ 1252641600000 , 0.20213781992052] , [ 1252900800000 , 0.19832859780247] , [ 1252987200000 , 0.19596719262808] , [ 1253073600000 , 0.20654239160765] , [ 1253160000000 , 0.21111449355996] , [ 1253246400000 , 0.2112621121669] , [ 1253505600000 , 0.2006248914408] , [ 1253592000000 , 0.21007348609349] , [ 1253678400000 , 0.20183300437001] , [ 1253764800000 , 0.21144895936042] , [ 1253851200000 , 0.19533230458009] , [ 1254110400000 , 0.21108049214011] , [ 1254196800000 , 0.20224255046872] , [ 1254283200000 , 0.24333266083011] , [ 1254369600000 , 0.42562690254191] , [ 1254456000000 , 0.39882736793197] , [ 1254715200000 , 0.4109230651045] , [ 1254801600000 , 0.42720488861224] , [ 1254888000000 , 0.42402822327118] , [ 1254974400000 , 0.42784602685915] , [ 1255060800000 , 0.41387273603466] , [ 1255320000000 , 0.40715065425328] , [ 1255406400000 , 0.21490592196149] , [ 1255492800000 , 0.21711692256087] , [ 1255579200000 , 0.21263539351174] , [ 1255665600000 , 0.21054139546477] , [ 1255924800000 , 0.20703955749278] , [ 1256011200000 , 0.41615749625588] , [ 1256097600000 , 0.33782450127133] , [ 1256184000000 , 0.34222120473237] , [ 1256270400000 , 0.33861624714964] , [ 1256529600000 , 0.32354691717303] , [ 1256616000000 , 0.31260839592502] , [ 1256702400000 , 0.42728613748791] , [ 1256788800000 , 0.44981792808378] , [ 1256875200000 , 0.44609486736015] , [ 1257138000000 , 0.45857277772924] , [ 1257224400000 , 0.45429068995591] , [ 1257310800000 , 0.46300687817086] , [ 1257397200000 , 0.31181852434093] , [ 1257483600000 , 0.33521146961855] , [ 1257742800000 , 0.43998094093324] , [ 1257829200000 , 0.46850069852399] , [ 1257915600000 , 0.45998079505404] , [ 1258002000000 , 0.43990033390761] , [ 1258088400000 , 0.43192186956486] , [ 1258347600000 , 0.44193287636744] , [ 1258434000000 , 0.45174825719336] , [ 1258520400000 , 0.44388612458012] , [ 1258606800000 , 0.42624049682942] , [ 1258693200000 , 0.44790772605219] , [ 1258952400000 , 0.43692733373588] , [ 1259038800000 , 0.43377185720698] , [ 1259125200000 , 0.43219678597263] , [ 1259298000000 , 0.44386940623456] , [ 1259557200000 , 0.44643148173272] , [ 1259643600000 , 0.44707155240847] , [ 1259730000000 , 0.45840697320228] , [ 1259816400000 , 0.43747426694764] , [ 1259902800000 , 0.44835061679619] , [ 1260162000000 , 0.46587086852614] , [ 1260248400000 , 0.4545384119711] , [ 1260334800000 , 0.45310260633137] , [ 1260421200000 , 0.42887008081309] , [ 1260507600000 , 0.42882506235264] , [ 1260766800000 , 0.438052456726] , [ 1260853200000 , 0.44441837294803] , [ 1260939600000 , 0.45017843603725] , [ 1261026000000 , 0.45311273305076] , [ 1261112400000 , 0.46276884135044] , [ 1261371600000 , 0.47307044402006] , [ 1261458000000 , 0.46640525682956] , [ 1261544400000 , 0.49512113112803] , [ 1261630800000 , 0.48033942034566] , [ 1261976400000 , 0.48202674710044] , [ 1262062800000 , 0.48053769603864] , [ 1262149200000 , 0.48080452237603] , [ 1262235600000 , 0.61097799203784] , [ 1262581200000 , 0.64378035925207] , [ 1262667600000 , 0.61876210035266] , [ 1262754000000 , 0.62916872436038] , [ 1262840400000 , 0.62747304374993] , [ 1262926800000 , 0.66125721673519] , [ 1263186000000 , 0.64788192731418] , [ 1263272400000 , 0.6574728179579] , [ 1263358800000 , 0.66001660549178] , [ 1263445200000 , 0.63845436553734] , [ 1263531600000 , 0.63961853945271] , [ 1263877200000 , 0.63128386370442] , [ 1263963600000 , 0.61820998254633] , [ 1264050000000 , 0.63085915492893] , [ 1264136400000 , 0.64265006714393] , [ 1264395600000 , 0.62614908189366] , [ 1264482000000 , 0.63903015606303] , [ 1264568400000 , 0.56145074782027] , [ 1264654800000 , 0.56843246761258] , [ 1264741200000 , 0.57880931158468] , [ 1265000400000 , 0.60990225784836] , [ 1265086800000 , 0.59450744881925] , [ 1265173200000 , 0.58785188512433] , [ 1265259600000 , 0.56254894390866] , [ 1265346000000 , 0.58449293662275] , [ 1265605200000 , 0.61074241826766] , [ 1265691600000 , 0.60490333237216] , [ 1265778000000 , 0.60703541036865] , [ 1265864400000 , 0.61395184516402] , [ 1265950800000 , 0.63181191078349] , [ 1266296400000 , 0.64807806494211] , [ 1266382800000 , 0.49216531615509] , [ 1266469200000 , 0.6242889357856] , [ 1266555600000 , 0.66785287786833] , [ 1266814800000 , 0.51302421343276] , [ 1266901200000 , 0.67529040393239] , [ 1266987600000 , 0.6601486785607] , [ 1267074000000 , 0.6670237791658] , [ 1267160400000 , 0.66746410076052] , [ 1267419600000 , 0.6691531995939] , [ 1267506000000 , 0.68912054031019] , [ 1267592400000 , 0.66956844660652] , [ 1267678800000 , 0.66808795275024] , [ 1267765200000 , 0.64875109352574] , [ 1268024400000 , 0.68913399645021] , [ 1268110800000 , 0.71960642629017] , [ 1268197200000 , 0.55110831283044] , [ 1268283600000 , 0.73044501913051] , [ 1268370000000 , 0.7225295997643] , [ 1268625600000 , 0.57165420411245] , [ 1268712000000 , 0.57185003104024] , [ 1268798400000 , 0.56387435159483] , [ 1268884800000 , 0.55258238352661] , [ 1268971200000 , 0.53837596700184] , [ 1269230400000 , 0.51781133278325] , [ 1269316800000 , 0.54614405247613] , [ 1269403200000 , 0.55181521678811] , [ 1269489600000 , 0.55896776189928] , [ 1269576000000 , 0.53526775536805] , [ 1269835200000 , 0.56001758871283] , [ 1269921600000 , 0.52697856042663] , [ 1270008000000 , 0.36950151316072] , [ 1270094400000 , 0.33416858149241] , [ 1270440000000 , 0.3297788254062] , [ 1270526400000 , 0.32878696628243] , [ 1270612800000 , 0.34250261596671] , [ 1270699200000 , 0.34062951626868] , [ 1270785600000 , 0.33650331505564] , [ 1271044800000 , 0.33754198492504] , [ 1271131200000 , 0.34479752104981] , [ 1271217600000 , 0.34422271322913] , [ 1271304000000 , 0.33957637717345] , [ 1271390400000 , 0.33309869052085] , [ 1271649600000 , 0.33549309259309] , [ 1271736000000 , 0.33851249428105] , [ 1271822400000 , 0.33274334538472] , [ 1271908800000 , 0.32819970206884] , [ 1271995200000 , 0.32740446326317] , [ 1272254400000 , 0.32320098527039] , [ 1272340800000 , 0.31592945714482] , [ 1272427200000 , 0.3330398140655] , [ 1272513600000 , 0.33826576183311] , [ 1272600000000 , 0.34573095232512] , [ 1272859200000 , 0.31885048098859] , [ 1272945600000 , 0.31892932498196] , [ 1273032000000 , 0.29273258897174] , [ 1273118400000 , 0.2908332072101] , [ 1273204800000 , 0.27922156662223] , [ 1273464000000 , 0.28536042625666] , [ 1273550400000 , 0.28897531861523] , [ 1273636800000 , 0.28473853729527] , [ 1273723200000 , 0.28284683737932] , [ 1273809600000 , 0.29303926663331] , [ 1274068800000 , 0.2804810108508] , [ 1274155200000 , 0.29353651777215] , [ 1274241600000 , 0.28895692466737] , [ 1274328000000 , 0.28619995925483] , [ 1274414400000 , 0.29158719317017] , [ 1274673600000 , 0.26516835216154] , [ 1274760000000 , 0.27746697022302] , [ 1274846400000 , 0.26632815838707] , [ 1274932800000 , 0.27772552257406] , [ 1275019200000 , 0.28339177307644] , [ 1275364800000 , 0.29531042307446] , [ 1275451200000 , 0.28830732812001] , [ 1275537600000 , 0.29494618289139] , [ 1275624000000 , 0.30311337866766] , [ 1275883200000 , 0.27490760240321] , [ 1275969600000 , 0.29065076400389] , [ 1276056000000 , 0.30317072981863] , [ 1276142400000 , 0.28551909392755] , [ 1276228800000 , 0.28867145842253] , [ 1276488000000 , 0.27659931493374] , [ 1276574400000 , 0.27726503361383] , [ 1276660800000 , 0.28643321316432] , [ 1276747200000 , 0.28848300181782] , [ 1276833600000 , 0.29314584285469] , [ 1277092800000 , 0.24556636294746] , [ 1277179200000 , 0.2427074138927] , [ 1277265600000 , 0.25532966055562] , [ 1277352000000 , 0.23860075049878] , [ 1277438400000 , 0.23339021823389] , [ 1277697600000 , 0.23704584176672] , [ 1277784000000 , 0.23476476819275] , [ 1277870400000 , 0.16508919994271] , [ 1277956800000 , 0.17502444005293] , [ 1278043200000 , 0.17481292303424] , [ 1278388800000 , 0.18794801739403] , [ 1278475200000 , 0.17078173539657] , [ 1278561600000 , 0.17626404510513] , [ 1278648000000 , 0.16916163621476] , [ 1278907200000 , 0.17054338991592] , [ 1278993600000 , 0.16880969565363] , [ 1279080000000 , 0.17410406995965] , [ 1279166400000 , 0.20194482873069] , [ 1279252800000 , 0.20347614461013] , [ 1279512000000 , 0.18829636908558] , [ 1279598400000 , 0.18366670685077] , [ 1279684800000 , 0.19319801934126] , [ 1279771200000 , 0.18785794223705] , [ 1279857600000 , 0.18599264862031] , [ 1280116800000 , 0.18296675184693] , [ 1280203200000 , 0.19350047225925] , [ 1280289600000 , 0.18668219094806] , [ 1280376000000 , 0.1892807330999] , [ 1280462400000 , 0.19882884890915] , [ 1280721600000 , 0.18905704272443] , [ 1280808000000 , 0.18352588525038] , [ 1280894400000 , 0.19131509438879] , [ 1280980800000 , 0.20267037571723] , [ 1281067200000 , 0.19033851437607] , [ 1281326400000 , 0.19532463004946] , [ 1281412800000 , 0.19527461919403] , [ 1281499200000 , 0.20077631127424] , [ 1281585600000 , 0.18129726012172] , [ 1281672000000 , 0.18079921813357] , [ 1281931200000 , 0.18942494962896] , [ 1282017600000 , 0.17868912657409] , [ 1282104000000 , 0.19248572775925] , [ 1282190400000 , 0.17612437454354] , [ 1282276800000 , 0.17662688906437] , [ 1282536000000 , 0.33111821682727] , [ 1282622400000 , 0.32351989726607] , [ 1282708800000 , 0.18442539571243] , [ 1282795200000 , 0.1654652941385] , [ 1282881600000 , 0.1681728432886] , [ 1283140800000 , 0.31791153613136] , [ 1283227200000 , 0.3098939886997] , [ 1283313600000 , 0.17026280355377] , [ 1283400000000 , 0.18116819943409] , [ 1283486400000 , 0.17940269239226] , [ 1283832000000 , 0.17509967864537] , [ 1283918400000 , 0.16854635373821] , [ 1284004800000 , 0.16279792019164] , [ 1284091200000 , 0.16430316982373] , [ 1284350400000 , 0.19716094011807] , [ 1284436800000 , 0.18180670180063] , [ 1284523200000 , 0.18050178810035] , [ 1284609600000 , 0.17654839774218] , [ 1284696000000 , 0.16753561446267] , [ 1284955200000 , 0.16435387082839] , [ 1285041600000 , 0.17014990034734] , [ 1285128000000 , 0.17507611457088] , [ 1285214400000 , 0.16806252749183] , [ 1285300800000 , 0.1747219277635] , [ 1285560000000 , 0.16933773981221] , [ 1285646400000 , 0.18297726330587] , [ 1285732800000 , 0.18455334449287] , [ 1285819200000 , 0.18770061100303] , [ 1285905600000 , 0.18762165755291] , [ 1286164800000 , 0.18724338180533] , [ 1286251200000 , 0.18382080795075] , [ 1286337600000 , 0.19011659228435] , [ 1286424000000 , 0.18701256414053] , [ 1286510400000 , 0.18537821442863] , [ 1286769600000 , 0.18693615500435] , [ 1286856000000 , 0.18555741600949] , [ 1286942400000 , 0.18397802878517] , [ 1287028800000 , 0.17900769900171] , [ 1287115200000 , 0.17512388360084] , [ 1287374400000 , 0.18627045459584] , [ 1287460800000 , 0.19137715720593] , [ 1287547200000 , 0.18692890592892] , [ 1287633600000 , 0.1901580677592] , [ 1287720000000 , 0.18244979002935] , [ 1287979200000 , 0.18070840073234] , [ 1288065600000 , 0.18888329598481] , [ 1288152000000 , 0.18534803597295] , [ 1288238400000 , 0.19164954605317] , [ 1288324800000 , 0.20708593047813] , [ 1288584000000 , 0.19112691734383] , [ 1288670400000 , 0.18836312531428] , [ 1288756800000 , 0.18475885094717] , [ 1288843200000 , 0.19017636992619] , [ 1288929600000 , 0.19542526307197] , [ 1289192400000 , 0.21201362592083] , [ 1289278800000 , 0.21870028579263] , [ 1289365200000 , 0.22421012994555] , [ 1289451600000 , 0.22987658768953] , [ 1289538000000 , 0.22528136350708] , [ 1289797200000 , 0.23286775948671] , [ 1289883600000 , 0.22389907327602] , [ 1289970000000 , 0.23358652500105] , [ 1290056400000 , 0.22453055198657] , [ 1290142800000 , 0.34221219449159] , [ 1290402000000 , 0.35226708267062] , [ 1290488400000 , 0.34366842396858] , [ 1290574800000 , 0.3699996743666] , [ 1290747600000 , 0.35393486503202] , [ 1291006800000 , 0.34677588597119] , [ 1291093200000 , 0.35459649060421] , [ 1291179600000 , 0.35064035375263] , [ 1291266000000 , 0.34850709272937] , [ 1291352400000 , 0.22397734859949] , [ 1291611600000 , 0.23290983214529] , [ 1291698000000 , 0.22752114094581] , [ 1291784400000 , 0.23694767255638] , [ 1291870800000 , 0.22934081012106] , [ 1291957200000 , 0.24685987150064] , [ 1292216400000 , 0.24129716696248] , [ 1292302800000 , 0.25182638430604] , [ 1292389200000 , 0.24322906384063] , [ 1292475600000 , 0.26805271844179] , [ 1292562000000 , 0.25575992465227] , [ 1292821200000 , 0.26502032474023] , [ 1292907600000 , 0.26934813838219] , [ 1292994000000 , 0.24053503997947] , [ 1293080400000 , 0.23763374245069] , [ 1293426000000 , 0.24582642175695] , [ 1293512400000 , 0.24987261417793] , [ 1293598800000 , 0.26673213313336] , [ 1293685200000 , 0.2687007361462] , [ 1293771600000 , 0.25552652117054] , [ 1294030800000 , 0.26827987887395] , [ 1294117200000 , 0.26663246323876] , [ 1294203600000 , 0.26317913917355] , [ 1294290000000 , 0.27589895562782] , [ 1294376400000 , 0.26794686617534] , [ 1294635600000 , 0.27184949902838] , [ 1294722000000 , 0.28886420182237] , [ 1294808400000 , 0.27312762073371] , [ 1294894800000 , 0.29829834340765] , [ 1294981200000 , 0.29746470358189] , [ 1295326800000 , 0.26811224941731] , [ 1295413200000 , 0.25730395478701] , [ 1295499600000 , 0.27028006032097] , [ 1295586000000 , 0.26732332434809] , [ 1295845200000 , 0.24975166598529] , [ 1295931600000 , 0.26039833911019] , [ 1296018000000 , 0.27548723334852] , [ 1296104400000 , 0.26302429845163] , [ 1296190800000 , 0.28235671751223] , [ 1296450000000 , 0.26506842109964] , [ 1296536400000 , 0.26043133472349] , [ 1296622800000 , 0.26266192152819] , [ 1296709200000 , 0.24931199536089] , [ 1296795600000 , 0.25228864916944] , [ 1297054800000 , 0.27151065254782] , [ 1297141200000 , 0.25681971281519] , [ 1297227600000 , 0.24749992740566] , [ 1297314000000 , 0.25712189938008] , [ 1297400400000 , 0.25414818219996] , [ 1297659600000 , 0.250265177673] , [ 1297746000000 , 0.2478279507433] , [ 1297832400000 , 0.24577387623471] , [ 1297918800000 , 0.24844657124067] , [ 1298005200000 , 0.23606311569833] , [ 1298350800000 , 0.23670066287544] , [ 1298437200000 , 0.2438674692208] , [ 1298523600000 , 0.22061163897703] , [ 1298610000000 , 0.23782501493395] , [ 1298869200000 , 0.23094592795639] , [ 1298955600000 , 0.23953042589336] , [ 1299042000000 , 0.22602331754754] , [ 1299128400000 , 0.24458889665809] , [ 1299214800000 , 0.23490291127417] , [ 1299474000000 , 0.22975741638188] , [ 1299560400000 , 0.23865297262551] , [ 1299646800000 , 0.23869891729815] , [ 1299733200000 , 0.24112176499763] , [ 1299819600000 , 0.25067393470202] , [ 1300075200000 , 0.24876855304402] , [ 1300161600000 , 0.25088705306073] , [ 1300248000000 , 0.25650226880093] , [ 1300334400000 , 0.26207601790233] , [ 1300420800000 , 0.25636499016232] , [ 1300680000000 , 0.26719577143981] , [ 1300766400000 , 0.25057580884655] , [ 1300852800000 , 0.24821067914885] , [ 1300939200000 , 0.24255966354913] , [ 1301025600000 , 0.23208545489989] , [ 1301284800000 , 0.25518489801064] , [ 1301371200000 , 0.24328576271735] , [ 1301457600000 , 0.24177433606838] , [ 1301544000000 , 0.24566460239554] , [ 1301630400000 , 0.23829566694348] , [ 1301889600000 , 0.24626118988613] , [ 1301976000000 , 0.26089885812411] , [ 1302062400000 , 0.24928065890565] , [ 1302148800000 , 0.2592730718345] , [ 1302235200000 , 0.26584835997748] , [ 1302494400000 , 0.2619310378378] , [ 1302580800000 , 0.2517616665586] , [ 1302667200000 , 0.24497146424254] , [ 1302753600000 , 0.23965476009736] , [ 1302840000000 , 0.24273749595555] , [ 1303099200000 , 0.24026629573157] , [ 1303185600000 , 0.24306505175131] , [ 1303272000000 , 0.24228847687047] , [ 1303358400000 , 0.24908808140592] , [ 1303704000000 , 0.25629359778434] , [ 1303790400000 , 0.24600091538301] , [ 1303876800000 , 0.24993801267315] , [ 1303963200000 , 0.24853977351593] , [ 1304049600000 , 0.25560150895798] , [ 1304308800000 , 0.26502065459575] , [ 1304395200000 , 0.27348599304691] , [ 1304481600000 , 0.24881070927841] , [ 1304568000000 , 0.26629433923903] , [ 1304654400000 , 0.27101280065226] , [ 1304913600000 , 0.26949170008308] , [ 1305000000000 , 0.26786788540753] , [ 1305086400000 , 0.26976206763607] , [ 1305172800000 , 0.26758375529774] , [ 1305259200000 , 0.29312983084351] , [ 1305518400000 , 0.29482712502075] , [ 1305604800000 , 0.27510245807736] , [ 1305691200000 , 0.27453788444529] , [ 1305777600000 , 0.28937549888275] , [ 1305864000000 , 0.30189598849716] , [ 1306123200000 , 0.29078197204741] , [ 1306209600000 , 0.30600002448236] , [ 1306296000000 , 0.30234809370631] , [ 1306382400000 , 0.29490582156124] , [ 1306468800000 , 0.30385714736128] , [ 1306814400000 , 0.28523823770827] , [ 1306900800000 , 0.27788301459213] , [ 1306987200000 , 0.40619592966466] , [ 1307073600000 , 0.39345529118799] , [ 1307332800000 , 0.3903163184502] , [ 1307419200000 , 0.41558439318572] , [ 1307505600000 , 0.41913744068372] , [ 1307592000000 , 0.43970829198686] , [ 1307678400000 , 0.45428905955147] , [ 1307937600000 , 0.45397754813893] , [ 1308024000000 , 0.46506017912194] , [ 1308110400000 , 0.45539226013086] , [ 1308196800000 , 0.47668686888298] , [ 1308283200000 , 0.60578662726343] , [ 1308542400000 , 0.28725334672374] , [ 1308628800000 , 0.29688954932691] , [ 1308715200000 , 0.50554129778831] , [ 1308801600000 , 0.28803382767289] , [ 1308888000000 , 0.30566947860401] , [ 1309147200000 , 0.2860256010382] , [ 1309233600000 , 0.30734273137934] , [ 1309320000000 , 0.486760597847] , [ 1309406400000 , 0.48808786345673] , [ 1309492800000 , 0.34347457655277] , [ 1309838400000 , 0.44561452757931] , [ 1309924800000 , 0.43717067987187] , [ 1310011200000 , 0.363546931153] , [ 1310097600000 , 0.3650012974234] , [ 1310356800000 , 0.47252323846844] , [ 1310443200000 , 0.46177328813846] , [ 1310529600000 , 0.4537140592128] , [ 1310616000000 , 0.45725665633337] , [ 1310702400000 , 0.44650595669184] , [ 1310961600000 , 0.44457163015207] , [ 1311048000000 , 0.44571161824917] , [ 1311134400000 , 0.45452181580806] , [ 1311220800000 , 0.28431386000731] , [ 1311307200000 , 0.27090316140781] , [ 1311566400000 , 0.27349795982962] , [ 1311652800000 , 0.45764908923797] , [ 1311739200000 , 0.56870503080841] , [ 1311825600000 , 0.6249857215157] , [ 1311912000000 , 0.68818827002797] , [ 1314763200000 , 0.38245039176442] , [ 1314849600000 , 0.37558630821454] , [ 1314936000000 , 0.3569932906938] , [ 1315281600000 , 0.52577145773279] , [ 1315368000000 , 0.56090752934622] , [ 1315454400000 , 0.53870900027936] , [ 1315540800000 , 0.52756617595365] , [ 1315800000000 , 0.54786959641713] , [ 1315886400000 , 0.565988518513] , [ 1315972800000 , 0.57380317943342] , [ 1316059200000 , 0.56882294530893] , [ 1316145600000 , 0.58778751913061] , [ 1316404800000 , 0.55503750474374] , [ 1316491200000 , 0.54821999157495] , [ 1316577600000 , 0.63315464857262] , [ 1316664000000 , 0.61194381894131] , [ 1316750400000 , 0.5946421097889] , [ 1317009600000 , 0.61035522157758] , [ 1317096000000 , 0.63246474877724] , [ 1317182400000 , 0.57589216934023] , [ 1317268800000 , 0.55479071011554] , [ 1317355200000 , 0.4841825765629] , [ 1317614400000 , 0.44442516066328] , [ 1317700800000 , 0.44040274204019] , [ 1317787200000 , 0.45007707551418] , [ 1317873600000 , 0.46214462629916] , [ 1317960000000 , 0.43343158251783] , [ 1318219200000 , 0.44745993823054] , [ 1318305600000 , 0.43011673729904] , [ 1318392000000 , 0.46691079848101] , [ 1318478400000 , 0.46135259035608] , [ 1318564800000 , 0.44701111449567] , [ 1318824000000 , 0.4505729135891] , [ 1318910400000 , 0.45262620771441] , [ 1318996800000 , 0.44687539854298] , [ 1319083200000 , 0.44110543119353] , [ 1319169600000 , 0.46041357823819] , [ 1319428800000 , 0.4761783136763] , [ 1319515200000 , 0.46491895011452] , [ 1319601600000 , 0.47173019887826] , [ 1319688000000 , 0.37532388022903] , [ 1319774400000 , 0.36696228335471] , [ 1320033600000 , 0.45206924885623] , [ 1320120000000 , 0.46817052488213] , [ 1320206400000 , 0.49350355510821] , [ 1320292800000 , 0.47973287496665] , [ 1320379200000 , 0.49085590117818] , [ 1320642000000 , 0.47629600158061] , [ 1320728400000 , 0.47155674379516] , [ 1320814800000 , 0.46839216523208] , [ 1320901200000 , 0.45661255054486] , [ 1320987600000 , 0.46279813437207] , [ 1321246800000 , 0.45429096332985] , [ 1321333200000 , 0.44834634502213] , [ 1321419600000 , 0.43782694279932] , [ 1321506000000 , 0.43455896615614] , [ 1321592400000 , 0.43132973538607] , [ 1321851600000 , 0.41336814678348] , [ 1321938000000 , 0.40154142427755] , [ 1322024400000 , 0.39176366375423] , [ 1322197200000 , 0.4095801861786] , [ 1322456400000 , 0.41771592290428] , [ 1322542800000 , 0.4162224653633] , [ 1322629200000 , 0.42318274679895] , [ 1322715600000 , 0.41772981637871] , [ 1322802000000 , 0.40969754530833] , [ 1323061200000 , 0.40709894698063] , [ 1323147600000 , 0.41402412498693] , [ 1323234000000 , 0.42657305235583] , [ 1323320400000 , 0.42663937671221] , [ 1323406800000 , 0.43783053878367] , [ 1323666000000 , 0.42087795540679] , [ 1323752400000 , 0.42273201183908] , [ 1323838800000 , 0.41878072201135] , [ 1323925200000 , 0.43138733158581] , [ 1324011600000 , 0.42472923382568] , [ 1324270800000 , 0.41669753027675] , [ 1324357200000 , 0.41981401930208] , [ 1324443600000 , 0.43128203587221] , [ 1324530000000 , 0.4577393508269] , [ 1324616400000 , 0.44144997952488] , [ 1324962000000 , 0.43310320721477] , [ 1325048400000 , 0.46267325157705] , [ 1325134800000 , 0.46503547498803] , [ 1325221200000 , 0.46138989333686] , [ 1325566800000 , 0.249341113035] , [ 1325653200000 , 0.2515686548328] , [ 1325739600000 , 0.24178074745653] , [ 1325826000000 , 0.24016256863888] , [ 1326085200000 , 0.23852249609993] , [ 1326171600000 , 0.25010918279328] , [ 1326258000000 , 0.24157851460977] , [ 1326344400000 , 0.26546228510531] , [ 1326430800000 , 0.27042685434296] , [ 1326776400000 , 0.27298738403865] , [ 1326862800000 , 0.26503479105789] , [ 1326949200000 , 0.26093650132182] , [ 1327035600000 , 0.25468553126776] , [ 1327294800000 , 0.25870821509927] , [ 1327381200000 , 0.27319926289753] , [ 1327467600000 , 0.28929620634206] , [ 1327554000000 , 0.29628859255556] , [ 1327640400000 , 0.28119023501318] , [ 1327899600000 , 0.28637600094128] , [ 1327986000000 , 0.29164189758607] , [ 1328072400000 , 0.29838373270964] , [ 1328158800000 , 0.30434348230674] , [ 1328245200000 , 0.17565364382235] , [ 1328504400000 , 0.16268034106051] , [ 1328590800000 , 0.16975880034528] , [ 1328677200000 , 0.30604917410411] , [ 1328763600000 , 0.31426513370666] , [ 1328850000000 , 0.30932188288115] , [ 1329109200000 , 0.17352990574053] , [ 1329195600000 , 0.17555252026983] , [ 1329282000000 , 0.17598902230363] , [ 1329368400000 , 0.16303136355065] , [ 1329454800000 , 0.17029126124972] , [ 1329800400000 , 0.28962564862674] , [ 1329886800000 , 0.27928956537238] , [ 1329973200000 , 0.29643315845759] , [ 1330059600000 , 0.29008675829454] , [ 1330318800000 , 0.29222320133732] , [ 1330405200000 , 0.28823901625433] , [ 1330491600000 , 0.27911827892814] , [ 1330578000000 , 0.28249118739874] , [ 1330664400000 , 0.26540083306976] , [ 1330923600000 , 0.26033858093099] , [ 1331010000000 , 0.2564372060573] , [ 1331096400000 , 0.25133221925172] , [ 1331182800000 , 0.26035055512578] , [ 1331269200000 , 0.26589790084663] , [ 1331524800000 , 0.25793553792393] , [ 1331611200000 , 0.267061264485] , [ 1331697600000 , 0.25384129859595] , [ 1331784000000 , 0.25709311833625] , [ 1331870400000 , 0.26073406509935] , [ 1332129600000 , 0.25429363934993] , [ 1332216000000 , 0.27131681134796] , [ 1332302400000 , 0.25868232074447] , [ 1332388800000 , 0.25802690426325] , [ 1332475200000 , 0.25772173066805] , [ 1332734400000 , 0.26289439419493] , [ 1332820800000 , 0.26030143396564] , [ 1332907200000 , 0.2511964361679] , [ 1332993600000 , 0.26237177414945] , [ 1333080000000 , 0.25355006080158] , [ 1333339200000 , 0.2781144517115] , [ 1333425600000 , 0.28189444390819] , [ 1333512000000 , 0.26834142417127] , [ 1333598400000 , 0.26795533982394] , [ 1333944000000 , 0.26416982391577] , [ 1334030400000 , 0.25016227545025] , [ 1334116800000 , 0.25101300785306] , [ 1334203200000 , 0.2481329276245] , [ 1334289600000 , 0.25425264114226] , [ 1334548800000 , 0.24856263189013] , [ 1334635200000 , 0.25054792631715] , [ 1334721600000 , 0.249127987656] , [ 1334808000000 , 0.25381649528012] , [ 1334894400000 , 0.25763379706162] , [ 1335153600000 , 0.24189504245878] , [ 1335240000000 , 0.24819671940471] , [ 1335326400000 , 0.24324155321256] , [ 1335412800000 , 0.25905441421388] , [ 1335499200000 , 0.25345094550503] , [ 1335758400000 , 0.24077565144655]]} , { "key" : "Not Available" , "stack" : true , "shadowSize" : 0 , "color" : undefined , "lines" : { "fillColor" : undefined , "fill" : 0.5} , "values" : [ [ 1028088000000 , 0.065308086801007] , [ 1028174400000 , 0.066535199311109] , [ 1028260800000 , 0.068273406038148] , [ 1028520000000 , 0.063342865920424] , [ 1028606400000 , 0.060952415080445] , [ 1028692800000 , 0.059524896365875] , [ 1028779200000 , 0.060489755935475] , [ 1028865600000 , 0.067363838748502] , [ 1029124800000 , 0.057886538387165] , [ 1029211200000 , 0.064061271210866] , [ 1029297600000 , 0.058560224230083] , [ 1029384000000 , 0.060853754252312] , [ 1029470400000 , 0.057479178502535] , [ 1029729600000 , 0.056961826210783] , [ 1029816000000 , 0.055644774545051] , [ 1029902400000 , 0.059716363055355] , [ 1029988800000 , 0.057000178693805] , [ 1030075200000 , 0.058622011152265] , [ 1030334400000 , 0.061307731985769] , [ 1030420800000 , 0.062398914122505] , [ 1030507200000 , 0.056176479467961] , [ 1030593600000 , 0.055825202094993] , [ 1030680000000 , 0.055126229456489] , [ 1031025600000 , 0.049724266365136] , [ 1031112000000 , 0.051053206923382] , [ 1031198400000 , 0.048569908393729] , [ 1031284800000 , 0.048763478360222] , [ 1031544000000 , 0.049796224982781] , [ 1031630400000 , 0.0520939023804] , [ 1031716800000 , 0.051467996632025] , [ 1031803200000 , 0.045537284333507] , [ 1031889600000 , 0.044426523288586] , [ 1032148800000 , 0.046905154365696] , [ 1032235200000 , 0.048400466540506] , [ 1032321600000 , 0.043989946613247] , [ 1032408000000 , 0.042478239285601] , [ 1032494400000 , 0.044248581235601] , [ 1032753600000 , 0.04186860658708] , [ 1032840000000 , 0.042250919128784] , [ 1032926400000 , 0.041621635091397] , [ 1033012800000 , 0.040935777809039] , [ 1033099200000 , 0.046881490190283] , [ 1033358400000 , 0.022874032531005] , [ 1033444800000 , 0.025968411443307] , [ 1033531200000 , 0.026739457919906] , [ 1033617600000 , 0.023947710809458] , [ 1033704000000 , 0.024965740697006] , [ 1033963200000 , 0.025338856886956] , [ 1034049600000 , 0.023323387866575] , [ 1034136000000 , 0.026153484226899] , [ 1034222400000 , 0.025099094082079] , [ 1034308800000 , 0.027607116989742] , [ 1034568000000 , 0.026131589075203] , [ 1034654400000 , 0.026415854275271] , [ 1034740800000 , 0.026484778347064] , [ 1034827200000 , 0.027005465132098] , [ 1034913600000 , 0.027216284292421] , [ 1035172800000 , 0.028604444969818] , [ 1035259200000 , 0.029890839466699] , [ 1035345600000 , 0.02690899730454] , [ 1035432000000 , 0.025615326443201] , [ 1035518400000 , 0.024909944815054] , [ 1035781200000 , 0.029065959686029] , [ 1035867600000 , 0.026119529863898] , [ 1035954000000 , 0.026492532440832] , [ 1036040400000 , 0.029125286951061] , [ 1036126800000 , 0.029213818010024] , [ 1036386000000 , 0.031168564371318] , [ 1036472400000 , 0.030803188173056] , [ 1036558800000 , 0.03075767696709] , [ 1036645200000 , 0.029383602025213] , [ 1036731600000 , 0.028152315939112] , [ 1036990800000 , 0.028639152564378] , [ 1037077200000 , 0.028889910669847] , [ 1037163600000 , 0.029071310355849] , [ 1037250000000 , 0.028685091215229] , [ 1037336400000 , 0.029438759820315] , [ 1037595600000 , 0.029185041977343] , [ 1037682000000 , 0.03074018821931] , [ 1037768400000 , 0.030478428738018] , [ 1037854800000 , 0.030194599822581] , [ 1037941200000 , 0.028797698970816] , [ 1038200400000 , 0.029226482633908] , [ 1038286800000 , 0.030189047048893] , [ 1038373200000 , 0.032216593468512] , [ 1038546000000 , 0.028727666673838] , [ 1038805200000 , 0.029679314969669] , [ 1038891600000 , 0.028367499963419] , [ 1038978000000 , 0.031497967222983] , [ 1039064400000 , 0.029670942980314] , [ 1039150800000 , 0.029732353991932] , [ 1039410000000 , 0.028549766300576] , [ 1039496400000 , 0.030274379191703] , [ 1039582800000 , 0.028557282847108] , [ 1039669200000 , 0.028438024174488] , [ 1039755600000 , 0.027910827941057] , [ 1040014800000 , 0.029085958470934] , [ 1040101200000 , 0.030756204759654] , [ 1040187600000 , 0.027276312950373] , [ 1040274000000 , 0.027732460835415] , [ 1040360400000 , 0.026446913109931] , [ 1040619600000 , 0.025562413240833] , [ 1040706000000 , 0.027210109399928] , [ 1040878800000 , 0.027391453353743] , [ 1040965200000 , 0.025045615022089] , [ 1041224400000 , 0.024595114740731] , [ 1041310800000 , 0] , [ 1041483600000 , 0] , [ 1041570000000 , 0] , [ 1041829200000 , 0] , [ 1041915600000 , 0] , [ 1042002000000 , 0] , [ 1042088400000 , 0] , [ 1042174800000 , 0] , [ 1042434000000 , 0] , [ 1042520400000 , 0] , [ 1042606800000 , 0] , [ 1042693200000 , 0] , [ 1042779600000 , 0] , [ 1043125200000 , 0] , [ 1043211600000 , 0] , [ 1043298000000 , 0] , [ 1043384400000 , 0] , [ 1043643600000 , 0] , [ 1043730000000 , 0] , [ 1043816400000 , 0] , [ 1043902800000 , 0] , [ 1043989200000 , 0] , [ 1044248400000 , 0] , [ 1044334800000 , 0] , [ 1044421200000 , 0] , [ 1044507600000 , 0] , [ 1044594000000 , 0] , [ 1044853200000 , 0] , [ 1044939600000 , 0] , [ 1045026000000 , 0] , [ 1045112400000 , 0] , [ 1045198800000 , 0] , [ 1045544400000 , 0] , [ 1045630800000 , 0] , [ 1045717200000 , 0] , [ 1045803600000 , 0] , [ 1046062800000 , 0] , [ 1046149200000 , 0] , [ 1046235600000 , 0] , [ 1046322000000 , 0] , [ 1046408400000 , 0] , [ 1046667600000 , 0] , [ 1046754000000 , 0] , [ 1046840400000 , 0] , [ 1046926800000 , 0] , [ 1047013200000 , 0] , [ 1047272400000 , 0] , [ 1047358800000 , 0] , [ 1047445200000 , 0] , [ 1047531600000 , 0] , [ 1047618000000 , 0] , [ 1047877200000 , 0] , [ 1047963600000 , 0] , [ 1048050000000 , 0] , [ 1048136400000 , 0] , [ 1048222800000 , 0] , [ 1048482000000 , 0] , [ 1048568400000 , 0] , [ 1048654800000 , 0] , [ 1048741200000 , 0] , [ 1048827600000 , 0] , [ 1049086800000 , 0] , [ 1049173200000 , 0] , [ 1049259600000 , 0] , [ 1049346000000 , 0] , [ 1049432400000 , 0] , [ 1049688000000 , 0] , [ 1049774400000 , 0] , [ 1049860800000 , 0] , [ 1049947200000 , 0] , [ 1050033600000 , 0] , [ 1050292800000 , 0] , [ 1050379200000 , 0] , [ 1050465600000 , 0] , [ 1050552000000 , 0] , [ 1050897600000 , 0] , [ 1050984000000 , 0] , [ 1051070400000 , 0] , [ 1051156800000 , 0] , [ 1051243200000 , 0] , [ 1051502400000 , 0] , [ 1051588800000 , 0] , [ 1051675200000 , 0] , [ 1051761600000 , 0] , [ 1051848000000 , 0] , [ 1052107200000 , 0] , [ 1052193600000 , 0] , [ 1052280000000 , 0] , [ 1052366400000 , 0] , [ 1052452800000 , 0] , [ 1052712000000 , 0] , [ 1052798400000 , 0] , [ 1052884800000 , 0] , [ 1052971200000 , 0] , [ 1053057600000 , 0] , [ 1053316800000 , 0] , [ 1053403200000 , 0] , [ 1053489600000 , 0] , [ 1053576000000 , 0] , [ 1053662400000 , 0] , [ 1054008000000 , 0] , [ 1054094400000 , 0] , [ 1054180800000 , 0] , [ 1054267200000 , 0] , [ 1054526400000 , 0] , [ 1054612800000 , 0] , [ 1054699200000 , 0] , [ 1054785600000 , 0] , [ 1054872000000 , 0] , [ 1055131200000 , 0] , [ 1055217600000 , 0] , [ 1055304000000 , 0] , [ 1055390400000 , 0] , [ 1055476800000 , 0] , [ 1055736000000 , 0] , [ 1055822400000 , 0] , [ 1055908800000 , 0] , [ 1055995200000 , 0] , [ 1056081600000 , 0] , [ 1056340800000 , 0] , [ 1056427200000 , 0] , [ 1056513600000 , 0] , [ 1056600000000 , 0] , [ 1056686400000 , 0] , [ 1056945600000 , 0] , [ 1057032000000 , 0] , [ 1057118400000 , 0] , [ 1057204800000 , 0] , [ 1057550400000 , 0] , [ 1057636800000 , 0] , [ 1057723200000 , 0] , [ 1057809600000 , 0] , [ 1057896000000 , 0] , [ 1058155200000 , 0] , [ 1058241600000 , 0] , [ 1058328000000 , 0] , [ 1058414400000 , 0] , [ 1058500800000 , 0] , [ 1058760000000 , 0] , [ 1058846400000 , 0] , [ 1058932800000 , 0] , [ 1059019200000 , 0] , [ 1059105600000 , 0] , [ 1059364800000 , 0] , [ 1059451200000 , 0] , [ 1059537600000 , 0] , [ 1059624000000 , 0] , [ 1059710400000 , 0] , [ 1059969600000 , 0] , [ 1060056000000 , 0] , [ 1060142400000 , 0] , [ 1060228800000 , 0] , [ 1060315200000 , 0] , [ 1060574400000 , 0] , [ 1060660800000 , 0] , [ 1060747200000 , 0] , [ 1060833600000 , 0] , [ 1060920000000 , 0] , [ 1061179200000 , 0] , [ 1061265600000 , 0] , [ 1061352000000 , 0] , [ 1061438400000 , 0] , [ 1061524800000 , 0] , [ 1061784000000 , 0] , [ 1061870400000 , 0] , [ 1061956800000 , 0] , [ 1062043200000 , 0] , [ 1062129600000 , 0] , [ 1062475200000 , 0] , [ 1062561600000 , 0] , [ 1062648000000 , 0] , [ 1062734400000 , 0] , [ 1062993600000 , 0] , [ 1063080000000 , 0] , [ 1063166400000 , 0] , [ 1063252800000 , 0] , [ 1063339200000 , 0] , [ 1063598400000 , 0] , [ 1063684800000 , 0] , [ 1063771200000 , 0] , [ 1063857600000 , 0] , [ 1063944000000 , 0] , [ 1064203200000 , 0] , [ 1064289600000 , 0] , [ 1064376000000 , 0] , [ 1064462400000 , 0] , [ 1064548800000 , 0] , [ 1064808000000 , 0] , [ 1064894400000 , 0] , [ 1064980800000 , 0] , [ 1065067200000 , 0] , [ 1065153600000 , 0] , [ 1065412800000 , 0] , [ 1065499200000 , 0] , [ 1065585600000 , 0] , [ 1065672000000 , 0] , [ 1065758400000 , 0] , [ 1066017600000 , 0] , [ 1066104000000 , 0] , [ 1066190400000 , 0] , [ 1066276800000 , 0] , [ 1066363200000 , 0] , [ 1066622400000 , 0] , [ 1066708800000 , 0] , [ 1066795200000 , 0] , [ 1066881600000 , 0] , [ 1066968000000 , 0] , [ 1067230800000 , 0] , [ 1067317200000 , 0] , [ 1067403600000 , 0] , [ 1067490000000 , 0] , [ 1067576400000 , 0] , [ 1067835600000 , 0] , [ 1067922000000 , 0] , [ 1068008400000 , 0] , [ 1068094800000 , 0] , [ 1068181200000 , 0] , [ 1068440400000 , 0] , [ 1068526800000 , 0] , [ 1068613200000 , 0] , [ 1068699600000 , 0] , [ 1068786000000 , 0] , [ 1069045200000 , 0] , [ 1069131600000 , 0] , [ 1069218000000 , 0] , [ 1069304400000 , 0] , [ 1069390800000 , 0] , [ 1069650000000 , 0] , [ 1069736400000 , 0] , [ 1069822800000 , 0] , [ 1069995600000 , 0] , [ 1070254800000 , 0] , [ 1070341200000 , 0] , [ 1070427600000 , 0] , [ 1070514000000 , 0] , [ 1070600400000 , 0] , [ 1070859600000 , 0] , [ 1070946000000 , 0] , [ 1071032400000 , 0] , [ 1071118800000 , 0] , [ 1071205200000 , 0] , [ 1071464400000 , 0] , [ 1071550800000 , 0] , [ 1071637200000 , 0] , [ 1071723600000 , 0] , [ 1071810000000 , 0] , [ 1072069200000 , 0] , [ 1072155600000 , 0] , [ 1072242000000 , 0] , [ 1072414800000 , 0] , [ 1072674000000 , 0] , [ 1072760400000 , 0] , [ 1072846800000 , 0] , [ 1073019600000 , 0] , [ 1073278800000 , 0.162533822134] , [ 1073365200000 , 0.16191218720795] , [ 1073451600000 , 0.16112156640388] , [ 1073538000000 , 0.1608807335117] , [ 1073624400000 , 0.1613236260659] , [ 1073883600000 , 0.16098338871276] , [ 1073970000000 , 0.16164374991097] , [ 1074056400000 , 0.16047979170149] , [ 1074142800000 , 0.15970454663265] , [ 1074229200000 , 0.15864812501195] , [ 1074574800000 , 0.15839505738166] , [ 1074661200000 , 0.157075278982] , [ 1074747600000 , 0.15718974462752] , [ 1074834000000 , 0.15729893338795] , [ 1075093200000 , 0.15622844925447] , [ 1075179600000 , 0.15734590167515] , [ 1075266000000 , 0.15940277309467] , [ 1075352400000 , 0.15883338293245] , [ 1075438800000 , 0.15875625393522] , [ 1075698000000 , 0.16561398407784] , [ 1075784400000 , 0.16587344375358] , [ 1075870800000 , 0.1666034697865] , [ 1075957200000 , 0.16640165901847] , [ 1076043600000 , 0.16440775984578] , [ 1076302800000 , 0.16436645474488] , [ 1076389200000 , 0.16385568201288] , [ 1076475600000 , 0.16257263852191] , [ 1076562000000 , 0.16274321343554] , [ 1076648400000 , 0.16346536078542] , [ 1076994000000 , 0.16245793851977] , [ 1077080400000 , 0.16266454997517] , [ 1077166800000 , 0.16320682723502] , [ 1077253200000 , 0.16382463573527] , [ 1077512400000 , 0.16502093043411] , [ 1077598800000 , 0.16496824282429] , [ 1077685200000 , 0.16421398798918] , [ 1077771600000 , 0.16354229323765] , [ 1077858000000 , 0.16265627601747] , [ 1078117200000 , 0.16183628922084] , [ 1078203600000 , 0.16258360625313] , [ 1078290000000 , 0.16233976895921] , [ 1078376400000 , 0.16176309597104] , [ 1078462800000 , 0.16115477869602] , [ 1078722000000 , 0.16261733514952] , [ 1078808400000 , 0.16373955365355] , [ 1078894800000 , 0.16556539334739] , [ 1078981200000 , 0.1674812680509] , [ 1079067600000 , 0.16573095761401] , [ 1079326800000 , 0.16765689983007] , [ 1079413200000 , 0.16704067946664] , [ 1079499600000 , 0.16531552815492] , [ 1079586000000 , 0.16547442402761] , [ 1079672400000 , 0.16643725045704] , [ 1079931600000 , 0.16856500546921] , [ 1080018000000 , 0.16817376100152] , [ 1080104400000 , 0.16812992549131] , [ 1080190800000 , 0.1655033512927] , [ 1080277200000 , 0.16536865227461] , [ 1080536400000 , 0.16357393541647] , [ 1080622800000 , 0.16296166414392] , [ 1080709200000 , 0.16243258826925] , [ 1080795600000 , 0.15932585987141] , [ 1080882000000 , 0.36307541132054] , [ 1081137600000 , 0.35434730873291] , [ 1081224000000 , 0.36074868519543] , [ 1081310400000 , 0.35621615093824] , [ 1081396800000 , 0.35507476868398] , [ 1081742400000 , 0.35326645500675] , [ 1081828800000 , 0.34508466611506] , [ 1081915200000 , 0.34716010317974] , [ 1082001600000 , 0.15983733654443] , [ 1082088000000 , 0.15917314912434] , [ 1082347200000 , 0.15860317178384] , [ 1082433600000 , 0.16064372171113] , [ 1082520000000 , 0.15950678999516] , [ 1082606400000 , 0.15775805141077] , [ 1082692800000 , 0.82715282592227] , [ 1082952000000 , 0.81651734610677] , [ 1083038400000 , 0.15908077152471] , [ 1083124800000 , 0.16104982028112] , [ 1083211200000 , 0.16252172453873] , [ 1083297600000 , 0.16376722579173] , [ 1083556800000 , 0.16646121964144] , [ 1083643200000 , 0.16626817468961] , [ 1083729600000 , 0.1655395451939] , [ 1083816000000 , 0.16676136939664] , [ 1083902400000 , 0.16917417182778] , [ 1084161600000 , 0.17162042183806] , [ 1084248000000 , 0.16978178149432] , [ 1084334400000 , 0.17010986886574] , [ 1084420800000 , 0.169885528801] , [ 1084507200000 , 0.17044877033686] , [ 1084766400000 , 0.17246617674047] , [ 1084852800000 , 0.17060891426632] , [ 1084939200000 , 0.17096149254295] , [ 1085025600000 , 0.17147049290408] , [ 1085112000000 , 0.1704807689546] , [ 1085371200000 , 0.1696770057029] , [ 1085457600000 , 0.16728755829763] , [ 1085544000000 , 0.16715564015705] , [ 1085630400000 , 0.16667267118029] , [ 1085716800000 , 0.16658829550746] , [ 1086062400000 , 0.16475817724646] , [ 1086148800000 , 0.16426302735433] , [ 1086235200000 , 0.1655008458145] , [ 1086321600000 , 0.16464582803512] , [ 1086580800000 , 0.16215046084077] , [ 1086667200000 , 0.16185864334201] , [ 1086753600000 , 0.16314862664723] , [ 1086840000000 , 0.60152162268685] , [ 1087185600000 , 0.66360925246556] , [ 1087272000000 , 1.0507921267893] , [ 1087358400000 , 0.66198141591778] , [ 1087444800000 , 0.69588133589603] , [ 1087531200000 , 0.71123332509969] , [ 1087790400000 , 0.49816905981523] , [ 1087876800000 , 0.49581160406275] , [ 1087963200000 , 0.49400719559734] , [ 1088049600000 , 0.49925152033971] , [ 1088136000000 , 0.7461328512748] , [ 1088395200000 , 0.74989761649839] , [ 1088481600000 , 0.16425917253245] , [ 1088568000000 , 0.23358132691792] , [ 1088654400000 , 0.22962749993866] , [ 1088740800000 , 0.23103636980472] , [ 1089086400000 , 0.47503621032418] , [ 1089172800000 , 0.47311952792013] , [ 1089259200000 , 0.48305576455377] , [ 1089345600000 , 0.48019226189611] , [ 1089604800000 , 0.67157988739754] , [ 1089691200000 , 0.23783110177606] , [ 1089777600000 , 0.23380344210608] , [ 1089864000000 , 0.23389385704522] , [ 1089950400000 , 0.23595563149681] , [ 1090209600000 , 0.23718882012937] , [ 1090296000000 , 0.23487588466635] , [ 1090382400000 , 0.23658088573673] , [ 1090468800000 , 0.23763233177432] , [ 1090555200000 , 0.23859609639624] , [ 1090814400000 , 0.23917720980838] , [ 1090900800000 , 0.23618592737232] , [ 1090987200000 , 0.23772881253093] , [ 1091073600000 , 0.2360449762581] , [ 1091160000000 , 0.2955895950662] , [ 1091419200000 , 0.30816591422976] , [ 1091505600000 , 0.57676153789022] , [ 1091592000000 , 0.57250931994969] , [ 1091678400000 , 0.59029327866973] , [ 1091764800000 , 0.32265541506936] , [ 1092024000000 , 0.86445634210137] , [ 1092110400000 , 1.8263419459327] , [ 1092196800000 , 1.2593405719711] , [ 1092283200000 , 1.2704291817955] , [ 1092369600000 , 1.2827394547251] , [ 1092628800000 , 0.79924305357348] , [ 1092715200000 , 7.2992806856608] , [ 1092801600000 , 8.4798343116924] , [ 1092888000000 , 8.6577079245255] , [ 1092974400000 , 9.0088766947982] , [ 1093233600000 , 9.3582351690255] , [ 1093320000000 , 9.829489527127] , [ 1093406400000 , 11.619080936349] , [ 1093492800000 , 13.176307717161] , [ 1093579200000 , 14.036672075106] , [ 1093838400000 , 12.566664351805] , [ 1093924800000 , 12.936533037575] , [ 1094011200000 , 13.05114256248] , [ 1094097600000 , 14.392965106044] , [ 1094184000000 , 15.363948743234] , [ 1094529600000 , 14.520228696456] , [ 1094616000000 , 14.591922863668] , [ 1094702400000 , 14.866694496961] , [ 1094788800000 , 15.230251344299] , [ 1095048000000 , 15.506146020637] , [ 1095134400000 , 15.743440575202] , [ 1095220800000 , 0.57507171680691] , [ 1095307200000 , 16.34761669885] , [ 1095393600000 , 16.336321684872] , [ 1095652800000 , 16.691114188652] , [ 1095739200000 , 16.893871331332] , [ 1095825600000 , 14.42873646175] , [ 1095912000000 , 14.364134753916] , [ 1095998400000 , 14.085159492774] , [ 1096257600000 , 14.334914298657] , [ 1096344000000 , 14.442320570609] , [ 1096430400000 , 15.14292417505] , [ 1096516800000 , 16.870407977799] , [ 1096603200000 , 16.812975617435] , [ 1096862400000 , 16.552243138543] , [ 1096948800000 , 18.557771400735] , [ 1097035200000 , 18.967882272109] , [ 1097121600000 , 16.713543850759] , [ 1097208000000 , 17.356521567582] , [ 1097467200000 , 17.273776388447] , [ 1097553600000 , 14.749258077501] , [ 1097640000000 , 10.054024990725] , [ 1097726400000 , 9.4809432210195] , [ 1097812800000 , 10.583265829491] , [ 1098072000000 , 9.3486862785261] , [ 1098158400000 , 8.9956412927718] , [ 1098244800000 , 9.015954580302] , [ 1098331200000 , 9.0867757343771] , [ 1098417600000 , 9.3325642017188] , [ 1098676800000 , 5.5462759969621] , [ 1098763200000 , 6.5386189300284] , [ 1098849600000 , 6.9270080186852] , [ 1098936000000 , 5.0471550453996] , [ 1099022400000 , 5.5162411749117] , [ 1099285200000 , 4.6168440791678] , [ 1099371600000 , 4.6040208538706] , [ 1099458000000 , 3.8866282055999] , [ 1099544400000 , 3.9076548369401] , [ 1099630800000 , 3.9468225193317] , [ 1099890000000 , 3.9316665195169] , [ 1099976400000 , 3.9373727800243] , [ 1100062800000 , 5.1294739617026] , [ 1100149200000 , 4.9230661104598] , [ 1100235600000 , 5.0101204225727] , [ 1100494800000 , 4.4742042560195] , [ 1100581200000 , 3.5878342150738] , [ 1100667600000 , 4.1439868838598] , [ 1100754000000 , 0.31863197171985] , [ 1100840400000 , 4.0170718378217] , [ 1101099600000 , 3.9742095423276] , [ 1101186000000 , 3.8650632299293] , [ 1101272400000 , 3.8936443679058] , [ 1101445200000 , 3.9156349434464] , [ 1101704400000 , 3.0673403047877] , [ 1101790800000 , 3.1778718109985] , [ 1101877200000 , 3.1093878763518] , [ 1101963600000 , 3.8928153545075] , [ 1102050000000 , 3.9257971355349] , [ 1102309200000 , 3.9017566447062] , [ 1102395600000 , 4.347896144576] , [ 1102482000000 , 5.6064285783093] , [ 1102568400000 , 5.5978010311428] , [ 1102654800000 , 7.4535351484492] , [ 1102914000000 , 8.0721793677192] , [ 1103000400000 , 8.2823811677878] , [ 1103086800000 , 8.765459676367] , [ 1103173200000 , 8.5850799557033] , [ 1103259600000 , 7.7908486730501] , [ 1103518800000 , 7.6678805526241] , [ 1103605200000 , 7.8504282179396] , [ 1103691600000 , 9.399250001389] , [ 1103778000000 , 9.7581658450356] , [ 1104123600000 , 9.9078142487249] , [ 1104210000000 , 9.8182756565342] , [ 1104296400000 , 9.9008818891315] , [ 1104382800000 , 9.9599709680033] , [ 1104469200000 , 10.46571224806] , [ 1104728400000 , 0.74747142004202] , [ 1104814800000 , 10.031098494083] , [ 1104901200000 , 9.4656500427303] , [ 1104987600000 , 9.355766297385] , [ 1105074000000 , 9.4449786614225] , [ 1105333200000 , 9.4028462270052] , [ 1105419600000 , 9.6699992837585] , [ 1105506000000 , 9.184724008747] , [ 1105592400000 , 0.30692455576974] , [ 1105678800000 , 9.0804946251902] , [ 1106024400000 , 10.106622993731] , [ 1106110800000 , 10.250196463002] , [ 1106197200000 , 10.543722776727] , [ 1106283600000 , 11.356491601564] , [ 1106542800000 , 11.649912817418] , [ 1106629200000 , 12.082030240009] , [ 1106715600000 , 0.44537635660078] , [ 1106802000000 , 12.291766341495] , [ 1106888400000 , 0.47541989384315] , [ 1107147600000 , 10.745854742993] , [ 1107234000000 , 11.016016078983] , [ 1107320400000 , 9.9828797388324] , [ 1107406800000 , 10.602886773337] , [ 1107493200000 , 10.813338068307] , [ 1107752400000 , 11.134542525447] , [ 1107838800000 , 10.985586024182] , [ 1107925200000 , 11.499306241313] , [ 1108011600000 , 11.5859205548] , [ 1108098000000 , 11.327591262341] , [ 1108357200000 , 10.56869544127] , [ 1108443600000 , 10.526668369981] , [ 1108530000000 , 10.423117828431] , [ 1108616400000 , 10.631236834437] , [ 1108702800000 , 10.857188147473] , [ 1109048400000 , 10.016737690635] , [ 1109134800000 , 9.9070856337368] , [ 1109221200000 , 10.099078862055] , [ 1109307600000 , 10.508372171841] , [ 1109566800000 , 11.254698520287] , [ 1109653200000 , 11.047328583298] , [ 1109739600000 , 11.4610938393] , [ 1109826000000 , 11.55027177793] , [ 1109912400000 , 11.552187185601] , [ 1110171600000 , 11.502547393254] , [ 1110258000000 , 11.609530593623] , [ 1110344400000 , 14.504690810539] , [ 1110430800000 , 12.696654292538] , [ 1110517200000 , 12.27190877914] , [ 1110776400000 , 12.312803257994] , [ 1110862800000 , 12.655770868701] , [ 1110949200000 , 12.747674976159] , [ 1111035600000 , 12.495897416532] , [ 1111122000000 , 12.624819616915] , [ 1111381200000 , 12.507548356474] , [ 1111467600000 , 12.3680867978] , [ 1111554000000 , 12.158154930856] , [ 1111640400000 , 10.592059146635] , [ 1111986000000 , 0.39245362334724] , [ 1112072400000 , 0.33685804275706] , [ 1112158800000 , 0.34985669356221] , [ 1112245200000 , 0.4411593875026] , [ 1112331600000 , 11.545055177823] , [ 1112587200000 , 11.576072328731] , [ 1112673600000 , 12.509132856801] , [ 1112760000000 , 12.717998097198] , [ 1112846400000 , 11.708400688531] , [ 1112932800000 , 11.990743743591] , [ 1113192000000 , 10.219340446084] , [ 1113278400000 , 10.112469658924] , [ 1113364800000 , 9.4541288634538] , [ 1113451200000 , 7.8674538651247] , [ 1113537600000 , 7.7195626847698] , [ 1113796800000 , 6.9450227220774] , [ 1113883200000 , 7.3826459950972] , [ 1113969600000 , 7.5848425944886] , [ 1114056000000 , 6.8059017070873] , [ 1114142400000 , 6.9167560872077] , [ 1114401600000 , 6.8124096879965] , [ 1114488000000 , 8.8162099332492] , [ 1114574400000 , 9.0247406825978] , [ 1114660800000 , 9.1617334646374] , [ 1114747200000 , 8.5267995733004] , [ 1115006400000 , 8.9811596842566] , [ 1115092800000 , 8.8824488384574] , [ 1115179200000 , 9.4497572731764] , [ 1115265600000 , 10.716144487779] , [ 1115352000000 , 11.753189999482] , [ 1115611200000 , 10.720808344948] , [ 1115697600000 , 10.136471881524] , [ 1115784000000 , 9.9797692562246] , [ 1115870400000 , 13.292950148428] , [ 1115956800000 , 13.192952173369] , [ 1116216000000 , 11.537763972554] , [ 1116302400000 , 11.423169362644] , [ 1116388800000 , 11.223902427124] , [ 1116475200000 , 10.421151487126] , [ 1116561600000 , 10.303761536539] , [ 1116820800000 , 9.9456487566451] , [ 1116907200000 , 10.236261879497] , [ 1116993600000 , 10.062889273806] , [ 1117080000000 , 10.06242497134] , [ 1117166400000 , 9.9983147199815] , [ 1117512000000 , 9.8106871570971] , [ 1117598400000 , 10.501089151551] , [ 1117684800000 , 9.2941994461671] , [ 1117771200000 , 9.2389751586486] , [ 1118030400000 , 7.4482624209164] , [ 1118116800000 , 6.8462826463691] , [ 1118203200000 , 5.9401919260823] , [ 1118289600000 , 5.9535209754597] , [ 1118376000000 , 6.6001538940185] , [ 1118635200000 , 6.6348757668368] , [ 1118721600000 , 5.9833344752235] , [ 1118808000000 , 6.0418961875819] , [ 1118894400000 , 5.9045226403631] , [ 1118980800000 , 5.7497152447422] , [ 1119240000000 , 5.2649666145063] , [ 1119326400000 , 5.0126424745801] , [ 1119412800000 , 4.9151513734225] , [ 1119499200000 , 5.4893296255786] , [ 1119585600000 , 4.3796774773445] , [ 1119844800000 , 6.4076400610862] , [ 1119931200000 , 6.2782612627486] , [ 1120017600000 , 6.6909754146222] , [ 1120104000000 , 8.0732181194761] , [ 1120190400000 , 9.0392678699656] , [ 1120536000000 , 9.4975401720098] , [ 1120622400000 , 9.7222627489378] , [ 1120708800000 , 3.4297149175024] , [ 1120795200000 , 5.6868510640361] , [ 1121054400000 , 5.8801336159671] , [ 1121140800000 , 5.9019163044989] , [ 1121227200000 , 6.2851444340702] , [ 1121313600000 , 6.2316436263698] , [ 1121400000000 , 6.6294865858333] , [ 1121659200000 , 6.5800792636664] , [ 1121745600000 , 8.2961932400234] , [ 1121832000000 , 8.920796261703] , [ 1121918400000 , 8.7030022477305] , [ 1122004800000 , 8.7554693096243] , [ 1122264000000 , 8.749579140082] , [ 1122350400000 , 8.757446490254] , [ 1122436800000 , 7.9055390231208] , [ 1122523200000 , 7.5135868730499] , [ 1122609600000 , 8.1626893684391] , [ 1122868800000 , 10.631433037791] , [ 1122955200000 , 9.3383815177505] , [ 1123041600000 , 9.1792003441247] , [ 1123128000000 , 9.255090986243] , [ 1123214400000 , 11.673563377497] , [ 1123473600000 , 12.226073482243] , [ 1123560000000 , 12.027897115208] , [ 1123646400000 , 8.9579778731093] , [ 1123732800000 , 9.8755693940562] , [ 1123819200000 , 10.561183682268] , [ 1124078400000 , 10.149552913143] , [ 1124164800000 , 9.4894623262941] , [ 1124251200000 , 8.9879565217228] , [ 1124337600000 , 8.9410560230164] , [ 1124424000000 , 9.1050051865001] , [ 1124683200000 , 9.4618677124275] , [ 1124769600000 , 9.4409533679117] , [ 1124856000000 , 9.4630878513013] , [ 1124942400000 , 10.063578133925] , [ 1125028800000 , 10.092168197096] , [ 1125288000000 , 11.425332826805] , [ 1125374400000 , 11.49024405204] , [ 1125460800000 , 11.847043591601] , [ 1125547200000 , 12.341499621531] , [ 1125633600000 , 13.208791891706] , [ 1125979200000 , 13.155861408583] , [ 1126065600000 , 11.911965866601] , [ 1126152000000 , 12.953834087165] , [ 1126238400000 , 12.856533132654] , [ 1126497600000 , 12.940008664349] , [ 1126584000000 , 10.810866385287] , [ 1126670400000 , 10.973556610848] , [ 1126756800000 , 12.582138606639] , [ 1126843200000 , 12.650714589043] , [ 1127102400000 , 13.013957513335] , [ 1127188800000 , 13.163316212612] , [ 1127275200000 , 11.416364972768] , [ 1127361600000 , 10.835976336822] , [ 1127448000000 , 9.7006107541751] , [ 1127707200000 , 9.7685241168158] , [ 1127793600000 , 9.3732947590662] , [ 1127880000000 , 9.2216231957865] , [ 1127966400000 , 10.092701100776] , [ 1128052800000 , 9.2356589292827] , [ 1128312000000 , 9.1055558285159] , [ 1128398400000 , 9.1412763328139] , [ 1128484800000 , 9.3062736540434] , [ 1128571200000 , 9.3543243796744] , [ 1128657600000 , 9.7437842378865] , [ 1128916800000 , 9.1883856015226] , [ 1129003200000 , 9.6023298087782] , [ 1129089600000 , 10.86668509683] , [ 1129176000000 , 8.8392624859772] , [ 1129262400000 , 8.5741250422724] , [ 1129521600000 , 8.4989710714635] , [ 1129608000000 , 7.0284805944926] , [ 1129694400000 , 3.6397565244999] , [ 1129780800000 , 7.5405388385658] , [ 1129867200000 , 6.7328974750621] , [ 1130126400000 , 5.3400903357111] , [ 1130212800000 , 5.4533951253299] , [ 1130299200000 , 5.4269628907864] , [ 1130385600000 , 5.5205382106251] , [ 1130472000000 , 5.4156510035115] , [ 1130734800000 , 5.4054697237045] , [ 1130821200000 , 7.2177042075125] , [ 1130907600000 , 8.9090349293151] , [ 1130994000000 , 8.9031546350938] , [ 1131080400000 , 8.9096034138594] , [ 1131339600000 , 8.8638988480676] , [ 1131426000000 , 8.1621700358637] , [ 1131512400000 , 8.1302336975502] , [ 1131598800000 , 8.0335618127897] , [ 1131685200000 , 8.1331735206501] , [ 1131944400000 , 5.966288023114] , [ 1132030800000 , 5.4209823475156] , [ 1132117200000 , 5.6940281837075] , [ 1132203600000 , 6.7440119020934] , [ 1132290000000 , 7.2785071294657] , [ 1132549200000 , 7.4169981579086] , [ 1132635600000 , 9.4245066343415] , [ 1132722000000 , 9.7019265098101] , [ 1132894800000 , 10.189564992252] , [ 1133154000000 , 10.57095833167] , [ 1133240400000 , 10.708856336907] , [ 1133326800000 , 10.081248274518] , [ 1133413200000 , 10.109272939708] , [ 1133499600000 , 11.322361881796] , [ 1133758800000 , 12.814805654611] , [ 1133845200000 , 12.900810741037] , [ 1133931600000 , 13.010116589906] , [ 1134018000000 , 10.387972623978] , [ 1134104400000 , 8.4731654864527] , [ 1134363600000 , 7.7234731996378] , [ 1134450000000 , 7.7305367712931] , [ 1134536400000 , 4.8069015518006] , [ 1134622800000 , 4.7710398734634] , [ 1134709200000 , 4.8510729154791] , [ 1134968400000 , 4.8635564263195] , [ 1135054800000 , 4.8249363137982] , [ 1135141200000 , 4.8129423160495] , [ 1135227600000 , 4.8256967203712] , [ 1135314000000 , 5.9804600903972] , [ 1135659600000 , 0.8173100806157] , [ 1135746000000 , 6.0331955471104] , [ 1135832400000 , 4.8928522985193] , [ 1135918800000 , 6.6189261096591] , [ 1136264400000 , 4.9946607124478] , [ 1136350800000 , 5.0479429761554] , [ 1136437200000 , 5.3663344434659] , [ 1136523600000 , 7.2497652482159] , [ 1136782800000 , 7.2204011465255] , [ 1136869200000 , 5.6444644889243] , [ 1136955600000 , 4.0636727294028] , [ 1137042000000 , 4.7667519933808] , [ 1137128400000 , 6.4566130334218] , [ 1137474000000 , 0.46213102439786] , [ 1137560400000 , 4.7867008666436] , [ 1137646800000 , 4.7196853133787] , [ 1137733200000 , 8.1322371421911] , [ 1137992400000 , 4.7602603257673] , [ 1138078800000 , 4.695642201985] , [ 1138165200000 , 4.7387579945565] , [ 1138251600000 , 4.7015447750857] , [ 1138338000000 , 4.7457420968044] , [ 1138597200000 , 4.7852686131646] , [ 1138683600000 , 4.8550998785219] , [ 1138770000000 , 4.2395266341639] , [ 1138856400000 , 4.2904690761142] , [ 1138942800000 , 1.8851906086774] , [ 1139202000000 , 1.9011137411197] , [ 1139288400000 , 1.8498164674396] , [ 1139374800000 , 1.8319241759015] , [ 1139461200000 , 1.8745969263792] , [ 1139547600000 , 1.819195676722] , [ 1139806800000 , 1.786022665598] , [ 1139893200000 , 1.791896384862] , [ 1139979600000 , 1.782825474546] , [ 1140066000000 , 2.5588150262676] , [ 1140152400000 , 1.7941891666109] , [ 1140498000000 , 2.9138430005023] , [ 1140584400000 , 2.8847667879212] , [ 1140670800000 , 2.8554441099732] , [ 1140757200000 , 2.9027958918691] , [ 1141016400000 , 3.493874460456] , [ 1141102800000 , 2.9167500744015] , [ 1141189200000 , 4.0589336129841] , [ 1141275600000 , 4.1160395032903] , [ 1141362000000 , 4.1056707482914] , [ 1141621200000 , 4.0615618794864] , [ 1141707600000 , 4.0475590942139] , [ 1141794000000 , 3.9779920546415] , [ 1141880400000 , 4.0186341814335] , [ 1141966800000 , 3.935255409221] , [ 1142226000000 , 3.9658417151816] , [ 1142312400000 , 3.9573862864997] , [ 1142398800000 , 3.9621406560117] , [ 1142485200000 , 3.9643591225142] , [ 1142571600000 , 3.9336232385745] , [ 1142830800000 , 3.941074358239] , [ 1142917200000 , 3.9657882597178] , [ 1143003600000 , 3.9280800216791] , [ 1143090000000 , 3.9439915039484] , [ 1143176400000 , 4.0122436243806] , [ 1143435600000 , 4.0669378768976] , [ 1143522000000 , 4.0912438715018] , [ 1143608400000 , 4.0713504655543] , [ 1143694800000 , 6.0268796793529] , [ 1143781200000 , 5.968838437088] , [ 1144036800000 , 6.0484445914947] , [ 1144123200000 , 5.97778262297] , [ 1144209600000 , 7.4463648666009] , [ 1144296000000 , 8.7206360921576] , [ 1144382400000 , 8.7039952290916] , [ 1144641600000 , 13.401047031354] , [ 1144728000000 , 13.561502328224] , [ 1144814400000 , 14.997500543318] , [ 1144900800000 , 10.517117265656] , [ 1145246400000 , 12.838892214224] , [ 1145332800000 , 13.662576131421] , [ 1145419200000 , 13.854149552099] , [ 1145505600000 , 13.953085296369] , [ 1145592000000 , 17.604995370906] , [ 1145851200000 , 15.281466288386] , [ 1145937600000 , 15.139059941931] , [ 1146024000000 , 13.456279853441] , [ 1146110400000 , 9.4893340412739] , [ 1146196800000 , 6.1328426234] , [ 1146456000000 , 4.7574059901657] , [ 1146542400000 , 1.919412667311] , [ 1146628800000 , 3.0164152643481] , [ 1146715200000 , 3.2117070539049] , [ 1146801600000 , 3.4975758799316] , [ 1147060800000 , 3.4286040633737] , [ 1147147200000 , 4.0262269231406] , [ 1147233600000 , 6.9344709389752] , [ 1147320000000 , 8.0544533159695] , [ 1147406400000 , 8.045091501052] , [ 1147665600000 , 3.3760469310513] , [ 1147752000000 , 3.3994591584674] , [ 1147838400000 , 3.6923503668838] , [ 1147924800000 , 3.7215257839535] , [ 1148011200000 , 2.9137465847263] , [ 1148270400000 , 2.9409020632425] , [ 1148356800000 , 3.0486366902688] , [ 1148443200000 , 2.948247556144] , [ 1148529600000 , 2.9415183975016] , [ 1148616000000 , 2.9384894667669] , [ 1148961600000 , 3.0200964290604] , [ 1149048000000 , 2.948992015432] , [ 1149134400000 , 2.8069659223142] , [ 1149220800000 , 2.8366590485029] , [ 1149480000000 , 2.8757950742515] , [ 1149566400000 , 2.8466144762098] , [ 1149652800000 , 2.8480720110885] , [ 1149739200000 , 2.7926618205686] , [ 1149825600000 , 19.747227947692] , [ 1150084800000 , 2.8996092610008] , [ 1150171200000 , 15.785309261632] , [ 1150257600000 , 2.797061964531] , [ 1150344000000 , 2.7456202221531] , [ 1150430400000 , 2.7905391199606] , [ 1150689600000 , 2.7416962751862] , [ 1150776000000 , 2.8492790552625] , [ 1150862400000 , 3.1915238690065] , [ 1150948800000 , 3.8766915795871] , [ 1151035200000 , 3.8827084733311] , [ 1151294400000 , 3.9374605868536] , [ 1151380800000 , 3.9563523816199] , [ 1151467200000 , 4.5608262249523] , [ 1151553600000 , 4.5763484834063] , [ 1151640000000 , 4.6763211979752] , [ 1151899200000 , 4.6520117737883] , [ 1152072000000 , 4.8429368640414] , [ 1152158400000 , 4.9768643534564] , [ 1152244800000 , 6.1305481840025] , [ 1152504000000 , 5.175446146237] , [ 1152590400000 , 5.2358778184994] , [ 1152676800000 , 5.2689365647386] , [ 1152763200000 , 6.8644726301626] , [ 1152849600000 , 6.9886696147893] , [ 1153108800000 , 6.9036824079769] , [ 1153195200000 , 6.6654299027243] , [ 1153281600000 , 6.5146277540319] , [ 1153368000000 , 5.9036074266025] , [ 1153454400000 , 5.9569980600331] , [ 1153713600000 , 5.151836629581] , [ 1153800000000 , 5.1624061811956] , [ 1153886400000 , 5.0915473293374] , [ 1153972800000 , 3.9390742038109] , [ 1154059200000 , 4.0086836488803] , [ 1154318400000 , 4.0904620822168] , [ 1154404800000 , 5.5857330840014] , [ 1154491200000 , 5.5423138436635] , [ 1154577600000 , 4.3701912000671] , [ 1154664000000 , 4.5268035529361] , [ 1154923200000 , 4.5429812632733] , [ 1155009600000 , 3.1924514704355] , [ 1155096000000 , 3.2585958449797] , [ 1155182400000 , 2.5092653214667] , [ 1155268800000 , 2.7823668174575] , [ 1155528000000 , 2.7899839768294] , [ 1155614400000 , 1.2280265256445] , [ 1155700800000 , 1.3731826865885] , [ 1155787200000 , 1.3913280408006] , [ 1155873600000 , 1.3805979295051] , [ 1156132800000 , 1.3783460906009] , [ 1156219200000 , 1.4136073243985] , [ 1156305600000 , 1.4426603050026] , [ 1156392000000 , 1.4078447541276] , [ 1156478400000 , 1.3867707515587] , [ 1156737600000 , 0.80908361335597] , [ 1156824000000 , 0.82614827066555] , [ 1156910400000 , 0.82636153187655] , [ 1156996800000 , 0.82137686952494] , [ 1157083200000 , 0.83771474955879] , [ 1157428800000 , 0.71853983630983] , [ 1157515200000 , 0.88451206960144] , [ 1157601600000 , 0.89041250100159] , [ 1157688000000 , 0.92422347330851] , [ 1157947200000 , 0.94790448435661] , [ 1158033600000 , 0.99254859613543] , [ 1158120000000 , 0.42574623937435] , [ 1158206400000 , 0.45351432741561] , [ 1158292800000 , 0.46138107990096] , [ 1158552000000 , 0.44336340077374] , [ 1158638400000 , 0.53200657672664] , [ 1158724800000 , 0.59158864677543] , [ 1158811200000 , 0.56376495959054] , [ 1158897600000 , 0.60648201286241] , [ 1159156800000 , 0.569990420922] , [ 1159243200000 , 0.58581269728219] , [ 1159329600000 , 0.50431281834244] , [ 1159416000000 , 0.50583966750551] , [ 1159502400000 , 0.4895803799904] , [ 1159761600000 , 0.57897307744147] , [ 1159848000000 , 0.67670533075932] , [ 1159934400000 , 0E+1] , [ 1160020800000 , 0] , [ 1160107200000 , 0] , [ 1160366400000 , 0] , [ 1160452800000 , 0] , [ 1160539200000 , 0] , [ 1160625600000 , 2.6824231157085] , [ 1160712000000 , 3.5357180105398] , [ 1160971200000 , 2.779732378209] , [ 1161057600000 , 2.2481389625883] , [ 1161144000000 , 2.2822601981901] , [ 1161230400000 , 2.6834226291218] , [ 1161316800000 , 2.5646940363316] , [ 1161576000000 , 2.7236799805971] , [ 1161662400000 , 2.336966957629] , [ 1161748800000 , 2.3130581428869] , [ 1161835200000 , 2.287999048227] , [ 1161921600000 , 2.3509786326822] , [ 1162184400000 , 1.7792168788316] , [ 1162270800000 , 1.7553609022196] , [ 1162357200000 , 1.5799074614674] , [ 1162443600000 , 4.8123124280397] , [ 1162530000000 , 2.3600410437418] , [ 1162789200000 , 1.5414605418287] , [ 1162875600000 , 1.5171799999929] , [ 1162962000000 , 1.6483752879253] , [ 1163048400000 , 1.8174773751897] , [ 1163134800000 , 2.338601742401] , [ 1163394000000 , 3.4064766262284] , [ 1163480400000 , 4.3765682782065] , [ 1163566800000 , 5.9472706375975] , [ 1163653200000 , 3.002279000454] , [ 1163739600000 , 3.000915308439] , [ 1163998800000 , 2.9999632994464] , [ 1164085200000 , 2.8555261167545] , [ 1164171600000 , 2.9559411117469] , [ 1164344400000 , 2.9957135108809] , [ 1164603600000 , 3.030157444187] , [ 1164690000000 , 3.0461908634861] , [ 1164776400000 , 3.0153795449063] , [ 1164862800000 , 3.0564722974476] , [ 1164949200000 , 13.898015051888] , [ 1165208400000 , 15.034122737263] , [ 1165294800000 , 20.667866091028] , [ 1165381200000 , 23.901400959877] , [ 1165467600000 , 19.019263370775] , [ 1165554000000 , 18.032280035866] , [ 1165813200000 , 17.980521041415] , [ 1165899600000 , 17.77329949168] , [ 1165986000000 , 18.899765136247] , [ 1166072400000 , 8.4289284499593] , [ 1166158800000 , 5.2257614390063] , [ 1166418000000 , 5.2738781861931] , [ 1166504400000 , 4.4073707190307] , [ 1166590800000 , 4.369483275726] , [ 1166677200000 , 4.3377863790761] , [ 1166763600000 , 8.9029231451486] , [ 1167109200000 , 5.6565826811189] , [ 1167195600000 , 7.091966322015] , [ 1167282000000 , 1.2808657722335] , [ 1167368400000 , 1.2781647956727] , [ 1167800400000 , 1.387333113251] , [ 1167886800000 , 1.4469839195287] , [ 1167973200000 , 1.3890766206796] , [ 1168232400000 , 1.3034980496425] , [ 1168318800000 , 0.15170435094422] , [ 1168405200000 , 0.1426197892194] , [ 1168491600000 , 0.17439719809086] , [ 1168578000000 , 0.14060689747674] , [ 1168923600000 , 2.5183898451669] , [ 1169010000000 , 0.16967705683268] , [ 1169096400000 , 1.9701237833631] , [ 1169182800000 , 0.1203001235101] , [ 1169442000000 , 0.097246075530886] , [ 1169528400000 , 0.09064402246569] , [ 1169614800000 , 1.7836438501198] , [ 1169701200000 , 2.5538891862371] , [ 1169787600000 , 0.093309983536929] , [ 1170046800000 , 2.8396943615562] , [ 1170133200000 , 0.072920309480308] , [ 1170219600000 , 0.071970926838522] , [ 1170306000000 , 0.066250289479512] , [ 1170392400000 , 0.064419931223455] , [ 1170651600000 , 0.057940687431428] , [ 1170738000000 , 0.053654661720143] , [ 1170824400000 , 0.047493833087224] , [ 1170910800000 , 0.038825846129865] , [ 1170997200000 , 0.090436937693049] , [ 1171256400000 , 0.057014488007131] , [ 1171342800000 , 0.053840708739557] , [ 1171429200000 , 1.2678503010858] , [ 1171515600000 , 1.3031994669332] , [ 1171602000000 , 3.5861789064601] , [ 1171947600000 , 6.4588538863173] , [ 1172034000000 , 4.4816367084048] , [ 1172120400000 , 16.698500302881] , [ 1172206800000 , 44.184731059072] , [ 1172466000000 , 17.608795545871] , [ 1172552400000 , 11.175580771574] , [ 1172638800000 , 10.702030882608] , [ 1172725200000 , 7.8709426150369] , [ 1172811600000 , 11.918815678079] , [ 1173070800000 , 12.600695409504] , [ 1173157200000 , 11.126768690864] , [ 1173243600000 , 11.283575650439] , [ 1173330000000 , 18.950793290736] , [ 1173416400000 , 23.37784104408] , [ 1173672000000 , 23.129654653574] , [ 1173758400000 , 24.900211313236] , [ 1173844800000 , 17.957868206384] , [ 1173931200000 , 18.434107763401] , [ 1174017600000 , 15.331270302437] , [ 1174276800000 , 15.446263046099] , [ 1174363200000 , 9.954232039295] , [ 1174449600000 , 3.4565369872674] , [ 1174536000000 , 3.460955478627] , [ 1174622400000 , 6.4657608529261] , [ 1174881600000 , 14.270775124143] , [ 1174968000000 , 6.460730633443] , [ 1175054400000 , 12.269126166973] , [ 1175140800000 , 16.023432906777] , [ 1175227200000 , 16.609582800146] , [ 1175486400000 , 13.970578817167] , [ 1175572800000 , 12.085620578978] , [ 1175659200000 , 11.747424008608] , [ 1175745600000 , 10.782672638525] , [ 1176091200000 , 11.637773514541] , [ 1176177600000 , 13.493297897413] , [ 1176264000000 , 9.709593164293] , [ 1176350400000 , 6.7510233936491] , [ 1176436800000 , 9.3392355486568] , [ 1176696000000 , 5.602219034106] , [ 1176782400000 , 6.1992130361513] , [ 1176868800000 , 8.2421634182024] , [ 1176955200000 , 8.2548363560006] , [ 1177041600000 , 5.6380640228977] , [ 1177300800000 , 5.6051547259257] , [ 1177387200000 , 5.5040817068349] , [ 1177473600000 , 5.4810771243668] , [ 1177560000000 , 7.3649871653759] , [ 1177646400000 , 5.2703171496882] , [ 1177905600000 , 5.309308827205] , [ 1177992000000 , 4.539861133059] , [ 1178078400000 , 4.5475464336504] , [ 1178164800000 , 7.5945088176983] , [ 1178251200000 , 8.8774939921708] , [ 1178510400000 , 8.8767810404494] , [ 1178596800000 , 12.645780632808] , [ 1178683200000 , 11.016949217979] , [ 1178769600000 , 8.4422707174603] , [ 1178856000000 , 4.6822791957922] , [ 1179115200000 , 4.5327911119388] , [ 1179201600000 , 4.2920095636821] , [ 1179288000000 , 4.4200896629003] , [ 1179374400000 , 14.00038161468] , [ 1179460800000 , 0] , [ 1179720000000 , 18.943379636877] , [ 1179806400000 , 20.585384483123] , [ 1179892800000 , 20.646063407583] , [ 1179979200000 , 20.80823351821] , [ 1180065600000 , 7.4538422873799] , [ 1180411200000 , 10.336291303152] , [ 1180497600000 , 14.540867658982] , [ 1180584000000 , 6.8535014243623] , [ 1180670400000 , 8.989407227217] , [ 1180929600000 , 10.628958779903] , [ 1181016000000 , 9.1755300530468] , [ 1181102400000 , 11.359648612598] , [ 1181188800000 , 11.542993844626] , [ 1181275200000 , 12.03503036654] , [ 1181534400000 , 4.5918795656533] , [ 1181620800000 , 4.5740571909219] , [ 1181707200000 , 4.6003738821388] , [ 1181793600000 , 4.7259483344412] , [ 1181880000000 , 4.7687241404973] , [ 1182139200000 , 4.7537464357003] , [ 1182225600000 , 4.7300488241078] , [ 1182312000000 , 5.4244432062156] , [ 1182398400000 , 5.3944820995915] , [ 1182484800000 , 8.4952830437349] , [ 1182744000000 , 8.5051292553298] , [ 1182830400000 , 17.814873412087] , [ 1182916800000 , 13.13881023684] , [ 1183003200000 , 8.9611485633662] , [ 1183089600000 , 9.3527444961228] , [ 1183348800000 , 10.668125727641] , [ 1183435200000 , 10.504164125381] , [ 1183608000000 , 13.016543896951] , [ 1183694400000 , 31.144095953308] , [ 1183953600000 , 31.210090074789] , [ 1184040000000 , 31.42769092428] , [ 1184126400000 , 33.424093170975] , [ 1184212800000 , 24.406723188437] , [ 1184299200000 , 10.874507185059] , [ 1184558400000 , 9.8511919117572] , [ 1184644800000 , 9.7155845603641] , [ 1184731200000 , 8.8338529286599] , [ 1184817600000 , 13.516322433336] , [ 1184904000000 , 10.447712114713] , [ 1185163200000 , 10.457566743565] , [ 1185249600000 , 10.29336915461] , [ 1185336000000 , 9.7710600471723] , [ 1185422400000 , 5.4883357572287] , [ 1185508800000 , 5.4010377274909] , [ 1185768000000 , 6.9844114910505] , [ 1185854400000 , 17.466090644865] , [ 1185940800000 , 19.692295300726] , [ 1186027200000 , 6.4489002602679] , [ 1186113600000 , 19.19718137016] , [ 1186372800000 , 16.6707868357] , [ 1186459200000 , 3.1168058155453] , [ 1186545600000 , 4.2297699200172] , [ 1186632000000 , 13.095553953084] , [ 1186718400000 , 4.2948834737196] , [ 1186977600000 , 9.271225623467] , [ 1187064000000 , 3.0320057977494] , [ 1187150400000 , 3.0567606228017] , [ 1187236800000 , 1.455939502163] , [ 1187323200000 , 1.4385942827968] , [ 1187582400000 , 1.4579119812098] , [ 1187668800000 , 1.4347580634976] , [ 1187755200000 , 9.6632762551433] , [ 1187841600000 , 1.4424459151181] , [ 1187928000000 , 1.4277539902055] , [ 1188187200000 , 1.4005401138408] , [ 1188273600000 , 18.966305312184] , [ 1188360000000 , 18.119060249321] , [ 1188446400000 , 20.893542091323] , [ 1188532800000 , 14.470326771961] , [ 1188878400000 , 0] , [ 1188964800000 , 0] , [ 1189051200000 , 0] , [ 1189137600000 , 0] , [ 1189396800000 , 0] , [ 1189483200000 , 0] , [ 1189569600000 , 0] , [ 1189656000000 , 0E+1] , [ 1189742400000 , 11.151150089488] , [ 1190001600000 , 0] , [ 1190088000000 , 0] , [ 1190174400000 , 0] , [ 1190260800000 , 6.652142424709] , [ 1190347200000 , 6.5493593469205] , [ 1190606400000 , 11.496081663409] , [ 1190692800000 , 10.704111549006] , [ 1190779200000 , 7.2363597002465] , [ 1190865600000 , 8.0792846697389] , [ 1190952000000 , 22.25651099443] , [ 1191211200000 , 21.550494247088] , [ 1191297600000 , 4.9343086604033] , [ 1191384000000 , 24.181509556623] , [ 1191470400000 , 26.284911189232] , [ 1191556800000 , 25.239843004115] , [ 1191816000000 , 21.506762281943] , [ 1191902400000 , 31.388030695109] , [ 1191988800000 , 8.6157444685589] , [ 1192075200000 , 6.7640035301635] , [ 1192161600000 , 24.964054048319] , [ 1192420800000 , 45.700325049525] , [ 1192507200000 , 7.517661863009] , [ 1192593600000 , 21.237355797657] , [ 1192680000000 , 7.1235509804073] , [ 1192766400000 , 9.3828262178039] , [ 1193025600000 , 9.6963440480266] , [ 1193112000000 , 16.373531960039] , [ 1193198400000 , 3.8948899021831] , [ 1193284800000 , 4.9107208916799] , [ 1193371200000 , 35.776852900287] , [ 1193630400000 , 5.6952192551352] , [ 1193716800000 , 13.598229030437] , [ 1193803200000 , 4.4441589718617] , [ 1193889600000 , 43.839048634072] , [ 1193976000000 , 38.028827006764] , [ 1194238800000 , 36.654688949042] , [ 1194325200000 , 11.06069509605] , [ 1194411600000 , 11.414359688131] , [ 1194498000000 , 11.322914493047] , [ 1194584400000 , 26.784712510423] , [ 1194843600000 , 24.692986411163] , [ 1194930000000 , 23.150204872187] , [ 1195016400000 , 10.279725353046] , [ 1195102800000 , 14.160111490057] , [ 1195189200000 , 3.1044124658761] , [ 1195448400000 , 1.8572248938483] , [ 1195534800000 , 34.155668333938] , [ 1195621200000 , 22.422089683576] , [ 1195794000000 , 19.84684746526] , [ 1196053200000 , 18.151255589291] , [ 1196139600000 , 16.800462518017] , [ 1196226000000 , 33.832044228345] , [ 1196312400000 , 31.015169345761] , [ 1196398800000 , 30.48932877877] , [ 1196658000000 , 23.148119421303] , [ 1196744400000 , 28.241056479159] , [ 1196830800000 , 16.772434535307] , [ 1196917200000 , 1.7065866182462] , [ 1197003600000 , 16.380626643157] , [ 1197262800000 , 16.232860048538] , [ 1197349200000 , 1.7293115762353] , [ 1197435600000 , 1.7098102517254] , [ 1197522000000 , 21.419607181657] , [ 1197608400000 , 21.43328592356] , [ 1197867600000 , 21.668650130421] , [ 1197954000000 , 30.926905842551] , [ 1198040400000 , 29.61527740791] , [ 1198126800000 , 25.897765882671] , [ 1198213200000 , 4.5488729345191] , [ 1198472400000 , 1.7238120892471] , [ 1198645200000 , 1.7217321338302] , [ 1198731600000 , 1.7627054395636] , [ 1198818000000 , 1.7484807546433] , [ 1199077200000 , 1.7145498953412] , [ 1199250000000 , 0] , [ 1199336400000 , 7.3007973762395] , [ 1199422800000 , 7.4043175530951] , [ 1199682000000 , 7.2266628630524] , [ 1199768400000 , 11.851801669846] , [ 1199854800000 , 11.648852225991] , [ 1199941200000 , 11.378288591693] , [ 1200027600000 , 11.406302658644] , [ 1200286800000 , 11.419837120392] , [ 1200373200000 , 12.889677988621] , [ 1200459600000 , 12.718508965567] , [ 1200546000000 , 12.834488888354] , [ 1200632400000 , 12.872299326712] , [ 1200978000000 , 12.927125312502] , [ 1201064400000 , 31.673673103614] , [ 1201150800000 , 12.488428578073] , [ 1201237200000 , 12.861960245871] , [ 1201496400000 , 15.297131052375] , [ 1201582800000 , 7.0979530309852] , [ 1201669200000 , 19.26922145937] , [ 1201755600000 , 16.315331049451] , [ 1201842000000 , 25.048406090361] , [ 1202101200000 , 22.842841327371] , [ 1202187600000 , 25.727024942996] , [ 1202274000000 , 27.346662764257] , [ 1202360400000 , 23.63663944367] , [ 1202446800000 , 13.279977843876] , [ 1202706000000 , 21.825420957608] , [ 1202792400000 , 21.572363568444] , [ 1202878800000 , 30.703412161079] , [ 1202965200000 , 25.093202609083] , [ 1203051600000 , 34.513697350059] , [ 1203397200000 , 26.65466718946] , [ 1203483600000 , 26.237161386764] , [ 1203570000000 , 29.909392771291] , [ 1203656400000 , 23.502969355307] , [ 1203915600000 , 22.336394320201] , [ 1204002000000 , 17.924538077553] , [ 1204088400000 , 21.588154878031] , [ 1204174800000 , 22.800365445041] , [ 1204261200000 , 24.008559621935] , [ 1204520400000 , 25.752632744689] , [ 1204606800000 , 21.427238094735] , [ 1204693200000 , 14.078434025614] , [ 1204779600000 , 14.099025273452] , [ 1204866000000 , 13.956919802432] , [ 1205121600000 , 9.6466954658888] , [ 1205208000000 , 11.020170303092] , [ 1205294400000 , 11.177636405057] , [ 1205380800000 , 11.208918940107] , [ 1205467200000 , 18.657122787639] , [ 1205726400000 , 7.8324562692057] , [ 1205812800000 , 7.6282309363716] , [ 1205899200000 , 1.3110417995852] , [ 1205985600000 , 0.69253968653589] , [ 1206331200000 , 19.295131255226] , [ 1206417600000 , 3.1070317703761] , [ 1206504000000 , 3.132785261052] , [ 1206590400000 , 3.2169997685507] , [ 1206676800000 , 4.659120097841] , [ 1206936000000 , 8.2150523548054] , [ 1207022400000 , 7.0045486909585] , [ 1207108800000 , 2.8502649001201] , [ 1207195200000 , 8.5659439033653] , [ 1207281600000 , 2.9005955343095] , [ 1207540800000 , 2.9292805815067] , [ 1207627200000 , 8.8702913283124] , [ 1207713600000 , 13.351009411784] , [ 1207800000000 , 14.240912285062] , [ 1207886400000 , 4.4761684530362] , [ 1208145600000 , 4.0938282238997] , [ 1208232000000 , 13.022581699737] , [ 1208318400000 , 18.485313694325] , [ 1208404800000 , 21.801915576764] , [ 1208491200000 , 5.0372960327402] , [ 1208750400000 , 4.9660078722839] , [ 1208836800000 , 5.0242365767748] , [ 1208923200000 , 9.7226047132493] , [ 1209009600000 , 18.745544096839] , [ 1209096000000 , 7.0846958133547] , [ 1209355200000 , 7.6864740246385] , [ 1209441600000 , 4.8228736488467] , [ 1209528000000 , 9.9576530883914] , [ 1209614400000 , 3.005233883599] , [ 1209700800000 , 0.68873396407972] , [ 1209960000000 , 5.3288686786249] , [ 1210046400000 , 3.7254288453765] , [ 1210132800000 , 0.61060511367277] , [ 1210219200000 , 0.88311893887446] , [ 1210305600000 , 0.89673912717629] , [ 1210564800000 , 4.0370104394005] , [ 1210651200000 , 1.1438716143645] , [ 1210737600000 , 4.8943792252831] , [ 1210824000000 , 1.1211438159548] , [ 1210910400000 , 7.4146362302054] , [ 1211169600000 , 0.62592255888944] , [ 1211256000000 , 0.62767918903946] , [ 1211342400000 , 0.65252417412164] , [ 1211428800000 , 0.63681796043062] , [ 1211515200000 , 0.64078216622934] , [ 1211860800000 , 0.61856661491052] , [ 1211947200000 , 0.040457512312218] , [ 1212033600000 , 3.1744344901048] , [ 1212120000000 , 0.043386153951564] , [ 1212379200000 , 0.037416080029552] , [ 1212465600000 , 0.036208564062895] , [ 1212552000000 , 0.034429513297319] , [ 1212638400000 , 0.03598853197083] , [ 1212724800000 , 0.034314835427766] , [ 1212984000000 , 0.9247996649917] , [ 1213070400000 , 0.80570764610339] , [ 1213156800000 , 0.84768226660477] , [ 1213243200000 , 0.84516069243209] , [ 1213329600000 , 0.82422041719099] , [ 1213588800000 , 3.5485281610352] , [ 1213675200000 , 3.5666096114884] , [ 1213761600000 , 3.5850166087295] , [ 1213848000000 , 2.6669203234679] , [ 1213934400000 , 1.9322206731937] , [ 1214193600000 , 6.0346305017161] , [ 1214280000000 , 6.068610418399] , [ 1214366400000 , 5.9566599022118] , [ 1214452800000 , 1.1328054414901] , [ 1214539200000 , 8.4372479748449] , [ 1214798400000 , 8.5507111321931] , [ 1214884800000 , 6.0417351754615] , [ 1214971200000 , 4.6851988331241] , [ 1215057600000 , 4.7466368030043] , [ 1215403200000 , 4.6401217726266] , [ 1215489600000 , 4.3929570335133] , [ 1215576000000 , 4.4902593438217] , [ 1215662400000 , 0.86423503954477] , [ 1215748800000 , 0.8965341056628] , [ 1216008000000 , 0.9042750300334] , [ 1216094400000 , 9.7110694396787] , [ 1216180800000 , 2.9842346936245] , [ 1216267200000 , 2.8803467730387] , [ 1216353600000 , 2.8923231728124] , [ 1216612800000 , 10.302189764673] , [ 1216699200000 , 1.6276311379318] , [ 1216785600000 , 2.8091420986688] , [ 1216872000000 , 5.0043216249239] , [ 1216958400000 , 4.8948671918161] , [ 1217217600000 , 5.0039528512305] , [ 1217304000000 , 2.2542029777355] , [ 1217390400000 , 4.4963549113593] , [ 1217476800000 , 4.4452620614878] , [ 1217563200000 , 0E+1] , [ 1217822400000 , 2.1560055296562] , [ 1217908800000 , 2.0716387924969] , [ 1217995200000 , 4.758213776442] , [ 1218081600000 , 2.4926804812625] , [ 1218168000000 , 2.3418408892938] , [ 1218427200000 , 2.3138056281813] , [ 1218513600000 , 4.5766776929846] , [ 1218600000000 , 4.8296317377562] , [ 1218686400000 , 4.7649581033755] , [ 1218772800000 , 4.7492551018869] , [ 1219032000000 , 5.7544050941317] , [ 1219118400000 , 2.9569643056404] , [ 1219204800000 , 18.244922281458] , [ 1219291200000 , 10.574286406937] , [ 1219377600000 , 10.395808855373] , [ 1219636800000 , 10.924808846938] , [ 1219723200000 , 0E+1] , [ 1219809600000 , 0.53654662105493] , [ 1219896000000 , 2.9052446048062] , [ 1219982400000 , 5.3552605736185] , [ 1220328000000 , 12.018517208769] , [ 1220414400000 , 13.647134146831] , [ 1220500800000 , 17.786073307781] , [ 1220587200000 , 13.412919954101] , [ 1220846400000 , 10.791317859821] , [ 1220932800000 , 6.6988478353327] , [ 1221019200000 , 13.684264265774] , [ 1221105600000 , 21.961878938582] , [ 1221192000000 , 9.7427861869276] , [ 1221451200000 , 6.3268355523899] , [ 1221537600000 , 5.9565161695134] , [ 1221624000000 , 6.5054173496002] , [ 1221710400000 , 9.5318245347596] , [ 1221796800000 , 7.9806692731403] , [ 1222056000000 , 12.386654129753] , [ 1222142400000 , 10.798968817846] , [ 1222228800000 , 13.640073947636] , [ 1222315200000 , 9.3154824170404] , [ 1222401600000 , 8.1893528745798] , [ 1222660800000 , 7.9487029756044] , [ 1222747200000 , 0E+1] , [ 1222833600000 , 0.62257729423205] , [ 1222920000000 , 0.63822450829594] , [ 1223006400000 , 0.64992976756028] , [ 1223265600000 , 16.38956634512] , [ 1223352000000 , 3.1334295349777] , [ 1223438400000 , 4.5556340538731] , [ 1223524800000 , 4.575086203882] , [ 1223611200000 , 3.4367517616623] , [ 1223870400000 , 3.2118637273257] , [ 1223956800000 , 8.5544847718949] , [ 1224043200000 , 4.8626977832673] , [ 1224129600000 , 0E+1] , [ 1224216000000 , 6.5923527094405] , [ 1224475200000 , 17.887929510513] , [ 1224561600000 , 9.6970766835845E-9] , [ 1224648000000 , 12.16195259299] , [ 1224734400000 , 11.829626134238] , [ 1224820800000 , 0] , [ 1225080000000 , 0] , [ 1225166400000 , 12.519740444381] , [ 1225252800000 , 9.8080194525088E-9] , [ 1225339200000 , 0] , [ 1225425600000 , 0] , [ 1225688400000 , 3.186156723403] , [ 1225774800000 , 1.5298697304129] , [ 1225861200000 , 6.4408413828937] , [ 1225947600000 , 9.4400357312974] , [ 1226034000000 , 3.906373932269] , [ 1226293200000 , 21.418568194884] , [ 1226379600000 , 17.06491897991] , [ 1226466000000 , 1.9480018168095] , [ 1226552400000 , 1.9302979102606] , [ 1226638800000 , 1.9402803095639] , [ 1226898000000 , 0.94539707618153] , [ 1226984400000 , 11.401232860339] , [ 1227070800000 , 11.15809406856] , [ 1227157200000 , 18.984697337731] , [ 1227243600000 , 7.9897186183294] , [ 1227502800000 , 18.874995066617] , [ 1227589200000 , 15.423773770864] , [ 1227675600000 , 14.307267135477] , [ 1227848400000 , 6.96521305646] , [ 1228107600000 , 26.186806641883] , [ 1228194000000 , 6.509259095166] , [ 1228280400000 , 2.8800659812341] , [ 1228366800000 , 11.082998933418] , [ 1228453200000 , 1.6750156722765] , [ 1228712400000 , 0E+1] , [ 1228798800000 , 0] , [ 1228885200000 , 6.1966346615722] , [ 1228971600000 , 1.3849204099975E-8] , [ 1229058000000 , 1.3751815036566E-8] , [ 1229317200000 , 8.5599725937221] , [ 1229403600000 , 6.5473068495741] , [ 1229490000000 , 2.2717575882483] , [ 1229576400000 , 2.3669712907469] , [ 1229662800000 , 1.7069095438093] , [ 1229922000000 , 1.6356138435014] , [ 1230008400000 , 1.608899780063] , [ 1230094800000 , 1.4601760980515] , [ 1230267600000 , 1.5555022403615] , [ 1230526800000 , 8.3586985283287] , [ 1230613200000 , 1.9899740249037] , [ 1230699600000 , 0E+1] , [ 1230872400000 , 5.3732048903953] , [ 1231131600000 , 8.2361845324091] , [ 1231218000000 , 14.149240856601] , [ 1231304400000 , 11.455834240447] , [ 1231390800000 , 10.80499732152] , [ 1231477200000 , 10.953103405927] , [ 1231736400000 , 2.3670466106505] , [ 1231822800000 , 19.063632670096] , [ 1231909200000 , 18.904780398333] , [ 1231995600000 , 2.2458819235545] , [ 1232082000000 , 2.3896214881456] , [ 1232427600000 , 2.3717718461595] , [ 1232514000000 , 2.4563599121471] , [ 1232600400000 , 2.4643157323003] , [ 1232686800000 , 0.079977774076748] , [ 1232946000000 , 0.082554982798605] , [ 1233032400000 , 0.05995484797002] , [ 1233118800000 , 2.6431814311508] , [ 1233205200000 , 12.968248919573] , [ 1233291600000 , 5.6080038133035] , [ 1233550800000 , 4.1030953709746] , [ 1233637200000 , 8.4091393875674] , [ 1233723600000 , 13.199034588283] , [ 1233810000000 , 12.896187479682] , [ 1233896400000 , 14.704953084268] , [ 1234155600000 , 8.2204041077591] , [ 1234242000000 , 8.0276226205225] , [ 1234328400000 , 7.9190999154763] , [ 1234414800000 , 2.0744739273925] , [ 1234501200000 , 1.7423668091698] , [ 1234846800000 , 12.421406241189] , [ 1234933200000 , 10.872128416666] , [ 1235019600000 , 4.6612496738139] , [ 1235106000000 , 6.0519794807685] , [ 1235365200000 , 6.1233823525377] , [ 1235451600000 , 32.008318674774] , [ 1235538000000 , 4.5922543342157] , [ 1235624400000 , 3.6957340651825] , [ 1235710800000 , 3.71878200929] , [ 1235970000000 , 5.6745059336284] , [ 1236056400000 , 8.5432898114235] , [ 1236142800000 , 9.2411000879805] , [ 1236229200000 , 20.193111491624] , [ 1236315600000 , 22.532567808564] , [ 1236571200000 , 13.109073971821] , [ 1236657600000 , 28.284941694516] , [ 1236744000000 , 32.409228546948] , [ 1236830400000 , 21.441256730911] , [ 1236916800000 , 19.984460665658] , [ 1237176000000 , 9.3693582586361] , [ 1237262400000 , 4.5605304139394] , [ 1237348800000 , 12.088725534331] , [ 1237435200000 , 18.377661615464] , [ 1237521600000 , 12.896999510151] , [ 1237780800000 , 9.5899027276257] , [ 1237867200000 , 8.1097349963859] , [ 1237953600000 , 4.5941875548872] , [ 1238040000000 , 8.4547199152548] , [ 1238126400000 , 12.525748190414] , [ 1238385600000 , 11.152648772203] , [ 1238472000000 , 9.4003022518288] , [ 1238558400000 , 4.5549171966817] , [ 1238644800000 , 6.5025036145296] , [ 1238731200000 , 6.5728133707747] , [ 1238990400000 , 6.5126201116744] , [ 1239076800000 , 11.91084267986] , [ 1239163200000 , 6.6064755725635] , [ 1239249600000 , 6.5535279422691] , [ 1239595200000 , 6.5443086251902] , [ 1239681600000 , 6.7414636309647] , [ 1239768000000 , 7.0660483227062] , [ 1239854400000 , 6.9140365047207] , [ 1239940800000 , 0.68449942170777] , [ 1240200000000 , 4.0765048839462] , [ 1240286400000 , 4.0684380275311] , [ 1240372800000 , 0.68124578191151] , [ 1240459200000 , 0.68377467227995] , [ 1240545600000 , 0.68402646410275] , [ 1240804800000 , 0.67944617303807] , [ 1240891200000 , 0.68491304796702] , [ 1240977600000 , 0.67058967614253] , [ 1241064000000 , 0.66191934903029] , [ 1241150400000 , 0.65612869482368] , [ 1241409600000 , 0.64496658157576] , [ 1241496000000 , 0.65049454643312] , [ 1241582400000 , 0.64443137477478] , [ 1241668800000 , 2.0049662224861] , [ 1241755200000 , 1.9725073991976] , [ 1242014400000 , 1.958835607091] , [ 1242100800000 , 1.9872900638005] , [ 1242187200000 , 5.7482277178494] , [ 1242273600000 , 2.4370659685714] , [ 1242360000000 , 5.7216143960008] , [ 1242619200000 , 5.2049677315895] , [ 1242705600000 , 5.2103681873105] , [ 1242792000000 , 5.2137126340548] , [ 1242878400000 , 5.171723760152] , [ 1242964800000 , 5.23724467] , [ 1243310400000 , 3.9678164517853] , [ 1243396800000 , 5.5772236970217] , [ 1243483200000 , 0.65845452751353] , [ 1243569600000 , 2.3102867694053] , [ 1243828800000 , 3.8507466590185] , [ 1243915200000 , 5.5112206495367] , [ 1244001600000 , 4.4349674967258] , [ 1244088000000 , 3.9505389295321] , [ 1244174400000 , 2.5702748969213] , [ 1244433600000 , 0.65399322348227] , [ 1244520000000 , 0.64299785937821] , [ 1244606400000 , 0.64485618799924] , [ 1244692800000 , 8.2902621841086] , [ 1244779200000 , 11.947160143466] , [ 1245038400000 , 7.5111887893427] , [ 1245124800000 , 4.3623447852707] , [ 1245211200000 , 4.3185188827048] , [ 1245297600000 , 4.3151822352707] , [ 1245384000000 , 4.3124429740693] , [ 1245643200000 , 7.1776381803979] , [ 1245729600000 , 7.1924030640232] , [ 1245816000000 , 0.66312754304475] , [ 1245902400000 , 0.66228812289641] , [ 1245988800000 , 0.65782616909429] , [ 1246248000000 , 0.65403557211454] , [ 1246334400000 , 0.59883829833694] , [ 1246420800000 , 0.58472019697828] , [ 1246507200000 , 0.59332616301459] , [ 1246852800000 , 0.59315808007844] , [ 1246939200000 , 0.5993131101332] , [ 1247025600000 , 5.501358066333] , [ 1247112000000 , 0.60005399753714] , [ 1247198400000 , 0.60051790917818] , [ 1247457600000 , 0.59400671918334] , [ 1247544000000 , 0.5959215951087] , [ 1247630400000 , 0.58892795045543] , [ 1247716800000 , 0.58758770626686] , [ 1247803200000 , 0.58587949398228] , [ 1248062400000 , 0.58263995337336] , [ 1248148800000 , 0.58440608274831] , [ 1248235200000 , 6.7435071290752] , [ 1248321600000 , 0.576677267049] , [ 1248408000000 , 0.57387709049699] , [ 1248667200000 , 0.57211502323625] , [ 1248753600000 , 0.5708905907214] , [ 1248840000000 , 3.6167402006046] , [ 1248926400000 , 0.56866650585796] , [ 1249012800000 , 0.56865022934714] , [ 1249272000000 , 0.54964320986207] , [ 1249358400000 , 1.430692832223E-9] , [ 1249444800000 , 1.2051934544274] , [ 1249531200000 , 1.2072483112091] , [ 1249617600000 , 1.1835357729748] , [ 1249876800000 , 1.1835725753831] , [ 1249963200000 , 1.1670214207948] , [ 1250049600000 , 1.1712133489231] , [ 1250136000000 , 1.1741662612159] , [ 1250222400000 , 1.1313883400707] , [ 1250481600000 , 1.1313828684598] , [ 1250568000000 , 0E+1] , [ 1250654400000 , 2.1184705112498] , [ 1250740800000 , 2.1374293634466] , [ 1250827200000 , 2.2037310680564] , [ 1251086400000 , 2.2597649868689] , [ 1251172800000 , 2.2122635865678] , [ 1251259200000 , 3.2726580704974] , [ 1251345600000 , 2.197663052541] , [ 1251432000000 , 1.6916628637064] , [ 1251691200000 , 1.6975156371547] , [ 1251777600000 , 4.0400058354139] , [ 1251864000000 , 4.7749692172194] , [ 1251950400000 , 5.3254140265332] , [ 1252036800000 , 3.0831850408085] , [ 1252382400000 , 1.7813301829864] , [ 1252468800000 , 1.7683467908118] , [ 1252555200000 , 1.6134468659239] , [ 1252641600000 , 3.113042729206] , [ 1252900800000 , 1.4538139354139] , [ 1252987200000 , 0E+1] , [ 1253073600000 , 1.4653458834308] , [ 1253160000000 , 1.4574148737852] , [ 1253246400000 , 1.4525101942656] , [ 1253505600000 , 2.2958195081812] , [ 1253592000000 , 2.2993134672661] , [ 1253678400000 , 3.6812471872768] , [ 1253764800000 , 3.6154067532967] , [ 1253851200000 , 3.6132045554368] , [ 1254110400000 , 1.9657487891785] , [ 1254196800000 , 1.5108314653311] , [ 1254283200000 , 0E+1] , [ 1254369600000 , 0] , [ 1254456000000 , 3.5297031914329] , [ 1254715200000 , 0] , [ 1254801600000 , 1.9037985503048] , [ 1254888000000 , 2.6853233490137] , [ 1254974400000 , 0E+1] , [ 1255060800000 , 0] , [ 1255320000000 , 1.3093983930499] , [ 1255406400000 , 0E+1] , [ 1255492800000 , 0] , [ 1255579200000 , 0.79946716660831] , [ 1255665600000 , 1.6095337026792] , [ 1255924800000 , 0E+1] , [ 1256011200000 , 2.6328624804905] , [ 1256097600000 , 3.9852789145467] , [ 1256184000000 , 3.9527058136554] , [ 1256270400000 , 3.9661015902411] , [ 1256529600000 , 4.1874877464223] , [ 1256616000000 , 4.2063447600468] , [ 1256702400000 , 1.5493266183926] , [ 1256788800000 , 1.5609398082358] , [ 1256875200000 , 1.5766851423263] , [ 1257138000000 , 0E+1] , [ 1257224400000 , 0] , [ 1257310800000 , 0] , [ 1257397200000 , 0] , [ 1257483600000 , 0] , [ 1257742800000 , 0] , [ 1257829200000 , 1.4241804619506] , [ 1257915600000 , 2.2781605233931] , [ 1258002000000 , 1.4044119830969] , [ 1258088400000 , 1.4047637123134] , [ 1258347600000 , 10.143937425944] , [ 1258434000000 , 11.003691545936] , [ 1258520400000 , 11.760784823906] , [ 1258606800000 , 10.306309897772] , [ 1258693200000 , 11.080855554833] , [ 1258952400000 , 15.76032268301] , [ 1259038800000 , 15.65436243705] , [ 1259125200000 , 14.732736746758] , [ 1259298000000 , 12.115919080151] , [ 1259557200000 , 13.619735471784] , [ 1259643600000 , 10.204970840616] , [ 1259730000000 , 10.285523040042] , [ 1259816400000 , 10.479202437959] , [ 1259902800000 , 5.055265022425] , [ 1260162000000 , 3.5397057878171] , [ 1260248400000 , 3.5250113858685] , [ 1260334800000 , 4.3305866940283] , [ 1260421200000 , 4.3199834347402] , [ 1260507600000 , 2.7647914946991] , [ 1260766800000 , 2.7643611409788] , [ 1260853200000 , 2.7729892568035] , [ 1260939600000 , 2.8296302909464] , [ 1261026000000 , 2.7969861333383] , [ 1261112400000 , 6.6048975562059] , [ 1261371600000 , 8.746181038124] , [ 1261458000000 , 16.022215351694] , [ 1261544400000 , 16.904561941888] , [ 1261630800000 , 12.609225353851] , [ 1261976400000 , 7.0865369673667] , [ 1262062800000 , 7.1637422873121] , [ 1262149200000 , 7.1293442423118] , [ 1262235600000 , 7.172332867465] , [ 1262581200000 , 6.0831648432761] , [ 1262667600000 , 5.3414235611799] , [ 1262754000000 , 5.2588617110872] , [ 1262840400000 , 4.5969658850717] , [ 1262926800000 , 4.1688105678139] , [ 1263186000000 , 5.0503596181101] , [ 1263272400000 , 1.8297780633072] , [ 1263358800000 , 1.8265817946115] , [ 1263445200000 , 1.8312810227517] , [ 1263531600000 , 1.8205931329117] , [ 1263877200000 , 1.2224842537283] , [ 1263963600000 , 4.1804002832509] , [ 1264050000000 , 3.2104588461236] , [ 1264136400000 , 0.28086289348513] , [ 1264395600000 , 0.28389979501212] , [ 1264482000000 , 0.2810747431782] , [ 1264568400000 , 0.27367030729578] , [ 1264654800000 , 0.26239786969991] , [ 1264741200000 , 0.25864606583782] , [ 1265000400000 , 3.2604470661235] , [ 1265086800000 , 0.2683704779225] , [ 1265173200000 , 0.259443142774] , [ 1265259600000 , 8.8286025797799] , [ 1265346000000 , 0.25209653571845] , [ 1265605200000 , 0.25995355395898] , [ 1265691600000 , 0.26350794933532] , [ 1265778000000 , 0.26158878677637] , [ 1265864400000 , 0.27662310346392] , [ 1265950800000 , 1.86439916826] , [ 1266296400000 , 4.5618175868234] , [ 1266382800000 , 3.5650503806748] , [ 1266469200000 , 1.0046344877064] , [ 1266555600000 , 0.88733257672444] , [ 1266814800000 , 0.86975885107072] , [ 1266901200000 , 0.17323076719465] , [ 1266987600000 , 7.7748251765822] , [ 1267074000000 , 1.0430120261003E-8] , [ 1267160400000 , 0.04799934814101] , [ 1267419600000 , 0.047759171348484] , [ 1267506000000 , 0.045184333356078] , [ 1267592400000 , 0.055576477423304] , [ 1267678800000 , 0.055733260586805] , [ 1267765200000 , 3.0851538601192] , [ 1268024400000 , 5.9922257045574] , [ 1268110800000 , 5.9866401435488] , [ 1268197200000 , 0.10465280064721] , [ 1268283600000 , 0.12033113332845] , [ 1268370000000 , 0.10131610174581] , [ 1268625600000 , 0.11847049907095] , [ 1268712000000 , 2.1356139798799] , [ 1268798400000 , 0.11255193168905] , [ 1268884800000 , 0.13517428802701] , [ 1268971200000 , 0] , [ 1269230400000 , 0] , [ 1269316800000 , 0] , [ 1269403200000 , 0] , [ 1269489600000 , 0] , [ 1269576000000 , 0] , [ 1269835200000 , 0] , [ 1269921600000 , 0] , [ 1270008000000 , 0] , [ 1270094400000 , 0] , [ 1270440000000 , 2.850774857521] , [ 1270526400000 , 2.2589804639485] , [ 1270612800000 , 2.285267251354] , [ 1270699200000 , 2.3734120612322] , [ 1270785600000 , 2.3717822125548] , [ 1271044800000 , 4.2625353368786] , [ 1271131200000 , 2.3564591095437] , [ 1271217600000 , 2.3612597404689] , [ 1271304000000 , 2.355189897781] , [ 1271390400000 , 9.7617610195821] , [ 1271649600000 , 2.3316750948882] , [ 1271736000000 , 2.3554204820326] , [ 1271822400000 , 2.3797823277908] , [ 1271908800000 , 2.3848957967342] , [ 1271995200000 , 2.3724818052071] , [ 1272254400000 , 2.3867936129286] , [ 1272340800000 , 2.2976327198643] , [ 1272427200000 , 2.2847673647109] , [ 1272513600000 , 2.2922477707547] , [ 1272600000000 , 2.3485489060831] , [ 1272859200000 , 2.2105083576864] , [ 1272945600000 , 2.1812743937004] , [ 1273032000000 , 2.1203180778889] , [ 1273118400000 , 0E+1] , [ 1273204800000 , 0.84128734075579] , [ 1273464000000 , 5.775123966151] , [ 1273550400000 , 4.1159124822996] , [ 1273636800000 , 5.0369560759981] , [ 1273723200000 , 5.0229265757986] , [ 1273809600000 , 4.9892145190732] , [ 1274068800000 , 2.3111441537493] , [ 1274155200000 , 4.1413879561402] , [ 1274241600000 , 2.8798935997032] , [ 1274328000000 , 2.8824216429304] , [ 1274414400000 , 2.8466063306996] , [ 1274673600000 , 1.0850499947587] , [ 1274760000000 , 1.0897177611378] , [ 1274846400000 , 1.1083671293992] , [ 1274932800000 , 4.6437803047215] , [ 1275019200000 , 1.0935115091518] , [ 1275364800000 , 2.6542075858267] , [ 1275451200000 , 6.390737097604] , [ 1275537600000 , 2.5800488679277] , [ 1275624000000 , 2.6363691280816] , [ 1275883200000 , 2.717071850151] , [ 1275969600000 , 2.7276396448783] , [ 1276056000000 , 2.7019258701428] , [ 1276142400000 , 2.6467903607358] , [ 1276228800000 , 2.6476993753105] , [ 1276488000000 , 3.4781226877796] , [ 1276574400000 , 3.4620196351265] , [ 1276660800000 , 3.4506424803737] , [ 1276747200000 , 3.4632075406756] , [ 1276833600000 , 4.6483905224431] , [ 1277092800000 , 8.4761452565474] , [ 1277179200000 , 6.6092488959015] , [ 1277265600000 , 4.6995613173494] , [ 1277352000000 , 3.0386568983329] , [ 1277438400000 , 3.0673952302698] , [ 1277697600000 , 6.5636509425421] , [ 1277784000000 , 4.5326439598942] , [ 1277870400000 , 4.5674330128605] , [ 1277956800000 , 3.453495550013] , [ 1278043200000 , 12.098973365732] , [ 1278388800000 , 7.8836649960449] , [ 1278475200000 , 7.6647787648602] , [ 1278561600000 , 8.7583257263942] , [ 1278648000000 , 8.8635661597876] , [ 1278907200000 , 9.8302737319635] , [ 1278993600000 , 9.7867378730567] , [ 1279080000000 , 7.5678080409209] , [ 1279166400000 , 15.65652872616] , [ 1279252800000 , 5.9689528486809] , [ 1279512000000 , 7.0078108776693] , [ 1279598400000 , 8.0167775479397] , [ 1279684800000 , 11.728256170211] , [ 1279771200000 , 11.690310154165] , [ 1279857600000 , 11.318570934147] , [ 1280116800000 , 11.361176266491] , [ 1280203200000 , 9.9619295381735] , [ 1280289600000 , 9.4845405767859] , [ 1280376000000 , 10.427281272544] , [ 1280462400000 , 11.676872073506] , [ 1280721600000 , 17.203786437621] , [ 1280808000000 , 9.8934597047389] , [ 1280894400000 , 10.002953577279] , [ 1280980800000 , 3.4637004267288] , [ 1281067200000 , 3.2753493523234] , [ 1281326400000 , 2.433963042092] , [ 1281412800000 , 1.9551273654559] , [ 1281499200000 , 1.9891168565173] , [ 1281585600000 , 1.2980770353205] , [ 1281672000000 , 1.2927815681858] , [ 1281931200000 , 1.2377693207517] , [ 1282017600000 , 7.6123867944725] , [ 1282104000000 , 5.5872044915562] , [ 1282190400000 , 8.8140991678344] , [ 1282276800000 , 5.2381201907247] , [ 1282536000000 , 9.3237903124672] , [ 1282622400000 , 5.2777896711116] , [ 1282708800000 , 13.374833294887] , [ 1282795200000 , 7.2441690822071] , [ 1282881600000 , 7.2605769196643] , [ 1283140800000 , 7.3277900364205] , [ 1283227200000 , 6.7228503465507] , [ 1283313600000 , 10.640799346291] , [ 1283400000000 , 10.560539699565] , [ 1283486400000 , 5.5442143122897] , [ 1283832000000 , 3.6276696593137] , [ 1283918400000 , 3.5369972899083] , [ 1284004800000 , 3.5975515353696] , [ 1284091200000 , 1.1211190405408] , [ 1284350400000 , 14.246288336732] , [ 1284436800000 , 20.775983902756] , [ 1284523200000 , 16.847370568216] , [ 1284609600000 , 16.714760723814] , [ 1284696000000 , 16.819809321701] , [ 1284955200000 , 16.663940700998] , [ 1285041600000 , 9.1141917050783] , [ 1285128000000 , 16.717364391529] , [ 1285214400000 , 16.673510263472] , [ 1285300800000 , 19.616057923566] , [ 1285560000000 , 14.46474000361] , [ 1285646400000 , 12.527077725058] , [ 1285732800000 , 11.437848846457] , [ 1285819200000 , 10.251014821677] , [ 1285905600000 , 10.380432294181] , [ 1286164800000 , 12.841184938016] , [ 1286251200000 , 14.385625288561] , [ 1286337600000 , 15.826910823908] , [ 1286424000000 , 15.794761071586] , [ 1286510400000 , 16.014732420803] , [ 1286769600000 , 16.31182462091] , [ 1286856000000 , 16.814293402475] , [ 1286942400000 , 19.14169965795] , [ 1287028800000 , 22.606069798983] , [ 1287115200000 , 22.83142172098] , [ 1287374400000 , 22.679834237627] , [ 1287460800000 , 22.521464482306] , [ 1287547200000 , 20.543852910345] , [ 1287633600000 , 21.503428364417] , [ 1287720000000 , 21.486923473426] , [ 1287979200000 , 21.526832148478] , [ 1288065600000 , 21.001826964328] , [ 1288152000000 , 20.749520439532] , [ 1288238400000 , 19.029569151898] , [ 1288324800000 , 12.91721467363] , [ 1288584000000 , 14.329243386079] , [ 1288670400000 , 14.432818450359] , [ 1288756800000 , 13.081122846994] , [ 1288843200000 , 16.696065747099] , [ 1288929600000 , 17.387953164875] , [ 1289192400000 , 20.29669159292] , [ 1289278800000 , 20.677106807106] , [ 1289365200000 , 16.590818773612] , [ 1289451600000 , 14.701306394768] , [ 1289538000000 , 10.933799992909] , [ 1289797200000 , 8.4000604451418] , [ 1289883600000 , 7.4843427381187] , [ 1289970000000 , 7.8338325622071] , [ 1290056400000 , 7.8794373698104] , [ 1290142800000 , 6.8509314860043] , [ 1290402000000 , 6.8209096842783] , [ 1290488400000 , 7.5139566442298] , [ 1290574800000 , 8.3972864318589] , [ 1290747600000 , 8.3759528435223] , [ 1291006800000 , 7.0547214640457] , [ 1291093200000 , 8.8158174412613] , [ 1291179600000 , 9.0311729515292] , [ 1291266000000 , 9.0236606392401] , [ 1291352400000 , 9.0589383913935] , [ 1291611600000 , 11.819666467403] , [ 1291698000000 , 11.76663597964] , [ 1291784400000 , 11.214869842108] , [ 1291870800000 , 11.335755970384] , [ 1291957200000 , 11.158951460844] , [ 1292216400000 , 10.711740722718] , [ 1292302800000 , 7.8554891997622] , [ 1292389200000 , 7.2221201016942] , [ 1292475600000 , 7.1813113504643] , [ 1292562000000 , 6.9488995384051] , [ 1292821200000 , 7.0362942712251] , [ 1292907600000 , 7.0852551326747] , [ 1292994000000 , 7.0647935963455] , [ 1293080400000 , 5.8689600868079] , [ 1293426000000 , 5.9025079566661] , [ 1293512400000 , 5.9732688727434] , [ 1293598800000 , 5.9728342136774] , [ 1293685200000 , 5.9209724655277] , [ 1293771600000 , 6.0285158035548] , [ 1294030800000 , 6.6057634284871] , [ 1294117200000 , 6.370638068121] , [ 1294203600000 , 6.3999410586526] , [ 1294290000000 , 6.3386933057161] , [ 1294376400000 , 6.3632442768462] , [ 1294635600000 , 6.4139372874026] , [ 1294722000000 , 7.1689736045359] , [ 1294808400000 , 7.2101892359485] , [ 1294894800000 , 7.1774200607366] , [ 1294981200000 , 7.0706364226525] , [ 1295326800000 , 7.2420565888503] , [ 1295413200000 , 7.729627115145] , [ 1295499600000 , 8.0819869042317] , [ 1295586000000 , 8.1927919445644] , [ 1295845200000 , 8.9965391958168] , [ 1295931600000 , 8.8152743168456] , [ 1296018000000 , 14.169224830048] , [ 1296104400000 , 15.669581265233] , [ 1296190800000 , 15.741681147339] , [ 1296450000000 , 10.678954164786] , [ 1296536400000 , 10.778232189368] , [ 1296622800000 , 10.973393514458] , [ 1296709200000 , 10.918636428528] , [ 1296795600000 , 10.798314944682] , [ 1297054800000 , 12.27880262499] , [ 1297141200000 , 11.71340214721] , [ 1297227600000 , 11.949083848583] , [ 1297314000000 , 12.171819589372] , [ 1297400400000 , 12.022918419242] , [ 1297659600000 , 12.316294943466] , [ 1297746000000 , 12.311490226445] , [ 1297832400000 , 10.546161614989] , [ 1297918800000 , 10.212852465357] , [ 1298005200000 , 10.006183572991] , [ 1298350800000 , 6.1955088397816] , [ 1298437200000 , 3.6282579000125] , [ 1298523600000 , 2.1425179831013] , [ 1298610000000 , 1.6100993337419] , [ 1298869200000 , 2.7278169606536] , [ 1298955600000 , 1.7646646869974] , [ 1299042000000 , 1.904711349079] , [ 1299128400000 , 1.6015603347289] , [ 1299214800000 , 5.33489658773] , [ 1299474000000 , 5.7003370342734] , [ 1299560400000 , 5.6455295050364] , [ 1299646800000 , 5.5697979070134] , [ 1299733200000 , 5.8343740652092] , [ 1299819600000 , 5.1076333360735] , [ 1300075200000 , 5.0850675197288] , [ 1300161600000 , 5.4250231951116] , [ 1300248000000 , 5.9367548279745] , [ 1300334400000 , 6.1572104290143] , [ 1300420800000 , 6.214163935681] , [ 1300680000000 , 4.8667917106922] , [ 1300766400000 , 6.422013112333] , [ 1300852800000 , 3.4939332481092] , [ 1300939200000 , 4.6097562020041] , [ 1301025600000 , 4.6025549010205] , [ 1301284800000 , 4.5139375382479] , [ 1301371200000 , 4.4785136185511] , [ 1301457600000 , 5.8385185358421] , [ 1301544000000 , 4.726683788373] , [ 1301630400000 , 4.5595775739965] , [ 1301889600000 , 4.7028853870762] , [ 1301976000000 , 5.5630747379642] , [ 1302062400000 , 5.5695830880869] , [ 1302148800000 , 5.430002032119] , [ 1302235200000 , 6.0605343422489] , [ 1302494400000 , 6.0464510385453] , [ 1302580800000 , 5.3434967541795] , [ 1302667200000 , 5.3304860425691] , [ 1302753600000 , 5.3197140491453] , [ 1302840000000 , 5.5297170931492] , [ 1303099200000 , 5.7323594182524] , [ 1303185600000 , 5.6719227971364] , [ 1303272000000 , 5.6766524306867] , [ 1303358400000 , 5.7846113031309] , [ 1303704000000 , 14.258778990826] , [ 1303790400000 , 14.612982088981] , [ 1303876800000 , 15.206551597048] , [ 1303963200000 , 15.350003594809] , [ 1304049600000 , 15.690727931822] , [ 1304308800000 , 15.961872720506] , [ 1304395200000 , 14.196122771055] , [ 1304481600000 , 7.552327264097] , [ 1304568000000 , 7.3050361194973] , [ 1304654400000 , 7.305987353929] , [ 1304913600000 , 7.1431777604522] , [ 1305000000000 , 7.6003473028237] , [ 1305086400000 , 8.9788637937014] , [ 1305172800000 , 8.775871966083] , [ 1305259200000 , 8.7289222002926] , [ 1305518400000 , 8.9727814770429] , [ 1305604800000 , 9.0640318432143] , [ 1305691200000 , 9.2698536443952] , [ 1305777600000 , 9.152781021373] , [ 1305864000000 , 9.1708043409756] , [ 1306123200000 , 9.2714547796448] , [ 1306209600000 , 9.3302270261815] , [ 1306296000000 , 9.5604867784906] , [ 1306382400000 , 9.5669057675137] , [ 1306468800000 , 10.831220430519] , [ 1306814400000 , 8.120729804547] , [ 1306900800000 , 8.6415389681981] , [ 1306987200000 , 7.2888326950911] , [ 1307073600000 , 7.1603127722255] , [ 1307332800000 , 7.1543150474431] , [ 1307419200000 , 6.8715859295198] , [ 1307505600000 , 4.2039812566826] , [ 1307592000000 , 5.6904569227644] , [ 1307678400000 , 6.3505666310263] , [ 1307937600000 , 7.2650223185702] , [ 1308024000000 , 7.8624309884383] , [ 1308110400000 , 7.9103245356973] , [ 1308196800000 , 7.5424360349655] , [ 1308283200000 , 7.4759546980716] , [ 1308542400000 , 7.4316122245313] , [ 1308628800000 , 8.0319645070091] , [ 1308715200000 , 7.7700242348924] , [ 1308801600000 , 7.6618175481715] , [ 1308888000000 , 7.9019974040354] , [ 1309147200000 , 7.7430933398536] , [ 1309233600000 , 7.6971186864583] , [ 1309320000000 , 7.8539371496947] , [ 1309406400000 , 6.4767149279521] , [ 1309492800000 , 10.864451156569] , [ 1309838400000 , 12.53424259805] , [ 1309924800000 , 10.430427853165] , [ 1310011200000 , 10.822710394213] , [ 1310097600000 , 10.832580005768] , [ 1310356800000 , 10.052296614848] , [ 1310443200000 , 6.4839348905369] , [ 1310529600000 , 6.4796604961949] , [ 1310616000000 , 6.5237779463479] , [ 1310702400000 , 6.5282205979003] , [ 1310961600000 , 9.5605350756868] , [ 1311048000000 , 6.5779434365358] , [ 1311134400000 , 3.9824933248077] , [ 1311220800000 , 3.9336049736716] , [ 1311307200000 , 13.171507728255] , [ 1311566400000 , 19.522598665789] , [ 1311652800000 , 21.242853641529] , [ 1311739200000 , 18.163912091731] , [ 1311825600000 , 9.691779249722] , [ 1311912000000 , 9.3544636904085] , [ 1314763200000 , 5.4028216291156] , [ 1314849600000 , 5.4537855535373] , [ 1314936000000 , 6.9277472544551] , [ 1315281600000 , 13.527506761017] , [ 1315368000000 , 16.900133490357] , [ 1315454400000 , 5.0855551266622] , [ 1315540800000 , 5.0800328713639] , [ 1315800000000 , 28.072455306822] , [ 1315886400000 , 8.8759356126024] , [ 1315972800000 , 9.2408960225889] , [ 1316059200000 , 1.7118031387909] , [ 1316145600000 , 1.7312142072377] , [ 1316404800000 , 1.6618754265308] , [ 1316491200000 , 1.6579331202934] , [ 1316577600000 , 15.897293132969] , [ 1316664000000 , 0.1026324494013] , [ 1316750400000 , 1.7544940471016] , [ 1317009600000 , 0.10005678685907] , [ 1317096000000 , 1.7765589587728] , [ 1317182400000 , 0.10126533719457] , [ 1317268800000 , 16.919870876671] , [ 1317355200000 , 11.13686381726] , [ 1317614400000 , 6.1641593479491] , [ 1317700800000 , 8.8661223824614] , [ 1317787200000 , 17.608417474935] , [ 1317873600000 , 8.7389089868331] , [ 1317960000000 , 12.919578810593] , [ 1318219200000 , 26.006149587577] , [ 1318305600000 , 14.238973314548] , [ 1318392000000 , 10.176878123272] , [ 1318478400000 , 7.2096304682224] , [ 1318564800000 , 2.2168612574586] , [ 1318824000000 , 2.2940737765508] , [ 1318910400000 , 3.9661640184321] , [ 1318996800000 , 2.5459367442254] , [ 1319083200000 , 1.0077657061596] , [ 1319169600000 , 0E+1] , [ 1319428800000 , 17.097555411023] , [ 1319515200000 , 11.606450464539] , [ 1319601600000 , 12.890914181168] , [ 1319688000000 , 1.7053981520553] , [ 1319774400000 , 16.688074744503] , [ 1320033600000 , 8.8496229558706] , [ 1320120000000 , 0.45520819065016] , [ 1320206400000 , 0.45131568652003] , [ 1320292800000 , 4.5090918739386] , [ 1320379200000 , 4.4878220190057] , [ 1320642000000 , 2.9620357751273] , [ 1320728400000 , 2.9520424700809] , [ 1320814800000 , 5.6960600961596] , [ 1320901200000 , 0.14966542040682] , [ 1320987600000 , 0.14815988444861] , [ 1321246800000 , 1.6446943339418] , [ 1321333200000 , 7.696261415648] , [ 1321419600000 , 1.6454294617394] , [ 1321506000000 , 1.6323159472142] , [ 1321592400000 , 1.6308217232577] , [ 1321851600000 , 0.080750085947044] , [ 1321938000000 , 1.5630223551003] , [ 1322024400000 , 2.2777524858011] , [ 1322197200000 , 2.9331068785017] , [ 1322456400000 , 12.226276438246] , [ 1322542800000 , 7.7451056618688] , [ 1322629200000 , 8.2237757916671] , [ 1322715600000 , 1.8897293216426] , [ 1322802000000 , 1.8692322866259] , [ 1323061200000 , 1.8416716319176] , [ 1323147600000 , 1.8104401561105] , [ 1323234000000 , 1.8470081251299] , [ 1323320400000 , 1.7932665784973] , [ 1323406800000 , 1.7609438764805] , [ 1323666000000 , 1.7744873055117] , [ 1323752400000 , 1.7865419795682] , [ 1323838800000 , 1.7842895866241] , [ 1323925200000 , 1.7644173362237] , [ 1324011600000 , 1.7738744265978] , [ 1324270800000 , 3.9299064361409] , [ 1324357200000 , 3.9056044544827] , [ 1324443600000 , 3.9320303990364] , [ 1324530000000 , 3.6632424216547] , [ 1324616400000 , 2.8040461137765] , [ 1324962000000 , 2.7961697124163] , [ 1325048400000 , 2.8100174259024] , [ 1325134800000 , 0.023172195237641] , [ 1325221200000 , 0.041095901679587] , [ 1325566800000 , 7.6724801728593] , [ 1325653200000 , 4.2763616561652] , [ 1325739600000 , 0E+1] , [ 1325826000000 , 1.4618791730321] , [ 1326085200000 , 0E+1] , [ 1326171600000 , 0] , [ 1326258000000 , 0] , [ 1326344400000 , 0] , [ 1326430800000 , 0] , [ 1326776400000 , 0] , [ 1326862800000 , 2.7250542101371] , [ 1326949200000 , 5.4622314246137] , [ 1327035600000 , 5.4712525616126] , [ 1327294800000 , 8.2296098737129] , [ 1327381200000 , 8.0642415359483] , [ 1327467600000 , 9.5377433735282] , [ 1327554000000 , 10.257196887831] , [ 1327640400000 , 10.260104241198] , [ 1327899600000 , 4.6398649406234] , [ 1327986000000 , 4.7145144046888] , [ 1328072400000 , 9.6281152277381] , [ 1328158800000 , 9.7280787855291] , [ 1328245200000 , 7.3396609008687] , [ 1328504400000 , 7.3134569128428] , [ 1328590800000 , 7.0048665680361] , [ 1328677200000 , 5.5020982774708] , [ 1328763600000 , 3.4682606408391] , [ 1328850000000 , 1.8077804938241] , [ 1329109200000 , 1.8312355230228] , [ 1329195600000 , 1.8406724565104] , [ 1329282000000 , 1.8529549830777] , [ 1329368400000 , 1.8424931768584] , [ 1329454800000 , 7.9055107025124] , [ 1329800400000 , 10.709974570265] , [ 1329886800000 , 13.302602263751] , [ 1329973200000 , 13.313954389015] , [ 1330059600000 , 10.483934817868] , [ 1330318800000 , 2.9058503121605] , [ 1330405200000 , 4.4918908152623] , [ 1330491600000 , 4.4542926831064] , [ 1330578000000 , 2.4197715545823] , [ 1330664400000 , 2.4131484187935] , [ 1330923600000 , 0.74897541145568] , [ 1331010000000 , 1.5830792559841] , [ 1331096400000 , 3.1568005778019] , [ 1331182800000 , 3.1811252122814] , [ 1331269200000 , 6.4543930191829] , [ 1331524800000 , 6.4275187369461] , [ 1331611200000 , 11.831789512505] , [ 1331697600000 , 11.846137364418] , [ 1331784000000 , 11.7137606442] , [ 1331870400000 , 10.176067276795] , [ 1332129600000 , 9.2316296811876] , [ 1332216000000 , 7.5957964446259] , [ 1332302400000 , 4.4474928932849] , [ 1332388800000 , 3.9281321681724] , [ 1332475200000 , 3.2857724075373] , [ 1332734400000 , 3.1842624387074] , [ 1332820800000 , 3.2226627450191] , [ 1332907200000 , 3.8989359742328] , [ 1332993600000 , 3.5758281362346] , [ 1333080000000 , 3.6401003587818] , [ 1333339200000 , 3.7777313585311] , [ 1333425600000 , 3.781034960428] , [ 1333512000000 , 4.8315911191317] , [ 1333598400000 , 0.56683039450387] , [ 1333944000000 , 3.8340659564813] , [ 1334030400000 , 4.0637693951563] , [ 1334116800000 , 3.9485243918444] , [ 1334203200000 , 3.8818396815084] , [ 1334289600000 , 7.1198330075262] , [ 1334548800000 , 5.5286517014158] , [ 1334635200000 , 0.59732819298186] , [ 1334721600000 , 3.8141617282652] , [ 1334808000000 , 6.7919650728735] , [ 1334894400000 , 6.8270129049705] , [ 1335153600000 , 0.60622657540105] , [ 1335240000000 , 4.6059830131653] , [ 1335326400000 , 4.6318792953283] , [ 1335412800000 , 6.2900689816543] , [ 1335499200000 , 3.8615977884794] , [ 1335758400000 , 0.70621117241196]]}]
-.map(function(series) {
-  series.values = series.values.map(function(d) {
-    return { x: d[0], y: d[1] }
-  });
-  return series;
-});
-
-
-
-
-
-
-
-nv.charts.stackedAreaChart()
-    .selector('#chart1')
-    //.data(histcatexplongDaily)
-    .data(histcatexplong)
-    .build();
-
-
-
-
-</script>
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/stackedAreaWithLegend.html b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/stackedAreaWithLegend.html
deleted file mode 100755
index 35ddf5fe..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/stackedAreaWithLegend.html
+++ /dev/null
@@ -1,222 +0,0 @@
-<!DOCTYPE html>
-<meta charset="utf-8">
-
-<link href="../src/d3.css" rel="stylesheet" type="text/css">
-
-<style>
-
-body {
-  overflow-y:scroll;
-}
-
-text {
-  font: 12px sans-serif;
-}
-
-#chart {
-  margin: 10px;
-  height: 500px;
-}
-
-</style>
-<body>
-
-  <div id="chart">
-    <svg></svg>
-  </div>
-
-<script src="../lib/d3.v2.js"></script>
-<script src="../nv.d3.js"></script>
-<script src="../src/models/axis.js"></script>
-<script src="../src/tooltip.js"></script>
-<script src="../src/models/legend.js"></script>
-<script src="../src/models/scatter.js"></script>
-<script src="../src/models/stackedArea.js"></script>
-<script src="../src/models/stackedAreaWithLegend.js"></script>
-<script>
-
-
-var n = 4, // number of layers
-    m = 120; // number of samples per layer
-    //color = d3.interpolateRgb("#aad", "#556");
-
-//format data to our liking, add keys
-var data = stream_layers(n,m).map(function(data, i) {
-  return { 
-    key: 'Stream' + i,
-    values: data
-  };
-});
-
-
-
-
-
-var histcatexplong = [ 
-  { 
-    "key" : "Consumer Discretionary" , 
-    "values" : [ [ 1025409600000 , 23.041422681023] , [ 1028088000000 , 19.854291255832] , [ 1030766400000 , 21.02286281168] , [ 1033358400000 , 22.093608385173] , [ 1036040400000 , 25.108079299458] , [ 1038632400000 , 26.982389242348] , [ 1041310800000 , 19.828984957662] , [ 1043989200000 , 19.914055036294] , [ 1046408400000 , 19.436150539916] , [ 1049086800000 , 21.558650338602] , [ 1051675200000 , 24.395594061773] , [ 1054353600000 , 24.747089309384] , [ 1056945600000 , 23.491755498807] , [ 1059624000000 , 23.376634878164] , [ 1062302400000 , 24.581223154533] , [ 1064894400000 , 24.922476843538] , [ 1067576400000 , 27.357712939042] , [ 1070168400000 , 26.503020572593] , [ 1072846800000 , 26.658901244878] , [ 1075525200000 , 27.065704156445] , [ 1078030800000 , 28.735320452588] , [ 1080709200000 , 31.572277846319] , [ 1083297600000 , 30.932161503638] , [ 1085976000000 , 31.627029785554] , [ 1088568000000 , 28.728743674232] , [ 1091246400000 , 26.858365172675] , [ 1093924800000 , 27.279922830032] , [ 1096516800000 , 34.408301211324] , [ 1099195200000 , 34.794362930439] , [ 1101790800000 , 35.609978198951] , [ 1104469200000 , 33.574394968037] , [ 1107147600000 , 31.979405070598] , [ 1109566800000 , 31.19009040297] , [ 1112245200000 , 31.083933968994] , [ 1114833600000 , 29.668971113185] , [ 1117512000000 , 31.490638014379] , [ 1120104000000 , 31.818617451128] , [ 1122782400000 , 32.960314008183] , [ 1125460800000 , 31.313383196209] , [ 1128052800000 , 33.125486081852] , [ 1130734800000 , 32.791805509149] , [ 1133326800000 , 33.506038030366] , [ 1136005200000 , 26.96501697216] , [ 1138683600000 , 27.38478809681] , [ 1141102800000 , 27.371377218209] , [ 1143781200000 , 26.309915460827] , [ 1146369600000 , 26.425199957518] , [ 1149048000000 , 26.823411519396] , [ 1151640000000 , 23.850443591587] , [ 1154318400000 , 23.158355444054] , [ 1156996800000 , 22.998689393695] , [ 1159588800000 , 27.9771285113] , [ 1162270800000 , 29.073672469719] , [ 1164862800000 , 28.587640408904] , [ 1167541200000 , 22.788453687637] , [ 1170219600000 , 22.429199073597] , [ 1172638800000 , 22.324103271052] , [ 1175313600000 , 17.558388444187] , [ 1177905600000 , 16.769518096208] , [ 1180584000000 , 16.214738201301] , [ 1183176000000 , 18.729632971229] , [ 1185854400000 , 18.814523318847] , [ 1188532800000 , 19.789986451358] , [ 1191124800000 , 17.070049054933] , [ 1193803200000 , 16.121349575716] , [ 1196398800000 , 15.141659430091] , [ 1199077200000 , 17.175388025297] , [ 1201755600000 , 17.286592443522] , [ 1204261200000 , 16.323141626568] , [ 1206936000000 , 19.231263773952] , [ 1209528000000 , 18.446256391095] , [ 1212206400000 , 17.822632399764] , [ 1214798400000 , 15.53936647598] , [ 1217476800000 , 15.255131790217] , [ 1220155200000 , 15.660963922592] , [ 1222747200000 , 13.254482273698] , [ 1225425600000 , 11.920796202299] , [ 1228021200000 , 12.122809090924] , [ 1230699600000 , 15.691026271393] , [ 1233378000000 , 14.720881635107] , [ 1235797200000 , 15.387939360044] , [ 1238472000000 , 13.765436672228] , [ 1241064000000 , 14.631445864799] , [ 1243742400000 , 14.292446536221] , [ 1246334400000 , 16.170071367017] , [ 1249012800000 , 15.948135554337] , [ 1251691200000 , 16.612872685134] , [ 1254283200000 , 18.778338719091] , [ 1256961600000 , 16.756026065421] , [ 1259557200000 , 19.385804443146] , [ 1262235600000 , 22.950590240168] , [ 1264914000000 , 23.61159018141] , [ 1267333200000 , 25.708586989581] , [ 1270008000000 , 26.883915999885] , [ 1272600000000 , 25.893486687065] , [ 1275278400000 , 24.678914263176] , [ 1277870400000 , 25.937275793024] , [ 1280548800000 , 29.461381693838] , [ 1283227200000 , 27.357322961861] , [ 1285819200000 , 29.057235285673] , [ 1288497600000 , 28.549434189386] , [ 1291093200000 , 28.506352379724] , [ 1293771600000 , 29.449241421598] , [ 1296450000000 , 25.796838168807] , [ 1298869200000 , 28.740145449188] , [ 1301544000000 , 22.091744141872] , [ 1304136000000 , 25.07966254541] , [ 1306814400000 , 23.674906973064] , [ 1309406400000 , 23.418002742929] , [ 1312084800000 , 23.24364413887] , [ 1314763200000 , 31.591854066817] , [ 1317355200000 , 31.497112374114] , [ 1320033600000 , 26.67238082043] , [ 1322629200000 , 27.297080015495] , [ 1325307600000 , 20.174315530051] , [ 1327986000000 , 19.631084213898] , [ 1330491600000 , 20.366462219461] , [ 1333166400000 , 19.284784434185] , [ 1335758400000 , 19.157810257624]]
-  }, 
-
-  { 
-    "key" : "Consumer Staples" , 
-    "values" : [ [ 1025409600000 , 7.9356392949025] , [ 1028088000000 , 7.4514668527298] , [ 1030766400000 , 7.9085410566608] , [ 1033358400000 , 5.8996782364764] , [ 1036040400000 , 6.0591869346923] , [ 1038632400000 , 5.9667815800451] , [ 1041310800000 , 8.65528925664] , [ 1043989200000 , 8.7690763386254] , [ 1046408400000 , 8.6386160387453] , [ 1049086800000 , 5.9895557449743] , [ 1051675200000 , 6.3840324338159] , [ 1054353600000 , 6.5196511461441] , [ 1056945600000 , 7.0738618553114] , [ 1059624000000 , 6.5745957367133] , [ 1062302400000 , 6.4658359184444] , [ 1064894400000 , 2.7622758754954] , [ 1067576400000 , 2.9794782986241] , [ 1070168400000 , 2.8735432712019] , [ 1072846800000 , 1.6344817513645] , [ 1075525200000 , 1.5869248754883] , [ 1078030800000 , 1.7172279157246] , [ 1080709200000 , 1.9649927409867] , [ 1083297600000 , 2.0261695079196] , [ 1085976000000 , 2.0541261923929] , [ 1088568000000 , 3.9466318927569] , [ 1091246400000 , 3.7826770946089] , [ 1093924800000 , 3.9543021004028] , [ 1096516800000 , 3.8309891064711] , [ 1099195200000 , 3.6340958946166] , [ 1101790800000 , 3.5289755762525] , [ 1104469200000 , 5.702378559857] , [ 1107147600000 , 5.6539569019223] , [ 1109566800000 , 5.5449506370392] , [ 1112245200000 , 4.7579993280677] , [ 1114833600000 , 4.4816139372906] , [ 1117512000000 , 4.5965558568606] , [ 1120104000000 , 4.3747066116976] , [ 1122782400000 , 4.4588822917087] , [ 1125460800000 , 4.4460351848286] , [ 1128052800000 , 3.7989113035136] , [ 1130734800000 , 3.7743883140088] , [ 1133326800000 , 3.7727852823828] , [ 1136005200000 , 7.2968111448895] , [ 1138683600000 , 7.2800122043237] , [ 1141102800000 , 7.1187787503354] , [ 1143781200000 , 8.351887016482] , [ 1146369600000 , 8.4156698763993] , [ 1149048000000 , 8.1673298604231] , [ 1151640000000 , 5.5132447126042] , [ 1154318400000 , 6.1152537710599] , [ 1156996800000 , 6.076765091942] , [ 1159588800000 , 4.6304473798646] , [ 1162270800000 , 4.6301068469402] , [ 1164862800000 , 4.3466656309389] , [ 1167541200000 , 6.830104897003] , [ 1170219600000 , 7.241633040029] , [ 1172638800000 , 7.1432372054153] , [ 1175313600000 , 10.608942063374] , [ 1177905600000 , 10.914964549494] , [ 1180584000000 , 10.933223880565] , [ 1183176000000 , 8.3457524851265] , [ 1185854400000 , 8.1078413081882] , [ 1188532800000 , 8.2697185922474] , [ 1191124800000 , 8.4742436475968] , [ 1193803200000 , 8.4994601179319] , [ 1196398800000 , 8.7387319683243] , [ 1199077200000 , 6.8829183612895] , [ 1201755600000 , 6.984133637885] , [ 1204261200000 , 7.0860136043287] , [ 1206936000000 , 4.3961787956053] , [ 1209528000000 , 3.8699674365231] , [ 1212206400000 , 3.6928925238305] , [ 1214798400000 , 6.7571718894253] , [ 1217476800000 , 6.4367313362344] , [ 1220155200000 , 6.4048441521454] , [ 1222747200000 , 5.4643833239669] , [ 1225425600000 , 5.3150786833374] , [ 1228021200000 , 5.3011272612576] , [ 1230699600000 , 4.1203601430809] , [ 1233378000000 , 4.0881783200525] , [ 1235797200000 , 4.1928665957189] , [ 1238472000000 , 7.0249415663205] , [ 1241064000000 , 7.006530880769] , [ 1243742400000 , 6.994835633224] , [ 1246334400000 , 6.1220222336254] , [ 1249012800000 , 6.1177436137653] , [ 1251691200000 , 6.1413396231981] , [ 1254283200000 , 4.8046006145874] , [ 1256961600000 , 4.6647600660544] , [ 1259557200000 , 4.544865006255] , [ 1262235600000 , 6.0488249316539] , [ 1264914000000 , 6.3188669540206] , [ 1267333200000 , 6.5873958262306] , [ 1270008000000 , 6.2281189839578] , [ 1272600000000 , 5.8948915746059] , [ 1275278400000 , 5.5967320482214] , [ 1277870400000 , 0.99784432084837] , [ 1280548800000 , 1.0950794175359] , [ 1283227200000 , 0.94479734407491] , [ 1285819200000 , 1.222093988688] , [ 1288497600000 , 1.335093106856] , [ 1291093200000 , 1.3302565104985] , [ 1293771600000 , 1.340824670897] , [ 1296450000000 , 0] , [ 1298869200000 , 0] , [ 1301544000000 , 0] , [ 1304136000000 , 0] , [ 1306814400000 , 0] , [ 1309406400000 , 0] , [ 1312084800000 , 0] , [ 1314763200000 , 0] , [ 1317355200000 , 4.4583692315] , [ 1320033600000 , 3.6493043348059] , [ 1322629200000 , 3.8610064091761] , [ 1325307600000 , 5.5144800685202] , [ 1327986000000 , 5.1750695220791] , [ 1330491600000 , 5.6710066952691] , [ 1333166400000 , 5.5611890039181] , [ 1335758400000 , 5.5979368839939]]
-  }, 
-
-  { 
-    "key" : "Energy" , 
-    "values" : [ [ 1025409600000 , 1.4646843173806] , [ 1028088000000 , 1.2255947178893] , [ 1030766400000 , 1.4158447149914] , [ 1033358400000 , 1.0079176473732] , [ 1036040400000 , 1.30237558984] , [ 1038632400000 , 1.688609181773] , [ 1041310800000 , 2.084300956831] , [ 1043989200000 , 2.1374370551873] , [ 1046408400000 , 2.3282783517776] , [ 1049086800000 , 2.1973076058812] , [ 1051675200000 , 2.157261693164] , [ 1054353600000 , 2.2517863434814] , [ 1056945600000 , 1.2228256346504] , [ 1059624000000 , 1.1440109589209] , [ 1062302400000 , 1.2064470359759] , [ 1064894400000 , 2.500656510238] , [ 1067576400000 , 2.5387208947759] , [ 1070168400000 , 2.4603613044678] , [ 1072846800000 , 3.0150440824201] , [ 1075525200000 , 3.0543883162347] , [ 1078030800000 , 3.2706600781893] , [ 1080709200000 , 3.6312746608013] , [ 1083297600000 , 3.7328532659082] , [ 1085976000000 , 3.766358446065] , [ 1088568000000 , 2.6344481471685] , [ 1091246400000 , 2.763489510345] , [ 1093924800000 , 2.8565862394721] , [ 1096516800000 , 3.8555975117279] , [ 1099195200000 , 3.7062421881707] , [ 1101790800000 , 3.8020128704686] , [ 1104469200000 , 4.309131851142] , [ 1107147600000 , 4.3553997741931] , [ 1109566800000 , 4.8208488504576] , [ 1112245200000 , 4.1337237657138] , [ 1114833600000 , 3.8976502361354] , [ 1117512000000 , 4.0038454785722] , [ 1120104000000 , 3.6457285169699] , [ 1122782400000 , 3.7645930389974] , [ 1125460800000 , 3.9638322190019] , [ 1128052800000 , 4.2470697064323] , [ 1130734800000 , 3.9259866763827] , [ 1133326800000 , 3.8872767584613] , [ 1136005200000 , 1.4275237035221] , [ 1138683600000 , 1.544303464167] , [ 1141102800000 , 1.4387289432421] , [ 1143781200000 , 0] , [ 1146369600000 , 0] , [ 1149048000000 , 0] , [ 1151640000000 , 1.328626801128] , [ 1154318400000 , 1.2874050802627] , [ 1156996800000 , 1.0872743105593] , [ 1159588800000 , 0.96042562635813] , [ 1162270800000 , 0.93139372870616] , [ 1164862800000 , 0.94432167305385] , [ 1167541200000 , 1.277750166208] , [ 1170219600000 , 1.2204893886811] , [ 1172638800000 , 1.207489123122] , [ 1175313600000 , 1.2490651414113] , [ 1177905600000 , 1.2593129913052] , [ 1180584000000 , 1.373329808388] , [ 1183176000000 , 0] , [ 1185854400000 , 0] , [ 1188532800000 , 0] , [ 1191124800000 , 0] , [ 1193803200000 , 0] , [ 1196398800000 , 0] , [ 1199077200000 , 0] , [ 1201755600000 , 0] , [ 1204261200000 , 0] , [ 1206936000000 , 0] , [ 1209528000000 , 0] , [ 1212206400000 , 0] , [ 1214798400000 , 0] , [ 1217476800000 , 0] , [ 1220155200000 , 0] , [ 1222747200000 , 1.4516108933695] , [ 1225425600000 , 1.1856025268225] , [ 1228021200000 , 1.3430470355439] , [ 1230699600000 , 2.2752595354509] , [ 1233378000000 , 2.4031560010523] , [ 1235797200000 , 2.0822430731926] , [ 1238472000000 , 1.5640902826938] , [ 1241064000000 , 1.5812873972356] , [ 1243742400000 , 1.9462448548894] , [ 1246334400000 , 2.9464870223957] , [ 1249012800000 , 3.0744699383222] , [ 1251691200000 , 2.9422304628446] , [ 1254283200000 , 2.7503075599999] , [ 1256961600000 , 2.6506701800427] , [ 1259557200000 , 2.8005425319977] , [ 1262235600000 , 2.6816184971185] , [ 1264914000000 , 2.681206271327] , [ 1267333200000 , 2.8195488011259] , [ 1270008000000 , 0] , [ 1272600000000 , 0] , [ 1275278400000 , 0] , [ 1277870400000 , 1.0687057346382] , [ 1280548800000 , 1.2539400544134] , [ 1283227200000 , 1.1862969445955] , [ 1285819200000 , 0] , [ 1288497600000 , 0] , [ 1291093200000 , 0] , [ 1293771600000 , 0] , [ 1296450000000 , 1.941972859484] , [ 1298869200000 , 2.1142247697552] , [ 1301544000000 , 2.3788590206824] , [ 1304136000000 , 2.5337302877545] , [ 1306814400000 , 2.3163370395199] , [ 1309406400000 , 2.0645451843195] , [ 1312084800000 , 2.1004446672411] , [ 1314763200000 , 3.6301875804303] , [ 1317355200000 , 2.454204664652] , [ 1320033600000 , 2.196082370894] , [ 1322629200000 , 2.3358418255202] , [ 1325307600000 , 0] , [ 1327986000000 , 0] , [ 1330491600000 , 0] , [ 1333166400000 , 0] , [ 1335758400000 , 0]]
-  }, 
-
-  { 
-    "key" : "Financials" , 
-    "values" : [ [ 1025409600000 , 7.9149900245423] , [ 1028088000000 , 7.0899888751059] , [ 1030766400000 , 7.5996132380614] , [ 1033358400000 , 8.2741174301034] , [ 1036040400000 , 9.3564460833513] , [ 1038632400000 , 9.7066786059904] , [ 1041310800000 , 10.213363052343] , [ 1043989200000 , 10.285809585273] , [ 1046408400000 , 10.222053149228] , [ 1049086800000 , 8.6188592137975] , [ 1051675200000 , 9.3335447543566] , [ 1054353600000 , 8.9312402186628] , [ 1056945600000 , 8.1895089343658] , [ 1059624000000 , 8.260622135079] , [ 1062302400000 , 7.7700786851364] , [ 1064894400000 , 7.9907428771318] , [ 1067576400000 , 8.7769091865606] , [ 1070168400000 , 8.4855077060661] , [ 1072846800000 , 9.6277203033655] , [ 1075525200000 , 9.9685913452624] , [ 1078030800000 , 10.615085181759] , [ 1080709200000 , 9.2902488079646] , [ 1083297600000 , 8.8610439830061] , [ 1085976000000 , 9.1075344931229] , [ 1088568000000 , 9.9156737639203] , [ 1091246400000 , 9.7826003238782] , [ 1093924800000 , 10.55403610555] , [ 1096516800000 , 10.926900264097] , [ 1099195200000 , 10.903144818736] , [ 1101790800000 , 10.862890389067] , [ 1104469200000 , 10.64604998964] , [ 1107147600000 , 10.042790814087] , [ 1109566800000 , 9.7173391591038] , [ 1112245200000 , 9.6122415755443] , [ 1114833600000 , 9.4337921146562] , [ 1117512000000 , 9.814827171183] , [ 1120104000000 , 12.059260396788] , [ 1122782400000 , 12.139649903873] , [ 1125460800000 , 12.281290663822] , [ 1128052800000 , 8.8037085409056] , [ 1130734800000 , 8.6300618239176] , [ 1133326800000 , 9.1225708491432] , [ 1136005200000 , 12.988124170836] , [ 1138683600000 , 13.356778764353] , [ 1141102800000 , 13.611196863271] , [ 1143781200000 , 6.8959030061189] , [ 1146369600000 , 6.9939633271353] , [ 1149048000000 , 6.7241510257676] , [ 1151640000000 , 5.5611293669517] , [ 1154318400000 , 5.6086488714041] , [ 1156996800000 , 5.4962849907033] , [ 1159588800000 , 6.9193153169278] , [ 1162270800000 , 7.0016334389778] , [ 1164862800000 , 6.7865422443273] , [ 1167541200000 , 9.0006454225383] , [ 1170219600000 , 9.2233916171431] , [ 1172638800000 , 8.8929316009479] , [ 1175313600000 , 10.345937520404] , [ 1177905600000 , 10.075914677026] , [ 1180584000000 , 10.089006188111] , [ 1183176000000 , 10.598330295008] , [ 1185854400000 , 9.9689546533009] , [ 1188532800000 , 9.7740580198146] , [ 1191124800000 , 10.558483060626] , [ 1193803200000 , 9.9314651823603] , [ 1196398800000 , 9.3997715873769] , [ 1199077200000 , 8.4086493387262] , [ 1201755600000 , 8.9698309085926] , [ 1204261200000 , 8.2778357995396] , [ 1206936000000 , 8.8585045600123] , [ 1209528000000 , 8.7013756413322] , [ 1212206400000 , 7.7933605469443] , [ 1214798400000 , 7.0236183483064] , [ 1217476800000 , 6.9873088186829] , [ 1220155200000 , 6.8031713070097] , [ 1222747200000 , 6.6869531315723] , [ 1225425600000 , 6.138256993963] , [ 1228021200000 , 5.6434994016354] , [ 1230699600000 , 5.495220262512] , [ 1233378000000 , 4.6885326869846] , [ 1235797200000 , 4.4524349883438] , [ 1238472000000 , 5.6766520778185] , [ 1241064000000 , 5.7675774480752] , [ 1243742400000 , 5.7882863168337] , [ 1246334400000 , 7.2666010034924] , [ 1249012800000 , 7.5191821322261] , [ 1251691200000 , 7.849651451445] , [ 1254283200000 , 10.383992037985] , [ 1256961600000 , 9.0653691861818] , [ 1259557200000 , 9.6705248324159] , [ 1262235600000 , 10.856380561349] , [ 1264914000000 , 11.27452370892] , [ 1267333200000 , 11.754156529088] , [ 1270008000000 , 8.2870811422455] , [ 1272600000000 , 8.0210264360699] , [ 1275278400000 , 7.5375074474865] , [ 1277870400000 , 8.3419527338039] , [ 1280548800000 , 9.4197471818443] , [ 1283227200000 , 8.7321733185797] , [ 1285819200000 , 9.6627062648126] , [ 1288497600000 , 10.187962234548] , [ 1291093200000 , 9.8144201733476] , [ 1293771600000 , 10.275723361712] , [ 1296450000000 , 16.796066079353] , [ 1298869200000 , 17.543254984075] , [ 1301544000000 , 16.673660675083] , [ 1304136000000 , 17.963944353609] , [ 1306814400000 , 16.63774086721] , [ 1309406400000 , 15.84857094609] , [ 1312084800000 , 14.767303362181] , [ 1314763200000 , 24.778452182433] , [ 1317355200000 , 18.370353229999] , [ 1320033600000 , 15.253137429099] , [ 1322629200000 , 14.989600840649] , [ 1325307600000 , 16.052539160125] , [ 1327986000000 , 16.424390322793] , [ 1330491600000 , 17.884020741104] , [ 1333166400000 , 18.372698836036] , [ 1335758400000 , 18.315881576096]]
-  },
-
-  { 
-    "key" : "Health Care" , 
-    "values" : [ [ 1025409600000 , 13.153938631352] , [ 1028088000000 , 12.456410521864] , [ 1030766400000 , 12.537048663919] , [ 1033358400000 , 13.947386398309] , [ 1036040400000 , 14.421680682568] , [ 1038632400000 , 14.143238262286] , [ 1041310800000 , 12.229635347478] , [ 1043989200000 , 12.508479916948] , [ 1046408400000 , 12.155368409526] , [ 1049086800000 , 13.335455563994] , [ 1051675200000 , 12.888210138167] , [ 1054353600000 , 12.842092790511] , [ 1056945600000 , 12.513816474199] , [ 1059624000000 , 12.21453674494] , [ 1062302400000 , 11.750848343935] , [ 1064894400000 , 10.526579636787] , [ 1067576400000 , 10.873596086087] , [ 1070168400000 , 11.019967131519] , [ 1072846800000 , 11.235789380602] , [ 1075525200000 , 11.859910850657] , [ 1078030800000 , 12.531031616536] , [ 1080709200000 , 11.360451067019] , [ 1083297600000 , 11.456244780202] , [ 1085976000000 , 11.436991407309] , [ 1088568000000 , 11.638595744327] , [ 1091246400000 , 11.190418301469] , [ 1093924800000 , 11.835608007589] , [ 1096516800000 , 11.540980244475] , [ 1099195200000 , 10.958762325687] , [ 1101790800000 , 10.885791159509] , [ 1104469200000 , 13.605810720109] , [ 1107147600000 , 13.128978067437] , [ 1109566800000 , 13.119012086882] , [ 1112245200000 , 13.003706129783] , [ 1114833600000 , 13.326996807689] , [ 1117512000000 , 13.547947991743] , [ 1120104000000 , 12.807959646616] , [ 1122782400000 , 12.931763821068] , [ 1125460800000 , 12.795359993008] , [ 1128052800000 , 9.6998935538319] , [ 1130734800000 , 9.3473740089131] , [ 1133326800000 , 9.36902067716] , [ 1136005200000 , 14.258619539875] , [ 1138683600000 , 14.21241095603] , [ 1141102800000 , 13.973193618249] , [ 1143781200000 , 15.218233920664] , [ 1146369600000 , 14.382109727451] , [ 1149048000000 , 13.894310878491] , [ 1151640000000 , 15.593086090031] , [ 1154318400000 , 16.244839695189] , [ 1156996800000 , 16.017088850647] , [ 1159588800000 , 14.183951830057] , [ 1162270800000 , 14.148523245696] , [ 1164862800000 , 13.424326059971] , [ 1167541200000 , 12.974450435754] , [ 1170219600000 , 13.232470418021] , [ 1172638800000 , 13.318762655574] , [ 1175313600000 , 15.961407746104] , [ 1177905600000 , 16.287714639805] , [ 1180584000000 , 16.24659058389] , [ 1183176000000 , 17.564505594808] , [ 1185854400000 , 17.872725373164] , [ 1188532800000 , 18.018998508756] , [ 1191124800000 , 15.584518016602] , [ 1193803200000 , 15.480850647182] , [ 1196398800000 , 15.699120036985] , [ 1199077200000 , 19.184281817226] , [ 1201755600000 , 19.691226605205] , [ 1204261200000 , 18.982314051293] , [ 1206936000000 , 18.707820309008] , [ 1209528000000 , 17.459630929759] , [ 1212206400000 , 16.500616076782] , [ 1214798400000 , 18.086324003978] , [ 1217476800000 , 18.929464156259] , [ 1220155200000 , 18.233728682084] , [ 1222747200000 , 16.315776297325] , [ 1225425600000 , 14.632892190251] , [ 1228021200000 , 14.667835024479] , [ 1230699600000 , 13.946993947309] , [ 1233378000000 , 14.394304684398] , [ 1235797200000 , 13.724462792967] , [ 1238472000000 , 10.930879035807] , [ 1241064000000 , 9.8339915513708] , [ 1243742400000 , 10.053858541872] , [ 1246334400000 , 11.786998438286] , [ 1249012800000 , 11.780994901769] , [ 1251691200000 , 11.305889670277] , [ 1254283200000 , 10.918452290083] , [ 1256961600000 , 9.6811395055706] , [ 1259557200000 , 10.971529744038] , [ 1262235600000 , 13.330210480209] , [ 1264914000000 , 14.592637568961] , [ 1267333200000 , 14.605329141157] , [ 1270008000000 , 13.936853794037] , [ 1272600000000 , 12.189480759072] , [ 1275278400000 , 11.676151385046] , [ 1277870400000 , 13.058852800018] , [ 1280548800000 , 13.62891543203] , [ 1283227200000 , 13.811107569918] , [ 1285819200000 , 13.786494560786] , [ 1288497600000 , 14.045162857531] , [ 1291093200000 , 13.697412447286] , [ 1293771600000 , 13.677681376221] , [ 1296450000000 , 19.96151186453] , [ 1298869200000 , 21.049198298156] , [ 1301544000000 , 22.687631094009] , [ 1304136000000 , 25.469010617433] , [ 1306814400000 , 24.88379943712] , [ 1309406400000 , 24.203843814249] , [ 1312084800000 , 22.138760964036] , [ 1314763200000 , 16.034636966228] , [ 1317355200000 , 15.394958944555] , [ 1320033600000 , 12.62564246197] , [ 1322629200000 , 12.973735699739] , [ 1325307600000 , 15.78601833615] , [ 1327986000000 , 15.227368020134] , [ 1330491600000 , 15.899752650733] , [ 1333166400000 , 15.661317319168] , [ 1335758400000 , 15.359891177281]]
-  } , 
-
-  { 
-    "key" : "Industrials" , 
-    "values" : [ [ 1025409600000 , 3.9133244953315] , [ 1028088000000 , 3.518489051173] , [ 1030766400000 , 3.7355675327774] , [ 1033358400000 , 2.6282873198607] , [ 1036040400000 , 2.8090400696474] , [ 1038632400000 , 3.0820718825965] , [ 1041310800000 , 4.2312761636941] , [ 1043989200000 , 4.2510922012943] , [ 1046408400000 , 4.07193350752] , [ 1049086800000 , 4.4040931689245] , [ 1051675200000 , 4.9759379689913] , [ 1054353600000 , 5.0856875680608] , [ 1056945600000 , 4.2233639497997] , [ 1059624000000 , 4.1845715132052] , [ 1062302400000 , 4.3055194312575] , [ 1064894400000 , 3.349297776236] , [ 1067576400000 , 3.7023871871544] , [ 1070168400000 , 3.7170568683668] , [ 1072846800000 , 3.9155694541972] , [ 1075525200000 , 3.9774182471036] , [ 1078030800000 , 4.1580444091887] , [ 1080709200000 , 4.5495573666535] , [ 1083297600000 , 4.5050302469253] , [ 1085976000000 , 4.7094278163836] , [ 1088568000000 , 6.1937658979517] , [ 1091246400000 , 6.0412923676877] , [ 1093924800000 , 6.1747253413885] , [ 1096516800000 , 6.0800072674329] , [ 1099195200000 , 5.7092602419448] , [ 1101790800000 , 6.092841893499] , [ 1104469200000 , 5.7466125264224] , [ 1107147600000 , 5.5824356250394] , [ 1109566800000 , 5.5727222001361] , [ 1112245200000 , 6.2116832774493] , [ 1114833600000 , 5.8847941423832] , [ 1117512000000 , 5.8120124594798] , [ 1120104000000 , 5.9445727342442] , [ 1122782400000 , 6.1631035517269] , [ 1125460800000 , 5.8577541392534] , [ 1128052800000 , 4.6507957123369] , [ 1130734800000 , 4.4741764311828] , [ 1133326800000 , 4.7062417975264] , [ 1136005200000 , 7.2759032827647] , [ 1138683600000 , 7.1590087090399] , [ 1141102800000 , 7.1297210970108] , [ 1143781200000 , 5.5774588290586] , [ 1146369600000 , 5.4977254491156] , [ 1149048000000 , 5.5138153113634] , [ 1151640000000 , 4.3198084032122] , [ 1154318400000 , 3.9179295839125] , [ 1156996800000 , 3.8110093051479] , [ 1159588800000 , 5.5629020916939] , [ 1162270800000 , 5.7241673711336] , [ 1164862800000 , 5.4715049695004] , [ 1167541200000 , 4.9193763571618] , [ 1170219600000 , 5.1360539472469] , [ 1172638800000 , 5.1327258759766] , [ 1175313600000 , 5.1888943925083] , [ 1177905600000 , 5.5191481293346] , [ 1180584000000 , 5.6093625614921] , [ 1183176000000 , 4.2706312987397] , [ 1185854400000 , 4.4453235132117] , [ 1188532800000 , 4.6228003109761] , [ 1191124800000 , 5.0645764756954] , [ 1193803200000 , 5.0723447230959] , [ 1196398800000 , 5.1457765818846] , [ 1199077200000 , 5.4067851597282] , [ 1201755600000 , 5.472241916816] , [ 1204261200000 , 5.3742740389688] , [ 1206936000000 , 6.251751933664] , [ 1209528000000 , 6.1406852153472] , [ 1212206400000 , 5.8164385627465] , [ 1214798400000 , 5.4255846656171] , [ 1217476800000 , 5.3738499417204] , [ 1220155200000 , 5.1815627753979] , [ 1222747200000 , 5.0305983235349] , [ 1225425600000 , 4.6823058607165] , [ 1228021200000 , 4.5941481589093] , [ 1230699600000 , 5.4669598474574] , [ 1233378000000 , 5.1249037357] , [ 1235797200000 , 4.3504421250742] , [ 1238472000000 , 4.6260881026002] , [ 1241064000000 , 5.0140402458945] , [ 1243742400000 , 4.7458462454773] , [ 1246334400000 , 6.0437019654564] , [ 1249012800000 , 6.4595216249754] , [ 1251691200000 , 6.6420468254156] , [ 1254283200000 , 5.8927271960913] , [ 1256961600000 , 5.4712108838002] , [ 1259557200000 , 6.1220254207747] , [ 1262235600000 , 5.5385935169255] , [ 1264914000000 , 5.7383377612639] , [ 1267333200000 , 6.1715976730415] , [ 1270008000000 , 4.0102262681174] , [ 1272600000000 , 3.769389679692] , [ 1275278400000 , 3.5301571031152] , [ 1277870400000 , 2.7660252652526] , [ 1280548800000 , 3.1409983385775] , [ 1283227200000 , 3.0528024863055] , [ 1285819200000 , 4.3126123157971] , [ 1288497600000 , 4.594654041683] , [ 1291093200000 , 4.5424126126793] , [ 1293771600000 , 4.7790043987302] , [ 1296450000000 , 7.4969154058289] , [ 1298869200000 , 7.9424751557821] , [ 1301544000000 , 7.1560736250547] , [ 1304136000000 , 7.9478117337855] , [ 1306814400000 , 7.4109214848895] , [ 1309406400000 , 7.5966457641101] , [ 1312084800000 , 7.165754444071] , [ 1314763200000 , 5.4816702524302] , [ 1317355200000 , 4.9893656089584] , [ 1320033600000 , 4.498385105327] , [ 1322629200000 , 4.6776090358151] , [ 1325307600000 , 8.1350814368063] , [ 1327986000000 , 8.0732769990652] , [ 1330491600000 , 8.5602340387277] , [ 1333166400000 , 8.5387619987197] , [ 1335758400000 , 8.5984656985168]]
-  } , 
-
-  { 
-    "key" : "Information Technology" , 
-    "values" : [ [ 1025409600000 , 9.3433263069351] , [ 1028088000000 , 8.4583069475546] , [ 1030766400000 , 8.0342398154196] , [ 1033358400000 , 8.1538966876572] , [ 1036040400000 , 10.743604786849] , [ 1038632400000 , 12.349366155851] , [ 1041310800000 , 10.742682503899] , [ 1043989200000 , 11.360983869935] , [ 1046408400000 , 11.441336039535] , [ 1049086800000 , 10.897508791837] , [ 1051675200000 , 11.469101547709] , [ 1054353600000 , 12.086311476742] , [ 1056945600000 , 8.0697180773504] , [ 1059624000000 , 8.2004392233445] , [ 1062302400000 , 8.4566434900643] , [ 1064894400000 , 7.9565760979059] , [ 1067576400000 , 9.3764619255827] , [ 1070168400000 , 9.0747664160538] , [ 1072846800000 , 10.508939004673] , [ 1075525200000 , 10.69936754483] , [ 1078030800000 , 10.681562399145] , [ 1080709200000 , 13.184786109406] , [ 1083297600000 , 12.668213052351] , [ 1085976000000 , 13.430509403986] , [ 1088568000000 , 12.393086349213] , [ 1091246400000 , 11.942374044842] , [ 1093924800000 , 12.062227685742] , [ 1096516800000 , 11.969974363623] , [ 1099195200000 , 12.14374574055] , [ 1101790800000 , 12.69422821995] , [ 1104469200000 , 9.1235211044692] , [ 1107147600000 , 8.758211757584] , [ 1109566800000 , 8.8072309258443] , [ 1112245200000 , 11.687595946835] , [ 1114833600000 , 11.079723082664] , [ 1117512000000 , 12.049712896076] , [ 1120104000000 , 10.725319428684] , [ 1122782400000 , 10.844849996286] , [ 1125460800000 , 10.833535488461] , [ 1128052800000 , 17.180932407865] , [ 1130734800000 , 15.894764896516] , [ 1133326800000 , 16.412751299498] , [ 1136005200000 , 12.573569093402] , [ 1138683600000 , 13.242301508051] , [ 1141102800000 , 12.863536342041] , [ 1143781200000 , 21.034044171629] , [ 1146369600000 , 21.419084618802] , [ 1149048000000 , 21.142678863692] , [ 1151640000000 , 26.56848967753] , [ 1154318400000 , 24.839144939906] , [ 1156996800000 , 25.456187462166] , [ 1159588800000 , 26.350164502825] , [ 1162270800000 , 26.478333205189] , [ 1164862800000 , 26.425979547846] , [ 1167541200000 , 28.191461582256] , [ 1170219600000 , 28.930307448808] , [ 1172638800000 , 29.521413891117] , [ 1175313600000 , 28.188285966466] , [ 1177905600000 , 27.704619625831] , [ 1180584000000 , 27.49086242483] , [ 1183176000000 , 28.770679721286] , [ 1185854400000 , 29.06048067145] , [ 1188532800000 , 28.240998844973] , [ 1191124800000 , 33.004893194128] , [ 1193803200000 , 34.075180359928] , [ 1196398800000 , 32.548560664834] , [ 1199077200000 , 30.629727432729] , [ 1201755600000 , 28.642858788159] , [ 1204261200000 , 27.973575227843] , [ 1206936000000 , 27.393351882726] , [ 1209528000000 , 28.476095288522] , [ 1212206400000 , 29.29667866426] , [ 1214798400000 , 29.222333802896] , [ 1217476800000 , 28.092966093842] , [ 1220155200000 , 28.107159262922] , [ 1222747200000 , 25.482974832099] , [ 1225425600000 , 21.208115993834] , [ 1228021200000 , 20.295043095268] , [ 1230699600000 , 15.925754618402] , [ 1233378000000 , 17.162864628346] , [ 1235797200000 , 17.084345773174] , [ 1238472000000 , 22.24600710228] , [ 1241064000000 , 24.530543998508] , [ 1243742400000 , 25.084184918241] , [ 1246334400000 , 16.606166527359] , [ 1249012800000 , 17.239620011628] , [ 1251691200000 , 17.336739127379] , [ 1254283200000 , 25.478492475754] , [ 1256961600000 , 23.017152085244] , [ 1259557200000 , 25.617745423684] , [ 1262235600000 , 24.061133998641] , [ 1264914000000 , 23.223933318646] , [ 1267333200000 , 24.425887263936] , [ 1270008000000 , 35.501471156693] , [ 1272600000000 , 33.775013878675] , [ 1275278400000 , 30.417993630285] , [ 1277870400000 , 30.023598978467] , [ 1280548800000 , 33.327519522436] , [ 1283227200000 , 31.963388450372] , [ 1285819200000 , 30.49896723209] , [ 1288497600000 , 32.403696817913] , [ 1291093200000 , 31.47736071922] , [ 1293771600000 , 31.53259666241] , [ 1296450000000 , 41.760282761548] , [ 1298869200000 , 45.605771243237] , [ 1301544000000 , 39.986557966215] , [ 1304136000000 , 43.84633051005] , [ 1306814400000 , 39.857316881858] , [ 1309406400000 , 37.675127768207] , [ 1312084800000 , 35.775077970313] , [ 1314763200000 , 48.631009702578] , [ 1317355200000 , 42.830831754505] , [ 1320033600000 , 35.611502589362] , [ 1322629200000 , 35.320136981738] , [ 1325307600000 , 31.564136901516] , [ 1327986000000 , 32.074407502433] , [ 1330491600000 , 35.053013769977] , [ 1333166400000 , 33.873085184128] , [ 1335758400000 , 32.321039427046]]
-  } , 
-
-  {
-    "key" : "Materials" , 
-    "values" : [ [ 1025409600000 , 5.1162447683392] , [ 1028088000000 , 4.2022848306513] , [ 1030766400000 , 4.3543715758736] , [ 1033358400000 , 5.4641223667245] , [ 1036040400000 , 6.0041275884577] , [ 1038632400000 , 6.6050520064486] , [ 1041310800000 , 5.0154059912793] , [ 1043989200000 , 5.1835708554647] , [ 1046408400000 , 5.1142682006164] , [ 1049086800000 , 5.0271381717695] , [ 1051675200000 , 5.3437782653456] , [ 1054353600000 , 5.2105844515767] , [ 1056945600000 , 6.552565997799] , [ 1059624000000 , 6.9873363581831] , [ 1062302400000 , 7.010986789097] , [ 1064894400000 , 4.4254242025515] , [ 1067576400000 , 4.9613848042174] , [ 1070168400000 , 4.8854920484764] , [ 1072846800000 , 4.0441111794228] , [ 1075525200000 , 4.0219596813179] , [ 1078030800000 , 4.3065749225355] , [ 1080709200000 , 3.9148434915404] , [ 1083297600000 , 3.8659430654512] , [ 1085976000000 , 3.9572824600686] , [ 1088568000000 , 4.7372190641522] , [ 1091246400000 , 4.6871476374455] , [ 1093924800000 , 5.0398702564196] , [ 1096516800000 , 5.5221787544964] , [ 1099195200000 , 5.424646299798] , [ 1101790800000 , 5.9240223067349] , [ 1104469200000 , 5.9936860983601] , [ 1107147600000 , 5.8499523215019] , [ 1109566800000 , 6.4149040329325] , [ 1112245200000 , 6.4547895561969] , [ 1114833600000 , 5.9385382611161] , [ 1117512000000 , 6.0486751030592] , [ 1120104000000 , 5.23108613838] , [ 1122782400000 , 5.5857797121029] , [ 1125460800000 , 5.3454665096987] , [ 1128052800000 , 5.0439154120119] , [ 1130734800000 , 5.054634702913] , [ 1133326800000 , 5.3819451380848] , [ 1136005200000 , 5.2638869269803] , [ 1138683600000 , 5.5806167415681] , [ 1141102800000 , 5.4539047069985] , [ 1143781200000 , 7.6728842432362] , [ 1146369600000 , 7.719946716654] , [ 1149048000000 , 8.0144619912942] , [ 1151640000000 , 7.942223133434] , [ 1154318400000 , 8.3998279827444] , [ 1156996800000 , 8.532324572605] , [ 1159588800000 , 4.7324285199763] , [ 1162270800000 , 4.7402397487697] , [ 1164862800000 , 4.9042069355168] , [ 1167541200000 , 5.9583963430882] , [ 1170219600000 , 6.3693899239171] , [ 1172638800000 , 6.261153903813] , [ 1175313600000 , 5.3443942184584] , [ 1177905600000 , 5.4932111235361] , [ 1180584000000 , 5.5747393101109] , [ 1183176000000 , 5.3833633060013] , [ 1185854400000 , 5.5125898831832] , [ 1188532800000 , 5.8116112661327] , [ 1191124800000 , 4.3962296939996] , [ 1193803200000 , 4.6967663605521] , [ 1196398800000 , 4.7963004350914] , [ 1199077200000 , 4.1817985183351] , [ 1201755600000 , 4.3797643870182] , [ 1204261200000 , 4.6966642197965] , [ 1206936000000 , 4.3609995132565] , [ 1209528000000 , 4.4736290996496] , [ 1212206400000 , 4.3749762738128] , [ 1214798400000 , 3.3274661194507] , [ 1217476800000 , 3.0316184691337] , [ 1220155200000 , 2.5718140204728] , [ 1222747200000 , 2.7034994044603] , [ 1225425600000 , 2.2033786591364] , [ 1228021200000 , 1.9850621240805] , [ 1230699600000 , 0] , [ 1233378000000 , 0] , [ 1235797200000 , 0] , [ 1238472000000 , 0] , [ 1241064000000 , 0] , [ 1243742400000 , 0] , [ 1246334400000 , 0] , [ 1249012800000 , 0] , [ 1251691200000 , 0] , [ 1254283200000 , 0.44495950017788] , [ 1256961600000 , 0.33945469262483] , [ 1259557200000 , 0.38348269455195] , [ 1262235600000 , 0] , [ 1264914000000 , 0] , [ 1267333200000 , 0] , [ 1270008000000 , 0] , [ 1272600000000 , 0] , [ 1275278400000 , 0] , [ 1277870400000 , 0] , [ 1280548800000 , 0] , [ 1283227200000 , 0] , [ 1285819200000 , 0] , [ 1288497600000 , 0] , [ 1291093200000 , 0] , [ 1293771600000 , 0] , [ 1296450000000 , 0.52216435716176] , [ 1298869200000 , 0.59275786698454] , [ 1301544000000 , 0] , [ 1304136000000 , 0] , [ 1306814400000 , 0] , [ 1309406400000 , 0] , [ 1312084800000 , 0] , [ 1314763200000 , 0] , [ 1317355200000 , 0] , [ 1320033600000 , 0] , [ 1322629200000 , 0] , [ 1325307600000 , 0] , [ 1327986000000 , 0] , [ 1330491600000 , 0] , [ 1333166400000 , 0] , [ 1335758400000 , 0]]
-  } , 
-
-  { 
-    "key" : "Telecommunication Services" , 
-    "values" : [ [ 1025409600000 , 1.3503144674343] , [ 1028088000000 , 1.2232741112434] , [ 1030766400000 , 1.3930470790784] , [ 1033358400000 , 1.2631275030593] , [ 1036040400000 , 1.5842699103708] , [ 1038632400000 , 1.9546996043116] , [ 1041310800000 , 0.8504048300986] , [ 1043989200000 , 0.85340686311353] , [ 1046408400000 , 0.843061357391] , [ 1049086800000 , 2.119846992476] , [ 1051675200000 , 2.5285382124858] , [ 1054353600000 , 2.5056570712835] , [ 1056945600000 , 2.5212789901005] , [ 1059624000000 , 2.6192011642534] , [ 1062302400000 , 2.5382187823805] , [ 1064894400000 , 2.3393223047168] , [ 1067576400000 , 2.491219888698] , [ 1070168400000 , 2.497555874906] , [ 1072846800000 , 1.734018115546] , [ 1075525200000 , 1.9307268299646] , [ 1078030800000 , 2.2261679836799] , [ 1080709200000 , 1.7608893704206] , [ 1083297600000 , 1.6242690616808] , [ 1085976000000 , 1.7161663801295] , [ 1088568000000 , 1.7183554537038] , [ 1091246400000 , 1.7179780759145] , [ 1093924800000 , 1.7314274801784] , [ 1096516800000 , 1.2596883356752] , [ 1099195200000 , 1.381177053009] , [ 1101790800000 , 1.4408819615814] , [ 1104469200000 , 3.4743581836444] , [ 1107147600000 , 3.3603749903192] , [ 1109566800000 , 3.5350883257893] , [ 1112245200000 , 3.0949644237828] , [ 1114833600000 , 3.0796455899995] , [ 1117512000000 , 3.3441247640644] , [ 1120104000000 , 4.0947643978168] , [ 1122782400000 , 4.4072631274052] , [ 1125460800000 , 4.4870979780825] , [ 1128052800000 , 4.8404549457934] , [ 1130734800000 , 4.8293016233697] , [ 1133326800000 , 5.2238093263952] , [ 1136005200000 , 3.382306337815] , [ 1138683600000 , 3.7056975170243] , [ 1141102800000 , 3.7561118692318] , [ 1143781200000 , 2.861913700854] , [ 1146369600000 , 2.9933744103381] , [ 1149048000000 , 2.7127537218463] , [ 1151640000000 , 3.1195497076283] , [ 1154318400000 , 3.4066964004508] , [ 1156996800000 , 3.3754571113569] , [ 1159588800000 , 2.2965579982924] , [ 1162270800000 , 2.4486818633018] , [ 1164862800000 , 2.4002308848517] , [ 1167541200000 , 1.9649579750349] , [ 1170219600000 , 1.9385263638056] , [ 1172638800000 , 1.9128975336387] , [ 1175313600000 , 2.3412869836298] , [ 1177905600000 , 2.4337870351445] , [ 1180584000000 , 2.62179703171] , [ 1183176000000 , 3.2642864957929] , [ 1185854400000 , 3.3200396223709] , [ 1188532800000 , 3.3934212707572] , [ 1191124800000 , 4.2822327088179] , [ 1193803200000 , 4.1474964228541] , [ 1196398800000 , 4.1477082879801] , [ 1199077200000 , 5.2947122916128] , [ 1201755600000 , 5.2919843508028] , [ 1204261200000 , 5.198978305031] , [ 1206936000000 , 3.5603057673513] , [ 1209528000000 , 3.3009087690692] , [ 1212206400000 , 3.1784852603792] , [ 1214798400000 , 4.5889503538868] , [ 1217476800000 , 4.401779617494] , [ 1220155200000 , 4.2208301828278] , [ 1222747200000 , 3.89396671475] , [ 1225425600000 , 3.0423832241354] , [ 1228021200000 , 3.135520611578] , [ 1230699600000 , 1.9631418164089] , [ 1233378000000 , 1.8963543874958] , [ 1235797200000 , 1.8266636017025] , [ 1238472000000 , 0.93136635895188] , [ 1241064000000 , 0.92737801918888] , [ 1243742400000 , 0.97591889805002] , [ 1246334400000 , 2.6841193805515] , [ 1249012800000 , 2.5664341140531] , [ 1251691200000 , 2.3887523699873] , [ 1254283200000 , 1.1737801663681] , [ 1256961600000 , 1.0953582317281] , [ 1259557200000 , 1.2495674976653] , [ 1262235600000 , 0.36607452464754] , [ 1264914000000 , 0.3548719047291] , [ 1267333200000 , 0.36769242398939] , [ 1270008000000 , 0] , [ 1272600000000 , 0] , [ 1275278400000 , 0] , [ 1277870400000 , 0] , [ 1280548800000 , 0] , [ 1283227200000 , 0] , [ 1285819200000 , 0.85450741275337] , [ 1288497600000 , 0.91360317921637] , [ 1291093200000 , 0.89647678692269] , [ 1293771600000 , 0.87800687192639] , [ 1296450000000 , 0] , [ 1298869200000 , 0] , [ 1301544000000 , 0.43668720882994] , [ 1304136000000 , 0.4756523602692] , [ 1306814400000 , 0.46947368328469] , [ 1309406400000 , 0.45138896152316] , [ 1312084800000 , 0.43828726648117] , [ 1314763200000 , 2.0820861395316] , [ 1317355200000 , 0.9364411075395] , [ 1320033600000 , 0.60583907839773] , [ 1322629200000 , 0.61096950747437] , [ 1325307600000 , 0] , [ 1327986000000 , 0] , [ 1330491600000 , 0] , [ 1333166400000 , 0] , [ 1335758400000 , 0]]
-  } , 
-
-  { 
-    "key" : "Utilities" , 
-    "values" : [ [ 1025409600000 , 0] , [ 1028088000000 , 0] , [ 1030766400000 , 0] , [ 1033358400000 , 0.17112421375328] , [ 1036040400000 , 0.16363405009242] , [ 1038632400000 , 0.21933570171591] , [ 1041310800000 , 0] , [ 1043989200000 , 0] , [ 1046408400000 , 0] , [ 1049086800000 , 0] , [ 1051675200000 , 0] , [ 1054353600000 , 0] , [ 1056945600000 , 0] , [ 1059624000000 , 0] , [ 1062302400000 , 0] , [ 1064894400000 , 0] , [ 1067576400000 , 0] , [ 1070168400000 , 0] , [ 1072846800000 , 0] , [ 1075525200000 , 0] , [ 1078030800000 , 0] , [ 1080709200000 , 0] , [ 1083297600000 , 0] , [ 1085976000000 , 0] , [ 1088568000000 , 0] , [ 1091246400000 , 0] , [ 1093924800000 , 0] , [ 1096516800000 , 0] , [ 1099195200000 , 0] , [ 1101790800000 , 0] , [ 1104469200000 , 0] , [ 1107147600000 , 0] , [ 1109566800000 , 0] , [ 1112245200000 , 0] , [ 1114833600000 , 0] , [ 1117512000000 , 0] , [ 1120104000000 , 0] , [ 1122782400000 , 0] , [ 1125460800000 , 0] , [ 1128052800000 , 0] , [ 1130734800000 , 0] , [ 1133326800000 , 0] , [ 1136005200000 , 0] , [ 1138683600000 , 0] , [ 1141102800000 , 0] , [ 1143781200000 , 0] , [ 1146369600000 , 0] , [ 1149048000000 , 0] , [ 1151640000000 , 0] , [ 1154318400000 , 0] , [ 1156996800000 , 0] , [ 1159588800000 , 0] , [ 1162270800000 , 0] , [ 1164862800000 , 0] , [ 1167541200000 , 0] , [ 1170219600000 , 0] , [ 1172638800000 , 0] , [ 1175313600000 , 0] , [ 1177905600000 , 0] , [ 1180584000000 , 0] , [ 1183176000000 , 0] , [ 1185854400000 , 0] , [ 1188532800000 , 0] , [ 1191124800000 , 0] , [ 1193803200000 , 0] , [ 1196398800000 , 0] , [ 1199077200000 , 0] , [ 1201755600000 , 0] , [ 1204261200000 , 0] , [ 1206936000000 , 0] , [ 1209528000000 , 0] , [ 1212206400000 , 0] , [ 1214798400000 , 0] , [ 1217476800000 , 0] , [ 1220155200000 , 0] , [ 1222747200000 , 0] , [ 1225425600000 , 0] , [ 1228021200000 , 0] , [ 1230699600000 , 0] , [ 1233378000000 , 0] , [ 1235797200000 , 0] , [ 1238472000000 , 0] , [ 1241064000000 , 0] , [ 1243742400000 , 0] , [ 1246334400000 , 0] , [ 1249012800000 , 0] , [ 1251691200000 , 0] , [ 1254283200000 , 0] , [ 1256961600000 , 0] , [ 1259557200000 , 0] , [ 1262235600000 , 0] , [ 1264914000000 , 0] , [ 1267333200000 , 0] , [ 1270008000000 , 0] , [ 1272600000000 , 0] , [ 1275278400000 , 0] , [ 1277870400000 , 0] , [ 1280548800000 , 0] , [ 1283227200000 , 0] , [ 1285819200000 , 0] , [ 1288497600000 , 0] , [ 1291093200000 , 0] , [ 1293771600000 , 0] , [ 1296450000000 , 0] , [ 1298869200000 , 0] , [ 1301544000000 , 0] , [ 1304136000000 , 0] , [ 1306814400000 , 0] , [ 1309406400000 , 0] , [ 1312084800000 , 0] , [ 1314763200000 , 0] , [ 1317355200000 , 0] , [ 1320033600000 , 0] , [ 1322629200000 , 0] , [ 1325307600000 , 0] , [ 1327986000000 , 0] , [ 1330491600000 , 0] , [ 1333166400000 , 0] , [ 1335758400000 , 0]]
-  } , 
-
-  { 
-    "key" : "Not Available" , 
-    "values" : [ [ 1025409600000 , 0] , [ 1028088000000 , 0] , [ 1030766400000 , 0] , [ 1033358400000 , 0] , [ 1036040400000 , 0] , [ 1038632400000 , 0] , [ 1041310800000 , 0] , [ 1043989200000 , 0] , [ 1046408400000 , 0] , [ 1049086800000 , 0] , [ 1051675200000 , 0] , [ 1054353600000 , 0] , [ 1056945600000 , 0] , [ 1059624000000 , 0] , [ 1062302400000 , 0] , [ 1064894400000 , 0] , [ 1067576400000 , 0] , [ 1070168400000 , 0] , [ 1072846800000 , 0] , [ 1075525200000 , 0] , [ 1078030800000 , 0] , [ 1080709200000 , 0] , [ 1083297600000 , 0] , [ 1085976000000 , 0] , [ 1088568000000 , 0] , [ 1091246400000 , 0] , [ 1093924800000 , 0] , [ 1096516800000 , 0] , [ 1099195200000 , 0] , [ 1101790800000 , 0] , [ 1104469200000 , 0] , [ 1107147600000 , 0] , [ 1109566800000 , 0] , [ 1112245200000 , 0] , [ 1114833600000 , 0] , [ 1117512000000 , 0] , [ 1120104000000 , 0] , [ 1122782400000 , 0] , [ 1125460800000 , 0] , [ 1128052800000 , 0] , [ 1130734800000 , 0] , [ 1133326800000 , 0] , [ 1136005200000 , 0] , [ 1138683600000 , 0] , [ 1141102800000 , 0] , [ 1143781200000 , 0] , [ 1146369600000 , 0] , [ 1149048000000 , 0] , [ 1151640000000 , 0] , [ 1154318400000 , 0] , [ 1156996800000 , 0] , [ 1159588800000 , 0] , [ 1162270800000 , 0] , [ 1164862800000 , 0] , [ 1167541200000 , 0.050172677311163] , [ 1170219600000 , 0.05010459739003] , [ 1172638800000 , 0.050681828777765] , [ 1175313600000 , 0] , [ 1177905600000 , 0] , [ 1180584000000 , 0] , [ 1183176000000 , 0] , [ 1185854400000 , 0] , [ 1188532800000 , 0] , [ 1191124800000 , 0] , [ 1193803200000 , 0] , [ 1196398800000 , 0] , [ 1199077200000 , 0] , [ 1201755600000 , 0] , [ 1204261200000 , 0] , [ 1206936000000 , 0.18678212114368] , [ 1209528000000 , 0.17442959307088] , [ 1212206400000 , 0.16359572139598] , [ 1214798400000 , 0.15837381236842] , [ 1217476800000 , 0.15577933366753] , [ 1220155200000 , 0.14891802647046] , [ 1222747200000 , 0.1770757948046] , [ 1225425600000 , 0.18278762496453] , [ 1228021200000 , 0.19687349078343] , [ 1230699600000 , 0.23551013647077] , [ 1233378000000 , 0.25042391829233] , [ 1235797200000 , 0.26937282915476] , [ 1238472000000 , 0.23271248456665] , [ 1241064000000 , 0.20745841982123] , [ 1243742400000 , 0.2011712690448] , [ 1246334400000 , 0.21168244254666] , [ 1249012800000 , 0.20333696030696] , [ 1251691200000 , 0.19775078467844] , [ 1254283200000 , 0] , [ 1256961600000 , 0] , [ 1259557200000 , 0] , [ 1262235600000 , 0] , [ 1264914000000 , 0] , [ 1267333200000 , 0] , [ 1270008000000 , 0] , [ 1272600000000 , 0] , [ 1275278400000 , 0] , [ 1277870400000 , 0] , [ 1280548800000 , 0] , [ 1283227200000 , 0] , [ 1285819200000 , 0] , [ 1288497600000 , 0] , [ 1291093200000 , 0] , [ 1293771600000 , 0] , [ 1296450000000 , 0] , [ 1298869200000 , 0] , [ 1301544000000 , 0] , [ 1304136000000 , 0] , [ 1306814400000 , 0] , [ 1309406400000 , 0] , [ 1312084800000 , 0] , [ 1314763200000 , 1.3103821402664] , [ 1317355200000 , 1.0444700235618] , [ 1320033600000 , 0.81900499903221] , [ 1322629200000 , 0.81445352296526] , [ 1325307600000 , 0.27519092496306] , [ 1327986000000 , 0.28953340933973] , [ 1330491600000 , 0.31305944539777] , [ 1333166400000 , 0.28710464914403] , [ 1335758400000 , 0.27229889783707]]
-  }
-].map(function(series) {
-  series.values = series.values.map(function(d) {
-    return { x: d[0], y: d[1] }
-  });
-  return series;
-});
-
-
-
-
-nv.addGraph(function() {
-
-
-  var width = function() { return parseInt(d3.select('#chart').style('width')) },
-      height = function() { return parseInt(d3.select('#chart').style('height')) };
-      //xTickFormat = d3.format(',r'),
-      xTickFormat = function(d) { return d3.time.format('%x')(new Date(d)) },
-      yTickFormat = d3.format(',.2f');
-
-  var chart = nv.models.stackedAreaWithLegend()
-              .width(width)
-              .height(height)
-              .clipEdge(true)
-              //.y(function(d) { return d.ytest }) //not ready yet for custom accessor, almost there
-
-  chart.xAxis
-      .tickFormat(xTickFormat);
-
-  chart.yAxis
-      .tickFormat(yTickFormat);
-
-
-
-  var svg = d3.select('#chart svg')
-    .attr('width', width())
-    .attr('height', height())
-    .datum(histcatexplong)
-    //.datum(data)
-
-  svg.transition().duration(500).call(chart);
-
-
-  chart.dispatch.on('tooltipShow', function(e) {
-      var offsetElement = document.getElementById("chart"),
-              left = e.pos[0] + offsetElement.offsetLeft,
-              top = e.pos[1] + offsetElement.offsetTop,
-              formatterY = chart.stacked.offset() == 'expand' ? d3.format(',.2%') : d3.format(',.2f'); //TODO: stacked format should be set by caller
-        //formatterX = function(d) { return d };
-
-    var content = '<h3>' + e.series.key + '</h3>' +
-                  '<p>' +
-                  formatterY(chart.y()(e.point)) + ' on ' + xTickFormat(chart.x()(e.point)) +
-                  '</p>';
-
-    nv.tooltip.show([left, top], content);
-  });
-
-  chart.dispatch.on('tooltipHide', function(e) {
-    nv.tooltip.cleanup();
-  });
-
-
-
-  window.onresize = function() {
-    d3.select('#chart svg')
-      .attr('width', width())
-      .attr('height', height())
-      .call(chart);
-  };
-
-
-  return chart;
-});
-
-
-
-/* Inspired by Lee Byron's test data generator. */
-function stream_layers(n, m, o) {
-  if (arguments.length < 3) o = 0;
-  function bump(a) {
-    var x = 1 / (.1 + Math.random()),
-        y = 2 * Math.random() - .5,
-        z = 10 / (.1 + Math.random());
-    for (var i = 0; i < m; i++) {
-      var w = (i / m - y) * z;
-      a[i] += x * Math.exp(-w * w);
-    }
-  }
-  return d3.range(n).map(function() {
-      var a = [], i;
-      for (i = 0; i < m; i++) a[i] = o + o * Math.random();
-      for (i = 0; i < 5; i++) bump(a);
-      return a.map(stream_index);
-    });
-}
-
-/* Another layer generator using gamma distributions. */
-function stream_waves(n, m) {
-  return d3.range(n).map(function(i) {
-    return d3.range(m).map(function(j) {
-        var x = 20 * j / m - i / 3;
-        return 2 * x * Math.exp(-.5 * x);
-      }).map(stream_index);
-    });
-}
-
-function stream_index(d, i) {
-  //return {x: i, ytest: Math.max(0, d)}; //Minor error with custom y getter/setter and stacked, need to fix
-  return {x: i, y: Math.max(0, d)};
-}
-
-
-</script>
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/stackedAreaWithLegend.js b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/stackedAreaWithLegend.js
deleted file mode 100755
index a7b98137..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/deprecated/stackedAreaWithLegend.js
+++ /dev/null
@@ -1,297 +0,0 @@
-
-nv.models.stackedAreaWithLegend = function() {
-  var margin = {top: 30, right: 20, bottom: 50, left: 60},
-      getWidth = function() { return 960 },
-      getHeight = function() { return 500 },
-      color = d3.scale.category20().range(),
-      showControls = true,
-      showLegend = true;
-
-  var x = d3.scale.linear(),
-      y = d3.scale.linear(),
-      getX = function(d) { return d.x },
-      getY = function(d) { return d.y },
-      xAxis = nv.models.axis().scale(x).orient('bottom'),
-      yAxis = nv.models.axis().scale(y).orient('left'),
-      legend = nv.models.legend().height(30),
-      controls = nv.models.legend().height(30),
-      stacked = nv.models.stackedArea(),
-      dispatch = d3.dispatch('tooltipShow', 'tooltipHide');
-
-  //TODO: let user select default
-  var controlsData = [
-    { key: 'Stacked' },
-    { key: 'Stream', disabled: true },
-    { key: 'Expanded', disabled: true }
-  ];
-
-
-  function chart(selection) {
-    selection.each(function(data) {
-      var width = getWidth(),
-          height = getHeight(),
-          availableWidth = width - margin.left - margin.right,
-          availableHeight = height - margin.top - margin.bottom;
-
-      var seriesData = data.filter(function(d) { return !d.disabled })
-            .reduce(function(prev, curr, index) {  //sum up all the y's
-                curr.values.forEach(function(d,i) {
-                  if (!index) prev[i] = {x: getX(d,i), y:0};
-                  prev[i].y += getY(d,i);
-                });
-                return prev;
-              }, []);
-
-
-      x   .domain(d3.extent(d3.merge(seriesData), function(d) { return d.x } ))
-          .range([0, availableWidth]);
-
-      y   .domain(stacked.offset() == 'zero' ?
-            [0, d3.max(seriesData, function(d) { return d.y } )] :
-            [0, 1]  // 0 - 100%
-          )
-          .range([availableHeight, 0]);
-
-      stacked
-        .width(availableWidth)
-        .height(availableHeight)
-        //.color(color)
-        .color(data.map(function(d,i) {
-          return d.color || color[i % 20];
-        }).filter(function(d,i) { return !data[i].disabled }))
-
-
-      var wrap = d3.select(this).selectAll('g.wrap.stackedAreaWithLegend').data([data]);
-      var gEnter = wrap.enter().append('g').attr('class', 'wrap nvd3 stackedAreaWithLegend').append('g');
-
-      gEnter.append('g').attr('class', 'x axis');
-      gEnter.append('g').attr('class', 'y axis');
-      gEnter.append('g').attr('class', 'stackedWrap');
-      gEnter.append('g').attr('class', 'legendWrap');
-      gEnter.append('g').attr('class', 'controlsWrap');
-
-
-      var g = wrap.select('g');
-
-
-      if (showLegend) {
-        //TODO: margins should be adjusted based on what components are used: axes, axis labels, legend
-        margin.top = legend.height();
-
-        legend
-          .width(width/2 - margin.right)
-          .color(color);
-
-        g.select('.legendWrap')
-            .datum(data)
-            .attr('transform', 'translate(' + (width/2 - margin.left) + ',' + (-margin.top) +')')
-            .call(legend);
-      }
-
-
-      if (showControls) {
-        controls.width(280).color(['#444', '#444', '#444']);
-        g.select('.controlsWrap')
-            .datum(controlsData)
-            .attr('transform', 'translate(0,' + (-margin.top) +')')
-            .call(controls);
-      }
-
-
-      g.attr('transform', 'translate(' + margin.left + ',' + margin.top + ')');
-
-
-      var stackedWrap = g.select('.stackedWrap')
-          .datum(data);
-      d3.transition(stackedWrap).call(stacked);
-
-
-      xAxis
-        .domain(x.domain())
-        .range(x.range())
-        .ticks( width / 100 )
-        .tickSize(-availableHeight, 0);
-
-      g.select('.x.axis')
-          .attr('transform', 'translate(0,' + availableHeight + ')');
-      d3.transition(g.select('.x.axis'))
-          .call(xAxis);
-
-      yAxis
-        .domain(y.domain())
-        .range(y.range())
-        .ticks(stacked.offset() == 'wiggle' ? 0 : height / 36)
-        .tickSize(-availableWidth, 0)
-        .tickFormat(stacked.offset() == 'zero' ? d3.format(',.2f') : d3.format('%')); //TODO: stacked format should be set by caller
-
-      d3.transition(g.select('.y.axis'))
-          .call(yAxis);
-
-
-
-      //TODO: FIX Logic error, screws up when series are disabled by clicking legend, then series are desiabled by clicking the area
-      stacked.dispatch.on('areaClick.toggle', function(e) {
-        if (data.filter(function(d) { return !d.disabled }).length === 1)
-          data = data.map(function(d) { 
-            if (d.disabled)
-              d.values.map(function(p) { p.y = p._y || p.y; return p }); // ....
-
-            d.disabled = false; 
-
-            return d 
-          });
-        else
-          data = data.map(function(d,i) { 
-            if (!d.disabled && i !== e.seriesIndex)
-              d.values.map(function(p) { p._y = p.y; p.y = 0; return p }); //TODO: need to use value from getY, not always d.y
-
-            if (d.disabled && i === e.seriesIndex)
-              d.values.map(function(p) { p.y = p._y || p.y; return p }); // ....
-
-            d.disabled = (i != e.seriesIndex); 
-
-            return d 
-          });
-
-        selection.transition().call(chart);
-      });
-      legend.dispatch.on('legendClick', function(d,i) { 
-        d.disabled = !d.disabled;
-
-        if (d.disabled)
-          d.values.map(function(p) { p._y = p.y; p.y = 0; return p }); //TODO: need to use value from getY, not always d.y
-        else
-          d.values.map(function(p) { p.y = p._y; return p }); // ....
-
-        if (!data.filter(function(d) { return !d.disabled }).length) {
-          data.map(function(d) {
-            d.disabled = false;
-            d.values.map(function(p) { p.y = p._y; return p }); // ....
-            return d;
-          });
-        }
-
-        selection.transition().call(chart);
-      });
-
-      controls.dispatch.on('legendClick', function(d,i) { 
-        if (!d.disabled) return;
-
-        controlsData = controlsData.map(function(s) {
-          s.disabled = true;
-          return s;
-        });
-        d.disabled = false;
-
-        switch (d.key) {
-          case 'Stacked':
-            stacked.style('stack');
-            break;
-          case 'Stream':
-            stacked.style('stream');
-            break;
-          case 'Expanded':
-            stacked.style('expand');
-            break;
-        }
-
-        selection.transition().call(chart);
-      });
-
-
-      /*
-      legend.dispatch.on('legendMouseover', function(d, i) {
-        d.hover = true;
-        selection.transition().call(chart)
-      });
-
-      legend.dispatch.on('legendMouseout', function(d, i) {
-        d.hover = false;
-        selection.transition().call(chart)
-      });
-      */
-
-      stacked.dispatch.on('tooltipShow', function(e) {
-        //disable tooltips when value ~= 0
-        //// TODO: consider removing points from voronoi that have 0 value instead of this hack
-        if (!Math.round(getY(e.point) * 100)) {  // 100 will not be good for very small numbers... will have to think about making this valu dynamic, based on data range
-          setTimeout(function() { d3.selectAll('.point.hover').classed('hover', false) }, 0);
-          return false;
-        }
-
-        e.pos = [e.pos[0] + margin.left, e.pos[1] + margin.top],
-        dispatch.tooltipShow(e);
-      });
-
-      stacked.dispatch.on('tooltipHide', function(e) {
-        dispatch.tooltipHide(e);
-      });
-    });
-
-
-
-    /*
-    // If the legend changed the margin's height, need to recalc positions... should think of a better way to prevent duplicate work
-    if (margin.top != legend.height())
-      chart(selection);
-     */
-
-
-    return chart;
-  }
-
-
-  chart.dispatch = dispatch;
-  chart.stacked = stacked;
-  chart.xAxis = xAxis;
-  chart.yAxis = yAxis;
-
-  d3.rebind(chart, stacked, 'interactive', 'offset', 'order', 'style', 'clipEdge', 'size', 'forceX', 'forceY', 'forceSize');
-
-  chart.x = function(_) {
-    if (!arguments.length) return getX;
-    getX = d3.functor(_); //not used locally, so could jsut be a rebind
-    stacked.x(getX);
-    return chart;
-  };
-
-  chart.y = function(_) {
-    if (!arguments.length) return getY;
-    getY = d3.functor(_);
-    stacked.y(getY);
-    return chart;
-  };
-
-  chart.margin = function(_) {
-    if (!arguments.length) return margin;
-    margin = _;
-    return chart;
-  };
-
-  chart.width = function(_) {
-    if (!arguments.length) return getWidth;
-    getWidth = d3.functor(_);
-    return chart;
-  };
-
-  chart.height = function(_) {
-    if (!arguments.length) return getHeight;
-    getHeight = d3.functor(_);
-    return chart;
-  };
-
-  chart.showControls = function(_) {
-    if (!arguments.length) return showControls;
-    showControls = _;
-    return chart;
-  };
-
-  chart.showLegend = function(_) {
-    if (!arguments.length) return showLegend;
-    showLegend = _;
-    return chart;
-  };
-
-
-  return chart;
-}
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/bullet.html b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/bullet.html
deleted file mode 100755
index f18bc8f1..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/bullet.html
+++ /dev/null
@@ -1,97 +0,0 @@
-<!DOCTYPE html>
-<meta charset="utf-8">
-<link href="../src/nv.d3.css" rel="stylesheet" type="text/css">
-<style>
-
-body {
-  overflow-y:scroll;
-}
-
-</style>
-<body>
-
-<br> <br> <br> <br> <br>
-
-<div class="gallery" id="chart"></div>
-
-<script src="../lib/d3.v3.js"></script>
-<script src="../nv.d3.js"></script>
-<script src="../src/utils.js"></script>
-<script src="../src/models/bullet.js"></script>
-<script>
-
-var width = 960,
-    height = 55,
-    margin = {top: 5, right: 40, bottom: 20, left: 120};
-
-var chart = nv.models.bullet()
-    .width(width - margin.right - margin.left)
-    .height(height - margin.top - margin.bottom);
-
-
-  data = [
-  {"title":"Revenue","subtitle":"US$, in thousands","ranges":[-150,-225,-300],"measures":[-220],"markers":[-250]}
-  /*
-  //TODO: fix the tooltip offset if multiple
-  ,
-  {"title":"Profit","subtitle":"%","ranges":[20,25,30],"measures":[21],"markers":[26]},
-  {"title":"Order Size","subtitle":"US$, average","ranges":[350,500,600],"measures":[100],"markers":[550]},
-  {"title":"New Customers","subtitle":"count","ranges":[1400,2000,2500],"measures":[1000],"markers":[1000]},
-  {"title":"Satisfaction","subtitle":"out of 5","ranges":[3.5,4.25,5],"measures":[3.2,4.7],"markers":[4.4]}
-  */
-];
-
-  //TODO: to be consistent with other models, should be appending a g to an already made svg, not creating the svg element
-  var vis = d3.select("#chart").selectAll("svg")
-      .data(data)
-    .enter().append("svg")
-      .attr("class", "bullet nvd3")
-      .attr("width", width)
-      .attr("height", height)
-    //.append("g")
-      //.attr("transform", "translate(" + margin.left + "," + margin.top + ")")
-
-  vis
-      .transition()
-      .duration(1000)
-      .call(chart);
-
-
-  window.transition = function() {
-    vis.datum(randomize);
-
-    vis
-      .transition()
-      .duration(1000)
-      .call(chart);
-  };
-
-
-
-
-
-
-
-
-function randomize(d) {
-  if (!d.randomizer) d.randomizer = randomizer(d);
-  d.ranges = d.ranges.map(d.randomizer);
-  d.markers = d.markers.map(d.randomizer);
-  d.measures = d.measures.map(d.randomizer);
-  return d;
-}
-
-function randomizer(d) {
-  var k = d3.max(d.ranges) * .2;
-  return function(d) {
-    return Math.max(0, d + k * (Math.random() - .5));
-  };
-}
-
-
-
-
-d3.select('body').on('click', window.transition);
-
-
-</script>
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/bulletChart.html b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/bulletChart.html
deleted file mode 100755
index 7c5cd984..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/bulletChart.html
+++ /dev/null
@@ -1,116 +0,0 @@
-<!DOCTYPE html>
-<meta charset="utf-8">
-<link href="../src/nv.d3.css" rel="stylesheet" type="text/css">
-<style>
-
-body {
-  overflow-y:scroll;
-  font-family: Arial;
-}
-
-</style>
-<body>
-
-<br> <br> <br> <br> <br>
-
-Normal Bullet Chart 
-<div class="gallery with-transitions" id="chart"></div>
-
-Bullet Chart with Custom Labels
-<div class='gallery with-transitions' id='chart2'></div>
-
-<script src="../lib/d3.v3.js"></script>
-<script src="../nv.d3.js"></script>
-<script src="../src/utils.js"></script>
-<script src="../src/models/bullet.js"></script>
-<script src="../src/models/bulletChart.js"></script>
-<script>
-
-var width = 960,
-    height = 80,
-    margin = {top: 5, right: 40, bottom: 20, left: 120};
-
-var chart = nv.models.bulletChart()
-    .width(width - margin.right - margin.left)
-    .height(height - margin.top - margin.bottom);
-
-var chart2 = nv.models.bulletChart()
-    .width(width - margin.right - margin.left)
-    .height(height - margin.top - margin.bottom);
-
-  data = [
-  {"title":"Revenue","subtitle":"US$, in thousands","ranges":[150,225,300],"measures":[220],"markers":[250]}
-  /*
-  //TODO: fix the tooltip offset if multiple
-  ,
-  {"title":"Profit","subtitle":"%","ranges":[20,25,30],"measures":[21],"markers":[26]},
-  {"title":"Order Size","subtitle":"US$, average","ranges":[350,500,600],"measures":[100],"markers":[550]},
-  {"title":"New Customers","subtitle":"count","ranges":[1400,2000,2500],"measures":[1000],"markers":[1000]},
-  {"title":"Satisfaction","subtitle":"out of 5","ranges":[3.5,4.25,5],"measures":[3.2,4.7],"markers":[4.4]}
-  */
-];
-
-dataWithLabels = [
-  {"title":"Revenue","subtitle":"US$, in thousands","ranges":[150,225,300],"measures":[220],"markers":[250],
-  "rangeLabels":['Maximum Inventory','Average Inventory','Minimum Inventory'], "measureLabels":['Current Inventory'], "markerLabels":['Target Inventory'] }
-];
-
-  //TODO: to be consistent with other models, should be appending a g to an already made svg, not creating the svg element
-  var vis = d3.select("#chart").selectAll("svg")
-      .data(data)
-    .enter().append("svg")
-      .attr("class", "bullet nvd3")
-      .attr("width", width)
-      .attr("height", height);
-
-  vis
-      .transition()
-      .duration(1000)
-      .call(chart);
-
-
-  var vis2 = d3.select("#chart2").selectAll("svg")
-    .data(dataWithLabels)
-    .enter().append('svg')
-      .attr('class',"bullet nvd3")
-      .attr("width",width)
-      .attr("height",height);
-
-      vis2.transition().duration(1000).call(chart2);
-
-
-  window.transition = function() {
-    vis.datum(randomize)
-      .transition()
-      .duration(1000)
-      .call(chart);
-
-    vis2.datum(randomize)
-      .transition()
-      .duration(1000)
-      .call(chart2);
-  };
-
-
-function randomize(d) {
-  if (!d.randomizer) d.randomizer = randomizer(d);
-  d.ranges = d.ranges.map(d.randomizer);
-  d.markers = d.markers.map(d.randomizer);
-  d.measures = d.measures.map(d.randomizer);
-  return d;
-}
-
-function randomizer(d) {
-  var k = d3.max(d.ranges) * .2;
-  return function(d) {
-    return Math.max(0, d + k * (Math.random() - .5));
-  };
-}
-
-
-
-
-d3.select('body').on('click', window.transition);
-
-
-</script>
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/crossfilter.html b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/crossfilter.html
deleted file mode 100755
index ce228074..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/crossfilter.html
+++ /dev/null
@@ -1,167 +0,0 @@
-<!DOCTYPE html>
-<meta charset="utf-8">
-
-<link href="../src/nv.d3.css" rel="stylesheet" type="text/css">
-
-<style>
-
-body {
-  overflow-y:scroll;
-}
-
-text {
-  font: 12px sans-serif;
-}
-
-svg {
-  display: block;
-}
-
-#chart1 svg {
-  height: 500px;
-  min-width: 100px;
-  min-height: 100px;
-/*
-  margin: 50px;
-  Minimum height and width is a good idea to prevent negative SVG dimensions...
-  For example width should be =< margin.left + margin.right + 1,
-  of course 1 pixel for the entire chart would not be very useful, BUT should not have errors
-*/
-}
-
-</style>
-<body>
-
-  <div id="chart">
-    <svg style="height: 500px;"></svg>
-  </div>
-
-<script src="../lib/d3.v3.js"></script>
-<script src="../lib/crossfilter.js"></script>
-<script src="../nv.d3.js"></script>
-<script src="../src/tooltip.js"></script>
-<script src="../src/utils.js"></script>
-<script src="../src/models/legend.js"></script>
-<script src="../src/models/axis.js"></script>
-<script src="../src/models/scatter.js"></script>
-<script src="../src/models/line.js"></script>
-<script src="../src/models/lineWithFocusChart.js"></script>
-<script src="stream_layers.js"></script>
-<script>
-
-extend = function(destination, source) {
-    for (var property in source) {
-    if (property in destination) { 
-      if ( typeof source[property] === "object" && 
-        typeof destination[property] === "object") {
-          destination[property] = extend(destination[property], source[property]);
-      } else {
-        continue; 
-      } 
-    } else {
-      destination[property] = source[property];
-    };
-    }
-    return destination;
-};
-
-nv.addGraph(function() {
-  var chart = nv.models.lineWithFocusChart();
-
-  chart.xAxis
-      .tickFormat(d3.format(',f'));
-  chart.x2Axis
-      .tickFormat(d3.format(',f'));
-
-  chart.yAxis
-      .tickFormat(d3.format(',.2f'));
-  chart.y2Axis
-      .tickFormat(d3.format(',.2f'));
-
-  var dimension = testCrossfilterData().data; 
-
-   var data = normalizeData(dimension.top(Infinity), 
-        [
-        { 
-          name: 'Stream #1',
-          key: 'stream1'
-        },
-        { 
-          name: 'Stream #2',
-          key: 'stream2'
-        },
-        { 
-          name: 'Stream #3',
-          key: 'stream3'
-        }
-        ], 'x');  
-    
-  d3.select('#chart svg')
-      .datum(data)
-    .transition().duration(500)
-      .call(chart);
-
-  nv.utils.windowResize(chart.update);
-
-  return chart;
-});
-
-function normalizeData(data, series, xAxis)
-  {
-    var sort = crossfilter.quicksort.by(function(d) { return d[xAxis]; });
-    var sorted = sort(data, 0, data.length);
-    
-    var result = [];
-
-    series.forEach(function(serie, index)
-    {
-      result.push({key: serie.name, values: [], color: serie.color});
-    });
-    
-    data.forEach(function(data, dataIndex)
-    {
-      series.forEach(function(serie, serieIndex)
-      {
-        result[serieIndex].values.push({x: data[xAxis],  y: data[serie.key]});
-      });
-    });
-    
-    return result;
-  };
-
-function testCrossfilterData() {
-  var data = crossfilter(testData());
-  
-  try 
-  {
-    data.data = data.dimension(function(d) { return d.y; });
-  } catch (e) 
-  {
-    console.log(e.stack);
-  }
-  
-  return data;
-}
-
-function testData() {
-  
-  var data1 = [];
-  var data2 = [];
-  var data3 = [];
-  
-  stream_layers(3,128,.1).map(function(layer, index) {
-    layer.forEach(function(item, i) {
-    var object = { x: item.x };
-    object['stream' + (index + 1)] = item.y;
-    eval('data' + (index + 1)).push(object);
-  });
-  });
-  
-  var data = extend(data1, data2);
-  var result = extend(data, data3);
-  
-  return result;
-}
-
-
-</script>
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/crossfilterWithDimentions.html b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/crossfilterWithDimentions.html
deleted file mode 100755
index cff2a6be..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/crossfilterWithDimentions.html
+++ /dev/null
@@ -1,180 +0,0 @@
-<!DOCTYPE html>
-<meta charset="utf-8">
-
-<link href="../src/nv.d3.css" rel="stylesheet" type="text/css">
-
-<style>
-
-body {
-  overflow-y:scroll;
-}
-
-text {
-  font: 12px sans-serif;
-}
-
-svg {
-  display: block;
-}
-
-#chart1 svg {
-  height: 500px;
-  min-width: 100px;
-  min-height: 100px;
-/*
-  margin: 50px;
-  Minimum height and width is a good idea to prevent negative SVG dimensions...
-  For example width should be =< margin.left + margin.right + 1,
-  of course 1 pixel for the entire chart would not be very useful, BUT should not have errors
-*/
-}
-
-</style>
-<body>
-
-  <div id="chart">
-    <svg style="height: 500px;"></svg>
-  </div>
-
-<script src="../lib/d3.v3.js"></script>
-<script src="../lib/crossfilter.js"></script>
-<script src="../nv.d3.js"></script>
-<script src="../src/tooltip.js"></script>
-<script src="../src/utils.js"></script>
-<script src="../src/models/legend.js"></script>
-<script src="../src/models/axis.js"></script>
-<script src="../src/models/scatter.js"></script>
-<script src="../src/models/line.js"></script>
-<script src="../src/models/lineWithFocusChart.js"></script>
-<script src="stream_layers.js"></script>
-<script>
-
-extend = function(destination, source) {
-    for (var property in source) {
-    if (property in destination) { 
-      if ( typeof source[property] === "object" && 
-        typeof destination[property] === "object") {
-          destination[property] = extend(destination[property], source[property]);
-      } else {
-        continue; 
-      } 
-    } else {
-      destination[property] = source[property];
-    };
-    }
-    return destination;
-};
-
-nv.addGraph(function() {
-  var chart = nv.models.lineWithFocusChart();
-
-  chart.xAxis
-      .tickFormat(d3.format(',f'));
-  chart.x2Axis
-      .tickFormat(d3.format(',f'));
-
-  chart.yAxis
-      .tickFormat(d3.format(',.2f'));
-  chart.y2Axis
-      .tickFormat(d3.format(',.2f'));
-
-  var rawData = testCrossfilterData();  
-  var data = normalizeData(rawData.datum, 
-        [
-        { 
-          name: 'Stream #1',
-          key: 'stream1'
-        },
-        { 
-          name: 'Stream #2',
-          key: 'stream2'
-        },
-        { 
-          name: 'Stream #3',
-          key: 'stream3'
-        }
-        ]);  
-    
-  d3.select('#chart svg')
-      .datum(data)
-    .transition().duration(500)
-      .call(chart);
-
-  nv.utils.windowResize(chart.update);
-
-  return chart;
-});
-
-function normalizeData(data, series)
-  {
-    var sort = crossfilter.quicksort.by(function(d) { return d.key; });
-    var result = [];
-    
-    for (var i = 0; i < series.length; i++)
-    {
-      var seriesData = data.top(Infinity);
-      var sorted = sort(seriesData, 0, seriesData.length);
-      var values = [];
-      
-      
-      seriesData.forEach(function(item, index)
-      {
-        values.push({x: item.key,  y: item.value[series[i].key]});
-      });
-      
-      result.push({key: series[i].name, values: values, color: series[i].color});
-    };
-    
-    return result;
-  };
-
-function testCrossfilterData() {
-  var data = crossfilter(testData());
-  
-  try 
-  {
-    data.data = data.dimension(function(d) { return d.x; });
-    data.datum = data.data.group(function(d) { return d; });
-    data.datum.reduce(function (p, v) { 
-                p.count++;
-                p.stream1 += v.stream1; 
-                p.stream2 += v.stream2;
-                p.stream3 += v.stream3;
-                return p; }, 
-              function (p, v) { 
-                p.count--;
-                p.stream1 -= v.stream1; 
-                p.stream2 -= v.stream2;
-                p.stream3 -= v.stream3;
-                return p; },
-              function () { return {count: 0, stream1: 0, stream2: 0, stream3: 0}; });    
-  } catch (e) 
-  {
-    console.log(e.stack);
-  }
-  
-  return data;
-}
-
-function testData() {
-  
-  var data1 = [];
-  var data2 = [];
-  var data3 = [];
-  
-  stream_layers(3,128,.1).map(function(layer, index) {
-    layer.forEach(function(item, i) {
-    var object = { x: item.x };
-    object['stream' + (index + 1)] = item.y;
-    eval('data' + (index + 1)).push(object);
-  });
-  });
-  
-  var data = extend(data1, data2);
-  var result = extend(data, data3);
-  
-  return result;
-}
-
-
-</script>
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/crossfilterWithTables.html b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/crossfilterWithTables.html
deleted file mode 100755
index 95abd991..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/crossfilterWithTables.html
+++ /dev/null
@@ -1,288 +0,0 @@
-<!DOCTYPE html>
-<meta charset="utf-8">
-
-<link href="../src/nv.d3.css" rel="stylesheet" type="text/css">
-
-<style>
-
-body {
-  overflow-y:scroll;
-}
-
-text {
-  font: 12px sans-serif;
-}
-
-svg {
-  display: block;
-}
-
-#chart1 svg {
-  height: 500px;
-  min-width: 100px;
-  min-height: 100px;
-/*
-  margin: 50px;
-  Minimum height and width is a good idea to prevent negative SVG dimensions...
-  For example width should be =< margin.left + margin.right + 1,
-  of course 1 pixel for the entire chart would not be very useful, BUT should not have errors
-*/
-}
-
-</style>
-<body>
-
-  <div id="chart">
-    <svg style="height: 500px;"></svg>
-  </div>
-  <div id="stream1" style="float: left; margin-left: 15px;">
-    <div><h1>Stream #1</h1></div>
-  </div>
-  <div id="stream2" style="float: left; margin-left: 15px;">
-    <div><h1>Stream #2</h1></div>
-  </div>
-  <div id="stream3" style="float: left; margin-left: 15px;">
-    <div><h1>Stream #3</h1></div>
-  </div>
-
-<script src="../lib/d3.v3.js"></script>
-<script src="../lib/crossfilter.js"></script>
-<script src="../nv.d3.js"></script>
-<script src="../src/tooltip.js"></script>
-<script src="../src/utils.js"></script>
-<script src="../src/models/legend.js"></script>
-<script src="../src/models/axis.js"></script>
-<script src="../src/models/scatter.js"></script>
-<script src="../src/models/line.js"></script>
-<script src="../src/models/lineWithFocusChart.js"></script>
-<script src="stream_layers.js"></script>
-<script>
-
-extend = function(destination, source) {
-    for (var property in source) {
-    if (property in destination) { 
-      if ( typeof source[property] === "object" &&
-        typeof destination[property] === "object") {
-          destination[property] = extend(destination[property], source[property]);
-      } else {
-        continue;
-      }
-    } else {
-      destination[property] = source[property];
-    };
-    }
-    return destination;
-};
-
-var rawData = testCrossfilterData();
-
-nv.addGraph(function() {
-  var chart = nv.models.lineWithFocusChart();
-
-  chart.xAxis
-      .tickFormat(d3.format(',f'));
-  chart.x2Axis
-      .tickFormat(d3.format(',f'));
-
-  chart.yAxis
-      .tickFormat(d3.format(',.2f'));
-  chart.y2Axis
-      .tickFormat(d3.format(',.2f'));
-
-  chart.dispatch.on('brush', click);
-
-  var data = normalizeData(rawData.datum, 
-        [
-        {
-          name: 'Stream #1',
-          key: 'stream1'
-        },
-        {
-          name: 'Stream #2',
-          key: 'stream2'
-        },
-        {
-          name: 'Stream #3',
-          key: 'stream3'
-        }
-        ]);
-nv.log(data);
-  d3.select('#chart svg')
-      .datum(data)
-    .transition().duration(500)
-      .call(chart);
-
-  nv.utils.windowResize(chart.update);
-
-  return chart;
-});
-
-function click(e) {
-  extent = e.extent;
-
-  rawData.data.filter([extent[0], extent[1]]);
-  streams("stream1");
-  streams("stream2");
-  streams("stream3");
-}
-
-function streams(key) {
-  var topData = rawData.data.top(5);
-
-  var stream = d3.select("div#" + key).selectAll(".stream-data")
-      .data(topData, function(d) {
-        return d.key;
-      });
-
-  stream
-    .html(function(d) {
-      return d[key];
-    })
-
-  stream.enter().append("div")
-      .attr("class", "stream-data")
-      .html(function(d) {
-        return  d[key]; 
-      })
-
-  stream.exit().remove();
-
-  stream.order();
-}
-
-function normalizeData(data, series) {
-  var sort = crossfilter.quicksort.by(function(d) { return d.key; });
-  var result = [];
-
-  for (var i = 0; i < series.length; i++) {
-    var seriesData = data.top(Infinity);
-    var sorted = sort(seriesData, 0, seriesData.length);
-    var values = [];
-
-    seriesData.forEach(function(item, index) {
-        values.push({x: item.key,  y: item.value[series[i].key]});
-    });
-
-    result.push({key: series[i].name, values: values, color: series[i].color});
-  };
-
-  return result;
-};
-
-function testCrossfilterData() {
-  var data = crossfilter(testData());
-
-  try {
-    data.data = data.dimension(function(d) { return d.x; });
-    data.datum = data.data.group(function(d) { return d; });
-    data.datum.reduce(
-      function (p, v) {
-        p.count++;
-        p.stream1 += v.stream1;
-        p.stream2 += v.stream2;
-        p.stream3 += v.stream3;
-        return p;
-      },
-      function (p, v) {
-        p.count--;
-        p.stream1 -= v.stream1;
-        p.stream2 -= v.stream2;
-        p.stream3 -= v.stream3;
-        return p;
-      },
-      function () {
-        return {count: 0, stream1: 0, stream2: 0, stream3: 0};
-      });
-
-    data.stream1 = data.dimension(function(d) { return d.stream1; });
-    data.stream1datum = data.data.group(function(d) { return d; });
-    data.stream1datum.reduce(
-      function (p, v) {
-        p.count++;
-        p.stream1 += v.stream1;
-        p.stream2 += v.stream2;
-        p.stream3 += v.stream3;
-        return p;
-      },
-      function (p, v) {
-        p.count--;
-        p.stream1 -= v.stream1;
-        p.stream2 -= v.stream2;
-        p.stream3 -= v.stream3;
-        return p;
-      },
-      function () {
-        return {count: 0, stream1: 0, stream2: 0, stream3: 0};
-      }
-    );
-
-    data.stream2 = data.dimension(function(d) { return d.stream2; });
-    data.stream2datum = data.data.group(function(d) { return d; });
-    data.stream2datum.reduce(
-      function (p, v) {
-        p.count++;
-        p.stream1 += v.stream1;
-        p.stream2 += v.stream2;
-        p.stream3 += v.stream3;
-        return p;
-      },
-      function (p, v) {
-        p.count--;
-        p.stream1 -= v.stream1;
-        p.stream2 -= v.stream2;
-        p.stream3 -= v.stream3;
-        return p;
-      },
-      function () {
-        return {count: 0, stream1: 0, stream2: 0, stream3: 0};
-      }
-    );
-
-    data.stream3 = data.dimension(function(d) { return d.stream3; });
-    data.stream3datum = data.data.group(function(d) { return d; });
-    data.stream3datum.reduce(
-      function (p, v) {
-        p.count++;
-        p.stream1 += v.stream1;
-        p.stream2 += v.stream2;
-        p.stream3 += v.stream3;
-        return p; },
-      function (p, v) {
-        p.count--;
-        p.stream1 -= v.stream1;
-        p.stream2 -= v.stream2;
-        p.stream3 -= v.stream3;
-        return p;
-      },
-      function () {
-        return {count: 0, stream1: 0, stream2: 0, stream3: 0};
-      }
-    );
-  } catch (e) {
-    nv.log(e.stack);
-  }
-
-  return data;
-}
-
-function testData() {
-  var data1 = [];
-  var data2 = [];
-  var data3 = [];
-
-  stream_layers(3,128,.1).map(function(layer, index) {
-    layer.forEach(function(item, i) {
-      var object = { x: item.x };
-      object['stream' + (index + 1)] = item.y;
-      eval('data' + (index + 1)).push(object);
-    });
-  });
-
-  var data = extend(data1, data2);
-  var result = extend(data, data3);
-
-  return result;
-}
-
-
-</script>
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/cumulativeLineChart.html b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/cumulativeLineChart.html
deleted file mode 100755
index a0c4b582..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/cumulativeLineChart.html
+++ /dev/null
@@ -1,200 +0,0 @@
-<!DOCTYPE html>
-<meta charset="utf-8">
-
-<link href="../src/nv.d3.css" rel="stylesheet" type="text/css">
-
-<style>
-
-body {
-  overflow-y:scroll;
-}
-
-text {
-  font: 12px sans-serif;
-}
-
-
-.chart svg {
-  height: 450px;
-  min-width: 100px;
-  min-height: 100px;
-/*
-  margin: 50px;
-  Minimum height and width is a good idea to prevent negative SVG dimensions...
-  For example width should be =< margin.left + margin.right + 1,
-  of course 1 pixel for the entire chart would not be very useful, BUT should not have errors
-*/
-}
-
-</style>
-<body>
-  <div class='navigation'>
-      Tests:
-      <a href="../test/lineChartTest.html">Line Chart</a>
-      <a href="../test/stackedAreaChartTest.html">Stacked Area</a>
-      <a href="cumulativeLineChart.html">Cumulative Line</a>
-  </div>
-  <div id="chart1" class='chart with-transitions'>
-    <strong>Chart with new tooltips and guide line (with-transitions)</strong>
-    <svg></svg>
-  </div>
-  <div id="chart2" class='chart with-transitions'>
-    <strong>Chart with old tooltips (with-transitions)</strong>
-    <svg></svg>
-  </div>
-
-<script src="../lib/d3.v3.js"></script>
-<script src="../nv.d3.js"></script>
-<script src="../src/tooltip.js"></script>
-<script src="../src/utils.js"></script>
-<script src="../src/interactiveLayer.js"></script>
-<script src="../src/models/legend.js"></script>
-<script src="../src/models/axis.js"></script>
-<script src="../src/models/scatter.js"></script>
-<script src="../src/models/line.js"></script>
-<script src="../src/models/cumulativeLineChart.js"></script>
-<script>
-
-
-// Wrapping in nv.addGraph allows for '0 timeout render', stores rendered charts in nv.graphs, and may do more in the future... it's NOT required
-
-nv.addGraph(function() {  
-   var chart = nv.models.cumulativeLineChart()
-             .useInteractiveGuideline(true)
-             .x(function(d) { return d[0] })
-             .y(function(d) { return d[1]/100 })
-             .color(d3.scale.category10().range())
-             .average(function(d) { return d.mean/100; })
-             .transitionDuration(300)
-             .clipVoronoi(false);
-
-   chart.xAxis
-      .tickFormat(function(d) {
-          return d3.time.format('%m/%d/%y')(new Date(d))
-        });
-
-  chart.yAxis
-      .tickFormat(d3.format(',.1%'));
-
-  d3.select('#chart1 svg')
-      .datum(cumulativeTestData())
-      .call(chart);
-
-  //TODO: Figure out a good way to do this automatically
-  nv.utils.windowResize(chart.update);
-
-  chart.dispatch.on('stateChange', function(e) { nv.log('New State:', JSON.stringify(e)); });
-
-  return chart;
-});
-
-nv.addGraph(function() {  
-   var chart = nv.models.cumulativeLineChart()
-             .useInteractiveGuideline(false)
-             .rightAlignYAxis(true)
-             .margin({right:90})
-             .x(function(d) { return d[0] })
-             .y(function(d) { return d[1]/100 })
-             .color(d3.scale.category10().range())
-             .average(function(d) { return d.mean/100; })
-             .clipVoronoi(false);
-
-   chart.xAxis
-      .tickFormat(function(d) {
-          return d3.time.format('%m/%d/%y')(new Date(d))
-        });
-
-  chart.yAxis
-      .tickFormat(d3.format(',.1%'));
-
-  d3.select('#chart2 svg')
-      .datum(cumulativeTestData())
-      .call(chart);
-
-  //TODO: Figure out a good way to do this automatically
-  nv.utils.windowResize(chart.update);
-
-  chart.dispatch.on('stateChange', function(e) { nv.log('New State:', JSON.stringify(e)); });
-
-  return chart;
-});
-
-
-function flatTestData() {
-  return [
-    {
-      key: "Snakes",
-      values: [0,1,2,3,4,5,6,7,8,9].map(function(d) {
-        var currentDate = new Date();
-        currentDate.setDate(currentDate.getDate() + d);
-        return [currentDate, 0]
-      })
-    }
-  ];
-}
-
-
-function cumulativeTestData() {
-
-
-
-  return [
-
-                {
-                    key: "Long",
-                    values: [ [ 1083297600000 , -2.974623048543] , [ 1085976000000 , -1.7740300785979] , [ 1088568000000 , 4.4681318138177] , [ 1091246400000 , 7.0242541001353] , [ 1093924800000 , 7.5709603667586] , [ 1096516800000 , 20.612245065736] , [ 1099195200000 , 21.698065237316] , [ 1101790800000 , 40.501189458018] , [ 1104469200000 , 50.464679413194] , [ 1107147600000 , 48.917421973355] , [ 1109566800000 , 63.750936549160] , [ 1112245200000 , 59.072499126460] , [ 1114833600000 , 43.373158880492] , [ 1117512000000 , 54.490918947556] , [ 1120104000000 , 56.661178852079] , [ 1122782400000 , 73.450103545496] , [ 1125460800000 , 71.714526354907] , [ 1128052800000 , 85.221664349607] , [ 1130734800000 , 77.769261392481] , [ 1133326800000 , 95.966528716500] , [ 1136005200000 , 107.59132116397] , [ 1138683600000 , 127.25740096723] , [ 1141102800000 , 122.13917498830] , [ 1143781200000 , 126.53657279774] , [ 1146369600000 , 132.39300992970] , [ 1149048000000 , 120.11238242904] , [ 1151640000000 , 118.41408917750] , [ 1154318400000 , 107.92918924621] , [ 1156996800000 , 110.28057249569] , [ 1159588800000 , 117.20485334692] , [ 1162270800000 , 141.33556756948] , [ 1164862800000 , 159.59452727893] , [ 1167541200000 , 167.09801853304] , [ 1170219600000 , 185.46849659215] , [ 1172638800000 , 184.82474099990] , [ 1175313600000 , 195.63155213887] , [ 1177905600000 , 207.40597044171] , [ 1180584000000 , 230.55966698196] , [ 1183176000000 , 239.55649035292] , [ 1185854400000 , 241.35915085208] , [ 1188532800000 , 239.89428956243] , [ 1191124800000 , 260.47781917715] , [ 1193803200000 , 276.39457482225] , [ 1196398800000 , 258.66530682672] , [ 1199077200000 , 250.98846121893] , [ 1201755600000 , 226.89902618127] , [ 1204261200000 , 227.29009273807] , [ 1206936000000 , 218.66476654350] , [ 1209528000000 , 232.46605902918] , [ 1212206400000 , 253.25667081117] , [ 1214798400000 , 235.82505363925] , [ 1217476800000 , 229.70112774254] , [ 1220155200000 , 225.18472705952] , [ 1222747200000 , 189.13661746552] , [ 1225425600000 , 149.46533007301] , [ 1228021200000 , 131.00340772114] , [ 1230699600000 , 135.18341728866] , [ 1233378000000 , 109.15296887173] , [ 1235797200000 , 84.614772549760] , [ 1238472000000 , 100.60810015326] , [ 1241064000000 , 141.50134895610] , [ 1243742400000 , 142.50405083675] , [ 1246334400000 , 139.81192372672] , [ 1249012800000 , 177.78205544583] , [ 1251691200000 , 194.73691933074] , [ 1254283200000 , 209.00838460225] , [ 1256961600000 , 198.19855877420] , [ 1259557200000 , 222.37102417812] , [ 1262235600000 , 234.24581081250] , [ 1264914000000 , 228.26087689346] , [ 1267333200000 , 248.81895126250] , [ 1270008000000 , 270.57301075186] , [ 1272600000000 , 292.64604322550] , [ 1275278400000 , 265.94088520518] , [ 1277870400000 , 237.82887467569] , [ 1280548800000 , 265.55973314204] , [ 1283227200000 , 248.30877330928] , [ 1285819200000 , 278.14870066912] , [ 1288497600000 , 292.69260960288] , [ 1291093200000 , 300.84263809599] , [ 1293771600000 , 326.17253914628] , [ 1296450000000 , 337.69335966505] , [ 1298869200000 , 339.73260965121] , [ 1301544000000 , 346.87865120765] , [ 1304136000000 , 347.92991526628] , [ 1306814400000 , 342.04627502669] , [ 1309406400000 , 333.45386231233] , [ 1312084800000 , 323.15034181243] , [ 1314763200000 , 295.66126882331] , [ 1317355200000 , 251.48014579253] , [ 1320033600000 , 295.15424257905] , [ 1322629200000 , 294.54766764397] , [ 1325307600000 , 295.72906119051] , [ 1327986000000 , 325.73351347613] , [ 1330491600000 , 340.16106061186] , [ 1333166400000 , 345.15514071490] , [ 1335758400000 , 337.10259395679] , [ 1338436800000 , 318.68216333837] , [ 1341028800000 , 317.03683945246] , [ 1343707200000 , 318.53549659997] , [ 1346385600000 , 332.85381464104] , [ 1348977600000 , 337.36534373477] , [ 1351656000000 , 350.27872156161] , [ 1354251600000 , 349.45128876100]]
-                    ,
-                    mean: 250
-                },
-                {
-                    key: "Short",
-                    values: [ [ 1083297600000 , -0.77078283705125] , [ 1085976000000 , -1.8356366650335] , [ 1088568000000 , -5.3121322073127] , [ 1091246400000 , -4.9320975829662] , [ 1093924800000 , -3.9835408823225] , [ 1096516800000 , -6.8694685316805] , [ 1099195200000 , -8.4854877428545] , [ 1101790800000 , -15.933627197384] , [ 1104469200000 , -15.920980069544] , [ 1107147600000 , -12.478685045651] , [ 1109566800000 , -17.297761889305] , [ 1112245200000 , -15.247129891020] , [ 1114833600000 , -11.336459046839] , [ 1117512000000 , -13.298990907415] , [ 1120104000000 , -16.360027000056] , [ 1122782400000 , -18.527929522030] , [ 1125460800000 , -22.176516738685] , [ 1128052800000 , -23.309665368330] , [ 1130734800000 , -21.629973409748] , [ 1133326800000 , -24.186429093486] , [ 1136005200000 , -29.116707312531] , [ 1138683600000 , -37.188037874864] , [ 1141102800000 , -34.689264821198] , [ 1143781200000 , -39.505932105359] , [ 1146369600000 , -45.339572492759] , [ 1149048000000 , -43.849353192764] , [ 1151640000000 , -45.418353922571] , [ 1154318400000 , -44.579281059919] , [ 1156996800000 , -44.027098363370] , [ 1159588800000 , -41.261306759439] , [ 1162270800000 , -47.446018534027] , [ 1164862800000 , -53.413782948909] , [ 1167541200000 , -50.700723647419] , [ 1170219600000 , -56.374090913296] , [ 1172638800000 , -61.754245220322] , [ 1175313600000 , -66.246241587629] , [ 1177905600000 , -75.351650899999] , [ 1180584000000 , -81.699058262032] , [ 1183176000000 , -82.487023368081] , [ 1185854400000 , -86.230055113277] , [ 1188532800000 , -84.746914818507] , [ 1191124800000 , -100.77134971977] , [ 1193803200000 , -109.95435565947] , [ 1196398800000 , -99.605672965057] , [ 1199077200000 , -99.607249394382] , [ 1201755600000 , -94.874614950188] , [ 1204261200000 , -105.35899063105] , [ 1206936000000 , -106.01931193802] , [ 1209528000000 , -110.28883571771] , [ 1212206400000 , -119.60256203030] , [ 1214798400000 , -115.62201315802] , [ 1217476800000 , -106.63824185202] , [ 1220155200000 , -99.848746318951] , [ 1222747200000 , -85.631219602987] , [ 1225425600000 , -63.547909262067] , [ 1228021200000 , -59.753275364457] , [ 1230699600000 , -63.874977883542] , [ 1233378000000 , -56.865697387488] , [ 1235797200000 , -54.285579501988] , [ 1238472000000 , -56.474659581885] , [ 1241064000000 , -63.847137745644] , [ 1243742400000 , -68.754247867325] , [ 1246334400000 , -69.474257009155] , [ 1249012800000 , -75.084828197067] , [ 1251691200000 , -77.101028237237] , [ 1254283200000 , -80.454866854387] , [ 1256961600000 , -78.984349952220] , [ 1259557200000 , -83.041230807854] , [ 1262235600000 , -84.529748348935] , [ 1264914000000 , -83.837470195508] , [ 1267333200000 , -87.174487671969] , [ 1270008000000 , -90.342293007487] , [ 1272600000000 , -93.550928464991] , [ 1275278400000 , -85.833102140765] , [ 1277870400000 , -79.326501831592] , [ 1280548800000 , -87.986196903537] , [ 1283227200000 , -85.397862121771] , [ 1285819200000 , -94.738167050020] , [ 1288497600000 , -98.661952897151] , [ 1291093200000 , -99.609665952708] , [ 1293771600000 , -103.57099836183] , [ 1296450000000 , -104.04353411322] , [ 1298869200000 , -108.21382792587] , [ 1301544000000 , -108.74006900920] , [ 1304136000000 , -112.07766650960] , [ 1306814400000 , -109.63328199118] , [ 1309406400000 , -106.53578966772] , [ 1312084800000 , -103.16480871469] , [ 1314763200000 , -95.945078001828] , [ 1317355200000 , -81.226687340874] , [ 1320033600000 , -90.782206596168] , [ 1322629200000 , -89.484445370113] , [ 1325307600000 , -88.514723135326] , [ 1327986000000 , -93.381292724320] , [ 1330491600000 , -97.529705609172] , [ 1333166400000 , -99.520481439189] , [ 1335758400000 , -99.430184898669] , [ 1338436800000 , -93.349934521973] , [ 1341028800000 , -95.858475286491] , [ 1343707200000 , -95.522755836605] , [ 1346385600000 , -98.503848862036] , [ 1348977600000 , -101.49415251896] , [ 1351656000000 , -101.50099325672] , [ 1354251600000 , -99.487094927489]]
-                    ,
-                    mean: -60
-                },
-                
-                 
-                {
-                    key: "Gross",
-                    mean: 125,
-                    values: [ [ 1083297600000 , -3.7454058855943] , [ 1085976000000 , -3.6096667436314] , [ 1088568000000 , -0.8440003934950] , [ 1091246400000 , 2.0921565171691] , [ 1093924800000 , 3.5874194844361] , [ 1096516800000 , 13.742776534056] , [ 1099195200000 , 13.212577494462] , [ 1101790800000 , 24.567562260634] , [ 1104469200000 , 34.543699343650] , [ 1107147600000 , 36.438736927704] , [ 1109566800000 , 46.453174659855] , [ 1112245200000 , 43.825369235440] , [ 1114833600000 , 32.036699833653] , [ 1117512000000 , 41.191928040141] , [ 1120104000000 , 40.301151852023] , [ 1122782400000 , 54.922174023466] , [ 1125460800000 , 49.538009616222] , [ 1128052800000 , 61.911998981277] , [ 1130734800000 , 56.139287982733] , [ 1133326800000 , 71.780099623014] , [ 1136005200000 , 78.474613851439] , [ 1138683600000 , 90.069363092366] , [ 1141102800000 , 87.449910167102] , [ 1143781200000 , 87.030640692381] , [ 1146369600000 , 87.053437436941] , [ 1149048000000 , 76.263029236276] , [ 1151640000000 , 72.995735254929] , [ 1154318400000 , 63.349908186291] , [ 1156996800000 , 66.253474132320] , [ 1159588800000 , 75.943546587481] , [ 1162270800000 , 93.889549035453] , [ 1164862800000 , 106.18074433002] , [ 1167541200000 , 116.39729488562] , [ 1170219600000 , 129.09440567885] , [ 1172638800000 , 123.07049577958] , [ 1175313600000 , 129.38531055124] , [ 1177905600000 , 132.05431954171] , [ 1180584000000 , 148.86060871993] , [ 1183176000000 , 157.06946698484] , [ 1185854400000 , 155.12909573880] , [ 1188532800000 , 155.14737474392] , [ 1191124800000 , 159.70646945738] , [ 1193803200000 , 166.44021916278] , [ 1196398800000 , 159.05963386166] , [ 1199077200000 , 151.38121182455] , [ 1201755600000 , 132.02441123108] , [ 1204261200000 , 121.93110210702] , [ 1206936000000 , 112.64545460548] , [ 1209528000000 , 122.17722331147] , [ 1212206400000 , 133.65410878087] , [ 1214798400000 , 120.20304048123] , [ 1217476800000 , 123.06288589052] , [ 1220155200000 , 125.33598074057] , [ 1222747200000 , 103.50539786253] , [ 1225425600000 , 85.917420810943] , [ 1228021200000 , 71.250132356683] , [ 1230699600000 , 71.308439405118] , [ 1233378000000 , 52.287271484242] , [ 1235797200000 , 30.329193047772] , [ 1238472000000 , 44.133440571375] , [ 1241064000000 , 77.654211210456] , [ 1243742400000 , 73.749802969425] , [ 1246334400000 , 70.337666717565] , [ 1249012800000 , 102.69722724876] , [ 1251691200000 , 117.63589109350] , [ 1254283200000 , 128.55351774786] , [ 1256961600000 , 119.21420882198] , [ 1259557200000 , 139.32979337027] , [ 1262235600000 , 149.71606246357] , [ 1264914000000 , 144.42340669795] , [ 1267333200000 , 161.64446359053] , [ 1270008000000 , 180.23071774437] , [ 1272600000000 , 199.09511476051] , [ 1275278400000 , 180.10778306442] , [ 1277870400000 , 158.50237284410] , [ 1280548800000 , 177.57353623850] , [ 1283227200000 , 162.91091118751] , [ 1285819200000 , 183.41053361910] , [ 1288497600000 , 194.03065670573] , [ 1291093200000 , 201.23297214328] , [ 1293771600000 , 222.60154078445] , [ 1296450000000 , 233.35556801977] , [ 1298869200000 , 231.22452435045] , [ 1301544000000 , 237.84432503045] , [ 1304136000000 , 235.55799131184] , [ 1306814400000 , 232.11873570751] , [ 1309406400000 , 226.62381538123] , [ 1312084800000 , 219.34811113539] , [ 1314763200000 , 198.69242285581] , [ 1317355200000 , 168.90235629066] , [ 1320033600000 , 202.64725756733] , [ 1322629200000 , 203.05389378105] , [ 1325307600000 , 204.85986680865] , [ 1327986000000 , 229.77085616585] , [ 1330491600000 , 239.65202435959] , [ 1333166400000 , 242.33012622734] , [ 1335758400000 , 234.11773262149] , [ 1338436800000 , 221.47846307887] , [ 1341028800000 , 216.98308827912] , [ 1343707200000 , 218.37781386755] , [ 1346385600000 , 229.39368622736] , [ 1348977600000 , 230.54656412916] , [ 1351656000000 , 243.06087025523] , [ 1354251600000 , 244.24733578385]]
-                },
-                {
-                    key: "S&P 1500",
-                    values: [ [ 1083297600000 , -1.7798428181819] , [ 1085976000000 , -0.36883324836999] , [ 1088568000000 , 1.7312581046040] , [ 1091246400000 , -1.8356125950460] , [ 1093924800000 , -1.5396564170877] , [ 1096516800000 , -0.16867791409247] , [ 1099195200000 , 1.3754263993413] , [ 1101790800000 , 5.8171640898041] , [ 1104469200000 , 9.4350145241608] , [ 1107147600000 , 6.7649081510160] , [ 1109566800000 , 9.1568499314776] , [ 1112245200000 , 7.2485090994419] , [ 1114833600000 , 4.8762222306595] , [ 1117512000000 , 8.5992339354652] , [ 1120104000000 , 9.0896517982086] , [ 1122782400000 , 13.394644048577] , [ 1125460800000 , 12.311842010760] , [ 1128052800000 , 13.221003650717] , [ 1130734800000 , 11.218481009206] , [ 1133326800000 , 15.565352598445] , [ 1136005200000 , 15.623703865926] , [ 1138683600000 , 19.275255326383] , [ 1141102800000 , 19.432433717836] , [ 1143781200000 , 21.232881244655] , [ 1146369600000 , 22.798299192958] , [ 1149048000000 , 19.006125095476] , [ 1151640000000 , 19.151889158536] , [ 1154318400000 , 19.340022855452] , [ 1156996800000 , 22.027934841859] , [ 1159588800000 , 24.903300681329] , [ 1162270800000 , 29.146492833877] , [ 1164862800000 , 31.781626082589] , [ 1167541200000 , 33.358770738428] , [ 1170219600000 , 35.622684613497] , [ 1172638800000 , 33.332821711366] , [ 1175313600000 , 34.878748635832] , [ 1177905600000 , 40.582332613844] , [ 1180584000000 , 45.719535502920] , [ 1183176000000 , 43.239344722386] , [ 1185854400000 , 38.550955100342] , [ 1188532800000 , 40.585368816283] , [ 1191124800000 , 45.601374057981] , [ 1193803200000 , 48.051404337892] , [ 1196398800000 , 41.582581696032] , [ 1199077200000 , 40.650580792748] , [ 1201755600000 , 32.252222066493] , [ 1204261200000 , 28.106390258553] , [ 1206936000000 , 27.532698196687] , [ 1209528000000 , 33.986390463852] , [ 1212206400000 , 36.302660526438] , [ 1214798400000 , 25.015574480172] , [ 1217476800000 , 23.989494069029] , [ 1220155200000 , 25.934351445531] , [ 1222747200000 , 14.627592011699] , [ 1225425600000 , -5.2249403809749] , [ 1228021200000 , -12.330933408050] , [ 1230699600000 , -11.000291508188] , [ 1233378000000 , -18.563864948088] , [ 1235797200000 , -27.213097001687] , [ 1238472000000 , -20.834133840523] , [ 1241064000000 , -12.717886701719] , [ 1243742400000 , -8.1644613083526] , [ 1246334400000 , -7.9108408918201] , [ 1249012800000 , -0.77002391591209] , [ 1251691200000 , 2.8243816569672] , [ 1254283200000 , 6.8761411421070] , [ 1256961600000 , 4.5060912230294] , [ 1259557200000 , 10.487179794349] , [ 1262235600000 , 13.251375597594] , [ 1264914000000 , 9.2207594803415] , [ 1267333200000 , 12.836276936538] , [ 1270008000000 , 19.816793904978] , [ 1272600000000 , 22.156787167211] , [ 1275278400000 , 12.518039090576] , [ 1277870400000 , 6.4253587440854] , [ 1280548800000 , 13.847372028409] , [ 1283227200000 , 8.5454736090364] , [ 1285819200000 , 18.542801953304] , [ 1288497600000 , 23.037064683183] , [ 1291093200000 , 23.517422401888] , [ 1293771600000 , 31.804723416068] , [ 1296450000000 , 34.778247386072] , [ 1298869200000 , 39.584883855230] , [ 1301544000000 , 40.080647664875] , [ 1304136000000 , 44.180050667889] , [ 1306814400000 , 42.533535927221] , [ 1309406400000 , 40.105374449011] , [ 1312084800000 , 37.014659267156] , [ 1314763200000 , 29.263745084262] , [ 1317355200000 , 19.637463417584] , [ 1320033600000 , 33.157645345770] , [ 1322629200000 , 32.895053150988] , [ 1325307600000 , 34.111544824647] , [ 1327986000000 , 40.453985817473] , [ 1330491600000 , 46.435700783313] , [ 1333166400000 , 51.062385488671] , [ 1335758400000 , 50.130448220658] , [ 1338436800000 , 41.035476682018] , [ 1341028800000 , 46.591932296457] , [ 1343707200000 , 48.349391180634] , [ 1346385600000 , 51.913011286919] , [ 1348977600000 , 55.747238313752] , [ 1351656000000 , 52.991824077209] , [ 1354251600000 , 49.556311883284]]
-                }
-            ];
-
-
-
-
-
-  return [
-                {
-                    key: "Series 1",
-                    values: [ [ 1025409600000 , 0] , [ 1028088000000 , -6.3382185140371] , [ 1030766400000 , -5.9507873460847] , [ 1033358400000 , -11.569146943813] , [ 1036040400000 , -5.4767332317425] , [ 1038632400000 , 0.50794682203014] , [ 1041310800000 , -5.5310285460542] , [ 1043989200000 , -5.7838296963382] , [ 1046408400000 , -7.3249341615649] , [ 1049086800000 , -6.7078630712489] , [ 1051675200000 , 0.44227126150934] , [ 1054353600000 , 7.2481659343222] , [ 1056945600000 , 9.2512381306992] , [ 1059624000000 , 11.341210982529] , [ 1062302400000 , 14.734820409020] , [ 1064894400000 , 12.387148007542] , [ 1067576400000 , 18.436471461827] , [ 1070168400000 , 19.830742266977] , [ 1072846800000 , 22.643205829887] , [ 1075525200000 , 26.743156781239] , [ 1078030800000 , 29.597478802228] , [ 1080709200000 , 30.831697585341] , [ 1083297600000 , 28.054068024708] , [ 1085976000000 , 29.294079423832] , [ 1088568000000 , 30.269264061274] , [ 1091246400000 , 24.934526898906] , [ 1093924800000 , 24.265982759406] , [ 1096516800000 , 27.217794897473] , [ 1099195200000 , 30.802601992077] , [ 1101790800000 , 36.331003758254] , [ 1104469200000 , 43.142498700060] , [ 1107147600000 , 40.558263931958] , [ 1109566800000 , 42.543622385800] , [ 1112245200000 , 41.683584710331] , [ 1114833600000 , 36.375367302328] , [ 1117512000000 , 40.719688980730] , [ 1120104000000 , 43.897963036919] , [ 1122782400000 , 49.797033975368] , [ 1125460800000 , 47.085993935989] , [ 1128052800000 , 46.601972859745] , [ 1130734800000 , 41.567784572762] , [ 1133326800000 , 47.296923737245] , [ 1136005200000 , 47.642969612080] , [ 1138683600000 , 50.781515820954] , [ 1141102800000 , 52.600229204305] , [ 1143781200000 , 55.599684490628] , [ 1146369600000 , 57.920388436633] , [ 1149048000000 , 53.503593218971] , [ 1151640000000 , 53.522973979964] , [ 1154318400000 , 49.846822298548] , [ 1156996800000 , 54.721341614650] , [ 1159588800000 , 58.186236223191] , [ 1162270800000 , 63.908065540997] , [ 1164862800000 , 69.767285129367] , [ 1167541200000 , 72.534013373592] , [ 1170219600000 , 77.991819436573] , [ 1172638800000 , 78.143584404990] , [ 1175313600000 , 83.702398665233] , [ 1177905600000 , 91.140859312418] , [ 1180584000000 , 98.590960607028] , [ 1183176000000 , 96.245634754228] , [ 1185854400000 , 92.326364432615] , [ 1188532800000 , 97.068765332230] , [ 1191124800000 , 105.81025556260] , [ 1193803200000 , 114.38348777791] , [ 1196398800000 , 103.59604949810] , [ 1199077200000 , 101.72488429307] , [ 1201755600000 , 89.840147735028] , [ 1204261200000 , 86.963597532664] , [ 1206936000000 , 84.075505208491] , [ 1209528000000 , 93.170105645831] , [ 1212206400000 , 103.62838083121] , [ 1214798400000 , 87.458241365091] , [ 1217476800000 , 85.808374141319] , [ 1220155200000 , 93.158054469193] , [ 1222747200000 , 65.973252382360] , [ 1225425600000 , 44.580686638224] , [ 1228021200000 , 36.418977140128] , [ 1230699600000 , 38.727678144761] , [ 1233378000000 , 36.692674173387] , [ 1235797200000 , 30.033022809480] , [ 1238472000000 , 36.707532162718] , [ 1241064000000 , 52.191457688389] , [ 1243742400000 , 56.357883979735] , [ 1246334400000 , 57.629002180305] , [ 1249012800000 , 66.650985790166] , [ 1251691200000 , 70.839243432186] , [ 1254283200000 , 78.731998491499] , [ 1256961600000 , 72.375528540349] , [ 1259557200000 , 81.738387881630] , [ 1262235600000 , 87.539792394232] , [ 1264914000000 , 84.320762662273] , [ 1267333200000 , 90.621278391889] , [ 1270008000000 , 102.47144881651] , [ 1272600000000 , 102.79320353429] , [ 1275278400000 , 90.529736050479] , [ 1277870400000 , 76.580859994531] , [ 1280548800000 , 86.548979376972] , [ 1283227200000 , 81.879653334089] , [ 1285819200000 , 101.72550015956] , [ 1288497600000 , 107.97964852260] , [ 1291093200000 , 106.16240630785] , [ 1293771600000 , 114.84268599533] , [ 1296450000000 , 121.60793322282] , [ 1298869200000 , 133.41437346605] , [ 1301544000000 , 125.46646042904] , [ 1304136000000 , 129.76784954301] , [ 1306814400000 , 128.15798861044] , [ 1309406400000 , 121.92388706072] , [ 1312084800000 , 116.70036100870] , [ 1314763200000 , 88.367701837033] , [ 1317355200000 , 59.159665765725] , [ 1320033600000 , 79.793568139753] , [ 1322629200000 , 75.903834028417] , [ 1325307600000 , 72.704218209157] , [ 1327986000000 , 84.936990804097] , [ 1330491600000 , 93.388148670744]]
-                },
-                {
-                    key: "Series 2",
-                    values: [ [ 1025409600000 , 0] , [ 1028088000000 , 0] , [ 1030766400000 , 0] , [ 1033358400000 , 0] , [ 1036040400000 , 0] , [ 1038632400000 , 0] , [ 1041310800000 , 0] , [ 1043989200000 , 0] , [ 1046408400000 , 0] , [ 1049086800000 , 0] , [ 1051675200000 , 0] , [ 1054353600000 , 0] , [ 1056945600000 , 0] , [ 1059624000000 , 0] , [ 1062302400000 , 0] , [ 1064894400000 , 0] , [ 1067576400000 , 0] , [ 1070168400000 , 0] , [ 1072846800000 , 0] , [ 1075525200000 , -0.049184266875945] , [ 1078030800000 , -0.10757569491991] , [ 1080709200000 , -0.075601531307242] , [ 1083297600000 , -0.061245277988149] , [ 1085976000000 , -0.068227316401169] , [ 1088568000000 , -0.11242758058502] , [ 1091246400000 , -0.074848439408270] , [ 1093924800000 , -0.11465623676497] , [ 1096516800000 , -0.24370633342416] , [ 1099195200000 , -0.21523268478893] , [ 1101790800000 , -0.37859370911822] , [ 1104469200000 , -0.41932884345151] , [ 1107147600000 , -0.45393735984802] , [ 1109566800000 , -0.50868179522598] , [ 1112245200000 , -0.48164396881207] , [ 1114833600000 , -0.41605962887194] , [ 1117512000000 , -0.48490348490240] , [ 1120104000000 , -0.55071036101311] , [ 1122782400000 , -0.67489170505394] , [ 1125460800000 , -0.74978070939342] , [ 1128052800000 , -0.86395050745343] , [ 1130734800000 , -0.78524898506764] , [ 1133326800000 , -0.99800440950854] , [ 1136005200000 , -1.1177951153878] , [ 1138683600000 , -1.4119975432964] , [ 1141102800000 , -1.2409959736465] , [ 1143781200000 , -1.3088936375431] , [ 1146369600000 , -1.5495785469683] , [ 1149048000000 , -1.1563414981293] , [ 1151640000000 , -0.87192471725994] , [ 1154318400000 , -0.84073995183442] , [ 1156996800000 , -0.88761892867370] , [ 1159588800000 , -0.81748513917485] , [ 1162270800000 , -1.2874081041274] , [ 1164862800000 , -1.9234702981339] , [ 1167541200000 , -1.8377768147648] , [ 1170219600000 , -2.7107654031830] , [ 1172638800000 , -2.6493268125418] , [ 1175313600000 , -3.0814553134551] , [ 1177905600000 , -3.8509837783574] , [ 1180584000000 , -5.2919167850718] , [ 1183176000000 , -5.2297750650773] , [ 1185854400000 , -3.9335668501451] , [ 1188532800000 , -2.3695525190114] , [ 1191124800000 , -2.3084243151854] , [ 1193803200000 , -3.0753680726738] , [ 1196398800000 , -2.2346609938962] , [ 1199077200000 , -3.0598810361615] , [ 1201755600000 , -1.8410154270386] , [ 1204261200000 , -1.6479442038620] , [ 1206936000000 , -1.9293858622780] , [ 1209528000000 , -3.0769590460943] , [ 1212206400000 , -4.2423933501421] , [ 1214798400000 , -2.6951491617768] , [ 1217476800000 , -2.8981825939957] , [ 1220155200000 , -2.9662727940324] , [ 1222747200000 , 0.21556750497498] , [ 1225425600000 , 2.6784995167088] , [ 1228021200000 , 4.1296711248958] , [ 1230699600000 , 3.7311068218734] , [ 1233378000000 , 4.7695330866954] , [ 1235797200000 , 5.1919133040990] , [ 1238472000000 , 4.1025856045660] , [ 1241064000000 , 2.8498939666225] , [ 1243742400000 , 2.8106017222851] , [ 1246334400000 , 2.8456526669963] , [ 1249012800000 , 0.65563070754298] , [ 1251691200000 , -0.30022343874633] , [ 1254283200000 , -1.1600358228964] , [ 1256961600000 , -0.26674408835052] , [ 1259557200000 , -1.4693389757812] , [ 1262235600000 , -2.7855421590594] , [ 1264914000000 , -1.2668244065703] , [ 1267333200000 , -2.5537804115548] , [ 1270008000000 , -4.9144552474502] , [ 1272600000000 , -6.0484408234831] , [ 1275278400000 , -3.3834349033750] , [ 1277870400000 , -0.46752826932523] , [ 1280548800000 , -1.8030186027963] , [ 1283227200000 , -0.99623230097881] , [ 1285819200000 , -3.3475370235594] , [ 1288497600000 , -3.8187026520342] , [ 1291093200000 , -4.2354146250353] , [ 1293771600000 , -5.6795404292885] , [ 1296450000000 , -6.2928665328172] , [ 1298869200000 , -6.8549277434419] , [ 1301544000000 , -6.9925308360918] , [ 1304136000000 , -8.3216548655839] , [ 1306814400000 , -7.7682867271435] , [ 1309406400000 , -6.9244213301058] , [ 1312084800000 , -5.7407624451404] , [ 1314763200000 , -2.1813149077927] , [ 1317355200000 , 2.9407596325999] , [ 1320033600000 , -1.1130607112134] , [ 1322629200000 , -2.0274822307752] , [ 1325307600000 , -1.8372559072154] , [ 1327986000000 , -4.0732815531148] , [ 1330491600000 , -6.4417038470291]]
-                },
-                {
-                    key: "Series 3",
-                    values: [ [ 1025409600000 , 0] , [ 1028088000000 , -6.3382185140371] , [ 1030766400000 , -5.9507873460847] , [ 1033358400000 , -11.569146943813] , [ 1036040400000 , -5.4767332317425] , [ 1038632400000 , 0.50794682203014] , [ 1041310800000 , -5.5310285460542] , [ 1043989200000 , -5.7838296963382] , [ 1046408400000 , -7.3249341615649] , [ 1049086800000 , -6.7078630712489] , [ 1051675200000 , 0.44227126150934] , [ 1054353600000 , 7.2481659343222] , [ 1056945600000 , 9.2512381306992] , [ 1059624000000 , 11.341210982529] , [ 1062302400000 , 14.734820409020] , [ 1064894400000 , 12.387148007542] , [ 1067576400000 , 18.436471461827] , [ 1070168400000 , 19.830742266977] , [ 1072846800000 , 22.643205829887] , [ 1075525200000 , 26.693972514363] , [ 1078030800000 , 29.489903107308] , [ 1080709200000 , 30.756096054034] , [ 1083297600000 , 27.992822746720] , [ 1085976000000 , 29.225852107431] , [ 1088568000000 , 30.156836480689] , [ 1091246400000 , 24.859678459498] , [ 1093924800000 , 24.151326522641] , [ 1096516800000 , 26.974088564049] , [ 1099195200000 , 30.587369307288] , [ 1101790800000 , 35.952410049136] , [ 1104469200000 , 42.723169856608] , [ 1107147600000 , 40.104326572110] , [ 1109566800000 , 42.034940590574] , [ 1112245200000 , 41.201940741519] , [ 1114833600000 , 35.959307673456] , [ 1117512000000 , 40.234785495828] , [ 1120104000000 , 43.347252675906] , [ 1122782400000 , 49.122142270314] , [ 1125460800000 , 46.336213226596] , [ 1128052800000 , 45.738022352292] , [ 1130734800000 , 40.782535587694] , [ 1133326800000 , 46.298919327736] , [ 1136005200000 , 46.525174496692] , [ 1138683600000 , 49.369518277658] , [ 1141102800000 , 51.359233230659] , [ 1143781200000 , 54.290790853085] , [ 1146369600000 , 56.370809889665] , [ 1149048000000 , 52.347251720842] , [ 1151640000000 , 52.651049262704] , [ 1154318400000 , 49.006082346714] , [ 1156996800000 , 53.833722685976] , [ 1159588800000 , 57.368751084016] , [ 1162270800000 , 62.620657436870] , [ 1164862800000 , 67.843814831233] , [ 1167541200000 , 70.696236558827] , [ 1170219600000 , 75.281054033390] , [ 1172638800000 , 75.494257592448] , [ 1175313600000 , 80.620943351778] , [ 1177905600000 , 87.289875534061] , [ 1180584000000 , 93.299043821956] , [ 1183176000000 , 91.015859689151] , [ 1185854400000 , 88.392797582470] , [ 1188532800000 , 94.699212813219] , [ 1191124800000 , 103.50183124741] , [ 1193803200000 , 111.30811970524] , [ 1196398800000 , 101.36138850420] , [ 1199077200000 , 98.665003256909] , [ 1201755600000 , 87.999132307989] , [ 1204261200000 , 85.315653328802] , [ 1206936000000 , 82.146119346213] , [ 1209528000000 , 90.093146599737] , [ 1212206400000 , 99.385987481068] , [ 1214798400000 , 84.763092203314] , [ 1217476800000 , 82.910191547323] , [ 1220155200000 , 90.191781675161] , [ 1222747200000 , 66.188819887335] , [ 1225425600000 , 47.259186154933] , [ 1228021200000 , 40.548648265024] , [ 1230699600000 , 42.458784966634] , [ 1233378000000 , 41.462207260082] , [ 1235797200000 , 35.224936113579] , [ 1238472000000 , 40.810117767284] , [ 1241064000000 , 55.041351655012] , [ 1243742400000 , 59.168485702020] , [ 1246334400000 , 60.474654847301] , [ 1249012800000 , 67.306616497709] , [ 1251691200000 , 70.539019993440] , [ 1254283200000 , 77.571962668603] , [ 1256961600000 , 72.108784451998] , [ 1259557200000 , 80.269048905849] , [ 1262235600000 , 84.754250235173] , [ 1264914000000 , 83.053938255703] , [ 1267333200000 , 88.067497980334] , [ 1270008000000 , 97.556993569060] , [ 1272600000000 , 96.744762710807] , [ 1275278400000 , 87.146301147104] , [ 1277870400000 , 76.113331725206] , [ 1280548800000 , 84.745960774176] , [ 1283227200000 , 80.883421033110] , [ 1285819200000 , 98.377963136001] , [ 1288497600000 , 104.16094587057] , [ 1291093200000 , 101.92699168281] , [ 1293771600000 , 109.16314556604] , [ 1296450000000 , 115.31506669000] , [ 1298869200000 , 126.55944572261] , [ 1301544000000 , 118.47392959295] , [ 1304136000000 , 121.44619467743] , [ 1306814400000 , 120.38970188330] , [ 1309406400000 , 114.99946573061] , [ 1312084800000 , 110.95959856356] , [ 1314763200000 , 86.186386929240] , [ 1317355200000 , 62.100425398325] , [ 1320033600000 , 78.680507428540] , [ 1322629200000 , 73.876351797642] , [ 1325307600000 , 70.866962301942] , [ 1327986000000 , 80.863709250982] , [ 1330491600000 , 86.946444823715]]
-                },
-                {
-                    key: "Series 4",
-                    values: [ [ 1025409600000 , -7.0674410638835] , [ 1028088000000 , -14.663359292964] , [ 1030766400000 , -14.104393060540] , [ 1033358400000 , -23.114477037218] , [ 1036040400000 , -16.774256687841] , [ 1038632400000 , -11.902028464000] , [ 1041310800000 , -16.883038668422] , [ 1043989200000 , -19.104223676831] , [ 1046408400000 , -20.420523282736] , [ 1049086800000 , -19.660555051587] , [ 1051675200000 , -13.106911231646] , [ 1054353600000 , -8.2448460302143] , [ 1056945600000 , -7.0313058730976] , [ 1059624000000 , -5.1485118700389] , [ 1062302400000 , -3.0011028761469] , [ 1064894400000 , -4.1367265281467] , [ 1067576400000 , 1.5425209565025] , [ 1070168400000 , 2.7673533607299] , [ 1072846800000 , 7.7077114755360] , [ 1075525200000 , 9.7565015112434] , [ 1078030800000 , 11.396888609473] , [ 1080709200000 , 10.013964745578] , [ 1083297600000 , 8.0558890950562] , [ 1085976000000 , 9.6081966657458] , [ 1088568000000 , 11.918590426432] , [ 1091246400000 , 7.9945345523982] , [ 1093924800000 , 8.3201276776796] , [ 1096516800000 , 9.8283954846342] , [ 1099195200000 , 11.527125859650] , [ 1101790800000 , 16.413657596527] , [ 1104469200000 , 20.393798297928] , [ 1107147600000 , 17.456308413907] , [ 1109566800000 , 20.087778400999] , [ 1112245200000 , 17.988336990817] , [ 1114833600000 , 15.378490151331] , [ 1117512000000 , 19.474322935730] , [ 1120104000000 , 20.013851070354] , [ 1122782400000 , 24.749943726975] , [ 1125460800000 , 23.558710274826] , [ 1128052800000 , 24.558915040889] , [ 1130734800000 , 22.355860488034] , [ 1133326800000 , 27.138026265756] , [ 1136005200000 , 27.202220808591] , [ 1138683600000 , 31.219437344964] , [ 1141102800000 , 31.392355525125] , [ 1143781200000 , 33.373099232542] , [ 1146369600000 , 35.095277582309] , [ 1149048000000 , 30.923356507615] , [ 1151640000000 , 31.083717332561] , [ 1154318400000 , 31.290690671561] , [ 1156996800000 , 34.247769216679] , [ 1159588800000 , 37.411073177620] , [ 1162270800000 , 42.079177096411] , [ 1164862800000 , 44.978191659648] , [ 1167541200000 , 46.713271025310] , [ 1170219600000 , 49.203892437699] , [ 1172638800000 , 46.684723471826] , [ 1175313600000 , 48.385458973500] , [ 1177905600000 , 54.660197840305] , [ 1180584000000 , 60.311838415602] , [ 1183176000000 , 57.583282204682] , [ 1185854400000 , 52.425398898751] , [ 1188532800000 , 54.663538086985] , [ 1191124800000 , 60.181844325224] , [ 1193803200000 , 62.877219773621] , [ 1196398800000 , 55.760611512951] , [ 1199077200000 , 54.735280367784] , [ 1201755600000 , 45.495912959474] , [ 1204261200000 , 40.934919015876] , [ 1206936000000 , 40.303777633187] , [ 1209528000000 , 47.403740368773] , [ 1212206400000 , 49.951960898839] , [ 1214798400000 , 37.534590035098] , [ 1217476800000 , 36.405758293321] , [ 1220155200000 , 38.545373001858] , [ 1222747200000 , 26.106358664455] , [ 1225425600000 , 4.2658006768744] , [ 1228021200000 , -3.5517839867557] , [ 1230699600000 , -2.0878920761513] , [ 1233378000000 , -10.408879093829] , [ 1235797200000 , -19.924242196038] , [ 1238472000000 , -12.906491912782] , [ 1241064000000 , -3.9774866468346] , [ 1243742400000 , 1.0319171601402] , [ 1246334400000 , 1.3109350357718] , [ 1249012800000 , 9.1668309061935] , [ 1251691200000 , 13.121178985954] , [ 1254283200000 , 17.578680237511] , [ 1256961600000 , 14.971294355085] , [ 1259557200000 , 21.551327027338] , [ 1262235600000 , 24.592328423819] , [ 1264914000000 , 20.158087829555] , [ 1267333200000 , 24.135661929185] , [ 1270008000000 , 31.815205405903] , [ 1272600000000 , 34.389524768466] , [ 1275278400000 , 23.785555857522] , [ 1277870400000 , 17.082756649072] , [ 1280548800000 , 25.248007727100] , [ 1283227200000 , 19.415179069165] , [ 1285819200000 , 30.413636349327] , [ 1288497600000 , 35.357952964550] , [ 1291093200000 , 35.886413535859] , [ 1293771600000 , 45.003601951959] , [ 1296450000000 , 48.274893564020] , [ 1298869200000 , 53.562864914648] , [ 1301544000000 , 54.108274337412] , [ 1304136000000 , 58.618190111927] , [ 1306814400000 , 56.806793965598] , [ 1309406400000 , 54.135477252994] , [ 1312084800000 , 50.735258942442] , [ 1314763200000 , 42.208170945813] , [ 1317355200000 , 31.617916826724] , [ 1320033600000 , 46.492005006737] , [ 1322629200000 , 46.203116922145] , [ 1325307600000 , 47.541427643137] , [ 1327986000000 , 54.518998440993] , [ 1330491600000 , 61.099720234693]]
-                }
-  ]
-                
-  /*
-  .map(function(line) {
-    line.values = line.values.map(function(d) { return {x: d[0], y: d[1]/100  }});
-    return line;
-  });
-  */
-}
-
-
-</script>
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/discreteBarChart.html b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/discreteBarChart.html
deleted file mode 100755
index 5381f363..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/discreteBarChart.html
+++ /dev/null
@@ -1,117 +0,0 @@
-<!DOCTYPE html>
-<meta charset="utf-8">
-
-<link href="../src/nv.d3.css" rel="stylesheet" type="text/css">
-
-<style>
-
-body {
-  overflow-y:scroll;
-}
-
-text {
-  font: 12px sans-serif;
-}
-
-svg {
-  display: block;
-}
-
-#chart1 svg{
-  height: 500px;
-  min-width: 100px;
-  min-height: 100px;
-/*
-  margin: 10px;
-  Minimum height and width is a good idea to prevent negative SVG dimensions...
-  For example width should be =< margin.left + margin.right + 1,
-  of course 1 pixel for the entire chart would not be very useful, BUT should not have errors
-*/
-}
-
-</style>
-<body>
-
-  <div id="chart1">
-    <svg></svg>
-  </div>
-
-<script src="../lib/d3.v3.js"></script>
-<script src="../nv.d3.js"></script>
-<!-- including all the components so I don't have to minify every time I test in development -->
-<script src="../src/tooltip.js"></script>
-<script src="../src/utils.js"></script>
-<script src="../src/models/axis.js"></script>
-<script src="../src/models/discreteBar.js"></script>
-<script src="../src/models/discreteBarChart.js"></script>
-<script>
-
-
-
-
-
-historicalBarChart = [ 
-  {
-    key: "Cumulative Return",
-    values: [
-      { 
-        "label" : "A" ,
-        "value" : 29.765957771107
-      } , 
-      { 
-        "label" : "B" , 
-        "value" : 0
-      } , 
-      { 
-        "label" : "C" , 
-        "value" : 32.807804682612
-      } , 
-      { 
-        "label" : "D" , 
-        "value" : 196.45946739256
-      } , 
-      { 
-        "label" : "E" ,
-        "value" : 0.19434030906893
-      } , 
-      { 
-        "label" : "F" , 
-        "value" : 98.079782601442
-      } , 
-      { 
-        "label" : "G" , 
-        "value" : 13.925743130903
-      } , 
-      { 
-        "label" : "H" , 
-        "value" : 5.1387322875705
-      }
-    ]
-  }
-];
-
-
-
-
-nv.addGraph(function() {  
-  var chart = nv.models.discreteBarChart()
-      .x(function(d) { return d.label })
-      .y(function(d) { return d.value })
-      .staggerLabels(true)
-      //.staggerLabels(historicalBarChart[0].values.length > 8)
-      .tooltips(false)
-      .showValues(true)
-      .transitionDuration(250)
-      ;
-
-  d3.select('#chart1 svg')
-      .datum(historicalBarChart)
-      .call(chart);
-
-  nv.utils.windowResize(chart.update);
-
-  return chart;
-});
-
-
-</script>
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/historicalBar.html b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/historicalBar.html
deleted file mode 100755
index 49a075a3..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/historicalBar.html
+++ /dev/null
@@ -1,158 +0,0 @@
-<!DOCTYPE html>
-<meta charset="utf-8">
-<link href="../src/nv.d3.css" rel="stylesheet" type="text/css">
-<style>
-
-body {
-  overflow-y:scroll;
-}
-
-text {
-  font: 12px sans-serif;
-}
-
-</style>
-<body>
-
-<svg id="test1"></svg>
-
-<script src="../lib/d3.v3.js"></script>
-<script src="../nv.d3.js"></script>
-<script src="../src/models/historicalBar.js"></script>
-<script src="../src/utils.js"></script>
-
-<script> 
-
-
-nv.addGraph({
-  generate: function() {
-    var width = nv.utils.windowSize().width - 40,
-        height = nv.utils.windowSize().height - 40;
-
-    var chart = nv.models.historicalBar()
-        .padData(true)
-        .width(width)
-        .height(height);
-
-    d3.select("#test1")
-      .attr('width', width)
-      .attr('height', height)
-      .datum(sinData())
-      .transition()
-      .call(chart);
-
-    return chart;
-  },
-  callback: function(graph) {
-
-    graph.dispatch.on('elementMouseover', function(e) {
-        var offsetElement = document.getElementById("chart"),
-                left = e.pos[0],
-                top = e.pos[1];
-
-                /*
-        var content = '<h3>' + e.label + '</h3>' +
-                '<p>' +
-                e.value +
-                '</p>';
-                */
-
-        var content = '<p>' + e.point.y + '</p>';
-
-        nv.tooltip.show([left, top], content, e.value < 0 ? 'n' : 's');
-    });
-
-    graph.dispatch.on('elementMouseout', function(e) {
-        nv.tooltip.cleanup();
-    });
-
-    /*
-    graph.dispatch.on('elementClick', function(e) {
-        console.log("Bar Click",e);
-    });
-
-    graph.dispatch.on('chartClick', function(e) {
-        console.log("Chart Click",e);
-    });
-
-    graph.dispatch.on('chartClick', function(e) {
-        console.log('Click Switching to');
-        if (td === 0) {
-            d3.select("#test1")
-                    .datum(testdata2)
-                    .call(graph);
-            td = 1;
-
-        } else {
-            d3.select("#test1")
-                    .datum(testdata)
-                    .call(graph);
-            td = 0;
-        }
-      });
-    */
-
-
-    window.onresize = function() {
-      var width = nv.utils.windowSize().width - 40,
-          height = nv.utils.windowSize().height - 40;
-
-      graph
-        .width(width)
-        .height(height)
-
-      d3.select("#test1")
-          .attr('width', width)
-          .attr('height', height)
-        .call(graph);
-    };
-  }
-});
-
-
-
-
-
-//Simple test data generators
-
-function sinAndCos() {
-  var sin = [],
-      cos = [];
-
-  for (var i = 0; i < 100; i++) {
-    sin.push({x: i, y: Math.sin(i/10)});
-    cos.push({x: i, y: .5 * Math.cos(i/10)});
-  }
-
-  return [
-    {
-      values: sin,
-      key: "Sine Wave",
-      color: "#ff7f0e"
-    },
-    {
-      values: cos,
-      key: "Cosine Wave",
-      color: "#2ca02c"
-    }
-  ];
-}
-
-
-function sinData() {
-  var sin = [];
-
-  for (var i = 0; i < 100; i++) {
-    sin.push({x: i, y: Math.sin(i/10)});
-  }
-
-  return [
-    {
-      values: sin,
-      key: "Sine Wave",
-      color: "#ff7f0e"
-    }
-  ];
-}
-
-</script>
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/historicalBarChart.html b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/historicalBarChart.html
deleted file mode 100755
index c196391c..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/historicalBarChart.html
+++ /dev/null
@@ -1,106 +0,0 @@
-<!DOCTYPE html>
-<meta charset="utf-8">
-<link href="../src/nv.d3.css" rel="stylesheet" type="text/css">
-<style>
-
-body {
-  overflow-y:scroll;
-}
-
-text {
-  font: 12px sans-serif;
-}
-
-</style>
-<body class='with-3d-shadow with-transitions'>
-
-<div style="width: 100%; height: 400px;">
-<svg id="test1"></svg>
-</div>
-<script src="../lib/d3.v3.js"></script>
-<script src="../nv.d3.js"></script>
-<script src="../src/models/axis.js"></script>
-<script src="../src/models/historicalBar.js"></script>
-<script src="../src/models/historicalBarChart.js"></script>
-<script src="../src/utils.js"></script>
-
-<script> 
-
-var chart;
-nv.addGraph(function() {
-  chart = nv.models.historicalBarChart();
-  chart
-    .margin({left: 100, bottom: 100})
-    .x(function(d,i) { return i })
-    .transitionDuration(250)
-    ;
-
-  // chart sub-models (ie. xAxis, yAxis, etc) when accessed directly, return themselves, not the parent chart, so need to chain separately
-  chart.xAxis
-    .axisLabel("Time (s)")
-    .tickFormat(d3.format(',.1f'));
-
-  chart.yAxis
-    .axisLabel('Voltage (v)')
-    .tickFormat(d3.format(',.2f'));
-
-  chart.showXAxis(true);
-
-  d3.select('#test1')
-    .datum(sinData())
-    .transition().duration(0)
-    .call(chart);
-
-  //TODO: Figure out a good way to do this automatically
-  nv.utils.windowResize(chart.update);
-  //nv.utils.windowResize(function() { d3.select('#chart1 svg').call(chart) });
-
-  chart.dispatch.on('stateChange', function(e) { nv.log('New State:', JSON.stringify(e)); });
-
-  return chart;
-});
-
-
-//Simple test data generators
-
-function sinAndCos() {
-  var sin = [],
-      cos = [];
-
-  for (var i = 0; i < 100; i++) {
-    sin.push({x: i, y: Math.sin(i/10)});
-    cos.push({x: i, y: .5 * Math.cos(i/10)});
-  }
-
-  return [
-    {
-      values: sin,
-      key: "Sine Wave",
-      color: "#ff7f0e"
-    },
-    {
-      values: cos,
-      key: "Cosine Wave",
-      color: "#2ca02c"
-    }
-  ];
-}
-
-
-function sinData() {
-  var sin = [];
-
-  for (var i = 0; i < 100; i++) {
-    sin.push({x: i, y: Math.sin(i/10)});
-  }
-
-  return [
-    {
-      values: sin,
-      key: "Sine Wave",
-      color: "#ff7f0e"
-    }
-  ];
-}
-
-</script>
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/horizon.html b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/horizon.html
deleted file mode 100755
index 8c49bdbe..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/horizon.html
+++ /dev/null
@@ -1,163 +0,0 @@
-<!DOCTYPE html>
-<meta charset="utf-8">
-<link href="../src/nv.d3.css" rel="stylesheet" type="text/css">
-<style>
-
-  /*
-* {
-  margin: 0;
-  padding: 0;
-  border: 0;
-}
-*/
-
-
-body {
-  font-family: sans-serif;
-}
-
-svg {
-  top: 10px;
-  left: 10px;
-  position: absolute;
-}
-
-svg > g > path {
-  pointer-events: none;
-}
-
-.nv-horizonBackground {
-  fill: none;
-  stroke: none;
-  pointer-events: all;
-}
-
-#horizon-controls {
-  position: absolute;
-  width: 940px;
-  padding: 10px;
-  z-index: 1;
-}
-
-#horizon-bands {
-  float: right;
-}
-
-
-</style>
-<body>
-
-  <div id="wrap">
-
-    <div id="horizon-controls">
-      <input name="mode" type="radio" value="mirror" id="horizon-mode-mirror" checked><label for="horizon-mode-mirror"> Mirror</label>
-      <input name="mode" type="radio" value="offset" id="horizon-mode-offset"><label for="horizon-mode-offset"> Offset</label>
-      <span id="horizon-bands"><span id="horizon-bands-value">1</span> <button class="first">&#x2212;</button><button class="last">+</button></span>
-    </div>
-    <div><svg id="chart1"></svg></div>
-
-  </div>
-
-
-<script src="../lib/d3.v2.js"></script>
-<script src="../lib/horizon.js"></script>
-<script src="../nv.d3.js"></script>
-<script src="../src/utils.js"></script>
-<script>
-
-
-//TODO: create a nv.models.horizonChart model 
-// (if need be an nv.models.horizon model as well, but might get away with just using d3.horizon)
-// the horizontChart model should have a "tooltip" like functionality that shows a point over the 
-// current value based on the mouse's x position
-
-var width = 960,
-    height = 300;
-
-nv.addGraph(function() {
-  var data = sine();
-
-  var chart = d3.horizon()
-    .width(width)
-    .height(height)
-    .bands(1)
-    .mode("mirror")
-    .interpolate("basis");
-
-  var svg = d3.select('#chart1').attr('width', width).attr('height', height);
-
-  var bg = svg.append('rect').attr('class', 'nv-horizonBackground').attr('height', height).attr('width', width);
-
-  svg.datum(data).call(chart);
-
-  var point = svg.append('circle').attr('class', 'nv-hoverPoint')
-      .attr('r', '4')
-      .attr('cx', -3)
-      .attr('cy', -3);
-
-  // Enable mode buttons.
-  d3.selectAll("#horizon-controls input[name=mode]").on("change", function() {
-    svg.call(chart.duration(0).mode(this.value));
-  });
-
-  // Enable bands buttons.
-  d3.selectAll("#horizon-bands button").data([-1, 1]).on("click", function(d) {
-    var n = Math.max(1, chart.bands() + d);
-    d3.select("#horizon-bands-value").text(n);
-    svg.call(chart.duration(1000).bands(n).height(height / n));
-
-    //just updating point temporarily here to have it not be visible on band change until user moves his mouse over the chart
-    point
-      .attr('cx', -3)
-      .attr('cy', -3)
-  });
-
-
-  //****THE CHANGES MADE TO THIS EXAMPLE BY ME ARE VERY UGLY.... TODO: Fix/Clean up after all functionality is correct
-  bg.on('mousemove', function() {
-    var m1 = d3.mouse(this);
-    var x = m1[0];
-    var scales = svg.node().__chart__;
-    var i = Math.round( scales.x.invert(x) );
-    //var y = (data[i][1] < 0 || chart.mode() == 'mirror' ? height : 0) - scales.y(chart.mode() == 'mirror' ? Math.abs(data[i][1]) : data[i][1] );
-    var y = height - scales.y(chart.mode() == 'mirror' ? Math.abs(data[i][1]) : data[i][1] ) - (chart.mode() == 'offset' && data[i][1] < 0 ? height : 0  );
-    var t = scales.t(data[i][1]);
-    var bandRange = scales.y.range()[1];
-
-    y = y % (height / chart.bands());
-    //nv.log(y, height, y % height);
-
-    //nv.log(scales.y.range(), scales.y.domain());
-
-    //nv.log( x, i, data[i], y )
-    //nv.log(scales);
-
-    point
-      .attr('cx', scales.x(i))
-      .attr('cy', y)
-      .attr('transform',
-        'translate(0,' + chart.bands + ')'
-      );
-
-    //var m2 = d3.mouse(d3.select('body').node());
-    //nv.log(m1, m2);
-    //nv.log(d3.event, this, d3.mouse(this));
-  });
-
-  return chart;
-});
-
-
-
-function sine() {
-  var sin = [];
-
-  for (var i = 0; i < 200; i++) {
-    sin.push([ i, Math.sin(i/10) + .2 ]);
-  }
-
-  return sin;
-}
-
-
-</script>
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/images/grey-minus.png b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/images/grey-minus.png
deleted file mode 100755
index f1e6768d..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/images/grey-minus.png
+++ /dev/null
Binary files differdiff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/images/grey-plus.png b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/images/grey-plus.png
deleted file mode 100755
index 10b73a51..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/images/grey-plus.png
+++ /dev/null
Binary files differdiff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/images/nvd3_sampleLineChart1.png b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/images/nvd3_sampleLineChart1.png
deleted file mode 100755
index 05d7ef2a..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/images/nvd3_sampleLineChart1.png
+++ /dev/null
Binary files differdiff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/indentedtree.html b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/indentedtree.html
deleted file mode 100755
index a5a1a06a..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/indentedtree.html
+++ /dev/null
@@ -1,127 +0,0 @@
-<!DOCTYPE html>
-<meta charset="utf-8">
-<link href="../src/nv.d3.css" rel="stylesheet" type="text/css">
-<style>
-
-body {
-  overflow-y:scroll;
-}
-
-</style>
-<body>
-
-  <div id="example1" style="width:600px"></div>
-
-
-<script src="../lib/d3.v3.js"></script>
-<script src="../nv.d3.js"></script>
-<script src="../src/utils.js"></script>
-<script src="../src/models/indentedTree.js"></script>
-<script>
-
-// THIS API WILL BE CHANGING!!  this was ported from a different graphing collection, its only been halfway ported to the nvd3 style
-
-var testTree = [{
-  key: 'NVD3',
-  url: 'http://novus.github.com/nvd3',
-  values: [
-    {
-      key: "Charts",
-      _values: [
-        {
-          key: "Simple Line",
-          type: "Historical",
-          url: "http://novus.github.com/nvd3/ghpages/line.html"
-        },
-        {
-          key: "Scatter / Bubble",
-          type: "Snapshot",
-          url: "http://novus.github.com/nvd3/ghpages/scatter.html"
-        },
-        {
-          key: "Stacked / Stream / Expanded Area",
-          type: "Historical",
-          url: "http://novus.github.com/nvd3/ghpages/stackedArea.html"
-        },
-        {
-          key: "Discrete Bar",
-          type: "Snapshot",
-          url: "http://novus.github.com/nvd3/ghpages/discreteBar.html"
-        },
-        {
-          key: "Grouped / Stacked Multi-Bar",
-          type: "Snapshot / Historical",
-          url: "http://novus.github.com/nvd3/ghpages/multiBar.html"
-        },
-        {
-          key: "Horizontal Grouped Bar",
-          type: "Snapshot",
-          url: "http://novus.github.com/nvd3/ghpages/multiBarHorizontal.html"
-        },
-        {
-          key: "Line and Bar Combo",
-          type: "Historical",
-          url: "http://novus.github.com/nvd3/ghpages/linePlusBar.html"
-        },
-        {
-          key: "Cumulative Line",
-          type: "Historical",
-          url: "http://novus.github.com/nvd3/ghpages/cumulativeLine.html"
-        },
-        {
-          key: "Line with View Finder",
-          type: "Historical",
-          url: "http://novus.github.com/nvd3/ghpages/lineWithFocus.html"
-        }
-      ]
-    },
-    {
-      key: "Chart Components",
-      _values: [
-        {
-          key: "Legend",
-          type: "Universal",
-          url: "http://novus.github.com/nvd3/examples/legend.html"
-        }
-      ]
-    }
-  ]
-}];
-
-
-
-var testColumns = [
-  {
-    key: 'key',
-    label: 'Name',
-    showCount: true,
-    width: '75%',
-    type: 'text',
-    classes: function(d) { return d.url ? 'clickable name' : 'name' },
-    click: function(d) {
-       if (d.url) window.location.href = d.url;
-    }
-  },
-  {
-    key: 'type',
-    label: 'Type',
-    width: '25%',
-    type: 'text'
-  }
-];
-
-
-
-nv.addGraph(function() {
-  var chart = nv.models.indentedTree()
-                .columns(testColumns);
-
-  d3.select('#example1')
-      .datum(testTree)
-    .call(chart);
-});
-
-
-
-
-</script>
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/index.html b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/index.html
deleted file mode 100755
index 65892485..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/index.html
+++ /dev/null
@@ -1,98 +0,0 @@
-
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"><html>
-<title>NVD3 Examples List</title>
-<body>
-<style>
-body {
-	font-family: Helvetica;
-	/* IE10 Consumer Preview */ 
-	background-image: -ms-radial-gradient(left top, circle farthest-corner, #FFFFFF 0%, #DEE2FF 100%);
-
-	/* Mozilla Firefox */ 
-	background-image: -moz-radial-gradient(left top, circle farthest-corner, #FFFFFF 0%, #DEE2FF 100%);
-
-	/* Opera */ 
-	background-image: -o-radial-gradient(left top, circle farthest-corner, #FFFFFF 0%, #DEE2FF 100%);
-
-	/* Webkit (Safari/Chrome 10) */ 
-	background-image: -webkit-gradient(radial, left top, 0, left top, 1012, color-stop(0, #FFFFFF), color-stop(1, #DEE2FF));
-
-	/* Webkit (Chrome 11+) */ 
-	background-image: -webkit-radial-gradient(left top, circle farthest-corner, #FFFFFF 0%, #DEE2FF 100%);
-
-	/* W3C Markup, IE10 Release Preview */ 
-	background-image: radial-gradient(circle farthest-corner at left top, #FFFFFF 0%, #DEE2FF 100%);
-}
-
-ul {
-	list-style: none;
-	float: left;
-	margin-right: 20px;
-	border-right: solid 1px #ccc;
-}
-
-li {
-	padding: 8px;
-	min-width: 220px;
-}
-
-a {
-	text-decoration: none;
-	display:block;
-}
-
-li:hover {
-	background-color: #ccc;
-}
-</style>
-<h2>NVD3 Examples List</h2>
-<ul>
-<li><a href="bullet.html">Bullet</a>
-<li><a href="bulletChart.html">BulletChart</a>
-<li><a href="crossfilter.html">Crossfilter</a>
-<li><a href="crossfilterWithDimentions.html">CrossfilterWithDimentions</a>
-<li><a href="crossfilterWithTables.html">CrossfilterWithTables</a>
-<li><a href="cumulativeLineChart.html">CumulativeLineChart</a>
-<li><a href="discreteBarChart.html">DiscreteBarChart</a>
-<li><a href="historicalBar.html">HistoricalBar</a>
-<li><a href="historicalBarChart.html">HistoricalBarChart</a>
-<li><a href="horizon.html">Horizon</a>
-<li><a href="indentedtree.html">Indentedtree</a>
-<li><a href="legend.html">Legend</a>
-<li><a href="line.html">Line</a>
-<li><a href="lineChart.html">LineChart</a>
-<li><a href="lineChartSVGResize.html">LineChartSVGResize</a>
-<li><a href="linePlusBarChart.html">LinePlusBarChart</a>
-<li><a href="linePlusBarWithFocusChart.html">LinePlusBarWithFocusChart</a>
-<li><a href="lineWithFisheyeChart.html">LineWithFisheyeChart</a>
-<li><a href="lineWithFocusChart.html">LineWithFocusChart</a>
-</ul>
-<ul>
-<li><a href="multiBar.html">MultiBar</a>
-<li><a href="multiBarChart.html">MultiBarChart</a>
-<li><a href="multiBarHorizontalChart.html">MultiBarHorizontalChart</a>
-<li><a href="multiChart.html">MultiChart</a>
-<li><a href="parallelCoordinates.html">ParallelCoordinates</a>
-<li><a href="pie.html">Pie</a>
-<li><a href="pieChart.html">PieChart</a>
-<li><a href="scatter.html">Scatter</a>
-<li><a href="scatterChart.html">ScatterChart</a>
-<li><a href="scatterPlusLineChart.html">ScatterPlusLineChart</a>
-<li><a href="sparkline.html">Sparkline</a>
-<li><a href="sparklinePlus.html">SparklinePlus</a>
-<li><a href="stackedArea.html">StackedArea</a>
-<li><a href="stackedAreaChart.html">StackedAreaChart</a>
-</ul>
-
-<ul>
-	<strong>Test pages</strong>
-	<li><a href="../test/lineChartTest.html">Line Chart</a></li>
-	<li><a href="../test/pieChartTest.html">Pie Chart</a></li>
-	<li><a href="../test/ScatterChartTest.html">Scatter Chart</a></li>
-	<li><a href="../test/stackedAreaChartTest.html">Stacked Area Chart</a></li>
-	<li><a href="../test/multiBarChartTest.html">Multibar Chart</a></li>
-	<li><a href="../test/polylinearTest.html">Polylinear Scale Line Chart</a></li>
-	<li><a href="../test/realTimeChartTest.html">Real Time Chart</a></li>
-</ul>
-</body>
-</html>
\ No newline at end of file
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/legend.html b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/legend.html
deleted file mode 100755
index b5211ab0..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/legend.html
+++ /dev/null
@@ -1,76 +0,0 @@
-<!DOCTYPE html>
-<meta charset="utf-8">
-<link href="../src/nv.d3.css" rel="stylesheet" type="text/css">
-<style>
-
-</style>
-<body>
-
-<svg id="test1"></svg>
-
-<script src="../lib/d3.v3.js"></script>
-<script src="../nv.d3.js"></script>
-<script src="../src/utils.js"></script>
-<script src="../src/models/legend.js"></script>
-<script>
-
-
-//Format A
-nv.addGraph({
-  generate: function() {
-    var width = 500,
-        height = 20;
-
-    var chart = nv.models.legend()
-                .width(width)
-                .height(height);
-
-    chart.dispatch.on('legendClick', function(d,i) { console.log(d,i) });
-
-    //chart.xaxis.tickFormat(d3.format(".02f"))
-
-    d3.select('#test1')
-      .attr('width', width)
-      .attr('height', height)
-      .datum(sinAndCos())
-      .call(chart);
-
-    return chart;
-  },
-  callback: function(graph) {
-    var chart = graph,
-        height = chart.height();
-
-    d3.select('#test1')
-        .attr('height', height)
-        .call(chart)
-  }
-});
-
-
-
-function sinAndCos() {
-  return [
-    {
-      key: "Sine Wave"
-    },
-    {
-      key: "A Very Long Series Label"
-    },
-    {
-      key: "A Very Long Series Label"
-    },
-    {
-      key: "A Very Long Series Label"
-    },
-    {
-      key: "Cosine Wave"
-    },
-    {
-      key: "Another test label"
-    }
-  ];
-}
-
-
-</script>
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/line.html b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/line.html
deleted file mode 100755
index 917437e3..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/line.html
+++ /dev/null
@@ -1,96 +0,0 @@
-<!DOCTYPE html>
-<meta charset="utf-8">
-<link href="../src/nv.d3.css" rel="stylesheet" type="text/css">
-<style>
-
-body {
-  overflow-y:scroll;
-}
-
-</style>
-<body>
-
-<svg id="test1"></svg>
-
-<script src="../lib/d3.v3.js"></script>
-<script src="../nv.d3.js"></script>
-<script src="../src/models/legend.js"></script>
-<script src="../src/models/line.js"></script>
-<script src="../src/utils.js"></script>
-<script>
-
-
-
-//Format A
-nv.addGraph({
-  generate: function() {
-    var width = nv.utils.windowSize().width - 40,
-        height = nv.utils.windowSize().height - 40;
-
-    var chart = nv.models.line()
-                .width(width)
-                .height(height)
-                .margin({top: 20, right: 20, bottom: 20, left: 20})
-
-
-    d3.select('#test1')
-      .attr('width', width)
-      .attr('height', height)
-      .datum(sinAndCos())
-      .call(chart);
-
-    return chart;
-  },
-  callback: function(graph) {
-    window.onresize = function() {
-      var width = nv.utils.windowSize().width - 40,
-          height = nv.utils.windowSize().height - 40,
-          margin = graph.margin();
-
-
-      if (width < margin.left + margin.right + 20)
-        width = margin.left + margin.right + 20;
-
-      if (height < margin.top + margin.bottom + 20)
-        height = margin.top + margin.bottom + 20;
-
-
-      graph
-         .width(width)
-         .height(height);
-
-      d3.select('#test1')
-        .attr('width', width)
-        .attr('height', height)
-        .call(graph);
-    };
-  }
-});
-
-
-
-function sinAndCos() {
-  var sin = [],
-      cos = [];
-
-  for (var i = 0; i < 100; i++) {
-    sin.push({x: i, y: Math.sin(i/10)});
-    cos.push({x: i, y: .5 * Math.cos(i/10)});
-  }
-
-  return [
-    {
-      values: sin,
-      key: "Sine Wave",
-      color: "#ff7f0e"
-    },
-    {
-      values: cos,
-      key: "Cosine Wave",
-      color: "#2ca02c"
-    }
-  ];
-}
-
-
-</script>
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/lineChart.html b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/lineChart.html
deleted file mode 100755
index 5e6e56d5..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/lineChart.html
+++ /dev/null
@@ -1,132 +0,0 @@
-<!DOCTYPE html>
-<meta charset="utf-8">
-
-<link href="../src/nv.d3.css" rel="stylesheet" type="text/css">
-
-<style>
-
-body {
-  overflow-y:scroll;
-}
-
-text {
-  font: 12px sans-serif;
-}
-
-svg {
-  display: block;
-}
-
-#chart1 svg {
-  height: 500px;
-  min-width: 200px;
-  min-height: 100px;
-/*
-  margin: 50px;
-  Minimum height and width is a good idea to prevent negative SVG dimensions...
-  For example width should be =< margin.left + margin.right + 1,
-  of course 1 pixel for the entire chart would not be very useful, BUT should not have errors
-*/
-
-}
-#chart1 {
-  margin-top: 200px;
-  margin-left: 100px;
-}
-</style>
-<body class='with-3d-shadow with-transitions'>
-
-<div id="chart1" >
-  <svg style="height: 500px;"></svg>
-</div>
-
-<script src="../lib/d3.v3.js"></script>
-<script src="../nv.d3.js"></script>
-<script src="../src/tooltip.js"></script>
-<script src="../src/utils.js"></script>
-<script src="../src/interactiveLayer.js"></script>
-<script src="../src/models/legend.js"></script>
-<script src="../src/models/axis.js"></script>
-<script src="../src/models/scatter.js"></script>
-<script src="../src/models/line.js"></script>
-<script src="../src/models/lineChart.js"></script>
-
-<script>
-// Wrapping in nv.addGraph allows for '0 timeout render', stores rendered charts in nv.graphs, and may do more in the future... it's NOT required
-var chart;
-
-nv.addGraph(function() {
-  chart = nv.models.lineChart()
-  .options({
-    margin: {left: 100, bottom: 100},
-    x: function(d,i) { return i},
-    showXAxis: true,
-    showYAxis: true,
-    transitionDuration: 250
-  })
-  ;
-
-  // chart sub-models (ie. xAxis, yAxis, etc) when accessed directly, return themselves, not the parent chart, so need to chain separately
-  chart.xAxis
-    .axisLabel("Time (s)")
-    .tickFormat(d3.format(',.1f'));
-
-  chart.yAxis
-    .axisLabel('Voltage (v)')
-    .tickFormat(d3.format(',.2f'))
-    ;
-
-  d3.select('#chart1 svg')
-    .datum(sinAndCos())
-    .call(chart);
-
-  //TODO: Figure out a good way to do this automatically
-  nv.utils.windowResize(chart.update);
-  //nv.utils.windowResize(function() { d3.select('#chart1 svg').call(chart) });
-
-  chart.dispatch.on('stateChange', function(e) { nv.log('New State:', JSON.stringify(e)); });
-
-  return chart;
-});
-
-function sinAndCos() {
-  var sin = [],
-    cos = [],
-    rand = [],
-    rand2 = []
-    ;
-
-  for (var i = 0; i < 100; i++) {
-    sin.push({x: i, y: i % 10 == 5 ? null : Math.sin(i/10) }); //the nulls are to show how defined works
-    cos.push({x: i, y: .5 * Math.cos(i/10)});
-    rand.push({x:i, y: Math.random() / 10});
-    rand2.push({x: i, y: Math.cos(i/10) + Math.random() / 10 })
-  }
-
-  return [
-    {
-      area: true,
-      values: sin,
-      key: "Sine Wave",
-      color: "#ff7f0e"
-    },
-    {
-      values: cos,
-      key: "Cosine Wave",
-      color: "#2ca02c"
-    },
-    {
-      values: rand,
-      key: "Random Points",
-      color: "#2222ff"
-    }
-    ,
-    {
-      values: rand2,
-      key: "Random Cosine",
-      color: "#667711"
-    }
-  ];
-}
-
-</script>
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/lineChartSVGResize.html b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/lineChartSVGResize.html
deleted file mode 100755
index 51d81758..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/lineChartSVGResize.html
+++ /dev/null
@@ -1,151 +0,0 @@
-<!DOCTYPE html>
-<meta charset="utf-8">
-
-<link href="../src/nv.d3.css" rel="stylesheet" type="text/css">
-
-<style>
-
-body {
-  overflow-y:scroll;
-}
-
-text {
-  font: 12px sans-serif;
-}
-
-svg {
-  display: block;
-}
-
-</style>
-<body>
-  <div id="chartZoom">
-    <a href="#" id="zoomIn">Zoom In</a> <a href="#" id="zoomOut">Zoom Out</a>
-  </div>
-
-  <div id="chart1" class='with-transitions'>
-    <svg></svg>
-  </div>
-
-<script src="../lib/d3.v3.js"></script>
-<script src="../nv.d3.js"></script>
-<script src="../src/tooltip.js"></script>
-<script src="../src/utils.js"></script>
-<script src="../src/models/legend.js"></script>
-<script src="../src/models/axis.js"></script>
-<script src="../src/models/scatter.js"></script>
-<script src="../src/models/line.js"></script>
-<script src="../src/models/lineChart.js"></script>
-<script>
-
-
-nv.addGraph(function() {
-  var chart = nv.models.lineChart();
-  var fitScreen = false;
-  var width = 600;
-  var height = 300;
-  var zoom = 1;
-
-  chart.useInteractiveGuideline(true);
-  chart.xAxis
-      .tickFormat(d3.format(',r'));
-
-  chart.yAxis
-      .axisLabel('Voltage (v)')
-      .tickFormat(d3.format(',.2f'));
-
-  d3.select('#chart1 svg')
-      .attr('perserveAspectRatio', 'xMinYMid')
-      .attr('width', width)
-      .attr('height', height)
-      .datum(sinAndCos());
-
-  setChartViewBox();
-  resizeChart();
-
-  // These resizes both do the same thing, and require recalculating the chart
-  //nv.utils.windowResize(chart.update);
-  //nv.utils.windowResize(function() { d3.select('#chart1 svg').call(chart) });
-  nv.utils.windowResize(resizeChart);
-
-  d3.select('#zoomIn').on('click', zoomIn);
-  d3.select('#zoomOut').on('click', zoomOut);
-
-
-  function setChartViewBox() {
-    var w = width * zoom,
-        h = height * zoom;
-
-    chart
-        .width(w)
-        .height(h);
-
-    d3.select('#chart1 svg')
-        .attr('viewBox', '0 0 ' + w + ' ' + h)
-      .transition().duration(500)
-        .call(chart);
-  }
-
-  function zoomOut() {
-    zoom += .25;
-    setChartViewBox();
-  }
-
-  function zoomIn() {
-    if (zoom <= .5) return;
-    zoom -= .25;
-    setChartViewBox();
-  }
-
-  // This resize simply sets the SVG's dimensions, without a need to recall the chart code
-  // Resizing because of the viewbox and perserveAspectRatio settings
-  // This scales the interior of the chart unlike the above
-  function resizeChart() {
-    var container = d3.select('#chart1');
-    var svg = container.select('svg');
-
-    if (fitScreen) {
-      // resize based on container's width AND HEIGHT
-      var windowSize = nv.utils.windowSize();
-      svg.attr("width", windowSize.width);
-      svg.attr("height", windowSize.height);
-    } else {
-      // resize based on container's width
-      var aspect = chart.width() / chart.height();
-      var targetWidth = parseInt(container.style('width'));
-      svg.attr("width", targetWidth);
-      svg.attr("height", Math.round(targetWidth / aspect));
-    }
-  };
-
-
-  return chart;
-});
-
-
-
-function sinAndCos() {
-  var sin = [],
-      cos = [];
-
-  for (var i = 0; i < 100; i++) {
-    sin.push({x: i, y: Math.sin(i/10) });
-    cos.push({x: i, y: .5 * Math.cos(i/10)});
-  }
-
-  return [
-    {
-      values: sin,
-      key: "Sine Wave",
-      color: "#ff7f0e"
-    },
-    {
-      values: cos,
-      key: "Cosine Wave",
-      color: "#2ca02c"
-    }
-  ];
-}
-
-
-</script>
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/linePlusBarChart.html b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/linePlusBarChart.html
deleted file mode 100755
index 2b6aa15c..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/linePlusBarChart.html
+++ /dev/null
@@ -1,115 +0,0 @@
-<!DOCTYPE html>
-<meta charset="utf-8">
-
-<link href="../src/nv.d3.css" rel="stylesheet" type="text/css">
-
-<style>
-
-body {
-  overflow-y:scroll;
-}
-
-text {
-  font: 12px sans-serif;
-}
-
-#chart1 svg {
-  height: 500px;
-  margin: 10px;
-  min-width: 100px;
-  min-height: 100px;
-/*
-  Minimum height and width is a good idea to prevent negative SVG dimensions...
-  For example width should be =< margin.left + margin.right + 1,
-  of course 1 pixel for the entire chart would not be very useful, BUT should not have errors
-*/
-}
-
-</style>
-<body>
-
-  <div id="chart1" class='with-3d-shadow with-transitions'>
-    <svg> </svg>
-  </div>
-
-<script src="../lib/d3.v3.js"></script>
-<script src="../nv.d3.js"></script>
-<script src="../src/utils.js"></script>
-<script src="../src/tooltip.js"></script>
-<script src="../src/models/legend.js"></script>
-<script src="../src/models/axis.js"></script>
-<script src="../src/models/scatter.js"></script>
-<script src="../src/models/line.js"></script>
-<script src="../src/models/historicalBar.js"></script>
-<script src="../src/models/linePlusBarChart.js"></script>
-<script>
-
-
-var testdata = [
-  {
-    "key" : "Quantity" ,
-    "bar": true,
-    "values" : [ [ 1136005200000 , 1271000.0] , [ 1138683600000 , 1271000.0] , [ 1141102800000 , 1271000.0] , [ 1143781200000 , 0] , [ 1146369600000 , 0] , [ 1149048000000 , 0] , [ 1151640000000 , 0] , [ 1154318400000 , 0] , [ 1156996800000 , 0] , [ 1159588800000 , 3899486.0] , [ 1162270800000 , 3899486.0] , [ 1164862800000 , 3899486.0] , [ 1167541200000 , 3564700.0] , [ 1170219600000 , 3564700.0] , [ 1172638800000 , 3564700.0] , [ 1175313600000 , 2648493.0] , [ 1177905600000 , 2648493.0] , [ 1180584000000 , 2648493.0] , [ 1183176000000 , 2522993.0] , [ 1185854400000 , 2522993.0] , [ 1188532800000 , 2522993.0] , [ 1191124800000 , 2906501.0] , [ 1193803200000 , 2906501.0] , [ 1196398800000 , 2906501.0] , [ 1199077200000 , 2206761.0] , [ 1201755600000 , 2206761.0] , [ 1204261200000 , 2206761.0] , [ 1206936000000 , 2287726.0] , [ 1209528000000 , 2287726.0] , [ 1212206400000 , 2287726.0] , [ 1214798400000 , 2732646.0] , [ 1217476800000 , 2732646.0] , [ 1220155200000 , 2732646.0] , [ 1222747200000 , 2599196.0] , [ 1225425600000 , 2599196.0] , [ 1228021200000 , 2599196.0] , [ 1230699600000 , 1924387.0] , [ 1233378000000 , 1924387.0] , [ 1235797200000 , 1924387.0] , [ 1238472000000 , 1756311.0] , [ 1241064000000 , 1756311.0] , [ 1243742400000 , 1756311.0] , [ 1246334400000 , 1743470.0] , [ 1249012800000 , 1743470.0] , [ 1251691200000 , 1743470.0] , [ 1254283200000 , 1519010.0] , [ 1256961600000 , 1519010.0] , [ 1259557200000 , 1519010.0] , [ 1262235600000 , 1591444.0] , [ 1264914000000 , 1591444.0] , [ 1267333200000 , 1591444.0] , [ 1270008000000 , 1543784.0] , [ 1272600000000 , 1543784.0] , [ 1275278400000 , 1543784.0] , [ 1277870400000 , 1309915.0] , [ 1280548800000 , 1309915.0] , [ 1283227200000 , 1309915.0] , [ 1285819200000 , 1331875.0] , [ 1288497600000 , 1331875.0] , [ 1291093200000 , 1331875.0] , [ 1293771600000 , 1331875.0] , [ 1296450000000 , 1154695.0] , [ 1298869200000 , 1154695.0] , [ 1301544000000 , 1194025.0] , [ 1304136000000 , 1194025.0] , [ 1306814400000 , 1194025.0] , [ 1309406400000 , 1194025.0] , [ 1312084800000 , 1194025.0] , [ 1314763200000 , 1244525.0] , [ 1317355200000 , 475000.0] , [ 1320033600000 , 475000.0] , [ 1322629200000 , 475000.0] , [ 1325307600000 , 690033.0] , [ 1327986000000 , 690033.0] , [ 1330491600000 , 690033.0] , [ 1333166400000 , 514733.0] , [ 1335758400000 , 514733.0]]
-  },
-  {
-    "key" : "Price" ,
-    "values" : [ [ 1136005200000 , 71.89] , [ 1138683600000 , 75.51] , [ 1141102800000 , 68.49] , [ 1143781200000 , 62.72] , [ 1146369600000 , 70.39] , [ 1149048000000 , 59.77] , [ 1151640000000 , 57.27] , [ 1154318400000 , 67.96] , [ 1156996800000 , 67.85] , [ 1159588800000 , 76.98] , [ 1162270800000 , 81.08] , [ 1164862800000 , 91.66] , [ 1167541200000 , 84.84] , [ 1170219600000 , 85.73] , [ 1172638800000 , 84.61] , [ 1175313600000 , 92.91] , [ 1177905600000 , 99.8] , [ 1180584000000 , 121.191] , [ 1183176000000 , 122.04] , [ 1185854400000 , 131.76] , [ 1188532800000 , 138.48] , [ 1191124800000 , 153.47] , [ 1193803200000 , 189.95] , [ 1196398800000 , 182.22] , [ 1199077200000 , 198.08] , [ 1201755600000 , 135.36] , [ 1204261200000 , 125.02] , [ 1206936000000 , 143.5] , [ 1209528000000 , 173.95] , [ 1212206400000 , 188.75] , [ 1214798400000 , 167.44] , [ 1217476800000 , 158.95] , [ 1220155200000 , 169.53] , [ 1222747200000 , 113.66] , [ 1225425600000 , 107.59] , [ 1228021200000 , 92.67] , [ 1230699600000 , 85.35] , [ 1233378000000 , 90.13] , [ 1235797200000 , 89.31] , [ 1238472000000 , 105.12] , [ 1241064000000 , 125.83] , [ 1243742400000 , 135.81] , [ 1246334400000 , 142.43] , [ 1249012800000 , 163.39] , [ 1251691200000 , 168.21] , [ 1254283200000 , 185.35] , [ 1256961600000 , 188.5] , [ 1259557200000 , 199.91] , [ 1262235600000 , 210.732] , [ 1264914000000 , 192.063] , [ 1267333200000 , 204.62] , [ 1270008000000 , 235.0] , [ 1272600000000 , 261.09] , [ 1275278400000 , 256.88] , [ 1277870400000 , 251.53] , [ 1280548800000 , 257.25] , [ 1283227200000 , 243.1] , [ 1285819200000 , 283.75] , [ 1288497600000 , 300.98] , [ 1291093200000 , 311.15] , [ 1293771600000 , 322.56] , [ 1296450000000 , 339.32] , [ 1298869200000 , 353.21] , [ 1301544000000 , 348.5075] , [ 1304136000000 , 350.13] , [ 1306814400000 , 347.83] , [ 1309406400000 , 335.67] , [ 1312084800000 , 390.48] , [ 1314763200000 , 384.83] , [ 1317355200000 , 381.32] , [ 1320033600000 , 404.78] , [ 1322629200000 , 382.2] , [ 1325307600000 , 405.0] , [ 1327986000000 , 456.48] , [ 1330491600000 , 542.44] , [ 1333166400000 , 599.55] , [ 1335758400000 , 583.98] ]
-  }
-].map(function(series) {
-  series.values = series.values.map(function(d) { return {x: d[0], y: d[1] } });
-  return series;
-});
-
-/*
-//For testing single data point
-var testdata = [
-  {
-    "key" : "Quantity" ,
-    "bar": true,
-    "values" : [ [ 1136005200000 , 1271000.0] ]
-  } ,
-  {
-    "key" : "Price" ,
-    "values" : [ [ 1136005200000 , 71.89] ]
-  }
-].map(function(series) {
-  series.values = series.values.map(function(d) { return {x: d[0], y: d[1] } });
-  return series;
-});
-*/
-
-var chart;
-
-nv.addGraph(function() {
-    chart = nv.models.linePlusBarChart()
-        .margin({top: 30, right: 60, bottom: 50, left: 70})
-        .x(function(d,i) { return i })
-        .color(d3.scale.category10().range());
-
-    chart.xAxis.tickFormat(function(d) {
-      var dx = testdata[0].values[d] && testdata[0].values[d].x || 0;
-      return dx ? d3.time.format('%x')(new Date(dx)) : '';
-      })
-      .showMaxMin(false);
-
-    chart.y1Axis
-        .tickFormat(d3.format(',f'));
-
-    chart.y2Axis
-        .tickFormat(function(d) { return '$' + d3.format(',.2f')(d) });
-
-    chart.bars.forceY([0]).padData(false);
-    //chart.lines.forceY([0]);
-
-    d3.select('#chart1 svg')
-        .datum(testdata)
-      .transition().duration(500).call(chart);
-
-    nv.utils.windowResize(chart.update);
-
-    chart.dispatch.on('stateChange', function(e) { nv.log('New State:', JSON.stringify(e)); });
-
-    return chart;
-});
-
-</script>
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/linePlusBarWithFocusChart.html b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/linePlusBarWithFocusChart.html
deleted file mode 100755
index 4eac5d8d..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/linePlusBarWithFocusChart.html
+++ /dev/null
@@ -1,129 +0,0 @@
-<!DOCTYPE html>
-<meta charset="utf-8">
-
-<link href="../src/nv.d3.css" rel="stylesheet" type="text/css">
-
-<style>
-
-body {
-  overflow-y:scroll;
-}
-
-text {
-  font: 12px sans-serif;
-}
-
-#chart1 svg {
-  height: 500px;
-  margin: 10px;
-  min-width: 100px;
-  min-height: 100px;
-/*
-  Minimum height and width is a good idea to prevent negative SVG dimensions...
-  For example width should be =< margin.left + margin.right + 1,
-  of course 1 pixel for the entire chart would not be very useful, BUT should not have errors
-*/
-}
-
-</style>
-<body>
-
-  <div id="chart1" class='with-3d-shadow with-transitions'>
-    <svg> </svg>
-  </div>
-
-<script src="../lib/d3.v3.js"></script>
-<script src="../nv.d3.js"></script>
-<script src="../src/utils.js"></script>
-<script src="../src/tooltip.js"></script>
-<script src="../src/models/legend.js"></script>
-<script src="../src/models/axis.js"></script>
-<script src="../src/models/scatter.js"></script>
-<script src="../src/models/line.js"></script>
-<script src="../src/models/historicalBar.js"></script>
-<script src="../src/models/linePlusBarWithFocusChart.js"></script>
-<script>
-
-
-var testdata = [
-  {
-    "key" : "Quantity" ,
-    "bar": true,
-    "values" : [ [ 1136005200000 , 1271000.0] , [ 1138683600000 , 1271000.0] , [ 1141102800000 , 1271000.0] , [ 1143781200000 , 0] , [ 1146369600000 , 0] , [ 1149048000000 , 0] , [ 1151640000000 , 0] , [ 1154318400000 , 0] , [ 1156996800000 , 0] , [ 1159588800000 , 3899486.0] , [ 1162270800000 , 3899486.0] , [ 1164862800000 , 3899486.0] , [ 1167541200000 , 3564700.0] , [ 1170219600000 , 3564700.0] , [ 1172638800000 , 3564700.0] , [ 1175313600000 , 2648493.0] , [ 1177905600000 , 2648493.0] , [ 1180584000000 , 2648493.0] , [ 1183176000000 , 2522993.0] , [ 1185854400000 , 2522993.0] , [ 1188532800000 , 2522993.0] , [ 1191124800000 , 2906501.0] , [ 1193803200000 , 2906501.0] , [ 1196398800000 , 2906501.0] , [ 1199077200000 , 2206761.0] , [ 1201755600000 , 2206761.0] , [ 1204261200000 , 2206761.0] , [ 1206936000000 , 2287726.0] , [ 1209528000000 , 2287726.0] , [ 1212206400000 , 2287726.0] , [ 1214798400000 , 2732646.0] , [ 1217476800000 , 2732646.0] , [ 1220155200000 , 2732646.0] , [ 1222747200000 , 2599196.0] , [ 1225425600000 , 2599196.0] , [ 1228021200000 , 2599196.0] , [ 1230699600000 , 1924387.0] , [ 1233378000000 , 1924387.0] , [ 1235797200000 , 1924387.0] , [ 1238472000000 , 1756311.0] , [ 1241064000000 , 1756311.0] , [ 1243742400000 , 1756311.0] , [ 1246334400000 , 1743470.0] , [ 1249012800000 , 1743470.0] , [ 1251691200000 , 1743470.0] , [ 1254283200000 , 1519010.0] , [ 1256961600000 , 1519010.0] , [ 1259557200000 , 1519010.0] , [ 1262235600000 , 1591444.0] , [ 1264914000000 , 1591444.0] , [ 1267333200000 , 1591444.0] , [ 1270008000000 , 1543784.0] , [ 1272600000000 , 1543784.0] , [ 1275278400000 , 1543784.0] , [ 1277870400000 , 1309915.0] , [ 1280548800000 , 1309915.0] , [ 1283227200000 , 1309915.0] , [ 1285819200000 , 1331875.0] , [ 1288497600000 , 1331875.0] , [ 1291093200000 , 1331875.0] , [ 1293771600000 , 1331875.0] , [ 1296450000000 , 1154695.0] , [ 1298869200000 , 1154695.0] , [ 1301544000000 , 1194025.0] , [ 1304136000000 , 1194025.0] , [ 1306814400000 , 1194025.0] , [ 1309406400000 , 1194025.0] , [ 1312084800000 , 1194025.0] , [ 1314763200000 , 1244525.0] , [ 1317355200000 , 475000.0] , [ 1320033600000 , 475000.0] , [ 1322629200000 , 475000.0] , [ 1325307600000 , 690033.0] , [ 1327986000000 , 690033.0] , [ 1330491600000 , 690033.0] , [ 1333166400000 , 514733.0] , [ 1335758400000 , 514733.0]]
-  },
-  {
-    "key" : "Price" ,
-    "values" : [ [ 1136005200000 , 71.89] , [ 1138683600000 , 75.51] , [ 1141102800000 , 68.49] , [ 1143781200000 , 62.72] , [ 1146369600000 , 70.39] , [ 1149048000000 , 59.77] , [ 1151640000000 , 57.27] , [ 1154318400000 , 67.96] , [ 1156996800000 , 67.85] , [ 1159588800000 , 76.98] , [ 1162270800000 , 81.08] , [ 1164862800000 , 91.66] , [ 1167541200000 , 84.84] , [ 1170219600000 , 85.73] , [ 1172638800000 , 84.61] , [ 1175313600000 , 92.91] , [ 1177905600000 , 99.8] , [ 1180584000000 , 121.191] , [ 1183176000000 , 122.04] , [ 1185854400000 , 131.76] , [ 1188532800000 , 138.48] , [ 1191124800000 , 153.47] , [ 1193803200000 , 189.95] , [ 1196398800000 , 182.22] , [ 1199077200000 , 198.08] , [ 1201755600000 , 135.36] , [ 1204261200000 , 125.02] , [ 1206936000000 , 143.5] , [ 1209528000000 , 173.95] , [ 1212206400000 , 188.75] , [ 1214798400000 , 167.44] , [ 1217476800000 , 158.95] , [ 1220155200000 , 169.53] , [ 1222747200000 , 113.66] , [ 1225425600000 , 107.59] , [ 1228021200000 , 92.67] , [ 1230699600000 , 85.35] , [ 1233378000000 , 90.13] , [ 1235797200000 , 89.31] , [ 1238472000000 , 105.12] , [ 1241064000000 , 125.83] , [ 1243742400000 , 135.81] , [ 1246334400000 , 142.43] , [ 1249012800000 , 163.39] , [ 1251691200000 , 168.21] , [ 1254283200000 , 185.35] , [ 1256961600000 , 188.5] , [ 1259557200000 , 199.91] , [ 1262235600000 , 210.732] , [ 1264914000000 , 192.063] , [ 1267333200000 , 204.62] , [ 1270008000000 , 235.0] , [ 1272600000000 , 261.09] , [ 1275278400000 , 256.88] , [ 1277870400000 , 251.53] , [ 1280548800000 , 257.25] , [ 1283227200000 , 243.1] , [ 1285819200000 , 283.75] , [ 1288497600000 , 300.98] , [ 1291093200000 , 311.15] , [ 1293771600000 , 322.56] , [ 1296450000000 , 339.32] , [ 1298869200000 , 353.21] , [ 1301544000000 , 348.5075] , [ 1304136000000 , 350.13] , [ 1306814400000 , 347.83] , [ 1309406400000 , 335.67] , [ 1312084800000 , 390.48] , [ 1314763200000 , 384.83] , [ 1317355200000 , 381.32] , [ 1320033600000 , 404.78] , [ 1322629200000 , 382.2] , [ 1325307600000 , 405.0] , [ 1327986000000 , 456.48] , [ 1330491600000 , 542.44] , [ 1333166400000 , 599.55] , [ 1335758400000 , 583.98]]
-  }
-].map(function(series) {
-  series.values = series.values.map(function(d) { return {x: d[0], y: d[1] } });
-  return series;
-});
-
-
-/*
-//For testing single data point
-var testdata = [
-  {
-    "key" : "Quantity" ,
-    "bar": true,
-    "values" : [ [ 1136005200000 , 1271000.0] ]
-  } ,
-  {
-    "key" : "Price" ,
-    "values" : [ [ 1136005200000 , 71.89] ]
-  }
-].map(function(series) {
-  series.values = series.values.map(function(d) { return {x: d[0], y: d[1] } });
-  return series;
-});
-*/
-
-
-
-nv.addGraph(function() {
-    var chart = nv.models.linePlusBarWithFocusChart()
-        .margin({top: 30, right: 60, bottom: 50, left: 70})
-        .x(function(d,i) { return i })
-        .color(d3.scale.category10().range());
-
-    chart.xAxis.tickFormat(function(d) {
-
-      var dx = testdata[0].values[d] && testdata[0].values[d].x || 0;
-      if (dx > 0) {
-          return d3.time.format('%x')(new Date(dx))
-      }
-      return null;
-    });
-
-    chart.x2Axis.tickFormat(function(d) {
-      var dx = testdata[0].values[d] && testdata[0].values[d].x || 0;
-      return d3.time.format('%x')(new Date(dx))
-    });
-    
-    chart.y1Axis
-        .tickFormat(d3.format(',f'));
-
-    chart.y3Axis
-        .tickFormat(d3.format(',f'));
-        
-    chart.y2Axis
-        .tickFormat(function(d) { return '$' + d3.format(',.2f')(d) });
-
-    chart.y4Axis
-        .tickFormat(function(d) { return '$' + d3.format(',.2f')(d) });
-        
-    chart.bars.forceY([0]);
-    chart.bars2.forceY([0]);
-    //chart.lines.forceY([0]);
-    nv.log(testdata);
-    d3.select('#chart1 svg')
-        .datum(testdata)
-        .call(chart);
-
-//    nv.utils.windowResize(chart.update);
-
-    return chart;
-});
-
-</script>
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/lineWithFisheyeChart.html b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/lineWithFisheyeChart.html
deleted file mode 100755
index e0818502..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/lineWithFisheyeChart.html
+++ /dev/null
@@ -1,101 +0,0 @@
-<!DOCTYPE html>
-<meta charset="utf-8">
-
-<link href="../src/nv.d3.css" rel="stylesheet" type="text/css">
-
-<style>
-
-body {
-  overflow-y:scroll;
-}
-
-text {
-  font: 12px sans-serif;
-}
-
-svg {
-  display: block;
-}
-
-#chart1 svg {
-  height: 500px;
-  min-width: 100px;
-  min-height: 100px;
-/*
-  margin: 50px;
-  Minimum height and width is a good idea to prevent negative SVG dimensions...
-  For example width should be =< margin.left + margin.right + 1,
-  of course 1 pixel for the entire chart would not be very useful, BUT should not have errors
-*/
-}
-
-</style>
-<body>
-
-  <div id="chart1" class='with-3d-shadow with-transitions'>
-    <svg style="height: 500px;"></svg>
-  </div>
-
-<script src="../lib/d3.v3.js"></script>
-<script src="../lib/fisheye.js"></script>
-<script src="../nv.d3.js"></script>
-<script src="../src/tooltip.js"></script>
-<script src="../src/utils.js"></script>
-<script src="../src/models/legend.js"></script>
-<script src="../src/models/axis.js"></script>
-<script src="../src/models/scatter.js"></script>
-<script src="../src/models/lineWithFisheye.js"></script>
-<script src="../src/models/lineWithFisheyeChart.js"></script>
-<script>
-
-
-// Wrapping in nv.addGraph allows for '0 timeout render', stors rendered charts in nv.graphs, and may do more in the future... it's NOT required
-nv.addGraph(function() {  
-  var chart = nv.models.lineChart();
-
-  chart.xAxis // chart sub-models (ie. xAxis, yAxis, etc) when accessed directly, return themselves, not the parent chart, so need to chain separately
-      .tickFormat(d3.format(',r'));
-
-  chart.yAxis
-      .axisLabel('Voltage (v)')
-      .tickFormat(d3.format(',.2f'));
-
-  d3.select('#chart1 svg')
-      .datum(sinAndCos())
-    .transition().duration(500)
-      .call(chart);
-
-  //TODO: Figure out a good way to do this automatically
-  nv.utils.windowResize(chart.update);
-  //nv.utils.windowResize(function() { d3.select('#chart1 svg').call(chart) });
-
-  return chart;
-});
-
-
-
-function sinAndCos() {
-  var sin = [],
-      cos = [];
-
-  for (var i = 0; i < 200; i++) {
-    sin.push({x: i, y: Math.sin(i/2)});
-    cos.push({x: i, y: .5 * Math.cos(i)});
-  }
-
-  return [
-    {
-      values: sin,
-      key: "Sine Wave",
-      color: "#ff7f0e"
-    },
-    {
-      values: cos,
-      key: "Cosine Wave",
-      color: "#2ca02c"
-    }
-  ];
-}
-
-
-</script>
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/lineWithFocusChart.html b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/lineWithFocusChart.html
deleted file mode 100755
index c5278a13..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/lineWithFocusChart.html
+++ /dev/null
@@ -1,87 +0,0 @@
-<!DOCTYPE html>
-<meta charset="utf-8">
-
-<link href="../src/nv.d3.css" rel="stylesheet" type="text/css">
-
-<style>
-
-body {
-  overflow-y:scroll;
-}
-
-text {
-  font: 12px sans-serif;
-}
-
-svg {
-  display: block;
-}
-
-#chart1 svg {
-  height: 500px;
-  min-width: 100px;
-  min-height: 100px;
-/*
-  margin: 50px;
-  Minimum height and width is a good idea to prevent negative SVG dimensions...
-  For example width should be =< margin.left + margin.right + 1,
-  of course 1 pixel for the entire chart would not be very useful, BUT should not have errors
-*/
-}
-
-</style>
-<body>
-
-  <div id="chart" class='with-3d-shadow with-transitions'>
-    <svg style="height: 500px;"></svg>
-  </div>
-
-<script src="../lib/d3.v3.js"></script>
-<script src="../nv.d3.js"></script>
-<script src="../src/tooltip.js"></script>
-<script src="../src/utils.js"></script>
-<script src="../src/models/legend.js"></script>
-<script src="../src/models/axis.js"></script>
-<script src="../src/models/scatter.js"></script>
-<script src="../src/models/line.js"></script>
-<script src="../src/models/lineWithFocusChart.js"></script>
-<script src="stream_layers.js"></script>
-<script>
-
-
-nv.addGraph(function() {
-  var chart = nv.models.lineWithFocusChart();
-
- // chart.transitionDuration(500);
-  chart.xAxis
-      .tickFormat(d3.format(',f'));
-  chart.x2Axis
-      .tickFormat(d3.format(',f'));
-
-  chart.yAxis
-      .tickFormat(d3.format(',.2f'));
-  chart.y2Axis
-      .tickFormat(d3.format(',.2f'));
-
-  d3.select('#chart svg')
-      .datum(testData())
-      .call(chart);
-
-  nv.utils.windowResize(chart.update);
-
-  return chart;
-});
-
-
-
-function testData() {
-  return stream_layers(3,128,.1).map(function(data, i) {
-    return { 
-      key: 'Stream' + i,
-      values: data
-    };
-  });
-}
-
-
-</script>
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/multiBar.html b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/multiBar.html
deleted file mode 100755
index f00de237..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/multiBar.html
+++ /dev/null
@@ -1,94 +0,0 @@
-<!DOCTYPE html>
-<meta charset="utf-8">
-
-<link href="../src/nv.d3.css" rel="stylesheet" type="text/css">
-
-<style>
-
-
-body {
-  overflow-y:scroll;
-}
-
-text {
-  font: 12px sans-serif;
-}
-
-</style>
-<body>
-
-  <div id="test1">
-    <svg></svg>
-  </div>
-
-<script src="../lib/d3.v3.js"></script>
-<script src="../nv.d3.js"></script>
-<script src="../src/tooltip.js"></script>
-<script src="../src/models/legend.js"></script>
-<script src="../src/models/axis.js"></script>
-<script src="../src/models/multiBar.js"></script>
-<script src="../src/utils.js"></script>
-<script src="stream_layers.js"></script>
-<script>
-
-  //var test_data = stream_layers(3,128,.1).map(function(data, i) {
-  var test_data = stream_layers(3,128,.1).map(function(data, i) {
-    return {
-      key: 'Stream' + i,
-      values: data
-    };
-  });
-
-nv.addGraph({
-  generate: function() {
-      var width = nv.utils.windowSize().width - 40,
-      height = nv.utils.windowSize().height - 40;
-
-      var chart = nv.models.multiBar()
-                .width(width)
-                .height(height)
-                .stacked(true)
-
-
-    var svg = d3.select('#test1 svg')
-      .attr('width', width)
-      .attr('height', height)
-      .datum(test_data);
-
-    svg.transition().duration(500).call(chart);
-
-    return chart;
-  },
-  callback: function(graph) {
-
-
-    window.onresize = function() {
-    var width = nv.utils.windowSize().width - 40,
-        height = nv.utils.windowSize().height - 40,
-        margin = graph.margin();
-
-
-      if (width < margin.left + margin.right + 20)
-        width = margin.left + margin.right + 20;
-
-      if (height < margin.top + margin.bottom + 20)
-        height = margin.top + margin.bottom + 20;
-
-
-      graph
-         .width(width)
-         .height(height);
-
-      d3.select('#test1 svg')
-        .attr('width', width)
-        .attr('height', height)
-        transition().duration(500)
-        .call(graph);
-
-      };
-  }
-});
-
-
-
-</script>
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/multiBarChart.html b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/multiBarChart.html
deleted file mode 100755
index 55e30102..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/multiBarChart.html
+++ /dev/null
@@ -1,105 +0,0 @@
-<!DOCTYPE html>
-<meta charset="utf-8">
-
-<link href="../src/nv.d3.css" rel="stylesheet" type="text/css">
-
-<style>
-
-body {
-  overflow-y:scroll;
-}
-
-text {
-  font: 12px sans-serif;
-}
-
-#chart1 {
-  height: 500px;
-  margin: 10px;
-  min-width: 100px;
-  min-height: 100px;
-/*
-  Minimum height and width is a good idea to prevent negative SVG dimensions...
-  For example width should be =< margin.left + margin.right + 1,
-  of course 1 pixel for the entire chart would not be very useful, BUT should not have errors
-*/
-}
-
-</style>
-<body>
-
-  <div id="chart1" class='with-3d-shadow with-transitions'>
-    <svg></svg>
-  </div>
-
-<script src="../lib/d3.v3.js"></script>
-<script src="../nv.d3.js"></script>
-<script src="../src/tooltip.js"></script>
-<script src="../src/utils.js"></script>
-<script src="../src/models/legend.js"></script>
-<script src="../src/models/axis.js"></script>
-<script src="../src/models/multiBar.js"></script>
-<script src="../src/models/multiBarChart.js"></script>
-<script src="stream_layers.js"></script>
-<script>
-
-var test_data = stream_layers(3,10+Math.random()*100,.1).map(function(data, i) {
-//var test_data = stream_layers(3,1,.1).map(function(data, i) { //for testing single data point
-  return {
-    key: 'Stream' + i,
-    values: data
-  };
-});
-
-console.log('td',test_data);
-
-var negative_test_data = new d3.range(0,3).map(function(d,i) { return {
-  key: 'Stream' + i,
-  values: new d3.range(0,11).map( function(f,j) {
-    return { 
-             y: 10 + Math.random()*100 * (Math.floor(Math.random()*100)%2 ? 1 : -1),
-             x: j
-           }
-  })
-  };  
-});
-
-var chart;
-nv.addGraph(function() {
-    chart = nv.models.multiBarChart()
-      .barColor(d3.scale.category20().range())
-      .margin({bottom: 100})
-      .transitionDuration(300)
-      .delay(0)
-      .rotateLabels(45)
-      .groupSpacing(0.1)
-      ;
-
-    chart.multibar
-      .hideable(true);
-
-    chart.reduceXTicks(false).staggerLabels(true);
-
-    chart.xAxis
-        .axisLabel("Current Index")
-        .showMaxMin(true)
-        .tickFormat(d3.format(',.6f'));
-
-    chart.yAxis
-        .tickFormat(d3.format(',.1f'));
-
-    d3.select('#chart1 svg')
-        .datum(negative_test_data)
-       .call(chart);
-
-    nv.utils.windowResize(chart.update);
-
-    chart.dispatch.on('stateChange', function(e) { nv.log('New State:', JSON.stringify(e)); });
-
-    return chart;
-});
-
-
-
-
-</script>
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/multiBarHorizontalChart.html b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/multiBarHorizontalChart.html
deleted file mode 100755
index 51572635..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/multiBarHorizontalChart.html
+++ /dev/null
@@ -1,389 +0,0 @@
-<!DOCTYPE html>
-<meta charset="utf-8">
-
-<link href="../src/nv.d3.css" rel="stylesheet" type="text/css">
-
-<style>
-
-body {
-  overflow-y:scroll;
-}
-
-text {
-  font: 12px sans-serif;
-}
-
-#chart1 {
-  margin: 10px;
-  min-width: 100px;
-  min-height: 100px;
-/*
-  Minimum height and width is a good idea to prevent negative SVG dimensions...
-  For example width should be =< margin.left + margin.right + 1,
-  of course 1 pixel for the entire chart would not be very useful, BUT should not have errors
-*/
-}
-
-#chart1 svg {
-  height: 500px;
-}
-
-</style>
-<body>
-
-  <div id="chart1" class='with-3d-shadow with-transitions'>
-    <svg></svg>
-  </div>
-
-<script src="../lib/d3.v3.js"></script>
-<script src="../nv.d3.js"></script>
-<script src="../src/utils.js"></script>
-<script src="../src/tooltip.js"></script>
-<script src="../src/models/legend.js"></script>
-<script src="../src/models/axis.js"></script>
-<script src="../src/models/multiBarHorizontal.js"></script>
-<script src="../src/models/multiBarHorizontalChart.js"></script>
-<script src="stream_layers.js"></script>
-<script>
-
-
-
-long_short_data = [ 
-  {
-    key: 'Series1',
-    color: '#d62728',
-    values: [
-      { 
-        "label" : "Group A" ,
-        "value" : -1.8746444827653
-      } , 
-      { 
-        "label" : "Group B" ,
-        "value" : -8.0961543492239
-      } , 
-      { 
-        "label" : "Group C" ,
-        "value" : -0.57072943117674
-      } , 
-      { 
-        "label" : "Group D" ,
-        "value" : -2.4174010336624
-      } , 
-      {
-        "label" : "Group E" ,
-        "value" : -0.72009071426284
-      } , 
-      { 
-        "label" : "Group F" ,
-        "value" : -0.77154485523777
-      } , 
-      { 
-        "label" : "Group G" ,
-        "value" : -0.90152097798131
-      } , 
-      {
-        "label" : "Group H" ,
-        "value" : -0.91445417330854
-      } , 
-      { 
-        "label" : "Group I" ,
-        "value" : -0.055746319141851
-      }
-    ]
-  },
-  {
-    key: 'Series2',
-    color: '#1f77b4',
-    values: [
-      { 
-        "label" : "Group A" ,
-        "value" : 25.307646510375
-      } , 
-      { 
-        "label" : "Group B" ,
-        "value" : 16.756779544553
-      } , 
-      { 
-        "label" : "Group C" ,
-        "value" : 18.451534877007
-      } , 
-      { 
-        "label" : "Group D" ,
-        "value" : 8.6142352811805
-      } , 
-      {
-        "label" : "Group E" ,
-        "value" : 7.8082472075876
-      } , 
-      { 
-        "label" : "Group F" ,
-        "value" : 5.259101026956
-      } , 
-      { 
-        "label" : "Group G" ,
-        "value" : 0.30947953487127
-      } , 
-      { 
-        "label" : "Group H" ,
-        "value" : 0
-      } , 
-      { 
-        "label" : "Group I" ,
-        "value" : 0 
-      }
-    ]
-  },
-  {
-    key: 'Series3',
-    color: '#2ca02c',
-    values: [
-      { 
-        "label" : "Group A" ,
-        "value" : -25.307646510375
-      } , 
-      { 
-        "label" : "Group B" ,
-        "value" : 16.756779544553
-      } , 
-      { 
-        "label" : "Group C" ,
-        "value" : -18.451534877007
-      } , 
-      { 
-        "label" : "Group D" ,
-        "value" : 8.6142352811805
-      } , 
-      {
-        "label" : "Group E" ,
-        "value" : -7.8082472075876
-      } , 
-      { 
-        "label" : "Group F" ,
-        "value" : 5.259101026956
-      } , 
-      { 
-        "label" : "Group G" ,
-        "value" : -0.30947953487127
-      } , 
-      { 
-        "label" : "Group H" ,
-        "value" : 0
-      } , 
-      { 
-        "label" : "Group I" ,
-        "value" : 0 
-      }
-    ]
-  }
-];
-
-
-
-long_short_pos_data = [ 
-  {
-    key: 'Series1',
-    color: '#d62728',
-    values: [
-      { 
-        "label" : "Group A" ,
-        "value" : 1.8746444827653
-      } , 
-      { 
-        "label" : "Group B" ,
-        "value" : 8.0961543492239
-      } , 
-      { 
-        "label" : "Group C" ,
-        "value" : 0.57072943117674
-      } , 
-      { 
-        "label" : "Group D" ,
-        "value" : 2.4174010336624
-      } , 
-      {
-        "label" : "Group E" ,
-        "value" : 0.72009071426284
-      } , 
-      { 
-        "label" : "Group F" ,
-        "value" : 0.77154485523777
-      } , 
-      { 
-        "label" : "Group G" ,
-        "value" : 0.90152097798131
-      } , 
-      {
-        "label" : "Group H" ,
-        "value" : 0.91445417330854
-      } , 
-      { 
-        "label" : "Group I" ,
-        "value" : 0.055746319141851
-      }
-    ]
-  },
-  {
-    key: 'Series2',
-    color: '#1f77b4',
-    values: [
-      { 
-        "label" : "Group A" ,
-        "value" : 25.307646510375
-      } , 
-      { 
-        "label" : "Group B" ,
-        "value" : 16.756779544553
-      } , 
-      { 
-        "label" : "Group C" ,
-        "value" : 18.451534877007
-      } , 
-      { 
-        "label" : "Group D" ,
-        "value" : 8.6142352811805
-      } , 
-      {
-        "label" : "Group E" ,
-        "value" : 7.8082472075876
-      } , 
-      { 
-        "label" : "Group F" ,
-        "value" : 5.259101026956
-      } , 
-      { 
-        "label" : "Group G" ,
-        "value" : 0.30947953487127
-      } , 
-      { 
-        "label" : "Group H" ,
-        "value" : 0
-      } , 
-      { 
-        "label" : "Group I" ,
-        "value" : 0 
-      }
-    ]
-  }
-];
-
-
-long_short_neg_data = [ 
-  {
-    key: 'Series1',
-    color: '#d62728',
-    values: [
-      { 
-        "label" : "Group A" ,
-        "value" : -1.8746444827653
-      } , 
-      { 
-        "label" : "Group B" ,
-        "value" : -8.0961543492239
-      } , 
-      { 
-        "label" : "Group C" ,
-        "value" : -0.57072943117674
-      } , 
-      { 
-        "label" : "Group D" ,
-        "value" : -2.4174010336624
-      } , 
-      {
-        "label" : "Group E" ,
-        "value" : -0.72009071426284
-      } , 
-      { 
-        "label" : "Group F" ,
-        "value" : -0.77154485523777
-      } , 
-      { 
-        "label" : "Group G" ,
-        "value" : -0.90152097798131
-      } , 
-      {
-        "label" : "Group H" ,
-        "value" : -0.91445417330854
-      } , 
-      { 
-        "label" : "Group I" ,
-        "value" : -0.055746319141851
-      }
-    ]
-  },
-  {
-    key: 'Series2',
-    color: '#1f77b4',
-    values: [
-      { 
-        "label" : "Group A" ,
-        "value" : -25.307646510375
-      } , 
-      { 
-        "label" : "Group B" ,
-        "value" : -16.756779544553
-      } , 
-      { 
-        "label" : "Group C" ,
-        "value" : -18.451534877007
-      } , 
-      { 
-        "label" : "Group D" ,
-        "value" : -8.6142352811805
-      } , 
-      {
-        "label" : "Group E" ,
-        "value" : -7.8082472075876
-      } , 
-      { 
-        "label" : "Group F" ,
-        "value" : -5.259101026956
-      } , 
-      { 
-        "label" : "Group G" ,
-        "value" : -0.30947953487127
-      } , 
-      { 
-        "label" : "Group H" ,
-        "value" : 0
-      } , 
-      { 
-        "label" : "Group I" ,
-        "value" : 0 
-      }
-    ]
-  }
-];
-
-
-
-
-var chart;
-nv.addGraph(function() {
-  chart = nv.models.multiBarHorizontalChart()
-      .x(function(d) { return d.label })
-      .y(function(d) { return d.value })
-      .margin({top: 30, right: 20, bottom: 50, left: 175})
-      //.showValues(true)
-      //.tooltips(false)
-      .barColor(d3.scale.category20().range())
-      .transitionDuration(250)
-      .stacked(true)
-      //.showControls(false);
-
-  chart.yAxis
-      .tickFormat(d3.format(',.2f'));
-
-  d3.select('#chart1 svg')
-      .datum(long_short_data)
-      .call(chart);
-
-  nv.utils.windowResize(chart.update);
-
-  chart.dispatch.on('stateChange', function(e) { nv.log('New State:', JSON.stringify(e)); });
-
-  return chart;
-});
-
-
-
-</script>
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/multiChart.html b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/multiChart.html
deleted file mode 100755
index 3bfa6930..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/multiChart.html
+++ /dev/null
@@ -1,96 +0,0 @@
-<!DOCTYPE html>
-<html>
-<meta charset="utf-8">
-
-<link href="../src/nv.d3.css" rel="stylesheet" type="text/css">
-
-<style>
-
-body {
-  overflow-y:scroll;
-}
-
-text {
-  font: 12px sans-serif;
-}
-
-#chart1 svg {
-  height: 500px;
-  margin: 10px;
-  min-width: 100px;
-  min-height: 100px;
-/*
-  Minimum height and width is a good idea to prevent negative SVG dimensions...
-  For example width should be =< margin.left + margin.right + 1,
-  of course 1 pixel for the entire chart would not be very useful, BUT should not have errors
-*/
-}
-
-</style>
-<body class='with-3d-shadow with-transitions'>
-
-  <div id="chart1" >
-    <svg> </svg>
-  </div>
-
-<script src="../lib/d3.v3.js"></script>
-<script src="../nv.d3.js"></script>
-<script src="../src/utils.js"></script>
-<script src="../src/tooltip.js"></script>
-<script src="../src/models/legend.js"></script>
-<script src="../src/models/axis.js"></script>
-<script src="../src/models/scatter.js"></script>
-<script src="../src/models/line.js"></script>
-<script src="../src/models/multiBar.js"></script>
-<script src="../src/models/multiChart.js"></script>
-<script src="stream_layers.js"></script>
-<script>
-
-
-var testdata = stream_layers(7,10+Math.random()*100,.1).map(function(data, i) {
-  return {
-    key: 'Stream' + i,
-    values: data.map(function(a){a.y = a.y * (i <= 1 ? -1 : 1); return a})
-  };
-});
-
-testdata[0].type = "area"
-testdata[0].yAxis = 1
-testdata[1].type = "area"
-testdata[1].yAxis = 1
-testdata[2].type = "line"
-testdata[2].yAxis = 1
-testdata[3].type = "line"
-testdata[3].yAxis = 2
-testdata[4].type = "bar"
-testdata[4].yAxis = 2
-testdata[5].type = "bar"
-testdata[5].yAxis = 2
-testdata[6].type = "bar"
-testdata[6].yAxis = 2
-
-
-nv.addGraph(function() {
-    var chart = nv.models.multiChart()
-        .margin({top: 30, right: 60, bottom: 50, left: 70})
-        .color(d3.scale.category10().range());
-
-    chart.xAxis
-        .tickFormat(d3.format(',f'));
-
-    chart.yAxis1
-        .tickFormat(d3.format(',.1f'));
-
-    chart.yAxis2
-        .tickFormat(d3.format(',.1f'));
-
-
-    d3.select('#chart1 svg')
-        .datum(testdata)
-      .transition().duration(500).call(chart);
-
-    return chart;
-});
-
-</script>
-</html>
\ No newline at end of file
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/nations.json b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/nations.json
deleted file mode 100755
index c9e730c6..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/nations.json
+++ /dev/null
@@ -1 +0,0 @@
-[{"name":"Angola","region":"Sub-Saharan Africa","income":[[1800,359.93],[1820,359.93],[1913,556.12],[1950,3363.02],[1951,3440.9],[1952,3520.61],[1953,3598.81],[1954,3450.82],[1955,3672.08],[1956,3549.04],[1957,3827.94],[1958,3966.42],[1959,3917.76],[1960,4006.21],[1961,4463.83],[1962,4269.28],[1963,4413.6],[1964,4826.49],[1965,5102.21],[1966,5308.14],[1967,5522.78],[1968,5346.63],[1969,5408.12],[1970,5651.88],[1971,5526.21],[1972,5473.29],[1973,5722.02],[1974,5470.21],[1975,3430.85],[1976,3050.32],[1977,3008.65],[1978,3070.82],[1979,3064.89],[1980,3074.75],[1981,2953.41],[1982,2756.95],[1983,2584.56],[1984,2527.47],[1985,2492.83],[1986,2220.61],[1987,2430.21],[1988,2728.53],[1989,2730.56],[1990,2777.42],[1991,2730.85],[1992,2627.85],[1993,1869.92],[1994,1851.45],[1995,1989.02],[1996,2157.35],[1997,2277.14],[1998,2384.48],[1999,2417.18],[2000,2446.65],[2001,2479.69],[2002,2773.29],[2003,2785.39],[2004,3007.11],[2005,3533],[2006,4069.56],[2007,4755.46],[2008,5228.74],[2009,5055.59]],"population":[[1800,1567028],[1820,1567028],[1940,3738000],[1950,4117617],[1951,4173095],[1952,4232095],[1953,4293840],[1954,4357527],[1955,4423223],[1956,4490992],[1957,4561361],[1958,4635885],[1959,4714676],[1960,4797344],[1961,4752489],[1962,4826015],[1963,4919586],[1964,5026044],[1965,5134818],[1966,5201250],[1967,5247469],[1968,5350384],[1969,5471641],[1970,5605626],[1971,5752775],[1972,5894858],[1973,6025841],[1974,5986432],[1975,5884241],[1976,5942225],[1977,6162675],[1978,6285716],[1979,6451227],[1980,6741465],[1981,6877697],[1982,7016384],[1983,7238214],[1984,7439658],[1985,7581504],[1986,7744932],[1987,7874230],[1988,8018724],[1989,8148595],[1990,8290856],[1991,8490763],[1992,8735988],[1993,8961438],[1994,9170032],[1995,9421477],[1996,9660081],[1997,9875024],[1998,10071442],[1999,10263229],[2000,10442812],[2001,10623424],[2002,10866106],[2003,11186202],[2004,11521432],[2005,11827315],[2006,12127071],[2007,12420476],[2008,12707546]],"lifeExpectancy":[[1800,26.98],[1940,26.98],[1950,29.22],[1951,29.42],[1952,29.81],[1953,30.21],[1954,30.6],[1955,31],[1956,31.4],[1957,31.8],[1958,32.2],[1959,32.6],[1960,33],[1961,33.4],[1962,33.8],[1963,34.2],[1964,34.6],[1965,35],[1966,35.4],[1967,35.8],[1968,36.2],[1969,36.6],[1970,37],[1971,37.41],[1972,37.83],[1973,38.26],[1974,38.68],[1975,39.09],[1976,39.46],[1977,39.8],[1978,40.1],[1979,40.34],[1980,40.55],[1981,40.71],[1982,40.85],[1983,40.97],[1984,41.08],[1985,41.2],[1986,41.33],[1987,41.48],[1988,41.64],[1989,41.81],[1990,41.99],[1991,42.16],[1992,42.32],[1993,42.46],[1994,42.59],[1995,42.7],[1996,42.82],[1997,42.96],[1998,43.12],[1999,43.32],[2000,43.56],[2001,43.86],[2002,44.22],[2003,44.61],[2004,45.05],[2005,45.52],[2006,46.02],[2007,46.54],[2008,47.06],[2009,47.58]]},{"name":"Benin","region":"Sub-Saharan Africa","income":[[1800,553.72],[1820,553.72],[1913,855.53],[1950,1104.47],[1951,1083.57],[1952,1062.75],[1953,1012.84],[1954,1021.29],[1955,1000.66],[1956,980.06],[1957,959.6],[1958,974.04],[1959,988.88],[1960,996.93],[1961,1006.39],[1962,949.5],[1963,970.34],[1964,1012.25],[1965,1039.34],[1966,1051.67],[1967,1035.83],[1968,1048.78],[1969,1052.8],[1970,1047.17],[1971,1024.93],[1972,1085.8],[1973,1081.87],[1974,973.64],[1975,987.96],[1976,1002.19],[1977,1029.16],[1978,1032.01],[1979,1083.17],[1980,1154.23],[1981,1186.7],[1982,1277.9],[1983,1187.14],[1984,1243.82],[1985,1297.16],[1986,1285.08],[1987,1225.86],[1988,1222.9],[1989,1158.34],[1990,1165.47],[1991,1181.65],[1992,1191.21],[1993,1177.91],[1994,1168.53],[1995,1176.67],[1996,1202.15],[1997,1232.98],[1998,1251.88],[1999,1272.8],[2000,1307.57],[2001,1333.3],[2002,1372.88],[2003,1386.05],[2004,1389.13],[2005,1390],[2006,1402.94],[2007,1428.15],[2008,1459.07],[2009,1457.57]],"population":[[1800,636559],[1820,636559],[1950,1672661],[1951,1704916],[1952,1738315],[1953,1772899],[1954,1808895],[1955,1846175],[1956,1884978],[1957,1925173],[1958,1966816],[1959,2010163],[1960,2055083],[1961,2101846],[1962,2151895],[1963,2202775],[1964,2255760],[1965,2310714],[1966,2367951],[1967,2427334],[1968,2488957],[1969,2553162],[1970,2619809],[1971,2689271],[1972,2761407],[1973,2836325],[1974,2914439],[1975,2995605],[1976,3080268],[1977,3168267],[1978,3259760],[1979,3354798],[1980,3444361],[1981,3540043],[1982,3641603],[1983,3748839],[1984,3861680],[1985,3982013],[1986,4110035],[1987,4243788],[1988,4382448],[1989,4526250],[1990,4676077],[1991,4828814],[1992,4981671],[1993,5214220],[1994,5487359],[1995,5700089],[1996,5886094],[1997,6066080],[1998,6248686],[1999,6435871],[2000,6627964],[2001,6824931],[2002,7026113],[2003,7230693],[2004,7438437],[2005,7649360],[2006,7862944],[2007,8078314],[2008,8294941]],"lifeExpectancy":[[1800,31],[1944,31],[1950,36.53],[1951,36.73],[1952,37.15],[1953,37.58],[1954,38.01],[1955,38.45],[1956,38.9],[1957,39.35],[1958,39.8],[1959,40.26],[1960,40.72],[1961,41.18],[1962,41.64],[1963,42.1],[1964,42.55],[1965,43.01],[1966,43.47],[1967,43.95],[1968,44.43],[1969,44.93],[1970,45.45],[1971,45.99],[1972,46.55],[1973,47.12],[1974,47.69],[1975,48.25],[1976,48.79],[1977,49.29],[1978,49.75],[1979,50.17],[1980,50.54],[1981,50.87],[1982,51.15],[1983,51.42],[1984,51.68],[1985,51.94],[1986,52.24],[1987,52.57],[1988,52.95],[1989,53.37],[1990,53.84],[1991,54.34],[1992,54.86],[1993,55.38],[1994,55.89],[1995,56.38],[1996,56.84],[1997,57.26],[1998,57.64],[1999,58],[2000,58.34],[2001,58.68],[2002,59.02],[2003,59.38],[2004,59.77],[2005,60.17],[2006,60.6],[2007,61.03],[2008,61.47],[2009,61.89]]},{"name":"Botswana","region":"Sub-Saharan Africa","income":[[1800,407.36],[1820,407.36],[1913,629.4],[1950,825.25],[1951,840.94],[1952,851.24],[1953,865.86],[1954,880.5],[1955,893.58],[1956,905.91],[1957,918.23],[1958,929.05],[1959,944.14],[1960,953.26],[1961,971.44],[1962,983.65],[1963,999.69],[1964,1018.75],[1965,1034.37],[1966,1119.01],[1967,1214.71],[1968,1319.18],[1969,1424.21],[1970,1532.71],[1971,1769.34],[1972,2263.61],[1973,2658.43],[1974,3077.33],[1975,2897.18],[1976,3271.32],[1977,3214.86],[1978,3640.34],[1979,3818.4],[1980,4178.48],[1981,4399.13],[1982,4551.14],[1983,5079.53],[1984,5450.44],[1985,5656.04],[1986,5889.64],[1987,6205.88],[1988,6959.66],[1989,7619.62],[1990,7829.23],[1991,7964.58],[1992,7954.11],[1993,7860.65],[1994,7898.05],[1995,8030.48],[1996,8281.92],[1997,8647.14],[1998,8990.98],[1999,9416.67],[2000,10107.99],[2001,10543.61],[2002,11003.61],[2003,11391.09],[2004,11722.59],[2005,12057],[2006,12574.18],[2007,13010.7],[2008,13240.06],[2009,12282.28]],"population":[[1800,121000],[1904,121000],[1911,125000],[1921,153000],[1936,266000],[1946,296000],[1950,430413],[1951,436320],[1952,442308],[1953,448377],[1954,454640],[1955,461100],[1956,467765],[1957,474639],[1958,481731],[1959,489080],[1960,496695],[1961,504585],[1962,512764],[1963,521237],[1964,529966],[1965,538100],[1966,545965],[1967,553541],[1968,561941],[1969,571874],[1970,583999],[1971,599647],[1972,619351],[1973,643076],[1974,671769],[1975,704591],[1976,741273],[1977,781472],[1978,822247],[1979,862602],[1980,900476],[1981,934438],[1982,970347],[1983,1006466],[1984,1042702],[1985,1078902],[1986,1114934],[1987,1151184],[1988,1188137],[1989,1225684],[1990,1263643],[1991,1301796],[1992,1342614],[1993,1385749],[1994,1427426],[1995,1466989],[1996,1503652],[1997,1536536],[1998,1564950],[1999,1588505],[2000,1607069],[2001,1620848],[2002,1630347],[2003,1636213],[2004,1639231],[2005,1640115],[2006,1639833],[2007,1639131],[2008,1638393]],"lifeExpectancy":[[1800,33.6],[1945,33.6],[1950,46.82],[1951,47.02],[1952,47.43],[1953,47.84],[1954,48.25],[1955,48.65],[1956,49.05],[1957,49.45],[1958,49.85],[1959,50.23],[1960,50.61],[1961,50.98],[1962,51.33],[1963,51.68],[1964,52.02],[1965,52.37],[1966,52.74],[1967,53.13],[1968,53.57],[1969,54.04],[1970,54.56],[1971,55.13],[1972,55.75],[1973,56.39],[1974,57.04],[1975,57.7],[1976,58.33],[1977,58.93],[1978,59.48],[1979,59.99],[1980,60.46],[1981,60.92],[1982,61.38],[1983,61.85],[1984,62.31],[1985,62.77],[1986,63.23],[1987,63.65],[1988,64],[1989,64.22],[1990,64.24],[1991,63.97],[1992,63.38],[1993,62.47],[1994,61.26],[1995,59.76],[1996,57.98],[1997,56.05],[1998,54.08],[1999,52.21],[2000,50.65],[2001,49.59],[2002,49.11],[2003,49.22],[2004,49.87],[2005,50.92],[2006,52.17],[2007,53.39],[2008,54.4],[2009,55.12]]},{"name":"Burkina Faso","region":"Sub-Saharan Africa","income":[[1800,454.33],[1820,454.33],[1913,497.44],[1950,515.71],[1951,529.66],[1952,543.26],[1953,557.01],[1954,571.4],[1955,586.4],[1956,601.99],[1957,617.18],[1958,633.89],[1959,649.7],[1960,661.86],[1961,684.8],[1962,722.51],[1963,708.58],[1964,719.57],[1965,740.98],[1966,737.83],[1967,794.83],[1968,810.76],[1969,817.43],[1970,809.75],[1971,831.9],[1972,854.74],[1973,798.63],[1974,772.28],[1975,727.95],[1976,709.39],[1977,743.39],[1978,811.57],[1979,800.89],[1980,794.76],[1981,809.75],[1982,807.2],[1983,778.05],[1984,770.53],[1985,848.8],[1986,955.4],[1987,912.06],[1988,957.87],[1989,917.41],[1990,880.17],[1991,938.09],[1992,931.75],[1993,895.91],[1994,878.97],[1995,889.91],[1996,929.21],[1997,946.29],[1998,978.6],[1999,1009.59],[2000,1001.48],[2001,1029.97],[2002,1037.65],[2003,1080.53],[2004,1096.85],[2005,1140],[2006,1175.51],[2007,1189.88],[2008,1223.52],[2009,1234.42]],"population":[[1800,1665421],[1820,1665421],[1950,4376162],[1951,4422822],[1952,4469979],[1953,4517639],[1954,4565808],[1955,4614490],[1956,4663691],[1957,4713416],[1958,4763672],[1959,4814463],[1960,4865796],[1961,4890688],[1962,4919632],[1963,4952695],[1964,4989961],[1965,5031519],[1966,5077473],[1967,5127935],[1968,5183033],[1969,5242904],[1970,5303777],[1971,5366018],[1972,5433886],[1973,5507594],[1974,5587373],[1975,5673472],[1976,5764606],[1977,5889574],[1978,6023204],[1979,6165533],[1980,6315312],[1981,6471556],[1982,6634596],[1983,6804810],[1984,6982590],[1985,7168228],[1986,7367641],[1987,7586551],[1988,7824563],[1989,8076170],[1990,8335771],[1991,8603238],[1992,8878303],[1993,9159653],[1994,9467871],[1995,9772602],[1996,10060724],[1997,10352843],[1998,10652495],[1999,10975109],[2000,11308552],[2001,11732326],[2002,12251209],[2003,12705775],[2004,13092647],[2005,13491736],[2006,13902972],[2007,14326203],[2008,14761339]],"lifeExpectancy":[[1800,29.2],[1945,29.2],[1950,32.89],[1951,33.09],[1952,33.49],[1953,33.9],[1954,34.34],[1955,34.79],[1956,35.26],[1957,35.74],[1958,36.24],[1959,36.74],[1960,37.25],[1961,37.76],[1962,38.25],[1963,38.73],[1964,39.2],[1965,39.63],[1966,40.04],[1967,40.43],[1968,40.79],[1969,41.14],[1970,41.48],[1971,41.82],[1972,42.17],[1973,42.53],[1974,42.9],[1975,43.27],[1976,43.64],[1977,44],[1978,44.33],[1979,44.65],[1980,44.95],[1981,45.22],[1982,45.49],[1983,45.75],[1984,46.01],[1985,46.27],[1986,46.51],[1987,46.75],[1988,46.98],[1989,47.2],[1990,47.42],[1991,47.65],[1992,47.89],[1993,48.14],[1994,48.41],[1995,48.7],[1996,49.01],[1997,49.34],[1998,49.68],[1999,50.02],[2000,50.37],[2001,50.72],[2002,51.07],[2003,51.42],[2004,51.76],[2005,52.09],[2006,52.42],[2007,52.74],[2008,53.06],[2009,53.38]]},{"name":"Burundi","region":"Sub-Saharan Africa","income":[[1800,447.59],[1820,447.59],[1913,353.82],[1950,322.23],[1951,334.76],[1952,339.3],[1953,346.93],[1954,359.61],[1955,364.64],[1956,372],[1957,379.56],[1958,383.38],[1959,398.3],[1960,396.94],[1961,333.27],[1962,355.2],[1963,364.13],[1964,376.1],[1965,380.08],[1966,387.47],[1967,412.98],[1968,400.03],[1969,388.1],[1970,483.32],[1971,510.51],[1972,464.1],[1973,496.11],[1974,484.51],[1975,478.55],[1976,506.22],[1977,556.1],[1978,536.58],[1979,522.02],[1980,539.85],[1981,574.48],[1982,559.6],[1983,563.3],[1984,549.69],[1985,600.88],[1986,611.89],[1987,621.82],[1988,628.59],[1989,623.27],[1990,630.44],[1991,646.51],[1992,631.7],[1993,613.04],[1994,585.18],[1995,507.2],[1996,462.85],[1997,463.12],[1998,473.7],[1999,455.41],[2000,443.76],[2001,440.51],[2002,446.4],[2003,427.14],[2004,431.76],[2005,420.08],[2006,432.95],[2007,439.64],[2008,450.54],[2009,457.07]],"population":[[1800,899097],[1820,899097],[1950,2362522],[1951,2403682],[1952,2445618],[1953,2488348],[1954,2531886],[1955,2576249],[1956,2621454],[1957,2667518],[1958,2714458],[1959,2763722],[1960,2815405],[1961,2894153],[1962,2961915],[1963,3008458],[1964,3088827],[1965,3170653],[1966,3253610],[1967,3330989],[1968,3400775],[1969,3460144],[1970,3521913],[1971,3596811],[1972,3529983],[1973,3540066],[1974,3594958],[1975,3676308],[1976,3749077],[1977,3834415],[1978,3929974],[1979,4119789],[1980,4299555],[1981,4480338],[1982,4580410],[1983,4692262],[1984,4802889],[1985,4906862],[1986,5002688],[1987,5126023],[1988,5257314],[1989,5379124],[1990,5505113],[1991,5636676],[1992,5809236],[1993,5632915],[1994,5681513],[1995,6077812],[1996,6100754],[1997,6121610],[1998,6271409],[1999,6458283],[2000,6621126],[2001,6810307],[2002,7021078],[2003,7251827],[2004,7516212],[2005,7795426],[2006,8090068],[2007,8390505],[2008,8691005]],"lifeExpectancy":[[1800,31.5],[1945,31.5],[1950,38.42],[1951,38.58],[1952,38.88],[1953,39.18],[1954,39.49],[1955,39.79],[1956,40.08],[1957,40.38],[1958,40.68],[1959,40.98],[1960,41.29],[1961,41.61],[1962,41.93],[1963,42.25],[1964,42.57],[1965,42.87],[1966,43.13],[1967,43.35],[1968,43.53],[1969,43.66],[1970,43.78],[1971,43.91],[1972,44.07],[1973,44.28],[1974,44.55],[1975,44.87],[1976,45.24],[1977,45.63],[1978,46.02],[1979,46.4],[1980,46.76],[1981,47.11],[1982,47.44],[1983,47.75],[1984,48],[1985,48.15],[1986,48.13],[1987,47.91],[1988,47.52],[1989,46.97],[1990,46.36],[1991,45.76],[1992,45.27],[1993,44.96],[1994,44.85],[1995,44.95],[1996,45.23],[1997,45.61],[1998,46.03],[1999,46.47],[2000,46.9],[2001,47.33],[2002,47.77],[2003,48.22],[2004,48.69],[2005,49.15],[2006,49.61],[2007,50.06],[2008,50.51],[2009,50.95]]},{"name":"Cameroon","region":"Sub-Saharan Africa","income":[[1800,517.46],[1820,517.46],[1913,799.51],[1950,1117.97],[1951,1145.39],[1952,1172.67],[1953,1199.76],[1954,1227.65],[1955,1256.24],[1956,1284.39],[1957,1313.05],[1958,1342.09],[1959,1370.44],[1960,1386.31],[1961,1380.62],[1962,1399.61],[1963,1427.16],[1964,1452.69],[1965,1455.61],[1966,1495.91],[1967,1508.45],[1968,1575.87],[1969,1621],[1970,1635.98],[1971,1649.53],[1972,1684.15],[1973,1671.33],[1974,1706.3],[1975,1752.24],[1976,1739.5],[1977,1783.43],[1978,1824.31],[1979,1867.89],[1980,1989.19],[1981,2256.63],[1982,2367.98],[1983,2461.92],[1984,2575.35],[1985,2719.24],[1986,2824.45],[1987,2602.66],[1988,2411.32],[1989,2131.49],[1990,2036.08],[1991,1903.16],[1992,1793.16],[1993,1688.77],[1994,1603.04],[1995,1613.97],[1996,1652.43],[1997,1694.34],[1998,1736.44],[1999,1770.65],[2000,1803.44],[2001,1857.15],[2002,1934.01],[2003,1967.39],[2004,1997.11],[2005,1995],[2006,2003.19],[2007,2012.18],[2008,2013.83],[2009,1997.18]],"population":[[1800,1860054],[1820,1860054],[1926,2547668],[1931,3023000],[1936,3241694],[1950,4887591],[1951,4947090],[1952,5009067],[1953,5073595],[1954,5140805],[1955,5210832],[1956,5283822],[1957,5359923],[1958,5439350],[1959,5522218],[1960,5608760],[1961,5699165],[1962,5793633],[1963,5892378],[1964,5995682],[1965,6103788],[1966,6216951],[1967,6335506],[1968,6459744],[1969,6590041],[1970,6726733],[1971,6870244],[1972,7021028],[1973,7179499],[1974,7346174],[1975,7521530],[1976,7721125],[1977,7959865],[1978,8206825],[1979,8451209],[1980,8746201],[1981,9024472],[1982,9250831],[1983,9521511],[1984,9815056],[1985,10127591],[1986,10454538],[1987,10780667],[1988,11105864],[1989,11438491],[1990,11778594],[1991,12122404],[1992,12467171],[1993,12814205],[1994,13161203],[1995,13504356],[1996,13848792],[1997,14195809],[1998,14543246],[1999,14889962],[2000,15233673],[2001,15577246],[2002,15929988],[2003,16286408],[2004,16637276],[2005,16988132],[2006,17340702],[2007,17696293],[2008,18054929]],"lifeExpectancy":[[1800,28.75],[1931,28.75],[1945,28.75],[1950,37.85],[1951,38.01],[1952,38.34],[1953,38.69],[1954,39.06],[1955,39.43],[1956,39.83],[1957,40.24],[1958,40.66],[1959,41.09],[1960,41.53],[1961,41.98],[1962,42.42],[1963,42.86],[1964,43.3],[1965,43.74],[1966,44.17],[1967,44.61],[1968,45.05],[1969,45.49],[1970,45.94],[1971,46.38],[1972,46.82],[1973,47.26],[1974,47.7],[1975,48.16],[1976,48.66],[1977,49.2],[1978,49.79],[1979,50.42],[1980,51.08],[1981,51.76],[1982,52.44],[1983,53.09],[1984,53.69],[1985,54.2],[1986,54.61],[1987,54.9],[1988,55.08],[1989,55.14],[1990,55.08],[1991,54.91],[1992,54.66],[1993,54.34],[1994,53.98],[1995,53.59],[1996,53.18],[1997,52.75],[1998,52.31],[1999,51.9],[2000,51.52],[2001,51.19],[2002,50.93],[2003,50.74],[2004,50.64],[2005,50.62],[2006,50.7],[2007,50.87],[2008,51.1],[2009,51.39]]},{"name":"Cape Verde","region":"Sub-Saharan Africa","income":[[1800,340],[1820,340],[1821,341.4],[1822,342.8],[1823,344.22],[1824,345.63],[1825,347.05],[1826,348.48],[1827,349.92],[1828,351.36],[1829,352.8],[1830,354.26],[1831,355.71],[1832,357.18],[1833,358.65],[1834,360.12],[1835,361.61],[1836,363.1],[1837,364.59],[1838,366.09],[1839,367.6],[1840,369.11],[1841,370.63],[1842,372.15],[1843,373.69],[1844,375.22],[1845,376.77],[1846,378.32],[1847,379.88],[1848,381.44],[1849,383.01],[1850,384.59],[1851,386.17],[1852,387.76],[1853,389.35],[1854,390.96],[1855,392.57],[1856,394.18],[1857,395.8],[1858,397.43],[1859,399.07],[1860,400.71],[1861,402.36],[1862,404.02],[1863,405.68],[1864,407.35],[1865,409.03],[1866,410.71],[1867,412.4],[1868,414.1],[1869,415.8],[1870,417.51],[1871,419.23],[1872,420.96],[1873,422.69],[1874,424.43],[1875,426.18],[1876,427.93],[1877,429.69],[1878,431.46],[1879,433.24],[1880,435.02],[1881,436.81],[1882,438.61],[1883,440.41],[1884,442.23],[1885,444.05],[1886,445.87],[1887,447.71],[1888,449.55],[1889,451.4],[1890,453.26],[1891,455.13],[1892,457],[1893,458.88],[1894,460.77],[1895,462.67],[1896,464.57],[1897,466.48],[1898,468.4],[1899,470.33],[1900,472.27],[1901,474.21],[1902,476.16],[1903,478.12],[1904,480.09],[1905,482.06],[1906,484.05],[1907,486.04],[1908,488.04],[1909,490.05],[1910,492.07],[1911,494.09],[1912,496.13],[1913,498.17],[1914,500.22],[1915,502.28],[1916,504.35],[1917,506.42],[1918,508.51],[1919,510.6],[1920,512.7],[1921,514.81],[1922,516.93],[1923,519.06],[1924,521.19],[1925,523.34],[1926,525.49],[1927,527.66],[1928,529.83],[1929,532.01],[1930,534.2],[1931,536.4],[1932,538.6],[1933,540.82],[1934,543.05],[1935,545.28],[1936,547.53],[1937,549.78],[1938,552.04],[1939,554.31],[1940,556.6],[1941,558.89],[1942,561.19],[1943,563.5],[1944,565.82],[1945,568.15],[1946,570.48],[1947,572.83],[1948,575.19],[1949,577.56],[1950,579.93],[1951,587.25],[1952,594.73],[1953,602.33],[1954,593.9],[1955,596.83],[1956,604.27],[1957,583.63],[1958,578.66],[1959,627.09],[1960,654.58],[1961,676.65],[1962,695.81],[1963,712.76],[1964,727.65],[1965,741.25],[1966,754.17],[1967,765.83],[1968,776.91],[1969,787.69],[1970,798.3],[1971,730.46],[1972,691.52],[1973,682.07],[1974,660.05],[1975,676.79],[1976,671.08],[1977,667.78],[1978,730.72],[1979,801.76],[1980,1084.09],[1981,1165.56],[1982,1181.35],[1983,1274.12],[1984,1301.51],[1985,1391.73],[1986,1408.06],[1987,1481.04],[1988,1500.81],[1989,1554.99],[1990,1587.89],[1993,1524.74],[1994,1600.25],[1995,1700.27],[1996,1788.78],[1997,1902.83],[1998,2018.62],[1999,2168.69],[2000,2291.29],[2001,2406.57],[2002,2505.29],[2003,2600.55],[2004,2692.59],[2005,2831],[2006,3078.92],[2007,3274.76],[2008,3384.72],[2009,3456.14]],"population":[[1800,55716],[1820,55716],[1950,146403],[1951,150651],[1952,155037],[1953,159567],[1954,164262],[1955,169146],[1956,174228],[1957,179516],[1958,185020],[1959,190769],[1960,196768],[1961,203146],[1962,209878],[1963,216919],[1964,224264],[1965,231719],[1966,239230],[1967,246787],[1968,254303],[1969,261602],[1970,268867],[1971,273381],[1972,275392],[1973,277218],[1974,278617],[1975,280259],[1976,282516],[1977,285691],[1978,288855],[1979,292276],[1980,296042],[1981,300190],[1982,304586],[1983,309265],[1984,314237],[1985,319490],[1986,325009],[1987,330779],[1988,336773],[1989,342950],[1990,349264],[1991,355545],[1992,361638],[1993,367520],[1994,373163],[1995,378520],[1996,383584],[1997,388383],[1998,392941],[1999,397270],[2000,401343],[2001,405163],[2002,408760],[2003,412137],[2004,415294],[2005,418224],[2006,420979],[2007,423613],[2008,426113]],"lifeExpectancy":[[1800,33.8],[1935,33.8],[1950,47.32],[1951,47.63],[1952,48.22],[1953,48.79],[1954,49.32],[1955,49.82],[1956,50.29],[1957,50.74],[1958,51.16],[1959,51.57],[1960,51.98],[1961,52.4],[1962,52.83],[1963,53.28],[1964,53.75],[1965,54.23],[1966,54.71],[1967,55.18],[1968,55.63],[1969,56.06],[1970,56.48],[1971,56.88],[1972,57.3],[1973,57.73],[1974,58.18],[1975,58.67],[1976,59.18],[1977,59.73],[1978,60.3],[1979,60.89],[1980,61.47],[1981,62.03],[1982,62.57],[1983,63.08],[1984,63.54],[1985,63.98],[1986,64.38],[1987,64.78],[1988,65.17],[1989,65.55],[1990,65.93],[1991,66.3],[1992,66.65],[1993,66.97],[1994,67.28],[1995,67.57],[1996,67.84],[1997,68.12],[1998,68.4],[1999,68.68],[2000,68.98],[2001,69.28],[2002,69.59],[2003,69.9],[2004,70.21],[2005,70.52],[2006,70.82],[2007,71.11],[2008,71.4],[2009,71.68]]},{"name":"Chad","region":"Sub-Saharan Africa","income":[[1800,400.69],[1820,400.69],[1913,619.09],[1950,1127.84],[1951,1153.46],[1952,1178.67],[1953,1203.41],[1954,1229.37],[1955,1255.59],[1956,1281.99],[1957,1308.5],[1958,1335.84],[1959,1361.48],[1960,1348.77],[1961,1343.29],[1962,1389.82],[1963,1345.06],[1964,1285.51],[1965,1264.43],[1966,1215.21],[1967,1196.81],[1968,1165.85],[1969,1219.07],[1970,1215.75],[1971,1211.69],[1972,1104.1],[1973,1026.42],[1974,1140.6],[1975,1305.72],[1976,1255.78],[1977,1133.98],[1978,1100.92],[1979,855.79],[1980,804.73],[1981,794.8],[1982,797.91],[1983,886.92],[1984,896.32],[1985,1083.31],[1986,1010.52],[1987,952.39],[1988,1066.26],[1989,1097.79],[1990,999.11],[1991,1065.94],[1992,1058.06],[1993,1003.69],[1994,1023.26],[1995,995.98],[1996,995.1],[1997,1004.96],[1998,1048.81],[1999,1039.29],[2000,1017.03],[2001,1084.2],[2002,1156.18],[2003,1287.08],[2004,1669.42],[2005,1749],[2006,1708.94],[2007,1670.3],[2008,1622.41],[2009,1557.83]],"population":[[1800,1432000],[1936,1432000],[1950,2607769],[1951,2644428],[1952,2682462],[1953,2721913],[1954,2762828],[1955,2805256],[1956,2849247],[1957,2894855],[1958,2942133],[1959,2991261],[1960,3042303],[1961,3095331],[1962,3150417],[1963,3207638],[1964,3271357],[1965,3344639],[1966,3419602],[1967,3495967],[1968,3572528],[1969,3650046],[1970,3730240],[1971,3813207],[1972,3899068],[1973,3988497],[1974,4082064],[1975,4179837],[1976,4281867],[1977,4388260],[1978,4498511],[1979,4545410],[1980,4542002],[1981,4646494],[1982,4875118],[1983,5073154],[1984,5125782],[1985,5169374],[1986,5314060],[1987,5498955],[1988,5674660],[1989,5829327],[1990,6022856],[1991,6232340],[1992,6429417],[1993,6655731],[1994,6886696],[1995,7103883],[1996,7329462],[1997,7562011],[1998,7804481],[1999,8058514],[2000,8316481],[2001,8573507],[2002,8835739],[2003,9103618],[2004,9377194],[2005,9657069],[2006,9944201],[2007,10238807],[2008,10541156]],"lifeExpectancy":[[1800,30.9],[1945,30.9],[1950,37.39],[1951,37.56],[1952,37.91],[1953,38.27],[1954,38.62],[1955,38.98],[1956,39.34],[1957,39.7],[1958,40.06],[1959,40.42],[1960,40.79],[1961,41.16],[1962,41.53],[1963,41.9],[1964,42.27],[1965,42.65],[1966,43.03],[1967,43.42],[1968,43.82],[1969,44.21],[1970,44.61],[1971,44.98],[1972,45.35],[1973,45.69],[1974,46.03],[1975,46.36],[1976,46.69],[1977,47.05],[1978,47.43],[1979,47.84],[1980,48.26],[1981,48.7],[1982,49.14],[1983,49.56],[1984,49.96],[1985,50.31],[1986,50.61],[1987,50.85],[1988,51.04],[1989,51.16],[1990,51.21],[1991,51.2],[1992,51.14],[1993,51.03],[1994,50.88],[1995,50.68],[1996,50.45],[1997,50.18],[1998,49.89],[1999,49.59],[2000,49.3],[2001,49.03],[2002,48.81],[2003,48.63],[2004,48.52],[2005,48.48],[2006,48.51],[2007,48.61],[2008,48.76],[2009,48.97]]},{"name":"Comoros","region":"Sub-Saharan Africa","income":[[1800,800.61],[1820,800.61],[1913,973.4],[1950,1052.1],[1951,1090.85],[1952,1102.99],[1953,1122.69],[1954,1162.08],[1955,1174.15],[1956,1193.11],[1957,1211.15],[1958,1218.42],[1959,1260.08],[1960,1337.13],[1961,1320.49],[1962,1406.65],[1963,1666.01],[1964,1750.41],[1965,1714.18],[1966,1847.27],[1967,1876.03],[1968,1827.9],[1969,1807.69],[1970,1894.29],[1971,2167.2],[1972,1937.58],[1973,1669.69],[1974,1980.87],[1975,1509.81],[1976,1298.57],[1977,1172.6],[1978,1177.32],[1979,1170.84],[1980,1208.28],[1981,1247.48],[1982,1267.1],[1983,1283.26],[1984,1291.09],[1985,1296.92],[1986,1296.8],[1987,1315.98],[1988,1337.51],[1989,1303.55],[1990,1286.8],[1991,1183.07],[1992,1246.91],[1993,1247.05],[1994,1146.29],[1995,1209.23],[1996,1158.46],[1997,1173.62],[1998,1148.85],[1999,1137.89],[2000,1090.79],[2001,1083.42],[2002,1075.81],[2003,1070.95],[2004,1083.02],[2005,1063],[2006,1054.06],[2007,1037.46],[2008,1026.03],[2009,1016.42]],"population":[[1800,56346],[1820,56346],[1950,148057],[1951,150937],[1952,153936],[1953,157062],[1954,160318],[1955,163711],[1956,167245],[1957,170928],[1958,174766],[1959,178754],[1960,182899],[1961,187209],[1962,191689],[1963,196348],[1964,201208],[1965,206279],[1966,211571],[1967,217378],[1968,223443],[1969,229732],[1970,236252],[1971,243014],[1972,250027],[1973,257303],[1974,264851],[1975,272685],[1976,280815],[1977,304739],[1978,313970],[1979,323557],[1980,333513],[1981,340765],[1982,348643],[1983,356997],[1984,365813],[1985,375099],[1986,384862],[1987,395114],[1988,405874],[1989,417164],[1990,429010],[1991,441427],[1992,454429],[1993,468010],[1994,482162],[1995,496906],[1996,512197],[1997,527982],[1998,544267],[1999,561063],[2000,578400],[2001,596202],[2002,614382],[2003,632948],[2004,651901],[2005,671247],[2006,690948],[2007,710960],[2008,731281]],"lifeExpectancy":[[1800,32.1],[1945,32.1],[1950,40.1],[1951,40.25],[1952,40.55],[1953,40.87],[1954,41.2],[1955,41.55],[1956,41.91],[1957,42.28],[1958,42.66],[1959,43.05],[1960,43.45],[1961,43.85],[1962,44.24],[1963,44.64],[1964,45.04],[1965,45.44],[1966,45.86],[1967,46.3],[1968,46.75],[1969,47.23],[1970,47.72],[1971,48.21],[1972,48.68],[1973,49.14],[1974,49.58],[1975,50],[1976,50.4],[1977,50.79],[1978,51.18],[1979,51.57],[1980,51.96],[1981,52.35],[1982,52.73],[1983,53.11],[1984,53.49],[1985,53.89],[1986,54.32],[1987,54.78],[1988,55.29],[1989,55.85],[1990,56.43],[1991,57.04],[1992,57.64],[1993,58.24],[1994,58.82],[1995,59.37],[1996,59.9],[1997,60.41],[1998,60.9],[1999,61.38],[2000,61.85],[2001,62.31],[2002,62.76],[2003,63.2],[2004,63.64],[2005,64.08],[2006,64.51],[2007,64.94],[2008,65.36],[2009,65.77]]},{"name":"Congo, Dem. Rep.","region":"Sub-Saharan Africa","income":[[1800,394.03],[1820,394.03],[1913,608.8],[1950,665.38],[1951,729.1],[1952,780.54],[1953,809.04],[1954,841.4],[1955,856.8],[1956,896.38],[1957,905.86],[1958,861.47],[1959,872.68],[1960,873.47],[1961,762.12],[1962,896.31],[1963,915],[1964,872.83],[1965,861.88],[1966,897.08],[1967,861.59],[1968,871.21],[1969,925.06],[1970,897.41],[1971,928.83],[1972,904.9],[1973,955.92],[1974,961.96],[1975,888.5],[1976,814.53],[1977,795.76],[1978,727.85],[1979,703.98],[1980,698.67],[1981,696.07],[1982,673.75],[1983,665.85],[1984,683.46],[1985,665.88],[1986,676.35],[1987,672.77],[1988,655.34],[1989,630.56],[1990,595.59],[1991,527.67],[1992,465.07],[1993,395.61],[1994,373.44],[1995,367.22],[1996,362.19],[1997,343.52],[1998,335.86],[1999,316.71],[2000,292.45],[2001,281.91],[2002,287.38],[2003,299.49],[2004,314.52],[2005,330],[2006,338.29],[2007,348.98],[2008,359.38],[2009,358.8]],"population":[[1800,5163819],[1820,5163819],[1950,13568762],[1951,13831813],[1952,14100005],[1953,14373435],[1954,14657484],[1955,14952568],[1956,15259279],[1957,15577932],[1958,15909008],[1959,16253014],[1960,16610482],[1961,16964231],[1962,17486434],[1963,18027167],[1964,18432651],[1965,18855509],[1966,19343383],[1967,19941073],[1968,20570629],[1969,21178812],[1970,21780955],[1971,22385560],[1972,23007669],[1973,23668471],[1974,24327147],[1975,25027571],[1976,25737520],[1977,26480870],[1978,27314183],[1979,28201693],[1980,29010717],[1981,29806198],[1982,30646495],[1983,31444001],[1984,32337982],[1985,33340593],[1986,34372899],[1987,35481645],[1988,36632259],[1989,37814050],[1990,39064041],[1991,40388906],[1992,41672143],[1993,43055943],[1994,44539132],[1995,46343432],[1996,47265530],[1997,47798986],[1998,48877408],[1999,50400431],[2000,52021832],[2001,53682112],[2002,55379852],[2003,57124974],[2004,58919207],[2005,60764490],[2006,62660551],[2007,64606759],[2008,66604314]],"lifeExpectancy":[[1800,31.6],[1940,31.6],[1950,38.46],[1951,38.63],[1952,38.96],[1953,39.29],[1954,39.6],[1955,39.91],[1956,40.2],[1957,40.49],[1958,40.76],[1959,41.03],[1960,41.28],[1961,41.53],[1962,41.76],[1963,41.99],[1964,42.21],[1965,42.44],[1966,42.69],[1967,42.95],[1968,43.23],[1969,43.52],[1970,43.83],[1971,44.12],[1972,44.39],[1973,44.64],[1974,44.87],[1975,45.09],[1976,45.32],[1977,45.57],[1978,45.86],[1979,46.17],[1980,46.49],[1981,46.8],[1982,47.08],[1983,47.3],[1984,47.46],[1985,47.57],[1986,47.65],[1987,47.71],[1988,47.76],[1989,47.8],[1990,47.79],[1991,47.68],[1992,47.45],[1993,47.12],[1994,46.71],[1995,46.29],[1996,45.96],[1997,45.79],[1998,45.8],[1999,46],[2000,46.34],[2001,46.75],[2002,47.13],[2003,47.4],[2004,47.57],[2005,47.63],[2006,47.63],[2007,47.63],[2008,47.68],[2009,47.81]]},{"name":"Congo, Rep.","region":"Sub-Saharan Africa","income":[[1800,387.38],[1820,387.38],[1913,598.52],[1950,2045.71],[1951,2086.26],[1952,2125.62],[1953,2163.66],[1954,2202.17],[1955,2240.94],[1956,2277.93],[1957,2315.06],[1958,2352.14],[1959,2388.98],[1960,2416.97],[1961,2441.68],[1962,2464.78],[1963,2489.39],[1964,2513.69],[1965,2537.54],[1966,2606.33],[1967,2677.94],[1968,2749.04],[1969,2822.37],[1970,2896.11],[1971,3049.9],[1972,3213.15],[1973,3382.1],[1974,3557.86],[1975,3740.93],[1976,3654.71],[1977,3259.18],[1978,3113.91],[1979,3487.82],[1980,3968.45],[1981,4653.12],[1982,4879.51],[1983,4974.83],[1984,5137.42],[1985,4760.07],[1986,4302.47],[1987,4201.19],[1988,4080.9],[1989,4102.61],[1990,4066.16],[1991,4036.64],[1992,4016.24],[1993,3850.64],[1994,3523.16],[1995,3554.39],[1996,3596.92],[1997,3484.16],[1998,3516.06],[1999,3304.52],[2000,3423.52],[2001,3397.84],[2002,3484.06],[2003,3425.54],[2004,3455.04],[2005,3621],[2006,3738.39],[2007,3575.55],[2008,3668.41],[2009,3834.67]],"population":[[1800,314465],[1820,314465],[1950,826308],[1951,840223],[1952,854885],[1953,870325],[1954,886576],[1955,903672],[1956,921651],[1957,940458],[1958,960128],[1959,980700],[1960,1002214],[1961,1024609],[1962,1047924],[1963,1072198],[1964,1097474],[1965,1123795],[1966,1151207],[1967,1179760],[1968,1209505],[1969,1240372],[1970,1272408],[1971,1305794],[1972,1340458],[1973,1376455],[1974,1414408],[1975,1453638],[1976,1494409],[1977,1536769],[1978,1580775],[1979,1626497],[1980,1674005],[1981,1723397],[1982,1774735],[1983,1828053],[1984,1883386],[1985,1941071],[1986,2001363],[1987,2064095],[1988,2129084],[1989,2196100],[1990,2264842],[1991,2336155],[1992,2409073],[1993,2487553],[1994,2568840],[1995,2648529],[1996,2729757],[1997,2800947],[1998,2878481],[1999,2970784],[2000,3102404],[2001,3238410],[2002,3328795],[2003,3412576],[2004,3502035],[2005,3602269],[2006,3702314],[2007,3800610],[2008,3903318]],"lifeExpectancy":[[1800,32.7],[1945,32.7],[1950,41.21],[1951,41.62],[1952,42.42],[1953,43.21],[1954,43.98],[1955,44.73],[1956,45.47],[1957,46.18],[1958,46.89],[1959,47.57],[1960,48.24],[1961,48.9],[1962,49.54],[1963,50.17],[1964,50.79],[1965,51.41],[1966,52.02],[1967,52.62],[1968,53.22],[1969,53.82],[1970,54.42],[1971,55.01],[1972,55.61],[1973,56.19],[1974,56.76],[1975,57.31],[1976,57.83],[1977,58.34],[1978,58.8],[1979,59.23],[1980,59.6],[1981,59.91],[1982,60.15],[1983,60.33],[1984,60.43],[1985,60.44],[1986,60.37],[1987,60.21],[1988,59.98],[1989,59.66],[1990,59.26],[1991,58.76],[1992,58.16],[1993,57.5],[1994,56.8],[1995,56.09],[1996,55.41],[1997,54.8],[1998,54.28],[1999,53.87],[2000,53.58],[2001,53.39],[2002,53.29],[2003,53.24],[2004,53.24],[2005,53.28],[2006,53.35],[2007,53.46],[2008,53.59],[2009,53.75]]},{"name":"Cote d'Ivoire","region":"Sub-Saharan Africa","income":[[1800,549.19],[1820,549.19],[1913,848.53],[1950,1344.43],[1951,1366.57],[1952,1388.59],[1953,1410.48],[1954,1433.43],[1955,1455.9],[1956,1478.01],[1957,1500.9],[1958,1522.78],[1959,1537.94],[1960,1622.67],[1961,1714.79],[1962,1728.87],[1963,1935.62],[1964,2192.29],[1965,2055.67],[1966,2120.46],[1967,2052.05],[1968,2258.48],[1969,2245],[1970,2367.24],[1971,2364.51],[1972,2378.2],[1973,2453.1],[1974,2421.08],[1975,2324.96],[1976,2501.3],[1977,2517.74],[1978,2661.38],[1979,2608.89],[1980,2704.73],[1981,2695.54],[1982,2602.71],[1983,2411.97],[1984,2250.26],[1985,2279.11],[1986,2267.42],[1987,2156.96],[1988,2049.2],[1989,1972.84],[1990,1760.42],[1991,1692.62],[1992,1648.07],[1993,1598.85],[1994,1577.61],[1995,1640.62],[1996,1724],[1997,1786.27],[1998,1840.24],[1999,1830.03],[2000,1746.31],[2001,1710.01],[2002,1648.8],[2003,1587.23],[2004,1579.42],[2005,1575],[2006,1540.28],[2007,1519.12],[2008,1509.24],[2009,1520.23]],"population":[[1800,1088530],[1820,1088530],[1950,2860288],[1951,2918070],[1952,2977019],[1953,3037159],[1954,3098513],[1955,3164270],[1956,3231423],[1957,3300000],[1958,3373788],[1959,3463050],[1960,3576077],[1961,3700174],[1962,3832408],[1963,3985277],[1964,4148402],[1965,4326838],[1966,4526508],[1967,4744870],[1968,4983741],[1969,5234620],[1970,5503630],[1971,5786465],[1972,6071696],[1973,6351885],[1974,6621723],[1975,6888884],[1976,7170368],[1977,7459574],[1978,7756303],[1979,8061217],[1980,8375546],[1981,8697986],[1982,9025951],[1983,9360268],[1984,9701389],[1985,10049353],[1986,10403065],[1987,10761098],[1988,11122436],[1989,11484678],[1990,11981454],[1991,12461399],[1992,12772596],[1993,13139524],[1994,13582754],[1995,13988434],[1996,14336812],[1997,14625967],[1998,14878476],[1999,15200755],[2000,15563387],[2001,15909606],[2002,16252726],[2003,16595981],[2004,16944598],[2005,17298040],[2006,17654843],[2007,18013409],[2008,18373060]],"lifeExpectancy":[[1800,31.9],[1945,31.9],[1950,36.64],[1951,36.8],[1952,37.13],[1953,37.48],[1954,37.87],[1955,38.29],[1956,38.74],[1957,39.21],[1958,39.7],[1959,40.21],[1960,40.71],[1961,41.21],[1962,41.69],[1963,42.16],[1964,42.64],[1965,43.14],[1966,43.72],[1967,44.38],[1968,45.15],[1969,46.02],[1970,46.99],[1971,48.05],[1972,49.16],[1973,50.27],[1974,51.36],[1975,52.38],[1976,53.28],[1977,54.07],[1978,54.73],[1979,55.26],[1980,55.66],[1981,55.96],[1982,56.2],[1983,56.39],[1984,56.56],[1985,56.72],[1986,56.87],[1987,57.02],[1988,57.14],[1989,57.24],[1990,57.3],[1991,57.31],[1992,57.26],[1993,57.16],[1994,57],[1995,56.79],[1996,56.53],[1997,56.24],[1998,55.94],[1999,55.66],[2000,55.45],[2001,55.32],[2002,55.3],[2003,55.4],[2004,55.61],[2005,55.94],[2006,56.36],[2007,56.84],[2008,57.34],[2009,57.86]]},{"name":"Equatorial Guinea","region":"Sub-Saharan Africa","income":[[1800,379.13],[1820,379.13],[1913,361.54],[1950,354.77],[1951,368.45],[1952,375.64],[1953,385.57],[1954,401.06],[1955,407.34],[1956,418.34],[1957,426.1],[1958,433.52],[1959,451.56],[1960,490.52],[1961,529.99],[1962,582.84],[1963,661.42],[1964,752.29],[1965,844.87],[1966,869.18],[1967,915.6],[1968,935.83],[1969,896.39],[1970,860.36],[1971,779.61],[1972,672.41],[1973,700.14],[1974,741.54],[1975,850.5],[1976,954.17],[1977,958.57],[1978,1033.54],[1979,1012.78],[1980,970.46],[1981,935.92],[1982,927.83],[1983,917.08],[1984,1103.64],[1985,920.91],[1986,936.05],[1987,966.9],[1988,1010.4],[1989,1025.24],[1990,1027.71],[1991,1048.47],[1992,1132.06],[1993,1172.91],[1994,1201.49],[1995,1337.98],[1996,1684.68],[1997,2814.48],[1998,3349.46],[1999,4623.26],[2000,5240.45],[2001,7192.38],[2002,7703.5],[2003,8913.56],[2004,11487.29],[2005,11999],[2006,11807.73],[2007,13934.25],[2008,14988.85],[2009,15342.2]],"population":[[1800,80377],[1820,80377],[1920,112000],[1932,167000],[1942,171000],[1950,211204],[1951,214064],[1952,216964],[1953,219902],[1954,222880],[1955,225899],[1956,229383],[1957,232922],[1958,236514],[1959,240163],[1960,243867],[1961,248028],[1962,249220],[1963,250419],[1964,251623],[1965,252833],[1966,256349],[1967,259864],[1968,263377],[1969,266898],[1970,270435],[1971,273999],[1972,277603],[1973,271301],[1974,249952],[1975,213292],[1976,190808],[1977,192675],[1978,194597],[1979,221299],[1980,256009],[1981,271778],[1982,285483],[1983,299577],[1984,314447],[1985,324741],[1986,332827],[1987,341244],[1988,349968],[1989,359008],[1990,368379],[1991,378008],[1992,387838],[1993,397863],[1994,408095],[1995,418534],[1996,429158],[1997,439971],[1998,450938],[1999,462037],[2000,473216],[2001,484425],[2002,495627],[2003,506800],[2004,517927],[2005,529034],[2006,540109],[2007,551201],[2008,562339]],"lifeExpectancy":[[1800,29.8],[1945,29.8],[1950,33.88],[1951,34.03],[1952,34.33],[1953,34.63],[1954,34.93],[1955,35.23],[1956,35.53],[1957,35.83],[1958,36.13],[1959,36.43],[1960,36.73],[1961,37.03],[1962,37.33],[1963,37.63],[1964,37.93],[1965,38.24],[1966,38.54],[1967,38.84],[1968,39.14],[1969,39.44],[1970,39.74],[1971,40.05],[1972,40.35],[1973,40.65],[1974,40.95],[1975,41.25],[1976,41.55],[1977,41.85],[1978,42.17],[1979,42.48],[1980,42.81],[1981,43.16],[1982,43.52],[1983,43.89],[1984,44.27],[1985,44.67],[1986,45.08],[1987,45.5],[1988,45.92],[1989,46.34],[1990,46.74],[1991,47.13],[1992,47.48],[1993,47.8],[1994,48.09],[1995,48.32],[1996,48.49],[1997,48.61],[1998,48.68],[1999,48.72],[2000,48.74],[2001,48.77],[2002,48.82],[2003,48.92],[2004,49.08],[2005,49.29],[2006,49.57],[2007,49.89],[2008,50.25],[2009,50.64]]},{"name":"Eritrea","region":"Sub-Saharan Africa","income":[[1800,583.95],[1820,583.95],[1913,381.13],[1950,321.62],[1951,325.28],[1952,328.94],[1953,342.07],[1954,336.19],[1955,348.03],[1956,353.14],[1957,344.16],[1958,348.98],[1959,351.76],[1960,362.82],[1961,373.26],[1962,381],[1963,422.94],[1964,434.87],[1965,451.17],[1966,459.13],[1967,468.79],[1968,466.87],[1969,473.94],[1970,490.38],[1971,500.27],[1972,514.32],[1973,519.46],[1974,513.76],[1975,502.68],[1976,503.64],[1977,505.75],[1978,491.88],[1979,517.1],[1980,534.43],[1981,531.04],[1982,524.88],[1983,536.48],[1984,513.94],[1985,472.36],[1986,491.55],[1987,521.13],[1988,512.63],[1989,501.93],[1990,476.62],[1991,526.15],[1992,582.86],[1993,658.71],[1994,794.98],[1995,806.51],[1996,866.1],[1997,913.47],[1998,905.29],[1999,877.61],[2000,741.57],[2001,775.23],[2002,765.35],[2003,713.58],[2004,694.36],[2005,685],[2006,636.32],[2007,624.3],[2008,545.79],[2009,548.37]],"population":[[1800,205010],[1820,205010],[1950,1402510],[1951,1420279],[1952,1438760],[1953,1457971],[1954,1477939],[1955,1498684],[1956,1520231],[1957,1542611],[1958,1565847],[1959,1589868],[1960,1614698],[1961,1640231],[1962,1666618],[1963,1693045],[1964,1718392],[1965,1746439],[1966,1773393],[1967,1820319],[1968,1857075],[1969,2007110],[1970,2160460],[1971,2208336],[1972,2260187],[1973,2340837],[1974,2380509],[1975,2421037],[1976,2469199],[1977,2512642],[1978,2537978],[1979,2556806],[1980,2568741],[1981,2592782],[1982,2637297],[1983,2693884],[1984,2759280],[1985,2789056],[1986,2837875],[1987,2915959],[1988,2978325],[1989,2989759],[1990,2996243],[1991,3310098],[1992,3668440],[1993,3743948],[1994,3815601],[1995,3858978],[1996,3926212],[1997,4058319],[1998,4183431],[1999,4317425],[2000,4356581],[2001,4360461],[2002,4414865],[2003,4470145],[2004,4554408],[2005,4669638],[2006,4786994],[2007,4906585],[2008,5028475]],"lifeExpectancy":[[1800,30.2],[1945,30.2],[1950,35.08],[1951,35.29],[1952,35.72],[1953,36.14],[1954,36.56],[1955,36.99],[1956,37.41],[1957,37.84],[1958,38.26],[1959,38.69],[1960,39.11],[1961,39.53],[1962,39.95],[1963,40.37],[1964,40.78],[1965,41.19],[1966,41.61],[1967,42.04],[1968,42.47],[1969,42.89],[1970,43.3],[1971,43.66],[1972,43.98],[1973,44.23],[1974,44.42],[1975,44.53],[1976,44.54],[1977,44.47],[1978,44.35],[1979,44.19],[1980,44.05],[1981,43.97],[1982,43.99],[1983,44.13],[1984,44.41],[1985,44.82],[1986,45.36],[1987,45.98],[1988,46.65],[1989,47.36],[1990,48.09],[1991,48.87],[1992,49.68],[1993,50.53],[1994,51.4],[1995,52.27],[1996,53.11],[1997,53.9],[1998,54.65],[1999,55.33],[2000,55.94],[2001,56.5],[2002,57],[2003,57.48],[2004,57.93],[2005,58.37],[2006,58.8],[2007,59.21],[2008,59.62],[2009,60.03]]},{"name":"Ethiopia","region":"Sub-Saharan Africa","income":[[1800,619.21],[1820,619.21],[1913,415.14],[1950,354.09],[1951,358.12],[1952,362.15],[1953,376.6],[1954,370.13],[1955,383.17],[1956,388.79],[1957,378.9],[1958,384.21],[1959,387.26],[1960,399.45],[1961,410.94],[1962,419.46],[1963,465.63],[1964,478.77],[1965,496.71],[1966,505.48],[1967,516.12],[1968,514],[1969,521.78],[1970,539.88],[1971,550.77],[1972,566.24],[1973,571.9],[1974,565.62],[1975,553.43],[1976,554.48],[1977,556.81],[1978,541.54],[1979,569.31],[1980,588.38],[1981,584.64],[1982,577.86],[1983,590.64],[1984,565.82],[1985,520.04],[1986,541.17],[1987,573.74],[1988,564.37],[1989,552.6],[1990,524.74],[1991,489.83],[1992,421.35],[1993,462.36],[1994,460.14],[1995,471.41],[1996,512.79],[1997,515.89],[1998,481.46],[1999,496.87],[2000,512.36],[2001,537.42],[2002,530.05],[2003,498.42],[2004,549.6],[2005,591],[2006,642.27],[2007,699.61],[2008,757.88],[2009,812.16]],"population":[[1800,2948990],[1820,2948990],[1950,20174562],[1951,20511408],[1952,20860941],[1953,21223618],[1954,21599912],[1955,21990323],[1956,22395376],[1957,22815614],[1958,23251610],[1959,23702450],[1960,24168672],[1961,24648849],[1962,25145372],[1963,25659679],[1964,26192357],[1965,26740270],[1966,27307798],[1967,27860297],[1968,28451255],[1969,28962280],[1970,29468504],[1971,30099662],[1972,30770372],[1973,31445177],[1974,32199367],[1975,32975868],[1976,33824835],[1977,34617799],[1978,35216317],[1979,35664267],[1980,36036457],[1981,37056244],[1982,38111756],[1983,39204501],[1984,40072430],[1985,40698078],[1986,41662199],[1987,42999530],[1988,44606289],[1989,46396556],[1990,48197268],[1991,50274862],[1992,52088559],[1993,53446251],[1994,54954863],[1995,56628083],[1996,58283759],[1997,59861301],[1998,61436985],[1999,63054968],[2000,64690052],[2001,66308836],[2002,67946797],[2003,69628079],[2004,71336571],[2005,73053286],[2006,74777981],[2007,76511887],[2008,78254090]],"lifeExpectancy":[[1800,29.7],[1945,29.7],[1950,33.3],[1951,33.47],[1952,33.83],[1953,34.25],[1954,34.72],[1955,35.24],[1956,35.81],[1957,36.42],[1958,37.07],[1959,37.74],[1960,38.41],[1961,39.07],[1962,39.7],[1963,40.28],[1964,40.8],[1965,41.25],[1966,41.65],[1967,42.01],[1968,42.33],[1969,42.64],[1970,42.93],[1971,43.21],[1972,43.49],[1973,43.76],[1974,44.01],[1975,44.21],[1976,44.32],[1977,44.33],[1978,44.24],[1979,44.08],[1980,43.9],[1981,43.76],[1982,43.72],[1983,43.82],[1984,44.07],[1985,44.45],[1986,44.93],[1987,45.46],[1988,45.99],[1989,46.49],[1990,46.96],[1991,47.41],[1992,47.84],[1993,48.28],[1994,48.72],[1995,49.17],[1996,49.62],[1997,50.07],[1998,50.52],[1999,50.96],[2000,51.4],[2001,51.85],[2002,52.31],[2003,52.78],[2004,53.27],[2005,53.76],[2006,54.26],[2007,54.75],[2008,55.22],[2009,55.69]]},{"name":"Gabon","region":"Sub-Saharan Africa","income":[[1800,377.54],[1820,377.54],[1913,583.32],[1950,4041.34],[1951,4166.22],[1952,4293.48],[1953,4422.18],[1954,4556.15],[1955,4694.68],[1956,4833.63],[1957,4976.2],[1958,5121.54],[1959,5268.77],[1960,5440.07],[1961,6209.47],[1962,6631.46],[1963,6988.93],[1964,7256.21],[1965,7803.24],[1966,8093.55],[1967,8358.76],[1968,8486.71],[1969,9060.22],[1970,9691.64],[1971,10478.03],[1972,11401.95],[1973,12250.84],[1974,16647.43],[1975,19327.89],[1976,25536.95],[1977,21745.57],[1978,16084.69],[1979,15732.21],[1980,15696.83],[1981,16042.76],[1982,15113.36],[1983,15510.03],[1984,16193.67],[1985,15349.56],[1986,14768.66],[1987,11864.41],[1988,12980.29],[1989,13663.2],[1990,13944.56],[1991,14364.38],[1992,13522.16],[1993,13664.83],[1994,13792.03],[1995,14105.84],[1996,14258.12],[1997,14722.84],[1998,14894.74],[1999,13276.45],[2000,12764.05],[2001,12787.09],[2002,12521.71],[2003,12610.07],[2004,12568.46],[2005,12742],[2006,12577.37],[2007,12920.7],[2008,13075.4],[2009,12704.99]],"population":[[1800,158227],[1820,158227],[1950,415767],[1951,418227],[1952,420702],[1953,423276],[1954,425951],[1955,428772],[1956,431741],[1957,434904],[1958,438310],[1959,442007],[1960,446003],[1961,450485],[1962,455661],[1963,461357],[1964,467592],[1965,474386],[1966,481519],[1967,489004],[1968,496853],[1969,503763],[1970,514597],[1971,525927],[1972,537977],[1973,560622],[1974,597096],[1975,647426],[1976,687695],[1977,706367],[1978,726252],[1979,722642],[1980,713502],[1981,730507],[1982,753874],[1983,778618],[1984,804827],[1985,832590],[1986,858970],[1987,880397],[1988,899193],[1989,918253],[1990,937493],[1991,959814],[1992,985739],[1993,1012516],[1994,1040151],[1995,1068383],[1996,1096999],[1997,1126189],[1998,1156362],[1999,1194780],[2000,1235484],[2001,1268125],[2002,1299304],[2003,1331419],[2004,1363116],[2005,1394307],[2006,1424906],[2007,1454867],[2008,1484149]],"lifeExpectancy":[[1800,30.6],[1945,30.6],[1950,35.97],[1951,36.26],[1952,36.8],[1953,37.29],[1954,37.72],[1955,38.11],[1956,38.44],[1957,38.74],[1958,39.01],[1959,39.28],[1960,39.58],[1961,39.94],[1962,40.39],[1963,40.94],[1964,41.6],[1965,42.36],[1966,43.2],[1967,44.08],[1968,44.96],[1969,45.84],[1970,46.69],[1971,47.5],[1972,48.29],[1973,49.05],[1974,49.8],[1975,50.54],[1976,51.28],[1977,52.04],[1978,52.82],[1979,53.61],[1980,54.43],[1981,55.28],[1982,56.15],[1983,57.02],[1984,57.86],[1985,58.65],[1986,59.36],[1987,59.98],[1988,60.48],[1989,60.86],[1990,61.13],[1991,61.29],[1992,61.37],[1993,61.39],[1994,61.36],[1995,61.27],[1996,61.11],[1997,60.88],[1998,60.57],[1999,60.24],[2000,59.9],[2001,59.61],[2002,59.4],[2003,59.3],[2004,59.32],[2005,59.46],[2006,59.72],[2007,60.07],[2008,60.46],[2009,60.89]]},{"name":"Ghana","region":"Sub-Saharan Africa","income":[[1800,505.14],[1820,505.14],[1913,780.48],[1950,943.1],[1951,952.97],[1952,911.3],[1953,1010.36],[1954,1107.53],[1955,1008.52],[1956,1039.12],[1957,1043.56],[1958,998.03],[1959,1110.59],[1960,1158.85],[1961,1167.03],[1962,1190.04],[1963,1197.51],[1964,1189.01],[1965,1170.79],[1966,1138.51],[1967,1125.7],[1968,1108.41],[1969,1114.11],[1970,1197.15],[1971,1253.21],[1972,1178.22],[1973,1174.72],[1974,1223.12],[1975,1048.26],[1976,990.2],[1977,993.22],[1978,1059.27],[1979,1017.28],[1980,972.84],[1981,960.18],[1982,876.03],[1983,784.53],[1984,807.25],[1985,822.8],[1986,831.21],[1987,847.01],[1988,870.05],[1989,889.39],[1990,893.8],[1991,915.14],[1992,925.06],[1993,942.02],[1994,945.56],[1995,961.42],[1996,984.87],[1997,1005.25],[1998,1030.05],[1999,1052.28],[2000,1067.6],[2001,1088.32],[2002,1111.98],[2003,1143.69],[2004,1181.71],[2005,1225],[2006,1271.24],[2007,1309.88],[2008,1370.14],[2009,1382.95]],"population":[[1800,2016034],[1820,2016034],[1870,1579000],[1913,2043000],[1950,5297454],[1951,5436555],[1952,5581001],[1953,5731008],[1954,5886798],[1955,6048606],[1956,6216679],[1957,6391288],[1958,6572719],[1959,6761280],[1960,6958283],[1961,7153508],[1962,7355248],[1963,7563839],[1964,7781813],[1965,8009602],[1966,8245481],[1967,8490213],[1968,8744302],[1969,9009048],[1970,8788945],[1971,9065500],[1972,9354120],[1973,9649958],[1974,9905330],[1975,10118240],[1976,10333176],[1977,10538093],[1978,10720559],[1979,10878226],[1980,11015630],[1981,11176529],[1982,11400338],[1983,12150541],[1984,12829647],[1985,13224725],[1986,13776193],[1987,14168101],[1988,14568008],[1989,14975941],[1990,15399466],[1991,15837581],[1992,16278738],[1993,16784962],[1994,17274479],[1995,17669087],[1996,18041282],[1997,18418288],[1998,18819453],[1999,19232823],[2000,19657719],[2001,20093021],[2002,20550751],[2003,21019630],[2004,21483085],[2005,21946247],[2006,22409572],[2007,22873338],[2008,23336661]],"lifeExpectancy":[[1800,28],[1921,28],[1925,28],[1950,42.81],[1951,42.99],[1952,43.36],[1953,43.71],[1954,44.04],[1955,44.37],[1956,44.69],[1957,44.99],[1958,45.28],[1959,45.56],[1960,45.83],[1961,46.09],[1962,46.35],[1963,46.6],[1964,46.86],[1965,47.14],[1966,47.43],[1967,47.75],[1968,48.1],[1969,48.48],[1970,48.89],[1971,49.32],[1972,49.77],[1973,50.23],[1974,50.69],[1975,51.14],[1976,51.57],[1977,51.98],[1978,52.36],[1979,52.71],[1980,53.03],[1981,53.33],[1982,53.61],[1983,53.88],[1984,54.17],[1985,54.49],[1986,54.9],[1987,55.39],[1988,55.97],[1989,56.6],[1990,57.24],[1991,57.85],[1992,58.38],[1993,58.77],[1994,59.01],[1995,59.09],[1996,59.02],[1997,58.83],[1998,58.56],[1999,58.25],[2000,57.91],[2001,57.57],[2002,57.24],[2003,56.94],[2004,56.7],[2005,56.54],[2006,56.47],[2007,56.51],[2008,56.62],[2009,56.83]]},{"name":"Guinea","region":"Sub-Saharan Africa","income":[[1800,375.96],[1820,375.96],[1913,448.43],[1950,481],[1951,502.27],[1952,510.2],[1953,520.99],[1954,543.59],[1955,553.34],[1956,565.42],[1957,576.27],[1958,583.77],[1959,606.89],[1960,621.38],[1961,650.64],[1962,686.37],[1963,637.63],[1964,666.64],[1965,699.08],[1966,700.53],[1967,708.76],[1968,716.29],[1969,723.13],[1970,733.71],[1971,741.47],[1972,741.67],[1973,758.7],[1974,795.61],[1975,812.14],[1976,873.48],[1977,874.69],[1978,879.33],[1979,862.64],[1980,873.69],[1981,860.19],[1982,857.25],[1983,848.68],[1984,833.19],[1985,807.66],[1986,801.25],[1987,805.57],[1988,831.91],[1989,843.64],[1990,834.48],[1991,797.48],[1992,794.35],[1993,809.58],[1994,815.22],[1995,825.5],[1996,838.4],[1997,869.45],[1998,897.23],[1999,909.94],[2000,906.62],[2001,934.76],[2002,945.58],[2003,934.37],[2004,937.47],[2005,946],[2006,939.12],[2007,925.58],[2008,940.88],[2009,908.86]],"population":[[1800,983959],[1820,983959],[1950,2585509],[1951,2624584],[1952,2664249],[1953,2704514],[1954,2745388],[1955,2786879],[1956,2830712],[1957,2876726],[1958,2924954],[1959,2975408],[1960,3028117],[1961,3083075],[1962,3140003],[1963,3198659],[1964,3259080],[1965,3321330],[1966,3385447],[1967,3451418],[1968,3519302],[1969,3589194],[1970,3661175],[1971,3735240],[1972,3811387],[1973,3889716],[1974,3970332],[1975,4053377],[1976,4138911],[1977,4227026],[1978,4317827],[1979,4411454],[1980,4508009],[1981,4607654],[1982,4710497],[1983,4816673],[1984,5045067],[1985,5327721],[1986,5505366],[1987,5650262],[1988,5800268],[1989,5955501],[1990,6278696],[1991,6727693],[1992,6990574],[1993,7195158],[1994,7431162],[1995,7682082],[1996,7949756],[1997,8048834],[1998,8174290],[1999,8431352],[2000,8638858],[2001,8713005],[2002,8807818],[2003,9020431],[2004,9234177],[2005,9452670],[2006,9690222],[2007,9947814],[2008,10211437]],"lifeExpectancy":[[1800,29.5],[1945,29.5],[1950,34.62],[1951,34.69],[1952,34.84],[1953,35],[1954,35.17],[1955,35.35],[1956,35.54],[1957,35.75],[1958,35.96],[1959,36.18],[1960,36.42],[1961,36.66],[1962,36.91],[1963,37.17],[1964,37.45],[1965,37.72],[1966,38],[1967,38.28],[1968,38.56],[1969,38.85],[1970,39.16],[1971,39.49],[1972,39.85],[1973,40.26],[1974,40.69],[1975,41.16],[1976,41.64],[1977,42.12],[1978,42.6],[1979,43.08],[1980,43.54],[1981,43.99],[1982,44.43],[1983,44.87],[1984,45.32],[1985,45.78],[1986,46.25],[1987,46.74],[1988,47.24],[1989,47.75],[1990,48.27],[1991,48.79],[1992,49.28],[1993,49.76],[1994,50.23],[1995,50.69],[1996,51.15],[1997,51.64],[1998,52.15],[1999,52.7],[2000,53.27],[2001,53.86],[2002,54.46],[2003,55.05],[2004,55.64],[2005,56.21],[2006,56.76],[2007,57.31],[2008,57.84],[2009,58.35]]},{"name":"Guinea-Bissau","region":"Sub-Saharan Africa","income":[[1800,345],[1820,345],[1913,366.87],[1950,375.95],[1951,390.83],[1952,405.9],[1953,422.18],[1954,495.74],[1955,464.95],[1956,516.5],[1957,537.35],[1958,540.85],[1959,534.3],[1960,550.27],[1961,574.7],[1962,597.24],[1963,608.93],[1964,659.09],[1965,692.24],[1966,723.48],[1967,752.62],[1968,762.76],[1969,786.65],[1970,809.41],[1971,773.81],[1972,820.22],[1973,818.98],[1974,847.35],[1975,859.11],[1976,837.67],[1977,764.73],[1978,850.21],[1979,852.16],[1980,700.4],[1981,808.75],[1982,838.12],[1983,752.58],[1984,765.49],[1985,789.16],[1986,765.22],[1987,736.42],[1988,747.97],[1989,734.08],[1990,740.35],[1991,759.66],[1992,745.54],[1993,737.76],[1994,739.54],[1995,754.03],[1996,772.64],[1997,796.66],[1998,559.2],[1999,590.7],[2000,632.08],[2001,619.45],[2002,575.7],[2003,560.94],[2004,562.08],[2005,569],[2006,568.44],[2007,557.62],[2008,564.6],[2009,568.94]],"population":[[1800,218167],[1820,218167],[1950,573268],[1951,576948],[1952,580653],[1953,584381],[1954,588133],[1955,591909],[1956,596365],[1957,601095],[1958,606044],[1959,611217],[1960,616682],[1961,622070],[1962,627820],[1963,633939],[1964,610284],[1965,603780],[1966,598111],[1967,601287],[1968,611160],[1969,615749],[1970,620020],[1971,623282],[1972,625361],[1973,633266],[1974,640043],[1975,680919],[1976,732707],[1977,745228],[1978,758113],[1979,771376],[1980,789053],[1981,807257],[1982,825987],[1983,845212],[1984,864949],[1985,885234],[1986,906084],[1987,927524],[1988,949625],[1989,972421],[1990,995991],[1991,1020178],[1992,1050938],[1993,1084327],[1994,1116326],[1995,1143057],[1996,1165914],[1997,1193708],[1998,1221772],[1999,1249889],[2000,1278273],[2001,1305832],[2002,1332459],[2003,1359242],[2004,1386228],[2005,1413446],[2006,1442029],[2007,1472041],[2008,1502442]],"lifeExpectancy":[[1800,29.3],[1945,29.3],[1950,31.97],[1951,32.1],[1952,32.37],[1953,32.63],[1954,32.9],[1955,33.16],[1956,33.43],[1957,33.7],[1958,33.97],[1959,34.24],[1960,34.51],[1961,34.78],[1962,35.06],[1963,35.33],[1964,35.6],[1965,35.86],[1966,36.13],[1967,36.4],[1968,36.67],[1969,36.94],[1970,37.2],[1971,37.46],[1972,37.71],[1973,37.95],[1974,38.2],[1975,38.45],[1976,38.73],[1977,39.04],[1978,39.38],[1979,39.76],[1980,40.17],[1981,40.62],[1982,41.08],[1983,41.56],[1984,42.02],[1985,42.46],[1986,42.84],[1987,43.17],[1988,43.43],[1989,43.65],[1990,43.81],[1991,43.96],[1992,44.1],[1993,44.26],[1994,44.45],[1995,44.66],[1996,44.89],[1997,45.14],[1998,45.38],[1999,45.61],[2000,45.84],[2001,46.05],[2002,46.27],[2003,46.48],[2004,46.71],[2005,46.95],[2006,47.22],[2007,47.51],[2008,47.84],[2009,48.2]]},{"name":"Kenya","region":"Sub-Saharan Africa","income":[[1800,512.93],[1820,512.93],[1913,792.51],[1950,832.27],[1951,986.6],[1952,853.54],[1953,809.44],[1954,878.6],[1955,918.37],[1956,941.46],[1957,944.44],[1958,926.84],[1959,921.34],[1960,928.11],[1961,878.15],[1962,896.97],[1963,912.86],[1964,970.14],[1965,950.16],[1966,1038.15],[1967,1056.74],[1968,1096.54],[1969,1126.71],[1970,1170.44],[1971,1203.44],[1972,1222.36],[1973,1240.76],[1974,1255.49],[1975,1204.84],[1976,1206.85],[1977,1267.61],[1978,1328.72],[1979,1325.06],[1980,1344.17],[1981,1321.86],[1982,1348.23],[1983,1305.72],[1984,1279.51],[1985,1286.56],[1986,1330.65],[1987,1361.94],[1988,1396.42],[1989,1413.7],[1990,1429],[1991,1402.96],[1992,1341.92],[1993,1305.89],[1994,1309.87],[1995,1335.67],[1996,1361.07],[1997,1360.49],[1998,1355.29],[1999,1346.86],[2000,1318.49],[2001,1304.01],[2002,1287.51],[2003,1291.42],[2004,1317.47],[2005,1359],[2006,1419.87],[2007,1492.25],[2008,1488.42],[2009,1493.53]],"population":[[1800,2574000],[1921,2574000],[1931,3041000],[1949,5406000],[1950,6121184],[1951,6289336],[1952,6464046],[1953,6646268],[1954,6836360],[1955,7033999],[1956,7240247],[1957,7454779],[1958,7678739],[1959,7912591],[1960,8156827],[1961,8411966],[1962,8678557],[1963,8957178],[1964,9247518],[1965,9549179],[1966,9863639],[1967,10191512],[1968,10532389],[1969,10887934],[1970,11247182],[1971,11633030],[1972,12044785],[1973,12482054],[1974,12944287],[1975,13433414],[1976,13951436],[1977,14500404],[1978,15079690],[1979,15690251],[1980,16331401],[1981,16988530],[1982,17661452],[1983,18349550],[1984,19051861],[1985,19763285],[1986,20479093],[1987,21198082],[1988,21918633],[1989,22638202],[1990,23358413],[1991,24125055],[1992,25020539],[1993,25813694],[1994,26430941],[1995,27060142],[1996,27670930],[1997,28263827],[1998,28826109],[1999,29383563],[2000,29985839],[2001,30652299],[2002,31386842],[2003,32168495],[2004,32982109],[2005,33829590],[2006,34707817],[2007,35610177],[2008,36529155]],"lifeExpectancy":[[1800,25.5],[1922,25.5],[1927,23.92],[1937,26.37],[1945,28.82],[1950,41.57],[1951,41.72],[1952,42.06],[1953,42.44],[1954,42.87],[1955,43.35],[1956,43.87],[1957,44.44],[1958,45.04],[1959,45.67],[1960,46.32],[1961,46.96],[1962,47.6],[1963,48.21],[1964,48.8],[1965,49.36],[1966,49.92],[1967,50.47],[1968,51.02],[1969,51.59],[1970,52.16],[1971,52.74],[1972,53.31],[1973,53.86],[1974,54.41],[1975,54.95],[1976,55.49],[1977,56.04],[1978,56.6],[1979,57.16],[1980,57.69],[1981,58.17],[1982,58.59],[1983,58.92],[1984,59.17],[1985,59.35],[1986,59.5],[1987,59.63],[1988,59.74],[1989,59.83],[1990,59.84],[1991,59.72],[1992,59.43],[1993,58.95],[1994,58.29],[1995,57.47],[1996,56.52],[1997,55.5],[1998,54.51],[1999,53.58],[2000,52.82],[2001,52.28],[2002,51.98],[2003,51.91],[2004,52.08],[2005,52.46],[2006,53],[2007,53.63],[2008,54.3],[2009,54.95]]},{"name":"Lesotho","region":"Sub-Saharan Africa","income":[[1800,364],[1820,364],[1913,303.98],[1950,282.95],[1951,294.6],[1952,298.85],[1953,306.02],[1954,317.54],[1955,322.51],[1956,329.2],[1957,336],[1958,342.58],[1959,346.22],[1960,364.73],[1961,364.1],[1962,411.8],[1963,446.09],[1964,472.32],[1965,472.45],[1966,459.69],[1967,498.64],[1968,485.57],[1969,481.65],[1970,480.98],[1971,426.31],[1972,496.58],[1973,612.03],[1974,634.32],[1975,569.25],[1976,648.41],[1977,745.37],[1978,839.36],[1979,765.89],[1980,800.51],[1981,788.82],[1982,797.26],[1983,710.85],[1984,752.06],[1985,759.02],[1986,755.05],[1987,773.99],[1988,851.83],[1989,922.62],[1990,940.26],[1991,955.97],[1992,977.49],[1993,991.56],[1994,967.11],[1995,1067.93],[1996,1149.19],[1997,1186.15],[1998,1136.96],[1999,1153.3],[2000,1186.64],[2001,1221.48],[2002,1275.18],[2003,1311.24],[2004,1369.81],[2005,1415],[2006,1479.94],[2007,1488.72],[2008,1527.28],[2009,1521.4]],"population":[[1800,276361],[1820,276361],[1950,726182],[1951,737230],[1952,748747],[1953,760747],[1954,773249],[1955,786192],[1956,799548],[1957,813338],[1958,827697],[1959,842730],[1960,858551],[1961,875282],[1962,893143],[1963,912006],[1964,931826],[1965,952459],[1966,973983],[1967,996380],[1968,1019394],[1969,1043044],[1970,1067136],[1971,1091675],[1972,1116779],[1973,1142460],[1974,1168731],[1975,1195487],[1976,1222874],[1977,1251524],[1978,1281271],[1979,1312161],[1980,1344218],[1981,1377430],[1982,1411807],[1983,1447280],[1984,1483833],[1985,1521382],[1986,1559868],[1987,1599200],[1988,1639294],[1989,1680103],[1990,1721563],[1991,1762702],[1992,1803195],[1993,1843375],[1994,1882531],[1995,1919569],[1996,1953349],[1997,1982823],[1998,2007073],[1999,2025481],[2000,2037961],[2001,2044848],[2002,2046772],[2003,2044530],[2004,2039070],[2005,2031348],[2006,2022331],[2007,2012649],[2008,2002749]],"lifeExpectancy":[[1800,32.8],[1945,32.8],[1950,41.01],[1951,41.29],[1952,41.85],[1953,42.43],[1954,43.02],[1955,43.62],[1956,44.23],[1957,44.84],[1958,45.45],[1959,46.04],[1960,46.58],[1961,47.07],[1962,47.48],[1963,47.81],[1964,48.06],[1965,48.24],[1966,48.38],[1967,48.5],[1968,48.64],[1969,48.81],[1970,49.02],[1971,49.29],[1972,49.62],[1973,49.99],[1974,50.41],[1975,50.87],[1976,51.4],[1977,51.96],[1978,52.56],[1979,53.18],[1980,53.79],[1981,54.37],[1982,54.9],[1983,55.39],[1984,55.84],[1985,56.29],[1986,56.79],[1987,57.36],[1988,58.01],[1989,58.68],[1990,59.31],[1991,59.79],[1992,60.05],[1993,60],[1994,59.62],[1995,58.85],[1996,57.67],[1997,56.13],[1998,54.34],[1999,52.41],[2000,50.48],[2001,48.71],[2002,47.2],[2003,46.03],[2004,45.24],[2005,44.84],[2006,44.78],[2007,44.94],[2008,45.22],[2009,45.56]]},{"name":"Liberia","region":"Sub-Saharan Africa","income":[[1800,544.65],[1820,544.65],[1913,550.92],[1950,553.44],[1951,571.85],[1952,575.57],[1953,583.97],[1954,601.88],[1955,606.52],[1956,613.67],[1957,620.97],[1958,622.59],[1959,641.9],[1960,645.17],[1961,643.26],[1962,634.2],[1963,631.84],[1964,645.9],[1965,638.98],[1966,738.93],[1967,713.6],[1968,726.35],[1969,756.52],[1970,782.61],[1971,797.21],[1972,803.01],[1973,759.51],[1974,791],[1975,654.74],[1976,662.88],[1977,640.32],[1978,647.93],[1979,658.5],[1980,609.85],[1981,606.16],[1982,572.2],[1983,551.96],[1984,531.2],[1985,508.55],[1986,507.83],[1987,506.11],[1988,490.92],[1989,482.01],[1990,556.52],[1991,658.71],[1992,636.62],[1993,626.15],[1994,644.95],[1995,662.2],[1996,658.47],[1997,609.17],[1998,551.37],[1999,529.79],[2000,519.49],[2001,515.95],[2002,531.48],[2003,365.83],[2004,375.69],[2005,383],[2006,396.99],[2007,414.61],[2008,476.2],[2009,474.9]],"population":[[1800,313543],[1820,313543],[1950,823885],[1951,843231],[1952,863308],[1953,884145],[1954,905784],[1955,928269],[1956,951644],[1957,975950],[1958,1001227],[1959,1027507],[1960,1054837],[1961,1083250],[1962,1112796],[1963,1143525],[1964,1175491],[1965,1208749],[1966,1243371],[1967,1279406],[1968,1316907],[1969,1355941],[1970,1396565],[1971,1438780],[1972,1482628],[1973,1528162],[1974,1575442],[1975,1616410],[1976,1659105],[1977,1703617],[1978,1750011],[1979,1798417],[1980,1848979],[1981,1901768],[1982,1956875],[1983,2014375],[1984,2074333],[1985,2136793],[1986,2201806],[1987,2269414],[1988,2339630],[1989,2412315],[1990,2116666],[1991,1816959],[1992,1912974],[1993,1989395],[1994,1973706],[1995,1974588],[1996,2024800],[1997,2200725],[1998,2455238],[1999,2597815],[2000,2693780],[2001,2758041],[2002,2814651],[2003,2809784],[2004,2807259],[2005,2900269],[2006,3042004],[2007,3193942],[2008,3332483]],"lifeExpectancy":[[1800,31.1],[1945,31.1],[1950,35.89],[1951,36.12],[1952,36.59],[1953,37.05],[1954,37.51],[1955,37.97],[1956,38.42],[1957,38.88],[1958,39.33],[1959,39.78],[1960,40.22],[1961,40.66],[1962,41.1],[1963,41.53],[1964,41.95],[1965,42.38],[1966,42.79],[1967,43.21],[1968,43.62],[1969,44.03],[1970,44.44],[1971,44.86],[1972,45.29],[1973,45.73],[1974,46.15],[1975,46.55],[1976,46.9],[1977,47.18],[1978,47.39],[1979,47.53],[1980,47.59],[1981,47.57],[1982,47.52],[1983,47.44],[1984,47.37],[1985,47.35],[1986,47.39],[1987,47.53],[1988,47.76],[1989,48.08],[1990,48.5],[1991,49.01],[1992,49.57],[1993,50.16],[1994,50.77],[1995,51.38],[1996,51.99],[1997,52.61],[1998,53.23],[1999,53.84],[2000,54.44],[2001,55.02],[2002,55.57],[2003,56.09],[2004,56.58],[2005,57.04],[2006,57.48],[2007,57.9],[2008,58.31],[2009,58.71]]},{"name":"Madagascar","region":"Sub-Saharan Africa","income":[[1800,434.14],[1820,434.14],[1913,670.78],[1950,1383.73],[1951,1413.63],[1952,1443.01],[1953,1471.77],[1954,1501.17],[1955,1531.05],[1956,1560.03],[1957,1589.2],[1958,1618.5],[1959,1646.63],[1960,1637.51],[1961,1638.93],[1962,1643.39],[1963,1594.74],[1964,1624.24],[1965,1583.08],[1966,1581.86],[1967,1634.05],[1968,1707.7],[1969,1733.68],[1970,1784.13],[1971,1812.57],[1972,1748.56],[1973,1663.95],[1974,1657.87],[1975,1638.76],[1976,1547.31],[1977,1544.23],[1978,1465.12],[1979,1566.08],[1980,1535.57],[1981,1364.72],[1982,1302.88],[1983,1277.05],[1984,1196.06],[1985,1188.84],[1986,1163.5],[1987,1155.44],[1988,1140.36],[1989,1152.55],[1990,1163.04],[1991,1058.68],[1992,1040.68],[1993,1031.86],[1994,1001.87],[1995,989.14],[1996,980.06],[1997,986.3],[1998,994.3],[1999,1010.14],[2000,1027.09],[2001,1056.21],[2002,894.64],[2003,953.05],[2004,973.59],[2005,988],[2006,1009.65],[2007,1044.09],[2008,1088.44],[2009,1006.9]],"population":[[1820,1683000],[1950,4620437],[1951,4690031],[1952,4762912],[1953,4839248],[1954,4919118],[1955,5002657],[1956,5090058],[1957,5181679],[1958,5277482],[1959,5377583],[1960,5481721],[1961,5590111],[1962,5703324],[1963,5821158],[1964,5943744],[1965,6070004],[1966,6200000],[1967,6334556],[1968,6473179],[1969,6615873],[1970,6765644],[1971,6920494],[1972,7082430],[1973,7250455],[1974,7423573],[1975,7603790],[1976,7805271],[1977,8007166],[1978,8216944],[1979,8442496],[1980,8676821],[1981,8919844],[1982,9171477],[1983,9432079],[1984,9701947],[1985,9981292],[1986,10270192],[1987,10568642],[1988,10876604],[1989,11194241],[1990,11522099],[1991,11860473],[1992,12210395],[1993,12573284],[1994,12949727],[1995,13340359],[1996,13745709],[1997,14165114],[1998,14598047],[1999,15045015],[2000,15506472],[2001,15982563],[2002,16473477],[2003,16979744],[2004,17501871],[2005,18040341],[2006,18595469],[2007,19167654],[2008,19757525]],"lifeExpectancy":[[1800,30.5],[1945,30.5],[1950,35.75],[1951,35.98],[1952,36.45],[1953,36.91],[1954,37.36],[1955,37.8],[1956,38.23],[1957,38.64],[1958,39.05],[1959,39.46],[1960,39.85],[1961,40.25],[1962,40.65],[1963,41.05],[1964,41.45],[1965,41.85],[1966,42.25],[1967,42.65],[1968,43.05],[1969,43.45],[1970,43.84],[1971,44.24],[1972,44.63],[1973,45.02],[1974,45.42],[1975,45.83],[1976,46.27],[1977,46.73],[1978,47.2],[1979,47.68],[1980,48.13],[1981,48.51],[1982,48.8],[1983,49],[1984,49.12],[1985,49.21],[1986,49.32],[1987,49.52],[1988,49.84],[1989,50.28],[1990,50.84],[1991,51.48],[1992,52.15],[1993,52.81],[1994,53.43],[1995,54.01],[1996,54.54],[1997,55.05],[1998,55.54],[1999,56.03],[2000,56.51],[2001,56.99],[2002,57.48],[2003,57.96],[2004,58.45],[2005,58.93],[2006,59.42],[2007,59.89],[2008,60.36],[2009,60.81]]},{"name":"Malawi","region":"Sub-Saharan Africa","income":[[1800,360],[1820,360],[1913,354.6],[1950,352.47],[1951,360.94],[1952,369.17],[1953,377.47],[1954,385.81],[1955,384.81],[1956,408.52],[1957,416.37],[1958,422.15],[1959,427.44],[1960,428.7],[1961,439.6],[1962,427.9],[1963,409.48],[1964,390.22],[1965,431.95],[1966,463.44],[1967,495.51],[1968,476.61],[1969,493.75],[1970,488.72],[1971,544.85],[1972,584.62],[1973,616.28],[1974,638.79],[1975,643.6],[1976,649.7],[1977,663.22],[1978,703.63],[1979,715.76],[1980,700.07],[1981,645.55],[1982,632.8],[1983,640.17],[1984,649.03],[1985,678.85],[1986,656.77],[1987,635.52],[1988,610.94],[1989,605.5],[1990,602.72],[1991,630.14],[1992,563.2],[1993,607.6],[1994,555.37],[1995,653.33],[1996,685.08],[1997,692.28],[1998,696.47],[1999,705.88],[2000,713.78],[2001,667.79],[2002,665.42],[2003,674.88],[2004,691.85],[2005,691],[2006,769.2],[2007,763.3],[2008,818.38],[2009,866.35]],"population":[[1800,737000],[1901,737000],[1911,970000],[1921,1202000],[1926,1293000],[1931,1603000],[1945,2050000],[1950,2816600],[1951,2866038],[1952,2917802],[1953,2971986],[1954,3028691],[1955,3088155],[1956,3151911],[1957,3221238],[1958,3294697],[1959,3370054],[1960,3450444],[1961,3532056],[1962,3628608],[1963,3726394],[1964,3816197],[1965,3914095],[1966,4023000],[1967,4147252],[1968,4263813],[1969,4379269],[1970,4489313],[1971,4606268],[1972,4730997],[1973,4864937],[1974,5030764],[1975,5267679],[1976,5473443],[1977,5637246],[1978,5791837],[1979,5955844],[1980,6129035],[1981,6311339],[1982,6502825],[1983,6702443],[1984,6909279],[1985,7123455],[1986,7391617],[1987,7824747],[1988,8349217],[1989,8843826],[1990,9286655],[1991,9655208],[1992,10014249],[1993,10182205],[1994,9992214],[1995,9912344],[1996,10143562],[1997,10419991],[1998,10697625],[1999,10977362],[2000,11258163],[2001,11539920],[2002,11824495],[2003,12113276],[2004,12407373],[2005,12707464],[2006,13013926],[2007,13327079],[2008,13647273]],"lifeExpectancy":[[1800,30.3],[1945,30.3],[1950,35.96],[1951,36.03],[1952,36.17],[1953,36.32],[1954,36.49],[1955,36.68],[1956,36.89],[1957,37.1],[1958,37.33],[1959,37.56],[1960,37.8],[1961,38.02],[1962,38.24],[1963,38.45],[1964,38.65],[1965,38.87],[1966,39.11],[1967,39.4],[1968,39.74],[1969,40.13],[1970,40.56],[1971,41.01],[1972,41.47],[1973,41.92],[1974,42.36],[1975,42.78],[1976,43.19],[1977,43.59],[1978,44],[1979,44.41],[1980,44.81],[1981,45.2],[1982,45.56],[1983,45.91],[1984,46.25],[1985,46.61],[1986,47.01],[1987,47.48],[1988,48.03],[1989,48.63],[1990,49.28],[1991,49.94],[1992,50.57],[1993,51.14],[1994,51.6],[1995,51.92],[1996,52.04],[1997,51.96],[1998,51.73],[1999,51.38],[2000,50.99],[2001,50.66],[2002,50.46],[2003,50.44],[2004,50.64],[2005,51.06],[2006,51.66],[2007,52.37],[2008,53.12],[2009,53.88]]},{"name":"Mali","region":"Sub-Saharan Africa","income":[[1800,427.43],[1820,427.43],[1913,434.93],[1950,437.95],[1951,445.16],[1952,452.34],[1953,459.88],[1954,466.94],[1955,474.73],[1956,482.42],[1957,490.38],[1958,498.21],[1959,506.63],[1960,510.59],[1961,503.57],[1962,496.17],[1963,518.77],[1964,532.17],[1965,528.5],[1966,539.18],[1967,545.01],[1968,553.24],[1969,538.49],[1970,559.07],[1971,565.59],[1972,581.37],[1973,554.3],[1974,528.3],[1975,587.58],[1976,651.72],[1977,686.4],[1978,659.18],[1979,806.19],[1980,700.86],[1981,666.52],[1982,618.01],[1983,634.54],[1984,651.28],[1985,654.54],[1986,683.76],[1987,684.17],[1988,670.5],[1989,724.84],[1990,716.23],[1991,695.72],[1992,739.01],[1993,706.57],[1994,709.85],[1995,743.17],[1996,757.76],[1997,790.26],[1998,809.92],[1999,844.11],[2000,854.73],[2001,935.08],[2002,951.41],[2003,994.71],[2004,993.12],[2005,1027],[2006,1065.32],[2007,1084.97],[2008,1112.71],[2009,1136.17]],"population":[[1800,1403398],[1820,1403398],[1950,3687654],[1951,3762158],[1952,3838168],[1953,3915714],[1954,3994826],[1955,4075537],[1956,4157879],[1957,4241884],[1958,4327586],[1959,4415019],[1960,4504219],[1961,4595790],[1962,4690372],[1963,4788073],[1964,4889008],[1965,4993293],[1966,5101054],[1967,5212416],[1968,5327515],[1969,5446489],[1970,5569486],[1971,5696656],[1972,5828158],[1973,5964156],[1974,6104825],[1975,6250341],[1976,6400896],[1977,6491649],[1978,6578372],[1979,6672872],[1980,6774767],[1981,6883907],[1982,6998256],[1983,7116320],[1984,7238471],[1985,7365165],[1986,7496855],[1987,7634008],[1988,7777570],[1989,7927623],[1990,8083816],[1991,8247171],[1992,8416215],[1993,8591439],[1994,8774902],[1995,8967132],[1996,9172631],[1997,9384984],[1998,9605719],[1999,9834362],[2000,10072267],[2001,10321053],[2002,10580176],[2003,10848146],[2004,11126144],[2005,11415261],[2006,11716829],[2007,12031795],[2008,12360306]],"lifeExpectancy":[[1800,29.6],[1945,29.6],[1950,35.3],[1951,35.34],[1952,35.44],[1953,35.53],[1954,35.63],[1955,35.72],[1956,35.82],[1957,35.92],[1958,36.01],[1959,36.11],[1960,36.21],[1961,36.3],[1962,36.41],[1963,36.51],[1964,36.62],[1965,36.74],[1966,36.86],[1967,37],[1968,37.16],[1969,37.33],[1970,37.51],[1971,37.71],[1972,37.93],[1973,38.16],[1974,38.4],[1975,38.65],[1976,38.91],[1977,39.18],[1978,39.45],[1979,39.74],[1980,40.03],[1981,40.33],[1982,40.64],[1983,40.96],[1984,41.28],[1985,41.6],[1986,41.91],[1987,42.2],[1988,42.48],[1989,42.74],[1990,42.99],[1991,43.22],[1992,43.46],[1993,43.69],[1994,43.93],[1995,44.18],[1996,44.45],[1997,44.73],[1998,45.02],[1999,45.32],[2000,45.64],[2001,45.96],[2002,46.3],[2003,46.64],[2004,47],[2005,47.35],[2006,47.72],[2007,48.09],[2008,48.46],[2009,48.84]]},{"name":"Mauritania","region":"Sub-Saharan Africa","income":[[1800,374.38],[1820,374.38],[1913,578.45],[1950,702.93],[1951,723.07],[1952,743.12],[1953,763.01],[1954,783.4],[1955,804.2],[1956,825.35],[1957,846.12],[1958,866.47],[1959,887.9],[1960,946.38],[1961,1093.56],[1962,1055.9],[1963,978],[1964,1252.62],[1965,1406.61],[1966,1393.99],[1967,1421.15],[1968,1523.62],[1969,1476.67],[1970,1604.04],[1971,1593.13],[1972,1586.85],[1973,1462.95],[1974,1585.2],[1975,1457.61],[1976,1545.63],[1977,1497.49],[1978,1462.29],[1979,1498.6],[1980,1524.95],[1981,1547.7],[1982,1481.15],[1983,1516.61],[1984,1372.51],[1985,1376.16],[1986,1416.14],[1987,1421.6],[1988,1435.1],[1989,1448.61],[1990,1393.46],[1991,1389.87],[1992,1361.37],[1993,1380.38],[1994,1396.88],[1995,1422.19],[1996,1470.89],[1997,1483.14],[1998,1495.14],[1999,1510.81],[2000,1540.84],[2001,1561.91],[2002,1579.02],[2003,1619.47],[2004,1654.89],[2005,1691],[2006,1840.36],[2007,1815.61],[2008,1838.06],[2009,1775.87]],"population":[[1800,382696],[1820,382696],[1950,1005595],[1951,1013753],[1952,1022556],[1953,1032021],[1954,1042164],[1955,1053003],[1956,1064559],[1957,1076852],[1958,1089905],[1959,1103409],[1960,1117376],[1961,1131821],[1962,1146757],[1963,1162199],[1964,1178277],[1965,1195012],[1966,1212426],[1967,1230542],[1968,1249383],[1969,1269000],[1970,1289420],[1971,1310672],[1972,1332786],[1973,1355793],[1974,1379655],[1975,1404403],[1976,1430069],[1977,1456688],[1978,1485467],[1979,1516462],[1980,1549589],[1981,1584814],[1982,1622136],[1983,1661573],[1984,1703154],[1985,1746923],[1986,1792933],[1987,1841240],[1988,1891894],[1989,1937201],[1990,1984449],[1991,2041306],[1992,2119465],[1993,2205240],[1994,2279436],[1995,2341749],[1996,2388865],[1997,2444741],[1998,2515309],[1999,2590516],[2000,2667859],[2001,2747312],[2002,2828858],[2003,2912584],[2004,2998563],[2005,3086859],[2006,3177388],[2007,3270065],[2008,3364940]],"lifeExpectancy":[[1800,32],[1945,32],[1950,41.32],[1951,41.49],[1952,41.83],[1953,42.17],[1954,42.5],[1955,42.84],[1956,43.17],[1957,43.5],[1958,43.83],[1959,44.16],[1960,44.48],[1961,44.8],[1962,45.12],[1963,45.44],[1964,45.75],[1965,46.07],[1966,46.38],[1967,46.68],[1968,46.99],[1969,47.31],[1970,47.65],[1971,48.02],[1972,48.42],[1973,48.86],[1974,49.34],[1975,49.86],[1976,50.41],[1977,50.98],[1978,51.56],[1979,52.13],[1980,52.68],[1981,53.18],[1982,53.64],[1983,54.05],[1984,54.4],[1985,54.7],[1986,54.95],[1987,55.16],[1988,55.34],[1989,55.51],[1990,55.66],[1991,55.8],[1992,55.93],[1993,56.04],[1994,56.15],[1995,56.25],[1996,56.33],[1997,56.4],[1998,56.45],[1999,56.48],[2000,56.5],[2001,56.49],[2002,56.47],[2003,56.44],[2004,56.42],[2005,56.42],[2006,56.47],[2007,56.57],[2008,56.75],[2009,56.99]]},{"name":"Mauritius","region":"Sub-Saharan Africa","income":[[1800,799.61],[1820,799.61],[1913,1235.45],[1950,1937.84],[1951,1977.13],[1952,1967.96],[1953,1969.44],[1954,2013.47],[1955,2013.15],[1956,2018.86],[1957,2034.04],[1958,2031.19],[1959,2089.8],[1960,2161.31],[1961,2583.15],[1962,2529.07],[1963,2824.71],[1964,2555.21],[1965,2570.02],[1966,2419.02],[1967,2475.39],[1968,2262.62],[1969,2339.48],[1970,2292.46],[1971,2371.81],[1972,2575.48],[1973,2864.23],[1974,3129.06],[1975,3089.22],[1976,3542.22],[1977,3710.98],[1978,3785.22],[1979,3847.18],[1980,3398.74],[1981,3541.69],[1982,3688.04],[1983,3664.7],[1984,3799.59],[1985,4026.39],[1986,4386.07],[1987,4783.59],[1988,5062.21],[1989,5233.98],[1990,5547.92],[1991,5841.66],[1992,6058.25],[1993,6398.27],[1994,6617.21],[1995,6783.9],[1996,7068.83],[1997,7425.71],[1998,7804.35],[1999,8149.82],[2000,8290.95],[2001,8801.58],[2002,9021.82],[2003,9564.7],[2004,9931.83],[2005,10155],[2006,10469.25],[2007,10967.13],[2008,11330.3],[2009,11411.53]],"population":[[1850,181000],[1861,320000],[1871,330000],[1881,360000],[1891,371000],[1901,371000],[1911,369000],[1921,376000],[1931,393000],[1944,419000],[1950,481270],[1951,498593],[1952,516556],[1953,536057],[1954,553977],[1955,571669],[1956,591764],[1957,609816],[1958,627660],[1959,645313],[1960,663229],[1961,681284],[1962,701016],[1963,715140],[1964,736182],[1965,755528],[1966,774160],[1967,789309],[1968,804177],[1969,816027],[1970,829511],[1971,841079],[1972,851334],[1973,861239],[1974,873292],[1975,885461],[1976,897811],[1977,913025],[1978,929367],[1979,946640],[1980,963701],[1981,979050],[1982,992040],[1983,1002175],[1984,1012005],[1985,1021710],[1986,1032333],[1987,1042663],[1988,1052336],[1989,1062525],[1990,1073507],[1991,1084777],[1992,1096202],[1993,1107490],[1994,1117988],[1995,1128608],[1996,1139491],[1997,1149818],[1998,1159654],[1999,1169325],[2000,1179368],[2001,1189825],[2002,1200206],[2003,1210447],[2004,1220481],[2005,1230602],[2006,1240827],[2007,1250882],[2008,1260781]],"lifeExpectancy":[[1800,31.2],[1924,31.22],[1934,33.87],[1941,36.17],[1944,33.29],[1947,38.62],[1950,46.86],[1951,48.01],[1952,50.19],[1953,52.13],[1954,53.85],[1955,55.34],[1956,56.6],[1957,57.64],[1958,58.48],[1959,59.13],[1960,59.63],[1961,60],[1962,60.29],[1963,60.53],[1964,60.75],[1965,60.98],[1966,61.21],[1967,61.45],[1968,61.69],[1969,61.94],[1970,62.2],[1971,62.49],[1972,62.81],[1973,63.15],[1974,63.52],[1975,63.91],[1976,64.3],[1977,64.69],[1978,65.07],[1979,65.45],[1980,65.82],[1981,66.19],[1982,66.58],[1983,66.98],[1984,67.39],[1985,67.8],[1986,68.17],[1987,68.51],[1988,68.8],[1989,69.04],[1990,69.24],[1991,69.41],[1992,69.57],[1993,69.74],[1994,69.93],[1995,70.14],[1996,70.36],[1997,70.6],[1998,70.85],[1999,71.09],[2000,71.32],[2001,71.52],[2002,71.7],[2003,71.85],[2004,71.96],[2005,72.04],[2006,72.08],[2007,72.1],[2008,72.1],[2009,72.1]]},{"name":"Mayotte","region":"Sub-Saharan Africa","income":[[2005,9617.82]],"population":[[1800,8219],[1820,8219],[1950,21597],[1951,22099],[1952,22620],[1953,23161],[1954,23723],[1955,24307],[1956,24913],[1957,25543],[1958,26197],[1959,26876],[1960,27579],[1961,28308],[1962,29065],[1963,29849],[1964,30663],[1965,31507],[1966,32383],[1967,33338],[1968,34349],[1969,35403],[1970,36502],[1971,37648],[1972,38842],[1973,40089],[1974,41390],[1975,42747],[1976,44164],[1977,45644],[1978,47189],[1979,49517],[1980,51995],[1981,54629],[1982,57431],[1983,60414],[1984,63594],[1985,66849],[1986,70694],[1987,74877],[1988,79415],[1989,84326],[1990,89629],[1991,95267],[1992,101167],[1993,107320],[1994,113713],[1995,120330],[1996,127146],[1997,134133],[1998,141271],[1999,148538],[2000,155911],[2001,163366],[2002,170879],[2003,178437],[2004,186026],[2005,193633],[2006,201234],[2007,208807],[2008,216334]],"lifeExpectancy":[[1950,51.48],[1951,51.7],[1952,52.13],[1953,52.58],[1954,53.03],[1955,53.5],[1956,53.97],[1957,54.46],[1958,54.95],[1959,55.45],[1960,55.96],[1961,56.47],[1962,57],[1963,57.53],[1964,58.07],[1965,58.64],[1966,59.24],[1967,59.88],[1968,60.56],[1969,61.27],[1970,61.99],[1971,62.71],[1972,63.4],[1973,64.07],[1974,64.69],[1975,65.28],[1976,65.84],[1977,66.4],[1978,66.96],[1979,67.52],[1980,68.07],[1981,68.61],[1982,69.11],[1983,69.58],[1984,70.02],[1985,70.42],[1986,70.81],[1987,71.18],[1988,71.56],[1989,71.94],[1990,72.31],[1991,72.67],[1992,73.01],[1993,73.31],[1994,73.58],[1995,73.82],[1996,74.02],[1997,74.21],[1998,74.38],[1999,74.54],[2000,74.69],[2001,74.84],[2002,74.99],[2003,75.14],[2004,75.28],[2005,75.42],[2006,75.57],[2007,75.71],[2008,75.85],[2009,75.99]]},{"name":"Mozambique","region":"Sub-Saharan Africa","income":[[1800,358],[1820,358],[1913,422.15],[1950,450.75],[1951,459.52],[1952,468.53],[1953,476.86],[1954,479.86],[1955,500.62],[1956,494.02],[1957,495.59],[1958,509.18],[1959,526.05],[1960,527.87],[1961,531.89],[1962,556.69],[1963,525.45],[1964,536.63],[1965,537.25],[1966,542.48],[1967,566.67],[1968,615.9],[1969,673.31],[1970,693.12],[1971,722.14],[1972,724.92],[1973,744.86],[1974,669.69],[1975,558.21],[1976,514.84],[1977,502.32],[1978,491.17],[1979,483.07],[1980,485.37],[1981,483.81],[1982,462.21],[1983,422.85],[1984,406.6],[1985,366.02],[1986,369.16],[1987,389.88],[1988,424.48],[1989,443.13],[1990,443.24],[1991,455.44],[1992,410.9],[1993,430.19],[1994,428.72],[1995,419.87],[1996,435.93],[1997,472.35],[1998,519.32],[1999,545.8],[2000,542.81],[2001,601.17],[2002,633.62],[2003,671.77],[2004,710.42],[2005,743],[2006,774.48],[2007,814.58],[2008,852.43],[2009,888.65]],"population":[[1820,2096000],[1950,6250443],[1951,6345838],[1952,6446316],[1953,6552276],[1954,6663941],[1955,6781616],[1956,6906364],[1957,7038035],[1958,7176661],[1959,7321327],[1960,7472230],[1961,7627642],[1962,7788944],[1963,7957010],[1964,8127242],[1965,8301446],[1966,8486381],[1967,8680909],[1968,8883626],[1969,9092797],[1970,9304375],[1971,9539059],[1972,9809596],[1973,10087915],[1974,10370281],[1975,10432604],[1976,10769649],[1977,11127868],[1978,11466483],[1979,11828029],[1980,12102619],[1981,12363066],[1982,12587223],[1983,12772878],[1984,12923005],[1985,13062589],[1986,13142107],[1987,12891952],[1988,12517962],[1989,12474404],[1990,12655732],[1991,12920197],[1992,13160731],[1993,13664085],[1994,14740072],[1995,15697711],[1996,16192388],[1997,16603334],[1998,17003681],[1999,17392597],[2000,17768457],[2001,18129398],[2002,18473780],[2003,18800908],[2004,19111633],[2005,19406703],[2006,19686505],[2007,19951656],[2008,20203186]],"lifeExpectancy":[[1800,30.28],[1950,30.28],[1951,30.53],[1952,31.04],[1953,31.54],[1954,32.04],[1955,32.55],[1956,33.05],[1957,33.55],[1958,34.05],[1959,34.54],[1960,35.02],[1961,35.48],[1962,35.93],[1963,36.35],[1964,36.76],[1965,37.16],[1966,37.56],[1967,37.96],[1968,38.37],[1969,38.79],[1970,39.23],[1971,39.69],[1972,40.17],[1973,40.66],[1974,41.14],[1975,41.58],[1976,41.98],[1977,42.3],[1978,42.54],[1979,42.71],[1980,42.8],[1981,42.83],[1982,42.81],[1983,42.78],[1984,42.74],[1985,42.74],[1986,42.76],[1987,42.84],[1988,42.96],[1989,43.14],[1990,43.41],[1991,43.77],[1992,44.22],[1993,44.74],[1994,45.31],[1995,45.89],[1996,46.42],[1997,46.88],[1998,47.25],[1999,47.5],[2000,47.65],[2001,47.7],[2002,47.69],[2003,47.67],[2004,47.65],[2005,47.66],[2006,47.71],[2007,47.8],[2008,47.94],[2009,48.13]]},{"name":"Namibia","region":"Sub-Saharan Africa","income":[[1800,350],[1820,350],[1913,1382.86],[1950,2388.81],[1951,2406.47],[1952,2423.78],[1953,2458.45],[1954,2535.28],[1955,2555.54],[1956,2587.28],[1957,2621.45],[1958,2628.16],[1959,2711.34],[1960,2893.49],[1961,2852.45],[1962,3173.22],[1963,3402.72],[1964,3855.43],[1965,4010.17],[1966,4057.53],[1967,3793.69],[1968,3726.62],[1969,3756.41],[1970,3673.78],[1971,3665.84],[1972,3746.08],[1973,3762.12],[1974,3787.96],[1975,3687.59],[1976,3748.13],[1977,3876.49],[1978,4046.23],[1979,4095.71],[1980,4167.1],[1981,4231.42],[1982,4191.1],[1983,3956.89],[1984,3789.58],[1985,3696.11],[1986,3698.87],[1987,3693.73],[1988,3624.19],[1989,3719.25],[1990,3472.4],[1991,3568.87],[1992,3804.54],[1993,3626.94],[1994,3768.68],[1995,3823.11],[1996,3836.63],[1997,3899.52],[1998,3939.06],[1999,3989.97],[2000,4022.88],[2001,4023.14],[2002,4072.32],[2003,4169.68],[2004,4399.55],[2005,4547],[2006,4783.15],[2007,4956.93],[2008,5029.66],[2009,4952.26]],"population":[[1800,229000],[1921,229000],[1946,362000],[1950,463729],[1951,474595],[1952,485831],[1953,497453],[1954,509470],[1955,521903],[1956,534767],[1957,548080],[1958,561854],[1959,576077],[1960,590731],[1961,605831],[1962,621392],[1963,637428],[1964,653950],[1965,670981],[1966,688539],[1967,706640],[1968,725304],[1969,744618],[1970,764683],[1971,792629],[1972,821782],[1973,851258],[1974,882005],[1975,915325],[1976,950488],[1977,977026],[1978,997913],[1979,1027780],[1980,1058021],[1981,1074401],[1982,1099010],[1983,1134107],[1984,1169268],[1985,1203934],[1986,1240171],[1987,1278184],[1988,1332970],[1989,1409105],[1990,1471314],[1991,1513139],[1992,1554253],[1993,1597752],[1994,1642093],[1995,1686700],[1996,1731210],[1997,1774766],[1998,1816763],[1999,1858172],[2000,1905659],[2001,1947326],[2002,1972153],[2003,1993482],[2004,2014026],[2005,2030692],[2006,2044147],[2007,2055080],[2008,2063927]],"lifeExpectancy":[[1800,32.4],[1940,32.4],[1950,40.25],[1951,40.63],[1952,41.38],[1953,42.11],[1954,42.83],[1955,43.54],[1956,44.24],[1957,44.92],[1958,45.59],[1959,46.25],[1960,46.89],[1961,47.51],[1962,48.11],[1963,48.7],[1964,49.27],[1965,49.83],[1966,50.39],[1967,50.93],[1968,51.48],[1969,52.02],[1970,52.56],[1971,53.09],[1972,53.62],[1973,54.15],[1974,54.67],[1975,55.19],[1976,55.72],[1977,56.26],[1978,56.8],[1979,57.34],[1980,57.88],[1981,58.39],[1982,58.87],[1983,59.31],[1984,59.72],[1985,60.11],[1986,60.5],[1987,60.92],[1988,61.35],[1989,61.78],[1990,62.19],[1991,62.56],[1992,62.84],[1993,63.01],[1994,63.03],[1995,62.85],[1996,62.4],[1997,61.7],[1998,60.79],[1999,59.77],[2000,58.78],[2001,58.01],[2002,57.58],[2003,57.55],[2004,57.92],[2005,58.61],[2006,59.49],[2007,60.39],[2008,61.15],[2009,61.72]]},{"name":"Niger","region":"Sub-Saharan Africa","income":[[1800,371.26],[1820,371.26],[1913,573.63],[1950,732.21],[1951,747.18],[1952,761.88],[1953,776.29],[1954,791.06],[1955,806.11],[1956,820.73],[1957,835.52],[1958,850.43],[1959,865.4],[1960,902.91],[1961,921.45],[1962,997.77],[1963,1073.59],[1964,1053.89],[1965,1109.42],[1966,1072.44],[1967,1054.38],[1968,1040.13],[1969,987.35],[1970,995.55],[1971,1028.97],[1972,954.21],[1973,774.24],[1974,822.83],[1975,781.86],[1976,768.89],[1977,808.9],[1978,895.6],[1979,936.37],[1980,957.49],[1981,944.67],[1982,909.72],[1983,870.32],[1984,704.61],[1985,698.53],[1986,711.64],[1987,668.3],[1988,687.39],[1989,670.19],[1990,640.6],[1991,638.96],[1992,581.18],[1993,573.05],[1994,579.26],[1995,577.48],[1996,580.29],[1997,580.31],[1998,623.34],[1999,602.36],[2000,577.19],[2001,600.62],[2002,601.07],[2003,610.12],[2004,587.8],[2005,613],[2006,629.09],[2007,631.21],[2008,669.12],[2009,643.39]],"population":[[1800,1244861],[1820,1244861],[1950,3271073],[1951,3324164],[1952,3379468],[1953,3437066],[1954,3497045],[1955,3559494],[1956,3624507],[1957,3692184],[1958,3762630],[1959,3835954],[1960,3912663],[1961,3992502],[1962,4076008],[1963,4162926],[1964,4252122],[1965,4343664],[1966,4437620],[1967,4534062],[1968,4633063],[1969,4735173],[1970,4840501],[1971,4948667],[1972,5060262],[1973,5175408],[1974,5294763],[1975,5419038],[1976,5547894],[1977,5682086],[1978,5821985],[1979,5967481],[1980,6118518],[1981,6275098],[1982,6437188],[1983,6604789],[1984,6777992],[1985,6956968],[1986,7141829],[1987,7332638],[1988,7529666],[1989,7733615],[1990,7945137],[1991,8164668],[1992,8392818],[1993,8631131],[1994,8880037],[1995,9139044],[1996,9404073],[1997,9666252],[1998,9935490],[1999,10220540],[2000,10516111],[2001,10823004],[2002,11140655],[2003,11469579],[2004,11810183],[2005,12162856],[2006,12525094],[2007,12894865],[2008,13272679]],"lifeExpectancy":[[1800,30.8],[1945,30.8],[1950,37.1],[1951,37.12],[1952,37.16],[1953,37.21],[1954,37.26],[1955,37.3],[1956,37.35],[1957,37.4],[1958,37.44],[1959,37.49],[1960,37.54],[1961,37.59],[1962,37.64],[1963,37.68],[1964,37.74],[1965,37.79],[1966,37.85],[1967,37.91],[1968,37.98],[1969,38.05],[1970,38.14],[1971,38.23],[1972,38.33],[1973,38.44],[1974,38.56],[1975,38.68],[1976,38.82],[1977,38.96],[1978,39.1],[1979,39.26],[1980,39.42],[1981,39.58],[1982,39.76],[1983,39.94],[1984,40.13],[1985,40.34],[1986,40.56],[1987,40.79],[1988,41.05],[1989,41.32],[1990,41.62],[1991,41.95],[1992,42.29],[1993,42.67],[1994,43.08],[1995,43.52],[1996,44.01],[1997,44.55],[1998,45.14],[1999,45.76],[2000,46.41],[2001,47.08],[2002,47.75],[2003,48.41],[2004,49.05],[2005,49.67],[2006,50.26],[2007,50.84],[2008,51.4],[2009,51.95]]},{"name":"Nigeria","region":"Sub-Saharan Africa","income":[[1800,576.38],[1820,576.38],[1913,890.54],[1950,974.02],[1951,1026.05],[1952,1077.28],[1953,1080.04],[1954,1132.34],[1955,1134.59],[1956,1082.52],[1957,1100.59],[1958,1062.67],[1959,1083.06],[1960,1104.93],[1961,1115.22],[1962,1150.93],[1963,1228.98],[1964,1251.08],[1965,1303.64],[1966,1231.2],[1967,1014.51],[1968,978.68],[1969,1210.33],[1970,1542.25],[1971,1679.52],[1972,1698.39],[1973,1796.08],[1974,1947.97],[1975,1833.21],[1976,1971.99],[1977,1981.95],[1978,1807.02],[1979,1870.34],[1980,1843.34],[1981,1641.37],[1982,1576.97],[1983,1448.42],[1984,1358.55],[1985,1439.69],[1986,1434.08],[1987,1385.03],[1988,1481.38],[1989,1534.61],[1990,1571.11],[1991,1621.23],[1992,1619.85],[1993,1612.47],[1994,1561.22],[1995,1561.31],[1996,1619.42],[1997,1624.94],[1998,1613.59],[1999,1590.3],[2000,1619.12],[2001,1629.84],[2002,1615.29],[2003,1746.05],[2004,1807.34],[2005,1892],[2006,1955.68],[2007,2036.03],[2008,2100.11],[2009,2158.98]],"population":[[1800,12100855],[1820,12100855],[1921,18631000],[1931,19158000],[1950,31796939],[1951,32448689],[1952,33119096],[1953,33808763],[1954,34626706],[1955,35458978],[1956,36306207],[1957,37173340],[1958,38062768],[1959,38976103],[1960,39914593],[1961,40879339],[1962,41871351],[1963,42891491],[1964,43940734],[1965,45020052],[1966,46134375],[1967,47287752],[1968,48481074],[1969,49719289],[1970,51027516],[1971,52370604],[1972,53740085],[1973,55179709],[1974,56775644],[1975,58522112],[1976,60324738],[1977,62209173],[1978,64203864],[1979,66319068],[1980,68550274],[1981,70815282],[1982,73039376],[1983,74154971],[1984,75526667],[1985,77573154],[1986,79345497],[1987,81551520],[1988,83815330],[1989,86135468],[1990,88510354],[1991,90920655],[1992,93364244],[1993,95855030],[1994,98388477],[1995,100960105],[1996,103567064],[1997,106207839],[1998,108880275],[1999,111580397],[2000,114306700],[2001,117074880],[2002,119901274],[2003,122790463],[2004,125744458],[2005,128765768],[2006,131859731],[2007,135031164],[2008,138283240]],"lifeExpectancy":[[1800,30.4],[1945,30.4],[1950,35.59],[1951,35.7],[1952,35.92],[1953,36.14],[1954,36.38],[1955,36.62],[1956,36.86],[1957,37.11],[1958,37.37],[1959,37.63],[1960,37.89],[1961,38.14],[1962,38.39],[1963,38.63],[1964,38.87],[1965,39.1],[1966,39.33],[1967,39.56],[1968,39.8],[1969,40.07],[1970,40.37],[1971,40.74],[1972,41.17],[1973,41.67],[1974,42.22],[1975,42.78],[1976,43.32],[1977,43.81],[1978,44.22],[1979,44.54],[1980,44.76],[1981,44.88],[1982,44.93],[1983,44.95],[1984,44.93],[1985,44.89],[1986,44.83],[1987,44.76],[1988,44.69],[1989,44.61],[1990,44.55],[1991,44.51],[1992,44.5],[1993,44.53],[1994,44.59],[1995,44.7],[1996,44.86],[1997,45.07],[1998,45.32],[1999,45.6],[2000,45.9],[2001,46.2],[2002,46.5],[2003,46.77],[2004,47.03],[2005,47.27],[2006,47.49],[2007,47.71],[2008,47.93],[2009,48.17]]},{"name":"Reunion","region":"Sub-Saharan Africa","income":[[1800,692.33],[1820,692.33],[1913,1069.7],[1950,2637.69],[1951,2710.19],[1952,2718.89],[1953,2740.7],[1954,2801.73],[1955,2772.53],[1956,2781.87],[1957,2769.45],[1958,2764.12],[1959,2840.76],[1960,2969.28],[1961,3033.87],[1962,3173.72],[1963,3307.58],[1964,3469.5],[1965,3717.11],[1966,3845.99],[1967,4021.18],[1968,4202.49],[1969,4496.76],[1970,4591.19],[1971,4605.39],[1972,5047.66],[1973,5004.19],[1974,5231.8],[1975,5066.54],[1976,4457.05],[1977,4319.8],[1978,4614.38],[1979,4793.06],[1980,4887.45],[1981,4956.25],[1982,5267.22],[1983,5467.59],[1984,5428.2],[1985,5396.09],[1986,5363.43],[1987,5303.38],[1988,5508.86],[1989,5560.26],[1990,5980.27],[1991,6225.76],[1992,6101.26],[1993,5980.36],[1994,5863.97],[1995,5752.28],[1996,5939.19],[1997,6071.94],[1998,6037.73],[1999,6058.56],[2000,6084.03],[2001,6112.28],[2002,6316.17],[2003,6529.84],[2004,6796.21],[2005,7077.24],[2006,7375.61],[2007,7670.12]],"population":[[1800,92744],[1820,92744],[1950,243700],[1951,250700],[1952,257700],[1953,265500],[1954,274400],[1955,286100],[1956,296000],[1957,308700],[1958,317900],[1959,327200],[1960,337500],[1961,347900],[1962,358900],[1963,371000],[1964,383700],[1965,392900],[1966,403300],[1967,414024],[1968,425070],[1969,435564],[1970,444806],[1971,453345],[1972,461633],[1973,469368],[1974,475364],[1975,481100],[1976,486749],[1977,492095],[1978,497039],[1979,501979],[1980,507015],[1981,511650],[1982,517810],[1983,523170],[1984,532769],[1985,541776],[1986,551188],[1987,562035],[1988,573509],[1989,585202],[1990,597308],[1991,609686],[1992,622191],[1993,634769],[1994,647368],[1995,659938],[1996,672433],[1997,684810],[1998,697035],[1999,709083],[2000,720934],[2001,732570],[2002,743981],[2003,755171],[2004,766153],[2005,776948],[2006,787584],[2007,798094],[2008,808506]],"lifeExpectancy":[[1950,51.83],[1951,52.05],[1952,52.49],[1953,52.94],[1954,53.4],[1955,53.87],[1956,54.34],[1957,54.83],[1958,55.32],[1959,55.82],[1960,56.33],[1961,56.84],[1962,57.36],[1963,57.89],[1964,58.43],[1965,59],[1966,59.61],[1967,60.26],[1968,60.94],[1969,61.66],[1970,62.4],[1971,63.13],[1972,63.83],[1973,64.5],[1974,65.13],[1975,65.72],[1976,66.29],[1977,66.84],[1978,67.4],[1979,67.96],[1980,68.51],[1981,69.06],[1982,69.57],[1983,70.06],[1984,70.51],[1985,70.94],[1986,71.35],[1987,71.75],[1988,72.14],[1989,72.53],[1990,72.9],[1991,73.26],[1992,73.58],[1993,73.86],[1994,74.11],[1995,74.33],[1996,74.53],[1997,74.71],[1998,74.89],[1999,75.08],[2000,75.27],[2001,75.46],[2002,75.64],[2003,75.81],[2004,75.97],[2005,76.12],[2006,76.26],[2007,76.39],[2008,76.52],[2009,76.64]]},{"name":"Rwanda","region":"Sub-Saharan Africa","income":[[1800,369],[1820,369],[1913,438.93],[1950,470.31],[1951,487.82],[1952,493.32],[1953,502.1],[1954,519.56],[1955,524.69],[1956,532.76],[1957,540.29],[1958,542.88],[1959,560.7],[1960,564.22],[1961,537.5],[1962,597.47],[1963,525.43],[1964,451.85],[1965,471.62],[1966,490.59],[1967,510.96],[1968,531.62],[1969,572.58],[1970,616.38],[1971,605.84],[1972,590.58],[1973,591.25],[1974,602.09],[1975,692.82],[1976,658.96],[1977,670.08],[1978,711.13],[1979,753.51],[1980,818.71],[1981,843.68],[1982,881.57],[1983,902.56],[1984,840.84],[1985,856],[1986,879.87],[1987,847.99],[1988,793.55],[1989,786.33],[1990,760.74],[1991,708.92],[1992,737.07],[1993,660.82],[1994,382.44],[1995,581.39],[1996,622.92],[1997,589.94],[1998,643.74],[1999,677.54],[2000,704.04],[2001,734.98],[2002,785.65],[2003,774.07],[2004,785.77],[2005,813],[2006,866.95],[2007,895.97],[2008,975.75],[2009,995.27]],"population":[[1800,928368],[1820,928368],[1950,2439435],[1951,2485919],[1952,2534927],[1953,2586573],[1954,2640978],[1955,2698272],[1956,2758591],[1957,2822082],[1958,2888902],[1959,2958761],[1960,3031804],[1961,3045908],[1962,3051242],[1963,3129004],[1964,3183993],[1965,3264640],[1966,3358202],[1967,3451079],[1968,3547932],[1969,3656796],[1970,3769171],[1971,3880225],[1972,3992121],[1973,4109838],[1974,4226380],[1975,4356863],[1976,4502352],[1977,4657072],[1978,4818992],[1979,4975833],[1980,5138689],[1981,5310271],[1982,5507565],[1983,5701104],[1984,5860320],[1985,6009833],[1986,6166230],[1987,6349365],[1988,6552179],[1989,6745103],[1990,6923738],[1991,7110348],[1992,7290203],[1993,7456502],[1994,6417511],[1995,5706501],[1996,6002451],[1997,7212583],[1998,7197680],[1999,7358932],[2000,7507056],[2001,7673062],[2002,7852401],[2003,8042082],[2004,8238673],[2005,8440820],[2006,8648248],[2007,8860588],[2008,9077425]],"lifeExpectancy":[[1800,31.8],[1930,31.8],[1950,39.41],[1951,39.56],[1952,39.85],[1953,40.15],[1954,40.45],[1955,40.75],[1956,41.06],[1957,41.36],[1958,41.67],[1959,41.98],[1960,42.28],[1961,42.58],[1962,42.87],[1963,43.14],[1964,43.4],[1965,43.63],[1966,43.83],[1967,44.01],[1968,44.17],[1969,44.3],[1970,44.4],[1971,44.49],[1972,44.55],[1973,44.61],[1974,44.67],[1975,44.75],[1976,44.89],[1977,45.08],[1978,45.31],[1979,45.58],[1980,45.88],[1981,46.26],[1982,46.67],[1983,47],[1984,47.15],[1985,47.38],[1986,47.61],[1987,47.84],[1988,48.07],[1989,48.3],[1990,48.53],[1991,48.76],[1992,48.99],[1993,26.39],[1994,27.09],[1997,35.33],[1998,38.41],[1999,41.04],[2000,43.1],[2001,44.6],[2002,45.77],[2003,46.77],[2004,47.65],[2005,48.42],[2006,49.11],[2007,49.71],[2008,50.23],[2009,50.69]]},{"name":"Sao Tome and Principe","region":"Sub-Saharan Africa","income":[[1800,674.7],[1820,674.7],[1913,818.38],[1950,883.72],[1951,880.98],[1952,879.58],[1953,879.74],[1954,915.56],[1955,822.77],[1956,868.21],[1957,860.74],[1958,943.06],[1959,844.46],[1960,934.47],[1961,1004.73],[1962,1071.55],[1963,1136.31],[1964,1197.78],[1965,1254.59],[1966,1327.9],[1967,1384.84],[1968,1440.24],[1969,1496.12],[1970,1550.8],[1971,1597.29],[1972,1532.99],[1973,1459.78],[1974,1460.35],[1975,1531.24],[1976,1612.48],[1977,1737.56],[1978,1796.06],[1979,1947.86],[1980,2164.3],[1981,1530.25],[1982,1890.22],[1983,1687.83],[1984,1513.8],[1985,1601.21],[1986,1583.52],[1987,1516.53],[1988,1508.15],[1989,1498.63],[1990,1497],[1991,1458.63],[1992,1428.78],[1993,1406.6],[1994,1399.62],[1995,1382.99],[1996,1365.18],[1997,1339.08],[1998,1327.1],[1999,1321.09],[2000,1320.58],[2001,1331.58],[2002,1353.09],[2003,1396.44],[2004,1435.8],[2005,1460],[2006,1532.32],[2007,1598.38],[2008,1664.3],[2009,1703.43]],"population":[[1800,22731],[1820,22731],[1950,59730],[1951,59916],[1952,60011],[1953,60000],[1954,60006],[1955,60227],[1956,60797],[1957,61325],[1958,61683],[1959,62507],[1960,63403],[1961,64330],[1962,65345],[1963,66361],[1964,67452],[1965,68691],[1966,69766],[1967,70787],[1968,71804],[1969,72722],[1970,73631],[1971,74860],[1972,76595],[1973,78222],[1974,79667],[1975,81607],[1976,84176],[1977,86796],[1978,89367],[1979,91804],[1980,94071],[1981,96443],[1982,98593],[1983,100842],[1984,103184],[1985,105624],[1986,108165],[1987,110812],[1988,113570],[1989,116448],[1990,119453],[1991,122596],[1992,125911],[1993,129428],[1994,133152],[1995,137090],[1996,141246],[1997,145608],[1998,150169],[1999,154929],[2000,159883],[2001,165034],[2002,170372],[2003,175883],[2004,181565],[2005,187410],[2006,193413],[2007,199579],[2008,205901]],"lifeExpectancy":[[1950,45.62],[1951,45.82],[1952,46.23],[1953,46.67],[1954,47.14],[1955,47.63],[1956,48.15],[1957,48.69],[1958,49.25],[1959,49.83],[1960,50.42],[1961,51],[1962,51.59],[1963,52.15],[1964,52.7],[1965,53.23],[1966,53.72],[1967,54.19],[1968,54.64],[1969,55.07],[1970,55.49],[1971,55.9],[1972,56.31],[1973,56.72],[1974,57.13],[1975,57.54],[1976,57.95],[1977,58.35],[1978,58.75],[1979,59.14],[1980,59.51],[1981,59.86],[1982,60.2],[1983,60.51],[1984,60.82],[1985,61.1],[1986,61.37],[1987,61.63],[1988,61.87],[1989,62.09],[1990,62.3],[1991,62.48],[1992,62.64],[1993,62.78],[1994,62.91],[1995,63.02],[1996,63.14],[1997,63.27],[1998,63.42],[1999,63.59],[2000,63.78],[2001,63.99],[2002,64.21],[2003,64.45],[2004,64.69],[2005,64.92],[2006,65.16],[2007,65.4],[2008,65.63],[2009,65.86]]},{"name":"Senegal","region":"Sub-Saharan Africa","income":[[1800,420.73],[1820,420.73],[1913,650.06],[1950,1401],[1951,1426.07],[1952,1450.36],[1953,1473.8],[1954,1497.64],[1955,1521.72],[1956,1544.67],[1957,1567.65],[1958,1590.37],[1959,1611.7],[1960,1607.71],[1961,1641.12],[1962,1654.99],[1963,1677],[1964,1668.63],[1965,1681.15],[1966,1678.35],[1967,1612.4],[1968,1668.22],[1969,1515.4],[1970,1597.18],[1971,1547.21],[1972,1597.71],[1973,1463.61],[1974,1479.55],[1975,1553.67],[1976,1655.33],[1977,1561.77],[1978,1454.39],[1979,1508.72],[1980,1414.11],[1981,1360.07],[1982,1518.48],[1983,1509.42],[1984,1395.71],[1985,1404.61],[1986,1427.99],[1987,1441.72],[1988,1470.26],[1989,1402.53],[1990,1423.27],[1991,1376.72],[1992,1367.9],[1993,1301.36],[1994,1302.8],[1995,1333.03],[1996,1362.47],[1997,1392.37],[1998,1432.95],[1999,1466.61],[2000,1511.49],[2001,1542.03],[2002,1519.64],[2003,1579.91],[2004,1630.75],[2005,1676],[2006,1676.66],[2007,1715.54],[2008,1714.35],[2009,1700.05]],"population":[[1800,1009886],[1820,1009886],[1950,2653637],[1951,2703457],[1952,2755589],[1953,2810131],[1954,2867186],[1955,2926863],[1956,2989276],[1957,3054547],[1958,3123116],[1959,3194821],[1960,3269808],[1961,3348228],[1962,3430243],[1963,3516025],[1964,3636138],[1965,3743967],[1966,3856528],[1967,3965841],[1968,4073826],[1969,4192724],[1970,4317891],[1971,4450142],[1972,4588696],[1973,4727163],[1974,4872244],[1975,4989168],[1976,5100499],[1977,5260855],[1978,5426864],[1979,5598599],[1980,5776012],[1981,5959049],[1982,6147783],[1983,6342309],[1984,6542073],[1985,6746778],[1986,6956526],[1987,7171347],[1988,7391190],[1989,7615614],[1990,7844199],[1991,8076976],[1992,8307920],[1993,8540599],[1994,8778563],[1995,9025562],[1996,9280615],[1997,9535314],[1998,9794164],[1999,10057259],[2000,10324150],[2001,10595275],[2002,10870037],[2003,11147063],[2004,11426026],[2005,11706498],[2006,11987121],[2007,12267493],[2008,12548243]],"lifeExpectancy":[[1800,25.2],[1922,25.2],[1927,23.9],[1937,26.4],[1945,28.8],[1950,37.87],[1951,38.03],[1952,38.33],[1953,38.62],[1954,38.89],[1955,39.16],[1956,39.41],[1957,39.65],[1958,39.88],[1959,40.09],[1960,40.3],[1961,40.5],[1962,40.7],[1963,40.89],[1964,41.09],[1965,41.29],[1966,41.52],[1967,41.75],[1968,42.01],[1969,42.3],[1970,42.61],[1971,42.96],[1972,43.35],[1973,43.76],[1974,44.21],[1975,44.69],[1976,45.2],[1977,45.73],[1978,46.27],[1979,46.83],[1980,47.39],[1981,47.94],[1982,48.49],[1983,49.04],[1984,49.56],[1985,50.06],[1986,50.52],[1987,50.95],[1988,51.34],[1989,51.7],[1990,52.02],[1991,52.31],[1992,52.56],[1993,52.79],[1994,52.99],[1995,53.19],[1996,53.37],[1997,53.54],[1998,53.72],[1999,53.89],[2000,54.07],[2001,54.24],[2002,54.41],[2003,54.57],[2004,54.74],[2005,54.92],[2006,55.12],[2007,55.35],[2008,55.62],[2009,55.91]]},{"name":"Sierra Leone","region":"Sub-Saharan Africa","income":[[1800,508.4],[1820,508.4],[1913,785.51],[1950,828.88],[1951,864.62],[1952,879.79],[1953,901.45],[1954,939.54],[1955,959.27],[1956,981.97],[1957,1004.48],[1958,1018.62],[1959,1062.02],[1960,1080.7],[1961,1084.2],[1962,1116.64],[1963,1118.69],[1964,1114.89],[1965,1176.51],[1966,1232.61],[1967,1206.04],[1968,1304.02],[1969,1400.45],[1970,1425.83],[1971,1390.7],[1972,1353.76],[1973,1373.08],[1974,1405.55],[1975,1421.79],[1976,1353.94],[1977,1348.29],[1978,1326.87],[1979,1375.89],[1980,1412.69],[1981,1470.35],[1982,1465.01],[1983,1414.02],[1984,1402.52],[1985,1333.95],[1986,1258.36],[1987,1294.45],[1988,1298.33],[1989,1296.02],[1990,1297.16],[1991,1162.26],[1992,1068.7],[1993,1081.64],[1994,1094.22],[1995,969],[1996,719.36],[1997,574.65],[1998,558.42],[1999,510.42],[2000,517.67],[2001,578.72],[2002,699.49],[2003,723.63],[2004,753.56],[2005,790],[2006,826.04],[2007,856.97],[2008,881.48],[2009,893.6]],"population":[[1800,794264],[1820,794264],[1950,2087055],[1951,2114827],[1952,2143249],[1953,2172336],[1954,2202105],[1955,2232573],[1956,2263758],[1957,2295678],[1958,2328351],[1959,2361885],[1960,2396304],[1961,2431632],[1962,2467895],[1963,2505118],[1964,2543140],[1965,2581979],[1966,2621656],[1967,2662190],[1968,2703603],[1969,2745967],[1970,2789306],[1971,2833646],[1972,2879013],[1973,2925433],[1974,2973542],[1975,3027190],[1976,3083053],[1977,3140897],[1978,3200714],[1979,3262699],[1980,3327118],[1981,3394288],[1982,3464522],[1983,3538074],[1984,3615186],[1985,3695969],[1986,3780514],[1987,3868905],[1988,3961276],[1989,4057767],[1990,4220883],[1991,4333951],[1992,4260884],[1993,4214121],[1994,4311456],[1995,4381750],[1996,4438506],[1997,4578212],[1998,4672778],[1999,4698964],[2000,4808817],[2001,5080682],[2002,5359092],[2003,5564299],[2004,5732171],[2005,5867426],[2006,6005250],[2007,6144562],[2008,6286617]],"lifeExpectancy":[[1800,25.1],[1926,25.1],[1931,24.5],[1945,24.5],[1950,31.71],[1951,31.8],[1952,31.98],[1953,32.15],[1954,32.32],[1955,32.49],[1956,32.66],[1957,32.83],[1958,32.99],[1959,33.16],[1960,33.34],[1961,33.52],[1962,33.71],[1963,33.91],[1964,34.14],[1965,34.38],[1966,34.65],[1967,34.93],[1968,35.24],[1969,35.58],[1970,35.97],[1971,36.43],[1972,36.96],[1973,37.56],[1974,38.22],[1975,38.9],[1976,39.59],[1977,40.24],[1978,40.84],[1979,41.35],[1980,41.76],[1981,42.07],[1982,42.29],[1983,42.43],[1984,42.47],[1985,42.39],[1986,42.16],[1987,41.77],[1988,41.25],[1989,40.63],[1990,39.98],[1991,39.35],[1992,38.8],[1993,38.4],[1994,38.19],[1995,38.23],[1996,38.54],[1997,39.12],[1998,39.9],[1999,40.84],[2000,41.88],[2001,42.95],[2002,43.98],[2003,44.92],[2004,45.72],[2005,46.37],[2006,46.87],[2007,47.28],[2008,47.63],[2009,47.95]]},{"name":"Somalia","region":"Sub-Saharan Africa","income":[[1800,498.83],[1820,498.83],[1913,770.73],[1950,1079.21],[1951,1121.11],[1952,1135.75],[1953,1156.66],[1954,1200.56],[1955,1216.04],[1956,1236.83],[1957,1258.15],[1958,1267.28],[1959,1314.37],[1960,1304.43],[1961,1339.27],[1962,1369.49],[1963,1393.03],[1964,1216.29],[1965,1111.44],[1966,1241.97],[1967,1284.73],[1968,1278.43],[1969,1094.01],[1970,1162.59],[1971,1165.65],[1972,1254.58],[1973,1201.48],[1974,933.75],[1975,1227.29],[1976,1191.53],[1977,1450.99],[1978,1419.24],[1979,1206.31],[1980,1059.16],[1981,1136.58],[1982,1176.81],[1983,1037.61],[1984,1037.59],[1985,1080.05],[1986,1075.7],[1987,1093.24],[1988,1089.29],[1989,1112.25],[1990,1106.43],[1991,1030.38],[1992,926.96],[1993,933.06],[1994,942.53],[1995,952.5],[1996,956.1],[1997,930.6],[1998,902.11],[1999,891.91],[2000,881.51],[2001,868.92],[2002,882.08],[2003,895.72],[2004,914.04],[2005,932.96],[2006,935.96],[2007,939.53],[2008,943.04]],"population":[[1820,1000000],[1950,2437932],[1951,2481642],[1952,2526994],[1953,2574024],[1954,2622821],[1955,2673425],[1956,2725932],[1957,2780415],[1958,2836952],[1959,2895391],[1960,2955803],[1961,3016963],[1962,3080153],[1963,3145420],[1964,3212842],[1965,3282503],[1966,3354474],[1967,3428839],[1968,3505657],[1969,3584995],[1970,3666949],[1971,3751979],[1972,3840161],[1973,3931655],[1974,4027472],[1975,4127771],[1976,4237929],[1977,4353666],[1978,4677751],[1979,5308692],[1980,5790705],[1981,5824927],[1982,5828892],[1983,6002525],[1984,6207416],[1985,6445623],[1986,6699590],[1987,6921858],[1988,6900134],[1989,6748499],[1990,6675067],[1991,6448104],[1992,6099799],[1993,6059950],[1994,6177841],[1995,6291143],[1996,6460865],[1997,6633514],[1998,6843022],[1999,7043751],[2000,7253137],[2001,7488773],[2002,7753310],[2003,8025190],[2004,8304601],[2005,8591629],[2006,8863338],[2007,9118773],[2008,9379907]],"lifeExpectancy":[[1800,29.4],[1945,29.4],[1950,32.18],[1951,32.38],[1952,32.78],[1953,33.18],[1954,33.58],[1955,33.98],[1956,34.38],[1957,34.78],[1958,35.18],[1959,35.58],[1960,35.98],[1961,36.38],[1962,36.78],[1963,37.18],[1964,37.58],[1965,37.98],[1966,38.39],[1967,38.81],[1968,39.23],[1969,39.65],[1970,40.05],[1971,40.41],[1972,40.74],[1973,41.02],[1974,41.26],[1975,41.48],[1976,41.69],[1977,41.93],[1978,42.21],[1979,42.53],[1980,42.9],[1981,43.35],[1982,43.85],[1983,44.36],[1984,44.87],[1985,45.28],[1986,45.51],[1987,45.52],[1988,45.32],[1989,44.95],[1990,44.51],[1991,44.12],[1992,43.89],[1993,43.91],[1994,44.19],[1995,44.72],[1996,45.45],[1997,46.26],[1998,47.05],[1999,47.77],[2000,48.37],[2001,48.81],[2002,49.13],[2003,49.34],[2004,49.47],[2005,49.54],[2006,49.61],[2007,49.7],[2008,49.86],[2009,50.09]]},{"name":"South Africa","region":"Sub-Saharan Africa","income":[[1800,759.05],[1820,759.05],[1870,1569.68],[1911,2895.87],[1912,2905.27],[1913,2693.95],[1914,2543.25],[1915,2345.4],[1916,2337.68],[1917,2239.29],[1918,2263.96],[1919,2548.17],[1920,1939.11],[1921,2172.74],[1922,2287.39],[1923,2499.68],[1924,2627.12],[1925,2677.32],[1926,2751.35],[1927,2790.42],[1928,2867.08],[1929,2847.2],[1930,2783.61],[1931,2600.07],[1932,2528.04],[1933,2873.65],[1934,3035.38],[1935,3544.11],[1936,3837.86],[1937,3817.2],[1938,3882.67],[1939,4083.14],[1940,4134.38],[1941,4285.57],[1942,4222.72],[1943,4140.07],[1944,4178.71],[1945,4349.06],[1946,4538.22],[1947,4530.29],[1948,4760.18],[1949,4766.14],[1950,4575.12],[1951,4689.81],[1952,4725.3],[1953,4827.96],[1954,5065.89],[1955,5199.29],[1956,5370.01],[1957,5487.1],[1958,5510.16],[1959,5630.54],[1960,5545.68],[1961,5582.3],[1962,5768.73],[1963,6045.12],[1964,6380.02],[1965,6625.41],[1966,6773.61],[1967,7114.48],[1968,7256.58],[1969,7441.4],[1970,7668.61],[1971,7817.81],[1972,7765.96],[1973,7943.17],[1974,8249.3],[1975,8205.63],[1976,8211.03],[1977,8028.65],[1978,8099.64],[1979,8226.73],[1980,8577.42],[1981,8826.14],[1982,8568.27],[1983,8187.6],[1984,8389.87],[1985,8067.51],[1986,7859.35],[1987,7825.82],[1988,7965.5],[1989,7976.29],[1990,7786.88],[1991,7545.41],[1992,7225.07],[1993,7160],[1994,7236.9],[1995,7304.2],[1996,7454.42],[1997,7479.19],[1998,7339.96],[1999,7333.69],[2000,7454.45],[2001,7520.72],[2002,7710.95],[2003,7863.74],[2004,8154.74],[2005,8477],[2006,8857.05],[2007,9253.18],[2008,9428.79],[2009,9141.27]],"population":[[1820,1550000],[1870,2547000],[1913,6153000],[1950,13595840],[1951,13926314],[1952,14264935],[1953,14623631],[1954,14991553],[1955,15368551],[1956,15755233],[1957,16151549],[1958,16558044],[1959,16974984],[1960,17416653],[1961,17869991],[1962,18356657],[1963,18856708],[1964,19370514],[1965,19898242],[1966,20440487],[1967,20997321],[1968,21569468],[1969,22157355],[1970,22739921],[1971,23338080],[1972,23935810],[1973,24549294],[1974,25178954],[1975,25815144],[1976,26467896],[1977,27129932],[1978,27809087],[1979,28505816],[1980,29251588],[1981,30168679],[1982,31140029],[1983,32143960],[1984,33181594],[1985,34254092],[1986,35098897],[1987,35933379],[1988,36761065],[1989,37581427],[1990,38391094],[1991,39183648],[1992,39964159],[1993,40639384],[1994,41211897],[1995,41779149],[1996,42311979],[1997,42835005],[1998,43334603],[1999,43745636],[2000,44066197],[2001,44296012],[2002,44433622],[2003,44481901],[2004,44448470],[2005,44344136],[2006,44187637],[2007,43997828],[2008,43786115]],"lifeExpectancy":[[1800,33.5],[1930,33.5],[1950,43.55],[1951,43.94],[1952,44.69],[1953,45.4],[1954,46.06],[1955,46.66],[1956,47.22],[1957,47.74],[1958,48.21],[1959,48.64],[1960,49.05],[1961,49.44],[1962,49.82],[1963,50.19],[1964,50.57],[1965,50.96],[1966,51.35],[1967,51.73],[1968,52.1],[1969,52.47],[1970,52.82],[1971,53.17],[1972,53.51],[1973,53.85],[1974,54.2],[1975,54.56],[1976,54.94],[1977,55.36],[1978,55.81],[1979,56.28],[1980,56.79],[1981,57.33],[1982,57.89],[1983,58.45],[1984,58.99],[1985,59.51],[1986,60.01],[1987,60.46],[1988,60.85],[1989,61.16],[1990,61.38],[1991,61.47],[1992,61.43],[1993,61.25],[1994,60.94],[1995,60.45],[1996,59.78],[1997,58.93],[1998,57.95],[1999,56.87],[2000,55.77],[2001,54.7],[2002,53.72],[2003,52.9],[2004,52.25],[2005,51.8],[2006,51.57],[2007,51.5],[2008,51.56],[2009,51.72]]},{"name":"Sudan","region":"Sub-Saharan Africa","income":[[1800,484.74],[1820,484.74],[1913,748.95],[1950,1551.84],[1951,1582.37],[1952,1615.99],[1953,1646.64],[1954,1680.02],[1955,1714.45],[1956,1844.53],[1957,1770.34],[1958,1793.53],[1959,1952.43],[1960,1935.05],[1961,1882.94],[1962,1959.59],[1963,1852.46],[1964,1785.07],[1965,1860.81],[1966,1789.81],[1967,1688],[1968,1744.15],[1969,1802.85],[1970,1679.15],[1971,1745.17],[1972,1659.65],[1973,1473.99],[1974,1574.27],[1975,1720.49],[1976,1974.01],[1977,2202.99],[1978,2094.28],[1979,1808.21],[1980,1760.99],[1981,1739.51],[1982,1895.54],[1983,1811.71],[1984,1660.51],[1985,1495.82],[1986,1508.83],[1987,1507.82],[1988,1494.42],[1989,1574.46],[1990,1405.31],[1991,1458.84],[1992,1492.2],[1993,1495],[1994,1483.56],[1995,1488.27],[1996,1524.29],[1997,1632.21],[1998,1680.62],[1999,1758.2],[2000,1874.02],[2001,1933.19],[2002,1993.4],[2003,2077.55],[2004,2125.87],[2005,2249],[2006,2439.47],[2007,2619.28],[2008,2727.56],[2009,2778.61]],"population":[[1820,5156000],[1950,8051151],[1951,8274803],[1952,8504667],[1953,8740917],[1954,8983729],[1955,9233287],[1956,9489777],[1957,9753392],[1958,10024330],[1959,10302794],[1960,10588993],[1961,10882055],[1962,11183227],[1963,11492735],[1964,11800659],[1965,12085785],[1966,12376709],[1967,12716129],[1968,13058929],[1969,13402968],[1970,13787599],[1971,14182396],[1972,14597019],[1973,15113382],[1974,15571235],[1975,16056068],[1976,16570074],[1977,17104986],[1978,17712471],[1979,18386531],[1980,19063992],[1981,19701604],[1982,20367053],[1983,21750815],[1984,22542649],[1985,23454185],[1986,24171132],[1987,24725960],[1988,25240354],[1989,25837856],[1990,26627366],[1991,27445775],[1992,28227588],[1993,28963634],[1994,29771011],[1995,30567288],[1996,31307337],[1997,32160729],[1998,33108466],[1999,34085246],[2000,35079814],[2001,36080373],[2002,37090298],[2003,38114160],[2004,39148162],[2005,40187486],[2006,41236378],[2007,42292929],[2008,43354411]],"lifeExpectancy":[[1800,31.4],[1940,31.4],[1950,41.06],[1951,41.15],[1952,41.32],[1953,41.5],[1954,41.69],[1955,41.89],[1956,42.09],[1957,42.3],[1958,42.51],[1959,42.75],[1960,43],[1961,43.26],[1962,43.56],[1963,43.87],[1964,44.21],[1965,44.57],[1966,44.94],[1967,45.31],[1968,45.68],[1969,46.04],[1970,46.39],[1971,46.73],[1972,47.05],[1973,47.37],[1974,47.68],[1975,47.98],[1976,48.28],[1977,48.58],[1978,48.88],[1979,49.18],[1980,49.49],[1981,49.78],[1982,50.07],[1983,50.36],[1984,50.64],[1985,50.93],[1986,51.22],[1987,51.53],[1988,51.85],[1989,52.19],[1990,52.55],[1991,52.92],[1992,53.3],[1993,53.69],[1994,54.07],[1995,54.44],[1996,54.8],[1997,55.14],[1998,55.46],[1999,55.77],[2000,56.06],[2001,56.32],[2002,56.57],[2003,56.81],[2004,57.05],[2005,57.3],[2006,57.56],[2007,57.85],[2008,58.16],[2009,58.5]]},{"name":"Swaziland","region":"Sub-Saharan Africa","income":[[1800,414.04],[1820,414.04],[1913,639.72],[1950,1102.4],[1951,1139.3],[1952,1148.38],[1953,1165.39],[1954,1202.81],[1955,1211.97],[1956,1228.31],[1957,1244.71],[1958,1248.4],[1959,1288.37],[1960,1428.81],[1961,1571.42],[1962,1856.18],[1963,1913.56],[1964,2139.39],[1965,2410.44],[1966,2448.89],[1967,2613.1],[1968,2428.33],[1969,2464.78],[1970,3111.99],[1971,3080.01],[1972,3364.84],[1973,3451.35],[1974,3735.37],[1975,3763.75],[1976,3778.83],[1977,3781.41],[1978,3764.15],[1979,3701.56],[1980,3664.77],[1981,3793.14],[1982,3895.38],[1983,3782.51],[1984,3725.86],[1985,3817.84],[1986,3813.04],[1987,3984.84],[1988,3712.85],[1989,3787.6],[1990,3722.55],[1991,3646.2],[1992,3553.02],[1993,3561.05],[1994,3660.89],[1995,3771.59],[1996,3821.06],[1997,3876.77],[1998,3920.39],[1999,3989.51],[2000,4021.22],[2001,4046.53],[2002,4128.12],[2003,4206.8],[2004,4286.16],[2005,4384],[2006,4494.11],[2007,4632.83],[2008,4726.06],[2009,4728.18]],"population":[[1800,86000],[1904,86000],[1911,109000],[1921,113000],[1936,157000],[1946,188000],[1950,277384],[1951,283699],[1952,290243],[1953,297025],[1954,304057],[1955,311346],[1956,318904],[1957,326741],[1958,334837],[1959,343201],[1960,351842],[1961,360775],[1962,370006],[1963,379526],[1964,389347],[1965,399481],[1966,409941],[1967,420690],[1968,431797],[1969,443277],[1970,455145],[1971,467416],[1972,480105],[1973,493232],[1974,506812],[1975,520864],[1976,535618],[1977,551425],[1978,568333],[1979,588268],[1980,611447],[1981,631303],[1982,649901],[1983,672690],[1984,696870],[1985,722451],[1986,750707],[1987,779348],[1988,817085],[1989,851904],[1990,884616],[1991,925717],[1992,962344],[1993,991859],[1994,997652],[1995,1004849],[1996,1030651],[1997,1054486],[1998,1075900],[1999,1094429],[2000,1109750],[2001,1121699],[2002,1130269],[2003,1135657],[2004,1138171],[2005,1138227],[2006,1136334],[2007,1133066],[2008,1128814]],"lifeExpectancy":[[1800,32.3],[1945,32.3],[1950,40.5],[1951,40.74],[1952,41.21],[1953,41.66],[1954,42.09],[1955,42.5],[1956,42.89],[1957,43.26],[1958,43.61],[1959,43.94],[1960,44.26],[1961,44.56],[1962,44.84],[1963,45.13],[1964,45.42],[1965,45.73],[1966,46.09],[1967,46.49],[1968,46.95],[1969,47.46],[1970,48.01],[1971,48.6],[1972,49.2],[1973,49.81],[1974,50.42],[1975,51.03],[1976,51.65],[1977,52.29],[1978,52.95],[1979,53.63],[1980,54.33],[1981,55.04],[1982,55.75],[1983,56.45],[1984,57.13],[1985,57.78],[1986,58.42],[1987,59.04],[1988,59.63],[1989,60.14],[1990,60.53],[1991,60.76],[1992,60.77],[1993,60.55],[1994,60.06],[1995,59.25],[1996,58.05],[1997,56.52],[1998,54.71],[1999,52.74],[2000,50.75],[2001,48.91],[2002,47.33],[2003,46.13],[2004,45.34],[2005,44.99],[2006,45.03],[2007,45.34],[2008,45.8],[2009,46.36]]},{"name":"Tanzania","region":"Sub-Saharan Africa","income":[[1800,470.64],[1820,470.64],[1913,595.68],[1950,654.21],[1951,719.42],[1952,716.65],[1953,674.35],[1954,711.14],[1955,710.04],[1956,700.32],[1957,698.54],[1958,685.88],[1959,700.2],[1960,708.87],[1961,681.14],[1962,722],[1963,745.36],[1964,763.24],[1965,767.49],[1966,840.34],[1967,848.22],[1968,865.71],[1969,855.27],[1970,877.54],[1971,886.77],[1972,915.99],[1973,914.86],[1974,907.39],[1975,926.81],[1976,964.5],[1977,962.49],[1978,961.31],[1979,944.86],[1980,925.32],[1981,888.54],[1982,874.24],[1983,845.05],[1984,840.91],[1985,814.7],[1986,816.73],[1987,831.82],[1988,840.71],[1989,844.46],[1990,850.81],[1991,844.63],[1992,825.68],[1993,808.59],[1994,790.9],[1995,794.02],[1996,813.6],[1997,789.19],[1998,798.12],[1999,806.1],[2000,826.23],[2001,857.59],[2002,899.07],[2003,929.86],[2004,972.48],[2005,1018],[2006,1066.68],[2007,1120.51],[2008,1180.24],[2009,1220.25]],"population":[[1800,3019768],[1820,3019768],[1921,4314332],[1931,5299000],[1948,7740786],[1950,7934924],[1951,8124902],[1952,8322925],[1953,8529355],[1954,8745102],[1955,8970610],[1956,9206352],[1957,9452826],[1958,9710558],[1959,9978909],[1960,10259653],[1961,10555397],[1962,10863958],[1963,11185238],[1964,11521695],[1965,11870412],[1966,12231389],[1967,12607312],[1968,12988137],[1969,13389543],[1970,13806869],[1971,14236867],[1972,14706593],[1973,15201384],[1974,15681232],[1975,16147863],[1976,16625711],[1977,17129565],[1978,17647395],[1979,18174406],[1980,18715307],[1981,19273923],[1982,19844382],[1983,20437869],[1984,21050790],[1985,21677040],[1986,22328642],[1987,23040630],[1988,23760348],[1989,24447781],[1990,25137888],[1991,25853394],[1992,26605473],[1993,27493980],[1994,28556908],[1995,29470379],[1996,30055334],[1997,30686889],[1998,31467507],[1999,32245532],[2000,33065142],[2001,33831342],[2002,34593779],[2003,35354845],[2004,36070799],[2005,36766356],[2006,37445392],[2007,38139640],[2008,38858276]],"lifeExpectancy":[[1800,32.2],[1945,32.2],[1950,40.39],[1951,40.61],[1952,41.05],[1953,41.45],[1954,41.84],[1955,42.19],[1956,42.53],[1957,42.84],[1958,43.12],[1959,43.4],[1960,43.66],[1961,43.91],[1962,44.16],[1963,44.42],[1964,44.7],[1965,44.99],[1966,45.3],[1967,45.63],[1968,45.97],[1969,46.32],[1970,46.69],[1971,47.08],[1972,47.48],[1973,47.89],[1974,48.3],[1975,48.7],[1976,49.07],[1977,49.41],[1978,49.72],[1979,49.98],[1980,50.21],[1981,50.42],[1982,50.61],[1983,50.8],[1984,50.97],[1985,51.12],[1986,51.2],[1987,51.22],[1988,51.17],[1989,51.05],[1990,50.87],[1991,50.65],[1992,50.41],[1993,50.2],[1994,50.02],[1995,49.92],[1996,49.9],[1997,49.97],[1998,50.13],[1999,50.38],[2000,50.74],[2001,51.19],[2002,51.73],[2003,52.33],[2004,52.97],[2005,53.65],[2006,54.34],[2007,55.03],[2008,55.7],[2009,56.35]]},{"name":"Togo","region":"Sub-Saharan Africa","income":[[1800,535.59],[1820,535.59],[1913,827.52],[1950,832.05],[1951,846.17],[1952,859.81],[1953,872.92],[1954,886.24],[1955,899.68],[1956,913.16],[1957,925.91],[1958,937.89],[1959,950.54],[1960,1011.31],[1961,1054.67],[1962,1067.53],[1963,1092.43],[1964,1218.93],[1965,1350.38],[1966,1437.09],[1967,1477.6],[1968,1511.87],[1969,1631.71],[1970,1558.82],[1971,1631.68],[1972,1649.66],[1973,1546.84],[1974,1575.43],[1975,1530.1],[1976,1487.63],[1977,1532.78],[1978,1649.61],[1979,1707.47],[1980,1589.51],[1981,1446.7],[1982,1344.58],[1983,1228.04],[1984,1221.05],[1985,1234.15],[1986,1228.38],[1987,1202.2],[1988,1212.08],[1989,1213.3],[1990,1160.13],[1991,1113.67],[1992,1034.3],[1993,869.67],[1994,1014.99],[1995,1026.07],[1996,1073.78],[1997,982.29],[1998,932.92],[1999,933.17],[2000,890.36],[2001,871.57],[2002,886.22],[2003,907.24],[2004,903.34],[2005,888],[2006,900.26],[2007,895.17],[2008,888.41],[2009,888.01]],"population":[[1800,445985],[1820,445985],[1950,1171897],[1951,1194973],[1952,1219113],[1953,1244363],[1954,1270771],[1955,1298389],[1956,1327270],[1957,1357445],[1958,1388973],[1959,1421772],[1960,1455900],[1961,1491264],[1962,1528098],[1963,1566469],[1964,1606285],[1965,1647772],[1966,1690838],[1967,1735550],[1968,1781978],[1969,1830381],[1970,1964128],[1971,2009685],[1972,2056351],[1973,2104154],[1974,2153238],[1975,2203646],[1976,2255413],[1977,2308582],[1978,2363192],[1979,2420740],[1980,2481375],[1981,2555796],[1982,2644765],[1983,2738544],[1984,2836453],[1985,2938286],[1986,3044174],[1987,3154264],[1988,3268540],[1989,3385787],[1990,3504813],[1991,3625489],[1992,3747553],[1993,3726013],[1994,3750370],[1995,3965576],[1996,4157932],[1997,4320890],[1998,4454777],[1999,4582500],[2000,4711655],[2001,4843185],[2002,4977378],[2003,5114524],[2004,5255320],[2005,5399991],[2006,5548702],[2007,5701579],[2008,5858673]],"lifeExpectancy":[[1800,31.3],[1945,31.3],[1950,40.13],[1951,40.42],[1952,40.98],[1953,41.52],[1954,42.04],[1955,42.54],[1956,43.01],[1957,43.47],[1958,43.91],[1959,44.34],[1960,44.76],[1961,45.16],[1962,45.57],[1963,45.98],[1964,46.4],[1965,46.84],[1966,47.29],[1967,47.76],[1968,48.26],[1969,48.77],[1970,49.3],[1971,49.85],[1972,50.42],[1973,51],[1974,51.58],[1975,52.15],[1976,52.72],[1977,53.28],[1978,53.82],[1979,54.34],[1980,54.82],[1981,55.27],[1982,55.68],[1983,56.05],[1984,56.38],[1985,56.68],[1986,56.93],[1987,57.16],[1988,57.36],[1989,57.54],[1990,57.72],[1991,57.9],[1992,58.08],[1993,58.28],[1994,58.49],[1995,58.71],[1996,58.93],[1997,59.14],[1998,59.34],[1999,59.54],[2000,59.76],[2001,60],[2002,60.28],[2003,60.6],[2004,60.96],[2005,61.36],[2006,61.77],[2007,62.18],[2008,62.57],[2009,62.93]]},{"name":"Uganda","region":"Sub-Saharan Africa","income":[[1800,461.08],[1820,461.08],[1913,712.4],[1950,759.88],[1951,710.29],[1952,734.75],[1953,746.83],[1954,716.66],[1955,743.21],[1956,763.14],[1957,774.37],[1958,757.98],[1959,774.45],[1960,788.69],[1961,758.7],[1962,767.27],[1963,830.8],[1964,868.29],[1965,861.75],[1966,888.69],[1967,908.92],[1968,904.6],[1969,974.6],[1970,960.97],[1971,964.15],[1972,950.74],[1973,927.25],[1974,908.34],[1975,867.67],[1976,852.35],[1977,843.73],[1978,777.37],[1979,675.82],[1980,638.77],[1981,647.57],[1982,682.27],[1983,711.85],[1984,630.52],[1985,622.04],[1986,603.24],[1987,617.72],[1988,636.79],[1989,658.11],[1990,661.3],[1991,646.06],[1992,644.17],[1993,674.24],[1994,693.03],[1995,755.16],[1996,799.01],[1997,816.56],[1998,830.71],[1999,865.83],[2000,881.21],[2001,896.54],[2002,927.72],[2003,937.6],[2004,959.71],[2005,991],[2006,1059.73],[2007,1108.95],[2008,1163.64],[2009,1202.53]],"population":[[1800,2101397],[1820,2101397],[1911,2843000],[1921,2921000],[1931,3554000],[1948,4959000],[1950,5521758],[1951,5670970],[1952,5824797],[1953,5983396],[1954,6147541],[1955,6317454],[1956,6493361],[1957,6675501],[1958,6864123],[1959,7059486],[1960,7261862],[1961,7471533],[1962,7688797],[1963,7913960],[1964,8147346],[1965,8389294],[1966,8640153],[1967,8900294],[1968,9170101],[1969,9449977],[1970,9728111],[1971,9983229],[1972,10190285],[1973,10385004],[1974,10619695],[1975,10890181],[1976,11169608],[1977,11457758],[1978,11755730],[1979,12032167],[1980,12296592],[1981,12595972],[1982,12939400],[1983,13321200],[1984,13761689],[1985,14225933],[1986,14717932],[1987,15283050],[1988,15892811],[1989,16500123],[1990,17074034],[1991,17651716],[1992,18252190],[1993,18903138],[1994,19566609],[1995,20094075],[1996,20623835],[1997,21210254],[1998,21829118],[1999,22535846],[2000,23248553],[2001,23970202],[2002,24739869],[2003,25556448],[2004,26390258],[2005,27269482],[2006,28195754],[2007,29170398],[2008,30214531]],"lifeExpectancy":[[1800,25.3],[1922,25.3],[1927,23.9],[1937,26.4],[1945,28.8],[1950,39],[1951,39.24],[1952,39.73],[1953,40.23],[1954,40.74],[1955,41.25],[1956,41.78],[1957,42.32],[1958,42.86],[1959,43.41],[1960,43.97],[1961,44.52],[1962,45.07],[1963,45.62],[1964,46.16],[1965,46.72],[1966,47.31],[1967,47.94],[1968,48.59],[1969,49.23],[1970,49.84],[1971,50.34],[1972,50.71],[1973,50.92],[1974,50.98],[1975,50.9],[1976,50.73],[1977,50.53],[1978,50.32],[1979,50.15],[1980,50.04],[1981,49.98],[1982,49.96],[1983,49.95],[1984,49.93],[1985,49.86],[1986,49.7],[1987,49.42],[1988,49.01],[1989,48.5],[1990,47.91],[1991,47.27],[1992,46.65],[1993,46.09],[1994,45.64],[1995,45.34],[1996,45.22],[1997,45.26],[1998,45.46],[1999,45.81],[2000,46.31],[2001,46.95],[2002,47.7],[2003,48.52],[2004,49.38],[2005,50.25],[2006,51.11],[2007,51.94],[2008,52.73],[2009,53.47]]},{"name":"Zambia","region":"Sub-Saharan Africa","income":[[1800,364.46],[1820,364.46],[1913,563.12],[1950,1060.84],[1951,1103.66],[1952,1147.39],[1953,1192.69],[1954,1239.06],[1955,1180.94],[1956,1289.24],[1957,1311.96],[1958,1245.62],[1959,1468.11],[1960,1540.6],[1961,1505.53],[1962,1452.73],[1963,1447.58],[1964,1599.11],[1965,1841.72],[1966,1695.38],[1967,1777.08],[1968,1753.08],[1969,1695.41],[1970,1722.48],[1971,1672.76],[1972,1773.5],[1973,1704.46],[1974,1788.69],[1975,1670.52],[1976,1718.94],[1977,1588.69],[1978,1552.52],[1979,1461.38],[1980,1461.6],[1981,1502.69],[1982,1408.68],[1983,1329.5],[1984,1279.2],[1985,1258.79],[1986,1223.74],[1987,1213.32],[1988,1249.79],[1989,1226.43],[1990,1299.99],[1991,1264.81],[1992,1210.88],[1993,1261.3],[1994,1067.93],[1995,1017.79],[1996,1060.55],[1997,1071.35],[1998,1027.23],[1999,1025.58],[2000,1035.9],[2001,1059.73],[2002,1071.61],[2003,1105.23],[2004,1140.76],[2005,1175],[2006,1218.75],[2007,1333.61],[2008,1382.47],[2009,1442.06]],"population":[[1800,747000],[1904,747000],[1911,822000],[1921,984000],[1931,1345000],[1950,2553000],[1951,2611000],[1952,2672000],[1953,2734000],[1954,2800000],[1955,2869000],[1956,2941000],[1957,3016000],[1958,3094000],[1959,3173000],[1960,3254000],[1961,3337000],[1962,3421000],[1963,3508000],[1964,3599000],[1965,3694000],[1966,3794000],[1967,3900000],[1968,4009000],[1969,4123000],[1970,4251612],[1971,4376371],[1972,4506497],[1973,4642941],[1974,4784668],[1975,4923730],[1976,5067045],[1977,5216550],[1978,5371218],[1979,5531990],[1980,5699777],[1981,5884561],[1982,6100407],[1983,6337427],[1984,6563331],[1985,6779477],[1986,7022362],[1987,7272406],[1988,7502249],[1989,7722416],[1990,7941694],[1991,8162612],[1992,8381163],[1993,8593282],[1994,8800157],[1995,9001866],[1996,9201909],[1997,9417789],[1998,9636385],[1999,9863137],[2000,10116606],[2001,10373871],[2002,10595811],[2003,10799220],[2004,11025690],[2005,11261795],[2006,11502010],[2007,11746035],[2008,11993403]],"lifeExpectancy":[[1800,32.6],[1945,32.6],[1950,41.22],[1951,41.43],[1952,41.85],[1953,42.26],[1954,42.67],[1955,43.09],[1956,43.5],[1957,43.9],[1958,44.31],[1959,44.71],[1960,45.1],[1961,45.47],[1962,45.84],[1963,46.19],[1964,46.54],[1965,46.9],[1966,47.27],[1967,47.66],[1968,48.09],[1969,48.53],[1970,48.99],[1971,49.46],[1972,49.91],[1973,50.34],[1974,50.72],[1975,51.05],[1976,51.33],[1977,51.55],[1978,51.72],[1979,51.84],[1980,51.93],[1981,51.99],[1982,52.04],[1983,52.08],[1984,52.11],[1985,52.1],[1986,52.07],[1987,51.97],[1988,51.8],[1989,51.53],[1990,51.12],[1991,50.53],[1992,49.77],[1993,48.85],[1994,47.81],[1995,46.69],[1996,45.55],[1997,44.45],[1998,43.45],[1999,42.63],[2000,42.04],[2001,41.72],[2002,41.67],[2003,41.86],[2004,42.27],[2005,42.88],[2006,43.66],[2007,44.54],[2008,45.47],[2009,46.4]]},{"name":"Zimbabwe","region":"Sub-Saharan Africa","income":[[1800,372.82],[1820,372.82],[1913,387.64],[1950,393.7],[1951,405.39],[1952,406.88],[1953,426.64],[1954,433.72],[1955,454.05],[1956,500.9],[1957,518.76],[1958,509.09],[1959,519.6],[1960,526.78],[1961,536.66],[1962,527.27],[1963,506.09],[1964,535.49],[1965,552.37],[1966,543.32],[1967,569.8],[1968,561.22],[1969,609.82],[1970,720.26],[1971,760.02],[1972,799.36],[1973,804.19],[1974,801.62],[1975,787.31],[1976,762.17],[1977,685.59],[1978,692],[1979,679.95],[1980,727.55],[1981,790.3],[1982,788.86],[1983,771.84],[1984,728.37],[1985,749.91],[1986,742.3],[1987,706.16],[1988,744.46],[1989,768.28],[1990,761.5],[1991,782.09],[1992,693.42],[1993,686.67],[1994,719.99],[1995,717.36],[1996,781.5],[1997,792.45],[1998,806.31],[1999,792.76],[2000,745.77],[2001,719.96],[2002,672.04],[2003,598.24],[2004,571.74],[2005,538],[2006,517.35],[2007,498.8],[2008,426.62],[2009,443.74]],"population":[[1800,1085814],[1820,1085814],[1950,2853151],[1951,2950941],[1952,3080907],[1953,3190967],[1954,3307273],[1955,3409017],[1956,3529739],[1957,3646340],[1958,3764157],[1959,3886947],[1960,4010933],[1961,4140117],[1962,4277736],[1963,4412423],[1964,4537263],[1965,4685272],[1966,4835691],[1967,4995432],[1968,5171817],[1969,5352802],[1970,5514536],[1971,5684187],[1972,5861135],[1973,6001949],[1974,6172535],[1975,6341797],[1976,6496418],[1977,6642107],[1978,6767223],[1979,6887132],[1980,7169968],[1981,7429223],[1982,7636524],[1983,7928538],[1984,8241357],[1985,8560378],[1986,8876579],[1987,9216418],[1988,9560036],[1989,9867471],[1990,10152933],[1991,10429405],[1992,10704340],[1993,10950080],[1994,11049617],[1995,11111992],[1996,11260802],[1997,11404948],[1998,11534135],[1999,11649168],[2000,11751323],[2001,11844109],[2002,11926563],[2003,12004576],[2004,12083553],[2005,12160782],[2006,12236805],[2007,12311143],[2008,12382920]],"lifeExpectancy":[[1800,33.7],[1940,33.7],[1950,47.65],[1951,47.86],[1952,48.28],[1953,48.7],[1954,49.12],[1955,49.53],[1956,49.93],[1957,50.33],[1958,50.73],[1959,51.12],[1960,51.5],[1961,51.87],[1962,52.23],[1963,52.58],[1964,52.92],[1965,53.25],[1966,53.58],[1967,53.9],[1968,54.22],[1969,54.54],[1970,54.86],[1971,55.19],[1972,55.52],[1973,55.85],[1974,56.2],[1975,56.58],[1976,56.99],[1977,57.44],[1978,57.92],[1979,58.43],[1980,58.96],[1981,59.5],[1982,60.03],[1983,60.52],[1984,60.94],[1985,61.26],[1986,61.48],[1987,61.58],[1988,61.53],[1989,61.28],[1990,60.76],[1991,59.89],[1992,58.65],[1993,57.07],[1994,55.21],[1995,53.13],[1996,50.93],[1997,48.73],[1998,46.66],[1999,44.82],[2000,43.32],[2001,42.23],[2002,41.54],[2003,41.22],[2004,41.28],[2005,41.68],[2006,42.4],[2007,43.36],[2008,44.49],[2009,45.72]]},{"name":"Afghanistan","region":"South Asia","income":[[1800,472.05],[1820,472.05],[1913,638.38],[1950,757.32],[1951,766.75],[1952,779.45],[1953,812.86],[1954,815.36],[1955,816.41],[1956,837.07],[1957,820.85],[1958,849.74],[1959,856.23],[1960,868.5],[1961,857.36],[1962,853.1],[1963,849.44],[1964,846.27],[1965,845.22],[1966,833.61],[1967,836.2],[1968,845.08],[1969,837.62],[1970,833.32],[1971,773.7],[1972,739.98],[1973,803.49],[1974,825.58],[1975,846.44],[1976,866.19],[1977,786.11],[1978,827.09],[1979,809.07],[1980,810.43],[1981,896.86],[1982,978.01],[1983,1013.13],[1984,994.57],[1985,961.92],[1986,1030.89],[1987,852.4],[1988,770.01],[1989,751.44],[1990,709.5],[1991,705.45],[1992,649.34],[1993,558.85],[1994,500.45],[1995,601.87],[1996,617.91],[1997,635.34],[1998,653.3],[1999,670.99],[2000,663.91],[2001,595.04],[2002,726.73],[2003,785.13],[2004,804.72],[2005,874],[2006,910.38],[2007,1012.61],[2008,1019.36],[2009,1216.68]],"population":[[1800,3280000],[1820,3280000],[1870,4207000],[1913,5730000],[1950,8150368],[1951,8284473],[1952,8425333],[1953,8573217],[1954,8728408],[1955,8891209],[1956,9061938],[1957,9240934],[1958,9428556],[1959,9624606],[1960,9829450],[1961,10043473],[1962,10267083],[1963,10500711],[1964,10744167],[1965,10997885],[1966,11262324],[1967,11537966],[1968,11825320],[1969,12122740],[1970,12430623],[1971,12749385],[1972,13079460],[1973,13421301],[1974,13772076],[1975,14132019],[1976,14501369],[1977,14880372],[1978,15269281],[1979,15555612],[1980,15112149],[1981,13812973],[1982,12881816],[1983,12934937],[1984,13387737],[1985,13796928],[1986,13856100],[1987,13867957],[1988,14076478],[1989,14511868],[1990,14669339],[1991,14871963],[1992,16317921],[1993,18371583],[1994,19900668],[1995,20881480],[1996,21559923],[1997,22227415],[1998,22912814],[1999,23646128],[2000,23898198],[2001,23997412],[2002,25268405],[2003,27060359],[2004,28513677],[2005,29928987],[2006,31056997],[2007,31889923],[2008,32738376]],"lifeExpectancy":[[1800,28.21],[1950,28.21],[1951,28.36],[1952,28.65],[1953,28.95],[1954,29.25],[1955,29.55],[1956,29.85],[1957,30.16],[1958,30.48],[1959,30.8],[1960,31.13],[1961,31.47],[1962,31.82],[1963,32.2],[1964,32.58],[1965,32.98],[1966,33.38],[1967,33.79],[1968,34.2],[1969,34.61],[1970,35.03],[1971,35.46],[1972,35.91],[1973,36.37],[1974,36.85],[1975,37.31],[1976,37.77],[1977,38.2],[1978,38.59],[1979,38.94],[1980,39.25],[1981,39.52],[1982,39.76],[1983,39.98],[1984,40.19],[1985,40.39],[1986,40.58],[1987,40.77],[1988,40.96],[1989,41.15],[1990,41.32],[1991,41.46],[1992,41.58],[1993,41.67],[1994,41.72],[1995,41.75],[1996,41.76],[1997,41.75],[1998,41.75],[1999,41.77],[2000,41.83],[2001,41.93],[2002,42.09],[2003,42.3],[2004,42.57],[2005,42.88],[2006,43.23],[2007,43.58],[2008,43.94],[2009,44.3]]},{"name":"Bangladesh","region":"South Asia","income":[[1800,609],[1820,606],[1821,606],[1822,606],[1823,606],[1824,606],[1825,606],[1826,606],[1827,606],[1828,606],[1829,606],[1830,606],[1831,606],[1832,606],[1833,606],[1834,606],[1835,606],[1836,606],[1837,606],[1838,606],[1839,606],[1840,606],[1841,606],[1842,606],[1843,606],[1844,606],[1845,606],[1846,606],[1847,606],[1848,606],[1849,606],[1850,606],[1851,606],[1852,606],[1853,606],[1854,606],[1855,606],[1856,606],[1857,606],[1858,606],[1859,606],[1860,606],[1861,606],[1862,606],[1863,606],[1864,606],[1865,606],[1866,606],[1867,606],[1868,606],[1869,606],[1870,606],[1871,607],[1872,608],[1873,610],[1874,611],[1875,613],[1876,614],[1877,615],[1878,617],[1879,618],[1880,620],[1881,621],[1882,623],[1883,624],[1884,625],[1885,644],[1886,622],[1887,649],[1888,654],[1889,635],[1890,664],[1891,602],[1892,649],[1893,664],[1894,673],[1895,655],[1896,606],[1897,715],[1898,716],[1899,659],[1900,681],[1901,691],[1902,744],[1903,750],[1904,749],[1905,730],[1906,747],[1907,697],[1908,703],[1909,795],[1910,791],[1911,785],[1912,782],[1913,764],[1914,805],[1915,785],[1916,807],[1917,791],[1918,690],[1919,784],[1920,721],[1921,772],[1922,796],[1923,763],[1924,792],[1925,793],[1926,810],[1927,802],[1928,802],[1929,827],[1930,824],[1931,808],[1932,806],[1933,795],[1934,791],[1935,773],[1936,792],[1937,768],[1938,759],[1939,765],[1940,780],[1941,785],[1942,772],[1943,793],[1944,776],[1945,754],[1946,706],[1947,702],[1948,701],[1949,709],[1950,673],[1951,675],[1952,684],[1953,683],[1954,683],[1955,633],[1956,688],[1957,662],[1958,636],[1959,656],[1960,679],[1961,704],[1962,686],[1963,741],[1964,734],[1965,758],[1966,753],[1967,721],[1968,772],[1969,767],[1970,785],[1971,731],[1972,630],[1973,620],[1974,682],[1975,660],[1976,674],[1977,660],[1978,687],[1979,698],[1980,684],[1981,687],[1982,677],[1983,693],[1984,714],[1985,720],[1986,736],[1987,752],[1988,759],[1989,763],[1990,799],[1991,810],[1992,838],[1993,863],[1994,884],[1995,913],[1996,939],[1997,973],[1998,1005],[1999,1035],[2000,1075],[2001,1110],[2002,1136],[2003,1172],[2004,1221],[2005,1268],[2006,1326],[2007,1384],[2008,1441],[2009,1492]],"population":[[1820,20000000],[1870,24721000],[1913,31786000],[1929,34427000],[1941,41966000],[1946,41660000],[1950,45645964],[1951,46152281],[1952,46886859],[1953,47660488],[1954,48603271],[1955,49601520],[1956,50477738],[1957,51365468],[1958,52399182],[1959,53484608],[1960,54621538],[1961,55741313],[1962,56839289],[1963,58226108],[1964,59402546],[1965,60332117],[1966,61548117],[1967,62821884],[1968,64133002],[1969,65482564],[1970,67402621],[1971,69226511],[1972,70759295],[1973,72470813],[1974,74679411],[1975,76253310],[1976,77928480],[1977,80428306],[1978,82935511],[1979,85492214],[1980,88076996],[1981,90666000],[1982,93074406],[1983,95384346],[1984,97611763],[1985,99752733],[1986,101768861],[1987,103764241],[1988,105771136],[1989,107806550],[1990,109896945],[1991,111935847],[1992,113704579],[1993,115447696],[1994,117279697],[1995,119186448],[1996,121189286],[1997,123315288],[1998,125572731],[1999,127943283],[2000,130406594],[2001,132974813],[2002,135656790],[2003,138448210],[2004,141340476],[2005,144319628],[2006,147365352],[2007,150448339],[2008,153546901]],"lifeExpectancy":[[1800,25.5],[1876,25.5],[1886,23.2],[1896,22],[1906,21.5],[1926,24.9],[1950,36.75],[1951,36.94],[1952,37.32],[1953,37.69],[1954,38.05],[1955,38.41],[1956,38.77],[1957,39.12],[1958,39.48],[1959,39.84],[1960,40.21],[1961,40.6],[1962,41.01],[1963,41.44],[1964,41.88],[1965,42.33],[1966,42.75],[1967,43.13],[1968,43.47],[1969,43.77],[1970,44.03],[1971,44.25],[1972,44.46],[1973,44.68],[1974,44.92],[1975,45.2],[1976,45.56],[1977,45.98],[1978,46.48],[1979,47.05],[1980,47.67],[1981,48.32],[1982,48.99],[1983,49.65],[1984,50.3],[1985,50.92],[1986,51.52],[1987,52.12],[1988,52.72],[1989,53.34],[1990,53.98],[1991,54.64],[1992,55.34],[1993,56.06],[1994,56.8],[1995,57.56],[1996,58.32],[1997,59.09],[1998,59.84],[1999,60.58],[2000,61.29],[2001,61.99],[2002,62.67],[2003,63.33],[2004,63.97],[2005,64.58],[2006,65.15],[2007,65.67],[2008,66.14],[2009,66.56]]},{"name":"Bhutan","region":"South Asia","income":[[1800,539.56],[1820,539.56],[1950,683.5],[1970,835.91],[1971,828.28],[1972,807.62],[1973,789.32],[1974,799.54],[1975,745.32],[1976,783.53],[1977,816.31],[1978,845.46],[1979,858.09],[1980,874.57],[1981,948.71],[1982,946.81],[1983,999.68],[1984,1035.6],[1985,1064.85],[1986,1177.59],[1987,1494.29],[1988,1535.47],[1989,1615.41],[1990,1782.04],[1991,1804.67],[1992,1904.18],[1993,1989.17],[1994,2149.47],[1995,2317.07],[1996,2456.12],[1997,2561.51],[1998,2656.05],[1999,2790.21],[2000,2922.11],[2001,3045.89],[2002,3256.02],[2003,3406.36],[2004,3545.99],[2005,3694],[2006,3845.06],[2007,4520.52],[2008,4670.97],[2009,5053.83]],"population":[[1800,392287],[1820,392287],[1950,734000],[1951,745689],[1952,757716],[1953,770091],[1954,782825],[1955,796000],[1956,809486],[1957,823365],[1958,837649],[1959,852335],[1960,867000],[1961,882518],[1962,898475],[1963,914885],[1964,931782],[1965,950000],[1966,967932],[1967,986400],[1968,1005421],[1969,1025096],[1970,1045000],[1971,1066129],[1972,1087991],[1973,1110611],[1974,1133702],[1975,1157452],[1976,1181554],[1977,1205659],[1978,1230769],[1979,1255882],[1980,1281000],[1981,1306579],[1982,1333704],[1983,1362337],[1984,1392489],[1985,1424193],[1986,1457094],[1987,1490857],[1988,1525539],[1989,1561160],[1990,1597719],[1991,1635161],[1992,1673428],[1993,1712504],[1994,1752368],[1995,1793012],[1996,1834341],[1997,1876236],[1998,1918669],[1999,1961642],[2000,2005222],[2001,2049412],[2002,2094176],[2003,2139549],[2004,2185569],[2005,2232291],[2006,2279723],[2007,2327849],[2008,2376680]],"lifeExpectancy":[[1950,36.04],[1951,36.04],[1952,36.06],[1953,36.1],[1954,36.17],[1955,36.26],[1956,36.38],[1957,36.51],[1958,36.68],[1959,36.86],[1960,37.08],[1961,37.31],[1962,37.58],[1963,37.86],[1964,38.18],[1965,38.52],[1966,38.88],[1967,39.27],[1968,39.68],[1969,40.12],[1970,40.58],[1971,41.06],[1972,41.56],[1973,42.09],[1974,42.64],[1975,43.21],[1976,43.8],[1977,44.41],[1978,45.03],[1979,45.66],[1980,46.29],[1981,46.91],[1982,47.51],[1983,48.1],[1984,48.67],[1985,49.25],[1986,49.83],[1987,50.43],[1988,51.07],[1989,51.75],[1990,52.47],[1991,53.24],[1992,54.05],[1993,54.89],[1994,55.75],[1995,56.65],[1996,57.57],[1997,58.52],[1998,59.48],[1999,60.43],[2000,61.36],[2001,62.22],[2002,63],[2003,63.7],[2004,64.3],[2005,64.82],[2006,65.26],[2007,65.67],[2008,66.05],[2009,66.42]]},{"name":"India","region":"South Asia","income":[[1800,563],[1820,560],[1821,560],[1822,560],[1823,560],[1824,560],[1825,560],[1826,560],[1827,560],[1828,560],[1829,560],[1830,560],[1831,560],[1832,560],[1833,560],[1834,560],[1835,560],[1836,560],[1837,560],[1838,560],[1839,560],[1840,560],[1841,560],[1842,560],[1843,560],[1844,560],[1845,560],[1846,560],[1847,560],[1848,560],[1849,560],[1850,560],[1851,560],[1852,560],[1853,560],[1854,560],[1855,560],[1856,560],[1857,560],[1858,560],[1859,560],[1860,560],[1861,560],[1862,560],[1863,560],[1864,560],[1865,560],[1866,560],[1867,560],[1868,560],[1869,560],[1870,560],[1871,561],[1872,561],[1873,562],[1874,562],[1875,563],[1876,563],[1877,564],[1878,564],[1879,565],[1880,565],[1881,566],[1882,566],[1883,567],[1884,567],[1885,583],[1886,563],[1887,587],[1888,590],[1889,572],[1890,597],[1891,540],[1892,582],[1893,595],[1894,602],[1895,585],[1896,540],[1897,637],[1898,637],[1899,585],[1900,604],[1901,612],[1902,658],[1903,662],[1904,660],[1905,643],[1906,657],[1907,613],[1908,617],[1909,696],[1910,692],[1911,686],[1912,683],[1913,666],[1914,700],[1915,682],[1916,700],[1917,686],[1918,597],[1919,678],[1920,622],[1921,665],[1922,685],[1923,655],[1924,679],[1925,680],[1926,693],[1927,685],[1928,684],[1929,704],[1930,701],[1931,687],[1932,684],[1933,674],[1934,670],[1935,653],[1936,668],[1937,647],[1938,639],[1939,643],[1940,654],[1941,658],[1942,646],[1943,663],[1944,647],[1945,629],[1946,588],[1947,583],[1948,582],[1949,588],[1950,580],[1951,583],[1952,588],[1953,613],[1954,626],[1955,629],[1956,651],[1957,631],[1958,663],[1959,664],[1960,696],[1961,700],[1962,699],[1963,717],[1964,755],[1965,707],[1966,698],[1967,739],[1968,739],[1969,771],[1970,791],[1971,779],[1972,758],[1973,774],[1974,764],[1975,812],[1976,804],[1977,845],[1978,870],[1979,806],[1980,844],[1981,877],[1982,883],[1983,933],[1984,947],[1985,963],[1986,982],[1987,1001],[1988,1081],[1989,1127],[1990,1160],[1991,1150],[1992,1186],[1993,1227],[1994,1290],[1995,1354],[1996,1433],[1997,1475],[1998,1543],[1999,1607],[2000,1648],[2001,1714],[2002,1754],[2003,1872],[2004,1981],[2005,2126],[2006,2300],[2007,2478],[2008,2622],[2009,2731]],"population":[[1820,175349000],[1870,212189000],[1913,251906000],[1929,275861000],[1941,321565000],[1946,340857000],[1947,346000000],[1948,350000000],[1949,355000000],[1950,359000000],[1951,365000000],[1952,372000000],[1953,379000000],[1954,386000000],[1955,393000000],[1956,401000000],[1957,409000000],[1958,418000000],[1959,426000000],[1960,434000000],[1961,444000000],[1962,454000000],[1963,464000000],[1964,474000000],[1965,485000000],[1966,495000000],[1967,506000000],[1968,518000000],[1969,529000000],[1970,541000000],[1971,554000000],[1972,567000000],[1973,580000000],[1974,593000000],[1975,607000000],[1976,620000000],[1977,634000000],[1978,648000000],[1979,664000000],[1980,679000000],[1981,692000000],[1982,708000000],[1983,723000000],[1984,739000000],[1985,755000000],[1986,771000000],[1987,788000000],[1988,805000000],[1989,822000000],[1990,839000000],[1991,856000000],[1992,872000000],[1993,891000000],[1994,908000000],[1995,927000000],[1996,943000000],[1997,959000000],[1998,975000000],[1999,991691000],[2000,1007702000],[2001,1023590000],[2002,1034172547],[2003,1049700118],[2004,1065070607],[2005,1080264388],[2006,1095351995],[2007,1110396331],[2008,1125368288]],"lifeExpectancy":[[1800,25.4],[1881,25.44],[1891,24.27],[1901,23.49],[1905,23.98],[1911,23.15],[1915,24.02],[1921,24.86],[1925,27.61],[1931,29.31],[1935,30.95],[1941,32.59],[1945,35.03],[1950,36.8],[1951,37.08],[1952,37.65],[1953,38.22],[1954,38.8],[1955,39.39],[1956,39.98],[1957,40.59],[1958,41.19],[1959,41.81],[1960,42.44],[1961,43.07],[1962,43.71],[1963,44.35],[1964,45],[1965,45.65],[1966,46.3],[1967,46.94],[1968,47.57],[1969,48.19],[1970,48.82],[1971,49.47],[1972,50.14],[1973,50.83],[1974,51.54],[1975,52.24],[1976,52.92],[1977,53.55],[1978,54.13],[1979,54.65],[1980,55.11],[1981,55.51],[1982,55.88],[1983,56.22],[1984,56.55],[1985,56.86],[1986,57.16],[1987,57.44],[1988,57.7],[1989,57.95],[1990,58.2],[1991,58.45],[1992,58.72],[1993,59],[1994,59.3],[1995,59.62],[1996,59.95],[1997,60.28],[1998,60.61],[1999,60.94],[2000,61.26],[2001,61.56],[2002,61.86],[2003,62.15],[2004,62.45],[2005,62.74],[2006,63.04],[2007,63.35],[2008,63.68],[2009,64.01]]},{"name":"Maldives","region":"South Asia","income":[[1800,472.12],[1820,472.12],[1950,457.04],[1970,699.73],[1971,719.24],[1972,719.32],[1973,713.06],[1974,735.04],[1975,658.84],[1976,645.16],[1977,698.04],[1978,778.18],[1979,836.67],[1980,963.7],[1981,1046.14],[1982,985.5],[1983,1112.25],[1984,1369.88],[1985,1500.14],[1986,1588.81],[1987,1674.2],[1988,1761.8],[1989,1863.84],[1990,2099.77],[1991,2192.57],[1992,2261.8],[1993,2334.22],[1994,2424.26],[1995,2533.7],[1996,2696.2],[1997,2945.77],[1998,3159.42],[1999,3345.16],[2000,3433.5],[2001,3488.21],[2002,3643.83],[2003,3919.91],[2004,4296.72],[2005,4017],[2006,4598.79],[2007,4931.92],[2008,5240.39],[2009,5081.79]],"population":[[1800,42378],[1820,42378],[1911,72000],[1921,70000],[1931,79000],[1946,82000],[1950,79293],[1951,78614],[1952,77940],[1953,77273],[1954,78684],[1955,80121],[1956,81585],[1957,83075],[1958,87582],[1959,89290],[1960,92247],[1961,92793],[1962,92744],[1963,94527],[1964,94244],[1965,97769],[1966,100937],[1967,103810],[1968,107000],[1969,110810],[1970,114572],[1971,118880],[1972,122681],[1973,125665],[1974,128722],[1975,132608],[1976,136604],[1977,140721],[1978,144875],[1979,149280],[1980,153957],[1981,158926],[1982,164210],[1983,169830],[1984,175800],[1985,181749],[1986,188125],[1987,194783],[1988,201721],[1989,208931],[1990,216401],[1991,224107],[1992,232026],[1993,240147],[1994,248459],[1995,256949],[1996,265592],[1997,274366],[1998,283271],[1999,292307],[2000,301475],[2001,310764],[2002,320165],[2003,329684],[2004,339330],[2005,349106],[2006,359008],[2007,369031],[2008,379174]],"lifeExpectancy":[[1950,37.63],[1951,37.94],[1952,38.57],[1953,39.19],[1954,39.82],[1955,40.44],[1956,41.07],[1957,41.7],[1958,42.32],[1959,42.95],[1960,43.58],[1961,44.21],[1962,44.84],[1963,45.47],[1964,46.1],[1965,46.73],[1966,47.36],[1967,47.98],[1968,48.61],[1969,49.24],[1970,49.87],[1971,50.51],[1972,51.15],[1973,51.79],[1974,52.42],[1975,53.06],[1976,53.67],[1977,54.27],[1978,54.84],[1979,55.38],[1980,55.91],[1981,56.43],[1982,56.95],[1983,57.47],[1984,57.99],[1985,58.48],[1986,58.94],[1987,59.33],[1988,59.67],[1989,59.96],[1990,60.23],[1991,60.49],[1992,60.78],[1993,61.13],[1994,61.55],[1995,62.07],[1996,62.71],[1997,63.44],[1998,64.26],[1999,65.13],[2000,66.04],[2001,66.94],[2002,67.81],[2003,68.62],[2004,69.35],[2005,70],[2006,70.56],[2007,71.07],[2008,71.52],[2009,71.94]]},{"name":"Nepal","region":"South Asia","income":[[1800,419.18],[1820,419.18],[1870,419.09],[1913,568.94],[1950,523.98],[1951,533.44],[1952,545.87],[1953,573.1],[1954,579.1],[1955,584.46],[1956,604.31],[1957,597.94],[1958,624.64],[1959,634.84],[1960,640.8],[1961,647.14],[1962,652.4],[1963,657.22],[1964,661.37],[1965,665.64],[1966,699.91],[1967,676.44],[1968,668.49],[1969,685.31],[1970,689.73],[1971,668.18],[1972,674.79],[1973,656.98],[1974,683],[1975,677.24],[1976,690.36],[1977,694.11],[1978,706.97],[1979,705.92],[1980,672.3],[1981,655.45],[1982,718.37],[1983,679.89],[1984,727.02],[1985,752.59],[1986,765.17],[1987,775.63],[1988,815.81],[1989,813.76],[1990,852.69],[1991,884.4],[1992,897.74],[1993,909.05],[1994,959.49],[1995,968.55],[1996,995.5],[1997,1010.89],[1998,1005.27],[1999,1014.02],[2000,1054.79],[2001,1085.11],[2002,1057.21],[2003,1065.44],[2004,1079.3],[2005,1081],[2006,1106.58],[2007,1132.53],[2008,1181.59],[2009,1224.73]],"population":[[1800,3881000],[1820,3881000],[1850,4352000],[1870,4698000],[1890,5192000],[1900,5283000],[1913,5639000],[1950,8989915],[1951,9085715],[1952,9182536],[1953,9280389],[1954,9379284],[1955,9479233],[1956,9580247],[1957,9682338],[1958,9788923],[1959,9906107],[1960,10034723],[1961,10176198],[1962,10332057],[1963,10500330],[1964,10677158],[1965,10862394],[1966,11057476],[1967,11261690],[1968,11473118],[1969,11692022],[1970,11918678],[1971,12154648],[1972,12412593],[1973,12684751],[1974,12972880],[1975,13278095],[1976,13599104],[1977,13933198],[1978,14280079],[1979,14640898],[1980,15016477],[1981,15402612],[1982,15796314],[1983,16199649],[1984,16613359],[1985,17037772],[1986,17472236],[1987,17917180],[1988,18374009],[1989,18843260],[1990,19325207],[1991,19818809],[1992,20326209],[1993,20845700],[1994,21372585],[1995,21907276],[1996,22450069],[1997,23001113],[1998,23560320],[1999,24127391],[2000,24702119],[2001,25284463],[2002,25873917],[2003,26469569],[2004,27070666],[2005,27676547],[2006,28287147],[2007,28901790],[2008,29519114]],"lifeExpectancy":[[1800,32.8],[1945,32.8],[1950,35.6],[1951,35.74],[1952,36.02],[1953,36.31],[1954,36.61],[1955,36.9],[1956,37.21],[1957,37.51],[1958,37.82],[1959,38.14],[1960,38.47],[1961,38.81],[1962,39.16],[1963,39.53],[1964,39.92],[1965,40.32],[1966,40.75],[1967,41.19],[1968,41.66],[1969,42.13],[1970,42.63],[1971,43.14],[1972,43.66],[1973,44.2],[1974,44.74],[1975,45.3],[1976,45.85],[1977,46.41],[1978,46.98],[1979,47.54],[1980,48.11],[1981,48.69],[1982,49.27],[1983,49.85],[1984,50.45],[1985,51.04],[1986,51.63],[1987,52.2],[1988,52.77],[1989,53.34],[1990,53.92],[1991,54.54],[1992,55.2],[1993,55.91],[1994,56.67],[1995,57.47],[1996,58.32],[1997,59.18],[1998,60.03],[1999,60.87],[2000,61.69],[2001,62.47],[2002,63.23],[2003,63.95],[2004,64.63],[2005,65.25],[2006,65.81],[2007,66.31],[2008,66.74],[2009,67.12]]},{"name":"Pakistan","region":"South Asia","income":[[1800,666],[1820,662],[1821,662],[1822,662],[1823,662],[1824,662],[1825,662],[1826,662],[1827,662],[1828,662],[1829,662],[1830,662],[1831,662],[1832,662],[1833,662],[1834,662],[1835,662],[1836,662],[1837,662],[1838,662],[1839,662],[1840,662],[1841,662],[1842,662],[1843,662],[1844,662],[1845,662],[1846,662],[1847,662],[1848,662],[1849,662],[1850,662],[1851,662],[1852,662],[1853,662],[1854,662],[1855,662],[1856,662],[1857,662],[1858,662],[1859,662],[1860,662],[1861,662],[1862,662],[1863,662],[1864,662],[1865,662],[1866,662],[1867,662],[1868,662],[1869,662],[1870,662],[1871,664],[1872,665],[1873,667],[1874,668],[1875,670],[1876,671],[1877,673],[1878,675],[1879,676],[1880,678],[1881,679],[1882,681],[1883,682],[1884,684],[1885,704],[1886,681],[1887,710],[1888,715],[1889,695],[1890,726],[1891,658],[1892,709],[1893,726],[1894,736],[1895,717],[1896,663],[1897,782],[1898,783],[1899,720],[1900,744],[1901,755],[1902,813],[1903,820],[1904,819],[1905,799],[1906,817],[1907,763],[1908,769],[1909,869],[1910,865],[1911,858],[1912,856],[1913,835],[1914,880],[1915,858],[1916,882],[1917,865],[1918,754],[1919,857],[1920,789],[1921,844],[1922,871],[1923,834],[1924,866],[1925,867],[1926,886],[1927,877],[1928,877],[1929,904],[1930,901],[1931,883],[1932,881],[1933,869],[1934,865],[1935,845],[1936,866],[1937,840],[1938,830],[1939,837],[1940,853],[1941,858],[1942,844],[1943,867],[1944,848],[1945,825],[1946,772],[1947,767],[1948,766],[1949,776],[1950,739],[1951,698],[1952,685],[1953,733],[1954,732],[1955,730],[1956,734],[1957,747],[1958,739],[1959,728],[1960,744],[1961,769],[1962,803],[1963,831],[1964,871],[1965,886],[1966,933],[1967,942],[1968,982],[1969,1018],[1970,1094],[1971,1070],[1972,1050],[1973,1096],[1974,1106],[1975,1124],[1976,1156],[1977,1176],[1978,1241],[1979,1250],[1980,1334],[1981,1388],[1982,1443],[1983,1497],[1984,1519],[1985,1609],[1986,1661],[1987,1705],[1988,1761],[1989,1794],[1990,1826],[1991,1875],[1992,1972],[1993,1967],[1994,1991],[1995,2038],[1996,2081],[1997,2049],[1998,2050],[1999,2073],[2000,2086],[2001,2069],[2002,2093],[2003,2153],[2004,2270],[2005,2396],[2006,2497],[2007,2591],[2008,2598],[2009,2603]],"population":[[1820,13651000],[1870,16090000],[1913,20008000],[1929,22812000],[1941,28169000],[1946,32683000],[1950,39448232],[1951,40382206],[1952,41346560],[1953,42342412],[1954,43372063],[1955,44434445],[1956,45535711],[1957,46679944],[1958,47868932],[1959,49104112],[1960,50386898],[1961,51718581],[1962,53100671],[1963,54524471],[1964,55988385],[1965,57494940],[1966,59046203],[1967,60641899],[1968,62282496],[1969,63969987],[1970,65705964],[1971,67491369],[1972,69325921],[1973,71121085],[1974,72911780],[1975,74711541],[1976,76456121],[1977,78152686],[1978,80051300],[1979,82374302],[1980,85219117],[1981,88417079],[1982,91462088],[1983,94147312],[1984,96489872],[1985,99060352],[1986,102046668],[1987,105186881],[1988,108384014],[1989,111502409],[1990,114578478],[1991,117653767],[1992,120065004],[1993,122487513],[1994,125491984],[1995,128690285],[1996,132146638],[1997,135564834],[1998,139007774],[1999,142461389],[2000,146342958],[2001,150334765],[2002,153403524],[2003,156127453],[2004,159196336],[2005,162419946],[2006,165803560],[2007,169270617],[2008,172730891]],"lifeExpectancy":[[1800,25.9],[1916,25.9],[1921,20.13],[1931,26.75],[1941,31.76],[1945,22.8],[1950,45.63],[1951,45.81],[1952,46.18],[1953,46.55],[1954,46.93],[1955,47.31],[1956,47.7],[1957,48.1],[1958,48.51],[1959,48.94],[1960,49.38],[1961,49.85],[1962,50.34],[1963,50.85],[1964,51.38],[1965,51.91],[1966,52.44],[1967,52.94],[1968,53.41],[1969,53.84],[1970,54.24],[1971,54.63],[1972,55],[1973,55.38],[1974,55.76],[1975,56.13],[1976,56.49],[1977,56.83],[1978,57.15],[1979,57.44],[1980,57.71],[1981,57.97],[1982,58.24],[1983,58.51],[1984,58.8],[1985,59.1],[1986,59.4],[1987,59.7],[1988,59.99],[1989,60.28],[1990,60.56],[1991,60.85],[1992,61.14],[1993,61.46],[1994,61.79],[1995,62.13],[1996,62.49],[1997,62.85],[1998,63.21],[1999,63.56],[2000,63.91],[2001,64.25],[2002,64.58],[2003,64.91],[2004,65.23],[2005,65.55],[2006,65.88],[2007,66.2],[2008,66.52],[2009,66.84]]},{"name":"Sri Lanka","region":"South Asia","income":[[1800,453.6],[1820,453.6],[1850,465.1],[1870,702.32],[1871,682.16],[1872,647.27],[1873,650.3],[1874,639.05],[1875,643.92],[1876,650.63],[1877,654.17],[1878,591.99],[1879,634.77],[1880,685.1],[1881,731.41],[1882,771.49],[1883,776.58],[1884,746.19],[1885,694.79],[1886,668.39],[1887,779.57],[1888,759.89],[1889,743.68],[1890,862.16],[1891,855.2],[1892,867.93],[1893,868.21],[1894,860.58],[1895,894.97],[1896,897.5],[1897,928.02],[1898,963.32],[1899,1017.61],[1900,1064.45],[1901,983.09],[1902,969.58],[1903,1010.89],[1904,1002.44],[1905,972.46],[1906,982],[1907,1017.33],[1908,1007.41],[1909,951.02],[1910,996.49],[1911,957.04],[1912,954.05],[1913,1018.14],[1914,997.97],[1915,937.41],[1916,967.28],[1917,1004.45],[1918,913.55],[1919,962.2],[1920,900.8],[1921,873.58],[1922,896.22],[1923,879.03],[1924,930.21],[1925,979.1],[1926,1044.63],[1927,1040.61],[1928,1036.82],[1929,1101.67],[1930,1043.6],[1931,992.24],[1932,941.2],[1933,948.68],[1934,1039.14],[1935,976.68],[1936,968.98],[1937,1028.34],[1938,1010.76],[1939,978.52],[1940,1031.87],[1941,1053.03],[1942,1091.12],[1943,1059.3],[1944,952.32],[1945,920.42],[1946,866.43],[1947,885.51],[1948,956.2],[1949,989.11],[1950,1033.5],[1951,1066.73],[1952,1083.53],[1953,1072.41],[1954,1070.87],[1955,1104.57],[1956,1084.42],[1957,1072.55],[1958,1076.23],[1959,1063.15],[1960,1072.21],[1961,1064.79],[1962,1074.47],[1963,1069.52],[1964,1094.23],[1965,1102.42],[1966,1064.71],[1967,1135.51],[1968,1192.5],[1969,1213.16],[1970,1244.91],[1971,1210.75],[1972,1213.4],[1973,1240.69],[1974,1261.62],[1975,1270.97],[1976,1287.13],[1977,1348.78],[1978,1407.65],[1979,1471.17],[1980,1525.22],[1981,1595.28],[1982,1648.08],[1983,1709.46],[1984,1771.43],[1985,1821.76],[1986,1885.81],[1987,1876.77],[1988,1898.77],[1989,1922.06],[1990,2019.4],[1991,2088.24],[1992,2153.74],[1993,2271.55],[1994,2365.6],[1995,2464.51],[1996,2529.76],[1997,2664.48],[1998,2762.24],[1999,2853.81],[2000,2997.69],[2001,2925.52],[2002,3015.38],[2003,3166.6],[2004,3310.2],[2005,3481],[2006,3718.72],[2007,3940.58],[2008,4142.53],[2009,4254.13]],"population":[[1800,1213000],[1820,1213000],[1850,2217000],[1870,2786000],[1871,2820000],[1872,2842000],[1873,2863000],[1874,2885000],[1875,2908000],[1876,2930000],[1877,2952000],[1878,2975000],[1879,2998000],[1880,3021000],[1881,3044000],[1882,3073000],[1883,3107000],[1884,3144000],[1885,3170000],[1886,3194000],[1887,3221000],[1888,3261000],[1889,3311000],[1890,3343000],[1891,3404000],[1892,3470000],[1893,3524000],[1894,3584000],[1895,3626000],[1896,3693000],[1897,3752000],[1898,3820000],[1899,3874000],[1900,3912000],[1901,4031000],[1902,4071000],[1903,4156000],[1904,4233000],[1905,4383000],[1906,4458000],[1907,4467000],[1908,4520000],[1909,4585000],[1910,4668000],[1911,4757000],[1912,4784000],[1913,4811000],[1914,4838000],[1915,4905000],[1916,4971000],[1917,5040000],[1918,5109000],[1919,5179000],[1920,5250000],[1921,5304000],[1922,5367000],[1923,5426000],[1924,5452000],[1925,5505000],[1926,5545000],[1927,5591000],[1928,5730000],[1929,5669000],[1930,5707000],[1931,5748000],[1932,5788000],[1933,5825000],[1934,5872000],[1935,5897000],[1936,5943000],[1937,5989000],[1938,6045000],[1939,6095000],[1940,6134000],[1941,6169000],[1942,6191000],[1943,6296000],[1944,6442000],[1945,6650000],[1946,6854000],[1947,7037000],[1948,7244000],[1949,7455000],[1950,7533097],[1951,7752374],[1952,7982342],[1953,8221291],[1954,8457223],[1955,8678721],[1956,8898480],[1957,9128546],[1958,9361755],[1959,9609556],[1960,9879178],[1961,10151799],[1962,10421936],[1963,10686957],[1964,10942373],[1965,11202264],[1966,11469679],[1967,11737396],[1968,12010095],[1969,12275330],[1970,12531522],[1971,12776057],[1972,13016733],[1973,13245615],[1974,13449623],[1975,13660275],[1976,13887354],[1977,14116836],[1978,14370898],[1979,14648618],[1980,14900181],[1981,15151762],[1982,15410151],[1983,15618275],[1984,15810021],[1985,16020699],[1986,16256077],[1987,16495304],[1988,16734716],[1989,16970982],[1990,17192896],[1991,17390974],[1992,17587060],[1993,17825536],[1994,18075443],[1995,18304268],[1996,18509760],[1997,18698655],[1998,18884614],[1999,19064642],[2000,19238575],[2001,19408635],[2002,19576783],[2003,19742439],[2004,19905165],[2005,20064776],[2006,20222240],[2007,20378239],[2008,20532150]],"lifeExpectancy":[[1800,32.6],[1901,32.6],[1911,29.9],[1921,32],[1935,46.3],[1940,45.2],[1946,45.8],[1948,54],[1949,55.5],[1950,51.36],[1951,51.86],[1952,52.81],[1953,53.67],[1954,54.45],[1955,55.14],[1956,55.74],[1957,56.27],[1958,56.73],[1959,57.14],[1960,57.51],[1961,57.87],[1962,58.24],[1963,58.64],[1964,59.09],[1965,59.58],[1966,60.14],[1967,60.72],[1968,61.33],[1969,61.95],[1970,62.57],[1971,63.16],[1972,63.73],[1973,64.26],[1974,64.76],[1975,65.25],[1976,65.73],[1977,66.24],[1978,66.76],[1979,67.3],[1980,67.8],[1981,68.23],[1982,68.55],[1983,68.76],[1984,68.85],[1985,68.87],[1986,68.88],[1987,68.92],[1988,69.03],[1989,69.21],[1990,69.42],[1991,69.6],[1992,69.69],[1993,69.67],[1994,69.56],[1995,69.43],[1996,69.38],[1997,69.48],[1998,69.79],[1999,70.29],[2000,70.95],[2001,71.67],[2002,72.35],[2003,72.93],[2004,73.37],[2005,73.66],[2006,73.85],[2007,73.97],[2008,74.1],[2009,74.24]]},{"name":"Algeria","region":"Middle East & North Africa","income":[[1800,766.25],[1820,765.88],[1870,1272.76],[1913,2070.76],[1950,2429.21],[1951,2397.53],[1952,2449.01],[1953,2436.34],[1954,2557.82],[1955,2572.47],[1956,2764.42],[1957,3013.98],[1958,3059.58],[1959,3548.42],[1960,3716.79],[1961,3202.96],[1962,2550.82],[1963,3146.58],[1964,3214.44],[1965,3327.99],[1966,3070.75],[1967,3246.99],[1968,3519.79],[1969,3747.74],[1970,4003.57],[1971,3559.35],[1972,4182.66],[1973,4194.6],[1974,4320.96],[1975,4489.03],[1976,4642.62],[1977,4910.42],[1978,5373.17],[1979,5682.03],[1980,5610.2],[1981,5573.38],[1982,5745.16],[1983,5853.66],[1984,5986.54],[1985,6107.18],[1986,5876.05],[1987,5681.36],[1988,5415.99],[1989,5457.75],[1990,5244.51],[1991,5061.3],[1992,5023.22],[1993,4800.32],[1994,4652.84],[1995,4732.43],[1996,4824.21],[1997,4797.3],[1998,4965.23],[1999,5048.62],[2000,5098.85],[2001,5156.45],[2002,5288.04],[2003,5576.85],[2004,5790.97],[2005,6011],[2006,5969.05],[2007,6040.89],[2008,6175.1],[2009,6207.17]],"population":[[1820,2689000],[1870,3776000],[1913,5497000],[1950,8892718],[1951,9073304],[1952,9279525],[1953,9531710],[1954,9611093],[1955,9841851],[1956,10057133],[1957,10270856],[1958,10484925],[1959,10696396],[1960,10909294],[1961,11121645],[1962,11000948],[1963,11272878],[1964,11612858],[1965,11963091],[1966,12339140],[1967,12760499],[1968,13146267],[1969,13528304],[1970,13931846],[1971,14335388],[1972,14760787],[1973,15197724],[1974,15653200],[1975,16140252],[1976,16634618],[1977,17152804],[1978,17685768],[1979,18229932],[1980,18806061],[1981,19407036],[1982,20033753],[1983,20680982],[1984,21340546],[1985,22008450],[1986,22642538],[1987,23254956],[1988,23883858],[1989,24500650],[1990,25093154],[1991,25689444],[1992,26298373],[1993,26914091],[1994,27517041],[1995,28082573],[1996,28595073],[1997,29072015],[1998,29521270],[1999,29962690],[2000,30409300],[2001,30851518],[2002,31287142],[2003,31713719],[2004,32129324],[2005,32531853],[2006,32930091],[2007,33333216],[2008,33739635]],"lifeExpectancy":[[1800,28.8],[1923,28.82],[1933,31.22],[1941,33.72],[1943,33.72],[1945,33.72],[1950,42.02],[1951,42.29],[1952,42.82],[1953,43.34],[1954,43.87],[1955,44.38],[1956,44.9],[1957,45.41],[1958,45.92],[1959,46.43],[1960,46.96],[1961,47.49],[1962,48.04],[1963,48.62],[1964,49.21],[1965,49.82],[1966,50.44],[1967,51.06],[1968,51.68],[1969,52.31],[1970,52.93],[1971,53.57],[1972,54.21],[1973,54.88],[1974,55.56],[1975,56.24],[1976,56.93],[1977,57.61],[1978,58.28],[1979,58.95],[1980,59.63],[1981,60.35],[1982,61.13],[1983,61.96],[1984,62.82],[1985,63.69],[1986,64.53],[1987,65.3],[1988,65.97],[1989,66.54],[1990,67],[1991,67.36],[1992,67.67],[1993,67.94],[1994,68.2],[1995,68.47],[1996,68.75],[1997,69.06],[1998,69.38],[1999,69.73],[2000,70.08],[2001,70.44],[2002,70.79],[2003,71.12],[2004,71.42],[2005,71.7],[2006,71.96],[2007,72.2],[2008,72.44],[2009,72.67]]},{"name":"Bahrain","region":"Middle East & North Africa","income":[[1800,808.99],[1820,812.82],[1913,1394.65],[1934,1575.47],[1950,9158.27],[1951,9508.37],[1952,9867.08],[1953,10230.37],[1954,10599.69],[1955,10957.17],[1956,11308.31],[1957,11635.8],[1958,11921.78],[1959,12169.79],[1960,12373.91],[1961,12543.97],[1962,12753.28],[1963,13030.13],[1964,13372.47],[1965,13810.42],[1966,14286.48],[1967,14804.67],[1968,15319.7],[1969,15864.95],[1970,16484.34],[1971,17331.76],[1972,18268.66],[1973,19043.08],[1974,19904.55],[1975,17069.07],[1976,18770.21],[1977,19340.1],[1978,19212.87],[1979,18373.37],[1980,19096.98],[1981,18770.08],[1982,19211.15],[1983,19765.09],[1984,19830.06],[1985,19035.18],[1986,18782.87],[1987,18524.02],[1988,18571.21],[1989,18431.74],[1990,17860.39],[1991,18146.86],[1992,19035.58],[1993,20065.77],[1994,19499.26],[1995,19759.06],[1996,20101.55],[1997,20292.02],[1998,20834.14],[1999,21317.72],[2000,22015.32],[2001,22630.44],[2002,23403.56],[2003,24686.46],[2004,25659.68],[2005,27236],[2006,28478.46],[2007,30173.04],[2008,31391.38],[2009,24226.51]],"population":[[1800,64474],[1820,64474],[1870,64474],[1913,81882],[1950,114840],[1951,117580],[1952,120447],[1953,123469],[1954,126708],[1955,130253],[1956,134207],[1957,138655],[1958,143798],[1959,149769],[1960,156648],[1961,164334],[1962,171863],[1963,179108],[1964,185691],[1965,191378],[1966,196706],[1967,202182],[1968,207811],[1969,213596],[1970,219543],[1971,225375],[1972,230800],[1973,238977],[1974,248343],[1975,258789],[1976,273661],[1977,297410],[1978,322535],[1979,336070],[1980,347568],[1981,363427],[1982,377967],[1983,393022],[1984,408282],[1985,423950],[1986,439556],[1987,454612],[1988,469484],[1989,484791],[1990,500476],[1991,515234],[1992,529491],[1993,543998],[1994,558397],[1995,572639],[1996,586047],[1997,598561],[1998,610767],[1999,622634],[2000,634137],[2001,645361],[2002,656397],[2003,667238],[2004,677886],[2005,688345],[2006,698585],[2007,708573],[2008,718306]],"lifeExpectancy":[[1800,30.3],[1935,30.3],[1950,49.84],[1951,50.11],[1952,50.65],[1953,51.2],[1954,51.77],[1955,52.35],[1956,52.93],[1957,53.53],[1958,54.14],[1959,54.75],[1960,55.36],[1961,55.97],[1962,56.58],[1963,57.19],[1964,57.79],[1965,58.4],[1966,59.02],[1967,59.66],[1968,60.32],[1969,60.99],[1970,61.66],[1971,62.3],[1972,62.89],[1973,63.44],[1974,63.95],[1975,64.43],[1976,64.93],[1977,65.47],[1978,66.06],[1979,66.69],[1980,67.35],[1981,68],[1982,68.61],[1983,69.14],[1984,69.6],[1985,70],[1986,70.34],[1987,70.68],[1988,71.02],[1989,71.37],[1990,71.73],[1991,72.1],[1992,72.46],[1993,72.79],[1994,73.09],[1995,73.36],[1996,73.61],[1997,73.82],[1998,74.02],[1999,74.21],[2000,74.38],[2001,74.56],[2002,74.72],[2003,74.89],[2004,75.06],[2005,75.23],[2006,75.4],[2007,75.57],[2008,75.73],[2009,75.88]]},{"name":"Djibouti","region":"Middle East & North Africa","income":[[1800,380.73],[1820,380.73],[1913,588.26],[1950,2576.1],[1951,2655.01],[1952,2669.53],[1953,2705.48],[1954,2786.75],[1955,2803.23],[1956,2836.84],[1957,2864.97],[1958,2859.64],[1959,2939.93],[1960,3043.2],[1961,3063.21],[1962,3020.99],[1963,3047.41],[1964,3019.73],[1965,3013.92],[1966,3025.89],[1967,3020.05],[1968,2999.58],[1969,2992.7],[1970,3554.43],[1971,3679.34],[1972,3694.21],[1973,3753.6],[1974,3573.21],[1975,3548.19],[1976,3700.95],[1977,3081.76],[1978,2961.74],[1979,2898.73],[1980,2853.84],[1981,2875.04],[1982,2879.47],[1983,2821.91],[1984,3094.98],[1985,3020.75],[1986,2949.02],[1987,2880.1],[1988,2742.92],[1989,2580.68],[1990,2487.04],[1991,2438.6],[1992,2377.16],[1993,2231.57],[1994,2159.36],[1995,2052.06],[1996,1927.09],[1997,1895.02],[1998,1875.74],[1999,1901.12],[2000,1894.04],[2001,1899.26],[2002,1908.26],[2003,1931.6],[2004,1942.69],[2005,1964],[2006,2008.4],[2007,2058.87],[2008,2125.61],[2009,2176.79]],"population":[[1800,22848],[1820,22848],[1950,60036],[1951,61572],[1952,63149],[1953,64768],[1954,66431],[1955,68137],[1956,69892],[1957,71851],[1958,73986],[1959,76174],[1960,78417],[1961,83913],[1962,89898],[1963,96376],[1964,103354],[1965,110840],[1966,118886],[1967,127617],[1968,137047],[1969,147181],[1970,158034],[1971,168600],[1972,178848],[1973,188750],[1974,198279],[1975,207959],[1976,217219],[1977,228694],[1978,247883],[1979,263409],[1980,279149],[1981,293659],[1982,305991],[1983,316123],[1984,289431],[1985,296544],[1986,303756],[1987,311025],[1988,326580],[1989,349928],[1990,366088],[1991,375227],[1992,384156],[1993,393258],[1994,402548],[1995,409366],[1996,413627],[1997,417908],[1998,422202],[1999,426507],[2000,430822],[2001,437778],[2002,447416],[2003,457130],[2004,466900],[2005,476703],[2006,486530],[2007,496374],[2008,506221]],"lifeExpectancy":[[1800,29.9],[1945,29.9],[1950,33.76],[1951,34.03],[1952,34.56],[1953,35.08],[1954,35.59],[1955,36.1],[1956,36.59],[1957,37.08],[1958,37.57],[1959,38.05],[1960,38.52],[1961,38.99],[1962,39.47],[1963,39.94],[1964,40.42],[1965,40.89],[1966,41.37],[1967,41.84],[1968,42.31],[1969,42.78],[1970,43.24],[1971,43.69],[1972,44.15],[1973,44.59],[1974,45.03],[1975,45.47],[1976,45.9],[1977,46.33],[1978,46.75],[1979,47.17],[1980,47.58],[1981,47.98],[1982,48.35],[1983,48.7],[1984,49.04],[1985,49.35],[1986,49.65],[1987,49.94],[1988,50.23],[1989,50.52],[1990,50.82],[1991,51.14],[1992,51.47],[1993,51.81],[1994,52.16],[1995,52.5],[1996,52.8],[1997,53.06],[1998,53.27],[1999,53.44],[2000,53.57],[2001,53.7],[2002,53.83],[2003,54],[2004,54.2],[2005,54.46],[2006,54.75],[2007,55.08],[2008,55.42],[2009,55.78]]},{"name":"Iraq","region":"Middle East & North Africa","income":[[1800,700],[1820,700],[1821,706.73],[1822,713.53],[1823,720.39],[1824,727.32],[1825,734.31],[1826,741.37],[1827,748.5],[1828,755.7],[1829,762.97],[1830,770.3],[1831,777.71],[1832,785.19],[1833,792.74],[1834,800.36],[1835,808.06],[1836,815.83],[1837,823.68],[1838,831.6],[1839,839.6],[1840,847.67],[1841,855.82],[1842,864.05],[1843,872.36],[1844,880.75],[1845,889.22],[1846,897.77],[1847,906.4],[1848,915.12],[1849,923.92],[1850,932.8],[1851,941.77],[1852,950.83],[1853,959.98],[1854,969.21],[1855,978.53],[1856,987.94],[1857,997.44],[1858,1007.03],[1859,1016.71],[1860,1026.49],[1861,1036.36],[1862,1046.33],[1863,1056.39],[1864,1066.55],[1865,1076.8],[1866,1087.16],[1867,1097.61],[1868,1108.17],[1869,1118.83],[1870,1129.59],[1871,1144.63],[1872,1159.87],[1873,1175.32],[1874,1190.97],[1875,1206.84],[1876,1222.91],[1877,1239.2],[1878,1255.7],[1879,1272.42],[1880,1289.37],[1881,1306.54],[1882,1323.94],[1883,1341.58],[1884,1359.44],[1885,1377.55],[1886,1395.9],[1887,1414.49],[1888,1433.33],[1889,1452.42],[1890,1471.76],[1891,1491.36],[1892,1511.22],[1893,1531.35],[1894,1551.74],[1895,1572.41],[1896,1593.35],[1897,1614.57],[1898,1636.08],[1899,1657.87],[1900,1679.95],[1901,1702.32],[1902,1724.99],[1903,1747.97],[1904,1771.25],[1905,1794.84],[1906,1818.74],[1907,1842.96],[1908,1867.51],[1909,1892.38],[1910,1917.58],[1911,1943.12],[1912,1969],[1913,1995.22],[1914,2023.23],[1915,2051.63],[1916,2080.43],[1917,2109.64],[1918,2139.25],[1919,2169.28],[1920,2199.73],[1921,2230.61],[1922,2261.93],[1923,2293.68],[1924,2325.88],[1925,2358.52],[1926,2391.63],[1927,2425.21],[1928,2459.25],[1929,2493.77],[1930,2528.78],[1931,2564.28],[1932,2600.27],[1933,2636.77],[1934,2673.79],[1935,2711.32],[1936,2749.38],[1937,2787.98],[1938,2827.11],[1939,2866.8],[1940,2907.04],[1941,2947.85],[1942,2989.23],[1943,3031.19],[1944,3073.74],[1945,3116.89],[1946,3160.64],[1947,3205.01],[1948,3250],[1949,3295.62],[1950,3341.89],[1951,3562.05],[1952,3857.31],[1953,5305.47],[1954,6172.51],[1955,5791.49],[1956,6054.16],[1957,5859.83],[1958,6388.15],[1959,6500.84],[1960,7086.01],[1961,7714.63],[1962,7902.87],[1963,7565.25],[1964,8253.13],[1965,8758.22],[1966,8969.67],[1967,8521.87],[1968,9761.33],[1969,9816.71],[1970,9511.46],[1971,9823.3],[1972,9202.01],[1973,10452.87],[1974,10711.67],[1975,12152.33],[1976,14224.37],[1977,14215.14],[1978,16303],[1979,19452.15],[1980,18465.74],[1981,14677.56],[1982,14150.44],[1983,12567.34],[1984,12243.9],[1985,11706.94],[1986,11252.93],[1987,11429.75],[1988,8801.59],[1989,7824.67],[1990,7525.13],[1991,2913.94],[1992,3703.06],[1993,3613.88],[1994,3350.26],[1995,2973.04],[1996,3264.74],[1997,3062.95],[1998,3438.69],[1999,3643.97],[2000,3951.74],[2001,4209.66],[2002,4402.9],[2003,3366.63],[2004,3293.16],[2005,3200],[2006,3299.56],[2007,3254.5],[2008,3467.12],[2009,3518.18]],"population":[[1820,1093000],[1870,1580000],[1913,2613000],[1950,5163443],[1951,5299983],[1952,5441766],[1953,5589018],[1954,5742552],[1955,5903253],[1956,6073493],[1957,6248643],[1958,6433104],[1959,6624713],[1960,6822030],[1961,7026278],[1962,7240260],[1963,7468223],[1964,7711071],[1965,7970746],[1966,8240451],[1967,8519282],[1968,8807547],[1969,9105567],[1970,9413671],[1971,9732199],[1972,10061506],[1973,10401956],[1974,10753925],[1975,11117804],[1976,11493995],[1977,11882916],[1978,12317137],[1979,12768376],[1980,13232839],[1981,13703103],[1982,14173318],[1983,14652218],[1984,15160546],[1985,15693620],[1986,16247340],[1987,16543189],[1988,17038084],[1989,17568414],[1990,18134702],[1991,17471586],[1992,17861905],[1993,18404698],[1994,18969505],[1995,19557247],[1996,20161940],[1997,20775703],[1998,21397764],[1999,22031349],[2000,22675617],[2001,23331985],[2002,24001816],[2003,24683313],[2004,25374691],[2005,26074906],[2006,26783383],[2007,27499638],[2008,28221181]],"lifeExpectancy":[[1800,31.2],[1940,31.2],[1950,40.04],[1951,40.62],[1952,41.77],[1953,42.89],[1954,44],[1955,45.08],[1956,46.13],[1957,47.17],[1958,48.18],[1959,49.17],[1960,50.13],[1961,51.07],[1962,51.99],[1963,52.87],[1964,53.73],[1965,54.54],[1966,55.32],[1967,56.06],[1968,56.75],[1969,57.39],[1970,57.98],[1971,58.5],[1972,58.95],[1973,59.35],[1974,59.68],[1975,59.97],[1976,60.21],[1977,60.42],[1978,60.61],[1979,60.81],[1980,61],[1981,61.21],[1982,61.42],[1983,61.66],[1984,61.92],[1985,62.21],[1986,62.54],[1987,62.91],[1988,63.33],[1989,63.79],[1990,64.36],[1991,65.06],[1992,65.9],[1993,66.85],[1994,67.88],[1995,68.89],[1996,69.8],[1997,70.54],[1998,71.04],[1999,71.28],[2000,71.24],[2001,70.92],[2002,70.4],[2003,69.77],[2004,69.1],[2005,68.5],[2006,68.06],[2007,67.84],[2008,67.86],[2009,68.1]]},{"name":"Israel","region":"Middle East & North Africa","income":[[1800,882.54],[1820,886.71],[1913,1521.43],[1950,3800.93],[1951,4261.85],[1952,4086.52],[1953,3926.39],[1954,4552.49],[1955,4993.23],[1956,5208.06],[1957,5385.28],[1958,5543.32],[1959,6073.06],[1960,6291.25],[1961,6740.54],[1962,7105.63],[1963,7546.03],[1964,7981.81],[1965,8462.28],[1966,8351.32],[1967,8393.74],[1968,9488.73],[1969,10418.87],[1970,10928.84],[1971,11752.59],[1972,12786.93],[1973,13012.38],[1974,13525.4],[1975,13690.86],[1976,13587.56],[1977,13306.62],[1978,13659.85],[1979,14185.86],[1980,14819.26],[1981,15322.59],[1982,15367.03],[1983,15630.64],[1984,15462.57],[1985,15722.47],[1986,16227.05],[1987,17122.48],[1988,17187.12],[1989,17048.77],[1990,17495.15],[1991,17543.46],[1992,18051.52],[1993,18202.42],[1994,19299.93],[1995,20145.03],[1996,20644.52],[1997,20896.61],[1998,21113.01],[1999,21332.8],[2000,22834.93],[2001,22377.18],[2002,21905.6],[2003,22090.73],[2004,22930.28],[2005,23846],[2006,24667.09],[2007,25392],[2008,25839.31],[2009,25463.69]],"population":[[1800,209954],[1850,209954],[1860,227862],[1877,272230],[1878,275487],[1879,278796],[1880,282159],[1881,285577],[1882,289050],[1883,292581],[1884,296171],[1885,299820],[1886,303529],[1887,307301],[1888,311138],[1889,314897],[1890,318717],[1891,322595],[1892,326535],[1893,330540],[1894,334700],[1895,338923],[1896,343302],[1897,347747],[1898,352496],[1899,357320],[1900,362220],[1901,367198],[1902,372255],[1903,377392],[1904,382612],[1905,387914],[1906,393303],[1907,398779],[1908,404344],[1909,409998],[1910,415745],[1911,427524],[1912,433559],[1913,439694],[1914,445931],[1918,417858],[1922,455836],[1931,588805],[1932,611936],[1933,649925],[1934,689309],[1935,744301],[1936,775728],[1937,797281],[1938,816723],[1939,860556],[1940,889866],[1941,915868],[1942,940120],[1943,971687],[1944,1005926],[1945,1043684],[1946,1084877],[1950,1286131],[1951,1489998],[1952,1620914],[1953,1667098],[1954,1711647],[1955,1772032],[1956,1850059],[1957,1944401],[1958,2024772],[1959,2081592],[1960,2141495],[1961,2217050],[1962,2310904],[1963,2406662],[1964,2498199],[1965,2578184],[1966,2641123],[1967,2693585],[1968,2746986],[1969,2817051],[1970,2903434],[1971,2996919],[1972,3095893],[1973,3197411],[1974,3285761],[1975,3354242],[1976,3423635],[1977,3495918],[1978,3569780],[1979,3653480],[1980,3737473],[1981,3801338],[1982,3858421],[1983,3926893],[1984,4005301],[1985,4074965],[1986,4137141],[1987,4203148],[1988,4271530],[1989,4344042],[1990,4512068],[1991,4756279],[1992,4936550],[1993,5062136],[1994,5184895],[1995,5305120],[1996,5420065],[1997,5531387],[1998,5638981],[1999,5742719],[2000,5842454],[2001,5938093],[2002,6029529],[2003,6116533],[2004,6199008],[2005,6276883],[2006,6352117],[2007,6426679],[2008,6500389]],"lifeExpectancy":[[1950,64.17],[1951,64.5],[1952,65.13],[1953,65.72],[1954,66.26],[1955,66.76],[1956,67.22],[1957,67.64],[1958,68.03],[1959,68.38],[1960,68.7],[1961,69.01],[1962,69.3],[1963,69.58],[1964,69.86],[1965,70.12],[1966,70.37],[1967,70.6],[1968,70.81],[1969,71],[1970,71.19],[1971,71.37],[1972,71.57],[1973,71.79],[1974,72.04],[1975,72.31],[1976,72.6],[1977,72.9],[1978,73.19],[1979,73.49],[1980,73.77],[1981,74.05],[1982,74.31],[1983,74.82],[1984,75.11],[1985,75.44],[1986,75.27],[1987,75.65],[1988,76.01],[1989,76.61],[1990,77.08],[1991,76.93],[1992,76.8],[1993,77.39],[1994,77.64],[1995,77.62],[1996,78.23],[1997,78.12],[1998,78.29],[1999,78.57],[2000,78.75],[2001,79.16],[2002,79.15],[2003,79.5],[2004,79.96],[2005,80.02],[2006,80.37],[2007,80.46],[2008,80.84],[2009,81]]},{"name":"Jordan","region":"Middle East & North Africa","income":[[1800,528.69],[1820,528.69],[1870,643.58],[1913,896.29],[1950,1490.67],[1951,1519.55],[1952,1546.91],[1953,1574.41],[1954,1601.52],[1955,1456.61],[1956,1917.53],[1957,1886.08],[1958,1989.85],[1959,2050.05],[1960,2088.37],[1961,2406.72],[1962,2348.01],[1963,2374.59],[1964,2671.52],[1965,2853.28],[1966,2812.02],[1967,2741.8],[1968,2396.39],[1969,2485.4],[1970,2147.05],[1971,2120.34],[1972,2110.86],[1973,2140.76],[1974,2246.18],[1975,2315.09],[1976,2775.3],[1977,2852.35],[1978,3332.55],[1979,3512.68],[1980,4015.32],[1981,4035.5],[1982,4161.42],[1983,4083.58],[1984,4272.23],[1985,4261.3],[1986,4483.23],[1987,4448.68],[1988,4257.36],[1989,3677.47],[1990,3399.1],[1991,3124.26],[1992,3431.59],[1993,3524.17],[1994,3610.78],[1995,3732.14],[1996,3668.74],[1997,3645.38],[1998,3624.61],[1999,3626.38],[2000,3664.56],[2001,3742.83],[2002,3844.92],[2003,3894.25],[2004,4115.51],[2005,4294],[2006,4531.28],[2007,4829.01],[2008,5086.65],[2009,5109.39]],"population":[[1800,217000],[1820,217000],[1870,266000],[1913,348000],[1950,561254],[1951,584172],[1952,607914],[1953,632897],[1954,659275],[1955,686955],[1956,715991],[1957,746559],[1958,778683],[1959,812544],[1960,848515],[1961,886800],[1962,933559],[1963,974549],[1964,1017180],[1965,1061463],[1966,1107384],[1967,1255058],[1968,1382539],[1969,1453541],[1970,1502959],[1971,1556226],[1972,1613551],[1973,1674258],[1974,1737593],[1975,1802960],[1976,1869657],[1977,1937652],[1978,2006908],[1979,2077386],[1980,2162807],[1981,2253579],[1982,2347031],[1983,2439504],[1984,2532511],[1985,2627750],[1986,2724221],[1987,2820042],[1988,2916505],[1989,3018990],[1990,3262054],[1991,3630633],[1992,3867409],[1993,3984238],[1994,4082087],[1995,4201514],[1996,4363534],[1997,4526235],[1998,4685946],[1999,4842831],[2000,4998564],[2001,5153378],[2002,5307470],[2003,5460265],[2004,5611202],[2005,5759732],[2006,5906760],[2007,6053193],[2008,6198677]],"lifeExpectancy":[[1800,31.7],[1935,31.7],[1950,42.12],[1951,42.38],[1952,42.91],[1953,43.42],[1954,43.93],[1955,44.42],[1956,44.91],[1957,45.39],[1958,45.86],[1959,46.33],[1960,46.82],[1961,47.32],[1962,47.84],[1963,48.41],[1964,49.02],[1965,49.69],[1966,50.43],[1967,51.24],[1968,52.11],[1969,53.03],[1970,54],[1971,55],[1972,56.03],[1973,57.05],[1974,58.05],[1975,59],[1976,59.89],[1977,60.69],[1978,61.42],[1979,62.06],[1980,62.63],[1981,63.13],[1982,63.58],[1983,64.01],[1984,64.43],[1985,64.85],[1986,65.27],[1987,65.69],[1988,66.12],[1989,66.55],[1990,66.97],[1991,67.4],[1992,67.81],[1993,68.2],[1994,68.58],[1995,68.94],[1996,69.29],[1997,69.62],[1998,69.94],[1999,70.25],[2000,70.55],[2001,70.84],[2002,71.12],[2003,71.4],[2004,71.66],[2005,71.92],[2006,72.17],[2007,72.41],[2008,72.65],[2009,72.88]]},{"name":"Kuwait","region":"Middle East & North Africa","income":[[1800,661.9],[1820,665.03],[1913,1141.07],[1938,1319.3],[1950,104248.05],[1951,107493.38],[1952,108382.35],[1953,113211.88],[1954,119849.29],[1955,116444.4],[1956,118681.3],[1957,113523.13],[1958,107961.27],[1959,106738.9],[1960,104014.69],[1961,94263.18],[1962,95458.11],[1963,91444.07],[1964,91341.83],[1965,84952.11],[1966,86817.71],[1967,80894.88],[1968,80502.14],[1969,75675.71],[1970,110805.23],[1971,111654.83],[1972,109347.87],[1973,96344.51],[1974,79178.58],[1975,65562.34],[1976,65578.2],[1977,59265.48],[1978,59706.33],[1979,63804.61],[1980,47907.19],[1981,37146.48],[1982,31354.04],[1983,32366.58],[1984,32575.65],[1985,29473.68],[1986,30593.24],[1987,28118.43],[1988,27895.53],[1989,28764.51],[1990,22095.96],[1991,29268.87],[1992,34932.92],[1993,44804.87],[1994,46467.09],[1995,44959.08],[1996,41620.24],[1997,40300.62],[1998,38056.53],[1999,36011.27],[2000,36397.96],[2001,35249.64],[2002,35110.11],[2003,39560.79],[2004,42275.64],[2005,44947],[2006,44411.38],[2007,43774.85],[2008,44783.08],[2009,42443.53]],"population":[[1800,81280],[1820,81280],[1870,81280],[1913,103226],[1950,144774],[1951,152197],[1952,160000],[1953,168372],[1954,177181],[1955,186639],[1956,196601],[1957,212846],[1958,234855],[1959,262006],[1960,292229],[1961,325342],[1962,358266],[1963,394128],[1964,433233],[1965,476123],[1966,523259],[1967,575003],[1968,631802],[1969,690445],[1970,747502],[1971,793314],[1972,841934],[1973,893534],[1974,948296],[1975,1006892],[1976,1071549],[1977,1140357],[1978,1213584],[1979,1291514],[1980,1369769],[1981,1432188],[1982,1497494],[1983,1565822],[1984,1637314],[1985,1732824],[1986,1811489],[1987,1891487],[1988,1973148],[1989,2056779],[1990,2142011],[1991,954071],[1992,1418095],[1993,1483773],[1994,1551427],[1995,1620808],[1996,1692893],[1997,1765345],[1998,1835863],[1999,1905246],[2000,1973572],[2001,2041961],[2002,2111561],[2003,2183161],[2004,2257549],[2005,2335648],[2006,2418393],[2007,2505559],[2008,2596799]],"lifeExpectancy":[[1800,26],[1908,26],[1939,26],[1950,54.5],[1951,54.78],[1952,55.33],[1953,55.85],[1954,56.35],[1955,56.83],[1956,57.29],[1957,57.74],[1958,58.19],[1959,58.65],[1960,59.14],[1961,59.68],[1962,60.29],[1963,60.97],[1964,61.72],[1965,62.52],[1966,63.35],[1967,64.18],[1968,64.97],[1969,65.71],[1970,66.38],[1971,66.96],[1972,67.46],[1973,67.9],[1974,68.29],[1975,68.63],[1976,68.94],[1977,69.24],[1978,69.55],[1979,69.88],[1980,70.25],[1981,70.68],[1982,71.17],[1983,71.7],[1984,72.26],[1985,72.82],[1986,73.35],[1987,73.83],[1988,74.24],[1989,74.57],[1990,74.82],[1991,75.02],[1992,75.19],[1993,75.35],[1994,75.52],[1995,75.7],[1996,75.88],[1997,76.06],[1998,76.23],[1999,76.4],[2000,76.55],[2001,76.7],[2002,76.84],[2003,76.98],[2004,77.12],[2005,77.26],[2006,77.39],[2007,77.53],[2008,77.66],[2009,77.79]]},{"name":"Lebanon","region":"Middle East & North Africa","income":[[1800,932],[1820,932],[1870,1416.26],[1913,2612.58],[1950,5318.45],[1951,4659.46],[1952,4834.8],[1953,5435.23],[1954,6091.8],[1955,6426.76],[1956,6129.26],[1957,6089.79],[1958,5102.57],[1959,5404.77],[1960,5416.84],[1961,5637.19],[1962,5714.56],[1963,5622.87],[1964,5814.82],[1965,6229.76],[1966,6477.88],[1967,6006.98],[1968,6583.23],[1969,6555.04],[1970,6827.41],[1971,7047.88],[1972,7486.38],[1973,7460.56],[1974,8310.09],[1975,8238.75],[1976,8415.07],[1977,8659.7],[1978,8921.68],[1979,8462.01],[1980,8532.76],[1981,8168.77],[1982,7640.52],[1983,7582.8],[1984,7767.38],[1985,7991.15],[1986,7663.71],[1987,5377.09],[1988,4896.81],[1989,4901.33],[1990,4849.2],[1991,6627.25],[1992,6890.81],[1993,7323.93],[1994,7844.05],[1995,8271.72],[1996,8509.88],[1997,8754.96],[1998,8920.81],[1999,8754.7],[2000,8809.99],[2001,9110.35],[2002,9313.94],[2003,9598.46],[2004,10207.45],[2005,10212],[2006,10256.98],[2007,11026.25],[2008,11864.38],[2009,12766.21]],"population":[[1800,332000],[1820,332000],[1870,476000],[1913,649000],[1950,1364030],[1951,1401246],[1952,1439529],[1953,1478915],[1954,1519439],[1955,1560985],[1956,1603579],[1957,1647412],[1958,1692357],[1959,1738617],[1960,1786235],[1961,1835620],[1962,1886848],[1963,1940191],[1964,1996143],[1965,2057945],[1966,2121579],[1967,2186894],[1968,2253719],[1969,2320495],[1970,2383029],[1971,2529267],[1972,2680018],[1973,2825318],[1974,2987566],[1975,3098159],[1976,3118590],[1977,3115787],[1978,3109385],[1979,3099426],[1980,3085876],[1981,3081499],[1982,3086876],[1983,3089792],[1984,3090257],[1985,3088235],[1986,3086848],[1987,3089353],[1988,3095949],[1989,3106800],[1990,3147267],[1991,3193208],[1992,3219994],[1993,3252469],[1994,3290707],[1995,3334733],[1996,3382135],[1997,3430388],[1998,3479269],[1999,3528559],[2000,3578036],[2001,3627774],[2002,3677780],[2003,3727703],[2004,3777218],[2005,3826018],[2006,3874050],[2007,3921278],[2008,3967467]],"lifeExpectancy":[[1800,29.7],[1940,29.7],[1950,54.28],[1951,54.71],[1952,55.55],[1953,56.36],[1954,57.13],[1955,57.86],[1956,58.55],[1957,59.21],[1958,59.82],[1959,60.4],[1960,60.93],[1961,61.43],[1962,61.89],[1963,62.31],[1964,62.7],[1965,63.07],[1966,63.42],[1967,63.76],[1968,64.1],[1969,64.42],[1970,64.73],[1971,65.02],[1972,65.27],[1973,65.48],[1974,65.66],[1975,65.81],[1976,65.95],[1977,66.08],[1978,66.21],[1979,66.36],[1980,66.52],[1981,66.69],[1982,66.87],[1983,67.05],[1984,67.23],[1985,67.42],[1986,67.62],[1987,67.84],[1988,68.08],[1989,68.34],[1990,68.61],[1991,68.88],[1992,69.14],[1993,69.39],[1994,69.61],[1995,69.82],[1996,70.01],[1997,70.18],[1998,70.34],[1999,70.5],[2000,70.65],[2001,70.8],[2002,70.97],[2003,71.14],[2004,71.31],[2005,71.5],[2006,71.69],[2007,71.88],[2008,72.08],[2009,72.26]]},{"name":"Libya","region":"Middle East & North Africa","income":[[1800,570],[1820,570],[1950,2084.28],[1951,2270.25],[1952,2387.55],[1953,2375.34],[1954,2313.67],[1955,2844.84],[1956,3385.73],[1957,3448.28],[1958,3705.67],[1959,3901.97],[1960,4902.71],[1961,5237.93],[1962,6757.03],[1963,8862.05],[1964,12161.38],[1965,15128.28],[1966,17346.19],[1967,18772.75],[1968,24313.51],[1969,26443.62],[1970,26914.43],[1971,24603.66],[1972,21011.5],[1973,20259.77],[1974,16512.38],[1975,17095.75],[1976,20471.58],[1977,21951.21],[1978,22311.86],[1979,24378.58],[1980,23661.27],[1981,18559.06],[1982,17364.28],[1983,16643.32],[1984,14874.49],[1985,13502.85],[1986,12367.27],[1987,11770.59],[1988,11617.21],[1989,11476.56],[1990,11069.61],[1991,10228.75],[1992,9640.14],[1993,9056.06],[1994,8810.1],[1995,8737.85],[1996,9051.46],[1997,9467.45],[1998,8998.07],[1999,8966.93],[2000,9139.68],[2001,9539.9],[2002,9534.68],[2003,9954.11],[2004,10304.93],[2005,10804],[2006,11305.18],[2007,11916.54],[2008,12079.02],[2009,12051.62]],"population":[[1820,538000],[1950,961305],[1951,989591],[1952,1019729],[1953,1051835],[1954,1086038],[1955,1122475],[1956,1160947],[1957,1201578],[1958,1244627],[1959,1290121],[1960,1337947],[1961,1388517],[1962,1441863],[1963,1498607],[1964,1560361],[1965,1623770],[1966,1693925],[1967,1759224],[1968,1833726],[1969,1922974],[1970,1999162],[1971,2077381],[1972,2183877],[1973,2312369],[1974,2451375],[1975,2569606],[1976,2666160],[1977,2721783],[1978,2796747],[1979,2928575],[1980,3065365],[1981,3204071],[1982,3344074],[1983,3484531],[1984,3624920],[1985,3675422],[1986,3699538],[1987,3799845],[1988,3913314],[1989,4026847],[1990,4139825],[1991,4252354],[1992,4364501],[1993,4475679],[1994,4585017],[1995,4654252],[1996,4686329],[1997,4759670],[1998,4874638],[1999,4993414],[2000,5115450],[2001,5240599],[2002,5368585],[2003,5499074],[2004,5631585],[2005,5765563],[2006,5900754],[2007,6036914],[2008,6173579]],"lifeExpectancy":[[1800,33],[1940,33],[1950,41.69],[1951,41.95],[1952,42.47],[1953,42.98],[1954,43.5],[1955,44.01],[1956,44.53],[1957,45.04],[1958,45.55],[1959,46.06],[1960,46.56],[1961,47.06],[1962,47.55],[1963,48.04],[1964,48.53],[1965,49.01],[1966,49.47],[1967,49.92],[1968,50.37],[1969,50.83],[1970,51.33],[1971,51.89],[1972,52.52],[1973,53.25],[1974,54.06],[1975,54.94],[1976,55.89],[1977,56.88],[1978,57.87],[1979,58.86],[1980,59.83],[1981,60.79],[1982,61.73],[1983,62.67],[1984,63.57],[1985,64.44],[1986,65.25],[1987,65.99],[1988,66.67],[1989,67.27],[1990,67.83],[1991,68.35],[1992,68.86],[1993,69.37],[1994,69.88],[1995,70.38],[1996,70.86],[1997,71.29],[1998,71.67],[1999,71.98],[2000,72.25],[2001,72.49],[2002,72.7],[2003,72.92],[2004,73.14],[2005,73.36],[2006,73.6],[2007,73.83],[2008,74.06],[2009,74.28]]},{"name":"Morocco","region":"Middle East & North Africa","income":[[1800,497.25],[1820,497.17],[1870,651.13],[1913,821.37],[1950,1683.1],[1951,1686.17],[1952,1688.2],[1953,1698.28],[1954,1707.29],[1955,1715.26],[1956,1678.43],[1957,1642],[1958,1606.28],[1959,1570.98],[1960,1536.62],[1961,1551.35],[1962,1566.35],[1963,1581.36],[1964,1596.54],[1965,1612.12],[1966,1660.76],[1967,1711.04],[1968,1762.62],[1969,1815.24],[1970,1869.14],[1971,1924.99],[1972,1930.19],[1973,1959.41],[1974,2024.8],[1975,2117.48],[1976,2304.26],[1977,2370.62],[1978,2392.59],[1979,2453.98],[1980,2627.7],[1981,2508.85],[1982,2702.62],[1983,2616.83],[1984,2655.21],[1985,2748.96],[1986,2889.61],[1987,2755.05],[1988,2963.85],[1989,2960.35],[1990,3002.1],[1991,3138.3],[1992,2948.05],[1993,2857.36],[1994,3090.03],[1995,2828.67],[1996,3112.23],[1997,2982.1],[1998,3156.79],[1999,3097.02],[2000,3073.43],[2001,3211.29],[2002,3258.5],[2003,3400.37],[2004,3519.46],[2005,3547],[2006,3774.77],[2007,3832.92],[2008,3990.75],[2009,4162.93]],"population":[[1820,2689000],[1870,3776000],[1913,5111000],[1950,9343384],[1951,9633621],[1952,9939217],[1953,10205766],[1954,10486500],[1955,10781677],[1956,11088510],[1957,11406350],[1958,11734866],[1959,12074375],[1960,12423434],[1961,12736342],[1962,13056604],[1963,13385360],[1964,13722483],[1965,14066154],[1966,14414636],[1967,14770296],[1968,15137266],[1969,15517155],[1970,15909275],[1971,16313391],[1972,16660670],[1973,16998378],[1974,17335236],[1975,17687376],[1976,18042963],[1977,18396941],[1978,18758283],[1979,19125959],[1980,19487272],[1981,19846221],[1982,20198730],[1983,20740299],[1984,21295943],[1985,21857410],[1986,22421628],[1987,22987397],[1988,23554959],[1989,24122368],[1990,24685960],[1991,25244056],[1992,25798239],[1993,26350819],[1994,26900833],[1995,27446860],[1996,27989535],[1997,28529501],[1998,29065648],[1999,29596788],[2000,30122350],[2001,30645305],[2002,31167783],[2003,31689265],[2004,32209101],[2005,32725847],[2006,33241259],[2007,33757175],[2008,34272968]],"lifeExpectancy":[[1800,33.1],[1940,33.1],[1950,41.85],[1951,42.1],[1952,42.62],[1953,43.13],[1954,43.64],[1955,44.16],[1956,44.67],[1957,45.17],[1958,45.68],[1959,46.18],[1960,46.68],[1961,47.18],[1962,47.67],[1963,48.16],[1964,48.64],[1965,49.13],[1966,49.61],[1967,50.09],[1968,50.57],[1969,51.06],[1970,51.56],[1971,52.06],[1972,52.57],[1973,53.09],[1974,53.63],[1975,54.19],[1976,54.8],[1977,55.46],[1978,56.17],[1979,56.91],[1980,57.68],[1981,58.45],[1982,59.21],[1983,59.93],[1984,60.61],[1985,61.25],[1986,61.86],[1987,62.44],[1988,63],[1989,63.55],[1990,64.1],[1991,64.63],[1992,65.15],[1993,65.64],[1994,66.12],[1995,66.59],[1996,67.04],[1997,67.47],[1998,67.89],[1999,68.3],[2000,68.69],[2001,69.08],[2002,69.44],[2003,69.79],[2004,70.13],[2005,70.44],[2006,70.75],[2007,71.03],[2008,71.31],[2009,71.58]]},{"name":"Oman","region":"Middle East & North Africa","income":[[1800,882.54],[1820,886.71],[1913,1521.43],[1950,1681.63],[1951,1753.06],[1952,1828.23],[1953,1906.94],[1954,1986.07],[1955,2068.1],[1956,2155.84],[1957,2242.75],[1958,2337.97],[1959,2429.59],[1960,2522.63],[1961,2491.42],[1962,2924.64],[1963,2975.73],[1964,2902.51],[1965,2842.57],[1966,2914],[1967,4720.94],[1968,8348.98],[1969,10208.31],[1970,10251.63],[1971,10029.3],[1972,10618.04],[1973,8849.08],[1974,9557.8],[1975,11516.25],[1976,12407.01],[1977,11848.34],[1978,11026.71],[1979,10914.09],[1980,10989.43],[1981,12206.78],[1982,12954.79],[1983,14428.57],[1984,16128.07],[1985,17663.75],[1986,17386.29],[1987,18115.22],[1988,18002.58],[1989,18103.04],[1990,17485.61],[1991,17828.04],[1992,18616.71],[1993,19021.94],[1994,19083.44],[1995,19325.59],[1996,19207.86],[1997,19702.06],[1998,19545.61],[1999,18843.38],[2000,19204.29],[2001,19945.39],[2002,19774.84],[2003,19497.67],[2004,19870.6],[2005,20334],[2006,20984.34],[2007,21239.98],[2008,22789.62],[2009,22804.85]],"population":[[1800,318000],[1820,318000],[1870,367000],[1913,444000],[1950,488588],[1951,498207],[1952,507833],[1953,517464],[1954,528286],[1955,539115],[1956,549950],[1957,561977],[1958,572826],[1959,586055],[1960,599292],[1961,613723],[1962,628164],[1963,644990],[1964,661826],[1965,678672],[1966,696718],[1967,714775],[1968,735222],[1969,755682],[1970,778536],[1971,802594],[1972,829050],[1973,856714],[1974,884395],[1975,913285],[1976,956453],[1977,1004533],[1978,1058744],[1979,1115515],[1980,1174857],[1981,1237945],[1982,1301048],[1983,1363189],[1984,1423521],[1985,1481587],[1986,1537697],[1987,1593882],[1988,1651822],[1989,1711642],[1990,1772974],[1991,1843255],[1992,1915208],[1993,1988746],[1994,2058553],[1995,2130934],[1996,2205958],[1997,2283635],[1998,2364049],[1999,2447279],[2000,2533389],[2001,2622198],[2002,2713462],[2003,2807125],[2004,2903165],[2005,3001583],[2006,3102229],[2007,3204897],[2008,3309440]],"lifeExpectancy":[[1800,32.3],[1945,32.3],[1950,36.72],[1951,36.92],[1952,37.34],[1953,37.78],[1954,38.24],[1955,38.73],[1956,39.24],[1957,39.78],[1958,40.34],[1959,40.91],[1960,41.52],[1961,42.14],[1962,42.79],[1963,43.46],[1964,44.17],[1965,44.92],[1966,45.72],[1967,46.57],[1968,47.48],[1969,48.45],[1970,49.46],[1971,50.5],[1972,51.55],[1973,52.62],[1974,53.68],[1975,54.74],[1976,55.79],[1977,56.85],[1978,57.92],[1979,58.99],[1980,60.07],[1981,61.15],[1982,62.23],[1983,63.31],[1984,64.36],[1985,65.38],[1986,66.37],[1987,67.31],[1988,68.2],[1989,69.02],[1990,69.75],[1991,70.38],[1992,70.91],[1993,71.34],[1994,71.7],[1995,71.99],[1996,72.25],[1997,72.5],[1998,72.76],[1999,73.04],[2000,73.35],[2001,73.68],[2002,74.02],[2003,74.34],[2004,74.66],[2005,74.95],[2006,75.22],[2007,75.48],[2008,75.72],[2009,75.94]]},{"name":"Qatar","region":"Middle East & North Africa","income":[[1800,588.36],[1820,591.14],[1913,1014.29],[1939,1179.54],[1970,80244.5],[1971,80293.69],[1972,81068.9],[1973,82057.81],[1974,80224.5],[1975,79275.52],[1976,81127.92],[1977,71615.83],[1978,74170.51],[1979,73434.87],[1980,67344.1],[1981,65947.52],[1982,57679.64],[1983,52169.59],[1984,49067.69],[1985,44379.47],[1986,42994.48],[1987,40870.69],[1988,40632.35],[1989,40930],[1990,40510.85],[1991,39011.46],[1992,41781.68],[1993,40684.8],[1994,40794.94],[1995,41058.27],[1996,42008.11],[1997,52938.65],[1998,57390.75],[1999,57836.84],[2000,60394.43],[2001,59277.98],[2002,60016],[2003,58706.15],[2004,67458.36],[2005,68696],[2006,75078.13],[2007,76900.53],[2008,75474.32],[2009,74138.28]],"population":[[1800,14092],[1820,14092],[1870,14092],[1913,17897],[1950,25101],[1951,27064],[1952,29057],[1953,31074],[1954,33105],[1955,35142],[1956,36952],[1957,38757],[1958,40550],[1959,42667],[1960,45183],[1961,48712],[1962,52968],[1963,58146],[1964,63897],[1965,70284],[1966,77319],[1967,85168],[1968,93925],[1969,103283],[1970,113262],[1971,122177],[1972,131794],[1973,142167],[1974,153358],[1975,165429],[1976,176798],[1977,188947],[1978,201932],[1979,215809],[1980,230640],[1981,242474],[1982,252300],[1983,283926],[1984,314767],[1985,345079],[1986,375013],[1987,402134],[1988,429731],[1989,456616],[1990,481477],[1991,504531],[1992,529399],[1993,557008],[1994,585368],[1995,613142],[1996,640524],[1997,667336],[1998,693592],[1999,719306],[2000,744483],[2001,769152],[2002,793341],[2003,817052],[2004,840290],[2005,863051],[2006,885359],[2007,907229],[2008,928635]],"lifeExpectancy":[[1800,30.8],[1940,30.8],[1950,47.03],[1951,47.23],[1952,47.67],[1953,48.16],[1954,48.69],[1955,49.27],[1956,49.9],[1957,50.57],[1958,51.28],[1959,52.03],[1960,52.81],[1961,53.61],[1962,54.42],[1963,55.24],[1964,56.04],[1965,56.83],[1966,57.6],[1967,58.35],[1968,59.08],[1969,59.78],[1970,60.47],[1971,61.13],[1972,61.78],[1973,62.41],[1974,63.02],[1975,63.61],[1976,64.17],[1977,64.71],[1978,65.22],[1979,65.69],[1980,66.12],[1981,66.52],[1982,66.87],[1983,67.19],[1984,67.48],[1985,67.75],[1986,68.01],[1987,68.26],[1988,68.53],[1989,68.8],[1990,69.1],[1991,69.42],[1992,69.77],[1993,70.13],[1994,70.52],[1995,70.93],[1996,71.36],[1997,71.81],[1998,72.27],[1999,72.73],[2000,73.18],[2001,73.61],[2002,74.01],[2003,74.38],[2004,74.71],[2005,75],[2006,75.24],[2007,75.46],[2008,75.65],[2009,75.81]]},{"name":"Saudi Arabia","region":"Middle East & North Africa","income":[[1800,441.27],[1820,443.36],[1913,760.72],[1950,5834.36],[1951,6208.71],[1952,6459.55],[1953,6968.42],[1954,7615.79],[1955,7642.33],[1956,8042.36],[1957,8157.59],[1958,8380.7],[1959,9044.26],[1960,9726.96],[1961,10635.36],[1962,11626.42],[1963,12332.87],[1964,13089.1],[1965,14304.44],[1966,15958.99],[1967,16903.05],[1968,17910.56],[1969,18751.91],[1970,19938.92],[1971,22166.86],[1972,24837.43],[1973,28873.35],[1974,32254.54],[1975,30827.93],[1976,31661.42],[1977,34167.76],[1978,33789.05],[1979,33588.81],[1980,34568.06],[1981,35101.25],[1982,33693.18],[1983,28412.06],[1984,26815.59],[1985,23663.08],[1986,21161.24],[1987,21198.26],[1988,20995.14],[1989,20934.15],[1990,23520.95],[1991,25113.59],[1992,24841.62],[1993,23173.54],[1994,22010.66],[1995,21162.71],[1996,20772.36],[1997,20586.69],[1998,20353.7],[1999,19635.3],[2000,20001.87],[2001,19528.5],[2002,19014.54],[2003,19945.47],[2004,20481.98],[2005,21220],[2006,21356.15],[2007,21255.6],[2008,21635.15],[2009,21138.18]],"population":[[1800,2091000],[1820,2091000],[1870,2338000],[1913,2676000],[1950,3859801],[1951,3931753],[1952,4005677],[1953,4081572],[1954,4160424],[1955,4243218],[1956,4328970],[1957,4419650],[1958,4514271],[1959,4613822],[1960,4718301],[1961,4827708],[1962,4943029],[1963,5065249],[1964,5192398],[1965,5327432],[1966,5469365],[1967,5618198],[1968,5774916],[1969,5938534],[1970,6109051],[1971,6287454],[1972,6472756],[1973,6666928],[1974,6868001],[1975,7204820],[1976,7620435],[1977,8128505],[1978,8708801],[1979,9346019],[1980,9999161],[1981,10627409],[1982,11254672],[1983,11912032],[1984,12606940],[1985,13330067],[1986,13998295],[1987,14619745],[1988,15233131],[1989,15829361],[1990,16060761],[1991,16305774],[1992,16945857],[1993,18056656],[1994,19108307],[1995,19966998],[1996,20625641],[1997,21229759],[1998,21842982],[1999,22483640],[2000,23153090],[2001,23832849],[2002,24501530],[2003,25156630],[2004,25795938],[2005,26417599],[2006,27019731],[2007,27601038],[2008,28161417]],"lifeExpectancy":[[1800,32.1],[1945,32.1],[1950,38.66],[1951,38.97],[1952,39.58],[1953,40.18],[1954,40.78],[1955,41.37],[1956,41.96],[1957,42.54],[1958,43.12],[1959,43.71],[1960,44.31],[1961,44.95],[1962,45.61],[1963,46.32],[1964,47.06],[1965,47.83],[1966,48.63],[1967,49.43],[1968,50.23],[1969,51.02],[1970,51.83],[1971,52.65],[1972,53.5],[1973,54.39],[1974,55.31],[1975,56.26],[1976,57.23],[1977,58.2],[1978,59.17],[1979,60.11],[1980,61.02],[1981,61.89],[1982,62.72],[1983,63.5],[1984,64.24],[1985,64.92],[1986,65.57],[1987,66.17],[1988,66.74],[1989,67.29],[1990,67.8],[1991,68.27],[1992,68.71],[1993,69.12],[1994,69.49],[1995,69.83],[1996,70.14],[1997,70.41],[1998,70.66],[1999,70.9],[2000,71.12],[2001,71.33],[2002,71.55],[2003,71.77],[2004,71.99],[2005,72.21],[2006,72.44],[2007,72.66],[2008,72.88],[2009,73.1]]},{"name":"Tunisia","region":"Middle East & North Africa","income":[[1800,518.72],[1820,517.32],[1870,761.63],[1913,1062.88],[1950,1341.82],[1951,1331.69],[1952,1468.48],[1953,1497.12],[1954,1503.54],[1955,1401.36],[1956,1472.77],[1957,1395.23],[1958,1554.59],[1959,1465.08],[1960,1616.32],[1961,1728.37],[1962,1660.3],[1963,1872.91],[1964,1912.76],[1965,1989.82],[1966,1991.34],[1967,1932.36],[1968,2088.68],[1969,2118.73],[1970,2199.31],[1971,2386.27],[1972,2753.29],[1973,2673.63],[1974,2820.76],[1975,2944.73],[1976,3093],[1977,3120.88],[1978,3251.03],[1979,3384.54],[1980,3543.72],[1981,3647.29],[1982,3560.23],[1983,3658.69],[1984,3693.06],[1985,3806.44],[1986,3656.88],[1987,3810.42],[1988,3732.5],[1989,3794.69],[1990,4017.22],[1991,4095.28],[1992,4332.72],[1993,4347.77],[1994,4409.94],[1995,4444.95],[1996,4691.19],[1997,4876.8],[1998,5046.68],[1999,5292.3],[2000,5480.32],[2001,5687.24],[2002,5722.9],[2003,5980.59],[2004,6274.88],[2005,6461],[2006,6740.19],[2007,7099.69],[2008,7356.75],[2009,7499.61]],"population":[[1820,875000],[1870,1176000],[1913,1870000],[1950,3517210],[1951,3582970],[1952,3647735],[1953,3713496],[1954,3779257],[1955,3846014],[1956,3903067],[1957,3950849],[1958,4007300],[1959,4074970],[1960,4149157],[1961,4216031],[1962,4286552],[1963,4374477],[1964,4468393],[1965,4565747],[1966,4676017],[1967,4786986],[1968,4894178],[1969,4996300],[1970,5098627],[1971,5197559],[1972,5303507],[1973,5426213],[1974,5556437],[1975,5703966],[1976,5859294],[1977,6005061],[1978,6136282],[1979,6280477],[1980,6443183],[1981,6605707],[1982,6734098],[1983,6859890],[1984,7184530],[1985,7362332],[1986,7544710],[1987,7724976],[1988,7895088],[1989,8052989],[1990,8207240],[1991,8364780],[1992,8523077],[1993,8680433],[1994,8831747],[1995,8972635],[1996,9105233],[1997,9231669],[1998,9349100],[1999,9458862],[2000,9563816],[2001,9667365],[2002,9770575],[2003,9873149],[2004,9974722],[2005,10074951],[2006,10175014],[2007,10276158],[2008,10378140]],"lifeExpectancy":[[1800,28.8],[1923,28.8],[1933,31.22],[1943,33.72],[1950,43.61],[1951,43.85],[1952,44.35],[1953,44.85],[1954,45.35],[1955,45.85],[1956,46.35],[1957,46.85],[1958,47.35],[1959,47.85],[1960,48.34],[1961,48.82],[1962,49.3],[1963,49.77],[1964,50.24],[1965,50.73],[1966,51.24],[1967,51.79],[1968,52.38],[1969,53.01],[1970,53.69],[1971,54.42],[1972,55.19],[1973,55.99],[1974,56.81],[1975,57.65],[1976,58.51],[1977,59.4],[1978,60.29],[1979,61.18],[1980,62.05],[1981,62.88],[1982,63.65],[1983,64.36],[1984,65.02],[1985,65.63],[1986,66.22],[1987,66.81],[1988,67.4],[1989,68.02],[1990,68.63],[1991,69.23],[1992,69.8],[1993,70.32],[1994,70.79],[1995,71.19],[1996,71.54],[1997,71.84],[1998,72.11],[1999,72.34],[2000,72.56],[2001,72.76],[2002,72.94],[2003,73.12],[2004,73.29],[2005,73.46],[2006,73.63],[2007,73.81],[2008,73.98],[2009,74.15]]},{"name":"United Arab Emirates","region":"Middle East & North Africa","income":[[1800,845.76],[1820,849.76],[1913,1458.04],[1958,5100],[1970,13677.04],[1971,13239.26],[1972,12703.61],[1973,19448.86],[1974,47592.52],[1975,53499.46],[1976,52628.36],[1977,53335.18],[1978,45587.62],[1979,50726.23],[1980,58179.45],[1981,55157.82],[1982,47211.4],[1983,42152.15],[1984,41475.71],[1985,38213.65],[1986,29225.3],[1987,29327.06],[1988,27050.85],[1989,29062.16],[1990,32431.23],[1991,30832.82],[1992,30084.24],[1993,28314.81],[1994,29007.14],[1995,29341.65],[1996,29286.31],[1997,29989.45],[1998,28676.19],[1999,28251.7],[2000,30012.32],[2001,29446.26],[2002,28728.96],[2003,30646.11],[2004,32181.94],[2005,33487],[2006,35347.29],[2007,35324.66],[2008,34981.22],[2009,33734.94]],"population":[[1800,40153],[1820,40153],[1870,40153],[1913,50995],[1950,71520],[1951,73298],[1952,75273],[1953,77480],[1954,79947],[1955,82715],[1956,85831],[1957,89353],[1958,93340],[1959,97870],[1960,103048],[1961,108989],[1962,115827],[1963,123751],[1964,132980],[1965,143798],[1966,156574],[1967,171745],[1968,190974],[1969,217858],[1970,249369],[1971,288136],[1972,336325],[1973,391337],[1974,453222],[1975,522571],[1976,598023],[1977,683672],[1978,778736],[1979,884040],[1980,1000285],[1981,1100356],[1982,1203634],[1983,1315978],[1984,1437950],[1985,1570219],[1986,1713616],[1987,1778365],[1988,1839339],[1989,1896774],[1990,1950792],[1991,2001524],[1992,2048857],[1993,2093393],[1994,2135896],[1995,2176370],[1996,2215556],[1997,2254266],[1998,2292669],[1999,2330923],[2000,2369153],[2001,2407460],[2002,2445989],[2003,2484818],[2004,2523915],[2005,2563212],[2006,2602713],[2007,2642566],[2008,2682747]],"lifeExpectancy":[[1800,30.7],[1945,30.7],[1950,46.99],[1951,47.21],[1952,47.66],[1953,48.17],[1954,48.72],[1955,49.32],[1956,49.97],[1957,50.65],[1958,51.38],[1959,52.14],[1960,52.93],[1961,53.74],[1962,54.56],[1963,55.38],[1964,56.19],[1965,56.98],[1966,57.73],[1967,58.46],[1968,59.16],[1969,59.84],[1970,60.52],[1971,61.22],[1972,61.95],[1973,62.71],[1974,63.5],[1975,64.29],[1976,65.06],[1977,65.78],[1978,66.43],[1979,67.01],[1980,67.53],[1981,68.02],[1982,68.49],[1983,68.97],[1984,69.47],[1985,69.99],[1986,70.53],[1987,71.05],[1988,71.56],[1989,72.06],[1990,72.54],[1991,73.02],[1992,73.49],[1993,73.97],[1994,74.43],[1995,74.88],[1996,75.3],[1997,75.66],[1998,75.97],[1999,76.22],[2000,76.42],[2001,76.57],[2002,76.7],[2003,76.82],[2004,76.94],[2005,77.06],[2006,77.18],[2007,77.31],[2008,77.45],[2009,77.58]]},{"name":"West Bank and Gaza","region":"Middle East & North Africa","income":[[1800,735.45],[1820,738.93],[1913,1267.86],[1950,1405.45],[1951,1461.21],[1952,1515.59],[1953,1570.9],[1954,1633.31],[1955,1694.35],[1956,1757.71],[1957,1827.07],[1958,1895.34],[1959,1965.96],[1960,2039.72],[1961,2118.83],[1962,2198.96],[1963,2282.6],[1964,2368.29],[1965,2457.42],[1966,2552.07],[1967,2649.72],[1968,2750.96],[1969,2840.54],[1970,2931.07],[1971,3029.87],[1972,3133.41],[1973,3233.64],[1974,3340.31],[1975,3448.53],[1976,3565.14],[1977,3682.83],[1978,3806.21],[1979,3931.93],[1980,4062.85],[1981,4199.87],[1982,4336.03],[1983,4482.74],[1984,4631.3],[1985,4784.28],[1986,4945.41],[1987,5107.2],[1988,5276.33],[1989,5452.69],[1990,5635.48],[1991,5821.77],[1992,6017.65],[1993,6218.71],[1994,6431.12],[1995,6647.75],[1996,6875.61],[1997,7110.67],[1998,7477.12],[1999,7864.94],[2000,7586.32],[2001,5852.63],[2002,4515.49],[2003,3793.97],[2004,3664.45],[2005,3542],[2006,3263.47],[2007,3121.4],[2008,3084.56]],"population":[[1800,165944],[1850,165944],[1860,180099],[1877,215167],[1878,217741],[1879,220357],[1880,223014],[1881,225716],[1882,228461],[1883,231252],[1884,234089],[1885,236974],[1886,239905],[1887,242887],[1888,245919],[1889,248890],[1890,251909],[1891,254974],[1892,258089],[1893,261254],[1894,264542],[1895,267880],[1896,271341],[1897,274854],[1898,278608],[1899,282421],[1900,286294],[1901,290228],[1902,294225],[1903,298285],[1904,302411],[1905,306602],[1906,310861],[1907,315189],[1908,319588],[1909,324056],[1910,328599],[1911,337909],[1912,342679],[1913,347528],[1914,352458],[1918,330270],[1922,360287],[1931,465384],[1932,483666],[1933,513691],[1934,544820],[1935,588286],[1936,613124],[1937,630160],[1938,645526],[1939,680171],[1940,703338],[1941,723889],[1942,743058],[1943,768008],[1944,795069],[1945,824913],[1946,857472],[1950,1016540],[1951,1022333],[1952,1030585],[1953,1040483],[1954,1048766],[1955,1053801],[1956,1061298],[1957,1070439],[1958,1077965],[1959,1100998],[1960,1113446],[1961,1109603],[1962,1133134],[1963,1156474],[1964,1182145],[1965,1210960],[1966,1235665],[1967,1142636],[1968,1000482],[1969,1006458],[1970,1032447],[1971,1059861],[1972,1089572],[1973,1124018],[1974,1166576],[1975,1200805],[1976,1228388],[1977,1261091],[1978,1296061],[1979,1329554],[1980,1359954],[1981,1388910],[1982,1425876],[1983,1474659],[1984,1524537],[1985,1576361],[1986,1630382],[1987,1691210],[1988,1757935],[1989,1820817],[1990,1897320],[1991,1997073],[1992,2104779],[1993,2215999],[1994,2345625],[1995,2501920],[1996,2665989],[1997,2826046],[1998,2931882],[1999,3040686],[2000,3152361],[2001,3268832],[2002,3389578],[2003,3512062],[2004,3636195],[2005,3761904],[2006,3889249],[2007,4018332],[2008,4149173]],"lifeExpectancy":[[1950,42.12],[1951,42.38],[1952,42.91],[1953,43.43],[1954,43.93],[1955,44.43],[1956,44.91],[1957,45.39],[1958,45.86],[1959,46.34],[1960,46.82],[1961,47.32],[1962,47.85],[1963,48.41],[1964,49.02],[1965,49.69],[1966,50.44],[1967,51.25],[1968,52.13],[1969,53.06],[1970,54.02],[1971,55.01],[1972,55.98],[1973,56.94],[1974,57.86],[1975,58.74],[1976,59.59],[1977,60.41],[1978,61.2],[1979,61.97],[1980,62.71],[1981,63.41],[1982,64.07],[1983,64.68],[1984,65.26],[1985,65.81],[1986,66.34],[1987,66.88],[1988,67.42],[1989,67.95],[1990,68.48],[1991,68.99],[1992,69.44],[1993,69.85],[1994,70.21],[1995,70.52],[1996,70.79],[1997,71.03],[1998,71.28],[1999,71.52],[2000,71.76],[2001,72.01],[2002,72.25],[2003,72.48],[2004,72.7],[2005,72.92],[2006,73.13],[2007,73.33],[2008,73.54],[2009,73.74]]},{"name":"Yemen, Rep.","region":"Middle East & North Africa","income":[[1800,661.9],[1820,665.03],[1950,771.3],[1951,776.63],[1952,781.72],[1953,787.32],[1954,792.09],[1955,797.17],[1956,800.97],[1957,804.83],[1958,808.4],[1959,811.99],[1960,815.92],[1961,820.54],[1962,825.62],[1963,832.92],[1964,837.04],[1965,843.34],[1966,852.7],[1967,862.44],[1968,870.25],[1969,880.66],[1970,1041.1],[1971,1196.79],[1972,1265.05],[1973,1388.2],[1974,1435.54],[1975,1509.67],[1976,1695.14],[1977,1829.77],[1978,1930.83],[1979,1982.42],[1980,1938.74],[1981,2000.3],[1982,1977.56],[1983,2032.19],[1984,2050.33],[1985,1973.82],[1986,1955.75],[1987,1971.74],[1988,1989.89],[1989,1991.58],[1990,1923.3],[1991,1859.24],[1992,1879.5],[1993,1861.89],[1994,1834.92],[1995,1970.6],[1996,2022.93],[1997,2117.48],[1998,2149.8],[1999,2158.6],[2000,2217.07],[2001,2225.1],[2002,2234.82],[2003,2239.83],[2004,2250.9],[2005,2276],[2006,2277.84],[2007,2283.39],[2008,2295.8],[2009,2313.16]],"population":[[1800,2593000],[1820,2593000],[1870,2840000],[1913,3284000],[1950,4777089],[1951,4869125],[1952,4963829],[1953,5061153],[1954,5162494],[1955,5265327],[1956,5380106],[1957,5498090],[1958,5619377],[1959,5743926],[1960,5871831],[1961,5993828],[1962,6120081],[1963,6248206],[1964,6378206],[1965,6510081],[1966,6624755],[1967,6740785],[1968,6859408],[1969,6978155],[1970,7098239],[1971,7251383],[1972,7407075],[1973,7579501],[1974,7755019],[1975,7934497],[1976,8170521],[1977,8403990],[1978,8641036],[1979,8883381],[1980,9132545],[1981,9390138],[1982,9657618],[1983,9936258],[1984,10229272],[1985,10539928],[1986,10869580],[1987,11219340],[1988,11591069],[1989,11986392],[1990,12416080],[1991,12882420],[1992,13367997],[1993,13885756],[1994,14394750],[1995,14859342],[1996,15327307],[1997,15826497],[1998,16352459],[1999,16904520],[2000,17479206],[2001,18078035],[2002,18701257],[2003,19349881],[2004,20024867],[2005,20727063],[2006,21456188],[2007,22211743],[2008,22993911]],"lifeExpectancy":[[1800,33],[1945,33],[1950,31.91],[1951,32.08],[1952,32.4],[1953,32.71],[1954,33.01],[1955,33.29],[1956,33.56],[1957,33.82],[1958,34.07],[1959,34.31],[1960,34.54],[1961,34.79],[1962,35.04],[1963,35.31],[1964,35.62],[1965,35.95],[1966,36.32],[1967,36.73],[1968,37.18],[1969,37.67],[1970,38.22],[1971,38.83],[1972,39.49],[1973,40.22],[1974,41.01],[1975,41.85],[1976,42.75],[1977,43.7],[1978,44.69],[1979,45.69],[1980,46.68],[1981,47.66],[1982,48.62],[1983,49.53],[1984,50.39],[1985,51.19],[1986,51.93],[1987,52.6],[1988,53.23],[1989,53.82],[1990,54.37],[1991,54.89],[1992,55.4],[1993,55.88],[1994,56.37],[1995,56.84],[1996,57.32],[1997,57.79],[1998,58.25],[1999,58.71],[2000,59.17],[2001,59.63],[2002,60.09],[2003,60.56],[2004,61.03],[2005,61.51],[2006,61.98],[2007,62.46],[2008,62.93],[2009,63.39]]},{"name":"Argentina","region":"America","income":[[1800,871.63],[1820,871.63],[1875,1885.41],[1876,1867.47],[1877,2002.04],[1878,1839.6],[1879,1863.06],[1880,1769.57],[1881,1743.09],[1882,2140.95],[1883,2333.66],[1884,2426.44],[1885,2770.22],[1886,2695.38],[1887,2794.95],[1888,3156.64],[1889,3364.75],[1890,2982.77],[1891,2730.32],[1892,3176.32],[1893,3266.51],[1894,3664.86],[1895,3949.4],[1896,4246.48],[1897,3317.39],[1898,3498.62],[1899,4011.23],[1900,3419.66],[1901,3611.77],[1902,3436.59],[1903,3830.91],[1904,4131.05],[1905,4562.36],[1906,4580.22],[1907,4464.29],[1908,4694.41],[1909,4708.23],[1910,4832.38],[1911,4726.01],[1912,4923.21],[1913,4777.66],[1914,4091.98],[1915,3949.97],[1916,3767.94],[1917,3397.62],[1918,3961.68],[1919,4038.95],[1920,4263.13],[1921,4242.31],[1922,4452.29],[1923,4807.28],[1924,5035.79],[1925,4861.3],[1926,4962.42],[1927,5178.2],[1928,5356.78],[1929,5456.67],[1930,5081.2],[1931,4633.64],[1932,4393.52],[1933,4518.05],[1934,4790.22],[1935,4909.12],[1936,4872.97],[1937,5149.63],[1938,5084.62],[1939,5199.52],[1940,5202.23],[1941,5393.04],[1942,5368.42],[1943,5248.21],[1944,5757.53],[1945,5482.92],[1946,5845.22],[1947,6359.64],[1948,6560.39],[1949,6322.98],[1950,6252.86],[1951,6362.13],[1952,5911.32],[1953,6107.59],[1954,6242.6],[1955,6566.88],[1956,6630.03],[1957,6856.86],[1958,7157.86],[1959,6575.45],[1960,6984.76],[1961,7367.29],[1962,7133.17],[1963,6852.54],[1964,7452.89],[1965,8022.44],[1966,7955.97],[1967,8052.95],[1968,8284.39],[1969,8870.89],[1970,9212.3],[1971,9408.19],[1972,9443.04],[1973,9633.5],[1974,9989.81],[1975,9766.38],[1976,9611.92],[1977,10079.03],[1978,9602.71],[1979,10124.86],[1980,10126.5],[1981,9421.94],[1982,8997.9],[1983,9238.61],[1984,9301.55],[1985,8525.61],[1986,9026.86],[1987,9139.67],[1988,8845.59],[1989,8107.72],[1990,7846.61],[1991,8575.87],[1992,9308.42],[1993,9742.08],[1994,10206.9],[1995,9807.79],[1996,10245.38],[1997,10967.28],[1998,11272.75],[1999,10771.08],[2000,10571.36],[2001,9992.71],[2002,8797.64],[2003,9481.37],[2004,10232.1],[2005,11063],[2006,11883.08],[2007,12784.8],[2008,13515.18],[2009,13498.04]],"population":[[1800,534000],[1820,534000],[1850,1100000],[1870,1796000],[1890,3376000],[1900,4693000],[1901,4873000],[1902,5060000],[1903,5254000],[1904,5455000],[1905,5664000],[1906,5881000],[1907,6107000],[1908,6341000],[1909,6584000],[1910,6836000],[1911,7098000],[1912,7370000],[1913,7653000],[1914,7885000],[1915,8072000],[1916,8226000],[1917,8374000],[1918,8518000],[1919,8672000],[1920,8861000],[1921,9092000],[1922,9368000],[1923,9707000],[1924,10054000],[1925,10358000],[1926,10652000],[1927,10965000],[1928,11282000],[1929,11592000],[1930,11896000],[1931,12167000],[1932,12402000],[1933,12623000],[1934,12834000],[1935,13044000],[1936,13260000],[1937,13490000],[1938,13724000],[1939,13984000],[1940,14169000],[1941,14402000],[1942,14638000],[1943,14877000],[1944,15130000],[1945,15390000],[1946,15654000],[1947,15942000],[1948,16307000],[1949,16737000],[1950,17150336],[1951,17517342],[1952,17876956],[1953,18230816],[1954,18580559],[1955,18927821],[1956,19271511],[1957,19610538],[1958,19946539],[1959,20281150],[1960,20616009],[1961,20950583],[1962,21283783],[1963,21616403],[1964,21949244],[1965,22283100],[1966,22611604],[1967,22934225],[1968,23260514],[1969,23600026],[1970,23962313],[1971,24363816],[1972,24779799],[1973,25209829],[1974,25646371],[1975,26081880],[1976,26531280],[1977,26983828],[1978,27440272],[1979,27901971],[1980,28369799],[1981,28862831],[1982,29341374],[1983,29801763],[1984,30235573],[1985,30675059],[1986,31145966],[1987,31620918],[1988,32090943],[1989,32558573],[1990,33022202],[1991,33491595],[1992,33958947],[1993,34411978],[1994,34864440],[1995,35311049],[1996,35753590],[1997,36203463],[1998,36643768],[1999,37073828],[2000,37497728],[2001,37916560],[2002,38331121],[2003,38740807],[2004,39144753],[2005,39537943],[2006,39921833],[2007,40301927],[2008,40677348]],"lifeExpectancy":[[1800,33.2],[1875,33.2],[1880,33.1],[1885,32.6],[1890,34],[1895,33.3],[1900,36.8],[1905,39.7],[1910,43.5],[1915,46.2],[1920,50.2],[1925,52.6],[1930,54.3],[1935,54.3],[1940,59.1],[1945,62],[1950,61.61],[1951,61.92],[1952,62.51],[1953,63.04],[1954,63.52],[1955,63.94],[1956,64.3],[1957,64.61],[1958,64.86],[1959,65.07],[1960,65.23],[1961,65.35],[1962,65.44],[1963,65.52],[1964,65.6],[1965,65.68],[1966,65.8],[1967,65.95],[1968,66.13],[1969,66.35],[1970,66.61],[1971,66.89],[1972,67.18],[1973,67.48],[1974,67.77],[1975,68.06],[1976,68.35],[1977,68.64],[1978,68.94],[1979,69.24],[1980,69.53],[1981,69.8],[1982,70.05],[1983,70.27],[1984,70.47],[1985,70.65],[1986,70.81],[1987,70.98],[1988,71.16],[1989,71.35],[1990,71.56],[1991,71.78],[1992,72.01],[1993,72.23],[1994,72.46],[1995,72.68],[1996,72.9],[1997,73.12],[1998,73.34],[1999,73.55],[2000,73.77],[2001,73.97],[2002,74.18],[2003,74.38],[2004,74.58],[2005,74.77],[2006,74.96],[2007,75.15],[2008,75.33],[2009,75.52]]},{"name":"Aruba","region":"America","income":[[1800,575.86],[1820,575.86],[1913,1062.48],[1970,4223.84],[1971,4567.57],[1972,4939.76],[1973,5344.09],[1974,5785.94],[1975,6270.23],[1976,6803.64],[1977,7390.36],[1978,8026.34],[1979,8701.79],[1980,9409.56],[1981,10133.58],[1982,10874.91],[1983,11672.8],[1984,12589.72],[1985,13681.02],[1986,15016.43],[1987,17674.34],[1988,21252.41],[1989,23845.24],[1990,24316.97],[1991,25167.86],[1992,25120.55],[1993,25277.57],[1994,25830.48],[1995,25359.88],[1996,24966.43],[1997,26483.67],[1998,27963.77],[1999,27962.89],[2000,28711.44],[2001,27884.99],[2002,26467.87],[2003,25782.77],[2004,26972.7],[2005,26762.65],[2006,26482.97],[2007,26073.67],[2008,25351.09]],"population":[[1800,19286],[1820,19286],[1950,49712],[1951,51335],[1952,51955],[1953,52585],[1954,53220],[1955,53865],[1956,54516],[1957,55176],[1958,55843],[1959,56518],[1960,57203],[1961,57008],[1962,57681],[1963,58541],[1964,59091],[1965,59020],[1966,58632],[1967,58316],[1968,58149],[1969,58424],[1970,59039],[1971,59397],[1972,59461],[1973,59609],[1974,59555],[1975,59390],[1976,59337],[1977,59412],[1978,59481],[1979,59741],[1980,60266],[1981,60717],[1982,61569],[1983,62483],[1984,63337],[1985,64129],[1986,64817],[1987,65415],[1988,65922],[1989,66335],[1990,66653],[1991,66919],[1992,67174],[1993,67414],[1994,67636],[1995,67836],[1996,68057],[1997,68341],[1998,68683],[1999,69083],[2000,69539],[2001,70007],[2002,70441],[2003,70844],[2004,71218],[2005,71566],[2006,71891],[2007,72194],[2008,72480]],"lifeExpectancy":[[1950,58.43],[1951,58.97],[1952,60.01],[1953,60.98],[1954,61.87],[1955,62.68],[1956,63.42],[1957,64.09],[1958,64.68],[1959,65.21],[1960,65.68],[1961,66.09],[1962,66.47],[1963,66.81],[1964,67.14],[1965,67.46],[1966,67.79],[1967,68.12],[1968,68.46],[1969,68.81],[1970,69.16],[1971,69.52],[1972,69.87],[1973,70.21],[1974,70.53],[1975,70.85],[1976,71.15],[1977,71.45],[1978,71.75],[1979,72.03],[1980,72.3],[1981,72.55],[1982,72.76],[1983,72.94],[1984,73.08],[1985,73.18],[1986,73.26],[1987,73.33],[1988,73.38],[1989,73.42],[1990,73.47],[1991,73.5],[1992,73.53],[1993,73.54],[1994,73.55],[1995,73.56],[1996,73.56],[1997,73.57],[1998,73.59],[1999,73.63],[2000,73.68],[2001,73.76],[2002,73.86],[2003,73.98],[2004,74.12],[2005,74.28],[2006,74.44],[2007,74.61],[2008,74.77],[2009,74.92]]},{"name":"Barbados","region":"America","income":[[1800,1017.81],[1820,1017.81],[1913,1877.92],[1950,3245.07],[1960,5319.74],[1961,5711.59],[1962,6204.49],[1963,5863.17],[1964,6130.21],[1965,6806.04],[1966,7057.57],[1967,7788.54],[1968,8306.96],[1969,8904.4],[1970,9712.48],[1971,9814.38],[1972,9853.81],[1973,9990.79],[1974,11268.72],[1975,10983.92],[1976,11414.78],[1977,11817.36],[1978,12375.14],[1979,13301.46],[1980,13858.9],[1981,13504.66],[1982,12736.47],[1983,12679.08],[1984,13003.27],[1985,13020.58],[1986,13560.56],[1987,13783.21],[1988,14140.09],[1989,14528.02],[1990,13954.78],[1991,13293.9],[1992,12263.45],[1993,12299.76],[1994,12736.75],[1995,13009.36],[1996,13356.08],[1997,13901.91],[1998,14702.32],[1999,14710.96],[2000,14982.12],[2001,14533.64],[2002,14544.49],[2003,14779.73],[2004,15268.13],[2005,15837],[2006,16294.8],[2007,16803.95],[2008,16783.85],[2009,15846.77]],"population":[[1800,81729],[1820,81729],[1851,136000],[1861,153000],[1871,162000],[1881,172000],[1891,183000],[1901,196000],[1911,172000],[1921,157000],[1946,194000],[1950,210666],[1951,214729],[1952,217959],[1953,221303],[1954,225244],[1955,227255],[1956,225962],[1957,225569],[1958,227979],[1959,231394],[1960,232339],[1961,229597],[1962,228747],[1963,230738],[1964,233269],[1965,234980],[1966,236227],[1967,238224],[1968,239868],[1969,239321],[1970,238756],[1971,240606],[1972,242445],[1973,244127],[1974,245563],[1975,247147],[1976,248023],[1977,249169],[1978,250145],[1979,251145],[1980,251966],[1981,252376],[1982,253522],[1983,254918],[1984,256227],[1985,257446],[1986,258506],[1987,259428],[1988,260313],[1989,261441],[1990,262624],[1991,263693],[1992,264925],[1993,265977],[1994,266906],[1995,267907],[1996,268944],[1997,270096],[1998,271232],[1999,272364],[2000,273483],[2001,274584],[2002,275673],[2003,276761],[2004,277816],[2005,278870],[2006,279912],[2007,280946],[2008,281968]],"lifeExpectancy":[[1950,54.59],[1951,55.29],[1952,56.65],[1953,57.92],[1954,59.11],[1955,60.22],[1956,61.24],[1957,62.18],[1958,63.04],[1959,63.81],[1960,64.5],[1961,65.11],[1962,65.64],[1963,66.1],[1964,66.5],[1965,66.87],[1966,67.2],[1967,67.53],[1968,67.85],[1969,68.18],[1970,68.52],[1971,68.88],[1972,69.25],[1973,69.62],[1974,69.99],[1975,70.36],[1976,70.73],[1977,71.09],[1978,71.43],[1979,71.77],[1980,72.09],[1981,72.4],[1982,72.7],[1983,73],[1984,73.29],[1985,73.56],[1986,73.83],[1987,74.07],[1988,74.29],[1989,74.49],[1990,74.66],[1991,74.79],[1992,74.88],[1993,74.94],[1994,74.98],[1995,75.01],[1996,75.04],[1997,75.09],[1998,75.16],[1999,75.27],[2000,75.41],[2001,75.59],[2002,75.8],[2003,76.03],[2004,76.28],[2005,76.53],[2006,76.79],[2007,77.04],[2008,77.28],[2009,77.51]]},{"name":"Belize","region":"America","income":[[1800,542.97],[1820,542.97],[1913,1001.8],[1950,1731.13],[1960,1868.46],[1961,1893.4],[1962,1916.32],[1963,1941.29],[1964,1972.05],[1965,2008.96],[1966,2049.49],[1967,2099.16],[1968,2206.04],[1969,2275.3],[1970,2345.4],[1971,2403.23],[1972,2616.7],[1973,2724.54],[1974,3051.15],[1975,3105.45],[1976,3039.69],[1977,3158.69],[1978,3318.66],[1979,3472.14],[1980,3893.63],[1981,3841.46],[1982,3732.09],[1983,3580.48],[1984,3537.98],[1985,3484.98],[1986,3554.57],[1987,3844.93],[1988,4092.66],[1989,4542.52],[1990,4871.11],[1991,5298.35],[1992,5780.69],[1993,5958.65],[1994,5806.45],[1995,5677.1],[1996,5632.53],[1997,5631.5],[1998,5632.34],[1999,5991.97],[2000,6545.45],[2001,6669.07],[2002,6799.54],[2003,7203.58],[2004,7300.54],[2005,7290],[2006,7392.78],[2007,7250.58],[2008,7297.77],[2009,6998.08]],"population":[[1800,25526],[1820,25526],[1861,26000],[1871,25000],[1881,27000],[1891,31000],[1901,37000],[1911,40000],[1921,45000],[1931,51000],[1946,59000],[1950,65797],[1951,66759],[1952,69932],[1953,72143],[1954,74408],[1955,76892],[1956,79651],[1957,82461],[1958,85394],[1959,88641],[1960,91863],[1961,94685],[1962,97594],[1963,100712],[1964,103902],[1965,106965],[1966,110115],[1967,113265],[1968,116293],[1969,119183],[1970,122070],[1971,124890],[1972,127661],[1973,130375],[1974,133027],[1975,135611],[1976,138135],[1977,140578],[1978,142937],[1979,145205],[1980,144416],[1981,149191],[1982,153277],[1983,156825],[1984,160800],[1985,165530],[1986,171219],[1987,176347],[1988,181390],[1989,186418],[1990,190847],[1991,195733],[1992,200798],[1993,206055],[1994,211500],[1995,217120],[1996,222908],[1997,228884],[1998,235030],[1999,241369],[2000,247887],[2001,254497],[2002,261138],[2003,267787],[2004,274435],[2005,281084],[2006,287730],[2007,294385],[2008,301022]],"lifeExpectancy":[[1950,56.67],[1951,56.92],[1952,57.42],[1953,57.93],[1954,58.43],[1955,58.93],[1956,59.43],[1957,59.93],[1958,60.43],[1959,60.93],[1960,61.43],[1961,61.93],[1962,62.43],[1963,62.93],[1964,63.44],[1965,63.94],[1966,64.44],[1967,64.94],[1968,65.44],[1969,65.93],[1970,66.42],[1971,66.9],[1972,67.37],[1973,67.83],[1974,68.29],[1975,68.73],[1976,69.16],[1977,69.57],[1978,69.97],[1979,70.35],[1980,70.69],[1981,71],[1982,71.27],[1983,71.5],[1984,71.69],[1985,71.84],[1986,71.94],[1987,72.02],[1988,72.08],[1989,72.13],[1990,72.19],[1991,72.27],[1992,72.39],[1993,72.54],[1994,72.72],[1995,72.94],[1996,73.18],[1997,73.42],[1998,73.66],[1999,73.89],[2000,74.11],[2001,74.34],[2002,74.59],[2003,74.85],[2004,75.14],[2005,75.44],[2006,75.74],[2007,76.04],[2008,76.33],[2009,76.6]]},{"name":"Bolivia","region":"America","income":[[1800,695.05],[1820,695.05],[1945,2227.96],[1946,2241.79],[1947,2254.85],[1948,2277.13],[1949,2298.47],[1950,2530.6],[1951,2653.57],[1952,2677.33],[1953,2373.25],[1954,2371.67],[1955,2443.66],[1956,2249.19],[1957,2127.69],[1958,2130.5],[1959,2076.82],[1960,2117.78],[1961,2113.49],[1962,2180.97],[1963,2268.27],[1964,2323.02],[1965,2380.76],[1966,2493.24],[1967,2586.89],[1968,2740.72],[1969,2794.62],[1970,2869.46],[1971,2906.44],[1972,2980.33],[1973,3107.44],[1974,3188.22],[1975,3317.13],[1976,3490],[1977,3548.1],[1978,3578.97],[1979,3496.02],[1980,3391.07],[1981,3358.19],[1982,3156.51],[1983,2965.56],[1984,2945.48],[1985,2875.32],[1986,2734.54],[1987,2753.69],[1988,2800.94],[1989,2819.34],[1990,2897.28],[1991,2982.23],[1992,2961.7],[1993,3015.14],[1994,3089.45],[1995,3164.52],[1996,3234.03],[1997,3326.14],[1998,3429.73],[1999,3377.57],[2000,3394.71],[2001,3390.16],[2002,3413.26],[2003,3450.76],[2004,3528.67],[2005,3618],[2006,3712.77],[2007,3803.13],[2008,3956.4],[2009,4007.16]],"population":[[1800,1100000],[1820,1100000],[1850,1374000],[1870,1495000],[1900,1696000],[1901,1710000],[1902,1723000],[1903,1737000],[1904,1751000],[1905,1765000],[1906,1779000],[1907,1793000],[1908,1808000],[1909,1822000],[1910,1837000],[1911,1851000],[1912,1866000],[1913,1881000],[1914,1915000],[1915,1951000],[1916,1986000],[1917,2023000],[1918,2060000],[1919,2098000],[1920,2136000],[1921,2161000],[1922,2186000],[1923,2212000],[1924,2237000],[1925,2263000],[1926,2289000],[1927,2316000],[1928,2343000],[1929,2370000],[1930,2397000],[1931,2425000],[1932,2453000],[1933,2482000],[1934,2511000],[1935,2540000],[1936,2569000],[1937,2599000],[1938,2629000],[1939,2659000],[1940,2690000],[1941,2721000],[1942,2753000],[1943,2785000],[1944,2817000],[1945,2850000],[1946,2883000],[1947,2916000],[1948,2950000],[1949,2984000],[1950,2766028],[1951,2823667],[1952,2883315],[1953,2944968],[1954,3008635],[1955,3074311],[1956,3141998],[1957,3211738],[1958,3283613],[1959,3357701],[1960,3434073],[1961,3512782],[1962,3593918],[1963,3677637],[1964,3764067],[1965,3853315],[1966,3945474],[1967,4040665],[1968,4139069],[1969,4240872],[1970,4346218],[1971,4454684],[1972,4565872],[1973,4679923],[1974,4796240],[1975,4914316],[1976,4955744],[1977,5079716],[1978,5204622],[1979,5326981],[1980,5441298],[1981,5545224],[1982,5642224],[1983,5737434],[1984,5834293],[1985,5934935],[1986,6041350],[1987,6156369],[1988,6283164],[1989,6423135],[1990,6573900],[1991,6731484],[1992,6893451],[1993,7055495],[1994,7216538],[1995,7376582],[1996,7535615],[1997,7693188],[1998,7848703],[1999,8001930],[2000,8152620],[2001,8300463],[2002,8445134],[2003,8586443],[2004,8724156],[2005,8857870],[2006,8989046],[2007,9119152],[2008,9247816]],"lifeExpectancy":[[1800,33],[1925,33],[1940,33],[1950,39.87],[1951,40.01],[1952,40.29],[1953,40.58],[1954,40.87],[1955,41.16],[1956,41.46],[1957,41.76],[1958,42.06],[1959,42.36],[1960,42.67],[1961,42.98],[1962,43.29],[1963,43.61],[1964,43.92],[1965,44.24],[1966,44.55],[1967,44.84],[1968,45.14],[1969,45.44],[1970,45.77],[1971,46.14],[1972,46.56],[1973,47.05],[1974,47.61],[1975,48.23],[1976,48.92],[1977,49.65],[1978,50.41],[1979,51.19],[1980,51.96],[1981,52.74],[1982,53.51],[1983,54.26],[1984,54.99],[1985,55.69],[1986,56.37],[1987,57.01],[1988,57.63],[1989,58.22],[1990,58.78],[1991,59.31],[1992,59.8],[1993,60.25],[1994,60.68],[1995,61.09],[1996,61.48],[1997,61.86],[1998,62.22],[1999,62.59],[2000,62.95],[2001,63.31],[2002,63.67],[2003,64.01],[2004,64.35],[2005,64.69],[2006,65.02],[2007,65.35],[2008,65.68],[2009,66.01]]},{"name":"Brazil","region":"America","income":[[1800,509.2],[1820,539.02],[1850,571.9],[1851,611.36],[1852,594.85],[1853,558.23],[1854,539.18],[1855,544.31],[1856,564.09],[1857,603.65],[1858,642.47],[1859,637.34],[1860,654.19],[1861,648.33],[1862,617.56],[1863,631.48],[1864,640.27],[1865,687.89],[1866,712.8],[1867,772.14],[1868,772.14],[1869,772.14],[1870,715.73],[1871,715.73],[1872,740.64],[1873,718.66],[1874,729.65],[1875,740.64],[1876,712.8],[1877,693.02],[1878,726.72],[1879,732.58],[1880,698.88],[1881,704.74],[1882,721.59],[1883,701.81],[1884,749.43],[1885,695.95],[1886,718.66],[1887,671.04],[1888,645.4],[1889,654.19],[1890,715.73],[1891,760.42],[1892,659.32],[1893,561.16],[1894,561.16],[1895,665.18],[1896,603.65],[1897,594.85],[1898,608.77],[1899,597.78],[1900,575.07],[1901,648.48],[1902,629.74],[1903,630.97],[1904,622.59],[1905,632.64],[1906,696.97],[1907,691.3],[1908,654.7],[1909,705.48],[1910,711.35],[1911,737.66],[1912,770.7],[1913,778.23],[1914,750.11],[1915,738.09],[1916,729.69],[1917,783.66],[1918,749.02],[1919,792.56],[1920,875.52],[1921,874.14],[1922,925.6],[1923,984.14],[1924,980.08],[1925,959.96],[1926,989.1],[1927,1076.22],[1928,1177.58],[1929,1164.62],[1930,1118.34],[1931,1056.7],[1932,1081.05],[1933,1157.13],[1934,1237.46],[1935,1250.24],[1936,1374.69],[1937,1410.23],[1938,1444.01],[1939,1449.77],[1940,1406.39],[1941,1443.76],[1942,1369.92],[1943,1457.02],[1944,1538.99],[1945,1553.89],[1946,1695.26],[1947,1694.1],[1948,1813.51],[1949,1903.64],[1950,1979.81],[1951,2020.23],[1952,2108.94],[1953,2145.84],[1954,2249.2],[1955,2379.48],[1956,2376.5],[1957,2487.37],[1958,2680.43],[1959,2861.75],[1960,3044.13],[1961,3214.19],[1962,3336.59],[1963,3260.25],[1964,3277.01],[1965,3261.05],[1966,3385.4],[1967,3429.86],[1968,3666.98],[1969,3909.48],[1970,4184.07],[1971,4554.85],[1972,4985.71],[1973,5558.5],[1974,5873.83],[1975,6031.57],[1976,6500.65],[1977,6660.12],[1978,6825.89],[1979,7117.96],[1980,7623.18],[1981,7128.81],[1982,7030.84],[1983,6672.28],[1984,6890.25],[1985,7286.96],[1986,7685.06],[1987,7807.1],[1988,7657.32],[1989,7763.04],[1990,7136.93],[1991,7097.83],[1992,6950.28],[1993,7188.19],[1994,7503.67],[1995,7713.35],[1996,7810.2],[1997,7957.98],[1998,7860.55],[1999,7818.96],[2000,8056.06],[2001,8022.52],[2002,8131.21],[2003,8110.41],[2004,8461.5],[2005,8596],[2006,8869.55],[2007,9305.66],[2008,9682],[2009,9569.78]],"population":[[1820,4507000],[1850,7234000],[1870,9797000],[1871,9980000],[1872,10167000],[1873,10358000],[1874,10552000],[1875,10749000],[1876,10951000],[1877,11156000],[1878,11365000],[1879,11578000],[1880,11794000],[1881,12015000],[1882,12240000],[1883,12470000],[1884,12703000],[1885,12941000],[1886,13183000],[1887,13430000],[1888,13682000],[1889,13938000],[1890,14199000],[1891,14539000],[1892,14886000],[1893,15242000],[1894,15607000],[1895,15980000],[1896,16362000],[1897,16753000],[1898,17154000],[1899,17564000],[1900,17984000],[1901,18392000],[1902,18782000],[1903,19180000],[1904,19587000],[1905,20003000],[1906,20427000],[1907,20860000],[1908,21303000],[1909,21754000],[1910,22216000],[1911,22687000],[1912,23168000],[1913,23660000],[1914,24161000],[1915,24674000],[1916,25197000],[1917,25732000],[1918,26277000],[1919,26835000],[1920,27404000],[1921,27969000],[1922,28542000],[1923,29126000],[1924,29723000],[1925,30332000],[1926,30953000],[1927,31587000],[1928,32234000],[1929,32894000],[1930,33568000],[1931,34256000],[1932,34957000],[1933,35673000],[1934,36404000],[1935,37150000],[1936,37911000],[1937,38687000],[1938,39480000],[1939,40289000],[1940,41114000],[1941,42069000],[1942,43069000],[1943,44093000],[1944,45141000],[1945,46215000],[1946,47313000],[1947,48438000],[1948,49590000],[1949,50769000],[1950,53443075],[1951,54995532],[1952,56602560],[1953,58266357],[1954,59989219],[1955,61773546],[1956,63631992],[1957,65551171],[1958,67533213],[1959,69580328],[1960,71694810],[1961,73832902],[1962,76039390],[1963,78316598],[1964,80666939],[1965,83092908],[1966,85557441],[1967,88049823],[1968,90569084],[1969,93114241],[1970,95684297],[1971,98245467],[1972,100840058],[1973,103469438],[1974,106131448],[1975,108823732],[1976,111545124],[1977,114313951],[1978,117146603],[1979,120040282],[1980,122958132],[1981,125929730],[1982,128962939],[1983,131891729],[1984,134626216],[1985,137302933],[1986,140111725],[1987,142938076],[1988,145782100],[1989,148567499],[1990,151083809],[1991,153511587],[1992,155975974],[1993,158471338],[1994,160994257],[1995,163542501],[1996,166073876],[1997,168546719],[1998,170956177],[1999,173293681],[2000,175552771],[2001,177752913],[2002,179914212],[2003,182032604],[2004,184101109],[2005,186112794],[2006,188078227],[2007,190010647],[2008,191908598]],"lifeExpectancy":[[1800,32],[1920,31.98],[1930,32],[1940,36.64],[1945,42.3],[1950,49.97],[1951,50.2],[1952,50.67],[1953,51.14],[1954,51.61],[1955,52.09],[1956,52.58],[1957,53.06],[1958,53.55],[1959,54.03],[1960,54.51],[1961,54.97],[1962,55.43],[1963,55.86],[1964,56.28],[1965,56.69],[1966,57.08],[1967,57.45],[1968,57.83],[1969,58.2],[1970,58.57],[1971,58.94],[1972,59.32],[1973,59.71],[1974,60.1],[1975,60.49],[1976,60.89],[1977,61.29],[1978,61.68],[1979,62.07],[1980,62.46],[1981,62.84],[1982,63.22],[1983,63.6],[1984,63.98],[1985,64.36],[1986,64.74],[1987,65.12],[1988,65.5],[1989,65.88],[1990,66.26],[1991,66.65],[1992,67.06],[1993,67.47],[1994,67.88],[1995,68.3],[1996,68.7],[1997,69.1],[1998,69.48],[1999,69.85],[2000,70.19],[2001,70.51],[2002,70.82],[2003,71.11],[2004,71.4],[2005,71.67],[2006,71.93],[2007,72.19],[2008,72.44],[2009,72.68]]},{"name":"Canada","region":"America","income":[[1800,1159.5],[1820,1312.47],[1830,1451.18],[1840,1686.35],[1850,1929.46],[1860,2105.05],[1870,2459.06],[1871,2546.14],[1872,2474.56],[1873,2672.9],[1874,2690.08],[1875,2588.86],[1876,2381.27],[1877,2506.83],[1878,2375.88],[1879,2561.68],[1880,2635.18],[1881,2959.8],[1882,3060.65],[1883,3033.5],[1884,3237.49],[1885,3008.03],[1886,3011.56],[1887,3076.36],[1888,3263.56],[1889,3249.51],[1890,3451.46],[1891,3495.5],[1892,3440.52],[1893,3386.62],[1894,3512.53],[1895,3440.7],[1896,3321],[1897,3644.66],[1898,3749.07],[1899,4056.95],[1900,4224.78],[1901,4493.99],[1902,4833.78],[1903,4837.7],[1904,4759.25],[1905,5168.85],[1906,5581.55],[1907,5623.11],[1908,5183.71],[1909,5586.47],[1910,5900.16],[1911,6113.16],[1912,6352.01],[1913,6453.07],[1914,5841.42],[1915,6142.69],[1916,6742.36],[1917,6966.52],[1918,6444.11],[1919,5832.8],[1920,5603.71],[1921,4871.63],[1922,5504.55],[1923,5769.84],[1924,5771.38],[1925,6298.53],[1926,6526.05],[1927,7033.87],[1928,7504.92],[1929,7350.88],[1930,6981.06],[1931,5810.09],[1932,5327.95],[1933,4891.07],[1934,5356.36],[1935,5733.08],[1936,5984.97],[1937,6491.73],[1938,6596.94],[1939,6919.43],[1940,7790.3],[1941,8780.77],[1942,10206.71],[1943,10539.59],[1944,10800.51],[1945,10351.21],[1946,10058.5],[1947,10286.28],[1948,10253.07],[1949,10251.27],[1950,10581.27],[1951,10932.47],[1952,11367.16],[1953,11586.61],[1954,11173.26],[1955,11901.51],[1956,12555.55],[1957,12489.95],[1958,12384.41],[1959,12590.8],[1960,12701.48],[1961,12817.92],[1962,13462.49],[1963,13882.56],[1964,14510.9],[1965,15198.11],[1966,15884.84],[1967,16076.59],[1968,16658.21],[1969,17286.99],[1970,17487.46],[1971,18229.64],[1972,18970.57],[1973,20081.31],[1974,20613.59],[1975,20775.51],[1976,21626.09],[1977,22090.88],[1978,22754.83],[1979,23465.83],[1980,23473.9],[1981,23904.53],[1982,22898.79],[1983,23329.8],[1984,24431.85],[1985,25514.79],[1986,25921.17],[1987,26626.52],[1988,27562.41],[1989,27729.9],[1990,27387.27],[1991,26491.6],[1992,26342.88],[1993,26590.4],[1994,27543.91],[1995,27969.67],[1996,28074.84],[1997,28954.93],[1998,29837.46],[1999,31154.86],[2000,32448.61],[2001,32570.57],[2002,33328.97],[2003,33635.25],[2004,34346.97],[2005,35078],[2006,35714.67],[2007,36225.06],[2008,35950.08],[2009,34569.63]],"population":[[1820,816000],[1830,1169000],[1840,1697000],[1850,2485000],[1860,3369000],[1870,3781000],[1871,3801000],[1872,3870000],[1873,3943000],[1874,4012000],[1875,4071000],[1876,4128000],[1877,4184000],[1878,4244000],[1879,4312000],[1880,4384000],[1881,4451000],[1882,4503000],[1883,4560000],[1884,4617000],[1885,4666000],[1886,4711000],[1887,4760000],[1888,4813000],[1889,4865000],[1890,4918000],[1891,4972000],[1892,5022000],[1893,5072000],[1894,5121000],[1895,5169000],[1896,5218000],[1897,5269000],[1898,5325000],[1899,5383000],[1900,5457000],[1901,5536000],[1902,5650000],[1903,5813000],[1904,5994000],[1905,6166000],[1906,6282000],[1907,6596000],[1908,6813000],[1909,6993000],[1910,7188000],[1911,7410000],[1912,7602000],[1913,7852000],[1914,8093000],[1915,8191000],[1916,8214000],[1917,8277000],[1918,8374000],[1919,8548000],[1920,8798000],[1921,9028000],[1922,9159000],[1923,9256000],[1924,9394000],[1925,9549000],[1926,9713000],[1927,9905000],[1928,10107000],[1929,10305000],[1930,10488000],[1931,10657000],[1932,10794000],[1933,10919000],[1934,11030000],[1935,11136000],[1936,11243000],[1937,11341000],[1938,11452000],[1939,11570000],[1940,11688000],[1941,11818000],[1942,11969000],[1943,12115000],[1944,12268000],[1945,12404000],[1946,12634000],[1947,12901000],[1948,13180000],[1949,13469000],[1950,14011422],[1951,14330675],[1952,14785584],[1953,15183375],[1954,15636245],[1955,16050356],[1956,16445087],[1957,17010154],[1958,17462004],[1959,17872034],[1960,18266765],[1961,18634977],[1962,18985849],[1963,19342841],[1964,19711053],[1965,20071104],[1966,20448496],[1967,20819767],[1968,21143100],[1969,21448073],[1970,21749986],[1971,22026400],[1972,22284500],[1973,22559500],[1974,22874700],[1975,23209200],[1976,23517500],[1977,23796400],[1978,24036300],[1979,24276900],[1980,24593300],[1981,24900000],[1982,25201900],[1983,25456300],[1984,25701800],[1985,25941600],[1986,26203800],[1987,26549700],[1988,26894800],[1989,27379300],[1990,27790600],[1991,28117600],[1992,28523502],[1993,28920644],[1994,29262472],[1995,29619002],[1996,29983162],[1997,30305843],[1998,30628924],[1999,30957019],[2000,31278097],[2001,31592805],[2002,31902268],[2003,32207113],[2004,32507874],[2005,32805041],[2006,33098932],[2007,33390141],[2008,33679263]],"lifeExpectancy":[[1800,39],[1831,39.05],[1841,40.32],[1851,41.06],[1861,41.6],[1871,42.56],[1881,44.73],[1891,45.17],[1901,48.63],[1911,52.51],[1921,57.02],[1922,57.02],[1923,57.02],[1924,58.83],[1925,59.31],[1926,57.99],[1927,58.68],[1928,58.57],[1929,57.97],[1930,58.95],[1931,60.36],[1932,61.43],[1933,62.36],[1934,62.77],[1935,62.49],[1936,62.72],[1937,61.35],[1938,63.31],[1939,63.74],[1940,64.01],[1941,63.76],[1942,64.7],[1943,64.61],[1944,65.35],[1945,66.33],[1946,66.53],[1947,66.78],[1948,67.33],[1949,67.65],[1950,68.28],[1951,68.55],[1952,68.75],[1953,69.13],[1954,69.99],[1955,70.05],[1956,70.04],[1957,69.96],[1958,70.62],[1959,70.66],[1960,71.04],[1961,71.27],[1962,71.3],[1963,71.31],[1964,71.69],[1965,71.79],[1966,71.92],[1967,72.13],[1968,72.29],[1969,72.45],[1970,72.65],[1971,72.98],[1972,72.88],[1973,73.11],[1974,73.19],[1975,73.49],[1976,73.92],[1977,74.21],[1978,74.54],[1979,74.9],[1980,75.14],[1981,75.55],[1982,75.76],[1983,76.13],[1984,76.43],[1985,76.41],[1986,76.56],[1987,76.86],[1988,76.93],[1989,77.2],[1990,77.51],[1991,77.69],[1992,77.95],[1993,77.83],[1994,78.01],[1995,78.13],[1996,78.4],[1997,78.61],[1998,78.83],[1999,79.05],[2000,79.41],[2001,79.65],[2002,79.77],[2003,79.95],[2004,80.25],[2005,80.36],[2006,80.78],[2007,80.59],[2008,80.74],[2009,80.89]]},{"name":"Chile","region":"America","income":[[1800,702.1],[1820,702.1],[1821,671.26],[1822,674.88],[1823,672.16],[1824,655.85],[1825,675.33],[1826,680.4],[1827,683.34],[1828,678.3],[1829,682.26],[1830,671.74],[1831,670.8],[1832,679.53],[1833,676.85],[1834,691.32],[1835,706.81],[1836,701.53],[1837,718.11],[1838,721.22],[1839,722.49],[1840,759.86],[1841,761.15],[1842,769.85],[1843,784.83],[1844,787.67],[1845,802.73],[1846,821],[1847,829.82],[1848,854.98],[1849,906.14],[1850,942.87],[1851,959.04],[1852,977.78],[1853,946.81],[1854,964.38],[1855,998.49],[1856,1000.39],[1857,1022.86],[1858,1057.28],[1859,1081.1],[1860,1106.69],[1861,1096.14],[1862,1081.49],[1863,1111.61],[1864,1158.9],[1865,1186.33],[1866,1199.8],[1867,1141.19],[1868,1186.1],[1869,1291.65],[1870,1305.81],[1871,1288.95],[1872,1364.89],[1873,1433.73],[1874,1353.28],[1875,1443.33],[1876,1406.65],[1877,1341.24],[1878,1401.5],[1879,1590.66],[1880,1761.15],[1881,1796.41],[1882,1917.94],[1883,1902.05],[1884,1891.54],[1885,1809.21],[1886,1859.31],[1887,1961.87],[1888,1858.47],[1889,1880.77],[1890,1990.16],[1891,2124.06],[1892,2054.33],[1893,2128.49],[1894,2066.71],[1895,2183.84],[1896,2168.76],[1897,2094.59],[1898,2319.9],[1899,2306.31],[1900,2220.49],[1901,2249.32],[1902,2320.22],[1903,2164.58],[1904,2315.07],[1905,2286.48],[1906,2437.44],[1907,2537.55],[1908,2775.6],[1909,2758.56],[1910,3036.29],[1911,2921.34],[1912,3003.54],[1913,3024.38],[1914,2526.96],[1915,2417.9],[1916,2930.1],[1917,2958.57],[1918,2961.16],[1919,2510.4],[1920,2801.57],[1921,2398.38],[1922,2455.04],[1923,2919.39],[1924,3098.6],[1925,3190.46],[1926,2884.86],[1927,2793.06],[1928,3372.55],[1929,3497.1],[1930,2893.24],[1931,2244.42],[1932,1866.7],[1933,2263.32],[1934,2687.51],[1935,2794.54],[1936,2881.79],[1937,3219.61],[1938,3199.01],[1939,3207.47],[1940,3275.24],[1941,3178.6],[1942,3264.58],[1943,3295.38],[1944,3295.07],[1945,3513.35],[1946,3743.95],[1947,3279.23],[1948,3756.64],[1949,3611.84],[1950,3714],[1951,3775.99],[1952,3939.98],[1953,4161.72],[1954,3954.37],[1955,4023.33],[1956,4004.52],[1957,4315.62],[1958,4444.52],[1959,4090.77],[1960,4321.77],[1961,4418.96],[1962,4519.09],[1963,4695.23],[1964,4694.22],[1965,4632.34],[1966,5044.56],[1967,5106.65],[1968,5189.48],[1969,5283.39],[1970,5294.52],[1971,5664.81],[1972,5494.02],[1973,5094.38],[1974,5052.19],[1975,4324.83],[1976,4399.45],[1977,4756.76],[1978,5071.09],[1979,5409.11],[1980,5748.92],[1981,6003.99],[1982,5095.67],[1983,4868.24],[1984,5071.32],[1985,5090.75],[1986,5290.96],[1987,5547.06],[1988,5850.79],[1989,6359.08],[1990,6478.75],[1991,6877.27],[1992,7596.13],[1993,8000.88],[1994,8501.17],[1995,9082.42],[1996,9620.05],[1997,10118.05],[1998,10310.03],[1999,10105.61],[2000,10435.17],[2001,10665.2],[2002,10778.78],[2003,11082.55],[2004,11649.71],[2005,12262],[2006,12677.5],[2007,13124.6],[2008,13474.41],[2009,13087.38]],"population":[[1800,771447],[1820,771447],[1821,789144],[1822,807304],[1823,825890],[1824,844866],[1825,864198],[1826,883855],[1827,903807],[1828,924027],[1829,944490],[1830,965173],[1831,986056],[1832,1007120],[1833,1028350],[1834,1049733],[1835,1071256],[1836,1092912],[1837,1114694],[1838,1136597],[1839,1158619],[1840,1180761],[1841,1203023],[1842,1225410],[1843,1247926],[1844,1270578],[1845,1293375],[1846,1316325],[1847,1339439],[1848,1362729],[1849,1386207],[1850,1409885],[1851,1433777],[1852,1457897],[1853,1482258],[1854,1506873],[1855,1531758],[1856,1556924],[1857,1582386],[1858,1608154],[1859,1634242],[1860,1660659],[1861,1687416],[1862,1714521],[1863,1741983],[1864,1769808],[1865,1798001],[1866,1826566],[1867,1855505],[1868,1884819],[1869,1914507],[1870,1944569],[1871,1974998],[1872,2005790],[1873,2036939],[1874,2068435],[1875,2100268],[1876,2132427],[1877,2164899],[1878,2197670],[1879,2230723],[1880,2264042],[1881,2297611],[1882,2331409],[1883,2365419],[1884,2399621],[1885,2433995],[1886,2468522],[1887,2503181],[1888,2537954],[1889,2572823],[1890,2607769],[1891,2642778],[1892,2677834],[1893,2712925],[1894,2748040],[1895,2783171],[1896,2818312],[1897,2853462],[1898,2888620],[1899,2923792],[1900,2958986],[1901,2994214],[1902,3029494],[1903,3064845],[1904,3100295],[1905,3135874],[1906,3171619],[1907,3207571],[1908,3243777],[1909,3280289],[1910,3317166],[1911,3354469],[1912,3392269],[1913,3430640],[1914,3469662],[1915,3509420],[1916,3550005],[1917,3591512],[1918,3634043],[1919,3677702],[1920,3722598],[1921,3768846],[1922,3816561],[1923,3865863],[1924,3916875],[1925,3969721],[1926,4024523],[1927,4081406],[1928,4140494],[1929,4201905],[1930,4265756],[1931,4332156],[1932,4401207],[1933,4473001],[1934,4547615],[1935,4625112],[1936,4705534],[1937,4788901],[1938,4875203],[1939,4964398],[1940,5056404],[1941,5151095],[1942,5248293],[1943,5347758],[1944,5449185],[1945,5552190],[1946,5656303],[1947,5760959],[1948,5865486],[1949,5969096],[1950,6090833],[1951,6251933],[1952,6377619],[1953,6492774],[1954,6612138],[1955,6743269],[1956,6888843],[1957,7048426],[1958,7219783],[1959,7399842],[1960,7585349],[1961,7773314],[1962,7961258],[1963,8147349],[1964,8330423],[1965,8509950],[1966,8685954],[1967,8858908],[1968,9029621],[1969,9199122],[1970,9368558],[1971,9540298],[1972,9717524],[1973,9896635],[1974,10076544],[1975,10251542],[1976,10432214],[1977,10599793],[1978,10759823],[1979,10922822],[1980,11093718],[1981,11282304],[1982,11487112],[1983,11686845],[1984,11879139],[1985,12066701],[1986,12259840],[1987,12463354],[1988,12677524],[1989,12901157],[1990,13127760],[1991,13352503],[1992,13572994],[1993,13788271],[1994,14000060],[1995,14205449],[1996,14404243],[1997,14599929],[1998,14790995],[1999,14975383],[2000,15153450],[2001,15327316],[2002,15497046],[2003,15662645],[2004,15823957],[2005,15980912],[2006,16134219],[2007,16284741],[2008,16432536]],"lifeExpectancy":[[1800,32],[1902,32],[1907,30.5],[1912,31.9],[1917,32.2],[1922,31.6],[1927,37],[1932,38.7],[1937,39.1],[1942,44],[1947,47.9],[1950,54.34],[1951,54.45],[1952,54.67],[1953,54.91],[1954,55.16],[1955,55.43],[1956,55.72],[1957,56.02],[1958,56.33],[1959,56.67],[1960,57.03],[1961,57.42],[1962,57.83],[1963,58.28],[1964,58.76],[1965,59.26],[1966,59.78],[1967,60.32],[1968,60.87],[1969,61.44],[1970,62.02],[1971,62.63],[1972,63.27],[1973,63.93],[1974,64.62],[1975,65.34],[1976,66.08],[1977,66.84],[1978,67.6],[1979,68.35],[1980,69.07],[1981,69.74],[1982,70.36],[1983,70.91],[1984,71.4],[1985,71.83],[1986,72.22],[1987,72.57],[1988,72.91],[1989,73.24],[1990,73.56],[1991,73.87],[1992,74.56],[1993,74.64],[1994,75.12],[1995,75.04],[1996,75.36],[1997,75.93],[1998,76.05],[1999,76.25],[2000,77.01],[2001,76.86],[2002,77.42],[2003,77.48],[2004,77.53],[2005,77.93],[2006,78.34],[2007,78.45],[2008,78.56],[2009,78.67]]},{"name":"Colombia","region":"America","income":[[1800,522.98],[1820,522.98],[1905,643.11],[1906,648.17],[1907,677.81],[1908,702],[1909,724.72],[1910,751.11],[1911,772.97],[1912,795.3],[1913,813.77],[1914,823.55],[1915,840.3],[1916,861.89],[1917,874.93],[1918,900.89],[1919,952.4],[1920,992.81],[1921,1024.24],[1922,1067.09],[1923,1107.43],[1924,1141.8],[1925,1173.69],[1926,1255.5],[1927,1336],[1928,1399.43],[1929,1413.64],[1930,1384.68],[1931,1345.95],[1932,1419.21],[1933,1482.01],[1934,1557.56],[1935,1577.06],[1936,1641.72],[1937,1647.76],[1938,1735.24],[1939,1795.23],[1940,1786.07],[1941,1768.32],[1942,1724.65],[1943,1685.56],[1944,1754.34],[1945,1789.64],[1946,1913.78],[1947,1936.98],[1948,1940.11],[1949,2057.58],[1950,2087.95],[1951,2079.14],[1952,2144.12],[1953,2184.17],[1954,2270.06],[1955,2286.56],[1956,2321.02],[1957,2323.81],[1958,2292.18],[1959,2381.6],[1960,2399.03],[1961,2443.57],[1962,2492.35],[1963,2493.77],[1964,2566.86],[1965,2591.01],[1966,2657.98],[1967,2678.73],[1968,2770.65],[1969,2871.63],[1970,2987.81],[1971,3095.9],[1972,3264.66],[1973,3415.45],[1974,3557.45],[1975,3587.95],[1976,3706.3],[1977,3815.81],[1978,4095.24],[1979,4263.25],[1980,4379.58],[1981,4424.36],[1982,4397.58],[1983,4406.32],[1984,4470.55],[1985,4533.92],[1986,4719.37],[1987,4903.22],[1988,5046.81],[1989,5145.39],[1990,5302.34],[1991,5321.6],[1992,5444.65],[1993,5645.09],[1994,5823.7],[1995,6013.41],[1996,6022.65],[1997,6117.36],[1998,6041.41],[1999,5680.88],[2000,5749.55],[2001,5738],[2002,5755.26],[2003,5885.52],[2004,6080.32],[2005,6306],[2006,6663.54],[2007,7081.42],[2008,7168.15],[2009,7090.69]],"population":[[1800,1206000],[1820,1206000],[1850,2065000],[1870,2392000],[1890,3369000],[1900,3998000],[1901,4079000],[1902,4162000],[1903,4247000],[1904,4334000],[1905,4422000],[1906,4512000],[1907,4604000],[1908,4697000],[1909,4793000],[1910,4890000],[1911,4990000],[1912,5091000],[1913,5195000],[1914,5330000],[1915,5468000],[1916,5609000],[1917,5754000],[1918,5903000],[1919,6056000],[1920,6213000],[1921,6374000],[1922,6539000],[1923,6709000],[1924,6882000],[1925,7061000],[1926,7243000],[1927,7431000],[1928,7624000],[1929,7821000],[1930,7914000],[1931,8009000],[1932,8104000],[1933,8201000],[1934,8299000],[1935,8398000],[1936,8498000],[1937,8599000],[1938,8702000],[1939,8935000],[1940,9174000],[1941,9419000],[1942,9671000],[1943,9930000],[1944,10196000],[1945,10469000],[1946,10749000],[1947,11036000],[1948,11332000],[1949,11635000],[1950,11591658],[1951,11965000],[1952,12350771],[1953,12749619],[1954,13162003],[1955,13588405],[1956,14029321],[1957,14485993],[1958,14958277],[1959,15446730],[1960,15952727],[1961,16476124],[1962,17009885],[1963,17546017],[1964,18090000],[1965,18646175],[1966,19201732],[1967,19764027],[1968,20321665],[1969,20869140],[1970,21429658],[1971,21992579],[1972,22542890],[1973,23069231],[1974,23593390],[1975,24114177],[1976,24620486],[1977,25094412],[1978,25542727],[1979,26030848],[1980,26582811],[1981,27159381],[1982,27764644],[1983,28389398],[1984,29027923],[1985,29678395],[1986,30326818],[1987,30964245],[1988,31589376],[1989,32216557],[1990,32858579],[1991,33518610],[1992,34202721],[1993,34896573],[1994,35588746],[1995,36280883],[1996,36971016],[1997,37657830],[1998,38339937],[1999,39016113],[2000,39685655],[2001,40349388],[2002,41008227],[2003,41662073],[2004,42310775],[2005,42954279],[2006,43593035],[2007,44227550],[2008,44858264]],"lifeExpectancy":[[1800,32],[1912,32],[1918,31.99],[1930,32],[1938,36.6],[1944,41.85],[1950,48.37],[1951,48.97],[1952,50.14],[1953,51.22],[1954,52.23],[1955,53.16],[1956,54.02],[1957,54.79],[1958,55.5],[1959,56.14],[1960,56.72],[1961,57.25],[1962,57.74],[1963,58.2],[1964,58.64],[1965,59.06],[1966,59.46],[1967,59.84],[1968,60.2],[1969,60.54],[1970,60.87],[1971,61.21],[1972,61.56],[1973,61.93],[1974,62.32],[1975,62.75],[1976,63.23],[1977,63.76],[1978,64.32],[1979,64.9],[1980,65.48],[1981,66.03],[1982,66.52],[1983,66.95],[1984,67.3],[1985,67.57],[1986,67.78],[1987,67.93],[1988,68.05],[1989,68.17],[1990,68.3],[1991,68.45],[1992,68.64],[1993,68.86],[1994,69.13],[1995,69.43],[1996,69.75],[1997,70.07],[1998,70.39],[1999,70.7],[2000,70.98],[2001,71.25],[2002,71.51],[2003,71.76],[2004,72.01],[2005,72.25],[2006,72.49],[2007,72.72],[2008,72.96],[2009,73.19]]},{"name":"Costa Rica","region":"America","income":[[1800,670.12],[1820,670.12],[1920,2018.1],[1921,1930.71],[1922,2101.23],[1923,1898.13],[1924,2123.84],[1925,2069.57],[1926,2239.72],[1927,2033.47],[1928,2094.67],[1929,1965.69],[1930,2020.83],[1931,1956.83],[1932,1766.24],[1933,2063.55],[1934,1785.98],[1935,1898.13],[1936,1988.51],[1937,2239.22],[1938,2331.87],[1939,2320.61],[1940,2190.97],[1941,2414.62],[1942,2097.5],[1943,2061.95],[1944,1813.06],[1945,2006.27],[1946,2186.31],[1947,2529.91],[1948,2603.3],[1949,2638.98],[1950,2439.82],[1951,2425.02],[1952,2627.01],[1953,2924],[1954,2845.1],[1955,3057.12],[1956,2859.88],[1957,2990.01],[1958,3237.3],[1959,3228.87],[1960,3374.88],[1961,3383.62],[1962,3460.94],[1963,3627.39],[1964,3680.52],[1965,3885.68],[1966,4049.72],[1967,4161.73],[1968,4346.33],[1969,4501.74],[1970,4665.44],[1971,4833.79],[1972,5118.15],[1973,5367.23],[1974,5505.86],[1975,5463.45],[1976,5600.27],[1977,5926.88],[1978,6052.64],[1979,6163.74],[1980,6102.95],[1981,5817.93],[1982,5262.73],[1983,5257.08],[1984,5508.07],[1985,5394.25],[1986,5525.6],[1987,5629.92],[1988,5668.47],[1989,5839.22],[1990,5899.67],[1991,5885.81],[1992,6160.42],[1993,6374.84],[1994,6508.09],[1995,6515.31],[1996,6444.68],[1997,6677.05],[1998,7106.62],[1999,7637.89],[2000,7672.85],[2001,7627.11],[2002,7723.45],[2003,8098.56],[2004,8301.9],[2005,8661],[2006,9231.72],[2007,9765.16],[2008,9840.79],[2009,9551.56]],"population":[[1801,53000],[1820,63000],[1824,65000],[1836,78000],[1844,94000],[1850,101000],[1864,120000],[1870,137000],[1875,153000],[1883,182000],[1892,243000],[1900,297000],[1901,310000],[1902,320000],[1903,320000],[1904,330000],[1905,340000],[1906,340000],[1907,350000],[1908,350000],[1909,360000],[1910,363000],[1911,366000],[1912,369000],[1913,372000],[1914,390000],[1915,390000],[1916,400000],[1917,400000],[1918,410000],[1919,420000],[1920,420000],[1921,430000],[1922,430000],[1923,440000],[1924,450000],[1925,460000],[1926,470000],[1927,470000],[1928,480000],[1929,490000],[1930,500000],[1931,510000],[1932,520000],[1933,530000],[1934,540000],[1935,550000],[1936,560000],[1937,580000],[1938,590000],[1939,610000],[1940,620000],[1941,630000],[1942,650000],[1943,660000],[1944,680000],[1945,700000],[1946,710000],[1947,730000],[1948,750000],[1949,770000],[1950,866982],[1951,895336],[1952,926317],[1953,958893],[1954,993786],[1955,1031782],[1956,1071654],[1957,1112300],[1958,1154408],[1959,1200148],[1960,1248022],[1961,1296587],[1962,1345187],[1963,1393441],[1964,1440184],[1965,1487605],[1966,1538442],[1967,1588717],[1968,1638476],[1969,1687100],[1970,1735523],[1971,1785636],[1972,1834796],[1973,1886035],[1974,1937413],[1975,1991580],[1976,2048557],[1977,2108457],[1978,2192367],[1979,2259714],[1980,2299124],[1981,2357285],[1982,2424367],[1983,2494353],[1984,2567516],[1985,2643808],[1986,2723111],[1987,2799811],[1988,2875267],[1989,2951454],[1990,3027175],[1991,3101029],[1992,3173216],[1993,3244282],[1994,3314588],[1995,3383786],[1996,3451722],[1997,3518107],[1998,3583162],[1999,3647319],[2000,3710558],[2001,3773057],[2002,3834934],[2003,3896092],[2004,3956507],[2005,4016173],[2006,4075261],[2007,4133884],[2008,4191948]],"lifeExpectancy":[[1800,30.21],[1875,30.21],[1889,30.2],[1900,34.7],[1910,35.1],[1920,35.1],[1930,42.2],[1940,46.9],[1950,56.11],[1951,56.39],[1952,56.97],[1953,57.55],[1954,58.13],[1955,58.71],[1956,59.29],[1957,59.87],[1958,60.45],[1959,61.03],[1960,61.61],[1961,62.18],[1962,62.74],[1963,63.29],[1964,63.83],[1965,64.36],[1966,64.87],[1967,65.37],[1968,65.86],[1969,66.35],[1970,66.83],[1971,67.34],[1972,67.86],[1973,68.4],[1974,68.96],[1975,69.54],[1976,70.15],[1977,70.77],[1978,71.39],[1979,72],[1980,72.56],[1981,73.07],[1982,73.5],[1983,73.86],[1984,74.15],[1985,74.39],[1986,74.59],[1987,74.79],[1988,75],[1989,75.24],[1990,75.5],[1991,75.77],[1992,76.05],[1993,76.31],[1994,76.56],[1995,76.79],[1996,77],[1997,77.2],[1998,77.39],[1999,77.57],[2000,77.74],[2001,77.9],[2002,78.06],[2003,78.21],[2004,78.35],[2005,78.48],[2006,78.61],[2007,78.74],[2008,78.86],[2009,78.98]]},{"name":"Cuba","region":"America","income":[[1800,1123.88],[1820,1123.88],[1929,4148.69],[1930,3811.08],[1931,3142.29],[1932,2474.51],[1933,2627.11],[1934,3028.01],[1935,3471.57],[1936,3982.61],[1937,4505],[1938,3437.35],[1939,3572.08],[1940,3058.45],[1941,4047.45],[1942,3344.39],[1943,3649.49],[1944,4128.31],[1945,4496.19],[1946,4793.61],[1947,5368.57],[1948,4664.52],[1949,4957.64],[1950,5180.44],[1951,5507.89],[1952,5586.54],[1953,4811.18],[1954,4953.84],[1955,5076.02],[1956,5429.24],[1957,6092.17],[1958,5982],[1959,5232.62],[1960,5194.75],[1961,5190.1],[1962,5180.76],[1963,5143.38],[1964,5087.17],[1965,5033.96],[1966,5193.19],[1967,5690.27],[1968,5265.77],[1969,5116.29],[1970,4854.33],[1971,5155.9],[1972,5305.45],[1973,5683.94],[1974,5883.88],[1975,6086.94],[1976,6173.86],[1977,6380.49],[1978,6708.18],[1979,6821.94],[1980,6695.01],[1981,7208.8],[1982,7316.92],[1983,7453.54],[1984,7645.61],[1985,7710.16],[1986,7651.77],[1987,7532.92],[1988,7599.98],[1989,7549.09],[1990,7463.69],[1991,6537.35],[1992,5592.84],[1993,4669.61],[1994,4738.16],[1995,4875.77],[1996,5277.62],[1997,5431.99],[1998,5479.51],[1999,5823.76],[2000,6115.59],[2001,6270],[2002,6340.65],[2003,6500.13],[2004,6877.99],[2005,7407.24],[2006,8295.24],[2007,8894.89],[2008,9277.96]],"population":[[1817,572000],[1820,605000],[1827,704000],[1841,1008000],[1850,1186000],[1861,1397000],[1870,1331000],[1877,1522000],[1887,1632000],[1900,1658000],[1901,1716000],[1902,1775000],[1903,1837000],[1904,1879000],[1905,1927000],[1906,1979000],[1907,2034000],[1908,2092000],[1909,2154000],[1910,2219000],[1911,2287000],[1912,2358000],[1913,2431000],[1914,2507000],[1915,2585000],[1916,2664000],[1917,2746000],[1918,2828000],[1919,2912000],[1920,2997000],[1921,3083000],[1922,3170000],[1923,3257000],[1924,3345000],[1925,3432000],[1926,3519000],[1927,3606000],[1928,3693000],[1929,3742000],[1930,3837000],[1931,3910000],[1932,3984000],[1933,4060000],[1934,4137000],[1935,4221000],[1936,4289000],[1937,4357000],[1938,4428000],[1939,4497000],[1940,4566000],[1941,4635000],[1942,4704000],[1943,4779000],[1944,4849000],[1945,4932000],[1946,5039000],[1947,5152000],[1948,5268000],[1949,5386000],[1950,5784797],[1951,5891797],[1952,6007797],[1953,6128797],[1954,6254337],[1955,6381106],[1956,6512938],[1957,6640752],[1958,6763058],[1959,6900886],[1960,7027210],[1961,7134000],[1962,7254373],[1963,7414884],[1964,7612275],[1965,7809916],[1966,7985316],[1967,8139332],[1968,8283933],[1969,8421048],[1970,8542746],[1971,8669625],[1972,8831348],[1973,9001355],[1974,9152866],[1975,9290074],[1976,9420906],[1977,9537988],[1978,9634028],[1979,9710150],[1980,9652975],[1981,9711975],[1982,9789224],[1983,9885596],[1984,9982299],[1985,10078658],[1986,10162192],[1987,10239839],[1988,10334044],[1989,10439251],[1990,10544793],[1991,10642491],[1992,10723260],[1993,10788020],[1994,10844611],[1995,10896802],[1996,10943047],[1997,10983007],[1998,11029133],[1999,11082746],[2000,11134273],[2001,11182298],[2002,11226999],[2003,11268976],[2004,11308764],[2005,11346670],[2006,11382820],[2007,11416987],[2008,11449006]],"lifeExpectancy":[[1800,32.2],[1804,32.7],[1809,33.5],[1814,34.2],[1819,34.7],[1824,36.4],[1829,35.6],[1834,36.3],[1839,36.6],[1844,36],[1849,36.2],[1854,36.5],[1859,36.6],[1864,34.8],[1869,29.6],[1874,29.9],[1879,35.8],[1884,41],[1889,43.7],[1894,22.9],[1899,18.9],[1900,33.11],[1905,34.16],[1910,35.22],[1915,36.29],[1920,37.38],[1925,38.76],[1930,41.5],[1935,44.57],[1940,47.47],[1945,50.93],[1950,58.31],[1951,58.61],[1952,59.19],[1953,59.77],[1954,60.36],[1955,60.94],[1956,61.52],[1957,62.11],[1958,62.7],[1959,63.29],[1960,63.89],[1961,64.51],[1962,65.13],[1963,65.76],[1964,66.4],[1965,67.03],[1966,67.65],[1967,68.25],[1968,68.82],[1969,69.36],[1970,69.88],[1971,70.37],[1972,70.85],[1973,71.31],[1974,71.76],[1975,72.19],[1976,72.59],[1977,72.96],[1978,73.29],[1979,73.58],[1980,73.82],[1981,74.03],[1982,74.19],[1983,74.33],[1984,74.44],[1985,74.52],[1986,74.57],[1987,74.6],[1988,74.61],[1989,74.62],[1990,74.64],[1991,74.69],[1992,74.8],[1993,74.95],[1994,75.16],[1995,75.41],[1996,75.67],[1997,75.94],[1998,76.19],[1999,76.42],[2000,76.64],[2001,76.86],[2002,77.1],[2003,77.36],[2004,77.64],[2005,77.93],[2006,78.21],[2007,78.46],[2008,78.67],[2009,78.84]]},{"name":"Ecuador","region":"America","income":[[1800,1085.13],[1820,1085.13],[1939,2280.28],[1940,2377.52],[1941,2319.07],[1942,2384.45],[1943,2619.62],[1944,2584.66],[1945,2530.62],[1946,2760.5],[1947,2980.45],[1948,3296.76],[1949,3262.54],[1950,3266.23],[1951,3217.46],[1952,3522.11],[1953,3503.58],[1954,3687.72],[1955,3684.14],[1956,3717.83],[1957,3780.55],[1958,3784.77],[1959,3877.18],[1960,4012.4],[1961,3995.41],[1962,4086.11],[1963,4068.08],[1964,4227.1],[1965,4498.49],[1966,4480.75],[1967,4579.07],[1968,4690.4],[1969,4801.95],[1970,4988.61],[1971,5122.72],[1972,5280.99],[1973,5768.63],[1974,5931.37],[1975,6065.29],[1976,6463.83],[1977,6679.62],[1978,6944.34],[1979,7117.72],[1980,7239.77],[1981,7331.12],[1982,7213.79],[1983,6876],[1984,6968.94],[1985,7075.66],[1986,7096.73],[1987,6481.78],[1988,6992.25],[1989,6826.42],[1990,6842.3],[1991,7042.35],[1992,7103.7],[1993,7107.17],[1994,7268.52],[1995,7336.07],[1996,7331.53],[1997,7429.46],[1998,7319.01],[1999,6670.59],[2000,5616.42],[2001,5812.3],[2002,5773.04],[2003,5911],[2004,6311.01],[2005,6533],[2006,6679.1],[2007,6721.26],[2008,7108.36],[2009,7035.45]],"population":[[1800,500000],[1820,500000],[1850,816000],[1870,1013000],[1900,1400000],[1901,1420000],[1902,1441000],[1903,1462000],[1904,1483000],[1905,1505000],[1906,1527000],[1907,1549000],[1908,1571000],[1909,1594000],[1910,1617000],[1911,1641000],[1912,1665000],[1913,1689000],[1914,1703000],[1915,1717000],[1916,1731000],[1917,1746000],[1918,1760000],[1919,1774000],[1920,1790000],[1921,1805000],[1922,1820000],[1923,1835000],[1924,1850000],[1925,1865000],[1926,1881000],[1927,1896000],[1928,1912000],[1929,1928000],[1930,1944000],[1931,1995000],[1932,2050000],[1933,2095000],[1934,2140000],[1935,2196000],[1936,2249000],[1937,2298000],[1938,2355000],[1939,2412000],[1940,2466000],[1941,2541000],[1942,2575000],[1943,2641000],[1944,2712000],[1945,2781000],[1946,2853000],[1947,2936000],[1948,3017000],[1949,3104000],[1950,3369955],[1951,3458093],[1952,3548753],[1953,3642591],[1954,3740256],[1955,3842399],[1956,3948587],[1957,4058385],[1958,4172445],[1959,4291418],[1960,4415956],[1961,4546197],[1962,4681707],[1963,4822279],[1964,4967705],[1965,5117779],[1966,5272639],[1967,5432424],[1968,5596925],[1969,5765935],[1970,5939246],[1971,6116773],[1972,6298651],[1973,6485013],[1974,6675986],[1975,6871698],[1976,7072687],[1977,7278866],[1978,7489432],[1979,7703577],[1980,7920499],[1981,8141078],[1982,8365850],[1983,8593494],[1984,8825829],[1985,9061664],[1986,9301083],[1987,9545158],[1988,9794122],[1989,10048223],[1990,10318036],[1991,10526095],[1992,10748394],[1993,10979476],[1994,11208048],[1995,11438004],[1996,11673950],[1997,11911819],[1998,12139965],[1999,12347543],[2000,12505204],[2001,12701839],[2002,12921234],[2003,13074082],[2004,13212742],[2005,13363593],[2006,13547510],[2007,13755680],[2008,13927650]],"lifeExpectancy":[[1800,32.9],[1939,32.9],[1950,47.27],[1951,47.52],[1952,48.05],[1953,48.61],[1954,49.19],[1955,49.81],[1956,50.44],[1957,51.1],[1958,51.78],[1959,52.46],[1960,53.12],[1961,53.76],[1962,54.35],[1963,54.9],[1964,55.39],[1965,55.83],[1966,56.23],[1967,56.61],[1968,56.99],[1969,57.38],[1970,57.78],[1971,58.2],[1972,58.64],[1973,59.09],[1974,59.57],[1975,60.06],[1976,60.59],[1977,61.14],[1978,61.71],[1979,62.31],[1980,62.92],[1981,63.55],[1982,64.19],[1983,64.82],[1984,65.45],[1985,66.06],[1986,66.66],[1987,67.24],[1988,67.8],[1989,68.33],[1990,68.85],[1991,69.35],[1992,69.84],[1993,70.31],[1994,70.78],[1995,71.24],[1996,71.69],[1997,72.13],[1998,72.56],[1999,72.97],[2000,73.36],[2001,73.7],[2002,74.01],[2003,74.27],[2004,74.49],[2005,74.67],[2006,74.83],[2007,74.98],[2008,75.12],[2009,75.26]]},{"name":"El Salvador","region":"America","income":[[1800,804.31],[1820,804.31],[1920,1834.11],[1921,1808.24],[1922,1868.57],[1923,1916.16],[1924,2000.99],[1925,1820.16],[1926,2102.98],[1927,1821.22],[1928,2074.46],[1929,2047.83],[1930,2055.71],[1931,1817.38],[1932,1619.03],[1933,1813.79],[1934,1848.38],[1935,2008.06],[1936,1937.73],[1937,2094.71],[1938,1922.39],[1939,2036.56],[1940,2185.33],[1941,2112.35],[1942,2253.76],[1943,2428.97],[1944,2264.25],[1945,2145.53],[1946,2154.67],[1947,2679.65],[1948,3357.89],[1949,2999.55],[1950,2928.38],[1951,2911.2],[1952,3048.3],[1953,3178.36],[1954,3126.4],[1955,3195.05],[1956,3346.59],[1957,3421.52],[1958,3392.04],[1959,3437.78],[1960,3468.95],[1961,3478.67],[1962,3776.8],[1963,3817.2],[1964,4047.7],[1965,4132.17],[1966,4271.86],[1967,4358.6],[1968,4345.97],[1969,4339.02],[1970,4301.25],[1971,4370.84],[1972,4520.25],[1973,4607.17],[1974,4791.29],[1975,4924.57],[1976,4980.98],[1977,5138.92],[1978,5339.79],[1979,5124.05],[1980,4629.77],[1981,4299.26],[1982,4098.34],[1983,4083.37],[1984,4113.8],[1985,4140.59],[1986,4109.36],[1987,4140.44],[1988,4142.57],[1989,4114.22],[1990,4167.27],[1991,4213.31],[1992,4444.23],[1993,4645.22],[1994,4836.25],[1995,5042.31],[1996,5037.56],[1997,5154.83],[1998,5248.87],[1999,5325.56],[2000,5341.27],[2001,5332.23],[2002,5351.57],[2003,5350.2],[2004,5349.69],[2005,5403],[2006,5592.24],[2007,5794.23],[2008,5894.67],[2009,5646.85]],"population":[[1800,248000],[1820,248000],[1850,366000],[1870,492000],[1900,766000],[1901,782000],[1902,799000],[1903,816000],[1904,834000],[1905,851000],[1906,869000],[1907,888000],[1908,907000],[1909,926000],[1910,946000],[1911,966000],[1912,987000],[1913,1008000],[1914,1030000],[1915,1052000],[1916,1074000],[1917,1098000],[1918,1121000],[1919,1145000],[1920,1170000],[1921,1190000],[1922,1220000],[1923,1240000],[1924,1270000],[1925,1300000],[1926,1330000],[1927,1350000],[1928,1390000],[1929,1410000],[1930,1440000],[1931,1460000],[1932,1470000],[1933,1490000],[1934,1510000],[1935,1530000],[1936,1550000],[1937,1570000],[1938,1590000],[1939,1610000],[1940,1630000],[1941,1650000],[1942,1680000],[1943,1690000],[1944,1720000],[1945,1740000],[1946,1760000],[1947,1780000],[1948,1810000],[1949,1840000],[1950,1939800],[1951,1989756],[1952,2042865],[1953,2099130],[1954,2158554],[1955,2221139],[1956,2286889],[1957,2355805],[1958,2427891],[1959,2503149],[1960,2581583],[1961,2664838],[1962,2747687],[1963,2836090],[1964,2923870],[1965,3017852],[1966,3128206],[1967,3232927],[1968,3347320],[1969,3469177],[1970,3603907],[1971,3710335],[1972,3790903],[1973,3878197],[1974,3971783],[1975,4071179],[1976,4174737],[1977,4282586],[1978,4396275],[1979,4508055],[1980,4566199],[1981,4515094],[1982,4474873],[1983,4521153],[1984,4587633],[1985,4664361],[1986,4751017],[1987,4842194],[1988,4930397],[1989,5015522],[1990,5099884],[1991,5185604],[1992,5274649],[1993,5369502],[1994,5466906],[1995,5568437],[1996,5674036],[1997,5783439],[1998,5895283],[1999,6008356],[2000,6122515],[2001,6237662],[2002,6353681],[2003,6470379],[2004,6587541],[2005,6704932],[2006,6822378],[2007,6939688],[2008,7057131]],"lifeExpectancy":[[1800,28.7],[1930,28.7],[1950,43.24],[1951,43.7],[1952,44.61],[1953,45.51],[1954,46.39],[1955,47.26],[1956,48.1],[1957,48.94],[1958,49.75],[1959,50.54],[1960,51.3],[1961,52.03],[1962,52.72],[1963,53.37],[1964,53.97],[1965,54.52],[1966,55.02],[1967,55.48],[1968,55.9],[1969,56.27],[1970,56.58],[1971,56.82],[1972,56.98],[1973,57.07],[1974,57.09],[1975,57.05],[1976,56.93],[1977,56.75],[1978,56.55],[1979,56.39],[1980,56.34],[1981,56.5],[1982,56.9],[1983,57.56],[1984,58.48],[1985,59.61],[1986,60.9],[1987,62.26],[1988,63.59],[1989,64.82],[1990,65.91],[1991,66.81],[1992,67.52],[1993,68.08],[1994,68.5],[1995,68.78],[1996,68.97],[1997,69.11],[1998,69.23],[1999,69.36],[2000,69.53],[2001,69.74],[2002,69.97],[2003,70.21],[2004,70.47],[2005,70.74],[2006,71],[2007,71.26],[2008,71.5],[2009,71.74]]},{"name":"French Guiana","region":"America","income":[[1800,819.27],[1820,819.27],[1913,1511.59],[1950,2612.06],[1973,7212.76],[1990,7210.63],[2001,8495.63],[2002,8869.85],[2003,8344.72],[2004,7910.72],[2005,8202.74]],"population":[[1800,9899],[1820,9899],[1950,25516],[1951,26083],[1952,26664],[1953,27257],[1954,27863],[1955,28483],[1956,29145],[1957,29853],[1958,30609],[1959,31400],[1960,32243],[1961,33206],[1962,34424],[1963,35973],[1964,37893],[1965,40035],[1966,42172],[1967,43991],[1968,45383],[1969,46782],[1970,48291],[1971,49934],[1972,51609],[1973,53190],[1974,54687],[1975,56261],[1976,57871],[1977,59707],[1978,62287],[1979,64907],[1980,67762],[1981,70885],[1982,73999],[1983,78844],[1984,83757],[1985,88828],[1986,94003],[1987,99323],[1988,104745],[1989,110251],[1990,115930],[1991,121664],[1992,127452],[1993,133287],[1994,139166],[1995,145082],[1996,150933],[1997,156616],[1998,162127],[1999,167459],[2000,172605],[2001,177562],[2002,182333],[2003,186917],[2004,191309],[2005,195506],[2006,199509],[2007,203321],[2008,206941]],"lifeExpectancy":[[1950,52.21],[1951,52.48],[1952,53.01],[1953,53.55],[1954,54.08],[1955,54.62],[1956,55.16],[1957,55.72],[1958,56.3],[1959,56.91],[1960,57.58],[1961,58.32],[1962,59.14],[1963,60.03],[1964,60.97],[1965,61.92],[1966,62.81],[1967,63.62],[1968,64.29],[1969,64.82],[1970,65.21],[1971,65.46],[1972,65.62],[1973,65.73],[1974,65.83],[1975,65.97],[1976,66.18],[1977,66.47],[1978,66.85],[1979,67.31],[1980,67.84],[1981,68.41],[1982,68.97],[1983,69.49],[1984,69.96],[1985,70.38],[1986,70.74],[1987,71.07],[1988,71.39],[1989,71.7],[1990,72.01],[1991,72.32],[1992,72.63],[1993,72.94],[1994,73.25],[1995,73.55],[1996,73.83],[1997,74.1],[1998,74.34],[1999,74.55],[2000,74.75],[2001,74.92],[2002,75.08],[2003,75.24],[2004,75.39],[2005,75.54],[2006,75.69],[2007,75.85],[2008,76],[2009,76.16]]},{"name":"Grenada","region":"America","income":[[1800,775.67],[1820,775.67],[1950,1320.46],[1970,2079.72],[1971,2231.37],[1972,2404.58],[1973,2622.9],[1974,2805.2],[1975,2911.44],[1976,3209.18],[1977,3439.56],[1978,3766.12],[1979,3877.83],[1980,3865.76],[1981,3862.08],[1982,3872.36],[1983,3816.39],[1984,3917.98],[1985,4099.47],[1986,4491.84],[1987,4947.83],[1988,5135.84],[1989,5504.78],[1990,5839.92],[1991,6057.94],[1992,6098.92],[1993,5978.42],[1994,6130.94],[1995,6279.52],[1996,6430.85],[1997,6690.02],[1998,7565.56],[1999,8137.77],[2000,8655.03],[2001,8320.16],[2002,8365.59],[2003,8862.07],[2004,8276.23],[2005,9128],[2006,8913.55],[2007,9353.93],[2008,9558.52],[2009,8826.9]],"population":[[1800,29409],[1820,29409],[1851,33000],[1861,32000],[1871,38000],[1881,42000],[1891,53000],[1901,63000],[1911,67000],[1921,66000],[1946,72000],[1950,75806],[1951,76969],[1952,78339],[1953,80254],[1954,82525],[1955,84621],[1956,85809],[1957,87086],[1958,88359],[1959,89239],[1960,90148],[1961,90865],[1962,91449],[1963,92076],[1964,92767],[1965,93290],[1966,93579],[1967,93879],[1968,94349],[1969,94867],[1970,95410],[1971,96034],[1972,96618],[1973,96857],[1974,96340],[1975,95819],[1976,95555],[1977,94280],[1978,92535],[1979,91354],[1980,90164],[1981,92354],[1982,92112],[1983,91899],[1984,91905],[1985,92203],[1986,92576],[1987,92719],[1988,92805],[1989,92825],[1990,92360],[1991,91837],[1992,91487],[1993,90904],[1994,90591],[1995,90603],[1996,90371],[1997,90005],[1998,89700],[1999,89470],[2000,89312],[2001,89227],[2002,89211],[2003,89258],[2004,89357],[2005,89502],[2006,89703],[2007,89971],[2008,90303]],"lifeExpectancy":[[1950,62.44],[1951,62.49],[1952,62.58],[1953,62.68],[1954,62.78],[1955,62.87],[1956,62.97],[1957,63.07],[1958,63.16],[1959,63.26],[1960,63.36],[1961,63.46],[1962,63.56],[1963,63.66],[1964,63.75],[1965,63.85],[1966,63.95],[1967,64.04],[1968,64.14],[1969,64.24],[1970,64.34],[1971,64.43],[1972,64.53],[1973,64.62],[1974,64.72],[1975,64.8],[1976,64.88],[1977,64.95],[1978,65.01],[1979,65.07],[1980,65.16],[1981,65.27],[1982,65.42],[1983,65.62],[1984,65.88],[1985,66.22],[1986,66.65],[1987,67.16],[1988,67.75],[1989,68.38],[1990,69.04],[1991,69.7],[1992,70.31],[1993,70.87],[1994,71.37],[1995,71.8],[1996,72.18],[1997,72.53],[1998,72.87],[1999,73.2],[2000,73.53],[2001,73.86],[2002,74.15],[2003,74.43],[2004,74.67],[2005,74.89],[2006,75.09],[2007,75.28],[2008,75.45],[2009,75.62]]},{"name":"Guadeloupe","region":"America","income":[[1800,760.98],[1820,760.98],[1913,1404.04],[1950,2426.2],[1973,3896.92],[1990,3510.82],[2001,6697.88],[2002,6987.87],[2003,6810.68],[2004,7416.83],[2005,7788.25]],"population":[[1800,80726],[1820,80726],[1950,208080],[1951,212927],[1952,218011],[1953,223303],[1954,229120],[1955,235385],[1956,242078],[1957,248602],[1958,255124],[1959,261974],[1960,268888],[1961,275714],[1962,282625],[1963,289527],[1964,295823],[1965,301565],[1966,306983],[1967,311603],[1968,315392],[1969,318493],[1970,320657],[1971,323709],[1972,326841],[1973,329477],[1974,331634],[1975,333418],[1976,334454],[1977,334846],[1978,335118],[1979,335616],[1980,336846],[1981,338693],[1982,340813],[1983,345275],[1984,349721],[1985,354125],[1986,358368],[1987,362691],[1988,367386],[1989,372445],[1990,377678],[1991,382946],[1992,388102],[1993,392897],[1994,397585],[1995,402359],[1996,407191],[1997,412050],[1998,416906],[1999,421729],[2000,426493],[2001,431170],[2002,435739],[2003,440189],[2004,444515],[2005,448713],[2006,452776],[2007,456698],[2008,460486]],"lifeExpectancy":[[1950,54.06],[1951,54.72],[1952,55.99],[1953,57.18],[1954,58.31],[1955,59.36],[1956,60.33],[1957,61.22],[1958,62.03],[1959,62.76],[1960,63.4],[1961,63.94],[1962,64.39],[1963,64.75],[1964,65.05],[1965,65.31],[1966,65.55],[1967,65.8],[1968,66.07],[1969,66.38],[1970,66.72],[1971,67.11],[1972,67.51],[1973,67.92],[1974,68.33],[1975,68.76],[1976,69.21],[1977,69.69],[1978,70.21],[1979,70.74],[1980,71.26],[1981,71.74],[1982,72.17],[1983,72.53],[1984,72.82],[1985,73.08],[1986,73.32],[1987,73.59],[1988,73.91],[1989,74.28],[1990,74.69],[1991,75.12],[1992,75.55],[1993,75.95],[1994,76.31],[1995,76.63],[1996,76.91],[1997,77.17],[1998,77.41],[1999,77.64],[2000,77.87],[2001,78.08],[2002,78.27],[2003,78.44],[2004,78.6],[2005,78.75],[2006,78.88],[2007,79.01],[2008,79.15],[2009,79.28]]},{"name":"Guatemala","region":"America","income":[[1800,682.75],[1820,682.75],[1920,1517.05],[1921,1648.07],[1922,1539.52],[1923,1675.57],[1924,1793.08],[1925,1740.93],[1926,1740.36],[1927,1835.3],[1928,1856.8],[1929,2051.3],[1930,2117.3],[1931,1932.03],[1932,1645.48],[1933,1618.64],[1934,1802.56],[1935,2041.34],[1936,2748.75],[1937,2630.51],[1938,2651.84],[1939,2929.14],[1940,3269.57],[1941,3368.07],[1942,3337.88],[1943,2187.38],[1944,2076.27],[1945,2065],[1946,2387.43],[1947,2354.88],[1948,2370.12],[1949,2516.51],[1950,2485.79],[1951,2448.64],[1952,2428.24],[1953,2445.13],[1954,2419.2],[1955,2407.56],[1956,2550.95],[1957,2617.16],[1958,2660.06],[1959,2710.41],[1960,2696.63],[1961,2733.06],[1962,2750.36],[1963,2928.41],[1964,2978.56],[1965,3055.2],[1966,3169.15],[1967,3242.53],[1968,3466.05],[1969,3565.7],[1970,3700.25],[1971,3831.07],[1972,4031.41],[1973,4218.99],[1974,4397.54],[1975,4392.23],[1976,4621.21],[1977,4879.99],[1978,5018.99],[1979,5150.05],[1980,5236.1],[1981,5147.5],[1982,4820.49],[1983,4587.98],[1984,4488.18],[1985,4337.45],[1986,4220.98],[1987,4246.49],[1988,4284.96],[1989,4324.88],[1990,4328.93],[1991,4358.67],[1992,4439.45],[1993,4483.12],[1994,4531.75],[1995,4622.17],[1996,4627.13],[1997,4684.31],[1998,4790.14],[1999,4840.46],[2000,4884.72],[2001,4872.04],[2002,4858.35],[2003,4840.72],[2004,4858.11],[2005,4897],[2006,5035.14],[2007,5222.58],[2008,5261.46],[2009,5163.22]],"population":[[1820,595000],[1850,850000],[1870,1080000],[1900,1300000],[1901,1313000],[1902,1327000],[1903,1341000],[1904,1355000],[1905,1369000],[1906,1383000],[1907,1397000],[1908,1412000],[1909,1426000],[1910,1441000],[1911,1456000],[1912,1470000],[1913,1486000],[1914,1501000],[1915,1517000],[1916,1533000],[1917,1549000],[1918,1565000],[1919,1581000],[1920,1597000],[1921,1614000],[1922,1631000],[1923,1648000],[1924,1665000],[1925,1682000],[1926,1699000],[1927,1717000],[1928,1735000],[1929,1753000],[1930,1771000],[1931,1810000],[1932,1860000],[1933,1910000],[1934,1940000],[1935,1980000],[1936,2020000],[1937,2070000],[1938,2110000],[1939,2150000],[1940,2200000],[1941,2250000],[1942,2300000],[1943,2340000],[1944,2390000],[1945,2440000],[1946,2500000],[1947,2570000],[1948,2640000],[1949,2720000],[1950,2968976],[1951,3056382],[1952,3146381],[1953,3239239],[1954,3335063],[1955,3433887],[1956,3535792],[1957,3640876],[1958,3749336],[1959,3861360],[1960,3975707],[1961,4091112],[1962,4208858],[1963,4329980],[1964,4454413],[1965,4531949],[1966,4610525],[1967,4690773],[1968,4773538],[1969,4859160],[1970,4950548],[1971,5048218],[1972,5149581],[1973,5254378],[1974,5362594],[1975,5473584],[1976,5586789],[1977,5703430],[1978,5822706],[1979,5942151],[1980,6064228],[1981,6208454],[1982,6395630],[1983,6546945],[1984,6726525],[1985,6917947],[1986,7117868],[1987,7326406],[1988,7543322],[1989,7768407],[1990,8001019],[1991,8240499],[1992,8486949],[1993,8740433],[1994,9001037],[1995,9266312],[1996,9533880],[1997,9803875],[1998,10076122],[1999,10350211],[2000,10625732],[2001,10902031],[2002,11178650],[2003,11456063],[2004,11734580],[2005,12013907],[2006,12293545],[2007,12572928],[2008,12851647]],"lifeExpectancy":[[1800,25.8],[1921,25.82],[1934,25.8],[1940,30.35],[1950,41.36],[1951,41.52],[1952,41.84],[1953,42.19],[1954,42.58],[1955,43],[1956,43.45],[1957,43.93],[1958,44.44],[1959,44.98],[1960,45.53],[1961,46.11],[1962,46.69],[1963,47.28],[1964,47.89],[1965,48.51],[1966,49.16],[1967,49.85],[1968,50.57],[1969,51.31],[1970,52.05],[1971,52.77],[1972,53.45],[1973,54.07],[1974,54.63],[1975,55.13],[1976,55.58],[1977,55.99],[1978,56.39],[1979,56.79],[1980,57.2],[1981,57.64],[1982,58.09],[1983,58.56],[1984,59.06],[1985,59.57],[1986,60.1],[1987,60.64],[1988,61.17],[1989,61.71],[1990,62.24],[1991,62.77],[1992,63.31],[1993,63.86],[1994,64.41],[1995,64.97],[1996,65.53],[1997,66.1],[1998,66.66],[1999,67.22],[2000,67.74],[2001,68.22],[2002,68.66],[2003,69.04],[2004,69.36],[2005,69.64],[2006,69.88],[2007,70.11],[2008,70.33],[2009,70.55]]},{"name":"Guyana","region":"America","income":[[1800,910.69],[1820,910.69],[1913,1680.26],[1950,2903.52],[1960,2197.3],[1961,2236.82],[1962,2202.78],[1963,1884.75],[1964,2049.28],[1965,2213.57],[1966,2277.62],[1967,2325.09],[1968,2302.61],[1969,2421.63],[1970,2489.76],[1971,2540.96],[1972,2439.15],[1973,2456.52],[1974,2632.25],[1975,2838.12],[1976,2859.95],[1977,2760.81],[1978,2688.04],[1979,2620.32],[1980,2653.79],[1981,2688.36],[1982,2334.36],[1983,2180.61],[1984,2078.81],[1985,2139.35],[1986,2133.58],[1987,2169.07],[1988,2104.87],[1989,2013.1],[1990,1959],[1991,2077.16],[1992,2234.65],[1993,2408.93],[1994,2604.9],[1995,2729.15],[1996,2944.07],[1997,3131.96],[1998,3085.38],[1999,3182.97],[2000,3141.35],[2001,3209.76],[2002,3237.95],[2003,3198.6],[2004,3298.36],[2005,3232],[2006,3386.17],[2007,3613.42],[2008,3667.37],[2009,3776.95]],"population":[[1800,166034],[1820,166034],[1950,427971],[1951,439062],[1952,451430],[1953,464323],[1954,477498],[1955,491180],[1956,505229],[1957,520286],[1958,536776],[1959,554471],[1960,571083],[1961,584710],[1962,597896],[1963,612069],[1964,626389],[1965,640316],[1966,656528],[1967,672848],[1968,687477],[1969,701552],[1970,714811],[1971,728990],[1972,742869],[1973,755324],[1974,765282],[1975,767977],[1976,763718],[1977,758334],[1978,755889],[1979,757400],[1980,759352],[1981,761204],[1982,761673],[1983,760529],[1984,759690],[1985,758329],[1986,756887],[1987,755464],[1988,754045],[1989,752537],[1990,750903],[1991,748816],[1992,747460],[1993,747337],[1994,747536],[1995,747929],[1996,747171],[1997,746336],[1998,748211],[1999,752105],[2000,755171],[2001,757092],[2002,759104],[2003,761181],[2004,763251],[2005,765283],[2006,767245],[2007,769095],[2008,770794]],"lifeExpectancy":[[1800,31.12],[1911,31.12],[1921,34.62],[1930,41.42],[1946,50.65],[1950,51.32],[1951,51.57],[1952,52.06],[1953,52.56],[1954,53.06],[1955,53.56],[1956,54.07],[1957,54.59],[1958,55.1],[1959,55.61],[1960,56.12],[1961,56.62],[1962,57.1],[1963,57.56],[1964,57.99],[1965,58.39],[1966,58.73],[1967,59.03],[1968,59.28],[1969,59.49],[1970,59.67],[1971,59.82],[1972,59.95],[1973,60.08],[1974,60.21],[1975,60.34],[1976,60.46],[1977,60.57],[1978,60.66],[1979,60.73],[1980,60.8],[1981,60.88],[1982,60.97],[1983,61.08],[1984,61.21],[1985,61.36],[1986,61.53],[1987,61.7],[1988,61.87],[1989,62.02],[1990,62.15],[1991,62.25],[1992,62.31],[1993,62.34],[1994,62.35],[1995,62.37],[1996,62.41],[1997,62.5],[1998,62.66],[1999,62.88],[2000,63.18],[2001,63.55],[2002,63.99],[2003,64.46],[2004,64.96],[2005,65.47],[2006,65.98],[2007,66.48],[2008,66.97],[2009,67.43]]},{"name":"Haiti","region":"America","income":[[1800,503.81],[1820,503.81],[1945,1764.26],[1946,1759.43],[1947,1769.37],[1948,1766.79],[1949,1765.92],[1950,1774.19],[1951,1771.24],[1952,1840.37],[1953,1751.26],[1954,1861.11],[1955,1754.02],[1956,1871.58],[1957,1726.89],[1958,1827.63],[1959,1707.09],[1960,1780.91],[1961,1673.93],[1962,1796.59],[1963,1644.38],[1964,1572.87],[1965,1556.3],[1966,1514.23],[1967,1452.06],[1968,1477.58],[1969,1493.51],[1970,1530.69],[1971,1613.19],[1972,1654.46],[1973,1712.59],[1974,1804.06],[1975,1747],[1976,1880.97],[1977,1874.3],[1978,1947.74],[1979,2071.78],[1980,2212.9],[1981,2118.88],[1982,2011.16],[1983,1988.46],[1984,1954.71],[1985,1918.55],[1986,1876.28],[1987,1823.02],[1988,1798.56],[1989,1779.9],[1990,1742.99],[1991,1716.39],[1992,1456.31],[1993,1398.46],[1994,1259.94],[1995,1299.75],[1996,1329.43],[1997,1341.73],[1998,1346.85],[1999,1358.24],[2000,1344.49],[2001,1303.77],[2002,1270.36],[2003,1249.95],[2004,1180.25],[2005,1175],[2006,1179.62],[2007,1197],[2008,1185.24],[2009,1198.05]],"population":[[1800,723000],[1820,723000],[1850,938000],[1870,1150000],[1900,1560000],[1901,1583000],[1902,1607000],[1903,1631000],[1904,1655000],[1905,1680000],[1906,1705000],[1907,1730000],[1908,1756000],[1909,1782000],[1910,1809000],[1911,1836000],[1912,1863000],[1913,1891000],[1914,1923000],[1915,1955000],[1916,1988000],[1917,2021000],[1918,2055000],[1919,2089000],[1920,2124000],[1921,2152000],[1922,2181000],[1923,2209000],[1924,2239000],[1925,2268000],[1926,2298000],[1927,2328000],[1928,2359000],[1929,2390000],[1930,2422000],[1931,2453000],[1932,2485000],[1933,2517000],[1934,2549000],[1935,2582000],[1936,2615000],[1937,2648000],[1938,2682000],[1939,2716000],[1940,2751000],[1941,2786000],[1942,2820000],[1943,2856000],[1944,2892000],[1945,2928000],[1946,2961000],[1947,2994000],[1948,3028000],[1949,3062000],[1950,3097220],[1951,3148152],[1952,3201488],[1953,3257356],[1954,3315524],[1955,3376419],[1956,3441339],[1957,3507701],[1958,3576772],[1959,3648298],[1960,3722743],[1961,3800257],[1962,3880130],[1963,3964060],[1964,4049805],[1965,4137405],[1966,4226710],[1967,4318137],[1968,4411541],[1969,4506965],[1970,4604915],[1971,4653084],[1972,4698301],[1973,4742929],[1974,4787018],[1975,4828338],[1976,4867802],[1977,4908554],[1978,4950634],[1979,4994123],[1980,5029725],[1981,5108660],[1982,5198399],[1983,5297652],[1984,5404670],[1985,5517977],[1986,5635089],[1987,5756203],[1988,5880465],[1989,6004762],[1990,6126101],[1991,6226921],[1992,6326682],[1993,6443498],[1994,6558149],[1995,6675578],[1996,6794575],[1997,6913545],[1998,7038935],[1999,7167662],[2000,7306302],[2001,7454154],[2002,7607651],[2003,7771090],[2004,7942419],[2005,8121622],[2006,8308504],[2007,8502814],[2008,8704413]],"lifeExpectancy":[[1950,36.27],[1951,36.6],[1952,37.26],[1953,37.91],[1954,38.55],[1955,39.17],[1956,39.79],[1957,40.4],[1958,41],[1959,41.59],[1960,42.18],[1961,42.76],[1962,43.33],[1963,43.9],[1964,44.46],[1965,45],[1966,45.51],[1967,45.99],[1968,46.43],[1969,46.83],[1970,47.2],[1971,47.56],[1972,47.92],[1973,48.28],[1974,48.65],[1975,49.02],[1976,49.38],[1977,49.72],[1978,50.04],[1979,50.34],[1980,50.63],[1981,50.93],[1982,51.25],[1983,51.61],[1984,52.01],[1985,52.45],[1986,52.93],[1987,53.42],[1988,53.93],[1989,54.44],[1990,54.95],[1991,55.46],[1992,55.98],[1993,56.51],[1994,57.02],[1995,57.5],[1996,57.93],[1997,58.31],[1998,58.63],[1999,58.9],[2000,59.12],[2001,59.34],[2002,59.57],[2003,59.82],[2004,60.11],[2005,60.41],[2006,60.72],[2007,61.01],[2008,61.26],[2009,61.48]]},{"name":"Honduras","region":"America","income":[[1800,583.8],[1820,583.8],[1920,2061.23],[1921,2027.39],[1922,2118.65],[1923,2027.06],[1924,1847.36],[1925,2151.54],[1926,2096.58],[1927,2276.69],[1928,2504.1],[1929,2425.88],[1930,2529.84],[1931,2531.07],[1932,2221.64],[1933,2043.05],[1934,1959.55],[1935,1836.28],[1936,1833.69],[1937,1720.31],[1938,1787.61],[1939,1804.82],[1940,1877.36],[1941,1841.12],[1942,1641.34],[1943,1630.45],[1944,1627.55],[1945,1972.92],[1946,2073.83],[1947,2157.89],[1948,2154.29],[1949,2121.4],[1950,2125.56],[1951,2175.9],[1952,2194.93],[1953,2299.86],[1954,2103.69],[1955,2092.37],[1956,2191.2],[1957,2220.49],[1958,2217.79],[1959,2201.34],[1960,2262.22],[1961,2243.2],[1962,2291.16],[1963,2293.2],[1964,2326.64],[1965,2438.23],[1966,2489.67],[1967,2538.27],[1968,2594.6],[1969,2523.46],[1970,2518.49],[1971,2528.59],[1972,2529.84],[1973,2558.71],[1974,2824.6],[1975,2802.95],[1976,2994.99],[1977,3203.21],[1978,3403.51],[1979,3443.47],[1980,3336.79],[1981,3287.52],[1982,3121.76],[1983,2997.61],[1984,3009.41],[1985,3033.15],[1986,2952.67],[1987,3023.1],[1988,3073.17],[1989,3092.5],[1990,3004.97],[1991,2999.13],[1992,3081.69],[1993,3204.57],[1994,3052.26],[1995,3073.89],[1996,3094.71],[1997,3160.45],[1998,3168.46],[1999,3028.73],[2000,3093.71],[2001,3093.68],[2002,3099.73],[2003,3129.92],[2004,3209.35],[2005,3266],[2006,3412.03],[2007,3549.04],[2008,3615.09],[2009,3473.46]],"population":[[1801,130000],[1820,135000],[1850,350000],[1870,404000],[1900,500000],[1901,511000],[1902,522000],[1903,533000],[1904,545000],[1905,556000],[1906,568000],[1907,581000],[1908,593000],[1909,606000],[1910,619000],[1911,632000],[1912,646000],[1913,660000],[1914,668000],[1915,677000],[1916,685000],[1917,694000],[1918,702000],[1919,711000],[1920,720000],[1921,740000],[1922,770000],[1923,800000],[1924,820000],[1925,850000],[1926,880000],[1927,890000],[1928,910000],[1929,930000],[1930,950000],[1931,970000],[1932,990000],[1933,1010000],[1934,1020000],[1935,1040000],[1936,1060000],[1937,1080000],[1938,1100000],[1939,1120000],[1940,1150000],[1941,1170000],[1942,1200000],[1943,1210000],[1944,1240000],[1945,1260000],[1946,1290000],[1947,1320000],[1948,1350000],[1949,1390000],[1950,1431447],[1951,1474191],[1952,1517453],[1953,1562218],[1954,1610959],[1955,1662219],[1956,1715023],[1957,1770390],[1958,1828733],[1959,1888715],[1960,1951640],[1961,2018693],[1962,2090162],[1963,2165930],[1964,2246099],[1965,2329159],[1966,2413644],[1967,2500689],[1968,2591112],[1969,2685322],[1970,2760666],[1971,2855882],[1972,2965146],[1973,3077805],[1974,2765159],[1975,2857540],[1976,2954226],[1977,3055235],[1978,3167869],[1979,3278690],[1980,3401940],[1981,3542519],[1982,3669448],[1983,3795505],[1984,3932288],[1985,4076514],[1986,4225991],[1987,4372203],[1988,4513723],[1989,4654540],[1990,4792271],[1991,4931117],[1992,5077347],[1993,5229618],[1994,5386133],[1995,5546185],[1996,5707074],[1997,5867957],[1998,6022706],[1999,6180871],[2000,6347658],[2001,6513048],[2002,6677328],[2003,6843018],[2004,7007482],[2005,7167902],[2006,7326496],[2007,7483763],[2008,7639327]],"lifeExpectancy":[[1800,33.9],[1930,33.9],[1950,40.94],[1951,41.15],[1952,41.59],[1953,42.07],[1954,42.58],[1955,43.13],[1956,43.71],[1957,44.33],[1958,44.97],[1959,45.63],[1960,46.3],[1961,46.97],[1962,47.64],[1963,48.29],[1964,48.92],[1965,49.52],[1966,50.11],[1967,50.68],[1968,51.26],[1969,51.84],[1970,52.43],[1971,53.04],[1972,53.67],[1973,54.32],[1974,54.99],[1975,55.69],[1976,56.41],[1977,57.15],[1978,57.9],[1979,58.66],[1980,59.44],[1981,60.22],[1982,61.02],[1983,61.82],[1984,62.62],[1985,63.39],[1986,64.12],[1987,64.78],[1988,65.38],[1989,65.91],[1990,66.38],[1991,66.82],[1992,67.24],[1993,67.67],[1994,68.09],[1995,68.52],[1996,68.94],[1997,69.33],[1998,69.69],[1999,70.01],[2000,70.29],[2001,70.56],[2002,70.8],[2003,71.04],[2004,71.28],[2005,71.52],[2006,71.75],[2007,71.98],[2008,72.2],[2009,72.41]]},{"name":"Jamaica","region":"America","income":[[1800,1350.4],[1820,1350.4],[1850,1048.06],[1870,1031.12],[1913,1171.9],[1938,1874.05],[1942,1870.22],[1943,2215.6],[1946,3178.64],[1947,2914.58],[1950,2556.82],[1951,2721.41],[1952,2898.53],[1953,3258.81],[1954,3580.81],[1955,3893.49],[1956,4220.5],[1957,4756.53],[1958,4737.22],[1959,4897.48],[1960,5113.57],[1961,5207.34],[1962,5246.11],[1963,5312.99],[1964,5596.18],[1965,5915.47],[1966,6029.79],[1967,6124.7],[1968,6328.34],[1969,6706.97],[1970,7416.69],[1971,7329.12],[1972,7433.89],[1973,7959.55],[1974,7531.91],[1975,7409.37],[1976,6867.75],[1977,6650.2],[1978,6628.02],[1979,6428.41],[1980,6015.19],[1981,6094.31],[1982,6068.05],[1983,6186.72],[1984,6116.87],[1985,5820.33],[1986,5905.2],[1987,6351.24],[1988,6524.14],[1989,6948.14],[1990,7296.54],[1991,7285.44],[1992,7404.92],[1993,7447.48],[1994,7497.59],[1995,7524.48],[1996,7316.26],[1997,7121.92],[1998,7012.28],[1999,6928.82],[2000,6934.03],[2001,6987.81],[2002,6994.77],[2003,7092.05],[2004,7093.44],[2005,7132],[2006,7291.22],[2007,7365.48],[2008,7261.39],[2009,7023.74]],"population":[[1800,401000],[1820,401000],[1850,399000],[1870,499000],[1900,720000],[1901,728000],[1902,737000],[1903,745000],[1904,754000],[1905,763000],[1906,772000],[1907,781000],[1908,790000],[1909,799000],[1910,808000],[1911,818000],[1912,827000],[1913,837000],[1914,840000],[1915,842000],[1916,845000],[1917,847000],[1918,850000],[1919,852000],[1920,855000],[1921,860000],[1922,879000],[1923,891000],[1924,900000],[1925,910000],[1926,930000],[1927,946000],[1928,966000],[1929,985000],[1930,1009000],[1931,1039000],[1932,1061000],[1933,1082000],[1934,1098000],[1935,1113000],[1936,1130000],[1937,1142000],[1938,1163000],[1939,1191000],[1940,1212000],[1941,1230000],[1942,1254000],[1943,1249000],[1944,1259000],[1945,1266000],[1946,1298000],[1947,1327000],[1948,1350000],[1949,1374000],[1950,1384550],[1951,1405615],[1952,1426095],[1953,1446425],[1954,1467585],[1955,1488805],[1956,1509975],[1957,1535090],[1958,1565755],[1959,1599115],[1960,1631784],[1961,1647918],[1962,1665128],[1963,1697847],[1964,1738997],[1965,1777397],[1966,1820082],[1967,1861096],[1968,1893477],[1969,1919615],[1970,1943787],[1971,1967012],[1972,1997616],[1973,2036377],[1974,2071146],[1975,2104879],[1976,2133388],[1977,2156814],[1978,2179441],[1979,2207245],[1980,2228803],[1981,2258368],[1982,2298309],[1983,2306556],[1984,2313362],[1985,2318652],[1986,2323182],[1987,2326606],[1988,2330226],[1989,2337517],[1990,2347922],[1991,2358643],[1992,2378618],[1993,2407463],[1994,2436866],[1995,2469389],[1996,2501477],[1997,2531311],[1998,2560447],[1999,2588786],[2000,2615467],[2001,2640289],[2002,2664659],[2003,2688706],[2004,2712355],[2005,2735520],[2006,2758124],[2007,2780132],[2008,2801544]],"lifeExpectancy":[[1800,34.2],[1881,34.2],[1882,40.1],[1883,38.1],[1884,37.2],[1885,37.8],[1886,36.9],[1887,35.5],[1888,38.6],[1889,37.6],[1890,34.3],[1891,37.3],[1892,39.2],[1893,38.6],[1894,39],[1895,37.4],[1896,37.6],[1897,37],[1898,39.1],[1899,37.6],[1900,37.8],[1901,38.1],[1902,40.4],[1903,34.6],[1904,33.6],[1905,37.6],[1906,32.4],[1907,29.5],[1908,36.8],[1909,37.3],[1910,36.7],[1911,37.9],[1912,34.4],[1913,37.5],[1914,38.2],[1915,37],[1916,35.6],[1917,31.7],[1918,26.4],[1919,36.6],[1920,35.4],[1921,30.7],[1922,37],[1923,38],[1924,38.6],[1925,38.9],[1926,40.7],[1927,39.4],[1928,41.6],[1929,43],[1930,45.3],[1931,42.7],[1932,44.2],[1933,41.6],[1934,44.4],[1935,44],[1936,44.4],[1937,47.2],[1938,45.9],[1939,48.5],[1940,47.6],[1941,49.4],[1942,49.8],[1943,50.3],[1944,49.1],[1945,49.1],[1946,51.4],[1947,50.4],[1948,51.7],[1949,53.9],[1950,56.65],[1951,57.14],[1952,58.1],[1953,59.02],[1954,59.9],[1955,60.74],[1956,61.54],[1957,62.29],[1958,63],[1959,63.66],[1960,64.28],[1961,64.85],[1962,65.38],[1963,65.85],[1964,66.28],[1965,66.68],[1966,67.05],[1967,67.39],[1968,67.71],[1969,68.02],[1970,68.32],[1971,68.61],[1972,68.89],[1973,69.16],[1974,69.41],[1975,69.64],[1976,69.84],[1977,70.02],[1978,70.16],[1979,70.28],[1980,70.38],[1981,70.47],[1982,70.54],[1983,70.62],[1984,70.7],[1985,70.78],[1986,70.87],[1987,70.96],[1988,71.04],[1989,71.12],[1990,71.18],[1991,71.24],[1992,71.28],[1993,71.31],[1994,71.32],[1995,71.31],[1996,71.28],[1997,71.23],[1998,71.16],[1999,71.08],[2000,71.02],[2001,70.98],[2002,70.98],[2003,71.03],[2004,71.13],[2005,71.28],[2006,71.46],[2007,71.68],[2008,71.89],[2009,72.11]]},{"name":"Martinique","region":"America","income":[[1800,944.05],[1820,944.05],[1913,1741.82],[1950,3009.89],[1973,10528.11],[1990,11068.35],[2001,13040.82],[2002,13561.81],[2003,13247.9],[2004,13925.33],[2005,14627.13]],"population":[[1800,84039],[1820,84039],[1950,216618],[1951,221631],[1952,226688],[1953,232524],[1954,239131],[1955,245815],[1956,252779],[1957,260147],[1958,267402],[1959,274591],[1960,281802],[1961,288810],[1962,295486],[1963,301371],[1964,306529],[1965,311445],[1966,315759],[1967,319163],[1968,322092],[1969,324121],[1970,325484],[1971,327676],[1972,330290],[1973,332137],[1974,333474],[1975,334654],[1976,335492],[1977,336148],[1978,336888],[1979,337943],[1980,339365],[1981,340940],[1982,342583],[1983,345978],[1984,349558],[1985,353188],[1986,356886],[1987,360841],[1988,365013],[1989,369305],[1990,373565],[1991,377676],[1992,381739],[1993,385826],[1994,389926],[1995,394021],[1996,398129],[1997,402265],[1998,406394],[1999,410487],[2000,414516],[2001,418454],[2002,422277],[2003,425966],[2004,429510],[2005,432900],[2006,436131],[2007,439202],[2008,442119]],"lifeExpectancy":[[1950,54.74],[1951,55.22],[1952,56.15],[1953,57.06],[1954,57.93],[1955,58.79],[1956,59.61],[1957,60.41],[1958,61.18],[1959,61.91],[1960,62.61],[1961,63.27],[1962,63.89],[1963,64.47],[1964,65.01],[1965,65.53],[1966,66.02],[1967,66.5],[1968,66.98],[1969,67.45],[1970,67.93],[1971,68.43],[1972,68.94],[1973,69.45],[1974,69.97],[1975,70.49],[1976,71],[1977,71.49],[1978,71.96],[1979,72.4],[1980,72.81],[1981,73.21],[1982,73.59],[1983,73.96],[1984,74.31],[1985,74.65],[1986,74.96],[1987,75.23],[1988,75.48],[1989,75.69],[1990,75.89],[1991,76.09],[1992,76.29],[1993,76.51],[1994,76.75],[1995,77],[1996,77.27],[1997,77.54],[1998,77.8],[1999,78.05],[2000,78.28],[2001,78.49],[2002,78.69],[2003,78.87],[2004,79.04],[2005,79.2],[2006,79.35],[2007,79.5],[2008,79.63],[2009,79.77]]},{"name":"Mexico","region":"America","income":[[1800,1053.6],[1820,1105.63],[1870,981.78],[1890,1472.82],[1895,1649.1],[1896,1675.45],[1897,1762.72],[1898,1838.1],[1899,1721.61],[1900,1709.31],[1901,1837.59],[1902,1686.64],[1903,1857.23],[1904,1869.64],[1905,2043.53],[1906,1998.24],[1907,2093.88],[1908,2067.87],[1909,2106.18],[1910,2102.03],[1911,2017.76],[1912,2000.96],[1913,1880.29],[1914,1883.54],[1915,1856.03],[1916,1999.11],[1917,2084.7],[1918,2165.95],[1919,2252.31],[1920,2395.46],[1921,2386.88],[1922,2404.07],[1923,2447.87],[1924,2368.93],[1925,2477.54],[1926,2586.29],[1927,2430.9],[1928,2406.84],[1929,2274.99],[1930,2095.67],[1931,2128.79],[1932,1774.36],[1933,1944.06],[1934,2041.55],[1935,2157.92],[1936,2292.82],[1937,2328.97],[1938,2326.41],[1939,2411.19],[1940,2402.91],[1941,2570.67],[1942,2644.12],[1943,2669.16],[1944,2813.56],[1945,2824.38],[1946,2932.21],[1947,2952.46],[1948,2992.76],[1949,3074.34],[1950,3293.78],[1951,3447.11],[1952,3478.13],[1953,3380.66],[1954,3614.58],[1955,3810.53],[1956,3953.72],[1957,4131.55],[1958,4224.17],[1959,4220.45],[1960,4433.09],[1961,4512.03],[1962,4581.61],[1963,4803.87],[1964,5213.6],[1965,5384.97],[1966,5584.87],[1967,5754.73],[1968,6036.64],[1969,6222.44],[1970,6450.93],[1971,6486.92],[1972,6809.41],[1973,7130.34],[1974,7322.16],[1975,7519.08],[1976,7630.74],[1977,7674.93],[1978,8156.87],[1979,8734.87],[1980,9319.56],[1981,9890.22],[1982,9611.15],[1983,9063.14],[1984,9177.23],[1985,9184.99],[1986,8713.36],[1987,8688.16],[1988,8628.26],[1989,8815.27],[1990,9103.39],[1991,9315.66],[1992,9472.38],[1993,9482.49],[1994,9733.59],[1995,8954.52],[1996,9274.7],[1997,9767.3],[1998,10108.77],[1999,10358.8],[2000,10894.51],[2001,10763.08],[2002,10742.44],[2003,10778.21],[2004,11118.69],[2005,11317],[2006,11772.08],[2007,12057.97],[2008,12135.33],[2009,11250.37]],"population":[[1820,6587000],[1850,7662000],[1870,9219000],[1871,9331000],[1872,9444000],[1873,9558000],[1874,9674000],[1875,9791000],[1876,9910000],[1877,10030000],[1878,10151000],[1879,10274000],[1880,10399000],[1881,10524000],[1882,10652000],[1883,10781000],[1884,10912000],[1885,11044000],[1886,11178000],[1887,11313000],[1888,11450000],[1889,11589000],[1890,11729000],[1891,11904000],[1892,12083000],[1893,12263000],[1894,12447000],[1895,12663000],[1896,12822000],[1897,13014000],[1898,13209000],[1899,13406000],[1900,13607000],[1901,13755000],[1902,13904000],[1903,14055000],[1904,14208000],[1905,14363000],[1906,14519000],[1907,14676000],[1908,14836000],[1909,14997000],[1910,15000000],[1911,14990000],[1912,14980000],[1913,14970000],[1914,14960000],[1915,14950000],[1916,14940000],[1917,14930000],[1918,14920000],[1919,14910000],[1920,14900000],[1921,14895000],[1922,15129000],[1923,15367000],[1924,15609000],[1925,15854000],[1926,16103000],[1927,16356000],[1928,16613000],[1929,16875000],[1930,17175000],[1931,17480000],[1932,17790000],[1933,18115000],[1934,18445000],[1935,18781000],[1936,19040000],[1937,19370000],[1938,19705000],[1939,20047000],[1940,20393000],[1941,20955000],[1942,21532000],[1943,22125000],[1944,22734000],[1945,23724000],[1946,24413000],[1947,25122000],[1948,25852000],[1949,26603000],[1950,28485180],[1951,29296235],[1952,30144317],[1953,31031279],[1954,31959113],[1955,32929914],[1956,33945886],[1957,35015548],[1958,36141955],[1959,37328466],[1960,38578505],[1961,39836230],[1962,41121485],[1963,42434264],[1964,43774575],[1965,45142399],[1966,46537832],[1967,47995559],[1968,49518803],[1969,51110928],[1970,52775158],[1971,54406901],[1972,55984294],[1973,57557303],[1974,59122839],[1975,60678045],[1976,62219964],[1977,63759976],[1978,65295990],[1979,66825878],[1980,68347479],[1981,69969263],[1982,71640904],[1983,73362881],[1984,75080138],[1985,76767225],[1986,78442430],[1987,80122492],[1988,81781816],[1989,83366836],[1990,84913652],[1991,86488032],[1992,88111030],[1993,89749141],[1994,91337896],[1995,92880353],[1996,94398579],[1997,95895146],[1998,97325063],[1999,98616905],[2000,99926620],[2001,101246961],[2002,102479927],[2003,103718062],[2004,104959594],[2005,106202903],[2006,107449525],[2007,108700891],[2008,109955400]],"lifeExpectancy":[[1800,26.9],[1890,26.9],[1893,23.29],[1894,26.62],[1895,29.52],[1896,28.8],[1897,26.24],[1898,27.03],[1899,24.98],[1900,27.58],[1901,26.65],[1902,28.37],[1903,28.68],[1904,29.09],[1905,26.8],[1906,27.88],[1907,27.97],[1908,28.72],[1909,29.21],[1910,27.41],[1922,32.6],[1923,33.5],[1924,32.8],[1925,32.1],[1926,34.2],[1927,40.3],[1928,34.5],[1929,35.4],[1930,36.2],[1931,37.7],[1932,38.4],[1933,37.3],[1934,38.2],[1935,40.4],[1936,38.3],[1937,36.8],[1938,39.4],[1939,45.5],[1940,39.2],[1941,42.6],[1942,39.8],[1943,42.8],[1944,43.2],[1945,44.2],[1946,44.8],[1947,46.3],[1948,48.3],[1949,45.8],[1950,48.56],[1951,49.12],[1952,50.21],[1953,51.25],[1954,52.24],[1955,53.18],[1956,54.07],[1957,54.9],[1958,55.69],[1959,56.41],[1960,57.07],[1961,57.66],[1962,58.18],[1963,58.64],[1964,59.06],[1965,59.43],[1966,59.79],[1967,60.15],[1968,60.52],[1969,60.92],[1970,61.35],[1971,61.82],[1972,62.32],[1973,62.84],[1974,63.37],[1975,63.92],[1976,64.47],[1977,65.01],[1978,65.55],[1979,66.06],[1980,66.56],[1981,67.04],[1982,67.5],[1983,67.94],[1984,68.37],[1985,68.79],[1986,69.2],[1987,69.61],[1988,70],[1989,70.4],[1990,70.8],[1991,71.19],[1992,71.59],[1993,71.98],[1994,72.37],[1995,72.74],[1996,73.1],[1997,73.43],[1998,73.73],[1999,74.01],[2000,74.26],[2001,74.51],[2002,74.75],[2003,74.99],[2004,75.24],[2005,75.49],[2006,75.74],[2007,75.99],[2008,76.23],[2009,76.47]]},{"name":"Netherlands Antilles","region":"America","income":[[1800,698.1],[1820,698.1],[1913,1288.03],[1970,10117.71],[1971,10647.82],[1972,11045.68],[1973,11405.41],[1974,11939.92],[1975,12156.49],[1976,12814.81],[1977,17335.5],[1978,18336.29],[1979,19045.02],[1980,20507.69],[1981,20565.55],[1982,20008.69],[1983,19721.51],[1984,19180.39],[1985,18592.1],[1986,17385.59],[1987,17406.53],[1988,17486.37],[1989,18682.47],[1990,18834.43],[1991,19081.35],[1992,19633.02],[1993,20520.88],[1994,21690.98],[1995,22159.94],[1996,22681.57],[1997,23267.56],[1998,22901.65],[1999,22746.86],[2000,22284.26],[2001,22605.42],[2002,22596.6],[2003,22741.81],[2004,22761.26],[2005,22700.41],[2006,22795.7],[2007,23039.61],[2008,23178.37]],"population":[[1800,42536],[1820,42536],[1950,109641],[1951,112935],[1952,115318],[1953,117751],[1954,120236],[1955,122772],[1956,125362],[1957,128007],[1958,130708],[1959,133466],[1960,136282],[1961,136679],[1962,133959],[1963,141865],[1964,144450],[1965,146841],[1966,148637],[1967,150529],[1968,153117],[1969,155768],[1970,158355],[1971,161491],[1972,163778],[1973,165204],[1974,167205],[1975,168549],[1976,169591],[1977,170574],[1978,170743],[1979,171297],[1980,172534],[1981,174179],[1982,176526],[1983,178902],[1984,181168],[1985,182923],[1986,184328],[1987,185666],[1988,186689],[1989,187630],[1990,188788],[1991,190140],[1992,192002],[1993,194496],[1994,196793],[1995,198914],[1996,201239],[1997,203533],[1998,205785],[1999,207987],[2000,210134],[2001,212226],[2002,214258],[2003,216226],[2004,218126],[2005,219958],[2006,221736],[2007,223472],[2008,225168]],"lifeExpectancy":[[1950,58.45],[1951,59],[1952,60.04],[1953,61.01],[1954,61.91],[1955,62.72],[1956,63.46],[1957,64.11],[1958,64.7],[1959,65.22],[1960,65.68],[1961,66.09],[1962,66.46],[1963,66.8],[1964,67.13],[1965,67.46],[1966,67.81],[1967,68.17],[1968,68.55],[1969,68.94],[1970,69.35],[1971,69.76],[1972,70.17],[1973,70.56],[1974,70.94],[1975,71.3],[1976,71.65],[1977,72],[1978,72.34],[1979,72.68],[1980,73.01],[1981,73.33],[1982,73.61],[1983,73.86],[1984,74.08],[1985,74.25],[1986,74.38],[1987,74.46],[1988,74.51],[1989,74.53],[1990,74.53],[1991,74.52],[1992,74.49],[1993,74.47],[1994,74.45],[1995,74.46],[1996,74.5],[1997,74.57],[1998,74.67],[1999,74.79],[2000,74.95],[2001,75.11],[2002,75.29],[2003,75.47],[2004,75.63],[2005,75.79],[2006,75.94],[2007,76.09],[2008,76.23],[2009,76.38]]},{"name":"Nicaragua","region":"America","income":[[1800,726.97],[1820,726.97],[1920,2070.64],[1921,2149.99],[1922,1937.98],[1923,2074.07],[1924,2164.26],[1925,2390.12],[1926,2046.39],[1927,2056.17],[1928,2603.82],[1929,2866.65],[1930,2317.41],[1931,2136.64],[1932,1922.97],[1933,2384.59],[1934,2134.13],[1935,2109.32],[1936,1633.72],[1937,1725.31],[1938,1761.99],[1939,2107.27],[1940,2247.93],[1941,2429.83],[1942,2285.7],[1943,2449.68],[1944,2371.59],[1945,2330.71],[1946,2451.96],[1947,2383.58],[1948,2539.03],[1949,2420.55],[1950,2646.8],[1951,2742.44],[1952,3112.36],[1953,3092.08],[1954,3279.8],[1955,3393.42],[1956,3288.89],[1957,3457.42],[1958,3362.04],[1959,3307.13],[1960,3248.3],[1961,3382.87],[1962,3634.36],[1963,3902.48],[1964,4222.45],[1965,4478.93],[1966,4481.54],[1967,4643.39],[1968,4559.44],[1969,4709.94],[1970,4605.7],[1971,4678.35],[1972,4688.59],[1973,4785.64],[1974,5299.98],[1975,5125.38],[1976,5219.41],[1977,5486.37],[1978,4949.85],[1979,3524.06],[1980,3528.64],[1981,3594.8],[1982,3470.34],[1983,3551.18],[1984,3397.84],[1985,3185.74],[1986,3050.94],[1987,2955.98],[1988,2560.22],[1989,2457.13],[1990,2355.47],[1991,2234.44],[1992,2170.15],[1993,2097.6],[1994,2119.13],[1995,2153.69],[1996,2196.82],[1997,2253.02],[1998,2291.86],[1999,2678.53],[2000,2490.8],[2001,2511.22],[2002,2474.55],[2003,2484.75],[2004,2559.93],[2005,2611],[2006,2657.49],[2007,2675.66],[2008,2688.74],[2009,2591.39]],"population":[[1800,186000],[1820,186000],[1850,300000],[1870,337000],[1900,478000],[1901,485000],[1902,492000],[1903,499000],[1904,507000],[1905,514000],[1906,522000],[1907,529000],[1908,537000],[1909,545000],[1910,553000],[1911,561000],[1912,570000],[1913,578000],[1914,580000],[1915,595000],[1916,604000],[1917,613000],[1918,622000],[1919,631000],[1920,640000],[1921,640000],[1922,650000],[1923,650000],[1924,660000],[1925,660000],[1926,670000],[1927,670000],[1928,670000],[1929,680000],[1930,680000],[1931,690000],[1932,690000],[1933,700000],[1934,710000],[1935,730000],[1936,750000],[1937,770000],[1938,780000],[1939,810000],[1940,830000],[1941,840000],[1942,860000],[1943,880000],[1944,900000],[1945,920000],[1946,950000],[1947,980000],[1948,1000000],[1949,1030000],[1950,1097916],[1951,1131307],[1952,1165790],[1953,1201514],[1954,1238630],[1955,1277288],[1956,1317387],[1957,1358828],[1958,1401760],[1959,1446333],[1960,1492698],[1961,1540819],[1962,1590597],[1963,1642083],[1964,1695330],[1965,1750391],[1966,1807123],[1967,1865490],[1968,1925707],[1969,1987988],[1970,2052544],[1971,2120111],[1972,2182908],[1973,2247491],[1974,2319602],[1975,2394786],[1976,2473102],[1977,2554598],[1978,2609107],[1979,2689042],[1980,2805321],[1981,2901332],[1982,2979423],[1983,3048600],[1984,3121094],[1985,3190053],[1986,3262816],[1987,3344353],[1988,3433924],[1989,3530673],[1990,3683746],[1991,3871551],[1992,4017939],[1993,4140517],[1994,4262327],[1995,4382555],[1996,4498580],[1997,4609572],[1998,4717284],[1999,4824619],[2000,4932420],[2001,5039717],[2002,5146848],[2003,5253603],[2004,5359759],[2005,5465100],[2006,5570129],[2007,5675356],[2008,5780586]],"lifeExpectancy":[[1800,25.4],[1916,25.4],[1921,24.35],[1940,34.47],[1950,41.06],[1951,41.36],[1952,41.97],[1953,42.58],[1954,43.2],[1955,43.82],[1956,44.45],[1957,45.08],[1958,45.72],[1959,46.35],[1960,47],[1961,47.64],[1962,48.29],[1963,48.95],[1964,49.6],[1965,50.27],[1966,50.94],[1967,51.62],[1968,52.3],[1969,52.98],[1970,53.64],[1971,54.29],[1972,54.9],[1973,55.48],[1974,56.02],[1975,56.51],[1976,56.96],[1977,57.37],[1978,57.76],[1979,58.13],[1980,58.5],[1981,58.87],[1982,59.27],[1983,59.69],[1984,60.15],[1985,60.67],[1986,61.26],[1987,61.91],[1988,62.62],[1989,63.37],[1990,64.13],[1991,64.88],[1992,65.59],[1993,66.24],[1994,66.82],[1995,67.34],[1996,67.81],[1997,68.27],[1998,68.72],[1999,69.18],[2000,69.64],[2001,70.12],[2002,70.59],[2003,71.05],[2004,71.49],[2005,71.92],[2006,72.32],[2007,72.71],[2008,73.09],[2009,73.44]]},{"name":"Panama","region":"America","income":[[1800,686.66],[1820,686.66],[1945,2756.5],[1946,2811.71],[1947,2870.98],[1948,2641.44],[1949,2650.17],[1950,2500.03],[1951,2415.69],[1952,2480.38],[1953,2569.85],[1954,2600.24],[1955,2681.59],[1956,2750.55],[1957,2961.8],[1958,2924.12],[1959,3029.42],[1960,3119.95],[1961,3358.29],[1962,3536.54],[1963,3760.37],[1964,3810.21],[1965,4025.8],[1966,4200.79],[1967,4421.01],[1968,4607.85],[1969,4826.57],[1970,4976.35],[1971,5234.49],[1972,5364.25],[1973,5546.03],[1974,5521.94],[1975,5478.34],[1976,5437.09],[1977,5351.91],[1978,5773.1],[1979,5895.08],[1980,6643.42],[1981,6777.81],[1982,7009.6],[1983,6916.65],[1984,6746.94],[1985,6921.11],[1986,7003.71],[1987,7034.78],[1988,5821.91],[1989,5685.88],[1990,5834.2],[1991,6236.41],[1992,6618.74],[1993,6840.32],[1994,6922.27],[1995,6920.48],[1996,6951.6],[1997,7113.69],[1998,7255.6],[1999,7355.14],[2000,7405.97],[2001,7317.09],[2002,7356.03],[2003,7550.69],[2004,7986.1],[2005,8399],[2006,8960.44],[2007,9868.16],[2008,10733.83],[2009,10796.68]],"population":[[1800,78842],[1820,78842],[1850,135000],[1870,176000],[1900,263000],[1901,269000],[1902,275000],[1903,281000],[1904,287000],[1905,293000],[1906,299000],[1907,306000],[1908,312000],[1909,319000],[1910,326000],[1911,333000],[1912,341000],[1913,348000],[1914,365000],[1915,383000],[1916,402000],[1917,422000],[1918,442000],[1919,464000],[1920,487000],[1921,489000],[1922,491000],[1923,493000],[1924,495000],[1925,497000],[1926,499000],[1927,502000],[1928,504000],[1929,506000],[1930,515000],[1931,527000],[1932,543000],[1933,559000],[1934,576000],[1935,592000],[1936,608000],[1937,623000],[1938,640000],[1939,656000],[1940,697000],[1941,720000],[1942,773000],[1943,795000],[1944,784000],[1945,791000],[1946,788000],[1947,804000],[1948,822000],[1949,838000],[1950,892502],[1951,915560],[1952,940080],[1953,962188],[1954,985066],[1955,1010655],[1956,1036550],[1957,1063506],[1958,1085241],[1959,1115146],[1960,1147610],[1961,1181175],[1962,1215725],[1963,1251278],[1964,1287993],[1965,1325975],[1966,1365169],[1967,1405486],[1968,1446758],[1969,1488794],[1970,1531038],[1971,1573444],[1972,1616384],[1973,1659161],[1974,1706336],[1975,1747783],[1976,1789842],[1977,1839782],[1978,1872588],[1979,1914853],[1980,1956454],[1981,1995823],[1982,2036305],[1983,2077631],[1984,2120220],[1985,2164335],[1986,2209048],[1987,2253639],[1988,2298640],[1989,2344226],[1990,2390419],[1991,2437528],[1992,2484997],[1993,2531926],[1994,2579616],[1995,2629303],[1996,2680414],[1997,2734531],[1998,2788234],[1999,2838492],[2000,2889485],[2001,2941167],[2002,2990875],[2003,3039748],[2004,3089531],[2005,3140232],[2006,3191319],[2007,3242173],[2008,3292693]],"lifeExpectancy":[[1800,32.9],[1915,32.9],[1930,35.9],[1940,42.4],[1950,53.26],[1951,53.79],[1952,54.83],[1953,55.79],[1954,56.69],[1955,57.53],[1956,58.3],[1957,59.01],[1958,59.66],[1959,60.26],[1960,60.81],[1961,61.32],[1962,61.8],[1963,62.27],[1964,62.72],[1965,63.17],[1966,63.61],[1967,64.05],[1968,64.48],[1969,64.91],[1970,65.35],[1971,65.8],[1972,66.27],[1973,66.76],[1974,67.26],[1975,67.76],[1976,68.26],[1977,68.74],[1978,69.19],[1979,69.62],[1980,70],[1981,70.35],[1982,70.66],[1983,70.94],[1984,71.2],[1985,71.42],[1986,71.61],[1987,71.78],[1988,71.92],[1989,72.04],[1990,72.16],[1991,72.3],[1992,72.46],[1993,72.65],[1994,72.86],[1995,73.11],[1996,73.36],[1997,73.61],[1998,73.86],[1999,74.09],[2000,74.29],[2001,74.48],[2002,74.66],[2003,74.84],[2004,75.01],[2005,75.17],[2006,75.33],[2007,75.5],[2008,75.65],[2009,75.81]]},{"name":"Paraguay","region":"America","income":[[1800,564.16],[1820,564.16],[1939,2455.59],[1940,2271.97],[1941,2256.51],[1942,2333.36],[1943,2328.36],[1944,2323.8],[1945,2191.57],[1946,2352.9],[1947,1998.8],[1948,1976.22],[1949,2255.95],[1950,2054.03],[1951,2038.81],[1952,1952.31],[1953,1955.91],[1954,1938.39],[1955,1974.52],[1956,2006.18],[1957,2046.15],[1958,2107.31],[1959,2049.46],[1960,2016.41],[1961,2058.78],[1962,2148.03],[1963,2150.97],[1964,2187.33],[1965,2253.94],[1966,2219.58],[1967,2299.38],[1968,2318.87],[1969,2345.99],[1970,2426.65],[1971,2465.48],[1972,2523.34],[1973,2642.34],[1974,2779.72],[1975,2878.12],[1976,3000.98],[1977,3248.37],[1978,3525.63],[1979,3829.88],[1980,4283.09],[1981,4534.67],[1982,4258.5],[1983,4015.03],[1984,4023.96],[1985,4064.65],[1986,3943.64],[1987,3998.88],[1988,4136.87],[1989,4254.41],[1990,4261.11],[1991,4244.88],[1992,4196.41],[1993,4242.62],[1994,4248.93],[1995,4318.04],[1996,4254.72],[1997,4247.4],[1998,4117.41],[1999,4028.5],[2000,3907.3],[2001,3885.14],[2002,3783.67],[2003,3828.38],[2004,3885.94],[2005,3900],[2006,3989.49],[2007,4175.72],[2008,4332.38],[2009,4054.3]],"population":[[1800,143000],[1820,143000],[1850,350000],[1870,384000],[1900,440000],[1901,450000],[1902,461000],[1903,472000],[1904,483000],[1905,494000],[1906,505000],[1907,517000],[1908,529000],[1909,542000],[1910,554000],[1911,567000],[1912,580000],[1913,594000],[1914,608000],[1915,622000],[1916,637000],[1917,652000],[1918,667000],[1919,683000],[1920,699000],[1921,715000],[1922,732000],[1923,749000],[1924,767000],[1925,785000],[1926,803000],[1927,822000],[1928,841000],[1929,860000],[1930,880000],[1931,901000],[1932,922000],[1933,944000],[1934,966000],[1935,988000],[1936,1012000],[1937,1036000],[1938,1061000],[1939,1086000],[1940,1111000],[1941,1137000],[1942,1164000],[1943,1191000],[1944,1219000],[1945,1247000],[1946,1275000],[1947,1305000],[1948,1335000],[1949,1366000],[1950,1475669],[1951,1515299],[1952,1555876],[1953,1597419],[1954,1639946],[1955,1683477],[1956,1726702],[1957,1770902],[1958,1816096],[1959,1862301],[1960,1909538],[1961,1959034],[1962,2009813],[1963,2061907],[1964,2115353],[1965,2170183],[1966,2228306],[1967,2287985],[1968,2349262],[1969,2412181],[1970,2476785],[1971,2544518],[1972,2614104],[1973,2692135],[1974,2772696],[1975,2850419],[1976,2919486],[1977,2984494],[1978,3050953],[1979,3119329],[1980,3193047],[1981,3275777],[1982,3366439],[1983,3462731],[1984,3563622],[1985,3668292],[1986,3775922],[1987,3886512],[1988,4000058],[1989,4116564],[1990,4236056],[1991,4358536],[1992,4483945],[1993,4612341],[1994,4743715],[1995,4877951],[1996,5014837],[1997,5154123],[1998,5295745],[1999,5439657],[2000,5585828],[2001,5734139],[2002,5884491],[2003,6036900],[2004,6191368],[2005,6347884],[2006,6506464],[2007,6667147],[2008,6829969]],"lifeExpectancy":[[1800,35.5],[1932,35.5],[1950,62.58],[1951,62.57],[1952,62.57],[1953,62.61],[1954,62.69],[1955,62.8],[1956,62.95],[1957,63.13],[1958,63.34],[1959,63.56],[1960,63.79],[1961,64.02],[1962,64.22],[1963,64.41],[1964,64.57],[1965,64.71],[1966,64.83],[1967,64.96],[1968,65.11],[1969,65.26],[1970,65.43],[1971,65.6],[1972,65.77],[1973,65.93],[1974,66.07],[1975,66.2],[1976,66.32],[1977,66.44],[1978,66.55],[1979,66.66],[1980,66.77],[1981,66.88],[1982,66.98],[1983,67.08],[1984,67.19],[1985,67.29],[1986,67.41],[1987,67.54],[1988,67.69],[1989,67.84],[1990,68.02],[1991,68.19],[1992,68.37],[1993,68.55],[1994,68.73],[1995,68.92],[1996,69.11],[1997,69.33],[1998,69.56],[1999,69.81],[2000,70.07],[2001,70.34],[2002,70.6],[2003,70.84],[2004,71.07],[2005,71.29],[2006,71.49],[2007,71.68],[2008,71.88],[2009,72.07]]},{"name":"Peru","region":"America","income":[[1800,697.3],[1820,697.3],[1896,842.17],[1897,909.29],[1898,955.97],[1899,996.45],[1900,1036.35],[1901,1098.3],[1902,1143.88],[1903,1206.27],[1904,1231.36],[1905,1304.9],[1906,1391.58],[1907,1460.21],[1908,1469.46],[1909,1475.52],[1910,1482.18],[1911,1495.16],[1912,1528.49],[1913,1559.94],[1914,1530.83],[1915,1642.07],[1916,1789.86],[1917,1832.51],[1918,1820.58],[1919,1857.88],[1920,1852.87],[1921,1899.58],[1922,2031.68],[1923,2138.02],[1924,2302.87],[1925,2327.35],[1926,2523.87],[1927,2529.18],[1928,2650.85],[1929,2882.33],[1930,2512.78],[1931,2272.66],[1932,2150.42],[1933,2354.03],[1934,2629.71],[1935,2830.3],[1936,2918.46],[1937,2910.29],[1938,2908.69],[1939,2877.83],[1940,2887.16],[1941,2841.44],[1942,2729.71],[1943,2726.15],[1944,2910.25],[1945,2967.32],[1946,3029.7],[1947,3062.49],[1948,3110.57],[1949,3288.95],[1950,3486.91],[1951,3665.31],[1952,3758.52],[1953,3896.3],[1954,3902.72],[1955,4084.31],[1956,4157.3],[1957,4245.26],[1958,4144.74],[1959,4053.34],[1960,4486.39],[1961,4747.91],[1962,4957.04],[1963,5038.46],[1964,5235.97],[1965,5430.6],[1966,5724.34],[1967,5788.09],[1968,5568.88],[1969,5555.3],[1970,5823.86],[1971,5916.94],[1972,5937.83],[1973,6078.65],[1974,6224.46],[1975,6536.7],[1976,6453.03],[1977,6281.29],[1978,6118.28],[1979,6317.33],[1980,6441.29],[1981,6561.48],[1982,6434.5],[1983,5452.54],[1984,5578.5],[1985,5563.34],[1986,5987.6],[1987,6360.94],[1988,5714.65],[1989,4911.48],[1990,4564.34],[1991,4581.33],[1992,4446.38],[1993,4603.44],[1994,5123.24],[1995,5453.85],[1996,5474.06],[1997,5838.35],[1998,5745.32],[1999,5704.59],[2000,5791.37],[2001,5714.9],[2002,5909.02],[2003,6054.91],[2004,6161.25],[2005,6466],[2006,6860.37],[2007,7317.57],[2008,7912.56],[2009,7858.97]],"population":[[1820,1317000],[1850,2001000],[1870,2606000],[1890,3346000],[1896,3470000],[1897,3513000],[1898,3558000],[1899,3603000],[1900,3648000],[1901,3694000],[1902,3741000],[1903,3788000],[1904,3836000],[1905,3885000],[1906,3934000],[1907,3984000],[1908,4034000],[1909,4085000],[1910,4137000],[1911,4189000],[1912,4242000],[1913,4295000],[1914,4350000],[1915,4405000],[1916,4460000],[1917,4517000],[1918,4574000],[1919,4631000],[1920,4690000],[1921,4764000],[1922,4838000],[1923,4914000],[1924,4992000],[1925,5070000],[1926,5150000],[1927,5230000],[1928,5312000],[1929,5396000],[1930,5480000],[1931,5569000],[1932,5660000],[1933,5752000],[1934,5846000],[1935,5941000],[1936,6038000],[1937,6137000],[1938,6237000],[1939,6338000],[1940,6440000],[1941,6550000],[1942,6662000],[1943,6776000],[1944,6892000],[1945,7010000],[1946,7130000],[1947,7252000],[1948,7376000],[1949,7502000],[1950,7632500],[1951,7826200],[1952,8025700],[1953,8232100],[1954,8447000],[1955,8671500],[1956,8904900],[1957,9146100],[1958,9396700],[1959,9657800],[1960,9931000],[1961,10217500],[1962,10516500],[1963,10825800],[1964,11143500],[1965,11467300],[1966,11796400],[1967,12132200],[1968,12476000],[1969,12829100],[1970,13192800],[1971,13568300],[1972,13954700],[1973,14350300],[1974,14753100],[1975,15161199],[1976,15573199],[1977,15990099],[1978,16414399],[1979,16848699],[1980,17295298],[1981,17754798],[1982,18125129],[1983,18516941],[1984,18927692],[1985,19348926],[1986,19771935],[1987,20195924],[1988,20625082],[1989,21063800],[1990,21511443],[1991,21967278],[1992,22430449],[1993,22900004],[1994,23374974],[1995,23846388],[1996,24304899],[1997,24748122],[1998,25174087],[1999,25581874],[2000,25979722],[2001,26376033],[2002,26769436],[2003,27158869],[2004,27544305],[2005,27925628],[2006,28302603],[2007,28674757],[2008,29041593]],"lifeExpectancy":[[1800,35.7],[1940,35.7],[1950,43.11],[1951,43.29],[1952,43.67],[1953,44.08],[1954,44.53],[1955,45],[1956,45.51],[1957,46.04],[1958,46.59],[1959,47.14],[1960,47.7],[1961,48.24],[1962,48.76],[1963,49.26],[1964,49.74],[1965,50.23],[1966,50.75],[1967,51.33],[1968,51.98],[1969,52.7],[1970,53.46],[1971,54.25],[1972,55.02],[1973,55.76],[1974,56.45],[1975,57.1],[1976,57.7],[1977,58.29],[1978,58.88],[1979,59.46],[1980,60.06],[1981,60.66],[1982,61.26],[1983,61.86],[1984,62.44],[1985,63.01],[1986,63.56],[1987,64.09],[1988,64.6],[1989,65.1],[1990,65.58],[1991,66.06],[1992,66.53],[1993,67.02],[1994,67.51],[1995,68.01],[1996,68.51],[1997,69.03],[1998,69.53],[1999,70.03],[2000,70.51],[2001,70.96],[2002,71.39],[2003,71.78],[2004,72.14],[2005,72.46],[2006,72.75],[2007,73.01],[2008,73.25],[2009,73.47]]},{"name":"Puerto Rico","region":"America","income":[[1800,775.1],[1820,775.1],[1913,1265.58],[1950,2822.05],[1951,2903.07],[1952,3081.96],[1953,3252.09],[1954,3370.58],[1955,3487.49],[1956,3738.97],[1957,3907.16],[1958,3951.38],[1959,4263.73],[1960,4502.88],[1961,4840.8],[1962,5108.34],[1963,5529.93],[1964,5793.24],[1965,6211.83],[1966,6572.88],[1967,6929.28],[1968,7191.45],[1969,7688.13],[1970,8357.4],[1971,8743.88],[1972,9123.04],[1973,9611.77],[1974,9539.61],[1975,9143.75],[1976,9336.84],[1977,9770.52],[1978,10292.77],[1979,10747.13],[1980,10771.18],[1981,10787.87],[1982,10330.99],[1983,10263.66],[1984,10902.91],[1985,11022.16],[1986,11812.68],[1987,12281.34],[1988,12965.94],[1989,13487.7],[1990,13873.73],[1991,14093.02],[1992,14641.59],[1993,15193.09],[1994,15682.44],[1995,16245.19],[1996,16594.09],[1997,16999.43],[1998,17443.02],[1999,18084.73],[2000,18568.22],[2001,18861.59],[2002,18855.61],[2003,19067.16],[2004,19287.91],[2005,19725.45],[2006,19366.01],[2007,19016.23],[2008,18970.51]],"population":[[1800,155000],[1815,221000],[1820,248000],[1832,330000],[1850,495000],[1860,583000],[1870,645000],[1877,732000],[1887,799000],[1899,953000],[1900,959000],[1901,974000],[1902,990000],[1903,1006000],[1904,1022000],[1905,1039000],[1906,1056000],[1907,1073000],[1908,1090000],[1909,1108000],[1910,1126000],[1911,1144000],[1912,1162000],[1913,1181000],[1914,1199000],[1915,1217000],[1916,1235000],[1917,1254000],[1918,1273000],[1919,1292000],[1920,1312000],[1921,1336000],[1922,1359000],[1923,1383000],[1924,1407000],[1925,1431000],[1926,1455000],[1927,1478000],[1928,1502000],[1929,1526000],[1930,1552000],[1931,1584000],[1932,1615000],[1933,1647000],[1934,1679000],[1935,1710000],[1936,1743000],[1937,1777000],[1938,1810000],[1939,1844000],[1940,1880000],[1941,1935000],[1942,1987000],[1943,2033000],[1944,2062000],[1945,2099000],[1946,2141000],[1947,2162000],[1948,2187000],[1949,2197000],[1950,2218000],[1951,2235000],[1952,2227000],[1953,2204000],[1954,2214000],[1955,2250000],[1956,2249000],[1957,2260000],[1958,2299000],[1959,2322000],[1960,2358000],[1961,2402514],[1962,2448046],[1963,2496601],[1964,2552181],[1965,2596774],[1966,2627368],[1967,2648961],[1968,2673568],[1969,2722232],[1970,2721754],[1971,2766299],[1972,2847132],[1973,2863420],[1974,2886600],[1975,2935124],[1976,3026125],[1977,3080828],[1978,3117884],[1979,3168446],[1980,3209648],[1981,3238968],[1982,3279001],[1983,3316031],[1984,3350037],[1985,3382106],[1986,3413303],[1987,3444468],[1988,3474992],[1989,3505600],[1990,3536910],[1991,3562110],[1992,3585176],[1993,3615497],[1994,3649237],[1995,3683103],[1996,3724655],[1997,3759430],[1998,3781101],[1999,3800081],[2000,3815909],[2001,3839190],[2002,3859606],[2003,3877881],[2004,3894855],[2005,3911299],[2006,3927188],[2007,3942491],[2008,3957169]],"lifeExpectancy":[[1800,30.43],[1894,30.43],[1902,33.3],[1903,30.36],[1910,38.17],[1920,38.46],[1930,40.65],[1940,46.01],[1950,61.71],[1951,62.43],[1952,63.8],[1953,65],[1954,66.05],[1955,66.93],[1956,67.67],[1957,68.25],[1958,68.7],[1959,69.05],[1960,69.3],[1961,69.51],[1962,69.7],[1963,69.89],[1964,70.12],[1965,70.37],[1966,70.65],[1967,70.92],[1968,71.18],[1969,71.42],[1970,71.65],[1971,71.87],[1972,72.11],[1973,72.36],[1974,72.61],[1975,72.86],[1976,73.08],[1977,73.28],[1978,73.43],[1979,73.54],[1980,73.63],[1981,73.71],[1982,73.81],[1983,73.94],[1984,74.09],[1985,74.24],[1986,74.38],[1987,74.47],[1988,74.51],[1989,74.5],[1990,74.45],[1991,74.37],[1992,74.3],[1993,74.25],[1994,74.26],[1995,74.35],[1996,74.55],[1997,74.87],[1998,75.29],[1999,75.78],[2000,76.32],[2001,76.86],[2002,77.37],[2003,77.8],[2004,78.15],[2005,78.4],[2006,78.58],[2007,78.72],[2008,78.84],[2009,78.95]]},{"name":"Suriname","region":"America","income":[[1800,1004.13],[1820,1004.13],[1913,1852.67],[1950,3201.44],[1970,4958.82],[1971,5250.97],[1972,5504.44],[1973,5758.36],[1974,5960.04],[1975,5413.8],[1976,5953.52],[1977,6622.72],[1978,7028.64],[1979,6631.28],[1980,6045.94],[1981,6417.63],[1982,6061.25],[1983,5722.81],[1984,5518.3],[1985,6193.03],[1986,6009.13],[1987,5508.17],[1988,5930.97],[1989,6148.98],[1990,5863.39],[1991,5962.17],[1992,5974.26],[1993,5624.37],[1994,5400.78],[1995,5509.17],[1996,5520.94],[1997,5589.34],[1998,5703.02],[1999,5510.23],[2000,5677.29],[2001,5962.11],[2002,6070.68],[2003,6446.04],[2004,6880.09],[2005,7234],[2006,7425.02],[2007,7722.28],[2008,8091.8],[2009,8199.03]],"population":[[1800,80721],[1820,80721],[1950,208068],[1951,213358],[1952,219442],[1953,226016],[1954,233027],[1955,240491],[1956,248363],[1957,256534],[1958,265294],[1959,274847],[1960,284506],[1961,294466],[1962,305124],[1963,316001],[1964,327023],[1965,336711],[1966,345810],[1967,354353],[1968,361735],[1969,368064],[1970,372898],[1971,377191],[1972,381410],[1973,383662],[1974,380911],[1975,363393],[1976,353047],[1977,360780],[1978,366025],[1979,363631],[1980,354860],[1981,352967],[1982,359611],[1983,365602],[1984,370748],[1985,375592],[1986,379472],[1987,382559],[1988,386349],[1989,390987],[1990,395000],[1991,398992],[1992,402943],[1993,406817],[1994,410577],[1995,414188],[1996,417635],[1997,420899],[1998,423948],[1999,426759],[2000,429323],[2001,431635],[2002,433682],[2003,435449],[2004,436935],[2005,438144],[2006,439117],[2007,439894],[2008,440486]],"lifeExpectancy":[[1800,32.9],[1925,32.9],[1950,54.7],[1951,55.05],[1952,55.73],[1953,56.36],[1954,56.95],[1955,57.5],[1956,58],[1957,58.47],[1958,58.9],[1959,59.3],[1960,59.68],[1961,60.05],[1962,60.41],[1963,60.78],[1964,61.14],[1965,61.52],[1966,61.9],[1967,62.27],[1968,62.63],[1969,62.98],[1970,63.31],[1971,63.61],[1972,63.89],[1973,64.14],[1974,64.37],[1975,64.59],[1976,64.81],[1977,65.05],[1978,65.3],[1979,65.56],[1980,65.83],[1981,66.09],[1982,66.33],[1983,66.53],[1984,66.71],[1985,66.85],[1986,66.96],[1987,67.06],[1988,67.15],[1989,67.24],[1990,67.33],[1991,67.44],[1992,67.55],[1993,67.66],[1994,67.77],[1995,67.88],[1996,67.97],[1997,68.03],[1998,68.08],[1999,68.1],[2000,68.11],[2001,68.12],[2002,68.15],[2003,68.21],[2004,68.3],[2005,68.43],[2006,68.58],[2007,68.76],[2008,68.96],[2009,69.16]]},{"name":"Trinidad and Tobago","region":"America","income":[[1800,774.21],[1820,774.21],[1913,1264.12],[1950,2818.8],[1951,2987.51],[1952,3023.27],[1953,3033.59],[1954,3002.88],[1955,3311.35],[1956,3881.04],[1957,4100.39],[1958,4303.08],[1959,4405.84],[1960,4795.86],[1961,4888.04],[1962,4997.52],[1963,5154.49],[1964,5217.56],[1965,5393.58],[1966,5550.35],[1967,5621.37],[1968,5895.03],[1969,6058.54],[1970,6324.94],[1971,6346.12],[1972,6619.55],[1973,6663.4],[1974,6945.61],[1975,6995.35],[1976,7555.17],[1977,7899.55],[1978,8683.78],[1979,8937.55],[1980,9498.49],[1981,9815.18],[1982,9119.53],[1983,8280.37],[1984,8647.69],[1985,8180.31],[1986,7818.14],[1987,7388.6],[1988,7059.56],[1989,6990.8],[1990,7113.56],[1991,7398.63],[1992,7370.99],[1993,7340.13],[1994,7705.76],[1995,8071.16],[1996,8449.63],[1997,8792.57],[1998,9269.85],[1999,9952.12],[2000,10496.91],[2001,11020.92],[2002,11460.6],[2003,13030.45],[2004,13978.56],[2005,15352],[2006,17384.13],[2007,18141.92],[2008,18511.09],[2009,17826.05]],"population":[[1800,60000],[1820,60000],[1850,80000],[1870,124000],[1900,268000],[1901,274000],[1902,279000],[1903,285000],[1904,291000],[1905,298000],[1906,304000],[1907,310000],[1908,317000],[1909,324000],[1910,331000],[1911,338000],[1912,345000],[1913,352000],[1914,357000],[1915,362000],[1916,367000],[1917,373000],[1918,378000],[1919,383000],[1920,389000],[1921,367000],[1922,371000],[1923,376000],[1924,379000],[1925,382000],[1926,385000],[1927,388000],[1928,392000],[1929,398000],[1930,405000],[1931,412000],[1932,417000],[1933,422000],[1934,428000],[1935,435000],[1936,442000],[1937,450000],[1938,458000],[1939,466000],[1940,476000],[1941,492000],[1942,510000],[1943,525000],[1944,536000],[1945,547000],[1946,561000],[1947,583000],[1948,600000],[1949,616000],[1950,632000],[1951,648700],[1952,662850],[1953,678300],[1954,697500],[1955,720800],[1956,742500],[1957,764900],[1958,788600],[1959,817050],[1960,841150],[1961,861387],[1962,887498],[1963,904380],[1964,923887],[1965,939255],[1966,952535],[1967,960155],[1968,963086],[1969,962927],[1970,955000],[1971,961605],[1972,975199],[1973,984786],[1974,995364],[1975,1006931],[1976,1021480],[1977,1039009],[1978,1055527],[1979,1073027],[1980,1090513],[1981,1101836],[1982,1116479],[1983,1133265],[1984,1150426],[1985,1166353],[1986,1180346],[1987,1191336],[1988,1198392],[1989,1200303],[1990,1198247],[1991,1192417],[1992,1183669],[1993,1174430],[1994,1165700],[1995,1158553],[1996,1148699],[1997,1138101],[1998,1131314],[1999,1125375],[2000,1118204],[2001,1110217],[2002,1101832],[2003,1093146],[2004,1084206],[2005,1075066],[2006,1065842],[2007,1056608],[2008,1047366]],"lifeExpectancy":[[1800,32.9],[1829,32.9],[1835,38.8],[1921,38.8],[1931,45.7],[1946,54.5],[1950,58.22],[1951,58.42],[1952,58.83],[1953,59.3],[1954,59.81],[1955,60.36],[1956,60.96],[1957,61.6],[1958,62.25],[1959,62.9],[1960,63.52],[1961,64.08],[1962,64.55],[1963,64.92],[1964,65.18],[1965,65.35],[1966,65.43],[1967,65.47],[1968,65.5],[1969,65.54],[1970,65.61],[1971,65.72],[1972,65.86],[1973,66.03],[1974,66.22],[1975,66.42],[1976,66.63],[1977,66.84],[1978,67.03],[1979,67.2],[1980,67.36],[1981,67.51],[1982,67.67],[1983,67.83],[1984,67.99],[1985,68.16],[1986,68.34],[1987,68.51],[1988,68.66],[1989,68.8],[1990,68.92],[1991,69],[1992,69.06],[1993,69.08],[1994,69.08],[1995,69.04],[1996,68.96],[1997,68.85],[1998,68.72],[1999,68.59],[2000,68.48],[2001,68.41],[2002,68.39],[2003,68.44],[2004,68.57],[2005,68.75],[2006,68.97],[2007,69.22],[2008,69.46],[2009,69.7]]},{"name":"United States","region":"America","income":[[1800,1912.62],[1801,1948.59],[1802,1981.63],[1803,1946.61],[1804,1944.22],[1805,1987.88],[1806,2024.49],[1807,2045.45],[1808,1896.7],[1809,1993.22],[1810,2050.52],[1811,2093.55],[1812,2056.15],[1813,2079.25],[1814,2119.35],[1815,2111.19],[1816,2023.09],[1817,2021.75],[1818,2027.3],[1819,2023.02],[1820,2011.22],[1821,2043.38],[1822,2101.55],[1823,2077.84],[1824,2134.86],[1825,2184.19],[1826,2200.15],[1827,2210.11],[1828,2209.17],[1829,2133.96],[1830,2293.67],[1831,2438],[1832,2530.55],[1833,2620.99],[1834,2491.55],[1835,2589.99],[1836,2629.47],[1837,2543.05],[1838,2520.65],[1839,2646.12],[1840,2512.15],[1841,2457.92],[1842,2436.73],[1843,2476.52],[1844,2614.36],[1845,2656.44],[1846,2673.07],[1847,2744.83],[1848,2817.92],[1849,2743.7],[1850,2754.9],[1851,2871.34],[1852,3022.03],[1853,3235.59],[1854,3244.9],[1855,3172.17],[1856,3239.39],[1857,3167.39],[1858,3182.83],[1859,3270.94],[1860,3359.31],[1861,3288.25],[1862,3393.61],[1863,3617.64],[1864,3739.47],[1865,3541.92],[1866,3514],[1867,3632],[1868,3681.88],[1869,3781.48],[1870,3970.93],[1871,4044.9],[1872,4106.03],[1873,4198.88],[1874,4055.76],[1875,4170.62],[1876,4131.67],[1877,4181.78],[1878,4275.61],[1879,4718.64],[1880,5178.86],[1881,5239.22],[1882,5428.53],[1883,5402.76],[1884,5362.11],[1885,5277.75],[1886,5332.39],[1887,5472.26],[1888,5330.85],[1889,5549.39],[1890,5524.7],[1891,5584.39],[1892,5717.15],[1893,5579.84],[1894,5297.88],[1895,5828.93],[1896,5603.9],[1897,5962.94],[1898,6008.89],[1899,6609.78],[1900,6624.3],[1901,7305.78],[1902,7282.17],[1903,7356.13],[1904,7494.66],[1905,8031.68],[1906,8205.42],[1907,7928.61],[1908,7339.85],[1909,8048.39],[1910,7913.7],[1911,8010.71],[1912,8317.33],[1913,8448.56],[1914,7615.96],[1915,7758.77],[1916,8875.24],[1917,8714.46],[1918,9254.58],[1919,8908.37],[1920,8568.17],[1921,8068.82],[1922,8504.51],[1923,9512.22],[1924,9544.98],[1925,9581.57],[1926,9990.36],[1927,9869.44],[1928,9892.79],[1929,10387.38],[1930,9346.2],[1931,8640.93],[1932,7433.95],[1933,7267.63],[1934,7977.82],[1935,8601.16],[1936,9629.63],[1937,10028.34],[1938,9569.07],[1939,10225.26],[1940,10948.06],[1941,12667.38],[1942,14819.55],[1943,16980.87],[1944,18085.1],[1945,17614.95],[1946,15431.41],[1947,14931.55],[1948,15266.38],[1949,14866.24],[1950,15855.86],[1951,16750.74],[1952,17039.38],[1953,17471.28],[1954,16979.26],[1955,17822.45],[1956,17783.27],[1957,17749.5],[1958,17217.39],[1959,18084.11],[1960,18175.43],[1961,18226.62],[1962,18978.45],[1963,19461.1],[1964,20243.98],[1965,21209.93],[1966,22263.22],[1967,22495.68],[1968,23268.21],[1969,23669.41],[1970,23345.77],[1971,23744.67],[1972,24654.04],[1973,25742],[1974,25281.7],[1975,24889.6],[1976,25881.72],[1977,26715.14],[1978,27814.18],[1979,28278.91],[1980,27838.11],[1981,28160.14],[1982,27243.47],[1983,28119.69],[1984,29785.25],[1985,30636.21],[1986,31297.31],[1987,31953.81],[1988,32860.52],[1989,33587.09],[1990,33710.39],[1991,33076.87],[1992,33589.59],[1993,33914.89],[1994,34730.56],[1995,35053.29],[1996,35807],[1997,36847.81],[1998,37811.68],[1999,38912.58],[2000,39758.5],[2001,39474.11],[2002,39535.84],[2003,40044.18],[2004,40956.4],[2005,41674],[2006,42385.18],[2007,42866.22],[2008,42656.49],[2009,41256.08]],"population":[[1820,9980510],[1821,10298969],[1822,10625503],[1823,10951077],[1824,11276695],[1825,11602355],[1826,11928057],[1827,12250905],[1828,12580590],[1829,12906416],[1830,13240314],[1831,13658580],[1832,14077890],[1833,14496235],[1834,14914618],[1835,15334042],[1836,15752501],[1837,16170997],[1838,16590533],[1839,17009101],[1840,17443768],[1841,18056100],[1842,18667464],[1843,19278865],[1844,19890301],[1845,20502776],[1846,21114282],[1847,21725822],[1848,22337396],[1849,22950007],[1850,23579718],[1851,24405303],[1852,25230918],[1853,26156953],[1854,26882238],[1855,27707943],[1856,28534680],[1857,29360442],[1858,30186232],[1859,31012051],[1860,31838901],[1861,32677742],[1862,33515609],[1863,34354509],[1864,35192433],[1865,36031388],[1866,36869368],[1867,37708378],[1868,38546412],[1869,39385476],[1870,40240630],[1871,41098000],[1872,42136000],[1873,43174000],[1874,44212000],[1875,45245000],[1876,46287000],[1877,47325000],[1878,48362000],[1879,49400000],[1880,50458000],[1881,51743000],[1882,53027000],[1883,54311000],[1884,55595000],[1885,56879000],[1886,58164000],[1887,59448000],[1888,60732000],[1889,62016000],[1890,63302000],[1891,64612000],[1892,65922000],[1893,67231000],[1894,68541000],[1895,69851000],[1896,71161000],[1897,72471000],[1898,73781000],[1899,75091000],[1900,76391000],[1901,77888000],[1902,79469000],[1903,80946000],[1904,82485000],[1905,84147000],[1906,85770000],[1907,87339000],[1908,89055000],[1909,90845000],[1910,92767000],[1911,94234000],[1912,95703000],[1913,97606000],[1914,99505000],[1915,100941000],[1916,102364000],[1917,103817000],[1918,104958000],[1919,105473000],[1920,106881000],[1921,108964000],[1922,110484000],[1923,112387000],[1924,114558000],[1925,116284000],[1926,117857000],[1927,119502000],[1928,120971000],[1929,122245000],[1930,123668000],[1931,124633000],[1932,125436000],[1933,126180000],[1934,126978000],[1935,127859000],[1936,128681000],[1937,129464000],[1938,130476000],[1939,131539000],[1940,132637000],[1941,133922000],[1942,135386000],[1943,137272000],[1944,138937000],[1945,140474000],[1946,141940000],[1947,144688000],[1948,147203000],[1949,149770000],[1950,152271000],[1951,154878000],[1952,157553000],[1953,160184000],[1954,163026000],[1955,165931000],[1956,168903000],[1957,171984000],[1958,174882000],[1959,177830000],[1960,180671000],[1961,183691000],[1962,186538000],[1963,189242000],[1964,191889000],[1965,194303000],[1966,196560000],[1967,198712000],[1968,200706000],[1969,202677000],[1970,205052000],[1971,207661000],[1972,209896000],[1973,211909000],[1974,213854000],[1975,215973000],[1976,218035000],[1977,220239000],[1978,222585000],[1979,225055000],[1980,227726463],[1981,229966237],[1982,232187835],[1983,234307207],[1984,236348292],[1985,238466283],[1986,240650755],[1987,242803533],[1988,245021414],[1989,247341697],[1990,250131894],[1991,253492503],[1992,256894189],[1993,260255352],[1994,263435673],[1995,266557091],[1996,269667391],[1997,272911760],[1998,276115288],[1999,279294713],[2000,282338631],[2001,285023886],[2002,287675526],[2003,290342554],[2004,293027571],[2005,295734134],[2006,298444215],[2007,301139947],[2008,303824646]],"lifeExpectancy":[[1800,39.41],[1880,39.41],[1890,45.21],[1901,49.3],[1902,50.5],[1903,50.6],[1904,49.6],[1905,50.3],[1906,50.1],[1907,50.2],[1908,51.9],[1909,52.8],[1910,51.8],[1911,53.4],[1912,54.1],[1913,53.5],[1914,54.6],[1915,55.1],[1916,54.2],[1917,54],[1918,47.2],[1919,55.3],[1920,55.4],[1921,58.2],[1922,58.1],[1923,57.5],[1924,58.5],[1925,58.5],[1926,57.9],[1927,59.4],[1928,58.3],[1929,58.5],[1930,59.6],[1931,60.3],[1932,61],[1933,60.95],[1934,60.31],[1935,60.97],[1936,60.42],[1937,61.11],[1938,62.44],[1939,63.12],[1940,63.28],[1941,63.84],[1942,64.63],[1943,64.34],[1944,65.13],[1945,65.63],[1946,66.33],[1947,66.73],[1948,67.3],[1949,67.68],[1950,68.12],[1951,68.22],[1952,68.44],[1953,68.79],[1954,69.58],[1955,69.63],[1956,69.71],[1957,69.49],[1958,69.76],[1959,69.98],[1960,69.91],[1961,70.32],[1962,70.21],[1963,70.04],[1964,70.33],[1965,70.41],[1966,70.43],[1967,70.76],[1968,70.42],[1969,70.66],[1970,70.92],[1971,71.24],[1972,71.34],[1973,71.54],[1974,72.08],[1975,72.68],[1976,72.99],[1977,73.38],[1978,73.58],[1979,74.03],[1980,73.93],[1981,74.36],[1982,74.65],[1983,74.71],[1984,74.82],[1985,74.79],[1986,74.87],[1987,75.01],[1988,75.03],[1989,75.31],[1990,75.6],[1991,75.8],[1992,76.08],[1993,75.83],[1994,76],[1995,76.09],[1996,76.44],[1997,76.8],[1998,76.97],[1999,76.97],[2000,77.13],[2001,77.25],[2002,77.31],[2003,77.49],[2004,77.92],[2005,77.93],[2006,78.21],[2007,79.09],[2008,79.27],[2009,79.43]]},{"name":"Uruguay","region":"America","income":[[1800,784.46],[1820,784.46],[1870,2515.22],[1871,2512],[1872,3035.52],[1873,2999.99],[1874,2670.33],[1875,2240.25],[1876,2427.41],[1877,2448.19],[1878,2591.78],[1879,2247.79],[1880,2401.2],[1881,2227.77],[1882,2398.64],[1883,2764.11],[1884,2680.57],[1885,2963.18],[1886,3008.19],[1887,2614.93],[1888,3134.99],[1889,2785.56],[1890,2476.55],[1891,2641.64],[1892,2646.24],[1893,2810.95],[1894,3064.67],[1895,2962.06],[1896,3049.71],[1897,2875.86],[1898,2595.08],[1899,2607.73],[1900,2558.84],[1901,2575.86],[1902,2967.03],[1903,3016.04],[1904,3044.56],[1905,2692.36],[1906,2921.72],[1907,3180.2],[1908,3429.15],[1909,3410.15],[1910,3616.95],[1911,3410.32],[1912,4045.87],[1913,3817.78],[1914,3061.19],[1915,2849.17],[1916,2892.97],[1917,3134.27],[1918,3261.16],[1919,3615.78],[1920,3084.06],[1921,3173],[1922,3550.25],[1923,3656.14],[1924,3918.22],[1925,3676.65],[1926,3918.96],[1927,4379.65],[1928,4504.87],[1929,4437.56],[1930,4960.9],[1931,4037.12],[1932,3686.22],[1933,3172.25],[1934,3714.87],[1935,3870.21],[1936,3989.47],[1937,3993.26],[1938,4240.05],[1939,4258.09],[1940,4221.98],[1941,4247.21],[1942,3849.73],[1943,3841.54],[1944,4272.8],[1945,4340.79],[1946,4709.27],[1947,4973.97],[1948,5080.7],[1949,5194.38],[1950,5374.01],[1951,5714.81],[1952,5716.77],[1953,5926.63],[1954,6217.57],[1955,6172.35],[1956,6182.26],[1957,6150.77],[1958,6230.9],[1959,5605],[1960,5720.89],[1961,5808.7],[1962,5603.36],[1963,5558.9],[1964,5603.15],[1965,5605.11],[1966,5737.16],[1967,5444.62],[1968,5475.23],[1969,5756.43],[1970,5979.13],[1971,5916.95],[1972,5703.41],[1973,5737.31],[1974,5909.05],[1975,6252.62],[1976,6468.66],[1977,6504.34],[1978,6808.86],[1979,7189.87],[1980,7586.16],[1981,7690.7],[1982,6920.22],[1983,6475.01],[1984,6366.47],[1985,6420.41],[1986,6946.57],[1987,7452.4],[1988,7407.36],[1989,7453.36],[1990,7466.41],[1991,7628.84],[1992,8137],[1993,8331.94],[1994,8728.07],[1995,8495.07],[1996,8856.81],[1997,9230.24],[1998,9590.07],[1999,9266.79],[2000,9092.32],[2001,8732.2],[2002,7727],[2003,7853.82],[2004,8735],[2005,9266],[2006,9641.29],[2007,10331.31],[2008,11178.99],[2009,11461.03]],"population":[[1800,55000],[1820,55000],[1850,132000],[1870,343000],[1871,354000],[1872,364000],[1873,376000],[1874,387000],[1875,399000],[1876,411000],[1877,424000],[1878,437000],[1879,450000],[1880,464000],[1881,482000],[1882,502000],[1883,522000],[1884,543000],[1885,564000],[1886,587000],[1887,610000],[1888,635000],[1889,660000],[1890,686000],[1891,706000],[1892,727000],[1893,748000],[1894,770000],[1895,792000],[1896,815000],[1897,839000],[1898,864000],[1899,889000],[1900,915000],[1901,930000],[1902,945000],[1903,961000],[1904,977000],[1905,993000],[1906,1009000],[1907,1026000],[1908,1043000],[1909,1062000],[1910,1081000],[1911,1112000],[1912,1144000],[1913,1177000],[1914,1223000],[1915,1246000],[1916,1269000],[1917,1292000],[1918,1316000],[1919,1341000],[1920,1371000],[1921,1402000],[1922,1433000],[1923,1465000],[1924,1498000],[1925,1534000],[1926,1571000],[1927,1608000],[1928,1646000],[1929,1685000],[1930,1713000],[1931,1741000],[1932,1770000],[1933,1799000],[1934,1829000],[1935,1859000],[1936,1889000],[1937,1921000],[1938,1952000],[1939,1944000],[1940,1965000],[1941,1987000],[1942,2010000],[1943,2032000],[1944,2055000],[1945,2081000],[1946,2107000],[1947,2134000],[1948,2160000],[1949,2188000],[1950,2194275],[1951,2223060],[1952,2252965],[1953,2283920],[1954,2316543],[1955,2353136],[1956,2389290],[1957,2424959],[1958,2460411],[1959,2495022],[1960,2530969],[1961,2563794],[1962,2598466],[1963,2632111],[1964,2663610],[1965,2693133],[1966,2721207],[1967,2748579],[1968,2776607],[1969,2801859],[1970,2823659],[1971,2826042],[1972,2829526],[1973,2834115],[1974,2838213],[1975,2841818],[1976,2857453],[1977,2873520],[1978,2889495],[1979,2905131],[1980,2919851],[1981,2935649],[1982,2953997],[1983,2972570],[1984,2990097],[1985,3008270],[1986,3026971],[1987,3045153],[1988,3063668],[1989,3084065],[1990,3105708],[1991,3127574],[1992,3149262],[1993,3170958],[1994,3193413],[1995,3215423],[1996,3238280],[1997,3262838],[1998,3284853],[1999,3304234],[2000,3323876],[2001,3343797],[2002,3363085],[2003,3381606],[2004,3399237],[2005,3415920],[2006,3431932],[2007,3447496],[2008,3462531]],"lifeExpectancy":[[1800,32.9],[1925,32.9],[1950,65.98],[1951,66.04],[1952,66.18],[1953,66.33],[1954,66.51],[1955,66.71],[1956,66.93],[1957,67.17],[1958,67.41],[1959,67.66],[1960,67.89],[1961,68.11],[1962,68.29],[1963,68.44],[1964,68.54],[1965,68.6],[1966,68.63],[1967,68.64],[1968,68.65],[1969,68.66],[1970,68.69],[1971,68.73],[1972,68.8],[1973,68.88],[1974,69],[1975,69.14],[1976,69.32],[1977,69.53],[1978,69.76],[1979,70.02],[1980,70.28],[1981,70.56],[1982,70.83],[1983,71.1],[1984,71.35],[1985,71.58],[1986,71.8],[1987,72],[1988,72.19],[1989,72.37],[1990,72.54],[1991,72.72],[1992,72.91],[1993,73.11],[1994,73.32],[1995,73.54],[1996,73.77],[1997,74],[1998,74.23],[1999,74.45],[2000,74.66],[2001,74.88],[2002,75.08],[2003,75.3],[2004,75.51],[2005,75.71],[2006,75.92],[2007,76.12],[2008,76.31],[2009,76.5]]},{"name":"Albania","region":"Europe & Central Asia","income":[[1800,601.22],[1820,613.83],[1870,682.67],[1890,914.81],[1900,1048.26],[1910,1194.13],[1913,1240.6],[1929,1417.53],[1950,1532.35],[1951,1598.49],[1952,1601.06],[1953,1665.79],[1954,1714.69],[1955,1807.13],[1956,1825.3],[1957,1942.28],[1958,2029.79],[1959,2113.35],[1960,2220.34],[1961,2238.79],[1962,2312.89],[1963,2391.78],[1964,2473.7],[1965,2563.95],[1966,2660.07],[1967,2760.2],[1968,2859.81],[1969,2956.94],[1970,3066.02],[1971,3188.58],[1972,3313.42],[1973,3478.46],[1974,3491.43],[1975,3503.59],[1976,3517.62],[1977,3533],[1978,3549.26],[1979,3566.57],[1980,3591.76],[1981,3611.03],[1982,3630.88],[1983,3652.08],[1984,3672.87],[1985,3692.09],[1986,3715.55],[1987,3738.93],[1988,3762.61],[1989,3790.98],[1990,3824.85],[1991,2717.57],[1992,2497.44],[1993,2716.65],[1994,2918.82],[1995,3285.53],[1996,3569.59],[1997,3193.05],[1998,3584.77],[1999,3928.28],[2000,4195.21],[2001,4476.05],[2002,4604.21],[2003,4855.21],[2004,5115.25],[2005,5369],[2006,5635.21],[2007,5967.02],[2008,6399.81],[2009,6546.27]],"population":[[1820,437000],[1850,500000],[1870,603000],[1890,726000],[1900,800000],[1910,874000],[1913,898000],[1920,932000],[1921,937000],[1922,942000],[1923,947000],[1924,952000],[1925,956000],[1926,962000],[1927,967000],[1928,972000],[1929,977000],[1930,982000],[1931,988000],[1932,993000],[1933,998000],[1934,1003000],[1935,1009000],[1936,1014000],[1937,1030000],[1938,1040000],[1939,1070000],[1940,1088000],[1941,1100000],[1942,1117000],[1943,1119000],[1944,1122000],[1945,1138000],[1946,1154000],[1947,1175000],[1948,1192000],[1949,1209000],[1950,1227156],[1951,1254119],[1952,1282697],[1953,1314608],[1954,1352982],[1955,1392164],[1956,1434476],[1957,1476505],[1958,1521417],[1959,1571329],[1960,1623114],[1961,1676635],[1962,1728137],[1963,1779715],[1964,1832284],[1965,1883652],[1966,1932963],[1967,1984060],[1968,2038698],[1969,2100263],[1970,2156612],[1971,2208719],[1972,2263554],[1973,2295691],[1974,2347924],[1975,2401108],[1976,2454824],[1977,2509048],[1978,2563376],[1979,2617679],[1980,2671412],[1981,2724272],[1982,2780097],[1983,2837315],[1984,2895998],[1985,2956697],[1986,3015438],[1987,3075321],[1988,3136843],[1989,3195800],[1990,3250778],[1991,3294227],[1992,3326498],[1993,3351656],[1994,3378424],[1995,3400516],[1996,3414733],[1997,3428038],[1998,3441234],[1999,3457493],[2000,3473835],[2001,3490304],[2002,3508512],[2003,3526642],[2004,3544808],[2005,3563112],[2006,3581655],[2007,3600523],[2008,3619778]],"lifeExpectancy":[[1800,35.4],[1929,35.4],[1950,54.16],[1951,54.37],[1952,54.85],[1953,55.44],[1954,56.15],[1955,56.98],[1956,57.91],[1957,58.94],[1958,60.04],[1959,61.16],[1960,62.25],[1961,63.27],[1962,64.16],[1963,64.89],[1964,65.44],[1965,65.83],[1966,66.1],[1967,66.31],[1968,66.51],[1969,66.73],[1970,66.98],[1971,67.25],[1972,67.53],[1973,67.8],[1974,68.06],[1975,68.31],[1976,68.56],[1977,68.82],[1978,69.08],[1979,69.36],[1980,69.66],[1981,69.98],[1982,70.32],[1983,70.67],[1984,71.02],[1985,71.34],[1986,71.6],[1987,71.78],[1988,71.88],[1989,71.91],[1990,71.9],[1991,71.86],[1992,71.84],[1993,71.87],[1994,71.97],[1995,72.17],[1996,72.47],[1997,72.87],[1998,73.33],[1999,73.84],[2000,74.36],[2001,74.86],[2002,75.31],[2003,75.69],[2004,75.99],[2005,76.21],[2006,76.37],[2007,76.5],[2008,76.62],[2009,76.74]]},{"name":"Armenia","region":"Europe & Central Asia","income":[[1800,502.64],[1820,513.22],[1913,1144.01],[1950,2241.72],[1973,2849.09],[1990,2809.07],[1991,2436.61],[1992,1442.94],[1993,1375.72],[1994,1498.94],[1995,1632.31],[1996,1731.63],[1997,1791.35],[1998,1928.33],[1999,1992.96],[2000,2114.06],[2001,2328.46],[2002,2692.3],[2003,3078.9],[2004,3413.91],[2005,3903],[2006,4413.18],[2007,5011.56],[2008,5338.64],[2009,4523.44]],"population":[[1800,413326],[1820,413326],[1950,1355269],[1951,1379204],[1952,1416722],[1953,1455777],[1954,1505668],[1955,1565329],[1956,1617460],[1957,1672403],[1958,1733125],[1959,1796363],[1960,1868852],[1961,1943799],[1962,2006853],[1963,2065618],[1964,2134940],[1965,2205833],[1966,2273695],[1967,2338063],[1968,2402358],[1969,2463153],[1970,2519745],[1971,2581671],[1972,2647035],[1973,2712997],[1974,2776539],[1975,2834136],[1976,2892704],[1977,2954907],[1978,3014042],[1979,3066726],[1980,3115289],[1981,3166098],[1982,3218691],[1983,3270153],[1984,3322394],[1985,3373532],[1986,3421978],[1987,3468857],[1988,3515614],[1989,3325992],[1990,3376783],[1991,3437479],[1992,3378331],[1993,3231570],[1994,3126094],[1995,3068751],[1996,3063395],[1997,3059000],[1998,3049147],[1999,3047620],[2000,3042556],[2001,3027590],[2002,3013818],[2003,3001712],[2004,2991360],[2005,2982904],[2006,2976372],[2007,2971650],[2008,2968586]],"lifeExpectancy":[[1950,61.94],[1951,62.15],[1952,62.58],[1953,63.01],[1954,63.44],[1955,63.86],[1956,64.28],[1957,64.71],[1958,65.13],[1959,65.56],[1960,65.99],[1961,66.42],[1962,66.86],[1963,67.3],[1964,67.74],[1965,68.18],[1966,68.61],[1967,69.04],[1968,69.45],[1969,69.83],[1970,70.17],[1971,70.44],[1972,70.63],[1973,70.74],[1974,70.79],[1975,70.79],[1976,70.79],[1977,70.8],[1978,70.84],[1979,70.89],[1980,70.93],[1981,70.91],[1982,70.78],[1983,70.52],[1984,70.16],[1985,69.71],[1986,69.22],[1987,68.75],[1988,68.35],[1989,68.06],[1990,67.89],[1991,67.86],[1992,67.96],[1993,68.14],[1994,68.41],[1995,68.76],[1996,69.18],[1997,69.65],[1998,70.16],[1999,70.68],[2000,71.19],[2001,71.66],[2002,72.1],[2003,72.49],[2004,72.83],[2005,73.13],[2006,73.38],[2007,73.61],[2008,73.82],[2009,74.03]]},{"name":"Austria","region":"Europe & Central Asia","income":[[1800,1434.51],[1820,1550.01],[1821,1574.98],[1822,1600.35],[1823,1626.12],[1824,1652.32],[1825,1678.93],[1826,1705.97],[1827,1733.45],[1828,1761.37],[1829,1789.74],[1830,1818.56],[1831,1837.1],[1832,1855.82],[1833,1874.73],[1834,1893.83],[1835,1913.13],[1836,1932.63],[1837,1952.33],[1838,1972.22],[1839,1992.32],[1840,2012.62],[1841,2034.4],[1842,2056.41],[1843,2078.65],[1844,2101.14],[1845,2123.87],[1846,2146.85],[1847,2170.08],[1848,2193.56],[1849,2217.29],[1850,2241.28],[1851,2262.88],[1852,2284.7],[1853,2306.73],[1854,2328.97],[1855,2351.42],[1856,2374.09],[1857,2396.98],[1858,2420.09],[1859,2443.42],[1860,2466.98],[1861,2483.91],[1862,2500.97],[1863,2518.14],[1864,2535.43],[1865,2552.84],[1866,2570.37],[1867,2588.02],[1868,2605.79],[1869,2623.68],[1870,2641.7],[1871,2813.04],[1872,2815.2],[1873,2730.96],[1874,2834.04],[1875,2829.2],[1876,2873.94],[1877,2952.65],[1878,3031.03],[1879,2990.81],[1880,3013.1],[1881,3116],[1882,3115.19],[1883,3222.36],[1884,3287.4],[1885,3245.89],[1886,3329.95],[1887,3538.38],[1888,3508.79],[1889,3454.42],[1890,3619.16],[1891,3720.23],[1892,3771.43],[1893,3764.68],[1894,3951.4],[1895,4024.65],[1896,4053.25],[1897,4105.88],[1898,4303.41],[1899,4359.56],[1900,4362.27],[1901,4344.52],[1902,4477.8],[1903,4480.79],[1904,4513.37],[1905,4728.12],[1906,4870.98],[1907,5130.41],[1908,5113.09],[1909,5056.77],[1910,5090.03],[1911,5205.8],[1912,5422.19],[1913,5360.93],[1914,4448.44],[1915,4104.04],[1916,4064.74],[1917,4000.87],[1918,3952.16],[1919,3494.55],[1920,3731.71],[1921,4099.62],[1922,4451.32],[1923,4396.76],[1924,4892.64],[1925,5208.47],[1926,5279.81],[1927,5422.72],[1928,5657.6],[1929,5721.43],[1930,5546.91],[1931,5085.87],[1932,4547.49],[1933,4382.76],[1934,4411.25],[1935,4496.45],[1936,4632.65],[1937,4881.74],[1938,5506.35],[1939,6336.15],[1940,6124.69],[1941,6524.02],[1942,6161.23],[1943,6287.8],[1944,5888.21],[1945,2667.85],[1946,3026.57],[1947,3351.41],[1948,4276.52],[1949,5094.41],[1950,5733.1],[1951,6124.93],[1952,6137.08],[1953,6399.79],[1954,7045.97],[1955,7817.25],[1956,8348.45],[1957,8842.6],[1958,9137.3],[1959,9360.85],[1960,10083.83],[1961,10560.97],[1962,10750.72],[1963,11116.7],[1964,11705.63],[1965,11964.28],[1966,12549.33],[1967,12834.6],[1968,13335.56],[1969,14125.32],[1970,15078.77],[1971,15779.07],[1972,16661.63],[1973,17379.33],[1974,18033.98],[1975,18016.37],[1976,18874.3],[1977,19749.42],[1978,19693.62],[1979,20803.4],[1980,21284.71],[1981,21220.89],[1982,21597.08],[1983,22266.66],[1984,22336.95],[1985,22821.2],[1986,23329.16],[1987,23687.83],[1988,24371.18],[1989,25307.87],[1990,26135],[1991,26744.4],[1992,27042.02],[1993,26882.04],[1994,27463.48],[1995,27918.82],[1996,28602.35],[1997,29095.92],[1998,30107.98],[1999,31039.62],[2000,32008.5],[2001,32196.42],[2002,32417.61],[2003,32741.19],[2004,33455.69],[2005,34108],[2006,35161.23],[2007,36348.95],[2008,37032.76],[2009,35636.42]],"population":[[1820,3369000],[1821,3386000],[1822,3402000],[1823,3419000],[1824,3436000],[1825,3452000],[1826,3469000],[1827,3486000],[1828,3504000],[1829,3521000],[1830,3538000],[1831,3555000],[1832,3573000],[1833,3590000],[1834,3608000],[1835,3626000],[1836,3614000],[1837,3662000],[1838,3680000],[1839,3698000],[1840,3716000],[1841,3739000],[1842,3762000],[1843,3785000],[1844,3808000],[1845,3831000],[1846,3855000],[1847,3878000],[1848,3902000],[1849,3926000],[1850,3950000],[1851,3978000],[1852,4006000],[1853,4035000],[1854,4063000],[1855,4092000],[1856,4120000],[1857,4150000],[1858,4178000],[1859,4206000],[1860,4235000],[1861,4263000],[1862,4292000],[1863,4321000],[1864,4350000],[1865,4380000],[1866,4409000],[1867,4439000],[1868,4469000],[1869,4499000],[1870,4520000],[1871,4562000],[1872,4604000],[1873,4646000],[1874,4688000],[1875,4730000],[1876,4772000],[1877,4815000],[1878,4857000],[1879,4899000],[1880,4941000],[1881,4985000],[1882,5030000],[1883,5075000],[1884,5121000],[1885,5166000],[1886,5212000],[1887,5257000],[1888,5303000],[1889,5348000],[1890,5394000],[1891,5446000],[1892,5504000],[1893,5563000],[1894,5622000],[1895,5680000],[1896,5739000],[1897,5798000],[1898,5856000],[1899,5915000],[1900,5973000],[1901,6035000],[1902,6099000],[1903,6164000],[1904,6228000],[1905,6292000],[1906,6357000],[1907,6421000],[1908,6485000],[1909,6550000],[1910,6614000],[1911,6669000],[1912,6724000],[1913,6767000],[1914,6806000],[1915,6843000],[1916,6825000],[1917,6785000],[1918,6727000],[1919,6420000],[1920,6455000],[1921,6504000],[1922,6528000],[1923,6543000],[1924,6562000],[1925,6582000],[1926,6603000],[1927,6623000],[1928,6643000],[1929,6664000],[1930,6684000],[1931,6705000],[1932,6725000],[1933,6746000],[1934,6760000],[1935,6761000],[1936,6758000],[1937,6755000],[1938,6753000],[1939,6653000],[1940,6705000],[1941,6745000],[1942,6783000],[1943,6808000],[1944,6834000],[1945,6799000],[1946,7000000],[1947,6971000],[1948,6956000],[1949,6943000],[1950,6935100],[1951,6935451],[1952,6927772],[1953,6932483],[1954,6940209],[1955,6946885],[1956,6952359],[1957,6965860],[1958,6987358],[1959,7014331],[1960,7047437],[1961,7086299],[1962,7129864],[1963,7175811],[1964,7223801],[1965,7270889],[1966,7322066],[1967,7376998],[1968,7415403],[1969,7441055],[1970,7467086],[1971,7500482],[1972,7544201],[1973,7586115],[1974,7599038],[1975,7578903],[1976,7565525],[1977,7568430],[1978,7562305],[1979,7549425],[1980,7549433],[1981,7564629],[1982,7574613],[1983,7552896],[1984,7554132],[1985,7559776],[1986,7568242],[1987,7578903],[1988,7599791],[1989,7627861],[1990,7722953],[1991,7818423],[1992,7914969],[1993,7988599],[1994,8027540],[1995,8047433],[1996,8060852],[1997,8069876],[1998,8078622],[1999,8094156],[2000,8113413],[2001,8131690],[2002,8148312],[2003,8162656],[2004,8174762],[2005,8184691],[2006,8192880],[2007,8199783],[2008,8205533]],"lifeExpectancy":[[1800,34.4],[1870,34.4],[1881,35],[1891,37.3],[1901,42],[1903,40.1],[1911,45.1],[1931,56.45],[1947,61.31],[1948,63.24],[1949,63.43],[1950,64.88],[1951,65.26],[1952,66.8],[1953,67.29],[1954,67.32],[1955,67.6],[1956,67.72],[1957,67.48],[1958,68.49],[1959,68.42],[1960,68.78],[1961,69.75],[1962,69.54],[1963,69.67],[1964,70.16],[1965,69.95],[1966,70.26],[1967,70.14],[1968,70.29],[1969,70.06],[1970,70.11],[1971,70.31],[1972,70.63],[1973,71.21],[1974,71.2],[1975,71.33],[1976,71.82],[1977,72.17],[1978,72.25],[1979,72.56],[1980,72.7],[1981,73.02],[1982,73.18],[1983,73.25],[1984,73.79],[1985,74.01],[1986,74.49],[1987,74.93],[1988,75.41],[1989,75.5],[1990,75.77],[1991,75.83],[1992,76.04],[1993,76.27],[1994,76.59],[1995,76.83],[1996,77.1],[1997,77.5],[1998,77.87],[1999,78.05],[2000,78.33],[2001,78.83],[2002,78.96],[2003,78.96],[2004,79.47],[2005,79.64],[2006,80.1],[2007,80.3],[2008,80.51],[2009,80.23]]},{"name":"Azerbaijan","region":"Europe & Central Asia","income":[[1800,639.95],[1820,653.43],[1913,1456.54],[1950,2854.15],[1973,4425.48],[1990,4629.49],[1991,4528.84],[1992,3455.54],[1993,2627.69],[1994,2088.93],[1995,1828.59],[1996,1843.19],[1997,1943.29],[1998,2132.38],[1999,2285.7],[2000,2533.17],[2001,2775.74],[2002,3059.18],[2003,3387.79],[2004,3760.11],[2005,4648],[2006,6183.5],[2007,7646.12],[2008,8381.63],[2009,9088.42]],"population":[[1800,879960],[1820,879960],[1950,2885332],[1951,2983082],[1952,3090973],[1953,3158974],[1954,3222581],[1955,3313718],[1956,3416717],[1957,3526313],[1958,3630590],[1959,3740596],[1960,3881546],[1961,4033503],[1962,4157301],[1963,4283470],[1964,4430183],[1965,4566962],[1966,4701730],[1967,4827284],[1968,4945231],[1969,5059334],[1970,5168973],[1971,5283659],[1972,5393681],[1973,5497774],[1974,5599407],[1975,5696117],[1976,5789818],[1977,5886578],[1978,5986427],[1979,6082087],[1980,6173361],[1981,6270531],[1982,6369133],[1983,6470276],[1984,6578901],[1985,6681687],[1986,6776473],[1987,6873978],[1988,6975798],[1989,7101735],[1990,7199838],[1991,7308339],[1992,7413618],[1993,7497205],[1994,7572945],[1995,7630291],[1996,7668253],[1997,7695123],[1998,7714005],[1999,7729131],[2000,7748163],[2001,7771092],[2002,7798497],[2003,7830764],[2004,7868385],[2005,7911974],[2006,7961619],[2007,8017309],[2008,8079043]],"lifeExpectancy":[[1950,57.15],[1951,57.35],[1952,57.76],[1953,58.17],[1954,58.57],[1955,58.98],[1956,59.38],[1957,59.79],[1958,60.19],[1959,60.6],[1960,61.01],[1961,61.42],[1962,61.84],[1963,62.25],[1964,62.67],[1965,63.08],[1966,63.5],[1967,63.91],[1968,64.3],[1969,64.67],[1970,65],[1971,65.25],[1972,65.42],[1973,65.5],[1974,65.51],[1975,65.45],[1976,65.34],[1977,65.21],[1978,65.08],[1979,64.97],[1980,64.92],[1981,64.93],[1982,65.02],[1983,65.17],[1984,65.36],[1985,65.55],[1986,65.72],[1987,65.82],[1988,65.84],[1989,65.77],[1990,65.65],[1991,65.49],[1992,65.35],[1993,65.27],[1994,65.26],[1995,65.36],[1996,65.56],[1997,65.86],[1998,66.23],[1999,66.67],[2000,67.14],[2001,67.63],[2002,68.11],[2003,68.58],[2004,69.01],[2005,69.39],[2006,69.73],[2007,70.04],[2008,70.33],[2009,70.6]]},{"name":"Belarus","region":"Europe & Central Asia","income":[[1800,717.05],[1820,732.15],[1913,1632.01],[1950,3197.98],[1973,4958.61],[1990,6807.78],[1991,6693.19],[1992,6014.41],[1993,5528.26],[1994,4868.62],[1995,4355.51],[1996,4475.41],[1997,4987.79],[1998,5411.86],[1999,5602.35],[2000,5936.24],[2001,6225.16],[2002,6545.79],[2003,6999.86],[2004,7806.72],[2005,8541],[2006,9431.37],[2007,10271.59],[2008,11322.27],[2009,11574.43]],"population":[[1800,2355081],[1820,2355081],[1950,7722155],[1951,7742159],[1952,7698249],[1953,7666821],[1954,7698751],[1955,7780565],[1956,7856790],[1957,7912626],[1958,7982625],[1959,8075290],[1960,8167918],[1961,8262998],[1962,8365073],[1963,8438881],[1964,8501607],[1965,8590786],[1966,8694009],[1967,8786887],[1968,8864776],[1969,8946091],[1970,9027198],[1971,9101396],[1972,9169156],[1973,9236465],[1974,9304311],[1975,9360184],[1976,9405544],[1977,9457385],[1978,9520280],[1979,9581518],[1980,9643706],[1981,9712761],[1982,9778781],[1983,9845174],[1984,9914262],[1985,9981744],[1986,10044184],[1987,10097446],[1988,10149612],[1989,10184084],[1990,10215208],[1991,10244639],[1992,10306362],[1993,10360516],[1994,10387841],[1995,10403989],[1996,10408773],[1997,10404210],[1998,10394407],[1999,10382370],[2000,10366719],[2001,10350194],[2002,10335382],[2003,10322151],[2004,10310520],[2005,10300483],[2006,10293011],[2007,10289007],[2008,10287955]],"lifeExpectancy":[[1800,36.2],[1900,36.2],[1950,65.02],[1951,65.25],[1952,65.69],[1953,66.13],[1954,66.55],[1955,66.96],[1956,67.36],[1957,67.74],[1958,68.11],[1959,69.06],[1960,71.85],[1961,72.57],[1962,71.29],[1963,71.95],[1964,73.48],[1965,73.02],[1966,73.38],[1967,73.13],[1968,73.24],[1969,72.84],[1970,72.32],[1971,72.96],[1972,72.67],[1973,72.71],[1974,73.01],[1975,72.08],[1976,71.92],[1977,71.86],[1978,71.72],[1979,71.32],[1980,71.08],[1981,71.36],[1982,71.49],[1983,71.28],[1984,70.65],[1985,70.86],[1986,72.25],[1987,72.15],[1988,71.89],[1989,71.68],[1990,71.14],[1991,70.58],[1992,70.16],[1993,69.05],[1994,68.81],[1995,68.42],[1996,68.56],[1997,68.37],[1998,68.37],[1999,67.97],[2000,68.99],[2001,68.61],[2002,68.17],[2003,68.71],[2004,69.09],[2005,68.84],[2006,69.51],[2007,70.41],[2008,69.19],[2009,69.4]]},{"name":"Belgium","region":"Europe & Central Asia","income":[[1800,1554],[1820,1566.22],[1821,1570.35],[1822,1574.5],[1823,1578.66],[1824,1582.83],[1825,1587.02],[1826,1591.21],[1827,1595.41],[1828,1599.63],[1829,1603.86],[1830,1608.09],[1831,1630.75],[1832,1653.73],[1833,1677.03],[1834,1700.66],[1835,1724.62],[1836,1748.92],[1837,1773.57],[1838,1798.56],[1839,1823.9],[1840,1849.6],[1841,1875.66],[1842,1902.09],[1843,1928.89],[1844,1956.07],[1845,1983.63],[1846,2011.58],[1847,2092.67],[1848,2083.09],[1849,2127.15],[1850,2194.69],[1851,2241.25],[1852,2286.73],[1853,2332.14],[1854,2461.44],[1855,2462.74],[1856,2581.08],[1857,2631],[1858,2631.23],[1859,2614.36],[1860,2728.3],[1861,2749.4],[1862,2801.79],[1863,2861.59],[1864,2936.27],[1865,2914.6],[1866,2980.08],[1867,2973.81],[1868,3059.92],[1869,3171.27],[1870,3206.23],[1871,3195.35],[1872,3364.87],[1873,3360.56],[1874,3444.3],[1875,3409.48],[1876,3426.09],[1877,3437.96],[1878,3507.43],[1879,3510.63],[1880,3654.84],[1881,3660.7],[1882,3740.81],[1883,3751.04],[1884,3740.87],[1885,3742.93],[1886,3761.51],[1887,3877.6],[1888,3874.23],[1889,4032.17],[1890,4091.5],[1891,4052.2],[1892,4108.36],[1893,4124.83],[1894,4140.29],[1895,4192.43],[1896,4240.59],[1897,4282.65],[1898,4316.81],[1899,4366.64],[1900,4456.85],[1901,4442.72],[1902,4466.99],[1903,4506.92],[1904,4565.58],[1905,4639.15],[1906,4682.47],[1907,4700.11],[1908,4700.77],[1909,4746.97],[1910,4858.37],[1911,4959.53],[1912,5029.69],[1913,5045.58],[1914,3696.15],[1915,3027.96],[1916,3388.9],[1917,2821.92],[1918,2636.44],[1919,3249.35],[1920,4906.66],[1921,5166.58],[1922,5513.88],[1923,5864.8],[1924,6123.55],[1925,6131.49],[1926,6209.34],[1927,6183.18],[1928,6598.97],[1929,6763.13],[1930,6865.1],[1931,6615.19],[1932,6291.57],[1933,6216.09],[1934,6063.88],[1935,6335.16],[1936,6529.96],[1937,6834.46],[1938,6697.85],[1939,6423.53],[1940,5272.8],[1941,4501.67],[1942,4617.74],[1943,3740.56],[1944,3794.18],[1945,4048.7],[1946,6372.25],[1947,7175.79],[1948,7533.41],[1949,7749.11],[1950,7990.47],[1951,8393.42],[1952,8343.11],[1953,8645.37],[1954,8950.31],[1955,9244.73],[1956,9529.4],[1957,9714.96],[1958,9477.27],[1959,9675.47],[1960,10076.6],[1961,10512.51],[1962,10991.21],[1963,11396.13],[1964,12089.41],[1965,12406.29],[1966,12720.18],[1967,13149.04],[1968,13647.2],[1969,14520.74],[1970,15379.71],[1971,15899.66],[1972,16672.14],[1973,17639.58],[1974,18325.17],[1975,18032.12],[1976,19019.94],[1977,19117.97],[1978,19645.54],[1979,20090.12],[1980,20969.62],[1981,20696.13],[1982,20979.85],[1983,20979.01],[1984,21498.94],[1985,21708.75],[1986,22024.75],[1987,22525.56],[1988,23555.82],[1989,24269.23],[1990,24925.91],[1991,25293.57],[1992,25575.57],[1993,25229.6],[1994,25947.3],[1995,26480.95],[1996,26725.5],[1997,27561.2],[1998,28030.61],[1999,28937.15],[2000,29940.2],[2001,30092.08],[2002,30485.88],[2003,30736.53],[2004,31600.02],[2005,32077],[2006,32738.41],[2007,33448],[2008,33490.47],[2009,32256.64]],"population":[[1820,3434000],[1821,3464000],[1822,3495000],[1823,3526000],[1824,3557000],[1825,3589000],[1826,3620000],[1827,3652000],[1828,3685000],[1829,3717000],[1830,3750000],[1831,3782000],[1832,3814000],[1833,3846000],[1834,3879000],[1835,3912000],[1836,3945000],[1837,3978000],[1838,4012000],[1839,4046000],[1840,4080000],[1841,4115000],[1842,4151000],[1843,4187000],[1844,4223000],[1845,4259000],[1846,4296000],[1847,4333000],[1848,4371000],[1849,4408000],[1850,4449000],[1851,4477000],[1852,4506000],[1853,4534000],[1854,4563000],[1855,4592000],[1856,4621000],[1857,4651000],[1858,4680000],[1859,4710000],[1860,4740000],[1861,4774000],[1862,4809000],[1863,4844000],[1864,4879000],[1865,4915000],[1866,4950000],[1867,4986000],[1868,5023000],[1869,5029000],[1870,5096000],[1871,5137000],[1872,5178000],[1873,5219000],[1874,5261000],[1875,5303000],[1876,5345000],[1877,5394000],[1878,5442000],[1879,5492000],[1880,5541000],[1881,5606000],[1882,5673000],[1883,5740000],[1884,5807000],[1885,5876000],[1886,5919000],[1887,5962000],[1888,6007000],[1889,6051000],[1890,6096000],[1891,6164000],[1892,6231000],[1893,6300000],[1894,6370000],[1895,6439000],[1896,6494000],[1897,6548000],[1898,6604000],[1899,6662000],[1900,6719000],[1901,6801000],[1902,6903000],[1903,6997000],[1904,7086000],[1905,7175000],[1906,7258000],[1907,7338000],[1908,7411000],[1909,7478000],[1910,7498000],[1911,7517000],[1912,7590000],[1913,7666000],[1914,7723000],[1915,7759000],[1916,7762000],[1917,7729000],[1918,7660000],[1919,7628000],[1920,7552000],[1921,7504000],[1922,7571000],[1923,7635000],[1924,7707000],[1925,7779000],[1926,7844000],[1927,7904000],[1928,7968000],[1929,8032000],[1930,8076000],[1931,8126000],[1932,8186000],[1933,8231000],[1934,8262000],[1935,8288000],[1936,8315000],[1937,8346000],[1938,8374000],[1939,8392000],[1940,8346000],[1941,8276000],[1942,8247000],[1943,8242000],[1944,8291000],[1945,8339000],[1946,8367000],[1947,8450000],[1948,8557000],[1949,8614000],[1950,8639369],[1951,8678386],[1952,8730405],[1953,8777873],[1954,8819380],[1955,8868475],[1956,8923845],[1957,8989111],[1958,9052707],[1959,9103729],[1960,9118700],[1961,9165800],[1962,9218400],[1963,9283100],[1964,9367000],[1965,9448100],[1966,9507800],[1967,9556500],[1968,9589800],[1969,9612700],[1970,9637800],[1971,9672500],[1972,9709100],[1973,9738400],[1974,9767800],[1975,9794800],[1976,9811000],[1977,9821800],[1978,9829700],[1979,9837200],[1980,9846800],[1981,9852400],[1982,9856303],[1983,9855520],[1984,9855300],[1985,9858200],[1986,9861800],[1987,9870200],[1988,9884000],[1989,9937697],[1990,9969310],[1991,10004487],[1992,10045622],[1993,10085426],[1994,10122914],[1995,10155459],[1996,10178934],[1997,10199787],[1998,10217030],[1999,10235655],[2000,10263618],[2001,10291679],[2002,10311970],[2003,10330824],[2004,10348276],[2005,10364388],[2006,10379067],[2007,10392226],[2008,10403951]],"lifeExpectancy":[[1800,40],[1841,40.33],[1842,38.66],[1843,40.36],[1844,41.9],[1845,41.03],[1846,37.83],[1847,35.11],[1848,38.04],[1849,34.5],[1850,42.28],[1851,41.88],[1852,41.77],[1853,41.33],[1854,39.78],[1855,37.49],[1856,40.92],[1857,40.49],[1858,40.18],[1859,38.98],[1860,45.12],[1861,41.27],[1862,43.12],[1863,41.33],[1864,39.81],[1865,37.74],[1866,32.47],[1867,43.08],[1868,42.56],[1869,42.58],[1870,40.92],[1871,34.35],[1872,40.04],[1873,43.48],[1874,44.67],[1875,42.17],[1876,43.68],[1877,44.48],[1878,44.24],[1879,43.84],[1880,42.48],[1881,44.42],[1882,45.54],[1883,44.89],[1884,44.24],[1885,45.48],[1886,43.36],[1887,46.06],[1888,44.92],[1889,45.07],[1890,44.14],[1891,44.06],[1892,43.16],[1893,44.44],[1894,46.65],[1895,45.46],[1896,48.06],[1897,48.82],[1898,48.12],[1899,46.49],[1900,46.59],[1901,49.44],[1902,49.18],[1903,49.26],[1904,49.32],[1905,50.01],[1906,49.74],[1907,51.11],[1908,49.7],[1909,50.7],[1910,51.37],[1911,49.25],[1912,52.26],[1913,52.51],[1919,49.86],[1920,53.66],[1921,54.75],[1922,55.15],[1923,56.77],[1924,57.51],[1925,57.16],[1926,56.97],[1927,57.2],[1928,57.53],[1929,55.07],[1930,57.17],[1931,58.51],[1932,58.59],[1933,58.76],[1934,60.42],[1935,60.01],[1936,60.01],[1937,60],[1938,60.15],[1939,60.01],[1940,55.96],[1941,58.95],[1942,59.2],[1943,60.39],[1944,56.94],[1945,58.39],[1946,61.92],[1947,63.46],[1948,64.98],[1949,65.48],[1950,66.35],[1951,66.8],[1952,68],[1953,68.37],[1954,68.63],[1955,68.58],[1956,68.87],[1957,69.24],[1958,69.93],[1959,70.33],[1960,69.65],[1961,70.52],[1962,70.25],[1963,70.06],[1964,70.73],[1965,70.58],[1966,70.65],[1967,70.94],[1968,70.63],[1969,70.71],[1970,70.97],[1971,71.1],[1972,71.44],[1973,71.65],[1974,72.01],[1975,72],[1976,72.15],[1977,72.8],[1978,72.75],[1979,73.24],[1980,73.29],[1981,73.7],[1982,73.93],[1983,73.93],[1984,74.43],[1985,74.54],[1986,74.74],[1987,75.35],[1988,75.66],[1989,75.73],[1990,76.14],[1991,76.3],[1992,76.46],[1993,76.47],[1994,76.82],[1995,76.97],[1996,77.31],[1997,77.53],[1998,77.62],[1999,77.8],[2000,77.91],[2001,78.22],[2002,78.32],[2003,78.47],[2004,79.12],[2005,79.21],[2006,79.55],[2007,79.49],[2008,79.78],[2009,80.05]]},{"name":"Bosnia and Herzegovina","region":"Europe & Central Asia","income":[[1800,490.82],[1820,501.12],[1870,402.62],[1890,566.65],[1900,606.28],[1910,710.41],[1913,710.43],[1920,693.15],[1921,699.98],[1922,710.29],[1923,736.69],[1924,778.43],[1925,805.15],[1926,849.17],[1927,823.56],[1928,883.37],[1929,916.93],[1930,886.2],[1931,847.43],[1932,758.01],[1933,770.86],[1934,788.59],[1935,766.06],[1936,853.69],[1937,855.96],[1938,911.73],[1939,948.93],[1947,884.19],[1948,1040.8],[1949,1128.12],[1950,1042.5],[1951,1069.5],[1952,973.53],[1953,1104.17],[1954,1150.69],[1955,1208.08],[1956,1170.76],[1957,1353.99],[1958,1398.03],[1959,1555.19],[1960,1638.06],[1961,1694.86],[1962,1709.68],[1963,1869.42],[1964,2029.36],[1965,2063.9],[1966,2154.29],[1967,2172.35],[1968,2199.57],[1969,2426.35],[1970,2523.61],[1971,2790],[1972,2860.17],[1973,2930.94],[1974,3279.66],[1975,3250.83],[1976,3319.88],[1977,3528.48],[1978,3690.94],[1979,3910.97],[1980,4075.45],[1981,4123.1],[1982,4126.61],[1983,4138.77],[1984,4220.39],[1985,4232.24],[1986,4383.55],[1987,4314.11],[1988,4234.67],[1989,4162.74],[1990,3844.61],[1991,3378.38],[1992,2546.78],[1993,1895.66],[1994,2034.37],[1995,2200.62],[1996,3487.83],[1997,4766.36],[1998,5251.02],[1999,5544.95],[2000,5733.15],[2001,5880.63],[2002,6018.98],[2003,6097.74],[2004,6317.27],[2005,6506],[2006,6856.27],[2007,7247.13],[2008,7619.54],[2009,7341.98]],"population":[[1800,851806],[1820,851806],[1950,2662000],[1951,2721000],[1952,2791000],[1953,2863000],[1954,2916000],[1955,2974000],[1956,3025000],[1957,3076000],[1958,3126000],[1959,3185000],[1960,3240000],[1961,3299000],[1962,3349000],[1963,3399000],[1964,3445000],[1965,3493000],[1966,3541000],[1967,3585000],[1968,3627000],[1969,3669000],[1970,3703000],[1971,3761000],[1972,3819000],[1973,3872000],[1974,3925000],[1975,3980000],[1976,4033000],[1977,4086000],[1978,4135000],[1979,4181000],[1980,4092000],[1981,4135743],[1982,4172693],[1983,4207275],[1984,4241401],[1985,4275355],[1986,4307685],[1987,4338977],[1988,4369894],[1989,4398322],[1990,4423646],[1991,4449406],[1992,4256013],[1993,3955016],[1994,3784983],[1995,3708960],[1996,3608495],[1997,3607000],[1998,3817575],[1999,3958653],[2000,4035457],[2001,4111293],[2002,4165416],[2003,4243181],[2004,4345591],[2005,4430494],[2006,4498976],[2007,4552198],[2008,4590310]],"lifeExpectancy":[[1800,35.1],[1920,35.1],[1950,51.68],[1951,52.24],[1952,53.34],[1953,54.38],[1954,55.37],[1955,56.32],[1956,57.21],[1957,58.06],[1958,58.86],[1959,59.62],[1960,60.33],[1961,61.01],[1962,61.65],[1963,62.26],[1964,62.85],[1965,63.43],[1966,63.99],[1967,64.54],[1968,65.09],[1969,65.63],[1970,66.16],[1971,66.7],[1972,67.24],[1973,67.78],[1974,68.3],[1975,68.8],[1976,69.25],[1977,69.64],[1978,69.96],[1979,70.22],[1980,70.45],[1981,70.69],[1982,70.94],[1983,71.21],[1984,71.44],[1985,71.5],[1986,71.22],[1987,70.53],[1988,69.45],[1989,68.1],[1990,66.74],[1991,65.69],[1992,65.22],[1993,65.44],[1994,66.36],[1995,67.85],[1996,69.63],[1997,71.38],[1998,72.83],[1999,73.88],[2000,74.49],[2001,74.72],[2002,74.77],[2003,74.76],[2004,74.77],[2005,74.82],[2006,74.93],[2007,75.06],[2008,75.2],[2009,75.34]]},{"name":"Bulgaria","region":"Europe & Central Asia","income":[[1800,836.31],[1820,853.86],[1870,1084.36],[1890,1460.07],[1900,1578.95],[1910,1879.73],[1913,1980.34],[1924,1173.28],[1925,1190.81],[1926,1509.7],[1927,1619.8],[1928,1573.86],[1929,1523.89],[1930,1658.24],[1931,1876.69],[1932,1864.41],[1933,1871.38],[1934,1689.5],[1935,1595.52],[1936,1927.59],[1937,2022.45],[1938,2059.3],[1939,2068.96],[1940,1998.58],[1941,2022.66],[1942,1910.08],[1943,1953.88],[1944,1790.93],[1945,1384.92],[1950,2131.56],[1951,2567.42],[1952,2444.29],[1953,2691.94],[1954,2613.98],[1955,2772.89],[1956,2747.38],[1957,3008.67],[1958,3238.11],[1959,3464.57],[1960,3759.17],[1961,3966.09],[1962,4254.34],[1963,4412.81],[1964,4721.86],[1965,4970.49],[1966,5325.95],[1967,5577],[1968,5639.35],[1969,5868.78],[1970,6162.47],[1971,6328.5],[1972,6597.49],[1973,6822.39],[1974,6989.57],[1975,7527.86],[1976,7722.87],[1977,7612.24],[1978,7771.12],[1979,8062.6],[1980,7802.85],[1981,7987.02],[1982,8224.19],[1983,8052.37],[1984,8301.98],[1985,8037.95],[1986,8236.46],[1987,8239.85],[1988,8179.01],[1989,8025.27],[1990,7225.88],[1991,6710.7],[1992,6302.62],[1993,6367.39],[1994,6550.71],[1995,6820.31],[1996,6250.97],[1997,5970.39],[1998,6282.64],[1999,6491.1],[2000,6907.01],[2001,7264.61],[2002,7696.78],[2003,8105.39],[2004,8721.23],[2005,9353],[2006,9995.42],[2007,10923.45],[2008,11357.63],[2009,10840.26]],"population":[[1820,2187000],[1850,2500000],[1870,2586000],[1890,3445000],[1900,4000000],[1910,4520000],[1913,4720000],[1920,5072000],[1921,5148000],[1922,5255000],[1923,5365000],[1924,5476000],[1925,5590000],[1926,5705000],[1927,5798000],[1928,5873000],[1929,5950000],[1930,6027000],[1931,6106000],[1932,6186000],[1933,6267000],[1934,6349000],[1935,6415000],[1936,6469000],[1937,6514000],[1938,6564000],[1939,6614000],[1940,6666000],[1941,6715000],[1942,6771000],[1943,6828000],[1944,6885000],[1945,6942000],[1946,7000000],[1947,7064000],[1948,7130000],[1949,7195000],[1950,7250500],[1951,7258200],[1952,7274900],[1953,7346100],[1954,7423300],[1955,7499400],[1956,7575800],[1957,7651254],[1958,7727553],[1959,7797777],[1960,7867374],[1961,7943118],[1962,8012946],[1963,8078145],[1964,8144339],[1965,8201400],[1966,8258057],[1967,8310226],[1968,8369603],[1969,8434172],[1970,8489574],[1971,8536395],[1972,8576200],[1973,8620997],[1974,8678745],[1975,8720742],[1976,8755037],[1977,8797022],[1978,8803281],[1979,8811589],[1980,8843528],[1981,8869441],[1982,8892098],[1983,8910284],[1984,8928271],[1985,8943573],[1986,8958770],[1987,8971958],[1988,8982025],[1989,8990055],[1990,8894028],[1991,8772368],[1992,8658506],[1993,8441872],[1994,8353335],[1995,8255811],[1996,8161026],[1997,8066057],[1998,7971774],[1999,7893227],[2000,7818495],[2001,7738416],[2002,7661799],[2003,7588399],[2004,7517973],[2005,7450349],[2006,7385367],[2007,7322858],[2008,7262675]],"lifeExpectancy":[[1800,35.8],[1900,40.2],[1902,42.5],[1905,43.3],[1923,44.6],[1926,45.3],[1930,48.3],[1937,51.8],[1947,54.08],[1948,55.79],[1949,57.92],[1950,61.39],[1951,60.63],[1952,59.6],[1953,64.14],[1954,64.4],[1955,64.81],[1956,65.21],[1957,66.61],[1958,68.71],[1959,66.57],[1960,69.18],[1961,70.22],[1962,69.51],[1963,70.34],[1964,71.14],[1965,71.3],[1966,71.23],[1967,70.42],[1968,71.25],[1969,70.43],[1970,71.27],[1971,70.87],[1972,70.9],[1973,71.34],[1974,71.2],[1975,71.05],[1976,71.38],[1977,70.81],[1978,71.17],[1979,71.27],[1980,71.1],[1981,71.49],[1982,71.08],[1983,71.25],[1984,71.35],[1985,71.07],[1986,71.55],[1987,71.34],[1988,71.4],[1989,71.46],[1990,71.31],[1991,71.19],[1992,71.19],[1993,71.18],[1994,70.85],[1995,70.95],[1996,70.85],[1997,70.32],[1998,70.91],[1999,71.57],[2000,71.59],[2001,71.9],[2002,72.14],[2003,72.35],[2004,72.54],[2005,72.53],[2006,72.64],[2007,72.95],[2008,73.32],[2009,73.53]]},{"name":"Croatia","region":"Europe & Central Asia","income":[[1800,1227.06],[1820,1252.8],[1870,1290.02],[1890,1815.56],[1900,1942.56],[1910,2276.2],[1913,2276.25],[1920,2220.87],[1921,2242.77],[1922,2275.79],[1923,2360.39],[1924,2494.12],[1925,2579.72],[1926,2720.79],[1927,2638.71],[1928,2830.35],[1929,2937.87],[1930,2839.43],[1931,2715.2],[1932,2428.7],[1933,2469.86],[1934,2526.67],[1935,2454.48],[1936,2735.24],[1937,2742.51],[1938,2921.23],[1939,3040.4],[1947,2832.99],[1948,3334.76],[1949,3614.53],[1950,3340.19],[1951,3426.71],[1952,3119.24],[1953,3537.81],[1954,3686.86],[1955,3870.72],[1956,3751.15],[1957,4338.23],[1958,4479.35],[1959,4982.88],[1960,5248.4],[1961,5430.38],[1962,5477.89],[1963,5989.69],[1964,6502.15],[1965,6612.81],[1966,6902.41],[1967,6960.3],[1968,7047.52],[1969,7774.12],[1970,8085.73],[1971,8939.27],[1972,9164.09],[1973,9390.85],[1974,10508.17],[1975,10415.79],[1976,10637.03],[1977,11305.39],[1978,11825.89],[1979,12530.9],[1980,13057.9],[1981,13210.57],[1982,13221.82],[1983,13260.78],[1984,13522.3],[1985,13560.25],[1986,14045.06],[1987,13822.58],[1988,13568.05],[1989,13337.57],[1990,12318.28],[1991,9653.91],[1992,8447.79],[1993,7699.56],[1994,8100.49],[1995,8636.98],[1996,9176.84],[1997,9875.6],[1998,10225.82],[1999,10229.92],[2000,10582.67],[2001,11070.38],[2002,11628.39],[2003,12080.57],[2004,12490.93],[2005,13232],[2006,13865.36],[2007,14635.87],[2008,14981.18],[2009,14110.46]],"population":[[1800,1227886],[1820,1227886],[1950,3837297],[1951,3859830],[1952,3882229],[1953,3906475],[1954,3929591],[1955,3955526],[1956,3973442],[1957,3991242],[1958,4004029],[1959,4020631],[1960,4036145],[1961,4055443],[1962,4076557],[1963,4098506],[1964,4113553],[1965,4133313],[1966,4155830],[1967,4174366],[1968,4189903],[1969,4200551],[1970,4205389],[1971,4215869],[1972,4225310],[1973,4234664],[1974,4245822],[1975,4255000],[1976,4286311],[1977,4318673],[1978,4349242],[1979,4379909],[1980,4383000],[1981,4390829],[1982,4413368],[1983,4430941],[1984,4441854],[1985,4457874],[1986,4471752],[1987,4484310],[1988,4493676],[1989,4501397],[1990,4508347],[1991,4540641],[1992,4494013],[1993,4486066],[1994,4511187],[1995,4496683],[1996,4464030],[1997,4444595],[1998,4420195],[1999,4408383],[2000,4410830],[2001,4439110],[2002,4481020],[2003,4497779],[2004,4496869],[2005,4495904],[2006,4494749],[2007,4493312],[2008,4491543]],"lifeExpectancy":[[1800,36.1],[1920,36.1],[1950,59.5],[1951,59.95],[1952,60.83],[1953,61.66],[1954,62.44],[1955,63.18],[1956,63.87],[1957,64.5],[1958,65.09],[1959,65.63],[1960,66.12],[1961,66.57],[1962,66.96],[1963,67.31],[1964,67.63],[1965,67.92],[1966,68.18],[1967,68.42],[1968,68.65],[1969,68.87],[1970,69.09],[1971,69.32],[1972,69.55],[1973,69.79],[1974,70.01],[1975,70.22],[1976,70.38],[1977,70.5],[1978,70.55],[1979,70.56],[1980,70.55],[1981,70.54],[1982,70.55],[1983,70.61],[1984,70.73],[1985,70.9],[1986,71.1],[1987,71.31],[1988,71.53],[1989,71.73],[1990,71.95],[1991,72.2],[1992,72.49],[1993,72.83],[1994,73.21],[1995,73.6],[1996,73.96],[1997,74.27],[1998,74.52],[1999,74.69],[2000,74.81],[2001,74.9],[2002,75],[2003,75.14],[2004,75.31],[2005,75.53],[2006,75.78],[2007,76.03],[2008,76.27],[2009,76.49]]},{"name":"Cyprus","region":"Europe & Central Asia","income":[[1800,572.78],[1820,592.1],[1913,1752.95],[1950,2920.87],[1970,6323.94],[1971,7126.25],[1972,7624.59],[1973,7845.87],[1974,7689.08],[1975,6454.1],[1976,7680.86],[1977,8898.47],[1978,9539.09],[1979,10405.7],[1980,10904.71],[1981,11096.52],[1982,11663.94],[1983,12125.95],[1984,13018.71],[1985,13469.91],[1986,13820.98],[1987,14634.95],[1988,15679.76],[1989,16704.33],[1990,17572.31],[1991,17235.54],[1992,18364.5],[1993,18043.12],[1994,18695.08],[1995,20180.14],[1996,20228.69],[1997,20409.23],[1998,21170.8],[1999,21953.68],[2000,22821.38],[2001,23469.74],[2002,23683.6],[2003,23766.98],[2004,24211.44],[2005,24473],[2006,24908.98],[2007,25774.93],[2008,26349.47],[2009,25643.45]],"population":[[1800,184392],[1881,186000],[1891,209000],[1901,237000],[1911,274000],[1921,311000],[1931,348000],[1946,450000],[1950,494000],[1951,502000],[1952,508000],[1953,515000],[1954,523000],[1955,530000],[1956,536000],[1957,546000],[1958,558000],[1959,567000],[1960,573000],[1961,578700],[1962,576000],[1963,582300],[1964,586500],[1965,590800],[1966,595000],[1967,599400],[1968,604300],[1969,609400],[1970,614600],[1971,619800],[1972,626300],[1973,633900],[1974,640700],[1975,610500],[1976,598600],[1977,598400],[1978,601000],[1979,605100],[1980,611000],[1981,617900],[1982,624300],[1983,631800],[1984,639900],[1985,647300],[1986,650000],[1987,659400],[1988,664217],[1989,670912],[1990,681349],[1991,693906],[1992,707285],[1993,718776],[1994,726752],[1995,733188],[1996,738649],[1997,743728],[1998,748822],[1999,753692],[2000,758363],[2001,762887],[2002,767314],[2003,771657],[2004,775927],[2005,780133],[2006,784301],[2007,788457],[2008,792604]],"lifeExpectancy":[[1800,38.5],[1895,38.51],[1905,45],[1915,47.46],[1925,48.46],[1937,48.46],[1943,53.46],[1950,66.55],[1951,66.66],[1952,66.88],[1953,67.1],[1954,67.32],[1955,67.54],[1956,67.76],[1957,67.98],[1958,68.2],[1959,68.42],[1960,68.65],[1961,68.87],[1962,69.09],[1963,69.31],[1964,69.53],[1965,69.75],[1966,69.95],[1967,70.15],[1968,70.35],[1969,70.55],[1970,70.77],[1971,71.03],[1972,71.34],[1973,71.7],[1974,72.11],[1975,72.54],[1976,72.98],[1977,73.41],[1978,73.8],[1979,74.14],[1980,74.44],[1981,74.69],[1982,74.93],[1983,75.16],[1984,75.39],[1985,75.61],[1986,75.82],[1987,76.02],[1988,76.21],[1989,76.38],[1990,76.55],[1991,76.71],[1992,76.87],[1993,77.05],[1994,77.23],[1995,77.42],[1996,77.63],[1997,77.86],[1998,78.08],[1999,78.31],[2000,78.54],[2001,78.75],[2002,78.94],[2003,79.11],[2004,79.27],[2005,79.4],[2006,79.52],[2007,79.63],[2008,79.74],[2009,79.85]]},{"name":"Denmark","region":"Europe & Central Asia","income":[[1800,1342.84],[1820,1389.28],[1821,1442.33],[1822,1450.88],[1823,1432.15],[1824,1456.44],[1825,1451.29],[1826,1456.02],[1827,1485.24],[1828,1495.5],[1829,1461.16],[1830,1470.07],[1831,1459.29],[1832,1500.9],[1833,1483.15],[1834,1552.3],[1835,1531.9],[1836,1523.43],[1837,1552.67],[1838,1553.12],[1839,1560.42],[1840,1599.67],[1841,1585.44],[1842,1580.41],[1843,1659.37],[1844,1719.34],[1845,1748.87],[1846,1770.96],[1847,1749.37],[1848,1825.11],[1849,1917.22],[1850,2005.8],[1851,1888.73],[1852,1937.48],[1853,1928.12],[1854,1918.48],[1855,2105.48],[1856,1963.1],[1857,1972.19],[1858,1936.14],[1859,2042.7],[1860,2002.6],[1861,2012.25],[1862,2051.1],[1863,2158.64],[1864,2119.27],[1865,2170.78],[1866,2155.68],[1867,2136.16],[1868,2154.08],[1869,2258.2],[1870,2334.67],[1871,2325.92],[1872,2438.77],[1873,2406.44],[1874,2456.17],[1875,2477.37],[1876,2502.66],[1877,2406.95],[1878,2476.02],[1879,2534.1],[1880,2576.34],[1881,2581.47],[1882,2652.98],[1883,2726.01],[1884,2713.39],[1885,2703.7],[1886,2780.97],[1887,2854.28],[1888,2851.25],[1889,2867.96],[1890,3019.69],[1891,3061.96],[1892,3117.15],[1893,3158.46],[1894,3197.16],[1895,3337.28],[1896,3420.8],[1897,3458.18],[1898,3470.75],[1899,3575.26],[1900,3658.24],[1901,3769.45],[1902,3819.26],[1903,4006.01],[1904,4054.34],[1905,4084.6],[1906,4158.25],[1907,4267.16],[1908,4353.49],[1909,4470.21],[1910,4553.02],[1911,4745.57],[1912,4697.1],[1913,4826.63],[1914,5077.93],[1915,4673.39],[1916,4819.94],[1917,4485.64],[1918,4295.37],[1919,4799.78],[1920,4970.96],[1921,4770.64],[1922,5201.84],[1923,5699.38],[1924,5668.6],[1925,5488.31],[1926,5770.84],[1927,5854.2],[1928,6022.47],[1929,6395.75],[1930,6739.15],[1931,6771.4],[1932,6540.17],[1933,6702.3],[1934,6852.67],[1935,6960.34],[1936,7090.48],[1937,7219.21],[1938,7348.56],[1939,7652.71],[1940,6541.9],[1941,5855.93],[1942,5933.93],[1943,6521.29],[1944,7125.28],[1945,6520.8],[1946,7445.19],[1947,7788.25],[1948,7925.43],[1949,8403.5],[1950,8996.05],[1951,8999.38],[1952,9035.67],[1953,9485.18],[1954,9601.58],[1955,9645.67],[1956,9715.12],[1957,10416.31],[1958,10600.5],[1959,11325.13],[1960,11569.48],[1961,12242.19],[1962,12831.71],[1963,12828.01],[1964,13937.78],[1965,14476.65],[1966,14769.04],[1967,15155.34],[1968,15706.49],[1969,16649.14],[1970,16877.42],[1971,17230.2],[1972,18059.78],[1973,18627.44],[1974,18392.37],[1975,18242.49],[1976,19400.16],[1977,19679.76],[1978,19934.76],[1979,20617.91],[1980,20529.08],[1981,20379.19],[1982,21037.65],[1983,21610.89],[1984,22601.41],[1985,23592.45],[1986,24451.45],[1987,24524.78],[1988,24831.14],[1989,24914.52],[1990,25208.56],[1991,25503.74],[1992,25956.19],[1993,25882.23],[1994,27258.06],[1995,27985.59],[1996,28655.63],[1997,29490.37],[1998,30058.99],[1999,30767.67],[2000,31805.54],[2001,31964.4],[2002,32039.01],[2003,32089.74],[2004,32694.6],[2005,33626],[2006,34664.67],[2007,35124.41],[2008,34636.39],[2009,32670.06]],"population":[[1820,1155000],[1821,1167000],[1822,1179000],[1823,1196000],[1824,1213000],[1825,1228000],[1826,1243000],[1827,1255000],[1828,1265000],[1829,1270000],[1830,1273000],[1831,1275000],[1832,1276000],[1833,1284000],[1834,1295000],[1835,1306000],[1836,1315000],[1837,1325000],[1838,1335000],[1839,1347000],[1840,1357000],[1841,1371000],[1842,1385000],[1843,1392000],[1844,1414000],[1845,1430000],[1846,1444000],[1847,1456000],[1848,1470000],[1849,1484000],[1850,1499000],[1851,1517000],[1852,1536000],[1853,1552000],[1854,1569000],[1855,1590000],[1856,1612000],[1857,1634000],[1858,1653000],[1859,1674000],[1860,1696000],[1861,1717000],[1862,1739000],[1863,1761000],[1864,1777000],[1865,1799000],[1866,1814000],[1867,1833000],[1868,1852000],[1869,1871000],[1870,1888000],[1871,1903000],[1872,1918000],[1873,1935000],[1874,1954000],[1875,1973000],[1876,1994000],[1877,2019000],[1878,2043000],[1879,2064000],[1880,2081000],[1881,2101000],[1882,2120000],[1883,2137000],[1884,2160000],[1885,2186000],[1886,2213000],[1887,2237000],[1888,2257000],[1889,2276000],[1890,2294000],[1891,2311000],[1892,2327000],[1893,2344000],[1894,2367000],[1895,2397000],[1896,2428000],[1897,2462000],[1898,2497000],[1899,2530000],[1900,2561000],[1901,2594000],[1902,2623000],[1903,2653000],[1904,2681000],[1905,2710000],[1906,2741000],[1907,2775000],[1908,2809000],[1909,2845000],[1910,2882000],[1911,2917000],[1912,2951000],[1913,2983000],[1914,3018000],[1915,3055000],[1916,3092000],[1917,3130000],[1918,3165000],[1919,3202000],[1920,3242000],[1921,3285000],[1922,3322000],[1923,3356000],[1924,3389000],[1925,3425000],[1926,3452000],[1927,3475000],[1928,3497000],[1929,3518000],[1930,3542000],[1931,3569000],[1932,3603000],[1933,3633000],[1934,3666000],[1935,3695000],[1936,3722000],[1937,3749000],[1938,3777000],[1939,3805000],[1940,3832000],[1941,3863000],[1942,3903000],[1943,3949000],[1944,3998000],[1945,4045000],[1946,4101000],[1947,4146000],[1948,4190000],[1949,4230000],[1950,4271000],[1951,4303620],[1952,4334000],[1953,4369280],[1954,4406000],[1955,4439000],[1956,4466471],[1957,4487831],[1958,4515132],[1959,4546636],[1960,4581000],[1961,4609817],[1962,4646899],[1963,4683579],[1964,4720171],[1965,4758100],[1966,4797500],[1967,4838800],[1968,4867300],[1969,4890687],[1970,4928757],[1971,4963126],[1972,4991596],[1973,5021861],[1974,5045297],[1975,5059861],[1976,5072596],[1977,5088419],[1978,5104247],[1979,5116800],[1980,5123027],[1981,5121572],[1982,5117810],[1983,5114297],[1984,5111619],[1985,5113691],[1986,5120534],[1987,5127024],[1988,5129516],[1989,5132593],[1990,5140954],[1991,5154352],[1992,5171393],[1993,5188386],[1994,5205603],[1995,5232612],[1996,5262075],[1997,5283663],[1998,5302767],[1999,5320134],[2000,5337416],[2001,5355826],[2002,5374693],[2003,5394138],[2004,5413392],[2005,5432335],[2006,5450661],[2007,5468120],[2008,5484723]],"lifeExpectancy":[[1800,35],[1835,38.35],[1836,39.92],[1837,41.5],[1838,43.11],[1839,41.86],[1840,41.06],[1841,42.64],[1842,42.49],[1843,43.85],[1844,44],[1845,43.35],[1846,40.43],[1847,40.47],[1848,40.73],[1849,39.5],[1850,43.5],[1851,44.57],[1852,43.08],[1853,38.6],[1854,44.74],[1855,46.18],[1856,46.78],[1857,42.49],[1858,40.04],[1859,44.42],[1860,45.11],[1861,47.65],[1862,47.62],[1863,47.58],[1864,40.2],[1865,39.85],[1866,42.95],[1867,44.97],[1868,45.66],[1869,46.13],[1870,46.06],[1871,46.15],[1872,47.53],[1873,47.58],[1874,46.11],[1875,44.51],[1876,45.88],[1877,47.41],[1878,47.6],[1879,46.29],[1880,44.86],[1881,48.37],[1882,46.77],[1883,48.56],[1884,48.6],[1885,49.69],[1886,49],[1887,48.71],[1888,46.71],[1889,47.83],[1890,47.3],[1891,46.83],[1892,47.49],[1893,47.14],[1894,49.42],[1895,50.93],[1896,52.99],[1897,51.86],[1898,53.15],[1899,50.71],[1900,51.95],[1901,52.66],[1902,54.74],[1903,54.81],[1904,55.81],[1905,54.41],[1906,56.6],[1907,56.13],[1908,54.96],[1909,57.44],[1910,58.09],[1911,57.01],[1912,58.09],[1913,58.93],[1914,58.53],[1915,58.46],[1916,56.97],[1917,57.31],[1918,56.25],[1919,57],[1920,57.55],[1921,61.78],[1922,60.65],[1923,61.22],[1924,61.19],[1925,61.96],[1926,61.71],[1927,61.24],[1928,61.93],[1929,62],[1930,62.31],[1931,61.89],[1932,62.74],[1933,63.66],[1934,64.15],[1935,62.92],[1936,63.5],[1937,63.98],[1938,64.99],[1939,65.83],[1940,66.27],[1941,66.02],[1942,67.16],[1943,67.46],[1944,66.41],[1945,66.09],[1946,67.24],[1947,68.54],[1948,70.12],[1949,70.15],[1950,70.33],[1951,70.93],[1952,70.78],[1953,71.15],[1954,71.35],[1955,71.92],[1956,72.05],[1957,71.81],[1958,72.24],[1959,72.22],[1960,72.21],[1961,72.47],[1962,72.35],[1963,72.44],[1964,72.52],[1965,72.4],[1966,72.48],[1967,72.96],[1968,73.17],[1969,73.26],[1970,73.38],[1971,73.44],[1972,73.47],[1973,73.71],[1974,73.84],[1975,74.11],[1976,73.78],[1977,74.69],[1978,74.45],[1979,74.27],[1980,74.16],[1981,74.29],[1982,74.63],[1983,74.5],[1984,74.65],[1985,74.52],[1986,74.69],[1987,74.8],[1988,74.89],[1989,74.92],[1990,74.92],[1991,75.29],[1992,75.33],[1993,75.25],[1994,75.51],[1995,75.36],[1996,75.74],[1997,76.11],[1998,76.51],[1999,76.66],[2000,76.9],[2001,77.06],[2002,77.18],[2003,77.78],[2004,77.58],[2005,78.32],[2006,78.32],[2007,78.44],[2008,78.41],[2009,78.57]]},{"name":"Estonia","region":"Europe & Central Asia","income":[[1800,906.39],[1820,925.48],[1913,2062.96],[1950,4042.45],[1973,8313.11],[1990,10389.82],[1991,9409.45],[1992,8245.73],[1993,7733.48],[1994,7733.63],[1995,8199.12],[1996,8680.18],[1997,9689.84],[1998,10283.79],[1999,10356.42],[2000,11244.49],[2001,12050.17],[2002,13011.44],[2003,13770.19],[2004,15014.22],[2005,16654],[2006,18350.51],[2007,19705.76],[2008,18993.59],[2009,16349.13]],"population":[[1800,334136],[1820,334136],[1950,1095610],[1951,1111966],[1952,1130445],[1953,1140395],[1954,1148378],[1955,1154371],[1956,1162801],[1957,1174251],[1958,1185336],[1959,1197418],[1960,1210647],[1961,1224467],[1962,1238786],[1963,1254604],[1964,1272439],[1965,1287808],[1966,1300177],[1967,1311560],[1968,1324437],[1969,1342891],[1970,1363183],[1971,1381459],[1972,1397391],[1973,1410836],[1974,1422291],[1975,1432246],[1976,1442204],[1977,1453168],[1978,1463533],[1979,1472244],[1980,1482196],[1981,1493318],[1982,1504043],[1983,1514671],[1984,1526128],[1985,1538224],[1986,1550072],[1987,1562224],[1988,1569187],[1989,1570926],[1990,1569322],[1991,1559547],[1992,1528715],[1993,1491426],[1994,1467535],[1995,1446509],[1996,1427827],[1997,1413351],[1998,1400972],[1999,1389756],[2000,1379835],[2001,1369983],[2002,1360122],[2003,1350722],[2004,1341664],[2005,1332893],[2006,1324333],[2007,1315912],[2008,1307605]],"lifeExpectancy":[[1800,36.5],[1860,36.5],[1897,43],[1900,43.1],[1922,51.7],[1935,56.27],[1950,64.36],[1951,64.6],[1952,65.08],[1953,65.57],[1954,66.06],[1955,66.55],[1956,67.04],[1957,67.53],[1958,68],[1959,68.64],[1960,69.34],[1961,69.66],[1962,69.84],[1963,69.9],[1964,70.64],[1965,70.71],[1966,70.68],[1967,70.97],[1968,70.59],[1969,70.28],[1970,70.39],[1971,70.59],[1972,70.35],[1973,70.7],[1974,70.8],[1975,70.12],[1976,69.74],[1977,69.86],[1978,69.72],[1979,69.5],[1980,69.59],[1981,69.46],[1982,69.86],[1983,69.78],[1984,69.65],[1985,69.79],[1986,70.93],[1987,70.94],[1988,70.98],[1989,70.53],[1990,69.9],[1991,69.8],[1992,69.14],[1993,68.19],[1994,66.67],[1995,67.72],[1996,69.94],[1997,70.13],[1998,69.72],[1999,70.5],[2000,70.8],[2001,70.67],[2002,71.23],[2003,71.82],[2004,72.29],[2005,72.96],[2006,73.13],[2007,73.14],[2008,73.23],[2009,73.5]]},{"name":"Finland","region":"Europe & Central Asia","income":[[1800,1037.69],[1820,1073.4],[1821,1078.92],[1822,1084.47],[1823,1090.05],[1824,1095.65],[1825,1101.29],[1826,1106.95],[1827,1112.64],[1828,1118.37],[1829,1124.12],[1830,1129.9],[1831,1135.71],[1832,1141.55],[1833,1147.42],[1834,1153.32],[1835,1159.25],[1836,1165.21],[1837,1171.21],[1838,1177.23],[1839,1183.28],[1840,1189.37],[1841,1195.48],[1842,1201.63],[1843,1207.81],[1844,1214.02],[1845,1220.27],[1846,1226.54],[1847,1232.85],[1848,1239.19],[1849,1245.56],[1850,1251.97],[1851,1258.44],[1852,1264.95],[1853,1271.49],[1854,1278.06],[1855,1284.67],[1856,1291.32],[1857,1297.99],[1858,1304.71],[1859,1311.45],[1860,1318.23],[1861,1316.39],[1862,1231.83],[1863,1316.16],[1864,1331.17],[1865,1307.65],[1866,1316.86],[1867,1217.5],[1868,1379.02],[1869,1513.88],[1870,1566.35],[1871,1548.7],[1872,1573.71],[1873,1640.18],[1874,1654.92],[1875,1664.63],[1876,1730.68],[1877,1664.65],[1878,1611.83],[1879,1604.46],[1880,1587.17],[1881,1525.64],[1882,1653.22],[1883,1690.22],[1884,1675.84],[1885,1692.17],[1886,1753.02],[1887,1753.07],[1888,1789.84],[1889,1823.23],[1890,1898.07],[1891,1855.95],[1892,1759.05],[1893,1842.91],[1894,1923.34],[1895,2051.12],[1896,2157.69],[1897,2232.26],[1898,2292.74],[1899,2208.61],[1900,2293.12],[1901,2248.73],[1902,2187.05],[1903,2316.91],[1904,2379.03],[1905,2393.93],[1906,2466.09],[1907,2521.28],[1908,2513.65],[1909,2589.75],[1910,2620.18],[1911,2665.1],[1912,2779.55],[1913,2900.86],[1914,2749.61],[1915,2586.14],[1916,2601.75],[1917,2172.74],[1918,1882.63],[1919,2279.04],[1920,2536.46],[1921,2589.95],[1922,2828.49],[1923,3005.49],[1924,3056.68],[1925,3199.82],[1926,3287.25],[1927,3514.45],[1928,3720.77],[1929,3733.94],[1930,3663.59],[1931,3546.72],[1932,3504.34],[1933,3713.08],[1934,4107.16],[1935,4250.49],[1936,4506.28],[1937,4729.48],[1938,4933.25],[1939,4683.47],[1940,4426.07],[1941,4565.98],[1942,4572.8],[1943,5080.7],[1944,5064.01],[1945,4740.94],[1946,5061.83],[1947,5108.35],[1948,5438.68],[1949,5694.41],[1950,5845.63],[1951,6282.55],[1952,6424.52],[1953,6393.12],[1954,6874.03],[1955,7142.39],[1956,7277.78],[1957,7545.42],[1958,7523.81],[1959,7907.52],[1960,8562.87],[1961,9150.5],[1962,9371.84],[1963,9612.4],[1964,10042.22],[1965,10540.94],[1966,10753.82],[1967,10921.64],[1968,11122.84],[1969,12201.15],[1970,13162.25],[1971,13420.39],[1972,14358.88],[1973,15235.13],[1974,15614.72],[1975,15724.68],[1976,15610.75],[1977,15605.42],[1978,15886.31],[1979,16948.22],[1980,17796.77],[1981,18051.17],[1982,18533.16],[1983,18920.9],[1984,19387.97],[1985,19958.81],[1986,20367.55],[1987,21141.01],[1988,22110.88],[1989,23289.8],[1990,23180.78],[1991,21581.75],[1992,20647.16],[1993,20294.81],[1994,21005.54],[1995,21650.15],[1996,22402.5],[1997,23723.95],[1998,25004.32],[1999,25915.26],[2000,27171.97],[2001,27825.53],[2002,28204.59],[2003,28650.03],[2004,29651.4],[2005,30469],[2006,31683.68],[2007,33102.61],[2008,33339.32],[2009,30602.73]],"population":[[1820,1169000],[1821,1186000],[1822,1202000],[1823,1219000],[1824,1235000],[1825,1252000],[1826,1268000],[1827,1310000],[1828,1326000],[1829,1343000],[1830,1364000],[1831,1374000],[1832,1378000],[1833,1383000],[1834,1387000],[1835,1391000],[1836,1399000],[1837,1409000],[1838,1420000],[1839,1430000],[1840,1441000],[1841,1456000],[1842,1476000],[1843,1495000],[1844,1516000],[1845,1536000],[1846,1555000],[1847,1573000],[1848,1591000],[1849,1610000],[1850,1628000],[1851,1642000],[1852,1652000],[1853,1663000],[1854,1673000],[1855,1683000],[1856,1692000],[1857,1703000],[1858,1715000],[1859,1726000],[1860,1738000],[1861,1754000],[1862,1774000],[1863,1794000],[1864,1813000],[1865,1833000],[1866,1840000],[1867,1831000],[1868,1776000],[1869,1734000],[1870,1754000],[1871,1786000],[1872,1819000],[1873,1847000],[1874,1873000],[1875,1899000],[1876,1928000],[1877,1957000],[1878,1983000],[1879,2014000],[1880,2047000],[1881,2072000],[1882,2098000],[1883,2130000],[1884,2164000],[1885,2195000],[1886,2224000],[1887,2259000],[1888,2296000],[1889,2331000],[1890,2364000],[1891,2394000],[1892,2451000],[1893,2430000],[1894,2511000],[1895,2483000],[1896,2515000],[1897,2549000],[1898,2589000],[1899,2624000],[1900,2646000],[1901,2667000],[1902,2686000],[1903,2706000],[1904,2735000],[1905,2762000],[1906,2788000],[1907,2821000],[1908,2861000],[1909,2899000],[1910,2929000],[1911,2962000],[1912,2998000],[1913,3027000],[1914,3053000],[1915,3083000],[1916,3105000],[1917,3124000],[1918,3125000],[1919,3117000],[1920,3133000],[1921,3170000],[1922,3210000],[1923,3243000],[1924,3272000],[1925,3304000],[1926,3339000],[1927,3368000],[1928,3396000],[1929,3424000],[1930,3449000],[1931,3476000],[1932,3503000],[1933,3526000],[1934,3549000],[1935,3576000],[1936,3601000],[1937,3626000],[1938,3656000],[1939,3686000],[1940,3698000],[1941,3702000],[1942,3708000],[1943,3721000],[1944,3735000],[1945,3758000],[1946,3806000],[1947,3859000],[1948,3912000],[1949,3963000],[1950,4008900],[1951,4047300],[1952,4090500],[1953,4139400],[1954,4186900],[1955,4234900],[1956,4281700],[1957,4324000],[1958,4359800],[1959,4394700],[1960,4429600],[1961,4461004],[1962,4491443],[1963,4523309],[1964,4548544],[1965,4563732],[1966,4580869],[1967,4605744],[1968,4626469],[1969,4623785],[1970,4606307],[1971,4612124],[1972,4639657],[1973,4666081],[1974,4690574],[1975,4711439],[1976,4725664],[1977,4738902],[1978,4752528],[1979,4764690],[1980,4779535],[1981,4799964],[1982,4826933],[1983,4855787],[1984,4881788],[1985,4901783],[1986,4917386],[1987,4931729],[1988,4946633],[1989,4962441],[1990,4986431],[1991,5013786],[1992,5041039],[1993,5064846],[1994,5086044],[1995,5104654],[1996,5120310],[1997,5134406],[1998,5146983],[1999,5158097],[2000,5168595],[2001,5180309],[2002,5193039],[2003,5204405],[2004,5214512],[2005,5223442],[2006,5231372],[2007,5238460],[2008,5244749]],"lifeExpectancy":[[1800,31.8],[1805,31.77],[1815,35.77],[1825,38.36],[1835,34.61],[1845,40.4],[1855,35.06],[1865,32.07],[1875,41.57],[1878,39.17],[1879,44.95],[1880,39.67],[1881,37.65],[1882,40.46],[1883,42.79],[1884,42.87],[1885,41.3],[1886,40.92],[1887,45.6],[1888,45.16],[1889,44.93],[1890,44.61],[1891,42.57],[1892,39.73],[1893,43.34],[1894,45.22],[1895,47.64],[1896,46.56],[1897,48.16],[1898,48.07],[1899,44.4],[1900,41.8],[1901,42.87],[1902,46.23],[1903,46.64],[1904,47.21],[1905,46.04],[1906,47.07],[1907,46.98],[1908,46.15],[1909,48.67],[1910,48.53],[1911,48.73],[1912,49.13],[1913,49.05],[1914,49.73],[1915,49.54],[1916,48.03],[1917,46.49],[1918,32.71],[1919,43.07],[1920,47.55],[1921,52.41],[1922,51.92],[1923,52.52],[1924,50.22],[1925,53.42],[1926,53.83],[1927,51.86],[1928,53.71],[1929,51.28],[1930,54.47],[1931,54.88],[1932,55.79],[1933,55.45],[1934,56.04],[1935,57.36],[1936,56.16],[1937,57.1],[1938,57.2],[1939,54.67],[1940,46.65],[1941,46.5],[1942,53.9],[1943,56.27],[1944,48],[1945,57.19],[1946,60.27],[1947,60.53],[1948,61.99],[1949,61.88],[1950,64.24],[1951,65.67],[1952,66.55],[1953,66.61],[1954,67.57],[1955,67.37],[1956,67.99],[1957,67.49],[1958,68.63],[1959,68.81],[1960,69.01],[1961,69.04],[1962,68.75],[1963,69.16],[1964,69.37],[1965,69.13],[1966,69.65],[1967,69.83],[1968,69.79],[1969,69.67],[1970,70.36],[1971,70.18],[1972,70.87],[1973,71.38],[1974,71.3],[1975,71.85],[1976,72],[1977,72.52],[1978,73.08],[1979,73.37],[1980,73.66],[1981,73.98],[1982,74.55],[1983,74.46],[1984,74.77],[1985,74.44],[1986,74.8],[1987,74.83],[1988,74.79],[1989,75.01],[1990,75.04],[1991,75.45],[1992,75.7],[1993,75.94],[1994,76.64],[1995,76.66],[1996,76.94],[1997,77.13],[1998,77.34],[1999,77.53],[2000,77.76],[2001,78.23],[2002,78.37],[2003,78.63],[2004,78.96],[2005,79.09],[2006,79.49],[2007,79.53],[2008,79.7],[2009,79.9]]},{"name":"France","region":"Europe & Central Asia","income":[[1800,1388.32],[1820,1508.17],[1821,1605.15],[1822,1488.9],[1823,1484.46],[1824,1450.73],[1825,1461.26],[1826,1507.24],[1827,1517.77],[1828,1424.55],[1829,1505.31],[1830,1478.21],[1831,1468.18],[1832,1575.78],[1833,1575.21],[1834,1556.85],[1835,1638.99],[1836,1670.87],[1837,1691.88],[1838,1728.95],[1839,1702.64],[1840,1833.29],[1841,1782.25],[1842,1748.42],[1843,1814.96],[1844,1869.79],[1845,1937.81],[1846,2061.01],[1847,2247.78],[1848,1754.96],[1849,1751.73],[1850,1840.71],[1851,1810.27],[1852,2049.4],[1853,2279.88],[1854,2558.73],[1855,2699.62],[1856,2804.19],[1857,2709.43],[1858,2530.47],[1859,2537.44],[1860,2704.03],[1861,2763.29],[1862,2864.8],[1863,2947.49],[1864,3001.41],[1865,2952.32],[1866,3078.84],[1867,3035.75],[1868,3248.75],[1869,3053.02],[1870,2952.12],[1871,3094.7],[1872,3265.24],[1873,3226.92],[1874,3368.09],[1875,3305.81],[1876,3271.13],[1877,3263.78],[1878,3086.79],[1879,3061.22],[1880,3251.85],[1881,3467.16],[1882,3592.01],[1883,3442.58],[1884,3268.75],[1885,3178.76],[1886,3144.18],[1887,3176.37],[1888,3256.96],[1889,3273.56],[1890,3400.86],[1891,3444.97],[1892,3524.93],[1893,3398.78],[1894,3737.15],[1895,3668.19],[1896,3791.6],[1897,3688.84],[1898,3914.43],[1899,4060.44],[1900,4120.2],[1901,3923.77],[1902,3882.54],[1903,4018.39],[1904,4104.52],[1905,4215.5],[1906,4163.4],[1907,4506.35],[1908,4497.65],[1909,4648.43],[1910,4431.67],[1911,4874.61],[1912,5269.95],[1913,5216.06],[1914,4366.68],[1915,3838.35],[1916,4391.91],[1917,4343.65],[1918,3715.96],[1919,4091.01],[1920,4363.66],[1921,4138.93],[1922,4952.53],[1923,5174.88],[1924,5731.07],[1925,5758.31],[1926,5943.23],[1927,5809.19],[1928,6139.65],[1929,6647.68],[1930,6404.85],[1931,6109.1],[1932,5562.21],[1933,5715.58],[1934,5506.14],[1935,5360.76],[1936,5427.12],[1937,5543.16],[1938,5395.35],[1939,5609.14],[1940,4419.43],[1941,4268.29],[1942,4290.23],[1943,4272.41],[1944,3266.23],[1945,4011.65],[1946,5348.07],[1947,5625.06],[1948,6298.46],[1949,6625.98],[1950,7104.01],[1951,7436.28],[1952,7550.91],[1953,7692.44],[1954,8019.09],[1955,8399.74],[1956,8786.31],[1957,9242.42],[1958,9434.98],[1959,9619.51],[1960,10244.42],[1961,10686.66],[1962,11191.29],[1963,11579.29],[1964,12197.97],[1965,12650.59],[1966,13187.05],[1967,13683.81],[1968,14146.15],[1969,15000.57],[1970,15703.71],[1971,16284.72],[1972,16840.55],[1973,17597.08],[1974,18004.5],[1975,17848.25],[1976,18509.58],[1977,18996.91],[1978,19524.41],[1979,20102.02],[1980,20334.47],[1981,20488.68],[1982,20933.53],[1983,21265.16],[1984,21488.65],[1985,21805.96],[1986,22218.56],[1987,22608.9],[1988,23523.51],[1989,24186.1],[1990,24676.73],[1991,24847.93],[1992,25140.92],[1993,24731.22],[1994,25117.85],[1995,25556.85],[1996,25717.2],[1997,26170.75],[1998,26957.92],[1999,27689.46],[2000,28636.15],[2001,28983.72],[2002,29043.35],[2003,29048.88],[2004,29505.88],[2005,29644],[2006,30161.01],[2007,30666.76],[2008,30598.37],[2009,29774.85]],"population":[[1820,31250000],[1821,31460000],[1822,31685000],[1823,31905000],[1824,32127000],[1825,32350000],[1826,32538000],[1827,32727000],[1828,32917000],[1829,33108000],[1830,33300000],[1831,33439000],[1832,33598000],[1833,33718000],[1834,33859000],[1835,34000000],[1836,34178000],[1837,34357000],[1838,34537000],[1839,34718000],[1840,34900000],[1841,35059000],[1842,35218000],[1843,35378000],[1844,35539000],[1845,35700000],[1846,35829000],[1847,35959000],[1848,36089000],[1849,36219000],[1850,36350000],[1851,36479000],[1852,36609000],[1853,36739000],[1854,36869000],[1855,37000000],[1856,37060000],[1857,37120000],[1858,37180000],[1859,37240000],[1860,37300000],[1861,37390000],[1862,37520000],[1863,37710000],[1864,37860000],[1865,38020000],[1866,38080000],[1867,38230000],[1868,38330000],[1869,38890000],[1870,38440000],[1871,37731000],[1872,37679000],[1873,37887000],[1874,38044000],[1875,38221000],[1876,38398000],[1877,38576000],[1878,38763000],[1879,38909000],[1880,39045000],[1881,39191000],[1882,39337000],[1883,39472000],[1884,39629000],[1885,39733000],[1886,39858000],[1887,39889000],[1888,39920000],[1889,40004000],[1890,40014000],[1891,39983000],[1892,39993000],[1893,40014000],[1894,40056000],[1895,40098000],[1896,40192000],[1897,40348000],[1898,40473000],[1899,40546000],[1900,40598000],[1901,40640000],[1902,40713000],[1903,40786000],[1904,40859000],[1905,40890000],[1906,40942000],[1907,40942000],[1908,41046000],[1909,41109000],[1910,41224000],[1911,41307000],[1912,41359000],[1913,41463000],[1914,41476000],[1915,40481000],[1916,39884000],[1917,39288000],[1918,38542000],[1919,38700000],[1920,39000000],[1921,39240000],[1922,39420000],[1923,39880000],[1924,40310000],[1925,40610000],[1926,40870000],[1927,40940000],[1928,41050000],[1929,41230000],[1930,41610000],[1931,41860000],[1932,41860000],[1933,41890000],[1934,41950000],[1935,41940000],[1936,41910000],[1937,41930000],[1938,41960000],[1939,41900000],[1940,41000000],[1941,39600000],[1942,39400000],[1943,39000000],[1944,38900000],[1945,39700000],[1946,40290000],[1947,40680000],[1948,41110000],[1949,41480000],[1950,41828673],[1951,42155534],[1952,42459667],[1953,42751746],[1954,43056505],[1955,43427669],[1956,43843075],[1957,44310863],[1958,44788852],[1959,45239729],[1960,45670000],[1961,46189000],[1962,47124000],[1963,47808000],[1964,48340000],[1965,48763000],[1966,49194000],[1967,49569000],[1968,49934000],[1969,50353000],[1970,50787000],[1971,51285000],[1972,51732000],[1973,52157000],[1974,52503000],[1975,52758427],[1976,52953613],[1977,53165019],[1978,53380649],[1979,53605523],[1980,53869743],[1981,54147284],[1982,54433565],[1983,54649810],[1984,54946500],[1985,55171224],[1986,55387361],[1987,55630100],[1988,55873463],[1989,56416625],[1990,56735161],[1991,57055448],[1992,57374179],[1993,57658289],[1994,57906847],[1995,58149727],[1996,58388408],[1997,58623428],[1998,58866290],[1999,59116128],[2000,59381628],[2001,59658144],[2002,59925035],[2003,60180529],[2004,60424213],[2005,60656178],[2006,60876136],[2007,61083916],[2008,61279972]],"lifeExpectancy":[[1800,32.4],[1806,35],[1807,34.2],[1808,34.5],[1809,35],[1810,37.4],[1811,36.1],[1812,31.7],[1813,31.2],[1814,30.1],[1815,36.5],[1816,40.04],[1817,39.18],[1818,38.53],[1819,37.25],[1820,39.21],[1821,39.83],[1822,38.3],[1823,39.97],[1824,39.14],[1825,38.53],[1826,37.76],[1827,39.35],[1828,37.53],[1829,39.36],[1830,39.56],[1831,39.65],[1832,35.81],[1833,38.83],[1834,35.01],[1835,39.48],[1836,41.95],[1837,39.38],[1838,39.33],[1839,40.91],[1840,40.37],[1841,40.68],[1842,40.01],[1843,40.75],[1844,42.29],[1845,43.58],[1846,40.67],[1847,40.41],[1848,40.29],[1849,35.91],[1850,43.28],[1851,41.77],[1852,41.32],[1853,42.52],[1854,36.13],[1855,37.54],[1856,40.18],[1857,39.59],[1858,39.67],[1859,35.26],[1860,43.33],[1861,40.45],[1862,42.7],[1863,41.73],[1864,42.01],[1865,40.16],[1866,41.83],[1867,42.33],[1868,40.23],[1869,41.14],[1870,36.41],[1871,29.59],[1872,42.64],[1873,41.75],[1874,44.3],[1875,43.17],[1876,43.55],[1877,44.33],[1878,43.36],[1879,43.99],[1880,42.73],[1881,43.55],[1882,43.16],[1883,43.28],[1884,42.52],[1885,43.97],[1886,43.17],[1887,43.75],[1888,44.15],[1889,45.56],[1890,43.36],[1891,44.11],[1892,43.57],[1893,43.6],[1894,45.53],[1895,45.2],[1896,47.56],[1897,47.93],[1898,45.99],[1899,45.23],[1900,45.08],[1901,47.01],[1902,48.01],[1903,48.43],[1904,48.08],[1905,48.36],[1906,47.74],[1907,48.28],[1908,49.3],[1909,50.01],[1910,51.37],[1911,48.17],[1912,51.62],[1913,51.35],[1914,37.85],[1915,35.63],[1916,39.51],[1917,42.6],[1918,34.34],[1919,47.52],[1920,51.6],[1921,52.69],[1922,54.92],[1923,54.65],[1924,55.27],[1925,54.39],[1926,54.03],[1927,55.8],[1928,55.44],[1929,54.27],[1930,56.87],[1931,56.93],[1932,57.26],[1933,57.7],[1934,58.36],[1935,58.32],[1936,58.81],[1937,59.17],[1938,58.97],[1939,59.62],[1940,49.45],[1941,57.67],[1942,57.44],[1943,53.33],[1944,47.19],[1945,54.96],[1946,62.38],[1947,63.98],[1948,65.83],[1949,64.92],[1950,66.39],[1951,66.12],[1952,67.41],[1953,67.34],[1954,68.21],[1955,68.47],[1956,68.5],[1957,68.93],[1958,70.16],[1959,70.19],[1960,70.4],[1961,70.98],[1962,70.51],[1963,70.36],[1964,71.32],[1965,71.15],[1966,71.56],[1967,71.55],[1968,71.54],[1969,71.27],[1970,72.16],[1971,72.13],[1972,72.38],[1973,72.54],[1974,72.89],[1975,72.98],[1976,73.22],[1977,73.83],[1978,73.95],[1979,74.26],[1980,74.35],[1981,74.51],[1982,74.89],[1983,74.87],[1984,75.37],[1985,75.47],[1986,75.75],[1987,76.34],[1988,76.57],[1989,76.69],[1990,76.98],[1991,77.17],[1992,77.46],[1993,77.5],[1994,77.94],[1995,78.06],[1996,78.27],[1997,78.62],[1998,78.79],[1999,78.92],[2000,79.23],[2001,79.41],[2002,79.57],[2003,79.57],[2004,80.5],[2005,80.47],[2006,80.88],[2007,81.14],[2008,81.25],[2009,81.47]]},{"name":"Georgia","region":"Europe & Central Asia","income":[[1800,571.2],[1820,583.23],[1913,1300.06],[1965,2711.39],[1966,2881.8],[1967,3029.8],[1968,3134.36],[1969,3254.08],[1970,3613.63],[1971,3670.07],[1972,3741.23],[1973,3950.02],[1974,4263.52],[1975,4544.1],[1976,4788.27],[1977,5086.05],[1978,5430.06],[1979,5792.37],[1980,6014.45],[1981,6283.62],[1982,6359.83],[1983,6579.72],[1984,6876.8],[1985,7150.61],[1986,6499.97],[1987,6514.54],[1988,6816.1],[1989,6297.59],[1990,5375.31],[1991,4278.33],[1992,2393.03],[1993,1724.67],[1994,1576.71],[1995,1647.82],[1996,1861.57],[1997,2085.64],[1998,2176.23],[1999,2264.09],[2000,2332.22],[2001,2472.71],[2002,2637.56],[2003,2961.18],[2004,3167.15],[2005,3505],[2006,3764.4],[2007,4235.19],[2008,4345.66],[2009,4168.7]],"population":[[1800,1072178],[1820,1072178],[1950,3515602],[1951,3579417],[1952,3628347],[1953,3687436],[1954,3759860],[1955,3827154],[1956,3887496],[1957,3936823],[1958,3994787],[1959,4071078],[1960,4146570],[1961,4211113],[1962,4278649],[1963,4344220],[1964,4406832],[1965,4464959],[1966,4518103],[1967,4564785],[1968,4606979],[1969,4650335],[1970,4694491],[1971,4741628],[1972,4786475],[1973,4825850],[1974,4865233],[1975,4897656],[1976,4930036],[1977,4963464],[1978,4991045],[1979,5018606],[1980,5045697],[1981,5073148],[1982,5101213],[1983,5130925],[1984,5161724],[1985,5192957],[1986,5218973],[1987,5239970],[1988,5320248],[1989,5398106],[1990,5426207],[1991,5420156],[1992,5355289],[1993,5247618],[1994,5120809],[1995,5012952],[1996,4934572],[1997,4883476],[1998,4848495],[1999,4815667],[2000,4777209],[2001,4746164],[2002,4728357],[2003,4710921],[2004,4693892],[2005,4677401],[2006,4661473],[2007,4646003],[2008,4630841]],"lifeExpectancy":[[1950,59.8],[1951,60],[1952,60.4],[1953,60.8],[1954,61.2],[1955,61.6],[1956,62],[1957,62.4],[1958,62.81],[1959,63.21],[1960,63.61],[1961,64.02],[1962,64.44],[1963,64.85],[1964,65.27],[1965,65.67],[1966,66.06],[1967,66.43],[1968,66.79],[1969,67.12],[1970,67.44],[1971,67.75],[1972,68.07],[1973,68.39],[1974,68.71],[1975,69],[1976,69.25],[1977,69.45],[1978,69.58],[1979,69.65],[1980,69.69],[1981,69.71],[1982,69.74],[1983,69.81],[1984,69.91],[1985,70.04],[1986,70.18],[1987,70.31],[1988,70.41],[1989,70.47],[1990,70.51],[1991,70.54],[1992,70.57],[1993,70.61],[1994,70.68],[1995,70.77],[1996,70.88],[1997,71],[1998,71.13],[1999,71.25],[2000,71.36],[2001,71.45],[2002,71.5],[2003,71.53],[2004,71.54],[2005,71.55],[2006,71.57],[2007,71.63],[2008,71.72],[2009,71.86]]},{"name":"Germany","region":"Europe & Central Asia","income":[[1800,1695.68],[1820,1945.75],[1821,1959.18],[1822,1972.7],[1823,1986.32],[1824,2000.03],[1825,2013.83],[1826,2027.73],[1827,2041.73],[1828,2055.82],[1829,2070.01],[1830,2084.3],[1831,2091.83],[1832,2099.4],[1833,2106.99],[1834,2114.61],[1835,2122.26],[1836,2129.93],[1837,2137.64],[1838,2145.37],[1839,2153.13],[1840,2160.91],[1841,2168.73],[1842,2176.57],[1843,2184.44],[1844,2192.34],[1845,2200.27],[1846,2208.23],[1847,2216.21],[1848,2224.23],[1849,2232.27],[1850,2240.35],[1851,2209.1],[1852,2237.39],[1853,2218],[1854,2264.94],[1855,2229.04],[1856,2403.11],[1857,2502.1],[1858,2470.35],[1859,2456.18],[1860,2572.49],[1861,2483.9],[1862,2581.56],[1863,2744.35],[1864,2793.09],[1865,2776.92],[1866,2779.13],[1867,2770.95],[1868,2920.7],[1869,2919.02],[1870,2885.95],[1871,2850.62],[1872,3030.79],[1873,3136.39],[1874,3333],[1875,3314.78],[1876,3249.37],[1877,3189.68],[1878,3300.1],[1879,3183.46],[1880,3124.99],[1881,3178.15],[1882,3208.28],[1883,3363.31],[1884,3418.47],[1885,3477.8],[1886,3470.18],[1887,3570.4],[1888,3673.25],[1889,3733.56],[1890,3809.81],[1891,3760.75],[1892,3874.94],[1893,4025.82],[1894,4076.25],[1895,4215.1],[1896,4299.15],[1897,4354.02],[1898,4468.91],[1899,4558.78],[1900,4683.8],[1901,4505.8],[1902,4540.54],[1903,4720.51],[1904,4838.51],[1905,4870.98],[1906,4946.45],[1907,5091.98],[1908,5106.79],[1909,5138.79],[1910,5253.25],[1911,5348.6],[1912,5529.51],[1913,5724.59],[1914,4800.75],[1915,4549.24],[1916,4604.93],[1917,4632.51],[1918,4681.28],[1919,4058.48],[1920,4386.95],[1921,4829.84],[1922,5227.11],[1923,4314.74],[1924,5019.72],[1925,5542.04],[1926,5656.53],[1927,6184.52],[1928,6418.17],[1929,6357.62],[1930,6235.14],[1931,5730.09],[1932,5275.27],[1933,5579.88],[1934,6054.45],[1935,6464.97],[1936,6984.27],[1937,7351.76],[1938,7836.14],[1939,8483.68],[1940,8477.82],[1941,8962.15],[1942,9007.31],[1943,9242.26],[1944,9546.85],[1945,7083.98],[1946,3478.75],[1947,3822.81],[1948,4446.78],[1949,5150.97],[1950,6090.03],[1951,6599.92],[1952,7144.11],[1953,7697.25],[1954,8233.48],[1955,9096.83],[1956,9692.61],[1957,10187.83],[1958,10571.59],[1959,11261.93],[1960,12091.34],[1961,12478.83],[1962,12902.46],[1963,13158.88],[1964,13844.37],[1965,14414.59],[1966,14731.37],[1967,14745.63],[1968,15479.67],[1969,16383.41],[1970,17009.19],[1971,17382.08],[1972,18016.18],[1973,18778.23],[1974,18929.76],[1975,18894.57],[1976,19903.97],[1977,20512.92],[1978,21114.59],[1979,21958.81],[1980,22148.27],[1981,22202.51],[1982,22031.53],[1983,22485.38],[1984,23198.33],[1985,23757.88],[1986,24274.56],[1987,24639.19],[1988,25359.06],[1989,25983.63],[1990,24996.14],[1991,26127.06],[1992,26505.3],[1993,26119.46],[1994,26720.64],[1995,27145.96],[1996,27336.47],[1997,27788.88],[1998,28291.6],[1999,28842.66],[2000,29726.88],[2001,30061.4],[2002,30035.8],[2003,29952.94],[2004,30260.66],[2005,30496],[2006,31511.65],[2007,32342.82],[2008,32785.53],[2009,31191.15]],"population":[[1820,24905000],[1821,25260000],[1822,25620000],[1823,25969000],[1824,26307000],[1825,26650000],[1826,26964000],[1827,27249000],[1828,27540000],[1829,27807000],[1830,28045000],[1831,28283000],[1832,28535000],[1833,28801000],[1834,29071000],[1835,29390000],[1836,29702000],[1837,30013000],[1838,30365000],[1839,30746000],[1840,31126000],[1841,31475000],[1842,31787000],[1843,32086000],[1844,32394000],[1845,32743000],[1846,33059000],[1847,33231000],[1848,33289000],[1849,33452000],[1850,33746000],[1851,34055000],[1852,34290000],[1853,34422000],[1854,34531000],[1855,34586000],[1856,34715000],[1857,34979000],[1858,35278000],[1859,35633000],[1860,36049000],[1861,36435000],[1862,36788000],[1863,37184000],[1864,37602000],[1865,37955000],[1866,38193000],[1867,38440000],[1868,38637000],[1869,38914000],[1870,39231000],[1871,39456000],[1872,39691000],[1873,40017000],[1874,40450000],[1875,40897000],[1876,41491000],[1877,42034000],[1878,42546000],[1879,43052000],[1880,43500000],[1881,43827000],[1882,44112000],[1883,44404000],[1884,44777000],[1885,45084000],[1886,45505000],[1887,46001000],[1888,46538000],[1889,47083000],[1890,47607000],[1891,48129000],[1892,48633000],[1893,49123000],[1894,49703000],[1895,50363000],[1896,51111000],[1897,51921000],[1898,52753000],[1899,53592000],[1900,54388000],[1901,55214000],[1902,56104000],[1903,56963000],[1904,57806000],[1905,58644000],[1906,59481000],[1907,60341000],[1908,61187000],[1909,62038000],[1910,62884000],[1911,63852000],[1912,64457000],[1913,65058000],[1914,66096000],[1915,66230000],[1916,66076000],[1917,65763000],[1918,65237000],[1919,60547000],[1920,60894000],[1921,61573000],[1922,61900000],[1923,62307000],[1924,62697000],[1925,63166000],[1926,63630000],[1927,64023000],[1928,64393000],[1929,64739000],[1930,65084000],[1931,65423000],[1932,65716000],[1933,66027000],[1934,66409000],[1935,66871000],[1936,67349000],[1937,67831000],[1938,68558000],[1939,69286000],[1940,69835000],[1941,70244000],[1942,70834000],[1943,70411000],[1944,69865000],[1945,67000000],[1946,64678000],[1947,66094000],[1948,67295000],[1949,67991000],[1950,68374572],[1951,68875884],[1952,69145952],[1953,69550236],[1954,69868115],[1955,70195612],[1956,70602518],[1957,71019069],[1958,71488167],[1959,72013853],[1960,72480869],[1961,73123148],[1962,73739117],[1963,74340260],[1964,74954262],[1965,75638851],[1966,76206173],[1967,76368453],[1968,76584401],[1969,77143888],[1970,77783164],[1971,78354709],[1972,78717088],[1973,78950220],[1974,78966137],[1975,78682325],[1976,78298957],[1977,78160773],[1978,78066074],[1979,78081292],[1980,78297904],[1981,78401830],[1982,78335266],[1983,78121655],[1984,77855422],[1985,77684907],[1986,77713485],[1987,77718298],[1988,78030572],[1989,78644914],[1990,79380394],[1991,79984244],[1992,80597764],[1993,81132272],[1994,81414164],[1995,81653702],[1996,81890667],[1997,82011073],[1998,82023672],[1999,82074778],[2000,82187909],[2001,82280551],[2002,82350671],[2003,82398326],[2004,82424609],[2005,82431390],[2006,82422299],[2007,82400996],[2008,82369548]],"lifeExpectancy":[[1800,38.37],[1875,38.37],[1885,39.44],[1895,42.38],[1905,45.45],[1911,49],[1915,40.52],[1925,57.42],[1935,61.5],[1939,62.6],[1940,62.26],[1941,62.19],[1942,59.64],[1943,57.76],[1944,52.66],[1945,46.13],[1946,60.51],[1950,66.78],[1951,66.96],[1952,67.33],[1953,67.69],[1954,68.03],[1955,68.36],[1956,68.68],[1957,68.98],[1958,69.27],[1959,69.54],[1960,69.79],[1961,70.01],[1962,70.21],[1963,70.38],[1964,70.52],[1965,70.62],[1966,70.7],[1967,70.74],[1968,70.77],[1969,70.79],[1970,70.83],[1971,70.9],[1972,71.01],[1973,71.18],[1974,71.4],[1975,71.67],[1976,71.97],[1977,72.29],[1978,72.6],[1979,72.9],[1980,73.18],[1981,73.43],[1982,73.67],[1983,73.9],[1984,74.11],[1985,74.32],[1986,74.54],[1987,74.77],[1988,75],[1989,75.25],[1990,75.39],[1991,75.61],[1992,76.07],[1993,76.15],[1994,76.47],[1995,76.66],[1996,76.9],[1997,77.35],[1998,77.7],[1999,77.94],[2000,78.21],[2001,78.58],[2002,78.67],[2003,78.75],[2004,79.34],[2005,79.48],[2006,79.81],[2007,79.98],[2008,80.06],[2009,80.08]]},{"name":"Greece","region":"Europe & Central Asia","income":[[1800,934.41],[1801,935.9],[1802,937.38],[1803,938.87],[1804,940.36],[1805,941.85],[1806,943.34],[1807,944.84],[1808,946.33],[1809,947.84],[1810,949.34],[1811,950.84],[1812,952.35],[1813,953.86],[1814,955.38],[1815,956.89],[1816,958.41],[1817,959.93],[1818,961.45],[1819,962.98],[1820,964.5],[1821,972.3],[1822,980.15],[1823,988.07],[1824,996.05],[1825,1004.1],[1826,1012.21],[1827,1020.39],[1828,1028.64],[1829,1036.95],[1830,1045.33],[1831,1053.77],[1832,1062.29],[1833,1070.87],[1834,1079.52],[1835,1088.24],[1836,1097.04],[1837,1105.9],[1838,1114.84],[1839,1123.84],[1840,1132.92],[1841,1142.08],[1842,1151.31],[1843,1160.61],[1844,1169.99],[1845,1179.44],[1846,1188.97],[1847,1198.57],[1848,1208.26],[1849,1218.02],[1850,1227.86],[1851,1232.5],[1852,1237.16],[1853,1241.83],[1854,1246.52],[1855,1251.23],[1856,1255.96],[1857,1260.71],[1858,1265.47],[1859,1270.25],[1860,1275.05],[1861,1279.87],[1862,1284.7],[1863,1289.56],[1864,1294.43],[1865,1299.32],[1866,1304.23],[1867,1309.15],[1868,1314.1],[1869,1319.07],[1870,1324.05],[1871,1343.5],[1872,1363.25],[1873,1383.28],[1874,1403.6],[1875,1424.23],[1876,1445.15],[1877,1466.39],[1878,1487.94],[1879,1509.8],[1880,1531.98],[1881,1554.5],[1882,1577.34],[1883,1600.51],[1884,1624.03],[1885,1647.9],[1886,1672.11],[1887,1696.68],[1888,1721.61],[1889,1746.91],[1890,1772.58],[1891,1797.03],[1892,1821.83],[1893,1846.97],[1894,1872.45],[1895,1898.29],[1896,1924.48],[1897,1951.04],[1898,1977.96],[1899,2005.25],[1900,2032.92],[1901,2058.71],[1902,2084.84],[1903,2111.29],[1904,2138.08],[1905,2165.21],[1906,2192.68],[1907,2220.5],[1908,2248.67],[1909,2277.21],[1910,2306.1],[1911,2335.36],[1912,2364.99],[1913,2395],[1914,2455.06],[1915,2516.63],[1916,2579.74],[1917,2644.43],[1918,2710.74],[1919,2778.72],[1920,2848.4],[1921,2919.83],[1922,2993.27],[1923,3034.8],[1924,3144.67],[1925,3276.03],[1926,3342.01],[1927,3409.21],[1928,3435.92],[1929,3606.72],[1930,3482.77],[1931,3296.69],[1932,3539.75],[1933,3709.49],[1934,3751.22],[1935,3852.51],[1936,3819.78],[1937,4313.84],[1938,4176.55],[1939,4121.41],[1940,3478.46],[1941,2936.62],[1942,2477.95],[1943,2085.53],[1944,1756.5],[1945,1477.82],[1946,2188.35],[1947,2786.57],[1948,2847.04],[1949,2962.29],[1950,3040.41],[1951,3278.15],[1952,3269.31],[1953,3682.62],[1954,3766.01],[1955,4019.81],[1956,4333.64],[1957,4585.5],[1958,4759.42],[1959,4890.42],[1960,5067.26],[1961,5473.18],[1962,5653.18],[1963,6213.79],[1964,6709.76],[1965,7316.29],[1966,7717.14],[1967,8056.35],[1968,8581.63],[1969,9410.71],[1970,10150.88],[1971,10842.06],[1972,12129.8],[1973,12566.7],[1974,12082.49],[1975,12712.2],[1976,13362.2],[1977,13630.27],[1978,14376.56],[1979,14743.85],[1980,14877.19],[1981,14774],[1982,14767.21],[1983,14766.5],[1984,15123.24],[1985,15560.95],[1986,15791.5],[1987,15704.89],[1988,16414.35],[1989,16988.41],[1990,16851.57],[1991,17193.36],[1992,17213.67],[1993,16868.79],[1994,17153.8],[1995,17492.91],[1996,17894.05],[1997,18531.3],[1998,19146.38],[1999,19803.27],[2000,20675.21],[2001,21585.57],[2002,22416.45],[2003,23532.36],[2004,24587.16],[2005,25520],[2006,26618.65],[2007,27746.49],[2008,28242.04],[2009,27626.11]],"population":[[1820,2312000],[1821,2333000],[1822,2355000],[1823,2376000],[1824,2398000],[1825,2420000],[1826,2443000],[1827,2465000],[1828,2488000],[1829,2511000],[1830,2534000],[1831,2557000],[1832,2581000],[1833,2605000],[1834,2629000],[1835,2653000],[1836,2677000],[1837,2702000],[1838,2727000],[1839,2752000],[1840,2777000],[1841,2803000],[1842,2829000],[1843,2855000],[1844,2881000],[1845,2908000],[1846,2934000],[1847,2961000],[1848,2989000],[1849,3016000],[1850,3044000],[1851,3072000],[1852,3100000],[1853,3129000],[1854,3158000],[1855,3187000],[1856,3216000],[1857,3246000],[1858,3273000],[1859,3306000],[1860,3336000],[1861,3367000],[1862,3398000],[1863,3430000],[1864,3461000],[1865,3493000],[1866,3525000],[1867,3558000],[1868,3591000],[1869,3621000],[1870,3657000],[1871,3694000],[1872,3732000],[1873,3770000],[1874,3809000],[1875,3848000],[1876,3887000],[1877,3927000],[1878,3967000],[1879,4008000],[1880,4049000],[1881,4090000],[1882,4132000],[1883,4174000],[1884,4217000],[1885,4260000],[1886,4303000],[1887,4347000],[1888,4392000],[1889,4437000],[1890,4482000],[1891,4528000],[1892,4574000],[1893,4621000],[1894,4668000],[1895,4716000],[1896,4764000],[1897,4813000],[1898,4862000],[1899,4912000],[1900,4962000],[1901,4997000],[1902,5032000],[1903,5067000],[1904,5102000],[1905,5138000],[1906,5174000],[1907,5210000],[1908,5246000],[1909,5283000],[1910,5320000],[1911,5355000],[1912,5390000],[1913,5425000],[1914,5463000],[1915,5502000],[1916,5541000],[1917,5580000],[1918,5620000],[1919,5660000],[1920,5700000],[1921,5837000],[1922,5890000],[1923,6010000],[1924,6000000],[1925,5958000],[1926,6042000],[1927,6127000],[1928,6205000],[1929,6275000],[1930,6351000],[1931,6440000],[1932,6516000],[1933,6591000],[1934,6688000],[1935,6793000],[1936,6886000],[1937,6973000],[1938,7061000],[1939,7156000],[1940,7280000],[1941,7362000],[1942,7339000],[1943,7297000],[1944,7284000],[1945,7322000],[1946,7418000],[1947,7529000],[1948,7749000],[1949,7856000],[1950,7566028],[1951,7646402],[1952,7733250],[1953,7817095],[1954,7893412],[1955,7965538],[1956,8031013],[1957,8096218],[1958,8173129],[1959,8258162],[1960,8327405],[1961,8398050],[1962,8448233],[1963,8479625],[1964,8510429],[1965,8550333],[1966,8613651],[1967,8716441],[1968,8740765],[1969,8772764],[1970,8792806],[1971,8831036],[1972,8888628],[1973,8929086],[1974,8962023],[1975,9046542],[1976,9167190],[1977,9308479],[1978,9429959],[1979,9548258],[1980,9642505],[1981,9729350],[1982,9786480],[1983,9840526],[1984,9887169],[1985,9923253],[1986,9951370],[1987,9974490],[1988,9982723],[1989,10030765],[1990,10129603],[1991,10250880],[1992,10325429],[1993,10382995],[1994,10429826],[1995,10457554],[1996,10479420],[1997,10502372],[1998,10520068],[1999,10536749],[2000,10559110],[2001,10581515],[2002,10603863],[2003,10625945],[2004,10647529],[2005,10668354],[2006,10688058],[2007,10706290],[2008,10722816]],"lifeExpectancy":[[1800,36.6],[1877,36.6],[1882,37.1],[1887,37.7],[1892,38.5],[1897,39.4],[1902,40.4],[1907,41.2],[1920,44.65],[1922,45.2],[1927,48.2],[1928,46.17],[1929,49.97],[1932,50.5],[1937,52.8],[1940,54.34],[1950,64.97],[1951,65.2],[1952,65.65],[1953,66.09],[1954,66.51],[1955,66.92],[1956,67.31],[1957,67.68],[1958,68.04],[1959,68.39],[1960,68.73],[1961,69.05],[1962,69.37],[1963,69.68],[1964,69.98],[1965,70.28],[1966,70.57],[1967,70.86],[1968,71.14],[1969,71.41],[1970,71.68],[1971,71.95],[1972,72.21],[1973,72.47],[1974,72.73],[1975,72.99],[1976,73.27],[1977,73.55],[1978,73.84],[1979,74.15],[1980,74.46],[1981,74.77],[1982,75.09],[1983,75.41],[1984,75.72],[1985,76.02],[1986,76.3],[1987,76.56],[1988,76.79],[1989,77],[1990,77.15],[1991,77.26],[1992,77.31],[1993,77.31],[1994,77.28],[1995,77.23],[1996,77.2],[1997,77.2],[1998,77.26],[1999,77.37],[2000,77.53],[2001,77.74],[2002,77.97],[2003,78.21],[2004,78.44],[2005,78.67],[2006,78.88],[2007,79.09],[2008,79.3],[2009,79.5]]},{"name":"Hungary","region":"Europe & Central Asia","income":[[1800,1390.67],[1820,1419.84],[1870,2080.32],[1890,2806.25],[1900,3206.12],[1910,3812.26],[1913,3998.03],[1920,3256.68],[1924,3643.92],[1925,4343.45],[1926,4120.45],[1927,4263.81],[1928,4602.36],[1929,4718.3],[1930,4580.82],[1931,4322.77],[1932,4178.09],[1933,4523.85],[1934,4515.95],[1935,4709.54],[1936,4989.63],[1937,4846.07],[1938,5060.54],[1939,5408.1],[1940,5005.28],[1941,5004.94],[1942,5227.43],[1946,3279.36],[1947,3379.93],[1948,4192.74],[1949,4486.51],[1950,4726.19],[1951,5135.95],[1952,5263.67],[1953,5308.49],[1954,5431.86],[1955,5850.99],[1956,5537.72],[1957,6040.18],[1958,6416.73],[1959,6639.87],[1960,6954.29],[1961,7272.79],[1962,7550.36],[1963,7942.53],[1964,8362.48],[1965,8403.48],[1966,8854.42],[1967,9326.64],[1968,9403.18],[1969,9647.24],[1970,9581.97],[1971,9982.61],[1972,10168.66],[1973,10663.67],[1974,10892.94],[1975,11062.46],[1976,11035.57],[1977,11674.84],[1978,11917.24],[1979,11912.91],[1980,12018.55],[1981,12102.6],[1982,12545.99],[1983,12435.83],[1984,12786.88],[1985,12495.2],[1986,12767.16],[1987,12986.48],[1988,13399.3],[1989,13155.25],[1990,12308.91],[1991,10851.83],[1992,10535.63],[1993,10494.88],[1994,10821.26],[1995,11000.41],[1996,11169.79],[1997,11712.78],[1998,12319.41],[1999,12874.42],[2000,13592.35],[2001,14185.52],[2002,14843.94],[2003,15506.2],[2004,16291.2],[2005,17014],[2006,17725.9],[2007,17916.21],[2008,18068.58],[2009,16982.8]],"population":[[1820,4146000],[1850,5161000],[1870,5917000],[1890,6622000],[1900,7127000],[1910,7644000],[1913,7840000],[1920,7950000],[1921,8029000],[1922,8103000],[1923,8173000],[1924,8232000],[1925,8299000],[1926,8383000],[1927,8454000],[1928,8520000],[1929,8583000],[1930,8649000],[1931,8723000],[1932,8785000],[1933,8848000],[1934,8919000],[1935,8985000],[1936,9046000],[1937,9107000],[1938,9167000],[1939,9227000],[1940,9287000],[1941,9344000],[1942,9396000],[1943,9442000],[1944,9497000],[1945,9024000],[1946,9042000],[1947,9079000],[1948,9158000],[1949,9250000],[1950,9338000],[1951,9423000],[1952,9504000],[1953,9595000],[1954,9706000],[1955,9825000],[1956,9911000],[1957,9839000],[1958,9882000],[1959,9937000],[1960,9983512],[1961,10029000],[1962,10063000],[1963,10091000],[1964,10124000],[1965,10152934],[1966,10184561],[1967,10223422],[1968,10263542],[1969,10302814],[1970,10337004],[1971,10364869],[1972,10394091],[1973,10425984],[1974,10471272],[1975,10531820],[1976,10588729],[1977,10637171],[1978,10673300],[1979,10698234],[1980,10711122],[1981,10711848],[1982,10705535],[1983,10689463],[1984,10668095],[1985,10648713],[1986,10630563],[1987,10612740],[1988,10442500],[1989,10397959],[1990,10371878],[1991,10364737],[1992,10348684],[1993,10329012],[1994,10312714],[1995,10295874],[1996,10273591],[1997,10244684],[1998,10211127],[1999,10172673],[2000,10137449],[2001,10109467],[2002,10083313],[2003,10057745],[2004,10032375],[2005,10006835],[2006,9981334],[2007,9956108],[2008,9930915]],"lifeExpectancy":[[1800,36],[1890,36],[1900,37.34],[1910,39.76],[1920,42.06],[1930,50.21],[1941,56.56],[1949,61.29],[1950,62.07],[1951,62.46],[1952,64.03],[1953,63.87],[1954,65.43],[1955,66.88],[1956,66.04],[1957,66.41],[1958,67.42],[1959,67.32],[1960,68.09],[1961,69.02],[1962,67.96],[1963,68.98],[1964,69.48],[1965,69.17],[1966,69.93],[1967,69.5],[1968,69.33],[1969,69.4],[1970,69.24],[1971,69.13],[1972,69.76],[1973,69.63],[1974,69.35],[1975,69.4],[1976,69.69],[1977,69.95],[1978,69.49],[1979,69.7],[1980,69.11],[1981,69.17],[1982,69.39],[1983,68.95],[1984,68.99],[1985,68.93],[1986,69.14],[1987,69.61],[1988,70],[1989,69.44],[1990,69.41],[1991,69.46],[1992,69.21],[1993,69.25],[1994,69.68],[1995,70.08],[1996,70.67],[1997,71.07],[1998,71],[1999,71.14],[2000,71.86],[2001,72.49],[2002,72.61],[2003,72.63],[2004,73.04],[2005,72.99],[2006,73.45],[2007,73.45],[2008,73.48],[2009,73.67]]},{"name":"Iceland","region":"Europe & Central Asia","income":[[1800,801.9],[1820,828.93],[1870,1416.21],[1871,1441.22],[1872,1436.14],[1873,1501.2],[1874,1546.62],[1875,1539.8],[1876,1514.68],[1877,1546.88],[1878,1604.6],[1879,1698.15],[1880,1799.25],[1881,1802.69],[1882,1609.07],[1883,1547.32],[1884,1565.79],[1885,1599.16],[1886,1604.51],[1887,1577.48],[1888,1632.08],[1889,1701.73],[1890,1773.61],[1891,1816.24],[1892,1932.36],[1893,2057.61],[1894,2080.31],[1895,2035.37],[1896,2075.54],[1897,2062],[1898,2000.08],[1899,1997.73],[1900,2073.92],[1901,2163.93],[1902,2223.26],[1903,2222.88],[1904,2225.98],[1905,2377.91],[1906,2430.86],[1907,2524.6],[1908,2504.78],[1909,2476.25],[1910,2651.74],[1911,2763.78],[1912,2783.22],[1913,2908.62],[1914,2843.71],[1915,2789.84],[1916,2459.7],[1917,2406.44],[1918,2264.74],[1919,2622.11],[1920,2210.37],[1921,2429.41],[1922,2725.28],[1923,2576.98],[1924,2745.48],[1925,2739.43],[1926,2947.87],[1927,3236.57],[1928,3359.91],[1929,3552.27],[1930,3926.26],[1931,3864.34],[1932,3688.39],[1933,4066.56],[1934,4094.87],[1935,3943.75],[1936,3934.71],[1937,4083.18],[1938,4083.27],[1939,4538.18],[1940,4773.73],[1941,5411.37],[1942,6238.02],[1943,6574.81],[1944,7112.1],[1945,7562.67],[1946,7759.22],[1947,8431.86],[1948,8438.73],[1949,8116.16],[1950,7750.29],[1951,7468.81],[1952,7267.69],[1953,8211.29],[1954,8800.72],[1955,9458.67],[1956,9489.02],[1957,9244],[1958,9789.87],[1959,9768.93],[1960,9890.07],[1961,9724.49],[1962,10350.16],[1963,11221.63],[1964,12133.87],[1965,12794.88],[1966,13701.27],[1967,13319.9],[1968,12441.44],[1969,12659.11],[1970,13532.84],[1971,15128.83],[1972,15798.06],[1973,16670.02],[1974,17375.59],[1975,17297.44],[1976,18179.25],[1977,19654.96],[1978,20649.68],[1979,21453.78],[1980,22434.86],[1981,23121.41],[1982,23269.61],[1983,22499.9],[1984,23215.83],[1985,23821.71],[1986,25107.72],[1987,26923.21],[1988,26435.22],[1989,26317.46],[1990,26372.88],[1991,26332.62],[1992,25144.39],[1993,25030.86],[1994,25941.54],[1995,25840.49],[1996,27027.25],[1997,28061.1],[1998,29256.7],[1999,30042.94],[2000,31092.03],[2001,31830.54],[2002,31163.2],[2003,31937.01],[2004,34279.18],[2005,35630],[2006,36326.1],[2007,37787.48],[2008,37782.95],[2009,34989.73]],"population":[[1800,61428],[1820,61428],[1950,142938],[1951,145604],[1952,147962],[1953,151036],[1954,154563],[1955,158044],[1956,161358],[1957,165110],[1958,168771],[1959,172314],[1960,175860],[1961,178905],[1962,182053],[1963,185481],[1964,188847],[1965,192288],[1966,195610],[1967,198676],[1968,201245],[1969,202920],[1970,204104],[1971,206092],[1972,209275],[1973,212364],[1974,215324],[1975,218031],[1976,220133],[1977,221823],[1978,223587],[1979,225749],[1980,228161],[1981,230803],[1982,233997],[1983,237041],[1984,239498],[1985,241403],[1986,242999],[1987,244676],[1988,249885],[1989,252746],[1990,254719],[1991,256831],[1992,259012],[1993,261270],[1994,266075],[1995,267527],[1996,269000],[1997,271192],[1998,274000],[1999,277280],[2000,281043],[2001,284812],[2002,288030],[2003,291064],[2004,293966],[2005,296737],[2006,299388],[2007,301931],[2008,304367]],"lifeExpectancy":[[1800,32.4],[1838,32.4],[1839,27.95],[1840,31.97],[1841,40.22],[1842,40.13],[1843,25.39],[1844,42.9],[1845,41.35],[1846,18.31],[1847,32.94],[1848,41.39],[1849,37.14],[1850,36.61],[1851,30.01],[1852,42.1],[1853,48.6],[1854,43.14],[1855,38.15],[1856,42.34],[1857,39.49],[1858,34.84],[1859,29.67],[1860,19.76],[1861,27.09],[1862,26.96],[1863,35.11],[1864,34.81],[1865,34.21],[1866,27.2],[1867,37.54],[1868,34.64],[1869,28.03],[1870,38.37],[1871,35.02],[1872,25.15],[1873,36.61],[1874,39.62],[1875,36.54],[1876,40.25],[1877,44.64],[1878,41.61],[1879,39.52],[1880,42.32],[1881,35.82],[1882,17.74],[1883,30.27],[1884,42.19],[1885,45.46],[1886,44.97],[1887,40.6],[1888,46.8],[1889,52.47],[1890,36.58],[1891,47.49],[1892,52.73],[1893,52.58],[1894,44.79],[1895,52.52],[1896,53.22],[1897,48.52],[1898,44.2],[1899,49.79],[1900,46.64],[1901,52.98],[1902,50.52],[1903,48.84],[1904,52.66],[1905,49.51],[1906,53.58],[1907,49.74],[1908,45.79],[1909,52.36],[1910,52.67],[1911,55.47],[1912,56],[1913,58.95],[1914,51.92],[1915,53.66],[1916,54.53],[1917,59.02],[1918,51.07],[1919,58.49],[1920,54.58],[1921,54.21],[1922,56.95],[1923,57.67],[1924,54],[1925,58.23],[1926,60.79],[1927,58.12],[1928,61.81],[1929,60.55],[1930,60.23],[1931,60.83],[1932,62.16],[1933,63.02],[1934,63.37],[1935,59.49],[1936,62.75],[1937,63.52],[1938,65.09],[1939,65.99],[1940,65.79],[1941,63.18],[1942,64.12],[1943,65.22],[1944,66.8],[1945,67.53],[1946,68.56],[1947,69.39],[1948,70.17],[1949,71.44],[1950,71.01],[1951,71.05],[1952,72.49],[1953,72.31],[1954,73.36],[1955,73.3],[1956,72.98],[1957,73.47],[1958,73.43],[1959,72.66],[1960,74.09],[1961,73.47],[1962,73.68],[1963,72.98],[1964,73.57],[1965,73.84],[1966,73.23],[1967,73.73],[1968,73.94],[1969,73.71],[1970,73.81],[1971,73.55],[1972,74.46],[1973,74.31],[1974,74.37],[1975,75.35],[1976,76.71],[1977,76.11],[1978,76.42],[1979,76.63],[1980,76.66],[1981,76.35],[1982,76.99],[1983,76.63],[1984,77.43],[1985,77.56],[1986,78.09],[1987,77.23],[1988,77.08],[1989,78.15],[1990,77.98],[1991,77.94],[1992,78.77],[1993,78.98],[1994,79.24],[1995,78.04],[1996,78.84],[1997,78.95],[1998,79.67],[1999,79.46],[2000,79.72],[2001,80.64],[2002,80.5],[2003,81.06],[2004,80.95],[2005,81.43],[2006,81.12],[2007,81.31],[2008,81.85],[2009,81.95]]},{"name":"Ireland","region":"Europe & Central Asia","income":[[1800,1213.16],[1820,1255.19],[1821,1273],[1822,1291.06],[1823,1309.38],[1824,1327.97],[1825,1346.81],[1826,1365.92],[1827,1385.3],[1828,1404.96],[1829,1424.9],[1830,1445.12],[1831,1465.63],[1832,1486.42],[1833,1507.52],[1834,1528.91],[1835,1550.6],[1836,1572.61],[1837,1594.92],[1838,1617.56],[1839,1640.51],[1840,1663.79],[1841,1687.4],[1842,1711.34],[1843,1735.63],[1844,1760.26],[1845,1472.74],[1846,1232.18],[1847,1400],[1848,1232],[1849,1200],[1850,1550],[1851,1800],[1852,1970.3],[1853,1998.25],[1854,2026.61],[1855,2055.37],[1856,2084.54],[1857,2114.12],[1858,2144.12],[1859,2174.54],[1860,2205.4],[1861,2236.69],[1862,2268.43],[1863,2300.62],[1864,2333.27],[1865,2366.38],[1866,2399.96],[1867,2434.01],[1868,2468.55],[1869,2503.58],[1870,2539.11],[1871,2564.79],[1872,2590.73],[1873,2616.93],[1874,2643.4],[1875,2670.13],[1876,2697.13],[1877,2724.41],[1878,2751.97],[1879,2779.8],[1880,2807.91],[1881,2836.31],[1882,2864.99],[1883,2893.97],[1884,2923.24],[1885,2952.8],[1886,2982.66],[1887,3012.83],[1888,3043.3],[1889,3074.08],[1890,3105.17],[1891,3136.57],[1892,3168.29],[1893,3200.34],[1894,3232.7],[1895,3265.4],[1896,3298.42],[1897,3331.78],[1898,3365.48],[1899,3399.51],[1900,3433.9],[1901,3468.62],[1902,3503.7],[1903,3539.14],[1904,3574.93],[1905,3611.09],[1906,3647.61],[1907,3684.5],[1908,3721.76],[1909,3759.4],[1910,3797.42],[1911,3835.83],[1912,3874.62],[1913,3913.81],[1914,3876.19],[1915,3838.93],[1916,3802.03],[1917,3765.48],[1918,3729.28],[1919,3693.44],[1920,3657.94],[1921,3622.77],[1922,3716.68],[1923,3682.89],[1924,3674.88],[1925,3680.34],[1926,3678.42],[1927,3795.01],[1928,3915.26],[1929,4039.53],[1930,4144.23],[1931,4250.85],[1932,4126.9],[1933,4005.44],[1934,4122.34],[1935,4242.7],[1936,4366.06],[1937,4229.22],[1938,4366.34],[1939,4365.92],[1940,4365.8],[1941,4365.89],[1942,4365.68],[1943,4365.62],[1944,4365.67],[1945,4318.47],[1946,4365.83],[1947,4423.12],[1948,4621.03],[1949,4869.55],[1950,4939.18],[1951,5069.59],[1952,5210.28],[1953,5359.59],[1954,5427.05],[1955,5607.71],[1956,5574.54],[1957,5599.08],[1958,5535.12],[1959,5776.53],[1960,6125.35],[1961,6449],[1962,6631.6],[1963,6896.75],[1964,7131.74],[1965,7225.83],[1966,7267.29],[1967,7655.57],[1968,8253.11],[1969,8710.47],[1970,8867.96],[1971,9088.5],[1972,9530.77],[1973,9822.55],[1974,10073.82],[1975,10465.52],[1976,10445.81],[1977,11150.98],[1978,11800.94],[1979,11967.79],[1980,12217.02],[1981,12467.88],[1982,12618.32],[1983,12501.69],[1984,12953.44],[1985,13311.61],[1986,13252.76],[1987,13872.87],[1988,14639.6],[1989,15562.98],[1990,16904.61],[1991,17120.66],[1992,17558.82],[1993,17927.85],[1994,18869.09],[1995,20581.98],[1996,22144.69],[1997,24521.95],[1998,26127.25],[1999,28496.8],[2000,30827.98],[2001,32335.28],[2002,34077.05],[2003,35191.11],[2004,36303.8],[2005,38058],[2006,39093.97],[2007,40501.4],[2008,38533.88],[2009,35692.95]],"population":[[1820,5052603],[1821,5123045],[1822,5170718],[1823,5219102],[1824,5267487],[1825,5316582],[1826,5366390],[1827,5416197],[1828,5466716],[1829,5517947],[1830,5569177],[1831,5621119],[1832,5655984],[1833,5690849],[1834,5725715],[1835,5760580],[1836,5796156],[1837,5831733],[1838,5868021],[1839,5904310],[1840,5940598],[1841,5976886],[1842,5992540],[1843,6006059],[1844,6033097],[1845,6045905],[1846,6040924],[1847,5838137],[1848,5436120],[1849,5162891],[1850,4893931],[1851,4634933],[1852,4508991],[1853,4410800],[1854,4328262],[1855,4279877],[1856,4249993],[1857,4211570],[1858,4191647],[1859,4171013],[1860,4141840],[1861,4118359],[1862,4109821],[1863,4068552],[1864,4013764],[1865,3981033],[1866,3929803],[1867,3904187],[1868,3889245],[1869,3877149],[1870,3855803],[1871,3840861],[1872,3823072],[1873,3791053],[1874,3770419],[1875,3756188],[1876,3755477],[1877,3761169],[1878,3758323],[1879,3746938],[1880,3702112],[1881,3661554],[1882,3629535],[1883,3574747],[1884,3539882],[1885,3514267],[1886,3490786],[1887,3455921],[1888,3416075],[1889,3384767],[1890,3357018],[1891,3329979],[1892,3297249],[1893,3278037],[1894,3265230],[1895,3244595],[1896,3231788],[1897,3223249],[1898,3214711],[1899,3203326],[1900,3179846],[1901,3164192],[1902,3155654],[1903,3143557],[1904,3136442],[1905,3130038],[1906,3129327],[1907,3122211],[1908,3120077],[1909,3121500],[1910,3120077],[1911,3117231],[1912,3107981],[1913,3092327],[1914,3083789],[1915,3043943],[1916,3040385],[1917,3040385],[1918,3045366],[1919,3096596],[1920,3103000],[1921,3096000],[1922,3002000],[1923,3014000],[1924,3005000],[1925,2985000],[1926,2971000],[1927,2957000],[1928,2944000],[1929,2937000],[1930,2927000],[1931,2933000],[1932,2949000],[1933,2962000],[1934,2971000],[1935,2971000],[1936,2967000],[1937,2948000],[1938,2937000],[1939,2934000],[1940,2958000],[1941,2993000],[1942,2963000],[1943,2946000],[1944,2944000],[1945,2952000],[1946,2957000],[1947,2974000],[1948,2985000],[1949,2981000],[1950,2963018],[1951,2959311],[1952,2952156],[1953,2947311],[1954,2936769],[1955,2916133],[1956,2895253],[1957,2878220],[1958,2851522],[1959,2843041],[1960,2832000],[1961,2818300],[1962,2830000],[1963,2850000],[1964,2864000],[1965,2876000],[1966,2884000],[1967,2900100],[1968,2912500],[1969,2925600],[1970,2950100],[1971,2978300],[1972,3024400],[1973,3073200],[1974,3124200],[1975,3177300],[1976,3227800],[1977,3271900],[1978,3314000],[1979,3368200],[1980,3401000],[1981,3443400],[1982,3480000],[1983,3504000],[1984,3529000],[1985,3540000],[1986,3540500],[1987,3539900],[1988,3529600],[1989,3513200],[1990,3508200],[1991,3530771],[1992,3557761],[1993,3578349],[1994,3595542],[1995,3613890],[1996,3636179],[1997,3667233],[1998,3707555],[1999,3750141],[2000,3791690],[2001,3835025],[2002,3879155],[2003,3924023],[2004,3969558],[2005,4015676],[2006,4062235],[2007,4109086],[2008,4156119]],"lifeExpectancy":[[1800,37.7],[1845,37.7],[1846,25],[1847,30],[1848,20.55],[1849,20],[1850,35],[1851,37.7],[1859,37.7],[1901,49.4],[1911,53.8],[1926,57.6],[1936,58.9],[1941,60],[1946,61.4],[1950,65.61],[1951,64.78],[1952,67.2],[1953,67.96],[1954,68.07],[1955,68.06],[1956,69.01],[1957,69.06],[1958,69.36],[1959,69.49],[1960,70.23],[1961,69.69],[1962,69.99],[1963,70.24],[1964,70.49],[1965,70.69],[1966,70.2],[1967,71.24],[1968,70.93],[1969,70.85],[1970,70.89],[1971,71.68],[1972,71.02],[1973,71.24],[1974,71.18],[1975,71.76],[1976,71.86],[1977,72],[1978,71.98],[1979,72.25],[1980,72.6],[1981,72.96],[1982,73.23],[1983,73.26],[1984,73.71],[1985,73.65],[1986,73.72],[1987,74.52],[1988,74.55],[1989,74.58],[1990,74.98],[1991,75.14],[1992,75.54],[1993,75.4],[1994,75.91],[1995,75.58],[1996,75.94],[1997,76.08],[1998,76.3],[1999,76.2],[2000,76.66],[2001,77.24],[2002,77.73],[2003,78.24],[2004,78.64],[2005,79.4],[2006,79.73],[2007,79.66],[2008,79.94],[2009,80.16]]},{"name":"Italy","region":"Europe & Central Asia","income":[[1800,1339.84],[1801,1322.44],[1802,1365.94],[1803,1405.09],[1804,1465.99],[1805,1418.14],[1806,1452.94],[1807,1426.84],[1808,1509.5],[1809,1513.85],[1810,1396.39],[1811,1352.89],[1812,1378.99],[1813,1418.14],[1814,1435.54],[1815,1374.64],[1816,1352.89],[1817,1365.94],[1818,1465.99],[1819,1457.29],[1820,1452.94],[1821,1431.19],[1822,1448.59],[1823,1461.64],[1824,1496.45],[1825,1479.05],[1826,1518.2],[1827,1496.45],[1828,1479.05],[1829,1470.35],[1830,1452.94],[1831,1500.8],[1832,1518.2],[1833,1522.55],[1834,1535.6],[1835,1579.1],[1836,1431.19],[1837,1392.04],[1838,1418.14],[1839,1405.09],[1840,1448.59],[1841,1479.05],[1842,1483.4],[1843,1409.44],[1844,1409.44],[1845,1422.49],[1846,1409.44],[1847,1448.59],[1848,1444.24],[1849,1435.54],[1850,1357.24],[1851,1361.59],[1852,1339.84],[1853,1309.39],[1854,1226.74],[1855,1239.79],[1856,1244.14],[1857,1331.14],[1858,1383.34],[1859,1339.84],[1860,1335.49],[1861,1448.59],[1862,1492.1],[1863,1522.55],[1864,1496.45],[1865,1574.75],[1866,1465.99],[1867,1479.05],[1868,1487.75],[1869,1526.9],[1870,1600.85],[1871,1592.15],[1872,1566.05],[1873,1566.05],[1874,1674.8],[1875,1640],[1876,1579.1],[1877,1600.85],[1878,1683.5],[1879,1679.15],[1880,1722.65],[1881,1770.5],[1882,1809.66],[1883,1831.41],[1884,1774.85],[1885,1827.06],[1886,1914.06],[1887,1940.16],[1888,1918.41],[1889,1848.81],[1890,1896.66],[1891,1944.51],[1892,1931.46],[1893,1979.31],[1894,1988.01],[1895,2009.76],[1896,2031.51],[1897,2044.56],[1898,2053.26],[1899,2079.36],[1900,2127.22],[1901,2166.37],[1902,2214.22],[1903,2270.77],[1904,2340.37],[1905,2414.32],[1906,2479.58],[1907,2557.88],[1908,2592.68],[1909,2636.18],[1910,2640.53],[1911,2670.98],[1912,2762.33],[1913,2871.09],[1914,3133.99],[1915,3155.61],[1916,3517.13],[1917,3756.73],[1918,4142.93],[1919,3599.69],[1920,3229.38],[1921,3268.57],[1922,3419.44],[1923,3438.41],[1924,3409.86],[1925,3564.46],[1926,3560.69],[1927,3578.97],[1928,3782.3],[1929,3881.82],[1930,3664.52],[1931,3696.84],[1932,3832.8],[1933,3798.85],[1934,3826.45],[1935,4125.84],[1936,4218.03],[1937,4388.13],[1938,4396.7],[1939,4653.39],[1940,4495.44],[1941,4384.39],[1942,4377.87],[1943,4124.63],[1944,3499.45],[1945,2730.28],[1946,3417.92],[1947,3892.09],[1948,4108.64],[1949,4219.07],[1950,4461.07],[1951,4719.64],[1952,4931.4],[1953,5222.08],[1954,5436.14],[1955,5733.71],[1956,5958.25],[1957,6248.66],[1958,6518.37],[1959,6885.77],[1960,7314.83],[1961,7820.21],[1962,8243.58],[1963,8636.91],[1964,8821.6],[1965,9011.54],[1966,9503.61],[1967,10022.4],[1968,10694.07],[1969,11274.4],[1970,11788.23],[1971,11939.22],[1972,12269.27],[1973,13133.75],[1974,13614.98],[1975,13160.79],[1976,14021.93],[1977,14255.98],[1978,14831.4],[1979,15712.14],[1980,16201.88],[1981,16362.8],[1982,16537.48],[1983,16717.44],[1984,17530.69],[1985,18078.95],[1986,18479.37],[1987,19207.23],[1988,20293.85],[1989,21166.48],[1990,21561.42],[1991,21755.4],[1992,22013.64],[1993,21826.22],[1994,22471.23],[1995,23680.31],[1996,23897.55],[1997,24675.02],[1998,25409.99],[1999,26128.82],[2000,27160.47],[2001,27779.73],[2002,27968.1],[2003,27839.64],[2004,27887.57],[2005,27750],[2006,28141.34],[2007,28342.66],[2008,27753.8],[2009,26160.59]],"population":[[1820,20176000],[1821,20306000],[1822,20437000],[1823,20568000],[1824,20701000],[1825,20834000],[1826,20968000],[1827,21103000],[1828,21239000],[1829,21376000],[1830,21513000],[1831,21652000],[1832,21791000],[1833,21932000],[1834,22073000],[1835,22215000],[1836,22358000],[1837,22502000],[1838,22647000],[1839,22793000],[1840,22939000],[1841,23087000],[1842,23236000],[1843,23385000],[1844,23536000],[1845,23687000],[1846,23840000],[1847,23993000],[1848,24148000],[1849,24303000],[1850,24460000],[1851,24617000],[1852,24776000],[1853,24935000],[1854,25096000],[1855,25257000],[1856,25420000],[1857,25584000],[1858,25748000],[1859,25914000],[1860,26081000],[1861,26249000],[1862,26418000],[1863,26610000],[1864,26814000],[1865,27023000],[1866,27256000],[1867,27411000],[1868,27501000],[1869,27681000],[1870,27888000],[1871,28063000],[1872,28233000],[1873,28387000],[1874,28505000],[1875,28630000],[1876,28837000],[1877,29067000],[1878,29252000],[1879,29425000],[1880,29534000],[1881,29672000],[1882,29898000],[1883,30113000],[1884,30366000],[1885,30644000],[1886,30857000],[1887,31049000],[1888,31243000],[1889,31468000],[1890,31702000],[1891,31892000],[1892,32091000],[1893,32303000],[1894,32513000],[1895,32689000],[1896,32863000],[1897,33078000],[1898,33285000],[1899,33487000],[1900,33672000],[1901,33877000],[1902,34166000],[1903,34436000],[1904,34715000],[1905,35011000],[1906,35297000],[1907,35594000],[1908,35899000],[1909,36213000],[1910,36572000],[1911,36917000],[1912,37150000],[1913,37248000],[1914,37526000],[1915,37982000],[1916,38142000],[1917,37981000],[1918,37520000],[1919,37250000],[1920,37398000],[1921,37691000],[1922,38086000],[1923,38460000],[1924,38810000],[1925,39165000],[1926,39502000],[1927,39848000],[1928,40186000],[1929,40469000],[1930,40791000],[1931,41132000],[1932,41431000],[1933,41753000],[1934,42093000],[1935,42429000],[1936,42750000],[1937,43068000],[1938,43419000],[1939,43865000],[1940,44341000],[1941,44734000],[1942,45004000],[1943,45177000],[1944,45290000],[1945,45442000],[1946,45725000],[1947,46040000],[1948,46381000],[1949,46733000],[1950,47105000],[1951,47418000],[1952,47666000],[1953,47957000],[1954,48299000],[1955,48633000],[1956,48921000],[1957,49182000],[1958,49476000],[1959,49832000],[1960,50197600],[1961,50523200],[1962,50843200],[1963,51198300],[1964,51600200],[1965,51987100],[1966,52331600],[1967,52667100],[1968,52986600],[1969,53317000],[1970,53661100],[1971,54005500],[1972,54365564],[1973,54796843],[1974,55226259],[1975,55571894],[1976,55838536],[1977,56059245],[1978,56240143],[1979,56367710],[1980,56451247],[1981,56502489],[1982,56535636],[1983,56630129],[1984,56696963],[1985,56731215],[1986,56733833],[1987,56729703],[1988,56734027],[1989,56737529],[1990,56742886],[1991,56747462],[1992,56840847],[1993,57026746],[1994,57179460],[1995,57274531],[1996,57367032],[1997,57479469],[1998,57550318],[1999,57603634],[2000,57719337],[2001,57844924],[2002,57926999],[2003,57998353],[2004,58057477],[2005,58103033],[2006,58133509],[2007,58147733],[2008,58145321]],"lifeExpectancy":[[1800,29.01],[1872,29.69],[1873,31.6],[1874,31.75],[1875,31.31],[1876,33.6],[1877,34.88],[1878,34.32],[1879,33.95],[1880,32.74],[1881,34.2],[1882,34.29],[1883,35.18],[1884,36.6],[1885,36.83],[1886,35.1],[1887,35.97],[1888,36.92],[1889,39.05],[1890,38.5],[1891,38.46],[1892,38.84],[1893,39.79],[1894,39.91],[1895,39.61],[1896,40.7],[1897,43.29],[1898,42.33],[1899,43.67],[1900,41.66],[1901,43.52],[1902,42.99],[1903,43.15],[1904,44.43],[1905,43.94],[1906,45.09],[1907,45.45],[1908,43.19],[1909,44.67],[1910,46.75],[1911,44.77],[1912,48.98],[1913,48.46],[1914,49.89],[1915,42.34],[1916,39.27],[1917,37.69],[1918,25.62],[1919,42.1],[1920,45.51],[1921,49.25],[1922,50.01],[1923,51.45],[1924,51.51],[1925,51.31],[1926,50.96],[1927,52.58],[1928,52.67],[1929,52.29],[1930,55.2],[1931,54.78],[1932,54.77],[1933,56.29],[1934,56.86],[1935,56.22],[1936,56.75],[1937,55.49],[1938,56.13],[1939,57.64],[1940,56.95],[1941,54.62],[1942,52.45],[1943,49.19],[1944,52.34],[1945,54.78],[1946,58.97],[1947,61.18],[1948,63.45],[1949,64.11],[1950,65.77],[1951,65.31],[1952,65.94],[1953,66.58],[1954,67.9],[1955,68.25],[1956,67.64],[1957,67.81],[1958,68.87],[1959,69.32],[1960,69.21],[1961,69.85],[1962,69.24],[1963,69.35],[1964,70.4],[1965,70.27],[1966,71.02],[1967,71.06],[1968,70.88],[1969,70.9],[1970,71.66],[1971,71.91],[1972,72.19],[1973,72.13],[1974,72.85],[1975,72.76],[1976,73.11],[1977,73.48],[1978,73.83],[1979,74.16],[1980,74.12],[1981,74.51],[1982,74.98],[1983,74.8],[1984,75.56],[1985,75.67],[1986,76],[1987,76.42],[1988,76.6],[1989,77],[1990,77.06],[1991,77.07],[1992,77.44],[1993,77.72],[1994,77.93],[1995,78.19],[1996,78.52],[1997,78.82],[1998,78.92],[1999,79.32],[2000,79.73],[2001,80.01],[2002,80.25],[2003,80.33],[2004,81.19],[2005,81.18],[2006,81.59],[2007,81.11],[2008,81.24],[2009,81.34]]},{"name":"Kazakhstan","region":"Europe & Central Asia","income":[[1800,585.03],[1820,597.35],[1913,1331.55],[1950,2609.22],[1973,7244.19],[1990,7085.5],[1991,6265.36],[1992,5919.91],[1993,5404.83],[1994,4802.48],[1995,4492.99],[1996,4567.93],[1997,4709.06],[1998,4691.52],[1999,4870.09],[2000,5366.02],[2001,6082.3],[2002,6667.3],[2003,7272.72],[2004,7930.09],[2005,8699],[2006,9437.71],[2007,10185.05],[2008,10500.47],[2009,10612.29]],"population":[[1800,2041282],[1820,2041282],[1950,6693230],[1951,6936060],[1952,7123394],[1953,7260866],[1954,7516649],[1955,7976879],[1956,8413793],[1957,8709753],[1958,9062534],[1959,9499911],[1960,9982014],[1961,10466809],[1962,10945885],[1963,11311646],[1964,11601936],[1965,11902456],[1966,12179771],[1967,12451717],[1968,12691968],[1969,12900122],[1970,13106377],[1971,13324719],[1972,13541694],[1973,13754298],[1974,13971543],[1975,14157075],[1976,14304436],[1977,14454828],[1978,14623619],[1979,14803694],[1980,14966718],[1981,15136447],[1982,15303467],[1983,15466787],[1984,15630279],[1985,15789549],[1986,15946119],[1987,16109358],[1988,16206749],[1989,16265063],[1990,16398131],[1991,16504750],[1992,16542063],[1993,16451625],[1994,16182154],[1995,15878488],[1996,15696091],[1997,15484518],[1998,15247098],[1999,15084623],[2000,15032140],[2001,15052250],[2002,15077224],[2003,15107581],[2004,15143704],[2005,15185844],[2006,15233244],[2007,15284929],[2008,15340533]],"lifeExpectancy":[[1800,26.2],[1863,26.2],[1868,23.58],[1873,23.8],[1897,28.6],[1900,28.1],[1910,30.6],[1926,36.87],[1939,44.47],[1950,54.16],[1951,54.38],[1952,54.81],[1953,55.25],[1954,55.68],[1955,56.11],[1956,56.54],[1957,56.97],[1958,57.4],[1959,57.84],[1960,58.27],[1961,58.71],[1962,59.15],[1963,59.59],[1964,60.04],[1965,60.47],[1966,60.9],[1967,61.31],[1968,61.69],[1969,62.06],[1970,62.4],[1971,62.7],[1972,62.97],[1973,63.21],[1974,63.44],[1975,63.66],[1976,63.88],[1977,64.12],[1978,64.37],[1979,64.65],[1980,64.96],[1981,65.32],[1982,65.71],[1983,66.12],[1984,66.52],[1985,66.87],[1986,67.12],[1987,67.24],[1988,67.22],[1989,67.05],[1990,66.73],[1991,66.27],[1992,65.71],[1993,65.09],[1994,64.49],[1995,63.95],[1996,63.54],[1997,63.3],[1998,63.24],[1999,63.33],[2000,63.56],[2001,63.87],[2002,64.18],[2003,64.45],[2004,64.64],[2005,64.77],[2006,64.86],[2007,64.93],[2008,65.03],[2009,65.18]]},{"name":"Latvia","region":"Europe & Central Asia","income":[[1800,865.19],[1820,883.41],[1913,1969.19],[1965,4078.83],[1966,4110.99],[1967,4444.34],[1968,4596.58],[1969,4651.53],[1970,5470.69],[1971,5845.61],[1972,6095.31],[1973,6395.1],[1974,6651.16],[1975,7050.03],[1976,7350.82],[1977,7488.92],[1978,7635.77],[1979,8000.76],[1980,8278.29],[1981,8578.01],[1982,8728.46],[1983,9127.3],[1984,9596.89],[1985,9502.49],[1986,9893.28],[1987,10063.53],[1988,10512.99],[1989,11044.48],[1990,10217.78],[1991,8960.02],[1992,6151.51],[1993,5948.96],[1994,6169.9],[1995,6191.8],[1996,6488.44],[1997,7143.44],[1998,7604.97],[1999,8028.97],[2000,8649.22],[2001,9396.42],[2002,10094.47],[2003,10879.77],[2004,11888.05],[2005,13218],[2006,14911.56],[2007,16494.88],[2008,15816.36],[2009,13021.94]],"population":[[1800,590588],[1820,590588],[1950,1936498],[1951,1950888],[1952,1964319],[1953,1976212],[1954,1990651],[1955,2002111],[1956,2026333],[1957,2055709],[1958,2072119],[1959,2088934],[1960,2115183],[1961,2145744],[1962,2172829],[1963,2199396],[1964,2227495],[1965,2253604],[1966,2278721],[1967,2301371],[1968,2322031],[1969,2341871],[1970,2361159],[1971,2381641],[1972,2401244],[1973,2421355],[1974,2442473],[1975,2461606],[1976,2476760],[1977,2491407],[1978,2504508],[1979,2514167],[1980,2524543],[1981,2536976],[1982,2552229],[1983,2569826],[1984,2587996],[1985,2606405],[1986,2626695],[1987,2648965],[1988,2664068],[1989,2667309],[1990,2663590],[1991,2651308],[1992,2615869],[1993,2565708],[1994,2523532],[1995,2488008],[1996,2460277],[1997,2435967],[1998,2413173],[1999,2393657],[2000,2376178],[2001,2358232],[2002,2340205],[2003,2322943],[2004,2306306],[2005,2290237],[2006,2274735],[2007,2259810],[2008,2245423]],"lifeExpectancy":[[1800,33],[1860,33],[1896,44.95],[1924,53.7],[1935,58.08],[1950,64.53],[1951,64.93],[1952,65.7],[1953,66.42],[1954,67.08],[1955,67.69],[1956,68.24],[1957,68.72],[1958,69.16],[1959,69.54],[1960,70.3],[1961,70.54],[1962,69.88],[1963,70.29],[1964,71.52],[1965,71.2],[1966,71.16],[1967,70.82],[1968,70.46],[1969,70.2],[1970,70.22],[1971,70.57],[1972,70.25],[1973,70.2],[1974,70.11],[1975,69.28],[1976,69.41],[1977,69.45],[1978,69.35],[1979,68.87],[1980,69.19],[1981,69.13],[1982,69.71],[1983,69.47],[1984,69.51],[1985,69.63],[1986,71.01],[1987,71.05],[1988,70.99],[1989,70.46],[1990,69.51],[1991,69.24],[1992,68.57],[1993,66.78],[1994,65.53],[1995,66.33],[1996,68.92],[1997,69.55],[1998,69.19],[1999,69.98],[2000,70.57],[2001,70.32],[2002,70.67],[2003,71.17],[2004,71.5],[2005,71.24],[2006,71.14],[2007,71.2],[2008,72.52],[2009,72.77]]},{"name":"Lithuania","region":"Europe & Central Asia","income":[[1800,988.79],[1820,1009.61],[1913,2250.5],[1950,4409.94],[1973,11523.46],[1990,13148.26],[1991,12374.36],[1992,9743.51],[1993,8190.02],[1994,7406.2],[1995,7804.17],[1996,8182.69],[1997,8764.9],[1998,9412.97],[1999,9259.81],[2000,9631.65],[2001,10272.37],[2002,11008.68],[2003,12120.35],[2004,13049.48],[2005,14085],[2006,15280.33],[2007,16875.86],[2008,17432.25],[2009,14928.78]],"population":[[1800,778655],[1820,778655],[1950,2553159],[1951,2561579],[1952,2583984],[1953,2593918],[1954,2597435],[1955,2614336],[1956,2641167],[1957,2651630],[1958,2672229],[1959,2717677],[1960,2764864],[1961,2810271],[1962,2850220],[1963,2886180],[1964,2922673],[1965,2959173],[1966,2996683],[1967,3033728],[1968,3068801],[1969,3101819],[1970,3137562],[1971,3177533],[1972,3213271],[1973,3245551],[1974,3276362],[1975,3305195],[1976,3333542],[1977,3361419],[1978,3386988],[1979,3410869],[1980,3435289],[1981,3462341],[1982,3491974],[1983,3523380],[1984,3555054],[1985,3587032],[1986,3619593],[1987,3653339],[1988,3673950],[1989,3681250],[1990,3694836],[1991,3702136],[1992,3700278],[1993,3689004],[1994,3679636],[1995,3673577],[1996,3668316],[1997,3664372],[1998,3661168],[1999,3658454],[2000,3654387],[2001,3645747],[2002,3633232],[2003,3620094],[2004,3607899],[2005,3596617],[2006,3585906],[2007,3575439],[2008,3565205]],"lifeExpectancy":[[1800,28.9],[1870,28.9],[1900,41.7],[1925,50.5],[1950,63.56],[1951,63.87],[1952,64.49],[1953,65.11],[1954,65.73],[1955,66.34],[1956,66.95],[1957,67.55],[1958,68.14],[1959,67.68],[1960,70.28],[1961,70.47],[1962,69.4],[1963,70.58],[1964,71.94],[1965,71.69],[1966,71.85],[1967,71.92],[1968,71.61],[1969,71.22],[1970,71.08],[1971,72.02],[1972,71.26],[1973,71.61],[1974,71.54],[1975,71.15],[1976,71.29],[1977,71.04],[1978,70.83],[1979,70.7],[1980,70.68],[1981,70.66],[1982,71.06],[1983,70.98],[1984,70.49],[1985,70.66],[1986,72.33],[1987,72.14],[1988,71.98],[1989,71.66],[1990,71.37],[1991,70.55],[1992,70.4],[1993,69.01],[1994,68.58],[1995,69.02],[1996,70.15],[1997,70.99],[1998,71.32],[1999,71.71],[2000,72.18],[2001,71.79],[2002,71.98],[2003,72.24],[2004,72.23],[2005,71.7],[2006,71.47],[2007,71.39],[2008,71.84],[2009,71.93]]},{"name":"Luxembourg","region":"Europe & Central Asia","income":[[1800,1145.57],[1820,1184.19],[1913,3505.89],[1950,14554.96],[1951,13543.17],[1952,14326.14],[1953,14733.28],[1954,14468.25],[1955,15026.48],[1956,15697.47],[1957,16545.86],[1958,16587.41],[1959,16545.58],[1960,17086.72],[1961,17621.05],[1962,17713.7],[1963,17788.6],[1964,19273.35],[1965,19349.16],[1966,19340.04],[1967,19163],[1968,19989.65],[1969,22105.34],[1970,22298.67],[1971,22667.93],[1972,23883.2],[1973,25579.14],[1974,26441.81],[1975,24454.52],[1976,24917.29],[1977,25282.33],[1978,26202.01],[1979,26887.08],[1980,27021.65],[1981,26826.66],[1982,27078.42],[1983,27876.96],[1984,29606.07],[1985,30435.47],[1986,33355.98],[1987,34518.87],[1988,37373.59],[1989,40736.66],[1990,42467.64],[1991,45750.52],[1992,45854.36],[1993,47055.53],[1994,48284.01],[1995,48165.26],[1996,49005.59],[1997,52622.9],[1998,55788.96],[1999,59349.52],[2000,63924.16],[2001,63932.84],[2002,64421.03],[2003,65308.34],[2004,67283.43],[2005,70014],[2006,72742.03],[2007,76273.6],[2008,74985.91],[2009,70857.46]],"population":[[1800,127030],[1820,127030],[1950,295587],[1951,297425],[1952,299263],[1953,301101],[1954,302939],[1955,304777],[1956,306615],[1957,308453],[1958,310291],[1959,312129],[1960,313969],[1961,316845],[1962,320750],[1963,324100],[1964,327750],[1965,331500],[1966,333895],[1967,335012],[1968,335867],[1969,337500],[1970,339174],[1971,342400],[1972,346600],[1973,350450],[1974,355050],[1975,358950],[1976,360750],[1977,361450],[1978,362100],[1979,363000],[1980,364400],[1981,365400],[1982,365718],[1983,365885],[1984,366272],[1985,367169],[1986,369019],[1987,371660],[1988,375624],[1989,377621],[1990,382966],[1991,387152],[1992,392552],[1993,398084],[1994,403756],[1995,409704],[1996,415566],[1997,421014],[1998,426495],[1999,432527],[2000,438777],[2001,444779],[2002,450786],[2003,456764],[2004,462690],[2005,468571],[2006,474413],[2007,480222],[2008,486006]],"lifeExpectancy":[[1800,36.9],[1879,36.9],[1901,47.98],[1902,48.06],[1903,46.91],[1904,44.83],[1905,46.21],[1906,46.59],[1907,49],[1908,46.46],[1909,47.79],[1910,49.66],[1911,46.38],[1912,48.88],[1913,50.24],[1914,50.07],[1915,51.47],[1916,50.12],[1917,48.05],[1918,42.33],[1919,44.68],[1920,54.62],[1921,56.21],[1922,55.27],[1923,54.68],[1924,56.76],[1925,54.79],[1926,53.41],[1927,55.86],[1928,55.35],[1929,52.7],[1930,56.8],[1931,57.59],[1932,56.66],[1933,58.32],[1934,59.9],[1935,59.1],[1936,61.2],[1937,61.06],[1938,59.2],[1939,60.35],[1940,61.95],[1941,59.99],[1942,58.33],[1943,54.32],[1944,47.84],[1945,49.4],[1946,61.61],[1947,63.06],[1948,64.49],[1949,64.84],[1950,65.25],[1951,65.42],[1952,65.76],[1953,66.09],[1954,66.42],[1955,66.73],[1956,67.04],[1957,67.33],[1958,67.62],[1959,67.9],[1960,69.07],[1961,69.57],[1962,68.67],[1963,68.89],[1964,69.07],[1965,69.4],[1966,69.31],[1967,69.69],[1968,70.28],[1969,69.84],[1970,69.58],[1971,69.47],[1972,70.71],[1973,70.47],[1974,70.55],[1975,70.5],[1976,70.45],[1977,71.75],[1978,71.71],[1979,72.4],[1980,72.57],[1981,72.38],[1982,72.47],[1983,73.35],[1984,73.11],[1985,73.68],[1986,74.61],[1987,74.15],[1988,74.75],[1989,74.68],[1990,75.39],[1991,75.47],[1992,75.16],[1993,75.74],[1994,76.36],[1995,76.47],[1996,76.49],[1997,76.81],[1998,77],[1999,77.67],[2000,77.82],[2001,77.95],[2002,78.08],[2003,77.96],[2004,79.26],[2005,79.56],[2006,79.44],[2007,79.36],[2008,79.56],[2009,79.75]]},{"name":"Macedonia, FYR","region":"Europe & Central Asia","income":[[1800,800.76],[1820,817.56],[1870,788.24],[1890,1109.35],[1900,1186.95],[1910,1390.81],[1913,1390.85],[1920,1357.01],[1921,1370.39],[1922,1390.56],[1923,1442.26],[1924,1523.97],[1925,1576.27],[1926,1662.47],[1927,1612.32],[1928,1729.42],[1929,1795.11],[1930,1734.96],[1931,1659.06],[1932,1484],[1933,1509.15],[1934,1543.86],[1935,1499.75],[1936,1671.3],[1937,1675.75],[1938,1784.95],[1939,1857.76],[1947,1731.03],[1948,2037.63],[1949,2208.57],[1950,2040.95],[1951,2093.81],[1952,1905.93],[1953,2161.7],[1954,2252.77],[1955,2365.11],[1956,2292.05],[1957,2650.77],[1958,2737],[1959,3044.67],[1960,3206.91],[1961,3318.1],[1962,3347.13],[1963,3659.85],[1964,3972.98],[1965,4040.6],[1966,4217.55],[1967,4252.92],[1968,4306.22],[1969,4750.19],[1970,4940.59],[1971,5462.13],[1972,5599.5],[1973,5738.05],[1974,6420.76],[1975,6364.32],[1976,6499.5],[1977,6907.88],[1978,7225.93],[1979,7656.7],[1980,7978.72],[1981,8072],[1982,8078.87],[1983,8102.68],[1984,8262.47],[1985,8285.66],[1986,8581.89],[1987,8445.96],[1988,8290.43],[1989,8149.6],[1990,7526.79],[1991,7497.53],[1992,6964.03],[1993,6409.96],[1994,6266.98],[1995,6166.63],[1996,6208.04],[1997,6266.31],[1998,6446.95],[1999,6697.62],[2000,6975.62],[2001,6637.34],[2002,6675.89],[2003,6847.63],[2004,7113.23],[2005,7393],[2006,7658.59],[2007,8086.19],[2008,8449.03],[2009,8364.79]],"population":[[1800,391865],[1820,391865],[1950,1224627],[1951,1255619],[1952,1271611],[1953,1299452],[1954,1325223],[1955,1340031],[1956,1339977],[1957,1344846],[1958,1344772],[1959,1353539],[1960,1366198],[1961,1381753],[1962,1401167],[1963,1422470],[1964,1444676],[1965,1469729],[1966,1489836],[1967,1511816],[1968,1532751],[1969,1553615],[1970,1574407],[1971,1596091],[1972,1617701],[1973,1639236],[1974,1661657],[1975,1684000],[1976,1706445],[1977,1727797],[1978,1747113],[1979,1768203],[1980,1792000],[1981,1808103],[1982,1823791],[1983,1831444],[1984,1837295],[1985,1844740],[1986,1850679],[1987,1856378],[1988,1858920],[1989,1863007],[1990,1861361],[1991,1867710],[1992,1889358],[1993,1917563],[1994,1935034],[1995,1954048],[1996,1971102],[1997,1984860],[1998,1995474],[1999,2004985],[2000,2014512],[2001,2023912],[2002,2030445],[2003,2035145],[2004,2040085],[2005,2045262],[2006,2050554],[2007,2055915],[2008,2061315]],"lifeExpectancy":[[1950,53.09],[1951,53.58],[1952,54.54],[1953,55.45],[1954,56.32],[1955,57.15],[1956,57.94],[1957,58.68],[1958,59.39],[1959,60.07],[1960,60.72],[1961,61.34],[1962,61.95],[1963,62.55],[1964,63.14],[1965,63.72],[1966,64.28],[1967,64.83],[1968,65.35],[1969,65.86],[1970,66.35],[1971,66.83],[1972,67.32],[1973,67.81],[1974,68.28],[1975,68.71],[1976,69.07],[1977,69.34],[1978,69.51],[1979,69.61],[1980,69.64],[1981,69.66],[1982,69.69],[1983,69.78],[1984,69.92],[1985,70.13],[1986,70.37],[1987,70.64],[1988,70.9],[1989,71.14],[1990,71.36],[1991,71.55],[1992,71.73],[1993,71.89],[1994,72.05],[1995,72.2],[1996,72.35],[1997,72.51],[1998,72.67],[1999,72.83],[2000,73.01],[2001,73.18],[2002,73.35],[2003,73.51],[2004,73.67],[2005,73.82],[2006,73.97],[2007,74.11],[2008,74.25],[2009,74.4]]},{"name":"Malta","region":"Europe & Central Asia","income":[[1800,515.5],[1820,532.89],[1950,1525.8],[1960,2300.59],[1961,2326.46],[1962,2250.88],[1963,2255.34],[1964,2301.61],[1965,2452.02],[1966,2704.07],[1967,2878.91],[1968,3158.66],[1969,3350.19],[1970,3765.12],[1971,3885.88],[1972,4129.49],[1973,4531.31],[1974,4952.55],[1975,5853.62],[1976,6726.43],[1977,7348.86],[1978,7939.8],[1979,8586.64],[1980,9104.22],[1981,9401.68],[1982,9683.25],[1983,9751.66],[1984,10018.26],[1985,10476.97],[1986,10774.4],[1987,11105.43],[1988,11937.83],[1989,12805.72],[1990,13494.44],[1991,14216.34],[1992,14745.52],[1993,15256.63],[1994,15975.12],[1995,16779.82],[1996,17357.5],[1997,18048.17],[1998,18581.03],[1999,19172.83],[2000,20276.2],[2001,19797.46],[2002,20162.83],[2003,19966.69],[2004,19874],[2005,20410],[2006,21003.11],[2007,21666.88],[2008,21934.71],[2009,21327.85]],"population":[[1800,134072],[1820,134072],[1950,311973],[1951,312646],[1952,316619],[1953,317248],[1954,319787],[1955,314369],[1956,314066],[1957,318779],[1958,321940],[1959,324842],[1960,328517],[1961,328854],[1962,329011],[1963,328116],[1964,323591],[1965,319164],[1966,317482],[1967,318573],[1968,319254],[1969,322749],[1970,325569],[1971,325468],[1972,319430],[1973,321838],[1974,323524],[1975,327842],[1976,329354],[1977,332066],[1978,339786],[1979,346876],[1980,364001],[1981,363652],[1982,360222],[1983,355773],[1984,351379],[1985,347039],[1986,346625],[1987,349047],[1988,351951],[1989,355323],[1990,359107],[1991,362579],[1992,365897],[1993,370008],[1994,373606],[1995,376893],[1996,379962],[1997,382953],[1998,385608],[1999,387799],[2000,389947],[2001,391873],[2002,393515],[2003,395178],[2004,396851],[2005,398534],[2006,400214],[2007,401880],[2008,403532]],"lifeExpectancy":[[1950,64.7],[1951,65.04],[1952,65.7],[1953,66.29],[1954,66.81],[1955,67.27],[1956,67.66],[1957,67.99],[1958,68.26],[1959,68.48],[1960,68.64],[1961,68.77],[1962,68.88],[1963,68.96],[1964,69.05],[1965,69.15],[1966,69.26],[1967,69.4],[1968,69.57],[1969,69.76],[1970,69.98],[1971,70.23],[1972,70.5],[1973,70.79],[1974,71.09],[1975,71.39],[1976,71.69],[1977,71.99],[1978,72.29],[1979,72.58],[1980,72.86],[1981,73.14],[1982,73.43],[1983,73.72],[1984,74.01],[1985,74.31],[1986,74.6],[1987,74.89],[1988,75.16],[1989,75.43],[1990,75.68],[1991,75.93],[1992,76.16],[1993,76.39],[1994,76.61],[1995,76.83],[1996,77.07],[1997,77.31],[1998,77.55],[1999,77.81],[2000,78.06],[2001,78.32],[2002,78.57],[2003,78.81],[2004,79.04],[2005,79.25],[2006,79.44],[2007,79.61],[2008,79.77],[2009,79.91]]},{"name":"Moldova","region":"Europe & Central Asia","income":[[1800,617.12],[1820,630.11],[1913,1404.57],[1950,2752.3],[1973,4267.57],[1990,4903.83],[1991,4018.45],[1992,2839.94],[1993,2798.54],[1994,1932.28],[1995,1906.77],[1996,1797.92],[1997,1830.29],[1998,1713.62],[1999,1656.77],[2000,1692.09],[2001,1794.94],[2002,1933.65],[2003,2053.17],[2004,2201.64],[2005,2362],[2006,2482.25],[2007,2562.96],[2008,2769.37],[2009,2593.42]],"population":[[1800,712558],[1820,712558],[1950,2336432],[1951,2422094],[1952,2466740],[1953,2505504],[1954,2565909],[1955,2622424],[1956,2682168],[1957,2758940],[1958,2838489],[1959,2919316],[1960,2998981],[1961,3068962],[1962,3136438],[1963,3204914],[1964,3271001],[1965,3333549],[1966,3394160],[1967,3452263],[1968,3505944],[1969,3549420],[1970,3594517],[1971,3648754],[1972,3703001],[1973,3752827],[1974,3800643],[1975,3846519],[1976,3885894],[1977,3920281],[1978,3947422],[1979,3969989],[1980,3996278],[1981,4026204],[1982,4055086],[1983,4082711],[1984,4113243],[1985,4148172],[1986,4183283],[1987,4216682],[1988,4289659],[1989,4359496],[1990,4397798],[1991,4427569],[1992,4448083],[1993,4459725],[1994,4463208],[1995,4459595],[1996,4450539],[1997,4441779],[1998,4435827],[1999,4432040],[2000,4430654],[2001,4431570],[2002,4434547],[2003,4439502],[2004,4446455],[2005,4455421],[2006,4466706],[2007,4480560],[2008,4496774]],"lifeExpectancy":[[1950,57.46],[1951,57.71],[1952,58.18],[1953,58.64],[1954,59.08],[1955,59.51],[1956,59.91],[1957,60.3],[1958,60.68],[1959,61.05],[1960,61.42],[1961,61.79],[1962,62.18],[1963,62.57],[1964,62.96],[1965,63.35],[1966,63.7],[1967,64.02],[1968,64.28],[1969,64.49],[1970,64.65],[1971,64.75],[1972,64.81],[1973,64.84],[1974,64.85],[1975,64.84],[1976,64.81],[1977,64.75],[1978,64.69],[1979,64.63],[1980,64.62],[1981,64.7],[1982,64.89],[1983,65.2],[1984,65.6],[1985,66.05],[1986,66.52],[1987,66.93],[1988,67.26],[1989,67.47],[1990,67.56],[1991,67.51],[1992,67.38],[1993,67.2],[1994,66.99],[1995,66.79],[1996,66.64],[1997,66.55],[1998,66.54],[1999,66.61],[2000,66.76],[2001,66.97],[2002,67.21],[2003,67.45],[2004,67.7],[2005,67.92],[2006,68.13],[2007,68.33],[2008,68.53],[2009,68.72]]},{"name":"Montenegro","region":"Europe & Central Asia","income":[[1800,1112.36],[1820,1135.69],[1870,1094.96],[1890,1541.03],[1900,1648.83],[1910,1932.02],[1913,1932.07],[1920,1885.06],[1921,1903.65],[1922,1931.67],[1923,2003.48],[1924,2116.99],[1925,2189.64],[1926,2309.38],[1927,2239.71],[1928,2402.38],[1929,2493.64],[1930,2410.08],[1931,2304.64],[1932,2061.47],[1933,2096.4],[1934,2144.62],[1935,2083.35],[1936,2321.65],[1937,2327.82],[1938,2479.52],[1939,2580.67],[1947,2404.62],[1948,2830.52],[1949,3067.99],[1950,2835.13],[1951,2908.57],[1952,2647.59],[1953,3002.87],[1954,3129.38],[1955,3285.44],[1956,3183.95],[1957,3682.26],[1958,3802.04],[1959,4229.43],[1960,4454.8],[1961,4609.27],[1962,4649.59],[1963,5084.01],[1964,5518.98],[1965,5612.9],[1966,5858.72],[1967,5907.85],[1968,5981.88],[1969,6598.61],[1970,6863.11],[1971,7587.59],[1972,7778.41],[1973,7970.89],[1974,8919.26],[1975,8840.85],[1976,9028.63],[1977,9595.93],[1978,10037.73],[1979,10636.13],[1980,11083.46],[1981,11213.04],[1982,11222.59],[1983,11255.65],[1984,11477.63],[1985,11509.84],[1986,11921.35],[1987,11732.51],[1988,11516.46],[1989,11320.83],[1990,10455.67],[1991,9245.92],[1992,7003.34],[1993,4393.42],[1994,4398.21],[1995,4947.29],[1996,6193.74],[1997,6465.61],[1998,6637.47],[1999,6013.14],[2000,6185.69],[2001,6311.82],[2002,6557.19],[2003,6892.3],[2004,7374.97],[2005,7833],[2006,10315.88],[2007,11428.36],[2008,12257.79]],"population":[[1800,126582],[1820,126582],[1950,395587],[1951,405216],[1952,413834],[1953,419454],[1954,425065],[1955,431658],[1956,437249],[1957,442829],[1958,448399],[1959,454949],[1960,461487],[1961,468013],[1962,474528],[1963,480046],[1964,486538],[1965,491051],[1966,496539],[1967,501035],[1968,505522],[1969,510001],[1970,514472],[1971,519914],[1972,527678],[1973,534461],[1974,542221],[1975,549000],[1976,554552],[1977,560073],[1978,565561],[1979,571018],[1980,560000],[1981,560090],[1982,562548],[1983,565705],[1984,558389],[1985,560562],[1986,564558],[1987,569473],[1988,574401],[1989,578981],[1990,583202],[1991,590872],[1992,621621],[1993,635875],[1994,653213],[1995,670608],[1996,683946],[1997,692651],[1998,701246],[1999,720412],[2000,732302],[2001,726462],[2002,720230],[2003,713614],[2004,706577],[2005,699259],[2006,691871],[2007,684736],[2008,678177],[2009,672180]],"lifeExpectancy":[[1800,35.4],[1920,35.4],[1950,58.22],[1951,58.47],[1952,58.95],[1953,59.42],[1954,59.88],[1955,60.33],[1956,60.77],[1957,61.2],[1958,61.62],[1959,62.06],[1960,62.51],[1961,63],[1962,63.52],[1963,64.1],[1964,64.72],[1965,65.38],[1966,66.09],[1967,66.82],[1968,67.56],[1969,68.29],[1970,69],[1971,69.69],[1972,70.34],[1973,70.96],[1974,71.54],[1975,72.05],[1976,72.5],[1977,72.89],[1978,73.23],[1979,73.51],[1980,73.74],[1981,73.93],[1982,74.09],[1983,74.23],[1984,74.37],[1985,74.52],[1986,74.69],[1987,74.89],[1988,75.11],[1989,75.34],[1990,75.56],[1991,75.75],[1992,75.9],[1993,75.97],[1994,75.98],[1995,75.91],[1996,75.77],[1997,75.58],[1998,75.36],[1999,75.13],[2000,74.89],[2001,74.66],[2002,74.44],[2003,74.25],[2004,74.09],[2005,74],[2006,73.98],[2007,74.03],[2008,74.15],[2009,74.34]]},{"name":"Netherlands","region":"Europe & Central Asia","income":[[1800,2412.43],[1801,2410.19],[1802,2407.94],[1803,2405.7],[1804,2403.46],[1805,2401.22],[1806,2398.98],[1807,2396.75],[1808,2140.32],[1809,2115.41],[1810,2430.6],[1811,2463.51],[1812,2148.66],[1813,1937.55],[1814,1872.82],[1815,2485.36],[1816,2369.94],[1817,2397.3],[1818,2439.55],[1819,2329.64],[1820,2501.29],[1821,2446.72],[1822,2465.54],[1823,2584.47],[1824,2562.02],[1825,2492.15],[1826,2527.58],[1827,2672.71],[1828,2726.07],[1829,2726.1],[1830,2484.29],[1831,2665.82],[1832,2786.45],[1833,2719.09],[1834,2738.8],[1835,2726.17],[1836,2812.27],[1837,2874.01],[1838,2899.55],[1839,2893.62],[1840,2916.68],[1841,2940.77],[1842,2863.66],[1843,2808.67],[1844,2830.48],[1845,2805.03],[1846,2805.07],[1847,2819.16],[1848,2860.82],[1849,2941.02],[1850,2991.96],[1851,3030.22],[1852,2990.41],[1853,2917.71],[1854,3091.87],[1855,3002.04],[1856,3117.88],[1857,3057.96],[1858,2968.78],[1859,2857.73],[1860,2990.17],[1861,2902.77],[1862,3012.98],[1863,3064.49],[1864,3181.52],[1865,3182.08],[1866,3296.34],[1867,3177.69],[1868,3192],[1869,3290.79],[1870,3390.1],[1871,3358.03],[1872,3384.07],[1873,3442.73],[1874,3302.9],[1875,3481.91],[1876,3479],[1877,3509.16],[1878,3487.48],[1879,3305.83],[1880,3485.25],[1881,3494.5],[1882,3531.33],[1883,3739.93],[1884,3751.79],[1885,3777.75],[1886,3779.03],[1887,3816.41],[1888,3809.49],[1889,3884.11],[1890,3672.78],[1891,3628.37],[1892,3685.88],[1893,3593.38],[1894,3745.99],[1895,3708.29],[1896,3801.33],[1897,3832.52],[1898,3827.14],[1899,3818.28],[1900,3713.31],[1901,3826.9],[1902,3917.61],[1903,3843.64],[1904,3828.61],[1905,3951.5],[1906,3963.17],[1907,3826.46],[1908,3838.51],[1909,3979.81],[1910,4088.22],[1911,4188.72],[1912,4263.1],[1913,4422.05],[1914,4314.78],[1915,4098.55],[1916,4042.31],[1917,3588.65],[1918,3331.55],[1919,3716.74],[1920,4230.58],[1921,4958.89],[1922,5218.13],[1923,5261.95],[1924,5563.92],[1925,5681.74],[1926,6000.34],[1927,6211.6],[1928,6408.23],[1929,6457.97],[1930,6309.26],[1931,6009.03],[1932,5868.27],[1933,5827.76],[1934,5713.9],[1935,5822.82],[1936,6105.71],[1937,6414.44],[1938,6177.32],[1939,6641.98],[1940,5796.49],[1941,5449.65],[1942,4950.39],[1943,4813.35],[1944,3201.78],[1945,3255.32],[1946,5458.49],[1947,6215.75],[1948,6792.51],[1949,7196.12],[1950,7407.85],[1951,7498.82],[1952,7564.17],[1953,8144.21],[1954,8638.54],[1955,9170.54],[1956,9494.99],[1957,9690.89],[1958,9482.82],[1959,9823.19],[1960,10620.98],[1961,10822.2],[1962,11167.47],[1963,11420.64],[1964,12287.88],[1965,12809.27],[1966,13041.3],[1967,13626.76],[1968,14442.49],[1969,15304.9],[1970,16036.47],[1971,16602.54],[1972,16935.57],[1973,17681.37],[1974,18324.6],[1975,18255.08],[1976,18992.14],[1977,19415.07],[1978,19842.47],[1979,20126.43],[1980,20372.21],[1981,20194.33],[1982,19900.97],[1983,20247.92],[1984,20861.01],[1985,21393.33],[1986,22007.79],[1987,22345.03],[1988,23032.6],[1989,23982.73],[1990,24902.12],[1991,25383.24],[1992,25713.88],[1993,25958.69],[1994,26648.08],[1995,27423.96],[1996,28344.59],[1997,29491.94],[1998,30566.5],[1999,31895.29],[2000,33000.17],[2001,33482.67],[2002,33406.92],[2003,33454.56],[2004,34181.87],[2005,34724],[2006,35845.52],[2007,36535.43],[2008,37069.42],[2009,36074.53]],"population":[[1820,2333000],[1821,2365000],[1822,2400000],[1823,2435000],[1824,2474000],[1825,2514000],[1826,2543000],[1827,2561000],[1828,2585000],[1829,2610000],[1830,2633000],[1831,2653000],[1832,2665000],[1833,2683000],[1834,2707000],[1835,2732000],[1836,2762000],[1837,2791000],[1838,2821000],[1839,2853000],[1840,2886000],[1841,2921000],[1842,2952000],[1843,2981000],[1844,3014000],[1845,3047000],[1846,3069000],[1847,3071000],[1848,3069000],[1849,3076000],[1850,3098000],[1851,3133000],[1852,3167000],[1853,3194000],[1854,3218000],[1855,3235000],[1856,3253000],[1857,3277000],[1858,3294000],[1859,3304000],[1860,3318000],[1861,3340000],[1862,3366000],[1863,3397000],[1864,3431000],[1865,3460000],[1866,3484000],[1867,3510000],[1868,3543000],[1869,3575000],[1870,3610000],[1871,3636000],[1872,3662000],[1873,3670000],[1874,3745000],[1875,3788000],[1876,3832000],[1877,3883000],[1878,3834000],[1879,3986000],[1880,4043000],[1881,4079000],[1882,4130000],[1883,4180000],[1884,4226000],[1885,4276000],[1886,4326000],[1887,4378000],[1888,4432000],[1889,4485000],[1890,4535000],[1891,4585000],[1892,4632000],[1893,4684000],[1894,4743000],[1895,4803000],[1896,4866000],[1897,4935000],[1898,5003000],[1899,5070000],[1900,5142000],[1901,5221000],[1902,5305000],[1903,5389000],[1904,5470000],[1905,5551000],[1906,5632000],[1907,5710000],[1908,5786000],[1909,5862000],[1910,5922000],[1911,5984000],[1912,6068000],[1913,6164000],[1914,6277000],[1915,6395000],[1916,6516000],[1917,6654000],[1918,6752000],[1919,6805000],[1920,6848000],[1921,6921000],[1922,7032000],[1923,7150000],[1924,7264000],[1925,7366000],[1926,7471000],[1927,7576000],[1928,7679000],[1929,7782000],[1930,7884000],[1931,7999000],[1932,8123000],[1933,8237000],[1934,8341000],[1935,8434000],[1936,8516000],[1937,8599000],[1938,8685000],[1939,8782000],[1940,8879000],[1941,8966000],[1942,9042000],[1943,9103000],[1944,9175000],[1945,9262000],[1946,9424000],[1947,9630000],[1948,9800000],[1949,9956000],[1950,10113527],[1951,10264311],[1952,10381988],[1953,10493184],[1954,10615380],[1955,10750842],[1956,10889351],[1957,11026383],[1958,11186875],[1959,11347639],[1960,11486000],[1961,11638713],[1962,11805689],[1963,11965966],[1964,12127120],[1965,12292000],[1966,12454800],[1967,12596822],[1968,12724680],[1969,12873000],[1970,13032335],[1971,13193776],[1972,13329874],[1973,13438404],[1974,13540584],[1975,13653438],[1976,13769913],[1977,13852989],[1978,13936754],[1979,14030002],[1980,14143901],[1981,14246049],[1982,14310401],[1983,14362381],[1984,14420022],[1985,14491380],[1986,14571875],[1987,14665278],[1988,14761339],[1989,14848907],[1990,14951510],[1991,15066220],[1992,15174244],[1993,15274942],[1994,15382198],[1995,15459054],[1996,15527809],[1997,15604464],[1998,15699259],[1999,15801947],[2000,15907853],[2001,16017445],[2002,16122830],[2003,16223248],[2004,16318199],[2005,16407491],[2006,16491461],[2007,16570613],[2008,16645313]],"lifeExpectancy":[[1800,39.86],[1850,39.86],[1851,40],[1852,38.66],[1853,38.63],[1854,38.63],[1855,34.53],[1856,38.39],[1857,35.46],[1858,34.66],[1859,30.86],[1860,36.91],[1861,36.44],[1862,38.28],[1863,38.33],[1864,37.56],[1865,36.37],[1866,33.64],[1867,39.31],[1868,37.75],[1869,40.47],[1870,37.34],[1871,32.94],[1872,36.49],[1873,39.2],[1874,41.3],[1875,38.24],[1876,40.35],[1877,42.03],[1878,41.1],[1879,41.96],[1880,40.39],[1881,42.87],[1882,43.79],[1883,42.35],[1884,41.34],[1885,43.3],[1886,41.98],[1887,44.99],[1888,44.22],[1889,44.35],[1890,44.4],[1891,44.25],[1892,43.95],[1893,45.8],[1894,46.93],[1895,46.64],[1896,48.56],[1897,49.36],[1898,49.03],[1899,49.35],[1900,48.4],[1901,48.72],[1902,50.61],[1903,51.51],[1904,50.9],[1905,52.11],[1906,52.78],[1907,53.54],[1908,52.76],[1909,54.96],[1910,55.14],[1911,53.17],[1912,57.21],[1913,57.37],[1914,57.2],[1915,57.22],[1916,56.16],[1917,55.67],[1918,47.61],[1919,54.98],[1920,57.84],[1921,59.77],[1922,59.84],[1923,62.06],[1924,62.97],[1925,63.18],[1926,63.04],[1927,62.65],[1928,63.74],[1929,62.19],[1930,64.73],[1931,64.35],[1932,65.44],[1933,66.08],[1934,66.62],[1935,66.54],[1936,66.76],[1937,66.98],[1938,67.4],[1939,67.73],[1940,65.4],[1941,65.33],[1942,65.84],[1943,64.43],[1944,61.26],[1945,55.45],[1946,67.58],[1947,69.53],[1948,71.05],[1949,70.28],[1950,71.45],[1951,71.51],[1952,72.13],[1953,71.71],[1954,72.4],[1955,72.52],[1956,72.54],[1957,72.99],[1958,73.15],[1959,73.19],[1960,73.37],[1961,73.56],[1962,73.23],[1963,73.35],[1964,73.73],[1965,73.6],[1966,73.55],[1967,73.82],[1968,73.63],[1969,73.54],[1970,73.6],[1971,73.84],[1972,73.75],[1973,74.2],[1974,74.59],[1975,74.52],[1976,74.65],[1977,75.24],[1978,75.15],[1979,75.63],[1980,75.76],[1981,75.97],[1982,76.05],[1983,76.25],[1984,76.32],[1985,76.38],[1986,76.36],[1987,76.83],[1988,77.03],[1989,76.87],[1990,77.05],[1991,77.21],[1992,77.42],[1993,77.11],[1994,77.6],[1995,77.64],[1996,77.65],[1997,78.03],[1998,78.12],[1999,78.07],[2000,78.24],[2001,78.45],[2002,78.53],[2003,78.79],[2004,79.38],[2005,79.65],[2006,80],[2007,79.82],[2008,80.02],[2009,80.19]]},{"name":"Norway","region":"Europe & Central Asia","income":[[1800,950],[1820,978],[1821,984],[1822,990],[1823,996],[1824,1002],[1825,1008],[1826,1014],[1827,1020],[1828,1026],[1829,1032],[1830,1038],[1831,957],[1832,971],[1833,1080],[1834,1130],[1835,1107],[1836,1077],[1837,1080],[1838,1085],[1839,1086],[1840,1185],[1841,1208],[1842,1216],[1843,1190],[1844,1213],[1845,1267],[1846,1291],[1847,1242],[1848,1175],[1849,1206],[1850,1236],[1851,1313],[1852,1301],[1853,1362],[1854,1401],[1855,1472],[1856,1444],[1857,1365],[1858,1416],[1859,1446],[1860,1498],[1861,1457],[1862,1584],[1863,1589],[1864,1649],[1865,1720],[1866,1737],[1867,1774],[1868,1767],[1869,1834],[1870,1826],[1871,1851],[1872,1964],[1873,2001],[1874,2062],[1875,2103],[1876,2136],[1877,2129],[1878,2031],[1879,2026],[1880,2077],[1881,2096],[1882,2099],[1883,2096],[1884,2127],[1885,2134],[1886,2134],[1887,2152],[1888,2249],[1889,2332],[1890,2385],[1891,2393],[1892,2428],[1893,2482],[1894,2479],[1895,2482],[1896,2523],[1897,2624],[1898,2612],[1899,2661],[1900,2668],[1901,2709],[1902,2732],[1903,2705],[1904,2704],[1905,2716],[1906,2822],[1907,2937],[1908,3014],[1909,3058],[1910,3168],[1911,3274],[1912,3410],[1913,3566],[1914,3610],[1915,3737],[1916,3852],[1917,3468],[1918,3300],[1919,3836],[1920,4045],[1921,3615],[1922,3970],[1923,4058],[1924,4041],[1925,4269],[1926,4316],[1927,4469],[1928,4658],[1929,5089],[1930,5460],[1931,5012],[1932,5238],[1933,5350],[1934,5518],[1935,5774],[1936,6144],[1937,6396],[1938,6514],[1939,6800],[1940,6195],[1941,6322],[1942,6049],[1943,5895],[1944,5546],[1945,6164],[1946,6728],[1947,7563],[1948,8013],[1949,8158],[1950,8490],[1951,8884],[1952,9126],[1953,9413],[1954,9809],[1955,9948],[1956,10400],[1957,10636],[1958,10562],[1959,10936],[1960,11481],[1961,12127],[1962,12393],[1963,12794],[1964,13355],[1965,13982],[1966,14421],[1967,15220],[1968,15456],[1969,16050],[1970,16289],[1971,17044],[1972,17810],[1973,18501],[1974,19194],[1975,20125],[1976,21246],[1977,22101],[1978,22828],[1979,23815],[1980,24961],[1981,25164],[1982,25172],[1983,26036],[1984,27549],[1985,28950],[1986,29947],[1987,30478],[1988,30359],[1989,30581],[1990,31162],[1991,32200],[1992,33135],[1993,33900],[1994,35547],[1995,36975],[1996,38795],[1997,40659],[1998,41358],[1999,42008],[2000,43174],[2001,43888],[2002,44429],[2003,44767],[2004,46387],[2005,47551],[2006,48218],[2007,49013],[2008,49221],[2009,47915]],"population":[[1820,970000],[1821,984000],[1822,998000],[1823,1013000],[1824,1028000],[1825,1044000],[1826,1062000],[1827,1079000],[1828,1093000],[1829,1108000],[1830,1124000],[1831,1137000],[1832,1150000],[1833,1163000],[1834,1174000],[1835,1188000],[1836,1202000],[1837,1214000],[1838,1224000],[1839,1233000],[1840,1241000],[1841,1254000],[1842,1271000],[1843,1286000],[1844,1302000],[1845,1319000],[1846,1337000],[1847,1351000],[1848,1363000],[1849,1377000],[1850,1392000],[1851,1409000],[1852,1425000],[1853,1440000],[1854,1457000],[1855,1479000],[1856,1501000],[1857,1521000],[1858,1543000],[1859,1570000],[1860,1596000],[1861,1614000],[1862,1627000],[1863,1646000],[1864,1668000],[1865,1690000],[1866,1707000],[1867,1716000],[1868,1724000],[1869,1729000],[1870,1735000],[1871,1745000],[1872,1755000],[1873,1767000],[1874,1783000],[1875,1803000],[1876,1829000],[1877,1852000],[1878,1877000],[1879,1902000],[1880,1919000],[1881,1923000],[1882,1920000],[1883,1919000],[1884,1929000],[1885,1944000],[1886,1958000],[1887,1970000],[1888,1977000],[1889,1984000],[1890,1997000],[1891,2013000],[1892,2026000],[1893,2038000],[1894,2057000],[1895,2083000],[1896,2112000],[1897,2142000],[1898,2174000],[1899,2204000],[1900,2230000],[1901,2255000],[1902,2275000],[1903,2288000],[1904,2297000],[1905,2309000],[1906,2319000],[1907,2329000],[1908,2346000],[1909,2367000],[1910,2384000],[1911,2401000],[1912,2423000],[1913,2447000],[1914,2472000],[1915,2498000],[1916,2522000],[1917,2551000],[1918,2578000],[1919,2603000],[1920,2635000],[1921,2668000],[1922,2695000],[1923,2713000],[1924,2729000],[1925,2747000],[1926,2763000],[1927,2775000],[1928,2785000],[1929,2795000],[1930,2807000],[1931,2824000],[1932,2842000],[1933,2858000],[1934,2874000],[1935,2889000],[1936,2904000],[1937,2919000],[1938,2936000],[1939,2954000],[1940,2973000],[1941,2990000],[1942,3009000],[1943,3032000],[1944,3060000],[1945,3091000],[1946,3127000],[1947,3165000],[1948,3201000],[1949,3234000],[1950,3265126],[1951,3295871],[1952,3327728],[1953,3360888],[1954,3394246],[1955,3427409],[1956,3459992],[1957,3491938],[1958,3522993],[1959,3552851],[1960,3581239],[1961,3609800],[1962,3638919],[1963,3666540],[1964,3694339],[1965,3723153],[1966,3753628],[1967,3786019],[1968,3818983],[1969,3850977],[1970,3877386],[1971,3903039],[1972,3933004],[1973,3960613],[1974,3985258],[1975,4007313],[1976,4026152],[1977,4043205],[1978,4058671],[1979,4072517],[1980,4085620],[1981,4099702],[1982,4114787],[1983,4128432],[1984,4140095],[1985,4152419],[1986,4166596],[1987,4186147],[1988,4208729],[1989,4226142],[1990,4242006],[1991,4261733],[1992,4286357],[1993,4311964],[1994,4336638],[1995,4359101],[1996,4381277],[1997,4405672],[1998,4432718],[1999,4463377],[2000,4492400],[2001,4515195],[2002,4535591],[2003,4555400],[2004,4574560],[2005,4593041],[2006,4610820],[2007,4627926],[2008,4644457]],"lifeExpectancy":[[1800,38.8],[1815,38.8],[1846,48.05],[1847,44.77],[1848,45.02],[1849,48.05],[1850,49.53],[1851,49.74],[1852,48.46],[1853,47.92],[1854,51.65],[1855,50.44],[1856,50.37],[1857,50.22],[1858,51.59],[1859,49.93],[1860,50],[1861,45.81],[1862,44.7],[1863,46.71],[1864,48.78],[1865,50.42],[1866,49.92],[1867,47.87],[1868,47.16],[1869,49.25],[1870,50.86],[1871,49.69],[1872,50.02],[1873,49.67],[1874,47.77],[1875,47.64],[1876,46.83],[1877,49.77],[1878,51.79],[1879,53.18],[1880,51.91],[1881,50.47],[1882,47.4],[1883,49.64],[1884,50.8],[1885,51.06],[1886,51.72],[1887,51.69],[1888,50.38],[1889,49.06],[1890,48.6],[1891,49.79],[1892,49.68],[1893,51.41],[1894,50.62],[1895,52.8],[1896,53.84],[1897,53.73],[1898,53.96],[1899,51.62],[1900,53.47],[1901,54.59],[1902,56.49],[1903,54.98],[1904,56.09],[1905,55.1],[1906,56.91],[1907,56.49],[1908,56.31],[1909,57.47],[1910,57.99],[1911,58.04],[1912,57.75],[1913,58.32],[1914,57.82],[1915,58.17],[1916,57.25],[1917,57.75],[1918,50.3],[1919,56.82],[1920,58.89],[1921,61.61],[1922,60.79],[1923,61.81],[1924,62.12],[1925,62.52],[1926,63.26],[1927,62.87],[1928,63.4],[1929,62.47],[1930,64.11],[1931,64.14],[1932,64.61],[1933,65.49],[1934,66.22],[1935,65.84],[1936,65.84],[1937,66.04],[1938,67.09],[1939,67.36],[1940,65.89],[1941,65.77],[1942,65.68],[1943,66.12],[1944,65.8],[1945,68.19],[1946,69.51],[1947,70.01],[1948,71.13],[1949,71.53],[1950,71.6],[1951,72.54],[1952,72.67],[1953,73.15],[1954,73.23],[1955,73.44],[1956,73.49],[1957,73.44],[1958,73.43],[1959,73.56],[1960,73.58],[1961,73.59],[1962,73.47],[1963,73.11],[1964,73.61],[1965,73.73],[1966,74.01],[1967,74.08],[1968,73.96],[1969,73.67],[1970,74.08],[1971,74.18],[1972,74.34],[1973,74.43],[1974,74.75],[1975,74.8],[1976,75.03],[1977,75.37],[1978,75.4],[1979,75.39],[1980,75.65],[1981,75.84],[1982,75.97],[1983,76.03],[1984,76.19],[1985,75.9],[1986,76.04],[1987,75.89],[1988,75.99],[1989,76.33],[1990,76.41],[1991,76.93],[1992,77.32],[1993,77.28],[1994,77.86],[1995,77.89],[1996,78.31],[1997,78.32],[1998,78.49],[1999,78.47],[2000,78.76],[2001,78.98],[2002,79.05],[2003,79.61],[2004,80.06],[2005,80.29],[2006,80.55],[2007,80.61],[2008,80.67],[2009,80.85]]},{"name":"Poland","region":"Europe & Central Asia","income":[[1800,1198.39],[1820,1290.47],[1821,1294.57],[1822,1298.67],[1823,1302.79],[1824,1306.92],[1825,1311.07],[1826,1315.22],[1827,1319.4],[1828,1323.58],[1829,1327.78],[1830,1331.99],[1831,1336.21],[1832,1340.45],[1833,1344.7],[1834,1348.97],[1835,1353.24],[1836,1357.54],[1837,1361.84],[1838,1366.16],[1839,1370.49],[1840,1374.84],[1841,1379.2],[1842,1383.57],[1843,1387.96],[1844,1392.36],[1845,1396.78],[1846,1401.21],[1847,1405.65],[1848,1410.11],[1849,1414.58],[1850,1419.07],[1851,1423.57],[1852,1428.09],[1853,1432.61],[1854,1437.16],[1855,1441.72],[1856,1446.29],[1857,1450.88],[1858,1455.48],[1859,1460.09],[1860,1464.72],[1861,1469.37],[1862,1474.03],[1863,1478.7],[1864,1483.39],[1865,1488.1],[1866,1492.82],[1867,1497.55],[1868,1502.3],[1869,1507.07],[1870,1511.84],[1871,1535.12],[1872,1558.75],[1873,1582.74],[1874,1607.11],[1875,1631.85],[1876,1656.97],[1877,1682.47],[1878,1708.37],[1879,1734.67],[1880,1761.37],[1881,1788.49],[1882,1816.02],[1883,1843.97],[1884,1872.36],[1885,1901.18],[1886,1930.45],[1887,1960.16],[1888,1990.34],[1889,2020.98],[1890,2052.09],[1891,2089.19],[1892,2126.96],[1893,2165.42],[1894,2204.57],[1895,2244.43],[1896,2285.01],[1897,2326.32],[1898,2368.38],[1899,2411.2],[1900,2454.79],[1901,2478.36],[1902,2502.15],[1903,2526.17],[1904,2550.42],[1905,2574.9],[1906,2599.62],[1907,2624.58],[1908,2649.77],[1909,2675.21],[1910,2700.89],[1911,2726.76],[1912,2752.88],[1913,2779.24],[1914,2813.64],[1915,2848.47],[1916,2883.73],[1917,2919.43],[1918,2955.56],[1919,2992.15],[1920,3029.19],[1921,3066.68],[1922,3104.64],[1923,3143.07],[1924,3181.98],[1925,3221.37],[1926,3261.24],[1927,3301.61],[1928,3342.48],[1929,3383.85],[1930,3187.21],[1931,2914.14],[1932,2649.16],[1933,2540.64],[1934,2546.64],[1935,2551.83],[1936,2596.46],[1937,3061.3],[1938,3487.75],[1939,3750.1],[1940,3174.55],[1941,2892.29],[1942,2543.47],[1943,2391.53],[1944,1536.58],[1945,1588.31],[1946,2706.91],[1947,3132.14],[1948,3477.09],[1949,3741.25],[1950,3910.56],[1951,4011.8],[1952,4029.33],[1953,4183.46],[1954,4338.68],[1955,4464.95],[1956,4576.69],[1957,4734.25],[1958,4885.49],[1959,4948.3],[1960,5137.59],[1961,5475.68],[1962,5338.75],[1963,5597.46],[1964,5788.41],[1965,6052.03],[1966,6378.94],[1967,6557.15],[1968,6900.04],[1969,6778.28],[1970,7076.39],[1971,7522.54],[1972,8006.51],[1973,8533.52],[1974,8950.74],[1975,9281.98],[1976,9421.88],[1977,9508.14],[1978,9766.19],[1979,9496.48],[1980,9173.32],[1981,8606.55],[1982,8451.53],[1983,8786.11],[1984,9030.45],[1985,9046.3],[1986,9263.85],[1987,9082.35],[1988,9252.06],[1989,9083.71],[1990,8172.11],[1991,7572.21],[1992,7738.88],[1993,8007.93],[1994,8414.16],[1995,8986.89],[1996,9518.9],[1997,10159.58],[1998,10716.13],[1999,11208.8],[2000,11680.79],[2001,11825.87],[2002,12002.24],[2003,12472.53],[2004,13146.01],[2005,13573],[2006,14427.4],[2007,15414.7],[2008,16185.04],[2009,16465.8]],"population":[[1820,10426000],[1850,13000000],[1870,16865000],[1890,22854000],[1900,24750000],[1910,26644000],[1913,26710000],[1920,23968000],[1921,24330000],[1922,24935000],[1923,25569000],[1924,25992000],[1925,26425000],[1926,26815000],[1927,27148000],[1928,27509000],[1929,27856000],[1930,28204000],[1931,28615000],[1932,29022000],[1933,29421000],[1934,29771000],[1935,30129000],[1936,30471000],[1937,30791000],[1938,31062000],[1939,31365000],[1940,30021000],[1946,23959000],[1947,23734000],[1948,23980000],[1949,24410000],[1950,24824000],[1951,25262265],[1952,25730551],[1953,26221264],[1954,26715134],[1955,27220668],[1956,27743876],[1957,28235346],[1958,28692576],[1959,29152334],[1960,29589842],[1961,29978949],[1962,30329617],[1963,30662122],[1964,30975520],[1965,31262358],[1966,31532016],[1967,31785378],[1968,32034813],[1969,32280848],[1970,32526000],[1971,32777810],[1972,33039545],[1973,33331131],[1974,33642890],[1975,33969240],[1976,34299428],[1977,34621254],[1978,34929072],[1979,35256645],[1980,35578016],[1981,35901961],[1982,36227381],[1983,36571418],[1984,36904134],[1985,37225792],[1986,37504275],[1987,37740710],[1988,37866840],[1989,37970155],[1990,38119408],[1991,38253222],[1992,38370697],[1993,38467746],[1994,38548296],[1995,38600642],[1996,38629842],[1997,38654957],[1998,38668756],[1999,38665539],[2000,38654164],[2001,38643641],[2002,38625976],[2003,38602853],[2004,38580445],[2005,38557984],[2006,38536869],[2007,38518241],[2008,38500696]],"lifeExpectancy":[[1800,35.9],[1885,35.9],[1931,49.8],[1950,59.05],[1951,59.65],[1952,60.83],[1953,61.92],[1954,62.93],[1955,63.85],[1956,64.69],[1957,65.45],[1958,65.92],[1959,65.53],[1960,67.86],[1961,67.98],[1962,67.64],[1963,68.57],[1964,68.8],[1965,69.5],[1966,69.91],[1967,69.61],[1968,70.25],[1969,69.74],[1970,69.87],[1971,69.67],[1972,70.85],[1973,70.85],[1974,71.36],[1975,70.77],[1976,70.77],[1977,70.67],[1978,70.6],[1979,70.93],[1980,70.28],[1981,71.26],[1982,71.32],[1983,71.16],[1984,70.9],[1985,70.64],[1986,70.93],[1987,70.98],[1988,71.35],[1989,71.1],[1990,70.75],[1991,70.45],[1992,70.99],[1993,71.51],[1994,71.82],[1995,72.05],[1996,72.39],[1997,72.75],[1998,73.13],[1999,73.18],[2000,73.91],[2001,74.33],[2002,74.67],[2003,74.85],[2004,75.02],[2005,75.15],[2006,75.35],[2007,75.52],[2008,75.68],[2009,75.84]]},{"name":"Portugal","region":"Europe & Central Asia","income":[[1800,1284.41],[1820,1310.25],[1821,1310.27],[1822,1310.3],[1823,1310.32],[1824,1310.35],[1825,1310.37],[1826,1310.39],[1827,1310.42],[1828,1310.44],[1829,1310.47],[1830,1310.49],[1831,1310.52],[1832,1310.54],[1833,1310.57],[1834,1310.59],[1835,1310.62],[1836,1310.64],[1837,1310.67],[1838,1310.69],[1839,1310.71],[1840,1310.74],[1841,1310.76],[1842,1310.79],[1843,1310.81],[1844,1310.84],[1845,1310.86],[1846,1310.89],[1847,1310.91],[1848,1310.94],[1849,1310.96],[1850,1310.99],[1851,1407],[1852,1380.51],[1853,1354.51],[1854,1329],[1855,1303.97],[1856,1295.41],[1857,1286.89],[1858,1278.44],[1859,1270.04],[1860,1261.69],[1861,1253.4],[1862,1256.42],[1863,1259.45],[1864,1262.48],[1865,1265.52],[1866,1305.74],[1867,1335.79],[1868,1341.93],[1869,1368.8],[1870,1384.18],[1871,1324.39],[1872,1354.78],[1873,1402.86],[1874,1371.88],[1875,1361.98],[1876,1322.42],[1877,1375.87],[1878,1368.62],[1879,1361.54],[1880,1344.78],[1881,1377.49],[1882,1408.72],[1883,1431.01],[1884,1467.5],[1885,1493.03],[1886,1561.66],[1887,1581.31],[1888,1586.51],[1889,1544.92],[1890,1601.16],[1891,1560.79],[1892,1543.11],[1893,1562.93],[1894,1531.75],[1895,1586.21],[1896,1596.93],[1897,1677.51],[1898,1723.95],[1899,1772.8],[1900,1848.6],[1901,1801.95],[1902,1796.87],[1903,1807.25],[1904,1815.6],[1905,1750.28],[1906,1746.93],[1907,1773.59],[1908,1730.83],[1909,1715.02],[1910,1743.15],[1911,1762.62],[1912,1783.8],[1913,1774.99],[1914,1785.2],[1915,1742.99],[1916,1751.32],[1917,1721.27],[1918,1632.1],[1919,1665.53],[1920,1745.03],[1921,1831.16],[1922,2029.87],[1923,2091.67],[1924,1989.26],[1925,2052.85],[1926,2014.55],[1927,2338.95],[1928,2087.28],[1929,2285.66],[1930,2229.87],[1931,2315.53],[1932,2331.73],[1933,2458.92],[1934,2532.48],[1935,2368.84],[1936,2161.78],[1937,2494.69],[1938,2480.53],[1939,2482.87],[1940,2292.84],[1941,2479.98],[1942,2425.1],[1943,2564.33],[1944,2686.88],[1945,2560.36],[1946,2736.83],[1947,2939.33],[1948,2904.91],[1949,2919.51],[1950,2961.89],[1951,3077.24],[1952,3068.32],[1953,3262.2],[1954,3397.69],[1955,3513.19],[1956,3639.99],[1957,3774.57],[1958,3793.66],[1959,3966.47],[1960,4196.15],[1961,4428.04],[1962,4727.95],[1963,4974.5],[1964,5278.68],[1965,5667.66],[1966,5911.27],[1967,6361.52],[1968,6918.3],[1969,7079.03],[1970,7769.41],[1971,8334.25],[1972,9022.25],[1973,10026.71],[1974,10005],[1975,9251.92],[1976,9673.53],[1977,10172.49],[1978,10419.96],[1979,10978.31],[1980,11419.72],[1981,11519.39],[1982,11753.84],[1983,11718.43],[1984,11482.99],[1985,11791.3],[1986,12266.89],[1987,13039.31],[1988,14008.38],[1989,14724.11],[1990,15369.31],[1991,16046.61],[1992,16207.27],[1993,15812.16],[1994,15869.43],[1995,16486.84],[1996,17027.45],[1997,17641.03],[1998,18368.52],[1999,18959.84],[2000,19609.73],[2001,19904.87],[2002,19970.91],[2003,19727.84],[2004,19942.44],[2005,20006],[2006,20202.27],[2007,20523.09],[2008,20496.24],[2009,19898.43]],"population":[[1820,3297000],[1821,3316000],[1822,3335000],[1823,3354000],[1824,3373000],[1825,3393000],[1826,3412000],[1827,3432000],[1828,3452000],[1829,3472000],[1830,3491000],[1831,3512000],[1832,3532000],[1833,3552000],[1834,3475000],[1835,3595000],[1836,3617000],[1837,3639000],[1838,3661000],[1839,3683000],[1840,3704000],[1841,3715000],[1842,3726000],[1843,3738000],[1844,3749000],[1845,3760000],[1846,3771000],[1847,3783000],[1848,3794000],[1849,3804000],[1850,3816000],[1851,3827000],[1852,3839000],[1853,3850000],[1854,3858000],[1855,3867000],[1856,3875000],[1857,3889000],[1858,3925000],[1859,3963000],[1860,4000000],[1861,4074000],[1862,4113000],[1863,4131000],[1864,4176000],[1865,4201000],[1866,4226000],[1867,4251000],[1868,4276000],[1869,4302000],[1870,4327000],[1871,4353000],[1872,4379000],[1873,4405000],[1874,4431000],[1875,4458000],[1876,4484000],[1877,4511000],[1878,4538000],[1879,4571000],[1880,4610000],[1881,4651000],[1882,4691000],[1883,4732000],[1884,4773000],[1885,4815000],[1886,4857000],[1887,4899000],[1888,4942000],[1889,4985000],[1890,5028000],[1891,5068000],[1892,5104000],[1893,5141000],[1894,5178000],[1895,5215000],[1896,5252000],[1897,5290000],[1898,5327000],[1899,5366000],[1900,5404000],[1901,5447000],[1902,5494000],[1903,5541000],[1904,5589000],[1905,5637000],[1906,5686000],[1907,5735000],[1908,5784000],[1909,5834000],[1910,5884000],[1911,5935000],[1912,5964000],[1913,5972000],[1914,5980000],[1915,5988000],[1916,5996000],[1917,6005000],[1918,6013000],[1919,6021000],[1920,6029000],[1921,6071000],[1922,6146000],[1923,6223000],[1924,6300000],[1925,6378000],[1926,6457000],[1927,6538000],[1928,6619000],[1929,6701000],[1930,6784000],[1931,6869000],[1932,6954000],[1933,7040000],[1934,7127000],[1935,7216000],[1936,7305000],[1937,7396000],[1938,7488000],[1939,7581000],[1940,7675000],[1941,7757000],[1942,7826000],[1943,7896000],[1944,7967000],[1945,8038000],[1946,8110000],[1947,8183000],[1948,8256000],[1949,8329000],[1950,8442750],[1951,8490250],[1952,8526050],[1953,8578950],[1954,8632100],[1955,8692600],[1956,8756000],[1957,8817650],[1958,8888550],[1959,8961550],[1960,9036700],[1961,9031200],[1962,9019800],[1963,9081600],[1964,9122500],[1965,9128850],[1966,9108800],[1967,9103000],[1968,9115050],[1969,9097200],[1970,9044200],[1971,8990450],[1972,8970450],[1973,8975950],[1974,9098300],[1975,9411090],[1976,9621970],[1977,9662600],[1978,9698780],[1979,9724560],[1980,9777800],[1981,9850079],[1982,9859650],[1983,9872243],[1984,9885387],[1985,9897192],[1986,9907411],[1987,9915289],[1988,9920611],[1989,9923147],[1990,9922689],[1991,9919009],[1992,9927680],[1993,9967832],[1994,10027688],[1995,10065543],[1996,10099918],[1997,10156415],[1998,10224828],[1999,10283381],[2000,10335597],[2001,10386753],[2002,10433867],[2003,10479955],[2004,10524145],[2005,10566212],[2006,10605870],[2007,10642836],[2008,10676910]],"lifeExpectancy":[[1800,35.6],[1925,35.6],[1940,51.43],[1941,47.95],[1942,49.87],[1943,51.05],[1944,52.42],[1945,53.81],[1946,53.69],[1947,56.03],[1948,56.76],[1949,55.38],[1950,58.53],[1951,58.72],[1952,59.82],[1953,61.12],[1954,62.26],[1955,61.43],[1956,61.24],[1957,61.51],[1958,63.81],[1959,62.99],[1960,64.25],[1961,62.87],[1962,64.39],[1963,65.02],[1964,65.24],[1965,66.19],[1966,65.7],[1967,66.6],[1968,66.91],[1969,66.52],[1970,67.17],[1971,66.94],[1972,69.26],[1973,68.66],[1974,69.21],[1975,68.93],[1976,69.16],[1977,70.41],[1978,70.87],[1979,71.68],[1980,71.75],[1981,71.94],[1982,72.77],[1983,72.69],[1984,72.98],[1985,73.26],[1986,73.66],[1987,74.05],[1988,74.07],[1989,74.63],[1990,74.25],[1991,74.19],[1992,74.86],[1993,74.77],[1994,75.76],[1995,75.58],[1996,75.53],[1997,75.97],[1998,76.18],[1999,76.36],[2000,76.84],[2001,77.11],[2002,77.29],[2003,77.49],[2004,78.32],[2005,78.2],[2006,78.94],[2007,79.12],[2008,78.77],[2009,78.94]]},{"name":"Romania","region":"Europe & Central Asia","income":[[1800,1093.92],[1820,1116.86],[1870,2196.25],[1890,2939.27],[1900,3337.87],[1910,3915.9],[1913,4106.97],[1926,2966.42],[1927,2928.18],[1928,2888.6],[1929,2718.46],[1930,2875.09],[1931,2898.76],[1932,2699.76],[1933,2794.09],[1934,2788.24],[1935,2821.77],[1936,2816.99],[1937,2666.64],[1938,2929.59],[1948,1925.76],[1950,2788.13],[1951,2962.12],[1952,3144.61],[1953,3328.7],[1954,3529.11],[1955,3722.17],[1956,3829.44],[1957,3943.37],[1958,4065.81],[1959,4205.87],[1960,4349.19],[1961,4602.36],[1962,4735],[1963,5040.1],[1964,5326.92],[1965,5628.67],[1966,6234.45],[1967,6470.87],[1968,6461.5],[1969,6661.29],[1970,6729.78],[1971,7598.18],[1972,8011.41],[1973,8201.28],[1974,8579.08],[1975,8872.78],[1976,9239.34],[1977,9356.4],[1978,9584.18],[1979,9785.25],[1980,9755.08],[1981,9640.37],[1982,9605.31],[1983,9498.4],[1984,9855.45],[1985,9809.79],[1986,9942.75],[1987,9696.27],[1988,9637.16],[1989,9295.59],[1990,8281.62],[1991,7226.05],[1992,6598.41],[1993,6705.77],[1994,6976.44],[1995,7486.9],[1996,7801.29],[1997,7346.55],[1998,7008.4],[1999,6935.17],[2000,7089.83],[2001,7501.93],[2002,7885.36],[2003,8280.64],[2004,8994.49],[2005,9374],[2006,10151.92],[2007,10826.03],[2008,11662.14],[2009,10868.12]],"population":[[1820,6389000],[1850,8000000],[1870,9179000],[1890,10373000],[1900,11000000],[1910,11866000],[1913,12527000],[1920,12340000],[1921,12479000],[1922,12666000],[1923,12843000],[1924,13020000],[1925,13209000],[1926,13399000],[1927,13574000],[1928,13760000],[1929,13952000],[1930,14141000],[1931,14355000],[1932,14554000],[1933,14730000],[1934,14924000],[1935,15069000],[1936,15256000],[1937,15434000],[1938,15601000],[1939,15751000],[1940,15907000],[1941,15774000],[1942,15839000],[1943,15840000],[1944,15946000],[1945,15929000],[1946,15971000],[1947,15849000],[1948,15893000],[1949,16084000],[1950,16311000],[1951,16464000],[1952,16630000],[1953,16847000],[1954,17040000],[1955,17325000],[1956,17583000],[1957,17829327],[1958,18055948],[1959,18225830],[1960,18403414],[1961,18566932],[1962,18680721],[1963,18813131],[1964,18927081],[1965,19027367],[1966,19140783],[1967,19284814],[1968,19720984],[1969,20010178],[1970,20252541],[1971,20469658],[1972,20662648],[1973,20827525],[1974,21028841],[1975,21245103],[1976,21445698],[1977,21658597],[1978,21831875],[1979,22001388],[1980,22130036],[1981,22256551],[1982,22356726],[1983,22407281],[1984,22453788],[1985,22521195],[1986,22599678],[1987,22686371],[1988,22768897],[1989,22852123],[1990,22865945],[1991,22825559],[1992,22797027],[1993,22768538],[1994,22738680],[1995,22692830],[1996,22627562],[1997,22562458],[1998,22515824],[1999,22480527],[2000,22451921],[2001,22428044],[2002,22404337],[2003,22380273],[2004,22355551],[2005,22329977],[2006,22303552],[2007,22276056],[2008,22246862]],"lifeExpectancy":[[1800,35.7],[1920,35.7],[1932,42.01],[1950,59.86],[1951,60.15],[1952,60.74],[1953,61.34],[1954,61.96],[1955,62.6],[1956,63.25],[1957,63.9],[1958,64.54],[1959,65.14],[1960,65.68],[1961,66.13],[1962,66.46],[1963,66.67],[1964,66.78],[1965,66.83],[1966,66.9],[1967,67.03],[1968,67.26],[1969,67.59],[1970,68],[1971,68.43],[1972,68.83],[1973,69.15],[1974,69.37],[1975,69.5],[1976,69.55],[1977,69.56],[1978,69.57],[1979,69.58],[1980,69.6],[1981,69.62],[1982,69.64],[1983,69.65],[1984,69.64],[1985,69.62],[1986,69.59],[1987,69.54],[1988,69.5],[1989,69.45],[1990,69.4],[1991,69.37],[1992,69.34],[1993,69.33],[1994,69.35],[1995,69.4],[1996,69.51],[1997,69.68],[1998,69.9],[1999,70.17],[2000,70.48],[2001,70.81],[2002,71.14],[2003,71.47],[2004,71.77],[2005,72.04],[2006,72.29],[2007,72.53],[2008,72.76],[2009,72.99]]},{"name":"Serbia","region":"Europe & Central Asia","income":[[1800,1308.87],[1820,1336.32],[1870,1481.18],[1890,2084.6],[1900,2230.41],[1910,2613.49],[1913,2613.56],[1920,2549.97],[1921,2575.11],[1922,2613.02],[1923,2710.16],[1924,2863.71],[1925,2961.99],[1926,3123.97],[1927,3029.72],[1928,3249.77],[1929,3373.22],[1930,3260.19],[1931,3117.55],[1932,2788.6],[1933,2835.85],[1934,2901.09],[1935,2818.2],[1936,3140.56],[1937,3148.91],[1938,3354.11],[1939,3490.94],[1947,3252.79],[1948,3828.92],[1949,4150.15],[1950,3835.16],[1951,3934.49],[1952,3581.46],[1953,4062.06],[1954,4233.2],[1955,4444.31],[1956,4307.01],[1957,4981.09],[1958,5143.12],[1959,5721.27],[1960,6026.13],[1961,6235.08],[1962,6289.63],[1963,6877.27],[1964,7465.67],[1965,7592.72],[1966,7925.24],[1967,7991.71],[1968,8091.85],[1969,8926.12],[1970,9283.91],[1971,10263.93],[1972,10522.07],[1973,10782.43],[1974,12065.32],[1975,11959.25],[1976,12213.27],[1977,12980.67],[1978,13578.31],[1979,14387.78],[1980,14992.89],[1981,15168.18],[1982,15181.09],[1983,15225.82],[1984,15526.1],[1985,15569.67],[1986,16126.32],[1987,15870.88],[1988,15578.62],[1989,15313.99],[1990,14143.66],[1991,12990.68],[1992,9325.07],[1993,6478.91],[1994,6639.38],[1995,7012.19],[1996,7344.15],[1997,7914.32],[1998,8133.2],[1999,6302.01],[2000,6607.33],[2001,6939.82],[2002,7236.08],[2003,7436.24],[2004,8081.66],[2005,8609],[2006,9093.5],[2007,9760.87],[2008,10301.22],[2009,10005.22]],"population":[[1800,2147197],[1820,2147197],[1950,6710261],[1951,6794255],[1952,6860147],[1953,6950699],[1954,7045988],[1955,7145006],[1956,7207162],[1957,7271135],[1958,7331982],[1959,7405493],[1960,7470936],[1961,7542114],[1962,7616060],[1963,7689816],[1964,7756518],[1965,7830883],[1966,7906036],[1967,7971222],[1968,8039165],[1969,8104980],[1970,8166726],[1971,8236091],[1972,8313288],[1973,8383682],[1974,8461865],[1975,8542000],[1976,8614774],[1977,8686367],[1978,8752904],[1979,8817307],[1980,8955000],[1981,8973246],[1982,9032824],[1983,9087632],[1984,9096747],[1985,9150329],[1986,9201321],[1987,9230783],[1988,9270114],[1989,9310769],[1990,9347973],[1991,9617827],[1992,9826397],[1993,9926991],[1994,10031261],[1995,10192265],[1996,10311510],[1997,10336594],[1998,10302093],[1999,10170917],[2000,10117908],[2001,10131896],[2002,10111559],[2003,10109579],[2004,10119145],[2005,10129640],[2006,10140311],[2007,10150265],[2008,10159046],[2009,10166507]],"lifeExpectancy":[[1800,35.5],[1920,35.5],[1950,56.31],[1951,56.75],[1952,57.61],[1953,58.44],[1954,59.23],[1955,59.98],[1956,60.69],[1957,61.37],[1958,62.02],[1959,62.63],[1960,63.21],[1961,63.77],[1962,64.31],[1963,64.83],[1964,65.33],[1965,65.81],[1966,66.27],[1967,66.7],[1968,67.11],[1969,67.5],[1970,67.87],[1971,68.24],[1972,68.61],[1973,68.97],[1974,69.32],[1975,69.65],[1976,69.91],[1977,70.1],[1978,70.22],[1979,70.27],[1980,70.28],[1981,70.27],[1982,70.29],[1983,70.36],[1984,70.47],[1985,70.64],[1986,70.84],[1987,71.05],[1988,71.25],[1989,71.42],[1990,71.56],[1991,71.67],[1992,71.76],[1993,71.83],[1994,71.91],[1995,71.99],[1996,72.09],[1997,72.21],[1998,72.35],[1999,72.51],[2000,72.69],[2001,72.89],[2002,73.09],[2003,73.28],[2004,73.46],[2005,73.63],[2006,73.78],[2007,73.94],[2008,74.08],[2009,74.23]]},{"name":"Slovak Republic","region":"Europe & Central Asia","income":[[1800,1197.6],[1820,1197.6],[1850,1522.03],[1870,1641.83],[1890,2122.91],[1900,2438.9],[1910,2808.4],[1913,2955.87],[1920,2726.87],[1921,2940.51],[1922,2829.41],[1923,3033.56],[1924,3318.73],[1925,3675.88],[1926,3632.7],[1927,3881.4],[1928,4199.46],[1929,4291.43],[1930,4127.01],[1931,3961.86],[1932,3779.92],[1933,3599.45],[1934,3445.75],[1935,3399.29],[1936,3665.52],[1937,4064.56],[1948,4356.41],[1949,4597.55],[1950,4937.84],[1951,4970.41],[1952,5074.66],[1953,4999.31],[1954,5150.73],[1955,5532.03],[1956,5797.5],[1957,6093.26],[1958,6502.62],[1959,6742.24],[1960,7205.56],[1961,7424.43],[1962,7481.11],[1963,7292.14],[1964,7578.14],[1965,7804.18],[1966,8097.45],[1967,8412.9],[1968,8777.18],[1969,8962.51],[1970,9121.12],[1971,9391.97],[1972,9674.17],[1973,9932.09],[1974,10216.42],[1975,10437.16],[1976,10524.37],[1977,10922.66],[1978,10983.19],[1979,11008.51],[1980,11259.07],[1981,11160.97],[1982,11348.55],[1983,11492.08],[1984,11735.04],[1985,11802.32],[1986,11999.9],[1987,12037.27],[1988,12284.16],[1989,12367.44],[1990,12007.55],[1991,10215.84],[1992,9498.47],[1993,9636.52],[1994,10195.81],[1995,10759.84],[1996,11482.63],[1997,12126.23],[1998,12564.34],[1999,12600.77],[2000,12689.76],[2001,13098.91],[2002,13638.78],[2003,14207.56],[2004,14977.87],[2005,15881],[2006,17217.17],[2007,19012.69],[2008,20143.88],[2009,19186.01]],"population":[[1800,2140651],[1820,2140651],[1950,3463446],[1951,3508698],[1952,3558137],[1953,3598761],[1954,3661437],[1955,3726601],[1956,3787111],[1957,3844277],[1958,3899751],[1959,3946039],[1960,3994270],[1961,4191642],[1962,4237384],[1963,4281858],[1964,4326174],[1965,4369939],[1966,4408988],[1967,4442238],[1968,4471590],[1969,4477625],[1970,4523873],[1971,4556627],[1972,4593433],[1973,4637193],[1974,4682100],[1975,4729718],[1976,4778540],[1977,4827803],[1978,4876017],[1979,4922558],[1980,4965958],[1981,5013692],[1982,5048043],[1983,5081376],[1984,5114080],[1985,5144632],[1986,5172084],[1987,5199318],[1988,5223222],[1989,5244662],[1990,5262616],[1991,5281610],[1992,5302888],[1993,5323577],[1994,5345264],[1995,5361594],[1996,5373190],[1997,5383010],[1998,5390236],[1999,5395739],[2000,5400320],[2001,5404681],[2002,5410052],[2003,5416406],[2004,5423567],[2005,5431363],[2006,5439448],[2007,5447502],[2008,5455407]],"lifeExpectancy":[[1800,36.4],[1895,36.4],[1921,44.2],[1930,49.9],[1937,53.2],[1950,60.89],[1951,61.31],[1952,64.36],[1953,65.66],[1954,66.71],[1955,67.84],[1956,68.37],[1957,67.45],[1958,69.35],[1959,69.03],[1960,70.35],[1961,70.79],[1962,70.33],[1963,70.71],[1964,71.09],[1965,70.3],[1966,70.44],[1967,70.98],[1968,70.5],[1969,69.81],[1970,69.74],[1971,69.88],[1972,70.35],[1973,70.05],[1974,70.21],[1975,70.33],[1976,70.5],[1977,70.45],[1978,70.46],[1979,70.79],[1980,70.44],[1981,70.68],[1982,70.8],[1983,70.49],[1984,70.73],[1985,70.74],[1986,70.91],[1987,71.08],[1988,71.16],[1989,70.95],[1990,70.83],[1991,70.9],[1992,71.38],[1993,71.9],[1994,72.36],[1995,72.29],[1996,72.77],[1997,72.71],[1998,72.62],[1999,72.99],[2000,73.19],[2001,73.62],[2002,73.81],[2003,73.85],[2004,74.26],[2005,74.2],[2006,74.46],[2007,74.52],[2008,74.88],[2009,74.94]]},{"name":"Slovenia","region":"Europe & Central Asia","income":[[1800,1357.95],[1820,1386.44],[1870,1743.21],[1890,2453.37],[1900,2624.99],[1910,3075.84],[1913,3075.92],[1920,3001.07],[1921,3030.67],[1922,3075.28],[1923,3189.6],[1924,3370.32],[1925,3485.98],[1926,3676.61],[1927,3565.7],[1928,3824.67],[1929,3969.96],[1930,3836.93],[1931,3669.07],[1932,3281.92],[1933,3337.53],[1934,3414.31],[1935,3316.75],[1936,3696.15],[1937,3705.97],[1938,3947.48],[1939,4108.51],[1947,3828.23],[1948,4506.28],[1949,4884.33],[1950,4513.62],[1951,4630.53],[1952,4215.04],[1953,4780.67],[1954,4982.08],[1955,5230.53],[1956,5068.95],[1957,5862.28],[1958,6052.97],[1959,6733.39],[1960,7092.19],[1961,7338.11],[1962,7402.3],[1963,8093.9],[1964,8786.4],[1965,8935.92],[1966,9327.26],[1967,9405.49],[1968,9523.35],[1969,10505.21],[1970,10926.29],[1971,12079.69],[1972,12383.49],[1973,12689.91],[1974,14199.74],[1975,14074.92],[1976,14373.88],[1977,15277.03],[1978,15980.4],[1979,16933.07],[1980,17645.22],[1981,17851.52],[1982,17866.72],[1983,17919.36],[1984,18272.76],[1985,18324.04],[1986,18979.17],[1987,18678.53],[1988,18334.58],[1989,18023.13],[1990,16645.76],[1991,15100.59],[1992,14214.72],[1993,14560.02],[1994,15279.58],[1995,15857.28],[1996,16392.55],[1997,17161.11],[1998,17747.88],[1999,18663.4],[2000,19399.69],[2001,19966.89],[2002,20660.02],[2003,21203.46],[2004,22113.22],[2005,23004],[2006,24255.45],[2007,25914.73],[2008,26779.28],[2009,24778.21]],"population":[[1800,469664],[1820,469664],[1950,1467759],[1951,1483131],[1952,1489518],[1953,1497875],[1954,1509187],[1955,1517499],[1956,1524799],[1957,1533070],[1958,1540332],[1959,1548561],[1960,1557756],[1961,1571851],[1962,1582962],[1963,1595028],[1964,1606083],[1965,1620052],[1966,1632029],[1967,1646912],[1968,1657849],[1969,1666805],[1970,1675739],[1971,1685624],[1972,1694510],[1973,1703373],[1974,1713184],[1975,1722000],[1976,1734454],[1977,1746919],[1978,1759395],[1979,1772854],[1980,1833000],[1981,1839256],[1982,1861252],[1983,1878555],[1984,1896413],[1985,1914220],[1986,1932129],[1987,1945870],[1988,1961775],[1989,1976217],[1990,1991210],[1991,1999480],[1992,1999210],[1993,1999926],[1994,2001036],[1995,2002827],[1996,2007429],[1997,2011612],[1998,2010807],[1999,2009653],[2000,2010557],[2001,2011179],[2002,2011497],[2003,2011604],[2004,2011473],[2005,2011070],[2006,2010347],[2007,2009245],[2008,2007711]],"lifeExpectancy":[[1800,36.6],[1920,36.6],[1950,64.45],[1951,64.75],[1952,65.32],[1953,65.87],[1954,66.38],[1955,66.86],[1956,67.3],[1957,67.71],[1958,68.08],[1959,68.4],[1960,68.68],[1961,68.89],[1962,69.05],[1963,69.15],[1964,69.2],[1965,69.22],[1966,69.22],[1967,69.23],[1968,69.26],[1969,69.32],[1970,69.42],[1971,69.57],[1972,69.76],[1973,69.97],[1974,70.2],[1975,70.43],[1976,70.63],[1977,70.78],[1978,70.89],[1979,70.97],[1980,71.02],[1981,71.07],[1982,71.16],[1983,70.88],[1984,71.34],[1985,71.77],[1986,72.32],[1987,72.25],[1988,72.9],[1989,73.35],[1990,73.86],[1991,73.5],[1992,73.64],[1993,73.52],[1994,73.96],[1995,74.67],[1996,75.11],[1997,75.13],[1998,75.26],[1999,75.64],[2000,76.11],[2001,76.38],[2002,76.66],[2003,76.55],[2004,77.28],[2005,77.6],[2006,78.24],[2007,78.15],[2008,78.41],[2009,78.63]]},{"name":"Spain","region":"Europe & Central Asia","income":[[1800,1443.02],[1820,1510.35],[1821,1513.78],[1822,1517.21],[1823,1520.65],[1824,1524.09],[1825,1527.55],[1826,1531.01],[1827,1534.48],[1828,1537.96],[1829,1541.44],[1830,1544.93],[1831,1548.44],[1832,1551.94],[1833,1555.46],[1834,1558.99],[1835,1562.52],[1836,1566.06],[1837,1569.61],[1838,1573.17],[1839,1576.73],[1840,1580.31],[1841,1583.89],[1842,1587.48],[1843,1591.07],[1844,1594.68],[1845,1598.29],[1846,1601.92],[1847,1605.55],[1848,1609.18],[1849,1612.83],[1850,1616.49],[1851,1632.37],[1852,1697.44],[1853,1702.12],[1854,1723.99],[1855,1801.43],[1856,1743.21],[1857,1695.79],[1858,1727.9],[1859,1798.2],[1860,1852.46],[1861,1870.46],[1862,1876.68],[1863,1913.85],[1864,1908.72],[1865,1843.65],[1866,1933.43],[1867,1922.37],[1868,1722.31],[1869,1770.45],[1870,1808.9],[1871,1945.24],[1872,2207.57],[1873,2394.12],[1874,2186.23],[1875,2242.35],[1876,2276.7],[1877,2500.26],[1878,2424.55],[1879,2278.23],[1880,2466.65],[1881,2516.2],[1882,2535.07],[1883,2578.06],[1884,2571.04],[1885,2489.16],[1886,2422.5],[1887,2375.82],[1888,2459.86],[1889,2443.33],[1890,2433.81],[1891,2478.14],[1892,2652.1],[1893,2547.88],[1894,2564.95],[1895,2531.14],[1896,2319.09],[1897,2426.09],[1898,2601.44],[1899,2631.41],[1900,2676.85],[1901,2848.79],[1902,2747],[1903,2740.65],[1904,2712.76],[1905,2663.39],[1906,2774.32],[1907,2841.88],[1908,2932.93],[1909,2963.39],[1910,2839.94],[1911,3022.91],[1912,2980.16],[1913,3080.48],[1914,3017.63],[1915,3046.46],[1916,3166.83],[1917,3107.16],[1918,3064.66],[1919,3063.21],[1920,3262.65],[1921,3315.45],[1922,3422.14],[1923,3431.6],[1924,3493.17],[1925,3672.26],[1926,3621.9],[1927,3896.12],[1928,3872.19],[1929,4104.43],[1930,3926.82],[1931,3789.68],[1932,3835.49],[1933,3725.35],[1934,3830.02],[1935,3870.45],[1936,2980.4],[1937,2709.06],[1938,2682.76],[1939,2869.22],[1940,3117.62],[1941,3041.43],[1942,3186.35],[1943,3278.25],[1944,3403.92],[1945,3149.32],[1946,3265.09],[1947,3293.12],[1948,3275.47],[1949,3229.14],[1950,3280.32],[1951,3576.32],[1952,3834.03],[1953,3787.81],[1954,4039.52],[1955,4163.5],[1956,4462.54],[1957,4564.8],[1958,4720.21],[1959,4571.3],[1960,4603.07],[1961,5149.13],[1962,5693.84],[1963,6221.1],[1964,6765.93],[1965,7136.52],[1966,7582.37],[1967,7993.51],[1968,8374.24],[1969,9039.41],[1970,9469.63],[1971,9918.21],[1972,10638.75],[1973,11481.02],[1974,12212.46],[1975,12507.48],[1976,12886.57],[1977,13236.92],[1978,13521.55],[1979,13589.12],[1980,13790.56],[1981,13765.39],[1982,13926.17],[1983,14203.11],[1984,14342.73],[1985,14568.71],[1986,14982.65],[1987,15764.98],[1988,16553.14],[1989,17355.75],[1990,18064.92],[1991,18472.91],[1992,18603.06],[1993,18374.87],[1994,18782.73],[1995,19272.14],[1996,19709.87],[1997,20445.3],[1998,21333.94],[1999,22286.36],[2000,23410.16],[2001,24221.8],[2002,24835.47],[2003,25564.29],[2004,26357.05],[2005,27270],[2006,27898.65],[2007,28427.37],[2008,28159.21],[2009,26811.93]],"population":[[1820,12203000],[1821,12284000],[1822,12366000],[1823,12449000],[1824,12532000],[1825,12615000],[1826,12699000],[1827,12784000],[1828,12869000],[1829,12955000],[1830,13041000],[1831,13128000],[1832,13216000],[1833,13304000],[1834,13392000],[1835,13482000],[1836,13571000],[1837,13662000],[1838,13753000],[1839,13845000],[1840,13937000],[1841,14030000],[1842,14123000],[1843,14217000],[1844,14312000],[1845,14407000],[1846,14503000],[1847,14600000],[1848,14697000],[1849,14795000],[1850,14894000],[1851,14974000],[1852,15055000],[1853,15136000],[1854,15217000],[1855,15299000],[1856,15381000],[1857,15455000],[1858,15526000],[1859,15584000],[1860,15642000],[1861,15699000],[1862,15754000],[1863,15809000],[1864,15864000],[1865,15920000],[1866,15976000],[1867,16032000],[1868,16088000],[1869,16144000],[1870,16201000],[1871,16258000],[1872,16315000],[1873,16372000],[1874,16429000],[1875,16487000],[1876,16545000],[1877,16603000],[1878,16677000],[1879,16768000],[1880,16859000],[1881,16951000],[1882,17043000],[1883,17136000],[1884,17230000],[1885,17323000],[1886,17418000],[1887,17513000],[1888,17600000],[1889,17678000],[1890,17757000],[1891,17836000],[1892,17916000],[1893,17996000],[1894,18076000],[1895,18157000],[1896,18238000],[1897,18320000],[1898,18402000],[1899,18484000],[1900,18566000],[1901,18659000],[1902,18788000],[1903,18919000],[1904,19050000],[1905,19133000],[1906,19316000],[1907,19450000],[1908,19585000],[1909,19721000],[1910,19858000],[1911,19994000],[1912,20128000],[1913,20263000],[1914,20398000],[1915,20535000],[1916,20673000],[1917,20811000],[1918,20950000],[1919,21091000],[1920,21232000],[1921,21411000],[1922,21628000],[1923,21847000],[1924,22069000],[1925,22292000],[1926,22518000],[1927,22747000],[1928,22977000],[1929,23210000],[1930,23445000],[1931,23675000],[1932,23897000],[1933,24122000],[1934,24349000],[1935,24579000],[1936,24810000],[1937,25043000],[1938,25279000],[1939,25517000],[1940,25757000],[1941,25979000],[1942,26182000],[1943,26387000],[1944,26594000],[1945,26802000],[1946,27012000],[1947,27223000],[1948,27437000],[1949,27651000],[1950,28062963],[1951,28298010],[1952,28549870],[1953,28804128],[1954,29060413],[1955,29318745],[1956,29579142],[1957,29841614],[1958,30106188],[1959,30372877],[1960,30641187],[1961,30903894],[1962,31158061],[1963,31429834],[1964,31740862],[1965,32084511],[1966,32451975],[1967,32850275],[1968,33239301],[1969,33566084],[1970,33876479],[1971,34195056],[1972,34513161],[1973,34836716],[1974,35184287],[1975,35563535],[1976,35996780],[1977,36439000],[1978,36861034],[1979,37200014],[1980,37488360],[1981,37750800],[1982,37983310],[1983,38184166],[1984,38362861],[1985,38534853],[1986,38707556],[1987,38880702],[1988,39053881],[1989,39214523],[1990,39350769],[1991,39461418],[1992,39549438],[1993,39627587],[1994,39690971],[1995,39749715],[1996,39803829],[1997,39855442],[1998,39906235],[1999,39953263],[2000,40016081],[2001,40087104],[2002,40152517],[2003,40217413],[2004,40280780],[2005,40341462],[2006,40397842],[2007,40448191],[2008,40491051]],"lifeExpectancy":[[1800,29.5],[1882,29.5],[1892,32.1],[1900,34.8],[1908,41.45],[1909,41.06],[1910,40.92],[1911,39.8],[1912,43.53],[1913,42.56],[1914,42.84],[1915,43.05],[1916,43.98],[1917,42.63],[1918,30.29],[1919,41.12],[1920,39.31],[1921,42.03],[1922,44.21],[1923,44.75],[1924,46.3],[1925,46.95],[1926,47.76],[1927,48.49],[1928,48.67],[1929,49.49],[1930,49.34],[1931,49.25],[1932,51.2],[1933,51.6],[1934,52.24],[1935,52.72],[1936,50.9],[1937,47.22],[1938,47.53],[1939,47.09],[1940,48.39],[1941,47.16],[1942,52.48],[1943,54.85],[1944,56.25],[1945,57.84],[1946,57.57],[1947,59.33],[1948,61.27],[1949,61.02],[1950,61.87],[1951,61.52],[1952,64.94],[1953,65.81],[1954,67.01],[1955,66.78],[1956,66.82],[1957,66.66],[1958,68.85],[1959,68.77],[1960,69.27],[1961,69.66],[1962,69.69],[1963,69.85],[1964,70.58],[1965,70.99],[1966,71.25],[1967,71.44],[1968,71.73],[1969,71.26],[1970,72.24],[1971,71.85],[1972,73.06],[1973,72.84],[1974,73.22],[1975,73.55],[1976,73.87],[1977,74.39],[1978,74.58],[1979,75.12],[1980,75.6],[1981,75.74],[1982,76.3],[1983,76.08],[1984,76.46],[1985,76.42],[1986,76.67],[1987,76.9],[1988,76.91],[1989,76.98],[1990,76.99],[1991,77.12],[1992,77.57],[1993,77.7],[1994,78.05],[1995,78.12],[1996,78.26],[1997,78.77],[1998,78.85],[1999,78.86],[2000,79.34],[2001,79.69],[2002,79.78],[2003,79.72],[2004,80.28],[2005,80.28],[2006,80.94],[2007,80.75],[2008,80.94],[2009,81.11]]},{"name":"Sweden","region":"Europe & Central Asia","income":[[1800,1100],[1801,1105],[1802,1159],[1803,1141],[1804,1081],[1805,1140],[1806,1152],[1807,1117],[1808,1035],[1809,1037],[1810,1131],[1811,1209],[1812,1136],[1813,1168],[1814,1192],[1815,1216],[1816,1217],[1817,1176],[1818,1170],[1819,1157],[1820,1173],[1821,1196],[1822,1209],[1823,1211],[1824,1230],[1825,1253],[1826,1230],[1827,1204],[1828,1221],[1829,1231],[1830,1214],[1831,1246],[1832,1214],[1833,1259],[1834,1273],[1835,1276],[1836,1311],[1837,1293],[1838,1270],[1839,1295],[1840,1306],[1841,1296],[1842,1232],[1843,1271],[1844,1334],[1845,1341],[1846,1306],[1847,1343],[1848,1355],[1849,1388],[1850,1423],[1851,1412],[1852,1393],[1853,1410],[1854,1434],[1855,1537],[1856,1554],[1857,1596],[1858,1576],[1859,1631],[1860,1652],[1861,1597],[1862,1574],[1863,1642],[1864,1636],[1865,1674],[1866,1636],[1867,1672],[1868,1517],[1869,1621],[1870,1866],[1871,1921],[1872,1985],[1873,2043],[1874,2105],[1875,2016],[1876,2160],[1877,2107],[1878,1992],[1879,2084],[1880,2064],[1881,2100],[1882,2015],[1883,2193],[1884,2143],[1885,2167],[1886,2178],[1887,2090],[1888,2160],[1889,2176],[1890,2224],[1891,2346],[1892,2309],[1893,2377],[1894,2386],[1895,2498],[1896,2554],[1897,2675],[1898,2788],[1899,2903],[1900,2897],[1901,2930],[1902,2916],[1903,3097],[1904,3133],[1905,3100],[1906,3330],[1907,3588],[1908,3423],[1909,3474],[1910,3563],[1911,3667],[1912,3838],[1913,3994],[1914,4097],[1915,4185],[1916,4468],[1917,4154],[1918,3988],[1919,4111],[1920,4217],[1921,3854],[1922,4206],[1923,4352],[1924,4628],[1925,4639],[1926,4858],[1927,5046],[1928,5167],[1929,5457],[1930,5517],[1931,5416],[1932,5132],[1933,5329],[1934,5685],[1935,5976],[1936,6207],[1937,6359],[1938,6483],[1939,7001],[1940,6742],[1941,6729],[1942,6648],[1943,6851],[1944,7033],[1945,7196],[1946,7905],[1947,8415],[1948,8496],[1949,8643],[1950,9073],[1951,9255],[1952,9223],[1953,9518],[1954,9947],[1955,10143],[1956,10407],[1957,10640],[1958,10944],[1959,11384],[1960,11952],[1961,12476],[1962,13138],[1963,13733],[1964,14703],[1965,15287],[1966,15782],[1967,16140],[1968,16732],[1969,17523],[1970,18303],[1971,18205],[1972,18723],[1973,19399],[1974,19745],[1975,20049],[1976,20036],[1977,19652],[1978,20000],[1979,20715],[1980,21179],[1981,21266],[1982,21382],[1983,21910],[1984,22839],[1985,23321],[1986,23615],[1987,24223],[1988,24572],[1989,24941],[1990,25295],[1991,25001],[1992,24343],[1993,23670],[1994,24141],[1995,24724],[1996,24959],[1997,25567],[1998,26445],[1999,27572],[2000,28659],[2001,28866],[2002,29472],[2003,29941],[2004,31074],[2005,31995],[2006,33200],[2007,33800],[2008,33634],[2009,32021]],"population":[[1820,2585000],[1821,2611000],[1822,2646000],[1823,2689000],[1824,2727000],[1825,2771000],[1826,2805000],[1827,2828000],[1828,2847000],[1829,2863000],[1830,2888000],[1831,2901000],[1832,2923000],[1833,2959000],[1834,2983000],[1835,3025000],[1836,3059000],[1837,3076000],[1838,3090000],[1839,3106000],[1840,3139000],[1841,3173000],[1842,3207000],[1843,3237000],[1844,3275000],[1845,3317000],[1846,3343000],[1847,3362000],[1848,3397000],[1849,3441000],[1850,3483000],[1851,3517000],[1852,3540000],[1853,3563000],[1854,3608000],[1855,3641000],[1856,3673000],[1857,3688000],[1858,3734000],[1859,3788000],[1860,3860000],[1861,3917000],[1862,3966000],[1863,4023000],[1864,4070000],[1865,4114000],[1866,4161000],[1867,4196000],[1868,4173000],[1869,4159000],[1870,4169000],[1871,4186000],[1872,4227000],[1873,4274000],[1874,4320000],[1875,4362000],[1876,4407000],[1877,4457000],[1878,4508000],[1879,4555000],[1880,4572000],[1881,4569000],[1882,4576000],[1883,4591000],[1884,4624000],[1885,4664000],[1886,4700000],[1887,4726000],[1888,4742000],[1889,4761000],[1890,4780000],[1891,4794000],[1892,4805000],[1893,4816000],[1894,4849000],[1895,4896000],[1896,4941000],[1897,4986000],[1898,5036000],[1899,5080000],[1900,5117000],[1901,5156000],[1902,5187000],[1903,5210000],[1904,5241000],[1905,5278000],[1906,5316000],[1907,5357000],[1908,5404000],[1909,5453000],[1910,5449000],[1911,5542000],[1912,5583000],[1913,5621000],[1914,5659000],[1915,5696000],[1916,5735000],[1917,5779000],[1918,5807000],[1919,5830000],[1920,5876000],[1921,5929000],[1922,5971000],[1923,5997000],[1924,6021000],[1925,6045000],[1926,6064000],[1927,6081000],[1928,6097000],[1929,6113000],[1930,6131000],[1931,6152000],[1932,6176000],[1933,6201000],[1934,6222000],[1935,6242000],[1936,6259000],[1937,6276000],[1938,6298000],[1939,6326000],[1940,6356000],[1941,6389000],[1942,6432000],[1943,6491000],[1944,6560000],[1945,6636000],[1946,6719000],[1947,6803000],[1948,6884000],[1949,6956000],[1950,7014005],[1951,7072830],[1952,7124673],[1953,7171461],[1954,7213490],[1955,7262388],[1956,7314552],[1957,7363802],[1958,7409144],[1959,7446249],[1960,7480395],[1961,7519998],[1962,7561588],[1963,7604328],[1964,7661354],[1965,7733853],[1966,7807797],[1967,7867931],[1968,7912217],[1969,7968018],[1970,8042803],[1971,8098328],[1972,8122293],[1973,8136774],[1974,8160560],[1975,8192566],[1976,8222310],[1977,8251648],[1978,8275778],[1979,8293723],[1980,8310473],[1981,8320485],[1982,8325260],[1983,8329028],[1984,8342621],[1985,8356337],[1986,8384069],[1987,8421403],[1988,8469339],[1989,8526276],[1990,8600815],[1991,8668112],[1992,8718867],[1993,8769284],[1994,8831493],[1995,8877890],[1996,8892234],[1997,8897619],[1998,8902684],[1999,8909790],[2000,8923569],[2001,8939915],[2002,8954175],[2003,8970306],[2004,8986400],[2005,9001774],[2006,9016596],[2007,9031088],[2008,9045389]],"lifeExpectancy":[[1800,32.16],[1801,36.9],[1802,40.2],[1803,40.28],[1804,39.7],[1805,41.05],[1806,36.17],[1807,38.76],[1808,30.15],[1809,26.9],[1810,31.99],[1811,34.58],[1812,35.07],[1813,36.49],[1814,38.57],[1815,40.42],[1816,41.74],[1817,40.29],[1818,40.02],[1819,36.97],[1820,40.23],[1821,38.14],[1822,42.76],[1823,45.19],[1824,44.97],[1825,45.24],[1826,43.08],[1827,42.64],[1828,37.74],[1829,36.18],[1830,40.97],[1831,38.98],[1832,40.84],[1833,42.5],[1834,38.53],[1835,47.14],[1836,45.13],[1837,39.57],[1838,39.98],[1839,39.88],[1840,43.98],[1841,45.17],[1842,42.8],[1843,42.82],[1844,44.03],[1845,45.99],[1846,42.04],[1847,40.12],[1848,45.13],[1849,44.5],[1850,44.69],[1851,43.62],[1852,41.35],[1853,39.99],[1854,44.55],[1855,43.08],[1856,42.14],[1857,34.64],[1858,42],[1859,44.27],[1860,48.47],[1861,47.12],[1862,42.55],[1863,45.38],[1864,44.77],[1865,45.4],[1866,44.73],[1867,46.18],[1868,43.23],[1869,40.96],[1870,45.01],[1871,48.98],[1872,50.08],[1873,48.68],[1874,44.28],[1875,44.61],[1876,44.82],[1877,46.05],[1878,46.73],[1879,48.92],[1880,47.62],[1881,48.5],[1882,48.59],[1883,49.05],[1884,49.17],[1885,48.94],[1886,50.6],[1887,51.46],[1888,52.35],[1889,52.3],[1890,50.48],[1891,51.09],[1892,50.61],[1893,51.36],[1894,52.1],[1895,54.16],[1896,53.49],[1897,54.14],[1898,54.69],[1899,50.95],[1900,52.27],[1901,52.92],[1902,54.76],[1903,55.09],[1904,55.4],[1905,54.55],[1906,56.7],[1907,56.98],[1908,56.42],[1909,58.42],[1910,57.8],[1911,58.03],[1912,57.79],[1913,58.68],[1914,58.26],[1915,57.2],[1916,58.22],[1917,58.9],[1918,49.81],[1919,56.57],[1920,58.81],[1921,61.03],[1922,61.05],[1923,63],[1924,62],[1925,62.56],[1926,62.79],[1927,61.59],[1928,62.27],[1929,62.32],[1930,63.19],[1931,62.69],[1932,63.95],[1933,64.83],[1934,64.98],[1935,64.86],[1936,64.61],[1937,64.63],[1938,65.57],[1939,66.4],[1940,66.74],[1941,67.03],[1942,68.97],[1943,68.72],[1944,67.74],[1945,68.34],[1946,69.51],[1947,69.47],[1948,70.73],[1949,70.8],[1950,71.14],[1951,71.37],[1952,71.86],[1953,71.9],[1954,72.36],[1955,72.6],[1956,72.66],[1957,72.49],[1958,73.14],[1959,73.37],[1960,73.04],[1961,73.5],[1962,73.37],[1963,73.56],[1964,73.73],[1965,73.88],[1966,74.13],[1967,74.16],[1968,74.03],[1969,74.15],[1970,74.7],[1971,74.62],[1972,74.72],[1973,74.88],[1974,74.99],[1975,75],[1976,75.01],[1977,75.44],[1978,75.53],[1979,75.57],[1980,75.8],[1981,76.1],[1982,76.42],[1983,76.66],[1984,76.92],[1985,76.78],[1986,77.04],[1987,77.19],[1988,77.08],[1989,77.74],[1990,77.67],[1991,77.81],[1992,78.16],[1993,78.24],[1994,78.86],[1995,78.94],[1996,79.15],[1997,79.39],[1998,79.53],[1999,79.61],[2000,79.84],[2001,79.93],[2002,80.04],[2003,80.33],[2004,80.67],[2005,80.75],[2006,80.95],[2007,81.08],[2008,80.97],[2009,81.12]]},{"name":"Switzerland","region":"Europe & Central Asia","income":[[1800,1612.48],[1801,1615.2],[1802,1617.94],[1803,1620.67],[1804,1623.42],[1805,1626.16],[1806,1628.91],[1807,1631.67],[1808,1634.43],[1809,1637.19],[1810,1639.96],[1811,1642.74],[1812,1645.52],[1813,1648.3],[1814,1651.09],[1815,1653.88],[1816,1656.68],[1817,1659.48],[1818,1662.29],[1819,1665.1],[1820,1667.92],[1821,1685.32],[1822,1702.91],[1823,1720.68],[1824,1738.64],[1825,1756.78],[1826,1775.11],[1827,1793.63],[1828,1812.35],[1829,1831.26],[1830,1850.37],[1831,1869.68],[1832,1889.19],[1833,1908.9],[1834,1928.82],[1835,1948.95],[1836,1969.29],[1837,1989.84],[1838,2010.6],[1839,2031.58],[1840,2052.78],[1841,2074.21],[1842,2095.85],[1843,2117.72],[1844,2139.82],[1845,2162.15],[1846,2184.71],[1847,2207.51],[1848,2230.54],[1849,2253.82],[1850,2277.34],[1851,2317.03],[1852,2456.55],[1853,2365.44],[1854,2089.19],[1855,2426.6],[1856,2409.29],[1857,2600.59],[1858,3263.3],[1859,3085.16],[1860,2669.3],[1861,2843.62],[1862,3043.76],[1863,3025.86],[1864,2848.95],[1865,3074.86],[1866,3029.94],[1867,2649.21],[1868,3110.78],[1869,3383.55],[1870,3216.2],[1871,3404.86],[1872,3224.55],[1873,3293.34],[1874,3666.89],[1875,4047.59],[1876,3929.51],[1877,3523.54],[1878,3567.13],[1879,3534.6],[1880,3748.24],[1881,3795.81],[1882,3671.4],[1883,3666.4],[1884,4065.55],[1885,4368.15],[1886,4522.68],[1887,4485.18],[1888,4574.38],[1889,4561.95],[1890,4867.95],[1891,4569.92],[1892,4906.55],[1893,5039.99],[1894,4864.53],[1895,5336.39],[1896,5410.17],[1897,5622.86],[1898,5656.7],[1899,5867.33],[1900,5864.6],[1901,5729.43],[1902,5787.75],[1903,5603.22],[1904,5827.02],[1905,5987],[1906,6434.66],[1907,6414.69],[1908,6239.63],[1909,6486.51],[1910,6626.79],[1911,6697.87],[1912,6690.97],[1913,6526.72],[1914,6476.75],[1915,6563.87],[1916,6543.2],[1917,5820.1],[1918,5811.42],[1919,6211.34],[1920,6600.64],[1921,6438.49],[1922,7065.58],[1923,7457.2],[1924,7709.48],[1925,8243.02],[1926,8607.39],[1927,9014.16],[1928,9441.41],[1929,9687.66],[1930,9556.05],[1931,9092.53],[1932,8736.36],[1933,9128.37],[1934,9106.96],[1935,9037.66],[1936,9039.73],[1937,9442.14],[1938,9776.07],[1939,9731.54],[1940,9786.93],[1941,9657.3],[1942,9343.95],[1943,9182.31],[1944,9315.64],[1945,11860.83],[1946,12516.48],[1947,13847.18],[1948,13947.1],[1949,13397.73],[1950,13867.61],[1951,14816.9],[1952,14734.23],[1953,15055.83],[1954,15739.4],[1955,16626.49],[1956,17501.93],[1957,17909.49],[1958,17284.27],[1959,18161.49],[1960,19059.01],[1961,20041.22],[1962,20431.09],[1963,20977.27],[1964,21712.09],[1965,22190.77],[1966,22533.04],[1967,22966.14],[1968,23522.13],[1969,24527.55],[1970,25862.82],[1971,26593.27],[1972,27195.11],[1973,27851.76],[1974,28174.33],[1975,26353.03],[1976,26270.87],[1977,26982.29],[1978,27023.44],[1979,27617.12],[1980,28732.37],[1981,29003.27],[1982,28397.72],[1983,28396.89],[1984,29128.19],[1985,29967.6],[1986,30273.42],[1987,30281.7],[1988,30971.59],[1989,32031.33],[1990,32875.78],[1991,32207.74],[1992,31871.53],[1993,31515.65],[1994,31599.62],[1995,31530.77],[1996,31589.72],[1997,32135.32],[1998,33039.5],[1999,33349.65],[2000,34386.9],[2001,34569.38],[2002,34480.96],[2003,34183.28],[2004,34864.09],[2005,35520],[2006,36745.13],[2007,38007.34],[2008,38623.13],[2009,38003.92]],"population":[[1820,1986000],[1821,1998000],[1822,2008000],[1823,2020000],[1824,2031000],[1825,2042000],[1826,2054000],[1827,2065000],[1828,2077000],[1829,2088000],[1830,2100000],[1831,2112000],[1832,2123000],[1833,2135000],[1834,2147000],[1835,2159000],[1836,2171000],[1837,2183000],[1838,2195000],[1839,2208000],[1840,2220000],[1841,2235000],[1842,2251000],[1843,2266000],[1844,2282000],[1845,2298000],[1846,2314000],[1847,2330000],[1848,2346000],[1849,2363000],[1850,2379000],[1851,2399000],[1852,2406000],[1853,2412000],[1854,2427000],[1855,2442000],[1856,2457000],[1857,2471000],[1858,2484000],[1859,2497000],[1860,2510000],[1861,2524000],[1862,2538000],[1863,2552000],[1864,2566000],[1865,2579000],[1866,2593000],[1867,2607000],[1868,2623000],[1869,2639000],[1870,2655000],[1871,2680000],[1872,2697000],[1873,2715000],[1874,2733000],[1875,2750000],[1876,2768000],[1877,2786000],[1878,2803000],[1879,2821000],[1880,2839000],[1881,2853000],[1882,2863000],[1883,2874000],[1884,2885000],[1885,2896000],[1886,2907000],[1887,2918000],[1888,2929000],[1889,2940000],[1890,2951000],[1891,2965000],[1892,3002000],[1893,3040000],[1894,3077000],[1895,3114000],[1896,3151000],[1897,3188000],[1898,3226000],[1899,3263000],[1900,3300000],[1901,3341000],[1902,3384000],[1903,3428000],[1904,3472000],[1905,3461000],[1906,3560000],[1907,3604000],[1908,3647000],[1909,3691000],[1910,3735000],[1911,3776000],[1912,3819000],[1913,3864000],[1914,3897000],[1915,3883000],[1916,3883000],[1917,3888000],[1918,3880000],[1919,3869000],[1920,3877000],[1921,3876000],[1922,3874000],[1923,3883000],[1924,3896000],[1925,3910000],[1926,3932000],[1927,3956000],[1928,3988000],[1929,4022000],[1930,4051000],[1931,4080000],[1932,4102000],[1933,4122000],[1934,4140000],[1935,4155000],[1936,4168000],[1937,4180000],[1938,4192000],[1939,4206000],[1940,4226000],[1941,4254000],[1942,4286000],[1943,4323000],[1944,4364000],[1945,4412000],[1946,4467000],[1947,4524000],[1948,4582000],[1949,4640000],[1950,4694000],[1951,4749000],[1952,4815000],[1953,4878000],[1954,4929000],[1955,4980000],[1956,5045000],[1957,5126000],[1958,5199000],[1959,5259000],[1960,5362000],[1961,5512000],[1962,5666000],[1963,5789000],[1964,5887000],[1965,5943000],[1966,5996000],[1967,6063000],[1968,6132000],[1969,6212000],[1970,6267000],[1971,6343293],[1972,6401400],[1973,6441100],[1974,6460000],[1975,6403500],[1976,6333313],[1977,6316424],[1978,6332568],[1979,6350840],[1980,6385229],[1981,6425450],[1982,6468126],[1983,6501073],[1984,6529684],[1985,6563770],[1986,6603192],[1987,6649942],[1988,6704112],[1989,6763653],[1990,6836626],[1991,6920562],[1992,6995447],[1993,7058211],[1994,7114530],[1995,7157106],[1996,7181024],[1997,7193761],[1998,7207995],[1999,7232809],[2000,7266920],[2001,7311237],[2002,7361757],[2003,7408319],[2004,7450867],[2005,7489370],[2006,7523934],[2007,7554661],[2008,7581520]],"lifeExpectancy":[[1800,38],[1875,38],[1876,40.1],[1877,40.01],[1878,40.47],[1879,41.81],[1880,42.41],[1881,41.87],[1882,42.98],[1883,44.94],[1884,45],[1885,43.83],[1886,44.68],[1887,45.44],[1888,45.97],[1889,45.14],[1890,44.95],[1891,44.71],[1892,47.23],[1893,46.07],[1894,45.79],[1895,46.84],[1896,48.88],[1897,49.1],[1898,48.2],[1899,49.29],[1900,47.48],[1901,48.94],[1902,50.41],[1903,50.03],[1904,49.16],[1905,49.67],[1906,50.72],[1907,51.19],[1908,52.26],[1909,51.61],[1910,52.91],[1911,51.72],[1912,54.42],[1913,54.21],[1914,55.13],[1915,55.95],[1916,56.59],[1917,55.81],[1918,46.3],[1919,54.97],[1920,54.38],[1921,57.87],[1922,58.5],[1923,60.04],[1924,59.49],[1925,59.95],[1926,60.64],[1927,60.1],[1928,60.47],[1929,60.17],[1930,61.43],[1931,61.24],[1932,61.23],[1933,62.41],[1934,62.89],[1935,62.13],[1936,63.18],[1937,63.51],[1938,63.85],[1939,64.01],[1940,63.58],[1941,64.98],[1942,65.65],[1943,65.84],[1944,64.88],[1945,65.42],[1946,66.07],[1947,66.26],[1948,67.34],[1949,67.97],[1950,68.94],[1951,68.71],[1952,69.62],[1953,69.53],[1954,70],[1955,70.08],[1956,70.21],[1957,70.56],[1958,71.3],[1959,71.46],[1960,71.44],[1961,71.76],[1962,71.32],[1963,71.31],[1964,72.2],[1965,72.33],[1966,72.47],[1967,72.77],[1968,72.72],[1969,72.73],[1970,73.14],[1971,73.26],[1972,73.78],[1973,74.08],[1974,74.43],[1975,74.82],[1976,74.94],[1977,75.39],[1978,75.34],[1979,75.64],[1980,75.64],[1981,75.87],[1982,76.21],[1983,76.22],[1984,76.82],[1985,76.94],[1986,77.11],[1987,77.41],[1988,77.43],[1989,77.62],[1990,77.44],[1991,77.72],[1992,78.02],[1993,78.31],[1994,78.6],[1995,78.68],[1996,79.17],[1997,79.37],[1998,79.62],[1999,79.88],[2000,79.99],[2001,80.41],[2002,80.62],[2003,80.72],[2004,81.28],[2005,81.45],[2006,81.75],[2007,81.94],[2008,81.9],[2009,82.06]]},{"name":"Tajikistan","region":"Europe & Central Asia","income":[[1800,428.48],[1820,437.5],[1913,975.22],[1950,1910.98],[1973,4643.65],[1990,3377.86],[1991,3006.97],[1992,1992.23],[1993,1643.5],[1994,1273.6],[1995,1097.88],[1996,899.28],[1997,898.48],[1998,928.55],[1999,944.1],[2000,1001.5],[2001,1080.51],[2002,1158.35],[2003,1249.69],[2004,1353.05],[2005,1413],[2006,1502.86],[2007,1610.49],[2008,1727.33],[2009,1775.38]],"population":[[1800,466629],[1820,466629],[1950,1530047],[1951,1584833],[1952,1640949],[1953,1684446],[1954,1729862],[1955,1780850],[1956,1836703],[1957,1898639],[1958,1953527],[1959,2009483],[1960,2080556],[1961,2163433],[1962,2253472],[1963,2339558],[1964,2424081],[1965,2510619],[1966,2592754],[1967,2672279],[1968,2759277],[1969,2850066],[1970,2938516],[1971,3039443],[1972,3145141],[1973,3242778],[1974,3344985],[1975,3448869],[1976,3553782],[1977,3659375],[1978,3760973],[1979,3862932],[1980,3969126],[1981,4078516],[1982,4193811],[1983,4315817],[1984,4445727],[1985,4587499],[1986,4738036],[1987,4891199],[1988,5036494],[1989,5183469],[1990,5332472],[1991,5481045],[1992,5600694],[1993,5682454],[1994,5770963],[1995,5864473],[1996,5963936],[1997,6070759],[1998,6185515],[1999,6308673],[2000,6440732],[2001,6578681],[2002,6719567],[2003,6863752],[2004,7011556],[2005,7163506],[2006,7320815],[2007,7484274],[2008,7653394]],"lifeExpectancy":[[1950,52.31],[1951,52.52],[1952,52.94],[1953,53.35],[1954,53.77],[1955,54.18],[1956,54.59],[1957,55],[1958,55.4],[1959,55.81],[1960,56.23],[1961,56.64],[1962,57.06],[1963,57.48],[1964,57.9],[1965,58.31],[1966,58.72],[1967,59.11],[1968,59.48],[1969,59.83],[1970,60.16],[1971,60.46],[1972,60.73],[1973,60.98],[1974,61.21],[1975,61.43],[1976,61.63],[1977,61.82],[1978,62],[1979,62.18],[1980,62.36],[1981,62.56],[1982,62.78],[1983,62.99],[1984,63.2],[1985,63.37],[1986,63.46],[1987,63.45],[1988,63.34],[1989,63.15],[1990,62.9],[1991,62.64],[1992,62.42],[1993,62.28],[1994,62.24],[1995,62.3],[1996,62.46],[1997,62.68],[1998,62.94],[1999,63.22],[2000,63.54],[2001,63.89],[2002,64.28],[2003,64.71],[2004,65.16],[2005,65.61],[2006,66.04],[2007,66.43],[2008,66.78],[2009,67.07]]},{"name":"Turkey","region":"Europe & Central Asia","income":[[1800,869.92],[1820,901.21],[1821,905.71],[1822,910.24],[1823,914.79],[1824,919.36],[1825,923.95],[1826,928.56],[1827,933.2],[1828,937.86],[1829,942.55],[1830,947.26],[1831,951.99],[1832,956.75],[1833,961.52],[1834,966.33],[1835,971.16],[1836,976.01],[1837,980.88],[1838,985.78],[1839,990.71],[1840,995.66],[1841,1000.63],[1842,1005.63],[1843,1010.65],[1844,1015.7],[1845,1020.77],[1846,1025.87],[1847,1031],[1848,1036.15],[1849,1041.32],[1850,1046.53],[1851,1051.75],[1852,1057.01],[1853,1062.29],[1854,1067.59],[1855,1072.93],[1856,1078.29],[1857,1083.67],[1858,1089.09],[1859,1094.53],[1860,1100],[1861,1105.49],[1862,1111.01],[1863,1116.56],[1864,1122.14],[1865,1127.75],[1866,1133.38],[1867,1139.04],[1868,1144.73],[1869,1150.45],[1870,1156.2],[1871,1166.61],[1872,1177.11],[1873,1165.78],[1874,1154.56],[1875,1143.44],[1876,1132.44],[1877,1121.53],[1878,1110.74],[1879,1100.04],[1880,1109.95],[1881,1124.38],[1882,1139],[1883,1153.81],[1884,1168.81],[1885,1184.01],[1886,1199.41],[1887,1215],[1888,1230.8],[1889,1246.8],[1890,1263.01],[1891,1279.44],[1892,1296.07],[1893,1312.92],[1894,1329.99],[1895,1347.29],[1896,1364.81],[1897,1382.55],[1898,1400.53],[1899,1418.74],[1900,1437.19],[1901,1455.87],[1902,1474.8],[1903,1493.98],[1904,1513.4],[1905,1533.08],[1906,1553.01],[1907,1573.21],[1908,1593.66],[1909,1614.38],[1910,1635.38],[1911,1656.64],[1912,1678.18],[1913,1700],[1914,1606.12],[1915,1517.42],[1916,1433.62],[1917,1354.45],[1918,1279.65],[1919,1208.98],[1920,1142.22],[1921,1079.14],[1922,1019.54],[1923,963.24],[1924,1140.49],[1925,1257.11],[1926,1444.64],[1927,1299.53],[1928,1412.59],[1929,1606.65],[1930,1648.38],[1931,1712.44],[1932,1578.24],[1933,1751.5],[1934,1757.67],[1935,1759.11],[1936,2050.89],[1937,2075.18],[1938,2211.33],[1939,2318.35],[1940,2133.46],[1941,1913.46],[1942,1968.48],[1943,1761.75],[1944,1662.85],[1945,1418.05],[1946,1783.28],[1947,1833.7],[1948,2026.87],[1949,1873.5],[1950,1994.79],[1951,2185.5],[1952,2376.31],[1953,2563.65],[1954,2414.81],[1955,2527.02],[1956,2523.46],[1957,2630.53],[1958,2654.56],[1959,2680.81],[1960,2666.17],[1961,2625.62],[1962,2705.56],[1963,2880.23],[1964,2919.57],[1965,2918.4],[1966,3175.94],[1967,3234.14],[1968,3363.34],[1969,3449.46],[1970,3524.41],[1971,3744.17],[1972,3879.15],[1973,3938.36],[1974,4137.58],[1975,4381],[1976,4636.35],[1977,4714.84],[1978,4730.4],[1979,4577.55],[1980,4436.96],[1981,4502.89],[1982,4601.84],[1983,4645.47],[1984,4784.95],[1985,4901.1],[1986,5113.39],[1987,5424.52],[1988,5502.7],[1989,5438.47],[1990,5807.69],[1991,5733.32],[1992,5946.29],[1993,6290.02],[1994,5826.6],[1995,6125],[1996,6432.18],[1997,6791.42],[1998,6877],[1999,6442.52],[2000,6803.29],[2001,6192.75],[2002,6577.7],[2003,6856.14],[2004,7357.12],[2005,7786],[2006,8294.63],[2007,8585.97],[2008,8547.69],[2009,8040.78]],"population":[[1820,10074000],[1870,11793000],[1913,15000000],[1923,13877000],[1924,13968000],[1925,14059000],[1926,14151000],[1927,14250000],[1928,14476000],[1929,14705000],[1930,14928000],[1931,15174000],[1932,15414000],[1933,15658000],[1934,15906000],[1935,16158000],[1936,16434000],[1937,16725000],[1938,17016000],[1939,17517000],[1940,17821000],[1941,18011000],[1942,18203000],[1943,18396000],[1944,18592000],[1945,18790000],[1946,19235000],[1947,19690000],[1948,20156000],[1949,20634000],[1950,21121639],[1951,21669334],[1952,22235677],[1953,22830516],[1954,23463817],[1955,24144571],[1956,24877395],[1957,25670939],[1958,26505694],[1959,27355811],[1960,28217122],[1961,29029976],[1962,29788695],[1963,30509221],[1964,31227361],[1965,31950718],[1966,32677758],[1967,33411317],[1968,34164759],[1969,34952315],[1970,35758382],[1971,36579964],[1972,37492953],[1973,38503442],[1974,39512945],[1975,40529798],[1976,41485146],[1977,42404033],[1978,43316697],[1979,44222576],[1980,45120802],[1981,46222187],[1982,47328791],[1983,48440170],[1984,49554400],[1985,50669003],[1986,51780211],[1987,52881328],[1988,53966237],[1989,55031033],[1990,56084632],[1991,57135435],[1992,58179144],[1993,59212510],[1994,60220670],[1995,61188984],[1996,62127894],[1997,63047647],[1998,63945635],[1999,64819580],[2000,65666677],[2001,66493970],[2002,67308928],[2003,68109469],[2004,68893918],[2005,69660559],[2006,70413958],[2007,71158647],[2008,71892807]],"lifeExpectancy":[[1800,35],[1930,35],[1937,35.43],[1942,31.34],[1947,38.1],[1950,41.73],[1951,42.2],[1952,43.12],[1953,44.05],[1954,44.97],[1955,45.89],[1956,46.81],[1957,47.71],[1958,48.6],[1959,49.45],[1960,50.26],[1961,51.02],[1962,51.7],[1963,52.3],[1964,52.84],[1965,53.32],[1966,53.77],[1967,54.22],[1968,54.67],[1969,55.15],[1970,55.66],[1971,56.2],[1972,56.75],[1973,57.29],[1974,57.83],[1975,58.34],[1976,58.81],[1977,59.24],[1978,59.63],[1979,59.98],[1980,60.3],[1981,60.6],[1982,60.91],[1983,61.23],[1984,61.59],[1985,61.98],[1986,62.43],[1987,62.93],[1988,63.46],[1989,64.03],[1990,64.63],[1991,65.24],[1992,65.85],[1993,66.45],[1994,67.03],[1995,67.59],[1996,68.11],[1997,68.62],[1998,69.1],[1999,69.55],[2000,69.97],[2001,70.34],[2002,70.67],[2003,70.95],[2004,71.19],[2005,71.4],[2006,71.57],[2007,71.74],[2008,71.9],[2009,72.06]]},{"name":"Turkmenistan","region":"Europe & Central Asia","income":[[1800,513.35],[1820,524.16],[1913,1168.39],[1950,2289.5],[1973,6829.32],[1990,5132.08],[1991,4769.85],[1992,3961.89],[1993,3934.1],[1994,3184.62],[1995,2895.41],[1996,3028.61],[1997,2631.32],[1998,2764.27],[1999,3159.59],[2000,3289.74],[2001,3361.4],[2002,3359.35],[2003,3522.74],[2004,3967.58],[2005,4247],[2006,4656.65],[2007,5114.98],[2008,5563.05],[2009,5702.66]],"population":[[1800,367215],[1820,367215],[1950,1204075],[1951,1226498],[1952,1252749],[1953,1282640],[1954,1313402],[1955,1347774],[1956,1381525],[1957,1425659],[1958,1478072],[1959,1530083],[1960,1584820],[1961,1644416],[1962,1704534],[1963,1765175],[1964,1825383],[1965,1882148],[1966,1935923],[1967,1994131],[1968,2054487],[1969,2116408],[1970,2181272],[1971,2246710],[1972,2313102],[1973,2379578],[1974,2450654],[1975,2523906],[1976,2594288],[1977,2663744],[1978,2733933],[1979,2804142],[1980,2875133],[1981,2946676],[1982,3018436],[1983,3091431],[1984,3164611],[1985,3240472],[1986,3323673],[1987,3410704],[1988,3492186],[1989,3573704],[1990,3667588],[1991,3760644],[1992,3848424],[1993,3933744],[1994,4018832],[1995,4101998],[1996,4184336],[1997,4267070],[1998,4350224],[1999,4433925],[2000,4518268],[2001,4603244],[2002,4688963],[2003,4775544],[2004,4863169],[2005,4952081],[2006,5042920],[2007,5136262],[2008,5232077]],"lifeExpectancy":[[1950,50.5],[1951,50.71],[1952,51.13],[1953,51.55],[1954,51.97],[1955,52.39],[1956,52.81],[1957,53.22],[1958,53.63],[1959,54.05],[1960,54.47],[1961,54.89],[1962,55.31],[1963,55.74],[1964,56.16],[1965,56.58],[1966,56.99],[1967,57.38],[1968,57.76],[1969,58.11],[1970,58.43],[1971,58.73],[1972,58.99],[1973,59.23],[1974,59.45],[1975,59.66],[1976,59.89],[1977,60.12],[1978,60.38],[1979,60.66],[1980,60.96],[1981,61.27],[1982,61.57],[1983,61.87],[1984,62.14],[1985,62.37],[1986,62.55],[1987,62.67],[1988,62.73],[1989,62.76],[1990,62.76],[1991,62.75],[1992,62.78],[1993,62.83],[1994,62.94],[1995,63.08],[1996,63.25],[1997,63.44],[1998,63.61],[1999,63.78],[2000,63.92],[2001,64.03],[2002,64.13],[2003,64.21],[2004,64.28],[2005,64.37],[2006,64.49],[2007,64.63],[2008,64.83],[2009,65.06]]},{"name":"Ukraine","region":"Europe & Central Asia","income":[[1800,807.51],[1820,824.52],[1913,1837.91],[1950,3601.45],[1973,6636.82],[1990,8123.2],[1991,7400.99],[1992,6650.45],[1993,5704.11],[1994,4419.12],[1995,3909.54],[1996,3548.69],[1997,3472.48],[1998,3435.91],[1999,3460.32],[2000,3700.35],[2001,4082.19],[2002,4334.82],[2003,4781.15],[2004,5400.28],[2005,5583],[2006,6027.07],[2007,6541.78],[2008,6716.38],[2009,5730.86]],"population":[[1800,11215490],[1820,11215490],[1950,36774854],[1951,37435785],[1952,38006180],[1953,38541349],[1954,38993798],[1955,39368099],[1956,39940180],[1957,40655779],[1958,41359132],[1959,42006030],[1960,42644035],[1961,43195765],[1962,43697245],[1963,44255938],[1964,44785626],[1965,45234869],[1966,45673640],[1967,46111262],[1968,46510301],[1969,46871405],[1970,47235697],[1971,47637239],[1972,48026627],[1973,48367002],[1974,48676939],[1975,48973428],[1976,49233524],[1977,49453675],[1978,49642987],[1979,49835012],[1980,50046649],[1981,50235677],[1982,50397455],[1983,50573066],[1984,50769375],[1985,50944248],[1986,51095072],[1987,51218101],[1988,51422963],[1989,51501478],[1990,51622275],[1991,51730355],[1992,51869109],[1993,51887112],[1994,51637611],[1995,51247259],[1996,50812520],[1997,50369926],[1998,49938798],[1999,49487245],[2000,49007559],[2001,48510505],[2002,48058877],[2003,47668303],[2004,47309706],[2005,46996765],[2006,46710816],[2007,46435909],[2008,46170273]],"lifeExpectancy":[[1800,36.6],[1900,36.6],[1920,36.6],[1926,46.95],[1939,50],[1940,49.8],[1941,24.7],[1942,19.4],[1943,18.2],[1944,28.7],[1945,35.3],[1946,55.2],[1947,45.1],[1948,57.8],[1949,60.6],[1950,64.28],[1951,64.72],[1952,65.58],[1953,66.39],[1954,67.14],[1955,67.83],[1956,68.47],[1957,69.06],[1958,69.58],[1959,69.43],[1960,71.06],[1961,71.34],[1962,70.76],[1963,71.39],[1964,72.19],[1965,71.63],[1966,71.9],[1967,71.5],[1968,71.59],[1969,70.97],[1970,70.87],[1971,71.1],[1972,70.86],[1973,71.05],[1974,70.94],[1975,70.28],[1976,70.34],[1977,70.02],[1978,69.98],[1979,69.72],[1980,69.7],[1981,69.74],[1982,69.9],[1983,69.88],[1984,69.57],[1985,69.88],[1986,71.24],[1987,71.04],[1988,70.93],[1989,70.88],[1990,70.46],[1991,69.64],[1992,69],[1993,68.31],[1994,67.7],[1995,66.79],[1996,67.11],[1997,67.69],[1998,68.57],[1999,68.15],[2000,67.79],[2001,67.93],[2002,67.81],[2003,67.87],[2004,67.73],[2005,67.31],[2006,67.96],[2007,68.17],[2008,68.31],[2009,68.45]]},{"name":"United Kingdom","region":"Europe & Central Asia","income":[[1800,2716.87],[1801,2736.98],[1802,2740.53],[1803,2744.1],[1804,2747.66],[1805,2751.24],[1806,2754.81],[1807,2758.39],[1808,2761.98],[1809,2765.57],[1810,2769.16],[1811,2772.76],[1812,2776.37],[1813,2779.98],[1814,2783.59],[1815,2787.21],[1816,2790.83],[1817,2794.46],[1818,2798.1],[1819,2801.73],[1820,2805.38],[1821,2809.02],[1822,2812.67],[1823,2816.33],[1824,2819.99],[1825,2823.66],[1826,2827.33],[1827,2831],[1828,2834.68],[1829,2838.37],[1830,2842.06],[1831,2931.7],[1832,2862.16],[1833,2851.91],[1834,2926.94],[1835,3041.81],[1836,3111.03],[1837,3028.56],[1838,3150.67],[1839,3255.28],[1840,3119.72],[1841,3013.78],[1842,2908.86],[1843,2924.4],[1844,3060.08],[1845,3181.7],[1846,3351.5],[1847,3382.2],[1848,3460.12],[1849,3541.79],[1850,3523.8],[1851,3692.63],[1852,3723.87],[1853,3822.77],[1854,3879.19],[1855,3818.21],[1856,4039.63],[1857,4065.93],[1858,4029.36],[1859,4084.87],[1860,4128.82],[1861,4192.26],[1862,4171.61],[1863,4157.38],[1864,4221.29],[1865,4300.03],[1866,4316.17],[1867,4222.72],[1868,4304.55],[1869,4280.86],[1870,4490.23],[1871,4689.29],[1872,4671.41],[1873,4735.49],[1874,4766.1],[1875,4832.56],[1876,4827.62],[1877,4820.64],[1878,4788.69],[1879,4718.33],[1880,4893.99],[1881,5022.22],[1882,5127.23],[1883,5127.61],[1884,5097.13],[1885,5029.61],[1886,5066.69],[1887,5225.9],[1888,5417.24],[1889,5663.07],[1890,5641.99],[1891,5594.67],[1892,5413.33],[1893,5363.26],[1894,5670.28],[1895,5795.27],[1896,5979.45],[1897,6000.48],[1898,6231.6],[1899,6427.55],[1900,6321.8],[1901,6263.51],[1902,6368.9],[1903,6248.33],[1904,6231.91],[1905,6362.14],[1906,6517.81],[1907,6584.65],[1908,6261.81],[1909,6348.13],[1910,6489.23],[1911,6627.33],[1912,6701.7],[1913,6925.2],[1914,6933.69],[1915,7442.73],[1916,7578],[1917,7629.56],[1918,7683.46],[1919,6854.63],[1920,6400.75],[1921,6247.68],[1922,6526.04],[1923,6698.84],[1924,6925.75],[1925,7240.38],[1926,6947.11],[1927,7480.27],[1928,7539.42],[1929,7745.39],[1930,7657.49],[1931,7231.83],[1932,7245.67],[1933,7427.52],[1934,7892.03],[1935,8161.54],[1936,8493.92],[1937,8750.7],[1938,8819.43],[1939,8813.73],[1940,9649.17],[1941,10529.74],[1942,10750.98],[1943,10898.52],[1944,10422.38],[1945,9930.83],[1946,9493.42],[1947,9295.07],[1948,9493.84],[1949,9789.47],[1950,9766.5],[1951,10025.45],[1952,9979.51],[1953,10338.51],[1954,10723.3],[1955,11073.65],[1956,11158.95],[1957,11283.18],[1958,11211.11],[1959,11596.73],[1960,12167.33],[1961,12464.91],[1962,12477.18],[1963,12876.6],[1964,13465.99],[1965,13724.35],[1966,13912.63],[1967,14142.85],[1968,14651.01],[1969,14850.49],[1970,15154.18],[1971,15399.08],[1972,15895.12],[1973,16924.43],[1974,16690.27],[1975,16673.64],[1976,17050.63],[1977,17428.75],[1978,18053.95],[1979,18531.69],[1980,18199.83],[1981,17940.78],[1982,18232.42],[1983,18865.5],[1984,19309.67],[1985,19935.24],[1986,20747.69],[1987,21664.79],[1988,22673.28],[1989,23100.74],[1990,23123.53],[1991,22739.73],[1992,22705.09],[1993,23170.28],[1994,24118.67],[1995,24716.01],[1996,25328.77],[1997,26074.53],[1998,26773.33],[1999,27467.51],[2000,28644.71],[2001,28978.41],[2002,29479],[2003,30204.15],[2004,31097.52],[2005,31580],[2006,32293.8],[2007,32909.5],[2008,32875.34],[2009,31042.47]],"population":[[1820,16186397],[1821,16427955],[1822,16661282],[1823,16897898],[1824,17139513],[1825,17381418],[1826,17629610],[1827,17858803],[1828,18093284],[1829,18329053],[1830,18569823],[1831,18811881],[1832,19028016],[1833,19246151],[1834,19468285],[1835,19691420],[1836,19918844],[1837,20136267],[1838,20354979],[1839,20578690],[1840,20804402],[1841,21027114],[1842,21284460],[1843,21504941],[1844,21751903],[1845,21994095],[1846,22231076],[1847,22279863],[1848,22246880],[1849,22266109],[1850,22287069],[1851,22310067],[1852,22567009],[1853,22837200],[1854,23117738],[1855,23417123],[1856,23728007],[1857,23974430],[1858,24230353],[1859,24488987],[1860,24746160],[1861,25009641],[1862,25291179],[1863,25561448],[1864,25828236],[1865,26107967],[1866,26385197],[1867,26667813],[1868,26955755],[1869,27249851],[1870,27544197],[1871,27844139],[1872,28050928],[1873,28385947],[1874,28730581],[1875,29082812],[1876,29444523],[1877,29814831],[1878,30173677],[1879,30557062],[1880,30920888],[1881,31273446],[1882,31576465],[1883,31875253],[1884,32184118],[1885,32500733],[1886,32822214],[1887,33142079],[1888,33464925],[1889,33793233],[1890,34127982],[1891,34472021],[1892,34836751],[1893,35211963],[1894,35593770],[1895,35976405],[1896,36367212],[1897,36763751],[1898,37166289],[1899,37569674],[1900,37975154],[1901,38373808],[1902,38737346],[1903,39102443],[1904,39474558],[1905,39850962],[1906,40231673],[1907,40614789],[1908,41003923],[1909,41398500],[1910,41795923],[1911,42150769],[1912,42318019],[1913,42556673],[1914,42965211],[1915,43296057],[1916,43473615],[1917,43573615],[1918,43529634],[1919,43437404],[1920,43718000],[1921,44072000],[1922,44372000],[1923,44596000],[1924,44915000],[1925,45059000],[1926,45232000],[1927,45389000],[1928,45578000],[1929,45672000],[1930,45866000],[1931,46074000],[1932,46335000],[1933,46520000],[1934,46666000],[1935,46868000],[1936,47081000],[1937,47289000],[1938,47494000],[1939,47991000],[1940,48226000],[1941,48216000],[1942,48400000],[1943,48789000],[1944,49016000],[1945,49182000],[1946,49217000],[1947,49519000],[1948,50014000],[1949,50312000],[1950,50127000],[1951,50290000],[1952,50430000],[1953,50593000],[1954,50765000],[1955,50946000],[1956,51184000],[1957,51430000],[1958,51652000],[1959,51956000],[1960,52372000],[1961,52807000],[1962,53292000],[1963,53625000],[1964,53991000],[1965,54350000],[1966,54643000],[1967,54959000],[1968,55214000],[1969,55461000],[1970,55632000],[1971,55907000],[1972,56079000],[1973,56210000],[1974,56224000],[1975,56215000],[1976,56206000],[1977,56179000],[1978,56167000],[1979,56228000],[1980,56314000],[1981,56382597],[1982,56339704],[1983,56382623],[1984,56462228],[1985,56620240],[1986,56796260],[1987,56981620],[1988,57159603],[1989,57324472],[1990,57493307],[1991,57665646],[1992,57866349],[1993,58026920],[1994,58212518],[1995,58426014],[1996,58618663],[1997,58808266],[1998,59035652],[1999,59293320],[2000,59522468],[2001,59723243],[2002,59912431],[2003,60094648],[2004,60270708],[2005,60441457],[2006,60609153],[2007,60776238],[2008,60943912]],"lifeExpectancy":[[1800,40.02],[1803,40.02],[1808,40.58],[1813,41.25],[1818,40.84],[1823,40.47],[1828,41.43],[1833,40.89],[1838,40.56],[1841,41.7],[1842,41.35],[1843,41.86],[1844,41.55],[1845,42.56],[1846,39.96],[1847,38.33],[1848,39.5],[1849,37.38],[1850,42.8],[1851,41.42],[1852,40.93],[1853,40.56],[1854,39.34],[1855,41.03],[1856,43.25],[1857,41.88],[1858,40.04],[1859,40.84],[1860,43.01],[1861,42.38],[1862,42.52],[1863,40.4],[1864,39.97],[1865,40.65],[1866,40.41],[1867,42.62],[1868,42],[1869,41.67],[1870,40.95],[1871,41.31],[1872,42.9],[1873,43.78],[1874,42.13],[1875,41.85],[1876,43.69],[1877,44.7],[1878,43.01],[1879,44.27],[1880,43.78],[1881,46.11],[1882,44.87],[1883,45.09],[1884,44.79],[1885,45.76],[1886,45.33],[1887,45.65],[1888,46.81],[1889,46.34],[1890,44.75],[1891,44.29],[1892,45.51],[1893,44.87],[1894,48.34],[1895,45.73],[1896,47.41],[1897,47.23],[1898,46.98],[1899,46.13],[1900,46.32],[1901,47.91],[1902,49.08],[1903,50.43],[1904,49.11],[1905,50.86],[1906,50.58],[1907,51.44],[1908,51.84],[1909,52.52],[1910,53.99],[1911,51.54],[1912,54.55],[1913,53.83],[1914,51.99],[1915,48.2],[1916,47.73],[1917,45.57],[1918,40.43],[1919,54.12],[1920,56.6],[1921,58.35],[1922,57.13],[1923,59.4],[1924,58.17],[1925,58.51],[1926,59.66],[1927,59.04],[1928,59.99],[1929,57.71],[1930,60.89],[1931,60.11],[1932,60.63],[1933,60.67],[1934,61.4],[1935,62.05],[1936,61.85],[1937,61.88],[1938,63.3],[1939,63.69],[1940,60.97],[1941,61.37],[1942,63.99],[1943,64.01],[1944,64.85],[1945,65.85],[1946,66.47],[1947,66.44],[1948,68.5],[1949,68.19],[1950,68.7],[1951,68.3],[1952,69.6],[1953,69.87],[1954,70.24],[1955,70.21],[1956,70.48],[1957,70.6],[1958,70.78],[1959,70.88],[1960,71.1],[1961,70.85],[1962,70.92],[1963,70.83],[1964,71.62],[1965,71.61],[1966,71.53],[1967,72.16],[1968,71.79],[1969,71.75],[1970,72],[1971,72.32],[1972,72.1],[1973,72.31],[1974,72.51],[1975,72.78],[1976,72.76],[1977,73.25],[1978,73.18],[1979,73.29],[1980,73.72],[1981,74.06],[1982,74.19],[1983,74.44],[1984,74.83],[1985,74.68],[1986,74.95],[1987,75.3],[1988,75.41],[1989,75.55],[1990,75.89],[1991,76.06],[1992,76.46],[1993,76.32],[1994,76.88],[1995,76.78],[1996,77.05],[1997,77.31],[1998,77.45],[1999,77.56],[2000,78.04],[2001,78.31],[2002,78.43],[2003,78.52],[2004,79.1],[2005,79.3],[2006,79.53],[2007,79.34],[2008,79.5],[2009,79.64]]},{"name":"Uzbekistan","region":"Europe & Central Asia","income":[[1800,346.43],[1820,353.72],[1913,788.48],[1950,1545.05],[1973,2395.67],[1990,1993.43],[1991,1935.31],[1992,1682.5],[1993,1611.38],[1994,1499.51],[1995,1460.98],[1996,1461.98],[1997,1513.43],[1998,1554.93],[1999,1597.63],[2000,1635.22],[2001,1681.66],[2002,1724.3],[2003,1771.19],[2004,1876.6],[2005,1975],[2006,2091.38],[2007,2255.67],[2008,2424.23],[2009,2586.96]],"population":[[1800,1919159],[1820,1919159],[1950,6292797],[1951,6489850],[1952,6681196],[1953,6886387],[1954,7061494],[1955,7232067],[1956,7440744],[1957,7694366],[1958,7951857],[1959,8223106],[1960,8531032],[1961,8867714],[1962,9209650],[1963,9546588],[1964,9877755],[1965,10205805],[1966,10529599],[1967,10864030],[1968,11232040],[1969,11591490],[1970,11940155],[1971,12334057],[1972,12741848],[1973,13147733],[1974,13568700],[1975,13987696],[1976,14404009],[1977,14808950],[1978,15207113],[1979,15605490],[1980,16000074],[1981,16413399],[1982,16849973],[1983,17298283],[1984,17764159],[1985,18258445],[1986,18769226],[1987,19279732],[1988,19694266],[1989,20112207],[1990,20624073],[1991,21137143],[1992,21614451],[1993,22049313],[1994,22462266],[1995,22847085],[1996,23219707],[1997,23596577],[1998,23977448],[1999,24363320],[2000,24755519],[2001,25155064],[2002,25563441],[2003,25981647],[2004,26410416],[2005,26851195],[2006,27307134],[2007,27780059],[2008,28268440]],"lifeExpectancy":[[1950,54.96],[1951,55.17],[1952,55.59],[1953,56.01],[1954,56.43],[1955,56.85],[1956,57.27],[1957,57.68],[1958,58.1],[1959,58.51],[1960,58.93],[1961,59.35],[1962,59.78],[1963,60.21],[1964,60.63],[1965,61.06],[1966,61.47],[1967,61.86],[1968,62.24],[1969,62.6],[1970,62.92],[1971,63.22],[1972,63.48],[1973,63.72],[1974,63.94],[1975,64.16],[1976,64.38],[1977,64.62],[1978,64.87],[1979,65.15],[1980,65.45],[1981,65.77],[1982,66.1],[1983,66.42],[1984,66.72],[1985,66.96],[1986,67.11],[1987,67.17],[1988,67.13],[1989,67],[1990,66.82],[1991,66.63],[1992,66.47],[1993,66.37],[1994,66.35],[1995,66.4],[1996,66.51],[1997,66.64],[1998,66.77],[1999,66.89],[2000,66.99],[2001,67.07],[2002,67.15],[2003,67.22],[2004,67.3],[2005,67.39],[2006,67.5],[2007,67.63],[2008,67.79],[2009,67.97]]},{"name":"Australia","region":"East Asia & Pacific","income":[[1800,671.48],[1820,701.03],[1821,707.39],[1822,728.14],[1823,752.83],[1824,794.94],[1825,833.2],[1826,848.98],[1827,874.78],[1828,896.76],[1829,946.58],[1830,1148.37],[1831,1186.8],[1832,1213.29],[1833,1217.71],[1834,1280.8],[1835,1550.03],[1836,1523.08],[1837,1596.55],[1838,1576.69],[1839,1470.98],[1840,1859.37],[1841,1586.06],[1842,1446.58],[1843,1677.46],[1844,1906.61],[1845,1961.67],[1846,2168.18],[1847,2508.31],[1848,2870.4],[1849,2836.11],[1850,2673.32],[1851,3172.92],[1852,3721.01],[1853,4073.94],[1854,3567.47],[1855,3385.66],[1856,4131.49],[1857,3645.86],[1858,3109.08],[1859,4013.76],[1860,3917.42],[1861,3858.21],[1862,3707.76],[1863,3695.5],[1864,3919.09],[1865,3738.03],[1866,3848.34],[1867,4207.41],[1868,4272.09],[1869,4187.16],[1870,4430.13],[1871,4464.33],[1872,4809.35],[1873,5175.05],[1874,5190.17],[1875,5600.81],[1876,5423.58],[1877,5462.6],[1878,5789.2],[1879,5691.19],[1880,5800.02],[1881,6029.34],[1882,5498.49],[1883,6057.02],[1884,5824.66],[1885,5985.27],[1886,5859.64],[1887,6268.79],[1888,6095.56],[1889,6424.58],[1890,6033.2],[1891,6315.77],[1892,5407.56],[1893,5018.36],[1894,5096.43],[1895,4719.83],[1896,4987.33],[1897,4628.72],[1898,5266.6],[1899,5196.68],[1900,5431.85],[1901,5195.5],[1902,5173.65],[1903,5516.93],[1904,5812.66],[1905,5795.39],[1906,6100.47],[1907,6248.06],[1908,6351.85],[1909,6740.94],[1910,7051.19],[1911,6907.66],[1912,6900.48],[1913,6979.44],[1914,6803.41],[1915,6627.25],[1916,6602.49],[1917,6484.48],[1918,6227.92],[1919,6382.25],[1920,6449.93],[1921,6646.5],[1922,6853.4],[1923,7027.1],[1924,7332.16],[1925,7515.77],[1926,7542.12],[1927,7503.19],[1928,7378.65],[1929,7123.12],[1930,6372.4],[1931,5892.35],[1932,6176.78],[1933,6553.91],[1934,6848.22],[1935,7197.03],[1936,7465.37],[1937,7776.39],[1938,7966.79],[1939,7911.61],[1940,8345.5],[1941,9187.46],[1942,10158.18],[1943,10425.32],[1944,9964.06],[1945,9361.6],[1946,8925.84],[1947,9019.86],[1948,9430.04],[1949,9794.56],[1950,10031.12],[1951,10160.74],[1952,10039.6],[1953,10157.91],[1954,10544.09],[1955,10864.62],[1956,10974.13],[1957,10949.65],[1958,11240.96],[1959,11678.07],[1960,11897.96],[1961,11711.5],[1962,12217.23],[1963,12722.22],[1964,13329.9],[1965,13739.93],[1966,13860.96],[1967,14526.12],[1968,15088.56],[1969,15647.11],[1970,16273.14],[1971,16633.13],[1972,16788.63],[1973,17429.72],[1974,17574.58],[1975,17824.57],[1976,18351.07],[1977,18334.2],[1978,18635.04],[1979,19380.64],[1980,19505.55],[1981,19841.88],[1982,19477.01],[1983,19214.56],[1984,20295.25],[1985,21040.49],[1986,21168.81],[1987,21888.89],[1988,22508.19],[1989,23133.98],[1990,23151.89],[1991,22893.86],[1992,23424.77],[1993,24053.1],[1994,24780.17],[1995,25518.72],[1996,26151.13],[1997,26997.94],[1998,28169.15],[1999,28983.27],[2000,29241.51],[2001,30043.24],[2002,30687.75],[2003,31634.24],[2004,32098.51],[2005,32798],[2006,33119],[2007,34084.07],[2008,34239.63],[2009,34327.26]],"population":[[1820,334000],[1821,331000],[1822,329000],[1823,329000],[1824,332000],[1825,333000],[1826,330000],[1827,328000],[1828,326000],[1829,326000],[1830,330000],[1831,333000],[1832,338000],[1833,349000],[1834,354000],[1835,358000],[1836,367000],[1837,373000],[1838,388000],[1839,403000],[1840,420000],[1841,448000],[1842,465000],[1843,472000],[1844,482000],[1845,494000],[1846,505000],[1847,518000],[1848,538000],[1849,576000],[1850,605000],[1851,636000],[1852,710000],[1853,795000],[1854,887000],[1855,983000],[1856,1065000],[1857,1156000],[1858,1235000],[1859,1279000],[1860,1326000],[1861,1346000],[1862,1382000],[1863,1432000],[1864,1495000],[1865,1558000],[1866,1609000],[1867,1647000],[1868,1700000],[1869,1750000],[1870,1775000],[1871,1675000],[1872,1722000],[1873,1769000],[1874,1822000],[1875,1874000],[1876,1929000],[1877,1995000],[1878,2062000],[1879,2127000],[1880,2197000],[1881,2269000],[1882,2348000],[1883,2447000],[1884,2556000],[1885,2650000],[1886,2741000],[1887,2835000],[1888,2932000],[1889,3022000],[1890,3107000],[1891,3196000],[1892,3274000],[1893,3334000],[1894,3395000],[1895,3460000],[1896,3523000],[1897,3586000],[1898,3642000],[1899,3691000],[1900,3741000],[1901,3795000],[1902,3850000],[1903,3896000],[1904,3946000],[1905,4004000],[1906,4062000],[1907,4127000],[1908,4197000],[1909,4278000],[1910,4375000],[1911,4500000],[1912,4661000],[1913,4821000],[1914,4933000],[1915,4971000],[1916,4955000],[1917,4950000],[1918,5032000],[1919,5193000],[1920,5358000],[1921,5461000],[1922,5574000],[1923,5697000],[1924,5819000],[1925,5943000],[1926,6064000],[1927,6188000],[1928,6304000],[1929,6396000],[1930,6469000],[1931,6527000],[1932,6579000],[1933,6631000],[1934,6682000],[1935,6732000],[1936,6783000],[1937,6841000],[1938,6904000],[1939,6971000],[1940,7042000],[1941,7111000],[1942,7173000],[1943,7236000],[1944,7309000],[1945,7389000],[1946,7474000],[1947,7578000],[1948,7715000],[1949,7919000],[1950,8267337],[1951,8510600],[1952,8691212],[1953,8857924],[1954,9064017],[1955,9277087],[1956,9500606],[1957,9712569],[1958,9915267],[1959,10131729],[1960,10361273],[1961,10598814],[1962,10794968],[1963,11001483],[1964,11218304],[1965,11439384],[1966,11655083],[1967,11872264],[1968,12101660],[1969,12379384],[1970,12660160],[1971,12937200],[1972,13177000],[1973,13380400],[1974,13599100],[1975,13771400],[1976,13915500],[1977,14074100],[1978,14248600],[1979,14421900],[1980,14615900],[1981,14923260],[1982,15184200],[1983,15393500],[1984,15579400],[1985,15788300],[1986,16018350],[1987,16257249],[1988,16520206],[1989,16780235],[1990,17022133],[1991,17257526],[1992,17481977],[1993,17688687],[1994,17892557],[1995,18116171],[1996,18348078],[1997,18565243],[1998,18768789],[1999,18968247],[2000,19164620],[2001,19357594],[2002,19546792],[2003,19731984],[2004,19913144],[2005,20090437],[2006,20264082],[2007,20434176],[2008,20600856]],"lifeExpectancy":[[1800,34.05],[1870,34.05],[1921,61.04],[1922,62.89],[1923,61.73],[1924,62.53],[1925,63.22],[1926,62.94],[1927,62.91],[1928,62.96],[1929,63.15],[1930,64.96],[1931,65.39],[1932,65.69],[1933,65.52],[1934,64.88],[1935,65.15],[1936,65.27],[1937,65.83],[1938,65.87],[1939,65.82],[1940,66.26],[1941,66.14],[1942,65.88],[1943,66.4],[1944,68.03],[1945,68.46],[1946,67.98],[1947,68.59],[1948,68.51],[1949,69.13],[1950,69.02],[1951,68.72],[1952,69.12],[1953,69.7],[1954,69.85],[1955,70.17],[1956,70.05],[1957,70.33],[1958,70.88],[1959,70.45],[1960,70.89],[1961,71.16],[1962,70.93],[1963,70.99],[1964,70.65],[1965,70.98],[1966,70.82],[1967,71.1],[1968,70.73],[1969,71.14],[1970,70.81],[1971,71.41],[1972,71.93],[1973,72.14],[1974,71.89],[1975,72.84],[1976,72.88],[1977,73.49],[1978,73.88],[1979,74.44],[1980,74.6],[1981,74.96],[1982,74.74],[1983,75.55],[1984,76.02],[1985,75.45],[1986,76.13],[1987,76.32],[1988,76.35],[1989,76.45],[1990,77.05],[1991,77.54],[1992,77.54],[1993,78.07],[1994,78.07],[1995,78.45],[1996,78.53],[1997,78.79],[1998,79.28],[1999,79.53],[2000,79.93],[2001,80.27],[2002,80.29],[2003,80.69],[2004,81.04],[2005,81.44],[2006,81.63],[2007,81.67],[2008,81.57],[2009,81.71]]},{"name":"Brunei","region":"East Asia & Pacific","income":[[1800,1011.68],[1820,1011.68],[1913,1367.71],[1929,1440.53],[1950,35554.36],[1970,48558.11],[1971,51244.66],[1972,54117.16],[1973,56943.9],[1974,61078.94],[1975,58861.78],[1976,67973.72],[1977,72555.23],[1978,74695.43],[1979,88381.11],[1980,79534.57],[1981,61817.06],[1982,62407.21],[1983,60976.16],[1984,59654.85],[1985,57144.31],[1986,54048.44],[1987,53585.9],[1988,52649.8],[1989,50628.31],[1990,50563.57],[1991,51141.01],[1992,49174.41],[1993,48067.97],[1994,47618.1],[1995,47786.78],[1996,48234.28],[1997,48967.31],[1998,47521.2],[1999,47811.18],[2000,48020.35],[2001,48192.76],[2002,48906.35],[2003,49184.09],[2004,48333.67],[2005,47465],[2006,48580.7],[2007,47701.82],[2008,45859.75],[2009,44738.99]],"population":[[1800,2128],[1820,2128],[1870,5931],[1911,22000],[1921,26000],[1931,30000],[1947,41000],[1950,44983],[1951,47632],[1952,50634],[1953,53678],[1954,57070],[1955,60983],[1956,65347],[1957,69342],[1958,73521],[1959,78540],[1960,83037],[1961,87067],[1962,90822],[1963,94351],[1964,98171],[1965,102414],[1966,106629],[1967,110971],[1968,115921],[1969,121434],[1970,127554],[1971,136621],[1972,141500],[1973,145170],[1974,151000],[1975,156223],[1976,161626],[1977,167216],[1978,173000],[1979,178899],[1980,185220],[1981,192831],[1982,199468],[1983,206154],[1984,213018],[1985,220215],[1986,227691],[1987,235357],[1988,242997],[1989,250553],[1990,258172],[1991,265877],[1992,273701],[1993,281594],[1994,289516],[1995,297508],[1996,305565],[1997,313563],[1998,321371],[1999,328979],[2000,336376],[2001,343653],[2002,350898],[2003,358098],[2004,365251],[2005,372361],[2006,379444],[2007,386511],[2008,393551]],"lifeExpectancy":[[1800,29.2],[1911,29.2],[1950,60],[1951,60.08],[1952,60.26],[1953,60.44],[1954,60.65],[1955,60.86],[1956,61.1],[1957,61.34],[1958,61.61],[1959,61.88],[1960,62.16],[1961,62.45],[1962,62.76],[1963,63.08],[1964,63.43],[1965,63.81],[1966,64.27],[1967,64.79],[1968,65.38],[1969,66.03],[1970,66.69],[1971,67.32],[1972,67.89],[1973,68.38],[1974,68.78],[1975,69.11],[1976,69.39],[1977,69.66],[1978,69.95],[1979,70.27],[1980,70.63],[1981,71.01],[1982,71.4],[1983,71.77],[1984,72.13],[1985,72.47],[1986,72.78],[1987,73.07],[1988,73.34],[1989,73.6],[1990,73.85],[1991,74.09],[1992,74.33],[1993,74.55],[1994,74.77],[1995,74.99],[1996,75.19],[1997,75.39],[1998,75.58],[1999,75.76],[2000,75.93],[2001,76.09],[2002,76.26],[2003,76.42],[2004,76.58],[2005,76.74],[2006,76.9],[2007,77.05],[2008,77.19],[2009,77.32]]},{"name":"Cambodia","region":"East Asia & Pacific","income":[[1800,809.23],[1820,809.23],[1950,352.03],[1951,355.21],[1952,368.47],[1953,363.27],[1954,395.75],[1955,378.15],[1956,417.47],[1957,434.04],[1958,443.98],[1959,474.59],[1960,489.73],[1961,472.2],[1962,496.91],[1963,519.81],[1964,492.19],[1965,502.02],[1966,511.05],[1967,523.43],[1968,533.17],[1969,527.47],[1970,472.62],[1971,449.47],[1972,421.62],[1973,567.93],[1974,480.68],[1975,423.41],[1976,470.18],[1977,524.97],[1978,593.45],[1979,608.24],[1980,606.6],[1981,597.38],[1982,624.48],[1983,648.64],[1984,677.86],[1985,706.88],[1986,724.21],[1987,683.9],[1988,675.38],[1989,666.82],[1990,642.9],[1991,666.82],[1992,682.3],[1993,677.3],[1994,680.57],[1995,708.19],[1996,730.42],[1997,734.29],[1998,729.51],[1999,793.34],[2000,833.36],[2001,864.97],[2002,896.23],[2003,926.11],[2004,1305.44],[2005,1453],[2006,1571.44],[2007,1830.56],[2008,1914.75],[2009,1830.97]],"population":[[1800,2090000],[1820,2090000],[1870,2340000],[1913,3070000],[1950,4471170],[1951,4581150],[1952,4693836],[1953,4809293],[1954,4927590],[1955,5048797],[1956,5183860],[1957,5322536],[1958,5464922],[1959,5611117],[1960,5761223],[1961,5919487],[1962,6083619],[1963,6253991],[1964,6426908],[1965,6602232],[1966,6779979],[1967,6960067],[1968,7142547],[1969,7327791],[1970,7394644],[1971,7387057],[1972,7450606],[1973,7533628],[1974,7607940],[1975,7489990],[1976,7223359],[1977,6978607],[1978,6749278],[1979,6716111],[1980,6869171],[1981,7059498],[1982,7272485],[1983,7499259],[1984,7656585],[1985,7805090],[1986,8066070],[1987,8371791],[1988,8689250],[1989,9017752],[1990,9355479],[1991,9704523],[1992,10150094],[1993,10643513],[1994,11008712],[1995,11282730],[1996,11542269],[1997,11782962],[1998,12012231],[1999,12239016],[2000,12466262],[2001,12695476],[2002,12926707],[2003,13160169],[2004,13396361],[2005,13636398],[2006,13881427],[2007,14131858],[2008,14387642]],"lifeExpectancy":[[1800,35],[1945,35],[1950,38.59],[1951,38.8],[1952,39.22],[1953,39.63],[1954,40.03],[1955,40.41],[1956,40.79],[1957,41.17],[1958,41.55],[1959,41.96],[1960,42.4],[1961,42.9],[1962,43.43],[1963,43.99],[1964,44.53],[1965,44.98],[1966,45.26],[1967,45.31],[1968,45.08],[1969,44.56],[1970,43.63],[1971,42.17],[1972,40.27],[1973,38.09],[1974,35.84],[1975,33.96],[1976,32.93],[1977,33.02],[1978,34.32],[1979,36.75],[1980,40.02],[1981,43.67],[1982,47.16],[1983,50.08],[1984,52.23],[1985,53.57],[1986,54.2],[1987,54.47],[1988,54.62],[1989,54.77],[1990,54.96],[1991,55.21],[1992,55.45],[1993,55.65],[1994,55.82],[1995,55.99],[1996,56.15],[1997,56.33],[1998,56.54],[1999,56.78],[2000,57.08],[2001,57.44],[2002,57.87],[2003,58.35],[2004,58.88],[2005,59.44],[2006,60.01],[2007,60.58],[2008,61.14],[2009,61.67]]},{"name":"China","region":"East Asia & Pacific","income":[[1800,985.89],[1820,863.05],[1821,859.02],[1822,855.01],[1823,851.02],[1824,847.04],[1825,843.09],[1826,839.15],[1827,835.23],[1828,831.33],[1829,827.45],[1830,823.59],[1831,819.74],[1832,815.92],[1833,812.11],[1834,808.32],[1835,804.54],[1836,800.78],[1837,797.05],[1838,793.32],[1839,789.62],[1840,785.93],[1841,782.26],[1842,778.61],[1843,774.98],[1844,771.36],[1845,767.76],[1846,764.17],[1847,760.6],[1848,757.05],[1849,753.52],[1850,750],[1851,675.4],[1852,608.22],[1853,547.72],[1854,493.24],[1855,444.18],[1856,400],[1857,420.8],[1858,442.67],[1859,465.69],[1860,489.9],[1861,515.37],[1862,542.16],[1863,570.35],[1864,600],[1865,626.77],[1866,654.74],[1867,683.95],[1868,714.47],[1869,746.35],[1870,779.65],[1871,780.42],[1872,781.18],[1873,781.94],[1874,782.71],[1875,783.47],[1876,784.24],[1877,785.01],[1878,785.78],[1879,786.55],[1880,787.32],[1881,788.09],[1882,788.86],[1883,789.63],[1884,790.4],[1885,791.18],[1886,791.95],[1887,792.73],[1888,793.5],[1889,794.28],[1890,795.06],[1891,795.78],[1892,796.5],[1893,797.22],[1894,797.94],[1895,798.66],[1896,799.38],[1897,800.11],[1898,800.83],[1899,801.56],[1900,802.28],[1901,803.06],[1902,803.84],[1903,804.62],[1904,805.4],[1905,806.18],[1906,806.96],[1907,807.74],[1908,808.53],[1909,809.31],[1910,810.09],[1911,810.88],[1912,811.66],[1913,812.45],[1914,823.4],[1915,834.5],[1916,845.75],[1917,857.15],[1918,868.7],[1919,880.41],[1920,892.28],[1921,904.31],[1922,916.5],[1923,928.85],[1924,941.37],[1925,954.06],[1926,966.92],[1927,979.96],[1928,993.16],[1929,1006.55],[1930,1015.72],[1931,1018.48],[1932,1043.08],[1933,1035.38],[1934,940.18],[1935,1010.72],[1936,1068.93],[1937,1037.42],[1938,1006.21],[1939,930.68],[1940,860.82],[1941,796.21],[1942,736.44],[1943,681.16],[1944,630.03],[1945,582.74],[1946,539],[1947,498.54],[1948,461.12],[1949,426.5],[1950,394.49],[1951,432.35],[1952,473.38],[1953,486.2],[1954,490.39],[1955,507.64],[1956,542.5],[1957,560],[1958,607.89],[1959,604.38],[1960,583.02],[1961,486.83],[1962,484.67],[1963,519.76],[1964,567.77],[1965,617.76],[1966,657.14],[1967,622.45],[1968,594.27],[1969,627.78],[1970,685.35],[1971,699.98],[1972,702.94],[1973,738.22],[1974,735.36],[1975,767.09],[1976,750.79],[1977,786.85],[1978,861.1],[1979,915.22],[1980,934.27],[1981,977.54],[1982,1044.34],[1983,1107.46],[1984,1229.08],[1985,1337.64],[1986,1406.19],[1987,1529.5],[1988,1611.38],[1989,1615.03],[1990,1647.38],[1991,1732.13],[1992,1877.41],[1993,2035.59],[1994,2214.2],[1995,2521.34],[1996,2546.44],[1997,2653.3],[1998,2635.55],[1999,2784.39],[2000,3012.12],[2001,3309.8],[2002,3695.65],[2003,4228.98],[2004,4551.13],[2005,4909.2],[2006,5450.12],[2007,6127.78],[2008,6679.2],[2009,7226.07]],"population":[[1820,381000000],[1821,383711494],[1822,386442286],[1823,389192512],[1824,391962310],[1825,394751821],[1826,397561184],[1827,400390540],[1828,403240033],[1829,406109805],[1830,409000000],[1831,409299014],[1832,409598247],[1833,409897699],[1834,410197370],[1835,410497259],[1836,410797368],[1837,411097697],[1838,411398245],[1839,411699012],[1840,412000000],[1841,412000000],[1842,412000000],[1843,412000000],[1844,412000000],[1845,412000000],[1846,412000000],[1847,412000000],[1848,412000000],[1849,412000000],[1850,412000000],[1851,408358528],[1852,404749241],[1853,401171855],[1854,397626087],[1855,394111659],[1856,390628294],[1857,387175716],[1858,383753654],[1859,380361838],[1860,377000000],[1861,375055482],[1862,373120994],[1863,371196483],[1864,369281899],[1865,367377190],[1866,365482306],[1867,363597195],[1868,361721807],[1869,359856092],[1870,358000000],[1871,358988000],[1872,359978000],[1873,360971000],[1874,361967000],[1875,362966000],[1876,363967000],[1877,364971000],[1878,365978000],[1879,366988000],[1880,368000000],[1881,369183000],[1882,370369000],[1883,371560000],[1884,372754000],[1885,373952000],[1886,375154000],[1887,376359000],[1888,377569000],[1889,378783000],[1890,380000000],[1891,381979000],[1892,383969000],[1893,385969000],[1894,387979000],[1895,390000000],[1896,391980000],[1897,393970000],[1898,395970000],[1899,397980000],[1900,400000000],[1901,402243000],[1902,404498000],[1903,406766000],[1904,409047000],[1905,411340000],[1906,413646000],[1907,415965000],[1908,418297000],[1909,420642000],[1910,423000000],[1911,427662000],[1912,432375000],[1913,437140000],[1914,441958000],[1915,446829000],[1916,451753000],[1917,456732000],[1918,461766000],[1919,466855000],[1920,472000000],[1921,473673000],[1922,475352000],[1923,477037000],[1924,478728000],[1925,480425000],[1926,482128000],[1927,483837000],[1928,485552000],[1929,487273000],[1930,489000000],[1931,492640000],[1932,496307000],[1933,500000000],[1934,502639000],[1935,505292000],[1936,507959000],[1937,510640000],[1938,513336000],[1939,516046000],[1940,518770000],[1941,521508000],[1942,524261000],[1943,527028000],[1944,529810000],[1945,532607000],[1946,535418000],[1947,538244000],[1948,541085000],[1949,543941000],[1950,546815000],[1951,557480000],[1952,568910000],[1953,581390000],[1954,595310000],[1955,608655000],[1956,621465000],[1957,637408000],[1958,653235000],[1959,666005000],[1960,667070000],[1961,660330000],[1962,665770000],[1963,682335000],[1964,698355000],[1965,715185000],[1966,735400000],[1967,754550000],[1968,774510000],[1969,796025000],[1970,818315000],[1971,841105000],[1972,862030000],[1973,881940000],[1974,900350000],[1975,916395000],[1976,930685000],[1977,943455000],[1978,956165000],[1979,969005000],[1980,981235000],[1981,993861000],[1982,1000281000],[1983,1023288000],[1984,1036825000],[1985,1051040000],[1986,1066790000],[1987,1084035000],[1988,1101630000],[1989,1118650000],[1990,1135185000],[1991,1150780000],[1992,1164970000],[1993,1178440000],[1994,1191835000],[1995,1204855000],[1996,1217550000],[1997,1230075000],[1998,1241935000],[1999,1252735000],[2000,1262645000],[2001,1271850000],[2002,1280400000],[2003,1288400000],[2004,1295733978],[2005,1303182268],[2006,1310823807],[2007,1318683096],[2008,1326856173]],"lifeExpectancy":[[1800,32],[1850,32],[1856,26],[1864,31],[1871,32],[1924,32],[1930,32],[1934,34],[1936,35],[1942,37],[1949,41],[1950,39.25],[1951,39.64],[1952,40.41],[1953,44.56],[1954,46.47],[1955,48.02],[1956,50.45],[1957,50.55],[1958,50.16],[1959,38.4],[1960,31.63],[1961,34.1],[1962,44.5],[1963,51.9],[1964,53.32],[1965,55.65],[1966,56.8],[1967,58.38],[1968,59.41],[1969,60.97],[1970,62.65],[1971,63.74],[1972,63.12],[1973,62.78],[1974,62.5],[1975,62.7],[1976,62.44],[1977,63.97],[1978,64.24],[1979,65.09],[1980,66.12],[1981,66.45],[1982,66.37],[1983,66.54],[1984,66.71],[1985,66.89],[1986,67.08],[1987,67.29],[1988,67.52],[1989,67.77],[1990,68.04],[1991,68.33],[1992,68.64],[1993,68.95],[1994,69.27],[1995,69.6],[1996,69.94],[1997,70.28],[1998,70.62],[1999,70.96],[2000,71.29],[2001,71.59],[2002,71.87],[2003,72.13],[2004,72.35],[2005,72.56],[2006,72.74],[2007,72.92],[2008,73.1],[2009,73.28]]},{"name":"Fiji","region":"East Asia & Pacific","income":[[1800,472.12],[1820,472.12],[1913,638.26],[1960,2036.45],[1961,2037.5],[1962,2039.39],[1963,2096.9],[1964,2130.13],[1965,2013.01],[1966,1960.75],[1967,2170.07],[1968,2290.59],[1969,2300.62],[1970,2538.96],[1971,2657.58],[1972,2797.76],[1973,3059.32],[1974,3076.71],[1975,3033.46],[1976,3059.19],[1977,3182.57],[1978,3183.86],[1979,3504.12],[1980,3374.56],[1981,3502.68],[1982,3209.26],[1983,3005.77],[1984,3189.48],[1985,2995.25],[1986,3197.96],[1987,2974.85],[1988,3000.08],[1989,3217.64],[1992,3410.29],[1993,3451.92],[1994,3579.65],[1995,3625.41],[1996,3760.19],[1997,3643.63],[1998,3660.5],[1999,3952.06],[2000,3856.32],[2001,3905.93],[2002,4004.48],[2003,4019.14],[2004,4205.96],[2005,4209],[2006,4249.35],[2007,4192.43],[2008,4153.29],[2009,4016.2]],"population":[[1800,130533],[1843,140000],[1850,137000],[1881,127000],[1891,121000],[1900,120000],[1901,120000],[1911,140000],[1921,157000],[1936,198000],[1946,260000],[1950,287348],[1951,295212],[1952,303594],[1953,312528],[1954,322045],[1955,332185],[1956,342987],[1957,354495],[1958,366755],[1959,379819],[1960,393348],[1961,407359],[1962,421869],[1963,436455],[1964,450647],[1965,463444],[1966,474000],[1967,485000],[1968,495000],[1969,506000],[1970,521000],[1971,533000],[1972,544000],[1973,556000],[1974,565000],[1975,576000],[1976,585000],[1977,599339],[1978,610845],[1979,622328],[1980,634506],[1981,646772],[1982,658906],[1983,671914],[1984,685572],[1985,698942],[1986,712989],[1987,719574],[1988,725994],[1989,732181],[1990,738090],[1991,743876],[1992,750242],[1993,757711],[1994,766268],[1995,775901],[1996,786603],[1997,797890],[1998,809292],[1999,820823],[2000,832494],[2001,844330],[2002,856346],[2003,868531],[2004,880874],[2005,893354],[2006,905949],[2007,918675],[2008,931545]],"lifeExpectancy":[[1800,26.1],[1925,26.1],[1950,51.57],[1951,51.8],[1952,52.25],[1953,52.69],[1954,53.12],[1955,53.54],[1956,53.95],[1957,54.35],[1958,54.74],[1959,55.13],[1960,55.52],[1961,55.92],[1962,56.31],[1963,56.72],[1964,57.13],[1965,57.54],[1966,57.97],[1967,58.39],[1968,58.81],[1969,59.22],[1970,59.63],[1971,60.04],[1972,60.44],[1973,60.85],[1974,61.25],[1975,61.66],[1976,62.06],[1977,62.47],[1978,62.87],[1979,63.28],[1980,63.69],[1981,64.11],[1982,64.55],[1983,64.98],[1984,65.41],[1985,65.81],[1986,66.15],[1987,66.42],[1988,66.6],[1989,66.7],[1990,66.73],[1991,66.71],[1992,66.67],[1993,66.63],[1994,66.61],[1995,66.63],[1996,66.7],[1997,66.8],[1998,66.93],[1999,67.1],[2000,67.28],[2001,67.48],[2002,67.69],[2003,67.91],[2004,68.11],[2005,68.31],[2006,68.5],[2007,68.68],[2008,68.87],[2009,69.05]]},{"name":"French Polynesia","region":"East Asia & Pacific","income":[[1800,809.34],[1820,809.34],[1913,1094.17],[1938,3809.11],[1950,6931.99],[1965,14652.18],[1966,15501.46],[1967,14244.02],[1968,15788.21],[1969,14827.48],[1970,14559.83],[1971,15778.51],[1972,14567.16],[1973,15221.11],[1974,17414.38],[1975,16058.06],[1976,16850.77],[1977,16682.11],[1978,17781.65],[1979,17930.54],[1980,17487.1],[1981,18420.35],[1982,19673.49],[1983,20154.29],[1984,20668.02],[1985,21218.42],[1986,22429.06],[1987,23454.41],[1988,23470.77],[1989,23644.36],[1990,23649.59],[1991,24294.36],[1992,24021.2],[1993,23573.74],[1994,23307.75],[1995,22982.73],[1996,22624.68],[1997,22634.06],[1998,23607.7],[1999,24121.45],[2000,24659.01],[2001,24575.06],[2002,25224.33],[2003,25627.58],[2004,25652.81],[2005,26016.11],[2006,26151.76],[2007,26379.1],[2008,26733.88]],"population":[[1800,62530],[1843,66000],[1850,62000],[1900,30000],[1926,36000],[1931,40000],[1936,44000],[1946,55000],[1950,62100],[1951,63000],[1952,64500],[1953,66800],[1954,69200],[1955,71900],[1956,75200],[1957,76600],[1958,78100],[1959,79600],[1960,81100],[1961,82600],[1962,83471],[1963,87046],[1964,90793],[1965,94717],[1966,98562],[1967,102756],[1968,107309],[1969,108700],[1970,114000],[1971,121100],[1972,124000],[1973,127000],[1974,130100],[1975,133100],[1976,136300],[1977,138156],[1978,142083],[1979,146463],[1980,150896],[1981,155686],[1982,160416],[1983,165319],[1984,170279],[1985,175416],[1986,180644],[1987,185839],[1988,191173],[1989,196542],[1990,201826],[1991,207085],[1992,212174],[1993,217191],[1994,222078],[1995,226766],[1996,231305],[1997,235770],[1998,240230],[1999,244679],[2000,249110],[2001,253506],[2002,257847],[2003,262125],[2004,266339],[2005,270485],[2006,274578],[2007,278633],[2008,282645]],"lifeExpectancy":[[1950,45.51],[1951,46.44],[1952,48.21],[1953,49.79],[1954,51.2],[1955,52.42],[1956,53.47],[1957,54.35],[1958,55.08],[1959,55.68],[1960,56.17],[1961,56.59],[1962,56.97],[1963,57.35],[1964,57.73],[1965,58.14],[1966,58.56],[1967,58.98],[1968,59.38],[1969,59.75],[1970,60.11],[1971,60.42],[1972,60.7],[1973,60.97],[1974,61.23],[1975,61.53],[1976,61.9],[1977,62.36],[1978,62.93],[1979,63.58],[1980,64.3],[1981,65.02],[1982,65.72],[1983,66.35],[1984,66.89],[1985,67.36],[1986,67.76],[1987,68.14],[1988,68.51],[1989,68.88],[1990,69.26],[1991,69.63],[1992,69.97],[1993,70.28],[1994,70.56],[1995,70.82],[1996,71.07],[1997,71.33],[1998,71.62],[1999,71.92],[2000,72.24],[2001,72.56],[2002,72.88],[2003,73.18],[2004,73.46],[2005,73.72],[2006,73.96],[2007,74.18],[2008,74.39],[2009,74.59]]},{"name":"Hong Kong, China","region":"East Asia & Pacific","income":[[1800,790.15],[1820,790.15],[1870,877.43],[1913,1643.6],[1950,2849.88],[1951,2949.19],[1952,3054.42],[1953,3160.15],[1954,3271.09],[1955,3386.38],[1956,3506.6],[1957,3629.08],[1958,3756.59],[1959,3888.53],[1960,4026.16],[1961,4167.37],[1962,4692.65],[1963,5246.03],[1964,5559.56],[1965,6199.22],[1966,6250.4],[1967,6197.96],[1968,6269.78],[1969,6867.09],[1970,7317.44],[1971,7668.23],[1972,8315.93],[1973,9128.67],[1974,9110.16],[1975,8981.46],[1976,10157.28],[1977,11186.14],[1978,11919.01],[1979,12585.32],[1980,13494.1],[1981,14392.75],[1982,14560.53],[1983,15156.55],[1984,16504.24],[1985,16398.3],[1986,17935.52],[1987,20038.47],[1988,21476.43],[1989,21897.43],[1990,22536.17],[1991,23541.78],[1992,24757.6],[1993,25864.07],[1994,26685.04],[1995,27018.05],[1996,27448.74],[1997,28377.63],[1998,26767.13],[1999,27452.02],[2000,29972.38],[2001,29866.07],[2002,30209.02],[2003,30961.45],[2004,33401.64],[2005,35680],[2006,37788.38],[2007,39949.68],[2008,40480.28],[2009,39086.39]],"population":[[1800,20000],[1820,20000],[1850,33000],[1870,123000],[1890,214000],[1900,306000],[1913,487000],[1914,507000],[1915,528000],[1916,550000],[1917,573000],[1918,597000],[1919,622000],[1920,648000],[1921,625000],[1922,638000],[1923,668000],[1924,696000],[1925,725000],[1926,710000],[1927,725000],[1928,753000],[1929,785000],[1930,821000],[1931,840000],[1932,901000],[1933,923000],[1934,944000],[1935,966000],[1936,988000],[1937,1282000],[1938,1479000],[1939,1750000],[1940,1786000],[1941,1639000],[1946,1550000],[1947,1750000],[1948,1800000],[1949,1857000],[1950,2237000],[1951,2015300],[1952,2125900],[1953,2242200],[1954,2364900],[1955,2490400],[1956,2614600],[1957,2736300],[1958,2854100],[1959,2967400],[1960,3075300],[1961,3168100],[1962,3305200],[1963,3420900],[1964,3504600],[1965,3597900],[1966,3629900],[1967,3722800],[1968,3802700],[1969,3863900],[1970,3959000],[1971,4045300],[1972,4115700],[1973,4212600],[1974,4319600],[1975,4395800],[1976,4518000],[1977,4583700],[1978,4667500],[1979,4929700],[1980,5063100],[1981,5183400],[1982,5264500],[1983,5345100],[1984,5397900],[1985,5456200],[1986,5524600],[1987,5584510],[1988,5628407],[1989,5660721],[1990,5687959],[1991,5752000],[1992,5829696],[1993,5934511],[1994,6067288],[1995,6225347],[1996,6391564],[1997,6495918],[1998,6544564],[1999,6599307],[2000,6658720],[2001,6713376],[2002,6762476],[2003,6809738],[2004,6855125],[2005,6898686],[2006,6940432],[2007,6980412],[2008,7018636]],"lifeExpectancy":[[1950,59.22],[1951,59.68],[1952,60.56],[1953,61.41],[1954,62.22],[1955,63],[1956,63.73],[1957,64.43],[1958,65.09],[1959,65.72],[1960,66.32],[1961,66.88],[1962,67.42],[1963,67.93],[1964,68.42],[1965,68.9],[1966,69.36],[1967,69.81],[1968,70.24],[1969,70.66],[1970,71.06],[1971,71.44],[1972,71.81],[1973,72.16],[1974,72.49],[1975,72.82],[1976,73.15],[1977,73.5],[1978,73.86],[1979,74.23],[1980,74.59],[1981,74.92],[1982,75.21],[1983,75.45],[1984,75.64],[1985,75.82],[1986,75.99],[1987,76.19],[1988,76.44],[1989,76.74],[1990,77.1],[1991,77.49],[1992,77.9],[1993,78.31],[1994,78.72],[1995,79.11],[1996,79.48],[1997,79.84],[1998,80.19],[1999,80.52],[2000,80.83],[2001,81.11],[2002,81.36],[2003,81.58],[2004,81.77],[2005,81.92],[2006,82.06],[2007,82.18],[2008,82.29],[2009,82.4]]},{"name":"Indonesia","region":"East Asia & Pacific","income":[[1800,514.12],[1820,518.73],[1850,539.86],[1870,554.8],[1871,547.26],[1872,540.26],[1873,545.43],[1874,552.01],[1875,556.52],[1876,567.79],[1877,568.92],[1878,556.43],[1879,562.78],[1880,561.02],[1881,589.05],[1882,567.29],[1883,554.72],[1884,594.98],[1885,594.45],[1886,584.96],[1887,585.6],[1888,580.55],[1889,574.95],[1890,554.2],[1891,563.86],[1892,580.08],[1893,591.63],[1894,593.51],[1895,588.5],[1896,586.03],[1897,586.17],[1898,581.95],[1899,604.2],[1900,615.87],[1901,600.79],[1902,583.07],[1903,608.33],[1904,609.52],[1905,610.21],[1906,619.6],[1907,627.93],[1908,621.19],[1909,643.39],[1910,673.94],[1911,697.39],[1912,700.78],[1913,723.93],[1914,715.9],[1915,717.23],[1916,715.29],[1917,709.19],[1918,722.53],[1919,779.14],[1920,748.45],[1921,741.55],[1922,752.97],[1923,758.93],[1924,788.01],[1925,793.81],[1926,829.87],[1927,870.85],[1928,891.62],[1929,903.85],[1930,904.26],[1931,823.28],[1932,808.18],[1933,801.5],[1934,804.93],[1935,830.79],[1936,881.13],[1937,936.18],[1938,949.68],[1939,949.53],[1940,1017.53],[1941,1013.45],[1942,743.61],[1943,659.2],[1944,525.24],[1945,462.55],[1946,477.15],[1947,526.99],[1948,611.54],[1949,666.09],[1950,704.35],[1951,744.28],[1952,749.68],[1953,770.93],[1954,807.6],[1955,823.68],[1956,804.83],[1957,858.9],[1958,792.47],[1959,816.55],[1960,834.99],[1961,859.77],[1962,849.29],[1963,798.21],[1964,809.58],[1965,802.64],[1966,794.06],[1967,762.43],[1968,827.29],[1969,911.09],[1970,986.73],[1971,1023.36],[1972,1111.11],[1973,1244.57],[1974,1262.42],[1975,1229.41],[1976,1314.63],[1977,1382.7],[1978,1418.14],[1979,1455.9],[1980,1549.1],[1981,1608.11],[1982,1516.87],[1983,1533.45],[1984,1609.27],[1985,1619.87],[1986,1690.43],[1987,1748.36],[1988,1821.98],[1989,1955.78],[1990,2097.7],[1991,2176.65],[1992,2383.14],[1993,2519.34],[1994,2674.28],[1995,2851.72],[1996,3026.82],[1997,3119.34],[1998,2656.41],[1999,2627.02],[2000,2714.94],[2001,2787.53],[2002,2873.91],[2003,2984.31],[2004,3095.79],[2005,3234],[2006,3367.56],[2007,3535.28],[2008,3699.54],[2009,3818.08]],"population":[[1820,17927000],[1821,18075923],[1822,18226083],[1823,18377490],[1824,18530155],[1825,18684088],[1826,18839300],[1827,18995801],[1828,19153603],[1829,19312715],[1830,19473149],[1831,19634916],[1832,19798026],[1833,19962492],[1834,20128324],[1835,20295533],[1836,20464132],[1837,20634131],[1838,20805542],[1839,20978378],[1840,21152649],[1841,21328367],[1842,21505546],[1843,21684196],[1844,21864330],[1845,22045961],[1846,22229101],[1847,22413762],[1848,22599957],[1849,22787699],[1850,22977000],[1851,23242887],[1852,23511851],[1853,23783928],[1854,24059152],[1855,24337562],[1856,24619194],[1857,24904084],[1858,25192271],[1859,25483793],[1860,25778689],[1861,26076997],[1862,26378757],[1863,26684009],[1864,26992793],[1865,27305150],[1866,27621122],[1867,27940751],[1868,28264078],[1869,28591147],[1870,28922000],[1871,29463000],[1872,30060000],[1873,30555000],[1874,30962000],[1875,31197000],[1876,31394000],[1877,31740000],[1878,32035000],[1879,32293000],[1880,32876000],[1881,33213000],[1882,33394000],[1883,33816000],[1884,34162000],[1885,34790000],[1886,35402000],[1887,35898000],[1888,36345000],[1889,36662000],[1890,37579000],[1891,37792000],[1892,38288000],[1893,38263000],[1894,38782000],[1895,39476000],[1896,39936000],[1897,40620000],[1898,41316000],[1899,42025000],[1900,42746000],[1901,43275000],[1902,43810000],[1903,44352000],[1904,44901000],[1905,45457000],[1906,45993000],[1907,46535000],[1908,47085000],[1909,47642000],[1910,48206000],[1911,48778000],[1912,49358000],[1913,49934000],[1914,50517000],[1915,51108000],[1916,51705000],[1917,52083000],[1918,52334000],[1919,53027000],[1920,53723000],[1921,54367000],[1922,55020000],[1923,55683000],[1924,56354000],[1925,57036000],[1926,57727000],[1927,58429000],[1928,59140000],[1929,59863000],[1930,60596000],[1931,61496000],[1932,62400000],[1933,63314000],[1934,64246000],[1935,65192000],[1936,66154000],[1937,67136000],[1938,68131000],[1939,69145000],[1940,70175000],[1941,71316000],[1942,72475000],[1943,73314000],[1944,73565000],[1945,73332000],[1946,74132000],[1947,75146000],[1948,76289000],[1949,77654000],[1950,79043000],[1951,80525000],[1952,82052000],[1953,83611000],[1954,85196000],[1955,86807000],[1956,88456000],[1957,90124000],[1958,91821000],[1959,93565000],[1960,95254000],[1961,97085000],[1962,99028000],[1963,101009000],[1964,103031000],[1965,105093000],[1966,107197000],[1967,109343000],[1968,111532000],[1969,113765000],[1970,116044000],[1971,118368000],[1972,121282000],[1973,124271000],[1974,127201000],[1975,130297000],[1976,133297000],[1977,136725000],[1978,140062000],[1979,143485000],[1980,146995000],[1981,150134000],[1982,153343000],[1983,156623000],[1984,159975000],[1985,163403000],[1986,166312000],[1987,169276000],[1988,172294000],[1989,175369000],[1990,178500000],[1991,181628000],[1992,184816000],[1993,188066000],[1994,191378000],[1995,194755000],[1996,197003000],[1997,199278000],[1998,201580000],[1999,203909000],[2000,206265000],[2001,208648000],[2002,211060000],[2003,214497000],[2004,215967000],[2005,218465000],[2006,220991000],[2007,223547000],[2008,226134000]],"lifeExpectancy":[[1800,30],[1927,30],[1932,32.5],[1937,35],[1942,27.5],[1947,27.5],[1950,36.5],[1951,36.74],[1952,37.23],[1953,37.72],[1954,38.2],[1955,38.68],[1956,39.16],[1957,39.64],[1958,40.13],[1959,40.63],[1960,41.15],[1961,41.69],[1962,42.27],[1963,42.88],[1964,43.53],[1965,44.2],[1966,44.89],[1967,45.58],[1968,46.26],[1969,46.93],[1970,47.59],[1971,48.25],[1972,48.91],[1973,49.58],[1974,50.27],[1975,50.96],[1976,51.65],[1977,52.35],[1978,53.04],[1979,53.73],[1980,54.44],[1981,55.16],[1982,55.92],[1983,56.7],[1984,57.49],[1985,58.29],[1986,59.05],[1987,59.76],[1988,60.42],[1989,61.01],[1990,61.56],[1991,62.09],[1992,62.63],[1993,63.19],[1994,63.79],[1995,64.42],[1996,65.06],[1997,65.69],[1998,66.3],[1999,66.87],[2000,67.41],[2001,67.91],[2002,68.39],[2003,68.84],[2004,69.28],[2005,69.7],[2006,70.1],[2007,70.47],[2008,70.83],[2009,71.17]]},{"name":"Japan","region":"East Asia & Pacific","income":[[1800,1055.06],[1820,1083.6],[1821,1084.14],[1822,1084.69],[1823,1085.23],[1824,1085.77],[1825,1086.32],[1826,1086.86],[1827,1087.4],[1828,1087.95],[1829,1088.49],[1830,1089.04],[1831,1089.58],[1832,1090.13],[1833,1090.68],[1834,1091.22],[1835,1091.77],[1836,1092.32],[1837,1092.86],[1838,1093.41],[1839,1093.96],[1840,1094.51],[1841,1095.05],[1842,1095.6],[1843,1096.15],[1844,1096.7],[1845,1097.25],[1846,1097.8],[1847,1098.35],[1848,1098.9],[1849,1099.45],[1850,1100],[1851,1102.43],[1852,1104.86],[1853,1107.3],[1854,1109.74],[1855,1112.19],[1856,1114.64],[1857,1117.1],[1858,1119.56],[1859,1122.03],[1860,1124.51],[1861,1126.99],[1862,1129.47],[1863,1131.97],[1864,1134.46],[1865,1136.96],[1866,1139.47],[1867,1141.99],[1868,1144.51],[1869,1147.03],[1870,1149.56],[1871,1154.57],[1872,1158.58],[1873,1164.13],[1874,1169.9],[1875,1250.55],[1876,1209.18],[1877,1234.7],[1878,1218.67],[1879,1280.18],[1880,1320.54],[1881,1265.97],[1882,1286.22],[1883,1273.17],[1884,1268.45],[1885,1303.03],[1886,1385.7],[1887,1436],[1888,1355.03],[1889,1402.18],[1890,1518.44],[1891,1432.42],[1892,1513.78],[1893,1504.42],[1894,1666.92],[1895,1669.75],[1896,1559.25],[1897,1572.31],[1898,1845.55],[1899,1686.05],[1900,1736.39],[1901,1772.67],[1902,1655.54],[1903,1745.65],[1904,1735.69],[1905,1686.69],[1906,1887.88],[1907,1924.86],[1908,1911.45],[1909,1881.91],[1910,1882.95],[1911,1954.06],[1912,1991.34],[1913,1991.28],[1914,1901.22],[1915,2045.23],[1916,2326.89],[1917,2372.82],[1918,2373.05],[1919,2593.96],[1920,2402.74],[1921,2629.72],[1922,2584.64],[1923,2549.04],[1924,2582.09],[1925,2645.71],[1926,2621.63],[1927,2614.09],[1928,2780.19],[1929,2821.34],[1930,2572.21],[1931,2549.2],[1932,2716.38],[1933,2933.51],[1934,2894.67],[1935,2919.61],[1936,3090.28],[1937,3187.62],[1938,3372.34],[1939,3877.35],[1940,3957.53],[1941,3955.34],[1942,3880.32],[1943,3885.01],[1944,3661.06],[1945,1853.44],[1946,1988.5],[1947,2121.68],[1948,2375.5],[1949,2478.13],[1950,2644.59],[1951,2926.69],[1952,3216.96],[1953,3406.85],[1954,3554.9],[1955,3814.97],[1956,4058.84],[1957,4317.69],[1958,4528.39],[1959,4893.31],[1960,5488.81],[1961,6094.42],[1962,6576.65],[1963,7061.48],[1964,7803.68],[1965,8170.01],[1966,8957.28],[1967,9847.79],[1968,10992],[1969,12218.48],[1970,13374.86],[1971,13824.24],[1972,14778.79],[1973,15742.88],[1974,15344.57],[1975,15618.93],[1976,16066.67],[1977,16610.38],[1978,17327.76],[1979,18123.89],[1980,18488.26],[1981,18938.11],[1982,19384.11],[1983,19698.72],[1984,20339.95],[1985,21109.16],[1986,21588.49],[1987,22375.94],[1988,23661.04],[1989,24704.53],[1990,25870.14],[1991,26648.77],[1992,26824.9],[1993,26818.24],[1994,27037.83],[1995,27509.08],[1996,28385.16],[1997,28816.58],[1998,27904.68],[1999,27809.6],[2000,28559.6],[2001,28569.05],[2002,28604.59],[2003,29073.61],[2004,29742.05],[2005,30290],[2006,30909.15],[2007,31636.71],[2008,31275.13],[2009,29680.68]],"population":[[1820,31000000],[1821,31032824],[1822,31065683],[1823,31098577],[1824,31131506],[1825,31164470],[1826,31197468],[1827,31230502],[1828,31263570],[1829,31296674],[1830,31329812],[1831,31362986],[1832,31396194],[1833,31429438],[1834,31462717],[1835,31496031],[1836,31529381],[1837,31562766],[1838,31596186],[1839,31629642],[1840,31663133],[1841,31696659],[1842,31730221],[1843,31763819],[1844,31797452],[1845,31831121],[1846,31864825],[1847,31898565],[1848,31932341],[1849,31966153],[1850,32000000],[1851,32117649],[1852,32235730],[1853,32354246],[1854,32473197],[1855,32592585],[1856,32712413],[1857,32832681],[1858,32953391],[1859,33074545],[1860,33196144],[1861,33318191],[1862,33440686],[1863,33563632],[1864,33687029],[1865,33810880],[1866,33935187],[1867,34059950],[1868,34185173],[1869,34310855],[1870,34437000],[1871,34648000],[1872,34859000],[1873,35070000],[1874,35235000],[1875,35436000],[1876,35713000],[1877,36018000],[1878,36315000],[1879,36557000],[1880,36807000],[1881,37112000],[1882,37414000],[1883,37766000],[1884,38138000],[1885,38427000],[1886,38622000],[1887,38866000],[1888,39251000],[1889,39688000],[1890,40077000],[1891,40380000],[1892,40684000],[1893,41001000],[1894,41350000],[1895,41775000],[1896,42196000],[1897,42643000],[1898,43145000],[1899,43626000],[1900,44103000],[1901,44662000],[1902,45255000],[1903,45841000],[1904,46378000],[1905,46829000],[1906,47227000],[1907,47691000],[1908,48260000],[1909,48869000],[1910,49518000],[1911,50215000],[1912,50941000],[1913,51672000],[1914,52396000],[1915,53124000],[1916,53815000],[1917,54437000],[1918,54886000],[1919,55253000],[1920,55818000],[1921,56490000],[1922,57209000],[1923,57937000],[1924,58686000],[1925,59522000],[1926,60490000],[1927,61430000],[1928,62361000],[1929,63244000],[1930,64203000],[1931,65205000],[1932,66189000],[1933,67182000],[1934,68090000],[1935,69238000],[1936,70171000],[1937,71278000],[1938,71879000],[1939,72364000],[1940,72967000],[1941,74005000],[1942,75029000],[1943,76005000],[1944,77178000],[1945,76224000],[1946,77199000],[1947,78119000],[1948,80155000],[1949,81971000],[1950,83805000],[1951,85163848],[1952,86459025],[1953,87655163],[1954,88753892],[1955,89815060],[1956,90766211],[1957,91563009],[1958,92388772],[1959,93296566],[1960,94091638],[1961,94943293],[1962,95831757],[1963,96811940],[1964,97826267],[1965,98882534],[1966,99790308],[1967,100825279],[1968,101960672],[1969,103171831],[1970,104344973],[1971,105696786],[1972,107188273],[1973,108706797],[1974,110162302],[1975,111573116],[1976,112774841],[1977,113872473],[1978,114912911],[1979,115890431],[1980,116807309],[1981,117648092],[1982,118454974],[1983,119269949],[1984,120034697],[1985,120754335],[1986,121491913],[1987,122091325],[1988,122613000],[1989,123107500],[1990,123537399],[1991,123946268],[1992,124329269],[1993,124668019],[1994,125014050],[1995,125341354],[1996,125645311],[1997,125956499],[1998,126246096],[1999,126494403],[2000,126699784],[2001,126891645],[2002,127065841],[2003,127214499],[2004,127333002],[2005,127417244],[2006,127463611],[2007,127467972],[2008,127425722]],"lifeExpectancy":[[1800,36.4],[1865,36.43],[1870,36.59],[1875,36.8],[1880,37.04],[1885,37.33],[1890,37.68],[1895,38.1],[1900,38.6],[1905,39.22],[1910,39.97],[1915,40.9],[1920,42.04],[1922,42.62],[1927,45.66],[1935,48.24],[1937,49],[1940,49],[1942,48.5],[1943,46],[1944,40],[1945,30.54],[1946,46.5],[1947,51.75],[1948,56.89],[1949,57.76],[1950,59.3],[1951,60.99],[1952,63.03],[1953,63.37],[1954,64.61],[1955,65.77],[1956,65.63],[1957,65.5],[1958,67.12],[1959,67.51],[1960,67.8],[1961,68.45],[1962,68.73],[1963,69.81],[1964,70.28],[1965,70.33],[1966,71.14],[1967,71.43],[1968,71.75],[1969,71.98],[1970,72.07],[1971,72.89],[1972,73.42],[1973,73.48],[1974,73.91],[1975,74.41],[1976,74.81],[1977,75.38],[1978,75.7],[1979,76.21],[1980,76.19],[1981,76.6],[1982,77.11],[1983,77.14],[1984,77.54],[1985,77.84],[1986,78.26],[1987,78.67],[1988,78.58],[1989,79.01],[1990,79.04],[1991,79.31],[1992,79.36],[1993,79.5],[1994,79.91],[1995,79.76],[1996,80.46],[1997,80.69],[1998,80.77],[1999,80.75],[2000,81.35],[2001,81.7],[2002,82],[2003,82.07],[2004,82.36],[2005,82.27],[2006,82.68],[2007,82.87],[2008,82.81],[2009,82.98]]},{"name":"Korea, Dem. Rep.","region":"East Asia & Pacific","income":[[1800,698],[1820,698],[1821,698],[1822,698],[1823,698],[1824,699],[1825,699],[1826,699],[1827,699],[1828,699],[1829,699],[1830,699],[1831,699],[1832,699],[1833,699],[1834,699],[1835,700],[1836,700],[1837,700],[1838,700],[1839,700],[1840,700],[1841,700],[1842,700],[1843,700],[1844,700],[1845,701],[1846,701],[1847,701],[1848,701],[1849,701],[1850,701],[1851,701],[1852,701],[1853,701],[1854,701],[1855,701],[1856,702],[1857,702],[1858,702],[1859,702],[1860,702],[1861,702],[1862,702],[1863,702],[1864,702],[1865,702],[1866,702],[1867,703],[1868,703],[1869,703],[1870,703],[1871,706],[1872,708],[1873,711],[1874,714],[1875,716],[1876,719],[1877,722],[1878,725],[1879,727],[1880,730],[1881,733],[1882,736],[1883,739],[1884,741],[1885,744],[1886,747],[1887,750],[1888,753],[1889,756],[1890,758],[1891,761],[1892,764],[1893,767],[1894,770],[1895,773],[1896,776],[1897,779],[1898,782],[1899,785],[1900,788],[1901,791],[1902,794],[1903,797],[1904,800],[1905,803],[1906,806],[1907,809],[1908,812],[1909,815],[1910,819],[1911,822],[1912,847],[1913,870],[1914,900],[1915,1042],[1916,1008],[1917,1104],[1918,1177],[1919,1240],[1920,1067],[1921,1137],[1922,1033],[1923,1093],[1924,1087],[1925,1074],[1926,1102],[1927,1136],[1928,1130],[1929,1058],[1930,990],[1931,983],[1932,973],[1933,1164],[1934,1149],[1935,1239],[1936,1340],[1937,1466],[1938,1529],[1939,1368],[1940,1531],[1941,1539],[1942,1517],[1943,1527],[1944,1448],[1945,674],[1946,682],[1947,719],[1948,773],[1949,830],[1950,870],[1951,727],[1952,777],[1953,1004],[1954,1059],[1955,1109],[1956,1097],[1957,1158],[1958,1193],[1959,1209],[1960,1200],[1961,1229],[1962,1234],[1963,1313],[1964,1396],[1965,1452],[1966,1597],[1967,1684],[1968,1866],[1969,2115],[1970,2262],[1971,2938],[1972,3002],[1973,3332],[1974,3373],[1975,3373],[1976,3373],[1977,3373],[1978,3373],[1979,3373],[1980,3373],[1981,3373],[1982,3373],[1983,3373],[1984,3373],[1985,3373],[1986,3373],[1987,3373],[1988,3373],[1989,3373],[1990,3373],[1991,3373],[1992,3061],[1993,3018],[1994,2300],[1995,2000],[1996,1809],[1997,1691],[1998,1693],[1999,1706],[2000,1690],[2001,1667],[2002,1647],[2003,1628],[2004,1612],[2005,1597],[2006,1572],[2007,1531],[2008,1582],[2009,1635]],"population":[[1800,4345000],[1820,4345000],[1870,4511000],[1913,4897000],[1950,9471140],[1951,9162410],[1952,8865488],[1953,8579873],[1954,8571805],[1955,8839427],[1956,9115740],[1957,9411381],[1958,9727435],[1959,10054154],[1960,10391909],[1961,10651332],[1962,10917494],[1963,11209506],[1964,11527887],[1965,11868751],[1966,12231860],[1967,12617009],[1968,13024159],[1969,13454771],[1970,13911902],[1971,14364579],[1972,14781241],[1973,15160867],[1974,15501464],[1975,15801308],[1976,16069433],[1977,16325320],[1978,16579905],[1979,16840290],[1980,17113626],[1981,17384008],[1982,17647518],[1983,17917990],[1984,18196000],[1985,18481420],[1986,18772457],[1987,19067554],[1988,19371141],[1989,19687910],[1990,20018546],[1991,20361086],[1992,20711375],[1993,21064115],[1994,21339904],[1995,21561856],[1996,21648743],[1997,21585105],[1998,21454900],[1999,21444989],[2000,21647682],[2001,21940326],[2002,22215365],[2003,22466481],[2004,22697553],[2005,22912177],[2006,23113019],[2007,23301725],[2008,23479089]],"lifeExpectancy":[[1800,26],[1903,26],[1908,23.51],[1913,24.98],[1918,26.98],[1923,29.53],[1928,33.61],[1933,37.39],[1938,42.57],[1942,44.89],[1950,48.04],[1951,48.58],[1952,49.63],[1953,50.6],[1954,51.49],[1955,52.31],[1956,53.05],[1957,53.72],[1958,54.34],[1959,54.9],[1960,55.43],[1961,55.94],[1962,56.46],[1963,56.99],[1964,57.57],[1965,58.19],[1966,58.88],[1967,59.61],[1968,60.38],[1969,61.17],[1970,61.98],[1971,62.78],[1972,63.58],[1973,64.34],[1974,65.07],[1975,65.74],[1976,66.35],[1977,66.9],[1978,67.4],[1979,67.85],[1980,68.27],[1981,68.66],[1982,69.04],[1983,69.4],[1984,69.75],[1985,70.07],[1986,70.35],[1987,70.57],[1988,70.71],[1989,70.77],[1990,70.73],[1991,70.56],[1992,70.29],[1993,69.92],[1994,69.49],[1995,69.01],[1996,68.51],[1997,68.03],[1998,67.6],[1999,67.24],[2000,66.96],[2001,66.78],[2002,66.69],[2003,66.67],[2004,66.72],[2005,66.82],[2006,66.97],[2007,67.14],[2008,67.33],[2009,67.53]]},{"name":"Korea, Rep.","region":"East Asia & Pacific","income":[[1800,596],[1820,596],[1821,596],[1822,596],[1823,596],[1824,596],[1825,596],[1826,596],[1827,597],[1828,597],[1829,597],[1830,597],[1831,597],[1832,597],[1833,597],[1834,597],[1835,597],[1836,597],[1837,597],[1838,597],[1839,598],[1840,598],[1841,598],[1842,598],[1843,598],[1844,598],[1845,598],[1846,598],[1847,598],[1848,598],[1849,598],[1850,598],[1851,598],[1852,599],[1853,599],[1854,599],[1855,599],[1856,599],[1857,599],[1858,599],[1859,599],[1860,599],[1861,599],[1862,599],[1863,599],[1864,600],[1865,600],[1866,600],[1867,600],[1868,600],[1869,600],[1870,600],[1871,602],[1872,605],[1873,607],[1874,609],[1875,612],[1876,614],[1877,616],[1878,619],[1879,621],[1880,623],[1881,626],[1882,628],[1883,630],[1884,633],[1885,635],[1886,638],[1887,640],[1888,643],[1889,645],[1890,647],[1891,650],[1892,652],[1893,655],[1894,657],[1895,660],[1896,662],[1897,665],[1898,668],[1899,670],[1900,673],[1901,675],[1902,678],[1903,680],[1904,683],[1905,686],[1906,688],[1907,691],[1908,693],[1909,696],[1910,699],[1911,701],[1912,723],[1913,743],[1914,768],[1915,889],[1916,861],[1917,942],[1918,1005],[1919,1058],[1920,910],[1921,971],[1922,882],[1923,933],[1924,928],[1925,917],[1926,940],[1927,969],[1928,965],[1929,903],[1930,845],[1931,839],[1932,831],[1933,993],[1934,981],[1935,1058],[1936,1144],[1937,1251],[1938,1305],[1939,1168],[1940,1307],[1941,1314],[1942,1295],[1943,1303],[1944,1236],[1945,576],[1946,582],[1947,614],[1948,660],[1949,708],[1950,743],[1951,689],[1952,736],[1953,951],[1954,1003],[1955,1050],[1956,1039],[1957,1097],[1958,1130],[1959,1145],[1960,1137],[1961,1163],[1962,1169],[1963,1243],[1964,1322],[1965,1375],[1966,1512],[1967,1594],[1968,1768],[1969,2003],[1970,2141],[1971,2319],[1972,2458],[1973,2844],[1974,3056],[1975,3225],[1976,3568],[1977,3899],[1978,4224],[1979,4492],[1980,4331],[1981,4558],[1982,4859],[1983,5373],[1984,5804],[1985,6162],[1986,6849],[1987,7612],[1988,8441],[1989,8948],[1990,9764],[1991,10622],[1992,11146],[1993,11701],[1994,12609],[1995,13674],[1996,14574],[1997,15202],[1998,14359],[1999,15692],[2000,16996],[2001,17784],[2002,18871],[2003,19485],[2004,20443],[2005,21342],[2006,22373],[2007,23438],[2008,23903],[2009,23875]],"population":[[1800,9395000],[1820,9395000],[1850,9545000],[1870,9753000],[1890,9848000],[1900,9896000],[1910,10096000],[1911,10258000],[1912,10422000],[1913,10589000],[1914,10764000],[1915,10911000],[1916,11086000],[1917,11263000],[1918,11443000],[1919,11627000],[1920,11804000],[1921,12040000],[1922,12281000],[1923,12526000],[1924,12777000],[1925,13005000],[1926,13179000],[1927,13356000],[1928,13535000],[1929,13716000],[1930,13900000],[1931,14117000],[1932,14338000],[1933,14562000],[1934,14789000],[1935,15020000],[1936,15139000],[1937,15260000],[1938,15381000],[1939,15504000],[1940,15627000],[1941,15859000],[1942,16094000],[1943,16332000],[1944,16574000],[1945,17917000],[1946,19369000],[1947,19886000],[1948,20027000],[1949,20208000],[1950,20845771],[1951,20876189],[1952,20947571],[1953,21060464],[1954,21258836],[1955,21551834],[1956,22031228],[1957,22611552],[1958,23253622],[1959,23981313],[1960,24784140],[1961,25613842],[1962,26420307],[1963,27211316],[1964,27984000],[1965,28705000],[1966,29436000],[1967,30131000],[1968,30838000],[1969,31544000],[1970,32241000],[1971,32883000],[1972,33505000],[1973,34073000],[1974,34692000],[1975,35281000],[1976,35860000],[1977,36436000],[1978,37019000],[1979,37534000],[1980,38124000],[1981,38723000],[1982,39326000],[1983,39910000],[1984,40406000],[1985,40806000],[1986,41214000],[1987,41622000],[1988,42031000],[1989,42449000],[1990,42869000],[1991,43318030],[1992,43805450],[1993,44295873],[1994,44780886],[1995,45264146],[1996,45730245],[1997,46173816],[1998,46589612],[1999,46972817],[2000,47351083],[2001,47697738],[2002,47969150],[2003,48202264],[2004,48426325],[2005,48640671],[2006,48846823],[2007,49044790],[2008,49232844]],"lifeExpectancy":[[1800,25.8],[1903,25.8],[1908,23.51],[1913,24.98],[1918,26.98],[1923,29.53],[1928,33.61],[1933,37.39],[1938,42.57],[1942,44.89],[1950,45.52],[1951,46.17],[1952,47.42],[1953,48.57],[1954,49.62],[1955,50.58],[1956,51.45],[1957,52.22],[1958,52.9],[1959,53.51],[1960,54.05],[1961,54.54],[1962,54.99],[1963,55.42],[1964,55.86],[1965,56.31],[1966,56.8],[1967,57.33],[1968,57.9],[1969,58.51],[1970,59.16],[1971,59.86],[1972,60.6],[1973,61.35],[1974,62.11],[1975,62.85],[1976,63.54],[1977,64.18],[1978,64.75],[1979,65.27],[1980,65.74],[1981,66.19],[1982,66.66],[1983,67.15],[1984,67.68],[1985,68.25],[1986,68.85],[1987,69.48],[1988,70.11],[1989,70.73],[1990,71.32],[1991,71.86],[1992,72.34],[1993,72.77],[1994,73.16],[1995,73.53],[1996,73.91],[1997,74.34],[1998,74.81],[1999,75.35],[2000,75.92],[2001,76.52],[2002,77.11],[2003,77.66],[2004,78.16],[2005,78.58],[2006,78.94],[2007,79.22],[2008,79.46],[2009,79.65]]},{"name":"Macao, China","region":"East Asia & Pacific","income":[[1800,607.01],[1820,607.01],[1913,820.62],[1950,2170.05],[1970,8453.49],[1971,8844.09],[1972,9344.18],[1973,9940.47],[1974,10611.51],[1975,11341.46],[1976,12106.57],[1977,12941.19],[1978,13807.82],[1979,14512.26],[1980,15216.44],[1981,15839.15],[1982,15856.62],[1983,16720.55],[1984,17365.77],[1985,16718.13],[1986,17058.98],[1987,18701.78],[1988,19353.91],[1989,19597.07],[1990,20495.49],[1991,20688.02],[1992,22917.23],[1993,23654.92],[1994,24247.09],[1995,24653.08],[1996,24188.5],[1997,23790.49],[1998,22404.65],[1999,21586.35],[2000,22512.56],[2001,22826.54],[2002,24755.47],[2003,27842.69],[2004,35260.87],[2005,37256],[2006,42523.57],[2007,52028.35],[2008,57436.68]],"population":[[1835,35000],[1839,13000],[1860,85000],[1900,64000],[1910,76000],[1920,84000],[1927,157000],[1937,170000],[1940,375000],[1950,205442],[1951,202367],[1952,199489],[1953,196948],[1954,194893],[1955,192684],[1956,190465],[1957,189390],[1958,188751],[1959,187499],[1960,186053],[1961,189831],[1962,198464],[1963,206989],[1964,215496],[1965,223820],[1966,231905],[1967,239773],[1968,247282],[1969,254436],[1970,261369],[1971,263565],[1972,261202],[1973,258929],[1974,256653],[1975,254331],[1976,251775],[1977,249116],[1978,248564],[1979,251368],[1980,255773],[1981,260929],[1982,270811],[1983,285451],[1984,298982],[1985,305843],[1986,312196],[1987,322983],[1988,332136],[1989,341237],[1990,351756],[1991,363858],[1992,375382],[1993,384495],[1994,393064],[1995,401452],[1996,410597],[1997,417129],[1998,421602],[1999,427618],[2000,431338],[2001,434044],[2002,437794],[2003,441487],[2004,445286],[2005,449198],[2006,453125],[2007,456989],[2008,460823]],"lifeExpectancy":[[1950,52.98],[1951,53.2],[1952,53.66],[1953,54.17],[1954,54.72],[1955,55.32],[1956,55.96],[1957,56.64],[1958,57.37],[1959,58.13],[1960,58.94],[1961,59.79],[1962,60.65],[1963,61.53],[1964,62.4],[1965,63.21],[1966,63.93],[1967,64.54],[1968,65.05],[1969,65.45],[1970,65.78],[1971,66.07],[1972,66.37],[1973,66.73],[1974,67.16],[1975,67.7],[1976,68.36],[1977,69.14],[1978,69.99],[1979,70.89],[1980,71.8],[1981,72.68],[1982,73.49],[1983,74.19],[1984,74.78],[1985,75.26],[1986,75.65],[1987,75.99],[1988,76.3],[1989,76.6],[1990,76.9],[1991,77.2],[1992,77.5],[1993,77.78],[1994,78.04],[1995,78.28],[1996,78.49],[1997,78.66],[1998,78.81],[1999,78.92],[2000,79.04],[2001,79.16],[2002,79.32],[2003,79.51],[2004,79.74],[2005,79.99],[2006,80.26],[2007,80.52],[2008,80.75],[2009,80.95]]},{"name":"Malaysia","region":"East Asia & Pacific","income":[[1800,750.13],[1820,750.13],[1870,824.43],[1911,996.55],[1912,1022.69],[1913,1120.15],[1914,1145.08],[1915,1166.82],[1916,1239.48],[1917,1286.2],[1918,1206.41],[1919,1440.43],[1920,1381.68],[1921,1337.64],[1922,1433.21],[1923,1381.09],[1924,1319.17],[1925,1494.64],[1926,1638.28],[1927,1557.04],[1928,1729.11],[1929,2093.56],[1930,2035.7],[1931,1926.89],[1932,1738.25],[1933,1791.53],[1934,1916.1],[1935,1697.92],[1936,1839.35],[1937,1628.32],[1938,1694.21],[1939,2002.74],[1940,1590.46],[1941,1541.08],[1942,2081.61],[1947,1330.46],[1948,1474.53],[1949,1904.73],[1950,1940.39],[1951,1792.01],[1952,1831.13],[1953,1791.86],[1954,1854.52],[1955,1817.19],[1956,1873.35],[1957,1810.07],[1958,1758.4],[1959,1826.02],[1960,1904.48],[1961,1981.4],[1962,2036.88],[1963,2077.26],[1964,2149.87],[1965,2245.03],[1966,2297.59],[1967,2277.74],[1968,2416.93],[1969,2495.56],[1970,2587.36],[1971,2713.47],[1972,2849.09],[1973,3185.7],[1974,3345.33],[1975,3295.77],[1976,3621.68],[1977,3827.92],[1978,4069.95],[1979,4301.4],[1980,4550.58],[1981,4758.29],[1982,4920.36],[1983,5096.8],[1984,5360.36],[1985,5172.8],[1986,5108.03],[1987,5249.8],[1988,5577.66],[1989,5960.93],[1990,6386.02],[1991,6838.2],[1992,7277.91],[1993,7815.3],[1994,8342.82],[1995,8961.56],[1996,9644.79],[1997,10132.91],[1998,9191.52],[1999,9553.52],[2000,10161.49],[2001,9994.62],[2002,10206.98],[2003,10597.64],[2004,11119.9],[2005,11466],[2006,11933.76],[2007,12459.59],[2008,12818.9],[2009,12387.67]],"population":[[1800,287000],[1820,287000],[1850,530000],[1870,800000],[1890,1585000],[1900,2232000],[1901,2288000],[1902,2345000],[1903,2404000],[1904,2467000],[1905,2532000],[1906,2601000],[1907,2672000],[1908,2745000],[1909,2821000],[1910,2893000],[1911,2967000],[1912,3025000],[1913,3084000],[1914,3144000],[1915,3207000],[1916,3271000],[1917,3337000],[1918,3404000],[1919,3473000],[1920,3545000],[1921,3618000],[1922,3698000],[1923,3779000],[1924,3863000],[1925,3949000],[1926,4038000],[1927,4128000],[1928,4221000],[1929,4316000],[1930,4413000],[1931,4513000],[1932,4604000],[1933,4697000],[1934,4793000],[1935,4890000],[1936,4993000],[1937,5099000],[1938,5207000],[1939,5317000],[1940,5434000],[1941,5554000],[1942,5592000],[1943,5630000],[1944,5668000],[1945,5707000],[1946,5746000],[1947,5786000],[1948,5922000],[1949,6061000],[1950,6433799],[1951,6581839],[1952,6748378],[1953,6928942],[1954,7117564],[1955,7311720],[1956,7519663],[1957,7739235],[1958,7965930],[1959,8195711],[1960,8428493],[1961,8663401],[1962,8906385],[1963,9148451],[1964,9397464],[1965,9647654],[1966,9899803],[1967,10154878],[1968,10409339],[1969,10662303],[1970,10910216],[1971,11171333],[1972,11441462],[1973,11711866],[1974,11986260],[1975,12267303],[1976,12553963],[1977,12845381],[1978,13138530],[1979,13443844],[1980,13764352],[1981,14096663],[1982,14441916],[1983,14793099],[1984,15157328],[1985,15545028],[1986,15941178],[1987,16331785],[1988,16729187],[1989,17117834],[1990,17503607],[1991,17906485],[1992,18319502],[1993,18747901],[1994,19180324],[1995,19611116],[1996,20044560],[1997,20476091],[1998,20911977],[1999,21354459],[2000,21793293],[2001,22229040],[2002,22662365],[2003,23092940],[2004,23522482],[2005,23953136],[2006,24385858],[2007,24821286],[2008,25259428]],"lifeExpectancy":[[1800,30.6],[1930,30.6],[1950,47.01],[1951,47.37],[1952,48.1],[1953,48.83],[1954,49.56],[1955,50.28],[1956,51.01],[1957,51.74],[1958,52.47],[1959,53.19],[1960,53.92],[1961,54.65],[1962,55.37],[1963,56.1],[1964,56.83],[1965,57.56],[1966,58.3],[1967,59.05],[1968,59.81],[1969,60.56],[1970,61.3],[1971,61.99],[1972,62.62],[1973,63.2],[1974,63.72],[1975,64.21],[1976,64.67],[1977,65.15],[1978,65.64],[1979,66.16],[1980,66.69],[1981,67.21],[1982,67.7],[1983,68.14],[1984,68.53],[1985,68.87],[1986,69.16],[1987,69.41],[1988,69.66],[1989,69.89],[1990,70.12],[1991,70.36],[1992,70.6],[1993,70.83],[1994,71.08],[1995,71.32],[1996,71.57],[1997,71.81],[1998,72.04],[1999,72.27],[2000,72.5],[2001,72.72],[2002,72.95],[2003,73.18],[2004,73.42],[2005,73.66],[2006,73.89],[2007,74.12],[2008,74.33],[2009,74.54]]},{"name":"Micronesia, Fed. Sts.","region":"East Asia & Pacific","income":[[1800,553.05],[1820,553.05],[1913,747.68],[1970,3428.19],[1971,3469.53],[1972,3495.18],[1973,4682.78],[1974,5384.38],[1975,5331.31],[1976,5247.19],[1977,5234.55],[1978,5358.55],[1979,5291],[1980,4748.19],[1981,5037.39],[1982,4745.83],[1983,4692.94],[1984,4372.64],[1985,4958.08],[1986,5220.78],[1987,5205.1],[1988,5399.42],[1989,5316.17],[1990,5408.71],[1991,5603.02],[1992,5659.93],[1993,5899.17],[1994,5898.48],[1995,5918.56],[1996,5582.74],[1997,5238.14],[1998,5217.37],[1999,5053.2],[2000,5530.16],[2001,5543.41],[2002,5565.15],[2003,5534.02],[2004,5458.99],[2005,5508],[2006,5399.22],[2007,5189.39],[2008,4994.56]],"population":[[1800,16416],[1820,16416],[1950,30715],[1951,31674],[1952,32664],[1953,33684],[1954,34736],[1955,35821],[1956,36940],[1957,38094],[1958,39284],[1959,40511],[1960,41777],[1961,43081],[1962,44427],[1963,45815],[1964,47246],[1965,48722],[1966,50244],[1967,51813],[1968,53432],[1969,55101],[1970,56822],[1971,58597],[1972,60427],[1973,62731],[1974,64241],[1975,66222],[1976,68263],[1977,70368],[1978,72538],[1979,74774],[1980,77080],[1981,79581],[1982,82188],[1983,84942],[1984,87784],[1985,90631],[1986,94151],[1987,97727],[1988,101343],[1989,104976],[1990,108600],[1991,111689],[1992,114694],[1993,117588],[1994,105444],[1995,105988],[1996,106479],[1997,106911],[1998,107264],[1999,107534],[2000,107754],[2001,107940],[2002,108071],[2003,108143],[2004,108155],[2005,108105],[2006,108004],[2007,107862],[2008,107673]],"lifeExpectancy":[[1950,53.78],[1951,53.98],[1952,54.38],[1953,54.78],[1954,55.18],[1955,55.58],[1956,55.98],[1957,56.38],[1958,56.78],[1959,57.18],[1960,57.58],[1961,57.98],[1962,58.38],[1963,58.78],[1964,59.18],[1965,59.58],[1966,59.98],[1967,60.39],[1968,60.8],[1969,61.21],[1970,61.63],[1971,62.07],[1972,62.52],[1973,62.97],[1974,63.42],[1975,63.84],[1976,64.22],[1977,64.55],[1978,64.82],[1979,65.02],[1980,65.17],[1981,65.28],[1982,65.37],[1983,65.45],[1984,65.54],[1985,65.64],[1986,65.75],[1987,65.87],[1988,65.98],[1989,66.1],[1990,66.21],[1991,66.33],[1992,66.44],[1993,66.55],[1994,66.67],[1995,66.78],[1996,66.88],[1997,66.99],[1998,67.08],[1999,67.18],[2000,67.29],[2001,67.4],[2002,67.53],[2003,67.68],[2004,67.85],[2005,68.03],[2006,68.22],[2007,68.42],[2008,68.61],[2009,68.81]]},{"name":"Mongolia","region":"East Asia & Pacific","income":[[1800,606.93],[1820,606.93],[1950,741.13],[1951,761.58],[1952,786.57],[1953,809.5],[1954,834.53],[1955,859.07],[1956,884.55],[1957,912.66],[1958,939.23],[1959,967.77],[1960,996.67],[1961,1026.27],[1962,1056.35],[1963,1089.39],[1964,1121.78],[1965,1155.34],[1966,1189.06],[1967,1226.04],[1968,1262.52],[1969,1299.6],[1970,1339.74],[1971,1380.61],[1972,1421.74],[1973,1464.19],[1974,1508.42],[1975,1553.03],[1976,1597.77],[1977,1647.51],[1978,1697],[1979,1748.19],[1980,1800],[1981,1897.49],[1982,2000.6],[1983,2059.48],[1984,2122.47],[1985,2182.38],[1986,2322.07],[1987,2338.01],[1988,2391.14],[1989,2389.38],[1990,2268.6],[1991,2011.76],[1992,1785.4],[1993,1705.62],[1994,1723.84],[1995,1814.11],[1996,1841.2],[1997,1902.25],[1998,1958.2],[1999,2009.38],[2000,2017.51],[2001,2061.51],[2002,2140.74],[2003,2269.92],[2004,2487.43],[2005,2643],[2006,2834.89],[2007,3081.2],[2008,3306.55],[2009,3205.17]],"population":[[1800,619000],[1820,619000],[1870,668000],[1913,725000],[1950,778555],[1951,788937],[1952,800663],[1953,813728],[1954,828075],[1955,844046],[1956,862063],[1957,882134],[1958,904296],[1959,928632],[1960,954652],[1961,981849],[1962,1010280],[1963,1031200],[1964,1060600],[1965,1090200],[1966,1119400],[1967,1149500],[1968,1181000],[1969,1214100],[1970,1247600],[1971,1283400],[1972,1320500],[1973,1360100],[1974,1402600],[1975,1445600],[1976,1487150],[1977,1528000],[1978,1571700],[1979,1617200],[1980,1662380],[1981,1708832],[1982,1756032],[1983,1805004],[1984,1855693],[1985,1907701],[1986,1960796],[1987,2015133],[1988,2070723],[1989,2159157],[1990,2216340],[1991,2268325],[1992,2312802],[1993,2349132],[1994,2383109],[1995,2420663],[1996,2458561],[1997,2494803],[1998,2530501],[1999,2565596],[2000,2600835],[2001,2637069],[2002,2674234],[2003,2712315],[2004,2751314],[2005,2791272],[2006,2832224],[2007,2874127],[2008,2916865]],"lifeExpectancy":[[1800,31.8],[1945,31.8],[1950,41.04],[1951,41.34],[1952,41.94],[1953,42.55],[1954,43.15],[1955,43.75],[1956,44.35],[1957,44.95],[1958,45.55],[1959,46.15],[1960,46.75],[1961,47.36],[1962,47.97],[1963,48.58],[1964,49.19],[1965,49.79],[1966,50.39],[1967,50.98],[1968,51.54],[1969,52.09],[1970,52.6],[1971,53.08],[1972,53.52],[1973,53.93],[1974,54.31],[1975,54.66],[1976,55],[1977,55.34],[1978,55.68],[1979,56.04],[1980,56.42],[1981,56.86],[1982,57.34],[1983,57.85],[1984,58.39],[1985,58.93],[1986,59.43],[1987,59.86],[1988,60.23],[1989,60.53],[1990,60.78],[1991,61.03],[1992,61.31],[1993,61.64],[1994,62.03],[1995,62.45],[1996,62.89],[1997,63.29],[1998,63.64],[1999,63.94],[2000,64.19],[2001,64.41],[2002,64.64],[2003,64.89],[2004,65.18],[2005,65.5],[2006,65.85],[2007,66.21],[2008,66.58],[2009,66.93]]},{"name":"Myanmar","region":"East Asia & Pacific","income":[[1800,569.07],[1820,569.07],[1821,569.07],[1822,569.07],[1823,569.07],[1824,569.07],[1825,569.07],[1826,569.07],[1827,569.07],[1828,569.07],[1829,569.07],[1830,569.07],[1831,569.07],[1832,569.07],[1833,569.07],[1834,569.07],[1835,569.07],[1836,569.07],[1837,569.07],[1838,569.07],[1839,569.07],[1840,569.07],[1841,569.07],[1842,569.07],[1843,569.07],[1844,569.07],[1845,569.07],[1846,569.07],[1847,569.07],[1848,569.07],[1849,569.07],[1850,569.07],[1851,569.07],[1852,569.07],[1853,569.07],[1854,569.07],[1855,569.07],[1856,569.07],[1857,569.07],[1858,569.07],[1859,569.07],[1860,569.07],[1861,569.07],[1862,569.07],[1863,569.07],[1864,569.07],[1865,569.07],[1866,569.07],[1867,569.07],[1868,569.07],[1869,569.07],[1870,569.07],[1871,575.11],[1872,581.21],[1873,587.37],[1874,593.6],[1875,599.9],[1876,606.26],[1877,612.69],[1878,619.18],[1879,625.75],[1880,632.39],[1881,639.09],[1882,645.87],[1883,652.72],[1884,659.64],[1885,666.64],[1886,673.71],[1887,680.85],[1888,688.07],[1889,695.37],[1890,702.74],[1891,710.2],[1892,717.73],[1893,725.34],[1894,733.03],[1895,740.8],[1896,748.66],[1897,756.6],[1898,764.62],[1899,772.73],[1900,780.93],[1901,789.21],[1902,756.71],[1903,725.54],[1904,695.66],[1905,667.01],[1906,639.54],[1907,648.35],[1908,657.29],[1909,666.35],[1910,675.53],[1911,684.84],[1912,729.23],[1913,773.61],[1914,822.21],[1915,873.85],[1916,928.74],[1917,902.04],[1918,876.1],[1919,850.9],[1920,826.43],[1921,802.67],[1922,824.63],[1923,847.19],[1924,870.37],[1925,894.19],[1926,918.65],[1927,937.88],[1928,957.51],[1929,977.55],[1930,998],[1931,1018.89],[1932,1003.98],[1933,989.28],[1934,974.8],[1935,960.54],[1936,946.48],[1937,889.09],[1938,835.19],[1939,792.94],[1940,752.82],[1941,714.74],[1942,602.94],[1943,508.63],[1944,429.07],[1945,430.2],[1946,433.47],[1947,436.76],[1948,440.07],[1949,443.42],[1950,446.78],[1951,504.07],[1952,507.32],[1953,512.73],[1954,473.51],[1955,526.86],[1956,552.87],[1957,576.11],[1958,551.27],[1959,626.29],[1960,636.33],[1961,640.73],[1962,684.61],[1963,691.68],[1964,691.54],[1965,696.34],[1966,655.15],[1967,661.14],[1968,691.49],[1969,706.5],[1970,724.44],[1971,733.81],[1972,725.05],[1973,708.8],[1974,732.19],[1975,749.09],[1976,780.88],[1977,813.38],[1978,853.53],[1979,878.84],[1980,935.13],[1981,970.19],[1982,1003.82],[1983,1027.35],[1984,1057.16],[1985,1067.1],[1986,1037.22],[1987,979.04],[1988,854.94],[1989,874.49],[1990,887.18],[1991,870.36],[1992,891.72],[1993,904.21],[1994,919.55],[1995,933.8],[1996,947.26],[1997,959.32],[1998,971.75],[1999,998.69],[2000,1034.45],[2001,1064.53],[2002,1097.67],[2003,1137.58],[2004,1175.12],[2005,1169.24],[2006,1154.04],[2007,1214.05],[2008,1255.33],[2009,1269.14]],"population":[[1800,3506000],[1820,3506000],[1850,3932000],[1870,4245000],[1890,7489000],[1900,10174000],[1901,10490000],[1902,10642000],[1903,10796000],[1904,10953000],[1905,11112000],[1906,11273000],[1907,11437000],[1908,11603000],[1909,11771000],[1910,11942000],[1911,12115000],[1912,12220000],[1913,12326000],[1914,12433000],[1915,12541000],[1916,12650000],[1917,12760000],[1918,12871000],[1919,12893000],[1920,13096000],[1921,13212000],[1922,13351000],[1923,13491000],[1924,13633000],[1925,13776000],[1926,13921000],[1927,14067000],[1928,14215000],[1929,14364000],[1930,14515000],[1931,14667000],[1932,14870000],[1933,15075000],[1934,15283000],[1935,15494000],[1936,15708000],[1937,15925000],[1938,16145000],[1939,16368000],[1940,16594000],[1941,16824000],[1942,16727000],[1943,16908000],[1944,17090000],[1945,17272000],[1946,17454000],[1947,17636000],[1948,17818000],[1949,18000000],[1950,19487657],[1951,19788012],[1952,20092996],[1953,20402681],[1954,20721139],[1955,21048631],[1956,21385445],[1957,21731844],[1958,22088118],[1959,22456123],[1960,22836232],[1961,23228868],[1962,23634436],[1963,24053395],[1964,24485982],[1965,24932663],[1966,25393924],[1967,25870271],[1968,26362230],[1969,26867423],[1970,27386228],[1971,27919082],[1972,28466390],[1973,29226657],[1974,29799458],[1975,30360478],[1976,30936848],[1977,31528087],[1978,32053297],[1979,32664235],[1980,33373316],[1981,34019441],[1982,34680442],[1983,35364794],[1984,36060228],[1985,36740515],[1986,37397074],[1987,38028578],[1988,38603755],[1989,39132189],[1990,39655394],[1991,40155099],[1992,40546538],[1993,40983821],[1994,41577366],[1995,42173781],[1996,42728314],[1997,43247867],[1998,43749992],[1999,44234615],[2000,44702243],[2001,45152531],[2002,45598081],[2003,46030343],[2004,46520134],[2005,46996558],[2006,47382633],[2007,47761980],[2008,48133102]],"lifeExpectancy":[[1800,30.8],[1926,30.8],[1941,30.8],[1942,28],[1943,28.5],[1944,28.1],[1945,28],[1948,30.8],[1950,33.43],[1951,34.23],[1952,35.76],[1953,37.16],[1954,38.43],[1955,39.57],[1956,40.59],[1957,41.49],[1958,42.29],[1959,43.02],[1960,43.69],[1961,44.35],[1962,45.03],[1963,45.74],[1964,46.5],[1965,47.32],[1966,48.17],[1967,49.03],[1968,49.87],[1969,50.69],[1970,51.46],[1971,52.2],[1972,52.91],[1973,53.6],[1974,54.26],[1975,54.88],[1976,55.48],[1977,56.04],[1978,56.57],[1979,57.05],[1980,57.48],[1981,57.84],[1982,58.12],[1983,58.32],[1984,58.46],[1985,58.55],[1986,58.61],[1987,58.65],[1988,58.71],[1989,58.79],[1990,58.88],[1991,58.99],[1992,59.1],[1993,59.19],[1994,59.28],[1995,59.37],[1996,59.46],[1997,59.56],[1998,59.67],[1999,59.8],[2000,59.94],[2001,60.08],[2002,60.2],[2003,60.31],[2004,60.43],[2005,60.59],[2006,60.83],[2007,61.16],[2008,61.6],[2009,62.14]]},{"name":"New Caledonia","region":"East Asia & Pacific","income":[[1800,944.24],[1820,944.24],[1913,1276.53],[1938,4910.2],[1950,9374.16],[1965,21036.53],[1966,19726.05],[1967,20213.73],[1968,22370.06],[1969,24974.42],[1970,31456.12],[1971,32333.81],[1972,32001.31],[1973,27196.04],[1974,29441.36],[1975,30307.07],[1976,30164.32],[1977,30062.78],[1978,32409.54],[1979,27531.77],[1980,26965.06],[1981,24658.06],[1982,24831.15],[1983,23929.05],[1984,23947.91],[1985,24596.34],[1986,23927.7],[1987,24837.87],[1988,32806.33],[1989,35684.01],[1990,36179.11],[1991,37085.95],[1992,36383.17],[1993,35674.86],[1994,35704.58],[1995,36928.13],[1996,36242.51],[1997,36147.49],[1998,34242.72],[1999,33846.34],[2000,33884.5],[2001,33412.18],[2002,32977.87],[2003,32475.12],[2004,32205.65],[2005,31942.83],[2006,31596.57],[2007,31268.19],[2008,30959.74]],"population":[[1800,29432],[1820,29432],[1950,55069],[1951,56780],[1952,58615],[1953,60581],[1954,62689],[1955,64948],[1956,67369],[1957,69963],[1958,72745],[1959,75790],[1960,78804],[1961,81774],[1962,84518],[1963,86978],[1964,88066],[1965,90360],[1966,93462],[1967,96094],[1968,99500],[1969,104000],[1970,112000],[1971,120000],[1972,125500],[1973,128500],[1974,131000],[1975,133000],[1976,134500],[1977,136000],[1978,137500],[1979,138800],[1980,139400],[1981,142500],[1982,145000],[1983,146584],[1984,149659],[1985,152591],[1986,155582],[1987,158737],[1988,161885],[1989,165003],[1990,168361],[1991,171988],[1992,175612],[1993,179152],[1994,182543],[1995,185833],[1996,189104],[1997,192347],[1998,195554],[1999,198714],[2000,201816],[2001,204863],[2002,207858],[2003,210798],[2004,213679],[2005,216494],[2006,219246],[2007,221943],[2008,224585]],"lifeExpectancy":[[1950,51.93],[1951,51.67],[1952,51.27],[1953,51.09],[1954,51.14],[1955,51.41],[1956,51.9],[1957,52.58],[1958,53.43],[1959,54.41],[1960,55.44],[1961,56.48],[1962,57.45],[1963,58.29],[1964,58.98],[1965,59.49],[1966,59.83],[1967,60.04],[1968,60.2],[1969,60.33],[1970,60.51],[1971,60.8],[1972,61.23],[1973,61.81],[1974,62.53],[1975,63.36],[1976,64.25],[1977,65.13],[1978,65.94],[1979,66.66],[1980,67.26],[1981,67.77],[1982,68.19],[1983,68.58],[1984,68.93],[1985,69.26],[1986,69.57],[1987,69.88],[1988,70.17],[1989,70.47],[1990,70.76],[1991,71.04],[1992,71.3],[1993,71.55],[1994,71.79],[1995,72.04],[1996,72.33],[1997,72.66],[1998,73.05],[1999,73.47],[2000,73.92],[2001,74.37],[2002,74.78],[2003,75.14],[2004,75.44],[2005,75.68],[2006,75.87],[2007,76.04],[2008,76.2],[2009,76.36]]},{"name":"New Zealand","region":"East Asia & Pacific","income":[[1800,541.62],[1820,541.62],[1830,541.62],[1840,541.62],[1850,1549.64],[1860,2995.32],[1870,4197.09],[1871,4272.02],[1872,4770.04],[1873,5187.36],[1874,5204.29],[1875,4993.57],[1876,4905.88],[1877,5392.46],[1878,5782.83],[1879,4832.93],[1880,5072.99],[1881,5097.49],[1882,4936.43],[1883,4732.12],[1884,5013.44],[1885,4857.29],[1886,4876.72],[1887,4880.12],[1888,4812.45],[1889,5011.68],[1890,5085.11],[1891,5052.04],[1892,5146.24],[1893,5129.69],[1894,4846.28],[1895,4930.96],[1896,5399.9],[1897,5348.29],[1898,5396.03],[1899,5471.55],[1900,5819.9],[1901,5718.83],[1902,6009.94],[1903,6401.25],[1904,6188.58],[1905,6567.15],[1906,6983.76],[1907,7229.98],[1908,6546.72],[1909,6459.44],[1910,7198.55],[1911,7438.95],[1912,7053.59],[1913,6976.62],[1914,7026.5],[1915,7005.58],[1916,6933.16],[1917,6781.35],[1918,6649.54],[1919,7153.07],[1920,7638.54],[1921,6943.69],[1922,6555.15],[1923,6965.89],[1924,6963.81],[1925,7165.07],[1926,6641.4],[1927,6340.65],[1928,6961.01],[1929,7125.34],[1930,6716.25],[1931,6059.54],[1932,5859.29],[1933,6196.13],[1934,6455.89],[1935,6715.24],[1936,7907.39],[1937,8261.82],[1938,8750.12],[1939,8746.7],[1940,8531.12],[1941,8298.68],[1942,9155.48],[1943,9380.86],[1944,9299.61],[1945,9381.26],[1946,9696.82],[1947,10624.33],[1948,9382.22],[1949,10183.21],[1950,11449.38],[1951,10362.99],[1952,10556.58],[1953,10637.22],[1954,11839],[1955,11814.68],[1956,12186.7],[1957,12247.4],[1958,12437.62],[1959,13039.68],[1960,12816.33],[1961,13195.1],[1962,13175.68],[1963,13719.26],[1964,14107.05],[1965,14730.25],[1966,15384.75],[1967,14463.92],[1968,14279.12],[1969,15586.76],[1970,15150.93],[1971,15674.74],[1972,16046.04],[1973,16823.02],[1974,17439.2],[1975,16910.21],[1976,17126.42],[1977,16233.72],[1978,16294.54],[1979,16633.44],[1980,16718.1],[1981,17445.44],[1982,17632.41],[1983,17919.54],[1984,18612.88],[1985,18647.68],[1986,18979.55],[1987,19007.19],[1988,18874.65],[1989,18983.92],[1990,18833.6],[1991,18380.78],[1992,18363.32],[1993,19337.19],[1994,20116.23],[1995,20661.48],[1996,21064.07],[1997,21050.41],[1998,20876.11],[1999,21689.01],[2000,21895.16],[2001,22426.59],[2002,23189.8],[2003,23728.48],[2004,24339.44],[2005,24554],[2006,24504.21],[2007,24926.5],[2008,24656.53],[2009,24009.46]],"population":[[1820,100000],[1830,100000],[1840,70000],[1850,90000],[1860,132000],[1870,291000],[1871,306000],[1872,320000],[1873,335000],[1874,367000],[1875,406000],[1876,434000],[1877,450000],[1878,467000],[1879,494000],[1880,520000],[1881,539000],[1882,555000],[1883,574000],[1884,598000],[1885,614000],[1886,626000],[1887,640000],[1888,649000],[1889,656000],[1890,665000],[1891,674000],[1892,686000],[1893,705000],[1894,722000],[1895,735000],[1896,748000],[1897,764000],[1898,779000],[1899,794000],[1900,807000],[1901,824000],[1902,844000],[1903,867000],[1904,893000],[1905,919000],[1906,946000],[1907,969000],[1908,996000],[1909,1024000],[1910,1045000],[1911,1067000],[1912,1092000],[1913,1122000],[1914,1143000],[1915,1152000],[1916,1155000],[1917,1152000],[1918,1156000],[1919,1195000],[1920,1241000],[1921,1275000],[1922,1304000],[1923,1326000],[1924,1350000],[1925,1382000],[1926,1412000],[1927,1437000],[1928,1454000],[1929,1471000],[1930,1493000],[1931,1514000],[1932,1527000],[1933,1540000],[1934,1552000],[1935,1562000],[1936,1573000],[1937,1587000],[1938,1604000],[1939,1627000],[1940,1636000],[1941,1629000],[1942,1639000],[1943,1633000],[1944,1654000],[1945,1688000],[1946,1759000],[1947,1797000],[1948,1833000],[1949,1871000],[1950,1908310],[1951,1947389],[1952,1994794],[1953,2047391],[1954,2092779],[1955,2136168],[1956,2178289],[1957,2229407],[1958,2281533],[1959,2331122],[1960,2371746],[1961,2432450],[1962,2488550],[1963,2541350],[1964,2591950],[1965,2640400],[1966,2687550],[1967,2728150],[1968,2759000],[1969,2788500],[1970,2828050],[1971,2875300],[1972,2929100],[1973,2992300],[1974,3058400],[1975,3117800],[1976,3153550],[1977,3164900],[1978,3165800],[1979,3164550],[1980,3170150],[1981,3185450],[1982,3210650],[1983,3245800],[1984,3278900],[1985,3298050],[1986,3308300],[1987,3317166],[1988,3331205],[1989,3341632],[1990,3359604],[1991,3396964],[1992,3437674],[1993,3475061],[1994,3517261],[1995,3565990],[1996,3621200],[1997,3676187],[1998,3726214],[1999,3774096],[2000,3819762],[2001,3864129],[2002,3908037],[2003,3951307],[2004,3993817],[2005,4035461],[2006,4076140],[2007,4115771],[2008,4154311]],"lifeExpectancy":[[1800,34.05],[1870,34.05],[1948,68.86],[1949,68.98],[1950,69.29],[1951,69.16],[1952,69.39],[1953,70.24],[1954,70.35],[1955,70.48],[1956,70.74],[1957,70.26],[1958,70.89],[1959,70.8],[1960,71.26],[1961,70.98],[1962,71.24],[1963,71.31],[1964,71.35],[1965,71.28],[1966,71.14],[1967,71.52],[1968,71.18],[1969,71.55],[1970,71.33],[1971,71.78],[1972,71.89],[1973,71.75],[1974,72],[1975,72.27],[1976,72.47],[1977,72.22],[1978,73.11],[1979,73.15],[1980,72.95],[1981,73.74],[1982,73.84],[1983,73.94],[1984,74.49],[1985,73.99],[1986,74.24],[1987,74.32],[1988,74.6],[1989,75.01],[1990,75.56],[1991,76.2],[1992,76.33],[1993,76.62],[1994,77.07],[1995,76.94],[1996,76.98],[1997,77.55],[1998,78.37],[1999,78.14],[2000,78.9],[2001,78.91],[2002,79.11],[2003,79.41],[2004,79.59],[2005,79.8],[2006,79.98],[2007,80.15],[2008,80.3],[2009,80.45]]},{"name":"Papua New Guinea","region":"East Asia & Pacific","income":[[1800,573.29],[1820,573.29],[1913,775.03],[1950,969.62],[1960,1120.04],[1961,1168.28],[1962,1220],[1963,1245.62],[1964,1325.88],[1965,1432.52],[1966,1484.36],[1967,1511.98],[1968,1543.68],[1969,1634.49],[1970,1771.1],[1971,1839.66],[1972,1898.54],[1973,1975.71],[1974,1981.1],[1975,1919.99],[1976,1814.91],[1977,1791.43],[1978,1903.45],[1979,1895.94],[1980,1809.71],[1981,1761.06],[1982,1722.78],[1983,1732.49],[1984,1681.73],[1985,1704.24],[1986,1739.11],[1987,1742.45],[1988,1748.27],[1989,1680.15],[1990,1588.26],[1991,1695.54],[1992,1880.96],[1993,2166.06],[1994,2235.06],[1995,2104.19],[1996,2206.73],[1997,2064.01],[1998,1933.43],[1999,1917.62],[2000,1821.68],[2001,1773.67],[2002,1727.29],[2003,1722.49],[2004,1728.51],[2005,1747],[2006,1745.9],[2007,1828.01],[2008,1905.5],[2009,1947.16]],"population":[[1800,754894],[1820,754894],[1950,1412466],[1951,1438163],[1952,1465469],[1953,1494506],[1954,1525366],[1955,1557902],[1956,1591955],[1957,1627752],[1958,1665511],[1959,1705225],[1960,1746986],[1961,1791048],[1962,1837378],[1963,1885929],[1964,1936607],[1965,1989516],[1966,2045085],[1967,2102625],[1968,2161618],[1969,2223233],[1970,2288056],[1971,2353081],[1972,2416549],[1973,2476980],[1974,2540118],[1975,2609796],[1976,2680390],[1977,2753462],[1978,2830006],[1979,2908571],[1980,2991217],[1981,3064312],[1982,3139596],[1983,3216925],[1984,3296419],[1985,3378233],[1986,3462394],[1987,3548932],[1988,3638032],[1989,3729905],[1990,3824787],[1991,3922925],[1992,4024135],[1993,4128174],[1994,4235157],[1995,4344820],[1996,4456781],[1997,4571004],[1998,4687521],[1999,4806270],[2000,4926984],[2001,5049055],[2002,5172033],[2003,5295816],[2004,5420280],[2005,5545268],[2006,5670544],[2007,5795887],[2008,5921144]],"lifeExpectancy":[[1800,31.5],[1946,31.5],[1950,33.67],[1951,33.92],[1952,34.42],[1953,34.93],[1954,35.43],[1955,35.93],[1956,36.44],[1957,36.94],[1958,37.44],[1959,37.94],[1960,38.44],[1961,38.94],[1962,39.44],[1963,39.94],[1964,40.44],[1965,40.94],[1966,41.41],[1967,41.87],[1968,42.33],[1969,42.79],[1970,43.29],[1971,43.85],[1972,44.5],[1973,45.23],[1974,46.05],[1975,46.92],[1976,47.84],[1977,48.75],[1978,49.63],[1979,50.43],[1980,51.13],[1981,51.71],[1982,52.18],[1983,52.55],[1984,52.82],[1985,53.05],[1986,53.24],[1987,53.45],[1988,53.69],[1989,53.97],[1990,54.3],[1991,54.64],[1992,54.97],[1993,55.28],[1994,55.57],[1995,55.85],[1996,56.15],[1997,56.48],[1998,56.85],[1999,57.28],[2000,57.74],[2001,58.23],[2002,58.71],[2003,59.16],[2004,59.59],[2005,59.98],[2006,60.33],[2007,60.66],[2008,60.98],[2009,61.29]]},{"name":"Philippines","region":"East Asia & Pacific","income":[[1800,626.97],[1820,626.97],[1870,669.73],[1902,722.13],[1903,862.59],[1904,728.86],[1905,760.94],[1906,775.46],[1907,801.87],[1908,831.78],[1909,831.4],[1910,938.44],[1911,979.62],[1912,978.25],[1913,1060.58],[1914,1021.54],[1915,939.39],[1916,1076.52],[1917,1231.94],[1918,1380.03],[1919,1301.39],[1920,1383.74],[1921,1326.03],[1922,1456.87],[1923,1341.59],[1924,1436.65],[1925,1420.6],[1926,1463.7],[1927,1466.19],[1928,1494],[1929,1516.23],[1930,1483.09],[1931,1460],[1932,1489.42],[1933,1468.54],[1934,1447.15],[1935,1317.45],[1936,1463.72],[1937,1532.46],[1938,1545.88],[1939,1619.02],[1940,1617.56],[1946,693.54],[1947,939.28],[1948,1065.52],[1949,1099.86],[1950,1148.81],[1951,1235.02],[1952,1272.88],[1953,1345.68],[1954,1404.09],[1955,1457.13],[1956,1513.28],[1957,1547.94],[1958,1554.15],[1959,1610.86],[1960,1584.52],[1961,1623.38],[1962,1649.55],[1963,1712.47],[1964,1717.62],[1965,1753.01],[1966,1775.28],[1967,1814.13],[1968,1848.05],[1969,1878.29],[1970,1893.6],[1971,1940.38],[1972,1989.37],[1973,2107.62],[1974,2123.74],[1975,2182.52],[1976,2310.26],[1977,2373.2],[1978,2427.5],[1979,2493.71],[1980,2549.91],[1981,2573.77],[1982,2603.27],[1983,2592.63],[1984,2348.4],[1985,2126.48],[1986,2148.12],[1987,2189.63],[1988,2285.43],[1989,2372],[1990,2386.91],[1991,2319.94],[1992,2279.32],[1993,2279.47],[1994,2328.83],[1995,2383.69],[1996,2464.68],[1997,2536.53],[1998,2469.84],[1999,2502.92],[2000,2598.89],[2001,2591.32],[2002,2650.92],[2003,2727.42],[2004,2847.41],[2005,2932],[2006,3027.82],[2007,3178.78],[2008,3236.92],[2009,3203.97]],"population":[[1800,2176000],[1820,2176000],[1850,3612000],[1870,5063000],[1890,6476000],[1900,7324000],[1901,7465000],[1902,7609000],[1903,7755000],[1904,7904000],[1905,8056000],[1906,8211000],[1907,8369000],[1908,8530000],[1909,8694000],[1910,8861000],[1911,9032000],[1912,9206000],[1913,9384000],[1914,9565000],[1915,9749000],[1916,9937000],[1917,10128000],[1918,10323000],[1919,10522000],[1920,10725000],[1921,10932000],[1922,11143000],[1923,11358000],[1924,11577000],[1925,11800000],[1926,12026000],[1927,12305000],[1928,12543000],[1929,12890000],[1930,13194000],[1931,13507000],[1932,13829000],[1933,14158000],[1934,14497000],[1935,14843000],[1936,15199000],[1937,15563000],[1938,15934000],[1939,16275000],[1940,16585000],[1941,16902000],[1942,17169000],[1943,17552000],[1944,17887000],[1945,18228000],[1946,18775000],[1947,19338000],[1948,19918000],[1949,20516000],[1950,21131264],[1951,21775167],[1952,22438691],[1953,23122432],[1954,23827009],[1955,24553055],[1956,25301226],[1957,26072194],[1958,26866654],[1959,27685324],[1960,28528939],[1961,29410457],[1962,30325264],[1963,31273198],[1964,32254350],[1965,33267569],[1966,34304274],[1967,35356600],[1968,36424438],[1969,37506719],[1970,38603696],[1971,39718094],[1972,40850141],[1973,41998117],[1974,43162098],[1975,44336842],[1976,45574350],[1977,46850962],[1978,48171780],[1979,49537371],[1980,50940182],[1981,52195262],[1982,53456774],[1983,54697515],[1984,55963794],[1985,57288037],[1986,58648857],[1987,60017788],[1988,61384736],[1989,62814469],[1990,64318120],[1991,65788832],[1992,67185766],[1993,68610958],[1994,70111842],[1995,71717437],[1996,73386057],[1997,75012988],[1998,76576177],[1999,78133918],[2000,79739825],[2001,81369751],[2002,82995088],[2003,84619974],[2004,86241697],[2005,87857473],[2006,89468677],[2007,91077287],[2008,92681453]],"lifeExpectancy":[[1800,30.9],[1901,30.9],[1902,12.7],[1903,30.9],[1917,30.9],[1918,25.6],[1919,30.9],[1930,30.9],[1938,40],[1941,42],[1942,41.9],[1943,42],[1944,41.9],[1945,40.5],[1946,41],[1950,46.36],[1951,46.71],[1952,47.41],[1953,48.12],[1954,48.84],[1955,49.58],[1956,50.32],[1957,51.07],[1958,51.81],[1959,52.54],[1960,53.23],[1961,53.87],[1962,54.45],[1963,54.95],[1964,55.38],[1965,55.74],[1966,56.06],[1967,56.35],[1968,56.64],[1969,56.93],[1970,57.24],[1971,57.58],[1972,57.94],[1973,58.31],[1974,58.69],[1975,59.08],[1976,59.49],[1977,59.9],[1978,60.31],[1979,60.72],[1980,61.13],[1981,61.54],[1982,61.95],[1983,62.36],[1984,62.77],[1985,63.19],[1986,63.62],[1987,64.06],[1988,64.51],[1989,64.96],[1990,65.43],[1991,65.88],[1992,66.34],[1993,66.78],[1994,67.2],[1995,67.61],[1996,68],[1997,68.39],[1998,68.77],[1999,69.14],[2000,69.49],[2001,69.84],[2002,70.17],[2003,70.48],[2004,70.78],[2005,71.07],[2006,71.34],[2007,71.6],[2008,71.85],[2009,72.1]]},{"name":"Samoa","region":"East Asia & Pacific","income":[[1800,1308.44],[1820,1308.44],[1913,1768.9],[1973,3667.7],[1974,3247.05],[1975,3098.02],[1976,3360.96],[1977,3311.52],[1978,3496.44],[1979,3938.62],[1980,3684.4],[1981,3343.02],[1982,3301.91],[1983,3310.12],[1984,3345.52],[1985,3466.03],[1986,3642.49],[1987,3642.57],[1988,3569.52],[1989,3678.48],[1990,3491.92],[1991,3387.06],[1992,3354.37],[1993,3463.17],[1994,3344.81],[1995,3529.46],[1996,3746.22],[1997,3734.02],[1998,3780.31],[1999,3854.83],[2000,4090.83],[2001,4386.17],[2002,4435.87],[2003,4545.09],[2004,4667.13],[2005,4872],[2006,4963.4],[2007,5052.76],[2008,5281.41],[2009,5003.61]],"population":[[1800,47300],[1850,46899],[1900,33000],[1906,37000],[1911,38000],[1921,36000],[1926,40000],[1936,56000],[1945,68000],[1950,81858],[1951,84351],[1952,86746],[1953,89031],[1954,91357],[1955,93857],[1956,96619],[1957,99661],[1958,102902],[1959,106412],[1960,110043],[1961,113621],[1962,117081],[1963,120526],[1964,123874],[1965,127151],[1966,130240],[1967,133162],[1968,136151],[1969,139206],[1970,142331],[1971,145356],[1972,148489],[1973,149436],[1974,149966],[1975,150839],[1976,151200],[1977,152748],[1978,153529],[1979,154339],[1980,155177],[1981,156046],[1982,158084],[1983,160155],[1984,162265],[1985,164417],[1986,165746],[1987,166575],[1988,166509],[1989,167389],[1990,170477],[1991,172553],[1992,174011],[1993,177551],[1994,181436],[1995,181623],[1996,180516],[1997,180418],[1998,180177],[1999,179843],[2000,179466],[2001,179058],[2002,178631],[2003,178173],[2004,177714],[2005,177287],[2006,176908],[2007,176615],[2008,176418]],"lifeExpectancy":[[1950,44.9],[1951,45.15],[1952,45.67],[1953,46.18],[1954,46.7],[1955,47.21],[1956,47.73],[1957,48.24],[1958,48.75],[1959,49.27],[1960,49.78],[1961,50.29],[1962,50.8],[1963,51.31],[1964,51.83],[1965,52.34],[1966,52.84],[1967,53.35],[1968,53.86],[1969,54.37],[1970,54.88],[1971,55.38],[1972,55.89],[1973,56.4],[1974,56.9],[1975,57.4],[1976,57.91],[1977,58.41],[1978,58.91],[1979,59.41],[1980,59.92],[1981,60.42],[1982,60.92],[1983,61.42],[1984,61.92],[1985,62.42],[1986,62.92],[1987,63.41],[1988,63.91],[1989,64.4],[1990,64.89],[1991,65.38],[1992,65.86],[1993,66.35],[1994,66.83],[1995,67.3],[1996,67.74],[1997,68.17],[1998,68.56],[1999,68.93],[2000,69.28],[2001,69.6],[2002,69.91],[2003,70.21],[2004,70.51],[2005,70.81],[2006,71.1],[2007,71.38],[2008,71.65],[2009,71.92]]},{"name":"Singapore","region":"East Asia & Pacific","income":[[1800,861.82],[1820,861.82],[1870,955.91],[1900,2181.19],[1901,2402.4],[1902,2270.96],[1903,1953.69],[1904,1888.04],[1905,2090],[1906,2349.06],[1907,2141.77],[1908,2460.38],[1909,2487.7],[1910,2702.41],[1911,2420.61],[1912,2070.75],[1913,1791.8],[1914,2141.85],[1915,2184.41],[1916,1805.95],[1917,2502.44],[1918,1956.12],[1919,2219.48],[1920,1911.46],[1921,2158.63],[1922,2851.87],[1923,2920.33],[1924,2856.89],[1925,3218.95],[1926,2656.8],[1927,1964.79],[1928,2334.94],[1929,3287.13],[1930,3016.41],[1931,2221.66],[1932,1933.51],[1933,2735.08],[1934,3226.93],[1935,3635.38],[1936,3611.6],[1937,3923.18],[1938,3326.45],[1939,3869.21],[1950,3533.04],[1951,3331.42],[1952,2315.14],[1953,2762.9],[1954,3166.36],[1955,2912.65],[1956,3204.49],[1957,2843.1],[1958,2849.15],[1959,3202.78],[1960,3426.03],[1961,3782.96],[1962,3674.74],[1963,3907.52],[1964,3827.09],[1965,4181.25],[1966,4527.16],[1967,4977.42],[1968,5566.63],[1969,6236.47],[1970,6993.76],[1971,7704.6],[1972,8597.76],[1973,9392.46],[1974,9803.18],[1975,9965.82],[1976,10537.03],[1977,11210.09],[1978,12025.08],[1979,13004.71],[1980,14103.68],[1981,14781.26],[1982,15169.16],[1983,16265.91],[1984,17312.22],[1985,17037.04],[1986,17417.21],[1987,18861.53],[1988,20542.93],[1989,21986.22],[1990,23142.8],[1991,23983.76],[1992,24769.89],[1993,27040.11],[1994,29303.24],[1995,30793.47],[1996,31934.8],[1997,33519.48],[1998,31918.24],[1999,33981.15],[2000,36834.85],[2001,34910.71],[2002,36023.11],[2003,37024.32],[2004,39796.67],[2005,41479],[2006,43689.11],[2007,45351.51],[2008,45196.46],[2009,43526.04]],"population":[[1800,30000],[1820,30000],[1850,56000],[1870,84000],[1890,157000],[1900,215000],[1913,323000],[1914,331000],[1915,341000],[1916,351000],[1917,360000],[1918,370000],[1919,380000],[1920,391000],[1921,418000],[1922,436000],[1923,458000],[1924,469000],[1925,492000],[1926,511000],[1927,532000],[1928,553000],[1929,575000],[1930,596000],[1931,563000],[1932,580000],[1933,515000],[1934,525000],[1935,572000],[1936,603000],[1937,651000],[1938,710000],[1939,728000],[1940,751000],[1941,769000],[1947,938000],[1948,961000],[1949,979000],[1950,1022100],[1951,1068100],[1952,1127000],[1953,1191800],[1954,1248200],[1955,1305500],[1956,1371600],[1957,1445929],[1958,1518800],[1959,1587200],[1960,1646400],[1961,1702400],[1962,1750200],[1963,1795000],[1964,1841600],[1965,1886900],[1966,1934400],[1967,1977600],[1968,2012000],[1969,2042500],[1970,2074507],[1971,2112900],[1972,2152400],[1973,2193000],[1974,2229800],[1975,2262600],[1976,2293300],[1977,2325300],[1978,2353600],[1979,2383500],[1980,2413900],[1981,2535368],[1982,2651869],[1983,2689263],[1984,2743297],[1985,2749897],[1986,2750069],[1987,2794552],[1988,2869266],[1989,2957752],[1990,3047100],[1991,3144576],[1992,3235865],[1993,3328154],[1994,3427979],[1995,3542866],[1996,3672284],[1997,3802309],[1998,3904528],[1999,3967753],[2000,4036753],[2001,4120228],[2002,4197776],[2003,4276788],[2004,4353893],[2005,4425720],[2006,4492150],[2007,4553009],[2008,4608167]],"lifeExpectancy":[[1800,29.1],[1819,29.1],[1824,34],[1920,34],[1950,59.25],[1951,59.54],[1952,60.11],[1953,60.69],[1954,61.25],[1955,61.81],[1956,62.37],[1957,62.92],[1958,63.47],[1959,64.01],[1960,64.54],[1961,65.06],[1962,65.56],[1963,66.05],[1964,66.51],[1965,66.95],[1966,67.37],[1967,67.76],[1968,68.13],[1969,68.48],[1970,68.8],[1971,69.11],[1972,69.4],[1973,69.68],[1974,69.95],[1975,70.2],[1976,70.44],[1977,70.66],[1978,70.86],[1979,71.05],[1980,71.24],[1981,71.44],[1982,71.66],[1983,71.92],[1984,72.21],[1985,72.55],[1986,72.94],[1987,73.39],[1988,73.87],[1989,74.37],[1990,74.87],[1991,75.34],[1992,75.77],[1993,76.13],[1994,76.43],[1995,76.69],[1996,76.91],[1997,77.13],[1998,77.37],[1999,77.64],[2000,77.93],[2001,78.26],[2002,78.61],[2003,78.96],[2004,79.3],[2005,79.63],[2006,79.92],[2007,80.18],[2008,80.4],[2009,80.58]]},{"name":"Solomon Islands","region":"East Asia & Pacific","income":[[1800,387.81],[1820,387.81],[1913,530.57],[1967,1304.6],[1968,1324.79],[1969,1245.96],[1970,1266.6],[1971,1251.52],[1972,864.97],[1973,929.95],[1974,1132.36],[1975,962.54],[1976,1057.78],[1977,1169.54],[1978,1231.07],[1979,1485.47],[1980,1348.15],[1981,1477.18],[1982,1467.4],[1983,1613.28],[1984,1579.09],[1985,1542.15],[1986,1792.38],[1987,1783.65],[1988,1797.15],[1989,1889.78],[1990,1870.13],[1991,1926.76],[1992,2109.89],[1993,2131.6],[1994,2261.81],[1995,2379.19],[1996,2350.19],[1997,2252.49],[1998,2230.07],[1999,2159.41],[2000,1802.02],[2001,1597.23],[2002,1530.5],[2003,1587.57],[2004,1671.75],[2005,1712],[2006,1780.28],[2007,1917.09],[2008,2001.01],[2009,1903.69]],"population":[[1800,56998],[1820,56998],[1931,94000],[1950,106647],[1951,107978],[1952,109424],[1953,110989],[1954,112677],[1955,114495],[1956,116446],[1957,118537],[1958,120775],[1959,123166],[1960,126363],[1961,129642],[1962,133007],[1963,136459],[1964,140000],[1965,143000],[1966,147000],[1967,151000],[1968,154000],[1969,158000],[1970,163000],[1971,168500],[1972,174500],[1973,180500],[1974,186500],[1975,193000],[1976,199500],[1977,207339],[1978,215444],[1979,223814],[1980,232452],[1981,241354],[1982,250516],[1983,259953],[1984,269681],[1985,279720],[1986,290061],[1987,300694],[1988,311637],[1989,322908],[1990,334524],[1991,346469],[1992,358713],[1993,371256],[1994,384099],[1995,397238],[1996,410641],[1997,424265],[1998,438082],[1999,452067],[2000,466194],[2001,480442],[2002,494786],[2003,509190],[2004,523617],[2005,538032],[2006,552438],[2007,566842],[2008,581208]],"lifeExpectancy":[[1800,25.7],[1944,25.7],[1950,44.37],[1951,44.62],[1952,45.13],[1953,45.64],[1954,46.15],[1955,46.65],[1956,47.16],[1957,47.66],[1958,48.17],[1959,48.67],[1960,49.17],[1961,49.68],[1962,50.18],[1963,50.68],[1964,51.19],[1965,51.7],[1966,52.2],[1967,52.71],[1968,53.22],[1969,53.73],[1970,54.24],[1971,54.77],[1972,55.31],[1973,55.85],[1974,56.39],[1975,56.91],[1976,57.41],[1977,57.87],[1978,58.27],[1979,58.58],[1980,58.77],[1981,58.77],[1982,58.56],[1983,58.19],[1984,57.69],[1985,57.15],[1986,56.66],[1987,56.33],[1988,56.21],[1989,56.32],[1990,56.66],[1991,57.16],[1992,57.76],[1993,58.38],[1994,58.97],[1995,59.53],[1996,60.06],[1997,60.57],[1998,61.09],[1999,61.62],[2000,62.15],[2001,62.69],[2002,63.23],[2003,63.77],[2004,64.3],[2005,64.81],[2006,65.31],[2007,65.79],[2008,66.24],[2009,66.66]]},{"name":"Taiwan","region":"East Asia & Pacific","income":[[1800,871],[1820,871],[1821,871],[1822,871],[1823,871],[1824,871],[1825,871],[1826,871],[1827,871],[1828,871],[1829,871],[1830,871],[1831,871],[1832,871],[1833,871],[1834,871],[1835,871],[1836,871],[1837,871],[1838,871],[1839,871],[1840,871],[1841,871],[1842,871],[1843,871],[1844,871],[1845,871],[1846,871],[1847,871],[1848,871],[1849,871],[1850,871],[1851,871],[1852,871],[1853,871],[1854,871],[1855,871],[1856,871],[1857,871],[1858,871],[1859,871],[1860,871],[1861,871],[1862,871],[1863,871],[1864,871],[1865,871],[1866,871],[1867,871],[1868,871],[1869,871],[1870,871],[1871,874],[1872,877],[1873,880],[1874,883],[1875,886],[1876,889],[1877,892],[1878,895],[1879,897],[1880,900],[1881,903],[1882,906],[1883,909],[1884,912],[1885,915],[1886,918],[1887,921],[1888,924],[1889,927],[1890,930],[1891,933],[1892,936],[1893,940],[1894,943],[1895,946],[1896,949],[1897,952],[1898,955],[1899,958],[1900,961],[1901,964],[1902,974],[1903,1151],[1904,1099],[1905,905],[1906,938],[1907,1066],[1908,1080],[1909,1218],[1910,1277],[1911,1131],[1912,1144],[1913,1177],[1914,1161],[1915,1176],[1916,1267],[1917,1400],[1918,1364],[1919,1356],[1920,1378],[1921,1442],[1922,1551],[1923,1611],[1924,1689],[1925,1753],[1926,1783],[1927,1732],[1928,1720],[1929,1807],[1930,1827],[1931,1821],[1932,1830],[1933,1783],[1934,1799],[1935,1944],[1936,1982],[1937,1931],[1938,1949],[1939,1849],[1940,1722],[1941,1598],[1942,1624],[1943,1456],[1944,1220],[1945,647],[1946,680],[1947,851],[1948,1052],[1949,1172],[1950,1304],[1951,1359],[1952,1468],[1953,1550],[1954,1638],[1955,1708],[1956,1737],[1957,1801],[1958,1859],[1959,1932],[1960,1984],[1961,2048],[1962,2137],[1963,2265],[1964,2465],[1965,2664],[1966,2821],[1967,3043],[1968,3244],[1969,3453],[1970,3757],[1971,4141],[1972,4590],[1973,5072],[1974,5025],[1975,5160],[1976,5754],[1977,6207],[1978,6909],[1979,7328],[1980,7672],[1981,7980],[1982,8086],[1983,8594],[1984,9353],[1985,9662],[1986,10624],[1987,11815],[1988,12588],[1989,13457],[1990,14123],[1991,14990],[1992,15965],[1993,16852],[1994,17866],[1995,18791],[1996,19754],[1997,20813],[1998,21493],[1999,22478],[2000,23525],[2001,22768],[2002,23495],[2003,24056],[2004,25332],[2005,26069],[2006,27359],[2007,28892],[2008,29004],[2009,28361]],"population":[[1800,2000000],[1820,2000000],[1850,2200000],[1870,2345000],[1890,2500000],[1900,2864000],[1901,2903000],[1902,2942000],[1903,2982000],[1904,3022000],[1905,3085000],[1906,3140000],[1907,3172000],[1908,3200000],[1909,3232000],[1910,3275000],[1911,3334000],[1912,3402000],[1913,3469000],[1914,3528000],[1915,3562000],[1916,3583000],[1917,3621000],[1918,3658000],[1919,3692000],[1920,3736000],[1921,3797000],[1922,3870000],[1923,3940000],[1924,4009000],[1925,4095000],[1926,4195000],[1927,4289000],[1928,4388000],[1929,4493000],[1930,4614000],[1931,4742000],[1932,4867000],[1933,4995000],[1934,5128000],[1935,5255000],[1936,5384000],[1937,5530000],[1938,5678000],[1939,5821000],[1940,5987000],[1941,6163000],[1942,6339000],[1943,6507000],[1944,6520000],[1945,6533000],[1946,6546000],[1947,6346000],[1948,6697000],[1949,7280000],[1950,7981454],[1951,8251326],[1952,8550362],[1953,8849962],[1954,9159966],[1955,9485858],[1956,9825346],[1957,10164215],[1958,10500314],[1959,10852996],[1960,11209160],[1961,11563348],[1962,11918938],[1963,12276610],[1964,12631480],[1965,12977635],[1966,13321002],[1967,13648692],[1968,13962358],[1969,14282297],[1970,14598316],[1971,14918496],[1972,15226039],[1973,15525588],[1974,15824103],[1975,16122188],[1976,16450056],[1977,16785196],[1978,17111535],[1979,17450136],[1980,17848320],[1981,18177430],[1982,18501390],[1983,18803390],[1984,19083348],[1985,19337363],[1986,19555581],[1987,19757799],[1988,19976096],[1989,20207541],[1990,20278957],[1991,20492997],[1992,20686918],[1993,20883467],[1994,21087873],[1995,21282829],[1996,21448723],[1997,21628605],[1998,21823024],[1999,21993460],[2000,22151237],[2001,22303700],[2002,22454239],[2003,22603000],[2004,22749838],[2005,22894384],[2006,23036087],[2007,23174294],[2008,23308370]],"lifeExpectancy":[[1800,28.3],[1906,28.3],[1907,29.5],[1908,30.9],[1909,31.8],[1910,33.9],[1911,33.9],[1912,34],[1913,33.3],[1914,31.9],[1915,28.5],[1916,30],[1917,31.4],[1918,26.1],[1919,31.2],[1920,27.6],[1921,30],[1922,36.6],[1923,35.3],[1924,37.1],[1925,34.2],[1926,37],[1927,39.6],[1928,40.3],[1929,40.9],[1930,41.5],[1931,41.2],[1932,41.3],[1933,42],[1934,42.6],[1935,42.8],[1936,42],[1937,42.5],[1938,43.7],[1939,43.6],[1940,43.8],[1950,54.6],[1951,55.1],[1952,58.5],[1953,60.3],[1954,62],[1955,62.4],[1956,62.5],[1957,62.4],[1958,64.2],[1959,64.2],[1960,64.4],[1961,64.9],[1962,65.2],[1963,66],[1964,66.7],[1965,67.4],[1966,67.4],[1967,67.5],[1968,67.6],[1969,68.6],[1970,68.69],[1971,69.1],[1972,69.39],[1973,69.45],[1974,69.81],[1975,70.07],[1976,70.43],[1977,70.59],[1978,71.16],[1979,71.31],[1980,71.54],[1981,71.65],[1982,72.16],[1983,72.15],[1984,72.81],[1985,72.99],[1986,73.12],[1987,73.39],[1988,73.21],[1989,73.52],[1990,73.8],[1991,74.27],[1992,74.25],[1993,74.53],[1994,74.7],[1995,74.51],[1996,74.69],[1997,75.21],[1998,75.4],[1999,75.51],[2000,76.07],[2001,76.45],[2002,76.93],[2003,77.13],[2004,77.25],[2005,77.25],[2006,77.99],[2007,78.16],[2008,78.36],[2009,78.6]]},{"name":"Thailand","region":"East Asia & Pacific","income":[[1800,496.98],[1820,496.98],[1870,530.09],[1890,683.55],[1913,732.93],[1929,691.86],[1938,720.58],[1950,712.4],[1951,740.14],[1952,757.8],[1953,815.46],[1954,783.36],[1955,823.98],[1956,810.62],[1957,793.58],[1958,796.7],[1959,865.04],[1960,940.12],[1961,958.99],[1962,1002.2],[1963,1050.68],[1964,1088.71],[1965,1140.35],[1966,1231.34],[1967,1295.46],[1968,1361.45],[1969,1426.51],[1970,1477.26],[1971,1503.77],[1972,1524.36],[1973,1633.64],[1974,1665.36],[1975,1707.84],[1976,1823.5],[1977,1961.22],[1978,2111.47],[1979,2176.35],[1980,2227.1],[1981,2313.84],[1982,2393.22],[1983,2482.77],[1984,2581.97],[1985,2659.44],[1986,2764.2],[1987,2982.65],[1988,3330.33],[1989,3684],[1990,4039.67],[1991,4327.9],[1992,4616.9],[1993,4940.01],[1994,5317.17],[1995,5734.62],[1996,6001.24],[1997,5852.63],[1998,5183.91],[1999,5366.1],[2000,5578.4],[2001,5656.2],[2002,5913.19],[2003,6273.01],[2004,6620.03],[2005,6869],[2006,7203.68],[2007,7505.99],[2008,7623.6],[2009,7376.17]],"population":[[1800,4665000],[1820,4665000],[1850,5230000],[1870,5775000],[1890,6670000],[1900,7320000],[1901,7413000],[1902,7507000],[1903,7602000],[1904,7699000],[1905,7797000],[1906,7896000],[1907,7996000],[1908,8098000],[1909,8201000],[1910,8305000],[1911,8431000],[1912,8559000],[1913,8689000],[1914,8822000],[1915,8957000],[1916,9094000],[1917,9232000],[1918,9418000],[1919,9608000],[1920,9802000],[1921,10000000],[1922,10202000],[1923,10435000],[1924,10673000],[1925,10916000],[1926,11165000],[1927,11419000],[1928,11734000],[1929,12058000],[1930,12392000],[1931,12735000],[1932,13087000],[1933,13399000],[1934,13718000],[1935,14045000],[1936,14379000],[1937,14721000],[1938,14980000],[1939,15244000],[1940,15513000],[1941,15787000],[1942,16060000],[1943,16462000],[1944,16868000],[1945,17284000],[1946,17710000],[1947,18148000],[1948,18569000],[1949,19000000],[1950,20041628],[1951,20653334],[1952,21289402],[1953,21964158],[1954,22684974],[1955,23451316],[1956,24244475],[1957,25041917],[1958,25845443],[1959,26667243],[1960,27512750],[1961,28376096],[1962,29263397],[1963,30173764],[1964,31106615],[1965,32061978],[1966,33035794],[1967,34024249],[1968,35028438],[1969,36049959],[1970,37090871],[1971,38201901],[1972,39276153],[1973,40302225],[1974,41305651],[1975,42272000],[1976,43221022],[1977,44148285],[1978,45056957],[1979,46003776],[1980,47025764],[1981,47936504],[1982,48827160],[1983,49694245],[1984,50533778],[1985,51341809],[1986,52129476],[1987,52910342],[1988,53683427],[1989,54445689],[1990,55196722],[1991,55930062],[1992,56667095],[1993,57400686],[1994,58128738],[1995,58855798],[1996,59559308],[1997,60216677],[1998,60846042],[1999,61394684],[2000,61862928],[2001,62334375],[2002,62806748],[2003,63271021],[2004,63731437],[2005,64185502],[2006,64631595],[2007,65068149],[2008,65493298]],"lifeExpectancy":[[1800,30.4],[1930,30.4],[1937,40.3],[1939,40.3],[1941,38.3],[1943,38.3],[1944,38.1],[1947,41.8],[1948,49.9],[1950,51],[1951,51.14],[1952,51.44],[1953,51.75],[1954,52.09],[1955,52.44],[1956,52.81],[1957,53.21],[1958,53.62],[1959,54.04],[1960,54.48],[1961,54.93],[1962,55.39],[1963,55.86],[1964,56.34],[1965,56.82],[1966,57.31],[1967,57.81],[1968,58.33],[1969,58.85],[1970,59.39],[1971,59.93],[1972,60.48],[1973,61.04],[1974,61.6],[1975,62.2],[1976,62.85],[1977,63.56],[1978,64.32],[1979,65.12],[1980,65.93],[1981,66.71],[1982,67.44],[1983,68.07],[1984,68.59],[1985,68.97],[1986,69.22],[1987,69.33],[1988,69.35],[1989,69.28],[1990,69.15],[1991,68.98],[1992,68.79],[1993,68.6],[1994,68.44],[1995,68.3],[1996,68.21],[1997,68.14],[1998,68.1],[1999,68.08],[2000,68.09],[2001,68.12],[2002,68.17],[2003,68.23],[2004,68.32],[2005,68.42],[2006,68.55],[2007,68.7],[2008,68.88],[2009,69.08]]},{"name":"Timor-Leste","region":"East Asia & Pacific","income":[[1800,514.12],[1820,518.73],[1850,539.86],[1870,554.8],[1913,723.93],[1950,704.35],[1973,1244.57],[1990,2257.73],[1991,2419.65],[1992,2577.99],[1993,2746.85],[1994,2945.92],[1995,3188.04],[1996,3547.23],[1997,3756.34],[1998,3749.92],[1999,2442.67],[2000,2743.19],[2001,3082.86],[2002,2726.03],[2003,2400.73],[2004,2268.32],[2005,2203],[2006,2018.5],[2007,2133.7],[2008,2352.74],[2009,2475.68]],"population":[[1800,137262],[1820,137262],[1926,442000],[1935,461000],[1950,435529],[1951,442862],[1952,450195],[1953,457529],[1954,464862],[1955,472195],[1956,479528],[1957,486861],[1958,494194],[1959,501527],[1960,508860],[1961,517732],[1962,526603],[1963,535474],[1964,544346],[1965,553217],[1966,562088],[1967,570960],[1968,579831],[1969,588702],[1970,597574],[1971,613767],[1972,629961],[1973,646155],[1974,661194],[1975,676582],[1976,652698],[1977,628814],[1978,604930],[1979,581046],[1980,557162],[1981,576054],[1982,594947],[1983,613839],[1984,632731],[1985,651624],[1986,670516],[1987,689409],[1988,708301],[1989,727194],[1990,746086],[1991,771238],[1992,796343],[1993,821171],[1994,845714],[1995,870147],[1996,894488],[1997,918738],[1998,942909],[1999,967073],[2000,846599],[2001,899109],[2002,952618],[2003,997853],[2004,1019252],[2005,1040880],[2006,1062777],[2007,1084971],[2008,1107432],[2009,1130120]],"lifeExpectancy":[[1950,28.97],[1951,29.22],[1952,29.73],[1953,30.23],[1954,30.73],[1955,31.24],[1956,31.74],[1957,32.24],[1958,32.74],[1959,33.24],[1960,33.74],[1961,34.24],[1962,34.74],[1963,35.24],[1964,35.74],[1965,36.28],[1966,36.9],[1967,37.6],[1968,38.34],[1969,39.05],[1970,39.53],[1971,39.58],[1972,39.09],[1973,38.09],[1974,36.67],[1975,35.11],[1976,33.77],[1977,32.94],[1978,32.81],[1979,33.41],[1980,34.65],[1981,36.3],[1982,38.02],[1983,39.56],[1984,40.82],[1985,41.79],[1986,42.54],[1987,43.23],[1988,43.98],[1989,44.83],[1990,45.79],[1991,46.86],[1992,47.97],[1993,49.08],[1994,50.19],[1995,51.27],[1996,52.33],[1997,53.36],[1998,54.36],[1999,55.32],[2000,56.23],[2001,57.06],[2002,57.83],[2003,58.51],[2004,59.13],[2005,59.69],[2006,60.2],[2007,60.68],[2008,61.14],[2009,61.6]]},{"name":"Tokelau","region":"East Asia & Pacific","income":[[2005,889.43]],"population":[[1800,1009],[1843,1000],[1850,1000],[1900,350],[1950,1570],[1955,1599],[1960,1862],[1965,1853],[1970,1581],[1975,1569],[1980,1556],[1985,1593],[1990,1602],[1995,1478],[2000,1517],[2005,1401]],"lifeExpectancy":[[2006,69]]},{"name":"Tonga","region":"East Asia & Pacific","income":[[1800,667.71],[1820,667.71],[1913,902.69],[1973,1874.54],[1974,1955.67],[1975,2022.32],[1976,2036.5],[1977,2116.11],[1978,2129.73],[1979,2148.21],[1980,2479.03],[1981,2836.58],[1982,3287.05],[1983,3523.52],[1984,3626.13],[1985,3891.13],[1986,3979.68],[1987,4088.36],[1988,3988.06],[1989,3975.5],[1990,3867.01],[1991,4087.24],[1992,4070.07],[1993,4195.1],[1994,4378.54],[1995,4490.38],[1996,4540.02],[1997,4432.97],[1998,4539.39],[1999,4718.65],[2000,4886.27],[2001,5026],[2002,5084.22],[2003,5228.76],[2004,5270.86],[2005,5135],[2006,5106.83],[2007,5114.47],[2008,5142.53],[2009,5104.06]],"population":[[1800,18658],[1843,18500],[1850,18500],[1900,20000],[1901,21000],[1911,23000],[1921,25000],[1931,29000],[1939,34000],[1950,45744],[1951,47378],[1952,49066],[1953,50808],[1954,52607],[1955,54465],[1956,56428],[1957,58168],[1958,59962],[1959,61811],[1960,63718],[1961,65683],[1962,67709],[1963,69797],[1964,71949],[1965,74168],[1966,76456],[1967,78816],[1968,81249],[1969,81900],[1970,83100],[1971,84300],[1972,85600],[1973,86800],[1974,87700],[1975,89200],[1976,90200],[1977,90593],[1978,90977],[1979,91352],[1980,91361],[1981,91769],[1982,92201],[1983,92628],[1984,92883],[1985,93352],[1986,93744],[1987,93982],[1988,93290],[1989,92744],[1990,92073],[1991,91218],[1992,92094],[1993,93734],[1994,94398],[1995,95158],[1996,96165],[1997,97399],[1998,98835],[1999,100475],[2000,102321],[2001,104227],[2002,106137],[2003,108141],[2004,110237],[2005,112422],[2006,114689],[2007,116921],[2008,118993]],"lifeExpectancy":[[1950,57.91],[1951,58.1],[1952,58.47],[1953,58.84],[1954,59.2],[1955,59.58],[1956,59.95],[1957,60.32],[1958,60.69],[1959,61.06],[1960,61.43],[1961,61.8],[1962,62.16],[1963,62.52],[1964,62.88],[1965,63.23],[1966,63.58],[1967,63.93],[1968,64.27],[1969,64.61],[1970,64.94],[1971,65.26],[1972,65.56],[1973,65.83],[1974,66.09],[1975,66.33],[1976,66.56],[1977,66.79],[1978,67.02],[1979,67.26],[1980,67.5],[1981,67.75],[1982,68],[1983,68.24],[1984,68.48],[1985,68.7],[1986,68.91],[1987,69.1],[1988,69.27],[1989,69.42],[1990,69.55],[1991,69.67],[1992,69.78],[1993,69.89],[1994,70],[1995,70.11],[1996,70.22],[1997,70.35],[1998,70.47],[1999,70.61],[2000,70.75],[2001,70.88],[2002,71.02],[2003,71.16],[2004,71.3],[2005,71.43],[2006,71.56],[2007,71.69],[2008,71.83],[2009,71.96]]},{"name":"Vietnam","region":"East Asia & Pacific","income":[[1800,459.71],[1820,459.71],[1870,440.8],[1913,634.17],[1950,573.94],[1951,589.87],[1952,605.07],[1953,621.19],[1954,638.49],[1955,654.19],[1956,665.99],[1957,676.29],[1958,684.6],[1959,690.41],[1960,696.95],[1961,708.2],[1962,772.05],[1963,769.51],[1964,780.9],[1965,764.66],[1966,749.36],[1967,637.12],[1968,609.88],[1969,644.57],[1970,641.06],[1971,657.68],[1972,699.5],[1973,729.17],[1974,683.26],[1975,619.17],[1976,705.88],[1977,713.54],[1978,702.65],[1979,693.39],[1980,660.36],[1981,668.83],[1982,707.24],[1983,729.51],[1984,777.06],[1985,805.22],[1986,809.93],[1987,820.8],[1988,851.42],[1989,868.8],[1990,893.88],[1991,927.11],[1992,989.02],[1993,1049.36],[1994,1121.67],[1995,1208.14],[1996,1300.38],[1997,1385.9],[1998,1445.95],[1999,1495.63],[2000,1577.53],[2001,1666.51],[2002,1764.46],[2003,1872.13],[2004,1996.87],[2005,2142],[2006,2289.34],[2007,2453.8],[2008,2574.44],[2009,2679.34]],"population":[[1800,6551000],[1820,6551000],[1870,10528000],[1913,19339000],[1950,25348144],[1951,25793577],[1952,26246839],[1953,26724094],[1954,27210027],[1955,27738063],[1956,28327287],[1957,28998543],[1958,29775192],[1959,30682902],[1960,31656282],[1961,32701357],[1962,33796140],[1963,34932464],[1964,36099052],[1965,37258369],[1966,38378468],[1967,39463910],[1968,40511528],[1969,41542068],[1970,42576676],[1971,43614366],[1972,44655014],[1973,45736496],[1974,46902295],[1975,48075207],[1976,49273016],[1977,50533506],[1978,51662728],[1979,52668447],[1980,53715202],[1981,54902677],[1982,56142181],[1983,57436347],[1984,58762040],[1985,60093068],[1986,61439826],[1987,62826491],[1988,64211347],[1989,65868481],[1990,67282704],[1991,68639527],[1992,69940728],[1993,71243961],[1994,72538927],[1995,73772337],[1996,74941175],[1997,76048996],[1998,77092383],[1999,78089676],[2000,79060410],[2001,79999453],[2002,80908147],[2003,81790803],[2004,82662800],[2005,83535576],[2006,84402966],[2007,85262356],[2008,86116559]],"lifeExpectancy":[[1800,32],[1930,32],[1936,33],[1950,39.42],[1951,39.67],[1952,40.17],[1953,40.66],[1954,41.16],[1955,41.65],[1956,42.15],[1957,42.64],[1958,43.13],[1959,43.63],[1960,44.13],[1961,44.62],[1962,45.12],[1963,45.61],[1964,46.11],[1965,46.6],[1966,47.06],[1967,47.49],[1968,47.91],[1969,48.34],[1970,48.82],[1971,49.4],[1972,50.11],[1973,50.95],[1974,51.92],[1975,52.96],[1976,54.01],[1977,55.02],[1978,55.93],[1979,56.74],[1980,57.45],[1981,58.09],[1982,58.71],[1983,59.35],[1984,60.04],[1985,60.8],[1986,61.63],[1987,62.53],[1988,63.47],[1989,64.44],[1990,65.41],[1991,66.35],[1992,67.24],[1993,68.05],[1994,68.79],[1995,69.45],[1996,70.04],[1997,70.59],[1998,71.11],[1999,71.61],[2000,72.08],[2001,72.51],[2002,72.91],[2003,73.26],[2004,73.56],[2005,73.83],[2006,74.07],[2007,74.29],[2008,74.5],[2009,74.7]]},{"name":"Vanuatu","region":"East Asia & Pacific","income":[[1800,829.58],[1820,829.58],[1913,1121.52],[1973,2282.11],[1974,2972.51],[1975,2746.96],[1976,2713.85],[1977,2605.69],[1978,2972.59],[1979,2999.82],[1980,2584.81],[1981,2624.32],[1982,2834.89],[1983,3359.3],[1984,3507.64],[1985,3464.31],[1986,3314.97],[1987,3251.27],[1988,3191.44],[1989,3217.72],[1990,3281.56],[1991,3574.86],[1992,3443.42],[1993,3492.04],[1994,3482.08],[1995,3555.62],[1996,3729.75],[1997,3840.47],[1998,3936.02],[1999,3741.1],[2000,3762.19],[2001,3575.45],[2002,3234.46],[2003,3251.04],[2004,3340.51],[2005,3477],[2006,3632.57],[2007,3779.08],[2008,3916.57],[2009,3943.3]],"population":[[1800,27791],[1820,27791],[1950,52000],[1951,53262],[1952,54554],[1953,55878],[1954,57233],[1955,58622],[1956,60044],[1957,61501],[1958,62993],[1959,64522],[1960,66087],[1961,67691],[1962,69333],[1963,71015],[1964,72577],[1965,74195],[1966,76132],[1967,78219],[1968,80571],[1969,82905],[1970,85400],[1971,88100],[1972,90800],[1973,93700],[1974,96600],[1975,99700],[1976,102800],[1977,106000],[1978,109400],[1979,113399],[1980,116771],[1981,120223],[1982,123745],[1983,127335],[1984,130982],[1985,134677],[1986,138418],[1987,142207],[1988,146040],[1989,149913],[1990,153785],[1991,157616],[1992,161399],[1993,165127],[1994,168793],[1995,172387],[1996,175927],[1997,179428],[1998,182882],[1999,186282],[2000,189618],[2001,192910],[2002,196178],[2003,199414],[2004,202609],[2005,205754],[2006,208869],[2007,211971],[2008,215053]],"lifeExpectancy":[[1950,40.8],[1951,41.1],[1952,41.7],[1953,42.3],[1954,42.9],[1955,43.5],[1956,44.1],[1957,44.7],[1958,45.3],[1959,45.9],[1960,46.5],[1961,47.1],[1962,47.7],[1963,48.3],[1964,48.9],[1965,49.5],[1966,50.1],[1967,50.7],[1968,51.3],[1969,51.9],[1970,52.5],[1971,53.1],[1972,53.7],[1973,54.3],[1974,54.9],[1975,55.5],[1976,56.12],[1977,56.74],[1978,57.36],[1979,57.98],[1980,58.58],[1981,59.14],[1982,59.65],[1983,60.11],[1984,60.52],[1985,60.92],[1986,61.34],[1987,61.8],[1988,62.32],[1989,62.9],[1990,63.51],[1991,64.11],[1992,64.66],[1993,65.14],[1994,65.53],[1995,65.87],[1996,66.15],[1997,66.44],[1998,66.73],[1999,67.06],[2000,67.42],[2001,67.8],[2002,68.18],[2003,68.56],[2004,68.92],[2005,69.26],[2006,69.58],[2007,69.89],[2008,70.2],[2009,70.5]]}]
\ No newline at end of file
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/parallelCoordinates.html b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/parallelCoordinates.html
deleted file mode 100755
index 8dace04b..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/parallelCoordinates.html
+++ /dev/null
@@ -1,4125 +0,0 @@
-<!DOCTYPE html>
-<meta charset="utf-8">
-<html>
-<head>
-<link href="../src/nv.d3.css" rel="stylesheet" type="text/css">
-<style>
-
-body {
-  overflow-y: scroll;
-}
-
-.chart {
-  padding: 0;
-}
-
-svg {
-  position: relative;
-  overflow: hidden;
-  width: 960px;
-  height: 500px;
-  font: 10px sans-serif;
-}
-
-</style>
-</head>
-<body>
-
-<div id="chart1" class="chart">
-  <svg></svg>
-</div>
-
-<script type="text/javascript" src="../lib/d3.v3.js"></script>
-<script type="text/javascript" src="../nv.d3.js"></script>
-<script type="text/javascript" src="../src/utils.js"></script>
-<script type="text/javascript" src="../src/models/parallelCoordinates.js"></script>
-
-<script>
-  var chart;
-  nv.addGraph(function() {
-
-    chart = nv.models.parallelCoordinates()
-                  .dimensions(["economy (mpg)", "cylinders", "displacement (cc)", "power (hp)", "weight (lb)", "0-60 mph (s)", "year"]);
-
-    d3.select('#chart1 svg')
-        .datum(data)
-        .call(chart);
-
-    // chart.dispatch.on('brush', function(e) {
-    //   nv.log(e);
-    // });
-
-    nv.utils.windowResize(chart.update);
-
-    return chart;
-
-  });
-
-function data() {
-  return [
-  {
-    "name": "AMC Ambassador Brougham",
-    "economy (mpg)": "13",
-    "cylinders": "8",
-    "displacement (cc)": "360",
-    "power (hp)": "175",
-    "weight (lb)": "3821",
-    "0-60 mph (s)": "11",
-    "year": "73"
-  },
-  {
-    "name": "AMC Ambassador DPL",
-    "economy (mpg)": "15",
-    "cylinders": "8",
-    "displacement (cc)": "390",
-    "power (hp)": "190",
-    "weight (lb)": "3850",
-    "0-60 mph (s)": "8.5",
-    "year": "70"
-  },
-  {
-    "name": "AMC Ambassador SST",
-    "economy (mpg)": "17",
-    "cylinders": "8",
-    "displacement (cc)": "304",
-    "power (hp)": "150",
-    "weight (lb)": "3672",
-    "0-60 mph (s)": "11.5",
-    "year": "72"
-  },
-  {
-    "name": "AMC Concord DL 6",
-    "economy (mpg)": "20.2",
-    "cylinders": "6",
-    "displacement (cc)": "232",
-    "power (hp)": "90",
-    "weight (lb)": "3265",
-    "0-60 mph (s)": "18.2",
-    "year": "79"
-  },
-  {
-    "name": "AMC Concord DL",
-    "economy (mpg)": "18.1",
-    "cylinders": "6",
-    "displacement (cc)": "258",
-    "power (hp)": "120",
-    "weight (lb)": "3410",
-    "0-60 mph (s)": "15.1",
-    "year": "78"
-  },
-  {
-    "name": "AMC Concord DL",
-    "economy (mpg)": "23",
-    "cylinders": "4",
-    "displacement (cc)": "151",
-    "power (hp)": "",
-    "weight (lb)": "3035",
-    "0-60 mph (s)": "20.5",
-    "year": "82"
-  },
-  {
-    "name": "AMC Concord",
-    "economy (mpg)": "19.4",
-    "cylinders": "6",
-    "displacement (cc)": "232",
-    "power (hp)": "90",
-    "weight (lb)": "3210",
-    "0-60 mph (s)": "17.2",
-    "year": "78"
-  },
-  {
-    "name": "AMC Concord",
-    "economy (mpg)": "24.3",
-    "cylinders": "4",
-    "displacement (cc)": "151",
-    "power (hp)": "90",
-    "weight (lb)": "3003",
-    "0-60 mph (s)": "20.1",
-    "year": "80"
-  },
-  {
-    "name": "AMC Gremlin",
-    "economy (mpg)": "18",
-    "cylinders": "6",
-    "displacement (cc)": "232",
-    "power (hp)": "100",
-    "weight (lb)": "2789",
-    "0-60 mph (s)": "15",
-    "year": "73"
-  },
-  {
-    "name": "AMC Gremlin",
-    "economy (mpg)": "19",
-    "cylinders": "6",
-    "displacement (cc)": "232",
-    "power (hp)": "100",
-    "weight (lb)": "2634",
-    "0-60 mph (s)": "13",
-    "year": "71"
-  },
-  {
-    "name": "AMC Gremlin",
-    "economy (mpg)": "20",
-    "cylinders": "6",
-    "displacement (cc)": "232",
-    "power (hp)": "100",
-    "weight (lb)": "2914",
-    "0-60 mph (s)": "16",
-    "year": "75"
-  },
-  {
-    "name": "AMC Gremlin",
-    "economy (mpg)": "21",
-    "cylinders": "6",
-    "displacement (cc)": "199",
-    "power (hp)": "90",
-    "weight (lb)": "2648",
-    "0-60 mph (s)": "15",
-    "year": "70"
-  },
-  {
-    "name": "AMC Hornet Sportabout (Wagon)",
-    "economy (mpg)": "18",
-    "cylinders": "6",
-    "displacement (cc)": "258",
-    "power (hp)": "110",
-    "weight (lb)": "2962",
-    "0-60 mph (s)": "13.5",
-    "year": "71"
-  },
-  {
-    "name": "AMC Hornet",
-    "economy (mpg)": "18",
-    "cylinders": "6",
-    "displacement (cc)": "199",
-    "power (hp)": "97",
-    "weight (lb)": "2774",
-    "0-60 mph (s)": "15.5",
-    "year": "70"
-  },
-  {
-    "name": "AMC Hornet",
-    "economy (mpg)": "18",
-    "cylinders": "6",
-    "displacement (cc)": "232",
-    "power (hp)": "100",
-    "weight (lb)": "2945",
-    "0-60 mph (s)": "16",
-    "year": "73"
-  },
-  {
-    "name": "AMC Hornet",
-    "economy (mpg)": "19",
-    "cylinders": "6",
-    "displacement (cc)": "232",
-    "power (hp)": "100",
-    "weight (lb)": "2901",
-    "0-60 mph (s)": "16",
-    "year": "74"
-  },
-  {
-    "name": "AMC Hornet",
-    "economy (mpg)": "22.5",
-    "cylinders": "6",
-    "displacement (cc)": "232",
-    "power (hp)": "90",
-    "weight (lb)": "3085",
-    "0-60 mph (s)": "17.6",
-    "year": "76"
-  },
-  {
-    "name": "AMC Matador (Wagon)",
-    "economy (mpg)": "14",
-    "cylinders": "8",
-    "displacement (cc)": "304",
-    "power (hp)": "150",
-    "weight (lb)": "4257",
-    "0-60 mph (s)": "15.5",
-    "year": "74"
-  },
-  {
-    "name": "AMC Matador (Wagon)",
-    "economy (mpg)": "15",
-    "cylinders": "8",
-    "displacement (cc)": "304",
-    "power (hp)": "150",
-    "weight (lb)": "3892",
-    "0-60 mph (s)": "12.5",
-    "year": "72"
-  },
-  {
-    "name": "AMC Matador",
-    "economy (mpg)": "14",
-    "cylinders": "8",
-    "displacement (cc)": "304",
-    "power (hp)": "150",
-    "weight (lb)": "3672",
-    "0-60 mph (s)": "11.5",
-    "year": "73"
-  },
-  {
-    "name": "AMC Matador",
-    "economy (mpg)": "15",
-    "cylinders": "6",
-    "displacement (cc)": "258",
-    "power (hp)": "110",
-    "weight (lb)": "3730",
-    "0-60 mph (s)": "19",
-    "year": "75"
-  },
-  {
-    "name": "AMC Matador",
-    "economy (mpg)": "15.5",
-    "cylinders": "8",
-    "displacement (cc)": "304",
-    "power (hp)": "120",
-    "weight (lb)": "3962",
-    "0-60 mph (s)": "13.9",
-    "year": "76"
-  },
-  {
-    "name": "AMC Matador",
-    "economy (mpg)": "16",
-    "cylinders": "6",
-    "displacement (cc)": "258",
-    "power (hp)": "110",
-    "weight (lb)": "3632",
-    "0-60 mph (s)": "18",
-    "year": "74"
-  },
-  {
-    "name": "AMC Matador",
-    "economy (mpg)": "18",
-    "cylinders": "6",
-    "displacement (cc)": "232",
-    "power (hp)": "100",
-    "weight (lb)": "3288",
-    "0-60 mph (s)": "15.5",
-    "year": "71"
-  },
-  {
-    "name": "AMC Pacer D/L",
-    "economy (mpg)": "17.5",
-    "cylinders": "6",
-    "displacement (cc)": "258",
-    "power (hp)": "95",
-    "weight (lb)": "3193",
-    "0-60 mph (s)": "17.8",
-    "year": "76"
-  },
-  {
-    "name": "AMC Pacer",
-    "economy (mpg)": "19",
-    "cylinders": "6",
-    "displacement (cc)": "232",
-    "power (hp)": "90",
-    "weight (lb)": "3211",
-    "0-60 mph (s)": "17",
-    "year": "75"
-  },
-  {
-    "name": "AMC Rebel SST (Wagon)",
-    "economy (mpg)": "",
-    "cylinders": "8",
-    "displacement (cc)": "360",
-    "power (hp)": "175",
-    "weight (lb)": "3850",
-    "0-60 mph (s)": "11",
-    "year": "70"
-  },
-  {
-    "name": "AMC Rebel SST",
-    "economy (mpg)": "16",
-    "cylinders": "8",
-    "displacement (cc)": "304",
-    "power (hp)": "150",
-    "weight (lb)": "3433",
-    "0-60 mph (s)": "12",
-    "year": "70"
-  },
-  {
-    "name": "AMC Spirit DL",
-    "economy (mpg)": "27.4",
-    "cylinders": "4",
-    "displacement (cc)": "121",
-    "power (hp)": "80",
-    "weight (lb)": "2670",
-    "0-60 mph (s)": "15",
-    "year": "79"
-  },
-  {
-    "name": "Audi 100 LS",
-    "economy (mpg)": "20",
-    "cylinders": "4",
-    "displacement (cc)": "114",
-    "power (hp)": "91",
-    "weight (lb)": "2582",
-    "0-60 mph (s)": "14",
-    "year": "73"
-  },
-  {
-    "name": "Audi 100 LS",
-    "economy (mpg)": "23",
-    "cylinders": "4",
-    "displacement (cc)": "115",
-    "power (hp)": "95",
-    "weight (lb)": "2694",
-    "0-60 mph (s)": "15",
-    "year": "75"
-  },
-  {
-    "name": "Audi 100 LS",
-    "economy (mpg)": "24",
-    "cylinders": "4",
-    "displacement (cc)": "107",
-    "power (hp)": "90",
-    "weight (lb)": "2430",
-    "0-60 mph (s)": "14.5",
-    "year": "70"
-  },
-  {
-    "name": "Audi 4000",
-    "economy (mpg)": "34.3",
-    "cylinders": "4",
-    "displacement (cc)": "97",
-    "power (hp)": "78",
-    "weight (lb)": "2188",
-    "0-60 mph (s)": "15.8",
-    "year": "80"
-  },
-  {
-    "name": "Audi 5000",
-    "economy (mpg)": "20.3",
-    "cylinders": "5",
-    "displacement (cc)": "131",
-    "power (hp)": "103",
-    "weight (lb)": "2830",
-    "0-60 mph (s)": "15.9",
-    "year": "78"
-  },
-  {
-    "name": "Audi 5000S (Diesel)",
-    "economy (mpg)": "36.4",
-    "cylinders": "5",
-    "displacement (cc)": "121",
-    "power (hp)": "67",
-    "weight (lb)": "2950",
-    "0-60 mph (s)": "19.9",
-    "year": "80"
-  },
-  {
-    "name": "Audi Fox",
-    "economy (mpg)": "29",
-    "cylinders": "4",
-    "displacement (cc)": "98",
-    "power (hp)": "83",
-    "weight (lb)": "2219",
-    "0-60 mph (s)": "16.5",
-    "year": "74"
-  },
-  {
-    "name": "BMW 2002",
-    "economy (mpg)": "26",
-    "cylinders": "4",
-    "displacement (cc)": "121",
-    "power (hp)": "113",
-    "weight (lb)": "2234",
-    "0-60 mph (s)": "12.5",
-    "year": "70"
-  },
-  {
-    "name": "BMW 320i",
-    "economy (mpg)": "21.5",
-    "cylinders": "4",
-    "displacement (cc)": "121",
-    "power (hp)": "110",
-    "weight (lb)": "2600",
-    "0-60 mph (s)": "12.8",
-    "year": "77"
-  },
-  {
-    "name": "Buick Century 350",
-    "economy (mpg)": "13",
-    "cylinders": "8",
-    "displacement (cc)": "350",
-    "power (hp)": "175",
-    "weight (lb)": "4100",
-    "0-60 mph (s)": "13",
-    "year": "73"
-  },
-  {
-    "name": "Buick Century Limited",
-    "economy (mpg)": "25",
-    "cylinders": "6",
-    "displacement (cc)": "181",
-    "power (hp)": "110",
-    "weight (lb)": "2945",
-    "0-60 mph (s)": "16.4",
-    "year": "82"
-  },
-  {
-    "name": "Buick Century Luxus (Wagon)",
-    "economy (mpg)": "13",
-    "cylinders": "8",
-    "displacement (cc)": "350",
-    "power (hp)": "150",
-    "weight (lb)": "4699",
-    "0-60 mph (s)": "14.5",
-    "year": "74"
-  },
-  {
-    "name": "Buick Century Special",
-    "economy (mpg)": "20.6",
-    "cylinders": "6",
-    "displacement (cc)": "231",
-    "power (hp)": "105",
-    "weight (lb)": "3380",
-    "0-60 mph (s)": "15.8",
-    "year": "78"
-  },
-  {
-    "name": "Buick Century",
-    "economy (mpg)": "17",
-    "cylinders": "6",
-    "displacement (cc)": "231",
-    "power (hp)": "110",
-    "weight (lb)": "3907",
-    "0-60 mph (s)": "21",
-    "year": "75"
-  },
-  {
-    "name": "Buick Century",
-    "economy (mpg)": "22.4",
-    "cylinders": "6",
-    "displacement (cc)": "231",
-    "power (hp)": "110",
-    "weight (lb)": "3415",
-    "0-60 mph (s)": "15.8",
-    "year": "81"
-  },
-  {
-    "name": "Buick Electra 225 Custom",
-    "economy (mpg)": "12",
-    "cylinders": "8",
-    "displacement (cc)": "455",
-    "power (hp)": "225",
-    "weight (lb)": "4951",
-    "0-60 mph (s)": "11",
-    "year": "73"
-  },
-  {
-    "name": "Buick Estate Wagon (Wagon)",
-    "economy (mpg)": "14",
-    "cylinders": "8",
-    "displacement (cc)": "455",
-    "power (hp)": "225",
-    "weight (lb)": "3086",
-    "0-60 mph (s)": "10",
-    "year": "70"
-  },
-  {
-    "name": "Buick Estate Wagon (Wagon)",
-    "economy (mpg)": "16.9",
-    "cylinders": "8",
-    "displacement (cc)": "350",
-    "power (hp)": "155",
-    "weight (lb)": "4360",
-    "0-60 mph (s)": "14.9",
-    "year": "79"
-  },
-  {
-    "name": "Buick Lesabre Custom",
-    "economy (mpg)": "13",
-    "cylinders": "8",
-    "displacement (cc)": "350",
-    "power (hp)": "155",
-    "weight (lb)": "4502",
-    "0-60 mph (s)": "13.5",
-    "year": "72"
-  },
-  {
-    "name": "Buick Opel Isuzu Deluxe",
-    "economy (mpg)": "30",
-    "cylinders": "4",
-    "displacement (cc)": "111",
-    "power (hp)": "80",
-    "weight (lb)": "2155",
-    "0-60 mph (s)": "14.8",
-    "year": "77"
-  },
-  {
-    "name": "Buick Regal Sport Coupe (Turbo)",
-    "economy (mpg)": "17.7",
-    "cylinders": "6",
-    "displacement (cc)": "231",
-    "power (hp)": "165",
-    "weight (lb)": "3445",
-    "0-60 mph (s)": "13.4",
-    "year": "78"
-  },
-  {
-    "name": "Buick Skyhawk",
-    "economy (mpg)": "21",
-    "cylinders": "6",
-    "displacement (cc)": "231",
-    "power (hp)": "110",
-    "weight (lb)": "3039",
-    "0-60 mph (s)": "15",
-    "year": "75"
-  },
-  {
-    "name": "Buick Skylark 320",
-    "economy (mpg)": "15",
-    "cylinders": "8",
-    "displacement (cc)": "350",
-    "power (hp)": "165",
-    "weight (lb)": "3693",
-    "0-60 mph (s)": "11.5",
-    "year": "70"
-  },
-  {
-    "name": "Buick Skylark Limited",
-    "economy (mpg)": "28.4",
-    "cylinders": "4",
-    "displacement (cc)": "151",
-    "power (hp)": "90",
-    "weight (lb)": "2670",
-    "0-60 mph (s)": "16",
-    "year": "79"
-  },
-  {
-    "name": "Buick Skylark",
-    "economy (mpg)": "20.5",
-    "cylinders": "6",
-    "displacement (cc)": "231",
-    "power (hp)": "105",
-    "weight (lb)": "3425",
-    "0-60 mph (s)": "16.9",
-    "year": "77"
-  },
-  {
-    "name": "Buick Skylark",
-    "economy (mpg)": "26.6",
-    "cylinders": "4",
-    "displacement (cc)": "151",
-    "power (hp)": "84",
-    "weight (lb)": "2635",
-    "0-60 mph (s)": "16.4",
-    "year": "81"
-  },
-  {
-    "name": "Cadillac Eldorado",
-    "economy (mpg)": "23",
-    "cylinders": "8",
-    "displacement (cc)": "350",
-    "power (hp)": "125",
-    "weight (lb)": "3900",
-    "0-60 mph (s)": "17.4",
-    "year": "79"
-  },
-  {
-    "name": "Cadillac Seville",
-    "economy (mpg)": "16.5",
-    "cylinders": "8",
-    "displacement (cc)": "350",
-    "power (hp)": "180",
-    "weight (lb)": "4380",
-    "0-60 mph (s)": "12.1",
-    "year": "76"
-  },
-  {
-    "name": "Chevroelt Chevelle Malibu",
-    "economy (mpg)": "16",
-    "cylinders": "6",
-    "displacement (cc)": "250",
-    "power (hp)": "105",
-    "weight (lb)": "3897",
-    "0-60 mph (s)": "18.5",
-    "year": "75"
-  },
-  {
-    "name": "Chevrolet Bel Air",
-    "economy (mpg)": "15",
-    "cylinders": "8",
-    "displacement (cc)": "350",
-    "power (hp)": "145",
-    "weight (lb)": "4440",
-    "0-60 mph (s)": "14",
-    "year": "75"
-  },
-  {
-    "name": "Chevrolet Camaro",
-    "economy (mpg)": "27",
-    "cylinders": "4",
-    "displacement (cc)": "151",
-    "power (hp)": "90",
-    "weight (lb)": "2950",
-    "0-60 mph (s)": "17.3",
-    "year": "82"
-  },
-  {
-    "name": "Chevrolet Caprice Classic",
-    "economy (mpg)": "13",
-    "cylinders": "8",
-    "displacement (cc)": "400",
-    "power (hp)": "150",
-    "weight (lb)": "4464",
-    "0-60 mph (s)": "12",
-    "year": "73"
-  },
-  {
-    "name": "Chevrolet Caprice Classic",
-    "economy (mpg)": "17",
-    "cylinders": "8",
-    "displacement (cc)": "305",
-    "power (hp)": "130",
-    "weight (lb)": "3840",
-    "0-60 mph (s)": "15.4",
-    "year": "79"
-  },
-  {
-    "name": "Chevrolet Caprice Classic",
-    "economy (mpg)": "17.5",
-    "cylinders": "8",
-    "displacement (cc)": "305",
-    "power (hp)": "145",
-    "weight (lb)": "3880",
-    "0-60 mph (s)": "12.5",
-    "year": "77"
-  },
-  {
-    "name": "Chevrolet Cavalier 2-Door",
-    "economy (mpg)": "34",
-    "cylinders": "4",
-    "displacement (cc)": "112",
-    "power (hp)": "88",
-    "weight (lb)": "2395",
-    "0-60 mph (s)": "18",
-    "year": "82"
-  },
-  {
-    "name": "Chevrolet Cavalier Wagon",
-    "economy (mpg)": "27",
-    "cylinders": "4",
-    "displacement (cc)": "112",
-    "power (hp)": "88",
-    "weight (lb)": "2640",
-    "0-60 mph (s)": "18.6",
-    "year": "82"
-  },
-  {
-    "name": "Chevrolet Cavalier",
-    "economy (mpg)": "28",
-    "cylinders": "4",
-    "displacement (cc)": "112",
-    "power (hp)": "88",
-    "weight (lb)": "2605",
-    "0-60 mph (s)": "19.6",
-    "year": "82"
-  },
-  {
-    "name": "Chevrolet Chevelle Concours (Wagon)",
-    "economy (mpg)": "",
-    "cylinders": "8",
-    "displacement (cc)": "350",
-    "power (hp)": "165",
-    "weight (lb)": "4142",
-    "0-60 mph (s)": "11.5",
-    "year": "70"
-  },
-  {
-    "name": "Chevrolet Chevelle Concours (Wagon)",
-    "economy (mpg)": "13",
-    "cylinders": "8",
-    "displacement (cc)": "307",
-    "power (hp)": "130",
-    "weight (lb)": "4098",
-    "0-60 mph (s)": "14",
-    "year": "72"
-  },
-  {
-    "name": "Chevrolet Chevelle Malibu Classic",
-    "economy (mpg)": "16",
-    "cylinders": "6",
-    "displacement (cc)": "250",
-    "power (hp)": "100",
-    "weight (lb)": "3781",
-    "0-60 mph (s)": "17",
-    "year": "74"
-  },
-  {
-    "name": "Chevrolet Chevelle Malibu Classic",
-    "economy (mpg)": "17.5",
-    "cylinders": "8",
-    "displacement (cc)": "305",
-    "power (hp)": "140",
-    "weight (lb)": "4215",
-    "0-60 mph (s)": "13",
-    "year": "76"
-  },
-  {
-    "name": "Chevrolet Chevelle Malibu",
-    "economy (mpg)": "17",
-    "cylinders": "6",
-    "displacement (cc)": "250",
-    "power (hp)": "100",
-    "weight (lb)": "3329",
-    "0-60 mph (s)": "15.5",
-    "year": "71"
-  },
-  {
-    "name": "Chevrolet Chevelle Malibu",
-    "economy (mpg)": "18",
-    "cylinders": "8",
-    "displacement (cc)": "307",
-    "power (hp)": "130",
-    "weight (lb)": "3504",
-    "0-60 mph (s)": "12",
-    "year": "70"
-  },
-  {
-    "name": "Chevrolet Chevette",
-    "economy (mpg)": "29",
-    "cylinders": "4",
-    "displacement (cc)": "85",
-    "power (hp)": "52",
-    "weight (lb)": "2035",
-    "0-60 mph (s)": "22.2",
-    "year": "76"
-  },
-  {
-    "name": "Chevrolet Chevette",
-    "economy (mpg)": "30",
-    "cylinders": "4",
-    "displacement (cc)": "98",
-    "power (hp)": "68",
-    "weight (lb)": "2155",
-    "0-60 mph (s)": "16.5",
-    "year": "78"
-  },
-  {
-    "name": "Chevrolet Chevette",
-    "economy (mpg)": "30.5",
-    "cylinders": "4",
-    "displacement (cc)": "98",
-    "power (hp)": "63",
-    "weight (lb)": "2051",
-    "0-60 mph (s)": "17",
-    "year": "77"
-  },
-  {
-    "name": "Chevrolet Chevette",
-    "economy (mpg)": "32.1",
-    "cylinders": "4",
-    "displacement (cc)": "98",
-    "power (hp)": "70",
-    "weight (lb)": "2120",
-    "0-60 mph (s)": "15.5",
-    "year": "80"
-  },
-  {
-    "name": "Chevrolet Citation",
-    "economy (mpg)": "23.5",
-    "cylinders": "6",
-    "displacement (cc)": "173",
-    "power (hp)": "110",
-    "weight (lb)": "2725",
-    "0-60 mph (s)": "12.6",
-    "year": "81"
-  },
-  {
-    "name": "Chevrolet Citation",
-    "economy (mpg)": "28",
-    "cylinders": "4",
-    "displacement (cc)": "151",
-    "power (hp)": "90",
-    "weight (lb)": "2678",
-    "0-60 mph (s)": "16.5",
-    "year": "80"
-  },
-  {
-    "name": "Chevrolet Citation",
-    "economy (mpg)": "28.8",
-    "cylinders": "6",
-    "displacement (cc)": "173",
-    "power (hp)": "115",
-    "weight (lb)": "2595",
-    "0-60 mph (s)": "11.3",
-    "year": "79"
-  },
-  {
-    "name": "Chevrolet Concours",
-    "economy (mpg)": "17.5",
-    "cylinders": "6",
-    "displacement (cc)": "250",
-    "power (hp)": "110",
-    "weight (lb)": "3520",
-    "0-60 mph (s)": "16.4",
-    "year": "77"
-  },
-  {
-    "name": "Chevrolet Impala",
-    "economy (mpg)": "11",
-    "cylinders": "8",
-    "displacement (cc)": "400",
-    "power (hp)": "150",
-    "weight (lb)": "4997",
-    "0-60 mph (s)": "14",
-    "year": "73"
-  },
-  {
-    "name": "Chevrolet Impala",
-    "economy (mpg)": "13",
-    "cylinders": "8",
-    "displacement (cc)": "350",
-    "power (hp)": "165",
-    "weight (lb)": "4274",
-    "0-60 mph (s)": "12",
-    "year": "72"
-  },
-  {
-    "name": "Chevrolet Impala",
-    "economy (mpg)": "14",
-    "cylinders": "8",
-    "displacement (cc)": "350",
-    "power (hp)": "165",
-    "weight (lb)": "4209",
-    "0-60 mph (s)": "12",
-    "year": "71"
-  },
-  {
-    "name": "Chevrolet Impala",
-    "economy (mpg)": "14",
-    "cylinders": "8",
-    "displacement (cc)": "454",
-    "power (hp)": "220",
-    "weight (lb)": "4354",
-    "0-60 mph (s)": "9",
-    "year": "70"
-  },
-  {
-    "name": "Chevrolet Malibu Classic (Wagon)",
-    "economy (mpg)": "19.2",
-    "cylinders": "8",
-    "displacement (cc)": "267",
-    "power (hp)": "125",
-    "weight (lb)": "3605",
-    "0-60 mph (s)": "15",
-    "year": "79"
-  },
-  {
-    "name": "Chevrolet Malibu",
-    "economy (mpg)": "13",
-    "cylinders": "8",
-    "displacement (cc)": "350",
-    "power (hp)": "145",
-    "weight (lb)": "3988",
-    "0-60 mph (s)": "13",
-    "year": "73"
-  },
-  {
-    "name": "Chevrolet Malibu",
-    "economy (mpg)": "20.5",
-    "cylinders": "6",
-    "displacement (cc)": "200",
-    "power (hp)": "95",
-    "weight (lb)": "3155",
-    "0-60 mph (s)": "18.2",
-    "year": "78"
-  },
-  {
-    "name": "Chevrolet Monte Carlo Landau",
-    "economy (mpg)": "15.5",
-    "cylinders": "8",
-    "displacement (cc)": "350",
-    "power (hp)": "170",
-    "weight (lb)": "4165",
-    "0-60 mph (s)": "11.4",
-    "year": "77"
-  },
-  {
-    "name": "Chevrolet Monte Carlo Landau",
-    "economy (mpg)": "19.2",
-    "cylinders": "8",
-    "displacement (cc)": "305",
-    "power (hp)": "145",
-    "weight (lb)": "3425",
-    "0-60 mph (s)": "13.2",
-    "year": "78"
-  },
-  {
-    "name": "Chevrolet Monte Carlo S",
-    "economy (mpg)": "15",
-    "cylinders": "8",
-    "displacement (cc)": "350",
-    "power (hp)": "145",
-    "weight (lb)": "4082",
-    "0-60 mph (s)": "13",
-    "year": "73"
-  },
-  {
-    "name": "Chevrolet Monte Carlo",
-    "economy (mpg)": "15",
-    "cylinders": "8",
-    "displacement (cc)": "400",
-    "power (hp)": "150",
-    "weight (lb)": "3761",
-    "0-60 mph (s)": "9.5",
-    "year": "70"
-  },
-  {
-    "name": "Chevrolet Monza 2+2",
-    "economy (mpg)": "20",
-    "cylinders": "8",
-    "displacement (cc)": "262",
-    "power (hp)": "110",
-    "weight (lb)": "3221",
-    "0-60 mph (s)": "13.5",
-    "year": "75"
-  },
-  {
-    "name": "Chevrolet Nova Custom",
-    "economy (mpg)": "16",
-    "cylinders": "6",
-    "displacement (cc)": "250",
-    "power (hp)": "100",
-    "weight (lb)": "3278",
-    "0-60 mph (s)": "18",
-    "year": "73"
-  },
-  {
-    "name": "Chevrolet Nova",
-    "economy (mpg)": "15",
-    "cylinders": "6",
-    "displacement (cc)": "250",
-    "power (hp)": "100",
-    "weight (lb)": "3336",
-    "0-60 mph (s)": "17",
-    "year": "74"
-  },
-  {
-    "name": "Chevrolet Nova",
-    "economy (mpg)": "18",
-    "cylinders": "6",
-    "displacement (cc)": "250",
-    "power (hp)": "105",
-    "weight (lb)": "3459",
-    "0-60 mph (s)": "16",
-    "year": "75"
-  },
-  {
-    "name": "Chevrolet Nova",
-    "economy (mpg)": "22",
-    "cylinders": "6",
-    "displacement (cc)": "250",
-    "power (hp)": "105",
-    "weight (lb)": "3353",
-    "0-60 mph (s)": "14.5",
-    "year": "76"
-  },
-  {
-    "name": "Chevrolet Vega (Wagon)",
-    "economy (mpg)": "22",
-    "cylinders": "4",
-    "displacement (cc)": "140",
-    "power (hp)": "72",
-    "weight (lb)": "2408",
-    "0-60 mph (s)": "19",
-    "year": "71"
-  },
-  {
-    "name": "Chevrolet Vega 2300",
-    "economy (mpg)": "28",
-    "cylinders": "4",
-    "displacement (cc)": "140",
-    "power (hp)": "90",
-    "weight (lb)": "2264",
-    "0-60 mph (s)": "15.5",
-    "year": "71"
-  },
-  {
-    "name": "Chevrolet Vega",
-    "economy (mpg)": "20",
-    "cylinders": "4",
-    "displacement (cc)": "140",
-    "power (hp)": "90",
-    "weight (lb)": "2408",
-    "0-60 mph (s)": "19.5",
-    "year": "72"
-  },
-  {
-    "name": "Chevrolet Vega",
-    "economy (mpg)": "21",
-    "cylinders": "4",
-    "displacement (cc)": "140",
-    "power (hp)": "72",
-    "weight (lb)": "2401",
-    "0-60 mph (s)": "19.5",
-    "year": "73"
-  },
-  {
-    "name": "Chevrolet Vega",
-    "economy (mpg)": "25",
-    "cylinders": "4",
-    "displacement (cc)": "140",
-    "power (hp)": "75",
-    "weight (lb)": "2542",
-    "0-60 mph (s)": "17",
-    "year": "74"
-  },
-  {
-    "name": "Chevrolet Woody",
-    "economy (mpg)": "24.5",
-    "cylinders": "4",
-    "displacement (cc)": "98",
-    "power (hp)": "60",
-    "weight (lb)": "2164",
-    "0-60 mph (s)": "22.1",
-    "year": "76"
-  },
-  {
-    "name": "Chevy C10",
-    "economy (mpg)": "13",
-    "cylinders": "8",
-    "displacement (cc)": "350",
-    "power (hp)": "145",
-    "weight (lb)": "4055",
-    "0-60 mph (s)": "12",
-    "year": "76"
-  },
-  {
-    "name": "Chevy C20",
-    "economy (mpg)": "10",
-    "cylinders": "8",
-    "displacement (cc)": "307",
-    "power (hp)": "200",
-    "weight (lb)": "4376",
-    "0-60 mph (s)": "15",
-    "year": "70"
-  },
-  {
-    "name": "Chevy S-10",
-    "economy (mpg)": "31",
-    "cylinders": "4",
-    "displacement (cc)": "119",
-    "power (hp)": "82",
-    "weight (lb)": "2720",
-    "0-60 mph (s)": "19.4",
-    "year": "82"
-  },
-  {
-    "name": "Chrysler Cordoba",
-    "economy (mpg)": "15.5",
-    "cylinders": "8",
-    "displacement (cc)": "400",
-    "power (hp)": "190",
-    "weight (lb)": "4325",
-    "0-60 mph (s)": "12.2",
-    "year": "77"
-  },
-  {
-    "name": "Chrysler Lebaron Medallion",
-    "economy (mpg)": "26",
-    "cylinders": "4",
-    "displacement (cc)": "156",
-    "power (hp)": "92",
-    "weight (lb)": "2585",
-    "0-60 mph (s)": "14.5",
-    "year": "82"
-  },
-  {
-    "name": "Chrysler Lebaron Salon",
-    "economy (mpg)": "17.6",
-    "cylinders": "6",
-    "displacement (cc)": "225",
-    "power (hp)": "85",
-    "weight (lb)": "3465",
-    "0-60 mph (s)": "16.6",
-    "year": "81"
-  },
-  {
-    "name": "Chrysler Lebaron Town & Country (Wagon)",
-    "economy (mpg)": "18.5",
-    "cylinders": "8",
-    "displacement (cc)": "360",
-    "power (hp)": "150",
-    "weight (lb)": "3940",
-    "0-60 mph (s)": "13",
-    "year": "79"
-  },
-  {
-    "name": "Chrysler New Yorker Brougham",
-    "economy (mpg)": "13",
-    "cylinders": "8",
-    "displacement (cc)": "440",
-    "power (hp)": "215",
-    "weight (lb)": "4735",
-    "0-60 mph (s)": "11",
-    "year": "73"
-  },
-  {
-    "name": "Chrysler Newport Royal",
-    "economy (mpg)": "13",
-    "cylinders": "8",
-    "displacement (cc)": "400",
-    "power (hp)": "190",
-    "weight (lb)": "4422",
-    "0-60 mph (s)": "12.5",
-    "year": "72"
-  },
-  {
-    "name": "Citroen DS-21 Pallas",
-    "economy (mpg)": "",
-    "cylinders": "4",
-    "displacement (cc)": "133",
-    "power (hp)": "115",
-    "weight (lb)": "3090",
-    "0-60 mph (s)": "17.5",
-    "year": "70"
-  },
-  {
-    "name": "Datsun 1200",
-    "economy (mpg)": "35",
-    "cylinders": "4",
-    "displacement (cc)": "72",
-    "power (hp)": "69",
-    "weight (lb)": "1613",
-    "0-60 mph (s)": "18",
-    "year": "71"
-  },
-  {
-    "name": "Datsun 200SX",
-    "economy (mpg)": "23.9",
-    "cylinders": "4",
-    "displacement (cc)": "119",
-    "power (hp)": "97",
-    "weight (lb)": "2405",
-    "0-60 mph (s)": "14.9",
-    "year": "78"
-  },
-  {
-    "name": "Datsun 200SX",
-    "economy (mpg)": "32.9",
-    "cylinders": "4",
-    "displacement (cc)": "119",
-    "power (hp)": "100",
-    "weight (lb)": "2615",
-    "0-60 mph (s)": "14.8",
-    "year": "81"
-  },
-  {
-    "name": "Datsun 210",
-    "economy (mpg)": "31.8",
-    "cylinders": "4",
-    "displacement (cc)": "85",
-    "power (hp)": "65",
-    "weight (lb)": "2020",
-    "0-60 mph (s)": "19.2",
-    "year": "79"
-  },
-  {
-    "name": "Datsun 210",
-    "economy (mpg)": "37",
-    "cylinders": "4",
-    "displacement (cc)": "85",
-    "power (hp)": "65",
-    "weight (lb)": "1975",
-    "0-60 mph (s)": "19.4",
-    "year": "81"
-  },
-  {
-    "name": "Datsun 210",
-    "economy (mpg)": "40.8",
-    "cylinders": "4",
-    "displacement (cc)": "85",
-    "power (hp)": "65",
-    "weight (lb)": "2110",
-    "0-60 mph (s)": "19.2",
-    "year": "80"
-  },
-  {
-    "name": "Datsun 280ZX",
-    "economy (mpg)": "32.7",
-    "cylinders": "6",
-    "displacement (cc)": "168",
-    "power (hp)": "132",
-    "weight (lb)": "2910",
-    "0-60 mph (s)": "11.4",
-    "year": "80"
-  },
-  {
-    "name": "Datsun 310 GX",
-    "economy (mpg)": "38",
-    "cylinders": "4",
-    "displacement (cc)": "91",
-    "power (hp)": "67",
-    "weight (lb)": "1995",
-    "0-60 mph (s)": "16.2",
-    "year": "82"
-  },
-  {
-    "name": "Datsun 310",
-    "economy (mpg)": "37.2",
-    "cylinders": "4",
-    "displacement (cc)": "86",
-    "power (hp)": "65",
-    "weight (lb)": "2019",
-    "0-60 mph (s)": "16.4",
-    "year": "80"
-  },
-  {
-    "name": "Datsun 510 (Wagon)",
-    "economy (mpg)": "28",
-    "cylinders": "4",
-    "displacement (cc)": "97",
-    "power (hp)": "92",
-    "weight (lb)": "2288",
-    "0-60 mph (s)": "17",
-    "year": "72"
-  },
-  {
-    "name": "Datsun 510 Hatchback",
-    "economy (mpg)": "37",
-    "cylinders": "4",
-    "displacement (cc)": "119",
-    "power (hp)": "92",
-    "weight (lb)": "2434",
-    "0-60 mph (s)": "15",
-    "year": "80"
-  },
-  {
-    "name": "Datsun 510",
-    "economy (mpg)": "27.2",
-    "cylinders": "4",
-    "displacement (cc)": "119",
-    "power (hp)": "97",
-    "weight (lb)": "2300",
-    "0-60 mph (s)": "14.7",
-    "year": "78"
-  },
-  {
-    "name": "Datsun 610",
-    "economy (mpg)": "22",
-    "cylinders": "4",
-    "displacement (cc)": "108",
-    "power (hp)": "94",
-    "weight (lb)": "2379",
-    "0-60 mph (s)": "16.5",
-    "year": "73"
-  },
-  {
-    "name": "Datsun 710",
-    "economy (mpg)": "24",
-    "cylinders": "4",
-    "displacement (cc)": "119",
-    "power (hp)": "97",
-    "weight (lb)": "2545",
-    "0-60 mph (s)": "17",
-    "year": "75"
-  },
-  {
-    "name": "Datsun 710",
-    "economy (mpg)": "32",
-    "cylinders": "4",
-    "displacement (cc)": "83",
-    "power (hp)": "61",
-    "weight (lb)": "2003",
-    "0-60 mph (s)": "19",
-    "year": "74"
-  },
-  {
-    "name": "Datsun 810 Maxima",
-    "economy (mpg)": "24.2",
-    "cylinders": "6",
-    "displacement (cc)": "146",
-    "power (hp)": "120",
-    "weight (lb)": "2930",
-    "0-60 mph (s)": "13.8",
-    "year": "81"
-  },
-  {
-    "name": "Datsun 810",
-    "economy (mpg)": "22",
-    "cylinders": "6",
-    "displacement (cc)": "146",
-    "power (hp)": "97",
-    "weight (lb)": "2815",
-    "0-60 mph (s)": "14.5",
-    "year": "77"
-  },
-  {
-    "name": "Datsun B-210",
-    "economy (mpg)": "32",
-    "cylinders": "4",
-    "displacement (cc)": "85",
-    "power (hp)": "70",
-    "weight (lb)": "1990",
-    "0-60 mph (s)": "17",
-    "year": "76"
-  },
-  {
-    "name": "Datsun B210 GX",
-    "economy (mpg)": "39.4",
-    "cylinders": "4",
-    "displacement (cc)": "85",
-    "power (hp)": "70",
-    "weight (lb)": "2070",
-    "0-60 mph (s)": "18.6",
-    "year": "78"
-  },
-  {
-    "name": "Datsun B210",
-    "economy (mpg)": "31",
-    "cylinders": "4",
-    "displacement (cc)": "79",
-    "power (hp)": "67",
-    "weight (lb)": "1950",
-    "0-60 mph (s)": "19",
-    "year": "74"
-  },
-  {
-    "name": "Datsun F-10 Hatchback",
-    "economy (mpg)": "33.5",
-    "cylinders": "4",
-    "displacement (cc)": "85",
-    "power (hp)": "70",
-    "weight (lb)": "1945",
-    "0-60 mph (s)": "16.8",
-    "year": "77"
-  },
-  {
-    "name": "Datsun PL510",
-    "economy (mpg)": "27",
-    "cylinders": "4",
-    "displacement (cc)": "97",
-    "power (hp)": "88",
-    "weight (lb)": "2130",
-    "0-60 mph (s)": "14.5",
-    "year": "70"
-  },
-  {
-    "name": "Datsun PL510",
-    "economy (mpg)": "27",
-    "cylinders": "4",
-    "displacement (cc)": "97",
-    "power (hp)": "88",
-    "weight (lb)": "2130",
-    "0-60 mph (s)": "14.5",
-    "year": "71"
-  },
-  {
-    "name": "Dodge Aries SE",
-    "economy (mpg)": "29",
-    "cylinders": "4",
-    "displacement (cc)": "135",
-    "power (hp)": "84",
-    "weight (lb)": "2525",
-    "0-60 mph (s)": "16",
-    "year": "82"
-  },
-  {
-    "name": "Dodge Aries Wagon (Wagon)",
-    "economy (mpg)": "25.8",
-    "cylinders": "4",
-    "displacement (cc)": "156",
-    "power (hp)": "92",
-    "weight (lb)": "2620",
-    "0-60 mph (s)": "14.4",
-    "year": "81"
-  },
-  {
-    "name": "Dodge Aspen 6",
-    "economy (mpg)": "20.6",
-    "cylinders": "6",
-    "displacement (cc)": "225",
-    "power (hp)": "110",
-    "weight (lb)": "3360",
-    "0-60 mph (s)": "16.6",
-    "year": "79"
-  },
-  {
-    "name": "Dodge Aspen SE",
-    "economy (mpg)": "20",
-    "cylinders": "6",
-    "displacement (cc)": "225",
-    "power (hp)": "100",
-    "weight (lb)": "3651",
-    "0-60 mph (s)": "17.7",
-    "year": "76"
-  },
-  {
-    "name": "Dodge Aspen",
-    "economy (mpg)": "18.6",
-    "cylinders": "6",
-    "displacement (cc)": "225",
-    "power (hp)": "110",
-    "weight (lb)": "3620",
-    "0-60 mph (s)": "18.7",
-    "year": "78"
-  },
-  {
-    "name": "Dodge Aspen",
-    "economy (mpg)": "19.1",
-    "cylinders": "6",
-    "displacement (cc)": "225",
-    "power (hp)": "90",
-    "weight (lb)": "3381",
-    "0-60 mph (s)": "18.7",
-    "year": "80"
-  },
-  {
-    "name": "Dodge Challenger SE",
-    "economy (mpg)": "15",
-    "cylinders": "8",
-    "displacement (cc)": "383",
-    "power (hp)": "170",
-    "weight (lb)": "3563",
-    "0-60 mph (s)": "10",
-    "year": "70"
-  },
-  {
-    "name": "Dodge Charger 2.2",
-    "economy (mpg)": "36",
-    "cylinders": "4",
-    "displacement (cc)": "135",
-    "power (hp)": "84",
-    "weight (lb)": "2370",
-    "0-60 mph (s)": "13",
-    "year": "82"
-  },
-  {
-    "name": "Dodge Colt (Wagon)",
-    "economy (mpg)": "28",
-    "cylinders": "4",
-    "displacement (cc)": "98",
-    "power (hp)": "80",
-    "weight (lb)": "2164",
-    "0-60 mph (s)": "15",
-    "year": "72"
-  },
-  {
-    "name": "Dodge Colt Hardtop",
-    "economy (mpg)": "25",
-    "cylinders": "4",
-    "displacement (cc)": "97.5",
-    "power (hp)": "80",
-    "weight (lb)": "2126",
-    "0-60 mph (s)": "17",
-    "year": "72"
-  },
-  {
-    "name": "Dodge Colt Hatchback Custom",
-    "economy (mpg)": "35.7",
-    "cylinders": "4",
-    "displacement (cc)": "98",
-    "power (hp)": "80",
-    "weight (lb)": "1915",
-    "0-60 mph (s)": "14.4",
-    "year": "79"
-  },
-  {
-    "name": "Dodge Colt M/M",
-    "economy (mpg)": "33.5",
-    "cylinders": "4",
-    "displacement (cc)": "98",
-    "power (hp)": "83",
-    "weight (lb)": "2075",
-    "0-60 mph (s)": "15.9",
-    "year": "77"
-  },
-  {
-    "name": "Dodge Colt",
-    "economy (mpg)": "26",
-    "cylinders": "4",
-    "displacement (cc)": "98",
-    "power (hp)": "79",
-    "weight (lb)": "2255",
-    "0-60 mph (s)": "17.7",
-    "year": "76"
-  },
-  {
-    "name": "Dodge Colt",
-    "economy (mpg)": "27.9",
-    "cylinders": "4",
-    "displacement (cc)": "156",
-    "power (hp)": "105",
-    "weight (lb)": "2800",
-    "0-60 mph (s)": "14.4",
-    "year": "80"
-  },
-  {
-    "name": "Dodge Colt",
-    "economy (mpg)": "28",
-    "cylinders": "4",
-    "displacement (cc)": "90",
-    "power (hp)": "75",
-    "weight (lb)": "2125",
-    "0-60 mph (s)": "14.5",
-    "year": "74"
-  },
-  {
-    "name": "Dodge Coronet Brougham",
-    "economy (mpg)": "16",
-    "cylinders": "8",
-    "displacement (cc)": "318",
-    "power (hp)": "150",
-    "weight (lb)": "4190",
-    "0-60 mph (s)": "13",
-    "year": "76"
-  },
-  {
-    "name": "Dodge Coronet Custom (Wagon)",
-    "economy (mpg)": "14",
-    "cylinders": "8",
-    "displacement (cc)": "318",
-    "power (hp)": "150",
-    "weight (lb)": "4457",
-    "0-60 mph (s)": "13.5",
-    "year": "74"
-  },
-  {
-    "name": "Dodge Coronet Custom",
-    "economy (mpg)": "15",
-    "cylinders": "8",
-    "displacement (cc)": "318",
-    "power (hp)": "150",
-    "weight (lb)": "3777",
-    "0-60 mph (s)": "12.5",
-    "year": "73"
-  },
-  {
-    "name": "Dodge D100",
-    "economy (mpg)": "13",
-    "cylinders": "8",
-    "displacement (cc)": "318",
-    "power (hp)": "150",
-    "weight (lb)": "3755",
-    "0-60 mph (s)": "14",
-    "year": "76"
-  },
-  {
-    "name": "Dodge D200",
-    "economy (mpg)": "11",
-    "cylinders": "8",
-    "displacement (cc)": "318",
-    "power (hp)": "210",
-    "weight (lb)": "4382",
-    "0-60 mph (s)": "13.5",
-    "year": "70"
-  },
-  {
-    "name": "Dodge Dart Custom",
-    "economy (mpg)": "15",
-    "cylinders": "8",
-    "displacement (cc)": "318",
-    "power (hp)": "150",
-    "weight (lb)": "3399",
-    "0-60 mph (s)": "11",
-    "year": "73"
-  },
-  {
-    "name": "Dodge Diplomat",
-    "economy (mpg)": "19.4",
-    "cylinders": "8",
-    "displacement (cc)": "318",
-    "power (hp)": "140",
-    "weight (lb)": "3735",
-    "0-60 mph (s)": "13.2",
-    "year": "78"
-  },
-  {
-    "name": "Dodge Magnum XE",
-    "economy (mpg)": "17.5",
-    "cylinders": "8",
-    "displacement (cc)": "318",
-    "power (hp)": "140",
-    "weight (lb)": "4080",
-    "0-60 mph (s)": "13.7",
-    "year": "78"
-  },
-  {
-    "name": "Dodge Monaco (Wagon)",
-    "economy (mpg)": "12",
-    "cylinders": "8",
-    "displacement (cc)": "383",
-    "power (hp)": "180",
-    "weight (lb)": "4955",
-    "0-60 mph (s)": "11.5",
-    "year": "71"
-  },
-  {
-    "name": "Dodge Monaco Brougham",
-    "economy (mpg)": "15.5",
-    "cylinders": "8",
-    "displacement (cc)": "318",
-    "power (hp)": "145",
-    "weight (lb)": "4140",
-    "0-60 mph (s)": "13.7",
-    "year": "77"
-  },
-  {
-    "name": "Dodge Omni",
-    "economy (mpg)": "30.9",
-    "cylinders": "4",
-    "displacement (cc)": "105",
-    "power (hp)": "75",
-    "weight (lb)": "2230",
-    "0-60 mph (s)": "14.5",
-    "year": "78"
-  },
-  {
-    "name": "Dodge Rampage",
-    "economy (mpg)": "32",
-    "cylinders": "4",
-    "displacement (cc)": "135",
-    "power (hp)": "84",
-    "weight (lb)": "2295",
-    "0-60 mph (s)": "11.6",
-    "year": "82"
-  },
-  {
-    "name": "Dodge St. Regis",
-    "economy (mpg)": "18.2",
-    "cylinders": "8",
-    "displacement (cc)": "318",
-    "power (hp)": "135",
-    "weight (lb)": "3830",
-    "0-60 mph (s)": "15.2",
-    "year": "79"
-  },
-  {
-    "name": "Fiat 124 Sport Coupe",
-    "economy (mpg)": "26",
-    "cylinders": "4",
-    "displacement (cc)": "98",
-    "power (hp)": "90",
-    "weight (lb)": "2265",
-    "0-60 mph (s)": "15.5",
-    "year": "73"
-  },
-  {
-    "name": "Fiat 124 TC",
-    "economy (mpg)": "26",
-    "cylinders": "4",
-    "displacement (cc)": "116",
-    "power (hp)": "75",
-    "weight (lb)": "2246",
-    "0-60 mph (s)": "14",
-    "year": "74"
-  },
-  {
-    "name": "Fiat 124B",
-    "economy (mpg)": "30",
-    "cylinders": "4",
-    "displacement (cc)": "88",
-    "power (hp)": "76",
-    "weight (lb)": "2065",
-    "0-60 mph (s)": "14.5",
-    "year": "71"
-  },
-  {
-    "name": "Fiat 128",
-    "economy (mpg)": "24",
-    "cylinders": "4",
-    "displacement (cc)": "90",
-    "power (hp)": "75",
-    "weight (lb)": "2108",
-    "0-60 mph (s)": "15.5",
-    "year": "74"
-  },
-  {
-    "name": "Fiat 128",
-    "economy (mpg)": "29",
-    "cylinders": "4",
-    "displacement (cc)": "68",
-    "power (hp)": "49",
-    "weight (lb)": "1867",
-    "0-60 mph (s)": "19.5",
-    "year": "73"
-  },
-  {
-    "name": "Fiat 131",
-    "economy (mpg)": "28",
-    "cylinders": "4",
-    "displacement (cc)": "107",
-    "power (hp)": "86",
-    "weight (lb)": "2464",
-    "0-60 mph (s)": "15.5",
-    "year": "76"
-  },
-  {
-    "name": "Fiat Strada Custom",
-    "economy (mpg)": "37.3",
-    "cylinders": "4",
-    "displacement (cc)": "91",
-    "power (hp)": "69",
-    "weight (lb)": "2130",
-    "0-60 mph (s)": "14.7",
-    "year": "79"
-  },
-  {
-    "name": "Fiat X1.9",
-    "economy (mpg)": "31",
-    "cylinders": "4",
-    "displacement (cc)": "79",
-    "power (hp)": "67",
-    "weight (lb)": "2000",
-    "0-60 mph (s)": "16",
-    "year": "74"
-  },
-  {
-    "name": "Ford Capri II",
-    "economy (mpg)": "25",
-    "cylinders": "4",
-    "displacement (cc)": "140",
-    "power (hp)": "92",
-    "weight (lb)": "2572",
-    "0-60 mph (s)": "14.9",
-    "year": "76"
-  },
-  {
-    "name": "Ford Country Squire (Wagon)",
-    "economy (mpg)": "13",
-    "cylinders": "8",
-    "displacement (cc)": "400",
-    "power (hp)": "170",
-    "weight (lb)": "4746",
-    "0-60 mph (s)": "12",
-    "year": "71"
-  },
-  {
-    "name": "Ford Country Squire (Wagon)",
-    "economy (mpg)": "15.5",
-    "cylinders": "8",
-    "displacement (cc)": "351",
-    "power (hp)": "142",
-    "weight (lb)": "4054",
-    "0-60 mph (s)": "14.3",
-    "year": "79"
-  },
-  {
-    "name": "Ford Country",
-    "economy (mpg)": "12",
-    "cylinders": "8",
-    "displacement (cc)": "400",
-    "power (hp)": "167",
-    "weight (lb)": "4906",
-    "0-60 mph (s)": "12.5",
-    "year": "73"
-  },
-  {
-    "name": "Ford Escort 2H",
-    "economy (mpg)": "29.9",
-    "cylinders": "4",
-    "displacement (cc)": "98",
-    "power (hp)": "65",
-    "weight (lb)": "2380",
-    "0-60 mph (s)": "20.7",
-    "year": "81"
-  },
-  {
-    "name": "Ford Escort 4W",
-    "economy (mpg)": "34.4",
-    "cylinders": "4",
-    "displacement (cc)": "98",
-    "power (hp)": "65",
-    "weight (lb)": "2045",
-    "0-60 mph (s)": "16.2",
-    "year": "81"
-  },
-  {
-    "name": "Ford F108",
-    "economy (mpg)": "13",
-    "cylinders": "8",
-    "displacement (cc)": "302",
-    "power (hp)": "130",
-    "weight (lb)": "3870",
-    "0-60 mph (s)": "15",
-    "year": "76"
-  },
-  {
-    "name": "Ford F250",
-    "economy (mpg)": "10",
-    "cylinders": "8",
-    "displacement (cc)": "360",
-    "power (hp)": "215",
-    "weight (lb)": "4615",
-    "0-60 mph (s)": "14",
-    "year": "70"
-  },
-  {
-    "name": "Ford Fairmont (Auto)",
-    "economy (mpg)": "20.2",
-    "cylinders": "6",
-    "displacement (cc)": "200",
-    "power (hp)": "85",
-    "weight (lb)": "2965",
-    "0-60 mph (s)": "15.8",
-    "year": "78"
-  },
-  {
-    "name": "Ford Fairmont (Man)",
-    "economy (mpg)": "25.1",
-    "cylinders": "4",
-    "displacement (cc)": "140",
-    "power (hp)": "88",
-    "weight (lb)": "2720",
-    "0-60 mph (s)": "15.4",
-    "year": "78"
-  },
-  {
-    "name": "Ford Fairmont 4",
-    "economy (mpg)": "22.3",
-    "cylinders": "4",
-    "displacement (cc)": "140",
-    "power (hp)": "88",
-    "weight (lb)": "2890",
-    "0-60 mph (s)": "17.3",
-    "year": "79"
-  },
-  {
-    "name": "Ford Fairmont Futura",
-    "economy (mpg)": "24",
-    "cylinders": "4",
-    "displacement (cc)": "140",
-    "power (hp)": "92",
-    "weight (lb)": "2865",
-    "0-60 mph (s)": "16.4",
-    "year": "82"
-  },
-  {
-    "name": "Ford Fairmont",
-    "economy (mpg)": "26.4",
-    "cylinders": "4",
-    "displacement (cc)": "140",
-    "power (hp)": "88",
-    "weight (lb)": "2870",
-    "0-60 mph (s)": "18.1",
-    "year": "80"
-  },
-  {
-    "name": "Ford Fiesta",
-    "economy (mpg)": "36.1",
-    "cylinders": "4",
-    "displacement (cc)": "98",
-    "power (hp)": "66",
-    "weight (lb)": "1800",
-    "0-60 mph (s)": "14.4",
-    "year": "78"
-  },
-  {
-    "name": "Ford Futura",
-    "economy (mpg)": "18.1",
-    "cylinders": "8",
-    "displacement (cc)": "302",
-    "power (hp)": "139",
-    "weight (lb)": "3205",
-    "0-60 mph (s)": "11.2",
-    "year": "78"
-  },
-  {
-    "name": "Ford Galaxie 500",
-    "economy (mpg)": "14",
-    "cylinders": "8",
-    "displacement (cc)": "351",
-    "power (hp)": "153",
-    "weight (lb)": "4129",
-    "0-60 mph (s)": "13",
-    "year": "72"
-  },
-  {
-    "name": "Ford Galaxie 500",
-    "economy (mpg)": "14",
-    "cylinders": "8",
-    "displacement (cc)": "351",
-    "power (hp)": "153",
-    "weight (lb)": "4154",
-    "0-60 mph (s)": "13.5",
-    "year": "71"
-  },
-  {
-    "name": "Ford Galaxie 500",
-    "economy (mpg)": "15",
-    "cylinders": "8",
-    "displacement (cc)": "429",
-    "power (hp)": "198",
-    "weight (lb)": "4341",
-    "0-60 mph (s)": "10",
-    "year": "70"
-  },
-  {
-    "name": "Ford Gran Torino (Wagon)",
-    "economy (mpg)": "13",
-    "cylinders": "8",
-    "displacement (cc)": "302",
-    "power (hp)": "140",
-    "weight (lb)": "4294",
-    "0-60 mph (s)": "16",
-    "year": "72"
-  },
-  {
-    "name": "Ford Gran Torino (Wagon)",
-    "economy (mpg)": "14",
-    "cylinders": "8",
-    "displacement (cc)": "302",
-    "power (hp)": "140",
-    "weight (lb)": "4638",
-    "0-60 mph (s)": "16",
-    "year": "74"
-  },
-  {
-    "name": "Ford Gran Torino",
-    "economy (mpg)": "14",
-    "cylinders": "8",
-    "displacement (cc)": "302",
-    "power (hp)": "137",
-    "weight (lb)": "4042",
-    "0-60 mph (s)": "14.5",
-    "year": "73"
-  },
-  {
-    "name": "Ford Gran Torino",
-    "economy (mpg)": "14.5",
-    "cylinders": "8",
-    "displacement (cc)": "351",
-    "power (hp)": "152",
-    "weight (lb)": "4215",
-    "0-60 mph (s)": "12.8",
-    "year": "76"
-  },
-  {
-    "name": "Ford Gran Torino",
-    "economy (mpg)": "16",
-    "cylinders": "8",
-    "displacement (cc)": "302",
-    "power (hp)": "140",
-    "weight (lb)": "4141",
-    "0-60 mph (s)": "14",
-    "year": "74"
-  },
-  {
-    "name": "Ford Granada Ghia",
-    "economy (mpg)": "18",
-    "cylinders": "6",
-    "displacement (cc)": "250",
-    "power (hp)": "78",
-    "weight (lb)": "3574",
-    "0-60 mph (s)": "21",
-    "year": "76"
-  },
-  {
-    "name": "Ford Granada GL",
-    "economy (mpg)": "20.2",
-    "cylinders": "6",
-    "displacement (cc)": "200",
-    "power (hp)": "88",
-    "weight (lb)": "3060",
-    "0-60 mph (s)": "17.1",
-    "year": "81"
-  },
-  {
-    "name": "Ford Granada L",
-    "economy (mpg)": "22",
-    "cylinders": "6",
-    "displacement (cc)": "232",
-    "power (hp)": "112",
-    "weight (lb)": "2835",
-    "0-60 mph (s)": "14.7",
-    "year": "82"
-  },
-  {
-    "name": "Ford Granada",
-    "economy (mpg)": "18.5",
-    "cylinders": "6",
-    "displacement (cc)": "250",
-    "power (hp)": "98",
-    "weight (lb)": "3525",
-    "0-60 mph (s)": "19",
-    "year": "77"
-  },
-  {
-    "name": "Ford LTD Landau",
-    "economy (mpg)": "17.6",
-    "cylinders": "8",
-    "displacement (cc)": "302",
-    "power (hp)": "129",
-    "weight (lb)": "3725",
-    "0-60 mph (s)": "13.4",
-    "year": "79"
-  },
-  {
-    "name": "Ford LTD",
-    "economy (mpg)": "13",
-    "cylinders": "8",
-    "displacement (cc)": "351",
-    "power (hp)": "158",
-    "weight (lb)": "4363",
-    "0-60 mph (s)": "13",
-    "year": "73"
-  },
-  {
-    "name": "Ford LTD",
-    "economy (mpg)": "14",
-    "cylinders": "8",
-    "displacement (cc)": "351",
-    "power (hp)": "148",
-    "weight (lb)": "4657",
-    "0-60 mph (s)": "13.5",
-    "year": "75"
-  },
-  {
-    "name": "Ford Maverick",
-    "economy (mpg)": "15",
-    "cylinders": "6",
-    "displacement (cc)": "250",
-    "power (hp)": "72",
-    "weight (lb)": "3158",
-    "0-60 mph (s)": "19.5",
-    "year": "75"
-  },
-  {
-    "name": "Ford Maverick",
-    "economy (mpg)": "18",
-    "cylinders": "6",
-    "displacement (cc)": "250",
-    "power (hp)": "88",
-    "weight (lb)": "3021",
-    "0-60 mph (s)": "16.5",
-    "year": "73"
-  },
-  {
-    "name": "Ford Maverick",
-    "economy (mpg)": "21",
-    "cylinders": "6",
-    "displacement (cc)": "200",
-    "power (hp)": "",
-    "weight (lb)": "2875",
-    "0-60 mph (s)": "17",
-    "year": "74"
-  },
-  {
-    "name": "Ford Maverick",
-    "economy (mpg)": "21",
-    "cylinders": "6",
-    "displacement (cc)": "200",
-    "power (hp)": "85",
-    "weight (lb)": "2587",
-    "0-60 mph (s)": "16",
-    "year": "70"
-  },
-  {
-    "name": "Ford Maverick",
-    "economy (mpg)": "24",
-    "cylinders": "6",
-    "displacement (cc)": "200",
-    "power (hp)": "81",
-    "weight (lb)": "3012",
-    "0-60 mph (s)": "17.6",
-    "year": "76"
-  },
-  {
-    "name": "Ford Mustang Boss 302",
-    "economy (mpg)": "",
-    "cylinders": "8",
-    "displacement (cc)": "302",
-    "power (hp)": "140",
-    "weight (lb)": "3353",
-    "0-60 mph (s)": "8",
-    "year": "70"
-  },
-  {
-    "name": "Ford Mustang Cobra",
-    "economy (mpg)": "23.6",
-    "cylinders": "4",
-    "displacement (cc)": "140",
-    "power (hp)": "",
-    "weight (lb)": "2905",
-    "0-60 mph (s)": "14.3",
-    "year": "80"
-  },
-  {
-    "name": "Ford Mustang GL",
-    "economy (mpg)": "27",
-    "cylinders": "4",
-    "displacement (cc)": "140",
-    "power (hp)": "86",
-    "weight (lb)": "2790",
-    "0-60 mph (s)": "15.6",
-    "year": "82"
-  },
-  {
-    "name": "Ford Mustang II 2+2",
-    "economy (mpg)": "25.5",
-    "cylinders": "4",
-    "displacement (cc)": "140",
-    "power (hp)": "89",
-    "weight (lb)": "2755",
-    "0-60 mph (s)": "15.8",
-    "year": "77"
-  },
-  {
-    "name": "Ford Mustang II",
-    "economy (mpg)": "13",
-    "cylinders": "8",
-    "displacement (cc)": "302",
-    "power (hp)": "129",
-    "weight (lb)": "3169",
-    "0-60 mph (s)": "12",
-    "year": "75"
-  },
-  {
-    "name": "Ford Mustang",
-    "economy (mpg)": "18",
-    "cylinders": "6",
-    "displacement (cc)": "250",
-    "power (hp)": "88",
-    "weight (lb)": "3139",
-    "0-60 mph (s)": "14.5",
-    "year": "71"
-  },
-  {
-    "name": "Ford Pinto (Wagon)",
-    "economy (mpg)": "22",
-    "cylinders": "4",
-    "displacement (cc)": "122",
-    "power (hp)": "86",
-    "weight (lb)": "2395",
-    "0-60 mph (s)": "16",
-    "year": "72"
-  },
-  {
-    "name": "Ford Pinto Runabout",
-    "economy (mpg)": "21",
-    "cylinders": "4",
-    "displacement (cc)": "122",
-    "power (hp)": "86",
-    "weight (lb)": "2226",
-    "0-60 mph (s)": "16.5",
-    "year": "72"
-  },
-  {
-    "name": "Ford Pinto",
-    "economy (mpg)": "18",
-    "cylinders": "6",
-    "displacement (cc)": "171",
-    "power (hp)": "97",
-    "weight (lb)": "2984",
-    "0-60 mph (s)": "14.5",
-    "year": "75"
-  },
-  {
-    "name": "Ford Pinto",
-    "economy (mpg)": "19",
-    "cylinders": "4",
-    "displacement (cc)": "122",
-    "power (hp)": "85",
-    "weight (lb)": "2310",
-    "0-60 mph (s)": "18.5",
-    "year": "73"
-  },
-  {
-    "name": "Ford Pinto",
-    "economy (mpg)": "23",
-    "cylinders": "4",
-    "displacement (cc)": "140",
-    "power (hp)": "83",
-    "weight (lb)": "2639",
-    "0-60 mph (s)": "17",
-    "year": "75"
-  },
-  {
-    "name": "Ford Pinto",
-    "economy (mpg)": "25",
-    "cylinders": "4",
-    "displacement (cc)": "98",
-    "power (hp)": "",
-    "weight (lb)": "2046",
-    "0-60 mph (s)": "19",
-    "year": "71"
-  },
-  {
-    "name": "Ford Pinto",
-    "economy (mpg)": "26",
-    "cylinders": "4",
-    "displacement (cc)": "122",
-    "power (hp)": "80",
-    "weight (lb)": "2451",
-    "0-60 mph (s)": "16.5",
-    "year": "74"
-  },
-  {
-    "name": "Ford Pinto",
-    "economy (mpg)": "26.5",
-    "cylinders": "4",
-    "displacement (cc)": "140",
-    "power (hp)": "72",
-    "weight (lb)": "2565",
-    "0-60 mph (s)": "13.6",
-    "year": "76"
-  },
-  {
-    "name": "Ford Ranger",
-    "economy (mpg)": "28",
-    "cylinders": "4",
-    "displacement (cc)": "120",
-    "power (hp)": "79",
-    "weight (lb)": "2625",
-    "0-60 mph (s)": "18.6",
-    "year": "82"
-  },
-  {
-    "name": "Ford Thunderbird",
-    "economy (mpg)": "16",
-    "cylinders": "8",
-    "displacement (cc)": "351",
-    "power (hp)": "149",
-    "weight (lb)": "4335",
-    "0-60 mph (s)": "14.5",
-    "year": "77"
-  },
-  {
-    "name": "Ford Torino (Wagon)",
-    "economy (mpg)": "",
-    "cylinders": "8",
-    "displacement (cc)": "351",
-    "power (hp)": "153",
-    "weight (lb)": "4034",
-    "0-60 mph (s)": "11",
-    "year": "70"
-  },
-  {
-    "name": "Ford Torino 500",
-    "economy (mpg)": "19",
-    "cylinders": "6",
-    "displacement (cc)": "250",
-    "power (hp)": "88",
-    "weight (lb)": "3302",
-    "0-60 mph (s)": "15.5",
-    "year": "71"
-  },
-  {
-    "name": "Ford Torino",
-    "economy (mpg)": "17",
-    "cylinders": "8",
-    "displacement (cc)": "302",
-    "power (hp)": "140",
-    "weight (lb)": "3449",
-    "0-60 mph (s)": "10.5",
-    "year": "70"
-  },
-  {
-    "name": "Hi 1200D",
-    "economy (mpg)": "9",
-    "cylinders": "8",
-    "displacement (cc)": "304",
-    "power (hp)": "193",
-    "weight (lb)": "4732",
-    "0-60 mph (s)": "18.5",
-    "year": "70"
-  },
-  {
-    "name": "Honda Accord CVCC",
-    "economy (mpg)": "31.5",
-    "cylinders": "4",
-    "displacement (cc)": "98",
-    "power (hp)": "68",
-    "weight (lb)": "2045",
-    "0-60 mph (s)": "18.5",
-    "year": "77"
-  },
-  {
-    "name": "Honda Accord LX",
-    "economy (mpg)": "29.5",
-    "cylinders": "4",
-    "displacement (cc)": "98",
-    "power (hp)": "68",
-    "weight (lb)": "2135",
-    "0-60 mph (s)": "16.6",
-    "year": "78"
-  },
-  {
-    "name": "Honda Accord",
-    "economy (mpg)": "32.4",
-    "cylinders": "4",
-    "displacement (cc)": "107",
-    "power (hp)": "72",
-    "weight (lb)": "2290",
-    "0-60 mph (s)": "17",
-    "year": "80"
-  },
-  {
-    "name": "Honda Accord",
-    "economy (mpg)": "36",
-    "cylinders": "4",
-    "displacement (cc)": "107",
-    "power (hp)": "75",
-    "weight (lb)": "2205",
-    "0-60 mph (s)": "14.5",
-    "year": "82"
-  },
-  {
-    "name": "Honda Civic (Auto)",
-    "economy (mpg)": "32",
-    "cylinders": "4",
-    "displacement (cc)": "91",
-    "power (hp)": "67",
-    "weight (lb)": "1965",
-    "0-60 mph (s)": "15.7",
-    "year": "82"
-  },
-  {
-    "name": "Honda Civic 1300",
-    "economy (mpg)": "35.1",
-    "cylinders": "4",
-    "displacement (cc)": "81",
-    "power (hp)": "60",
-    "weight (lb)": "1760",
-    "0-60 mph (s)": "16.1",
-    "year": "81"
-  },
-  {
-    "name": "Honda Civic 1500 GL",
-    "economy (mpg)": "44.6",
-    "cylinders": "4",
-    "displacement (cc)": "91",
-    "power (hp)": "67",
-    "weight (lb)": "1850",
-    "0-60 mph (s)": "13.8",
-    "year": "80"
-  },
-  {
-    "name": "Honda Civic CVCC",
-    "economy (mpg)": "33",
-    "cylinders": "4",
-    "displacement (cc)": "91",
-    "power (hp)": "53",
-    "weight (lb)": "1795",
-    "0-60 mph (s)": "17.5",
-    "year": "75"
-  },
-  {
-    "name": "Honda Civic CVCC",
-    "economy (mpg)": "36.1",
-    "cylinders": "4",
-    "displacement (cc)": "91",
-    "power (hp)": "60",
-    "weight (lb)": "1800",
-    "0-60 mph (s)": "16.4",
-    "year": "78"
-  },
-  {
-    "name": "Honda Civic",
-    "economy (mpg)": "24",
-    "cylinders": "4",
-    "displacement (cc)": "120",
-    "power (hp)": "97",
-    "weight (lb)": "2489",
-    "0-60 mph (s)": "15",
-    "year": "74"
-  },
-  {
-    "name": "Honda Civic",
-    "economy (mpg)": "33",
-    "cylinders": "4",
-    "displacement (cc)": "91",
-    "power (hp)": "53",
-    "weight (lb)": "1795",
-    "0-60 mph (s)": "17.4",
-    "year": "76"
-  },
-  {
-    "name": "Honda Civic",
-    "economy (mpg)": "38",
-    "cylinders": "4",
-    "displacement (cc)": "91",
-    "power (hp)": "67",
-    "weight (lb)": "1965",
-    "0-60 mph (s)": "15",
-    "year": "82"
-  },
-  {
-    "name": "Honda Prelude",
-    "economy (mpg)": "33.7",
-    "cylinders": "4",
-    "displacement (cc)": "107",
-    "power (hp)": "75",
-    "weight (lb)": "2210",
-    "0-60 mph (s)": "14.4",
-    "year": "81"
-  },
-  {
-    "name": "Maxda GLC Deluxe",
-    "economy (mpg)": "34.1",
-    "cylinders": "4",
-    "displacement (cc)": "86",
-    "power (hp)": "65",
-    "weight (lb)": "1975",
-    "0-60 mph (s)": "15.2",
-    "year": "79"
-  },
-  {
-    "name": "Maxda RX-3",
-    "economy (mpg)": "18",
-    "cylinders": "3",
-    "displacement (cc)": "70",
-    "power (hp)": "90",
-    "weight (lb)": "2124",
-    "0-60 mph (s)": "13.5",
-    "year": "73"
-  },
-  {
-    "name": "Mazda 626",
-    "economy (mpg)": "31.3",
-    "cylinders": "4",
-    "displacement (cc)": "120",
-    "power (hp)": "75",
-    "weight (lb)": "2542",
-    "0-60 mph (s)": "17.5",
-    "year": "80"
-  },
-  {
-    "name": "Mazda 626",
-    "economy (mpg)": "31.6",
-    "cylinders": "4",
-    "displacement (cc)": "120",
-    "power (hp)": "74",
-    "weight (lb)": "2635",
-    "0-60 mph (s)": "18.3",
-    "year": "81"
-  },
-  {
-    "name": "Mazda GLC 4",
-    "economy (mpg)": "34.1",
-    "cylinders": "4",
-    "displacement (cc)": "91",
-    "power (hp)": "68",
-    "weight (lb)": "1985",
-    "0-60 mph (s)": "16",
-    "year": "81"
-  },
-  {
-    "name": "Mazda GLC Custom L",
-    "economy (mpg)": "37",
-    "cylinders": "4",
-    "displacement (cc)": "91",
-    "power (hp)": "68",
-    "weight (lb)": "2025",
-    "0-60 mph (s)": "18.2",
-    "year": "82"
-  },
-  {
-    "name": "Mazda GLC Custom",
-    "economy (mpg)": "31",
-    "cylinders": "4",
-    "displacement (cc)": "91",
-    "power (hp)": "68",
-    "weight (lb)": "1970",
-    "0-60 mph (s)": "17.6",
-    "year": "82"
-  },
-  {
-    "name": "Mazda GLC Deluxe",
-    "economy (mpg)": "32.8",
-    "cylinders": "4",
-    "displacement (cc)": "78",
-    "power (hp)": "52",
-    "weight (lb)": "1985",
-    "0-60 mph (s)": "19.4",
-    "year": "78"
-  },
-  {
-    "name": "Mazda GLC",
-    "economy (mpg)": "46.6",
-    "cylinders": "4",
-    "displacement (cc)": "86",
-    "power (hp)": "65",
-    "weight (lb)": "2110",
-    "0-60 mph (s)": "17.9",
-    "year": "80"
-  },
-  {
-    "name": "Mazda RX-2 Coupe",
-    "economy (mpg)": "19",
-    "cylinders": "3",
-    "displacement (cc)": "70",
-    "power (hp)": "97",
-    "weight (lb)": "2330",
-    "0-60 mph (s)": "13.5",
-    "year": "72"
-  },
-  {
-    "name": "Mazda RX-4",
-    "economy (mpg)": "21.5",
-    "cylinders": "3",
-    "displacement (cc)": "80",
-    "power (hp)": "110",
-    "weight (lb)": "2720",
-    "0-60 mph (s)": "13.5",
-    "year": "77"
-  },
-  {
-    "name": "Mazda RX-7 Gs",
-    "economy (mpg)": "23.7",
-    "cylinders": "3",
-    "displacement (cc)": "70",
-    "power (hp)": "100",
-    "weight (lb)": "2420",
-    "0-60 mph (s)": "12.5",
-    "year": "80"
-  },
-  {
-    "name": "Mercedes-Benz 240D",
-    "economy (mpg)": "30",
-    "cylinders": "4",
-    "displacement (cc)": "146",
-    "power (hp)": "67",
-    "weight (lb)": "3250",
-    "0-60 mph (s)": "21.8",
-    "year": "80"
-  },
-  {
-    "name": "Mercedes-Benz 280S",
-    "economy (mpg)": "16.5",
-    "cylinders": "6",
-    "displacement (cc)": "168",
-    "power (hp)": "120",
-    "weight (lb)": "3820",
-    "0-60 mph (s)": "16.7",
-    "year": "76"
-  },
-  {
-    "name": "Mercedes-Benz 300D",
-    "economy (mpg)": "25.4",
-    "cylinders": "5",
-    "displacement (cc)": "183",
-    "power (hp)": "77",
-    "weight (lb)": "3530",
-    "0-60 mph (s)": "20.1",
-    "year": "79"
-  },
-  {
-    "name": "Mercury Capri 2000",
-    "economy (mpg)": "23",
-    "cylinders": "4",
-    "displacement (cc)": "122",
-    "power (hp)": "86",
-    "weight (lb)": "2220",
-    "0-60 mph (s)": "14",
-    "year": "71"
-  },
-  {
-    "name": "Mercury Capri V6",
-    "economy (mpg)": "21",
-    "cylinders": "6",
-    "displacement (cc)": "155",
-    "power (hp)": "107",
-    "weight (lb)": "2472",
-    "0-60 mph (s)": "14",
-    "year": "73"
-  },
-  {
-    "name": "Mercury Cougar Brougham",
-    "economy (mpg)": "15",
-    "cylinders": "8",
-    "displacement (cc)": "302",
-    "power (hp)": "130",
-    "weight (lb)": "4295",
-    "0-60 mph (s)": "14.9",
-    "year": "77"
-  },
-  {
-    "name": "Mercury Grand Marquis",
-    "economy (mpg)": "16.5",
-    "cylinders": "8",
-    "displacement (cc)": "351",
-    "power (hp)": "138",
-    "weight (lb)": "3955",
-    "0-60 mph (s)": "13.2",
-    "year": "79"
-  },
-  {
-    "name": "Mercury Lynx L",
-    "economy (mpg)": "36",
-    "cylinders": "4",
-    "displacement (cc)": "98",
-    "power (hp)": "70",
-    "weight (lb)": "2125",
-    "0-60 mph (s)": "17.3",
-    "year": "82"
-  },
-  {
-    "name": "Mercury Marquis Brougham",
-    "economy (mpg)": "12",
-    "cylinders": "8",
-    "displacement (cc)": "429",
-    "power (hp)": "198",
-    "weight (lb)": "4952",
-    "0-60 mph (s)": "11.5",
-    "year": "73"
-  },
-  {
-    "name": "Mercury Marquis",
-    "economy (mpg)": "11",
-    "cylinders": "8",
-    "displacement (cc)": "429",
-    "power (hp)": "208",
-    "weight (lb)": "4633",
-    "0-60 mph (s)": "11",
-    "year": "72"
-  },
-  {
-    "name": "Mercury Monarch Ghia",
-    "economy (mpg)": "20.2",
-    "cylinders": "8",
-    "displacement (cc)": "302",
-    "power (hp)": "139",
-    "weight (lb)": "3570",
-    "0-60 mph (s)": "12.8",
-    "year": "78"
-  },
-  {
-    "name": "Mercury Monarch",
-    "economy (mpg)": "15",
-    "cylinders": "6",
-    "displacement (cc)": "250",
-    "power (hp)": "72",
-    "weight (lb)": "3432",
-    "0-60 mph (s)": "21",
-    "year": "75"
-  },
-  {
-    "name": "Mercury Zephyr 6",
-    "economy (mpg)": "19.8",
-    "cylinders": "6",
-    "displacement (cc)": "200",
-    "power (hp)": "85",
-    "weight (lb)": "2990",
-    "0-60 mph (s)": "18.2",
-    "year": "79"
-  },
-  {
-    "name": "Mercury Zephyr",
-    "economy (mpg)": "20.8",
-    "cylinders": "6",
-    "displacement (cc)": "200",
-    "power (hp)": "85",
-    "weight (lb)": "3070",
-    "0-60 mph (s)": "16.7",
-    "year": "78"
-  },
-  {
-    "name": "Nissan Stanza XE",
-    "economy (mpg)": "36",
-    "cylinders": "4",
-    "displacement (cc)": "120",
-    "power (hp)": "88",
-    "weight (lb)": "2160",
-    "0-60 mph (s)": "14.5",
-    "year": "82"
-  },
-  {
-    "name": "Oldsmobile Cutlass Ciera (Diesel)",
-    "economy (mpg)": "38",
-    "cylinders": "6",
-    "displacement (cc)": "262",
-    "power (hp)": "85",
-    "weight (lb)": "3015",
-    "0-60 mph (s)": "17",
-    "year": "82"
-  },
-  {
-    "name": "Oldsmobile Cutlass LS",
-    "economy (mpg)": "26.6",
-    "cylinders": "8",
-    "displacement (cc)": "350",
-    "power (hp)": "105",
-    "weight (lb)": "3725",
-    "0-60 mph (s)": "19",
-    "year": "81"
-  },
-  {
-    "name": "Oldsmobile Cutlass Salon Brougham",
-    "economy (mpg)": "19.9",
-    "cylinders": "8",
-    "displacement (cc)": "260",
-    "power (hp)": "110",
-    "weight (lb)": "3365",
-    "0-60 mph (s)": "15.5",
-    "year": "78"
-  },
-  {
-    "name": "Oldsmobile Cutlass Salon Brougham",
-    "economy (mpg)": "23.9",
-    "cylinders": "8",
-    "displacement (cc)": "260",
-    "power (hp)": "90",
-    "weight (lb)": "3420",
-    "0-60 mph (s)": "22.2",
-    "year": "79"
-  },
-  {
-    "name": "Oldsmobile Cutlass Supreme",
-    "economy (mpg)": "17",
-    "cylinders": "8",
-    "displacement (cc)": "260",
-    "power (hp)": "110",
-    "weight (lb)": "4060",
-    "0-60 mph (s)": "19",
-    "year": "77"
-  },
-  {
-    "name": "Oldsmobile Delta 88 Royale",
-    "economy (mpg)": "12",
-    "cylinders": "8",
-    "displacement (cc)": "350",
-    "power (hp)": "160",
-    "weight (lb)": "4456",
-    "0-60 mph (s)": "13.5",
-    "year": "72"
-  },
-  {
-    "name": "Oldsmobile Omega Brougham",
-    "economy (mpg)": "26.8",
-    "cylinders": "6",
-    "displacement (cc)": "173",
-    "power (hp)": "115",
-    "weight (lb)": "2700",
-    "0-60 mph (s)": "12.9",
-    "year": "79"
-  },
-  {
-    "name": "Oldsmobile Omega",
-    "economy (mpg)": "11",
-    "cylinders": "8",
-    "displacement (cc)": "350",
-    "power (hp)": "180",
-    "weight (lb)": "3664",
-    "0-60 mph (s)": "11",
-    "year": "73"
-  },
-  {
-    "name": "Oldsmobile Starfire SX",
-    "economy (mpg)": "23.8",
-    "cylinders": "4",
-    "displacement (cc)": "151",
-    "power (hp)": "85",
-    "weight (lb)": "2855",
-    "0-60 mph (s)": "17.6",
-    "year": "78"
-  },
-  {
-    "name": "Oldsmobile Vista Cruiser",
-    "economy (mpg)": "12",
-    "cylinders": "8",
-    "displacement (cc)": "350",
-    "power (hp)": "180",
-    "weight (lb)": "4499",
-    "0-60 mph (s)": "12.5",
-    "year": "73"
-  },
-  {
-    "name": "Opel 1900",
-    "economy (mpg)": "25",
-    "cylinders": "4",
-    "displacement (cc)": "116",
-    "power (hp)": "81",
-    "weight (lb)": "2220",
-    "0-60 mph (s)": "16.9",
-    "year": "76"
-  },
-  {
-    "name": "Opel 1900",
-    "economy (mpg)": "28",
-    "cylinders": "4",
-    "displacement (cc)": "116",
-    "power (hp)": "90",
-    "weight (lb)": "2123",
-    "0-60 mph (s)": "14",
-    "year": "71"
-  },
-  {
-    "name": "Opel Manta",
-    "economy (mpg)": "24",
-    "cylinders": "4",
-    "displacement (cc)": "116",
-    "power (hp)": "75",
-    "weight (lb)": "2158",
-    "0-60 mph (s)": "15.5",
-    "year": "73"
-  },
-  {
-    "name": "Opel Manta",
-    "economy (mpg)": "26",
-    "cylinders": "4",
-    "displacement (cc)": "97",
-    "power (hp)": "78",
-    "weight (lb)": "2300",
-    "0-60 mph (s)": "14.5",
-    "year": "74"
-  },
-  {
-    "name": "Peugeot 304",
-    "economy (mpg)": "30",
-    "cylinders": "4",
-    "displacement (cc)": "79",
-    "power (hp)": "70",
-    "weight (lb)": "2074",
-    "0-60 mph (s)": "19.5",
-    "year": "71"
-  },
-  {
-    "name": "Peugeot 504 (Wagon)",
-    "economy (mpg)": "21",
-    "cylinders": "4",
-    "displacement (cc)": "120",
-    "power (hp)": "87",
-    "weight (lb)": "2979",
-    "0-60 mph (s)": "19.5",
-    "year": "72"
-  },
-  {
-    "name": "Peugeot 504",
-    "economy (mpg)": "19",
-    "cylinders": "4",
-    "displacement (cc)": "120",
-    "power (hp)": "88",
-    "weight (lb)": "3270",
-    "0-60 mph (s)": "21.9",
-    "year": "76"
-  },
-  {
-    "name": "Peugeot 504",
-    "economy (mpg)": "23",
-    "cylinders": "4",
-    "displacement (cc)": "120",
-    "power (hp)": "88",
-    "weight (lb)": "2957",
-    "0-60 mph (s)": "17",
-    "year": "75"
-  },
-  {
-    "name": "Peugeot 504",
-    "economy (mpg)": "25",
-    "cylinders": "4",
-    "displacement (cc)": "110",
-    "power (hp)": "87",
-    "weight (lb)": "2672",
-    "0-60 mph (s)": "17.5",
-    "year": "70"
-  },
-  {
-    "name": "Peugeot 504",
-    "economy (mpg)": "27.2",
-    "cylinders": "4",
-    "displacement (cc)": "141",
-    "power (hp)": "71",
-    "weight (lb)": "3190",
-    "0-60 mph (s)": "24.8",
-    "year": "79"
-  },
-  {
-    "name": "Peugeot 505S Turbo Diesel",
-    "economy (mpg)": "28.1",
-    "cylinders": "4",
-    "displacement (cc)": "141",
-    "power (hp)": "80",
-    "weight (lb)": "3230",
-    "0-60 mph (s)": "20.4",
-    "year": "81"
-  },
-  {
-    "name": "Peugeot 604SL",
-    "economy (mpg)": "16.2",
-    "cylinders": "6",
-    "displacement (cc)": "163",
-    "power (hp)": "133",
-    "weight (lb)": "3410",
-    "0-60 mph (s)": "15.8",
-    "year": "78"
-  },
-  {
-    "name": "Plymouth Arrow GS",
-    "economy (mpg)": "25.5",
-    "cylinders": "4",
-    "displacement (cc)": "122",
-    "power (hp)": "96",
-    "weight (lb)": "2300",
-    "0-60 mph (s)": "15.5",
-    "year": "77"
-  },
-  {
-    "name": "Plymouth Barracuda 340",
-    "economy (mpg)": "14",
-    "cylinders": "8",
-    "displacement (cc)": "340",
-    "power (hp)": "160",
-    "weight (lb)": "3609",
-    "0-60 mph (s)": "8",
-    "year": "70"
-  },
-  {
-    "name": "Plymouth Champ",
-    "economy (mpg)": "39",
-    "cylinders": "4",
-    "displacement (cc)": "86",
-    "power (hp)": "64",
-    "weight (lb)": "1875",
-    "0-60 mph (s)": "16.4",
-    "year": "81"
-  },
-  {
-    "name": "Plymouth Cricket",
-    "economy (mpg)": "26",
-    "cylinders": "4",
-    "displacement (cc)": "91",
-    "power (hp)": "70",
-    "weight (lb)": "1955",
-    "0-60 mph (s)": "20.5",
-    "year": "71"
-  },
-  {
-    "name": "Plymouth Custom Suburb",
-    "economy (mpg)": "13",
-    "cylinders": "8",
-    "displacement (cc)": "360",
-    "power (hp)": "170",
-    "weight (lb)": "4654",
-    "0-60 mph (s)": "13",
-    "year": "73"
-  },
-  {
-    "name": "Plymouth Duster",
-    "economy (mpg)": "20",
-    "cylinders": "6",
-    "displacement (cc)": "198",
-    "power (hp)": "95",
-    "weight (lb)": "3102",
-    "0-60 mph (s)": "16.5",
-    "year": "74"
-  },
-  {
-    "name": "Plymouth Duster",
-    "economy (mpg)": "22",
-    "cylinders": "6",
-    "displacement (cc)": "198",
-    "power (hp)": "95",
-    "weight (lb)": "2833",
-    "0-60 mph (s)": "15.5",
-    "year": "70"
-  },
-  {
-    "name": "Plymouth Duster",
-    "economy (mpg)": "23",
-    "cylinders": "6",
-    "displacement (cc)": "198",
-    "power (hp)": "95",
-    "weight (lb)": "2904",
-    "0-60 mph (s)": "16",
-    "year": "73"
-  },
-  {
-    "name": "Plymouth Fury Gran Sedan",
-    "economy (mpg)": "14",
-    "cylinders": "8",
-    "displacement (cc)": "318",
-    "power (hp)": "150",
-    "weight (lb)": "4237",
-    "0-60 mph (s)": "14.5",
-    "year": "73"
-  },
-  {
-    "name": "Plymouth Fury III",
-    "economy (mpg)": "14",
-    "cylinders": "8",
-    "displacement (cc)": "318",
-    "power (hp)": "150",
-    "weight (lb)": "4096",
-    "0-60 mph (s)": "13",
-    "year": "71"
-  },
-  {
-    "name": "Plymouth Fury III",
-    "economy (mpg)": "14",
-    "cylinders": "8",
-    "displacement (cc)": "440",
-    "power (hp)": "215",
-    "weight (lb)": "4312",
-    "0-60 mph (s)": "8.5",
-    "year": "70"
-  },
-  {
-    "name": "Plymouth Fury III",
-    "economy (mpg)": "15",
-    "cylinders": "8",
-    "displacement (cc)": "318",
-    "power (hp)": "150",
-    "weight (lb)": "4135",
-    "0-60 mph (s)": "13.5",
-    "year": "72"
-  },
-  {
-    "name": "Plymouth Fury",
-    "economy (mpg)": "18",
-    "cylinders": "6",
-    "displacement (cc)": "225",
-    "power (hp)": "95",
-    "weight (lb)": "3785",
-    "0-60 mph (s)": "19",
-    "year": "75"
-  },
-  {
-    "name": "Plymouth Grand Fury",
-    "economy (mpg)": "16",
-    "cylinders": "8",
-    "displacement (cc)": "318",
-    "power (hp)": "150",
-    "weight (lb)": "4498",
-    "0-60 mph (s)": "14.5",
-    "year": "75"
-  },
-  {
-    "name": "Plymouth Horizon 4",
-    "economy (mpg)": "34.7",
-    "cylinders": "4",
-    "displacement (cc)": "105",
-    "power (hp)": "63",
-    "weight (lb)": "2215",
-    "0-60 mph (s)": "14.9",
-    "year": "81"
-  },
-  {
-    "name": "Plymouth Horizon Miser",
-    "economy (mpg)": "38",
-    "cylinders": "4",
-    "displacement (cc)": "105",
-    "power (hp)": "63",
-    "weight (lb)": "2125",
-    "0-60 mph (s)": "14.7",
-    "year": "82"
-  },
-  {
-    "name": "Plymouth Horizon TC3",
-    "economy (mpg)": "34.5",
-    "cylinders": "4",
-    "displacement (cc)": "105",
-    "power (hp)": "70",
-    "weight (lb)": "2150",
-    "0-60 mph (s)": "14.9",
-    "year": "79"
-  },
-  {
-    "name": "Plymouth Horizon",
-    "economy (mpg)": "34.2",
-    "cylinders": "4",
-    "displacement (cc)": "105",
-    "power (hp)": "70",
-    "weight (lb)": "2200",
-    "0-60 mph (s)": "13.2",
-    "year": "79"
-  },
-  {
-    "name": "Plymouth Reliant",
-    "economy (mpg)": "27.2",
-    "cylinders": "4",
-    "displacement (cc)": "135",
-    "power (hp)": "84",
-    "weight (lb)": "2490",
-    "0-60 mph (s)": "15.7",
-    "year": "81"
-  },
-  {
-    "name": "Plymouth Reliant",
-    "economy (mpg)": "30",
-    "cylinders": "4",
-    "displacement (cc)": "135",
-    "power (hp)": "84",
-    "weight (lb)": "2385",
-    "0-60 mph (s)": "12.9",
-    "year": "81"
-  },
-  {
-    "name": "Plymouth Sapporo",
-    "economy (mpg)": "23.2",
-    "cylinders": "4",
-    "displacement (cc)": "156",
-    "power (hp)": "105",
-    "weight (lb)": "2745",
-    "0-60 mph (s)": "16.7",
-    "year": "78"
-  },
-  {
-    "name": "Plymouth Satellite (Wagon)",
-    "economy (mpg)": "",
-    "cylinders": "8",
-    "displacement (cc)": "383",
-    "power (hp)": "175",
-    "weight (lb)": "4166",
-    "0-60 mph (s)": "10.5",
-    "year": "70"
-  },
-  {
-    "name": "Plymouth Satellite Custom (Wagon)",
-    "economy (mpg)": "14",
-    "cylinders": "8",
-    "displacement (cc)": "318",
-    "power (hp)": "150",
-    "weight (lb)": "4077",
-    "0-60 mph (s)": "14",
-    "year": "72"
-  },
-  {
-    "name": "Plymouth Satellite Custom",
-    "economy (mpg)": "16",
-    "cylinders": "6",
-    "displacement (cc)": "225",
-    "power (hp)": "105",
-    "weight (lb)": "3439",
-    "0-60 mph (s)": "15.5",
-    "year": "71"
-  },
-  {
-    "name": "Plymouth Satellite Sebring",
-    "economy (mpg)": "18",
-    "cylinders": "6",
-    "displacement (cc)": "225",
-    "power (hp)": "105",
-    "weight (lb)": "3613",
-    "0-60 mph (s)": "16.5",
-    "year": "74"
-  },
-  {
-    "name": "Plymouth Satellite",
-    "economy (mpg)": "18",
-    "cylinders": "8",
-    "displacement (cc)": "318",
-    "power (hp)": "150",
-    "weight (lb)": "3436",
-    "0-60 mph (s)": "11",
-    "year": "70"
-  },
-  {
-    "name": "Plymouth Valiant Custom",
-    "economy (mpg)": "19",
-    "cylinders": "6",
-    "displacement (cc)": "225",
-    "power (hp)": "95",
-    "weight (lb)": "3264",
-    "0-60 mph (s)": "16",
-    "year": "75"
-  },
-  {
-    "name": "Plymouth Valiant",
-    "economy (mpg)": "18",
-    "cylinders": "6",
-    "displacement (cc)": "225",
-    "power (hp)": "105",
-    "weight (lb)": "3121",
-    "0-60 mph (s)": "16.5",
-    "year": "73"
-  },
-  {
-    "name": "Plymouth Valiant",
-    "economy (mpg)": "22",
-    "cylinders": "6",
-    "displacement (cc)": "225",
-    "power (hp)": "100",
-    "weight (lb)": "3233",
-    "0-60 mph (s)": "15.4",
-    "year": "76"
-  },
-  {
-    "name": "Plymouth Volare Custom",
-    "economy (mpg)": "19",
-    "cylinders": "6",
-    "displacement (cc)": "225",
-    "power (hp)": "100",
-    "weight (lb)": "3630",
-    "0-60 mph (s)": "17.7",
-    "year": "77"
-  },
-  {
-    "name": "Plymouth Volare Premier V8",
-    "economy (mpg)": "13",
-    "cylinders": "8",
-    "displacement (cc)": "318",
-    "power (hp)": "150",
-    "weight (lb)": "3940",
-    "0-60 mph (s)": "13.2",
-    "year": "76"
-  },
-  {
-    "name": "Plymouth Volare",
-    "economy (mpg)": "20.5",
-    "cylinders": "6",
-    "displacement (cc)": "225",
-    "power (hp)": "100",
-    "weight (lb)": "3430",
-    "0-60 mph (s)": "17.2",
-    "year": "78"
-  },
-  {
-    "name": "Pontiac Astro",
-    "economy (mpg)": "23",
-    "cylinders": "4",
-    "displacement (cc)": "140",
-    "power (hp)": "78",
-    "weight (lb)": "2592",
-    "0-60 mph (s)": "18.5",
-    "year": "75"
-  },
-  {
-    "name": "Pontiac Catalina Brougham",
-    "economy (mpg)": "14",
-    "cylinders": "8",
-    "displacement (cc)": "400",
-    "power (hp)": "175",
-    "weight (lb)": "4464",
-    "0-60 mph (s)": "11.5",
-    "year": "71"
-  },
-  {
-    "name": "Pontiac Catalina",
-    "economy (mpg)": "14",
-    "cylinders": "8",
-    "displacement (cc)": "400",
-    "power (hp)": "175",
-    "weight (lb)": "4385",
-    "0-60 mph (s)": "12",
-    "year": "72"
-  },
-  {
-    "name": "Pontiac Catalina",
-    "economy (mpg)": "14",
-    "cylinders": "8",
-    "displacement (cc)": "455",
-    "power (hp)": "225",
-    "weight (lb)": "4425",
-    "0-60 mph (s)": "10",
-    "year": "70"
-  },
-  {
-    "name": "Pontiac Catalina",
-    "economy (mpg)": "16",
-    "cylinders": "8",
-    "displacement (cc)": "400",
-    "power (hp)": "170",
-    "weight (lb)": "4668",
-    "0-60 mph (s)": "11.5",
-    "year": "75"
-  },
-  {
-    "name": "Pontiac Firebird",
-    "economy (mpg)": "19",
-    "cylinders": "6",
-    "displacement (cc)": "250",
-    "power (hp)": "100",
-    "weight (lb)": "3282",
-    "0-60 mph (s)": "15",
-    "year": "71"
-  },
-  {
-    "name": "Pontiac Grand Prix Lj",
-    "economy (mpg)": "16",
-    "cylinders": "8",
-    "displacement (cc)": "400",
-    "power (hp)": "180",
-    "weight (lb)": "4220",
-    "0-60 mph (s)": "11.1",
-    "year": "77"
-  },
-  {
-    "name": "Pontiac Grand Prix",
-    "economy (mpg)": "16",
-    "cylinders": "8",
-    "displacement (cc)": "400",
-    "power (hp)": "230",
-    "weight (lb)": "4278",
-    "0-60 mph (s)": "9.5",
-    "year": "73"
-  },
-  {
-    "name": "Pontiac J2000 Se Hatchback",
-    "economy (mpg)": "31",
-    "cylinders": "4",
-    "displacement (cc)": "112",
-    "power (hp)": "85",
-    "weight (lb)": "2575",
-    "0-60 mph (s)": "16.2",
-    "year": "82"
-  },
-  {
-    "name": "Pontiac Lemans V6",
-    "economy (mpg)": "21.5",
-    "cylinders": "6",
-    "displacement (cc)": "231",
-    "power (hp)": "115",
-    "weight (lb)": "3245",
-    "0-60 mph (s)": "15.4",
-    "year": "79"
-  },
-  {
-    "name": "Pontiac Phoenix LJ",
-    "economy (mpg)": "19.2",
-    "cylinders": "6",
-    "displacement (cc)": "231",
-    "power (hp)": "105",
-    "weight (lb)": "3535",
-    "0-60 mph (s)": "19.2",
-    "year": "78"
-  },
-  {
-    "name": "Pontiac Phoenix",
-    "economy (mpg)": "27",
-    "cylinders": "4",
-    "displacement (cc)": "151",
-    "power (hp)": "90",
-    "weight (lb)": "2735",
-    "0-60 mph (s)": "18",
-    "year": "82"
-  },
-  {
-    "name": "Pontiac Phoenix",
-    "economy (mpg)": "33.5",
-    "cylinders": "4",
-    "displacement (cc)": "151",
-    "power (hp)": "90",
-    "weight (lb)": "2556",
-    "0-60 mph (s)": "13.2",
-    "year": "79"
-  },
-  {
-    "name": "Pontiac Safari (Wagon)",
-    "economy (mpg)": "13",
-    "cylinders": "8",
-    "displacement (cc)": "400",
-    "power (hp)": "175",
-    "weight (lb)": "5140",
-    "0-60 mph (s)": "12",
-    "year": "71"
-  },
-  {
-    "name": "Pontiac Sunbird Coupe",
-    "economy (mpg)": "24.5",
-    "cylinders": "4",
-    "displacement (cc)": "151",
-    "power (hp)": "88",
-    "weight (lb)": "2740",
-    "0-60 mph (s)": "16",
-    "year": "77"
-  },
-  {
-    "name": "Pontiac Ventura Sj",
-    "economy (mpg)": "18.5",
-    "cylinders": "6",
-    "displacement (cc)": "250",
-    "power (hp)": "110",
-    "weight (lb)": "3645",
-    "0-60 mph (s)": "16.2",
-    "year": "76"
-  },
-  {
-    "name": "Renault 12 (Wagon)",
-    "economy (mpg)": "26",
-    "cylinders": "4",
-    "displacement (cc)": "96",
-    "power (hp)": "69",
-    "weight (lb)": "2189",
-    "0-60 mph (s)": "18",
-    "year": "72"
-  },
-  {
-    "name": "Renault 12TL",
-    "economy (mpg)": "27",
-    "cylinders": "4",
-    "displacement (cc)": "101",
-    "power (hp)": "83",
-    "weight (lb)": "2202",
-    "0-60 mph (s)": "15.3",
-    "year": "76"
-  },
-  {
-    "name": "Renault 18I",
-    "economy (mpg)": "34.5",
-    "cylinders": "4",
-    "displacement (cc)": "100",
-    "power (hp)": "",
-    "weight (lb)": "2320",
-    "0-60 mph (s)": "15.8",
-    "year": "81"
-  },
-  {
-    "name": "Renault 5 Gtl",
-    "economy (mpg)": "36",
-    "cylinders": "4",
-    "displacement (cc)": "79",
-    "power (hp)": "58",
-    "weight (lb)": "1825",
-    "0-60 mph (s)": "18.6",
-    "year": "77"
-  },
-  {
-    "name": "Renault Lecar Deluxe",
-    "economy (mpg)": "40.9",
-    "cylinders": "4",
-    "displacement (cc)": "85",
-    "power (hp)": "",
-    "weight (lb)": "1835",
-    "0-60 mph (s)": "17.3",
-    "year": "80"
-  },
-  {
-    "name": "Saab 900S",
-    "economy (mpg)": "",
-    "cylinders": "4",
-    "displacement (cc)": "121",
-    "power (hp)": "110",
-    "weight (lb)": "2800",
-    "0-60 mph (s)": "15.4",
-    "year": "81"
-  },
-  {
-    "name": "Saab 99E",
-    "economy (mpg)": "25",
-    "cylinders": "4",
-    "displacement (cc)": "104",
-    "power (hp)": "95",
-    "weight (lb)": "2375",
-    "0-60 mph (s)": "17.5",
-    "year": "70"
-  },
-  {
-    "name": "Saab 99GLE",
-    "economy (mpg)": "21.6",
-    "cylinders": "4",
-    "displacement (cc)": "121",
-    "power (hp)": "115",
-    "weight (lb)": "2795",
-    "0-60 mph (s)": "15.7",
-    "year": "78"
-  },
-  {
-    "name": "Saab 99LE",
-    "economy (mpg)": "24",
-    "cylinders": "4",
-    "displacement (cc)": "121",
-    "power (hp)": "110",
-    "weight (lb)": "2660",
-    "0-60 mph (s)": "14",
-    "year": "73"
-  },
-  {
-    "name": "Saab 99LE",
-    "economy (mpg)": "25",
-    "cylinders": "4",
-    "displacement (cc)": "121",
-    "power (hp)": "115",
-    "weight (lb)": "2671",
-    "0-60 mph (s)": "13.5",
-    "year": "75"
-  },
-  {
-    "name": "Subaru DL",
-    "economy (mpg)": "30",
-    "cylinders": "4",
-    "displacement (cc)": "97",
-    "power (hp)": "67",
-    "weight (lb)": "1985",
-    "0-60 mph (s)": "16.4",
-    "year": "77"
-  },
-  {
-    "name": "Subaru DL",
-    "economy (mpg)": "33.8",
-    "cylinders": "4",
-    "displacement (cc)": "97",
-    "power (hp)": "67",
-    "weight (lb)": "2145",
-    "0-60 mph (s)": "18",
-    "year": "80"
-  },
-  {
-    "name": "Subaru",
-    "economy (mpg)": "26",
-    "cylinders": "4",
-    "displacement (cc)": "108",
-    "power (hp)": "93",
-    "weight (lb)": "2391",
-    "0-60 mph (s)": "15.5",
-    "year": "74"
-  },
-  {
-    "name": "Subaru",
-    "economy (mpg)": "32.3",
-    "cylinders": "4",
-    "displacement (cc)": "97",
-    "power (hp)": "67",
-    "weight (lb)": "2065",
-    "0-60 mph (s)": "17.8",
-    "year": "81"
-  },
-  {
-    "name": "Toyota Carina",
-    "economy (mpg)": "20",
-    "cylinders": "4",
-    "displacement (cc)": "97",
-    "power (hp)": "88",
-    "weight (lb)": "2279",
-    "0-60 mph (s)": "19",
-    "year": "73"
-  },
-  {
-    "name": "Toyota Celica GT Liftback",
-    "economy (mpg)": "21.1",
-    "cylinders": "4",
-    "displacement (cc)": "134",
-    "power (hp)": "95",
-    "weight (lb)": "2515",
-    "0-60 mph (s)": "14.8",
-    "year": "78"
-  },
-  {
-    "name": "Toyota Celica GT",
-    "economy (mpg)": "32",
-    "cylinders": "4",
-    "displacement (cc)": "144",
-    "power (hp)": "96",
-    "weight (lb)": "2665",
-    "0-60 mph (s)": "13.9",
-    "year": "82"
-  },
-  {
-    "name": "Toyota Corolla 1200",
-    "economy (mpg)": "31",
-    "cylinders": "4",
-    "displacement (cc)": "71",
-    "power (hp)": "65",
-    "weight (lb)": "1773",
-    "0-60 mph (s)": "19",
-    "year": "71"
-  },
-  {
-    "name": "Toyota Corolla 1200",
-    "economy (mpg)": "32",
-    "cylinders": "4",
-    "displacement (cc)": "71",
-    "power (hp)": "65",
-    "weight (lb)": "1836",
-    "0-60 mph (s)": "21",
-    "year": "74"
-  },
-  {
-    "name": "Toyota Corolla 1600 (Wagon)",
-    "economy (mpg)": "27",
-    "cylinders": "4",
-    "displacement (cc)": "97",
-    "power (hp)": "88",
-    "weight (lb)": "2100",
-    "0-60 mph (s)": "16.5",
-    "year": "72"
-  },
-  {
-    "name": "Toyota Corolla Liftback",
-    "economy (mpg)": "26",
-    "cylinders": "4",
-    "displacement (cc)": "97",
-    "power (hp)": "75",
-    "weight (lb)": "2265",
-    "0-60 mph (s)": "18.2",
-    "year": "77"
-  },
-  {
-    "name": "Toyota Corolla Tercel",
-    "economy (mpg)": "38.1",
-    "cylinders": "4",
-    "displacement (cc)": "89",
-    "power (hp)": "60",
-    "weight (lb)": "1968",
-    "0-60 mph (s)": "18.8",
-    "year": "80"
-  },
-  {
-    "name": "Toyota Corolla",
-    "economy (mpg)": "28",
-    "cylinders": "4",
-    "displacement (cc)": "97",
-    "power (hp)": "75",
-    "weight (lb)": "2155",
-    "0-60 mph (s)": "16.4",
-    "year": "76"
-  },
-  {
-    "name": "Toyota Corolla",
-    "economy (mpg)": "29",
-    "cylinders": "4",
-    "displacement (cc)": "97",
-    "power (hp)": "75",
-    "weight (lb)": "2171",
-    "0-60 mph (s)": "16",
-    "year": "75"
-  },
-  {
-    "name": "Toyota Corolla",
-    "economy (mpg)": "32.2",
-    "cylinders": "4",
-    "displacement (cc)": "108",
-    "power (hp)": "75",
-    "weight (lb)": "2265",
-    "0-60 mph (s)": "15.2",
-    "year": "80"
-  },
-  {
-    "name": "Toyota Corolla",
-    "economy (mpg)": "32.4",
-    "cylinders": "4",
-    "displacement (cc)": "108",
-    "power (hp)": "75",
-    "weight (lb)": "2350",
-    "0-60 mph (s)": "16.8",
-    "year": "81"
-  },
-  {
-    "name": "Toyota Corolla",
-    "economy (mpg)": "34",
-    "cylinders": "4",
-    "displacement (cc)": "108",
-    "power (hp)": "70",
-    "weight (lb)": "2245",
-    "0-60 mph (s)": "16.9",
-    "year": "82"
-  },
-  {
-    "name": "Toyota Corona Hardtop",
-    "economy (mpg)": "24",
-    "cylinders": "4",
-    "displacement (cc)": "113",
-    "power (hp)": "95",
-    "weight (lb)": "2278",
-    "0-60 mph (s)": "15.5",
-    "year": "72"
-  },
-  {
-    "name": "Toyota Corona Liftback",
-    "economy (mpg)": "29.8",
-    "cylinders": "4",
-    "displacement (cc)": "134",
-    "power (hp)": "90",
-    "weight (lb)": "2711",
-    "0-60 mph (s)": "15.5",
-    "year": "80"
-  },
-  {
-    "name": "Toyota Corona Mark II",
-    "economy (mpg)": "24",
-    "cylinders": "4",
-    "displacement (cc)": "113",
-    "power (hp)": "95",
-    "weight (lb)": "2372",
-    "0-60 mph (s)": "15",
-    "year": "70"
-  },
-  {
-    "name": "Toyota Corona",
-    "economy (mpg)": "24",
-    "cylinders": "4",
-    "displacement (cc)": "134",
-    "power (hp)": "96",
-    "weight (lb)": "2702",
-    "0-60 mph (s)": "13.5",
-    "year": "75"
-  },
-  {
-    "name": "Toyota Corona",
-    "economy (mpg)": "25",
-    "cylinders": "4",
-    "displacement (cc)": "113",
-    "power (hp)": "95",
-    "weight (lb)": "2228",
-    "0-60 mph (s)": "14",
-    "year": "71"
-  },
-  {
-    "name": "Toyota Corona",
-    "economy (mpg)": "27.5",
-    "cylinders": "4",
-    "displacement (cc)": "134",
-    "power (hp)": "95",
-    "weight (lb)": "2560",
-    "0-60 mph (s)": "14.2",
-    "year": "78"
-  },
-  {
-    "name": "Toyota Corona",
-    "economy (mpg)": "31",
-    "cylinders": "4",
-    "displacement (cc)": "76",
-    "power (hp)": "52",
-    "weight (lb)": "1649",
-    "0-60 mph (s)": "16.5",
-    "year": "74"
-  },
-  {
-    "name": "Toyota Cressida",
-    "economy (mpg)": "25.4",
-    "cylinders": "6",
-    "displacement (cc)": "168",
-    "power (hp)": "116",
-    "weight (lb)": "2900",
-    "0-60 mph (s)": "12.6",
-    "year": "81"
-  },
-  {
-    "name": "Toyota Mark II",
-    "economy (mpg)": "19",
-    "cylinders": "6",
-    "displacement (cc)": "156",
-    "power (hp)": "108",
-    "weight (lb)": "2930",
-    "0-60 mph (s)": "15.5",
-    "year": "76"
-  },
-  {
-    "name": "Toyota Mark II",
-    "economy (mpg)": "20",
-    "cylinders": "6",
-    "displacement (cc)": "156",
-    "power (hp)": "122",
-    "weight (lb)": "2807",
-    "0-60 mph (s)": "13.5",
-    "year": "73"
-  },
-  {
-    "name": "Toyota Starlet",
-    "economy (mpg)": "39.1",
-    "cylinders": "4",
-    "displacement (cc)": "79",
-    "power (hp)": "58",
-    "weight (lb)": "1755",
-    "0-60 mph (s)": "16.9",
-    "year": "81"
-  },
-  {
-    "name": "Toyota Tercel",
-    "economy (mpg)": "37.7",
-    "cylinders": "4",
-    "displacement (cc)": "89",
-    "power (hp)": "62",
-    "weight (lb)": "2050",
-    "0-60 mph (s)": "17.3",
-    "year": "81"
-  },
-  {
-    "name": "Toyouta Corona Mark II (Wagon)",
-    "economy (mpg)": "23",
-    "cylinders": "4",
-    "displacement (cc)": "120",
-    "power (hp)": "97",
-    "weight (lb)": "2506",
-    "0-60 mph (s)": "14.5",
-    "year": "72"
-  },
-  {
-    "name": "Triumph TR7 Coupe",
-    "economy (mpg)": "35",
-    "cylinders": "4",
-    "displacement (cc)": "122",
-    "power (hp)": "88",
-    "weight (lb)": "2500",
-    "0-60 mph (s)": "15.1",
-    "year": "80"
-  },
-  {
-    "name": "Vokswagen Rabbit",
-    "economy (mpg)": "29.8",
-    "cylinders": "4",
-    "displacement (cc)": "89",
-    "power (hp)": "62",
-    "weight (lb)": "1845",
-    "0-60 mph (s)": "15.3",
-    "year": "80"
-  },
-  {
-    "name": "Volkswagen 1131 Deluxe Sedan",
-    "economy (mpg)": "26",
-    "cylinders": "4",
-    "displacement (cc)": "97",
-    "power (hp)": "46",
-    "weight (lb)": "1835",
-    "0-60 mph (s)": "20.5",
-    "year": "70"
-  },
-  {
-    "name": "Volkswagen 411 (Wagon)",
-    "economy (mpg)": "22",
-    "cylinders": "4",
-    "displacement (cc)": "121",
-    "power (hp)": "76",
-    "weight (lb)": "2511",
-    "0-60 mph (s)": "18",
-    "year": "72"
-  },
-  {
-    "name": "Volkswagen Dasher (Diesel)",
-    "economy (mpg)": "43.4",
-    "cylinders": "4",
-    "displacement (cc)": "90",
-    "power (hp)": "48",
-    "weight (lb)": "2335",
-    "0-60 mph (s)": "23.7",
-    "year": "80"
-  },
-  {
-    "name": "Volkswagen Dasher",
-    "economy (mpg)": "25",
-    "cylinders": "4",
-    "displacement (cc)": "90",
-    "power (hp)": "71",
-    "weight (lb)": "2223",
-    "0-60 mph (s)": "16.5",
-    "year": "75"
-  },
-  {
-    "name": "Volkswagen Dasher",
-    "economy (mpg)": "26",
-    "cylinders": "4",
-    "displacement (cc)": "79",
-    "power (hp)": "67",
-    "weight (lb)": "1963",
-    "0-60 mph (s)": "15.5",
-    "year": "74"
-  },
-  {
-    "name": "Volkswagen Dasher",
-    "economy (mpg)": "30.5",
-    "cylinders": "4",
-    "displacement (cc)": "97",
-    "power (hp)": "78",
-    "weight (lb)": "2190",
-    "0-60 mph (s)": "14.1",
-    "year": "77"
-  },
-  {
-    "name": "Volkswagen Jetta",
-    "economy (mpg)": "33",
-    "cylinders": "4",
-    "displacement (cc)": "105",
-    "power (hp)": "74",
-    "weight (lb)": "2190",
-    "0-60 mph (s)": "14.2",
-    "year": "81"
-  },
-  {
-    "name": "Volkswagen Model 111",
-    "economy (mpg)": "27",
-    "cylinders": "4",
-    "displacement (cc)": "97",
-    "power (hp)": "60",
-    "weight (lb)": "1834",
-    "0-60 mph (s)": "19",
-    "year": "71"
-  },
-  {
-    "name": "Volkswagen Pickup",
-    "economy (mpg)": "44",
-    "cylinders": "4",
-    "displacement (cc)": "97",
-    "power (hp)": "52",
-    "weight (lb)": "2130",
-    "0-60 mph (s)": "24.6",
-    "year": "82"
-  },
-  {
-    "name": "Volkswagen Rabbit C (Diesel)",
-    "economy (mpg)": "44.3",
-    "cylinders": "4",
-    "displacement (cc)": "90",
-    "power (hp)": "48",
-    "weight (lb)": "2085",
-    "0-60 mph (s)": "21.7",
-    "year": "80"
-  },
-  {
-    "name": "Volkswagen Rabbit Custom Diesel",
-    "economy (mpg)": "43.1",
-    "cylinders": "4",
-    "displacement (cc)": "90",
-    "power (hp)": "48",
-    "weight (lb)": "1985",
-    "0-60 mph (s)": "21.5",
-    "year": "78"
-  },
-  {
-    "name": "Volkswagen Rabbit Custom",
-    "economy (mpg)": "29",
-    "cylinders": "4",
-    "displacement (cc)": "97",
-    "power (hp)": "78",
-    "weight (lb)": "1940",
-    "0-60 mph (s)": "14.5",
-    "year": "77"
-  },
-  {
-    "name": "Volkswagen Rabbit Custom",
-    "economy (mpg)": "31.9",
-    "cylinders": "4",
-    "displacement (cc)": "89",
-    "power (hp)": "71",
-    "weight (lb)": "1925",
-    "0-60 mph (s)": "14",
-    "year": "79"
-  },
-  {
-    "name": "Volkswagen Rabbit L",
-    "economy (mpg)": "36",
-    "cylinders": "4",
-    "displacement (cc)": "105",
-    "power (hp)": "74",
-    "weight (lb)": "1980",
-    "0-60 mph (s)": "15.3",
-    "year": "82"
-  },
-  {
-    "name": "Volkswagen Rabbit",
-    "economy (mpg)": "29",
-    "cylinders": "4",
-    "displacement (cc)": "90",
-    "power (hp)": "70",
-    "weight (lb)": "1937",
-    "0-60 mph (s)": "14",
-    "year": "75"
-  },
-  {
-    "name": "Volkswagen Rabbit",
-    "economy (mpg)": "29",
-    "cylinders": "4",
-    "displacement (cc)": "90",
-    "power (hp)": "70",
-    "weight (lb)": "1937",
-    "0-60 mph (s)": "14.2",
-    "year": "76"
-  },
-  {
-    "name": "Volkswagen Rabbit",
-    "economy (mpg)": "29.5",
-    "cylinders": "4",
-    "displacement (cc)": "97",
-    "power (hp)": "71",
-    "weight (lb)": "1825",
-    "0-60 mph (s)": "12.2",
-    "year": "76"
-  },
-  {
-    "name": "Volkswagen Rabbit",
-    "economy (mpg)": "41.5",
-    "cylinders": "4",
-    "displacement (cc)": "98",
-    "power (hp)": "76",
-    "weight (lb)": "2144",
-    "0-60 mph (s)": "14.7",
-    "year": "80"
-  },
-  {
-    "name": "Volkswagen Scirocco",
-    "economy (mpg)": "31.5",
-    "cylinders": "4",
-    "displacement (cc)": "89",
-    "power (hp)": "71",
-    "weight (lb)": "1990",
-    "0-60 mph (s)": "14.9",
-    "year": "78"
-  },
-  {
-    "name": "Volkswagen Super Beetle 117",
-    "economy (mpg)": "",
-    "cylinders": "4",
-    "displacement (cc)": "97",
-    "power (hp)": "48",
-    "weight (lb)": "1978",
-    "0-60 mph (s)": "20",
-    "year": "71"
-  },
-  {
-    "name": "Volkswagen Super Beetle",
-    "economy (mpg)": "26",
-    "cylinders": "4",
-    "displacement (cc)": "97",
-    "power (hp)": "46",
-    "weight (lb)": "1950",
-    "0-60 mph (s)": "21",
-    "year": "73"
-  },
-  {
-    "name": "Volkswagen Type 3",
-    "economy (mpg)": "23",
-    "cylinders": "4",
-    "displacement (cc)": "97",
-    "power (hp)": "54",
-    "weight (lb)": "2254",
-    "0-60 mph (s)": "23.5",
-    "year": "72"
-  },
-  {
-    "name": "Volvo 144EA",
-    "economy (mpg)": "19",
-    "cylinders": "4",
-    "displacement (cc)": "121",
-    "power (hp)": "112",
-    "weight (lb)": "2868",
-    "0-60 mph (s)": "15.5",
-    "year": "73"
-  },
-  {
-    "name": "Volvo 145E (Wagon)",
-    "economy (mpg)": "18",
-    "cylinders": "4",
-    "displacement (cc)": "121",
-    "power (hp)": "112",
-    "weight (lb)": "2933",
-    "0-60 mph (s)": "14.5",
-    "year": "72"
-  },
-  {
-    "name": "Volvo 244DL",
-    "economy (mpg)": "22",
-    "cylinders": "4",
-    "displacement (cc)": "121",
-    "power (hp)": "98",
-    "weight (lb)": "2945",
-    "0-60 mph (s)": "14.5",
-    "year": "75"
-  },
-  {
-    "name": "Volvo 245",
-    "economy (mpg)": "20",
-    "cylinders": "4",
-    "displacement (cc)": "130",
-    "power (hp)": "102",
-    "weight (lb)": "3150",
-    "0-60 mph (s)": "15.7",
-    "year": "76"
-  },
-  {
-    "name": "Volvo 264GL",
-    "economy (mpg)": "17",
-    "cylinders": "6",
-    "displacement (cc)": "163",
-    "power (hp)": "125",
-    "weight (lb)": "3140",
-    "0-60 mph (s)": "13.6",
-    "year": "78"
-  },
-  {
-    "name": "Volvo Diesel",
-    "economy (mpg)": "30.7",
-    "cylinders": "6",
-    "displacement (cc)": "145",
-    "power (hp)": "76",
-    "weight (lb)": "3160",
-    "0-60 mph (s)": "19.6",
-    "year": "81"
-  }
-]
-}
-
-    </script>
-  </body>
-</html>
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/pie.html b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/pie.html
deleted file mode 100755
index 3ba3f2bb..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/pie.html
+++ /dev/null
@@ -1,94 +0,0 @@
-<!DOCTYPE html>
-<meta charset="utf-8">
-<link href="../src/nv.d3.css" rel="stylesheet" type="text/css">
-<style>
-
-body {
-  overflow-y:scroll;
-}
-
-text {
-  font: 12px sans-serif;
-}
-
-</style>
-<body>
-
-<svg id="test1"></svg>
-
-<svg id="test2"></svg>
-
-<script src="../lib/d3.v3.js"></script>
-<script src="../nv.d3.js"></script>
-<script src="../src/utils.js"></script>
-<script src="../src/models/pie.js"></script>
-<script> 
-
-  var testdata = [
-    { 
-      key: "One",
-      y: 5
-    },
-    { 
-      key: "Two",
-      y: 2
-    },
-    { 
-      key: "Three",
-      y: 9
-    },
-    { 
-      key: "Four",
-      y: 7
-    },
-    { 
-      key: "Five",
-      y: 4
-    },
-    {
-        key: "Six",
-        y: 3
-    }
-  ];
-
-
-nv.addGraph(function() {
-    var width = nv.utils.windowSize().width - 40,
-        height = nv.utils.windowSize().height / 2 - 40;
-
-    var chart = nv.models.pie()
-        .values(function(d) { return d })
-        .width(width)
-        .height(height);
-
-    d3.select("#test1")
-        .datum([testdata])
-      .transition().duration(1200)
-        .attr('width', width)
-        .attr('height', height)
-        .call(chart);
-
-    return chart;
-});
-
-nv.addGraph(function() {
-    var width = nv.utils.windowSize().width - 40,
-        height = nv.utils.windowSize().height / 2 - 40;
-
-    var chart = nv.models.pie()
-        .values(function(d) { return d })
-        .width(width)
-        .height(height)
-        .donut(true);
-
-    d3.select("#test2")
-        .datum([testdata])
-      .transition().duration(1200)
-        .attr('width', width)
-        .attr('height', height)
-        .call(chart);
-
-    return chart;
-});
-
-</script>
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/pieChart.html b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/pieChart.html
deleted file mode 100755
index bdb3de96..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/pieChart.html
+++ /dev/null
@@ -1,122 +0,0 @@
-<!DOCTYPE html>
-<meta charset="utf-8">
-<link href="../src/nv.d3.css" rel="stylesheet" type="text/css">
-<style>
-
-body {
-  overflow-y:scroll;
-}
-
-text {
-  font: 12px sans-serif;
-}
-
-.mypiechart {
-  width: 500px;
-  border: 2px;
-}
-</style>
-<body class='with-3d-shadow with-transitions'>
-
-<h2>Test1</h2>
-<svg id="test1" class="mypiechart"></svg>
-
-<h2>Test2</h2>
-<svg id="test2" class="mypiechart"></svg>
-
-<script src="../lib/d3.v3.js"></script>
-<script src="../nv.d3.js"></script>
-<script src="../src/models/legend.js"></script>
-<script src="../src/models/pie.js"></script>
-<script src="../src/models/pieChart.js"></script>
-<script src="../src/utils.js"></script>
-<script>
-
-  var testdata = [
-    {
-      key: "One",
-      y: 5
-    },
-    {
-      key: "Two",
-      y: 2
-    },
-    {
-      key: "Three",
-      y: 9
-    },
-    {
-      key: "Four",
-      y: 7
-    },
-    {
-      key: "Five",
-      y: 4
-    },
-    {
-      key: "Six",
-      y: 3
-    },
-    {
-      key: "Seven",
-      y: .5
-    }
-  ];
-
-
-nv.addGraph(function() {
-    var width = 500,
-        height = 500;
-
-    var chart = nv.models.pieChart()
-        .x(function(d) { return d.key })
-        .y(function(d) { return d.y })
-        .color(d3.scale.category10().range())
-        .width(width)
-        .height(height);
-
-      d3.select("#test1")
-          .datum(testdata)
-        .transition().duration(1200)
-          .attr('width', width)
-          .attr('height', height)
-          .call(chart);
-
-    chart.dispatch.on('stateChange', function(e) { nv.log('New State:', JSON.stringify(e)); });
-
-    return chart;
-});
-
-nv.addGraph(function() {
-
-    var width = 500,
-        height = 500;
-
-    var chart = nv.models.pieChart()
-        .x(function(d) { return d.key })
-        //.y(function(d) { return d.value })
-        //.labelThreshold(.08)
-        //.showLabels(false)
-        .color(d3.scale.category10().range())
-        .width(width)
-        .height(height)
-        .donut(true);
-
-    chart.pie
-        .startAngle(function(d) { return d.startAngle/2 -Math.PI/2 })
-        .endAngle(function(d) { return d.endAngle/2 -Math.PI/2 });
-
-      //chart.pie.donutLabelsOutside(true).donut(true);
-
-      d3.select("#test2")
-          //.datum(historicalBarChart)
-          .datum(testdata)
-        .transition().duration(1200)
-          .attr('width', width)
-          .attr('height', height)
-          .call(chart);
-
-    return chart;
-});
-
-</script>
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/scatter.html b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/scatter.html
deleted file mode 100755
index 2c277670..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/scatter.html
+++ /dev/null
@@ -1,96 +0,0 @@
-<!DOCTYPE html>
-<meta charset="utf-8">
-<link href="../src/nv.d3.css" rel="stylesheet" type="text/css">
-<style>
-
-body {
-  overflow-y:scroll;
-}
-
-</style>
-<body>
-
-<svg id="test1"></svg>
-
-<script src="../lib/d3.v3.js"></script>
-<script src="../lib/fisheye.js"></script>
-<script src="../nv.d3.js"></script>
-<script src="../src/utils.js"></script>
-<script src="../src/models/legend.js"></script>
-<script src="../src/models/scatter.js"></script>
-<script>
-
-
-//Format A
-nv.addGraph({
-  generate: function() {
-      var width = nv.utils.windowSize().width - 40,
-          height = nv.utils.windowSize().height - 40;
-
-      var chart = nv.models.scatter()
-                .width(width)
-                .height(height)
-                .margin({top: 20, right: 20, bottom: 20, left: 20})
-                .size(function(d) { return d.z })
-                .useVoronoi(false)
-                //.interactive(false)
-
-
-    d3.select('#test1')
-      .attr('width', width)
-      .attr('height', height)
-      .datum(randomData())
-    .transition().duration(500)
-      .call(chart);
-
-    return chart;
-  },
-  callback: function(graph) {
-    window.onresize = function() {
-        var width = nv.utils.windowSize().width - 40,
-             height = nv.utils.windowSize().height - 40,
-        margin = graph.margin();
-
-
-      if (width < margin.left + margin.right + 20)
-        width = margin.left + margin.right + 20;
-
-      if (height < margin.top + margin.bottom + 20)
-        height = margin.top + margin.bottom + 20;
-
-
-      graph
-         .width(width)
-         .height(height);
-
-      d3.select('#test1')
-        .attr('width', width)
-        .attr('height', height)
-        .call(graph);
-
-    };
-  }
-});
-
-
-
-
-function randomData() {
-  var data = [];
-
-  for (i = 0; i < 2; i++) {
-    data.push({
-      key: 'Group ' + i,
-      values: []
-    });
-
-    for (j = 0; j < 100; j++) {
-      data[i].values.push({x: Math.random(), y: Math.random(), z: Math.random()});
-    }
-  }
-
-  return data;
-}
-
-
-</script>
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/scatterChart.html b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/scatterChart.html
deleted file mode 100755
index 57a8b91d..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/scatterChart.html
+++ /dev/null
@@ -1,118 +0,0 @@
-<!DOCTYPE html>
-<meta charset="utf-8">
-
-<link href="../src/nv.d3.css" rel="stylesheet" type="text/css">
-
-<style>
-
-body {
-  overflow-y:scroll;
-  margin: 0;
-  padding: 0;
-}
-
-svg {
-  overflow: hidden;
-}
-
-div {
-  border: 0;
-  margin: 0;
-}
-
-/*
-#offsetDiv {
-  margin-left: 100px;
-  margin-top: 100px;
-}
-*/
-
-
-#test1 {
-  margin: 0;
-}
-
-#test1 svg {
-  height: 500px;
-}
-
-</style>
-
-<body>
-
-<div id="offsetDiv">
-  <div id="test1" class='with-3d-shadow with-transitions'>
-    <svg></svg>
-  </div>
-</div>
-
-<script src="../lib/d3.v3.js"></script>
-<!--<script src="../lib/fisheye.js"></script>-->
-<script src="../nv.d3.js"></script>
-<script src="../src/tooltip.js"></script>
-<script src="../src/utils.js"></script>
-<script src="../src/models/legend.js"></script>
-<script src="../src/models/axis.js"></script>
-<script src="../src/models/distribution.js"></script>
-<script src="../src/models/scatter.js"></script>
-<script src="../src/models/scatterChart.js"></script>
-<script>
-
-
-
-//Format A
-var chart;
-nv.addGraph(function() {
-  chart = nv.models.scatterChart()
-                .showDistX(true)
-                .showDistY(true)
-                .useVoronoi(true)
-                .color(d3.scale.category10().range())
-                .transitionDuration(300)
-                ;
-
-  chart.xAxis.tickFormat(d3.format('.02f'));
-  chart.yAxis.tickFormat(d3.format('.02f'));
-  chart.tooltipContent(function(key) {
-      return '<h2>' + key + '</h2>';
-  });
-
-  d3.select('#test1 svg')
-      .datum(randomData(4,40))
-      .call(chart);
-
-  nv.utils.windowResize(chart.update);
-
-  chart.dispatch.on('stateChange', function(e) { ('New State:', JSON.stringify(e)); });
-
-  return chart;
-});
-
-
-function randomData(groups, points) { //# groups,# points per group
-  var data = [],
-      shapes = ['circle', 'cross', 'triangle-up', 'triangle-down', 'diamond', 'square'],
-      random = d3.random.normal();
-
-  for (i = 0; i < groups; i++) {
-    data.push({
-      key: 'Group ' + i,
-      values: []
-    });
-
-    for (j = 0; j < points; j++) {
-      data[i].values.push({
-        x: random(), 
-        y: random(), 
-        size: Math.random(), 
-        shape: shapes[j % 6]
-      });
-    }
-  }
-
-  return data;
-}
-
-
-
-</script>
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/scatterPlusLineChart.html b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/scatterPlusLineChart.html
deleted file mode 100755
index d09cc9a3..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/scatterPlusLineChart.html
+++ /dev/null
@@ -1,115 +0,0 @@
-<!DOCTYPE html>
-<meta charset="utf-8">
-
-<link href="../src/nv.d3.css" rel="stylesheet" type="text/css">
-
-<style>
-
-body {
-  overflow-y:scroll;
-  margin: 0;
-  padding: 0;
-}
-
-svg {
-  overflow: hidden;
-}
-
-div {
-  border: 0;
-  margin: 0;
-}
-
-/*
-#offsetDiv {
-  margin-left: 100px;
-  margin-top: 100px;
-}
-*/
-
-
-#test1 {
-  margin: 0;
-}
-
-#test1 svg {
-  height: 500px;
-}
-
-</style>
-
-<body class='with-3d-shadow with-transitions'>
-
-<div id="offsetDiv">
-  <div id="test1" class="chartWrap">
-    <svg></svg>
-  </div>
-</div>
-
-<script src="../lib/d3.v3.js"></script>
-<script src="../lib/fisheye.js"></script>
-<script src="../nv.d3.js"></script>
-<script src="../src/tooltip.js"></script>
-<script src="../src/utils.js"></script>
-<script src="../src/models/legend.js"></script>
-<script src="../src/models/axis.js"></script>
-<script src="../src/models/distribution.js"></script>
-<script src="../src/models/scatter.js"></script>
-<script src="../src/models/scatterPlusLineChart.js"></script>
-<script>
-
-
-
-//Format A
-var chart;
-nv.addGraph(function() {
-  chart = nv.models.scatterPlusLineChart()
-                .showDistX(true)
-                .showDistY(true)
-                .transitionDuration(300)
-                .color(d3.scale.category10().range());
-
-  chart.xAxis.tickFormat(d3.format('.02f'))
-  chart.yAxis.tickFormat(d3.format('.02f'))
-
-  d3.select('#test1 svg')
-      .datum(nv.log(randomData(4,40)))
-      .call(chart);
-
-  nv.utils.windowResize(chart.update);
-
-  chart.dispatch.on('stateChange', function(e) { nv.log('New State:', JSON.stringify(e)); });
-
-  return chart;
-});
-
-
-function randomData(groups, points) { //# groups,# points per group
-  var data = [],
-      shapes = ['circle', 'cross', 'triangle-up', 'triangle-down', 'diamond', 'square'],
-      random = d3.random.normal();
-
-  for (i = 0; i < groups; i++) {
-    data.push({
-      key: 'Group ' + i,
-      values: [],
-      slope: Math.random() - .01,
-      intercept: Math.random() - .5
-    });
-
-    for (j = 0; j < points; j++) {
-      data[i].values.push({
-        x: random(), 
-        y: random(), 
-        size: Math.random(), 
-        shape: shapes[j % 6]
-      });
-    }
-  }
-
-  return data;
-}
-
-
-
-</script>
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/sparkline.html b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/sparkline.html
deleted file mode 100755
index b7412ec9..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/sparkline.html
+++ /dev/null
@@ -1,62 +0,0 @@
-<!DOCTYPE html>
-<meta charset="utf-8">
-<link href="../src/nv.d3.css" rel="stylesheet" type="text/css">
-<style>
-
-.sparkline path {
-  fill: none;
-  stroke: #444;
-}
-
-text {
-  font: 10px sans-serif;
-}
-
-#chart1 {
-  width: 300px;
-  height: 32px;
-}
-
-</style>
-<body>
-
-  <h2>Sparkline: <svg id="chart1" class="sparkline"></svg></h2>
-
-<script src="../lib/d3.v3.js"></script>
-<script src="../nv.d3.js"></script>
-<script src="../src/models/sparkline.js"></script>
-<script src="../src/utils.js"></script>
-<script>
-
-//Format A
-nv.addGraph({
-  generate: function() {
-    var chart = nv.models.sparkline()
-                  .width(400)
-                  .height(30)
-
-    d3.select("#chart1")
-      .datum(sine())
-      .call(chart);
-
-    return chart;
-  },
-  callback: function(graph) {
-    //log("Sparkline rendered");
-  }
-});
-
-
-
-function sine() {
-  var sin = [];
-
-  for (var i = 0; i < 100; i++) {
-    sin.push({x: i, y: Math.sin(i/10)});
-  }
-
-  return sin;
-}
-
-
-</script>
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/sparklinePlus.html b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/sparklinePlus.html
deleted file mode 100755
index f04e6e9b..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/sparklinePlus.html
+++ /dev/null
@@ -1,86 +0,0 @@
-<!DOCTYPE html>
-<meta charset="utf-8">
-<link href="../src/nv.d3.css" rel="stylesheet" type="text/css">
-<style>
-
-svg.sparkline {
-  width: 500px;
-  height: 70px;
-  font-size: 14px;
-  margin-top: -6px;
-}
-
-
-</style>
-<body class='with-3d-shadow with-transitions'>
-
-<h2>SparklinePlus:</h2>
-<p><svg id="chart1" class="sparkline"></svg></p>
-<br/>
-<p>APPL:<svg id="chart2" class="sparkline"></svg></p>
-
-<p>GOOG:<svg id="chart3" class="sparkline"></svg></p>
-
-<script src="../lib/d3.v3.js"></script>
-<script src="../nv.d3.js"></script>
-<script src="../src/utils.js"></script>
-<script src="../src/models/sparkline.js"></script>
-<script src="../src/models/sparklinePlus.js"></script>
-<script>
-
-function defaultChartConfig(containerId, data) {
-  nv.addGraph(function() {
-
-    var chart = nv.models.sparklinePlus()
-
-    chart
-      .margin({left:70})
-      .x(function(d,i) { return i })
-      .xTickFormat(function(d) {
-        return d3.time.format('%x')(new Date(data[d].x))
-      })
-
-    d3.select(containerId)
-        .datum(data)
-      .transition().duration(250)
-        .call(chart);
-
-
-    return chart;
-  });
-}
-
-defaultChartConfig("#chart1",sine());
-defaultChartConfig("#chart2", volatileChart(130.0, 0.02));
-defaultChartConfig("#chart3", volatileChart(25.0, 0.09,30));
-
-
-function sine() {
-  var sin = [];
-  var now =+new Date();
-
-  for (var i = 0; i < 100; i++) {
-    sin.push({x: now + i * 1000 * 60 * 60 * 24, y: Math.sin(i/10)});
-  }
-
-  return sin;
-}
-
-function volatileChart(startPrice, volatility, numPoints) {
-     var rval =  [];
-     var now =+new Date();
-     numPoints = numPoints || 100;
-     for(var i = 1; i < numPoints; i++) {
-
-        rval.push({x: now + i * 1000 * 60 * 60 * 24, y: startPrice});
-        var rnd = Math.random();
-        var changePct = 2 * volatility * rnd;
-        if ( changePct > volatility) {
-           changePct -= (2*volatility);
-        }
-        startPrice = startPrice + startPrice * changePct;
-     }
-     return rval;
-}
-
-</script>
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/stackedArea.html b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/stackedArea.html
deleted file mode 100755
index 43a959b0..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/stackedArea.html
+++ /dev/null
@@ -1,156 +0,0 @@
-<!DOCTYPE html>
-<meta charset="utf-8">
-
-<link href="../src/nv.d3.css" rel="stylesheet" type="text/css">
-
-<style>
-
-body {
-  overflow-y:scroll;
-}
-
-text {
-  font: 12px sans-serif;
-}
-
-</style>
-<body>
-
-  <div id="chart">
-    <svg></svg>
-  </div>
-
-<script src="../lib/d3.v3.js"></script>
-<script src="../nv.d3.js"></script>
-<script src="../src/utils.js"></script>
-<script src="../src/tooltip.js"></script>
-<script src="../src/models/stackedArea.js"></script>
-<script>
-
-
-//Format A
-nv.addGraph({
-  generate: function() {
-    var n = 10, // number of layers
-        m = 200; // number of samples per layer
-        //color = d3.interpolateRgb("#aad", "#556");
-
-    var data = stream_layers(n,m).map(function(data, i) {
-      return { 
-        key: 'Stream' + i,
-        values: data
-      };
-    });
-
-
-    var width = nv.utils.windowSize().width - 20,
-        height = nv.utils.windowSize().height - 20;
-
-    var chart = nv.models.stackedArea()
-                .width(width)
-                .height(height)
-                //.offset('wiggle')
-                //.order('default')
-
-
-    var svg = d3.select('#chart svg')
-      .attr('width', width)
-      .attr('height', height)
-      .datum(data)
-
-    svg.transition().duration(500).call(chart);
-
-    return chart;
-  },
-  callback: function(graph) {
-
-
-
-    graph.dispatch.on('tooltipShow', function(e) {
-        var offsetElement = document.getElementById("chart"),
-                left = e.pos[0] + offsetElement.offsetLeft,
-                top = e.pos[1] + offsetElement.offsetTop,
-                formatterY = d3.format(",.2%"),
-          formatterX = function(d) {
-            return   d3.time.format('%x')(new Date(d))
-          };
-
-      var content = '<h3>' + e.series.key + '</h3>' +
-                    '<p>' +
-                    formatterY(graph.y()(e.point)) + ' at ' + formatterX(graph.x()(e.point)) +
-                    '</p>';
-
-      nv.tooltip.show([left, top], content);
-    });
-
-    graph.dispatch.on('tooltipHide', function(e) {
-      nv.tooltip.cleanup();
-    });
-
-
-
-	window.onResize = function() {
-      var width = nv.utils.windowSize().width - 20,
-          height = nv.utils.windowSize().height - 20,
-          margin = graph.margin();
-
-
-      if (width < margin.left + margin.right + 20)
-        width = margin.left + margin.right + 20;
-
-      if (height < margin.top + margin.bottom + 20)
-        height = margin.top + margin.bottom + 20;
-
-
-      graph
-         .width(width)
-         .height(height);
-
-      d3.select('#chart svg')
-        .attr('width', width)
-        .attr('height', height)
-        .call(graph);
-
-    }
-  }
-});
-
-
-
-
-/* Inspired by Lee Byron's test data generator. */
-function stream_layers(n, m, o) {
-  if (arguments.length < 3) o = 0;
-  function bump(a) {
-    var x = 1 / (.1 + Math.random()),
-        y = 2 * Math.random() - .5,
-        z = 10 / (.1 + Math.random());
-    for (var i = 0; i < m; i++) {
-      var w = (i / m - y) * z;
-      a[i] += x * Math.exp(-w * w);
-    }
-  }
-  return d3.range(n).map(function() {
-      var a = [], i;
-      for (i = 0; i < m; i++) a[i] = o + o * Math.random();
-      for (i = 0; i < 5; i++) bump(a);
-      return a.map(stream_index);
-    });
-}
-
-/* Another layer generator using gamma distributions. */
-function stream_waves(n, m) {
-  return d3.range(n).map(function(i) {
-    return d3.range(m).map(function(j) {
-        var x = 20 * j / m - i / 3;
-        return 2 * x * Math.exp(-.5 * x);
-      }).map(stream_index);
-    });
-}
-
-function stream_index(d, i) {
-  return {x: i, y: Math.max(0, d)};
-}
-
-
-</script>
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/stackedAreaChart.html b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/stackedAreaChart.html
deleted file mode 100755
index e1dd1926..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/stackedAreaChart.html
+++ /dev/null
@@ -1,250 +0,0 @@
-<!DOCTYPE html>
-<meta charset="utf-8">
-
-<link href="../src/nv.d3.css" rel="stylesheet" type="text/css">
-
-<style>
-
-body {
-  overflow-y:scroll;
-}
-
-text {
-  font: 12px sans-serif;
-}
-
-#chart1, #chart2 {
-  height: 500px;
-}
-
-</style>
-<body class='with-3d-shadow with-transitions'>
-
-  <div>
-    <svg id="chart1"></svg>
-  </div>
-
-  <div>
-    <!--<svg id="chart2"></svg>-->
-  </div>
-
-<script src="../lib/d3.v3.js"></script>
-<script src="../nv.d3.js"></script>
-<script src="../src/utils.js"></script>
-<script src="../src/models/axis.js"></script>
-<script src="../src/tooltip.js"></script>
-<script src="../src/interactiveLayer.js"></script>
-<script src="../src/models/legend.js"></script>
-<script src="../src/models/axis.js"></script>
-<script src="../src/models/scatter.js"></script>
-<script src="../src/models/stackedArea.js"></script>
-<script src="../src/models/stackedAreaChart.js"></script>
-<script>
-
-
-var histcatexplong = [ 
-  { 
-    "key" : "Consumer Discretionary" , 
-    "values" : [ [ 1138683600000 , 27.38478809681] , [ 1141102800000 , 27.371377218208] , [ 1143781200000 , 26.309915460827] , [ 1146369600000 , 26.425199957521] , [ 1149048000000 , 26.823411519395] , [ 1151640000000 , 23.850443591584] , [ 1154318400000 , 23.158355444054] , [ 1156996800000 , 22.998689393694] , [ 1159588800000 , 27.977128511299] , [ 1162270800000 , 29.073672469721] , [ 1164862800000 , 28.587640408904] , [ 1167541200000 , 22.788453687638] , [ 1170219600000 , 22.429199073597] , [ 1172638800000 , 22.324103271051] , [ 1175313600000 , 17.558388444186] , [ 1177905600000 , 16.769518096208] , [ 1180584000000 , 16.214738201302] , [ 1183176000000 , 18.729632971228] , [ 1185854400000 , 18.814523318848] , [ 1188532800000 , 19.789986451358] , [ 1191124800000 , 17.070049054933] , [ 1193803200000 , 16.121349575715] , [ 1196398800000 , 15.141659430091] , [ 1199077200000 , 17.175388025298] , [ 1201755600000 , 17.286592443521] , [ 1204261200000 , 16.323141626569] , [ 1206936000000 , 19.231263773952] , [ 1209528000000 , 18.446256391094] , [ 1212206400000 , 17.822632399764] , [ 1214798400000 , 15.539366475979] , [ 1217476800000 , 15.255131790216] , [ 1220155200000 , 15.660963922593] , [ 1222747200000 , 13.254482273697] , [ 1225425600000 , 11.920796202299] , [ 1228021200000 , 12.122809090925] , [ 1230699600000 , 15.691026271393] , [ 1233378000000 , 14.720881635107] , [ 1235797200000 , 15.387939360044] , [ 1238472000000 , 13.765436672229] , [ 1241064000000 , 14.6314458648] , [ 1243742400000 , 14.292446536221] , [ 1246334400000 , 16.170071367016] , [ 1249012800000 , 15.948135554337] , [ 1251691200000 , 16.612872685134] , [ 1254283200000 , 18.778338719091] , [ 1256961600000 , 16.75602606542] , [ 1259557200000 , 19.385804443147] , [ 1262235600000 , 22.950590240168] , [ 1264914000000 , 23.61159018141] , [ 1267333200000 , 25.708586989581] , [ 1270008000000 , 26.883915999885] , [ 1272600000000 , 25.893486687065] , [ 1275278400000 , 24.678914263176] , [ 1277870400000 , 25.937275793023] , [ 1280548800000 , 29.46138169384] , [ 1283227200000 , 27.357322961862] , [ 1285819200000 , 29.057235285673] , [ 1288497600000 , 28.549434189386] , [ 1291093200000 , 28.506352379723] , [ 1293771600000 , 29.449241421597] , [ 1296450000000 , 25.796838168807] , [ 1298869200000 , 28.740145449189] , [ 1301544000000 , 22.091744141872] , [ 1304136000000 , 25.079662545409] , [ 1306814400000 , 23.674906973064] , [ 1309406400000 , 23.41800274293] , [ 1312084800000 , 23.243644138871] , [ 1314763200000 , 31.591854066817] , [ 1317355200000 , 31.497112374114] , [ 1320033600000 , 26.672380820431] , [ 1322629200000 , 27.297080015495] , [ 1325307600000 , 20.174315530051] , [ 1327986000000 , 19.631084213899] , [ 1330491600000 , 20.366462219462] , [ 1333166400000 , 17.429019937289] , [ 1335758400000 , 16.75543633539] , [ 1338436800000 , 16.182906906042]]
-  } , 
-  { 
-    "key" : "Consumer Staples" , 
-    "values" : [ [ 1138683600000 , 7.2800122043237] , [ 1141102800000 , 7.1187787503354] , [ 1143781200000 , 8.351887016482] , [ 1146369600000 , 8.4156698763993] , [ 1149048000000 , 8.1673298604231] , [ 1151640000000 , 5.5132447126042] , [ 1154318400000 , 6.1152537710599] , [ 1156996800000 , 6.076765091942] , [ 1159588800000 , 4.6304473798646] , [ 1162270800000 , 4.6301068469402] , [ 1164862800000 , 4.3466656309389] , [ 1167541200000 , 6.830104897003] , [ 1170219600000 , 7.241633040029] , [ 1172638800000 , 7.1432372054153] , [ 1175313600000 , 10.608942063374] , [ 1177905600000 , 10.914964549494] , [ 1180584000000 , 10.933223880565] , [ 1183176000000 , 8.3457524851265] , [ 1185854400000 , 8.1078413081882] , [ 1188532800000 , 8.2697185922474] , [ 1191124800000 , 8.4742436475968] , [ 1193803200000 , 8.4994601179319] , [ 1196398800000 , 8.7387319683243] , [ 1199077200000 , 6.8829183612895] , [ 1201755600000 , 6.984133637885] , [ 1204261200000 , 7.0860136043287] , [ 1206936000000 , 4.3961787956053] , [ 1209528000000 , 3.8699674365231] , [ 1212206400000 , 3.6928925238305] , [ 1214798400000 , 6.7571718894253] , [ 1217476800000 , 6.4367313362344] , [ 1220155200000 , 6.4048441521454] , [ 1222747200000 , 5.4643833239669] , [ 1225425600000 , 5.3150786833374] , [ 1228021200000 , 5.3011272612576] , [ 1230699600000 , 4.1203601430809] , [ 1233378000000 , 4.0881783200525] , [ 1235797200000 , 4.1928665957189] , [ 1238472000000 , 7.0249415663205] , [ 1241064000000 , 7.006530880769] , [ 1243742400000 , 6.994835633224] , [ 1246334400000 , 6.1220222336254] , [ 1249012800000 , 6.1177436137653] , [ 1251691200000 , 6.1413396231981] , [ 1254283200000 , 4.8046006145874] , [ 1256961600000 , 4.6647600660544] , [ 1259557200000 , 4.544865006255] , [ 1262235600000 , 6.0488249316539] , [ 1264914000000 , 6.3188669540206] , [ 1267333200000 , 6.5873958262306] , [ 1270008000000 , 6.2281189839578] , [ 1272600000000 , 5.8948915746059] , [ 1275278400000 , 5.5967320482214] , [ 1277870400000 , 0.99784432084837] , [ 1280548800000 , 1.0950794175359] , [ 1283227200000 , 0.94479734407491] , [ 1285819200000 , 1.222093988688] , [ 1288497600000 , 1.335093106856] , [ 1291093200000 , 1.3302565104985] , [ 1293771600000 , 1.340824670897] , [ 1296450000000 , 0] , [ 1298869200000 , 0] , [ 1301544000000 , 0] , [ 1304136000000 , 0] , [ 1306814400000 , 0] , [ 1309406400000 , 0] , [ 1312084800000 , 0] , [ 1314763200000 , 0] , [ 1317355200000 , 4.4583692315] , [ 1320033600000 , 3.6493043348059] , [ 1322629200000 , 3.8610064091761] , [ 1325307600000 , 5.5144800685202] , [ 1327986000000 , 5.1750695220792] , [ 1330491600000 , 5.6710066952691] , [ 1333166400000 , 8.5658461590953] , [ 1335758400000 , 8.6135447714243] , [ 1338436800000 , 8.0231460925212]]
-  } , 
-  { 
-    "key" : "Energy" , 
-    "values" : [ [ 1138683600000 , 1.544303464167] , [ 1141102800000 , 1.4387289432421] , [ 1143781200000 , 0] , [ 1146369600000 , 0] , [ 1149048000000 , 0] , [ 1151640000000 , 1.328626801128] , [ 1154318400000 , 1.2874050802627] , [ 1156996800000 , 1.0872743105593] , [ 1159588800000 , 0.96042562635813] , [ 1162270800000 , 0.93139372870616] , [ 1164862800000 , 0.94432167305385] , [ 1167541200000 , 1.277750166208] , [ 1170219600000 , 1.2204893886811] , [ 1172638800000 , 1.207489123122] , [ 1175313600000 , 1.2490651414113] , [ 1177905600000 , 1.2593129913052] , [ 1180584000000 , 1.373329808388] , [ 1183176000000 , 0] , [ 1185854400000 , 0] , [ 1188532800000 , 0] , [ 1191124800000 , 0] , [ 1193803200000 , 0] , [ 1196398800000 , 0] , [ 1199077200000 , 0] , [ 1201755600000 , 0] , [ 1204261200000 , 0] , [ 1206936000000 , 0] , [ 1209528000000 , 0] , [ 1212206400000 , 0] , [ 1214798400000 , 0] , [ 1217476800000 , 0] , [ 1220155200000 , 0] , [ 1222747200000 , 1.4516108933695] , [ 1225425600000 , 1.1856025268225] , [ 1228021200000 , 1.3430470355439] , [ 1230699600000 , 2.2752595354509] , [ 1233378000000 , 2.4031560010523] , [ 1235797200000 , 2.0822430731926] , [ 1238472000000 , 1.5640902826938] , [ 1241064000000 , 1.5812873972356] , [ 1243742400000 , 1.9462448548894] , [ 1246334400000 , 2.9464870223957] , [ 1249012800000 , 3.0744699383222] , [ 1251691200000 , 2.9422304628446] , [ 1254283200000 , 2.7503075599999] , [ 1256961600000 , 2.6506701800427] , [ 1259557200000 , 2.8005425319977] , [ 1262235600000 , 2.6816184971185] , [ 1264914000000 , 2.681206271327] , [ 1267333200000 , 2.8195488011259] , [ 1270008000000 , 0] , [ 1272600000000 , 0] , [ 1275278400000 , 0] , [ 1277870400000 , 1.0687057346382] , [ 1280548800000 , 1.2539400544134] , [ 1283227200000 , 1.1862969445955] , [ 1285819200000 , 0] , [ 1288497600000 , 0] , [ 1291093200000 , 0] , [ 1293771600000 , 0] , [ 1296450000000 , 1.941972859484] , [ 1298869200000 , 2.1142247697552] , [ 1301544000000 , 2.3788590206824] , [ 1304136000000 , 2.5337302877545] , [ 1306814400000 , 2.3163370395199] , [ 1309406400000 , 2.0645451843195] , [ 1312084800000 , 2.1004446672411] , [ 1314763200000 , 3.6301875804303] , [ 1317355200000 , 2.454204664652] , [ 1320033600000 , 2.196082370894] , [ 1322629200000 , 2.3358418255202] , [ 1325307600000 , 0] , [ 1327986000000 , 0] , [ 1330491600000 , 0] , [ 1333166400000 , 0.39001201038526] , [ 1335758400000 , 0.30945472725559] , [ 1338436800000 , 0.31062439305591]]
-  } , 
-  { 
-    "key" : "Financials" , 
-    "values" : [ [ 1138683600000 , 13.356778764352] , [ 1141102800000 , 13.611196863271] , [ 1143781200000 , 6.895903006119] , [ 1146369600000 , 6.9939633271352] , [ 1149048000000 , 6.7241510257675] , [ 1151640000000 , 5.5611293669516] , [ 1154318400000 , 5.6086488714041] , [ 1156996800000 , 5.4962849907033] , [ 1159588800000 , 6.9193153169279] , [ 1162270800000 , 7.0016334389777] , [ 1164862800000 , 6.7865422443273] , [ 1167541200000 , 9.0006454225383] , [ 1170219600000 , 9.2233916171431] , [ 1172638800000 , 8.8929316009479] , [ 1175313600000 , 10.345937520404] , [ 1177905600000 , 10.075914677026] , [ 1180584000000 , 10.089006188111] , [ 1183176000000 , 10.598330295008] , [ 1185854400000 , 9.968954653301] , [ 1188532800000 , 9.7740580198146] , [ 1191124800000 , 10.558483060626] , [ 1193803200000 , 9.9314651823603] , [ 1196398800000 , 9.3997715873769] , [ 1199077200000 , 8.4086493387262] , [ 1201755600000 , 8.9698309085926] , [ 1204261200000 , 8.2778357995396] , [ 1206936000000 , 8.8585045600123] , [ 1209528000000 , 8.7013756413322] , [ 1212206400000 , 7.7933605469443] , [ 1214798400000 , 7.0236183483064] , [ 1217476800000 , 6.9873088186829] , [ 1220155200000 , 6.8031713070097] , [ 1222747200000 , 6.6869531315723] , [ 1225425600000 , 6.138256993963] , [ 1228021200000 , 5.6434994016354] , [ 1230699600000 , 5.495220262512] , [ 1233378000000 , 4.6885326869846] , [ 1235797200000 , 4.4524349883438] , [ 1238472000000 , 5.6766520778185] , [ 1241064000000 , 5.7675774480752] , [ 1243742400000 , 5.7882863168337] , [ 1246334400000 , 7.2666010034924] , [ 1249012800000 , 7.519182132226] , [ 1251691200000 , 7.849651451445] , [ 1254283200000 , 10.383992037985] , [ 1256961600000 , 9.0653691861818] , [ 1259557200000 , 9.6705248324159] , [ 1262235600000 , 10.856380561349] , [ 1264914000000 , 11.27452370892] , [ 1267333200000 , 11.754156529088] , [ 1270008000000 , 8.2870811422456] , [ 1272600000000 , 8.0210264360699] , [ 1275278400000 , 7.5375074474865] , [ 1277870400000 , 8.3419527338039] , [ 1280548800000 , 9.4197471818443] , [ 1283227200000 , 8.7321733185797] , [ 1285819200000 , 9.6627062648126] , [ 1288497600000 , 10.187962234549] , [ 1291093200000 , 9.8144201733476] , [ 1293771600000 , 10.275723361713] , [ 1296450000000 , 16.796066079353] , [ 1298869200000 , 17.543254984075] , [ 1301544000000 , 16.673660675084] , [ 1304136000000 , 17.963944353609] , [ 1306814400000 , 16.637740867211] , [ 1309406400000 , 15.84857094609] , [ 1312084800000 , 14.767303362182] , [ 1314763200000 , 24.778452182432] , [ 1317355200000 , 18.370353229999] , [ 1320033600000 , 15.2531374291] , [ 1322629200000 , 14.989600840649] , [ 1325307600000 , 16.052539160125] , [ 1327986000000 , 16.424390322793] , [ 1330491600000 , 17.884020741105] , [ 1333166400000 , 7.1424929577921] , [ 1335758400000 , 7.8076213051482] , [ 1338436800000 , 7.2462684949232]]
-  } , 
-  { 
-    "key" : "Health Care" , 
-    "values" : [ [ 1138683600000 , 14.212410956029] , [ 1141102800000 , 13.973193618249] , [ 1143781200000 , 15.218233920665] , [ 1146369600000 , 14.38210972745] , [ 1149048000000 , 13.894310878491] , [ 1151640000000 , 15.593086090032] , [ 1154318400000 , 16.244839695188] , [ 1156996800000 , 16.017088850646] , [ 1159588800000 , 14.183951830055] , [ 1162270800000 , 14.148523245697] , [ 1164862800000 , 13.424326059972] , [ 1167541200000 , 12.974450435753] , [ 1170219600000 , 13.23247041802] , [ 1172638800000 , 13.318762655574] , [ 1175313600000 , 15.961407746104] , [ 1177905600000 , 16.287714639805] , [ 1180584000000 , 16.246590583889] , [ 1183176000000 , 17.564505594809] , [ 1185854400000 , 17.872725373165] , [ 1188532800000 , 18.018998508757] , [ 1191124800000 , 15.584518016603] , [ 1193803200000 , 15.480850647181] , [ 1196398800000 , 15.699120036984] , [ 1199077200000 , 19.184281817226] , [ 1201755600000 , 19.691226605207] , [ 1204261200000 , 18.982314051295] , [ 1206936000000 , 18.707820309008] , [ 1209528000000 , 17.459630929761] , [ 1212206400000 , 16.500616076782] , [ 1214798400000 , 18.086324003979] , [ 1217476800000 , 18.929464156258] , [ 1220155200000 , 18.233728682084] , [ 1222747200000 , 16.315776297325] , [ 1225425600000 , 14.63289219025] , [ 1228021200000 , 14.667835024478] , [ 1230699600000 , 13.946993947308] , [ 1233378000000 , 14.394304684397] , [ 1235797200000 , 13.724462792967] , [ 1238472000000 , 10.930879035806] , [ 1241064000000 , 9.8339915513708] , [ 1243742400000 , 10.053858541872] , [ 1246334400000 , 11.786998438287] , [ 1249012800000 , 11.780994901769] , [ 1251691200000 , 11.305889670276] , [ 1254283200000 , 10.918452290083] , [ 1256961600000 , 9.6811395055706] , [ 1259557200000 , 10.971529744038] , [ 1262235600000 , 13.330210480209] , [ 1264914000000 , 14.592637568961] , [ 1267333200000 , 14.605329141157] , [ 1270008000000 , 13.936853794037] , [ 1272600000000 , 12.189480759072] , [ 1275278400000 , 11.676151385046] , [ 1277870400000 , 13.058852800017] , [ 1280548800000 , 13.62891543203] , [ 1283227200000 , 13.811107569918] , [ 1285819200000 , 13.786494560787] , [ 1288497600000 , 14.04516285753] , [ 1291093200000 , 13.697412447288] , [ 1293771600000 , 13.677681376221] , [ 1296450000000 , 19.961511864531] , [ 1298869200000 , 21.049198298158] , [ 1301544000000 , 22.687631094008] , [ 1304136000000 , 25.469010617433] , [ 1306814400000 , 24.883799437121] , [ 1309406400000 , 24.203843814248] , [ 1312084800000 , 22.138760964038] , [ 1314763200000 , 16.034636966228] , [ 1317355200000 , 15.394958944556] , [ 1320033600000 , 12.625642461969] , [ 1322629200000 , 12.973735699739] , [ 1325307600000 , 15.786018336149] , [ 1327986000000 , 15.227368020134] , [ 1330491600000 , 15.899752650734] , [ 1333166400000 , 18.994731295388] , [ 1335758400000 , 18.450055817702] , [ 1338436800000 , 17.863719889669]]
-  } , 
-  { 
-    "key" : "Industrials" , 
-    "values" : [ [ 1138683600000 , 7.1590087090398] , [ 1141102800000 , 7.1297210970108] , [ 1143781200000 , 5.5774588290586] , [ 1146369600000 , 5.4977254491156] , [ 1149048000000 , 5.5138153113634] , [ 1151640000000 , 4.3198084032122] , [ 1154318400000 , 3.9179295839125] , [ 1156996800000 , 3.8110093051479] , [ 1159588800000 , 5.5629020916939] , [ 1162270800000 , 5.7241673711336] , [ 1164862800000 , 5.4715049695004] , [ 1167541200000 , 4.9193763571618] , [ 1170219600000 , 5.136053947247] , [ 1172638800000 , 5.1327258759766] , [ 1175313600000 , 5.1888943925082] , [ 1177905600000 , 5.5191481293345] , [ 1180584000000 , 5.6093625614921] , [ 1183176000000 , 4.2706312987397] , [ 1185854400000 , 4.4453235132117] , [ 1188532800000 , 4.6228003109761] , [ 1191124800000 , 5.0645764756954] , [ 1193803200000 , 5.0723447230959] , [ 1196398800000 , 5.1457765818846] , [ 1199077200000 , 5.4067851597282] , [ 1201755600000 , 5.472241916816] , [ 1204261200000 , 5.3742740389688] , [ 1206936000000 , 6.251751933664] , [ 1209528000000 , 6.1406852153472] , [ 1212206400000 , 5.8164385627465] , [ 1214798400000 , 5.4255846656171] , [ 1217476800000 , 5.3738499417204] , [ 1220155200000 , 5.1815627753979] , [ 1222747200000 , 5.0305983235349] , [ 1225425600000 , 4.6823058607165] , [ 1228021200000 , 4.5941481589093] , [ 1230699600000 , 5.4669598474575] , [ 1233378000000 , 5.1249037357] , [ 1235797200000 , 4.3504421250742] , [ 1238472000000 , 4.6260881026002] , [ 1241064000000 , 5.0140402458946] , [ 1243742400000 , 4.7458462454774] , [ 1246334400000 , 6.0437019654564] , [ 1249012800000 , 6.4595216249754] , [ 1251691200000 , 6.6420468254155] , [ 1254283200000 , 5.8927271960913] , [ 1256961600000 , 5.4712108838003] , [ 1259557200000 , 6.1220254207747] , [ 1262235600000 , 5.5385935169255] , [ 1264914000000 , 5.7383377612639] , [ 1267333200000 , 6.1715976730415] , [ 1270008000000 , 4.0102262681174] , [ 1272600000000 , 3.769389679692] , [ 1275278400000 , 3.5301571031152] , [ 1277870400000 , 2.7660252652526] , [ 1280548800000 , 3.1409983385775] , [ 1283227200000 , 3.0528024863055] , [ 1285819200000 , 4.3126123157971] , [ 1288497600000 , 4.594654041683] , [ 1291093200000 , 4.5424126126793] , [ 1293771600000 , 4.7790043987302] , [ 1296450000000 , 7.4969154058289] , [ 1298869200000 , 7.9424751557821] , [ 1301544000000 , 7.1560736250547] , [ 1304136000000 , 7.9478117337855] , [ 1306814400000 , 7.4109214848895] , [ 1309406400000 , 7.5966457641101] , [ 1312084800000 , 7.165754444071] , [ 1314763200000 , 5.4816702524302] , [ 1317355200000 , 4.9893656089584] , [ 1320033600000 , 4.498385105327] , [ 1322629200000 , 4.6776090358151] , [ 1325307600000 , 8.1350814368063] , [ 1327986000000 , 8.0732769990652] , [ 1330491600000 , 8.5602340387277] , [ 1333166400000 , 5.1293714074325] , [ 1335758400000 , 5.2586794619016] , [ 1338436800000 , 5.1100853569977]]
-  } , 
-  { 
-    "key" : "Information Technology" , 
-    "values" : [ [ 1138683600000 , 13.242301508051] , [ 1141102800000 , 12.863536342042] , [ 1143781200000 , 21.034044171629] , [ 1146369600000 , 21.419084618803] , [ 1149048000000 , 21.142678863691] , [ 1151640000000 , 26.568489677529] , [ 1154318400000 , 24.839144939905] , [ 1156996800000 , 25.456187462167] , [ 1159588800000 , 26.350164502826] , [ 1162270800000 , 26.47833320519] , [ 1164862800000 , 26.425979547847] , [ 1167541200000 , 28.191461582256] , [ 1170219600000 , 28.930307448808] , [ 1172638800000 , 29.521413891117] , [ 1175313600000 , 28.188285966466] , [ 1177905600000 , 27.704619625832] , [ 1180584000000 , 27.490862424829] , [ 1183176000000 , 28.770679721286] , [ 1185854400000 , 29.060480671449] , [ 1188532800000 , 28.240998844973] , [ 1191124800000 , 33.004893194127] , [ 1193803200000 , 34.075180359928] , [ 1196398800000 , 32.548560664833] , [ 1199077200000 , 30.629727432728] , [ 1201755600000 , 28.642858788159] , [ 1204261200000 , 27.973575227842] , [ 1206936000000 , 27.393351882726] , [ 1209528000000 , 28.476095288523] , [ 1212206400000 , 29.29667866426] , [ 1214798400000 , 29.222333802896] , [ 1217476800000 , 28.092966093843] , [ 1220155200000 , 28.107159262922] , [ 1222747200000 , 25.482974832098] , [ 1225425600000 , 21.208115993834] , [ 1228021200000 , 20.295043095268] , [ 1230699600000 , 15.925754618401] , [ 1233378000000 , 17.162864628346] , [ 1235797200000 , 17.084345773174] , [ 1238472000000 , 22.246007102281] , [ 1241064000000 , 24.530543998509] , [ 1243742400000 , 25.084184918242] , [ 1246334400000 , 16.606166527358] , [ 1249012800000 , 17.239620011628] , [ 1251691200000 , 17.336739127379] , [ 1254283200000 , 25.478492475753] , [ 1256961600000 , 23.017152085245] , [ 1259557200000 , 25.617745423683] , [ 1262235600000 , 24.061133998642] , [ 1264914000000 , 23.223933318644] , [ 1267333200000 , 24.425887263937] , [ 1270008000000 , 35.501471156693] , [ 1272600000000 , 33.775013878676] , [ 1275278400000 , 30.417993630285] , [ 1277870400000 , 30.023598978467] , [ 1280548800000 , 33.327519522436] , [ 1283227200000 , 31.963388450371] , [ 1285819200000 , 30.498967232092] , [ 1288497600000 , 32.403696817912] , [ 1291093200000 , 31.47736071922] , [ 1293771600000 , 31.53259666241] , [ 1296450000000 , 41.760282761548] , [ 1298869200000 , 45.605771243237] , [ 1301544000000 , 39.986557966215] , [ 1304136000000 , 43.846330510051] , [ 1306814400000 , 39.857316881857] , [ 1309406400000 , 37.675127768208] , [ 1312084800000 , 35.775077970313] , [ 1314763200000 , 48.631009702577] , [ 1317355200000 , 42.830831754505] , [ 1320033600000 , 35.611502589362] , [ 1322629200000 , 35.320136981738] , [ 1325307600000 , 31.564136901516] , [ 1327986000000 , 32.074407502433] , [ 1330491600000 , 35.053013769976] , [ 1333166400000 , 26.434568573937] , [ 1335758400000 , 25.305617871002] , [ 1338436800000 , 24.520919418236]]
-  } , 
-  { 
-    "key" : "Materials" , 
-    "values" : [ [ 1138683600000 , 5.5806167415681] , [ 1141102800000 , 5.4539047069985] , [ 1143781200000 , 7.6728842432362] , [ 1146369600000 , 7.719946716654] , [ 1149048000000 , 8.0144619912942] , [ 1151640000000 , 7.942223133434] , [ 1154318400000 , 8.3998279827444] , [ 1156996800000 , 8.532324572605] , [ 1159588800000 , 4.7324285199763] , [ 1162270800000 , 4.7402397487697] , [ 1164862800000 , 4.9042069355168] , [ 1167541200000 , 5.9583963430882] , [ 1170219600000 , 6.3693899239171] , [ 1172638800000 , 6.261153903813] , [ 1175313600000 , 5.3443942184584] , [ 1177905600000 , 5.4932111235361] , [ 1180584000000 , 5.5747393101109] , [ 1183176000000 , 5.3833633060013] , [ 1185854400000 , 5.5125898831832] , [ 1188532800000 , 5.8116112661327] , [ 1191124800000 , 4.3962296939996] , [ 1193803200000 , 4.6967663605521] , [ 1196398800000 , 4.7963004350914] , [ 1199077200000 , 4.1817985183351] , [ 1201755600000 , 4.3797643870182] , [ 1204261200000 , 4.6966642197965] , [ 1206936000000 , 4.3609995132565] , [ 1209528000000 , 4.4736290996496] , [ 1212206400000 , 4.3749762738128] , [ 1214798400000 , 3.3274661194507] , [ 1217476800000 , 3.0316184691337] , [ 1220155200000 , 2.5718140204728] , [ 1222747200000 , 2.7034994044603] , [ 1225425600000 , 2.2033786591364] , [ 1228021200000 , 1.9850621240805] , [ 1230699600000 , 0] , [ 1233378000000 , 0] , [ 1235797200000 , 0] , [ 1238472000000 , 0] , [ 1241064000000 , 0] , [ 1243742400000 , 0] , [ 1246334400000 , 0] , [ 1249012800000 , 0] , [ 1251691200000 , 0] , [ 1254283200000 , 0.44495950017788] , [ 1256961600000 , 0.33945469262483] , [ 1259557200000 , 0.38348269455195] , [ 1262235600000 , 0] , [ 1264914000000 , 0] , [ 1267333200000 , 0] , [ 1270008000000 , 0] , [ 1272600000000 , 0] , [ 1275278400000 , 0] , [ 1277870400000 , 0] , [ 1280548800000 , 0] , [ 1283227200000 , 0] , [ 1285819200000 , 0] , [ 1288497600000 , 0] , [ 1291093200000 , 0] , [ 1293771600000 , 0] , [ 1296450000000 , 0.52216435716176] , [ 1298869200000 , 0.59275786698454] , [ 1301544000000 , 0] , [ 1304136000000 , 0] , [ 1306814400000 , 0] , [ 1309406400000 , 0] , [ 1312084800000 , 0] , [ 1314763200000 , 0] , [ 1317355200000 , 0] , [ 1320033600000 , 0] , [ 1322629200000 , 0] , [ 1325307600000 , 0] , [ 1327986000000 , 0] , [ 1330491600000 , 0] , [ 1333166400000 , 0] , [ 1335758400000 , 0] , [ 1338436800000 , 0]]
-  } , 
-  { 
-    "key" : "Telecommunication Services" , 
-    "values" : [ [ 1138683600000 , 3.7056975170243] , [ 1141102800000 , 3.7561118692318] , [ 1143781200000 , 2.861913700854] , [ 1146369600000 , 2.9933744103381] , [ 1149048000000 , 2.7127537218463] , [ 1151640000000 , 3.1195497076283] , [ 1154318400000 , 3.4066964004508] , [ 1156996800000 , 3.3754571113569] , [ 1159588800000 , 2.2965579982924] , [ 1162270800000 , 2.4486818633018] , [ 1164862800000 , 2.4002308848517] , [ 1167541200000 , 1.9649579750349] , [ 1170219600000 , 1.9385263638056] , [ 1172638800000 , 1.9128975336387] , [ 1175313600000 , 2.3412869836298] , [ 1177905600000 , 2.4337870351445] , [ 1180584000000 , 2.62179703171] , [ 1183176000000 , 3.2642864957929] , [ 1185854400000 , 3.3200396223709] , [ 1188532800000 , 3.3934212707572] , [ 1191124800000 , 4.2822327088179] , [ 1193803200000 , 4.1474964228541] , [ 1196398800000 , 4.1477082879801] , [ 1199077200000 , 5.2947122916128] , [ 1201755600000 , 5.2919843508028] , [ 1204261200000 , 5.1989783050309] , [ 1206936000000 , 3.5603057673513] , [ 1209528000000 , 3.3009087690692] , [ 1212206400000 , 3.1784852603792] , [ 1214798400000 , 4.5889503538868] , [ 1217476800000 , 4.401779617494] , [ 1220155200000 , 4.2208301828278] , [ 1222747200000 , 3.89396671475] , [ 1225425600000 , 3.0423832241354] , [ 1228021200000 , 3.135520611578] , [ 1230699600000 , 1.9631418164089] , [ 1233378000000 , 1.8963543874958] , [ 1235797200000 , 1.8266636017025] , [ 1238472000000 , 0.93136635895188] , [ 1241064000000 , 0.92737801918888] , [ 1243742400000 , 0.97591889805002] , [ 1246334400000 , 2.6841193805515] , [ 1249012800000 , 2.5664341140531] , [ 1251691200000 , 2.3887523699873] , [ 1254283200000 , 1.1737801663681] , [ 1256961600000 , 1.0953582317281] , [ 1259557200000 , 1.2495674976653] , [ 1262235600000 , 0.36607452464754] , [ 1264914000000 , 0.3548719047291] , [ 1267333200000 , 0.36769242398939] , [ 1270008000000 , 0] , [ 1272600000000 , 0] , [ 1275278400000 , 0] , [ 1277870400000 , 0] , [ 1280548800000 , 0] , [ 1283227200000 , 0] , [ 1285819200000 , 0.85450741275337] , [ 1288497600000 , 0.91360317921637] , [ 1291093200000 , 0.89647678692269] , [ 1293771600000 , 0.87800687192639] , [ 1296450000000 , 0] , [ 1298869200000 , 0] , [ 1301544000000 , 0.43668720882994] , [ 1304136000000 , 0.4756523602692] , [ 1306814400000 , 0.46947368328469] , [ 1309406400000 , 0.45138896152316] , [ 1312084800000 , 0.43828726648117] , [ 1314763200000 , 2.0820861395316] , [ 1317355200000 , 0.9364411075395] , [ 1320033600000 , 0.60583907839773] , [ 1322629200000 , 0.61096950747437] , [ 1325307600000 , 0] , [ 1327986000000 , 0] , [ 1330491600000 , 0] , [ 1333166400000 , 0] , [ 1335758400000 , 0] , [ 1338436800000 , 0]]
-  } , 
-  { 
-    "key" : "Utilities" , 
-    "values" : [ [ 1138683600000 , 0] , [ 1141102800000 , 0] , [ 1143781200000 , 0] , [ 1146369600000 , 0] , [ 1149048000000 , 0] , [ 1151640000000 , 0] , [ 1154318400000 , 0] , [ 1156996800000 , 0] , [ 1159588800000 , 0] , [ 1162270800000 , 0] , [ 1164862800000 , 0] , [ 1167541200000 , 0] , [ 1170219600000 , 0] , [ 1172638800000 , 0] , [ 1175313600000 , 0] , [ 1177905600000 , 0] , [ 1180584000000 , 0] , [ 1183176000000 , 0] , [ 1185854400000 , 0] , [ 1188532800000 , 0] , [ 1191124800000 , 0] , [ 1193803200000 , 0] , [ 1196398800000 , 0] , [ 1199077200000 , 0] , [ 1201755600000 , 0] , [ 1204261200000 , 0] , [ 1206936000000 , 0] , [ 1209528000000 , 0] , [ 1212206400000 , 0] , [ 1214798400000 , 0] , [ 1217476800000 , 0] , [ 1220155200000 , 0] , [ 1222747200000 , 0] , [ 1225425600000 , 0] , [ 1228021200000 , 0] , [ 1230699600000 , 0] , [ 1233378000000 , 0] , [ 1235797200000 , 0] , [ 1238472000000 , 0] , [ 1241064000000 , 0] , [ 1243742400000 , 0] , [ 1246334400000 , 0] , [ 1249012800000 , 0] , [ 1251691200000 , 0] , [ 1254283200000 , 0] , [ 1256961600000 , 0] , [ 1259557200000 , 0] , [ 1262235600000 , 0] , [ 1264914000000 , 0] , [ 1267333200000 , 0] , [ 1270008000000 , 0] , [ 1272600000000 , 0] , [ 1275278400000 , 0] , [ 1277870400000 , 0] , [ 1280548800000 , 0] , [ 1283227200000 , 0] , [ 1285819200000 , 0] , [ 1288497600000 , 0] , [ 1291093200000 , 0] , [ 1293771600000 , 0] , [ 1296450000000 , 0] , [ 1298869200000 , 0] , [ 1301544000000 , 0] , [ 1304136000000 , 0] , [ 1306814400000 , 0] , [ 1309406400000 , 0] , [ 1312084800000 , 0] , [ 1314763200000 , 0] , [ 1317355200000 , 0] , [ 1320033600000 , 0] , [ 1322629200000 , 0] , [ 1325307600000 , 0] , [ 1327986000000 , 0] , [ 1330491600000 , 0] , [ 1333166400000 , 0] , [ 1335758400000 , 0] , [ 1338436800000 , 0]]
-  } 
-];
-
-/*
-// for testing single data point
-var histcatexplong = [
-  {
-    "key" : "Consumer Discretionary" ,
-    "values" : [ [ 1138683600000 , 27.38478809681]]
-  } ,
-  {
-    "key" : "Consumer Staples" ,
-    "values" : [ [ 1138683600000 , 7.2800122043237]]
-  } ,
-  {
-    "key" : "Energy" ,
-    "values" : [ [ 1138683600000 , 1.544303464167]]
-  } , 
-  { 
-    "key" : "Financials" , 
-    "values" : [ [ 1138683600000 , 13.356778764352]]
-  } , 
-  { 
-    "key" : "Health Care" , 
-    "values" : [ [ 1138683600000 , 14.212410956029]]
-  } , 
-  { 
-    "key" : "Industrials" , 
-    "values" : [ [ 1138683600000 , 7.1590087090398]]
-  } , 
-  { 
-    "key" : "Information Technology" , 
-    "values" : [ [ 1138683600000 , 13.242301508051]]
-  } , 
-  { 
-    "key" : "Materials" , 
-    "values" : [ [ 1138683600000 , 5.5806167415681]]
-  } , 
-  { 
-    "key" : "Telecommunication Services" , 
-    "values" : [ [ 1138683600000 , 3.7056975170243]]
-  } , 
-  { 
-    "key" : "Utilities" , 
-    "values" : [ [ 1138683600000 , 0]]
-  } 
-];
-*/
-
-
-
-var histcatexpshort = [ 
-  { 
-    "key" : "Consumer Staples" , 
-    "values" : [ [ 1138683600000 , 0] , [ 1141102800000 , 0] , [ 1143781200000 , 0] , [ 1146369600000 , 0] , [ 1149048000000 , 0] , [ 1151640000000 , 0] , [ 1154318400000 , 0] , [ 1156996800000 , 0] , [ 1159588800000 , 0] , [ 1162270800000 , 0] , [ 1164862800000 , 0] , [ 1167541200000 , -0.24102139376003] , [ 1170219600000 , -0.69960584365035] , [ 1172638800000 , -0.67365051426185] , [ 1175313600000 , 0] , [ 1177905600000 , 0] , [ 1180584000000 , 0] , [ 1183176000000 , -0.31429312464988] , [ 1185854400000 , -0.90018700397153] , [ 1188532800000 , -0.96926214328714] , [ 1191124800000 , -1.1343386468131] , [ 1193803200000 , -1.1335426595455] , [ 1196398800000 , -1.2327663032424] , [ 1199077200000 , -0.41027135492155] , [ 1201755600000 , -0.41779167524802] , [ 1204261200000 , -0.38133883625885] , [ 1206936000000 , 0] , [ 1209528000000 , -0.32550520320253] , [ 1212206400000 , -0.33185144615505] , [ 1214798400000 , -0.68609668877894] , [ 1217476800000 , -0.70001207744308] , [ 1220155200000 , -0.68378680840919] , [ 1222747200000 , -0.40908783182034] , [ 1225425600000 , -0.39074266525646] , [ 1228021200000 , -0.40358490474562] , [ 1230699600000 , -0.85752207262267] , [ 1233378000000 , -0.74395750438805] , [ 1235797200000 , -0.70718832429489] , [ 1238472000000 , -0.76244465406965] , [ 1241064000000 , -0.67618572591984] , [ 1243742400000 , -0.67649596761402] , [ 1246334400000 , -0.94618002703247] , [ 1249012800000 , -0.95408485581014] , [ 1251691200000 , -0.96272139504276] , [ 1254283200000 , 0] , [ 1256961600000 , 0] , [ 1259557200000 , 0] , [ 1262235600000 , 0] , [ 1264914000000 , 0] , [ 1267333200000 , 0] , [ 1270008000000 , -0.25516420149471] , [ 1272600000000 , -0.24106264576017] , [ 1275278400000 , -0.22802547751448] , [ 1277870400000 , -0.62187524046697] , [ 1280548800000 , -0.72155608677106] , [ 1283227200000 , -0.70221659944774] , [ 1285819200000 , -1.1117002584543] , [ 1288497600000 , -1.190911001336] , [ 1291093200000 , -1.1781082003972] , [ 1293771600000 , -1.2125860264875] , [ 1296450000000 , -1.7748010365657] , [ 1298869200000 , -1.8919594178596] , [ 1301544000000 , -1.7077946421533] , [ 1304136000000 , -2.024238803094] , [ 1306814400000 , -1.9769844081819] , [ 1309406400000 , -2.0730275464065] , [ 1312084800000 , -1.9690128240888] , [ 1314763200000 , -5.5557852269348] , [ 1317355200000 , -7.2527933190641] , [ 1320033600000 , -5.7367677053109] , [ 1322629200000 , -6.0409316206662] , [ 1325307600000 , -4.6511525539195] , [ 1327986000000 , -4.526116059083] , [ 1330491600000 , -4.846292325197] , [ 1333166400000 , -2.2663198779425] , [ 1335758400000 , -2.4172072568564] , [ 1338436800000 , -2.3204729601189]]
-  } , 
-  { 
-    "key" : "Consumer Discretionary" , 
-    "values" : [ [ 1138683600000 , -0.62238434102863] , [ 1141102800000 , -0.61484565039024] , [ 1143781200000 , -1.0769367918668] , [ 1146369600000 , -1.2221156604129] , [ 1149048000000 , -1.2434858263377] , [ 1151640000000 , -0.58606435489597] , [ 1154318400000 , -0.61478911495141] , [ 1156996800000 , -0.61429362688591] , [ 1159588800000 , -1.1168614112788] , [ 1162270800000 , -1.1510268716612] , [ 1164862800000 , -1.1104724164222] , [ 1167541200000 , -1.2298338563471] , [ 1170219600000 , -1.5053664389104] , [ 1172638800000 , -1.5535266372193] , [ 1175313600000 , -3.1690472535854] , [ 1177905600000 , -3.1273013967041] , [ 1180584000000 , -3.155466271777] , [ 1183176000000 , -3.7158562579437] , [ 1185854400000 , -3.8244546635586] , [ 1188532800000 , -3.5524464859972] , [ 1191124800000 , -3.0472339109128] , [ 1193803200000 , -3.064978140815] , [ 1196398800000 , -3.0818130124986] , [ 1199077200000 , -2.9806791138312] , [ 1201755600000 , -3.7360958775824] , [ 1204261200000 , -3.4687841733263] , [ 1206936000000 , -3.3702018615806] , [ 1209528000000 , -3.1982756208679] , [ 1212206400000 , -3.0489433155104] , [ 1214798400000 , -3.7008275605963] , [ 1217476800000 , -3.8980507260892] , [ 1220155200000 , -3.7680083260241] , [ 1222747200000 , -3.2061890012391] , [ 1225425600000 , -2.6727551440484] , [ 1228021200000 , -2.4469327462935] , [ 1230699600000 , -3.0192419668784] , [ 1233378000000 , -2.892958553476] , [ 1235797200000 , -3.1153570053479] , [ 1238472000000 , -2.9927580570711] , [ 1241064000000 , -3.5061796706294] , [ 1243742400000 , -3.2944159516725] , [ 1246334400000 , -3.4154213240617] , [ 1249012800000 , -3.6492125438171] , [ 1251691200000 , -3.6674164998394] , [ 1254283200000 , -4.6271484977727] , [ 1256961600000 , -4.2433407292676] , [ 1259557200000 , -4.4742625247274] , [ 1262235600000 , -5.2078214612359] , [ 1264914000000 , -5.2209579214469] , [ 1267333200000 , -5.4596395756061] , [ 1270008000000 , -5.6906459276584] , [ 1272600000000 , -6.4981737808665] , [ 1275278400000 , -6.2563044048578] , [ 1277870400000 , -6.175479487959] , [ 1280548800000 , -6.6641002427295] , [ 1283227200000 , -6.3648667745556] , [ 1285819200000 , -5.0270168607884] , [ 1288497600000 , -5.1186072976233] , [ 1291093200000 , -5.1127601587872] , [ 1293771600000 , -5.3015262972641] , [ 1296450000000 , -4.4295728671596] , [ 1298869200000 , -4.5488139745696] , [ 1301544000000 , -2.9021260315957] , [ 1304136000000 , -3.1482096241139] , [ 1306814400000 , -2.8648831814763] , [ 1309406400000 , -2.8149423433441] , [ 1312084800000 , -2.6350669145713] , [ 1314763200000 , -5.9871754759038] , [ 1317355200000 , -8.6127555816399] , [ 1320033600000 , -7.0712887348892] , [ 1322629200000 , -7.3930257999857] , [ 1325307600000 , -6.5183071556304] , [ 1327986000000 , -7.4388913793503] , [ 1330491600000 , -8.2134465182649] , [ 1333166400000 , -7.7836036697105] , [ 1335758400000 , -8.0955053683936] , [ 1338436800000 , -8.0981845818893]]
-  } , 
-  { 
-    "key" : "Energy" , 
-    "values" : [ [ 1138683600000 , -0.95707527558303] , [ 1141102800000 , -0.78324346694487] , [ 1143781200000 , -1.2905241058019] , [ 1146369600000 , -1.3880880486779] , [ 1149048000000 , -1.3337247185993] , [ 1151640000000 , -1.0342112071924] , [ 1154318400000 , -1.1264764100183] , [ 1156996800000 , -1.0001002640852] , [ 1159588800000 , -0.85341153093953] , [ 1162270800000 , -0.88452017844596] , [ 1164862800000 , -0.84305725300642] , [ 1167541200000 , -1.0874455682301] , [ 1170219600000 , -1.1714969043168] , [ 1172638800000 , -1.1445856467934] , [ 1175313600000 , -1.1928513334073] , [ 1177905600000 , -1.2365691634265] , [ 1180584000000 , -1.2690940962478] , [ 1183176000000 , -1.662233774695] , [ 1185854400000 , -1.745760538781] , [ 1188532800000 , -1.5209200931271] , [ 1191124800000 , -1.7874791820886] , [ 1193803200000 , -1.7755668105117] , [ 1196398800000 , -1.5456069064618] , [ 1199077200000 , -1.7077541586335] , [ 1201755600000 , -1.6462081650757] , [ 1204261200000 , -1.8624735339628] , [ 1206936000000 , -0.71073453533048] , [ 1209528000000 , -0.75380709640219] , [ 1212206400000 , -0.71020554911716] , [ 1214798400000 , -1.2077850914504] , [ 1217476800000 , -1.0505576787644] , [ 1220155200000 , -0.97804595164878] , [ 1222747200000 , -0.34591294663671] , [ 1225425600000 , -0.19958331514025] , [ 1228021200000 , -0.17599782216296] , [ 1230699600000 , -0.49577714121027] , [ 1233378000000 , -0.51644059173978] , [ 1235797200000 , -0.48576859637083] , [ 1238472000000 , -0.75596531126452] , [ 1241064000000 , -0.72073358315801] , [ 1243742400000 , -0.82125996732294] , [ 1246334400000 , -1.4933216860121] , [ 1249012800000 , -1.5003760525933] , [ 1251691200000 , -1.4744921420596] , [ 1254283200000 , -1.8197844060652] , [ 1256961600000 , -1.6558574419626] , [ 1259557200000 , -1.7256149254159] , [ 1262235600000 , -2.7667194124217] , [ 1264914000000 , -2.9113351806903] , [ 1267333200000 , -3.0172806042796] , [ 1270008000000 , -2.8607175559701] , [ 1272600000000 , -2.629226972169] , [ 1275278400000 , -2.1855196883832] , [ 1277870400000 , 0] , [ 1280548800000 , 0] , [ 1283227200000 , 0] , [ 1285819200000 , -1.3788733828844] , [ 1288497600000 , -1.4136792139765] , [ 1291093200000 , -1.5176522942901] , [ 1293771600000 , -1.5776651933208] , [ 1296450000000 , -1.7171675182182] , [ 1298869200000 , -1.8121885250566] , [ 1301544000000 , -1.2221934283206] , [ 1304136000000 , -1.2910715239439] , [ 1306814400000 , -1.1492301612576] , [ 1309406400000 , -1.0613891302841] , [ 1312084800000 , -0.99605193205308] , [ 1314763200000 , -1.7324212072278] , [ 1317355200000 , -1.5226856867477] , [ 1320033600000 , -1.3159138896549] , [ 1322629200000 , -1.3925952659299] , [ 1325307600000 , -1.59624913621] , [ 1327986000000 , -1.5235879880296] , [ 1330491600000 , -1.7315573519279] , [ 1333166400000 , -0.86883431220926] , [ 1335758400000 , -0.90144871282829] , [ 1338436800000 , -0.7010492182517]]
-  } , 
-  { 
-    "key" : "Financials" , 
-    "values" : [ [ 1138683600000 , -0.56797103580254] , [ 1141102800000 , -0.57324319174933] , [ 1143781200000 , -1.1014818753272] , [ 1146369600000 , -1.1480256918118] , [ 1149048000000 , -1.0709335336775] , [ 1151640000000 , -0.84876993929658] , [ 1154318400000 , -0.88122638919979] , [ 1156996800000 , -0.86421146074279] , [ 1159588800000 , -0.95093689377974] , [ 1162270800000 , -0.96646862382248] , [ 1164862800000 , -0.96726919442167] , [ 1167541200000 , -0.99874655234936] , [ 1170219600000 , -1.0004843898938] , [ 1172638800000 , -0.9925349676815] , [ 1175313600000 , -1.1888941931287] , [ 1177905600000 , -1.9402228220929] , [ 1180584000000 , -2.03915987194] , [ 1183176000000 , -2.4620526931074] , [ 1185854400000 , -2.2423544651877] , [ 1188532800000 , -1.8790998536037] , [ 1191124800000 , -0.43246873489492] , [ 1193803200000 , -0.40142684216371] , [ 1196398800000 , -0.35646635110466] , [ 1199077200000 , -0.90385702817642] , [ 1201755600000 , -0.86997575249605] , [ 1204261200000 , -0.80101406775415] , [ 1206936000000 , 0] , [ 1209528000000 , 0] , [ 1212206400000 , 0] , [ 1214798400000 , -0.31816167663298] , [ 1217476800000 , -0.309250081849] , [ 1220155200000 , -0.27723698582762] , [ 1222747200000 , -0.32001379372079] , [ 1225425600000 , -0.1940212908561] , [ 1228021200000 , -0.051964569203423] , [ 1230699600000 , -0.68342686502452] , [ 1233378000000 , -0.57645644730726] , [ 1235797200000 , -0.50860972184555] , [ 1238472000000 , -0.44405217759605] , [ 1241064000000 , -0.45224333626901] , [ 1243742400000 , -0.41691818252313] , [ 1246334400000 , -2.4654561579904] , [ 1249012800000 , -2.5473566378551] , [ 1251691200000 , -2.8340604021307] , [ 1254283200000 , -1.8452445924041] , [ 1256961600000 , -1.5626544265386] , [ 1259557200000 , -1.707842764916] , [ 1262235600000 , -1.2237258567344] , [ 1264914000000 , -1.9756896168227] , [ 1267333200000 , -2.0920321696833] , [ 1270008000000 , -1.9782327706952] , [ 1272600000000 , -2.0416328165753] , [ 1275278400000 , -1.7816736134798] , [ 1277870400000 , -0.66092275437689] , [ 1280548800000 , -0.73608099025756] , [ 1283227200000 , -0.63686713461189] , [ 1285819200000 , -0.0024159482973197] , [ 1288497600000 , -0.0023052643588188] , [ 1291093200000 , -0.0023008251965446] , [ 1293771600000 , -0.002247807834351] , [ 1296450000000 , -0.62004345920743] , [ 1298869200000 , -0.69634926653235] , [ 1301544000000 , -0.76013525555354] , [ 1304136000000 , -1.505368495849] , [ 1306814400000 , -1.3456949237707] , [ 1309406400000 , -1.3013934898695] , [ 1312084800000 , -1.183199519395] , [ 1314763200000 , -0.0074317809719494] , [ 1317355200000 , -0.019430458325379] , [ 1320033600000 , -0.015777413509084] , [ 1322629200000 , -0.016463879837718] , [ 1325307600000 , -0.0031338919976225] , [ 1327986000000 , -0.0029770278967514] , [ 1330491600000 , -0.003048902987439] , [ 1333166400000 , -0.71171545945298] , [ 1335758400000 , -0.72003299240508] , [ 1338436800000 , -0.72961974845039]]
-  } , 
-  { 
-    "key" : "Health Care" , 
-    "values" : [ [ 1138683600000 , 0] , [ 1141102800000 , 0] , [ 1143781200000 , 0] , [ 1146369600000 , 0] , [ 1149048000000 , 0] , [ 1151640000000 , 0] , [ 1154318400000 , 0] , [ 1156996800000 , 0] , [ 1159588800000 , 0] , [ 1162270800000 , 0] , [ 1164862800000 , 0] , [ 1167541200000 , 0] , [ 1170219600000 , 0] , [ 1172638800000 , 0] , [ 1175313600000 , 0] , [ 1177905600000 , 0] , [ 1180584000000 , 0] , [ 1183176000000 , -0.16816074963595] , [ 1185854400000 , -0.19318598121302] , [ 1188532800000 , -0.20130864403797] , [ 1191124800000 , 0] , [ 1193803200000 , 0] , [ 1196398800000 , 0] , [ 1199077200000 , 0] , [ 1201755600000 , 0] , [ 1204261200000 , 0] , [ 1206936000000 , 0] , [ 1209528000000 , 0] , [ 1212206400000 , 0] , [ 1214798400000 , -0.30476443991021] , [ 1217476800000 , -0.31836730824777] , [ 1220155200000 , -0.30797427879366] , [ 1222747200000 , -0.48318623977865] , [ 1225425600000 , -0.50834562674351] , [ 1228021200000 , -0.47936068182503] , [ 1230699600000 , -0.61753010081956] , [ 1233378000000 , -0.59493587396819] , [ 1235797200000 , -0.62664324339064] , [ 1238472000000 , 0] , [ 1241064000000 , 0] , [ 1243742400000 , 0] , [ 1246334400000 , 0] , [ 1249012800000 , 0] , [ 1251691200000 , 0] , [ 1254283200000 , -1.3076157801726] , [ 1256961600000 , -1.2306204787628] , [ 1259557200000 , -1.4728435992801] , [ 1262235600000 , -1.7729831226837] , [ 1264914000000 , -1.7711733839842] , [ 1267333200000 , -1.8233584472099] , [ 1270008000000 , -1.8505979461969] , [ 1272600000000 , -1.5989071613823] , [ 1275278400000 , -1.6636770720413] , [ 1277870400000 , -1.4523909758725] , [ 1280548800000 , -1.503771584105] , [ 1283227200000 , -1.5458561450475] , [ 1285819200000 , -1.457331837483] , [ 1288497600000 , -1.4217332434071] , [ 1291093200000 , -1.4687927303394] , [ 1293771600000 , -1.437223057967] , [ 1296450000000 , -0.72221871524334] , [ 1298869200000 , -0.7399575414588] , [ 1301544000000 , -1.9712239746745] , [ 1304136000000 , -2.2360949351942] , [ 1306814400000 , -2.2147572530541] , [ 1309406400000 , -2.0440932285023] , [ 1312084800000 , -1.9438209561938] , [ 1314763200000 , -4.9035620630386] , [ 1317355200000 , -4.9036674804213] , [ 1320033600000 , -4.1900706458801] , [ 1322629200000 , -4.5602615827955] , [ 1325307600000 , -1.9194421885814] , [ 1327986000000 , -1.8854470816382] , [ 1330491600000 , -1.9514785018245] , [ 1333166400000 , -0.65282205870454] , [ 1335758400000 , -0.57068368199209] , [ 1338436800000 , -0.55902563384907]]
-  } , 
-  { 
-    "key" : "Industrials" , 
-    "values" : [ [ 1138683600000 , -0.390983707093] , [ 1141102800000 , -0.38471122730537] , [ 1143781200000 , -0.22897173467143] , [ 1146369600000 , -0.23798946472286] , [ 1149048000000 , -0.20721233428173] , [ 1151640000000 , -0.54577697700394] , [ 1154318400000 , -0.50300252995937] , [ 1156996800000 , -0.49609518628103] , [ 1159588800000 , -0.19582276889273] , [ 1162270800000 , -0.60399139945108] , [ 1164862800000 , -0.61477368082886] , [ 1167541200000 , -0.13665869881705] , [ 1170219600000 , -0.13147565243332] , [ 1172638800000 , -0.11819441593356] , [ 1175313600000 , -0.41610825689528] , [ 1177905600000 , -0.38815419659358] , [ 1180584000000 , -0.3703838943035] , [ 1183176000000 , -1.6193903804534] , [ 1185854400000 , -1.6502660417328] , [ 1188532800000 , -1.481875010149] , [ 1191124800000 , -0.96180099322536] , [ 1193803200000 , -0.97017301394967] , [ 1196398800000 , -0.97432971260093] , [ 1199077200000 , -0.36071934518387] , [ 1201755600000 , -0.42150070991777] , [ 1204261200000 , -0.41784042793202] , [ 1206936000000 , -0.70494708349169] , [ 1209528000000 , -0.73449590911984] , [ 1212206400000 , -0.7400163600788] , [ 1214798400000 , -0.52584502195668] , [ 1217476800000 , -0.56224806965368] , [ 1220155200000 , -0.50830855192741] , [ 1222747200000 , -0.79494637898049] , [ 1225425600000 , -0.70391433947286] , [ 1228021200000 , -0.61420660317009] , [ 1230699600000 , -0.41699636242004] , [ 1233378000000 , -0.3779041158185] , [ 1235797200000 , -0.34282498854047] , [ 1238472000000 , -0.83845630450592] , [ 1241064000000 , -0.85937944918912] , [ 1243742400000 , -0.85530287999615] , [ 1246334400000 , -1.2819866264007] , [ 1249012800000 , -1.4598491663715] , [ 1251691200000 , -1.5261472177779] , [ 1254283200000 , -1.2503948993549] , [ 1256961600000 , -1.1767079775724] , [ 1259557200000 , -1.2585538260386] , [ 1262235600000 , -3.420972598165] , [ 1264914000000 , -3.3381337072954] , [ 1267333200000 , -3.7043129330694] , [ 1270008000000 , -4.6924500756609] , [ 1272600000000 , -4.6880683704908] , [ 1275278400000 , -4.3335249071719] , [ 1277870400000 , -3.6545810416445] , [ 1280548800000 , -4.1639787701262] , [ 1283227200000 , -3.8249597612047] , [ 1285819200000 , -0.33221815335641] , [ 1288497600000 , -0.33346468179047] , [ 1291093200000 , -0.34546911228789] , [ 1293771600000 , -0.36609971997147] , [ 1296450000000 , -0.42502545672607] , [ 1298869200000 , -0.38192733348507] , [ 1301544000000 , -0.01991033447621] , [ 1304136000000 , -0.020319195299659] , [ 1306814400000 , -0.018147820835144] , [ 1309406400000 , -0.017923186209383] , [ 1312084800000 , -0.016133999253684] , [ 1314763200000 , -0.72058656278977] , [ 1317355200000 , -0.42812646564889] , [ 1320033600000 , -0.35896134792589] , [ 1322629200000 , -0.38637896444549] , [ 1325307600000 , -0.31794663984021] , [ 1327986000000 , -0.32220831831888] , [ 1330491600000 , -0.37107872672214] , [ 1333166400000 , -0.81968633933695] , [ 1335758400000 , -0.77148300885994] , [ 1338436800000 , -0.77392261735539]]
-  } , 
-  { 
-    "key" : "Information Technology" , 
-    "values" : [ [ 1138683600000 , -0.86346955704548] , [ 1141102800000 , -0.88352373534584] , [ 1143781200000 , -1.2630802711685] , [ 1146369600000 , -1.2352593999242] , [ 1149048000000 , -1.2086379045093] , [ 1151640000000 , -1.0416778473647] , [ 1154318400000 , -0.99326278105154] , [ 1156996800000 , -1.0095045907007] , [ 1159588800000 , -2.0762515478576] , [ 1162270800000 , -2.13066829429] , [ 1164862800000 , -2.2458400474235] , [ 1167541200000 , -2.1315262677135] , [ 1170219600000 , -2.4063108252146] , [ 1172638800000 , -2.3753290631454] , [ 1175313600000 , -2.1119577565913] , [ 1177905600000 , -2.1546804750397] , [ 1180584000000 , -2.3768374034303] , [ 1183176000000 , -1.244878330098] , [ 1185854400000 , -1.2233210265236] , [ 1188532800000 , -1.1715073644317] , [ 1191124800000 , -1.0036136395928] , [ 1193803200000 , -0.9510676777939] , [ 1196398800000 , -0.97553526602196] , [ 1199077200000 , -1.9083849411912] , [ 1201755600000 , -1.855965027796] , [ 1204261200000 , -1.7343633512402] , [ 1206936000000 , -2.1847032903649] , [ 1209528000000 , -2.2095446284368] , [ 1212206400000 , -2.2060678671735] , [ 1214798400000 , -1.0941627910924] , [ 1217476800000 , -1.0004352405294] , [ 1220155200000 , -0.93563501378075] , [ 1222747200000 , 0] , [ 1225425600000 , -0.65155092645953] , [ 1228021200000 , -0.66021585164047] , [ 1230699600000 , 0] , [ 1233378000000 , 0] , [ 1235797200000 , 0] , [ 1238472000000 , 0] , [ 1241064000000 , 0] , [ 1243742400000 , 0] , [ 1246334400000 , 0] , [ 1249012800000 , 0] , [ 1251691200000 , 0] , [ 1254283200000 , -0.29297573068109] , [ 1256961600000 , -0.75043756379084] , [ 1259557200000 , -0.85690846482745] , [ 1262235600000 , -0.21937480770873] , [ 1264914000000 , -0.93232569935343] , [ 1267333200000 , -0.94180327525084] , [ 1270008000000 , 0] , [ 1272600000000 , 0] , [ 1275278400000 , 0] , [ 1277870400000 , 0] , [ 1280548800000 , 0] , [ 1283227200000 , 0] , [ 1285819200000 , -0.21253553193891] , [ 1288497600000 , -0.23178244747722] , [ 1291093200000 , -0.21481706129968] , [ 1293771600000 , -0.23306463011242] , [ 1296450000000 , -0.90244048159158] , [ 1298869200000 , -1.0410052083529] , [ 1301544000000 , -2.209350937089] , [ 1304136000000 , -2.6540796712932] , [ 1306814400000 , -3.2481210590957] , [ 1309406400000 , -3.0717986354635] , [ 1312084800000 , -2.7493296528921] , [ 1314763200000 , -2.1973991293256] , [ 1317355200000 , -0.86403111842659] , [ 1320033600000 , -0.87824756160219] , [ 1322629200000 , -0.80812571482871] , [ 1325307600000 , -1.6419820357151] , [ 1327986000000 , -1.6893790342619] , [ 1330491600000 , -1.8614499455474] , [ 1333166400000 , -1.814727017516] , [ 1335758400000 , -1.8744942128618] , [ 1338436800000 , -1.7880124850882]]
-  } , 
-  { 
-    "key" : "Materials" , 
-    "values" : [ [ 1138683600000 , -0.26079769654951] , [ 1141102800000 , -0.23368425410881] , [ 1143781200000 , -0.46285283466193] , [ 1146369600000 , -0.4588429059205] , [ 1149048000000 , -0.43055120080853] , [ 1151640000000 , -0.26428963363642] , [ 1154318400000 , -0.26203611963364] , [ 1156996800000 , -0.26706156717825] , [ 1159588800000 , -0.024613610779192] , [ 1162270800000 , -0.024351047945929] , [ 1164862800000 , -0.031497065480344] , [ 1167541200000 , 0] , [ 1170219600000 , 0] , [ 1172638800000 , 0] , [ 1175313600000 , 0] , [ 1177905600000 , 0] , [ 1180584000000 , 0] , [ 1183176000000 , 0] , [ 1185854400000 , 0] , [ 1188532800000 , 0] , [ 1191124800000 , 0] , [ 1193803200000 , 0] , [ 1196398800000 , 0] , [ 1199077200000 , 0] , [ 1201755600000 , 0] , [ 1204261200000 , 0] , [ 1206936000000 , -0.83875613435932] , [ 1209528000000 , -0.84367445572656] , [ 1212206400000 , -0.78928126005463] , [ 1214798400000 , -1.1075954825404] , [ 1217476800000 , -1.2704836497926] , [ 1220155200000 , -1.307504052056] , [ 1222747200000 , -0.70440409992826] , [ 1225425600000 , -0.74122140007729] , [ 1228021200000 , -0.82224393045109] , [ 1230699600000 , -1.8719055314571] , [ 1233378000000 , -1.5200311233975] , [ 1235797200000 , -1.5552386899059] , [ 1238472000000 , -1.1576593040773] , [ 1241064000000 , -1.0757811060575] , [ 1243742400000 , -1.0250125722511] , [ 1246334400000 , -2.2747597224127] , [ 1249012800000 , -2.3125499227974] , [ 1251691200000 , -2.2784386530745] , [ 1254283200000 , -1.1518806233757] , [ 1256961600000 , -1.0075503399018] , [ 1259557200000 , -1.1400577929481] , [ 1262235600000 , -0.50677891891165] , [ 1264914000000 , -0.54332908490051] , [ 1267333200000 , -0.55473181189807] , [ 1270008000000 , -0.3633796157757] , [ 1272600000000 , -0.30361861470847] , [ 1275278400000 , -0.24614951229153] , [ 1277870400000 , -1.0959443687647] , [ 1280548800000 , -1.1881529264637] , [ 1283227200000 , -1.1835349242596] , [ 1285819200000 , -0.92507477884561] , [ 1288497600000 , -0.94531016133473] , [ 1291093200000 , -0.93519433603434] , [ 1293771600000 , -1.009221344252] , [ 1296450000000 , -2.3640716285835] , [ 1298869200000 , -2.4914494188556] , [ 1301544000000 , -1.7979456141716] , [ 1304136000000 , -2.1389760840247] , [ 1306814400000 , -1.9721362241269] , [ 1309406400000 , -1.9170229522382] , [ 1312084800000 , -1.8076246545605] , [ 1314763200000 , -2.1010686108381] , [ 1317355200000 , -2.2396373791195] , [ 1320033600000 , -1.8469012813015] , [ 1322629200000 , -2.0079125997321] , [ 1325307600000 , -1.9170007806182] , [ 1327986000000 , -1.9239118384243] , [ 1330491600000 , -2.0649464738798] , [ 1333166400000 , -0.88385747789351] , [ 1335758400000 , -0.91438087144161] , [ 1338436800000 , -0.96513752020965]]
-  } , 
-  { 
-    "key" : "Telecommunication Services" , 
-    "values" : [ [ 1138683600000 , 0] , [ 1141102800000 , 0] , [ 1143781200000 , -0.077395192503573] , [ 1146369600000 , -0.079342784160835] , [ 1149048000000 , -0.07376956808809] , [ 1151640000000 , -0.041850521681201] , [ 1154318400000 , -0.037598545052499] , [ 1156996800000 , -0.040984079427717] , [ 1159588800000 , -0.19335817797448] , [ 1162270800000 , -0.18578493919925] , [ 1164862800000 , -0.1769473933101] , [ 1167541200000 , -0.57245352054975] , [ 1170219600000 , -0.61554187332911] , [ 1172638800000 , -0.63016714701151] , [ 1175313600000 , 0] , [ 1177905600000 , 0] , [ 1180584000000 , 0] , [ 1183176000000 , -0.12118014109021] , [ 1185854400000 , -0.11085831487208] , [ 1188532800000 , -0.10901265358445] , [ 1191124800000 , -0.17205583275088] , [ 1193803200000 , -0.16573676303991] , [ 1196398800000 , -0.17954841680392] , [ 1199077200000 , -0.82703336198161] , [ 1201755600000 , -0.76741763304227] , [ 1204261200000 , -0.79430844816827] , [ 1206936000000 , -1.0279404050708] , [ 1209528000000 , -1.0342425093761] , [ 1212206400000 , -1.0903083860383] , [ 1214798400000 , -1.0895432841007] , [ 1217476800000 , -1.1392703218146] , [ 1220155200000 , -0.98872086340391] , [ 1222747200000 , -1.227654651568] , [ 1225425600000 , -1.0527419580394] , [ 1228021200000 , -0.84338280322309] , [ 1230699600000 , -0.5982617279246] , [ 1233378000000 , -0.74123723862634] , [ 1235797200000 , -0.81665712408277] , [ 1238472000000 , -0.89868760705228] , [ 1241064000000 , -0.86338472153689] , [ 1243742400000 , -0.85040889603889] , [ 1246334400000 , -0.82872733882926] , [ 1249012800000 , -1.2797824676355] , [ 1251691200000 , -1.152043882336] , [ 1254283200000 , -0.70125890680538] , [ 1256961600000 , -0.69496338525418] , [ 1259557200000 , -0.81982038022784] , [ 1262235600000 , -0.42841700219624] , [ 1264914000000 , -0.43298861575253] , [ 1267333200000 , -0.46951194437705] , [ 1270008000000 , -0.46723980191721] , [ 1272600000000 , -0.43139262322841] , [ 1275278400000 , -0.4052075794202] , [ 1277870400000 , -0.45399431179247] , [ 1280548800000 , -0.50492374473014] , [ 1283227200000 , -0.49032976375464] , [ 1285819200000 , -0.95769381063728] , [ 1288497600000 , -0.92968381683254] , [ 1291093200000 , -0.90984207437415] , [ 1293771600000 , -0.91448295661871] , [ 1296450000000 , -1.3204103334172] , [ 1298869200000 , -1.3896989018] , [ 1301544000000 , -1.8536993972883] , [ 1304136000000 , -1.9901582471947] , [ 1306814400000 , -1.8731097808809] , [ 1309406400000 , -1.8109819859122] , [ 1312084800000 , -1.7946593386661] , [ 1314763200000 , -1.6002716669781] , [ 1317355200000 , -0.056479286204019] , [ 1320033600000 , -0.046232413998891] , [ 1322629200000 , -0.051182355563531] , [ 1325307600000 , -0.032858749040145] , [ 1327986000000 , -0.032326418106178] , [ 1330491600000 , -0.033980477379241] , [ 1333166400000 , -0.053069550536519] , [ 1335758400000 , -0.055741850564434] , [ 1338436800000 , -0.055851808568252]]
-  } , 
-  { 
-    "key" : "Utilities" , 
-    "values" : [ [ 1138683600000 , 0] , [ 1141102800000 , 0] , [ 1143781200000 , -0.073769471773675] , [ 1146369600000 , -0.077824496315782] , [ 1149048000000 , -0.080696288096361] , [ 1151640000000 , 0] , [ 1154318400000 , 0] , [ 1156996800000 , 0] , [ 1159588800000 , 0] , [ 1162270800000 , 0] , [ 1164862800000 , 0] , [ 1167541200000 , 0] , [ 1170219600000 , 0] , [ 1172638800000 , 0] , [ 1175313600000 , 0] , [ 1177905600000 , 0] , [ 1180584000000 , 0] , [ 1183176000000 , -0.16073291656515] , [ 1185854400000 , -0.1646253606633] , [ 1188532800000 , -0.1655815581449] , [ 1191124800000 , -0.74417496631713] , [ 1193803200000 , -0.76230340423681] , [ 1196398800000 , -0.73882938190048] , [ 1199077200000 , -0.3820573391806] , [ 1201755600000 , -0.360757285179] , [ 1204261200000 , -0.38081058463615] , [ 1206936000000 , -0.92767439811083] , [ 1209528000000 , -0.92774728028789] , [ 1212206400000 , -0.85273481694714] , [ 1214798400000 , -1.69407085613] , [ 1217476800000 , -1.5179726219101] , [ 1220155200000 , -1.3576700600738] , [ 1222747200000 , -1.0404839864076] , [ 1225425600000 , -0.95251478838915] , [ 1228021200000 , -1.0610509118017] , [ 1230699600000 , -0.3316792294278] , [ 1233378000000 , -0.33745002288524] , [ 1235797200000 , -0.28806366796683] , [ 1238472000000 , 0] , [ 1241064000000 , 0] , [ 1243742400000 , 0] , [ 1246334400000 , -0.6338555382785] , [ 1249012800000 , -0.62797265130959] , [ 1251691200000 , -0.60264057253794] , [ 1254283200000 , -0.28687231077181] , [ 1256961600000 , -0.22215649778327] , [ 1259557200000 , -0.24027664555676] , [ 1262235600000 , 0] , [ 1264914000000 , 0] , [ 1267333200000 , 0] , [ 1270008000000 , 0] , [ 1272600000000 , 0] , [ 1275278400000 , 0] , [ 1277870400000 , 0] , [ 1280548800000 , 0] , [ 1283227200000 , 0] , [ 1285819200000 , 0] , [ 1288497600000 , 0] , [ 1291093200000 , 0] , [ 1293771600000 , 0] , [ 1296450000000 , 0] , [ 1298869200000 , 0] , [ 1301544000000 , 0] , [ 1304136000000 , 0] , [ 1306814400000 , 0] , [ 1309406400000 , 0] , [ 1312084800000 , 0] , [ 1314763200000 , 0] , [ 1317355200000 , 0] , [ 1320033600000 , 0] , [ 1322629200000 , 0] , [ 1325307600000 , 0] , [ 1327986000000 , 0] , [ 1330491600000 , 0] , [ 1333166400000 , 0] , [ 1335758400000 , 0] , [ 1338436800000 , 0]]
-  } 
-];
-
-/*
-.map(function(series) {
-  series.values = series.values.map(function(d) {
-    return { x: d[0], y: d[1] }
-  });
-  return series;
-});
-*/
-
-//an example of harmonizing colors between visualizations
-//observe that Consumer Discretionary and Consumer Staples have 
-//been flipped in the second chart
-var colors = d3.scale.category20();
-keyColor = function(d, i) {return colors(d.key)};
-
-var chart;
-nv.addGraph(function() {
-  chart = nv.models.stackedAreaChart()
-               // .width(600).height(500)
-                .useInteractiveGuideline(true)
-                .x(function(d) { return d[0] })
-                .y(function(d) { return d[1] })
-                .color(keyColor)
-                .transitionDuration(300);
-                //.clipEdge(true);
-
-// chart.stacked.scatter.clipVoronoi(false);
-
-  chart.xAxis
-      .tickFormat(function(d) { return d3.time.format('%x')(new Date(d)) });
-
-  chart.yAxis
-      .tickFormat(d3.format(',.2f'));
-
-  d3.select('#chart1')
-    .datum(histcatexplong)
-    .transition().duration(0)
-    .call(chart);
-
-  nv.utils.windowResize(chart.update);
-
-  chart.dispatch.on('stateChange', function(e) { nv.log('New State:', JSON.stringify(e)); });
-
-  return chart;
-});
-
-nv.addGraph(function() {
-  var chart = nv.models.stackedAreaChart()
-                .x(function(d) { return d[0] })
-                .y(function(d) { return d[1] })
-                .color(keyColor)
-                ;
-                //.clipEdge(true);
-
-  chart.xAxis
-      .tickFormat(function(d) { return d3.time.format('%x')(new Date(d)) });
-
-  chart.yAxis
-      .tickFormat(d3.format(',.2f'));
-
-  d3.select('#chart2')
-    .datum(histcatexpshort)
-      .call(chart);
-
-  nv.utils.windowResize(chart.update);
-
-  return chart;
-});
-
-
-
-</script>
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/stream_layers.js b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/stream_layers.js
deleted file mode 100755
index 43d7cfe0..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/examples/stream_layers.js
+++ /dev/null
@@ -1,35 +0,0 @@
-
-/* Inspired by Lee Byron's test data generator. */
-function stream_layers(n, m, o) {
-  if (arguments.length < 3) o = 0;
-  function bump(a) {
-    var x = 1 / (.1 + Math.random()),
-        y = 2 * Math.random() - .5,
-        z = 10 / (.1 + Math.random());
-    for (var i = 0; i < m; i++) {
-      var w = (i / m - y) * z;
-      a[i] += x * Math.exp(-w * w);
-    }
-  }
-  return d3.range(n).map(function() {
-      var a = [], i;
-      for (i = 0; i < m; i++) a[i] = o + o * Math.random();
-      for (i = 0; i < 5; i++) bump(a);
-      return a.map(stream_index);
-    });
-}
-
-/* Another layer generator using gamma distributions. */
-function stream_waves(n, m) {
-  return d3.range(n).map(function(i) {
-    return d3.range(m).map(function(j) {
-        var x = 20 * j / m - i / 3;
-        return 2 * x * Math.exp(-.5 * x);
-      }).map(stream_index);
-    });
-}
-
-function stream_index(d, i) {
-  return {x: i, y: Math.max(0, d)};
-}
-
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/lib/cie.js b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/lib/cie.js
deleted file mode 100755
index 45f01329..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/lib/cie.js
+++ /dev/null
@@ -1,155 +0,0 @@
-(function(d3) {
-  var cie = d3.cie = {};
-
-  cie.lab = function(l, a, b) {
-    return arguments.length === 1
-        ? (l instanceof Lab ? lab(l.l, l.a, l.b)
-        : (l instanceof Lch ? lch_lab(l.l, l.c, l.h)
-        : rgb_lab((l = d3.rgb(l)).r, l.g, l.b)))
-        : lab(+l, +a, +b);
-  };
-
-  cie.lch = function(l, c, h) {
-    return arguments.length === 1
-        ? (l instanceof Lch ? lch(l.l, l.c, l.h)
-        : (l instanceof Lab ? lab_lch(l.l, l.a, l.b)
-        : lab_lch((l = rgb_lab((l = d3.rgb(l)).r, l.g, l.b)).l, l.a, l.b)))
-        : lch(+l, +c, +h);
-  };
-
-  cie.interpolateLab = function(a, b) {
-    a = cie.lab(a);
-    b = cie.lab(b);
-    var al = a.l,
-        aa = a.a,
-        ab = a.b,
-        bl = b.l - al,
-        ba = b.a - aa,
-        bb = b.b - ab;
-    return function(t) {
-      return lab_rgb(al + bl * t, aa + ba * t, ab + bb * t) + "";
-    };
-  };
-
-  cie.interpolateLch = function(a, b) {
-    a = cie.lch(a);
-    b = cie.lch(b);
-    var al = a.l,
-        ac = a.c,
-        ah = a.h,
-        bl = b.l - al,
-        bc = b.c - ac,
-        bh = b.h - ah;
-    if (bh > 180) bh -= 360; else if (bh < -180) bh += 360; // shortest path
-    return function(t) {
-      return lch_lab(al + bl * t, ac + bc * t, ah + bh * t) + "";
-    };
-  };
-
-  function lab(l, a, b) {
-    return new Lab(l, a, b);
-  }
-
-  function Lab(l, a, b) {
-    this.l = l;
-    this.a = a;
-    this.b = b;
-  }
-
-  Lab.prototype.brighter = function(k) {
-    return lab(Math.min(100, this.l + K * (arguments.length ? k : 1)), this.a, this.b);
-  };
-
-  Lab.prototype.darker = function(k) {
-    return lab(Math.max(0, this.l - K * (arguments.length ? k : 1)), this.a, this.b);
-  };
-
-  Lab.prototype.rgb = function() {
-    return lab_rgb(this.l, this.a, this.b);
-  };
-
-  Lab.prototype.toString = function() {
-    return this.rgb() + "";
-  };
-
-  function lch(l, c, h) {
-    return new Lch(l, c, h);
-  }
-
-  function Lch(l, c, h) {
-    this.l = l;
-    this.c = c;
-    this.h = h;
-  }
-
-  Lch.prototype.brighter = function(k) {
-    return lch(Math.min(100, this.l + K * (arguments.length ? k : 1)), this.c, this.h);
-  };
-
-  Lch.prototype.darker = function(k) {
-    return lch(Math.max(0, this.l - K * (arguments.length ? k : 1)), this.c, this.h);
-  };
-
-  Lch.prototype.rgb = function() {
-    return lch_lab(this.l, this.c, this.h).rgb();
-  };
-
-  Lch.prototype.toString = function() {
-    return this.rgb() + "";
-  };
-
-  // Corresponds roughly to RGB brighter/darker
-  var K = 18;
-
-  // D65 standard referent
-  var X = 0.950470, Y = 1, Z = 1.088830;
-
-  function lab_rgb(l, a, b) {
-    var y = (l + 16) / 116, x = y + a / 500, z = y - b / 200;
-    x = lab_xyz(x) * X;
-    y = lab_xyz(y) * Y;
-    z = lab_xyz(z) * Z;
-    return d3.rgb(
-      xyz_rgb( 3.2404542 * x - 1.5371385 * y - 0.4985314 * z),
-      xyz_rgb(-0.9692660 * x + 1.8760108 * y + 0.0415560 * z),
-      xyz_rgb( 0.0556434 * x - 0.2040259 * y + 1.0572252 * z)
-    );
-  }
-
-  function rgb_lab(r, g, b) {
-    r = rgb_xyz(r);
-    g = rgb_xyz(g);
-    b = rgb_xyz(b);
-    var x = xyz_lab((0.4124564 * r + 0.3575761 * g + 0.1804375 * b) / X),
-        y = xyz_lab((0.2126729 * r + 0.7151522 * g + 0.0721750 * b) / Y),
-        z = xyz_lab((0.0193339 * r + 0.1191920 * g + 0.9503041 * b) / Z);
-    return lab(116 * y - 16, 500 * (x - y), 200 * (y - z));
-  }
-
-  function lab_lch(l, a, b) {
-    var c = Math.sqrt(a * a + b * b),
-        h = Math.atan2(b, a) / Math.PI * 180;
-    return lch(l, c, h);
-  }
-
-  function lch_lab(l, c, h) {
-    h = h * Math.PI / 180;
-    return lab(l, Math.cos(h) * c, Math.sin(h) * c);
-  }
-
-  function lab_xyz(x) {
-    return x > 0.206893034 ? x * x * x : (x - 4 / 29) / 7.787037;
-  }
-
-  function xyz_lab(x) {
-    return x > 0.008856 ? Math.pow(x, 1 / 3) : 7.787037 * x + 4 / 29;
-  }
-
-  function xyz_rgb(r) {
-    return Math.round(255 * (r <= 0.00304 ? 12.92 * r : 1.055 * Math.pow(r, 1 / 2.4) - 0.055));
-  }
-
-  function rgb_xyz(r) {
-    return (r /= 255) <= 0.04045 ? r / 12.92 : Math.pow((r + 0.055) / 1.055, 2.4);
-  }
-})(d3);
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/lib/colorbrewer.js b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/lib/colorbrewer.js
deleted file mode 100755
index 2295527b..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/lib/colorbrewer.js
+++ /dev/null
@@ -1,302 +0,0 @@
-// This product includes color specifications and designs developed by Cynthia Brewer (http://colorbrewer.org/).
-var colorbrewer = {YlGn: {
-3: ["#f7fcb9","#addd8e","#31a354"],
-4: ["#ffffcc","#c2e699","#78c679","#238443"],
-5: ["#ffffcc","#c2e699","#78c679","#31a354","#006837"],
-6: ["#ffffcc","#d9f0a3","#addd8e","#78c679","#31a354","#006837"],
-7: ["#ffffcc","#d9f0a3","#addd8e","#78c679","#41ab5d","#238443","#005a32"],
-8: ["#ffffe5","#f7fcb9","#d9f0a3","#addd8e","#78c679","#41ab5d","#238443","#005a32"],
-9: ["#ffffe5","#f7fcb9","#d9f0a3","#addd8e","#78c679","#41ab5d","#238443","#006837","#004529"]
-},YlGnBu: {
-3: ["#edf8b1","#7fcdbb","#2c7fb8"],
-4: ["#ffffcc","#a1dab4","#41b6c4","#225ea8"],
-5: ["#ffffcc","#a1dab4","#41b6c4","#2c7fb8","#253494"],
-6: ["#ffffcc","#c7e9b4","#7fcdbb","#41b6c4","#2c7fb8","#253494"],
-7: ["#ffffcc","#c7e9b4","#7fcdbb","#41b6c4","#1d91c0","#225ea8","#0c2c84"],
-8: ["#ffffd9","#edf8b1","#c7e9b4","#7fcdbb","#41b6c4","#1d91c0","#225ea8","#0c2c84"],
-9: ["#ffffd9","#edf8b1","#c7e9b4","#7fcdbb","#41b6c4","#1d91c0","#225ea8","#253494","#081d58"]
-},GnBu: {
-3: ["#e0f3db","#a8ddb5","#43a2ca"],
-4: ["#f0f9e8","#bae4bc","#7bccc4","#2b8cbe"],
-5: ["#f0f9e8","#bae4bc","#7bccc4","#43a2ca","#0868ac"],
-6: ["#f0f9e8","#ccebc5","#a8ddb5","#7bccc4","#43a2ca","#0868ac"],
-7: ["#f0f9e8","#ccebc5","#a8ddb5","#7bccc4","#4eb3d3","#2b8cbe","#08589e"],
-8: ["#f7fcf0","#e0f3db","#ccebc5","#a8ddb5","#7bccc4","#4eb3d3","#2b8cbe","#08589e"],
-9: ["#f7fcf0","#e0f3db","#ccebc5","#a8ddb5","#7bccc4","#4eb3d3","#2b8cbe","#0868ac","#084081"]
-},BuGn: {
-3: ["#e5f5f9","#99d8c9","#2ca25f"],
-4: ["#edf8fb","#b2e2e2","#66c2a4","#238b45"],
-5: ["#edf8fb","#b2e2e2","#66c2a4","#2ca25f","#006d2c"],
-6: ["#edf8fb","#ccece6","#99d8c9","#66c2a4","#2ca25f","#006d2c"],
-7: ["#edf8fb","#ccece6","#99d8c9","#66c2a4","#41ae76","#238b45","#005824"],
-8: ["#f7fcfd","#e5f5f9","#ccece6","#99d8c9","#66c2a4","#41ae76","#238b45","#005824"],
-9: ["#f7fcfd","#e5f5f9","#ccece6","#99d8c9","#66c2a4","#41ae76","#238b45","#006d2c","#00441b"]
-},PuBuGn: {
-3: ["#ece2f0","#a6bddb","#1c9099"],
-4: ["#f6eff7","#bdc9e1","#67a9cf","#02818a"],
-5: ["#f6eff7","#bdc9e1","#67a9cf","#1c9099","#016c59"],
-6: ["#f6eff7","#d0d1e6","#a6bddb","#67a9cf","#1c9099","#016c59"],
-7: ["#f6eff7","#d0d1e6","#a6bddb","#67a9cf","#3690c0","#02818a","#016450"],
-8: ["#fff7fb","#ece2f0","#d0d1e6","#a6bddb","#67a9cf","#3690c0","#02818a","#016450"],
-9: ["#fff7fb","#ece2f0","#d0d1e6","#a6bddb","#67a9cf","#3690c0","#02818a","#016c59","#014636"]
-},PuBu: {
-3: ["#ece7f2","#a6bddb","#2b8cbe"],
-4: ["#f1eef6","#bdc9e1","#74a9cf","#0570b0"],
-5: ["#f1eef6","#bdc9e1","#74a9cf","#2b8cbe","#045a8d"],
-6: ["#f1eef6","#d0d1e6","#a6bddb","#74a9cf","#2b8cbe","#045a8d"],
-7: ["#f1eef6","#d0d1e6","#a6bddb","#74a9cf","#3690c0","#0570b0","#034e7b"],
-8: ["#fff7fb","#ece7f2","#d0d1e6","#a6bddb","#74a9cf","#3690c0","#0570b0","#034e7b"],
-9: ["#fff7fb","#ece7f2","#d0d1e6","#a6bddb","#74a9cf","#3690c0","#0570b0","#045a8d","#023858"]
-},BuPu: {
-3: ["#e0ecf4","#9ebcda","#8856a7"],
-4: ["#edf8fb","#b3cde3","#8c96c6","#88419d"],
-5: ["#edf8fb","#b3cde3","#8c96c6","#8856a7","#810f7c"],
-6: ["#edf8fb","#bfd3e6","#9ebcda","#8c96c6","#8856a7","#810f7c"],
-7: ["#edf8fb","#bfd3e6","#9ebcda","#8c96c6","#8c6bb1","#88419d","#6e016b"],
-8: ["#f7fcfd","#e0ecf4","#bfd3e6","#9ebcda","#8c96c6","#8c6bb1","#88419d","#6e016b"],
-9: ["#f7fcfd","#e0ecf4","#bfd3e6","#9ebcda","#8c96c6","#8c6bb1","#88419d","#810f7c","#4d004b"]
-},RdPu: {
-3: ["#fde0dd","#fa9fb5","#c51b8a"],
-4: ["#feebe2","#fbb4b9","#f768a1","#ae017e"],
-5: ["#feebe2","#fbb4b9","#f768a1","#c51b8a","#7a0177"],
-6: ["#feebe2","#fcc5c0","#fa9fb5","#f768a1","#c51b8a","#7a0177"],
-7: ["#feebe2","#fcc5c0","#fa9fb5","#f768a1","#dd3497","#ae017e","#7a0177"],
-8: ["#fff7f3","#fde0dd","#fcc5c0","#fa9fb5","#f768a1","#dd3497","#ae017e","#7a0177"],
-9: ["#fff7f3","#fde0dd","#fcc5c0","#fa9fb5","#f768a1","#dd3497","#ae017e","#7a0177","#49006a"]
-},PuRd: {
-3: ["#e7e1ef","#c994c7","#dd1c77"],
-4: ["#f1eef6","#d7b5d8","#df65b0","#ce1256"],
-5: ["#f1eef6","#d7b5d8","#df65b0","#dd1c77","#980043"],
-6: ["#f1eef6","#d4b9da","#c994c7","#df65b0","#dd1c77","#980043"],
-7: ["#f1eef6","#d4b9da","#c994c7","#df65b0","#e7298a","#ce1256","#91003f"],
-8: ["#f7f4f9","#e7e1ef","#d4b9da","#c994c7","#df65b0","#e7298a","#ce1256","#91003f"],
-9: ["#f7f4f9","#e7e1ef","#d4b9da","#c994c7","#df65b0","#e7298a","#ce1256","#980043","#67001f"]
-},OrRd: {
-3: ["#fee8c8","#fdbb84","#e34a33"],
-4: ["#fef0d9","#fdcc8a","#fc8d59","#d7301f"],
-5: ["#fef0d9","#fdcc8a","#fc8d59","#e34a33","#b30000"],
-6: ["#fef0d9","#fdd49e","#fdbb84","#fc8d59","#e34a33","#b30000"],
-7: ["#fef0d9","#fdd49e","#fdbb84","#fc8d59","#ef6548","#d7301f","#990000"],
-8: ["#fff7ec","#fee8c8","#fdd49e","#fdbb84","#fc8d59","#ef6548","#d7301f","#990000"],
-9: ["#fff7ec","#fee8c8","#fdd49e","#fdbb84","#fc8d59","#ef6548","#d7301f","#b30000","#7f0000"]
-},YlOrRd: {
-3: ["#ffeda0","#feb24c","#f03b20"],
-4: ["#ffffb2","#fecc5c","#fd8d3c","#e31a1c"],
-5: ["#ffffb2","#fecc5c","#fd8d3c","#f03b20","#bd0026"],
-6: ["#ffffb2","#fed976","#feb24c","#fd8d3c","#f03b20","#bd0026"],
-7: ["#ffffb2","#fed976","#feb24c","#fd8d3c","#fc4e2a","#e31a1c","#b10026"],
-8: ["#ffffcc","#ffeda0","#fed976","#feb24c","#fd8d3c","#fc4e2a","#e31a1c","#b10026"],
-9: ["#ffffcc","#ffeda0","#fed976","#feb24c","#fd8d3c","#fc4e2a","#e31a1c","#bd0026","#800026"]
-},YlOrBr: {
-3: ["#fff7bc","#fec44f","#d95f0e"],
-4: ["#ffffd4","#fed98e","#fe9929","#cc4c02"],
-5: ["#ffffd4","#fed98e","#fe9929","#d95f0e","#993404"],
-6: ["#ffffd4","#fee391","#fec44f","#fe9929","#d95f0e","#993404"],
-7: ["#ffffd4","#fee391","#fec44f","#fe9929","#ec7014","#cc4c02","#8c2d04"],
-8: ["#ffffe5","#fff7bc","#fee391","#fec44f","#fe9929","#ec7014","#cc4c02","#8c2d04"],
-9: ["#ffffe5","#fff7bc","#fee391","#fec44f","#fe9929","#ec7014","#cc4c02","#993404","#662506"]
-},Purples: {
-3: ["#efedf5","#bcbddc","#756bb1"],
-4: ["#f2f0f7","#cbc9e2","#9e9ac8","#6a51a3"],
-5: ["#f2f0f7","#cbc9e2","#9e9ac8","#756bb1","#54278f"],
-6: ["#f2f0f7","#dadaeb","#bcbddc","#9e9ac8","#756bb1","#54278f"],
-7: ["#f2f0f7","#dadaeb","#bcbddc","#9e9ac8","#807dba","#6a51a3","#4a1486"],
-8: ["#fcfbfd","#efedf5","#dadaeb","#bcbddc","#9e9ac8","#807dba","#6a51a3","#4a1486"],
-9: ["#fcfbfd","#efedf5","#dadaeb","#bcbddc","#9e9ac8","#807dba","#6a51a3","#54278f","#3f007d"]
-},Blues: {
-3: ["#deebf7","#9ecae1","#3182bd"],
-4: ["#eff3ff","#bdd7e7","#6baed6","#2171b5"],
-5: ["#eff3ff","#bdd7e7","#6baed6","#3182bd","#08519c"],
-6: ["#eff3ff","#c6dbef","#9ecae1","#6baed6","#3182bd","#08519c"],
-7: ["#eff3ff","#c6dbef","#9ecae1","#6baed6","#4292c6","#2171b5","#084594"],
-8: ["#f7fbff","#deebf7","#c6dbef","#9ecae1","#6baed6","#4292c6","#2171b5","#084594"],
-9: ["#f7fbff","#deebf7","#c6dbef","#9ecae1","#6baed6","#4292c6","#2171b5","#08519c","#08306b"]
-},Greens: {
-3: ["#e5f5e0","#a1d99b","#31a354"],
-4: ["#edf8e9","#bae4b3","#74c476","#238b45"],
-5: ["#edf8e9","#bae4b3","#74c476","#31a354","#006d2c"],
-6: ["#edf8e9","#c7e9c0","#a1d99b","#74c476","#31a354","#006d2c"],
-7: ["#edf8e9","#c7e9c0","#a1d99b","#74c476","#41ab5d","#238b45","#005a32"],
-8: ["#f7fcf5","#e5f5e0","#c7e9c0","#a1d99b","#74c476","#41ab5d","#238b45","#005a32"],
-9: ["#f7fcf5","#e5f5e0","#c7e9c0","#a1d99b","#74c476","#41ab5d","#238b45","#006d2c","#00441b"]
-},Oranges: {
-3: ["#fee6ce","#fdae6b","#e6550d"],
-4: ["#feedde","#fdbe85","#fd8d3c","#d94701"],
-5: ["#feedde","#fdbe85","#fd8d3c","#e6550d","#a63603"],
-6: ["#feedde","#fdd0a2","#fdae6b","#fd8d3c","#e6550d","#a63603"],
-7: ["#feedde","#fdd0a2","#fdae6b","#fd8d3c","#f16913","#d94801","#8c2d04"],
-8: ["#fff5eb","#fee6ce","#fdd0a2","#fdae6b","#fd8d3c","#f16913","#d94801","#8c2d04"],
-9: ["#fff5eb","#fee6ce","#fdd0a2","#fdae6b","#fd8d3c","#f16913","#d94801","#a63603","#7f2704"]
-},Reds: {
-3: ["#fee0d2","#fc9272","#de2d26"],
-4: ["#fee5d9","#fcae91","#fb6a4a","#cb181d"],
-5: ["#fee5d9","#fcae91","#fb6a4a","#de2d26","#a50f15"],
-6: ["#fee5d9","#fcbba1","#fc9272","#fb6a4a","#de2d26","#a50f15"],
-7: ["#fee5d9","#fcbba1","#fc9272","#fb6a4a","#ef3b2c","#cb181d","#99000d"],
-8: ["#fff5f0","#fee0d2","#fcbba1","#fc9272","#fb6a4a","#ef3b2c","#cb181d","#99000d"],
-9: ["#fff5f0","#fee0d2","#fcbba1","#fc9272","#fb6a4a","#ef3b2c","#cb181d","#a50f15","#67000d"]
-},Greys: {
-3: ["#f0f0f0","#bdbdbd","#636363"],
-4: ["#f7f7f7","#cccccc","#969696","#525252"],
-5: ["#f7f7f7","#cccccc","#969696","#636363","#252525"],
-6: ["#f7f7f7","#d9d9d9","#bdbdbd","#969696","#636363","#252525"],
-7: ["#f7f7f7","#d9d9d9","#bdbdbd","#969696","#737373","#525252","#252525"],
-8: ["#ffffff","#f0f0f0","#d9d9d9","#bdbdbd","#969696","#737373","#525252","#252525"],
-9: ["#ffffff","#f0f0f0","#d9d9d9","#bdbdbd","#969696","#737373","#525252","#252525","#000000"]
-},PuOr: {
-3: ["#f1a340","#f7f7f7","#998ec3"],
-4: ["#e66101","#fdb863","#b2abd2","#5e3c99"],
-5: ["#e66101","#fdb863","#f7f7f7","#b2abd2","#5e3c99"],
-6: ["#b35806","#f1a340","#fee0b6","#d8daeb","#998ec3","#542788"],
-7: ["#b35806","#f1a340","#fee0b6","#f7f7f7","#d8daeb","#998ec3","#542788"],
-8: ["#b35806","#e08214","#fdb863","#fee0b6","#d8daeb","#b2abd2","#8073ac","#542788"],
-9: ["#b35806","#e08214","#fdb863","#fee0b6","#f7f7f7","#d8daeb","#b2abd2","#8073ac","#542788"],
-10: ["#7f3b08","#b35806","#e08214","#fdb863","#fee0b6","#d8daeb","#b2abd2","#8073ac","#542788","#2d004b"],
-11: ["#7f3b08","#b35806","#e08214","#fdb863","#fee0b6","#f7f7f7","#d8daeb","#b2abd2","#8073ac","#542788","#2d004b"]
-},BrBG: {
-3: ["#d8b365","#f5f5f5","#5ab4ac"],
-4: ["#a6611a","#dfc27d","#80cdc1","#018571"],
-5: ["#a6611a","#dfc27d","#f5f5f5","#80cdc1","#018571"],
-6: ["#8c510a","#d8b365","#f6e8c3","#c7eae5","#5ab4ac","#01665e"],
-7: ["#8c510a","#d8b365","#f6e8c3","#f5f5f5","#c7eae5","#5ab4ac","#01665e"],
-8: ["#8c510a","#bf812d","#dfc27d","#f6e8c3","#c7eae5","#80cdc1","#35978f","#01665e"],
-9: ["#8c510a","#bf812d","#dfc27d","#f6e8c3","#f5f5f5","#c7eae5","#80cdc1","#35978f","#01665e"],
-10: ["#543005","#8c510a","#bf812d","#dfc27d","#f6e8c3","#c7eae5","#80cdc1","#35978f","#01665e","#003c30"],
-11: ["#543005","#8c510a","#bf812d","#dfc27d","#f6e8c3","#f5f5f5","#c7eae5","#80cdc1","#35978f","#01665e","#003c30"]
-},PRGn: {
-3: ["#af8dc3","#f7f7f7","#7fbf7b"],
-4: ["#7b3294","#c2a5cf","#a6dba0","#008837"],
-5: ["#7b3294","#c2a5cf","#f7f7f7","#a6dba0","#008837"],
-6: ["#762a83","#af8dc3","#e7d4e8","#d9f0d3","#7fbf7b","#1b7837"],
-7: ["#762a83","#af8dc3","#e7d4e8","#f7f7f7","#d9f0d3","#7fbf7b","#1b7837"],
-8: ["#762a83","#9970ab","#c2a5cf","#e7d4e8","#d9f0d3","#a6dba0","#5aae61","#1b7837"],
-9: ["#762a83","#9970ab","#c2a5cf","#e7d4e8","#f7f7f7","#d9f0d3","#a6dba0","#5aae61","#1b7837"],
-10: ["#40004b","#762a83","#9970ab","#c2a5cf","#e7d4e8","#d9f0d3","#a6dba0","#5aae61","#1b7837","#00441b"],
-11: ["#40004b","#762a83","#9970ab","#c2a5cf","#e7d4e8","#f7f7f7","#d9f0d3","#a6dba0","#5aae61","#1b7837","#00441b"]
-},PiYG: {
-3: ["#e9a3c9","#f7f7f7","#a1d76a"],
-4: ["#d01c8b","#f1b6da","#b8e186","#4dac26"],
-5: ["#d01c8b","#f1b6da","#f7f7f7","#b8e186","#4dac26"],
-6: ["#c51b7d","#e9a3c9","#fde0ef","#e6f5d0","#a1d76a","#4d9221"],
-7: ["#c51b7d","#e9a3c9","#fde0ef","#f7f7f7","#e6f5d0","#a1d76a","#4d9221"],
-8: ["#c51b7d","#de77ae","#f1b6da","#fde0ef","#e6f5d0","#b8e186","#7fbc41","#4d9221"],
-9: ["#c51b7d","#de77ae","#f1b6da","#fde0ef","#f7f7f7","#e6f5d0","#b8e186","#7fbc41","#4d9221"],
-10: ["#8e0152","#c51b7d","#de77ae","#f1b6da","#fde0ef","#e6f5d0","#b8e186","#7fbc41","#4d9221","#276419"],
-11: ["#8e0152","#c51b7d","#de77ae","#f1b6da","#fde0ef","#f7f7f7","#e6f5d0","#b8e186","#7fbc41","#4d9221","#276419"]
-},RdBu: {
-3: ["#ef8a62","#f7f7f7","#67a9cf"],
-4: ["#ca0020","#f4a582","#92c5de","#0571b0"],
-5: ["#ca0020","#f4a582","#f7f7f7","#92c5de","#0571b0"],
-6: ["#b2182b","#ef8a62","#fddbc7","#d1e5f0","#67a9cf","#2166ac"],
-7: ["#b2182b","#ef8a62","#fddbc7","#f7f7f7","#d1e5f0","#67a9cf","#2166ac"],
-8: ["#b2182b","#d6604d","#f4a582","#fddbc7","#d1e5f0","#92c5de","#4393c3","#2166ac"],
-9: ["#b2182b","#d6604d","#f4a582","#fddbc7","#f7f7f7","#d1e5f0","#92c5de","#4393c3","#2166ac"],
-10: ["#67001f","#b2182b","#d6604d","#f4a582","#fddbc7","#d1e5f0","#92c5de","#4393c3","#2166ac","#053061"],
-11: ["#67001f","#b2182b","#d6604d","#f4a582","#fddbc7","#f7f7f7","#d1e5f0","#92c5de","#4393c3","#2166ac","#053061"]
-},RdGy: {
-3: ["#ef8a62","#ffffff","#999999"],
-4: ["#ca0020","#f4a582","#bababa","#404040"],
-5: ["#ca0020","#f4a582","#ffffff","#bababa","#404040"],
-6: ["#b2182b","#ef8a62","#fddbc7","#e0e0e0","#999999","#4d4d4d"],
-7: ["#b2182b","#ef8a62","#fddbc7","#ffffff","#e0e0e0","#999999","#4d4d4d"],
-8: ["#b2182b","#d6604d","#f4a582","#fddbc7","#e0e0e0","#bababa","#878787","#4d4d4d"],
-9: ["#b2182b","#d6604d","#f4a582","#fddbc7","#ffffff","#e0e0e0","#bababa","#878787","#4d4d4d"],
-10: ["#67001f","#b2182b","#d6604d","#f4a582","#fddbc7","#e0e0e0","#bababa","#878787","#4d4d4d","#1a1a1a"],
-11: ["#67001f","#b2182b","#d6604d","#f4a582","#fddbc7","#ffffff","#e0e0e0","#bababa","#878787","#4d4d4d","#1a1a1a"]
-},RdYlBu: {
-3: ["#fc8d59","#ffffbf","#91bfdb"],
-4: ["#d7191c","#fdae61","#abd9e9","#2c7bb6"],
-5: ["#d7191c","#fdae61","#ffffbf","#abd9e9","#2c7bb6"],
-6: ["#d73027","#fc8d59","#fee090","#e0f3f8","#91bfdb","#4575b4"],
-7: ["#d73027","#fc8d59","#fee090","#ffffbf","#e0f3f8","#91bfdb","#4575b4"],
-8: ["#d73027","#f46d43","#fdae61","#fee090","#e0f3f8","#abd9e9","#74add1","#4575b4"],
-9: ["#d73027","#f46d43","#fdae61","#fee090","#ffffbf","#e0f3f8","#abd9e9","#74add1","#4575b4"],
-10: ["#a50026","#d73027","#f46d43","#fdae61","#fee090","#e0f3f8","#abd9e9","#74add1","#4575b4","#313695"],
-11: ["#a50026","#d73027","#f46d43","#fdae61","#fee090","#ffffbf","#e0f3f8","#abd9e9","#74add1","#4575b4","#313695"]
-},Spectral: {
-3: ["#fc8d59","#ffffbf","#99d594"],
-4: ["#d7191c","#fdae61","#abdda4","#2b83ba"],
-5: ["#d7191c","#fdae61","#ffffbf","#abdda4","#2b83ba"],
-6: ["#d53e4f","#fc8d59","#fee08b","#e6f598","#99d594","#3288bd"],
-7: ["#d53e4f","#fc8d59","#fee08b","#ffffbf","#e6f598","#99d594","#3288bd"],
-8: ["#d53e4f","#f46d43","#fdae61","#fee08b","#e6f598","#abdda4","#66c2a5","#3288bd"],
-9: ["#d53e4f","#f46d43","#fdae61","#fee08b","#ffffbf","#e6f598","#abdda4","#66c2a5","#3288bd"],
-10: ["#9e0142","#d53e4f","#f46d43","#fdae61","#fee08b","#e6f598","#abdda4","#66c2a5","#3288bd","#5e4fa2"],
-11: ["#9e0142","#d53e4f","#f46d43","#fdae61","#fee08b","#ffffbf","#e6f598","#abdda4","#66c2a5","#3288bd","#5e4fa2"]
-},RdYlGn: {
-3: ["#fc8d59","#ffffbf","#91cf60"],
-4: ["#d7191c","#fdae61","#a6d96a","#1a9641"],
-5: ["#d7191c","#fdae61","#ffffbf","#a6d96a","#1a9641"],
-6: ["#d73027","#fc8d59","#fee08b","#d9ef8b","#91cf60","#1a9850"],
-7: ["#d73027","#fc8d59","#fee08b","#ffffbf","#d9ef8b","#91cf60","#1a9850"],
-8: ["#d73027","#f46d43","#fdae61","#fee08b","#d9ef8b","#a6d96a","#66bd63","#1a9850"],
-9: ["#d73027","#f46d43","#fdae61","#fee08b","#ffffbf","#d9ef8b","#a6d96a","#66bd63","#1a9850"],
-10: ["#a50026","#d73027","#f46d43","#fdae61","#fee08b","#d9ef8b","#a6d96a","#66bd63","#1a9850","#006837"],
-11: ["#a50026","#d73027","#f46d43","#fdae61","#fee08b","#ffffbf","#d9ef8b","#a6d96a","#66bd63","#1a9850","#006837"]
-},Accent: {
-3: ["#7fc97f","#beaed4","#fdc086"],
-4: ["#7fc97f","#beaed4","#fdc086","#ffff99"],
-5: ["#7fc97f","#beaed4","#fdc086","#ffff99","#386cb0"],
-6: ["#7fc97f","#beaed4","#fdc086","#ffff99","#386cb0","#f0027f"],
-7: ["#7fc97f","#beaed4","#fdc086","#ffff99","#386cb0","#f0027f","#bf5b17"],
-8: ["#7fc97f","#beaed4","#fdc086","#ffff99","#386cb0","#f0027f","#bf5b17","#666666"]
-},Dark2: {
-3: ["#1b9e77","#d95f02","#7570b3"],
-4: ["#1b9e77","#d95f02","#7570b3","#e7298a"],
-5: ["#1b9e77","#d95f02","#7570b3","#e7298a","#66a61e"],
-6: ["#1b9e77","#d95f02","#7570b3","#e7298a","#66a61e","#e6ab02"],
-7: ["#1b9e77","#d95f02","#7570b3","#e7298a","#66a61e","#e6ab02","#a6761d"],
-8: ["#1b9e77","#d95f02","#7570b3","#e7298a","#66a61e","#e6ab02","#a6761d","#666666"]
-},Paired: {
-3: ["#a6cee3","#1f78b4","#b2df8a"],
-4: ["#a6cee3","#1f78b4","#b2df8a","#33a02c"],
-5: ["#a6cee3","#1f78b4","#b2df8a","#33a02c","#fb9a99"],
-6: ["#a6cee3","#1f78b4","#b2df8a","#33a02c","#fb9a99","#e31a1c"],
-7: ["#a6cee3","#1f78b4","#b2df8a","#33a02c","#fb9a99","#e31a1c","#fdbf6f"],
-8: ["#a6cee3","#1f78b4","#b2df8a","#33a02c","#fb9a99","#e31a1c","#fdbf6f","#ff7f00"],
-9: ["#a6cee3","#1f78b4","#b2df8a","#33a02c","#fb9a99","#e31a1c","#fdbf6f","#ff7f00","#cab2d6"],
-10: ["#a6cee3","#1f78b4","#b2df8a","#33a02c","#fb9a99","#e31a1c","#fdbf6f","#ff7f00","#cab2d6","#6a3d9a"],
-11: ["#a6cee3","#1f78b4","#b2df8a","#33a02c","#fb9a99","#e31a1c","#fdbf6f","#ff7f00","#cab2d6","#6a3d9a","#ffff99"],
-12: ["#a6cee3","#1f78b4","#b2df8a","#33a02c","#fb9a99","#e31a1c","#fdbf6f","#ff7f00","#cab2d6","#6a3d9a","#ffff99","#b15928"]
-},Pastel1: {
-3: ["#fbb4ae","#b3cde3","#ccebc5"],
-4: ["#fbb4ae","#b3cde3","#ccebc5","#decbe4"],
-5: ["#fbb4ae","#b3cde3","#ccebc5","#decbe4","#fed9a6"],
-6: ["#fbb4ae","#b3cde3","#ccebc5","#decbe4","#fed9a6","#ffffcc"],
-7: ["#fbb4ae","#b3cde3","#ccebc5","#decbe4","#fed9a6","#ffffcc","#e5d8bd"],
-8: ["#fbb4ae","#b3cde3","#ccebc5","#decbe4","#fed9a6","#ffffcc","#e5d8bd","#fddaec"],
-9: ["#fbb4ae","#b3cde3","#ccebc5","#decbe4","#fed9a6","#ffffcc","#e5d8bd","#fddaec","#f2f2f2"]
-},Pastel2: {
-3: ["#b3e2cd","#fdcdac","#cbd5e8"],
-4: ["#b3e2cd","#fdcdac","#cbd5e8","#f4cae4"],
-5: ["#b3e2cd","#fdcdac","#cbd5e8","#f4cae4","#e6f5c9"],
-6: ["#b3e2cd","#fdcdac","#cbd5e8","#f4cae4","#e6f5c9","#fff2ae"],
-7: ["#b3e2cd","#fdcdac","#cbd5e8","#f4cae4","#e6f5c9","#fff2ae","#f1e2cc"],
-8: ["#b3e2cd","#fdcdac","#cbd5e8","#f4cae4","#e6f5c9","#fff2ae","#f1e2cc","#cccccc"]
-},Set1: {
-3: ["#e41a1c","#377eb8","#4daf4a"],
-4: ["#e41a1c","#377eb8","#4daf4a","#984ea3"],
-5: ["#e41a1c","#377eb8","#4daf4a","#984ea3","#ff7f00"],
-6: ["#e41a1c","#377eb8","#4daf4a","#984ea3","#ff7f00","#ffff33"],
-7: ["#e41a1c","#377eb8","#4daf4a","#984ea3","#ff7f00","#ffff33","#a65628"],
-8: ["#e41a1c","#377eb8","#4daf4a","#984ea3","#ff7f00","#ffff33","#a65628","#f781bf"],
-9: ["#e41a1c","#377eb8","#4daf4a","#984ea3","#ff7f00","#ffff33","#a65628","#f781bf","#999999"]
-},Set2: {
-3: ["#66c2a5","#fc8d62","#8da0cb"],
-4: ["#66c2a5","#fc8d62","#8da0cb","#e78ac3"],
-5: ["#66c2a5","#fc8d62","#8da0cb","#e78ac3","#a6d854"],
-6: ["#66c2a5","#fc8d62","#8da0cb","#e78ac3","#a6d854","#ffd92f"],
-7: ["#66c2a5","#fc8d62","#8da0cb","#e78ac3","#a6d854","#ffd92f","#e5c494"],
-8: ["#66c2a5","#fc8d62","#8da0cb","#e78ac3","#a6d854","#ffd92f","#e5c494","#b3b3b3"]
-},Set3: {
-3: ["#8dd3c7","#ffffb3","#bebada"],
-4: ["#8dd3c7","#ffffb3","#bebada","#fb8072"],
-5: ["#8dd3c7","#ffffb3","#bebada","#fb8072","#80b1d3"],
-6: ["#8dd3c7","#ffffb3","#bebada","#fb8072","#80b1d3","#fdb462"],
-7: ["#8dd3c7","#ffffb3","#bebada","#fb8072","#80b1d3","#fdb462","#b3de69"],
-8: ["#8dd3c7","#ffffb3","#bebada","#fb8072","#80b1d3","#fdb462","#b3de69","#fccde5"],
-9: ["#8dd3c7","#ffffb3","#bebada","#fb8072","#80b1d3","#fdb462","#b3de69","#fccde5","#d9d9d9"],
-10: ["#8dd3c7","#ffffb3","#bebada","#fb8072","#80b1d3","#fdb462","#b3de69","#fccde5","#d9d9d9","#bc80bd"],
-11: ["#8dd3c7","#ffffb3","#bebada","#fb8072","#80b1d3","#fdb462","#b3de69","#fccde5","#d9d9d9","#bc80bd","#ccebc5"],
-12: ["#8dd3c7","#ffffb3","#bebada","#fb8072","#80b1d3","#fdb462","#b3de69","#fccde5","#d9d9d9","#bc80bd","#ccebc5","#ffed6f"]
-}};
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/lib/crossfilter.js b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/lib/crossfilter.js
deleted file mode 100755
index 1aaabca2..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/lib/crossfilter.js
+++ /dev/null
@@ -1,1180 +0,0 @@
-(function(exports){
-crossfilter.version = "1.0.3";
-function crossfilter_identity(d) {
-  return d;
-}
-crossfilter.permute = permute;
-
-function permute(array, index) {
-  for (var i = 0, n = index.length, copy = new Array(n); i < n; ++i) {
-    copy[i] = array[index[i]];
-  }
-  return copy;
-}
-var bisect = crossfilter.bisect = bisect_by(crossfilter_identity);
-
-bisect.by = bisect_by;
-
-function bisect_by(f) {
-
-  // Locate the insertion point for x in a to maintain sorted order. The
-  // arguments lo and hi may be used to specify a subset of the array which
-  // should be considered; by default the entire array is used. If x is already
-  // present in a, the insertion point will be before (to the left of) any
-  // existing entries. The return value is suitable for use as the first
-  // argument to `array.splice` assuming that a is already sorted.
-  //
-  // The returned insertion point i partitions the array a into two halves so
-  // that all v < x for v in a[lo:i] for the left side and all v >= x for v in
-  // a[i:hi] for the right side.
-  function bisectLeft(a, x, lo, hi) {
-    while (lo < hi) {
-      var mid = lo + hi >> 1;
-      if (f(a[mid]) < x) lo = mid + 1;
-      else hi = mid;
-    }
-    return lo;
-  }
-
-  // Similar to bisectLeft, but returns an insertion point which comes after (to
-  // the right of) any existing entries of x in a.
-  //
-  // The returned insertion point i partitions the array into two halves so that
-  // all v <= x for v in a[lo:i] for the left side and all v > x for v in
-  // a[i:hi] for the right side.
-  function bisectRight(a, x, lo, hi) {
-    while (lo < hi) {
-      var mid = lo + hi >> 1;
-      if (x < f(a[mid])) hi = mid;
-      else lo = mid + 1;
-    }
-    return lo;
-  }
-
-  bisectRight.right = bisectRight;
-  bisectRight.left = bisectLeft;
-  return bisectRight;
-}
-var heap = crossfilter.heap = heap_by(crossfilter_identity);
-
-heap.by = heap_by;
-
-function heap_by(f) {
-
-  // Builds a binary heap within the specified array a[lo:hi]. The heap has the
-  // property such that the parent a[lo+i] is always less than or equal to its
-  // two children: a[lo+2*i+1] and a[lo+2*i+2].
-  function heap(a, lo, hi) {
-    var n = hi - lo,
-        i = (n >>> 1) + 1;
-    while (--i > 0) sift(a, i, n, lo);
-    return a;
-  }
-
-  // Sorts the specified array a[lo:hi] in descending order, assuming it is
-  // already a heap.
-  function sort(a, lo, hi) {
-    var n = hi - lo,
-        t;
-    while (--n > 0) t = a[lo], a[lo] = a[lo + n], a[lo + n] = t, sift(a, 1, n, lo);
-    return a;
-  }
-
-  // Sifts the element a[lo+i-1] down the heap, where the heap is the contiguous
-  // slice of array a[lo:lo+n]. This method can also be used to update the heap
-  // incrementally, without incurring the full cost of reconstructing the heap.
-  function sift(a, i, n, lo) {
-    var d = a[--lo + i],
-        x = f(d),
-        child;
-    while ((child = i << 1) <= n) {
-      if (child < n && f(a[lo + child]) > f(a[lo + child + 1])) child++;
-      if (x <= f(a[lo + child])) break;
-      a[lo + i] = a[lo + child];
-      i = child;
-    }
-    a[lo + i] = d;
-  }
-
-  heap.sort = sort;
-  return heap;
-}
-var heapselect = crossfilter.heapselect = heapselect_by(crossfilter_identity);
-
-heapselect.by = heapselect_by;
-
-function heapselect_by(f) {
-  var heap = heap_by(f);
-
-  // Returns a new array containing the top k elements in the array a[lo:hi].
-  // The returned array is not sorted, but maintains the heap property. If k is
-  // greater than hi - lo, then fewer than k elements will be returned. The
-  // order of elements in a is unchanged by this operation.
-  function heapselect(a, lo, hi, k) {
-    var queue = new Array(k = Math.min(hi - lo, k)),
-        min,
-        i,
-        x,
-        d;
-
-    for (i = 0; i < k; ++i) queue[i] = a[lo++];
-    heap(queue, 0, k);
-
-    if (lo < hi) {
-      min = f(queue[0]);
-      do {
-        if (x = f(d = a[lo]) > min) {
-          queue[0] = d;
-          min = f(heap(queue, 0, k)[0]);
-        }
-      } while (++lo < hi);
-    }
-
-    return queue;
-  }
-
-  return heapselect;
-}
-var insertionsort = crossfilter.insertionsort = insertionsort_by(crossfilter_identity);
-
-insertionsort.by = insertionsort_by;
-
-function insertionsort_by(f) {
-
-  function insertionsort(a, lo, hi) {
-    for (var i = lo + 1; i < hi; ++i) {
-      for (var j = i, t = a[i], x = f(t); j > lo && f(a[j - 1]) > x; --j) {
-        a[j] = a[j - 1];
-      }
-      a[j] = t;
-    }
-    return a;
-  }
-
-  return insertionsort;
-}
-// Algorithm designed by Vladimir Yaroslavskiy.
-// Implementation based on the Dart project; see lib/dart/LICENSE for details.
-
-var quicksort = crossfilter.quicksort = quicksort_by(crossfilter_identity);
-
-quicksort.by = quicksort_by;
-
-function quicksort_by(f) {
-  var insertionsort = insertionsort_by(f);
-
-  function sort(a, lo, hi) {
-    return (hi - lo < quicksort_sizeThreshold
-        ? insertionsort
-        : quicksort)(a, lo, hi);
-  }
-
-  function quicksort(a, lo, hi) {
-
-    // Compute the two pivots by looking at 5 elements.
-    var sixth = (hi - lo) / 6 | 0,
-        i1 = lo + sixth,
-        i5 = hi - 1 - sixth,
-        i3 = lo + hi - 1 >> 1,  // The midpoint.
-        i2 = i3 - sixth,
-        i4 = i3 + sixth;
-
-    var e1 = a[i1], x1 = f(e1),
-        e2 = a[i2], x2 = f(e2),
-        e3 = a[i3], x3 = f(e3),
-        e4 = a[i4], x4 = f(e4),
-        e5 = a[i5], x5 = f(e5);
-
-    var t;
-
-    // Sort the selected 5 elements using a sorting network.
-    if (x1 > x2) t = e1, e1 = e2, e2 = t, t = x1, x1 = x2, x2 = t;
-    if (x4 > x5) t = e4, e4 = e5, e5 = t, t = x4, x4 = x5, x5 = t;
-    if (x1 > x3) t = e1, e1 = e3, e3 = t, t = x1, x1 = x3, x3 = t;
-    if (x2 > x3) t = e2, e2 = e3, e3 = t, t = x2, x2 = x3, x3 = t;
-    if (x1 > x4) t = e1, e1 = e4, e4 = t, t = x1, x1 = x4, x4 = t;
-    if (x3 > x4) t = e3, e3 = e4, e4 = t, t = x3, x3 = x4, x4 = t;
-    if (x2 > x5) t = e2, e2 = e5, e5 = t, t = x2, x2 = x5, x5 = t;
-    if (x2 > x3) t = e2, e2 = e3, e3 = t, t = x2, x2 = x3, x3 = t;
-    if (x4 > x5) t = e4, e4 = e5, e5 = t, t = x4, x4 = x5, x5 = t;
-
-    var pivot1 = e2, pivotValue1 = x2,
-        pivot2 = e4, pivotValue2 = x4;
-
-    // e2 and e4 have been saved in the pivot variables. They will be written
-    // back, once the partitioning is finished.
-    a[i1] = e1;
-    a[i2] = a[lo];
-    a[i3] = e3;
-    a[i4] = a[hi - 1];
-    a[i5] = e5;
-
-    var less = lo + 1,   // First element in the middle partition.
-        great = hi - 2;  // Last element in the middle partition.
-
-    // Note that for value comparison, <, <=, >= and > coerce to a primitive via
-    // Object.prototype.valueOf; == and === do not, so in order to be consistent
-    // with natural order (such as for Date objects), we must do two compares.
-    var pivotsEqual = pivotValue1 <= pivotValue2 && pivotValue1 >= pivotValue2;
-    if (pivotsEqual) {
-
-      // Degenerated case where the partitioning becomes a dutch national flag
-      // problem.
-      //
-      // [ |  < pivot  | == pivot | unpartitioned | > pivot  | ]
-      //  ^             ^          ^             ^            ^
-      // left         less         k           great         right
-      //
-      // a[left] and a[right] are undefined and are filled after the
-      // partitioning.
-      //
-      // Invariants:
-      //   1) for x in ]left, less[ : x < pivot.
-      //   2) for x in [less, k[ : x == pivot.
-      //   3) for x in ]great, right[ : x > pivot.
-      for (var k = less; k <= great; ++k) {
-        var ek = a[k], xk = f(ek);
-        if (xk < pivotValue1) {
-          if (k !== less) {
-            a[k] = a[less];
-            a[less] = ek;
-          }
-          ++less;
-        } else if (xk > pivotValue1) {
-
-          // Find the first element <= pivot in the range [k - 1, great] and
-          // put [:ek:] there. We know that such an element must exist:
-          // When k == less, then el3 (which is equal to pivot) lies in the
-          // interval. Otherwise a[k - 1] == pivot and the search stops at k-1.
-          // Note that in the latter case invariant 2 will be violated for a
-          // short amount of time. The invariant will be restored when the
-          // pivots are put into their final positions.
-          while (true) {
-            var greatValue = f(a[great]);
-            if (greatValue > pivotValue1) {
-              great--;
-              // This is the only location in the while-loop where a new
-              // iteration is started.
-              continue;
-            } else if (greatValue < pivotValue1) {
-              // Triple exchange.
-              a[k] = a[less];
-              a[less++] = a[great];
-              a[great--] = ek;
-              break;
-            } else {
-              a[k] = a[great];
-              a[great--] = ek;
-              // Note: if great < k then we will exit the outer loop and fix
-              // invariant 2 (which we just violated).
-              break;
-            }
-          }
-        }
-      }
-    } else {
-
-      // We partition the list into three parts:
-      //  1. < pivot1
-      //  2. >= pivot1 && <= pivot2
-      //  3. > pivot2
-      //
-      // During the loop we have:
-      // [ | < pivot1 | >= pivot1 && <= pivot2 | unpartitioned  | > pivot2  | ]
-      //  ^            ^                        ^              ^             ^
-      // left         less                     k              great        right
-      //
-      // a[left] and a[right] are undefined and are filled after the
-      // partitioning.
-      //
-      // Invariants:
-      //   1. for x in ]left, less[ : x < pivot1
-      //   2. for x in [less, k[ : pivot1 <= x && x <= pivot2
-      //   3. for x in ]great, right[ : x > pivot2
-      for (var k = less; k <= great; k++) {
-        var ek = a[k], xk = f(ek);
-        if (xk < pivotValue1) {
-          if (k !== less) {
-            a[k] = a[less];
-            a[less] = ek;
-          }
-          ++less;
-        } else {
-          if (xk > pivotValue2) {
-            while (true) {
-              var greatValue = f(a[great]);
-              if (greatValue > pivotValue2) {
-                great--;
-                if (great < k) break;
-                // This is the only location inside the loop where a new
-                // iteration is started.
-                continue;
-              } else {
-                // a[great] <= pivot2.
-                if (greatValue < pivotValue1) {
-                  // Triple exchange.
-                  a[k] = a[less];
-                  a[less++] = a[great];
-                  a[great--] = ek;
-                } else {
-                  // a[great] >= pivot1.
-                  a[k] = a[great];
-                  a[great--] = ek;
-                }
-                break;
-              }
-            }
-          }
-        }
-      }
-    }
-
-    // Move pivots into their final positions.
-    // We shrunk the list from both sides (a[left] and a[right] have
-    // meaningless values in them) and now we move elements from the first
-    // and third partition into these locations so that we can store the
-    // pivots.
-    a[lo] = a[less - 1];
-    a[less - 1] = pivot1;
-    a[hi - 1] = a[great + 1];
-    a[great + 1] = pivot2;
-
-    // The list is now partitioned into three partitions:
-    // [ < pivot1   | >= pivot1 && <= pivot2   |  > pivot2   ]
-    //  ^            ^                        ^             ^
-    // left         less                     great        right
-
-    // Recursive descent. (Don't include the pivot values.)
-    sort(a, lo, less - 1);
-    sort(a, great + 2, hi);
-
-    if (pivotsEqual) {
-      // All elements in the second partition are equal to the pivot. No
-      // need to sort them.
-      return a;
-    }
-
-    // In theory it should be enough to call _doSort recursively on the second
-    // partition.
-    // The Android source however removes the pivot elements from the recursive
-    // call if the second partition is too large (more than 2/3 of the list).
-    if (less < i1 && great > i5) {
-      var lessValue, greatValue;
-      while ((lessValue = f(a[less])) <= pivotValue1 && lessValue >= pivotValue1) ++less;
-      while ((greatValue = f(a[great])) <= pivotValue2 && greatValue >= pivotValue2) --great;
-
-      // Copy paste of the previous 3-way partitioning with adaptions.
-      //
-      // We partition the list into three parts:
-      //  1. == pivot1
-      //  2. > pivot1 && < pivot2
-      //  3. == pivot2
-      //
-      // During the loop we have:
-      // [ == pivot1 | > pivot1 && < pivot2 | unpartitioned  | == pivot2 ]
-      //              ^                      ^              ^
-      //            less                     k              great
-      //
-      // Invariants:
-      //   1. for x in [ *, less[ : x == pivot1
-      //   2. for x in [less, k[ : pivot1 < x && x < pivot2
-      //   3. for x in ]great, * ] : x == pivot2
-      for (var k = less; k <= great; k++) {
-        var ek = a[k], xk = f(ek);
-        if (xk <= pivotValue1 && xk >= pivotValue1) {
-          if (k !== less) {
-            a[k] = a[less];
-            a[less] = ek;
-          }
-          less++;
-        } else {
-          if (xk <= pivotValue2 && xk >= pivotValue2) {
-            while (true) {
-              var greatValue = f(a[great]);
-              if (greatValue <= pivotValue2 && greatValue >= pivotValue2) {
-                great--;
-                if (great < k) break;
-                // This is the only location inside the loop where a new
-                // iteration is started.
-                continue;
-              } else {
-                // a[great] < pivot2.
-                if (greatValue < pivotValue1) {
-                  // Triple exchange.
-                  a[k] = a[less];
-                  a[less++] = a[great];
-                  a[great--] = ek;
-                } else {
-                  // a[great] == pivot1.
-                  a[k] = a[great];
-                  a[great--] = ek;
-                }
-                break;
-              }
-            }
-          }
-        }
-      }
-    }
-
-    // The second partition has now been cleared of pivot elements and looks
-    // as follows:
-    // [  *  |  > pivot1 && < pivot2  | * ]
-    //        ^                      ^
-    //       less                  great
-    // Sort the second partition using recursive descent.
-
-    // The second partition looks as follows:
-    // [  *  |  >= pivot1 && <= pivot2  | * ]
-    //        ^                        ^
-    //       less                    great
-    // Simply sort it by recursive descent.
-
-    return sort(a, less, great + 1);
-  }
-
-  return sort;
-}
-
-var quicksort_sizeThreshold = 32;
-var crossfilter_array8 = crossfilter_arrayUntyped,
-    crossfilter_array16 = crossfilter_arrayUntyped,
-    crossfilter_array32 = crossfilter_arrayUntyped,
-    crossfilter_arrayLengthen = crossfilter_identity,
-    crossfilter_arrayWiden = crossfilter_identity;
-
-if (typeof Uint8Array !== "undefined") {
-  crossfilter_array8 = function(n) { return new Uint8Array(n); };
-  crossfilter_array16 = function(n) { return new Uint16Array(n); };
-  crossfilter_array32 = function(n) { return new Uint32Array(n); };
-
-  crossfilter_arrayLengthen = function(array, length) {
-    var copy = new array.constructor(length);
-    copy.set(array);
-    return copy;
-  };
-
-  crossfilter_arrayWiden = function(array, width) {
-    var copy;
-    switch (width) {
-      case 16: copy = crossfilter_array16(array.length); break;
-      case 32: copy = crossfilter_array32(array.length); break;
-      default: throw new Error("invalid array width!");
-    }
-    copy.set(array);
-    return copy;
-  };
-}
-
-function crossfilter_arrayUntyped(n) {
-  return new Array(n);
-}
-function crossfilter_filterExact(bisect, value) {
-  return function(values) {
-    var n = values.length;
-    return [bisect.left(values, value, 0, n), bisect.right(values, value, 0, n)];
-  };
-}
-
-function crossfilter_filterRange(bisect, range) {
-  var min = range[0],
-      max = range[1];
-  return function(values) {
-    var n = values.length;
-    return [bisect.left(values, min, 0, n), bisect.left(values, max, 0, n)];
-  };
-}
-
-function crossfilter_filterAll(values) {
-  return [0, values.length];
-}
-function crossfilter_null() {
-  return null;
-}
-function crossfilter_zero() {
-  return 0;
-}
-function crossfilter_reduceIncrement(p) {
-  return p + 1;
-}
-
-function crossfilter_reduceDecrement(p) {
-  return p - 1;
-}
-
-function crossfilter_reduceAdd(f) {
-  return function(p, v) {
-    return p + +f(v);
-  };
-}
-
-function crossfilter_reduceSubtract(f) {
-  return function(p, v) {
-    return p - f(v);
-  };
-}
-exports.crossfilter = crossfilter;
-
-function crossfilter() {
-  var crossfilter = {
-    add: add,
-    dimension: dimension,
-    groupAll: groupAll,
-    size: size
-  };
-
-  var data = [], // the records
-      n = 0, // the number of records; data.length
-      m = 0, // number of dimensions in use
-      M = 8, // number of dimensions that can fit in `filters`
-      filters = crossfilter_array8(0), // M bits per record; 1 is filtered out
-      filterListeners = [], // when the filters change
-      dataListeners = []; // when data is added
-
-  // Adds the specified new records to this crossfilter.
-  function add(newData) {
-    var n0 = n,
-        n1 = newData.length;
-
-    // If there's actually new data to add…
-    // Merge the new data into the existing data.
-    // Lengthen the filter bitset to handle the new records.
-    // Notify listeners (dimensions and groups) that new data is available.
-    if (n1) {
-      data = data.concat(newData);
-      filters = crossfilter_arrayLengthen(filters, n += n1);
-      dataListeners.forEach(function(l) { l(newData, n0, n1); });
-    }
-
-    return crossfilter;
-  }
-
-  // Adds a new dimension with the specified value accessor function.
-  function dimension(value) {
-    var dimension = {
-      filter: filter,
-      filterExact: filterExact,
-      filterRange: filterRange,
-      filterAll: filterAll,
-      top: top,
-      group: group,
-      groupAll: groupAll
-    };
-
-    var one = 1 << m++, // bit mask, e.g., 00001000
-        zero = ~one, // inverted one, e.g., 11110111
-        values, // sorted, cached array
-        index, // value rank ↦ object id
-        newValues, // temporary array storing newly-added values
-        newIndex, // temporary array storing newly-added index
-        sort = quicksort_by(function(i) { return newValues[i]; }),
-        refilter = crossfilter_filterAll, // for recomputing filter
-        indexListeners = [], // when data is added
-        lo0 = 0,
-        hi0 = 0;
-
-    // Updating a dimension is a two-stage process. First, we must update the
-    // associated filters for the newly-added records. Once all dimensions have
-    // updated their filters, the groups are notified to update.
-    dataListeners.unshift(preAdd);
-    dataListeners.push(postAdd);
-
-    // Incorporate any existing data into this dimension, and make sure that the
-    // filter bitset is wide enough to handle the new dimension.
-    if (m > M) filters = crossfilter_arrayWiden(filters, M <<= 1);
-    preAdd(data, 0, n);
-    postAdd(data, 0, n);
-
-    // Incorporates the specified new records into this dimension.
-    // This function is responsible for updating filters, values, and index.
-    function preAdd(newData, n0, n1) {
-
-      // Permute new values into natural order using a sorted index.
-      newValues = newData.map(value);
-      newIndex = sort(crossfilter_range(n1), 0, n1);
-      newValues = permute(newValues, newIndex);
-
-      // Bisect newValues to determine which new records are selected.
-      var bounds = refilter(newValues), lo1 = bounds[0], hi1 = bounds[1], i;
-      for (i = 0; i < lo1; ++i) filters[newIndex[i] + n0] |= one;
-      for (i = hi1; i < n1; ++i) filters[newIndex[i] + n0] |= one;
-
-      // If this dimension previously had no data, then we don't need to do the
-      // more expensive merge operation; use the new values and index as-is.
-      if (!n0) {
-        values = newValues;
-        index = newIndex;
-        lo0 = lo1;
-        hi0 = hi1;
-        return;
-      }
-
-      var oldValues = values,
-          oldIndex = index,
-          i0 = 0,
-          i1 = 0;
-
-      // Otherwise, create new arrays into which to merge new and old.
-      values = new Array(n);
-      index = crossfilter_index(n, n);
-
-      // Merge the old and new sorted values, and old and new index.
-      for (i = 0; i0 < n0 && i1 < n1; ++i) {
-        if (oldValues[i0] < newValues[i1]) {
-          values[i] = oldValues[i0];
-          index[i] = oldIndex[i0++];
-        } else {
-          values[i] = newValues[i1];
-          index[i] = newIndex[i1++] + n0;
-        }
-      }
-
-      // Add any remaining old values.
-      for (; i0 < n0; ++i0, ++i) {
-        values[i] = oldValues[i0];
-        index[i] = oldIndex[i0];
-      }
-
-      // Add any remaining new values.
-      for (; i1 < n1; ++i1, ++i) {
-        values[i] = newValues[i1];
-        index[i] = newIndex[i1] + n0;
-      }
-
-      // Bisect again to recompute lo0 and hi0.
-      bounds = refilter(values), lo0 = bounds[0], hi0 = bounds[1];
-    }
-
-    // When all filters have updated, notify index listeners of the new values.
-    function postAdd(newData, n0, n1) {
-      indexListeners.forEach(function(l) { l(newValues, newIndex, n0, n1); });
-      newValues = newIndex = null;
-    }
-
-    // Updates the selected values based on the specified bounds [lo, hi].
-    // This implementation is used by all the public filter methods.
-    function filterIndex(bounds) {
-      var i,
-          j,
-          k,
-          lo1 = bounds[0],
-          hi1 = bounds[1],
-          added = [],
-          removed = [];
-
-      // Fast incremental update based on previous lo index.
-      if (lo1 < lo0) {
-        for (i = lo1, j = Math.min(lo0, hi1); i < j; ++i) {
-          filters[k = index[i]] ^= one;
-          added.push(k);
-        }
-      } else if (lo1 > lo0) {
-        for (i = lo0, j = Math.min(lo1, hi0); i < j; ++i) {
-          filters[k = index[i]] ^= one;
-          removed.push(k);
-        }
-      }
-
-      // Fast incremental update based on previous hi index.
-      if (hi1 > hi0) {
-        for (i = Math.max(lo1, hi0), j = hi1; i < j; ++i) {
-          filters[k = index[i]] ^= one;
-          added.push(k);
-        }
-      } else if (hi1 < hi0) {
-        for (i = Math.max(lo0, hi1), j = hi0; i < j; ++i) {
-          filters[k = index[i]] ^= one;
-          removed.push(k);
-        }
-      }
-
-      lo0 = lo1;
-      hi0 = hi1;
-      filterListeners.forEach(function(l) { l(one, added, removed); });
-      return dimension;
-    }
-
-    // Filters this dimension using the specified range, value, or null.
-    // If the range is null, this is equivalent to filterAll.
-    // If the range is an array, this is equivalent to filterRange.
-    // Otherwise, this is equivalent to filterExact.
-    function filter(range) {
-      return range == null
-          ? filterAll() : Array.isArray(range)
-          ? filterRange(range)
-          : filterExact(range);
-    }
-
-    // Filters this dimension to select the exact value.
-    function filterExact(value) {
-      return filterIndex((refilter = crossfilter_filterExact(bisect, value))(values));
-    }
-
-    // Filters this dimension to select the specified range [lo, hi].
-    // The lower bound is inclusive, and the upper bound is exclusive.
-    function filterRange(range) {
-      return filterIndex((refilter = crossfilter_filterRange(bisect, range))(values));
-    }
-
-    // Clears any filters on this dimension.
-    function filterAll() {
-      return filterIndex((refilter = crossfilter_filterAll)(values));
-    }
-
-    // Returns the top K selected records, based on this dimension's order.
-    // Note: observes this dimension's filter, unlike group and groupAll.
-    function top(k) {
-      var array = [],
-          i = hi0,
-          j;
-
-      while (--i >= lo0 && k > 0) {
-        if (!filters[j = index[i]]) {
-          array.push(data[j]);
-          --k;
-        }
-      }
-
-      return array;
-    }
-
-    // Adds a new group to this dimension, using the specified key function.
-    function group(key) {
-      var group = {
-        top: top,
-        all: all,
-        reduce: reduce,
-        reduceCount: reduceCount,
-        reduceSum: reduceSum,
-        order: order,
-        orderNatural: orderNatural,
-        size: size
-      };
-
-      var groups, // array of {key, value}
-          groupIndex, // object id ↦ group id
-          groupWidth = 8,
-          groupCapacity = crossfilter_capacity(groupWidth),
-          k = 0, // cardinality
-          select,
-          heap,
-          reduceAdd,
-          reduceRemove,
-          reduceInitial,
-          update = crossfilter_null,
-          reset = crossfilter_null,
-          resetNeeded = true;
-
-      if (arguments.length < 1) key = crossfilter_identity;
-
-      // The group listens to the crossfilter for when any dimension changes, so
-      // that it can update the associated reduce values. It must also listen to
-      // the parent dimension for when data is added, and compute new keys.
-      filterListeners.push(update);
-      indexListeners.push(add);
-
-      // Incorporate any existing data into the grouping.
-      add(values, index, 0, n);
-
-      // Incorporates the specified new values into this group.
-      // This function is responsible for updating groups and groupIndex.
-      function add(newValues, newIndex, n0, n1) {
-        var oldGroups = groups,
-            reIndex = crossfilter_index(k, groupCapacity),
-            add = reduceAdd,
-            initial = reduceInitial,
-            k0 = k, // old cardinality
-            i0 = 0, // index of old group
-            i1 = 0, // index of new record
-            j, // object id
-            g0, // old group
-            x0, // old key
-            x1, // new key
-            g, // group to add
-            x; // key of group to add
-
-        // If a reset is needed, we don't need to update the reduce values.
-        if (resetNeeded) add = initial = crossfilter_null;
-
-        // Reset the new groups (k is a lower bound).
-        // Also, make sure that groupIndex exists and is long enough.
-        groups = new Array(k), k = 0;
-        groupIndex = k0 > 1 ? crossfilter_arrayLengthen(groupIndex, n) : crossfilter_index(n, groupCapacity);
-
-        // Get the first old key (x0 of g0), if it exists.
-        if (k0) x0 = (g0 = oldGroups[0]).key;
-
-        // Find the first new key (x1), skipping NaN keys.
-        while (i1 < n1 && !((x1 = key(newValues[i1])) >= x1)) ++i1;
-
-        // While new keys remain…
-        while (i1 < n1) {
-
-          // Determine the lesser of the two current keys; new and old.
-          // If there are no old keys remaining, then always add the new key.
-          if (g0 && x0 <= x1) {
-            g = g0, x = x0;
-
-            // Record the new index of the old group.
-            reIndex[i0] = k;
-
-            // Retrieve the next old key.
-            if (g0 = oldGroups[++i0]) x0 = g0.key;
-          } else {
-            g = {key: x1, value: initial()}, x = x1;
-          }
-
-          // Add the lesser group.
-          groups[k] = g;
-
-          // Add any selected records belonging to the added group, while
-          // advancing the new key and populating the associated group index.
-          while (!(x1 > x)) {
-            groupIndex[j = newIndex[i1] + n0] = k;
-            if (!(filters[j] & zero)) g.value = add(g.value, data[j]);
-            if (++i1 >= n1) break;
-            x1 = key(newValues[i1]);
-          }
-
-          groupIncrement();
-        }
-
-        // Add any remaining old groups that were greater than all new keys.
-        // No incremental reduce is needed; these groups have no new records.
-        // Also record the new index of the old group.
-        while (i0 < k0) {
-          groups[reIndex[i0] = k] = oldGroups[i0++];
-          groupIncrement();
-        }
-
-        // If we added any new groups before any old groups,
-        // update the group index of all the old records.
-        if (k > i0) for (i0 = 0; i0 < n0; ++i0) {
-          groupIndex[i0] = reIndex[groupIndex[i0]];
-        }
-
-        // Modify the update and reset behavior based on the cardinality.
-        // If the cardinality is less than or equal to one, then the groupIndex
-        // is not needed. If the cardinality is zero, then there are no records
-        // and therefore no groups to update or reset. Note that we also must
-        // change the registered listener to point to the new method.
-        j = filterListeners.indexOf(update);
-        if (k > 1) {
-          update = updateMany;
-          reset = resetMany;
-        } else {
-          if (k === 1) {
-            update = updateOne;
-            reset = resetOne;
-          } else {
-            update = crossfilter_null;
-            reset = crossfilter_null;
-          }
-          groupIndex = null;
-        }
-        filterListeners[j] = update;
-
-        // Count the number of added groups,
-        // and widen the group index as needed.
-        function groupIncrement() {
-          if (++k === groupCapacity) {
-            reIndex = crossfilter_arrayWiden(reIndex, groupWidth <<= 1);
-            groupIndex = crossfilter_arrayWiden(groupIndex, groupWidth);
-            groupCapacity = crossfilter_capacity(groupWidth);
-          }
-        }
-      }
-
-      // Reduces the specified selected or deselected records.
-      // This function is only used when the cardinality is greater than 1.
-      function updateMany(filterOne, added, removed) {
-        if (filterOne === one || resetNeeded) return;
-
-        var i,
-            k,
-            n,
-            g;
-
-        // Add the added values.
-        for (i = 0, n = added.length; i < n; ++i) {
-          if (!(filters[k = added[i]] & zero)) {
-            g = groups[groupIndex[k]];
-            g.value = reduceAdd(g.value, data[k]);
-          }
-        }
-
-        // Remove the removed values.
-        for (i = 0, n = removed.length; i < n; ++i) {
-          if ((filters[k = removed[i]] & zero) === filterOne) {
-            g = groups[groupIndex[k]];
-            g.value = reduceRemove(g.value, data[k]);
-          }
-        }
-      }
-
-      // Reduces the specified selected or deselected records.
-      // This function is only used when the cardinality is 1.
-      function updateOne(filterOne, added, removed) {
-        if (filterOne === one || resetNeeded) return;
-
-        var i,
-            k,
-            n,
-            g = groups[0];
-
-        // Add the added values.
-        for (i = 0, n = added.length; i < n; ++i) {
-          if (!(filters[k = added[i]] & zero)) {
-            g.value = reduceAdd(g.value, data[k]);
-          }
-        }
-
-        // Remove the removed values.
-        for (i = 0, n = removed.length; i < n; ++i) {
-          if ((filters[k = removed[i]] & zero) === filterOne) {
-            g.value = reduceRemove(g.value, data[k]);
-          }
-        }
-      }
-
-      // Recomputes the group reduce values from scratch.
-      // This function is only used when the cardinality is greater than 1.
-      function resetMany() {
-        var i,
-            g;
-
-        // Reset all group values.
-        for (i = 0; i < k; ++i) {
-          groups[i].value = reduceInitial();
-        }
-
-        // Add any selected records.
-        for (i = 0; i < n; ++i) {
-          if (!(filters[i] & zero)) {
-            g = groups[groupIndex[i]];
-            g.value = reduceAdd(g.value, data[i]);
-          }
-        }
-      }
-
-      // Recomputes the group reduce values from scratch.
-      // This function is only used when the cardinality is 1.
-      function resetOne() {
-        var i,
-            g = groups[0];
-
-        // Reset the singleton group values.
-        g.value = reduceInitial();
-
-        // Add any selected records.
-        for (i = 0; i < n; ++i) {
-          if (!(filters[i] & zero)) {
-            g.value = reduceAdd(g.value, data[i]);
-          }
-        }
-      }
-
-      // Returns the array of group values, in the dimension's natural order.
-      function all() {
-        if (resetNeeded) reset(), resetNeeded = false;
-        return groups;
-      }
-
-      // Returns a new array containing the top K group values, in reduce order.
-      function top(k) {
-        var top = select(all(), 0, groups.length, k);
-        return heap.sort(top, 0, top.length);
-      }
-
-      // Sets the reduce behavior for this group to use the specified functions.
-      // This method lazily recomputes the reduce values, waiting until needed.
-      function reduce(add, remove, initial) {
-        reduceAdd = add;
-        reduceRemove = remove;
-        reduceInitial = initial;
-        resetNeeded = true;
-        return group;
-      }
-
-      // A convenience method for reducing by count.
-      function reduceCount() {
-        return reduce(crossfilter_reduceIncrement, crossfilter_reduceDecrement, crossfilter_zero);
-      }
-
-      // A convenience method for reducing by sum(value).
-      function reduceSum(value) {
-        return reduce(crossfilter_reduceAdd(value), crossfilter_reduceSubtract(value), crossfilter_zero);
-      }
-
-      // Sets the reduce order, using the specified accessor.
-      function order(value) {
-        select = heapselect_by(valueOf);
-        heap = heap_by(valueOf);
-        function valueOf(d) { return value(d.value); }
-        return group;
-      }
-
-      // A convenience method for natural ordering by reduce value.
-      function orderNatural() {
-        return order(crossfilter_identity);
-      }
-
-      // Returns the cardinality of this group, irrespective of any filters.
-      function size() {
-        return k;
-      }
-
-      return reduceCount().orderNatural();
-    }
-
-    // A convenience function for generating a singleton group.
-    function groupAll() {
-      var g = group(crossfilter_null), all = g.all;
-      delete g.all;
-      delete g.top;
-      delete g.order;
-      delete g.orderNatural;
-      delete g.size;
-      g.value = function() { return all()[0].value; };
-      return g;
-    }
-
-    return dimension;
-  }
-
-  // A convenience method for groupAll on a dummy dimension.
-  // This implementation can be optimized since it is always cardinality 1.
-  function groupAll() {
-    var group = {
-      reduce: reduce,
-      reduceCount: reduceCount,
-      reduceSum: reduceSum,
-      value: value
-    };
-
-    var reduceValue,
-        reduceAdd,
-        reduceRemove,
-        reduceInitial,
-        resetNeeded = true;
-
-    // The group listens to the crossfilter for when any dimension changes, so
-    // that it can update the reduce value. It must also listen to the parent
-    // dimension for when data is added.
-    filterListeners.push(update);
-    dataListeners.push(add);
-
-    // For consistency; actually a no-op since resetNeeded is true.
-    add(data, 0, n);
-
-    // Incorporates the specified new values into this group.
-    function add(newData, n0, n1) {
-      var i;
-
-      if (resetNeeded) return;
-
-      // Add the added values.
-      for (i = n0; i < n; ++i) {
-        if (!filters[i]) {
-          reduceValue = reduceAdd(reduceValue, data[i]);
-        }
-      }
-    }
-
-    // Reduces the specified selected or deselected records.
-    function update(filterOne, added, removed) {
-      var i,
-          k,
-          n;
-
-      if (resetNeeded) return;
-
-      // Add the added values.
-      for (i = 0, n = added.length; i < n; ++i) {
-        if (!filters[k = added[i]]) {
-          reduceValue = reduceAdd(reduceValue, data[k]);
-        }
-      }
-
-      // Remove the removed values.
-      for (i = 0, n = removed.length; i < n; ++i) {
-        if (filters[k = removed[i]] === filterOne) {
-          reduceValue = reduceRemove(reduceValue, data[k]);
-        }
-      }
-    }
-
-    // Recomputes the group reduce value from scratch.
-    function reset() {
-      var i;
-
-      reduceValue = reduceInitial();
-
-      for (i = 0; i < n; ++i) {
-        if (!filters[i]) {
-          reduceValue = reduceAdd(reduceValue, data[i]);
-        }
-      }
-    }
-
-    // Sets the reduce behavior for this group to use the specified functions.
-    // This method lazily recomputes the reduce value, waiting until needed.
-    function reduce(add, remove, initial) {
-      reduceAdd = add;
-      reduceRemove = remove;
-      reduceInitial = initial;
-      resetNeeded = true;
-      return group;
-    }
-
-    // A convenience method for reducing by count.
-    function reduceCount() {
-      return reduce(crossfilter_reduceIncrement, crossfilter_reduceDecrement, crossfilter_zero);
-    }
-
-    // A convenience method for reducing by sum(value).
-    function reduceSum(value) {
-      return reduce(crossfilter_reduceAdd(value), crossfilter_reduceSubtract(value), crossfilter_zero);
-    }
-
-    // Returns the computed reduce value.
-    function value() {
-      if (resetNeeded) reset(), resetNeeded = false;
-      return reduceValue;
-    }
-
-    return reduceCount();
-  }
-
-  // Returns the number of records in this crossfilter, irrespective of any filters.
-  function size() {
-    return n;
-  }
-
-  return arguments.length
-      ? add(arguments[0])
-      : crossfilter;
-}
-
-// Returns an array of size n, big enough to store ids up to m.
-function crossfilter_index(n, m) {
-  return (m < 0x101
-      ? crossfilter_array8 : m < 0x10001
-      ? crossfilter_array16
-      : crossfilter_array32)(n);
-}
-
-// Constructs a new array of size n, with sequential values from 0 to n - 1.
-function crossfilter_range(n) {
-  var range = crossfilter_index(n, n);
-  for (var i = -1; ++i < n;) range[i] = i;
-  return range;
-}
-
-function crossfilter_capacity(w) {
-  return w === 8
-      ? 0x100 : w === 16
-      ? 0x10000
-      : 0x100000000;
-}
-})(this);
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/lib/crossfilter.min.js b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/lib/crossfilter.min.js
deleted file mode 100755
index 981f0d64..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/lib/crossfilter.min.js
+++ /dev/null
@@ -1 +0,0 @@
-(function(a){function b(a){return a}function c(a,b){for(var c=0,d=b.length,e=new Array(d);c<d;++c)e[c]=a[b[c]];return e}function e(a){function b(b,c,d,e){while(d<e){var f=d+e>>1;a(b[f])<c?d=f+1:e=f}return d}function c(b,c,d,e){while(d<e){var f=d+e>>1;c<a(b[f])?e=f:d=f+1}return d}return c.right=c,c.left=b,c}function g(a){function b(a,b,c){var e=c-b,f=(e>>>1)+1;while(--f>0)d(a,f,e,b);return a}function c(a,b,c){var e=c-b,f;while(--e>0)f=a[b],a[b]=a[b+e],a[b+e]=f,d(a,1,e,b);return a}function d(b,c,d,e){var f=b[--e+c],g=a(f),h;while((h=c<<1)<=d){h<d&&a(b[e+h])>a(b[e+h+1])&&h++;if(g<=a(b[e+h]))break;b[e+c]=b[e+h],c=h}b[e+c]=f}return b.sort=c,b}function i(a){function c(c,d,e,f){var g=new Array(f=Math.min(e-d,f)),h,i,j,k;for(i=0;i<f;++i)g[i]=c[d++];b(g,0,f);if(d<e){h=a(g[0]);do if(j=a(k=c[d])>h)g[0]=k,h=a(b(g,0,f)[0]);while(++d<e)}return g}var b=g(a);return c}function k(a){function b(b,c,d){for(var e=c+1;e<d;++e){for(var f=e,g=b[e],h=a(g);f>c&&a(b[f-1])>h;--f)b[f]=b[f-1];b[f]=g}return b}return b}function m(a){function c(a,c,e){return(e-c<n?b:d)(a,c,e)}function d(b,d,e){var f=(e-d)/6|0,g=d+f,h=e-1-f,i=d+e-1>>1,j=i-f,k=i+f,l=b[g],m=a(l),n=b[j],o=a(n),p=b[i],q=a(p),r=b[k],s=a(r),t=b[h],u=a(t),v;m>o&&(v=l,l=n,n=v,v=m,m=o,o=v),s>u&&(v=r,r=t,t=v,v=s,s=u,u=v),m>q&&(v=l,l=p,p=v,v=m,m=q,q=v),o>q&&(v=n,n=p,p=v,v=o,o=q,q=v),m>s&&(v=l,l=r,r=v,v=m,m=s,s=v),q>s&&(v=p,p=r,r=v,v=q,q=s,s=v),o>u&&(v=n,n=t,t=v,v=o,o=u,u=v),o>q&&(v=n,n=p,p=v,v=o,o=q,q=v),s>u&&(v=r,r=t,t=v,v=s,s=u,u=v);var w=n,x=o,y=r,z=s;b[g]=l,b[j]=b[d],b[i]=p,b[k]=b[e-1],b[h]=t;var A=d+1,B=e-2,C=x<=z&&x>=z;if(C)for(var D=A;D<=B;++D){var E=b[D],F=a(E);if(F<x)D!==A&&(b[D]=b[A],b[A]=E),++A;else if(F>x)for(;;){var G=a(b[B]);if(G>x){B--;continue}if(G<x){b[D]=b[A],b[A++]=b[B],b[B--]=E;break}b[D]=b[B],b[B--]=E;break}}else for(var D=A;D<=B;D++){var E=b[D],F=a(E);if(F<x)D!==A&&(b[D]=b[A],b[A]=E),++A;else if(F>z)for(;;){var G=a(b[B]);if(G>z){B--;if(B<D)break;continue}G<x?(b[D]=b[A],b[A++]=b[B],b[B--]=E):(b[D]=b[B],b[B--]=E);break}}b[d]=b[A-1],b[A-1]=w,b[e-1]=b[B+1],b[B+1]=y,c(b,d,A-1),c(b,B+2,e);if(C)return b;if(A<g&&B>h){var H,G;while((H=a(b[A]))<=x&&H>=x)++A;while((G=a(b[B]))<=z&&G>=z)--B;for(var D=A;D<=B;D++){var E=b[D],F=a(E);if(F<=x&&F>=x)D!==A&&(b[D]=b[A],b[A]=E),A++;else if(F<=z&&F>=z)for(;;){var G=a(b[B]);if(G<=z&&G>=z){B--;if(B<D)break;continue}G<x?(b[D]=b[A],b[A++]=b[B],b[B--]=E):(b[D]=b[B],b[B--]=E);break}}}return c(b,A,B+1)}var b=k(a);return c}function t(a){return new Array(a)}function u(a,b){return function(c){var d=c.length;return[a.left(c,b,0,d),a.right(c,b,0,d)]}}function v(a,b){var c=b[0],d=b[1];return function(b){var e=b.length;return[a.left(b,c,0,e),a.left(b,d,0,e)]}}function w(a){return[0,a.length]}function x(){return null}function y(){return 0}function z(a){return a+1}function A(a){return a-1}function B(a){return function(b,c){return b+ +a(c)}}function C(a){return function(b,c){return b-a(c)}}function D(){function p(b){var c=f,d=b.length;return d&&(e=e.concat(b),k=r(k,f+=d),n.forEach(function(a){a(b,c,d)})),a}function q(a){function P(b,d,e){H=b.map(a),I=J(F(e),0,e),H=c(H,I);var g=K(H),h=g[0],i=g[1],j;for(j=0;j<h;++j)k[I[j]+d]|=p;for(j=i;j<e;++j)k[I[j]+d]|=p;if(!d){t=H,D=I,N=h,O=i;return}var l=t,m=D,n=0,o=0;t=new Array(f),D=E(f,f);for(j=0;n<d&&o<e;++j)l[n]<H[o]?(t[j]=l[n],D[j]=m[n++]):(t[j]=H[o],D[j]=I[o++]+d);for(;n<d;++n,++j)t[j]=l[n],D[j]=m[n];for(;o<e;++o,++j)t[j]=H[o],D[j]=I[o]+d;g=K(t),N=g[0],O=g[1]}function Q(a,b,c){L.forEach(function(a){a(H,I,b,c)}),H=I=null}function R(a){var b,c,d,e=a[0],f=a[1],g=[],h=[];if(e<N)for(b=e,c=Math.min(N,f);b<c;++b)k[d=D[b]]^=p,g.push(d);else if(e>N)for(b=N,c=Math.min(e,O);b<c;++b)k[d=D[b]]^=p,h.push(d);if(f>O)for(b=Math.max(e,O),c=f;b<c;++b)k[d=D[b]]^=p,g.push(d);else if(f<O)for(b=Math.max(N,f),c=O;b<c;++b)k[d=D[b]]^=p,h.push(d);return N=e,O=f,l.forEach(function(a){a(p,g,h)}),o}function S(a){return a==null?V():Array.isArray(a)?U(a):T(a)}function T(a){return R((K=u(d,a))(t))}function U(a){return R((K=v(d,a))(t))}function V(){return R((K=w)(t))}function W(a){var b=[],c=O,d;while(--c>=N&&a>0)k[d=D[c]]||(b.push(e[d]),--a);return b}function X(a){function K(b,c,g,i){function Q(){++n===m&&(p=s(p,j<<=1),h=s(h,j),m=G(j))}var o=d,p=E(n,m),t=v,u=F,w=n,y=0,z=0,A,B,C,D,K,L;J&&(t=u=x),d=new Array(n),n=0,h=w>1?r(h,f):E(f,m),w&&(C=(B=o[0]).key);while(z<i&&!((D=a(b[z]))>=D))++z;while(z<i){if(B&&C<=D){K=B,L=C,p[y]=n;if(B=o[++y])C=B.key}else K={key:D,value:u()},L=D;d[n]=K;while(!(D>L)){h[A=c[z]+g]=n,k[A]&q||(K.value=t(K.value,e[A]));if(++z>=i)break;D=a(b[z])}Q()}while(y<w)d[p[y]=n]=o[y++],Q();if(n>y)for(y=0;y<g;++y)h[y]=p[h[y]];A=l.indexOf(H),n>1?(H=M,I=O):(n===1?(H=N,I=P):(H=x,I=x),h=null),l[A]=H}function M(a,b,c){if(a===p||J)return;var f,g,i,j;for(f=0,i=b.length;f<i;++f)k[g=b[f]]&q||(j=d[h[g]],j.value=v(j.value,e[g]));for(f=0,i=c.length;f<i;++f)(k[g=c[f]]&q)===a&&(j=d[h[g]],j.value=w(j.value,e[g]))}function N(a,b,c){if(a===p||J)return;var f,g,h,i=d[0];for(f=0,h=b.length;f<h;++f)k[g=b[f]]&q||(i.value=v(i.value,e[g]));for(f=0,h=c.length;f<h;++f)(k[g=c[f]]&q)===a&&(i.value=w(i.value,e[g]))}function O(){var a,b;for(a=0;a<n;++a)d[a].value=F();for(a=0;a<f;++a)k[a]&q||(b=d[h[a]],b.value=v(b.value,e[a]))}function P(){var a,b=d[0];b.value=F();for(a=0;a<f;++a)k[a]&q||(b.value=v(b.value,e[a]))}function Q(){return J&&(I(),J=!1),d}function R(a){var b=o(Q(),0,d.length,a);return u.sort(b,0,b.length)}function S(a,b,d){return v=a,w=b,F=d,J=!0,c}function T(){return S(z,A,y)}function U(a){return S(B(a),C(a),y)}function V(a){function b(b){return a(b.value)}return o=i(b),u=g(b),c}function W(){return V(b)}function X(){return n}var c={top:R,all:Q,reduce:S,reduceCount:T,reduceSum:U,order:V,orderNatural:W,size:X},d,h,j=8,m=G(j),n=0,o,u,v,w,F,H=x,I=x,J=!0;return arguments.length<1&&(a=b),l.push(H),L.push(K),K(t,D,0,f),T().orderNatural()}function Y(){var a=X(x),b=a.all;return delete a.all,delete a.top,delete a.order,delete a.orderNatural,delete a.size,a.value=function(){return b()[0].value},a}var o={filter:S,filterExact:T,filterRange:U,filterAll:V,top:W,group:X,groupAll:Y},p=1<<h++,q=~p,t,D,H,I,J=m(function(a){return H[a]}),K=w,L=[],N=0,O=0;return n.unshift(P),n.push(Q),h>j&&(k=s(k,j<<=1)),P(e,0,f),Q(e,0,f),o}function t(){function i(a,d,g){var i;if(h)return;for(i=d;i<f;++i)k[i]||(b=c(b,e[i]))}function j(a,f,g){var i,j,l;if(h)return;for(i=0,l=f.length;i<l;++i)k[j=f[i]]||(b=c(b,e[j]));for(i=0,l=g.length;i<l;++i)k[j=g[i]]===a&&(b=d(b,e[j]))}function m(){var a;b=g();for(a=0;a<f;++a)k[a]||(b=c(b,e[a]))}function o(b,e,f){return c=b,d=e,g=f,h=!0,a}function p(){return o(z,A,y)}function q(a){return o(B(a),C(a),y)}function r(){return h&&(m(),h=!1),b}var a={reduce:o,reduceCount:p,reduceSum:q,value:r},b,c,d,g,h=!0;return l.push(j),n.push(i),i(e,0,f),p()}function D(){return f}var a={add:p,dimension:q,groupAll:t,size:D},e=[],f=0,h=0,j=8,k=o(0),l=[],n=[];return arguments.length?p(arguments[0]):a}function E(a,b){return(b<257?o:b<65537?p:q)(a)}function F(a){var b=E(a,a);for(var c=-1;++c<a;)b[c]=c;return b}function G(a){return a===8?256:a===16?65536:4294967296}D.version="1.0.3",D.permute=c;var d=D.bisect=e(b);d.by=e;var f=D.heap=g(b);f.by=g;var h=D.heapselect=i(b);h.by=i;var j=D.insertionsort=k(b);j.by=k;var l=D.quicksort=m(b);l.by=m;var n=32,o=t,p=t,q=t,r=b,s=b;typeof Uint8Array!="undefined"&&(o=function(a){return new Uint8Array(a)},p=function(a){return new Uint16Array(a)},q=function(a){return new Uint32Array(a)},r=function(a,b){var c=new a.constructor(b);return c.set(a),c},s=function(a,b){var c;switch(b){case 16:c=p(a.length);break;case 32:c=q(a.length);break;default:throw new Error("invalid array width!")}return c.set(a),c}),a.crossfilter=D})(this);
\ No newline at end of file
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/lib/d3.v2.js b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/lib/d3.v2.js
deleted file mode 100755
index 714656b3..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/lib/d3.v2.js
+++ /dev/null
@@ -1,7033 +0,0 @@
-(function() {
-  function d3_class(ctor, properties) {
-    try {
-      for (var key in properties) {
-        Object.defineProperty(ctor.prototype, key, {
-          value: properties[key],
-          enumerable: false
-        });
-      }
-    } catch (e) {
-      ctor.prototype = properties;
-    }
-  }
-  function d3_arrayCopy(pseudoarray) {
-    var i = -1, n = pseudoarray.length, array = [];
-    while (++i < n) array.push(pseudoarray[i]);
-    return array;
-  }
-  function d3_arraySlice(pseudoarray) {
-    return Array.prototype.slice.call(pseudoarray);
-  }
-  function d3_Map() {}
-  function d3_identity(d) {
-    return d;
-  }
-  function d3_this() {
-    return this;
-  }
-  function d3_true() {
-    return true;
-  }
-  function d3_functor(v) {
-    return typeof v === "function" ? v : function() {
-      return v;
-    };
-  }
-  function d3_rebind(target, source, method) {
-    return function() {
-      var value = method.apply(source, arguments);
-      return arguments.length ? target : value;
-    };
-  }
-  function d3_number(x) {
-    return x != null && !isNaN(x);
-  }
-  function d3_zipLength(d) {
-    return d.length;
-  }
-  function d3_splitter(d) {
-    return d == null;
-  }
-  function d3_collapse(s) {
-    return s.trim().replace(/\s+/g, " ");
-  }
-  function d3_range_integerScale(x) {
-    var k = 1;
-    while (x * k % 1) k *= 10;
-    return k;
-  }
-  function d3_dispatch() {}
-  function d3_dispatch_event(dispatch) {
-    function event() {
-      var z = listeners, i = -1, n = z.length, l;
-      while (++i < n) if (l = z[i].on) l.apply(this, arguments);
-      return dispatch;
-    }
-    var listeners = [], listenerByName = new d3_Map;
-    event.on = function(name, listener) {
-      var l = listenerByName.get(name), i;
-      if (arguments.length < 2) return l && l.on;
-      if (l) {
-        l.on = null;
-        listeners = listeners.slice(0, i = listeners.indexOf(l)).concat(listeners.slice(i + 1));
-        listenerByName.remove(name);
-      }
-      if (listener) listeners.push(listenerByName.set(name, {
-        on: listener
-      }));
-      return dispatch;
-    };
-    return event;
-  }
-  function d3_format_precision(x, p) {
-    return p - (x ? 1 + Math.floor(Math.log(x + Math.pow(10, 1 + Math.floor(Math.log(x) / Math.LN10) - p)) / Math.LN10) : 1);
-  }
-  function d3_format_typeDefault(x) {
-    return x + "";
-  }
-  function d3_format_group(value) {
-    var i = value.lastIndexOf("."), f = i >= 0 ? value.substring(i) : (i = value.length, ""), t = [];
-    while (i > 0) t.push(value.substring(i -= 3, i + 3));
-    return t.reverse().join(",") + f;
-  }
-  function d3_formatPrefix(d, i) {
-    var k = Math.pow(10, Math.abs(8 - i) * 3);
-    return {
-      scale: i > 8 ? function(d) {
-        return d / k;
-      } : function(d) {
-        return d * k;
-      },
-      symbol: d
-    };
-  }
-  function d3_ease_clamp(f) {
-    return function(t) {
-      return t <= 0 ? 0 : t >= 1 ? 1 : f(t);
-    };
-  }
-  function d3_ease_reverse(f) {
-    return function(t) {
-      return 1 - f(1 - t);
-    };
-  }
-  function d3_ease_reflect(f) {
-    return function(t) {
-      return .5 * (t < .5 ? f(2 * t) : 2 - f(2 - 2 * t));
-    };
-  }
-  function d3_ease_identity(t) {
-    return t;
-  }
-  function d3_ease_poly(e) {
-    return function(t) {
-      return Math.pow(t, e);
-    };
-  }
-  function d3_ease_sin(t) {
-    return 1 - Math.cos(t * Math.PI / 2);
-  }
-  function d3_ease_exp(t) {
-    return Math.pow(2, 10 * (t - 1));
-  }
-  function d3_ease_circle(t) {
-    return 1 - Math.sqrt(1 - t * t);
-  }
-  function d3_ease_elastic(a, p) {
-    var s;
-    if (arguments.length < 2) p = .45;
-    if (arguments.length < 1) {
-      a = 1;
-      s = p / 4;
-    } else s = p / (2 * Math.PI) * Math.asin(1 / a);
-    return function(t) {
-      return 1 + a * Math.pow(2, 10 * -t) * Math.sin((t - s) * 2 * Math.PI / p);
-    };
-  }
-  function d3_ease_back(s) {
-    if (!s) s = 1.70158;
-    return function(t) {
-      return t * t * ((s + 1) * t - s);
-    };
-  }
-  function d3_ease_bounce(t) {
-    return t < 1 / 2.75 ? 7.5625 * t * t : t < 2 / 2.75 ? 7.5625 * (t -= 1.5 / 2.75) * t + .75 : t < 2.5 / 2.75 ? 7.5625 * (t -= 2.25 / 2.75) * t + .9375 : 7.5625 * (t -= 2.625 / 2.75) * t + .984375;
-  }
-  function d3_eventCancel() {
-    d3.event.stopPropagation();
-    d3.event.preventDefault();
-  }
-  function d3_eventSource() {
-    var e = d3.event, s;
-    while (s = e.sourceEvent) e = s;
-    return e;
-  }
-  function d3_eventDispatch(target) {
-    var dispatch = new d3_dispatch, i = 0, n = arguments.length;
-    while (++i < n) dispatch[arguments[i]] = d3_dispatch_event(dispatch);
-    dispatch.of = function(thiz, argumentz) {
-      return function(e1) {
-        try {
-          var e0 = e1.sourceEvent = d3.event;
-          e1.target = target;
-          d3.event = e1;
-          dispatch[e1.type].apply(thiz, argumentz);
-        } finally {
-          d3.event = e0;
-        }
-      };
-    };
-    return dispatch;
-  }
-  function d3_transform(m) {
-    var r0 = [ m.a, m.b ], r1 = [ m.c, m.d ], kx = d3_transformNormalize(r0), kz = d3_transformDot(r0, r1), ky = d3_transformNormalize(d3_transformCombine(r1, r0, -kz)) || 0;
-    if (r0[0] * r1[1] < r1[0] * r0[1]) {
-      r0[0] *= -1;
-      r0[1] *= -1;
-      kx *= -1;
-      kz *= -1;
-    }
-    this.rotate = (kx ? Math.atan2(r0[1], r0[0]) : Math.atan2(-r1[0], r1[1])) * d3_transformDegrees;
-    this.translate = [ m.e, m.f ];
-    this.scale = [ kx, ky ];
-    this.skew = ky ? Math.atan2(kz, ky) * d3_transformDegrees : 0;
-  }
-  function d3_transformDot(a, b) {
-    return a[0] * b[0] + a[1] * b[1];
-  }
-  function d3_transformNormalize(a) {
-    var k = Math.sqrt(d3_transformDot(a, a));
-    if (k) {
-      a[0] /= k;
-      a[1] /= k;
-    }
-    return k;
-  }
-  function d3_transformCombine(a, b, k) {
-    a[0] += k * b[0];
-    a[1] += k * b[1];
-    return a;
-  }
-  function d3_interpolateByName(name) {
-    return name == "transform" ? d3.interpolateTransform : d3.interpolate;
-  }
-  function d3_uninterpolateNumber(a, b) {
-    b = b - (a = +a) ? 1 / (b - a) : 0;
-    return function(x) {
-      return (x - a) * b;
-    };
-  }
-  function d3_uninterpolateClamp(a, b) {
-    b = b - (a = +a) ? 1 / (b - a) : 0;
-    return function(x) {
-      return Math.max(0, Math.min(1, (x - a) * b));
-    };
-  }
-  function d3_rgb(r, g, b) {
-    return new d3_Rgb(r, g, b);
-  }
-  function d3_Rgb(r, g, b) {
-    this.r = r;
-    this.g = g;
-    this.b = b;
-  }
-  function d3_rgb_hex(v) {
-    return v < 16 ? "0" + Math.max(0, v).toString(16) : Math.min(255, v).toString(16);
-  }
-  function d3_rgb_parse(format, rgb, hsl) {
-    var r = 0, g = 0, b = 0, m1, m2, name;
-    m1 = /([a-z]+)\((.*)\)/i.exec(format);
-    if (m1) {
-      m2 = m1[2].split(",");
-      switch (m1[1]) {
-       case "hsl":
-        {
-          return hsl(parseFloat(m2[0]), parseFloat(m2[1]) / 100, parseFloat(m2[2]) / 100);
-        }
-       case "rgb":
-        {
-          return rgb(d3_rgb_parseNumber(m2[0]), d3_rgb_parseNumber(m2[1]), d3_rgb_parseNumber(m2[2]));
-        }
-      }
-    }
-    if (name = d3_rgb_names.get(format)) return rgb(name.r, name.g, name.b);
-    if (format != null && format.charAt(0) === "#") {
-      if (format.length === 4) {
-        r = format.charAt(1);
-        r += r;
-        g = format.charAt(2);
-        g += g;
-        b = format.charAt(3);
-        b += b;
-      } else if (format.length === 7) {
-        r = format.substring(1, 3);
-        g = format.substring(3, 5);
-        b = format.substring(5, 7);
-      }
-      r = parseInt(r, 16);
-      g = parseInt(g, 16);
-      b = parseInt(b, 16);
-    }
-    return rgb(r, g, b);
-  }
-  function d3_rgb_hsl(r, g, b) {
-    var min = Math.min(r /= 255, g /= 255, b /= 255), max = Math.max(r, g, b), d = max - min, h, s, l = (max + min) / 2;
-    if (d) {
-      s = l < .5 ? d / (max + min) : d / (2 - max - min);
-      if (r == max) h = (g - b) / d + (g < b ? 6 : 0); else if (g == max) h = (b - r) / d + 2; else h = (r - g) / d + 4;
-      h *= 60;
-    } else {
-      s = h = 0;
-    }
-    return d3_hsl(h, s, l);
-  }
-  function d3_rgb_lab(r, g, b) {
-    r = d3_rgb_xyz(r);
-    g = d3_rgb_xyz(g);
-    b = d3_rgb_xyz(b);
-    var x = d3_xyz_lab((.4124564 * r + .3575761 * g + .1804375 * b) / d3_lab_X), y = d3_xyz_lab((.2126729 * r + .7151522 * g + .072175 * b) / d3_lab_Y), z = d3_xyz_lab((.0193339 * r + .119192 * g + .9503041 * b) / d3_lab_Z);
-    return d3_lab(116 * y - 16, 500 * (x - y), 200 * (y - z));
-  }
-  function d3_rgb_xyz(r) {
-    return (r /= 255) <= .04045 ? r / 12.92 : Math.pow((r + .055) / 1.055, 2.4);
-  }
-  function d3_rgb_parseNumber(c) {
-    var f = parseFloat(c);
-    return c.charAt(c.length - 1) === "%" ? Math.round(f * 2.55) : f;
-  }
-  function d3_hsl(h, s, l) {
-    return new d3_Hsl(h, s, l);
-  }
-  function d3_Hsl(h, s, l) {
-    this.h = h;
-    this.s = s;
-    this.l = l;
-  }
-  function d3_hsl_rgb(h, s, l) {
-    function v(h) {
-      if (h > 360) h -= 360; else if (h < 0) h += 360;
-      if (h < 60) return m1 + (m2 - m1) * h / 60;
-      if (h < 180) return m2;
-      if (h < 240) return m1 + (m2 - m1) * (240 - h) / 60;
-      return m1;
-    }
-    function vv(h) {
-      return Math.round(v(h) * 255);
-    }
-    var m1, m2;
-    h = h % 360;
-    if (h < 0) h += 360;
-    s = s < 0 ? 0 : s > 1 ? 1 : s;
-    l = l < 0 ? 0 : l > 1 ? 1 : l;
-    m2 = l <= .5 ? l * (1 + s) : l + s - l * s;
-    m1 = 2 * l - m2;
-    return d3_rgb(vv(h + 120), vv(h), vv(h - 120));
-  }
-  function d3_hcl(h, c, l) {
-    return new d3_Hcl(h, c, l);
-  }
-  function d3_Hcl(h, c, l) {
-    this.h = h;
-    this.c = c;
-    this.l = l;
-  }
-  function d3_hcl_lab(h, c, l) {
-    return d3_lab(l, Math.cos(h *= Math.PI / 180) * c, Math.sin(h) * c);
-  }
-  function d3_lab(l, a, b) {
-    return new d3_Lab(l, a, b);
-  }
-  function d3_Lab(l, a, b) {
-    this.l = l;
-    this.a = a;
-    this.b = b;
-  }
-  function d3_lab_rgb(l, a, b) {
-    var y = (l + 16) / 116, x = y + a / 500, z = y - b / 200;
-    x = d3_lab_xyz(x) * d3_lab_X;
-    y = d3_lab_xyz(y) * d3_lab_Y;
-    z = d3_lab_xyz(z) * d3_lab_Z;
-    return d3_rgb(d3_xyz_rgb(3.2404542 * x - 1.5371385 * y - .4985314 * z), d3_xyz_rgb(-.969266 * x + 1.8760108 * y + .041556 * z), d3_xyz_rgb(.0556434 * x - .2040259 * y + 1.0572252 * z));
-  }
-  function d3_lab_hcl(l, a, b) {
-    return d3_hcl(Math.atan2(b, a) / Math.PI * 180, Math.sqrt(a * a + b * b), l);
-  }
-  function d3_lab_xyz(x) {
-    return x > .206893034 ? x * x * x : (x - 4 / 29) / 7.787037;
-  }
-  function d3_xyz_lab(x) {
-    return x > .008856 ? Math.pow(x, 1 / 3) : 7.787037 * x + 4 / 29;
-  }
-  function d3_xyz_rgb(r) {
-    return Math.round(255 * (r <= .00304 ? 12.92 * r : 1.055 * Math.pow(r, 1 / 2.4) - .055));
-  }
-  function d3_selection(groups) {
-    d3_arraySubclass(groups, d3_selectionPrototype);
-    return groups;
-  }
-  function d3_selection_selector(selector) {
-    return function() {
-      return d3_select(selector, this);
-    };
-  }
-  function d3_selection_selectorAll(selector) {
-    return function() {
-      return d3_selectAll(selector, this);
-    };
-  }
-  function d3_selection_attr(name, value) {
-    function attrNull() {
-      this.removeAttribute(name);
-    }
-    function attrNullNS() {
-      this.removeAttributeNS(name.space, name.local);
-    }
-    function attrConstant() {
-      this.setAttribute(name, value);
-    }
-    function attrConstantNS() {
-      this.setAttributeNS(name.space, name.local, value);
-    }
-    function attrFunction() {
-      var x = value.apply(this, arguments);
-      if (x == null) this.removeAttribute(name); else this.setAttribute(name, x);
-    }
-    function attrFunctionNS() {
-      var x = value.apply(this, arguments);
-      if (x == null) this.removeAttributeNS(name.space, name.local); else this.setAttributeNS(name.space, name.local, x);
-    }
-    name = d3.ns.qualify(name);
-    return value == null ? name.local ? attrNullNS : attrNull : typeof value === "function" ? name.local ? attrFunctionNS : attrFunction : name.local ? attrConstantNS : attrConstant;
-  }
-  function d3_selection_classedRe(name) {
-    return new RegExp("(?:^|\\s+)" + d3.requote(name) + "(?:\\s+|$)", "g");
-  }
-  function d3_selection_classed(name, value) {
-    function classedConstant() {
-      var i = -1;
-      while (++i < n) name[i](this, value);
-    }
-    function classedFunction() {
-      var i = -1, x = value.apply(this, arguments);
-      while (++i < n) name[i](this, x);
-    }
-    name = name.trim().split(/\s+/).map(d3_selection_classedName);
-    var n = name.length;
-    return typeof value === "function" ? classedFunction : classedConstant;
-  }
-  function d3_selection_classedName(name) {
-    var re = d3_selection_classedRe(name);
-    return function(node, value) {
-      if (c = node.classList) return value ? c.add(name) : c.remove(name);
-      var c = node.className, cb = c.baseVal != null, cv = cb ? c.baseVal : c;
-      if (value) {
-        re.lastIndex = 0;
-        if (!re.test(cv)) {
-          cv = d3_collapse(cv + " " + name);
-          if (cb) c.baseVal = cv; else node.className = cv;
-        }
-      } else if (cv) {
-        cv = d3_collapse(cv.replace(re, " "));
-        if (cb) c.baseVal = cv; else node.className = cv;
-      }
-    };
-  }
-  function d3_selection_style(name, value, priority) {
-    function styleNull() {
-      this.style.removeProperty(name);
-    }
-    function styleConstant() {
-      this.style.setProperty(name, value, priority);
-    }
-    function styleFunction() {
-      var x = value.apply(this, arguments);
-      if (x == null) this.style.removeProperty(name); else this.style.setProperty(name, x, priority);
-    }
-    return value == null ? styleNull : typeof value === "function" ? styleFunction : styleConstant;
-  }
-  function d3_selection_property(name, value) {
-    function propertyNull() {
-      delete this[name];
-    }
-    function propertyConstant() {
-      this[name] = value;
-    }
-    function propertyFunction() {
-      var x = value.apply(this, arguments);
-      if (x == null) delete this[name]; else this[name] = x;
-    }
-    return value == null ? propertyNull : typeof value === "function" ? propertyFunction : propertyConstant;
-  }
-  function d3_selection_dataNode(data) {
-    return {
-      __data__: data
-    };
-  }
-  function d3_selection_filter(selector) {
-    return function() {
-      return d3_selectMatches(this, selector);
-    };
-  }
-  function d3_selection_sortComparator(comparator) {
-    if (!arguments.length) comparator = d3.ascending;
-    return function(a, b) {
-      return comparator(a && a.__data__, b && b.__data__);
-    };
-  }
-  function d3_selection_on(type, listener, capture) {
-    function onRemove() {
-      var wrapper = this[name];
-      if (wrapper) {
-        this.removeEventListener(type, wrapper, wrapper.$);
-        delete this[name];
-      }
-    }
-    function onAdd() {
-      function wrapper(e) {
-        var o = d3.event;
-        d3.event = e;
-        args[0] = node.__data__;
-        try {
-          listener.apply(node, args);
-        } finally {
-          d3.event = o;
-        }
-      }
-      var node = this, args = arguments;
-      onRemove.call(this);
-      this.addEventListener(type, this[name] = wrapper, wrapper.$ = capture);
-      wrapper._ = listener;
-    }
-    var name = "__on" + type, i = type.indexOf(".");
-    if (i > 0) type = type.substring(0, i);
-    return listener ? onAdd : onRemove;
-  }
-  function d3_selection_each(groups, callback) {
-    for (var j = 0, m = groups.length; j < m; j++) {
-      for (var group = groups[j], i = 0, n = group.length, node; i < n; i++) {
-        if (node = group[i]) callback(node, i, j);
-      }
-    }
-    return groups;
-  }
-  function d3_selection_enter(selection) {
-    d3_arraySubclass(selection, d3_selection_enterPrototype);
-    return selection;
-  }
-  function d3_transition(groups, id, time) {
-    d3_arraySubclass(groups, d3_transitionPrototype);
-    var tweens = new d3_Map, event = d3.dispatch("start", "end"), ease = d3_transitionEase;
-    groups.id = id;
-    groups.time = time;
-    groups.tween = function(name, tween) {
-      if (arguments.length < 2) return tweens.get(name);
-      if (tween == null) tweens.remove(name); else tweens.set(name, tween);
-      return groups;
-    };
-    groups.ease = function(value) {
-      if (!arguments.length) return ease;
-      ease = typeof value === "function" ? value : d3.ease.apply(d3, arguments);
-      return groups;
-    };
-    groups.each = function(type, listener) {
-      if (arguments.length < 2) return d3_transition_each.call(groups, type);
-      event.on(type, listener);
-      return groups;
-    };
-    d3.timer(function(elapsed) {
-      return d3_selection_each(groups, function(node, i, j) {
-        function start(elapsed) {
-          if (lock.active > id) return stop();
-          lock.active = id;
-          tweens.forEach(function(key, value) {
-            if (value = value.call(node, d, i)) {
-              tweened.push(value);
-            }
-          });
-          event.start.call(node, d, i);
-          if (!tick(elapsed)) d3.timer(tick, 0, time);
-          return 1;
-        }
-        function tick(elapsed) {
-          if (lock.active !== id) return stop();
-          var t = (elapsed - delay) / duration, e = ease(t), n = tweened.length;
-          while (n > 0) {
-            tweened[--n].call(node, e);
-          }
-          if (t >= 1) {
-            stop();
-            d3_transitionId = id;
-            event.end.call(node, d, i);
-            d3_transitionId = 0;
-            return 1;
-          }
-        }
-        function stop() {
-          if (!--lock.count) delete node.__transition__;
-          return 1;
-        }
-        var tweened = [], delay = node.delay, duration = node.duration, lock = (node = node.node).__transition__ || (node.__transition__ = {
-          active: 0,
-          count: 0
-        }), d = node.__data__;
-        ++lock.count;
-        delay <= elapsed ? start(elapsed) : d3.timer(start, delay, time);
-      });
-    }, 0, time);
-    return groups;
-  }
-  function d3_transition_each(callback) {
-    var id = d3_transitionId, ease = d3_transitionEase, delay = d3_transitionDelay, duration = d3_transitionDuration;
-    d3_transitionId = this.id;
-    d3_transitionEase = this.ease();
-    d3_selection_each(this, function(node, i, j) {
-      d3_transitionDelay = node.delay;
-      d3_transitionDuration = node.duration;
-      callback.call(node = node.node, node.__data__, i, j);
-    });
-    d3_transitionId = id;
-    d3_transitionEase = ease;
-    d3_transitionDelay = delay;
-    d3_transitionDuration = duration;
-    return this;
-  }
-  function d3_tweenNull(d, i, a) {
-    return a != "" && d3_tweenRemove;
-  }
-  function d3_tweenByName(b, name) {
-    return d3.tween(b, d3_interpolateByName(name));
-  }
-  function d3_timer_step() {
-    var elapsed, now = Date.now(), t1 = d3_timer_queue;
-    while (t1) {
-      elapsed = now - t1.then;
-      if (elapsed >= t1.delay) t1.flush = t1.callback(elapsed);
-      t1 = t1.next;
-    }
-    var delay = d3_timer_flush() - now;
-    if (delay > 24) {
-      if (isFinite(delay)) {
-        clearTimeout(d3_timer_timeout);
-        d3_timer_timeout = setTimeout(d3_timer_step, delay);
-      }
-      d3_timer_interval = 0;
-    } else {
-      d3_timer_interval = 1;
-      d3_timer_frame(d3_timer_step);
-    }
-  }
-  function d3_timer_flush() {
-    var t0 = null, t1 = d3_timer_queue, then = Infinity;
-    while (t1) {
-      if (t1.flush) {
-        t1 = t0 ? t0.next = t1.next : d3_timer_queue = t1.next;
-      } else {
-        then = Math.min(then, t1.then + t1.delay);
-        t1 = (t0 = t1).next;
-      }
-    }
-    return then;
-  }
-  function d3_mousePoint(container, e) {
-    var svg = container.ownerSVGElement || container;
-    if (svg.createSVGPoint) {
-      var point = svg.createSVGPoint();
-      if (d3_mouse_bug44083 < 0 && (window.scrollX || window.scrollY)) {
-        svg = d3.select(document.body).append("svg").style("position", "absolute").style("top", 0).style("left", 0);
-        var ctm = svg[0][0].getScreenCTM();
-        d3_mouse_bug44083 = !(ctm.f || ctm.e);
-        svg.remove();
-      }
-      if (d3_mouse_bug44083) {
-        point.x = e.pageX;
-        point.y = e.pageY;
-      } else {
-        point.x = e.clientX;
-        point.y = e.clientY;
-      }
-      point = point.matrixTransform(container.getScreenCTM().inverse());
-      return [ point.x, point.y ];
-    }
-    var rect = container.getBoundingClientRect();
-    return [ e.clientX - rect.left - container.clientLeft, e.clientY - rect.top - container.clientTop ];
-  }
-  function d3_noop() {}
-  function d3_scaleExtent(domain) {
-    var start = domain[0], stop = domain[domain.length - 1];
-    return start < stop ? [ start, stop ] : [ stop, start ];
-  }
-  function d3_scaleRange(scale) {
-    return scale.rangeExtent ? scale.rangeExtent() : d3_scaleExtent(scale.range());
-  }
-  function d3_scale_nice(domain, nice) {
-    var i0 = 0, i1 = domain.length - 1, x0 = domain[i0], x1 = domain[i1], dx;
-    if (x1 < x0) {
-      dx = i0, i0 = i1, i1 = dx;
-      dx = x0, x0 = x1, x1 = dx;
-    }
-    if (nice = nice(x1 - x0)) {
-      domain[i0] = nice.floor(x0);
-      domain[i1] = nice.ceil(x1);
-    }
-    return domain;
-  }
-  function d3_scale_niceDefault() {
-    return Math;
-  }
-  function d3_scale_linear(domain, range, interpolate, clamp) {
-    function rescale() {
-      var linear = Math.min(domain.length, range.length) > 2 ? d3_scale_polylinear : d3_scale_bilinear, uninterpolate = clamp ? d3_uninterpolateClamp : d3_uninterpolateNumber;
-      output = linear(domain, range, uninterpolate, interpolate);
-      input = linear(range, domain, uninterpolate, d3.interpolate);
-      return scale;
-    }
-    function scale(x) {
-      return output(x);
-    }
-    var output, input;
-    scale.invert = function(y) {
-      return input(y);
-    };
-    scale.domain = function(x) {
-      if (!arguments.length) return domain;
-      domain = x.map(Number);
-      return rescale();
-    };
-    scale.range = function(x) {
-      if (!arguments.length) return range;
-      range = x;
-      return rescale();
-    };
-    scale.rangeRound = function(x) {
-      return scale.range(x).interpolate(d3.interpolateRound);
-    };
-    scale.clamp = function(x) {
-      if (!arguments.length) return clamp;
-      clamp = x;
-      return rescale();
-    };
-    scale.interpolate = function(x) {
-      if (!arguments.length) return interpolate;
-      interpolate = x;
-      return rescale();
-    };
-    scale.ticks = function(m) {
-      return d3_scale_linearTicks(domain, m);
-    };
-    scale.tickFormat = function(m) {
-      return d3_scale_linearTickFormat(domain, m);
-    };
-    scale.nice = function() {
-      d3_scale_nice(domain, d3_scale_linearNice);
-      return rescale();
-    };
-    scale.copy = function() {
-      return d3_scale_linear(domain, range, interpolate, clamp);
-    };
-    return rescale();
-  }
-  function d3_scale_linearRebind(scale, linear) {
-    return d3.rebind(scale, linear, "range", "rangeRound", "interpolate", "clamp");
-  }
-  function d3_scale_linearNice(dx) {
-    dx = Math.pow(10, Math.round(Math.log(dx) / Math.LN10) - 1);
-    return dx && {
-      floor: function(x) {
-        return Math.floor(x / dx) * dx;
-      },
-      ceil: function(x) {
-        return Math.ceil(x / dx) * dx;
-      }
-    };
-  }
-  function d3_scale_linearTickRange(domain, m) {
-    var extent = d3_scaleExtent(domain), span = extent[1] - extent[0], step = Math.pow(10, Math.floor(Math.log(span / m) / Math.LN10)), err = m / span * step;
-    if (err <= .15) step *= 10; else if (err <= .35) step *= 5; else if (err <= .75) step *= 2;
-    extent[0] = Math.ceil(extent[0] / step) * step;
-    extent[1] = Math.floor(extent[1] / step) * step + step * .5;
-    extent[2] = step;
-    return extent;
-  }
-  function d3_scale_linearTicks(domain, m) {
-    return d3.range.apply(d3, d3_scale_linearTickRange(domain, m));
-  }
-  function d3_scale_linearTickFormat(domain, m) {
-    return d3.format(",." + Math.max(0, -Math.floor(Math.log(d3_scale_linearTickRange(domain, m)[2]) / Math.LN10 + .01)) + "f");
-  }
-  function d3_scale_bilinear(domain, range, uninterpolate, interpolate) {
-    var u = uninterpolate(domain[0], domain[1]), i = interpolate(range[0], range[1]);
-    return function(x) {
-      return i(u(x));
-    };
-  }
-  function d3_scale_polylinear(domain, range, uninterpolate, interpolate) {
-    var u = [], i = [], j = 0, k = Math.min(domain.length, range.length) - 1;
-    if (domain[k] < domain[0]) {
-      domain = domain.slice().reverse();
-      range = range.slice().reverse();
-    }
-    while (++j <= k) {
-      u.push(uninterpolate(domain[j - 1], domain[j]));
-      i.push(interpolate(range[j - 1], range[j]));
-    }
-    return function(x) {
-      var j = d3.bisect(domain, x, 1, k) - 1;
-      return i[j](u[j](x));
-    };
-  }
-  function d3_scale_log(linear, log) {
-    function scale(x) {
-      return linear(log(x));
-    }
-    var pow = log.pow;
-    scale.invert = function(x) {
-      return pow(linear.invert(x));
-    };
-    scale.domain = function(x) {
-      if (!arguments.length) return linear.domain().map(pow);
-      log = x[0] < 0 ? d3_scale_logn : d3_scale_logp;
-      pow = log.pow;
-      linear.domain(x.map(log));
-      return scale;
-    };
-    scale.nice = function() {
-      linear.domain(d3_scale_nice(linear.domain(), d3_scale_niceDefault));
-      return scale;
-    };
-    scale.ticks = function() {
-      var extent = d3_scaleExtent(linear.domain()), ticks = [];
-      if (extent.every(isFinite)) {
-        var i = Math.floor(extent[0]), j = Math.ceil(extent[1]), u = pow(extent[0]), v = pow(extent[1]);
-        if (log === d3_scale_logn) {
-          ticks.push(pow(i));
-          for (; i++ < j; ) for (var k = 9; k > 0; k--) ticks.push(pow(i) * k);
-        } else {
-          for (; i < j; i++) for (var k = 1; k < 10; k++) ticks.push(pow(i) * k);
-          ticks.push(pow(i));
-        }
-        for (i = 0; ticks[i] < u; i++) {}
-        for (j = ticks.length; ticks[j - 1] > v; j--) {}
-        ticks = ticks.slice(i, j);
-      }
-      return ticks;
-    };
-    scale.tickFormat = function(n, format) {
-      if (arguments.length < 2) format = d3_scale_logFormat;
-      if (arguments.length < 1) return format;
-      var k = Math.max(.1, n / scale.ticks().length), f = log === d3_scale_logn ? (e = -1e-12, Math.floor) : (e = 1e-12, Math.ceil), e;
-      return function(d) {
-        return d / pow(f(log(d) + e)) <= k ? format(d) : "";
-      };
-    };
-    scale.copy = function() {
-      return d3_scale_log(linear.copy(), log);
-    };
-    return d3_scale_linearRebind(scale, linear);
-  }
-  function d3_scale_logp(x) {
-    return Math.log(x < 0 ? 0 : x) / Math.LN10;
-  }
-  function d3_scale_logn(x) {
-    return -Math.log(x > 0 ? 0 : -x) / Math.LN10;
-  }
-  function d3_scale_pow(linear, exponent) {
-    function scale(x) {
-      return linear(powp(x));
-    }
-    var powp = d3_scale_powPow(exponent), powb = d3_scale_powPow(1 / exponent);
-    scale.invert = function(x) {
-      return powb(linear.invert(x));
-    };
-    scale.domain = function(x) {
-      if (!arguments.length) return linear.domain().map(powb);
-      linear.domain(x.map(powp));
-      return scale;
-    };
-    scale.ticks = function(m) {
-      return d3_scale_linearTicks(scale.domain(), m);
-    };
-    scale.tickFormat = function(m) {
-      return d3_scale_linearTickFormat(scale.domain(), m);
-    };
-    scale.nice = function() {
-      return scale.domain(d3_scale_nice(scale.domain(), d3_scale_linearNice));
-    };
-    scale.exponent = function(x) {
-      if (!arguments.length) return exponent;
-      var domain = scale.domain();
-      powp = d3_scale_powPow(exponent = x);
-      powb = d3_scale_powPow(1 / exponent);
-      return scale.domain(domain);
-    };
-    scale.copy = function() {
-      return d3_scale_pow(linear.copy(), exponent);
-    };
-    return d3_scale_linearRebind(scale, linear);
-  }
-  function d3_scale_powPow(e) {
-    return function(x) {
-      return x < 0 ? -Math.pow(-x, e) : Math.pow(x, e);
-    };
-  }
-  function d3_scale_ordinal(domain, ranger) {
-    function scale(x) {
-      return range[((index.get(x) || index.set(x, domain.push(x))) - 1) % range.length];
-    }
-    function steps(start, step) {
-      return d3.range(domain.length).map(function(i) {
-        return start + step * i;
-      });
-    }
-    var index, range, rangeBand;
-    scale.domain = function(x) {
-      if (!arguments.length) return domain;
-      domain = [];
-      index = new d3_Map;
-      var i = -1, n = x.length, xi;
-      while (++i < n) if (!index.has(xi = x[i])) index.set(xi, domain.push(xi));
-      return scale[ranger.t].apply(scale, ranger.a);
-    };
-    scale.range = function(x) {
-      if (!arguments.length) return range;
-      range = x;
-      rangeBand = 0;
-      ranger = {
-        t: "range",
-        a: arguments
-      };
-      return scale;
-    };
-    scale.rangePoints = function(x, padding) {
-      if (arguments.length < 2) padding = 0;
-      var start = x[0], stop = x[1], step = (stop - start) / (Math.max(1, domain.length - 1) + padding);
-      range = steps(domain.length < 2 ? (start + stop) / 2 : start + step * padding / 2, step);
-      rangeBand = 0;
-      ranger = {
-        t: "rangePoints",
-        a: arguments
-      };
-      return scale;
-    };
-    scale.rangeBands = function(x, padding, outerPadding) {
-      if (arguments.length < 2) padding = 0;
-      if (arguments.length < 3) outerPadding = padding;
-      var reverse = x[1] < x[0], start = x[reverse - 0], stop = x[1 - reverse], step = (stop - start) / (domain.length - padding + 2 * outerPadding);
-      range = steps(start + step * outerPadding, step);
-      if (reverse) range.reverse();
-      rangeBand = step * (1 - padding);
-      ranger = {
-        t: "rangeBands",
-        a: arguments
-      };
-      return scale;
-    };
-    scale.rangeRoundBands = function(x, padding, outerPadding) {
-      if (arguments.length < 2) padding = 0;
-      if (arguments.length < 3) outerPadding = padding;
-      var reverse = x[1] < x[0], start = x[reverse - 0], stop = x[1 - reverse], step = Math.floor((stop - start) / (domain.length - padding + 2 * outerPadding)), error = stop - start - (domain.length - padding) * step;
-      range = steps(start + Math.round(error / 2), step);
-      if (reverse) range.reverse();
-      rangeBand = Math.round(step * (1 - padding));
-      ranger = {
-        t: "rangeRoundBands",
-        a: arguments
-      };
-      return scale;
-    };
-    scale.rangeBand = function() {
-      return rangeBand;
-    };
-    scale.rangeExtent = function() {
-      return d3_scaleExtent(ranger.a[0]);
-    };
-    scale.copy = function() {
-      return d3_scale_ordinal(domain, ranger);
-    };
-    return scale.domain(domain);
-  }
-  function d3_scale_quantile(domain, range) {
-    function rescale() {
-      var k = 0, n = domain.length, q = range.length;
-      thresholds = [];
-      while (++k < q) thresholds[k - 1] = d3.quantile(domain, k / q);
-      return scale;
-    }
-    function scale(x) {
-      if (isNaN(x = +x)) return NaN;
-      return range[d3.bisect(thresholds, x)];
-    }
-    var thresholds;
-    scale.domain = function(x) {
-      if (!arguments.length) return domain;
-      domain = x.filter(function(d) {
-        return !isNaN(d);
-      }).sort(d3.ascending);
-      return rescale();
-    };
-    scale.range = function(x) {
-      if (!arguments.length) return range;
-      range = x;
-      return rescale();
-    };
-    scale.quantiles = function() {
-      return thresholds;
-    };
-    scale.copy = function() {
-      return d3_scale_quantile(domain, range);
-    };
-    return rescale();
-  }
-  function d3_scale_quantize(x0, x1, range) {
-    function scale(x) {
-      return range[Math.max(0, Math.min(i, Math.floor(kx * (x - x0))))];
-    }
-    function rescale() {
-      kx = range.length / (x1 - x0);
-      i = range.length - 1;
-      return scale;
-    }
-    var kx, i;
-    scale.domain = function(x) {
-      if (!arguments.length) return [ x0, x1 ];
-      x0 = +x[0];
-      x1 = +x[x.length - 1];
-      return rescale();
-    };
-    scale.range = function(x) {
-      if (!arguments.length) return range;
-      range = x;
-      return rescale();
-    };
-    scale.copy = function() {
-      return d3_scale_quantize(x0, x1, range);
-    };
-    return rescale();
-  }
-  function d3_scale_threshold(domain, range) {
-    function scale(x) {
-      return range[d3.bisect(domain, x)];
-    }
-    scale.domain = function(_) {
-      if (!arguments.length) return domain;
-      domain = _;
-      return scale;
-    };
-    scale.range = function(_) {
-      if (!arguments.length) return range;
-      range = _;
-      return scale;
-    };
-    scale.copy = function() {
-      return d3_scale_threshold(domain, range);
-    };
-    return scale;
-  }
-  function d3_scale_identity(domain) {
-    function identity(x) {
-      return +x;
-    }
-    identity.invert = identity;
-    identity.domain = identity.range = function(x) {
-      if (!arguments.length) return domain;
-      domain = x.map(identity);
-      return identity;
-    };
-    identity.ticks = function(m) {
-      return d3_scale_linearTicks(domain, m);
-    };
-    identity.tickFormat = function(m) {
-      return d3_scale_linearTickFormat(domain, m);
-    };
-    identity.copy = function() {
-      return d3_scale_identity(domain);
-    };
-    return identity;
-  }
-  function d3_svg_arcInnerRadius(d) {
-    return d.innerRadius;
-  }
-  function d3_svg_arcOuterRadius(d) {
-    return d.outerRadius;
-  }
-  function d3_svg_arcStartAngle(d) {
-    return d.startAngle;
-  }
-  function d3_svg_arcEndAngle(d) {
-    return d.endAngle;
-  }
-  function d3_svg_line(projection) {
-    function line(data) {
-      function segment() {
-        segments.push("M", interpolate(projection(points), tension));
-      }
-      var segments = [], points = [], i = -1, n = data.length, d, fx = d3_functor(x), fy = d3_functor(y);
-      while (++i < n) {
-        if (defined.call(this, d = data[i], i)) {
-          points.push([ +fx.call(this, d, i), +fy.call(this, d, i) ]);
-        } else if (points.length) {
-          segment();
-          points = [];
-        }
-      }
-      if (points.length) segment();
-      return segments.length ? segments.join("") : null;
-    }
-    var x = d3_svg_lineX, y = d3_svg_lineY, defined = d3_true, interpolate = d3_svg_lineLinear, interpolateKey = interpolate.key, tension = .7;
-    line.x = function(_) {
-      if (!arguments.length) return x;
-      x = _;
-      return line;
-    };
-    line.y = function(_) {
-      if (!arguments.length) return y;
-      y = _;
-      return line;
-    };
-    line.defined = function(_) {
-      if (!arguments.length) return defined;
-      defined = _;
-      return line;
-    };
-    line.interpolate = function(_) {
-      if (!arguments.length) return interpolateKey;
-      if (typeof _ === "function") interpolateKey = interpolate = _; else interpolateKey = (interpolate = d3_svg_lineInterpolators.get(_) || d3_svg_lineLinear).key;
-      return line;
-    };
-    line.tension = function(_) {
-      if (!arguments.length) return tension;
-      tension = _;
-      return line;
-    };
-    return line;
-  }
-  function d3_svg_lineX(d) {
-    return d[0];
-  }
-  function d3_svg_lineY(d) {
-    return d[1];
-  }
-  function d3_svg_lineLinear(points) {
-    return points.join("L");
-  }
-  function d3_svg_lineLinearClosed(points) {
-    return d3_svg_lineLinear(points) + "Z";
-  }
-  function d3_svg_lineStepBefore(points) {
-    var i = 0, n = points.length, p = points[0], path = [ p[0], ",", p[1] ];
-    while (++i < n) path.push("V", (p = points[i])[1], "H", p[0]);
-    return path.join("");
-  }
-  function d3_svg_lineStepAfter(points) {
-    var i = 0, n = points.length, p = points[0], path = [ p[0], ",", p[1] ];
-    while (++i < n) path.push("H", (p = points[i])[0], "V", p[1]);
-    return path.join("");
-  }
-  function d3_svg_lineCardinalOpen(points, tension) {
-    return points.length < 4 ? d3_svg_lineLinear(points) : points[1] + d3_svg_lineHermite(points.slice(1, points.length - 1), d3_svg_lineCardinalTangents(points, tension));
-  }
-  function d3_svg_lineCardinalClosed(points, tension) {
-    return points.length < 3 ? d3_svg_lineLinear(points) : points[0] + d3_svg_lineHermite((points.push(points[0]), points), d3_svg_lineCardinalTangents([ points[points.length - 2] ].concat(points, [ points[1] ]), tension));
-  }
-  function d3_svg_lineCardinal(points, tension, closed) {
-    return points.length < 3 ? d3_svg_lineLinear(points) : points[0] + d3_svg_lineHermite(points, d3_svg_lineCardinalTangents(points, tension));
-  }
-  function d3_svg_lineHermite(points, tangents) {
-    if (tangents.length < 1 || points.length != tangents.length && points.length != tangents.length + 2) {
-      return d3_svg_lineLinear(points);
-    }
-    var quad = points.length != tangents.length, path = "", p0 = points[0], p = points[1], t0 = tangents[0], t = t0, pi = 1;
-    if (quad) {
-      path += "Q" + (p[0] - t0[0] * 2 / 3) + "," + (p[1] - t0[1] * 2 / 3) + "," + p[0] + "," + p[1];
-      p0 = points[1];
-      pi = 2;
-    }
-    if (tangents.length > 1) {
-      t = tangents[1];
-      p = points[pi];
-      pi++;
-      path += "C" + (p0[0] + t0[0]) + "," + (p0[1] + t0[1]) + "," + (p[0] - t[0]) + "," + (p[1] - t[1]) + "," + p[0] + "," + p[1];
-      for (var i = 2; i < tangents.length; i++, pi++) {
-        p = points[pi];
-        t = tangents[i];
-        path += "S" + (p[0] - t[0]) + "," + (p[1] - t[1]) + "," + p[0] + "," + p[1];
-      }
-    }
-    if (quad) {
-      var lp = points[pi];
-      path += "Q" + (p[0] + t[0] * 2 / 3) + "," + (p[1] + t[1] * 2 / 3) + "," + lp[0] + "," + lp[1];
-    }
-    return path;
-  }
-  function d3_svg_lineCardinalTangents(points, tension) {
-    var tangents = [], a = (1 - tension) / 2, p0, p1 = points[0], p2 = points[1], i = 1, n = points.length;
-    while (++i < n) {
-      p0 = p1;
-      p1 = p2;
-      p2 = points[i];
-      tangents.push([ a * (p2[0] - p0[0]), a * (p2[1] - p0[1]) ]);
-    }
-    return tangents;
-  }
-  function d3_svg_lineBasis(points) {
-    if (points.length < 3) return d3_svg_lineLinear(points);
-    var i = 1, n = points.length, pi = points[0], x0 = pi[0], y0 = pi[1], px = [ x0, x0, x0, (pi = points[1])[0] ], py = [ y0, y0, y0, pi[1] ], path = [ x0, ",", y0 ];
-    d3_svg_lineBasisBezier(path, px, py);
-    while (++i < n) {
-      pi = points[i];
-      px.shift();
-      px.push(pi[0]);
-      py.shift();
-      py.push(pi[1]);
-      d3_svg_lineBasisBezier(path, px, py);
-    }
-    i = -1;
-    while (++i < 2) {
-      px.shift();
-      px.push(pi[0]);
-      py.shift();
-      py.push(pi[1]);
-      d3_svg_lineBasisBezier(path, px, py);
-    }
-    return path.join("");
-  }
-  function d3_svg_lineBasisOpen(points) {
-    if (points.length < 4) return d3_svg_lineLinear(points);
-    var path = [], i = -1, n = points.length, pi, px = [ 0 ], py = [ 0 ];
-    while (++i < 3) {
-      pi = points[i];
-      px.push(pi[0]);
-      py.push(pi[1]);
-    }
-    path.push(d3_svg_lineDot4(d3_svg_lineBasisBezier3, px) + "," + d3_svg_lineDot4(d3_svg_lineBasisBezier3, py));
-    --i;
-    while (++i < n) {
-      pi = points[i];
-      px.shift();
-      px.push(pi[0]);
-      py.shift();
-      py.push(pi[1]);
-      d3_svg_lineBasisBezier(path, px, py);
-    }
-    return path.join("");
-  }
-  function d3_svg_lineBasisClosed(points) {
-    var path, i = -1, n = points.length, m = n + 4, pi, px = [], py = [];
-    while (++i < 4) {
-      pi = points[i % n];
-      px.push(pi[0]);
-      py.push(pi[1]);
-    }
-    path = [ d3_svg_lineDot4(d3_svg_lineBasisBezier3, px), ",", d3_svg_lineDot4(d3_svg_lineBasisBezier3, py) ];
-    --i;
-    while (++i < m) {
-      pi = points[i % n];
-      px.shift();
-      px.push(pi[0]);
-      py.shift();
-      py.push(pi[1]);
-      d3_svg_lineBasisBezier(path, px, py);
-    }
-    return path.join("");
-  }
-  function d3_svg_lineBundle(points, tension) {
-    var n = points.length - 1;
-    if (n) {
-      var x0 = points[0][0], y0 = points[0][1], dx = points[n][0] - x0, dy = points[n][1] - y0, i = -1, p, t;
-      while (++i <= n) {
-        p = points[i];
-        t = i / n;
-        p[0] = tension * p[0] + (1 - tension) * (x0 + t * dx);
-        p[1] = tension * p[1] + (1 - tension) * (y0 + t * dy);
-      }
-    }
-    return d3_svg_lineBasis(points);
-  }
-  function d3_svg_lineDot4(a, b) {
-    return a[0] * b[0] + a[1] * b[1] + a[2] * b[2] + a[3] * b[3];
-  }
-  function d3_svg_lineBasisBezier(path, x, y) {
-    path.push("C", d3_svg_lineDot4(d3_svg_lineBasisBezier1, x), ",", d3_svg_lineDot4(d3_svg_lineBasisBezier1, y), ",", d3_svg_lineDot4(d3_svg_lineBasisBezier2, x), ",", d3_svg_lineDot4(d3_svg_lineBasisBezier2, y), ",", d3_svg_lineDot4(d3_svg_lineBasisBezier3, x), ",", d3_svg_lineDot4(d3_svg_lineBasisBezier3, y));
-  }
-  function d3_svg_lineSlope(p0, p1) {
-    return (p1[1] - p0[1]) / (p1[0] - p0[0]);
-  }
-  function d3_svg_lineFiniteDifferences(points) {
-    var i = 0, j = points.length - 1, m = [], p0 = points[0], p1 = points[1], d = m[0] = d3_svg_lineSlope(p0, p1);
-    while (++i < j) {
-      m[i] = (d + (d = d3_svg_lineSlope(p0 = p1, p1 = points[i + 1]))) / 2;
-    }
-    m[i] = d;
-    return m;
-  }
-  function d3_svg_lineMonotoneTangents(points) {
-    var tangents = [], d, a, b, s, m = d3_svg_lineFiniteDifferences(points), i = -1, j = points.length - 1;
-    while (++i < j) {
-      d = d3_svg_lineSlope(points[i], points[i + 1]);
-      if (Math.abs(d) < 1e-6) {
-        m[i] = m[i + 1] = 0;
-      } else {
-        a = m[i] / d;
-        b = m[i + 1] / d;
-        s = a * a + b * b;
-        if (s > 9) {
-          s = d * 3 / Math.sqrt(s);
-          m[i] = s * a;
-          m[i + 1] = s * b;
-        }
-      }
-    }
-    i = -1;
-    while (++i <= j) {
-      s = (points[Math.min(j, i + 1)][0] - points[Math.max(0, i - 1)][0]) / (6 * (1 + m[i] * m[i]));
-      tangents.push([ s || 0, m[i] * s || 0 ]);
-    }
-    return tangents;
-  }
-  function d3_svg_lineMonotone(points) {
-    return points.length < 3 ? d3_svg_lineLinear(points) : points[0] + d3_svg_lineHermite(points, d3_svg_lineMonotoneTangents(points));
-  }
-  function d3_svg_lineRadial(points) {
-    var point, i = -1, n = points.length, r, a;
-    while (++i < n) {
-      point = points[i];
-      r = point[0];
-      a = point[1] + d3_svg_arcOffset;
-      point[0] = r * Math.cos(a);
-      point[1] = r * Math.sin(a);
-    }
-    return points;
-  }
-  function d3_svg_area(projection) {
-    function area(data) {
-      function segment() {
-        segments.push("M", interpolate(projection(points1), tension), L, interpolateReverse(projection(points0.reverse()), tension), "Z");
-      }
-      var segments = [], points0 = [], points1 = [], i = -1, n = data.length, d, fx0 = d3_functor(x0), fy0 = d3_functor(y0), fx1 = x0 === x1 ? function() {
-        return x;
-      } : d3_functor(x1), fy1 = y0 === y1 ? function() {
-        return y;
-      } : d3_functor(y1), x, y;
-      while (++i < n) {
-        if (defined.call(this, d = data[i], i)) {
-          points0.push([ x = +fx0.call(this, d, i), y = +fy0.call(this, d, i) ]);
-          points1.push([ +fx1.call(this, d, i), +fy1.call(this, d, i) ]);
-        } else if (points0.length) {
-          segment();
-          points0 = [];
-          points1 = [];
-        }
-      }
-      if (points0.length) segment();
-      return segments.length ? segments.join("") : null;
-    }
-    var x0 = d3_svg_lineX, x1 = d3_svg_lineX, y0 = 0, y1 = d3_svg_lineY, defined = d3_true, interpolate = d3_svg_lineLinear, interpolateKey = interpolate.key, interpolateReverse = interpolate, L = "L", tension = .7;
-    area.x = function(_) {
-      if (!arguments.length) return x1;
-      x0 = x1 = _;
-      return area;
-    };
-    area.x0 = function(_) {
-      if (!arguments.length) return x0;
-      x0 = _;
-      return area;
-    };
-    area.x1 = function(_) {
-      if (!arguments.length) return x1;
-      x1 = _;
-      return area;
-    };
-    area.y = function(_) {
-      if (!arguments.length) return y1;
-      y0 = y1 = _;
-      return area;
-    };
-    area.y0 = function(_) {
-      if (!arguments.length) return y0;
-      y0 = _;
-      return area;
-    };
-    area.y1 = function(_) {
-      if (!arguments.length) return y1;
-      y1 = _;
-      return area;
-    };
-    area.defined = function(_) {
-      if (!arguments.length) return defined;
-      defined = _;
-      return area;
-    };
-    area.interpolate = function(_) {
-      if (!arguments.length) return interpolateKey;
-      if (typeof _ === "function") interpolateKey = interpolate = _; else interpolateKey = (interpolate = d3_svg_lineInterpolators.get(_) || d3_svg_lineLinear).key;
-      interpolateReverse = interpolate.reverse || interpolate;
-      L = interpolate.closed ? "M" : "L";
-      return area;
-    };
-    area.tension = function(_) {
-      if (!arguments.length) return tension;
-      tension = _;
-      return area;
-    };
-    return area;
-  }
-  function d3_svg_chordSource(d) {
-    return d.source;
-  }
-  function d3_svg_chordTarget(d) {
-    return d.target;
-  }
-  function d3_svg_chordRadius(d) {
-    return d.radius;
-  }
-  function d3_svg_chordStartAngle(d) {
-    return d.startAngle;
-  }
-  function d3_svg_chordEndAngle(d) {
-    return d.endAngle;
-  }
-  function d3_svg_diagonalProjection(d) {
-    return [ d.x, d.y ];
-  }
-  function d3_svg_diagonalRadialProjection(projection) {
-    return function() {
-      var d = projection.apply(this, arguments), r = d[0], a = d[1] + d3_svg_arcOffset;
-      return [ r * Math.cos(a), r * Math.sin(a) ];
-    };
-  }
-  function d3_svg_symbolSize() {
-    return 64;
-  }
-  function d3_svg_symbolType() {
-    return "circle";
-  }
-  function d3_svg_symbolCircle(size) {
-    var r = Math.sqrt(size / Math.PI);
-    return "M0," + r + "A" + r + "," + r + " 0 1,1 0," + -r + "A" + r + "," + r + " 0 1,1 0," + r + "Z";
-  }
-  function d3_svg_axisX(selection, x) {
-    selection.attr("transform", function(d) {
-      return "translate(" + x(d) + ",0)";
-    });
-  }
-  function d3_svg_axisY(selection, y) {
-    selection.attr("transform", function(d) {
-      return "translate(0," + y(d) + ")";
-    });
-  }
-  function d3_svg_axisSubdivide(scale, ticks, m) {
-    subticks = [];
-    if (m && ticks.length > 1) {
-      var extent = d3_scaleExtent(scale.domain()), subticks, i = -1, n = ticks.length, d = (ticks[1] - ticks[0]) / ++m, j, v;
-      while (++i < n) {
-        for (j = m; --j > 0; ) {
-          if ((v = +ticks[i] - j * d) >= extent[0]) {
-            subticks.push(v);
-          }
-        }
-      }
-      for (--i, j = 0; ++j < m && (v = +ticks[i] + j * d) < extent[1]; ) {
-        subticks.push(v);
-      }
-    }
-    return subticks;
-  }
-  function d3_behavior_zoomDelta() {
-    if (!d3_behavior_zoomDiv) {
-      d3_behavior_zoomDiv = d3.select("body").append("div").style("visibility", "hidden").style("top", 0).style("height", 0).style("width", 0).style("overflow-y", "scroll").append("div").style("height", "2000px").node().parentNode;
-    }
-    var e = d3.event, delta;
-    try {
-      d3_behavior_zoomDiv.scrollTop = 1e3;
-      d3_behavior_zoomDiv.dispatchEvent(e);
-      delta = 1e3 - d3_behavior_zoomDiv.scrollTop;
-    } catch (error) {
-      delta = e.wheelDelta || -e.detail * 5;
-    }
-    return delta;
-  }
-  function d3_layout_bundlePath(link) {
-    var start = link.source, end = link.target, lca = d3_layout_bundleLeastCommonAncestor(start, end), points = [ start ];
-    while (start !== lca) {
-      start = start.parent;
-      points.push(start);
-    }
-    var k = points.length;
-    while (end !== lca) {
-      points.splice(k, 0, end);
-      end = end.parent;
-    }
-    return points;
-  }
-  function d3_layout_bundleAncestors(node) {
-    var ancestors = [], parent = node.parent;
-    while (parent != null) {
-      ancestors.push(node);
-      node = parent;
-      parent = parent.parent;
-    }
-    ancestors.push(node);
-    return ancestors;
-  }
-  function d3_layout_bundleLeastCommonAncestor(a, b) {
-    if (a === b) return a;
-    var aNodes = d3_layout_bundleAncestors(a), bNodes = d3_layout_bundleAncestors(b), aNode = aNodes.pop(), bNode = bNodes.pop(), sharedNode = null;
-    while (aNode === bNode) {
-      sharedNode = aNode;
-      aNode = aNodes.pop();
-      bNode = bNodes.pop();
-    }
-    return sharedNode;
-  }
-  function d3_layout_forceDragstart(d) {
-    d.fixed |= 2;
-  }
-  function d3_layout_forceDragend(d) {
-    d.fixed &= 1;
-  }
-  function d3_layout_forceMouseover(d) {
-    d.fixed |= 4;
-  }
-  function d3_layout_forceMouseout(d) {
-    d.fixed &= 3;
-  }
-  function d3_layout_forceAccumulate(quad, alpha, charges) {
-    var cx = 0, cy = 0;
-    quad.charge = 0;
-    if (!quad.leaf) {
-      var nodes = quad.nodes, n = nodes.length, i = -1, c;
-      while (++i < n) {
-        c = nodes[i];
-        if (c == null) continue;
-        d3_layout_forceAccumulate(c, alpha, charges);
-        quad.charge += c.charge;
-        cx += c.charge * c.cx;
-        cy += c.charge * c.cy;
-      }
-    }
-    if (quad.point) {
-      if (!quad.leaf) {
-        quad.point.x += Math.random() - .5;
-        quad.point.y += Math.random() - .5;
-      }
-      var k = alpha * charges[quad.point.index];
-      quad.charge += quad.pointCharge = k;
-      cx += k * quad.point.x;
-      cy += k * quad.point.y;
-    }
-    quad.cx = cx / quad.charge;
-    quad.cy = cy / quad.charge;
-  }
-  function d3_layout_forceLinkDistance(link) {
-    return 20;
-  }
-  function d3_layout_forceLinkStrength(link) {
-    return 1;
-  }
-  function d3_layout_stackX(d) {
-    return d.x;
-  }
-  function d3_layout_stackY(d) {
-    return d.y;
-  }
-  function d3_layout_stackOut(d, y0, y) {
-    d.y0 = y0;
-    d.y = y;
-  }
-  function d3_layout_stackOrderDefault(data) {
-    return d3.range(data.length);
-  }
-  function d3_layout_stackOffsetZero(data) {
-    var j = -1, m = data[0].length, y0 = [];
-    while (++j < m) y0[j] = 0;
-    return y0;
-  }
-  function d3_layout_stackMaxIndex(array) {
-    var i = 1, j = 0, v = array[0][1], k, n = array.length;
-    for (; i < n; ++i) {
-      if ((k = array[i][1]) > v) {
-        j = i;
-        v = k;
-      }
-    }
-    return j;
-  }
-  function d3_layout_stackReduceSum(d) {
-    return d.reduce(d3_layout_stackSum, 0);
-  }
-  function d3_layout_stackSum(p, d) {
-    return p + d[1];
-  }
-  function d3_layout_histogramBinSturges(range, values) {
-    return d3_layout_histogramBinFixed(range, Math.ceil(Math.log(values.length) / Math.LN2 + 1));
-  }
-  function d3_layout_histogramBinFixed(range, n) {
-    var x = -1, b = +range[0], m = (range[1] - b) / n, f = [];
-    while (++x <= n) f[x] = m * x + b;
-    return f;
-  }
-  function d3_layout_histogramRange(values) {
-    return [ d3.min(values), d3.max(values) ];
-  }
-  function d3_layout_hierarchyRebind(object, hierarchy) {
-    d3.rebind(object, hierarchy, "sort", "children", "value");
-    object.links = d3_layout_hierarchyLinks;
-    object.nodes = function(d) {
-      d3_layout_hierarchyInline = true;
-      return (object.nodes = object)(d);
-    };
-    return object;
-  }
-  function d3_layout_hierarchyChildren(d) {
-    return d.children;
-  }
-  function d3_layout_hierarchyValue(d) {
-    return d.value;
-  }
-  function d3_layout_hierarchySort(a, b) {
-    return b.value - a.value;
-  }
-  function d3_layout_hierarchyLinks(nodes) {
-    return d3.merge(nodes.map(function(parent) {
-      return (parent.children || []).map(function(child) {
-        return {
-          source: parent,
-          target: child
-        };
-      });
-    }));
-  }
-  function d3_layout_packSort(a, b) {
-    return a.value - b.value;
-  }
-  function d3_layout_packInsert(a, b) {
-    var c = a._pack_next;
-    a._pack_next = b;
-    b._pack_prev = a;
-    b._pack_next = c;
-    c._pack_prev = b;
-  }
-  function d3_layout_packSplice(a, b) {
-    a._pack_next = b;
-    b._pack_prev = a;
-  }
-  function d3_layout_packIntersects(a, b) {
-    var dx = b.x - a.x, dy = b.y - a.y, dr = a.r + b.r;
-    return dr * dr - dx * dx - dy * dy > .001;
-  }
-  function d3_layout_packSiblings(node) {
-    function bound(node) {
-      xMin = Math.min(node.x - node.r, xMin);
-      xMax = Math.max(node.x + node.r, xMax);
-      yMin = Math.min(node.y - node.r, yMin);
-      yMax = Math.max(node.y + node.r, yMax);
-    }
-    if (!(nodes = node.children) || !(n = nodes.length)) return;
-    var nodes, xMin = Infinity, xMax = -Infinity, yMin = Infinity, yMax = -Infinity, a, b, c, i, j, k, n;
-    nodes.forEach(d3_layout_packLink);
-    a = nodes[0];
-    a.x = -a.r;
-    a.y = 0;
-    bound(a);
-    if (n > 1) {
-      b = nodes[1];
-      b.x = b.r;
-      b.y = 0;
-      bound(b);
-      if (n > 2) {
-        c = nodes[2];
-        d3_layout_packPlace(a, b, c);
-        bound(c);
-        d3_layout_packInsert(a, c);
-        a._pack_prev = c;
-        d3_layout_packInsert(c, b);
-        b = a._pack_next;
-        for (i = 3; i < n; i++) {
-          d3_layout_packPlace(a, b, c = nodes[i]);
-          var isect = 0, s1 = 1, s2 = 1;
-          for (j = b._pack_next; j !== b; j = j._pack_next, s1++) {
-            if (d3_layout_packIntersects(j, c)) {
-              isect = 1;
-              break;
-            }
-          }
-          if (isect == 1) {
-            for (k = a._pack_prev; k !== j._pack_prev; k = k._pack_prev, s2++) {
-              if (d3_layout_packIntersects(k, c)) {
-                break;
-              }
-            }
-          }
-          if (isect) {
-            if (s1 < s2 || s1 == s2 && b.r < a.r) d3_layout_packSplice(a, b = j); else d3_layout_packSplice(a = k, b);
-            i--;
-          } else {
-            d3_layout_packInsert(a, c);
-            b = c;
-            bound(c);
-          }
-        }
-      }
-    }
-    var cx = (xMin + xMax) / 2, cy = (yMin + yMax) / 2, cr = 0;
-    for (i = 0; i < n; i++) {
-      c = nodes[i];
-      c.x -= cx;
-      c.y -= cy;
-      cr = Math.max(cr, c.r + Math.sqrt(c.x * c.x + c.y * c.y));
-    }
-    node.r = cr;
-    nodes.forEach(d3_layout_packUnlink);
-  }
-  function d3_layout_packLink(node) {
-    node._pack_next = node._pack_prev = node;
-  }
-  function d3_layout_packUnlink(node) {
-    delete node._pack_next;
-    delete node._pack_prev;
-  }
-  function d3_layout_packTransform(node, x, y, k) {
-    var children = node.children;
-    node.x = x += k * node.x;
-    node.y = y += k * node.y;
-    node.r *= k;
-    if (children) {
-      var i = -1, n = children.length;
-      while (++i < n) d3_layout_packTransform(children[i], x, y, k);
-    }
-  }
-  function d3_layout_packPlace(a, b, c) {
-    var db = a.r + c.r, dx = b.x - a.x, dy = b.y - a.y;
-    if (db && (dx || dy)) {
-      var da = b.r + c.r, dc = dx * dx + dy * dy;
-      da *= da;
-      db *= db;
-      var x = .5 + (db - da) / (2 * dc), y = Math.sqrt(Math.max(0, 2 * da * (db + dc) - (db -= dc) * db - da * da)) / (2 * dc);
-      c.x = a.x + x * dx + y * dy;
-      c.y = a.y + x * dy - y * dx;
-    } else {
-      c.x = a.x + db;
-      c.y = a.y;
-    }
-  }
-  function d3_layout_clusterY(children) {
-    return 1 + d3.max(children, function(child) {
-      return child.y;
-    });
-  }
-  function d3_layout_clusterX(children) {
-    return children.reduce(function(x, child) {
-      return x + child.x;
-    }, 0) / children.length;
-  }
-  function d3_layout_clusterLeft(node) {
-    var children = node.children;
-    return children && children.length ? d3_layout_clusterLeft(children[0]) : node;
-  }
-  function d3_layout_clusterRight(node) {
-    var children = node.children, n;
-    return children && (n = children.length) ? d3_layout_clusterRight(children[n - 1]) : node;
-  }
-  function d3_layout_treeSeparation(a, b) {
-    return a.parent == b.parent ? 1 : 2;
-  }
-  function d3_layout_treeLeft(node) {
-    var children = node.children;
-    return children && children.length ? children[0] : node._tree.thread;
-  }
-  function d3_layout_treeRight(node) {
-    var children = node.children, n;
-    return children && (n = children.length) ? children[n - 1] : node._tree.thread;
-  }
-  function d3_layout_treeSearch(node, compare) {
-    var children = node.children;
-    if (children && (n = children.length)) {
-      var child, n, i = -1;
-      while (++i < n) {
-        if (compare(child = d3_layout_treeSearch(children[i], compare), node) > 0) {
-          node = child;
-        }
-      }
-    }
-    return node;
-  }
-  function d3_layout_treeRightmost(a, b) {
-    return a.x - b.x;
-  }
-  function d3_layout_treeLeftmost(a, b) {
-    return b.x - a.x;
-  }
-  function d3_layout_treeDeepest(a, b) {
-    return a.depth - b.depth;
-  }
-  function d3_layout_treeVisitAfter(node, callback) {
-    function visit(node, previousSibling) {
-      var children = node.children;
-      if (children && (n = children.length)) {
-        var child, previousChild = null, i = -1, n;
-        while (++i < n) {
-          child = children[i];
-          visit(child, previousChild);
-          previousChild = child;
-        }
-      }
-      callback(node, previousSibling);
-    }
-    visit(node, null);
-  }
-  function d3_layout_treeShift(node) {
-    var shift = 0, change = 0, children = node.children, i = children.length, child;
-    while (--i >= 0) {
-      child = children[i]._tree;
-      child.prelim += shift;
-      child.mod += shift;
-      shift += child.shift + (change += child.change);
-    }
-  }
-  function d3_layout_treeMove(ancestor, node, shift) {
-    ancestor = ancestor._tree;
-    node = node._tree;
-    var change = shift / (node.number - ancestor.number);
-    ancestor.change += change;
-    node.change -= change;
-    node.shift += shift;
-    node.prelim += shift;
-    node.mod += shift;
-  }
-  function d3_layout_treeAncestor(vim, node, ancestor) {
-    return vim._tree.ancestor.parent == node.parent ? vim._tree.ancestor : ancestor;
-  }
-  function d3_layout_treemapPadNull(node) {
-    return {
-      x: node.x,
-      y: node.y,
-      dx: node.dx,
-      dy: node.dy
-    };
-  }
-  function d3_layout_treemapPad(node, padding) {
-    var x = node.x + padding[3], y = node.y + padding[0], dx = node.dx - padding[1] - padding[3], dy = node.dy - padding[0] - padding[2];
-    if (dx < 0) {
-      x += dx / 2;
-      dx = 0;
-    }
-    if (dy < 0) {
-      y += dy / 2;
-      dy = 0;
-    }
-    return {
-      x: x,
-      y: y,
-      dx: dx,
-      dy: dy
-    };
-  }
-  function d3_dsv(delimiter, mimeType) {
-    function dsv(url, callback) {
-      d3.text(url, mimeType, function(text) {
-        callback(text && dsv.parse(text));
-      });
-    }
-    function formatRow(row) {
-      return row.map(formatValue).join(delimiter);
-    }
-    function formatValue(text) {
-      return reFormat.test(text) ? '"' + text.replace(/\"/g, '""') + '"' : text;
-    }
-    var reParse = new RegExp("\r\n|[" + delimiter + "\r\n]", "g"), reFormat = new RegExp('["' + delimiter + "\n]"), delimiterCode = delimiter.charCodeAt(0);
-    dsv.parse = function(text) {
-      var header;
-      return dsv.parseRows(text, function(row, i) {
-        if (i) {
-          var o = {}, j = -1, m = header.length;
-          while (++j < m) o[header[j]] = row[j];
-          return o;
-        } else {
-          header = row;
-          return null;
-        }
-      });
-    };
-    dsv.parseRows = function(text, f) {
-      function token() {
-        if (reParse.lastIndex >= text.length) return EOF;
-        if (eol) {
-          eol = false;
-          return EOL;
-        }
-        var j = reParse.lastIndex;
-        if (text.charCodeAt(j) === 34) {
-          var i = j;
-          while (i++ < text.length) {
-            if (text.charCodeAt(i) === 34) {
-              if (text.charCodeAt(i + 1) !== 34) break;
-              i++;
-            }
-          }
-          reParse.lastIndex = i + 2;
-          var c = text.charCodeAt(i + 1);
-          if (c === 13) {
-            eol = true;
-            if (text.charCodeAt(i + 2) === 10) reParse.lastIndex++;
-          } else if (c === 10) {
-            eol = true;
-          }
-          return text.substring(j + 1, i).replace(/""/g, '"');
-        }
-        var m = reParse.exec(text);
-        if (m) {
-          eol = m[0].charCodeAt(0) !== delimiterCode;
-          return text.substring(j, m.index);
-        }
-        reParse.lastIndex = text.length;
-        return text.substring(j);
-      }
-      var EOL = {}, EOF = {}, rows = [], n = 0, t, eol;
-      reParse.lastIndex = 0;
-      while ((t = token()) !== EOF) {
-        var a = [];
-        while (t !== EOL && t !== EOF) {
-          a.push(t);
-          t = token();
-        }
-        if (f && !(a = f(a, n++))) continue;
-        rows.push(a);
-      }
-      return rows;
-    };
-    dsv.format = function(rows) {
-      return rows.map(formatRow).join("\n");
-    };
-    return dsv;
-  }
-  function d3_geo_type(types, defaultValue) {
-    return function(object) {
-      return object && types.hasOwnProperty(object.type) ? types[object.type](object) : defaultValue;
-    };
-  }
-  function d3_path_circle(radius) {
-    return "m0," + radius + "a" + radius + "," + radius + " 0 1,1 0," + -2 * radius + "a" + radius + "," + radius + " 0 1,1 0," + +2 * radius + "z";
-  }
-  function d3_geo_bounds(o, f) {
-    if (d3_geo_boundsTypes.hasOwnProperty(o.type)) d3_geo_boundsTypes[o.type](o, f);
-  }
-  function d3_geo_boundsFeature(o, f) {
-    d3_geo_bounds(o.geometry, f);
-  }
-  function d3_geo_boundsFeatureCollection(o, f) {
-    for (var a = o.features, i = 0, n = a.length; i < n; i++) {
-      d3_geo_bounds(a[i].geometry, f);
-    }
-  }
-  function d3_geo_boundsGeometryCollection(o, f) {
-    for (var a = o.geometries, i = 0, n = a.length; i < n; i++) {
-      d3_geo_bounds(a[i], f);
-    }
-  }
-  function d3_geo_boundsLineString(o, f) {
-    for (var a = o.coordinates, i = 0, n = a.length; i < n; i++) {
-      f.apply(null, a[i]);
-    }
-  }
-  function d3_geo_boundsMultiLineString(o, f) {
-    for (var a = o.coordinates, i = 0, n = a.length; i < n; i++) {
-      for (var b = a[i], j = 0, m = b.length; j < m; j++) {
-        f.apply(null, b[j]);
-      }
-    }
-  }
-  function d3_geo_boundsMultiPolygon(o, f) {
-    for (var a = o.coordinates, i = 0, n = a.length; i < n; i++) {
-      for (var b = a[i][0], j = 0, m = b.length; j < m; j++) {
-        f.apply(null, b[j]);
-      }
-    }
-  }
-  function d3_geo_boundsPoint(o, f) {
-    f.apply(null, o.coordinates);
-  }
-  function d3_geo_boundsPolygon(o, f) {
-    for (var a = o.coordinates[0], i = 0, n = a.length; i < n; i++) {
-      f.apply(null, a[i]);
-    }
-  }
-  function d3_geo_greatArcSource(d) {
-    return d.source;
-  }
-  function d3_geo_greatArcTarget(d) {
-    return d.target;
-  }
-  function d3_geo_greatArcInterpolator() {
-    function interpolate(t) {
-      var B = Math.sin(t *= d) * k, A = Math.sin(d - t) * k, x = A * kx0 + B * kx1, y = A * ky0 + B * ky1, z = A * sy0 + B * sy1;
-      return [ Math.atan2(y, x) / d3_geo_radians, Math.atan2(z, Math.sqrt(x * x + y * y)) / d3_geo_radians ];
-    }
-    var x0, y0, cy0, sy0, kx0, ky0, x1, y1, cy1, sy1, kx1, ky1, d, k;
-    interpolate.distance = function() {
-      if (d == null) k = 1 / Math.sin(d = Math.acos(Math.max(-1, Math.min(1, sy0 * sy1 + cy0 * cy1 * Math.cos(x1 - x0)))));
-      return d;
-    };
-    interpolate.source = function(_) {
-      var cx0 = Math.cos(x0 = _[0] * d3_geo_radians), sx0 = Math.sin(x0);
-      cy0 = Math.cos(y0 = _[1] * d3_geo_radians);
-      sy0 = Math.sin(y0);
-      kx0 = cy0 * cx0;
-      ky0 = cy0 * sx0;
-      d = null;
-      return interpolate;
-    };
-    interpolate.target = function(_) {
-      var cx1 = Math.cos(x1 = _[0] * d3_geo_radians), sx1 = Math.sin(x1);
-      cy1 = Math.cos(y1 = _[1] * d3_geo_radians);
-      sy1 = Math.sin(y1);
-      kx1 = cy1 * cx1;
-      ky1 = cy1 * sx1;
-      d = null;
-      return interpolate;
-    };
-    return interpolate;
-  }
-  function d3_geo_greatArcInterpolate(a, b) {
-    var i = d3_geo_greatArcInterpolator().source(a).target(b);
-    i.distance();
-    return i;
-  }
-  function d3_geom_contourStart(grid) {
-    var x = 0, y = 0;
-    while (true) {
-      if (grid(x, y)) {
-        return [ x, y ];
-      }
-      if (x === 0) {
-        x = y + 1;
-        y = 0;
-      } else {
-        x = x - 1;
-        y = y + 1;
-      }
-    }
-  }
-  function d3_geom_hullCCW(i1, i2, i3, v) {
-    var t, a, b, c, d, e, f;
-    t = v[i1];
-    a = t[0];
-    b = t[1];
-    t = v[i2];
-    c = t[0];
-    d = t[1];
-    t = v[i3];
-    e = t[0];
-    f = t[1];
-    return (f - b) * (c - a) - (d - b) * (e - a) > 0;
-  }
-  function d3_geom_polygonInside(p, a, b) {
-    return (b[0] - a[0]) * (p[1] - a[1]) < (b[1] - a[1]) * (p[0] - a[0]);
-  }
-  function d3_geom_polygonIntersect(c, d, a, b) {
-    var x1 = c[0], x2 = d[0], x3 = a[0], x4 = b[0], y1 = c[1], y2 = d[1], y3 = a[1], y4 = b[1], x13 = x1 - x3, x21 = x2 - x1, x43 = x4 - x3, y13 = y1 - y3, y21 = y2 - y1, y43 = y4 - y3, ua = (x43 * y13 - y43 * x13) / (y43 * x21 - x43 * y21);
-    return [ x1 + ua * x21, y1 + ua * y21 ];
-  }
-  function d3_voronoi_tessellate(vertices, callback) {
-    var Sites = {
-      list: vertices.map(function(v, i) {
-        return {
-          index: i,
-          x: v[0],
-          y: v[1]
-        };
-      }).sort(function(a, b) {
-        return a.y < b.y ? -1 : a.y > b.y ? 1 : a.x < b.x ? -1 : a.x > b.x ? 1 : 0;
-      }),
-      bottomSite: null
-    };
-    var EdgeList = {
-      list: [],
-      leftEnd: null,
-      rightEnd: null,
-      init: function() {
-        EdgeList.leftEnd = EdgeList.createHalfEdge(null, "l");
-        EdgeList.rightEnd = EdgeList.createHalfEdge(null, "l");
-        EdgeList.leftEnd.r = EdgeList.rightEnd;
-        EdgeList.rightEnd.l = EdgeList.leftEnd;
-        EdgeList.list.unshift(EdgeList.leftEnd, EdgeList.rightEnd);
-      },
-      createHalfEdge: function(edge, side) {
-        return {
-          edge: edge,
-          side: side,
-          vertex: null,
-          l: null,
-          r: null
-        };
-      },
-      insert: function(lb, he) {
-        he.l = lb;
-        he.r = lb.r;
-        lb.r.l = he;
-        lb.r = he;
-      },
-      leftBound: function(p) {
-        var he = EdgeList.leftEnd;
-        do {
-          he = he.r;
-        } while (he != EdgeList.rightEnd && Geom.rightOf(he, p));
-        he = he.l;
-        return he;
-      },
-      del: function(he) {
-        he.l.r = he.r;
-        he.r.l = he.l;
-        he.edge = null;
-      },
-      right: function(he) {
-        return he.r;
-      },
-      left: function(he) {
-        return he.l;
-      },
-      leftRegion: function(he) {
-        return he.edge == null ? Sites.bottomSite : he.edge.region[he.side];
-      },
-      rightRegion: function(he) {
-        return he.edge == null ? Sites.bottomSite : he.edge.region[d3_voronoi_opposite[he.side]];
-      }
-    };
-    var Geom = {
-      bisect: function(s1, s2) {
-        var newEdge = {
-          region: {
-            l: s1,
-            r: s2
-          },
-          ep: {
-            l: null,
-            r: null
-          }
-        };
-        var dx = s2.x - s1.x, dy = s2.y - s1.y, adx = dx > 0 ? dx : -dx, ady = dy > 0 ? dy : -dy;
-        newEdge.c = s1.x * dx + s1.y * dy + (dx * dx + dy * dy) * .5;
-        if (adx > ady) {
-          newEdge.a = 1;
-          newEdge.b = dy / dx;
-          newEdge.c /= dx;
-        } else {
-          newEdge.b = 1;
-          newEdge.a = dx / dy;
-          newEdge.c /= dy;
-        }
-        return newEdge;
-      },
-      intersect: function(el1, el2) {
-        var e1 = el1.edge, e2 = el2.edge;
-        if (!e1 || !e2 || e1.region.r == e2.region.r) {
-          return null;
-        }
-        var d = e1.a * e2.b - e1.b * e2.a;
-        if (Math.abs(d) < 1e-10) {
-          return null;
-        }
-        var xint = (e1.c * e2.b - e2.c * e1.b) / d, yint = (e2.c * e1.a - e1.c * e2.a) / d, e1r = e1.region.r, e2r = e2.region.r, el, e;
-        if (e1r.y < e2r.y || e1r.y == e2r.y && e1r.x < e2r.x) {
-          el = el1;
-          e = e1;
-        } else {
-          el = el2;
-          e = e2;
-        }
-        var rightOfSite = xint >= e.region.r.x;
-        if (rightOfSite && el.side === "l" || !rightOfSite && el.side === "r") {
-          return null;
-        }
-        return {
-          x: xint,
-          y: yint
-        };
-      },
-      rightOf: function(he, p) {
-        var e = he.edge, topsite = e.region.r, rightOfSite = p.x > topsite.x;
-        if (rightOfSite && he.side === "l") {
-          return 1;
-        }
-        if (!rightOfSite && he.side === "r") {
-          return 0;
-        }
-        if (e.a === 1) {
-          var dyp = p.y - topsite.y, dxp = p.x - topsite.x, fast = 0, above = 0;
-          if (!rightOfSite && e.b < 0 || rightOfSite && e.b >= 0) {
-            above = fast = dyp >= e.b * dxp;
-          } else {
-            above = p.x + p.y * e.b > e.c;
-            if (e.b < 0) {
-              above = !above;
-            }
-            if (!above) {
-              fast = 1;
-            }
-          }
-          if (!fast) {
-            var dxs = topsite.x - e.region.l.x;
-            above = e.b * (dxp * dxp - dyp * dyp) < dxs * dyp * (1 + 2 * dxp / dxs + e.b * e.b);
-            if (e.b < 0) {
-              above = !above;
-            }
-          }
-        } else {
-          var yl = e.c - e.a * p.x, t1 = p.y - yl, t2 = p.x - topsite.x, t3 = yl - topsite.y;
-          above = t1 * t1 > t2 * t2 + t3 * t3;
-        }
-        return he.side === "l" ? above : !above;
-      },
-      endPoint: function(edge, side, site) {
-        edge.ep[side] = site;
-        if (!edge.ep[d3_voronoi_opposite[side]]) return;
-        callback(edge);
-      },
-      distance: function(s, t) {
-        var dx = s.x - t.x, dy = s.y - t.y;
-        return Math.sqrt(dx * dx + dy * dy);
-      }
-    };
-    var EventQueue = {
-      list: [],
-      insert: function(he, site, offset) {
-        he.vertex = site;
-        he.ystar = site.y + offset;
-        for (var i = 0, list = EventQueue.list, l = list.length; i < l; i++) {
-          var next = list[i];
-          if (he.ystar > next.ystar || he.ystar == next.ystar && site.x > next.vertex.x) {
-            continue;
-          } else {
-            break;
-          }
-        }
-        list.splice(i, 0, he);
-      },
-      del: function(he) {
-        for (var i = 0, ls = EventQueue.list, l = ls.length; i < l && ls[i] != he; ++i) {}
-        ls.splice(i, 1);
-      },
-      empty: function() {
-        return EventQueue.list.length === 0;
-      },
-      nextEvent: function(he) {
-        for (var i = 0, ls = EventQueue.list, l = ls.length; i < l; ++i) {
-          if (ls[i] == he) return ls[i + 1];
-        }
-        return null;
-      },
-      min: function() {
-        var elem = EventQueue.list[0];
-        return {
-          x: elem.vertex.x,
-          y: elem.ystar
-        };
-      },
-      extractMin: function() {
-        return EventQueue.list.shift();
-      }
-    };
-    EdgeList.init();
-    Sites.bottomSite = Sites.list.shift();
-    var newSite = Sites.list.shift(), newIntStar;
-    var lbnd, rbnd, llbnd, rrbnd, bisector;
-    var bot, top, temp, p, v;
-    var e, pm;
-    while (true) {
-      if (!EventQueue.empty()) {
-        newIntStar = EventQueue.min();
-      }
-      if (newSite && (EventQueue.empty() || newSite.y < newIntStar.y || newSite.y == newIntStar.y && newSite.x < newIntStar.x)) {
-        lbnd = EdgeList.leftBound(newSite);
-        rbnd = EdgeList.right(lbnd);
-        bot = EdgeList.rightRegion(lbnd);
-        e = Geom.bisect(bot, newSite);
-        bisector = EdgeList.createHalfEdge(e, "l");
-        EdgeList.insert(lbnd, bisector);
-        p = Geom.intersect(lbnd, bisector);
-        if (p) {
-          EventQueue.del(lbnd);
-          EventQueue.insert(lbnd, p, Geom.distance(p, newSite));
-        }
-        lbnd = bisector;
-        bisector = EdgeList.createHalfEdge(e, "r");
-        EdgeList.insert(lbnd, bisector);
-        p = Geom.intersect(bisector, rbnd);
-        if (p) {
-          EventQueue.insert(bisector, p, Geom.distance(p, newSite));
-        }
-        newSite = Sites.list.shift();
-      } else if (!EventQueue.empty()) {
-        lbnd = EventQueue.extractMin();
-        llbnd = EdgeList.left(lbnd);
-        rbnd = EdgeList.right(lbnd);
-        rrbnd = EdgeList.right(rbnd);
-        bot = EdgeList.leftRegion(lbnd);
-        top = EdgeList.rightRegion(rbnd);
-        v = lbnd.vertex;
-        Geom.endPoint(lbnd.edge, lbnd.side, v);
-        Geom.endPoint(rbnd.edge, rbnd.side, v);
-        EdgeList.del(lbnd);
-        EventQueue.del(rbnd);
-        EdgeList.del(rbnd);
-        pm = "l";
-        if (bot.y > top.y) {
-          temp = bot;
-          bot = top;
-          top = temp;
-          pm = "r";
-        }
-        e = Geom.bisect(bot, top);
-        bisector = EdgeList.createHalfEdge(e, pm);
-        EdgeList.insert(llbnd, bisector);
-        Geom.endPoint(e, d3_voronoi_opposite[pm], v);
-        p = Geom.intersect(llbnd, bisector);
-        if (p) {
-          EventQueue.del(llbnd);
-          EventQueue.insert(llbnd, p, Geom.distance(p, bot));
-        }
-        p = Geom.intersect(bisector, rrbnd);
-        if (p) {
-          EventQueue.insert(bisector, p, Geom.distance(p, bot));
-        }
-      } else {
-        break;
-      }
-    }
-    for (lbnd = EdgeList.right(EdgeList.leftEnd); lbnd != EdgeList.rightEnd; lbnd = EdgeList.right(lbnd)) {
-      callback(lbnd.edge);
-    }
-  }
-  function d3_geom_quadtreeNode() {
-    return {
-      leaf: true,
-      nodes: [],
-      point: null
-    };
-  }
-  function d3_geom_quadtreeVisit(f, node, x1, y1, x2, y2) {
-    if (!f(node, x1, y1, x2, y2)) {
-      var sx = (x1 + x2) * .5, sy = (y1 + y2) * .5, children = node.nodes;
-      if (children[0]) d3_geom_quadtreeVisit(f, children[0], x1, y1, sx, sy);
-      if (children[1]) d3_geom_quadtreeVisit(f, children[1], sx, y1, x2, sy);
-      if (children[2]) d3_geom_quadtreeVisit(f, children[2], x1, sy, sx, y2);
-      if (children[3]) d3_geom_quadtreeVisit(f, children[3], sx, sy, x2, y2);
-    }
-  }
-  function d3_geom_quadtreePoint(p) {
-    return {
-      x: p[0],
-      y: p[1]
-    };
-  }
-  function d3_time_utc() {
-    this._ = new Date(arguments.length > 1 ? Date.UTC.apply(this, arguments) : arguments[0]);
-  }
-  function d3_time_formatAbbreviate(name) {
-    return name.substring(0, 3);
-  }
-  function d3_time_parse(date, template, string, j) {
-    var c, p, i = 0, n = template.length, m = string.length;
-    while (i < n) {
-      if (j >= m) return -1;
-      c = template.charCodeAt(i++);
-      if (c == 37) {
-        p = d3_time_parsers[template.charAt(i++)];
-        if (!p || (j = p(date, string, j)) < 0) return -1;
-      } else if (c != string.charCodeAt(j++)) {
-        return -1;
-      }
-    }
-    return j;
-  }
-  function d3_time_formatRe(names) {
-    return new RegExp("^(?:" + names.map(d3.requote).join("|") + ")", "i");
-  }
-  function d3_time_formatLookup(names) {
-    var map = new d3_Map, i = -1, n = names.length;
-    while (++i < n) map.set(names[i].toLowerCase(), i);
-    return map;
-  }
-  function d3_time_parseWeekdayAbbrev(date, string, i) {
-    d3_time_dayAbbrevRe.lastIndex = 0;
-    var n = d3_time_dayAbbrevRe.exec(string.substring(i));
-    return n ? i += n[0].length : -1;
-  }
-  function d3_time_parseWeekday(date, string, i) {
-    d3_time_dayRe.lastIndex = 0;
-    var n = d3_time_dayRe.exec(string.substring(i));
-    return n ? i += n[0].length : -1;
-  }
-  function d3_time_parseMonthAbbrev(date, string, i) {
-    d3_time_monthAbbrevRe.lastIndex = 0;
-    var n = d3_time_monthAbbrevRe.exec(string.substring(i));
-    return n ? (date.m = d3_time_monthAbbrevLookup.get(n[0].toLowerCase()), i += n[0].length) : -1;
-  }
-  function d3_time_parseMonth(date, string, i) {
-    d3_time_monthRe.lastIndex = 0;
-    var n = d3_time_monthRe.exec(string.substring(i));
-    return n ? (date.m = d3_time_monthLookup.get(n[0].toLowerCase()), i += n[0].length) : -1;
-  }
-  function d3_time_parseLocaleFull(date, string, i) {
-    return d3_time_parse(date, d3_time_formats.c.toString(), string, i);
-  }
-  function d3_time_parseLocaleDate(date, string, i) {
-    return d3_time_parse(date, d3_time_formats.x.toString(), string, i);
-  }
-  function d3_time_parseLocaleTime(date, string, i) {
-    return d3_time_parse(date, d3_time_formats.X.toString(), string, i);
-  }
-  function d3_time_parseFullYear(date, string, i) {
-    d3_time_numberRe.lastIndex = 0;
-    var n = d3_time_numberRe.exec(string.substring(i, i + 4));
-    return n ? (date.y = +n[0], i += n[0].length) : -1;
-  }
-  function d3_time_parseYear(date, string, i) {
-    d3_time_numberRe.lastIndex = 0;
-    var n = d3_time_numberRe.exec(string.substring(i, i + 2));
-    return n ? (date.y = d3_time_expandYear(+n[0]), i += n[0].length) : -1;
-  }
-  function d3_time_expandYear(d) {
-    return d + (d > 68 ? 1900 : 2e3);
-  }
-  function d3_time_parseMonthNumber(date, string, i) {
-    d3_time_numberRe.lastIndex = 0;
-    var n = d3_time_numberRe.exec(string.substring(i, i + 2));
-    return n ? (date.m = n[0] - 1, i += n[0].length) : -1;
-  }
-  function d3_time_parseDay(date, string, i) {
-    d3_time_numberRe.lastIndex = 0;
-    var n = d3_time_numberRe.exec(string.substring(i, i + 2));
-    return n ? (date.d = +n[0], i += n[0].length) : -1;
-  }
-  function d3_time_parseHour24(date, string, i) {
-    d3_time_numberRe.lastIndex = 0;
-    var n = d3_time_numberRe.exec(string.substring(i, i + 2));
-    return n ? (date.H = +n[0], i += n[0].length) : -1;
-  }
-  function d3_time_parseMinutes(date, string, i) {
-    d3_time_numberRe.lastIndex = 0;
-    var n = d3_time_numberRe.exec(string.substring(i, i + 2));
-    return n ? (date.M = +n[0], i += n[0].length) : -1;
-  }
-  function d3_time_parseSeconds(date, string, i) {
-    d3_time_numberRe.lastIndex = 0;
-    var n = d3_time_numberRe.exec(string.substring(i, i + 2));
-    return n ? (date.S = +n[0], i += n[0].length) : -1;
-  }
-  function d3_time_parseMilliseconds(date, string, i) {
-    d3_time_numberRe.lastIndex = 0;
-    var n = d3_time_numberRe.exec(string.substring(i, i + 3));
-    return n ? (date.L = +n[0], i += n[0].length) : -1;
-  }
-  function d3_time_parseAmPm(date, string, i) {
-    var n = d3_time_amPmLookup.get(string.substring(i, i += 2).toLowerCase());
-    return n == null ? -1 : (date.p = n, i);
-  }
-  function d3_time_zone(d) {
-    var z = d.getTimezoneOffset(), zs = z > 0 ? "-" : "+", zh = ~~(Math.abs(z) / 60), zm = Math.abs(z) % 60;
-    return zs + d3_time_zfill2(zh) + d3_time_zfill2(zm);
-  }
-  function d3_time_formatIsoNative(date) {
-    return date.toISOString();
-  }
-  function d3_time_interval(local, step, number) {
-    function round(date) {
-      var d0 = local(date), d1 = offset(d0, 1);
-      return date - d0 < d1 - date ? d0 : d1;
-    }
-    function ceil(date) {
-      step(date = local(new d3_time(date - 1)), 1);
-      return date;
-    }
-    function offset(date, k) {
-      step(date = new d3_time(+date), k);
-      return date;
-    }
-    function range(t0, t1, dt) {
-      var time = ceil(t0), times = [];
-      if (dt > 1) {
-        while (time < t1) {
-          if (!(number(time) % dt)) times.push(new Date(+time));
-          step(time, 1);
-        }
-      } else {
-        while (time < t1) times.push(new Date(+time)), step(time, 1);
-      }
-      return times;
-    }
-    function range_utc(t0, t1, dt) {
-      try {
-        d3_time = d3_time_utc;
-        var utc = new d3_time_utc;
-        utc._ = t0;
-        return range(utc, t1, dt);
-      } finally {
-        d3_time = Date;
-      }
-    }
-    local.floor = local;
-    local.round = round;
-    local.ceil = ceil;
-    local.offset = offset;
-    local.range = range;
-    var utc = local.utc = d3_time_interval_utc(local);
-    utc.floor = utc;
-    utc.round = d3_time_interval_utc(round);
-    utc.ceil = d3_time_interval_utc(ceil);
-    utc.offset = d3_time_interval_utc(offset);
-    utc.range = range_utc;
-    return local;
-  }
-  function d3_time_interval_utc(method) {
-    return function(date, k) {
-      try {
-        d3_time = d3_time_utc;
-        var utc = new d3_time_utc;
-        utc._ = date;
-        return method(utc, k)._;
-      } finally {
-        d3_time = Date;
-      }
-    };
-  }
-  function d3_time_scale(linear, methods, format) {
-    function scale(x) {
-      return linear(x);
-    }
-    scale.invert = function(x) {
-      return d3_time_scaleDate(linear.invert(x));
-    };
-    scale.domain = function(x) {
-      if (!arguments.length) return linear.domain().map(d3_time_scaleDate);
-      linear.domain(x);
-      return scale;
-    };
-    scale.nice = function(m) {
-      return scale.domain(d3_scale_nice(scale.domain(), function() {
-        return m;
-      }));
-    };
-    scale.ticks = function(m, k) {
-      var extent = d3_time_scaleExtent(scale.domain());
-      if (typeof m !== "function") {
-        var span = extent[1] - extent[0], target = span / m, i = d3.bisect(d3_time_scaleSteps, target);
-        if (i == d3_time_scaleSteps.length) return methods.year(extent, m);
-        if (!i) return linear.ticks(m).map(d3_time_scaleDate);
-        if (Math.log(target / d3_time_scaleSteps[i - 1]) < Math.log(d3_time_scaleSteps[i] / target)) --i;
-        m = methods[i];
-        k = m[1];
-        m = m[0].range;
-      }
-      return m(extent[0], new Date(+extent[1] + 1), k);
-    };
-    scale.tickFormat = function() {
-      return format;
-    };
-    scale.copy = function() {
-      return d3_time_scale(linear.copy(), methods, format);
-    };
-    return d3.rebind(scale, linear, "range", "rangeRound", "interpolate", "clamp");
-  }
-  function d3_time_scaleExtent(domain) {
-    var start = domain[0], stop = domain[domain.length - 1];
-    return start < stop ? [ start, stop ] : [ stop, start ];
-  }
-  function d3_time_scaleDate(t) {
-    return new Date(t);
-  }
-  function d3_time_scaleFormat(formats) {
-    return function(date) {
-      var i = formats.length - 1, f = formats[i];
-      while (!f[1](date)) f = formats[--i];
-      return f[0](date);
-    };
-  }
-  function d3_time_scaleSetYear(y) {
-    var d = new Date(y, 0, 1);
-    d.setFullYear(y);
-    return d;
-  }
-  function d3_time_scaleGetYear(d) {
-    var y = d.getFullYear(), d0 = d3_time_scaleSetYear(y), d1 = d3_time_scaleSetYear(y + 1);
-    return y + (d - d0) / (d1 - d0);
-  }
-  function d3_time_scaleUTCSetYear(y) {
-    var d = new Date(Date.UTC(y, 0, 1));
-    d.setUTCFullYear(y);
-    return d;
-  }
-  function d3_time_scaleUTCGetYear(d) {
-    var y = d.getUTCFullYear(), d0 = d3_time_scaleUTCSetYear(y), d1 = d3_time_scaleUTCSetYear(y + 1);
-    return y + (d - d0) / (d1 - d0);
-  }
-  if (!Date.now) Date.now = function() {
-    return +(new Date);
-  };
-  try {
-    document.createElement("div").style.setProperty("opacity", 0, "");
-  } catch (error) {
-    var d3_style_prototype = CSSStyleDeclaration.prototype, d3_style_setProperty = d3_style_prototype.setProperty;
-    d3_style_prototype.setProperty = function(name, value, priority) {
-      d3_style_setProperty.call(this, name, value + "", priority);
-    };
-  }
-  d3 = {
-    version: "2.10.2"
-  };
-  var d3_array = d3_arraySlice;
-  try {
-    d3_array(document.documentElement.childNodes)[0].nodeType;
-  } catch (e) {
-    d3_array = d3_arrayCopy;
-  }
-  var d3_arraySubclass = [].__proto__ ? function(array, prototype) {
-    array.__proto__ = prototype;
-  } : function(array, prototype) {
-    for (var property in prototype) array[property] = prototype[property];
-  };
-  d3.map = function(object) {
-    var map = new d3_Map;
-    for (var key in object) map.set(key, object[key]);
-    return map;
-  };
-  d3_class(d3_Map, {
-    has: function(key) {
-      return d3_map_prefix + key in this;
-    },
-    get: function(key) {
-      return this[d3_map_prefix + key];
-    },
-    set: function(key, value) {
-      return this[d3_map_prefix + key] = value;
-    },
-    remove: function(key) {
-      key = d3_map_prefix + key;
-      return key in this && delete this[key];
-    },
-    keys: function() {
-      var keys = [];
-      this.forEach(function(key) {
-        keys.push(key);
-      });
-      return keys;
-    },
-    values: function() {
-      var values = [];
-      this.forEach(function(key, value) {
-        values.push(value);
-      });
-      return values;
-    },
-    entries: function() {
-      var entries = [];
-      this.forEach(function(key, value) {
-        entries.push({
-          key: key,
-          value: value
-        });
-      });
-      return entries;
-    },
-    forEach: function(f) {
-      for (var key in this) {
-        if (key.charCodeAt(0) === d3_map_prefixCode) {
-          f.call(this, key.substring(1), this[key]);
-        }
-      }
-    }
-  });
-  var d3_map_prefix = "\0", d3_map_prefixCode = d3_map_prefix.charCodeAt(0);
-  d3.functor = d3_functor;
-  d3.rebind = function(target, source) {
-    var i = 1, n = arguments.length, method;
-    while (++i < n) target[method = arguments[i]] = d3_rebind(target, source, source[method]);
-    return target;
-  };
-  d3.ascending = function(a, b) {
-    return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;
-  };
-  d3.descending = function(a, b) {
-    return b < a ? -1 : b > a ? 1 : b >= a ? 0 : NaN;
-  };
-  d3.mean = function(array, f) {
-    var n = array.length, a, m = 0, i = -1, j = 0;
-    if (arguments.length === 1) {
-      while (++i < n) if (d3_number(a = array[i])) m += (a - m) / ++j;
-    } else {
-      while (++i < n) if (d3_number(a = f.call(array, array[i], i))) m += (a - m) / ++j;
-    }
-    return j ? m : undefined;
-  };
-  d3.median = function(array, f) {
-    if (arguments.length > 1) array = array.map(f);
-    array = array.filter(d3_number);
-    return array.length ? d3.quantile(array.sort(d3.ascending), .5) : undefined;
-  };
-  d3.min = function(array, f) {
-    var i = -1, n = array.length, a, b;
-    if (arguments.length === 1) {
-      while (++i < n && ((a = array[i]) == null || a != a)) a = undefined;
-      while (++i < n) if ((b = array[i]) != null && a > b) a = b;
-    } else {
-      while (++i < n && ((a = f.call(array, array[i], i)) == null || a != a)) a = undefined;
-      while (++i < n) if ((b = f.call(array, array[i], i)) != null && a > b) a = b;
-    }
-    return a;
-  };
-  d3.max = function(array, f) {
-    var i = -1, n = array.length, a, b;
-    if (arguments.length === 1) {
-      while (++i < n && ((a = array[i]) == null || a != a)) a = undefined;
-      while (++i < n) if ((b = array[i]) != null && b > a) a = b;
-    } else {
-      while (++i < n && ((a = f.call(array, array[i], i)) == null || a != a)) a = undefined;
-      while (++i < n) if ((b = f.call(array, array[i], i)) != null && b > a) a = b;
-    }
-    return a;
-  };
-  d3.extent = function(array, f) {
-    var i = -1, n = array.length, a, b, c;
-    if (arguments.length === 1) {
-      while (++i < n && ((a = c = array[i]) == null || a != a)) a = c = undefined;
-      while (++i < n) if ((b = array[i]) != null) {
-        if (a > b) a = b;
-        if (c < b) c = b;
-      }
-    } else {
-      while (++i < n && ((a = c = f.call(array, array[i], i)) == null || a != a)) a = undefined;
-      while (++i < n) if ((b = f.call(array, array[i], i)) != null) {
-        if (a > b) a = b;
-        if (c < b) c = b;
-      }
-    }
-    return [ a, c ];
-  };
-  d3.random = {
-    normal: function(µ, σ) {
-      var n = arguments.length;
-      if (n < 2) σ = 1;
-      if (n < 1) µ = 0;
-      return function() {
-        var x, y, r;
-        do {
-          x = Math.random() * 2 - 1;
-          y = Math.random() * 2 - 1;
-          r = x * x + y * y;
-        } while (!r || r > 1);
-        return µ + σ * x * Math.sqrt(-2 * Math.log(r) / r);
-      };
-    },
-    logNormal: function(µ, σ) {
-      var n = arguments.length;
-      if (n < 2) σ = 1;
-      if (n < 1) µ = 0;
-      var random = d3.random.normal();
-      return function() {
-        return Math.exp(µ + σ * random());
-      };
-    },
-    irwinHall: function(m) {
-      return function() {
-        for (var s = 0, j = 0; j < m; j++) s += Math.random();
-        return s / m;
-      };
-    }
-  };
-  d3.sum = function(array, f) {
-    var s = 0, n = array.length, a, i = -1;
-    if (arguments.length === 1) {
-      while (++i < n) if (!isNaN(a = +array[i])) s += a;
-    } else {
-      while (++i < n) if (!isNaN(a = +f.call(array, array[i], i))) s += a;
-    }
-    return s;
-  };
-  d3.quantile = function(values, p) {
-    var H = (values.length - 1) * p + 1, h = Math.floor(H), v = values[h - 1], e = H - h;
-    return e ? v + e * (values[h] - v) : v;
-  };
-  d3.transpose = function(matrix) {
-    return d3.zip.apply(d3, matrix);
-  };
-  d3.zip = function() {
-    if (!(n = arguments.length)) return [];
-    for (var i = -1, m = d3.min(arguments, d3_zipLength), zips = new Array(m); ++i < m; ) {
-      for (var j = -1, n, zip = zips[i] = new Array(n); ++j < n; ) {
-        zip[j] = arguments[j][i];
-      }
-    }
-    return zips;
-  };
-  d3.bisector = function(f) {
-    return {
-      left: function(a, x, lo, hi) {
-        if (arguments.length < 3) lo = 0;
-        if (arguments.length < 4) hi = a.length;
-        while (lo < hi) {
-          var mid = lo + hi >>> 1;
-          if (f.call(a, a[mid], mid) < x) lo = mid + 1; else hi = mid;
-        }
-        return lo;
-      },
-      right: function(a, x, lo, hi) {
-        if (arguments.length < 3) lo = 0;
-        if (arguments.length < 4) hi = a.length;
-        while (lo < hi) {
-          var mid = lo + hi >>> 1;
-          if (x < f.call(a, a[mid], mid)) hi = mid; else lo = mid + 1;
-        }
-        return lo;
-      }
-    };
-  };
-  var d3_bisector = d3.bisector(function(d) {
-    return d;
-  });
-  d3.bisectLeft = d3_bisector.left;
-  d3.bisect = d3.bisectRight = d3_bisector.right;
-  d3.first = function(array, f) {
-    var i = 0, n = array.length, a = array[0], b;
-    if (arguments.length === 1) f = d3.ascending;
-    while (++i < n) {
-      if (f.call(array, a, b = array[i]) > 0) {
-        a = b;
-      }
-    }
-    return a;
-  };
-  d3.last = function(array, f) {
-    var i = 0, n = array.length, a = array[0], b;
-    if (arguments.length === 1) f = d3.ascending;
-    while (++i < n) {
-      if (f.call(array, a, b = array[i]) <= 0) {
-        a = b;
-      }
-    }
-    return a;
-  };
-  d3.nest = function() {
-    function map(array, depth) {
-      if (depth >= keys.length) return rollup ? rollup.call(nest, array) : sortValues ? array.sort(sortValues) : array;
-      var i = -1, n = array.length, key = keys[depth++], keyValue, object, valuesByKey = new d3_Map, values, o = {};
-      while (++i < n) {
-        if (values = valuesByKey.get(keyValue = key(object = array[i]))) {
-          values.push(object);
-        } else {
-          valuesByKey.set(keyValue, [ object ]);
-        }
-      }
-      valuesByKey.forEach(function(keyValue, values) {
-        o[keyValue] = map(values, depth);
-      });
-      return o;
-    }
-    function entries(map, depth) {
-      if (depth >= keys.length) return map;
-      var a = [], sortKey = sortKeys[depth++], key;
-      for (key in map) {
-        a.push({
-          key: key,
-          values: entries(map[key], depth)
-        });
-      }
-      if (sortKey) a.sort(function(a, b) {
-        return sortKey(a.key, b.key);
-      });
-      return a;
-    }
-    var nest = {}, keys = [], sortKeys = [], sortValues, rollup;
-    nest.map = function(array) {
-      return map(array, 0);
-    };
-    nest.entries = function(array) {
-      return entries(map(array, 0), 0);
-    };
-    nest.key = function(d) {
-      keys.push(d);
-      return nest;
-    };
-    nest.sortKeys = function(order) {
-      sortKeys[keys.length - 1] = order;
-      return nest;
-    };
-    nest.sortValues = function(order) {
-      sortValues = order;
-      return nest;
-    };
-    nest.rollup = function(f) {
-      rollup = f;
-      return nest;
-    };
-    return nest;
-  };
-  d3.keys = function(map) {
-    var keys = [];
-    for (var key in map) keys.push(key);
-    return keys;
-  };
-  d3.values = function(map) {
-    var values = [];
-    for (var key in map) values.push(map[key]);
-    return values;
-  };
-  d3.entries = function(map) {
-    var entries = [];
-    for (var key in map) entries.push({
-      key: key,
-      value: map[key]
-    });
-    return entries;
-  };
-  d3.permute = function(array, indexes) {
-    var permutes = [], i = -1, n = indexes.length;
-    while (++i < n) permutes[i] = array[indexes[i]];
-    return permutes;
-  };
-  d3.merge = function(arrays) {
-    return Array.prototype.concat.apply([], arrays);
-  };
-  d3.split = function(array, f) {
-    var arrays = [], values = [], value, i = -1, n = array.length;
-    if (arguments.length < 2) f = d3_splitter;
-    while (++i < n) {
-      if (f.call(values, value = array[i], i)) {
-        values = [];
-      } else {
-        if (!values.length) arrays.push(values);
-        values.push(value);
-      }
-    }
-    return arrays;
-  };
-  d3.range = function(start, stop, step) {
-    if (arguments.length < 3) {
-      step = 1;
-      if (arguments.length < 2) {
-        stop = start;
-        start = 0;
-      }
-    }
-    if ((stop - start) / step === Infinity) throw new Error("infinite range");
-    var range = [], k = d3_range_integerScale(Math.abs(step)), i = -1, j;
-    start *= k, stop *= k, step *= k;
-    if (step < 0) while ((j = start + step * ++i) > stop) range.push(j / k); else while ((j = start + step * ++i) < stop) range.push(j / k);
-    return range;
-  };
-  d3.requote = function(s) {
-    return s.replace(d3_requote_re, "\\$&");
-  };
-  var d3_requote_re = /[\\\^\$\*\+\?\|\[\]\(\)\.\{\}]/g;
-  d3.round = function(x, n) {
-    return n ? Math.round(x * (n = Math.pow(10, n))) / n : Math.round(x);
-  };
-  d3.xhr = function(url, mime, callback) {
-    var req = new XMLHttpRequest;
-    if (arguments.length < 3) callback = mime, mime = null; else if (mime && req.overrideMimeType) req.overrideMimeType(mime);
-    req.open("GET", url, true);
-    if (mime) req.setRequestHeader("Accept", mime);
-    req.onreadystatechange = function() {
-      if (req.readyState === 4) {
-        var s = req.status;
-        callback(!s && req.response || s >= 200 && s < 300 || s === 304 ? req : null);
-      }
-    };
-    req.send(null);
-  };
-  d3.text = function(url, mime, callback) {
-    function ready(req) {
-      callback(req && req.responseText);
-    }
-    if (arguments.length < 3) {
-      callback = mime;
-      mime = null;
-    }
-    d3.xhr(url, mime, ready);
-  };
-  d3.json = function(url, callback) {
-    d3.text(url, "application/json", function(text) {
-      callback(text ? JSON.parse(text) : null);
-    });
-  };
-  d3.html = function(url, callback) {
-    d3.text(url, "text/html", function(text) {
-      if (text != null) {
-        var range = document.createRange();
-        range.selectNode(document.body);
-        text = range.createContextualFragment(text);
-      }
-      callback(text);
-    });
-  };
-  d3.xml = function(url, mime, callback) {
-    function ready(req) {
-      callback(req && req.responseXML);
-    }
-    if (arguments.length < 3) {
-      callback = mime;
-      mime = null;
-    }
-    d3.xhr(url, mime, ready);
-  };
-  var d3_nsPrefix = {
-    svg: "http://www.w3.org/2000/svg",
-    xhtml: "http://www.w3.org/1999/xhtml",
-    xlink: "http://www.w3.org/1999/xlink",
-    xml: "http://www.w3.org/XML/1998/namespace",
-    xmlns: "http://www.w3.org/2000/xmlns/"
-  };
-  d3.ns = {
-    prefix: d3_nsPrefix,
-    qualify: function(name) {
-      var i = name.indexOf(":"), prefix = name;
-      if (i >= 0) {
-        prefix = name.substring(0, i);
-        name = name.substring(i + 1);
-      }
-      return d3_nsPrefix.hasOwnProperty(prefix) ? {
-        space: d3_nsPrefix[prefix],
-        local: name
-      } : name;
-    }
-  };
-  d3.dispatch = function() {
-    var dispatch = new d3_dispatch, i = -1, n = arguments.length;
-    while (++i < n) dispatch[arguments[i]] = d3_dispatch_event(dispatch);
-    return dispatch;
-  };
-  d3_dispatch.prototype.on = function(type, listener) {
-    var i = type.indexOf("."), name = "";
-    if (i > 0) {
-      name = type.substring(i + 1);
-      type = type.substring(0, i);
-    }
-    return arguments.length < 2 ? this[type].on(name) : this[type].on(name, listener);
-  };
-  d3.format = function(specifier) {
-    var match = d3_format_re.exec(specifier), fill = match[1] || " ", sign = match[3] || "", zfill = match[5], width = +match[6], comma = match[7], precision = match[8], type = match[9], scale = 1, suffix = "", integer = false;
-    if (precision) precision = +precision.substring(1);
-    if (zfill) {
-      fill = "0";
-      if (comma) width -= Math.floor((width - 1) / 4);
-    }
-    switch (type) {
-     case "n":
-      comma = true;
-      type = "g";
-      break;
-     case "%":
-      scale = 100;
-      suffix = "%";
-      type = "f";
-      break;
-     case "p":
-      scale = 100;
-      suffix = "%";
-      type = "r";
-      break;
-     case "d":
-      integer = true;
-      precision = 0;
-      break;
-     case "s":
-      scale = -1;
-      type = "r";
-      break;
-    }
-    if (type == "r" && !precision) type = "g";
-    type = d3_format_types.get(type) || d3_format_typeDefault;
-    return function(value) {
-      if (integer && value % 1) return "";
-      var negative = value < 0 && (value = -value) ? "-" : sign;
-      if (scale < 0) {
-        var prefix = d3.formatPrefix(value, precision);
-        value = prefix.scale(value);
-        suffix = prefix.symbol;
-      } else {
-        value *= scale;
-      }
-      value = type(value, precision);
-      if (zfill) {
-        var length = value.length + negative.length;
-        if (length < width) value = (new Array(width - length + 1)).join(fill) + value;
-        if (comma) value = d3_format_group(value);
-        value = negative + value;
-      } else {
-        if (comma) value = d3_format_group(value);
-        value = negative + value;
-        var length = value.length;
-        if (length < width) value = (new Array(width - length + 1)).join(fill) + value;
-      }
-      return value + suffix;
-    };
-  };
-  var d3_format_re = /(?:([^{])?([<>=^]))?([+\- ])?(#)?(0)?([0-9]+)?(,)?(\.[0-9]+)?([a-zA-Z%])?/;
-  var d3_format_types = d3.map({
-    g: function(x, p) {
-      return x.toPrecision(p);
-    },
-    e: function(x, p) {
-      return x.toExponential(p);
-    },
-    f: function(x, p) {
-      return x.toFixed(p);
-    },
-    r: function(x, p) {
-      return d3.round(x, p = d3_format_precision(x, p)).toFixed(Math.max(0, Math.min(20, p)));
-    }
-  });
-  var d3_formatPrefixes = [ "y", "z", "a", "f", "p", "n", "μ", "m", "", "k", "M", "G", "T", "P", "E", "Z", "Y" ].map(d3_formatPrefix);
-  d3.formatPrefix = function(value, precision) {
-    var i = 0;
-    if (value) {
-      if (value < 0) value *= -1;
-      if (precision) value = d3.round(value, d3_format_precision(value, precision));
-      i = 1 + Math.floor(1e-12 + Math.log(value) / Math.LN10);
-      i = Math.max(-24, Math.min(24, Math.floor((i <= 0 ? i + 1 : i - 1) / 3) * 3));
-    }
-    return d3_formatPrefixes[8 + i / 3];
-  };
-  var d3_ease_quad = d3_ease_poly(2), d3_ease_cubic = d3_ease_poly(3), d3_ease_default = function() {
-    return d3_ease_identity;
-  };
-  var d3_ease = d3.map({
-    linear: d3_ease_default,
-    poly: d3_ease_poly,
-    quad: function() {
-      return d3_ease_quad;
-    },
-    cubic: function() {
-      return d3_ease_cubic;
-    },
-    sin: function() {
-      return d3_ease_sin;
-    },
-    exp: function() {
-      return d3_ease_exp;
-    },
-    circle: function() {
-      return d3_ease_circle;
-    },
-    elastic: d3_ease_elastic,
-    back: d3_ease_back,
-    bounce: function() {
-      return d3_ease_bounce;
-    }
-  });
-  var d3_ease_mode = d3.map({
-    "in": d3_ease_identity,
-    out: d3_ease_reverse,
-    "in-out": d3_ease_reflect,
-    "out-in": function(f) {
-      return d3_ease_reflect(d3_ease_reverse(f));
-    }
-  });
-  d3.ease = function(name) {
-    var i = name.indexOf("-"), t = i >= 0 ? name.substring(0, i) : name, m = i >= 0 ? name.substring(i + 1) : "in";
-    t = d3_ease.get(t) || d3_ease_default;
-    m = d3_ease_mode.get(m) || d3_ease_identity;
-    return d3_ease_clamp(m(t.apply(null, Array.prototype.slice.call(arguments, 1))));
-  };
-  d3.event = null;
-  d3.transform = function(string) {
-    var g = document.createElementNS(d3.ns.prefix.svg, "g");
-    return (d3.transform = function(string) {
-      g.setAttribute("transform", string);
-      var t = g.transform.baseVal.consolidate();
-      return new d3_transform(t ? t.matrix : d3_transformIdentity);
-    })(string);
-  };
-  d3_transform.prototype.toString = function() {
-    return "translate(" + this.translate + ")rotate(" + this.rotate + ")skewX(" + this.skew + ")scale(" + this.scale + ")";
-  };
-  var d3_transformDegrees = 180 / Math.PI, d3_transformIdentity = {
-    a: 1,
-    b: 0,
-    c: 0,
-    d: 1,
-    e: 0,
-    f: 0
-  };
-  d3.interpolate = function(a, b) {
-    var i = d3.interpolators.length, f;
-    while (--i >= 0 && !(f = d3.interpolators[i](a, b))) ;
-    return f;
-  };
-  d3.interpolateNumber = function(a, b) {
-    b -= a;
-    return function(t) {
-      return a + b * t;
-    };
-  };
-  d3.interpolateRound = function(a, b) {
-    b -= a;
-    return function(t) {
-      return Math.round(a + b * t);
-    };
-  };
-  d3.interpolateString = function(a, b) {
-    var m, i, j, s0 = 0, s1 = 0, s = [], q = [], n, o;
-    d3_interpolate_number.lastIndex = 0;
-    for (i = 0; m = d3_interpolate_number.exec(b); ++i) {
-      if (m.index) s.push(b.substring(s0, s1 = m.index));
-      q.push({
-        i: s.length,
-        x: m[0]
-      });
-      s.push(null);
-      s0 = d3_interpolate_number.lastIndex;
-    }
-    if (s0 < b.length) s.push(b.substring(s0));
-    for (i = 0, n = q.length; (m = d3_interpolate_number.exec(a)) && i < n; ++i) {
-      o = q[i];
-      if (o.x == m[0]) {
-        if (o.i) {
-          if (s[o.i + 1] == null) {
-            s[o.i - 1] += o.x;
-            s.splice(o.i, 1);
-            for (j = i + 1; j < n; ++j) q[j].i--;
-          } else {
-            s[o.i - 1] += o.x + s[o.i + 1];
-            s.splice(o.i, 2);
-            for (j = i + 1; j < n; ++j) q[j].i -= 2;
-          }
-        } else {
-          if (s[o.i + 1] == null) {
-            s[o.i] = o.x;
-          } else {
-            s[o.i] = o.x + s[o.i + 1];
-            s.splice(o.i + 1, 1);
-            for (j = i + 1; j < n; ++j) q[j].i--;
-          }
-        }
-        q.splice(i, 1);
-        n--;
-        i--;
-      } else {
-        o.x = d3.interpolateNumber(parseFloat(m[0]), parseFloat(o.x));
-      }
-    }
-    while (i < n) {
-      o = q.pop();
-      if (s[o.i + 1] == null) {
-        s[o.i] = o.x;
-      } else {
-        s[o.i] = o.x + s[o.i + 1];
-        s.splice(o.i + 1, 1);
-      }
-      n--;
-    }
-    if (s.length === 1) {
-      return s[0] == null ? q[0].x : function() {
-        return b;
-      };
-    }
-    return function(t) {
-      for (i = 0; i < n; ++i) s[(o = q[i]).i] = o.x(t);
-      return s.join("");
-    };
-  };
-  d3.interpolateTransform = function(a, b) {
-    var s = [], q = [], n, A = d3.transform(a), B = d3.transform(b), ta = A.translate, tb = B.translate, ra = A.rotate, rb = B.rotate, wa = A.skew, wb = B.skew, ka = A.scale, kb = B.scale;
-    if (ta[0] != tb[0] || ta[1] != tb[1]) {
-      s.push("translate(", null, ",", null, ")");
-      q.push({
-        i: 1,
-        x: d3.interpolateNumber(ta[0], tb[0])
-      }, {
-        i: 3,
-        x: d3.interpolateNumber(ta[1], tb[1])
-      });
-    } else if (tb[0] || tb[1]) {
-      s.push("translate(" + tb + ")");
-    } else {
-      s.push("");
-    }
-    if (ra != rb) {
-      if (ra - rb > 180) rb += 360; else if (rb - ra > 180) ra += 360;
-      q.push({
-        i: s.push(s.pop() + "rotate(", null, ")") - 2,
-        x: d3.interpolateNumber(ra, rb)
-      });
-    } else if (rb) {
-      s.push(s.pop() + "rotate(" + rb + ")");
-    }
-    if (wa != wb) {
-      q.push({
-        i: s.push(s.pop() + "skewX(", null, ")") - 2,
-        x: d3.interpolateNumber(wa, wb)
-      });
-    } else if (wb) {
-      s.push(s.pop() + "skewX(" + wb + ")");
-    }
-    if (ka[0] != kb[0] || ka[1] != kb[1]) {
-      n = s.push(s.pop() + "scale(", null, ",", null, ")");
-      q.push({
-        i: n - 4,
-        x: d3.interpolateNumber(ka[0], kb[0])
-      }, {
-        i: n - 2,
-        x: d3.interpolateNumber(ka[1], kb[1])
-      });
-    } else if (kb[0] != 1 || kb[1] != 1) {
-      s.push(s.pop() + "scale(" + kb + ")");
-    }
-    n = q.length;
-    return function(t) {
-      var i = -1, o;
-      while (++i < n) s[(o = q[i]).i] = o.x(t);
-      return s.join("");
-    };
-  };
-  d3.interpolateRgb = function(a, b) {
-    a = d3.rgb(a);
-    b = d3.rgb(b);
-    var ar = a.r, ag = a.g, ab = a.b, br = b.r - ar, bg = b.g - ag, bb = b.b - ab;
-    return function(t) {
-      return "#" + d3_rgb_hex(Math.round(ar + br * t)) + d3_rgb_hex(Math.round(ag + bg * t)) + d3_rgb_hex(Math.round(ab + bb * t));
-    };
-  };
-  d3.interpolateHsl = function(a, b) {
-    a = d3.hsl(a);
-    b = d3.hsl(b);
-    var h0 = a.h, s0 = a.s, l0 = a.l, h1 = b.h - h0, s1 = b.s - s0, l1 = b.l - l0;
-    if (h1 > 180) h1 -= 360; else if (h1 < -180) h1 += 360;
-    return function(t) {
-      return d3_hsl_rgb(h0 + h1 * t, s0 + s1 * t, l0 + l1 * t) + "";
-    };
-  };
-  d3.interpolateLab = function(a, b) {
-    a = d3.lab(a);
-    b = d3.lab(b);
-    var al = a.l, aa = a.a, ab = a.b, bl = b.l - al, ba = b.a - aa, bb = b.b - ab;
-    return function(t) {
-      return d3_lab_rgb(al + bl * t, aa + ba * t, ab + bb * t) + "";
-    };
-  };
-  d3.interpolateHcl = function(a, b) {
-    a = d3.hcl(a);
-    b = d3.hcl(b);
-    var ah = a.h, ac = a.c, al = a.l, bh = b.h - ah, bc = b.c - ac, bl = b.l - al;
-    if (bh > 180) bh -= 360; else if (bh < -180) bh += 360;
-    return function(t) {
-      return d3_hcl_lab(ah + bh * t, ac + bc * t, al + bl * t) + "";
-    };
-  };
-  d3.interpolateArray = function(a, b) {
-    var x = [], c = [], na = a.length, nb = b.length, n0 = Math.min(a.length, b.length), i;
-    for (i = 0; i < n0; ++i) x.push(d3.interpolate(a[i], b[i]));
-    for (; i < na; ++i) c[i] = a[i];
-    for (; i < nb; ++i) c[i] = b[i];
-    return function(t) {
-      for (i = 0; i < n0; ++i) c[i] = x[i](t);
-      return c;
-    };
-  };
-  d3.interpolateObject = function(a, b) {
-    var i = {}, c = {}, k;
-    for (k in a) {
-      if (k in b) {
-        i[k] = d3_interpolateByName(k)(a[k], b[k]);
-      } else {
-        c[k] = a[k];
-      }
-    }
-    for (k in b) {
-      if (!(k in a)) {
-        c[k] = b[k];
-      }
-    }
-    return function(t) {
-      for (k in i) c[k] = i[k](t);
-      return c;
-    };
-  };
-  var d3_interpolate_number = /[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g;
-  d3.interpolators = [ d3.interpolateObject, function(a, b) {
-    return b instanceof Array && d3.interpolateArray(a, b);
-  }, function(a, b) {
-    return (typeof a === "string" || typeof b === "string") && d3.interpolateString(a + "", b + "");
-  }, function(a, b) {
-    return (typeof b === "string" ? d3_rgb_names.has(b) || /^(#|rgb\(|hsl\()/.test(b) : b instanceof d3_Rgb || b instanceof d3_Hsl) && d3.interpolateRgb(a, b);
-  }, function(a, b) {
-    return !isNaN(a = +a) && !isNaN(b = +b) && d3.interpolateNumber(a, b);
-  } ];
-  d3.rgb = function(r, g, b) {
-    return arguments.length === 1 ? r instanceof d3_Rgb ? d3_rgb(r.r, r.g, r.b) : d3_rgb_parse("" + r, d3_rgb, d3_hsl_rgb) : d3_rgb(~~r, ~~g, ~~b);
-  };
-  d3_Rgb.prototype.brighter = function(k) {
-    k = Math.pow(.7, arguments.length ? k : 1);
-    var r = this.r, g = this.g, b = this.b, i = 30;
-    if (!r && !g && !b) return d3_rgb(i, i, i);
-    if (r && r < i) r = i;
-    if (g && g < i) g = i;
-    if (b && b < i) b = i;
-    return d3_rgb(Math.min(255, Math.floor(r / k)), Math.min(255, Math.floor(g / k)), Math.min(255, Math.floor(b / k)));
-  };
-  d3_Rgb.prototype.darker = function(k) {
-    k = Math.pow(.7, arguments.length ? k : 1);
-    return d3_rgb(Math.floor(k * this.r), Math.floor(k * this.g), Math.floor(k * this.b));
-  };
-  d3_Rgb.prototype.hsl = function() {
-    return d3_rgb_hsl(this.r, this.g, this.b);
-  };
-  d3_Rgb.prototype.toString = function() {
-    return "#" + d3_rgb_hex(this.r) + d3_rgb_hex(this.g) + d3_rgb_hex(this.b);
-  };
-  var d3_rgb_names = d3.map({
-    aliceblue: "#f0f8ff",
-    antiquewhite: "#faebd7",
-    aqua: "#00ffff",
-    aquamarine: "#7fffd4",
-    azure: "#f0ffff",
-    beige: "#f5f5dc",
-    bisque: "#ffe4c4",
-    black: "#000000",
-    blanchedalmond: "#ffebcd",
-    blue: "#0000ff",
-    blueviolet: "#8a2be2",
-    brown: "#a52a2a",
-    burlywood: "#deb887",
-    cadetblue: "#5f9ea0",
-    chartreuse: "#7fff00",
-    chocolate: "#d2691e",
-    coral: "#ff7f50",
-    cornflowerblue: "#6495ed",
-    cornsilk: "#fff8dc",
-    crimson: "#dc143c",
-    cyan: "#00ffff",
-    darkblue: "#00008b",
-    darkcyan: "#008b8b",
-    darkgoldenrod: "#b8860b",
-    darkgray: "#a9a9a9",
-    darkgreen: "#006400",
-    darkgrey: "#a9a9a9",
-    darkkhaki: "#bdb76b",
-    darkmagenta: "#8b008b",
-    darkolivegreen: "#556b2f",
-    darkorange: "#ff8c00",
-    darkorchid: "#9932cc",
-    darkred: "#8b0000",
-    darksalmon: "#e9967a",
-    darkseagreen: "#8fbc8f",
-    darkslateblue: "#483d8b",
-    darkslategray: "#2f4f4f",
-    darkslategrey: "#2f4f4f",
-    darkturquoise: "#00ced1",
-    darkviolet: "#9400d3",
-    deeppink: "#ff1493",
-    deepskyblue: "#00bfff",
-    dimgray: "#696969",
-    dimgrey: "#696969",
-    dodgerblue: "#1e90ff",
-    firebrick: "#b22222",
-    floralwhite: "#fffaf0",
-    forestgreen: "#228b22",
-    fuchsia: "#ff00ff",
-    gainsboro: "#dcdcdc",
-    ghostwhite: "#f8f8ff",
-    gold: "#ffd700",
-    goldenrod: "#daa520",
-    gray: "#808080",
-    green: "#008000",
-    greenyellow: "#adff2f",
-    grey: "#808080",
-    honeydew: "#f0fff0",
-    hotpink: "#ff69b4",
-    indianred: "#cd5c5c",
-    indigo: "#4b0082",
-    ivory: "#fffff0",
-    khaki: "#f0e68c",
-    lavender: "#e6e6fa",
-    lavenderblush: "#fff0f5",
-    lawngreen: "#7cfc00",
-    lemonchiffon: "#fffacd",
-    lightblue: "#add8e6",
-    lightcoral: "#f08080",
-    lightcyan: "#e0ffff",
-    lightgoldenrodyellow: "#fafad2",
-    lightgray: "#d3d3d3",
-    lightgreen: "#90ee90",
-    lightgrey: "#d3d3d3",
-    lightpink: "#ffb6c1",
-    lightsalmon: "#ffa07a",
-    lightseagreen: "#20b2aa",
-    lightskyblue: "#87cefa",
-    lightslategray: "#778899",
-    lightslategrey: "#778899",
-    lightsteelblue: "#b0c4de",
-    lightyellow: "#ffffe0",
-    lime: "#00ff00",
-    limegreen: "#32cd32",
-    linen: "#faf0e6",
-    magenta: "#ff00ff",
-    maroon: "#800000",
-    mediumaquamarine: "#66cdaa",
-    mediumblue: "#0000cd",
-    mediumorchid: "#ba55d3",
-    mediumpurple: "#9370db",
-    mediumseagreen: "#3cb371",
-    mediumslateblue: "#7b68ee",
-    mediumspringgreen: "#00fa9a",
-    mediumturquoise: "#48d1cc",
-    mediumvioletred: "#c71585",
-    midnightblue: "#191970",
-    mintcream: "#f5fffa",
-    mistyrose: "#ffe4e1",
-    moccasin: "#ffe4b5",
-    navajowhite: "#ffdead",
-    navy: "#000080",
-    oldlace: "#fdf5e6",
-    olive: "#808000",
-    olivedrab: "#6b8e23",
-    orange: "#ffa500",
-    orangered: "#ff4500",
-    orchid: "#da70d6",
-    palegoldenrod: "#eee8aa",
-    palegreen: "#98fb98",
-    paleturquoise: "#afeeee",
-    palevioletred: "#db7093",
-    papayawhip: "#ffefd5",
-    peachpuff: "#ffdab9",
-    peru: "#cd853f",
-    pink: "#ffc0cb",
-    plum: "#dda0dd",
-    powderblue: "#b0e0e6",
-    purple: "#800080",
-    red: "#ff0000",
-    rosybrown: "#bc8f8f",
-    royalblue: "#4169e1",
-    saddlebrown: "#8b4513",
-    salmon: "#fa8072",
-    sandybrown: "#f4a460",
-    seagreen: "#2e8b57",
-    seashell: "#fff5ee",
-    sienna: "#a0522d",
-    silver: "#c0c0c0",
-    skyblue: "#87ceeb",
-    slateblue: "#6a5acd",
-    slategray: "#708090",
-    slategrey: "#708090",
-    snow: "#fffafa",
-    springgreen: "#00ff7f",
-    steelblue: "#4682b4",
-    tan: "#d2b48c",
-    teal: "#008080",
-    thistle: "#d8bfd8",
-    tomato: "#ff6347",
-    turquoise: "#40e0d0",
-    violet: "#ee82ee",
-    wheat: "#f5deb3",
-    white: "#ffffff",
-    whitesmoke: "#f5f5f5",
-    yellow: "#ffff00",
-    yellowgreen: "#9acd32"
-  });
-  d3_rgb_names.forEach(function(key, value) {
-    d3_rgb_names.set(key, d3_rgb_parse(value, d3_rgb, d3_hsl_rgb));
-  });
-  d3.hsl = function(h, s, l) {
-    return arguments.length === 1 ? h instanceof d3_Hsl ? d3_hsl(h.h, h.s, h.l) : d3_rgb_parse("" + h, d3_rgb_hsl, d3_hsl) : d3_hsl(+h, +s, +l);
-  };
-  d3_Hsl.prototype.brighter = function(k) {
-    k = Math.pow(.7, arguments.length ? k : 1);
-    return d3_hsl(this.h, this.s, this.l / k);
-  };
-  d3_Hsl.prototype.darker = function(k) {
-    k = Math.pow(.7, arguments.length ? k : 1);
-    return d3_hsl(this.h, this.s, k * this.l);
-  };
-  d3_Hsl.prototype.rgb = function() {
-    return d3_hsl_rgb(this.h, this.s, this.l);
-  };
-  d3_Hsl.prototype.toString = function() {
-    return this.rgb().toString();
-  };
-  d3.hcl = function(h, c, l) {
-    return arguments.length === 1 ? h instanceof d3_Hcl ? d3_hcl(h.h, h.c, h.l) : h instanceof d3_Lab ? d3_lab_hcl(h.l, h.a, h.b) : d3_lab_hcl((h = d3_rgb_lab((h = d3.rgb(h)).r, h.g, h.b)).l, h.a, h.b) : d3_hcl(+h, +c, +l);
-  };
-  d3_Hcl.prototype.brighter = function(k) {
-    return d3_hcl(this.h, this.c, Math.min(100, this.l + d3_lab_K * (arguments.length ? k : 1)));
-  };
-  d3_Hcl.prototype.darker = function(k) {
-    return d3_hcl(this.h, this.c, Math.max(0, this.l - d3_lab_K * (arguments.length ? k : 1)));
-  };
-  d3_Hcl.prototype.rgb = function() {
-    return d3_hcl_lab(this.h, this.c, this.l).rgb();
-  };
-  d3_Hcl.prototype.toString = function() {
-    return this.rgb() + "";
-  };
-  d3.lab = function(l, a, b) {
-    return arguments.length === 1 ? l instanceof d3_Lab ? d3_lab(l.l, l.a, l.b) : l instanceof d3_Hcl ? d3_hcl_lab(l.l, l.c, l.h) : d3_rgb_lab((l = d3.rgb(l)).r, l.g, l.b) : d3_lab(+l, +a, +b);
-  };
-  var d3_lab_K = 18;
-  var d3_lab_X = .95047, d3_lab_Y = 1, d3_lab_Z = 1.08883;
-  d3_Lab.prototype.brighter = function(k) {
-    return d3_lab(Math.min(100, this.l + d3_lab_K * (arguments.length ? k : 1)), this.a, this.b);
-  };
-  d3_Lab.prototype.darker = function(k) {
-    return d3_lab(Math.max(0, this.l - d3_lab_K * (arguments.length ? k : 1)), this.a, this.b);
-  };
-  d3_Lab.prototype.rgb = function() {
-    return d3_lab_rgb(this.l, this.a, this.b);
-  };
-  d3_Lab.prototype.toString = function() {
-    return this.rgb() + "";
-  };
-  var d3_select = function(s, n) {
-    return n.querySelector(s);
-  }, d3_selectAll = function(s, n) {
-    return n.querySelectorAll(s);
-  }, d3_selectRoot = document.documentElement, d3_selectMatcher = d3_selectRoot.matchesSelector || d3_selectRoot.webkitMatchesSelector || d3_selectRoot.mozMatchesSelector || d3_selectRoot.msMatchesSelector || d3_selectRoot.oMatchesSelector, d3_selectMatches = function(n, s) {
-    return d3_selectMatcher.call(n, s);
-  };
-  if (typeof Sizzle === "function") {
-    d3_select = function(s, n) {
-      return Sizzle(s, n)[0] || null;
-    };
-    d3_selectAll = function(s, n) {
-      return Sizzle.uniqueSort(Sizzle(s, n));
-    };
-    d3_selectMatches = Sizzle.matchesSelector;
-  }
-  var d3_selectionPrototype = [];
-  d3.selection = function() {
-    return d3_selectionRoot;
-  };
-  d3.selection.prototype = d3_selectionPrototype;
-  d3_selectionPrototype.select = function(selector) {
-    var subgroups = [], subgroup, subnode, group, node;
-    if (typeof selector !== "function") selector = d3_selection_selector(selector);
-    for (var j = -1, m = this.length; ++j < m; ) {
-      subgroups.push(subgroup = []);
-      subgroup.parentNode = (group = this[j]).parentNode;
-      for (var i = -1, n = group.length; ++i < n; ) {
-        if (node = group[i]) {
-          subgroup.push(subnode = selector.call(node, node.__data__, i));
-          if (subnode && "__data__" in node) subnode.__data__ = node.__data__;
-        } else {
-          subgroup.push(null);
-        }
-      }
-    }
-    return d3_selection(subgroups);
-  };
-  d3_selectionPrototype.selectAll = function(selector) {
-    var subgroups = [], subgroup, node;
-    if (typeof selector !== "function") selector = d3_selection_selectorAll(selector);
-    for (var j = -1, m = this.length; ++j < m; ) {
-      for (var group = this[j], i = -1, n = group.length; ++i < n; ) {
-        if (node = group[i]) {
-          subgroups.push(subgroup = d3_array(selector.call(node, node.__data__, i)));
-          subgroup.parentNode = node;
-        }
-      }
-    }
-    return d3_selection(subgroups);
-  };
-  d3_selectionPrototype.attr = function(name, value) {
-    if (arguments.length < 2) {
-      if (typeof name === "string") {
-        var node = this.node();
-        name = d3.ns.qualify(name);
-        return name.local ? node.getAttributeNS(name.space, name.local) : node.getAttribute(name);
-      }
-      for (value in name) this.each(d3_selection_attr(value, name[value]));
-      return this;
-    }
-    return this.each(d3_selection_attr(name, value));
-  };
-  d3_selectionPrototype.classed = function(name, value) {
-    if (arguments.length < 2) {
-      if (typeof name === "string") {
-        var node = this.node(), n = (name = name.trim().split(/^|\s+/g)).length, i = -1;
-        if (value = node.classList) {
-          while (++i < n) if (!value.contains(name[i])) return false;
-        } else {
-          value = node.className;
-          if (value.baseVal != null) value = value.baseVal;
-          while (++i < n) if (!d3_selection_classedRe(name[i]).test(value)) return false;
-        }
-        return true;
-      }
-      for (value in name) this.each(d3_selection_classed(value, name[value]));
-      return this;
-    }
-    return this.each(d3_selection_classed(name, value));
-  };
-  d3_selectionPrototype.style = function(name, value, priority) {
-    var n = arguments.length;
-    if (n < 3) {
-      if (typeof name !== "string") {
-        if (n < 2) value = "";
-        for (priority in name) this.each(d3_selection_style(priority, name[priority], value));
-        return this;
-      }
-      if (n < 2) return window.getComputedStyle(this.node(), null).getPropertyValue(name);
-      priority = "";
-    }
-    return this.each(d3_selection_style(name, value, priority));
-  };
-  d3_selectionPrototype.property = function(name, value) {
-    if (arguments.length < 2) {
-      if (typeof name === "string") return this.node()[name];
-      for (value in name) this.each(d3_selection_property(value, name[value]));
-      return this;
-    }
-    return this.each(d3_selection_property(name, value));
-  };
-  d3_selectionPrototype.text = function(value) {
-    return arguments.length < 1 ? this.node().textContent : this.each(typeof value === "function" ? function() {
-      var v = value.apply(this, arguments);
-      this.textContent = v == null ? "" : v;
-    } : value == null ? function() {
-      this.textContent = "";
-    } : function() {
-      this.textContent = value;
-    });
-  };
-  d3_selectionPrototype.html = function(value) {
-    return arguments.length < 1 ? this.node().innerHTML : this.each(typeof value === "function" ? function() {
-      var v = value.apply(this, arguments);
-      this.innerHTML = v == null ? "" : v;
-    } : value == null ? function() {
-      this.innerHTML = "";
-    } : function() {
-      this.innerHTML = value;
-    });
-  };
-  d3_selectionPrototype.append = function(name) {
-    function append() {
-      return this.appendChild(document.createElementNS(this.namespaceURI, name));
-    }
-    function appendNS() {
-      return this.appendChild(document.createElementNS(name.space, name.local));
-    }
-    name = d3.ns.qualify(name);
-    return this.select(name.local ? appendNS : append);
-  };
-  d3_selectionPrototype.insert = function(name, before) {
-    function insert() {
-      return this.insertBefore(document.createElementNS(this.namespaceURI, name), d3_select(before, this));
-    }
-    function insertNS() {
-      return this.insertBefore(document.createElementNS(name.space, name.local), d3_select(before, this));
-    }
-    name = d3.ns.qualify(name);
-    return this.select(name.local ? insertNS : insert);
-  };
-  d3_selectionPrototype.remove = function() {
-    return this.each(function() {
-      var parent = this.parentNode;
-      if (parent) parent.removeChild(this);
-    });
-  };
-  d3_selectionPrototype.data = function(value, key) {
-    function bind(group, groupData) {
-      var i, n = group.length, m = groupData.length, n0 = Math.min(n, m), n1 = Math.max(n, m), updateNodes = [], enterNodes = [], exitNodes = [], node, nodeData;
-      if (key) {
-        var nodeByKeyValue = new d3_Map, keyValues = [], keyValue, j = groupData.length;
-        for (i = -1; ++i < n; ) {
-          keyValue = key.call(node = group[i], node.__data__, i);
-          if (nodeByKeyValue.has(keyValue)) {
-            exitNodes[j++] = node;
-          } else {
-            nodeByKeyValue.set(keyValue, node);
-          }
-          keyValues.push(keyValue);
-        }
-        for (i = -1; ++i < m; ) {
-          keyValue = key.call(groupData, nodeData = groupData[i], i);
-          if (nodeByKeyValue.has(keyValue)) {
-            updateNodes[i] = node = nodeByKeyValue.get(keyValue);
-            node.__data__ = nodeData;
-            enterNodes[i] = exitNodes[i] = null;
-          } else {
-            enterNodes[i] = d3_selection_dataNode(nodeData);
-            updateNodes[i] = exitNodes[i] = null;
-          }
-          nodeByKeyValue.remove(keyValue);
-        }
-        for (i = -1; ++i < n; ) {
-          if (nodeByKeyValue.has(keyValues[i])) {
-            exitNodes[i] = group[i];
-          }
-        }
-      } else {
-        for (i = -1; ++i < n0; ) {
-          node = group[i];
-          nodeData = groupData[i];
-          if (node) {
-            node.__data__ = nodeData;
-            updateNodes[i] = node;
-            enterNodes[i] = exitNodes[i] = null;
-          } else {
-            enterNodes[i] = d3_selection_dataNode(nodeData);
-            updateNodes[i] = exitNodes[i] = null;
-          }
-        }
-        for (; i < m; ++i) {
-          enterNodes[i] = d3_selection_dataNode(groupData[i]);
-          updateNodes[i] = exitNodes[i] = null;
-        }
-        for (; i < n1; ++i) {
-          exitNodes[i] = group[i];
-          enterNodes[i] = updateNodes[i] = null;
-        }
-      }
-      enterNodes.update = updateNodes;
-      enterNodes.parentNode = updateNodes.parentNode = exitNodes.parentNode = group.parentNode;
-      enter.push(enterNodes);
-      update.push(updateNodes);
-      exit.push(exitNodes);
-    }
-    var i = -1, n = this.length, group, node;
-    if (!arguments.length) {
-      value = new Array(n = (group = this[0]).length);
-      while (++i < n) {
-        if (node = group[i]) {
-          value[i] = node.__data__;
-        }
-      }
-      return value;
-    }
-    var enter = d3_selection_enter([]), update = d3_selection([]), exit = d3_selection([]);
-    if (typeof value === "function") {
-      while (++i < n) {
-        bind(group = this[i], value.call(group, group.parentNode.__data__, i));
-      }
-    } else {
-      while (++i < n) {
-        bind(group = this[i], value);
-      }
-    }
-    update.enter = function() {
-      return enter;
-    };
-    update.exit = function() {
-      return exit;
-    };
-    return update;
-  };
-  d3_selectionPrototype.datum = d3_selectionPrototype.map = function(value) {
-    return arguments.length < 1 ? this.property("__data__") : this.property("__data__", value);
-  };
-  d3_selectionPrototype.filter = function(filter) {
-    var subgroups = [], subgroup, group, node;
-    if (typeof filter !== "function") filter = d3_selection_filter(filter);
-    for (var j = 0, m = this.length; j < m; j++) {
-      subgroups.push(subgroup = []);
-      subgroup.parentNode = (group = this[j]).parentNode;
-      for (var i = 0, n = group.length; i < n; i++) {
-        if ((node = group[i]) && filter.call(node, node.__data__, i)) {
-          subgroup.push(node);
-        }
-      }
-    }
-    return d3_selection(subgroups);
-  };
-  d3_selectionPrototype.order = function() {
-    for (var j = -1, m = this.length; ++j < m; ) {
-      for (var group = this[j], i = group.length - 1, next = group[i], node; --i >= 0; ) {
-        if (node = group[i]) {
-          if (next && next !== node.nextSibling) next.parentNode.insertBefore(node, next);
-          next = node;
-        }
-      }
-    }
-    return this;
-  };
-  d3_selectionPrototype.sort = function(comparator) {
-    comparator = d3_selection_sortComparator.apply(this, arguments);
-    for (var j = -1, m = this.length; ++j < m; ) this[j].sort(comparator);
-    return this.order();
-  };
-  d3_selectionPrototype.on = function(type, listener, capture) {
-    var n = arguments.length;
-    if (n < 3) {
-      if (typeof type !== "string") {
-        if (n < 2) listener = false;
-        for (capture in type) this.each(d3_selection_on(capture, type[capture], listener));
-        return this;
-      }
-      if (n < 2) return (n = this.node()["__on" + type]) && n._;
-      capture = false;
-    }
-    return this.each(d3_selection_on(type, listener, capture));
-  };
-  d3_selectionPrototype.each = function(callback) {
-    return d3_selection_each(this, function(node, i, j) {
-      callback.call(node, node.__data__, i, j);
-    });
-  };
-  d3_selectionPrototype.call = function(callback) {
-    callback.apply(this, (arguments[0] = this, arguments));
-    return this;
-  };
-  d3_selectionPrototype.empty = function() {
-    return !this.node();
-  };
-  d3_selectionPrototype.node = function(callback) {
-    for (var j = 0, m = this.length; j < m; j++) {
-      for (var group = this[j], i = 0, n = group.length; i < n; i++) {
-        var node = group[i];
-        if (node) return node;
-      }
-    }
-    return null;
-  };
-  d3_selectionPrototype.transition = function() {
-    var subgroups = [], subgroup, node;
-    for (var j = -1, m = this.length; ++j < m; ) {
-      subgroups.push(subgroup = []);
-      for (var group = this[j], i = -1, n = group.length; ++i < n; ) {
-        subgroup.push((node = group[i]) ? {
-          node: node,
-          delay: d3_transitionDelay,
-          duration: d3_transitionDuration
-        } : null);
-      }
-    }
-    return d3_transition(subgroups, d3_transitionId || ++d3_transitionNextId, Date.now());
-  };
-  var d3_selectionRoot = d3_selection([ [ document ] ]);
-  d3_selectionRoot[0].parentNode = d3_selectRoot;
-  d3.select = function(selector) {
-    return typeof selector === "string" ? d3_selectionRoot.select(selector) : d3_selection([ [ selector ] ]);
-  };
-  d3.selectAll = function(selector) {
-    return typeof selector === "string" ? d3_selectionRoot.selectAll(selector) : d3_selection([ d3_array(selector) ]);
-  };
-  var d3_selection_enterPrototype = [];
-  d3.selection.enter = d3_selection_enter;
-  d3.selection.enter.prototype = d3_selection_enterPrototype;
-  d3_selection_enterPrototype.append = d3_selectionPrototype.append;
-  d3_selection_enterPrototype.insert = d3_selectionPrototype.insert;
-  d3_selection_enterPrototype.empty = d3_selectionPrototype.empty;
-  d3_selection_enterPrototype.node = d3_selectionPrototype.node;
-  d3_selection_enterPrototype.select = function(selector) {
-    var subgroups = [], subgroup, subnode, upgroup, group, node;
-    for (var j = -1, m = this.length; ++j < m; ) {
-      upgroup = (group = this[j]).update;
-      subgroups.push(subgroup = []);
-      subgroup.parentNode = group.parentNode;
-      for (var i = -1, n = group.length; ++i < n; ) {
-        if (node = group[i]) {
-          subgroup.push(upgroup[i] = subnode = selector.call(group.parentNode, node.__data__, i));
-          subnode.__data__ = node.__data__;
-        } else {
-          subgroup.push(null);
-        }
-      }
-    }
-    return d3_selection(subgroups);
-  };
-  var d3_transitionPrototype = [], d3_transitionNextId = 0, d3_transitionId = 0, d3_transitionDefaultDelay = 0, d3_transitionDefaultDuration = 250, d3_transitionDefaultEase = d3.ease("cubic-in-out"), d3_transitionDelay = d3_transitionDefaultDelay, d3_transitionDuration = d3_transitionDefaultDuration, d3_transitionEase = d3_transitionDefaultEase;
-  d3_transitionPrototype.call = d3_selectionPrototype.call;
-  d3.transition = function(selection) {
-    return arguments.length ? d3_transitionId ? selection.transition() : selection : d3_selectionRoot.transition();
-  };
-  d3.transition.prototype = d3_transitionPrototype;
-  d3_transitionPrototype.select = function(selector) {
-    var subgroups = [], subgroup, subnode, node;
-    if (typeof selector !== "function") selector = d3_selection_selector(selector);
-    for (var j = -1, m = this.length; ++j < m; ) {
-      subgroups.push(subgroup = []);
-      for (var group = this[j], i = -1, n = group.length; ++i < n; ) {
-        if ((node = group[i]) && (subnode = selector.call(node.node, node.node.__data__, i))) {
-          if ("__data__" in node.node) subnode.__data__ = node.node.__data__;
-          subgroup.push({
-            node: subnode,
-            delay: node.delay,
-            duration: node.duration
-          });
-        } else {
-          subgroup.push(null);
-        }
-      }
-    }
-    return d3_transition(subgroups, this.id, this.time).ease(this.ease());
-  };
-  d3_transitionPrototype.selectAll = function(selector) {
-    var subgroups = [], subgroup, subnodes, node;
-    if (typeof selector !== "function") selector = d3_selection_selectorAll(selector);
-    for (var j = -1, m = this.length; ++j < m; ) {
-      for (var group = this[j], i = -1, n = group.length; ++i < n; ) {
-        if (node = group[i]) {
-          subnodes = selector.call(node.node, node.node.__data__, i);
-          subgroups.push(subgroup = []);
-          for (var k = -1, o = subnodes.length; ++k < o; ) {
-            subgroup.push({
-              node: subnodes[k],
-              delay: node.delay,
-              duration: node.duration
-            });
-          }
-        }
-      }
-    }
-    return d3_transition(subgroups, this.id, this.time).ease(this.ease());
-  };
-  d3_transitionPrototype.filter = function(filter) {
-    var subgroups = [], subgroup, group, node;
-    if (typeof filter !== "function") filter = d3_selection_filter(filter);
-    for (var j = 0, m = this.length; j < m; j++) {
-      subgroups.push(subgroup = []);
-      for (var group = this[j], i = 0, n = group.length; i < n; i++) {
-        if ((node = group[i]) && filter.call(node.node, node.node.__data__, i)) {
-          subgroup.push(node);
-        }
-      }
-    }
-    return d3_transition(subgroups, this.id, this.time).ease(this.ease());
-  };
-  d3_transitionPrototype.attr = function(name, value) {
-    if (arguments.length < 2) {
-      for (value in name) this.attrTween(value, d3_tweenByName(name[value], value));
-      return this;
-    }
-    return this.attrTween(name, d3_tweenByName(value, name));
-  };
-  d3_transitionPrototype.attrTween = function(nameNS, tween) {
-    function attrTween(d, i) {
-      var f = tween.call(this, d, i, this.getAttribute(name));
-      return f === d3_tweenRemove ? (this.removeAttribute(name), null) : f && function(t) {
-        this.setAttribute(name, f(t));
-      };
-    }
-    function attrTweenNS(d, i) {
-      var f = tween.call(this, d, i, this.getAttributeNS(name.space, name.local));
-      return f === d3_tweenRemove ? (this.removeAttributeNS(name.space, name.local), null) : f && function(t) {
-        this.setAttributeNS(name.space, name.local, f(t));
-      };
-    }
-    var name = d3.ns.qualify(nameNS);
-    return this.tween("attr." + nameNS, name.local ? attrTweenNS : attrTween);
-  };
-  d3_transitionPrototype.style = function(name, value, priority) {
-    var n = arguments.length;
-    if (n < 3) {
-      if (typeof name !== "string") {
-        if (n < 2) value = "";
-        for (priority in name) this.styleTween(priority, d3_tweenByName(name[priority], priority), value);
-        return this;
-      }
-      priority = "";
-    }
-    return this.styleTween(name, d3_tweenByName(value, name), priority);
-  };
-  d3_transitionPrototype.styleTween = function(name, tween, priority) {
-    if (arguments.length < 3) priority = "";
-    return this.tween("style." + name, function(d, i) {
-      var f = tween.call(this, d, i, window.getComputedStyle(this, null).getPropertyValue(name));
-      return f === d3_tweenRemove ? (this.style.removeProperty(name), null) : f && function(t) {
-        this.style.setProperty(name, f(t), priority);
-      };
-    });
-  };
-  d3_transitionPrototype.text = function(value) {
-    return this.tween("text", function(d, i) {
-      this.textContent = typeof value === "function" ? value.call(this, d, i) : value;
-    });
-  };
-  d3_transitionPrototype.remove = function() {
-    return this.each("end.transition", function() {
-      var p;
-      if (!this.__transition__ && (p = this.parentNode)) p.removeChild(this);
-    });
-  };
-  d3_transitionPrototype.delay = function(value) {
-    return d3_selection_each(this, typeof value === "function" ? function(node, i, j) {
-      node.delay = value.call(node = node.node, node.__data__, i, j) | 0;
-    } : (value = value | 0, function(node) {
-      node.delay = value;
-    }));
-  };
-  d3_transitionPrototype.duration = function(value) {
-    return d3_selection_each(this, typeof value === "function" ? function(node, i, j) {
-      node.duration = Math.max(1, value.call(node = node.node, node.__data__, i, j) | 0);
-    } : (value = Math.max(1, value | 0), function(node) {
-      node.duration = value;
-    }));
-  };
-  d3_transitionPrototype.transition = function() {
-    return this.select(d3_this);
-  };
-  d3.tween = function(b, interpolate) {
-    function tweenFunction(d, i, a) {
-      var v = b.call(this, d, i);
-      return v == null ? a != "" && d3_tweenRemove : a != v && interpolate(a, v);
-    }
-    function tweenString(d, i, a) {
-      return a != b && interpolate(a, b);
-    }
-    return typeof b === "function" ? tweenFunction : b == null ? d3_tweenNull : (b += "", tweenString);
-  };
-  var d3_tweenRemove = {};
-  var d3_timer_queue = null, d3_timer_interval, d3_timer_timeout;
-  d3.timer = function(callback, delay, then) {
-    var found = false, t0, t1 = d3_timer_queue;
-    if (arguments.length < 3) {
-      if (arguments.length < 2) delay = 0; else if (!isFinite(delay)) return;
-      then = Date.now();
-    }
-    while (t1) {
-      if (t1.callback === callback) {
-        t1.then = then;
-        t1.delay = delay;
-        found = true;
-        break;
-      }
-      t0 = t1;
-      t1 = t1.next;
-    }
-    if (!found) d3_timer_queue = {
-      callback: callback,
-      then: then,
-      delay: delay,
-      next: d3_timer_queue
-    };
-    if (!d3_timer_interval) {
-      d3_timer_timeout = clearTimeout(d3_timer_timeout);
-      d3_timer_interval = 1;
-      d3_timer_frame(d3_timer_step);
-    }
-  };
-  d3.timer.flush = function() {
-    var elapsed, now = Date.now(), t1 = d3_timer_queue;
-    while (t1) {
-      elapsed = now - t1.then;
-      if (!t1.delay) t1.flush = t1.callback(elapsed);
-      t1 = t1.next;
-    }
-    d3_timer_flush();
-  };
-  var d3_timer_frame = window.requestAnimationFrame || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || window.oRequestAnimationFrame || window.msRequestAnimationFrame || function(callback) {
-    setTimeout(callback, 17);
-  };
-  d3.mouse = function(container) {
-    return d3_mousePoint(container, d3_eventSource());
-  };
-  var d3_mouse_bug44083 = /WebKit/.test(navigator.userAgent) ? -1 : 0;
-  d3.touches = function(container, touches) {
-    if (arguments.length < 2) touches = d3_eventSource().touches;
-    return touches ? d3_array(touches).map(function(touch) {
-      var point = d3_mousePoint(container, touch);
-      point.identifier = touch.identifier;
-      return point;
-    }) : [];
-  };
-  d3.scale = {};
-  d3.scale.linear = function() {
-    return d3_scale_linear([ 0, 1 ], [ 0, 1 ], d3.interpolate, false);
-  };
-  d3.scale.log = function() {
-    return d3_scale_log(d3.scale.linear(), d3_scale_logp);
-  };
-  var d3_scale_logFormat = d3.format(".0e");
-  d3_scale_logp.pow = function(x) {
-    return Math.pow(10, x);
-  };
-  d3_scale_logn.pow = function(x) {
-    return -Math.pow(10, -x);
-  };
-  d3.scale.pow = function() {
-    return d3_scale_pow(d3.scale.linear(), 1);
-  };
-  d3.scale.sqrt = function() {
-    return d3.scale.pow().exponent(.5);
-  };
-  d3.scale.ordinal = function() {
-    return d3_scale_ordinal([], {
-      t: "range",
-      a: [ [] ]
-    });
-  };
-  d3.scale.category10 = function() {
-    return d3.scale.ordinal().range(d3_category10);
-  };
-  d3.scale.category20 = function() {
-    return d3.scale.ordinal().range(d3_category20);
-  };
-  d3.scale.category20b = function() {
-    return d3.scale.ordinal().range(d3_category20b);
-  };
-  d3.scale.category20c = function() {
-    return d3.scale.ordinal().range(d3_category20c);
-  };
-  var d3_category10 = [ "#1f77b4", "#ff7f0e", "#2ca02c", "#d62728", "#9467bd", "#8c564b", "#e377c2", "#7f7f7f", "#bcbd22", "#17becf" ];
-  var d3_category20 = [ "#1f77b4", "#aec7e8", "#ff7f0e", "#ffbb78", "#2ca02c", "#98df8a", "#d62728", "#ff9896", "#9467bd", "#c5b0d5", "#8c564b", "#c49c94", "#e377c2", "#f7b6d2", "#7f7f7f", "#c7c7c7", "#bcbd22", "#dbdb8d", "#17becf", "#9edae5" ];
-  var d3_category20b = [ "#393b79", "#5254a3", "#6b6ecf", "#9c9ede", "#637939", "#8ca252", "#b5cf6b", "#cedb9c", "#8c6d31", "#bd9e39", "#e7ba52", "#e7cb94", "#843c39", "#ad494a", "#d6616b", "#e7969c", "#7b4173", "#a55194", "#ce6dbd", "#de9ed6" ];
-  var d3_category20c = [ "#3182bd", "#6baed6", "#9ecae1", "#c6dbef", "#e6550d", "#fd8d3c", "#fdae6b", "#fdd0a2", "#31a354", "#74c476", "#a1d99b", "#c7e9c0", "#756bb1", "#9e9ac8", "#bcbddc", "#dadaeb", "#636363", "#969696", "#bdbdbd", "#d9d9d9" ];
-  d3.scale.quantile = function() {
-    return d3_scale_quantile([], []);
-  };
-  d3.scale.quantize = function() {
-    return d3_scale_quantize(0, 1, [ 0, 1 ]);
-  };
-  d3.scale.threshold = function() {
-    return d3_scale_threshold([ .5 ], [ 0, 1 ]);
-  };
-  d3.scale.identity = function() {
-    return d3_scale_identity([ 0, 1 ]);
-  };
-  d3.svg = {};
-  d3.svg.arc = function() {
-    function arc() {
-      var r0 = innerRadius.apply(this, arguments), r1 = outerRadius.apply(this, arguments), a0 = startAngle.apply(this, arguments) + d3_svg_arcOffset, a1 = endAngle.apply(this, arguments) + d3_svg_arcOffset, da = (a1 < a0 && (da = a0, a0 = a1, a1 = da), a1 - a0), df = da < Math.PI ? "0" : "1", c0 = Math.cos(a0), s0 = Math.sin(a0), c1 = Math.cos(a1), s1 = Math.sin(a1);
-      return da >= d3_svg_arcMax ? r0 ? "M0," + r1 + "A" + r1 + "," + r1 + " 0 1,1 0," + -r1 + "A" + r1 + "," + r1 + " 0 1,1 0," + r1 + "M0," + r0 + "A" + r0 + "," + r0 + " 0 1,0 0," + -r0 + "A" + r0 + "," + r0 + " 0 1,0 0," + r0 + "Z" : "M0," + r1 + "A" + r1 + "," + r1 + " 0 1,1 0," + -r1 + "A" + r1 + "," + r1 + " 0 1,1 0," + r1 + "Z" : r0 ? "M" + r1 * c0 + "," + r1 * s0 + "A" + r1 + "," + r1 + " 0 " + df + ",1 " + r1 * c1 + "," + r1 * s1 + "L" + r0 * c1 + "," + r0 * s1 + "A" + r0 + "," + r0 + " 0 " + df + ",0 " + r0 * c0 + "," + r0 * s0 + "Z" : "M" + r1 * c0 + "," + r1 * s0 + "A" + r1 + "," + r1 + " 0 " + df + ",1 " + r1 * c1 + "," + r1 * s1 + "L0,0" + "Z";
-    }
-    var innerRadius = d3_svg_arcInnerRadius, outerRadius = d3_svg_arcOuterRadius, startAngle = d3_svg_arcStartAngle, endAngle = d3_svg_arcEndAngle;
-    arc.innerRadius = function(v) {
-      if (!arguments.length) return innerRadius;
-      innerRadius = d3_functor(v);
-      return arc;
-    };
-    arc.outerRadius = function(v) {
-      if (!arguments.length) return outerRadius;
-      outerRadius = d3_functor(v);
-      return arc;
-    };
-    arc.startAngle = function(v) {
-      if (!arguments.length) return startAngle;
-      startAngle = d3_functor(v);
-      return arc;
-    };
-    arc.endAngle = function(v) {
-      if (!arguments.length) return endAngle;
-      endAngle = d3_functor(v);
-      return arc;
-    };
-    arc.centroid = function() {
-      var r = (innerRadius.apply(this, arguments) + outerRadius.apply(this, arguments)) / 2, a = (startAngle.apply(this, arguments) + endAngle.apply(this, arguments)) / 2 + d3_svg_arcOffset;
-      return [ Math.cos(a) * r, Math.sin(a) * r ];
-    };
-    return arc;
-  };
-  var d3_svg_arcOffset = -Math.PI / 2, d3_svg_arcMax = 2 * Math.PI - 1e-6;
-  d3.svg.line = function() {
-    return d3_svg_line(d3_identity);
-  };
-  var d3_svg_lineInterpolators = d3.map({
-    linear: d3_svg_lineLinear,
-    "linear-closed": d3_svg_lineLinearClosed,
-    "step-before": d3_svg_lineStepBefore,
-    "step-after": d3_svg_lineStepAfter,
-    basis: d3_svg_lineBasis,
-    "basis-open": d3_svg_lineBasisOpen,
-    "basis-closed": d3_svg_lineBasisClosed,
-    bundle: d3_svg_lineBundle,
-    cardinal: d3_svg_lineCardinal,
-    "cardinal-open": d3_svg_lineCardinalOpen,
-    "cardinal-closed": d3_svg_lineCardinalClosed,
-    monotone: d3_svg_lineMonotone
-  });
-  d3_svg_lineInterpolators.forEach(function(key, value) {
-    value.key = key;
-    value.closed = /-closed$/.test(key);
-  });
-  var d3_svg_lineBasisBezier1 = [ 0, 2 / 3, 1 / 3, 0 ], d3_svg_lineBasisBezier2 = [ 0, 1 / 3, 2 / 3, 0 ], d3_svg_lineBasisBezier3 = [ 0, 1 / 6, 2 / 3, 1 / 6 ];
-  d3.svg.line.radial = function() {
-    var line = d3_svg_line(d3_svg_lineRadial);
-    line.radius = line.x, delete line.x;
-    line.angle = line.y, delete line.y;
-    return line;
-  };
-  d3_svg_lineStepBefore.reverse = d3_svg_lineStepAfter;
-  d3_svg_lineStepAfter.reverse = d3_svg_lineStepBefore;
-  d3.svg.area = function() {
-    return d3_svg_area(d3_identity);
-  };
-  d3.svg.area.radial = function() {
-    var area = d3_svg_area(d3_svg_lineRadial);
-    area.radius = area.x, delete area.x;
-    area.innerRadius = area.x0, delete area.x0;
-    area.outerRadius = area.x1, delete area.x1;
-    area.angle = area.y, delete area.y;
-    area.startAngle = area.y0, delete area.y0;
-    area.endAngle = area.y1, delete area.y1;
-    return area;
-  };
-  d3.svg.chord = function() {
-    function chord(d, i) {
-      var s = subgroup(this, source, d, i), t = subgroup(this, target, d, i);
-      return "M" + s.p0 + arc(s.r, s.p1, s.a1 - s.a0) + (equals(s, t) ? curve(s.r, s.p1, s.r, s.p0) : curve(s.r, s.p1, t.r, t.p0) + arc(t.r, t.p1, t.a1 - t.a0) + curve(t.r, t.p1, s.r, s.p0)) + "Z";
-    }
-    function subgroup(self, f, d, i) {
-      var subgroup = f.call(self, d, i), r = radius.call(self, subgroup, i), a0 = startAngle.call(self, subgroup, i) + d3_svg_arcOffset, a1 = endAngle.call(self, subgroup, i) + d3_svg_arcOffset;
-      return {
-        r: r,
-        a0: a0,
-        a1: a1,
-        p0: [ r * Math.cos(a0), r * Math.sin(a0) ],
-        p1: [ r * Math.cos(a1), r * Math.sin(a1) ]
-      };
-    }
-    function equals(a, b) {
-      return a.a0 == b.a0 && a.a1 == b.a1;
-    }
-    function arc(r, p, a) {
-      return "A" + r + "," + r + " 0 " + +(a > Math.PI) + ",1 " + p;
-    }
-    function curve(r0, p0, r1, p1) {
-      return "Q 0,0 " + p1;
-    }
-    var source = d3_svg_chordSource, target = d3_svg_chordTarget, radius = d3_svg_chordRadius, startAngle = d3_svg_arcStartAngle, endAngle = d3_svg_arcEndAngle;
-    chord.radius = function(v) {
-      if (!arguments.length) return radius;
-      radius = d3_functor(v);
-      return chord;
-    };
-    chord.source = function(v) {
-      if (!arguments.length) return source;
-      source = d3_functor(v);
-      return chord;
-    };
-    chord.target = function(v) {
-      if (!arguments.length) return target;
-      target = d3_functor(v);
-      return chord;
-    };
-    chord.startAngle = function(v) {
-      if (!arguments.length) return startAngle;
-      startAngle = d3_functor(v);
-      return chord;
-    };
-    chord.endAngle = function(v) {
-      if (!arguments.length) return endAngle;
-      endAngle = d3_functor(v);
-      return chord;
-    };
-    return chord;
-  };
-  d3.svg.diagonal = function() {
-    function diagonal(d, i) {
-      var p0 = source.call(this, d, i), p3 = target.call(this, d, i), m = (p0.y + p3.y) / 2, p = [ p0, {
-        x: p0.x,
-        y: m
-      }, {
-        x: p3.x,
-        y: m
-      }, p3 ];
-      p = p.map(projection);
-      return "M" + p[0] + "C" + p[1] + " " + p[2] + " " + p[3];
-    }
-    var source = d3_svg_chordSource, target = d3_svg_chordTarget, projection = d3_svg_diagonalProjection;
-    diagonal.source = function(x) {
-      if (!arguments.length) return source;
-      source = d3_functor(x);
-      return diagonal;
-    };
-    diagonal.target = function(x) {
-      if (!arguments.length) return target;
-      target = d3_functor(x);
-      return diagonal;
-    };
-    diagonal.projection = function(x) {
-      if (!arguments.length) return projection;
-      projection = x;
-      return diagonal;
-    };
-    return diagonal;
-  };
-  d3.svg.diagonal.radial = function() {
-    var diagonal = d3.svg.diagonal(), projection = d3_svg_diagonalProjection, projection_ = diagonal.projection;
-    diagonal.projection = function(x) {
-      return arguments.length ? projection_(d3_svg_diagonalRadialProjection(projection = x)) : projection;
-    };
-    return diagonal;
-  };
-  d3.svg.mouse = d3.mouse;
-  d3.svg.touches = d3.touches;
-  d3.svg.symbol = function() {
-    function symbol(d, i) {
-      return (d3_svg_symbols.get(type.call(this, d, i)) || d3_svg_symbolCircle)(size.call(this, d, i));
-    }
-    var type = d3_svg_symbolType, size = d3_svg_symbolSize;
-    symbol.type = function(x) {
-      if (!arguments.length) return type;
-      type = d3_functor(x);
-      return symbol;
-    };
-    symbol.size = function(x) {
-      if (!arguments.length) return size;
-      size = d3_functor(x);
-      return symbol;
-    };
-    return symbol;
-  };
-  var d3_svg_symbols = d3.map({
-    circle: d3_svg_symbolCircle,
-    cross: function(size) {
-      var r = Math.sqrt(size / 5) / 2;
-      return "M" + -3 * r + "," + -r + "H" + -r + "V" + -3 * r + "H" + r + "V" + -r + "H" + 3 * r + "V" + r + "H" + r + "V" + 3 * r + "H" + -r + "V" + r + "H" + -3 * r + "Z";
-    },
-    diamond: function(size) {
-      var ry = Math.sqrt(size / (2 * d3_svg_symbolTan30)), rx = ry * d3_svg_symbolTan30;
-      return "M0," + -ry + "L" + rx + ",0" + " 0," + ry + " " + -rx + ",0" + "Z";
-    },
-    square: function(size) {
-      var r = Math.sqrt(size) / 2;
-      return "M" + -r + "," + -r + "L" + r + "," + -r + " " + r + "," + r + " " + -r + "," + r + "Z";
-    },
-    "triangle-down": function(size) {
-      var rx = Math.sqrt(size / d3_svg_symbolSqrt3), ry = rx * d3_svg_symbolSqrt3 / 2;
-      return "M0," + ry + "L" + rx + "," + -ry + " " + -rx + "," + -ry + "Z";
-    },
-    "triangle-up": function(size) {
-      var rx = Math.sqrt(size / d3_svg_symbolSqrt3), ry = rx * d3_svg_symbolSqrt3 / 2;
-      return "M0," + -ry + "L" + rx + "," + ry + " " + -rx + "," + ry + "Z";
-    }
-  });
-  d3.svg.symbolTypes = d3_svg_symbols.keys();
-  var d3_svg_symbolSqrt3 = Math.sqrt(3), d3_svg_symbolTan30 = Math.tan(30 * Math.PI / 180);
-  d3.svg.axis = function() {
-    function axis(g) {
-      g.each(function() {
-        var g = d3.select(this);
-        var ticks = tickValues == null ? scale.ticks ? scale.ticks.apply(scale, tickArguments_) : scale.domain() : tickValues, tickFormat = tickFormat_ == null ? scale.tickFormat ? scale.tickFormat.apply(scale, tickArguments_) : String : tickFormat_;
-        var subticks = d3_svg_axisSubdivide(scale, ticks, tickSubdivide), subtick = g.selectAll(".minor").data(subticks, String), subtickEnter = subtick.enter().insert("line", "g").attr("class", "tick minor").style("opacity", 1e-6), subtickExit = d3.transition(subtick.exit()).style("opacity", 1e-6).remove(), subtickUpdate = d3.transition(subtick).style("opacity", 1);
-        var tick = g.selectAll("g").data(ticks, String), tickEnter = tick.enter().insert("g", "path").style("opacity", 1e-6), tickExit = d3.transition(tick.exit()).style("opacity", 1e-6).remove(), tickUpdate = d3.transition(tick).style("opacity", 1), tickTransform;
-        var range = d3_scaleRange(scale), path = g.selectAll(".domain").data([ 0 ]), pathEnter = path.enter().append("path").attr("class", "domain"), pathUpdate = d3.transition(path);
-        var scale1 = scale.copy(), scale0 = this.__chart__ || scale1;
-        this.__chart__ = scale1;
-        tickEnter.append("line").attr("class", "tick");
-        tickEnter.append("text");
-        var lineEnter = tickEnter.select("line"), lineUpdate = tickUpdate.select("line"), text = tick.select("text").text(tickFormat), textEnter = tickEnter.select("text"), textUpdate = tickUpdate.select("text");
-        switch (orient) {
-         case "bottom":
-          {
-            tickTransform = d3_svg_axisX;
-            subtickEnter.attr("y2", tickMinorSize);
-            subtickUpdate.attr("x2", 0).attr("y2", tickMinorSize);
-            lineEnter.attr("y2", tickMajorSize);
-            textEnter.attr("y", Math.max(tickMajorSize, 0) + tickPadding);
-            lineUpdate.attr("x2", 0).attr("y2", tickMajorSize);
-            textUpdate.attr("x", 0).attr("y", Math.max(tickMajorSize, 0) + tickPadding);
-            text.attr("dy", ".71em").attr("text-anchor", "middle");
-            pathUpdate.attr("d", "M" + range[0] + "," + tickEndSize + "V0H" + range[1] + "V" + tickEndSize);
-            break;
-          }
-         case "top":
-          {
-            tickTransform = d3_svg_axisX;
-            subtickEnter.attr("y2", -tickMinorSize);
-            subtickUpdate.attr("x2", 0).attr("y2", -tickMinorSize);
-            lineEnter.attr("y2", -tickMajorSize);
-            textEnter.attr("y", -(Math.max(tickMajorSize, 0) + tickPadding));
-            lineUpdate.attr("x2", 0).attr("y2", -tickMajorSize);
-            textUpdate.attr("x", 0).attr("y", -(Math.max(tickMajorSize, 0) + tickPadding));
-            text.attr("dy", "0em").attr("text-anchor", "middle");
-            pathUpdate.attr("d", "M" + range[0] + "," + -tickEndSize + "V0H" + range[1] + "V" + -tickEndSize);
-            break;
-          }
-         case "left":
-          {
-            tickTransform = d3_svg_axisY;
-            subtickEnter.attr("x2", -tickMinorSize);
-            subtickUpdate.attr("x2", -tickMinorSize).attr("y2", 0);
-            lineEnter.attr("x2", -tickMajorSize);
-            textEnter.attr("x", -(Math.max(tickMajorSize, 0) + tickPadding));
-            lineUpdate.attr("x2", -tickMajorSize).attr("y2", 0);
-            textUpdate.attr("x", -(Math.max(tickMajorSize, 0) + tickPadding)).attr("y", 0);
-            text.attr("dy", ".32em").attr("text-anchor", "end");
-            pathUpdate.attr("d", "M" + -tickEndSize + "," + range[0] + "H0V" + range[1] + "H" + -tickEndSize);
-            break;
-          }
-         case "right":
-          {
-            tickTransform = d3_svg_axisY;
-            subtickEnter.attr("x2", tickMinorSize);
-            subtickUpdate.attr("x2", tickMinorSize).attr("y2", 0);
-            lineEnter.attr("x2", tickMajorSize);
-            textEnter.attr("x", Math.max(tickMajorSize, 0) + tickPadding);
-            lineUpdate.attr("x2", tickMajorSize).attr("y2", 0);
-            textUpdate.attr("x", Math.max(tickMajorSize, 0) + tickPadding).attr("y", 0);
-            text.attr("dy", ".32em").attr("text-anchor", "start");
-            pathUpdate.attr("d", "M" + tickEndSize + "," + range[0] + "H0V" + range[1] + "H" + tickEndSize);
-            break;
-          }
-        }
-        if (scale.ticks) {
-          tickEnter.call(tickTransform, scale0);
-          tickUpdate.call(tickTransform, scale1);
-          tickExit.call(tickTransform, scale1);
-          subtickEnter.call(tickTransform, scale0);
-          subtickUpdate.call(tickTransform, scale1);
-          subtickExit.call(tickTransform, scale1);
-        } else {
-          var dx = scale1.rangeBand() / 2, x = function(d) {
-            return scale1(d) + dx;
-          };
-          tickEnter.call(tickTransform, x);
-          tickUpdate.call(tickTransform, x);
-        }
-      });
-    }
-    var scale = d3.scale.linear(), orient = "bottom", tickMajorSize = 6, tickMinorSize = 6, tickEndSize = 6, tickPadding = 3, tickArguments_ = [ 10 ], tickValues = null, tickFormat_, tickSubdivide = 0;
-    axis.scale = function(x) {
-      if (!arguments.length) return scale;
-      scale = x;
-      return axis;
-    };
-    axis.orient = function(x) {
-      if (!arguments.length) return orient;
-      orient = x;
-      return axis;
-    };
-    axis.ticks = function() {
-      if (!arguments.length) return tickArguments_;
-      tickArguments_ = arguments;
-      return axis;
-    };
-    axis.tickValues = function(x) {
-      if (!arguments.length) return tickValues;
-      tickValues = x;
-      return axis;
-    };
-    axis.tickFormat = function(x) {
-      if (!arguments.length) return tickFormat_;
-      tickFormat_ = x;
-      return axis;
-    };
-    axis.tickSize = function(x, y, z) {
-      if (!arguments.length) return tickMajorSize;
-      var n = arguments.length - 1;
-      tickMajorSize = +x;
-      tickMinorSize = n > 1 ? +y : tickMajorSize;
-      tickEndSize = n > 0 ? +arguments[n] : tickMajorSize;
-      return axis;
-    };
-    axis.tickPadding = function(x) {
-      if (!arguments.length) return tickPadding;
-      tickPadding = +x;
-      return axis;
-    };
-    axis.tickSubdivide = function(x) {
-      if (!arguments.length) return tickSubdivide;
-      tickSubdivide = +x;
-      return axis;
-    };
-    return axis;
-  };
-  d3.svg.brush = function() {
-    function brush(g) {
-      g.each(function() {
-        var g = d3.select(this), bg = g.selectAll(".background").data([ 0 ]), fg = g.selectAll(".extent").data([ 0 ]), tz = g.selectAll(".resize").data(resizes, String), e;
-        g.style("pointer-events", "all").on("mousedown.brush", brushstart).on("touchstart.brush", brushstart);
-        bg.enter().append("rect").attr("class", "background").style("visibility", "hidden").style("cursor", "crosshair");
-        fg.enter().append("rect").attr("class", "extent").style("cursor", "move");
-        tz.enter().append("g").attr("class", function(d) {
-          return "resize " + d;
-        }).style("cursor", function(d) {
-          return d3_svg_brushCursor[d];
-        }).append("rect").attr("x", function(d) {
-          return /[ew]$/.test(d) ? -3 : null;
-        }).attr("y", function(d) {
-          return /^[ns]/.test(d) ? -3 : null;
-        }).attr("width", 6).attr("height", 6).style("visibility", "hidden");
-        tz.style("display", brush.empty() ? "none" : null);
-        tz.exit().remove();
-        if (x) {
-          e = d3_scaleRange(x);
-          bg.attr("x", e[0]).attr("width", e[1] - e[0]);
-          redrawX(g);
-        }
-        if (y) {
-          e = d3_scaleRange(y);
-          bg.attr("y", e[0]).attr("height", e[1] - e[0]);
-          redrawY(g);
-        }
-        redraw(g);
-      });
-    }
-    function redraw(g) {
-      g.selectAll(".resize").attr("transform", function(d) {
-        return "translate(" + extent[+/e$/.test(d)][0] + "," + extent[+/^s/.test(d)][1] + ")";
-      });
-    }
-    function redrawX(g) {
-      g.select(".extent").attr("x", extent[0][0]);
-      g.selectAll(".extent,.n>rect,.s>rect").attr("width", extent[1][0] - extent[0][0]);
-    }
-    function redrawY(g) {
-      g.select(".extent").attr("y", extent[0][1]);
-      g.selectAll(".extent,.e>rect,.w>rect").attr("height", extent[1][1] - extent[0][1]);
-    }
-    function brushstart() {
-      function mouse() {
-        var touches = d3.event.changedTouches;
-        return touches ? d3.touches(target, touches)[0] : d3.mouse(target);
-      }
-      function keydown() {
-        if (d3.event.keyCode == 32) {
-          if (!dragging) {
-            center = null;
-            origin[0] -= extent[1][0];
-            origin[1] -= extent[1][1];
-            dragging = 2;
-          }
-          d3_eventCancel();
-        }
-      }
-      function keyup() {
-        if (d3.event.keyCode == 32 && dragging == 2) {
-          origin[0] += extent[1][0];
-          origin[1] += extent[1][1];
-          dragging = 0;
-          d3_eventCancel();
-        }
-      }
-      function brushmove() {
-        var point = mouse(), moved = false;
-        if (offset) {
-          point[0] += offset[0];
-          point[1] += offset[1];
-        }
-        if (!dragging) {
-          if (d3.event.altKey) {
-            if (!center) center = [ (extent[0][0] + extent[1][0]) / 2, (extent[0][1] + extent[1][1]) / 2 ];
-            origin[0] = extent[+(point[0] < center[0])][0];
-            origin[1] = extent[+(point[1] < center[1])][1];
-          } else center = null;
-        }
-        if (resizingX && move1(point, x, 0)) {
-          redrawX(g);
-          moved = true;
-        }
-        if (resizingY && move1(point, y, 1)) {
-          redrawY(g);
-          moved = true;
-        }
-        if (moved) {
-          redraw(g);
-          event_({
-            type: "brush",
-            mode: dragging ? "move" : "resize"
-          });
-        }
-      }
-      function move1(point, scale, i) {
-        var range = d3_scaleRange(scale), r0 = range[0], r1 = range[1], position = origin[i], size = extent[1][i] - extent[0][i], min, max;
-        if (dragging) {
-          r0 -= position;
-          r1 -= size + position;
-        }
-        min = Math.max(r0, Math.min(r1, point[i]));
-        if (dragging) {
-          max = (min += position) + size;
-        } else {
-          if (center) position = Math.max(r0, Math.min(r1, 2 * center[i] - min));
-          if (position < min) {
-            max = min;
-            min = position;
-          } else {
-            max = position;
-          }
-        }
-        if (extent[0][i] !== min || extent[1][i] !== max) {
-          extentDomain = null;
-          extent[0][i] = min;
-          extent[1][i] = max;
-          return true;
-        }
-      }
-      function brushend() {
-        brushmove();
-        g.style("pointer-events", "all").selectAll(".resize").style("display", brush.empty() ? "none" : null);
-        d3.select("body").style("cursor", null);
-        w.on("mousemove.brush", null).on("mouseup.brush", null).on("touchmove.brush", null).on("touchend.brush", null).on("keydown.brush", null).on("keyup.brush", null);
-        event_({
-          type: "brushend"
-        });
-        d3_eventCancel();
-      }
-      var target = this, eventTarget = d3.select(d3.event.target), event_ = event.of(target, arguments), g = d3.select(target), resizing = eventTarget.datum(), resizingX = !/^(n|s)$/.test(resizing) && x, resizingY = !/^(e|w)$/.test(resizing) && y, dragging = eventTarget.classed("extent"), center, origin = mouse(), offset;
-      var w = d3.select(window).on("mousemove.brush", brushmove).on("mouseup.brush", brushend).on("touchmove.brush", brushmove).on("touchend.brush", brushend).on("keydown.brush", keydown).on("keyup.brush", keyup);
-      if (dragging) {
-        origin[0] = extent[0][0] - origin[0];
-        origin[1] = extent[0][1] - origin[1];
-      } else if (resizing) {
-        var ex = +/w$/.test(resizing), ey = +/^n/.test(resizing);
-        offset = [ extent[1 - ex][0] - origin[0], extent[1 - ey][1] - origin[1] ];
-        origin[0] = extent[ex][0];
-        origin[1] = extent[ey][1];
-      } else if (d3.event.altKey) center = origin.slice();
-      g.style("pointer-events", "none").selectAll(".resize").style("display", null);
-      d3.select("body").style("cursor", eventTarget.style("cursor"));
-      event_({
-        type: "brushstart"
-      });
-      brushmove();
-      d3_eventCancel();
-    }
-    var event = d3_eventDispatch(brush, "brushstart", "brush", "brushend"), x = null, y = null, resizes = d3_svg_brushResizes[0], extent = [ [ 0, 0 ], [ 0, 0 ] ], extentDomain;
-    brush.x = function(z) {
-      if (!arguments.length) return x;
-      x = z;
-      resizes = d3_svg_brushResizes[!x << 1 | !y];
-      return brush;
-    };
-    brush.y = function(z) {
-      if (!arguments.length) return y;
-      y = z;
-      resizes = d3_svg_brushResizes[!x << 1 | !y];
-      return brush;
-    };
-    brush.extent = function(z) {
-      var x0, x1, y0, y1, t;
-      if (!arguments.length) {
-        z = extentDomain || extent;
-        if (x) {
-          x0 = z[0][0], x1 = z[1][0];
-          if (!extentDomain) {
-            x0 = extent[0][0], x1 = extent[1][0];
-            if (x.invert) x0 = x.invert(x0), x1 = x.invert(x1);
-            if (x1 < x0) t = x0, x0 = x1, x1 = t;
-          }
-        }
-        if (y) {
-          y0 = z[0][1], y1 = z[1][1];
-          if (!extentDomain) {
-            y0 = extent[0][1], y1 = extent[1][1];
-            if (y.invert) y0 = y.invert(y0), y1 = y.invert(y1);
-            if (y1 < y0) t = y0, y0 = y1, y1 = t;
-          }
-        }
-        return x && y ? [ [ x0, y0 ], [ x1, y1 ] ] : x ? [ x0, x1 ] : y && [ y0, y1 ];
-      }
-      extentDomain = [ [ 0, 0 ], [ 0, 0 ] ];
-      if (x) {
-        x0 = z[0], x1 = z[1];
-        if (y) x0 = x0[0], x1 = x1[0];
-        extentDomain[0][0] = x0, extentDomain[1][0] = x1;
-        if (x.invert) x0 = x(x0), x1 = x(x1);
-        if (x1 < x0) t = x0, x0 = x1, x1 = t;
-        extent[0][0] = x0 | 0, extent[1][0] = x1 | 0;
-      }
-      if (y) {
-        y0 = z[0], y1 = z[1];
-        if (x) y0 = y0[1], y1 = y1[1];
-        extentDomain[0][1] = y0, extentDomain[1][1] = y1;
-        if (y.invert) y0 = y(y0), y1 = y(y1);
-        if (y1 < y0) t = y0, y0 = y1, y1 = t;
-        extent[0][1] = y0 | 0, extent[1][1] = y1 | 0;
-      }
-      return brush;
-    };
-    brush.clear = function() {
-      extentDomain = null;
-      extent[0][0] = extent[0][1] = extent[1][0] = extent[1][1] = 0;
-      return brush;
-    };
-    brush.empty = function() {
-      return x && extent[0][0] === extent[1][0] || y && extent[0][1] === extent[1][1];
-    };
-    return d3.rebind(brush, event, "on");
-  };
-  var d3_svg_brushCursor = {
-    n: "ns-resize",
-    e: "ew-resize",
-    s: "ns-resize",
-    w: "ew-resize",
-    nw: "nwse-resize",
-    ne: "nesw-resize",
-    se: "nwse-resize",
-    sw: "nesw-resize"
-  };
-  var d3_svg_brushResizes = [ [ "n", "e", "s", "w", "nw", "ne", "se", "sw" ], [ "e", "w" ], [ "n", "s" ], [] ];
-  d3.behavior = {};
-  d3.behavior.drag = function() {
-    function drag() {
-      this.on("mousedown.drag", mousedown).on("touchstart.drag", mousedown);
-    }
-    function mousedown() {
-      function point() {
-        var p = target.parentNode;
-        return touchId ? d3.touches(p).filter(function(p) {
-          return p.identifier === touchId;
-        })[0] : d3.mouse(p);
-      }
-      function dragmove() {
-        if (!target.parentNode) return dragend();
-        var p = point(), dx = p[0] - origin_[0], dy = p[1] - origin_[1];
-        moved |= dx | dy;
-        origin_ = p;
-        d3_eventCancel();
-        event_({
-          type: "drag",
-          x: p[0] + offset[0],
-          y: p[1] + offset[1],
-          dx: dx,
-          dy: dy
-        });
-      }
-      function dragend() {
-        event_({
-          type: "dragend"
-        });
-        if (moved) {
-          d3_eventCancel();
-          if (d3.event.target === eventTarget) w.on("click.drag", click, true);
-        }
-        w.on(touchId ? "touchmove.drag-" + touchId : "mousemove.drag", null).on(touchId ? "touchend.drag-" + touchId : "mouseup.drag", null);
-      }
-      function click() {
-        d3_eventCancel();
-        w.on("click.drag", null);
-      }
-      var target = this, event_ = event.of(target, arguments), eventTarget = d3.event.target, touchId = d3.event.touches && d3.event.changedTouches[0].identifier, offset, origin_ = point(), moved = 0;
-      var w = d3.select(window).on(touchId ? "touchmove.drag-" + touchId : "mousemove.drag", dragmove).on(touchId ? "touchend.drag-" + touchId : "mouseup.drag", dragend, true);
-      if (origin) {
-        offset = origin.apply(target, arguments);
-        offset = [ offset.x - origin_[0], offset.y - origin_[1] ];
-      } else {
-        offset = [ 0, 0 ];
-      }
-      if (!touchId) d3_eventCancel();
-      event_({
-        type: "dragstart"
-      });
-    }
-    var event = d3_eventDispatch(drag, "drag", "dragstart", "dragend"), origin = null;
-    drag.origin = function(x) {
-      if (!arguments.length) return origin;
-      origin = x;
-      return drag;
-    };
-    return d3.rebind(drag, event, "on");
-  };
-  d3.behavior.zoom = function() {
-    function zoom() {
-      this.on("mousedown.zoom", mousedown).on("mousewheel.zoom", mousewheel).on("mousemove.zoom", mousemove).on("DOMMouseScroll.zoom", mousewheel).on("dblclick.zoom", dblclick).on("touchstart.zoom", touchstart).on("touchmove.zoom", touchmove).on("touchend.zoom", touchstart);
-    }
-    function location(p) {
-      return [ (p[0] - translate[0]) / scale, (p[1] - translate[1]) / scale ];
-    }
-    function point(l) {
-      return [ l[0] * scale + translate[0], l[1] * scale + translate[1] ];
-    }
-    function scaleTo(s) {
-      scale = Math.max(scaleExtent[0], Math.min(scaleExtent[1], s));
-    }
-    function translateTo(p, l) {
-      l = point(l);
-      translate[0] += p[0] - l[0];
-      translate[1] += p[1] - l[1];
-    }
-    function dispatch(event) {
-      if (x1) x1.domain(x0.range().map(function(x) {
-        return (x - translate[0]) / scale;
-      }).map(x0.invert));
-      if (y1) y1.domain(y0.range().map(function(y) {
-        return (y - translate[1]) / scale;
-      }).map(y0.invert));
-      d3.event.preventDefault();
-      event({
-        type: "zoom",
-        scale: scale,
-        translate: translate
-      });
-    }
-    function mousedown() {
-      function mousemove() {
-        moved = 1;
-        translateTo(d3.mouse(target), l);
-        dispatch(event_);
-      }
-      function mouseup() {
-        if (moved) d3_eventCancel();
-        w.on("mousemove.zoom", null).on("mouseup.zoom", null);
-        if (moved && d3.event.target === eventTarget) w.on("click.zoom", click, true);
-      }
-      function click() {
-        d3_eventCancel();
-        w.on("click.zoom", null);
-      }
-      var target = this, event_ = event.of(target, arguments), eventTarget = d3.event.target, moved = 0, w = d3.select(window).on("mousemove.zoom", mousemove).on("mouseup.zoom", mouseup), l = location(d3.mouse(target));
-      window.focus();
-      d3_eventCancel();
-    }
-    function mousewheel() {
-      if (!translate0) translate0 = location(d3.mouse(this));
-      scaleTo(Math.pow(2, d3_behavior_zoomDelta() * .002) * scale);
-      translateTo(d3.mouse(this), translate0);
-      dispatch(event.of(this, arguments));
-    }
-    function mousemove() {
-      translate0 = null;
-    }
-    function dblclick() {
-      var p = d3.mouse(this), l = location(p);
-      scaleTo(d3.event.shiftKey ? scale / 2 : scale * 2);
-      translateTo(p, l);
-      dispatch(event.of(this, arguments));
-    }
-    function touchstart() {
-      var touches = d3.touches(this), now = Date.now();
-      scale0 = scale;
-      translate0 = {};
-      touches.forEach(function(t) {
-        translate0[t.identifier] = location(t);
-      });
-      d3_eventCancel();
-      if (touches.length === 1) {
-        if (now - touchtime < 500) {
-          var p = touches[0], l = location(touches[0]);
-          scaleTo(scale * 2);
-          translateTo(p, l);
-          dispatch(event.of(this, arguments));
-        }
-        touchtime = now;
-      }
-    }
-    function touchmove() {
-      var touches = d3.touches(this), p0 = touches[0], l0 = translate0[p0.identifier];
-      if (p1 = touches[1]) {
-        var p1, l1 = translate0[p1.identifier];
-        p0 = [ (p0[0] + p1[0]) / 2, (p0[1] + p1[1]) / 2 ];
-        l0 = [ (l0[0] + l1[0]) / 2, (l0[1] + l1[1]) / 2 ];
-        scaleTo(d3.event.scale * scale0);
-      }
-      translateTo(p0, l0);
-      touchtime = null;
-      dispatch(event.of(this, arguments));
-    }
-    var translate = [ 0, 0 ], translate0, scale = 1, scale0, scaleExtent = d3_behavior_zoomInfinity, event = d3_eventDispatch(zoom, "zoom"), x0, x1, y0, y1, touchtime;
-    zoom.translate = function(x) {
-      if (!arguments.length) return translate;
-      translate = x.map(Number);
-      return zoom;
-    };
-    zoom.scale = function(x) {
-      if (!arguments.length) return scale;
-      scale = +x;
-      return zoom;
-    };
-    zoom.scaleExtent = function(x) {
-      if (!arguments.length) return scaleExtent;
-      scaleExtent = x == null ? d3_behavior_zoomInfinity : x.map(Number);
-      return zoom;
-    };
-    zoom.x = function(z) {
-      if (!arguments.length) return x1;
-      x1 = z;
-      x0 = z.copy();
-      return zoom;
-    };
-    zoom.y = function(z) {
-      if (!arguments.length) return y1;
-      y1 = z;
-      y0 = z.copy();
-      return zoom;
-    };
-    return d3.rebind(zoom, event, "on");
-  };
-  var d3_behavior_zoomDiv, d3_behavior_zoomInfinity = [ 0, Infinity ];
-  d3.layout = {};
-  d3.layout.bundle = function() {
-    return function(links) {
-      var paths = [], i = -1, n = links.length;
-      while (++i < n) paths.push(d3_layout_bundlePath(links[i]));
-      return paths;
-    };
-  };
-  d3.layout.chord = function() {
-    function relayout() {
-      var subgroups = {}, groupSums = [], groupIndex = d3.range(n), subgroupIndex = [], k, x, x0, i, j;
-      chords = [];
-      groups = [];
-      k = 0, i = -1;
-      while (++i < n) {
-        x = 0, j = -1;
-        while (++j < n) {
-          x += matrix[i][j];
-        }
-        groupSums.push(x);
-        subgroupIndex.push(d3.range(n));
-        k += x;
-      }
-      if (sortGroups) {
-        groupIndex.sort(function(a, b) {
-          return sortGroups(groupSums[a], groupSums[b]);
-        });
-      }
-      if (sortSubgroups) {
-        subgroupIndex.forEach(function(d, i) {
-          d.sort(function(a, b) {
-            return sortSubgroups(matrix[i][a], matrix[i][b]);
-          });
-        });
-      }
-      k = (2 * Math.PI - padding * n) / k;
-      x = 0, i = -1;
-      while (++i < n) {
-        x0 = x, j = -1;
-        while (++j < n) {
-          var di = groupIndex[i], dj = subgroupIndex[di][j], v = matrix[di][dj], a0 = x, a1 = x += v * k;
-          subgroups[di + "-" + dj] = {
-            index: di,
-            subindex: dj,
-            startAngle: a0,
-            endAngle: a1,
-            value: v
-          };
-        }
-        groups[di] = {
-          index: di,
-          startAngle: x0,
-          endAngle: x,
-          value: (x - x0) / k
-        };
-        x += padding;
-      }
-      i = -1;
-      while (++i < n) {
-        j = i - 1;
-        while (++j < n) {
-          var source = subgroups[i + "-" + j], target = subgroups[j + "-" + i];
-          if (source.value || target.value) {
-            chords.push(source.value < target.value ? {
-              source: target,
-              target: source
-            } : {
-              source: source,
-              target: target
-            });
-          }
-        }
-      }
-      if (sortChords) resort();
-    }
-    function resort() {
-      chords.sort(function(a, b) {
-        return sortChords((a.source.value + a.target.value) / 2, (b.source.value + b.target.value) / 2);
-      });
-    }
-    var chord = {}, chords, groups, matrix, n, padding = 0, sortGroups, sortSubgroups, sortChords;
-    chord.matrix = function(x) {
-      if (!arguments.length) return matrix;
-      n = (matrix = x) && matrix.length;
-      chords = groups = null;
-      return chord;
-    };
-    chord.padding = function(x) {
-      if (!arguments.length) return padding;
-      padding = x;
-      chords = groups = null;
-      return chord;
-    };
-    chord.sortGroups = function(x) {
-      if (!arguments.length) return sortGroups;
-      sortGroups = x;
-      chords = groups = null;
-      return chord;
-    };
-    chord.sortSubgroups = function(x) {
-      if (!arguments.length) return sortSubgroups;
-      sortSubgroups = x;
-      chords = null;
-      return chord;
-    };
-    chord.sortChords = function(x) {
-      if (!arguments.length) return sortChords;
-      sortChords = x;
-      if (chords) resort();
-      return chord;
-    };
-    chord.chords = function() {
-      if (!chords) relayout();
-      return chords;
-    };
-    chord.groups = function() {
-      if (!groups) relayout();
-      return groups;
-    };
-    return chord;
-  };
-  d3.layout.force = function() {
-    function repulse(node) {
-      return function(quad, x1, y1, x2, y2) {
-        if (quad.point !== node) {
-          var dx = quad.cx - node.x, dy = quad.cy - node.y, dn = 1 / Math.sqrt(dx * dx + dy * dy);
-          if ((x2 - x1) * dn < theta) {
-            var k = quad.charge * dn * dn;
-            node.px -= dx * k;
-            node.py -= dy * k;
-            return true;
-          }
-          if (quad.point && isFinite(dn)) {
-            var k = quad.pointCharge * dn * dn;
-            node.px -= dx * k;
-            node.py -= dy * k;
-          }
-        }
-        return !quad.charge;
-      };
-    }
-    function dragmove(d) {
-      d.px = d3.event.x;
-      d.py = d3.event.y;
-      force.resume();
-    }
-    var force = {}, event = d3.dispatch("start", "tick", "end"), size = [ 1, 1 ], drag, alpha, friction = .9, linkDistance = d3_layout_forceLinkDistance, linkStrength = d3_layout_forceLinkStrength, charge = -30, gravity = .1, theta = .8, interval, nodes = [], links = [], distances, strengths, charges;
-    force.tick = function() {
-      if ((alpha *= .99) < .005) {
-        event.end({
-          type: "end",
-          alpha: alpha = 0
-        });
-        return true;
-      }
-      var n = nodes.length, m = links.length, q, i, o, s, t, l, k, x, y;
-      for (i = 0; i < m; ++i) {
-        o = links[i];
-        s = o.source;
-        t = o.target;
-        x = t.x - s.x;
-        y = t.y - s.y;
-        if (l = x * x + y * y) {
-          l = alpha * strengths[i] * ((l = Math.sqrt(l)) - distances[i]) / l;
-          x *= l;
-          y *= l;
-          t.x -= x * (k = s.weight / (t.weight + s.weight));
-          t.y -= y * k;
-          s.x += x * (k = 1 - k);
-          s.y += y * k;
-        }
-      }
-      if (k = alpha * gravity) {
-        x = size[0] / 2;
-        y = size[1] / 2;
-        i = -1;
-        if (k) while (++i < n) {
-          o = nodes[i];
-          o.x += (x - o.x) * k;
-          o.y += (y - o.y) * k;
-        }
-      }
-      if (charge) {
-        d3_layout_forceAccumulate(q = d3.geom.quadtree(nodes), alpha, charges);
-        i = -1;
-        while (++i < n) {
-          if (!(o = nodes[i]).fixed) {
-            q.visit(repulse(o));
-          }
-        }
-      }
-      i = -1;
-      while (++i < n) {
-        o = nodes[i];
-        if (o.fixed) {
-          o.x = o.px;
-          o.y = o.py;
-        } else {
-          o.x -= (o.px - (o.px = o.x)) * friction;
-          o.y -= (o.py - (o.py = o.y)) * friction;
-        }
-      }
-      event.tick({
-        type: "tick",
-        alpha: alpha
-      });
-    };
-    force.nodes = function(x) {
-      if (!arguments.length) return nodes;
-      nodes = x;
-      return force;
-    };
-    force.links = function(x) {
-      if (!arguments.length) return links;
-      links = x;
-      return force;
-    };
-    force.size = function(x) {
-      if (!arguments.length) return size;
-      size = x;
-      return force;
-    };
-    force.linkDistance = function(x) {
-      if (!arguments.length) return linkDistance;
-      linkDistance = d3_functor(x);
-      return force;
-    };
-    force.distance = force.linkDistance;
-    force.linkStrength = function(x) {
-      if (!arguments.length) return linkStrength;
-      linkStrength = d3_functor(x);
-      return force;
-    };
-    force.friction = function(x) {
-      if (!arguments.length) return friction;
-      friction = x;
-      return force;
-    };
-    force.charge = function(x) {
-      if (!arguments.length) return charge;
-      charge = typeof x === "function" ? x : +x;
-      return force;
-    };
-    force.gravity = function(x) {
-      if (!arguments.length) return gravity;
-      gravity = x;
-      return force;
-    };
-    force.theta = function(x) {
-      if (!arguments.length) return theta;
-      theta = x;
-      return force;
-    };
-    force.alpha = function(x) {
-      if (!arguments.length) return alpha;
-      if (alpha) {
-        if (x > 0) alpha = x; else alpha = 0;
-      } else if (x > 0) {
-        event.start({
-          type: "start",
-          alpha: alpha = x
-        });
-        d3.timer(force.tick);
-      }
-      return force;
-    };
-    force.start = function() {
-      function position(dimension, size) {
-        var neighbors = neighbor(i), j = -1, m = neighbors.length, x;
-        while (++j < m) if (!isNaN(x = neighbors[j][dimension])) return x;
-        return Math.random() * size;
-      }
-      function neighbor() {
-        if (!neighbors) {
-          neighbors = [];
-          for (j = 0; j < n; ++j) {
-            neighbors[j] = [];
-          }
-          for (j = 0; j < m; ++j) {
-            var o = links[j];
-            neighbors[o.source.index].push(o.target);
-            neighbors[o.target.index].push(o.source);
-          }
-        }
-        return neighbors[i];
-      }
-      var i, j, n = nodes.length, m = links.length, w = size[0], h = size[1], neighbors, o;
-      for (i = 0; i < n; ++i) {
-        (o = nodes[i]).index = i;
-        o.weight = 0;
-      }
-      distances = [];
-      strengths = [];
-      for (i = 0; i < m; ++i) {
-        o = links[i];
-        if (typeof o.source == "number") o.source = nodes[o.source];
-        if (typeof o.target == "number") o.target = nodes[o.target];
-        distances[i] = linkDistance.call(this, o, i);
-        strengths[i] = linkStrength.call(this, o, i);
-        ++o.source.weight;
-        ++o.target.weight;
-      }
-      for (i = 0; i < n; ++i) {
-        o = nodes[i];
-        if (isNaN(o.x)) o.x = position("x", w);
-        if (isNaN(o.y)) o.y = position("y", h);
-        if (isNaN(o.px)) o.px = o.x;
-        if (isNaN(o.py)) o.py = o.y;
-      }
-      charges = [];
-      if (typeof charge === "function") {
-        for (i = 0; i < n; ++i) {
-          charges[i] = +charge.call(this, nodes[i], i);
-        }
-      } else {
-        for (i = 0; i < n; ++i) {
-          charges[i] = charge;
-        }
-      }
-      return force.resume();
-    };
-    force.resume = function() {
-      return force.alpha(.1);
-    };
-    force.stop = function() {
-      return force.alpha(0);
-    };
-    force.drag = function() {
-      if (!drag) drag = d3.behavior.drag().origin(d3_identity).on("dragstart", d3_layout_forceDragstart).on("drag", dragmove).on("dragend", d3_layout_forceDragend);
-      this.on("mouseover.force", d3_layout_forceMouseover).on("mouseout.force", d3_layout_forceMouseout).call(drag);
-    };
-    return d3.rebind(force, event, "on");
-  };
-  d3.layout.partition = function() {
-    function position(node, x, dx, dy) {
-      var children = node.children;
-      node.x = x;
-      node.y = node.depth * dy;
-      node.dx = dx;
-      node.dy = dy;
-      if (children && (n = children.length)) {
-        var i = -1, n, c, d;
-        dx = node.value ? dx / node.value : 0;
-        while (++i < n) {
-          position(c = children[i], x, d = c.value * dx, dy);
-          x += d;
-        }
-      }
-    }
-    function depth(node) {
-      var children = node.children, d = 0;
-      if (children && (n = children.length)) {
-        var i = -1, n;
-        while (++i < n) d = Math.max(d, depth(children[i]));
-      }
-      return 1 + d;
-    }
-    function partition(d, i) {
-      var nodes = hierarchy.call(this, d, i);
-      position(nodes[0], 0, size[0], size[1] / depth(nodes[0]));
-      return nodes;
-    }
-    var hierarchy = d3.layout.hierarchy(), size = [ 1, 1 ];
-    partition.size = function(x) {
-      if (!arguments.length) return size;
-      size = x;
-      return partition;
-    };
-    return d3_layout_hierarchyRebind(partition, hierarchy);
-  };
-  d3.layout.pie = function() {
-    function pie(data, i) {
-      var values = data.map(function(d, i) {
-        return +value.call(pie, d, i);
-      });
-      var a = +(typeof startAngle === "function" ? startAngle.apply(this, arguments) : startAngle);
-      var k = ((typeof endAngle === "function" ? endAngle.apply(this, arguments) : endAngle) - startAngle) / d3.sum(values);
-      var index = d3.range(data.length);
-      if (sort != null) index.sort(sort === d3_layout_pieSortByValue ? function(i, j) {
-        return values[j] - values[i];
-      } : function(i, j) {
-        return sort(data[i], data[j]);
-      });
-      var arcs = [];
-      index.forEach(function(i) {
-        var d;
-        arcs[i] = {
-          data: data[i],
-          value: d = values[i],
-          startAngle: a,
-          endAngle: a += d * k
-        };
-      });
-      return arcs;
-    }
-    var value = Number, sort = d3_layout_pieSortByValue, startAngle = 0, endAngle = 2 * Math.PI;
-    pie.value = function(x) {
-      if (!arguments.length) return value;
-      value = x;
-      return pie;
-    };
-    pie.sort = function(x) {
-      if (!arguments.length) return sort;
-      sort = x;
-      return pie;
-    };
-    pie.startAngle = function(x) {
-      if (!arguments.length) return startAngle;
-      startAngle = x;
-      return pie;
-    };
-    pie.endAngle = function(x) {
-      if (!arguments.length) return endAngle;
-      endAngle = x;
-      return pie;
-    };
-    return pie;
-  };
-  var d3_layout_pieSortByValue = {};
-  d3.layout.stack = function() {
-    function stack(data, index) {
-      var series = data.map(function(d, i) {
-        return values.call(stack, d, i);
-      });
-      var points = series.map(function(d, i) {
-        return d.map(function(v, i) {
-          return [ x.call(stack, v, i), y.call(stack, v, i) ];
-        });
-      });
-      var orders = order.call(stack, points, index);
-      series = d3.permute(series, orders);
-      points = d3.permute(points, orders);
-      var offsets = offset.call(stack, points, index);
-      var n = series.length, m = series[0].length, i, j, o;
-      for (j = 0; j < m; ++j) {
-        out.call(stack, series[0][j], o = offsets[j], points[0][j][1]);
-        for (i = 1; i < n; ++i) {
-          out.call(stack, series[i][j], o += points[i - 1][j][1], points[i][j][1]);
-        }
-      }
-      return data;
-    }
-    var values = d3_identity, order = d3_layout_stackOrderDefault, offset = d3_layout_stackOffsetZero, out = d3_layout_stackOut, x = d3_layout_stackX, y = d3_layout_stackY;
-    stack.values = function(x) {
-      if (!arguments.length) return values;
-      values = x;
-      return stack;
-    };
-    stack.order = function(x) {
-      if (!arguments.length) return order;
-      order = typeof x === "function" ? x : d3_layout_stackOrders.get(x) || d3_layout_stackOrderDefault;
-      return stack;
-    };
-    stack.offset = function(x) {
-      if (!arguments.length) return offset;
-      offset = typeof x === "function" ? x : d3_layout_stackOffsets.get(x) || d3_layout_stackOffsetZero;
-      return stack;
-    };
-    stack.x = function(z) {
-      if (!arguments.length) return x;
-      x = z;
-      return stack;
-    };
-    stack.y = function(z) {
-      if (!arguments.length) return y;
-      y = z;
-      return stack;
-    };
-    stack.out = function(z) {
-      if (!arguments.length) return out;
-      out = z;
-      return stack;
-    };
-    return stack;
-  };
-  var d3_layout_stackOrders = d3.map({
-    "inside-out": function(data) {
-      var n = data.length, i, j, max = data.map(d3_layout_stackMaxIndex), sums = data.map(d3_layout_stackReduceSum), index = d3.range(n).sort(function(a, b) {
-        return max[a] - max[b];
-      }), top = 0, bottom = 0, tops = [], bottoms = [];
-      for (i = 0; i < n; ++i) {
-        j = index[i];
-        if (top < bottom) {
-          top += sums[j];
-          tops.push(j);
-        } else {
-          bottom += sums[j];
-          bottoms.push(j);
-        }
-      }
-      return bottoms.reverse().concat(tops);
-    },
-    reverse: function(data) {
-      return d3.range(data.length).reverse();
-    },
-    "default": d3_layout_stackOrderDefault
-  });
-  var d3_layout_stackOffsets = d3.map({
-    silhouette: function(data) {
-      var n = data.length, m = data[0].length, sums = [], max = 0, i, j, o, y0 = [];
-      for (j = 0; j < m; ++j) {
-        for (i = 0, o = 0; i < n; i++) o += data[i][j][1];
-        if (o > max) max = o;
-        sums.push(o);
-      }
-      for (j = 0; j < m; ++j) {
-        y0[j] = (max - sums[j]) / 2;
-      }
-      return y0;
-    },
-    wiggle: function(data) {
-      var n = data.length, x = data[0], m = x.length, max = 0, i, j, k, s1, s2, s3, dx, o, o0, y0 = [];
-      y0[0] = o = o0 = 0;
-      for (j = 1; j < m; ++j) {
-        for (i = 0, s1 = 0; i < n; ++i) s1 += data[i][j][1];
-        for (i = 0, s2 = 0, dx = x[j][0] - x[j - 1][0]; i < n; ++i) {
-          for (k = 0, s3 = (data[i][j][1] - data[i][j - 1][1]) / (2 * dx); k < i; ++k) {
-            s3 += (data[k][j][1] - data[k][j - 1][1]) / dx;
-          }
-          s2 += s3 * data[i][j][1];
-        }
-        y0[j] = o -= s1 ? s2 / s1 * dx : 0;
-        if (o < o0) o0 = o;
-      }
-      for (j = 0; j < m; ++j) y0[j] -= o0;
-      return y0;
-    },
-    expand: function(data) {
-      var n = data.length, m = data[0].length, k = 1 / n, i, j, o, y0 = [];
-      for (j = 0; j < m; ++j) {
-        for (i = 0, o = 0; i < n; i++) o += data[i][j][1];
-        if (o) for (i = 0; i < n; i++) data[i][j][1] /= o; else for (i = 0; i < n; i++) data[i][j][1] = k;
-      }
-      for (j = 0; j < m; ++j) y0[j] = 0;
-      return y0;
-    },
-    zero: d3_layout_stackOffsetZero
-  });
-  d3.layout.histogram = function() {
-    function histogram(data, i) {
-      var bins = [], values = data.map(valuer, this), range = ranger.call(this, values, i), thresholds = binner.call(this, range, values, i), bin, i = -1, n = values.length, m = thresholds.length - 1, k = frequency ? 1 : 1 / n, x;
-      while (++i < m) {
-        bin = bins[i] = [];
-        bin.dx = thresholds[i + 1] - (bin.x = thresholds[i]);
-        bin.y = 0;
-      }
-      if (m > 0) {
-        i = -1;
-        while (++i < n) {
-          x = values[i];
-          if (x >= range[0] && x <= range[1]) {
-            bin = bins[d3.bisect(thresholds, x, 1, m) - 1];
-            bin.y += k;
-            bin.push(data[i]);
-          }
-        }
-      }
-      return bins;
-    }
-    var frequency = true, valuer = Number, ranger = d3_layout_histogramRange, binner = d3_layout_histogramBinSturges;
-    histogram.value = function(x) {
-      if (!arguments.length) return valuer;
-      valuer = x;
-      return histogram;
-    };
-    histogram.range = function(x) {
-      if (!arguments.length) return ranger;
-      ranger = d3_functor(x);
-      return histogram;
-    };
-    histogram.bins = function(x) {
-      if (!arguments.length) return binner;
-      binner = typeof x === "number" ? function(range) {
-        return d3_layout_histogramBinFixed(range, x);
-      } : d3_functor(x);
-      return histogram;
-    };
-    histogram.frequency = function(x) {
-      if (!arguments.length) return frequency;
-      frequency = !!x;
-      return histogram;
-    };
-    return histogram;
-  };
-  d3.layout.hierarchy = function() {
-    function recurse(data, depth, nodes) {
-      var childs = children.call(hierarchy, data, depth), node = d3_layout_hierarchyInline ? data : {
-        data: data
-      };
-      node.depth = depth;
-      nodes.push(node);
-      if (childs && (n = childs.length)) {
-        var i = -1, n, c = node.children = [], v = 0, j = depth + 1, d;
-        while (++i < n) {
-          d = recurse(childs[i], j, nodes);
-          d.parent = node;
-          c.push(d);
-          v += d.value;
-        }
-        if (sort) c.sort(sort);
-        if (value) node.value = v;
-      } else if (value) {
-        node.value = +value.call(hierarchy, data, depth) || 0;
-      }
-      return node;
-    }
-    function revalue(node, depth) {
-      var children = node.children, v = 0;
-      if (children && (n = children.length)) {
-        var i = -1, n, j = depth + 1;
-        while (++i < n) v += revalue(children[i], j);
-      } else if (value) {
-        v = +value.call(hierarchy, d3_layout_hierarchyInline ? node : node.data, depth) || 0;
-      }
-      if (value) node.value = v;
-      return v;
-    }
-    function hierarchy(d) {
-      var nodes = [];
-      recurse(d, 0, nodes);
-      return nodes;
-    }
-    var sort = d3_layout_hierarchySort, children = d3_layout_hierarchyChildren, value = d3_layout_hierarchyValue;
-    hierarchy.sort = function(x) {
-      if (!arguments.length) return sort;
-      sort = x;
-      return hierarchy;
-    };
-    hierarchy.children = function(x) {
-      if (!arguments.length) return children;
-      children = x;
-      return hierarchy;
-    };
-    hierarchy.value = function(x) {
-      if (!arguments.length) return value;
-      value = x;
-      return hierarchy;
-    };
-    hierarchy.revalue = function(root) {
-      revalue(root, 0);
-      return root;
-    };
-    return hierarchy;
-  };
-  var d3_layout_hierarchyInline = false;
-  d3.layout.pack = function() {
-    function pack(d, i) {
-      var nodes = hierarchy.call(this, d, i), root = nodes[0];
-      root.x = 0;
-      root.y = 0;
-      d3_layout_treeVisitAfter(root, function(d) {
-        d.r = Math.sqrt(d.value);
-      });
-      d3_layout_treeVisitAfter(root, d3_layout_packSiblings);
-      var w = size[0], h = size[1], k = Math.max(2 * root.r / w, 2 * root.r / h);
-      if (padding > 0) {
-        var dr = padding * k / 2;
-        d3_layout_treeVisitAfter(root, function(d) {
-          d.r += dr;
-        });
-        d3_layout_treeVisitAfter(root, d3_layout_packSiblings);
-        d3_layout_treeVisitAfter(root, function(d) {
-          d.r -= dr;
-        });
-        k = Math.max(2 * root.r / w, 2 * root.r / h);
-      }
-      d3_layout_packTransform(root, w / 2, h / 2, 1 / k);
-      return nodes;
-    }
-    var hierarchy = d3.layout.hierarchy().sort(d3_layout_packSort), padding = 0, size = [ 1, 1 ];
-    pack.size = function(x) {
-      if (!arguments.length) return size;
-      size = x;
-      return pack;
-    };
-    pack.padding = function(_) {
-      if (!arguments.length) return padding;
-      padding = +_;
-      return pack;
-    };
-    return d3_layout_hierarchyRebind(pack, hierarchy);
-  };
-  d3.layout.cluster = function() {
-    function cluster(d, i) {
-      var nodes = hierarchy.call(this, d, i), root = nodes[0], previousNode, x = 0, kx, ky;
-      d3_layout_treeVisitAfter(root, function(node) {
-        var children = node.children;
-        if (children && children.length) {
-          node.x = d3_layout_clusterX(children);
-          node.y = d3_layout_clusterY(children);
-        } else {
-          node.x = previousNode ? x += separation(node, previousNode) : 0;
-          node.y = 0;
-          previousNode = node;
-        }
-      });
-      var left = d3_layout_clusterLeft(root), right = d3_layout_clusterRight(root), x0 = left.x - separation(left, right) / 2, x1 = right.x + separation(right, left) / 2;
-      d3_layout_treeVisitAfter(root, function(node) {
-        node.x = (node.x - x0) / (x1 - x0) * size[0];
-        node.y = (1 - (root.y ? node.y / root.y : 1)) * size[1];
-      });
-      return nodes;
-    }
-    var hierarchy = d3.layout.hierarchy().sort(null).value(null), separation = d3_layout_treeSeparation, size = [ 1, 1 ];
-    cluster.separation = function(x) {
-      if (!arguments.length) return separation;
-      separation = x;
-      return cluster;
-    };
-    cluster.size = function(x) {
-      if (!arguments.length) return size;
-      size = x;
-      return cluster;
-    };
-    return d3_layout_hierarchyRebind(cluster, hierarchy);
-  };
-  d3.layout.tree = function() {
-    function tree(d, i) {
-      function firstWalk(node, previousSibling) {
-        var children = node.children, layout = node._tree;
-        if (children && (n = children.length)) {
-          var n, firstChild = children[0], previousChild, ancestor = firstChild, child, i = -1;
-          while (++i < n) {
-            child = children[i];
-            firstWalk(child, previousChild);
-            ancestor = apportion(child, previousChild, ancestor);
-            previousChild = child;
-          }
-          d3_layout_treeShift(node);
-          var midpoint = .5 * (firstChild._tree.prelim + child._tree.prelim);
-          if (previousSibling) {
-            layout.prelim = previousSibling._tree.prelim + separation(node, previousSibling);
-            layout.mod = layout.prelim - midpoint;
-          } else {
-            layout.prelim = midpoint;
-          }
-        } else {
-          if (previousSibling) {
-            layout.prelim = previousSibling._tree.prelim + separation(node, previousSibling);
-          }
-        }
-      }
-      function secondWalk(node, x) {
-        node.x = node._tree.prelim + x;
-        var children = node.children;
-        if (children && (n = children.length)) {
-          var i = -1, n;
-          x += node._tree.mod;
-          while (++i < n) {
-            secondWalk(children[i], x);
-          }
-        }
-      }
-      function apportion(node, previousSibling, ancestor) {
-        if (previousSibling) {
-          var vip = node, vop = node, vim = previousSibling, vom = node.parent.children[0], sip = vip._tree.mod, sop = vop._tree.mod, sim = vim._tree.mod, som = vom._tree.mod, shift;
-          while (vim = d3_layout_treeRight(vim), vip = d3_layout_treeLeft(vip), vim && vip) {
-            vom = d3_layout_treeLeft(vom);
-            vop = d3_layout_treeRight(vop);
-            vop._tree.ancestor = node;
-            shift = vim._tree.prelim + sim - vip._tree.prelim - sip + separation(vim, vip);
-            if (shift > 0) {
-              d3_layout_treeMove(d3_layout_treeAncestor(vim, node, ancestor), node, shift);
-              sip += shift;
-              sop += shift;
-            }
-            sim += vim._tree.mod;
-            sip += vip._tree.mod;
-            som += vom._tree.mod;
-            sop += vop._tree.mod;
-          }
-          if (vim && !d3_layout_treeRight(vop)) {
-            vop._tree.thread = vim;
-            vop._tree.mod += sim - sop;
-          }
-          if (vip && !d3_layout_treeLeft(vom)) {
-            vom._tree.thread = vip;
-            vom._tree.mod += sip - som;
-            ancestor = node;
-          }
-        }
-        return ancestor;
-      }
-      var nodes = hierarchy.call(this, d, i), root = nodes[0];
-      d3_layout_treeVisitAfter(root, function(node, previousSibling) {
-        node._tree = {
-          ancestor: node,
-          prelim: 0,
-          mod: 0,
-          change: 0,
-          shift: 0,
-          number: previousSibling ? previousSibling._tree.number + 1 : 0
-        };
-      });
-      firstWalk(root);
-      secondWalk(root, -root._tree.prelim);
-      var left = d3_layout_treeSearch(root, d3_layout_treeLeftmost), right = d3_layout_treeSearch(root, d3_layout_treeRightmost), deep = d3_layout_treeSearch(root, d3_layout_treeDeepest), x0 = left.x - separation(left, right) / 2, x1 = right.x + separation(right, left) / 2, y1 = deep.depth || 1;
-      d3_layout_treeVisitAfter(root, function(node) {
-        node.x = (node.x - x0) / (x1 - x0) * size[0];
-        node.y = node.depth / y1 * size[1];
-        delete node._tree;
-      });
-      return nodes;
-    }
-    var hierarchy = d3.layout.hierarchy().sort(null).value(null), separation = d3_layout_treeSeparation, size = [ 1, 1 ];
-    tree.separation = function(x) {
-      if (!arguments.length) return separation;
-      separation = x;
-      return tree;
-    };
-    tree.size = function(x) {
-      if (!arguments.length) return size;
-      size = x;
-      return tree;
-    };
-    return d3_layout_hierarchyRebind(tree, hierarchy);
-  };
-  d3.layout.treemap = function() {
-    function scale(children, k) {
-      var i = -1, n = children.length, child, area;
-      while (++i < n) {
-        area = (child = children[i]).value * (k < 0 ? 0 : k);
-        child.area = isNaN(area) || area <= 0 ? 0 : area;
-      }
-    }
-    function squarify(node) {
-      var children = node.children;
-      if (children && children.length) {
-        var rect = pad(node), row = [], remaining = children.slice(), child, best = Infinity, score, u = Math.min(rect.dx, rect.dy), n;
-        scale(remaining, rect.dx * rect.dy / node.value);
-        row.area = 0;
-        while ((n = remaining.length) > 0) {
-          row.push(child = remaining[n - 1]);
-          row.area += child.area;
-          if ((score = worst(row, u)) <= best) {
-            remaining.pop();
-            best = score;
-          } else {
-            row.area -= row.pop().area;
-            position(row, u, rect, false);
-            u = Math.min(rect.dx, rect.dy);
-            row.length = row.area = 0;
-            best = Infinity;
-          }
-        }
-        if (row.length) {
-          position(row, u, rect, true);
-          row.length = row.area = 0;
-        }
-        children.forEach(squarify);
-      }
-    }
-    function stickify(node) {
-      var children = node.children;
-      if (children && children.length) {
-        var rect = pad(node), remaining = children.slice(), child, row = [];
-        scale(remaining, rect.dx * rect.dy / node.value);
-        row.area = 0;
-        while (child = remaining.pop()) {
-          row.push(child);
-          row.area += child.area;
-          if (child.z != null) {
-            position(row, child.z ? rect.dx : rect.dy, rect, !remaining.length);
-            row.length = row.area = 0;
-          }
-        }
-        children.forEach(stickify);
-      }
-    }
-    function worst(row, u) {
-      var s = row.area, r, rmax = 0, rmin = Infinity, i = -1, n = row.length;
-      while (++i < n) {
-        if (!(r = row[i].area)) continue;
-        if (r < rmin) rmin = r;
-        if (r > rmax) rmax = r;
-      }
-      s *= s;
-      u *= u;
-      return s ? Math.max(u * rmax * ratio / s, s / (u * rmin * ratio)) : Infinity;
-    }
-    function position(row, u, rect, flush) {
-      var i = -1, n = row.length, x = rect.x, y = rect.y, v = u ? round(row.area / u) : 0, o;
-      if (u == rect.dx) {
-        if (flush || v > rect.dy) v = rect.dy;
-        while (++i < n) {
-          o = row[i];
-          o.x = x;
-          o.y = y;
-          o.dy = v;
-          x += o.dx = Math.min(rect.x + rect.dx - x, v ? round(o.area / v) : 0);
-        }
-        o.z = true;
-        o.dx += rect.x + rect.dx - x;
-        rect.y += v;
-        rect.dy -= v;
-      } else {
-        if (flush || v > rect.dx) v = rect.dx;
-        while (++i < n) {
-          o = row[i];
-          o.x = x;
-          o.y = y;
-          o.dx = v;
-          y += o.dy = Math.min(rect.y + rect.dy - y, v ? round(o.area / v) : 0);
-        }
-        o.z = false;
-        o.dy += rect.y + rect.dy - y;
-        rect.x += v;
-        rect.dx -= v;
-      }
-    }
-    function treemap(d) {
-      var nodes = stickies || hierarchy(d), root = nodes[0];
-      root.x = 0;
-      root.y = 0;
-      root.dx = size[0];
-      root.dy = size[1];
-      if (stickies) hierarchy.revalue(root);
-      scale([ root ], root.dx * root.dy / root.value);
-      (stickies ? stickify : squarify)(root);
-      if (sticky) stickies = nodes;
-      return nodes;
-    }
-    var hierarchy = d3.layout.hierarchy(), round = Math.round, size = [ 1, 1 ], padding = null, pad = d3_layout_treemapPadNull, sticky = false, stickies, ratio = .5 * (1 + Math.sqrt(5));
-    treemap.size = function(x) {
-      if (!arguments.length) return size;
-      size = x;
-      return treemap;
-    };
-    treemap.padding = function(x) {
-      function padFunction(node) {
-        var p = x.call(treemap, node, node.depth);
-        return p == null ? d3_layout_treemapPadNull(node) : d3_layout_treemapPad(node, typeof p === "number" ? [ p, p, p, p ] : p);
-      }
-      function padConstant(node) {
-        return d3_layout_treemapPad(node, x);
-      }
-      if (!arguments.length) return padding;
-      var type;
-      pad = (padding = x) == null ? d3_layout_treemapPadNull : (type = typeof x) === "function" ? padFunction : type === "number" ? (x = [ x, x, x, x ], padConstant) : padConstant;
-      return treemap;
-    };
-    treemap.round = function(x) {
-      if (!arguments.length) return round != Number;
-      round = x ? Math.round : Number;
-      return treemap;
-    };
-    treemap.sticky = function(x) {
-      if (!arguments.length) return sticky;
-      sticky = x;
-      stickies = null;
-      return treemap;
-    };
-    treemap.ratio = function(x) {
-      if (!arguments.length) return ratio;
-      ratio = x;
-      return treemap;
-    };
-    return d3_layout_hierarchyRebind(treemap, hierarchy);
-  };
-  d3.csv = d3_dsv(",", "text/csv");
-  d3.tsv = d3_dsv("	", "text/tab-separated-values");
-  d3.geo = {};
-  var d3_geo_radians = Math.PI / 180;
-  d3.geo.azimuthal = function() {
-    function azimuthal(coordinates) {
-      var x1 = coordinates[0] * d3_geo_radians - x0, y1 = coordinates[1] * d3_geo_radians, cx1 = Math.cos(x1), sx1 = Math.sin(x1), cy1 = Math.cos(y1), sy1 = Math.sin(y1), cc = mode !== "orthographic" ? sy0 * sy1 + cy0 * cy1 * cx1 : null, c, k = mode === "stereographic" ? 1 / (1 + cc) : mode === "gnomonic" ? 1 / cc : mode === "equidistant" ? (c = Math.acos(cc), c ? c / Math.sin(c) : 0) : mode === "equalarea" ? Math.sqrt(2 / (1 + cc)) : 1, x = k * cy1 * sx1, y = k * (sy0 * cy1 * cx1 - cy0 * sy1);
-      return [ scale * x + translate[0], scale * y + translate[1] ];
-    }
-    var mode = "orthographic", origin, scale = 200, translate = [ 480, 250 ], x0, y0, cy0, sy0;
-    azimuthal.invert = function(coordinates) {
-      var x = (coordinates[0] - translate[0]) / scale, y = (coordinates[1] - translate[1]) / scale, p = Math.sqrt(x * x + y * y), c = mode === "stereographic" ? 2 * Math.atan(p) : mode === "gnomonic" ? Math.atan(p) : mode === "equidistant" ? p : mode === "equalarea" ? 2 * Math.asin(.5 * p) : Math.asin(p), sc = Math.sin(c), cc = Math.cos(c);
-      return [ (x0 + Math.atan2(x * sc, p * cy0 * cc + y * sy0 * sc)) / d3_geo_radians, Math.asin(cc * sy0 - (p ? y * sc * cy0 / p : 0)) / d3_geo_radians ];
-    };
-    azimuthal.mode = function(x) {
-      if (!arguments.length) return mode;
-      mode = x + "";
-      return azimuthal;
-    };
-    azimuthal.origin = function(x) {
-      if (!arguments.length) return origin;
-      origin = x;
-      x0 = origin[0] * d3_geo_radians;
-      y0 = origin[1] * d3_geo_radians;
-      cy0 = Math.cos(y0);
-      sy0 = Math.sin(y0);
-      return azimuthal;
-    };
-    azimuthal.scale = function(x) {
-      if (!arguments.length) return scale;
-      scale = +x;
-      return azimuthal;
-    };
-    azimuthal.translate = function(x) {
-      if (!arguments.length) return translate;
-      translate = [ +x[0], +x[1] ];
-      return azimuthal;
-    };
-    return azimuthal.origin([ 0, 0 ]);
-  };
-  d3.geo.albers = function() {
-    function albers(coordinates) {
-      var t = n * (d3_geo_radians * coordinates[0] - lng0), p = Math.sqrt(C - 2 * n * Math.sin(d3_geo_radians * coordinates[1])) / n;
-      return [ scale * p * Math.sin(t) + translate[0], scale * (p * Math.cos(t) - p0) + translate[1] ];
-    }
-    function reload() {
-      var phi1 = d3_geo_radians * parallels[0], phi2 = d3_geo_radians * parallels[1], lat0 = d3_geo_radians * origin[1], s = Math.sin(phi1), c = Math.cos(phi1);
-      lng0 = d3_geo_radians * origin[0];
-      n = .5 * (s + Math.sin(phi2));
-      C = c * c + 2 * n * s;
-      p0 = Math.sqrt(C - 2 * n * Math.sin(lat0)) / n;
-      return albers;
-    }
-    var origin = [ -98, 38 ], parallels = [ 29.5, 45.5 ], scale = 1e3, translate = [ 480, 250 ], lng0, n, C, p0;
-    albers.invert = function(coordinates) {
-      var x = (coordinates[0] - translate[0]) / scale, y = (coordinates[1] - translate[1]) / scale, p0y = p0 + y, t = Math.atan2(x, p0y), p = Math.sqrt(x * x + p0y * p0y);
-      return [ (lng0 + t / n) / d3_geo_radians, Math.asin((C - p * p * n * n) / (2 * n)) / d3_geo_radians ];
-    };
-    albers.origin = function(x) {
-      if (!arguments.length) return origin;
-      origin = [ +x[0], +x[1] ];
-      return reload();
-    };
-    albers.parallels = function(x) {
-      if (!arguments.length) return parallels;
-      parallels = [ +x[0], +x[1] ];
-      return reload();
-    };
-    albers.scale = function(x) {
-      if (!arguments.length) return scale;
-      scale = +x;
-      return albers;
-    };
-    albers.translate = function(x) {
-      if (!arguments.length) return translate;
-      translate = [ +x[0], +x[1] ];
-      return albers;
-    };
-    return reload();
-  };
-  d3.geo.albersUsa = function() {
-    function albersUsa(coordinates) {
-      var lon = coordinates[0], lat = coordinates[1];
-      return (lat > 50 ? alaska : lon < -140 ? hawaii : lat < 21 ? puertoRico : lower48)(coordinates);
-    }
-    var lower48 = d3.geo.albers();
-    var alaska = d3.geo.albers().origin([ -160, 60 ]).parallels([ 55, 65 ]);
-    var hawaii = d3.geo.albers().origin([ -160, 20 ]).parallels([ 8, 18 ]);
-    var puertoRico = d3.geo.albers().origin([ -60, 10 ]).parallels([ 8, 18 ]);
-    albersUsa.scale = function(x) {
-      if (!arguments.length) return lower48.scale();
-      lower48.scale(x);
-      alaska.scale(x * .6);
-      hawaii.scale(x);
-      puertoRico.scale(x * 1.5);
-      return albersUsa.translate(lower48.translate());
-    };
-    albersUsa.translate = function(x) {
-      if (!arguments.length) return lower48.translate();
-      var dz = lower48.scale() / 1e3, dx = x[0], dy = x[1];
-      lower48.translate(x);
-      alaska.translate([ dx - 400 * dz, dy + 170 * dz ]);
-      hawaii.translate([ dx - 190 * dz, dy + 200 * dz ]);
-      puertoRico.translate([ dx + 580 * dz, dy + 430 * dz ]);
-      return albersUsa;
-    };
-    return albersUsa.scale(lower48.scale());
-  };
-  d3.geo.bonne = function() {
-    function bonne(coordinates) {
-      var x = coordinates[0] * d3_geo_radians - x0, y = coordinates[1] * d3_geo_radians - y0;
-      if (y1) {
-        var p = c1 + y1 - y, E = x * Math.cos(y) / p;
-        x = p * Math.sin(E);
-        y = p * Math.cos(E) - c1;
-      } else {
-        x *= Math.cos(y);
-        y *= -1;
-      }
-      return [ scale * x + translate[0], scale * y + translate[1] ];
-    }
-    var scale = 200, translate = [ 480, 250 ], x0, y0, y1, c1;
-    bonne.invert = function(coordinates) {
-      var x = (coordinates[0] - translate[0]) / scale, y = (coordinates[1] - translate[1]) / scale;
-      if (y1) {
-        var c = c1 + y, p = Math.sqrt(x * x + c * c);
-        y = c1 + y1 - p;
-        x = x0 + p * Math.atan2(x, c) / Math.cos(y);
-      } else {
-        y *= -1;
-        x /= Math.cos(y);
-      }
-      return [ x / d3_geo_radians, y / d3_geo_radians ];
-    };
-    bonne.parallel = function(x) {
-      if (!arguments.length) return y1 / d3_geo_radians;
-      c1 = 1 / Math.tan(y1 = x * d3_geo_radians);
-      return bonne;
-    };
-    bonne.origin = function(x) {
-      if (!arguments.length) return [ x0 / d3_geo_radians, y0 / d3_geo_radians ];
-      x0 = x[0] * d3_geo_radians;
-      y0 = x[1] * d3_geo_radians;
-      return bonne;
-    };
-    bonne.scale = function(x) {
-      if (!arguments.length) return scale;
-      scale = +x;
-      return bonne;
-    };
-    bonne.translate = function(x) {
-      if (!arguments.length) return translate;
-      translate = [ +x[0], +x[1] ];
-      return bonne;
-    };
-    return bonne.origin([ 0, 0 ]).parallel(45);
-  };
-  d3.geo.equirectangular = function() {
-    function equirectangular(coordinates) {
-      var x = coordinates[0] / 360, y = -coordinates[1] / 360;
-      return [ scale * x + translate[0], scale * y + translate[1] ];
-    }
-    var scale = 500, translate = [ 480, 250 ];
-    equirectangular.invert = function(coordinates) {
-      var x = (coordinates[0] - translate[0]) / scale, y = (coordinates[1] - translate[1]) / scale;
-      return [ 360 * x, -360 * y ];
-    };
-    equirectangular.scale = function(x) {
-      if (!arguments.length) return scale;
-      scale = +x;
-      return equirectangular;
-    };
-    equirectangular.translate = function(x) {
-      if (!arguments.length) return translate;
-      translate = [ +x[0], +x[1] ];
-      return equirectangular;
-    };
-    return equirectangular;
-  };
-  d3.geo.mercator = function() {
-    function mercator(coordinates) {
-      var x = coordinates[0] / 360, y = -(Math.log(Math.tan(Math.PI / 4 + coordinates[1] * d3_geo_radians / 2)) / d3_geo_radians) / 360;
-      return [ scale * x + translate[0], scale * Math.max(-.5, Math.min(.5, y)) + translate[1] ];
-    }
-    var scale = 500, translate = [ 480, 250 ];
-    mercator.invert = function(coordinates) {
-      var x = (coordinates[0] - translate[0]) / scale, y = (coordinates[1] - translate[1]) / scale;
-      return [ 360 * x, 2 * Math.atan(Math.exp(-360 * y * d3_geo_radians)) / d3_geo_radians - 90 ];
-    };
-    mercator.scale = function(x) {
-      if (!arguments.length) return scale;
-      scale = +x;
-      return mercator;
-    };
-    mercator.translate = function(x) {
-      if (!arguments.length) return translate;
-      translate = [ +x[0], +x[1] ];
-      return mercator;
-    };
-    return mercator;
-  };
-  d3.geo.path = function() {
-    function path(d, i) {
-      if (typeof pointRadius === "function") pointCircle = d3_path_circle(pointRadius.apply(this, arguments));
-      pathType(d);
-      var result = buffer.length ? buffer.join("") : null;
-      buffer = [];
-      return result;
-    }
-    function project(coordinates) {
-      return projection(coordinates).join(",");
-    }
-    function polygonArea(coordinates) {
-      var sum = area(coordinates[0]), i = 0, n = coordinates.length;
-      while (++i < n) sum -= area(coordinates[i]);
-      return sum;
-    }
-    function polygonCentroid(coordinates) {
-      var polygon = d3.geom.polygon(coordinates[0].map(projection)), area = polygon.area(), centroid = polygon.centroid(area < 0 ? (area *= -1, 1) : -1), x = centroid[0], y = centroid[1], z = area, i = 0, n = coordinates.length;
-      while (++i < n) {
-        polygon = d3.geom.polygon(coordinates[i].map(projection));
-        area = polygon.area();
-        centroid = polygon.centroid(area < 0 ? (area *= -1, 1) : -1);
-        x -= centroid[0];
-        y -= centroid[1];
-        z -= area;
-      }
-      return [ x, y, 6 * z ];
-    }
-    function area(coordinates) {
-      return Math.abs(d3.geom.polygon(coordinates.map(projection)).area());
-    }
-    var pointRadius = 4.5, pointCircle = d3_path_circle(pointRadius), projection = d3.geo.albersUsa(), buffer = [];
-    var pathType = d3_geo_type({
-      FeatureCollection: function(o) {
-        var features = o.features, i = -1, n = features.length;
-        while (++i < n) buffer.push(pathType(features[i].geometry));
-      },
-      Feature: function(o) {
-        pathType(o.geometry);
-      },
-      Point: function(o) {
-        buffer.push("M", project(o.coordinates), pointCircle);
-      },
-      MultiPoint: function(o) {
-        var coordinates = o.coordinates, i = -1, n = coordinates.length;
-        while (++i < n) buffer.push("M", project(coordinates[i]), pointCircle);
-      },
-      LineString: function(o) {
-        var coordinates = o.coordinates, i = -1, n = coordinates.length;
-        buffer.push("M");
-        while (++i < n) buffer.push(project(coordinates[i]), "L");
-        buffer.pop();
-      },
-      MultiLineString: function(o) {
-        var coordinates = o.coordinates, i = -1, n = coordinates.length, subcoordinates, j, m;
-        while (++i < n) {
-          subcoordinates = coordinates[i];
-          j = -1;
-          m = subcoordinates.length;
-          buffer.push("M");
-          while (++j < m) buffer.push(project(subcoordinates[j]), "L");
-          buffer.pop();
-        }
-      },
-      Polygon: function(o) {
-        var coordinates = o.coordinates, i = -1, n = coordinates.length, subcoordinates, j, m;
-        while (++i < n) {
-          subcoordinates = coordinates[i];
-          j = -1;
-          if ((m = subcoordinates.length - 1) > 0) {
-            buffer.push("M");
-            while (++j < m) buffer.push(project(subcoordinates[j]), "L");
-            buffer[buffer.length - 1] = "Z";
-          }
-        }
-      },
-      MultiPolygon: function(o) {
-        var coordinates = o.coordinates, i = -1, n = coordinates.length, subcoordinates, j, m, subsubcoordinates, k, p;
-        while (++i < n) {
-          subcoordinates = coordinates[i];
-          j = -1;
-          m = subcoordinates.length;
-          while (++j < m) {
-            subsubcoordinates = subcoordinates[j];
-            k = -1;
-            if ((p = subsubcoordinates.length - 1) > 0) {
-              buffer.push("M");
-              while (++k < p) buffer.push(project(subsubcoordinates[k]), "L");
-              buffer[buffer.length - 1] = "Z";
-            }
-          }
-        }
-      },
-      GeometryCollection: function(o) {
-        var geometries = o.geometries, i = -1, n = geometries.length;
-        while (++i < n) buffer.push(pathType(geometries[i]));
-      }
-    });
-    var areaType = path.area = d3_geo_type({
-      FeatureCollection: function(o) {
-        var area = 0, features = o.features, i = -1, n = features.length;
-        while (++i < n) area += areaType(features[i]);
-        return area;
-      },
-      Feature: function(o) {
-        return areaType(o.geometry);
-      },
-      Polygon: function(o) {
-        return polygonArea(o.coordinates);
-      },
-      MultiPolygon: function(o) {
-        var sum = 0, coordinates = o.coordinates, i = -1, n = coordinates.length;
-        while (++i < n) sum += polygonArea(coordinates[i]);
-        return sum;
-      },
-      GeometryCollection: function(o) {
-        var sum = 0, geometries = o.geometries, i = -1, n = geometries.length;
-        while (++i < n) sum += areaType(geometries[i]);
-        return sum;
-      }
-    }, 0);
-    var centroidType = path.centroid = d3_geo_type({
-      Feature: function(o) {
-        return centroidType(o.geometry);
-      },
-      Polygon: function(o) {
-        var centroid = polygonCentroid(o.coordinates);
-        return [ centroid[0] / centroid[2], centroid[1] / centroid[2] ];
-      },
-      MultiPolygon: function(o) {
-        var area = 0, coordinates = o.coordinates, centroid, x = 0, y = 0, z = 0, i = -1, n = coordinates.length;
-        while (++i < n) {
-          centroid = polygonCentroid(coordinates[i]);
-          x += centroid[0];
-          y += centroid[1];
-          z += centroid[2];
-        }
-        return [ x / z, y / z ];
-      }
-    });
-    path.projection = function(x) {
-      projection = x;
-      return path;
-    };
-    path.pointRadius = function(x) {
-      if (typeof x === "function") pointRadius = x; else {
-        pointRadius = +x;
-        pointCircle = d3_path_circle(pointRadius);
-      }
-      return path;
-    };
-    return path;
-  };
-  d3.geo.bounds = function(feature) {
-    var left = Infinity, bottom = Infinity, right = -Infinity, top = -Infinity;
-    d3_geo_bounds(feature, function(x, y) {
-      if (x < left) left = x;
-      if (x > right) right = x;
-      if (y < bottom) bottom = y;
-      if (y > top) top = y;
-    });
-    return [ [ left, bottom ], [ right, top ] ];
-  };
-  var d3_geo_boundsTypes = {
-    Feature: d3_geo_boundsFeature,
-    FeatureCollection: d3_geo_boundsFeatureCollection,
-    GeometryCollection: d3_geo_boundsGeometryCollection,
-    LineString: d3_geo_boundsLineString,
-    MultiLineString: d3_geo_boundsMultiLineString,
-    MultiPoint: d3_geo_boundsLineString,
-    MultiPolygon: d3_geo_boundsMultiPolygon,
-    Point: d3_geo_boundsPoint,
-    Polygon: d3_geo_boundsPolygon
-  };
-  d3.geo.circle = function() {
-    function circle() {}
-    function visible(point) {
-      return arc.distance(point) < radians;
-    }
-    function clip(coordinates) {
-      var i = -1, n = coordinates.length, clipped = [], p0, p1, p2, d0, d1;
-      while (++i < n) {
-        d1 = arc.distance(p2 = coordinates[i]);
-        if (d1 < radians) {
-          if (p1) clipped.push(d3_geo_greatArcInterpolate(p1, p2)((d0 - radians) / (d0 - d1)));
-          clipped.push(p2);
-          p0 = p1 = null;
-        } else {
-          p1 = p2;
-          if (!p0 && clipped.length) {
-            clipped.push(d3_geo_greatArcInterpolate(clipped[clipped.length - 1], p1)((radians - d0) / (d1 - d0)));
-            p0 = p1;
-          }
-        }
-        d0 = d1;
-      }
-      p0 = coordinates[0];
-      p1 = clipped[0];
-      if (p1 && p2[0] === p0[0] && p2[1] === p0[1] && !(p2[0] === p1[0] && p2[1] === p1[1])) {
-        clipped.push(p1);
-      }
-      return resample(clipped);
-    }
-    function resample(coordinates) {
-      var i = 0, n = coordinates.length, j, m, resampled = n ? [ coordinates[0] ] : coordinates, resamples, origin = arc.source();
-      while (++i < n) {
-        resamples = arc.source(coordinates[i - 1])(coordinates[i]).coordinates;
-        for (j = 0, m = resamples.length; ++j < m; ) resampled.push(resamples[j]);
-      }
-      arc.source(origin);
-      return resampled;
-    }
-    var origin = [ 0, 0 ], degrees = 90 - .01, radians = degrees * d3_geo_radians, arc = d3.geo.greatArc().source(origin).target(d3_identity);
-    circle.clip = function(d) {
-      if (typeof origin === "function") arc.source(origin.apply(this, arguments));
-      return clipType(d) || null;
-    };
-    var clipType = d3_geo_type({
-      FeatureCollection: function(o) {
-        var features = o.features.map(clipType).filter(d3_identity);
-        return features && (o = Object.create(o), o.features = features, o);
-      },
-      Feature: function(o) {
-        var geometry = clipType(o.geometry);
-        return geometry && (o = Object.create(o), o.geometry = geometry, o);
-      },
-      Point: function(o) {
-        return visible(o.coordinates) && o;
-      },
-      MultiPoint: function(o) {
-        var coordinates = o.coordinates.filter(visible);
-        return coordinates.length && {
-          type: o.type,
-          coordinates: coordinates
-        };
-      },
-      LineString: function(o) {
-        var coordinates = clip(o.coordinates);
-        return coordinates.length && (o = Object.create(o), o.coordinates = coordinates, o);
-      },
-      MultiLineString: function(o) {
-        var coordinates = o.coordinates.map(clip).filter(function(d) {
-          return d.length;
-        });
-        return coordinates.length && (o = Object.create(o), o.coordinates = coordinates, o);
-      },
-      Polygon: function(o) {
-        var coordinates = o.coordinates.map(clip);
-        return coordinates[0].length && (o = Object.create(o), o.coordinates = coordinates, o);
-      },
-      MultiPolygon: function(o) {
-        var coordinates = o.coordinates.map(function(d) {
-          return d.map(clip);
-        }).filter(function(d) {
-          return d[0].length;
-        });
-        return coordinates.length && (o = Object.create(o), o.coordinates = coordinates, o);
-      },
-      GeometryCollection: function(o) {
-        var geometries = o.geometries.map(clipType).filter(d3_identity);
-        return geometries.length && (o = Object.create(o), o.geometries = geometries, o);
-      }
-    });
-    circle.origin = function(x) {
-      if (!arguments.length) return origin;
-      origin = x;
-      if (typeof origin !== "function") arc.source(origin);
-      return circle;
-    };
-    circle.angle = function(x) {
-      if (!arguments.length) return degrees;
-      radians = (degrees = +x) * d3_geo_radians;
-      return circle;
-    };
-    return d3.rebind(circle, arc, "precision");
-  };
-  d3.geo.greatArc = function() {
-    function greatArc() {
-      var d = greatArc.distance.apply(this, arguments), t = 0, dt = precision / d, coordinates = [ p0 ];
-      while ((t += dt) < 1) coordinates.push(interpolate(t));
-      coordinates.push(p1);
-      return {
-        type: "LineString",
-        coordinates: coordinates
-      };
-    }
-    var source = d3_geo_greatArcSource, p0, target = d3_geo_greatArcTarget, p1, precision = 6 * d3_geo_radians, interpolate = d3_geo_greatArcInterpolator();
-    greatArc.distance = function() {
-      if (typeof source === "function") interpolate.source(p0 = source.apply(this, arguments));
-      if (typeof target === "function") interpolate.target(p1 = target.apply(this, arguments));
-      return interpolate.distance();
-    };
-    greatArc.source = function(_) {
-      if (!arguments.length) return source;
-      source = _;
-      if (typeof source !== "function") interpolate.source(p0 = source);
-      return greatArc;
-    };
-    greatArc.target = function(_) {
-      if (!arguments.length) return target;
-      target = _;
-      if (typeof target !== "function") interpolate.target(p1 = target);
-      return greatArc;
-    };
-    greatArc.precision = function(_) {
-      if (!arguments.length) return precision / d3_geo_radians;
-      precision = _ * d3_geo_radians;
-      return greatArc;
-    };
-    return greatArc;
-  };
-  d3.geo.greatCircle = d3.geo.circle;
-  d3.geom = {};
-  d3.geom.contour = function(grid, start) {
-    var s = start || d3_geom_contourStart(grid), c = [], x = s[0], y = s[1], dx = 0, dy = 0, pdx = NaN, pdy = NaN, i = 0;
-    do {
-      i = 0;
-      if (grid(x - 1, y - 1)) i += 1;
-      if (grid(x, y - 1)) i += 2;
-      if (grid(x - 1, y)) i += 4;
-      if (grid(x, y)) i += 8;
-      if (i === 6) {
-        dx = pdy === -1 ? -1 : 1;
-        dy = 0;
-      } else if (i === 9) {
-        dx = 0;
-        dy = pdx === 1 ? -1 : 1;
-      } else {
-        dx = d3_geom_contourDx[i];
-        dy = d3_geom_contourDy[i];
-      }
-      if (dx != pdx && dy != pdy) {
-        c.push([ x, y ]);
-        pdx = dx;
-        pdy = dy;
-      }
-      x += dx;
-      y += dy;
-    } while (s[0] != x || s[1] != y);
-    return c;
-  };
-  var d3_geom_contourDx = [ 1, 0, 1, 1, -1, 0, -1, 1, 0, 0, 0, 0, -1, 0, -1, NaN ], d3_geom_contourDy = [ 0, -1, 0, 0, 0, -1, 0, 0, 1, -1, 1, 1, 0, -1, 0, NaN ];
-  d3.geom.hull = function(vertices) {
-    if (vertices.length < 3) return [];
-    var len = vertices.length, plen = len - 1, points = [], stack = [], i, j, h = 0, x1, y1, x2, y2, u, v, a, sp;
-    for (i = 1; i < len; ++i) {
-      if (vertices[i][1] < vertices[h][1]) {
-        h = i;
-      } else if (vertices[i][1] == vertices[h][1]) {
-        h = vertices[i][0] < vertices[h][0] ? i : h;
-      }
-    }
-    for (i = 0; i < len; ++i) {
-      if (i === h) continue;
-      y1 = vertices[i][1] - vertices[h][1];
-      x1 = vertices[i][0] - vertices[h][0];
-      points.push({
-        angle: Math.atan2(y1, x1),
-        index: i
-      });
-    }
-    points.sort(function(a, b) {
-      return a.angle - b.angle;
-    });
-    a = points[0].angle;
-    v = points[0].index;
-    u = 0;
-    for (i = 1; i < plen; ++i) {
-      j = points[i].index;
-      if (a == points[i].angle) {
-        x1 = vertices[v][0] - vertices[h][0];
-        y1 = vertices[v][1] - vertices[h][1];
-        x2 = vertices[j][0] - vertices[h][0];
-        y2 = vertices[j][1] - vertices[h][1];
-        if (x1 * x1 + y1 * y1 >= x2 * x2 + y2 * y2) {
-          points[i].index = -1;
-        } else {
-          points[u].index = -1;
-          a = points[i].angle;
-          u = i;
-          v = j;
-        }
-      } else {
-        a = points[i].angle;
-        u = i;
-        v = j;
-      }
-    }
-    stack.push(h);
-    for (i = 0, j = 0; i < 2; ++j) {
-      if (points[j].index !== -1) {
-        stack.push(points[j].index);
-        i++;
-      }
-    }
-    sp = stack.length;
-    for (; j < plen; ++j) {
-      if (points[j].index === -1) continue;
-      while (!d3_geom_hullCCW(stack[sp - 2], stack[sp - 1], points[j].index, vertices)) {
-        --sp;
-      }
-      stack[sp++] = points[j].index;
-    }
-    var poly = [];
-    for (i = 0; i < sp; ++i) {
-      poly.push(vertices[stack[i]]);
-    }
-    return poly;
-  };
-  d3.geom.polygon = function(coordinates) {
-    coordinates.area = function() {
-      var i = 0, n = coordinates.length, a = coordinates[n - 1][0] * coordinates[0][1], b = coordinates[n - 1][1] * coordinates[0][0];
-      while (++i < n) {
-        a += coordinates[i - 1][0] * coordinates[i][1];
-        b += coordinates[i - 1][1] * coordinates[i][0];
-      }
-      return (b - a) * .5;
-    };
-    coordinates.centroid = function(k) {
-      var i = -1, n = coordinates.length, x = 0, y = 0, a, b = coordinates[n - 1], c;
-      if (!arguments.length) k = -1 / (6 * coordinates.area());
-      while (++i < n) {
-        a = b;
-        b = coordinates[i];
-        c = a[0] * b[1] - b[0] * a[1];
-        x += (a[0] + b[0]) * c;
-        y += (a[1] + b[1]) * c;
-      }
-      return [ x * k, y * k ];
-    };
-    coordinates.clip = function(subject) {
-      var input, i = -1, n = coordinates.length, j, m, a = coordinates[n - 1], b, c, d;
-      while (++i < n) {
-        input = subject.slice();
-        subject.length = 0;
-        b = coordinates[i];
-        c = input[(m = input.length) - 1];
-        j = -1;
-        while (++j < m) {
-          d = input[j];
-          if (d3_geom_polygonInside(d, a, b)) {
-            if (!d3_geom_polygonInside(c, a, b)) {
-              subject.push(d3_geom_polygonIntersect(c, d, a, b));
-            }
-            subject.push(d);
-          } else if (d3_geom_polygonInside(c, a, b)) {
-            subject.push(d3_geom_polygonIntersect(c, d, a, b));
-          }
-          c = d;
-        }
-        a = b;
-      }
-      return subject;
-    };
-    return coordinates;
-  };
-  d3.geom.voronoi = function(vertices) {
-    var polygons = vertices.map(function() {
-      return [];
-    });
-    d3_voronoi_tessellate(vertices, function(e) {
-      var s1, s2, x1, x2, y1, y2;
-      if (e.a === 1 && e.b >= 0) {
-        s1 = e.ep.r;
-        s2 = e.ep.l;
-      } else {
-        s1 = e.ep.l;
-        s2 = e.ep.r;
-      }
-      if (e.a === 1) {
-        y1 = s1 ? s1.y : -1e6;
-        x1 = e.c - e.b * y1;
-        y2 = s2 ? s2.y : 1e6;
-        x2 = e.c - e.b * y2;
-      } else {
-        x1 = s1 ? s1.x : -1e6;
-        y1 = e.c - e.a * x1;
-        x2 = s2 ? s2.x : 1e6;
-        y2 = e.c - e.a * x2;
-      }
-      var v1 = [ x1, y1 ], v2 = [ x2, y2 ];
-      polygons[e.region.l.index].push(v1, v2);
-      polygons[e.region.r.index].push(v1, v2);
-    });
-    return polygons.map(function(polygon, i) {
-      var cx = vertices[i][0], cy = vertices[i][1];
-      polygon.forEach(function(v) {
-        v.angle = Math.atan2(v[0] - cx, v[1] - cy);
-      });
-      return polygon.sort(function(a, b) {
-        return a.angle - b.angle;
-      }).filter(function(d, i) {
-        return !i || d.angle - polygon[i - 1].angle > 1e-10;
-      });
-    });
-  };
-  var d3_voronoi_opposite = {
-    l: "r",
-    r: "l"
-  };
-  d3.geom.delaunay = function(vertices) {
-    var edges = vertices.map(function() {
-      return [];
-    }), triangles = [];
-    d3_voronoi_tessellate(vertices, function(e) {
-      edges[e.region.l.index].push(vertices[e.region.r.index]);
-    });
-    edges.forEach(function(edge, i) {
-      var v = vertices[i], cx = v[0], cy = v[1];
-      edge.forEach(function(v) {
-        v.angle = Math.atan2(v[0] - cx, v[1] - cy);
-      });
-      edge.sort(function(a, b) {
-        return a.angle - b.angle;
-      });
-      for (var j = 0, m = edge.length - 1; j < m; j++) {
-        triangles.push([ v, edge[j], edge[j + 1] ]);
-      }
-    });
-    return triangles;
-  };
-  d3.geom.quadtree = function(points, x1, y1, x2, y2) {
-    function insert(n, p, x1, y1, x2, y2) {
-      if (isNaN(p.x) || isNaN(p.y)) return;
-      if (n.leaf) {
-        var v = n.point;
-        if (v) {
-          if (Math.abs(v.x - p.x) + Math.abs(v.y - p.y) < .01) {
-            insertChild(n, p, x1, y1, x2, y2);
-          } else {
-            n.point = null;
-            insertChild(n, v, x1, y1, x2, y2);
-            insertChild(n, p, x1, y1, x2, y2);
-          }
-        } else {
-          n.point = p;
-        }
-      } else {
-        insertChild(n, p, x1, y1, x2, y2);
-      }
-    }
-    function insertChild(n, p, x1, y1, x2, y2) {
-      var sx = (x1 + x2) * .5, sy = (y1 + y2) * .5, right = p.x >= sx, bottom = p.y >= sy, i = (bottom << 1) + right;
-      n.leaf = false;
-      n = n.nodes[i] || (n.nodes[i] = d3_geom_quadtreeNode());
-      if (right) x1 = sx; else x2 = sx;
-      if (bottom) y1 = sy; else y2 = sy;
-      insert(n, p, x1, y1, x2, y2);
-    }
-    var p, i = -1, n = points.length;
-    if (n && isNaN(points[0].x)) points = points.map(d3_geom_quadtreePoint);
-    if (arguments.length < 5) {
-      if (arguments.length === 3) {
-        y2 = x2 = y1;
-        y1 = x1;
-      } else {
-        x1 = y1 = Infinity;
-        x2 = y2 = -Infinity;
-        while (++i < n) {
-          p = points[i];
-          if (p.x < x1) x1 = p.x;
-          if (p.y < y1) y1 = p.y;
-          if (p.x > x2) x2 = p.x;
-          if (p.y > y2) y2 = p.y;
-        }
-        var dx = x2 - x1, dy = y2 - y1;
-        if (dx > dy) y2 = y1 + dx; else x2 = x1 + dy;
-      }
-    }
-    var root = d3_geom_quadtreeNode();
-    root.add = function(p) {
-      insert(root, p, x1, y1, x2, y2);
-    };
-    root.visit = function(f) {
-      d3_geom_quadtreeVisit(f, root, x1, y1, x2, y2);
-    };
-    points.forEach(root.add);
-    return root;
-  };
-  d3.time = {};
-  var d3_time = Date, d3_time_daySymbols = [ "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday" ];
-  d3_time_utc.prototype = {
-    getDate: function() {
-      return this._.getUTCDate();
-    },
-    getDay: function() {
-      return this._.getUTCDay();
-    },
-    getFullYear: function() {
-      return this._.getUTCFullYear();
-    },
-    getHours: function() {
-      return this._.getUTCHours();
-    },
-    getMilliseconds: function() {
-      return this._.getUTCMilliseconds();
-    },
-    getMinutes: function() {
-      return this._.getUTCMinutes();
-    },
-    getMonth: function() {
-      return this._.getUTCMonth();
-    },
-    getSeconds: function() {
-      return this._.getUTCSeconds();
-    },
-    getTime: function() {
-      return this._.getTime();
-    },
-    getTimezoneOffset: function() {
-      return 0;
-    },
-    valueOf: function() {
-      return this._.valueOf();
-    },
-    setDate: function() {
-      d3_time_prototype.setUTCDate.apply(this._, arguments);
-    },
-    setDay: function() {
-      d3_time_prototype.setUTCDay.apply(this._, arguments);
-    },
-    setFullYear: function() {
-      d3_time_prototype.setUTCFullYear.apply(this._, arguments);
-    },
-    setHours: function() {
-      d3_time_prototype.setUTCHours.apply(this._, arguments);
-    },
-    setMilliseconds: function() {
-      d3_time_prototype.setUTCMilliseconds.apply(this._, arguments);
-    },
-    setMinutes: function() {
-      d3_time_prototype.setUTCMinutes.apply(this._, arguments);
-    },
-    setMonth: function() {
-      d3_time_prototype.setUTCMonth.apply(this._, arguments);
-    },
-    setSeconds: function() {
-      d3_time_prototype.setUTCSeconds.apply(this._, arguments);
-    },
-    setTime: function() {
-      d3_time_prototype.setTime.apply(this._, arguments);
-    }
-  };
-  var d3_time_prototype = Date.prototype;
-  var d3_time_formatDateTime = "%a %b %e %H:%M:%S %Y", d3_time_formatDate = "%m/%d/%y", d3_time_formatTime = "%H:%M:%S";
-  var d3_time_days = d3_time_daySymbols, d3_time_dayAbbreviations = d3_time_days.map(d3_time_formatAbbreviate), d3_time_months = [ "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December" ], d3_time_monthAbbreviations = d3_time_months.map(d3_time_formatAbbreviate);
-  d3.time.format = function(template) {
-    function format(date) {
-      var string = [], i = -1, j = 0, c, f;
-      while (++i < n) {
-        if (template.charCodeAt(i) == 37) {
-          string.push(template.substring(j, i), (f = d3_time_formats[c = template.charAt(++i)]) ? f(date) : c);
-          j = i + 1;
-        }
-      }
-      string.push(template.substring(j, i));
-      return string.join("");
-    }
-    var n = template.length;
-    format.parse = function(string) {
-      var d = {
-        y: 1900,
-        m: 0,
-        d: 1,
-        H: 0,
-        M: 0,
-        S: 0,
-        L: 0
-      }, i = d3_time_parse(d, template, string, 0);
-      if (i != string.length) return null;
-      if ("p" in d) d.H = d.H % 12 + d.p * 12;
-      var date = new d3_time;
-      date.setFullYear(d.y, d.m, d.d);
-      date.setHours(d.H, d.M, d.S, d.L);
-      return date;
-    };
-    format.toString = function() {
-      return template;
-    };
-    return format;
-  };
-  var d3_time_zfill2 = d3.format("02d"), d3_time_zfill3 = d3.format("03d"), d3_time_zfill4 = d3.format("04d"), d3_time_sfill2 = d3.format("2d");
-  var d3_time_dayRe = d3_time_formatRe(d3_time_days), d3_time_dayAbbrevRe = d3_time_formatRe(d3_time_dayAbbreviations), d3_time_monthRe = d3_time_formatRe(d3_time_months), d3_time_monthLookup = d3_time_formatLookup(d3_time_months), d3_time_monthAbbrevRe = d3_time_formatRe(d3_time_monthAbbreviations), d3_time_monthAbbrevLookup = d3_time_formatLookup(d3_time_monthAbbreviations);
-  var d3_time_formats = {
-    a: function(d) {
-      return d3_time_dayAbbreviations[d.getDay()];
-    },
-    A: function(d) {
-      return d3_time_days[d.getDay()];
-    },
-    b: function(d) {
-      return d3_time_monthAbbreviations[d.getMonth()];
-    },
-    B: function(d) {
-      return d3_time_months[d.getMonth()];
-    },
-    c: d3.time.format(d3_time_formatDateTime),
-    d: function(d) {
-      return d3_time_zfill2(d.getDate());
-    },
-    e: function(d) {
-      return d3_time_sfill2(d.getDate());
-    },
-    H: function(d) {
-      return d3_time_zfill2(d.getHours());
-    },
-    I: function(d) {
-      return d3_time_zfill2(d.getHours() % 12 || 12);
-    },
-    j: function(d) {
-      return d3_time_zfill3(1 + d3.time.dayOfYear(d));
-    },
-    L: function(d) {
-      return d3_time_zfill3(d.getMilliseconds());
-    },
-    m: function(d) {
-      return d3_time_zfill2(d.getMonth() + 1);
-    },
-    M: function(d) {
-      return d3_time_zfill2(d.getMinutes());
-    },
-    p: function(d) {
-      return d.getHours() >= 12 ? "PM" : "AM";
-    },
-    S: function(d) {
-      return d3_time_zfill2(d.getSeconds());
-    },
-    U: function(d) {
-      return d3_time_zfill2(d3.time.sundayOfYear(d));
-    },
-    w: function(d) {
-      return d.getDay();
-    },
-    W: function(d) {
-      return d3_time_zfill2(d3.time.mondayOfYear(d));
-    },
-    x: d3.time.format(d3_time_formatDate),
-    X: d3.time.format(d3_time_formatTime),
-    y: function(d) {
-      return d3_time_zfill2(d.getFullYear() % 100);
-    },
-    Y: function(d) {
-      return d3_time_zfill4(d.getFullYear() % 1e4);
-    },
-    Z: d3_time_zone,
-    "%": function(d) {
-      return "%";
-    }
-  };
-  var d3_time_parsers = {
-    a: d3_time_parseWeekdayAbbrev,
-    A: d3_time_parseWeekday,
-    b: d3_time_parseMonthAbbrev,
-    B: d3_time_parseMonth,
-    c: d3_time_parseLocaleFull,
-    d: d3_time_parseDay,
-    e: d3_time_parseDay,
-    H: d3_time_parseHour24,
-    I: d3_time_parseHour24,
-    L: d3_time_parseMilliseconds,
-    m: d3_time_parseMonthNumber,
-    M: d3_time_parseMinutes,
-    p: d3_time_parseAmPm,
-    S: d3_time_parseSeconds,
-    x: d3_time_parseLocaleDate,
-    X: d3_time_parseLocaleTime,
-    y: d3_time_parseYear,
-    Y: d3_time_parseFullYear
-  };
-  var d3_time_numberRe = /^\s*\d+/;
-  var d3_time_amPmLookup = d3.map({
-    am: 0,
-    pm: 1
-  });
-  d3.time.format.utc = function(template) {
-    function format(date) {
-      try {
-        d3_time = d3_time_utc;
-        var utc = new d3_time;
-        utc._ = date;
-        return local(utc);
-      } finally {
-        d3_time = Date;
-      }
-    }
-    var local = d3.time.format(template);
-    format.parse = function(string) {
-      try {
-        d3_time = d3_time_utc;
-        var date = local.parse(string);
-        return date && date._;
-      } finally {
-        d3_time = Date;
-      }
-    };
-    format.toString = local.toString;
-    return format;
-  };
-  var d3_time_formatIso = d3.time.format.utc("%Y-%m-%dT%H:%M:%S.%LZ");
-  d3.time.format.iso = Date.prototype.toISOString ? d3_time_formatIsoNative : d3_time_formatIso;
-  d3_time_formatIsoNative.parse = function(string) {
-    var date = new Date(string);
-    return isNaN(date) ? null : date;
-  };
-  d3_time_formatIsoNative.toString = d3_time_formatIso.toString;
-  d3.time.second = d3_time_interval(function(date) {
-    return new d3_time(Math.floor(date / 1e3) * 1e3);
-  }, function(date, offset) {
-    date.setTime(date.getTime() + Math.floor(offset) * 1e3);
-  }, function(date) {
-    return date.getSeconds();
-  });
-  d3.time.seconds = d3.time.second.range;
-  d3.time.seconds.utc = d3.time.second.utc.range;
-  d3.time.minute = d3_time_interval(function(date) {
-    return new d3_time(Math.floor(date / 6e4) * 6e4);
-  }, function(date, offset) {
-    date.setTime(date.getTime() + Math.floor(offset) * 6e4);
-  }, function(date) {
-    return date.getMinutes();
-  });
-  d3.time.minutes = d3.time.minute.range;
-  d3.time.minutes.utc = d3.time.minute.utc.range;
-  d3.time.hour = d3_time_interval(function(date) {
-    var timezone = date.getTimezoneOffset() / 60;
-    return new d3_time((Math.floor(date / 36e5 - timezone) + timezone) * 36e5);
-  }, function(date, offset) {
-    date.setTime(date.getTime() + Math.floor(offset) * 36e5);
-  }, function(date) {
-    return date.getHours();
-  });
-  d3.time.hours = d3.time.hour.range;
-  d3.time.hours.utc = d3.time.hour.utc.range;
-  d3.time.day = d3_time_interval(function(date) {
-    var day = new d3_time(1970, 0);
-    day.setFullYear(date.getFullYear(), date.getMonth(), date.getDate());
-    return day;
-  }, function(date, offset) {
-    date.setDate(date.getDate() + offset);
-  }, function(date) {
-    return date.getDate() - 1;
-  });
-  d3.time.days = d3.time.day.range;
-  d3.time.days.utc = d3.time.day.utc.range;
-  d3.time.dayOfYear = function(date) {
-    var year = d3.time.year(date);
-    return Math.floor((date - year - (date.getTimezoneOffset() - year.getTimezoneOffset()) * 6e4) / 864e5);
-  };
-  d3_time_daySymbols.forEach(function(day, i) {
-    day = day.toLowerCase();
-    i = 7 - i;
-    var interval = d3.time[day] = d3_time_interval(function(date) {
-      (date = d3.time.day(date)).setDate(date.getDate() - (date.getDay() + i) % 7);
-      return date;
-    }, function(date, offset) {
-      date.setDate(date.getDate() + Math.floor(offset) * 7);
-    }, function(date) {
-      var day = d3.time.year(date).getDay();
-      return Math.floor((d3.time.dayOfYear(date) + (day + i) % 7) / 7) - (day !== i);
-    });
-    d3.time[day + "s"] = interval.range;
-    d3.time[day + "s"].utc = interval.utc.range;
-    d3.time[day + "OfYear"] = function(date) {
-      var day = d3.time.year(date).getDay();
-      return Math.floor((d3.time.dayOfYear(date) + (day + i) % 7) / 7);
-    };
-  });
-  d3.time.week = d3.time.sunday;
-  d3.time.weeks = d3.time.sunday.range;
-  d3.time.weeks.utc = d3.time.sunday.utc.range;
-  d3.time.weekOfYear = d3.time.sundayOfYear;
-  d3.time.month = d3_time_interval(function(date) {
-    date = d3.time.day(date);
-    date.setDate(1);
-    return date;
-  }, function(date, offset) {
-    date.setMonth(date.getMonth() + offset);
-  }, function(date) {
-    return date.getMonth();
-  });
-  d3.time.months = d3.time.month.range;
-  d3.time.months.utc = d3.time.month.utc.range;
-  d3.time.year = d3_time_interval(function(date) {
-    date = d3.time.day(date);
-    date.setMonth(0, 1);
-    return date;
-  }, function(date, offset) {
-    date.setFullYear(date.getFullYear() + offset);
-  }, function(date) {
-    return date.getFullYear();
-  });
-  d3.time.years = d3.time.year.range;
-  d3.time.years.utc = d3.time.year.utc.range;
-  var d3_time_scaleSteps = [ 1e3, 5e3, 15e3, 3e4, 6e4, 3e5, 9e5, 18e5, 36e5, 108e5, 216e5, 432e5, 864e5, 1728e5, 6048e5, 2592e6, 7776e6, 31536e6 ];
-  var d3_time_scaleLocalMethods = [ [ d3.time.second, 1 ], [ d3.time.second, 5 ], [ d3.time.second, 15 ], [ d3.time.second, 30 ], [ d3.time.minute, 1 ], [ d3.time.minute, 5 ], [ d3.time.minute, 15 ], [ d3.time.minute, 30 ], [ d3.time.hour, 1 ], [ d3.time.hour, 3 ], [ d3.time.hour, 6 ], [ d3.time.hour, 12 ], [ d3.time.day, 1 ], [ d3.time.day, 2 ], [ d3.time.week, 1 ], [ d3.time.month, 1 ], [ d3.time.month, 3 ], [ d3.time.year, 1 ] ];
-  var d3_time_scaleLocalFormats = [ [ d3.time.format("%Y"), function(d) {
-    return true;
-  } ], [ d3.time.format("%B"), function(d) {
-    return d.getMonth();
-  } ], [ d3.time.format("%b %d"), function(d) {
-    return d.getDate() != 1;
-  } ], [ d3.time.format("%a %d"), function(d) {
-    return d.getDay() && d.getDate() != 1;
-  } ], [ d3.time.format("%I %p"), function(d) {
-    return d.getHours();
-  } ], [ d3.time.format("%I:%M"), function(d) {
-    return d.getMinutes();
-  } ], [ d3.time.format(":%S"), function(d) {
-    return d.getSeconds();
-  } ], [ d3.time.format(".%L"), function(d) {
-    return d.getMilliseconds();
-  } ] ];
-  var d3_time_scaleLinear = d3.scale.linear(), d3_time_scaleLocalFormat = d3_time_scaleFormat(d3_time_scaleLocalFormats);
-  d3_time_scaleLocalMethods.year = function(extent, m) {
-    return d3_time_scaleLinear.domain(extent.map(d3_time_scaleGetYear)).ticks(m).map(d3_time_scaleSetYear);
-  };
-  d3.time.scale = function() {
-    return d3_time_scale(d3.scale.linear(), d3_time_scaleLocalMethods, d3_time_scaleLocalFormat);
-  };
-  var d3_time_scaleUTCMethods = d3_time_scaleLocalMethods.map(function(m) {
-    return [ m[0].utc, m[1] ];
-  });
-  var d3_time_scaleUTCFormats = [ [ d3.time.format.utc("%Y"), function(d) {
-    return true;
-  } ], [ d3.time.format.utc("%B"), function(d) {
-    return d.getUTCMonth();
-  } ], [ d3.time.format.utc("%b %d"), function(d) {
-    return d.getUTCDate() != 1;
-  } ], [ d3.time.format.utc("%a %d"), function(d) {
-    return d.getUTCDay() && d.getUTCDate() != 1;
-  } ], [ d3.time.format.utc("%I %p"), function(d) {
-    return d.getUTCHours();
-  } ], [ d3.time.format.utc("%I:%M"), function(d) {
-    return d.getUTCMinutes();
-  } ], [ d3.time.format.utc(":%S"), function(d) {
-    return d.getUTCSeconds();
-  } ], [ d3.time.format.utc(".%L"), function(d) {
-    return d.getUTCMilliseconds();
-  } ] ];
-  var d3_time_scaleUTCFormat = d3_time_scaleFormat(d3_time_scaleUTCFormats);
-  d3_time_scaleUTCMethods.year = function(extent, m) {
-    return d3_time_scaleLinear.domain(extent.map(d3_time_scaleUTCGetYear)).ticks(m).map(d3_time_scaleUTCSetYear);
-  };
-  d3.time.scale.utc = function() {
-    return d3_time_scale(d3.scale.linear(), d3_time_scaleUTCMethods, d3_time_scaleUTCFormat);
-  };
-})();
\ No newline at end of file
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/lib/d3.v2.min.js b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/lib/d3.v2.min.js
deleted file mode 100755
index cc47f1ea..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/lib/d3.v2.min.js
+++ /dev/null
@@ -1,4 +0,0 @@
-(function(){function e(e,t){try{for(var n in t)Object.defineProperty(e.prototype,n,{value:t[n],enumerable:!1})}catch(r){e.prototype=t}}function t(e){var t=-1,n=e.length,r=[];while(++t<n)r.push(e[t]);return r}function n(e){return Array.prototype.slice.call(e)}function r(){}function i(e){return e}function s(){return this}function o(){return!0}function u(e){return typeof e=="function"?e:function(){return e}}function a(e,t,n){return function(){var r=n.apply(t,arguments);return arguments.length?e:r}}function f(e){return e!=null&&!isNaN(e)}function l(e){return e.length}function c(e){return e==null}function h(e){return e.trim().replace(/\s+/g," ")}function p(e){var t=1;while(e*t%1)t*=10;return t}function d(){}function v(e){function t(){var t=n,r=-1,i=t.length,s;while(++r<i)(s=t[r].on)&&s.apply(this,arguments);return e}var n=[],i=new r;return t.on=function(t,r){var s=i.get(t),o;return arguments.length<2?s&&s.on:(s&&(s.on=null,n=n.slice(0,o=n.indexOf(s)).concat(n.slice(o+1)),i.remove(t)),r&&n.push(i.set(t,{on:r})),e)},t}function m(e,t){return t-(e?1+Math.floor(Math.log(e+Math.pow(10,1+Math.floor(Math.log(e)/Math.LN10)-t))/Math.LN10):1)}function g(e){return e+""}function y(e){var t=e.lastIndexOf("."),n=t>=0?e.substring(t):(t=e.length,""),r=[];while(t>0)r.push(e.substring(t-=3,t+3));return r.reverse().join(",")+n}function b(e,t){var n=Math.pow(10,Math.abs(8-t)*3);return{scale:t>8?function(e){return e/n}:function(e){return e*n},symbol:e}}function w(e){return function(t){return t<=0?0:t>=1?1:e(t)}}function E(e){return function(t){return 1-e(1-t)}}function S(e){return function(t){return.5*(t<.5?e(2*t):2-e(2-2*t))}}function x(e){return e}function T(e){return function(t){return Math.pow(t,e)}}function N(e){return 1-Math.cos(e*Math.PI/2)}function C(e){return Math.pow(2,10*(e-1))}function k(e){return 1-Math.sqrt(1-e*e)}function L(e,t){var n;return arguments.length<2&&(t=.45),arguments.length<1?(e=1,n=t/4):n=t/(2*Math.PI)*Math.asin(1/e),function(r){return 1+e*Math.pow(2,10*-r)*Math.sin((r-n)*2*Math.PI/t)}}function A(e){return e||(e=1.70158),function(t){return t*t*((e+1)*t-e)}}function O(e){return e<1/2.75?7.5625*e*e:e<2/2.75?7.5625*(e-=1.5/2.75)*e+.75:e<2.5/2.75?7.5625*(e-=2.25/2.75)*e+.9375:7.5625*(e-=2.625/2.75)*e+.984375}function M(){d3.event.stopPropagation(),d3.event.preventDefault()}function _(){var e=d3.event,t;while(t=e.sourceEvent)e=t;return e}function D(e){var t=new d,n=0,r=arguments.length;while(++n<r)t[arguments[n]]=v(t);return t.of=function(n,r){return function(i){try{var s=i.sourceEvent=d3.event;i.target=e,d3.event=i,t[i.type].apply(n,r)}finally{d3.event=s}}},t}function P(e){var t=[e.a,e.b],n=[e.c,e.d],r=B(t),i=H(t,n),s=B(j(n,t,-i))||0;t[0]*n[1]<n[0]*t[1]&&(t[0]*=-1,t[1]*=-1,r*=-1,i*=-1),this.rotate=(r?Math.atan2(t[1],t[0]):Math.atan2(-n[0],n[1]))*fs,this.translate=[e.e,e.f],this.scale=[r,s],this.skew=s?Math.atan2(i,s)*fs:0}function H(e,t){return e[0]*t[0]+e[1]*t[1]}function B(e){var t=Math.sqrt(H(e,e));return t&&(e[0]/=t,e[1]/=t),t}function j(e,t,n){return e[0]+=n*t[0],e[1]+=n*t[1],e}function F(e){return e=="transform"?d3.interpolateTransform:d3.interpolate}function I(e,t){return t=t-(e=+e)?1/(t-e):0,function(n){return(n-e)*t}}function q(e,t){return t=t-(e=+e)?1/(t-e):0,function(n){return Math.max(0,Math.min(1,(n-e)*t))}}function R(e,t,n){return new U(e,t,n)}function U(e,t,n){this.r=e,this.g=t,this.b=n}function z(e){return e<16?"0"+Math.max(0,e).toString(16):Math.min(255,e).toString(16)}function W(e,t,n){var r=0,i=0,s=0,o,u,a;o=/([a-z]+)\((.*)\)/i.exec(e);if(o){u=o[2].split(",");switch(o[1]){case"hsl":return n(parseFloat(u[0]),parseFloat(u[1])/100,parseFloat(u[2])/100);case"rgb":return t(J(u[0]),J(u[1]),J(u[2]))}}return(a=hs.get(e))?t(a.r,a.g,a.b):(e!=null&&e.charAt(0)==="#"&&(e.length===4?(r=e.charAt(1),r+=r,i=e.charAt(2),i+=i,s=e.charAt(3),s+=s):e.length===7&&(r=e.substring(1,3),i=e.substring(3,5),s=e.substring(5,7)),r=parseInt(r,16),i=parseInt(i,16),s=parseInt(s,16)),t(r,i,s))}function X(e,t,n){var r=Math.min(e/=255,t/=255,n/=255),i=Math.max(e,t,n),s=i-r,o,u,a=(i+r)/2;return s?(u=a<.5?s/(i+r):s/(2-i-r),e==i?o=(t-n)/s+(t<n?6:0):t==i?o=(n-e)/s+2:o=(e-t)/s+4,o*=60):u=o=0,K(o,u,a)}function V(e,t,n){e=$(e),t=$(t),n=$(n);var r=ot((.4124564*e+.3575761*t+.1804375*n)/ds),i=ot((.2126729*e+.7151522*t+.072175*n)/vs),s=ot((.0193339*e+.119192*t+.9503041*n)/ms);return tt(116*i-16,500*(r-i),200*(i-s))}function $(e){return(e/=255)<=.04045?e/12.92:Math.pow((e+.055)/1.055,2.4)}function J(e){var t=parseFloat(e);return e.charAt(e.length-1)==="%"?Math.round(t*2.55):t}function K(e,t,n){return new Q(e,t,n)}function Q(e,t,n){this.h=e,this.s=t,this.l=n}function G(e,t,n){function r(e){return e>360?e-=360:e<0&&(e+=360),e<60?s+(o-s)*e/60:e<180?o:e<240?s+(o-s)*(240-e)/60:s}function i(e){return Math.round(r(e)*255)}var s,o;return e%=360,e<0&&(e+=360),t=t<0?0:t>1?1:t,n=n<0?0:n>1?1:n,o=n<=.5?n*(1+t):n+t-n*t,s=2*n-o,R(i(e+120),i(e),i(e-120))}function Y(e,t,n){return new Z(e,t,n)}function Z(e,t,n){this.h=e,this.c=t,this.l=n}function et(e,t,n){return tt(n,Math.cos(e*=Math.PI/180)*t,Math.sin(e)*t)}function tt(e,t,n){return new nt(e,t,n)}function nt(e,t,n){this.l=e,this.a=t,this.b=n}function rt(e,t,n){var r=(e+16)/116,i=r+t/500,s=r-n/200;return i=st(i)*ds,r=st(r)*vs,s=st(s)*ms,R(ut(3.2404542*i-1.5371385*r-.4985314*s),ut(-0.969266*i+1.8760108*r+.041556*s),ut(.0556434*i-.2040259*r+1.0572252*s))}function it(e,t,n){return Y(Math.atan2(n,t)/Math.PI*180,Math.sqrt(t*t+n*n),e)}function st(e){return e>.206893034?e*e*e:(e-4/29)/7.787037}function ot(e){return e>.008856?Math.pow(e,1/3):7.787037*e+4/29}function ut(e){return Math.round(255*(e<=.00304?12.92*e:1.055*Math.pow(e,1/2.4)-.055))}function at(e){return Ki(e,Ss),e}function ft(e){return function(){return gs(e,this)}}function lt(e){return function(){return ys(e,this)}}function ct(e,t){function n(){this.removeAttribute(e)}function r(){this.removeAttributeNS(e.space,e.local)}function i(){this.setAttribute(e,t)}function s(){this.setAttributeNS(e.space,e.local,t)}function o(){var n=t.apply(this,arguments);n==null?this.removeAttribute(e):this.setAttribute(e,n)}function u(){var n=t.apply(this,arguments);n==null?this.removeAttributeNS(e.space,e.local):this.setAttributeNS(e.space,e.local,n)}return e=d3.ns.qualify(e),t==null?e.local?r:n:typeof t=="function"?e.local?u:o:e.local?s:i}function ht(e){return new RegExp("(?:^|\\s+)"+d3.requote(e)+"(?:\\s+|$)","g")}function pt(e,t){function n(){var n=-1;while(++n<i)e[n](this,t)}function r(){var n=-1,r=t.apply(this,arguments);while(++n<i)e[n](this,r)}e=e.trim().split(/\s+/).map(dt);var i=e.length;return typeof t=="function"?r:n}function dt(e){var t=ht(e);return function(n,r){if(i=n.classList)return r?i.add(e):i.remove(e);var i=n.className,s=i.baseVal!=null,o=s?i.baseVal:i;r?(t.lastIndex=0,t.test(o)||(o=h(o+" "+e),s?i.baseVal=o:n.className=o)):o&&(o=h(o.replace(t," ")),s?i.baseVal=o:n.className=o)}}function vt(e,t,n){function r(){this.style.removeProperty(e)}function i(){this.style.setProperty(e,t,n)}function s(){var r=t.apply(this,arguments);r==null?this.style.removeProperty(e):this.style.setProperty(e,r,n)}return t==null?r:typeof t=="function"?s:i}function mt(e,t){function n(){delete this[e]}function r(){this[e]=t}function i(){var n=t.apply(this,arguments);n==null?delete this[e]:this[e]=n}return t==null?n:typeof t=="function"?i:r}function gt(e){return{__data__:e}}function yt(e){return function(){return Es(this,e)}}function bt(e){return arguments.length||(e=d3.ascending),function(t,n){return e(t&&t.__data__,n&&n.__data__)}}function wt(e,t,n){function r(){var t=this[s];t&&(this.removeEventListener(e,t,t.$),delete this[s])}function i(){function i(e){var n=d3.event;d3.event=e,u[0]=o.__data__;try{t.apply(o,u)}finally{d3.event=n}}var o=this,u=arguments;r.call(this),this.addEventListener(e,this[s]=i,i.$=n),i._=t}var s="__on"+e,o=e.indexOf(".");return o>0&&(e=e.substring(0,o)),t?i:r}function Et(e,t){for(var n=0,r=e.length;n<r;n++)for(var i=e[n],s=0,o=i.length,u;s<o;s++)(u=i[s])&&t(u,s,n);return e}function St(e){return Ki(e,Ts),e}function xt(e,t,n){Ki(e,Ns);var i=new r,s=d3.dispatch("start","end"),o=Ds;return e.id=t,e.time=n,e.tween=function(t,n){return arguments.length<2?i.get(t):(n==null?i.remove(t):i.set(t,n),e)},e.ease=function(t){return arguments.length?(o=typeof t=="function"?t:d3.ease.apply(d3,arguments),e):o},e.each=function(t,n){return arguments.length<2?Tt.call(e,t):(s.on(t,n),e)},d3.timer(function(r){return Et(e,function(e,u,a){function f(r){return v.active>t?c():(v.active=t,i.forEach(function(t,n){(n=n.call(e,m,u))&&h.push(n)}),s.start.call(e,m,u),l(r)||d3.timer(l,0,n),1)}function l(n){if(v.active!==t)return c();var r=(n-p)/d,i=o(r),a=h.length;while(a>0)h[--a].call(e,i);if(r>=1)return c(),ks=t,s.end.call(e,m,u),ks=0,1}function c(){return--v.count||delete e.__transition__,1}var h=[],p=e.delay,d=e.duration,v=(e=e.node).__transition__||(e.__transition__={active:0,count:0}),m=e.__data__;++v.count,p<=r?f(r):d3.timer(f,p,n)})},0,n),e}function Tt(e){var t=ks,n=Ds,r=Ms,i=_s;return ks=this.id,Ds=this.ease(),Et(this,function(t,n,r){Ms=t.delay,_s=t.duration,e.call(t=t.node,t.__data__,n,r)}),ks=t,Ds=n,Ms=r,_s=i,this}function Nt(e,t,n){return n!=""&&Ps}function Ct(e,t){return d3.tween(e,F(t))}function kt(){var e,t=Date.now(),n=Hs;while(n)e=t-n.then,e>=n.delay&&(n.flush=n.callback(e)),n=n.next;var r=Lt()-t;r>24?(isFinite(r)&&(clearTimeout(js),js=setTimeout(kt,r)),Bs=0):(Bs=1,Fs(kt))}function Lt(){var e=null,t=Hs,n=Infinity;while(t)t.flush?t=e?e.next=t.next:Hs=t.next:(n=Math.min(n,t.then+t.delay),t=(e=t).next);return n}function At(e,t){var n=e.ownerSVGElement||e;if(n.createSVGPoint){var r=n.createSVGPoint();if(Is<0&&(window.scrollX||window.scrollY)){n=d3.select(document.body).append("svg").style("position","absolute").style("top",0).style("left",0);var i=n[0][0].getScreenCTM();Is=!i.f&&!i.e,n.remove()}return Is?(r.x=t.pageX,r.y=t.pageY):(r.x=t.clientX,r.y=t.clientY),r=r.matrixTransform(e.getScreenCTM().inverse()),[r.x,r.y]}var s=e.getBoundingClientRect();return[t.clientX-s.left-e.clientLeft,t.clientY-s.top-e.clientTop]}function Ot(){}function Mt(e){var t=e[0],n=e[e.length-1];return t<n?[t,n]:[n,t]}function _t(e){return e.rangeExtent?e.rangeExtent():Mt(e.range())}function Dt(e,t){var n=0,r=e.length-1,i=e[n],s=e[r],o;s<i&&(o=n,n=r,r=o,o=i,i=s,s=o);if(t=t(s-i))e[n]=t.floor(i),e[r]=t.ceil(s);return e}function Pt(){return Math}function Ht(e,t,n,r){function i(){var i=Math.min(e.length,t.length)>2?Ut:Rt,a=r?q:I;return o=i(e,t,a,n),u=i(t,e,a,d3.interpolate),s}function s(e){return o(e)}var o,u;return s.invert=function(e){return u(e)},s.domain=function(t){return arguments.length?(e=t.map(Number),i()):e},s.range=function(e){return arguments.length?(t=e,i()):t},s.rangeRound=function(e){return s.range(e).interpolate(d3.interpolateRound)},s.clamp=function(e){return arguments.length?(r=e,i()):r},s.interpolate=function(e){return arguments.length?(n=e,i()):n},s.ticks=function(t){return It(e,t)},s.tickFormat=function(t){return qt(e,t)},s.nice=function(){return Dt(e,jt),i()},s.copy=function(){return Ht(e,t,n,r)},i()}function Bt(e,t){return d3.rebind(e,t,"range","rangeRound","interpolate","clamp")}function jt(e){return e=Math.pow(10,Math.round(Math.log(e)/Math.LN10)-1),e&&{floor:function(t){return Math.floor(t/e)*e},ceil:function(t){return Math.ceil(t/e)*e}}}function Ft(e,t){var n=Mt(e),r=n[1]-n[0],i=Math.pow(10,Math.floor(Math.log(r/t)/Math.LN10)),s=t/r*i;return s<=.15?i*=10:s<=.35?i*=5:s<=.75&&(i*=2),n[0]=Math.ceil(n[0]/i)*i,n[1]=Math.floor(n[1]/i)*i+i*.5,n[2]=i,n}function It(e,t){return d3.range.apply(d3,Ft(e,t))}function qt(e,t){return d3.format(",."+Math.max(0,-Math.floor(Math.log(Ft(e,t)[2])/Math.LN10+.01))+"f")}function Rt(e,t,n,r){var i=n(e[0],e[1]),s=r(t[0],t[1]);return function(e){return s(i(e))}}function Ut(e,t,n,r){var i=[],s=[],o=0,u=Math.min(e.length,t.length)-1;e[u]<e[0]&&(e=e.slice().reverse(),t=t.slice().reverse());while(++o<=u)i.push(n(e[o-1],e[o])),s.push(r(t[o-1],t[o]));return function(t){var n=d3.bisect(e,t,1,u)-1;return s[n](i[n](t))}}function zt(e,t){function n(n){return e(t(n))}var r=t.pow;return n.invert=function(t){return r(e.invert(t))},n.domain=function(i){return arguments.length?(t=i[0]<0?Xt:Wt,r=t.pow,e.domain(i.map(t)),n):e.domain().map(r)},n.nice=function(){return e.domain(Dt(e.domain(),Pt)),n},n.ticks=function(){var n=Mt(e.domain()),i=[];if(n.every(isFinite)){var s=Math.floor(n[0]),o=Math.ceil(n[1]),u=r(n[0]),a=r(n[1]);if(t===Xt){i.push(r(s));for(;s++<o;)for(var f=9;f>0;f--)i.push(r(s)*f)}else{for(;s<o;s++)for(var f=1;f<10;f++)i.push(r(s)*f);i.push(r(s))}for(s=0;i[s]<u;s++);for(o=i.length;i[o-1]>a;o--);i=i.slice(s,o)}return i},n.tickFormat=function(e,i){arguments.length<2&&(i=qs);if(arguments.length<1)return i;var s=Math.max(.1,e/n.ticks().length),o=t===Xt?(u=-1e-12,Math.floor):(u=1e-12,Math.ceil),u;return function(e){return e/r(o(t(e)+u))<=s?i(e):""}},n.copy=function(){return zt(e.copy(),t)},Bt(n,e)}function Wt(e){return Math.log(e<0?0:e)/Math.LN10}function Xt(e){return-Math.log(e>0?0:-e)/Math.LN10}function Vt(e,t){function n(t){return e(r(t))}var r=$t(t),i=$t(1/t);return n.invert=function(t){return i(e.invert(t))},n.domain=function(t){return arguments.length?(e.domain(t.map(r)),n):e.domain().map(i)},n.ticks=function(e){return It(n.domain(),e)},n.tickFormat=function(e){return qt(n.domain(),e)},n.nice=function(){return n.domain(Dt(n.domain(),jt))},n.exponent=function(e){if(!arguments.length)return t;var s=n.domain();return r=$t(t=e),i=$t(1/t),n.domain(s)},n.copy=function(){return Vt(e.copy(),t)},Bt(n,e)}function $t(e){return function(t){return t<0?-Math.pow(-t,e):Math.pow(t,e)}}function Jt(e,t){function n(t){return o[((s.get(t)||s.set(t,e.push(t)))-1)%o.length]}function i(t,n){return d3.range(e.length).map(function(e){return t+n*e})}var s,o,u;return n.domain=function(i){if(!arguments.length)return e;e=[],s=new r;var o=-1,u=i.length,a;while(++o<u)s.has(a=i[o])||s.set(a,e.push(a));return n[t.t].apply(n,t.a)},n.range=function(e){return arguments.length?(o=e,u=0,t={t:"range",a:arguments},n):o},n.rangePoints=function(r,s){arguments.length<2&&(s=0);var a=r[0],f=r[1],l=(f-a)/(Math.max(1,e.length-1)+s);return o=i(e.length<2?(a+f)/2:a+l*s/2,l),u=0,t={t:"rangePoints",a:arguments},n},n.rangeBands=function(r,s,a){arguments.length<2&&(s=0),arguments.length<3&&(a=s);var f=r[1]<r[0],l=r[f-0],c=r[1-f],h=(c-l)/(e.length-s+2*a);return o=i(l+h*a,h),f&&o.reverse(),u=h*(1-s),t={t:"rangeBands",a:arguments},n},n.rangeRoundBands=function(r,s,a){arguments.length<2&&(s=0),arguments.length<3&&(a=s);var f=r[1]<r[0],l=r[f-0],c=r[1-f],h=Math.floor((c-l)/(e.length-s+2*a)),p=c-l-(e.length-s)*h;return o=i(l+Math.round(p/2),h),f&&o.reverse(),u=Math.round(h*(1-s)),t={t:"rangeRoundBands",a:arguments},n},n.rangeBand=function(){return u},n.rangeExtent=function(){return Mt(t.a[0])},n.copy=function(){return Jt(e,t)},n.domain(e)}function Kt(e,t){function n(){var n=0,s=e.length,o=t.length;i=[];while(++n<o)i[n-1]=d3.quantile(e,n/o);return r}function r(e){return isNaN(e=+e)?NaN:t[d3.bisect(i,e)]}var i;return r.domain=function(t){return arguments.length?(e=t.filter(function(e){return!isNaN(e)}).sort(d3.ascending),n()):e},r.range=function(e){return arguments.length?(t=e,n()):t},r.quantiles=function(){return i},r.copy=function(){return Kt(e,t)},n()}function Qt(e,t,n){function r(t){return n[Math.max(0,Math.min(o,Math.floor(s*(t-e))))]}function i(){return s=n.length/(t-e),o=n.length-1,r}var s,o;return r.domain=function(n){return arguments.length?(e=+n[0],t=+n[n.length-1],i()):[e,t]},r.range=function(e){return arguments.length?(n=e,i()):n},r.copy=function(){return Qt(e,t,n)},i()}function Gt(e,t){function n(n){return t[d3.bisect(e,n)]}return n.domain=function(t){return arguments.length?(e=t,n):e},n.range=function(e){return arguments.length?(t=e,n):t},n.copy=function(){return Gt(e,t)},n}function Yt(e){function t(e){return+e}return t.invert=t,t.domain=t.range=function(n){return arguments.length?(e=n.map(t),t):e},t.ticks=function(t){return It(e,t)},t.tickFormat=function(t){return qt(e,t)},t.copy=function(){return Yt(e)},t}function Zt(e){return e.innerRadius}function en(e){return e.outerRadius}function tn(e){return e.startAngle}function nn(e){return e.endAngle}function rn(e){function t(t){function o(){a.push("M",s(e(l),f))}var a=[],l=[],c=-1,h=t.length,p,d=u(n),v=u(r);while(++c<h)i.call(this,p=t[c],c)?l.push([+d.call(this,p,c),+v.call(this,p,c)]):l.length&&(o(),l=[]);return l.length&&o(),a.length?a.join(""):null}var n=sn,r=on,i=o,s=un,a=s.key,f=.7;return t.x=function(e){return arguments.length?(n=e,t):n},t.y=function(e){return arguments.length?(r=e,t):r},t.defined=function(e){return arguments.length?(i=e,t):i},t.interpolate=function(e){return arguments.length?(typeof e=="function"?a=s=e:a=(s=$s.get(e)||un).key,t):a},t.tension=function(e){return arguments.length?(f=e,t):f},t}function sn(e){return e[0]}function on(e){return e[1]}function un(e){return e.join("L")}function an(e){return un(e)+"Z"}function fn(e){var t=0,n=e.length,r=e[0],i=[r[0],",",r[1]];while(++t<n)i.push("V",(r=e[t])[1],"H",r[0]);return i.join("")}function ln(e){var t=0,n=e.length,r=e[0],i=[r[0],",",r[1]];while(++t<n)i.push("H",(r=e[t])[0],"V",r[1]);return i.join("")}function cn(e,t){return e.length<4?un(e):e[1]+dn(e.slice(1,e.length-1),vn(e,t))}function hn(e,t){return e.length<3?un(e):e[0]+dn((e.push(e[0]),e),vn([e[e.length-2]].concat(e,[e[1]]),t))}function pn(e,t,n){return e.length<3?un(e):e[0]+dn(e,vn(e,t))}function dn(e,t){if(t.length<1||e.length!=t.length&&e.length!=t.length+2)return un(e);var n=e.length!=t.length,r="",i=e[0],s=e[1],o=t[0],u=o,a=1;n&&(r+="Q"+(s[0]-o[0]*2/3)+","+(s[1]-o[1]*2/3)+","+s[0]+","+s[1],i=e[1],a=2);if(t.length>1){u=t[1],s=e[a],a++,r+="C"+(i[0]+o[0])+","+(i[1]+o[1])+","+(s[0]-u[0])+","+(s[1]-u[1])+","+s[0]+","+s[1];for(var f=2;f<t.length;f++,a++)s=e[a],u=t[f],r+="S"+(s[0]-u[0])+","+(s[1]-u[1])+","+s[0]+","+s[1]}if(n){var l=e[a];r+="Q"+(s[0]+u[0]*2/3)+","+(s[1]+u[1]*2/3)+","+l[0]+","+l[1]}return r}function vn(e,t){var n=[],r=(1-t)/2,i,s=e[0],o=e[1],u=1,a=e.length;while(++u<a)i=s,s=o,o=e[u],n.push([r*(o[0]-i[0]),r*(o[1]-i[1])]);return n}function mn(e){if(e.length<3)return un(e);var t=1,n=e.length,r=e[0],i=r[0],s=r[1],o=[i,i,i,(r=e[1])[0]],u=[s,s,s,r[1]],a=[i,",",s];En(a,o,u);while(++t<n)r=e[t],o.shift(),o.push(r[0]),u.shift(),u.push(r[1]),En(a,o,u);t=-1;while(++t<2)o.shift(),o.push(r[0]),u.shift(),u.push(r[1]),En(a,o,u);return a.join("")}function gn(e){if(e.length<4)return un(e);var t=[],n=-1,r=e.length,i,s=[0],o=[0];while(++n<3)i=e[n],s.push(i[0]),o.push(i[1]);t.push(wn(Qs,s)+","+wn(Qs,o)),--n;while(++n<r)i=e[n],s.shift(),s.push(i[0]),o.shift(),o.push(i[1]),En(t,s,o);return t.join("")}function yn(e){var t,n=-1,r=e.length,i=r+4,s,o=[],u=[];while(++n<4)s=e[n%r],o.push(s[0]),u.push(s[1]);t=[wn(Qs,o),",",wn(Qs,u)],--n;while(++n<i)s=e[n%r],o.shift(),o.push(s[0]),u.shift(),u.push(s[1]),En(t,o,u);return t.join("")}function bn(e,t){var n=e.length-1;if(n){var r=e[0][0],i=e[0][1],s=e[n][0]-r,o=e[n][1]-i,u=-1,a,f;while(++u<=n)a=e[u],f=u/n,a[0]=t*a[0]+(1-t)*(r+f*s),a[1]=t*a[1]+(1-t)*(i+f*o)}return mn(e)}function wn(e,t){return e[0]*t[0]+e[1]*t[1]+e[2]*t[2]+e[3]*t[3]}function En(e,t,n){e.push("C",wn(Js,t),",",wn(Js,n),",",wn(Ks,t),",",wn(Ks,n),",",wn(Qs,t),",",wn(Qs,n))}function Sn(e,t){return(t[1]-e[1])/(t[0]-e[0])}function xn(e){var t=0,n=e.length-1,r=[],i=e[0],s=e[1],o=r[0]=Sn(i,s);while(++t<n)r[t]=(o+(o=Sn(i=s,s=e[t+1])))/2;return r[t]=o,r}function Tn(e){var t=[],n,r,i,s,o=xn(e),u=-1,a=e.length-1;while(++u<a)n=Sn(e[u],e[u+1]),Math.abs(n)<1e-6?o[u]=o[u+1]=0:(r=o[u]/n,i=o[u+1]/n,s=r*r+i*i,s>9&&(s=n*3/Math.sqrt(s),o[u]=s*r,o[u+1]=s*i));u=-1;while(++u<=a)s=(e[Math.min(a,u+1)][0]-e[Math.max(0,u-1)][0])/(6*(1+o[u]*o[u])),t.push([s||0,o[u]*s||0]);return t}function Nn(e){return e.length<3?un(e):e[0]+dn(e,Tn(e))}function Cn(e){var t,n=-1,r=e.length,i,s;while(++n<r)t=e[n],i=t[0],s=t[1]+Xs,t[0]=i*Math.cos(s),t[1]=i*Math.sin(s);return e}function kn(e){function t(t){function o(){l.push("M",f(e(v),p),h,c(e(d.reverse()),p),"Z")}var l=[],d=[],v=[],m=-1,g=t.length,y,b=u(n),w=u(i),E=n===r?function(){return x}:u(r),S=i===s?function(){return T}:u(s),x,T;while(++m<g)a.call(this,y=t[m],m)?(d.push([x=+b.call(this,y,m),T=+w.call(this,y,m)]),v.push([+E.call(this,y,m),+S.call(this,y,m)])):d.length&&(o(),d=[],v=[]);return d.length&&o(),l.length?l.join(""):null}var n=sn,r=sn,i=0,s=on,a=o,f=un,l=f.key,c=f,h="L",p=.7;return t.x=function(e){return arguments.length?(n=r=e,t):r},t.x0=function(e){return arguments.length?(n=e,t):n},t.x1=function(e){return arguments.length?(r=e,t):r},t.y=function(e){return arguments.length?(i=s=e,t):s},t.y0=function(e){return arguments.length?(i=e,t):i},t.y1=function(e){return arguments.length?(s=e,t):s},t.defined=function(e){return arguments.length?(a=e,t):a},t.interpolate=function(e){return arguments.length?(typeof e=="function"?l=f=e:l=(f=$s.get(e)||un).key,c=f.reverse||f,h=f.closed?"M":"L",t):l},t.tension=function(e){return arguments.length?(p=e,t):p},t}function Ln(e){return e.source}function An(e){return e.target}function On(e){return e.radius}function Mn(e){return e.startAngle}function _n(e){return e.endAngle}function Dn(e){return[e.x,e.y]}function Pn(e){return function(){var t=e.apply(this,arguments),n=t[0],r=t[1]+Xs;return[n*Math.cos(r),n*Math.sin(r)]}}function Hn(){return 64}function Bn(){return"circle"}function jn(e){var t=Math.sqrt(e/Math.PI);return"M0,"+t+"A"+t+","+t+" 0 1,1 0,"+ -t+"A"+t+","+t+" 0 1,1 0,"+t+"Z"}function Fn(e,t){e.attr("transform",function(e){return"translate("+t(e)+",0)"})}function In(e,t){e.attr("transform",function(e){return"translate(0,"+t(e)+")"})}function qn(e,t,n){i=[];if(n&&t.length>1){var r=Mt(e.domain()),i,s=-1,o=t.length,u=(t[1]-t[0])/++n,a,f;while(++s<o)for(a=n;--a>0;)(f=+t[s]-a*u)>=r[0]&&i.push(f);for(--s,a=0;++a<n&&(f=+t[s]+a*u)<r[1];)i.push(f)}return i}function Rn(){no||(no=d3.select("body").append("div").style("visibility","hidden").style("top",0).style("height",0).style("width",0).style("overflow-y","scroll").append("div").style("height","2000px").node().parentNode);var e=d3.event,t;try{no.scrollTop=1e3,no.dispatchEvent(e),t=1e3-no.scrollTop}catch(n){t=e.wheelDelta||-e.detail*5}return t}function Un(e){var t=e.source,n=e.target,r=Wn(t,n),i=[t];while(t!==r)t=t.parent,i.push(t);var s=i.length;while(n!==r)i.splice(s,0,n),n=n.parent;return i}function zn(e){var t=[],n=e.parent;while(n!=null)t.push(e),e=n,n=n.parent;return t.push(e),t}function Wn(e,t){if(e===t)return e;var n=zn(e),r=zn(t),i=n.pop(),s=r.pop(),o=null;while(i===s)o=i,i=n.pop(),s=r.pop();return o}function Xn(e){e.fixed|=2}function Vn(e){e.fixed&=1}function $n(e){e.fixed|=4}function Jn(e){e.fixed&=3}function Kn(e,t,n){var r=0,i=0;e.charge=0;if(!e.leaf){var s=e.nodes,o=s.length,u=-1,a;while(++u<o){a=s[u];if(a==null)continue;Kn(a,t,n),e.charge+=a.charge,r+=a.charge*a.cx,i+=a.charge*a.cy}}if(e.point){e.leaf||(e.point.x+=Math.random()-.5,e.point.y+=Math.random()-.5);var f=t*n[e.point.index];e.charge+=e.pointCharge=f,r+=f*e.point.x,i+=f*e.point.y}e.cx=r/e.charge,e.cy=i/e.charge}function Qn(e){return 20}function Gn(e){return 1}function Yn(e){return e.x}function Zn(e){return e.y}function er(e,t,n){e.y0=t,e.y=n}function tr(e){return d3.range(e.length)}function nr(e){var t=-1,n=e[0].length,r=[];while(++t<n)r[t]=0;return r}function rr(e){var t=1,n=0,r=e[0][1],i,s=e.length;for(;t<s;++t)(i=e[t][1])>r&&(n=t,r=i);return n}function ir(e){return e.reduce(sr,0)}function sr(e,t){return e+t[1]}function or(e,t){return ur(e,Math.ceil(Math.log(t.length)/Math.LN2+1))}function ur(e,t){var n=-1,r=+e[0],i=(e[1]-r)/t,s=[];while(++n<=t)s[n]=i*n+r;return s}function ar(e){return[d3.min(e),d3.max(e)]}function fr(e,t){return d3.rebind(e,t,"sort","children","value"),e.links=pr,e.nodes=function(t){return uo=!0,(e.nodes=e)(t)},e}function lr(e){return e.children}function cr(e){return e.value}function hr(e,t){return t.value-e.value}function pr(e){return d3.merge(e.map(function(e){return(e.children||[]).map(function(t){return{source:e,target:t}})}))}function dr(e,t){return e.value-t.value}function vr(e,t){var n=e._pack_next;e._pack_next=t,t._pack_prev=e,t._pack_next=n,n._pack_prev=t}function mr(e,t){e._pack_next=t,t._pack_prev=e}function gr(e,t){var n=t.x-e.x,r=t.y-e.y,i=e.r+t.r;return i*i-n*n-r*r>.001}function yr(e){function t(e){r=Math.min(e.x-e.r,r),i=Math.max(e.x+e.r,i),s=Math.min(e.y-e.r,s),o=Math.max(e.y+e.r,o)}if(!(n=e.children)||!(p=n.length))return;var n,r=Infinity,i=-Infinity,s=Infinity,o=-Infinity,u,a,f,l,c,h,p;n.forEach(br),u=n[0],u.x=-u.r,u.y=0,t(u);if(p>1){a=n[1],a.x=a.r,a.y=0,t(a);if(p>2){f=n[2],Sr(u,a,f),t(f),vr(u,f),u._pack_prev=f,vr(f,a),a=u._pack_next;for(l=3;l<p;l++){Sr(u,a,f=n[l]);var d=0,v=1,m=1;for(c=a._pack_next;c!==a;c=c._pack_next,v++)if(gr(c,f)){d=1;break}if(d==1)for(h=u._pack_prev;h!==c._pack_prev;h=h._pack_prev,m++)if(gr(h,f))break;d?(v<m||v==m&&a.r<u.r?mr(u,a=c):mr(u=h,a),l--):(vr(u,f),a=f,t(f))}}}var g=(r+i)/2,y=(s+o)/2,b=0;for(l=0;l<p;l++)f=n[l],f.x-=g,f.y-=y,b=Math.max(b,f.r+Math.sqrt(f.x*f.x+f.y*f.y));e.r=b,n.forEach(wr)}function br(e){e._pack_next=e._pack_prev=e}function wr(e){delete e._pack_next,delete e._pack_prev}function Er(e,t,n,r){var i=e.children;e.x=t+=r*e.x,e.y=n+=r*e.y,e.r*=r;if(i){var s=-1,o=i.length;while(++s<o)Er(i[s],t,n,r)}}function Sr(e,t,n){var r=e.r+n.r,i=t.x-e.x,s=t.y-e.y;if(r&&(i||s)){var o=t.r+n.r,u=i*i+s*s;o*=o,r*=r;var a=.5+(r-o)/(2*u),f=Math.sqrt(Math.max(0,2*o*(r+u)-(r-=u)*r-o*o))/(2*u);n.x=e.x+a*i+f*s,n.y=e.y+a*s-f*i}else n.x=e.x+r,n.y=e.y}function xr(e){return 1+d3.max(e,function(e){return e.y})}function Tr(e){return e.reduce(function(e,t){return e+t.x},0)/e.length}function Nr(e){var t=e.children;return t&&t.length?Nr(t[0]):e}function Cr(e){var t=e.children,n;return t&&(n=t.length)?Cr(t[n-1]):e}function kr(e,t){return e.parent==t.parent?1:2}function Lr(e){var t=e.children;return t&&t.length?t[0]:e._tree.thread}function Ar(e){var t=e.children,n;return t&&(n=t.length)?t[n-1]:e._tree.thread}function Or(e,t){var n=e.children;if(n&&(i=n.length)){var r,i,s=-1;while(++s<i)t(r=Or(n[s],t),e)>0&&(e=r)}return e}function Mr(e,t){return e.x-t.x}function _r(e,t){return t.x-e.x}function Dr(e,t){return e.depth-t.depth}function Pr(e,t){function n(e,r){var i=e.children;if(i&&(a=i.length)){var s,o=null,u=-1,a;while(++u<a)s=i[u],n(s,o),o=s}t(e,r)}n(e,null)}function Hr(e){var t=0,n=0,r=e.children,i=r.length,s;while(--i>=0)s=r[i]._tree,s.prelim+=t,s.mod+=t,t+=s.shift+(n+=s.change)}function Br(e,t,n){e=e._tree,t=t._tree;var r=n/(t.number-e.number);e.change+=r,t.change-=r,t.shift+=n,t.prelim+=n,t.mod+=n}function jr(e,t,n){return e._tree.ancestor.parent==t.parent?e._tree.ancestor:n}function Fr(e){return{x:e.x,y:e.y,dx:e.dx,dy:e.dy}}function Ir(e,t){var n=e.x+t[3],r=e.y+t[0],i=e.dx-t[1]-t[3],s=e.dy-t[0]-t[2];return i<0&&(n+=i/2,i=0),s<0&&(r+=s/2,s=0),{x:n,y:r,dx:i,dy:s}}function qr(e,t){function n(e,r){d3.text(e,t,function(e){r(e&&n.parse(e))})}function r(t){return t.map(i).join(e)}function i(e){return o.test(e)?'"'+e.replace(/\"/g,'""')+'"':e}var s=new RegExp("\r\n|["+e+"\r\n]","g"),o=new RegExp('["'+e+"\n]"),u=e.charCodeAt(0);return n.parse=function(e){var t;return n.parseRows(e,function(e,n){if(n){var r={},i=-1,s=t.length;while(++i<s)r[t[i]]=e[i];return r}return t=e,null})},n.parseRows=function(e,t){function n(){if(s.lastIndex>=e.length)return i;if(l)return l=!1,r;var t=s.lastIndex;if(e.charCodeAt(t)===34){var n=t;while(n++<e.length)if(e.charCodeAt(n)===34){if(e.charCodeAt(n+1)!==34)break;n++}s.lastIndex=n+2;var o=e.charCodeAt(n+1);return o===13?(l=!0,e.charCodeAt(n+2)===10&&s.lastIndex++):o===10&&(l=!0),e.substring(t+1,n).replace(/""/g,'"')}var a=s.exec(e);return a?(l=a[0].charCodeAt(0)!==u,e.substring(t,a.index)):(s.lastIndex=e.length,e.substring(t))}var r={},i={},o=[],a=0,f,l;s.lastIndex=0;while((f=n())!==i){var c=[];while(f!==r&&f!==i)c.push(f),f=n();if(t&&!(c=t(c,a++)))continue;o.push(c)}return o},n.format=function(e){return e.map(r).join("\n")},n}function Rr(e,t){return function(n){return n&&e.hasOwnProperty(n.type)?e[n.type](n):t}}function Ur(e){return"m0,"+e+"a"+e+","+e+" 0 1,1 0,"+ -2*e+"a"+e+","+e+" 0 1,1 0,"+2*e+"z"}function zr(e,t){fo.hasOwnProperty(e.type)&&fo[e.type](e,t)}function Wr(e,t){zr(e.geometry,t)}function Xr(e,t){for(var n=e.features,r=0,i=n.length;r<i;r++)zr(n[r].geometry,t)}function Vr(e,t){for(var n=e.geometries,r=0,i=n.length;r<i;r++)zr(n[r],t)}function $r(e,t){for(var n=e.coordinates,r=0,i=n.length;r<i;r++)t.apply(null,n[r])}function Jr(e,t){for(var n=e.coordinates,r=0,i=n.length;r<i;r++)for(var s=n[r],o=0,u=s.length;o<u;o++)t.apply(null,s[o])}function Kr(e,t){for(var n=e.coordinates,r=0,i=n.length;r<i;r++)for(var s=n[r][0],o=0,u=s.length;o<u;o++)t.apply(null,s[o])}function Qr(e,t){t.apply(null,e.coordinates)}function Gr(e,t){for(var n=e.coordinates[0],r=0,i=n.length;r<i;r++)t.apply(null,n[r])}function Yr(e){return e.source}function Zr(e){return e.target}function ei(){function e(e){var t=Math.sin(e*=p)*d,n=Math.sin(p-e)*d,r=n*s+t*c,u=n*o+t*h,a=n*i+t*l;return[Math.atan2(u,r)/ao,Math.atan2(a,Math.sqrt(r*r+u*u))/ao]}var t,n,r,i,s,o,u,a,f,l,c,h,p,d;return e.distance=function(){return p==null&&(d=1/Math.sin(p=Math.acos(Math.max(-1,Math.min(1,i*l+r*f*Math.cos(u-t)))))),p},e.source=function(u){var a=Math.cos(t=u[0]*ao),f=Math.sin(t);return r=Math.cos(n=u[1]*ao),i=Math.sin(n),s=r*a,o=r*f,p=null,e},e.target=function(t){var n=Math.cos(u=t[0]*ao),r=Math.sin(u);return f=Math.cos(a=t[1]*ao),l=Math.sin(a),c=f*n,h=f*r,p=null,e},e}function ti(e,t){var n=ei().source(e).target(t);return n.distance(),n}function ni(e){var t=0,n=0;for(;;){if(e(t,n))return[t,n];t===0?(t=n+1,n=0):(t-=1,n+=1)}}function ri(e,t,n,r){var i,s,o,u,a,f,l;return i=r[e],s=i[0],o=i[1],i=r[t],u=i[0],a=i[1],i=r[n],f=i[0],l=i[1],(l-o)*(u-s)-(a-o)*(f-s)>0}function ii(e,t,n){return(n[0]-t[0])*(e[1]-t[1])<(n[1]-t[1])*(e[0]-t[0])}function si(e,t,n,r){var i=e[0],s=t[0],o=n[0],u=r[0],a=e[1],f=t[1],l=n[1],c=r[1],h=i-o,p=s-i,d=u-o,v=a-l,m=f-a,g=c-l,y=(d*v-g*h)/(g*p-d*m);return[i+y*p,a+y*m]}function oi(e,t){var n={list:e.map(function(e,t){return{index:t,x:e[0],y:e[1]}}).sort(function(e,t){return e.y<t.y?-1:e.y>t.y?1:e.x<t.x?-1:e.x>t.x?1:0}),bottomSite:null},r={list:[],leftEnd:null,rightEnd:null,init:function(){r.leftEnd=r.createHalfEdge(null,"l"),r.rightEnd=r.createHalfEdge(null,"l"),r.leftEnd.r=r.rightEnd,r.rightEnd.l=r.leftEnd,r.list.unshift(r.leftEnd,r.rightEnd)},createHalfEdge:function(e,t){return{edge:e,side:t,vertex:null,l:null,r:null}},insert:function(e,t){t.l=e,t.r=e.r,e.r.l=t,e.r=t},leftBound:function(e){var t=r.leftEnd;do t=t.r;while(t!=r.rightEnd&&i.rightOf(t,e));return t=t.l,t},del:function(e){e.l.r=e.r,e.r.l=e.l,e.edge=null},right:function(e){return e.r},left:function(e){return e.l},leftRegion:function(e){return e.edge==null?n.bottomSite:e.edge.region[e.side]},rightRegion:function(e){return e.edge==null?n.bottomSite:e.edge.region[ho[e.side]]}},i={bisect:function(e,t){var n={region:{l:e,r:t},ep:{l:null,r:null}},r=t.x-e.x,i=t.y-e.y,s=r>0?r:-r,o=i>0?i:-i;return n.c=e.x*r+e.y*i+(r*r+i*i)*.5,s>o?(n.a=1,n.b=i/r,n.c/=r):(n.b=1,n.a=r/i,n.c/=i),n},intersect:function(e,t){var n=e.edge,r=t.edge;if(!n||!r||n.region.r==r.region.r)return null;var i=n.a*r.b-n.b*r.a;if(Math.abs(i)<1e-10)return null;var s=(n.c*r.b-r.c*n.b)/i,o=(r.c*n.a-n.c*r.a)/i,u=n.region.r,a=r.region.r,f,l;u.y<a.y||u.y==a.y&&u.x<a.x?(f=e,l=n):(f=t,l=r);var c=s>=l.region.r.x;return c&&f.side==="l"||!c&&f.side==="r"?null:{x:s,y:o}},rightOf:function(e,t){var n=e.edge,r=n.region.r,i=t.x>r.x;if(i&&e.side==="l")return 1;if(!i&&e.side==="r")return 0;if(n.a===1){var s=t.y-r.y,o=t.x-r.x,u=0,a=0;!i&&n.b<0||i&&n.b>=0?a=u=s>=n.b*o:(a=t.x+t.y*n.b>n.c,n.b<0&&(a=!a),a||(u=1));if(!u){var f=r.x-n.region.l.x;a=n.b*(o*o-s*s)<f*s*(1+2*o/f+n.b*n.b),n.b<0&&(a=!a)}}else{var l=n.c-n.a*t.x,c=t.y-l,h=t.x-r.x,p=l-r.y;a=c*c>h*h+p*p}return e.side==="l"?a:!a},endPoint:function(e,n,r){e.ep[n]=r;if(!e.ep[ho[n]])return;t(e)},distance:function(e,t){var n=e.x-t.x,r=e.y-t.y;return Math.sqrt(n*n+r*r)}},s={list:[],insert:function(e,t,n){e.vertex=t,e.ystar=t.y+n;for(var r=0,i=s.list,o=i.length;r<o;r++){var u=i[r];if(e.ystar>u.ystar||e.ystar==u.ystar&&t.x>u.vertex.x)continue;break}i.splice(r,0,e)},del:function(e){for(var t=0,n=s.list,r=n.length;t<r&&n[t]!=e;++t);n.splice(t,1)},empty:function(){return s.list.length===0},nextEvent:function(e){for(var t=0,n=s.list,r=n.length;t<r;++t)if(n[t]==e)return n[t+1];return null},min:function(){var e=s.list[0];return{x:e.vertex.x,y:e.ystar}},extractMin:function(){return s.list.shift()}};r.init(),n.bottomSite=n.list.shift();var o=n.list.shift(),u,a,f,l,c,h,p,d,v,m,g,y,b;for(;;){s.empty()||(u=s.min());if(o&&(s.empty()||o.y<u.y||o.y==u.y&&o.x<u.x))a=r.leftBound(o),f=r.right(a),p=r.rightRegion(a),y=i.bisect(p,o),h=r.createHalfEdge(y,"l"),r.insert(a,h),m=i.intersect(a,h),m&&(s.del(a),s.insert(a,m,i.distance(m,o))),a=h,h=r.createHalfEdge(y,"r"
-),r.insert(a,h),m=i.intersect(h,f),m&&s.insert(h,m,i.distance(m,o)),o=n.list.shift();else{if(!!s.empty())break;a=s.extractMin(),l=r.left(a),f=r.right(a),c=r.right(f),p=r.leftRegion(a),d=r.rightRegion(f),g=a.vertex,i.endPoint(a.edge,a.side,g),i.endPoint(f.edge,f.side,g),r.del(a),s.del(f),r.del(f),b="l",p.y>d.y&&(v=p,p=d,d=v,b="r"),y=i.bisect(p,d),h=r.createHalfEdge(y,b),r.insert(l,h),i.endPoint(y,ho[b],g),m=i.intersect(l,h),m&&(s.del(l),s.insert(l,m,i.distance(m,p))),m=i.intersect(h,c),m&&s.insert(h,m,i.distance(m,p))}}for(a=r.right(r.leftEnd);a!=r.rightEnd;a=r.right(a))t(a.edge)}function ui(){return{leaf:!0,nodes:[],point:null}}function ai(e,t,n,r,i,s){if(!e(t,n,r,i,s)){var o=(n+i)*.5,u=(r+s)*.5,a=t.nodes;a[0]&&ai(e,a[0],n,r,o,u),a[1]&&ai(e,a[1],o,r,i,u),a[2]&&ai(e,a[2],n,u,o,s),a[3]&&ai(e,a[3],o,u,i,s)}}function fi(e){return{x:e[0],y:e[1]}}function li(){this._=new Date(arguments.length>1?Date.UTC.apply(this,arguments):arguments[0])}function ci(e){return e.substring(0,3)}function hi(e,t,n,r){var i,s,o=0,u=t.length,a=n.length;while(o<u){if(r>=a)return-1;i=t.charCodeAt(o++);if(i==37){s=Ho[t.charAt(o++)];if(!s||(r=s(e,n,r))<0)return-1}else if(i!=n.charCodeAt(r++))return-1}return r}function pi(e){return new RegExp("^(?:"+e.map(d3.requote).join("|")+")","i")}function di(e){var t=new r,n=-1,i=e.length;while(++n<i)t.set(e[n].toLowerCase(),n);return t}function vi(e,t,n){Ao.lastIndex=0;var r=Ao.exec(t.substring(n));return r?n+=r[0].length:-1}function mi(e,t,n){Lo.lastIndex=0;var r=Lo.exec(t.substring(n));return r?n+=r[0].length:-1}function gi(e,t,n){_o.lastIndex=0;var r=_o.exec(t.substring(n));return r?(e.m=Do.get(r[0].toLowerCase()),n+=r[0].length):-1}function yi(e,t,n){Oo.lastIndex=0;var r=Oo.exec(t.substring(n));return r?(e.m=Mo.get(r[0].toLowerCase()),n+=r[0].length):-1}function bi(e,t,n){return hi(e,Po.c.toString(),t,n)}function wi(e,t,n){return hi(e,Po.x.toString(),t,n)}function Ei(e,t,n){return hi(e,Po.X.toString(),t,n)}function Si(e,t,n){Bo.lastIndex=0;var r=Bo.exec(t.substring(n,n+4));return r?(e.y=+r[0],n+=r[0].length):-1}function xi(e,t,n){Bo.lastIndex=0;var r=Bo.exec(t.substring(n,n+2));return r?(e.y=Ti(+r[0]),n+=r[0].length):-1}function Ti(e){return e+(e>68?1900:2e3)}function Ni(e,t,n){Bo.lastIndex=0;var r=Bo.exec(t.substring(n,n+2));return r?(e.m=r[0]-1,n+=r[0].length):-1}function Ci(e,t,n){Bo.lastIndex=0;var r=Bo.exec(t.substring(n,n+2));return r?(e.d=+r[0],n+=r[0].length):-1}function ki(e,t,n){Bo.lastIndex=0;var r=Bo.exec(t.substring(n,n+2));return r?(e.H=+r[0],n+=r[0].length):-1}function Li(e,t,n){Bo.lastIndex=0;var r=Bo.exec(t.substring(n,n+2));return r?(e.M=+r[0],n+=r[0].length):-1}function Ai(e,t,n){Bo.lastIndex=0;var r=Bo.exec(t.substring(n,n+2));return r?(e.S=+r[0],n+=r[0].length):-1}function Oi(e,t,n){Bo.lastIndex=0;var r=Bo.exec(t.substring(n,n+3));return r?(e.L=+r[0],n+=r[0].length):-1}function Mi(e,t,n){var r=jo.get(t.substring(n,n+=2).toLowerCase());return r==null?-1:(e.p=r,n)}function _i(e){var t=e.getTimezoneOffset(),n=t>0?"-":"+",r=~~(Math.abs(t)/60),i=Math.abs(t)%60;return n+To(r)+To(i)}function Di(e){return e.toISOString()}function Pi(e,t,n){function r(t){var n=e(t),r=s(n,1);return t-n<r-t?n:r}function i(n){return t(n=e(new po(n-1)),1),n}function s(e,n){return t(e=new po(+e),n),e}function o(e,r,s){var o=i(e),u=[];if(s>1)while(o<r)n(o)%s||u.push(new Date(+o)),t(o,1);else while(o<r)u.push(new Date(+o)),t(o,1);return u}function u(e,t,n){try{po=li;var r=new li;return r._=e,o(r,t,n)}finally{po=Date}}e.floor=e,e.round=r,e.ceil=i,e.offset=s,e.range=o;var a=e.utc=Hi(e);return a.floor=a,a.round=Hi(r),a.ceil=Hi(i),a.offset=Hi(s),a.range=u,e}function Hi(e){return function(t,n){try{po=li;var r=new li;return r._=t,e(r,n)._}finally{po=Date}}}function Bi(e,t,n){function r(t){return e(t)}return r.invert=function(t){return Fi(e.invert(t))},r.domain=function(t){return arguments.length?(e.domain(t),r):e.domain().map(Fi)},r.nice=function(e){return r.domain(Dt(r.domain(),function(){return e}))},r.ticks=function(n,i){var s=ji(r.domain());if(typeof n!="function"){var o=s[1]-s[0],u=o/n,a=d3.bisect(Io,u);if(a==Io.length)return t.year(s,n);if(!a)return e.ticks(n).map(Fi);Math.log(u/Io[a-1])<Math.log(Io[a]/u)&&--a,n=t[a],i=n[1],n=n[0].range}return n(s[0],new Date(+s[1]+1),i)},r.tickFormat=function(){return n},r.copy=function(){return Bi(e.copy(),t,n)},d3.rebind(r,e,"range","rangeRound","interpolate","clamp")}function ji(e){var t=e[0],n=e[e.length-1];return t<n?[t,n]:[n,t]}function Fi(e){return new Date(e)}function Ii(e){return function(t){var n=e.length-1,r=e[n];while(!r[1](t))r=e[--n];return r[0](t)}}function qi(e){var t=new Date(e,0,1);return t.setFullYear(e),t}function Ri(e){var t=e.getFullYear(),n=qi(t),r=qi(t+1);return t+(e-n)/(r-n)}function Ui(e){var t=new Date(Date.UTC(e,0,1));return t.setUTCFullYear(e),t}function zi(e){var t=e.getUTCFullYear(),n=Ui(t),r=Ui(t+1);return t+(e-n)/(r-n)}Date.now||(Date.now=function(){return+(new Date)});try{document.createElement("div").style.setProperty("opacity",0,"")}catch(Wi){var Xi=CSSStyleDeclaration.prototype,Vi=Xi.setProperty;Xi.setProperty=function(e,t,n){Vi.call(this,e,t+"",n)}}d3={version:"2.10.2"};var $i=n;try{$i(document.documentElement.childNodes)[0].nodeType}catch(Ji){$i=t}var Ki=[].__proto__?function(e,t){e.__proto__=t}:function(e,t){for(var n in t)e[n]=t[n]};d3.map=function(e){var t=new r;for(var n in e)t.set(n,e[n]);return t},e(r,{has:function(e){return Qi+e in this},get:function(e){return this[Qi+e]},set:function(e,t){return this[Qi+e]=t},remove:function(e){return e=Qi+e,e in this&&delete this[e]},keys:function(){var e=[];return this.forEach(function(t){e.push(t)}),e},values:function(){var e=[];return this.forEach(function(t,n){e.push(n)}),e},entries:function(){var e=[];return this.forEach(function(t,n){e.push({key:t,value:n})}),e},forEach:function(e){for(var t in this)t.charCodeAt(0)===Gi&&e.call(this,t.substring(1),this[t])}});var Qi="\0",Gi=Qi.charCodeAt(0);d3.functor=u,d3.rebind=function(e,t){var n=1,r=arguments.length,i;while(++n<r)e[i=arguments[n]]=a(e,t,t[i]);return e},d3.ascending=function(e,t){return e<t?-1:e>t?1:e>=t?0:NaN},d3.descending=function(e,t){return t<e?-1:t>e?1:t>=e?0:NaN},d3.mean=function(e,t){var n=e.length,r,i=0,s=-1,o=0;if(arguments.length===1)while(++s<n)f(r=e[s])&&(i+=(r-i)/++o);else while(++s<n)f(r=t.call(e,e[s],s))&&(i+=(r-i)/++o);return o?i:undefined},d3.median=function(e,t){return arguments.length>1&&(e=e.map(t)),e=e.filter(f),e.length?d3.quantile(e.sort(d3.ascending),.5):undefined},d3.min=function(e,t){var n=-1,r=e.length,i,s;if(arguments.length===1){while(++n<r&&((i=e[n])==null||i!=i))i=undefined;while(++n<r)(s=e[n])!=null&&i>s&&(i=s)}else{while(++n<r&&((i=t.call(e,e[n],n))==null||i!=i))i=undefined;while(++n<r)(s=t.call(e,e[n],n))!=null&&i>s&&(i=s)}return i},d3.max=function(e,t){var n=-1,r=e.length,i,s;if(arguments.length===1){while(++n<r&&((i=e[n])==null||i!=i))i=undefined;while(++n<r)(s=e[n])!=null&&s>i&&(i=s)}else{while(++n<r&&((i=t.call(e,e[n],n))==null||i!=i))i=undefined;while(++n<r)(s=t.call(e,e[n],n))!=null&&s>i&&(i=s)}return i},d3.extent=function(e,t){var n=-1,r=e.length,i,s,o;if(arguments.length===1){while(++n<r&&((i=o=e[n])==null||i!=i))i=o=undefined;while(++n<r)(s=e[n])!=null&&(i>s&&(i=s),o<s&&(o=s))}else{while(++n<r&&((i=o=t.call(e,e[n],n))==null||i!=i))i=undefined;while(++n<r)(s=t.call(e,e[n],n))!=null&&(i>s&&(i=s),o<s&&(o=s))}return[i,o]},d3.random={normal:function(e,t){var n=arguments.length;return n<2&&(t=1),n<1&&(e=0),function(){var n,r,i;do n=Math.random()*2-1,r=Math.random()*2-1,i=n*n+r*r;while(!i||i>1);return e+t*n*Math.sqrt(-2*Math.log(i)/i)}},logNormal:function(e,t){var n=arguments.length;n<2&&(t=1),n<1&&(e=0);var r=d3.random.normal();return function(){return Math.exp(e+t*r())}},irwinHall:function(e){return function(){for(var t=0,n=0;n<e;n++)t+=Math.random();return t/e}}},d3.sum=function(e,t){var n=0,r=e.length,i,s=-1;if(arguments.length===1)while(++s<r)isNaN(i=+e[s])||(n+=i);else while(++s<r)isNaN(i=+t.call(e,e[s],s))||(n+=i);return n},d3.quantile=function(e,t){var n=(e.length-1)*t+1,r=Math.floor(n),i=e[r-1],s=n-r;return s?i+s*(e[r]-i):i},d3.transpose=function(e){return d3.zip.apply(d3,e)},d3.zip=function(){if(!(i=arguments.length))return[];for(var e=-1,t=d3.min(arguments,l),n=new Array(t);++e<t;)for(var r=-1,i,s=n[e]=new Array(i);++r<i;)s[r]=arguments[r][e];return n},d3.bisector=function(e){return{left:function(t,n,r,i){arguments.length<3&&(r=0),arguments.length<4&&(i=t.length);while(r<i){var s=r+i>>>1;e.call(t,t[s],s)<n?r=s+1:i=s}return r},right:function(t,n,r,i){arguments.length<3&&(r=0),arguments.length<4&&(i=t.length);while(r<i){var s=r+i>>>1;n<e.call(t,t[s],s)?i=s:r=s+1}return r}}};var Yi=d3.bisector(function(e){return e});d3.bisectLeft=Yi.left,d3.bisect=d3.bisectRight=Yi.right,d3.first=function(e,t){var n=0,r=e.length,i=e[0],s;arguments.length===1&&(t=d3.ascending);while(++n<r)t.call(e,i,s=e[n])>0&&(i=s);return i},d3.last=function(e,t){var n=0,r=e.length,i=e[0],s;arguments.length===1&&(t=d3.ascending);while(++n<r)t.call(e,i,s=e[n])<=0&&(i=s);return i},d3.nest=function(){function e(t,s){if(s>=i.length)return u?u.call(n,t):o?t.sort(o):t;var a=-1,f=t.length,l=i[s++],c,h,p=new r,d,v={};while(++a<f)(d=p.get(c=l(h=t[a])))?d.push(h):p.set(c,[h]);return p.forEach(function(t,n){v[t]=e(n,s)}),v}function t(e,n){if(n>=i.length)return e;var r=[],o=s[n++],u;for(u in e)r.push({key:u,values:t(e[u],n)});return o&&r.sort(function(e,t){return o(e.key,t.key)}),r}var n={},i=[],s=[],o,u;return n.map=function(t){return e(t,0)},n.entries=function(n){return t(e(n,0),0)},n.key=function(e){return i.push(e),n},n.sortKeys=function(e){return s[i.length-1]=e,n},n.sortValues=function(e){return o=e,n},n.rollup=function(e){return u=e,n},n},d3.keys=function(e){var t=[];for(var n in e)t.push(n);return t},d3.values=function(e){var t=[];for(var n in e)t.push(e[n]);return t},d3.entries=function(e){var t=[];for(var n in e)t.push({key:n,value:e[n]});return t},d3.permute=function(e,t){var n=[],r=-1,i=t.length;while(++r<i)n[r]=e[t[r]];return n},d3.merge=function(e){return Array.prototype.concat.apply([],e)},d3.split=function(e,t){var n=[],r=[],i,s=-1,o=e.length;arguments.length<2&&(t=c);while(++s<o)t.call(r,i=e[s],s)?r=[]:(r.length||n.push(r),r.push(i));return n},d3.range=function(e,t,n){arguments.length<3&&(n=1,arguments.length<2&&(t=e,e=0));if((t-e)/n===Infinity)throw new Error("infinite range");var r=[],i=p(Math.abs(n)),s=-1,o;e*=i,t*=i,n*=i;if(n<0)while((o=e+n*++s)>t)r.push(o/i);else while((o=e+n*++s)<t)r.push(o/i);return r},d3.requote=function(e){return e.replace(Zi,"\\$&")};var Zi=/[\\\^\$\*\+\?\|\[\]\(\)\.\{\}]/g;d3.round=function(e,t){return t?Math.round(e*(t=Math.pow(10,t)))/t:Math.round(e)},d3.xhr=function(e,t,n){var r=new XMLHttpRequest;arguments.length<3?(n=t,t=null):t&&r.overrideMimeType&&r.overrideMimeType(t),r.open("GET",e,!0),t&&r.setRequestHeader("Accept",t),r.onreadystatechange=function(){if(r.readyState===4){var e=r.status;n(!e&&r.response||e>=200&&e<300||e===304?r:null)}},r.send(null)},d3.text=function(e,t,n){function r(e){n(e&&e.responseText)}arguments.length<3&&(n=t,t=null),d3.xhr(e,t,r)},d3.json=function(e,t){d3.text(e,"application/json",function(e){t(e?JSON.parse(e):null)})},d3.html=function(e,t){d3.text(e,"text/html",function(e){if(e!=null){var n=document.createRange();n.selectNode(document.body),e=n.createContextualFragment(e)}t(e)})},d3.xml=function(e,t,n){function r(e){n(e&&e.responseXML)}arguments.length<3&&(n=t,t=null),d3.xhr(e,t,r)};var es={svg:"http://www.w3.org/2000/svg",xhtml:"http://www.w3.org/1999/xhtml",xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};d3.ns={prefix:es,qualify:function(e){var t=e.indexOf(":"),n=e;return t>=0&&(n=e.substring(0,t),e=e.substring(t+1)),es.hasOwnProperty(n)?{space:es[n],local:e}:e}},d3.dispatch=function(){var e=new d,t=-1,n=arguments.length;while(++t<n)e[arguments[t]]=v(e);return e},d.prototype.on=function(e,t){var n=e.indexOf("."),r="";return n>0&&(r=e.substring(n+1),e=e.substring(0,n)),arguments.length<2?this[e].on(r):this[e].on(r,t)},d3.format=function(e){var t=ts.exec(e),n=t[1]||" ",r=t[3]||"",i=t[5],s=+t[6],o=t[7],u=t[8],a=t[9],f=1,l="",c=!1;u&&(u=+u.substring(1)),i&&(n="0",o&&(s-=Math.floor((s-1)/4)));switch(a){case"n":o=!0,a="g";break;case"%":f=100,l="%",a="f";break;case"p":f=100,l="%",a="r";break;case"d":c=!0,u=0;break;case"s":f=-1,a="r"}return a=="r"&&!u&&(a="g"),a=ns.get(a)||g,function(e){if(c&&e%1)return"";var t=e<0&&(e=-e)?"-":r;if(f<0){var h=d3.formatPrefix(e,u);e=h.scale(e),l=h.symbol}else e*=f;e=a(e,u);if(i){var p=e.length+t.length;p<s&&(e=(new Array(s-p+1)).join(n)+e),o&&(e=y(e)),e=t+e}else{o&&(e=y(e)),e=t+e;var p=e.length;p<s&&(e=(new Array(s-p+1)).join(n)+e)}return e+l}};var ts=/(?:([^{])?([<>=^]))?([+\- ])?(#)?(0)?([0-9]+)?(,)?(\.[0-9]+)?([a-zA-Z%])?/,ns=d3.map({g:function(e,t){return e.toPrecision(t)},e:function(e,t){return e.toExponential(t)},f:function(e,t){return e.toFixed(t)},r:function(e,t){return d3.round(e,t=m(e,t)).toFixed(Math.max(0,Math.min(20,t)))}}),rs=["y","z","a","f","p","n","μ","m","","k","M","G","T","P","E","Z","Y"].map(b);d3.formatPrefix=function(e,t){var n=0;return e&&(e<0&&(e*=-1),t&&(e=d3.round(e,m(e,t))),n=1+Math.floor(1e-12+Math.log(e)/Math.LN10),n=Math.max(-24,Math.min(24,Math.floor((n<=0?n+1:n-1)/3)*3))),rs[8+n/3]};var is=T(2),ss=T(3),os=function(){return x},us=d3.map({linear:os,poly:T,quad:function(){return is},cubic:function(){return ss},sin:function(){return N},exp:function(){return C},circle:function(){return k},elastic:L,back:A,bounce:function(){return O}}),as=d3.map({"in":x,out:E,"in-out":S,"out-in":function(e){return S(E(e))}});d3.ease=function(e){var t=e.indexOf("-"),n=t>=0?e.substring(0,t):e,r=t>=0?e.substring(t+1):"in";return n=us.get(n)||os,r=as.get(r)||x,w(r(n.apply(null,Array.prototype.slice.call(arguments,1))))},d3.event=null,d3.transform=function(e){var t=document.createElementNS(d3.ns.prefix.svg,"g");return(d3.transform=function(e){t.setAttribute("transform",e);var n=t.transform.baseVal.consolidate();return new P(n?n.matrix:ls)})(e)},P.prototype.toString=function(){return"translate("+this.translate+")rotate("+this.rotate+")skewX("+this.skew+")scale("+this.scale+")"};var fs=180/Math.PI,ls={a:1,b:0,c:0,d:1,e:0,f:0};d3.interpolate=function(e,t){var n=d3.interpolators.length,r;while(--n>=0&&!(r=d3.interpolators[n](e,t)));return r},d3.interpolateNumber=function(e,t){return t-=e,function(n){return e+t*n}},d3.interpolateRound=function(e,t){return t-=e,function(n){return Math.round(e+t*n)}},d3.interpolateString=function(e,t){var n,r,i,s=0,o=0,u=[],a=[],f,l;cs.lastIndex=0;for(r=0;n=cs.exec(t);++r)n.index&&u.push(t.substring(s,o=n.index)),a.push({i:u.length,x:n[0]}),u.push(null),s=cs.lastIndex;s<t.length&&u.push(t.substring(s));for(r=0,f=a.length;(n=cs.exec(e))&&r<f;++r){l=a[r];if(l.x==n[0]){if(l.i)if(u[l.i+1]==null){u[l.i-1]+=l.x,u.splice(l.i,1);for(i=r+1;i<f;++i)a[i].i--}else{u[l.i-1]+=l.x+u[l.i+1],u.splice(l.i,2);for(i=r+1;i<f;++i)a[i].i-=2}else if(u[l.i+1]==null)u[l.i]=l.x;else{u[l.i]=l.x+u[l.i+1],u.splice(l.i+1,1);for(i=r+1;i<f;++i)a[i].i--}a.splice(r,1),f--,r--}else l.x=d3.interpolateNumber(parseFloat(n[0]),parseFloat(l.x))}while(r<f)l=a.pop(),u[l.i+1]==null?u[l.i]=l.x:(u[l.i]=l.x+u[l.i+1],u.splice(l.i+1,1)),f--;return u.length===1?u[0]==null?a[0].x:function(){return t}:function(e){for(r=0;r<f;++r)u[(l=a[r]).i]=l.x(e);return u.join("")}},d3.interpolateTransform=function(e,t){var n=[],r=[],i,s=d3.transform(e),o=d3.transform(t),u=s.translate,a=o.translate,f=s.rotate,l=o.rotate,c=s.skew,h=o.skew,p=s.scale,d=o.scale;return u[0]!=a[0]||u[1]!=a[1]?(n.push("translate(",null,",",null,")"),r.push({i:1,x:d3.interpolateNumber(u[0],a[0])},{i:3,x:d3.interpolateNumber(u[1],a[1])})):a[0]||a[1]?n.push("translate("+a+")"):n.push(""),f!=l?(f-l>180?l+=360:l-f>180&&(f+=360),r.push({i:n.push(n.pop()+"rotate(",null,")")-2,x:d3.interpolateNumber(f,l)})):l&&n.push(n.pop()+"rotate("+l+")"),c!=h?r.push({i:n.push(n.pop()+"skewX(",null,")")-2,x:d3.interpolateNumber(c,h)}):h&&n.push(n.pop()+"skewX("+h+")"),p[0]!=d[0]||p[1]!=d[1]?(i=n.push(n.pop()+"scale(",null,",",null,")"),r.push({i:i-4,x:d3.interpolateNumber(p[0],d[0])},{i:i-2,x:d3.interpolateNumber(p[1],d[1])})):(d[0]!=1||d[1]!=1)&&n.push(n.pop()+"scale("+d+")"),i=r.length,function(e){var t=-1,s;while(++t<i)n[(s=r[t]).i]=s.x(e);return n.join("")}},d3.interpolateRgb=function(e,t){e=d3.rgb(e),t=d3.rgb(t);var n=e.r,r=e.g,i=e.b,s=t.r-n,o=t.g-r,u=t.b-i;return function(e){return"#"+z(Math.round(n+s*e))+z(Math.round(r+o*e))+z(Math.round(i+u*e))}},d3.interpolateHsl=function(e,t){e=d3.hsl(e),t=d3.hsl(t);var n=e.h,r=e.s,i=e.l,s=t.h-n,o=t.s-r,u=t.l-i;return s>180?s-=360:s<-180&&(s+=360),function(e){return G(n+s*e,r+o*e,i+u*e)+""}},d3.interpolateLab=function(e,t){e=d3.lab(e),t=d3.lab(t);var n=e.l,r=e.a,i=e.b,s=t.l-n,o=t.a-r,u=t.b-i;return function(e){return rt(n+s*e,r+o*e,i+u*e)+""}},d3.interpolateHcl=function(e,t){e=d3.hcl(e),t=d3.hcl(t);var n=e.h,r=e.c,i=e.l,s=t.h-n,o=t.c-r,u=t.l-i;return s>180?s-=360:s<-180&&(s+=360),function(e){return et(n+s*e,r+o*e,i+u*e)+""}},d3.interpolateArray=function(e,t){var n=[],r=[],i=e.length,s=t.length,o=Math.min(e.length,t.length),u;for(u=0;u<o;++u)n.push(d3.interpolate(e[u],t[u]));for(;u<i;++u)r[u]=e[u];for(;u<s;++u)r[u]=t[u];return function(e){for(u=0;u<o;++u)r[u]=n[u](e);return r}},d3.interpolateObject=function(e,t){var n={},r={},i;for(i in e)i in t?n[i]=F(i)(e[i],t[i]):r[i]=e[i];for(i in t)i in e||(r[i]=t[i]);return function(e){for(i in n)r[i]=n[i](e);return r}};var cs=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g;d3.interpolators=[d3.interpolateObject,function(e,t){return t instanceof Array&&d3.interpolateArray(e,t)},function(e,t){return(typeof e=="string"||typeof t=="string")&&d3.interpolateString(e+"",t+"")},function(e,t){return(typeof t=="string"?hs.has(t)||/^(#|rgb\(|hsl\()/.test(t):t instanceof U||t instanceof Q)&&d3.interpolateRgb(e,t)},function(e,t){return!isNaN(e=+e)&&!isNaN(t=+t)&&d3.interpolateNumber(e,t)}],d3.rgb=function(e,t,n){return arguments.length===1?e instanceof U?R(e.r,e.g,e.b):W(""+e,R,G):R(~~e,~~t,~~n)},U.prototype.brighter=function(e){e=Math.pow(.7,arguments.length?e:1);var t=this.r,n=this.g,r=this.b,i=30;return!t&&!n&&!r?R(i,i,i):(t&&t<i&&(t=i),n&&n<i&&(n=i),r&&r<i&&(r=i),R(Math.min(255,Math.floor(t/e)),Math.min(255,Math.floor(n/e)),Math.min(255,Math.floor(r/e))))},U.prototype.darker=function(e){return e=Math.pow(.7,arguments.length?e:1),R(Math.floor(e*this.r),Math.floor(e*this.g),Math.floor(e*this.b))},U.prototype.hsl=function(){return X(this.r,this.g,this.b)},U.prototype.toString=function(){return"#"+z(this.r)+z(this.g)+z(this.b)};var hs=d3.map({aliceblue:"#f0f8ff",antiquewhite:"#faebd7",aqua:"#00ffff",aquamarine:"#7fffd4",azure:"#f0ffff",beige:"#f5f5dc",bisque:"#ffe4c4",black:"#000000",blanchedalmond:"#ffebcd",blue:"#0000ff",blueviolet:"#8a2be2",brown:"#a52a2a",burlywood:"#deb887",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",cornflowerblue:"#6495ed",cornsilk:"#fff8dc",crimson:"#dc143c",cyan:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkgray:"#a9a9a9",darkgreen:"#006400",darkgrey:"#a9a9a9",darkkhaki:"#bdb76b",darkmagenta:"#8b008b",darkolivegreen:"#556b2f",darkorange:"#ff8c00",darkorchid:"#9932cc",darkred:"#8b0000",darksalmon:"#e9967a",darkseagreen:"#8fbc8f",darkslateblue:"#483d8b",darkslategray:"#2f4f4f",darkslategrey:"#2f4f4f",darkturquoise:"#00ced1",darkviolet:"#9400d3",deeppink:"#ff1493",deepskyblue:"#00bfff",dimgray:"#696969",dimgrey:"#696969",dodgerblue:"#1e90ff",firebrick:"#b22222",floralwhite:"#fffaf0",forestgreen:"#228b22",fuchsia:"#ff00ff",gainsboro:"#dcdcdc",ghostwhite:"#f8f8ff",gold:"#ffd700",goldenrod:"#daa520",gray:"#808080",green:"#008000",greenyellow:"#adff2f",grey:"#808080",honeydew:"#f0fff0",hotpink:"#ff69b4",indianred:"#cd5c5c",indigo:"#4b0082",ivory:"#fffff0",khaki:"#f0e68c",lavender:"#e6e6fa",lavenderblush:"#fff0f5",lawngreen:"#7cfc00",lemonchiffon:"#fffacd",lightblue:"#add8e6",lightcoral:"#f08080",lightcyan:"#e0ffff",lightgoldenrodyellow:"#fafad2",lightgray:"#d3d3d3",lightgreen:"#90ee90",lightgrey:"#d3d3d3",lightpink:"#ffb6c1",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",lightskyblue:"#87cefa",lightslategray:"#778899",lightslategrey:"#778899",lightsteelblue:"#b0c4de",lightyellow:"#ffffe0",lime:"#00ff00",limegreen:"#32cd32",linen:"#faf0e6",magenta:"#ff00ff",maroon:"#800000",mediumaquamarine:"#66cdaa",mediumblue:"#0000cd",mediumorchid:"#ba55d3",mediumpurple:"#9370db",mediumseagreen:"#3cb371",mediumslateblue:"#7b68ee",mediumspringgreen:"#00fa9a",mediumturquoise:"#48d1cc",mediumvioletred:"#c71585",midnightblue:"#191970",mintcream:"#f5fffa",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",navajowhite:"#ffdead",navy:"#000080",oldlace:"#fdf5e6",olive:"#808000",olivedrab:"#6b8e23",orange:"#ffa500",orangered:"#ff4500",orchid:"#da70d6",palegoldenrod:"#eee8aa",palegreen:"#98fb98",paleturquoise:"#afeeee",palevioletred:"#db7093",papayawhip:"#ffefd5",peachpuff:"#ffdab9",peru:"#cd853f",pink:"#ffc0cb",plum:"#dda0dd",powderblue:"#b0e0e6",purple:"#800080",red:"#ff0000",rosybrown:"#bc8f8f",royalblue:"#4169e1",saddlebrown:"#8b4513",salmon:"#fa8072",sandybrown:"#f4a460",seagreen:"#2e8b57",seashell:"#fff5ee",sienna:"#a0522d",silver:"#c0c0c0",skyblue:"#87ceeb",slateblue:"#6a5acd",slategray:"#708090",slategrey:"#708090",snow:"#fffafa",springgreen:"#00ff7f",steelblue:"#4682b4",tan:"#d2b48c",teal:"#008080",thistle:"#d8bfd8",tomato:"#ff6347",turquoise:"#40e0d0",violet:"#ee82ee",wheat:"#f5deb3",white:"#ffffff",whitesmoke:"#f5f5f5",yellow:"#ffff00",yellowgreen:"#9acd32"});hs.forEach(function(e,t){hs.set(e,W(t,R,G))}),d3.hsl=function(e,t,n){return arguments.length===1?e instanceof Q?K(e.h,e.s,e.l):W(""+e,X,K):K(+e,+t,+n)},Q.prototype.brighter=function(e){return e=Math.pow(.7,arguments.length?e:1),K(this.h,this.s,this.l/e)},Q.prototype.darker=function(e){return e=Math.pow(.7,arguments.length?e:1),K(this.h,this.s,e*this.l)},Q.prototype.rgb=function(){return G(this.h,this.s,this.l)},Q.prototype.toString=function(){return this.rgb().toString()},d3.hcl=function(e,t,n){return arguments.length===1?e instanceof Z?Y(e.h,e.c,e.l):e instanceof nt?it(e.l,e.a,e.b):it((e=V((e=d3.rgb(e)).r,e.g,e.b)).l,e.a,e.b):Y(+e,+t,+n)},Z.prototype.brighter=function(e){return Y(this.h,this.c,Math.min(100,this.l+ps*(arguments.length?e:1)))},Z.prototype.darker=function(e){return Y(this.h,this.c,Math.max(0,this.l-ps*(arguments.length?e:1)))},Z.prototype.rgb=function(){return et(this.h,this.c,this.l).rgb()},Z.prototype.toString=function(){return this.rgb()+""},d3.lab=function(e,t,n){return arguments.length===1?e instanceof nt?tt(e.l,e.a,e.b):e instanceof Z?et(e.l,e.c,e.h):V((e=d3.rgb(e)).r,e.g,e.b):tt(+e,+t,+n)};var ps=18,ds=.95047,vs=1,ms=1.08883;nt.prototype.brighter=function(e){return tt(Math.min(100,this.l+ps*(arguments.length?e:1)),this.a,this.b)},nt.prototype.darker=function(e){return tt(Math.max(0,this.l-ps*(arguments.length?e:1)),this.a,this.b)},nt.prototype.rgb=function(){return rt(this.l,this.a,this.b)},nt.prototype.toString=function(){return this.rgb()+""};var gs=function(e,t){return t.querySelector(e)},ys=function(e,t){return t.querySelectorAll(e)},bs=document.documentElement,ws=bs.matchesSelector||bs.webkitMatchesSelector||bs.mozMatchesSelector||bs.msMatchesSelector||bs.oMatchesSelector,Es=function(e,t){return ws.call(e,t)};typeof Sizzle=="function"&&(gs=function(e,t){return Sizzle(e,t)[0]||null},ys=function(e,t){return Sizzle.uniqueSort(Sizzle(e,t))},Es=Sizzle.matchesSelector);var Ss=[];d3.selection=function(){return xs},d3.selection.prototype=Ss,Ss.select=function(e){var t=[],n,r,i,s;typeof e!="function"&&(e=ft(e));for(var o=-1,u=this.length;++o<u;){t.push(n=[]),n.parentNode=(i=this[o]).parentNode;for(var a=-1,f=i.length;++a<f;)(s=i[a])?(n.push(r=e.call(s,s.__data__,a)),r&&"__data__"in s&&(r.__data__=s.__data__)):n.push(null)}return at(t)},Ss.selectAll=function(e){var t=[],n,r;typeof e!="function"&&(e=lt(e));for(var i=-1,s=this.length;++i<s;)for(var o=this[i],u=-1,a=o.length;++u<a;)if(r=o[u])t.push(n=$i(e.call(r,r.__data__,u))),n.parentNode=r;return at(t)},Ss.attr=function(e,t){if(arguments.length<2){if(typeof e=="string"){var n=this.node();return e=d3.ns.qualify(e),e.local?n.getAttributeNS(e.space,e.local):n.getAttribute(e)}for(t in e)this.each(ct(t,e[t]));return this}return this.each(ct(e,t))},Ss.classed=function(e,t){if(arguments.length<2){if(typeof e=="string"){var n=this.node(),r=(e=e.trim().split(/^|\s+/g)).length,i=-1;if(t=n.classList){while(++i<r)if(!t.contains(e[i]))return!1}else{t=n.className,t.baseVal!=null&&(t=t.baseVal);while(++i<r)if(!ht(e[i]).test(t))return!1}return!0}for(t in e)this.each(pt(t,e[t]));return this}return this.each(pt(e,t))},Ss.style=function(e,t,n){var r=arguments.length;if(r<3){if(typeof e!="string"){r<2&&(t="");for(n in e)this.each(vt(n,e[n],t));return this}if(r<2)return window.getComputedStyle(this.node(),null).getPropertyValue(e);n=""}return this.each(vt(e,t,n))},Ss.property=function(e,t){if(arguments.length<2){if(typeof e=="string")return this.node()[e];for(t in e)this.each(mt(t,e[t]));return this}return this.each(mt(e,t))},Ss.text=function(e){return arguments.length<1?this.node().textContent:this.each(typeof e=="function"?function(){var t=e.apply(this,arguments);this.textContent=t==null?"":t}:e==null?function(){this.textContent=""}:function(){this.textContent=e})},Ss.html=function(e){return arguments.length<1?this.node().innerHTML:this.each(typeof e=="function"?function(){var t=e.apply(this,arguments);this.innerHTML=t==null?"":t}:e==null?function(){this.innerHTML=""}:function(){this.innerHTML=e})},Ss.append=function(e){function t(){return this.appendChild(document.createElementNS(this.namespaceURI,e))}function n(){return this.appendChild(document.createElementNS(e.space,e.local))}return e=d3.ns.qualify(e),this.select(e.local?n:t)},Ss.insert=function(e,t){function n(){return this.insertBefore(document.createElementNS(this.namespaceURI,e),gs(t,this))}function r(){return this.insertBefore(document.createElementNS(e.space,e.local),gs(t,this))}return e=d3.ns.qualify(e),this.select(e.local?r:n)},Ss.remove=function(){return this.each(function(){var e=this.parentNode;e&&e.removeChild(this)})},Ss.data=function(e,t){function n(e,n){var i,s=e.length,o=n.length,u=Math.min(s,o),c=Math.max(s,o),h=[],p=[],d=[],v,m;if(t){var g=new r,y=[],b,w=n.length;for(i=-1;++i<s;)b=t.call(v=e[i],v.__data__,i),g.has(b)?d[w++]=v:g.set(b,v),y.push(b);for(i=-1;++i<o;)b=t.call(n,m=n[i],i),g.has(b)?(h[i]=v=g.get(b),v.__data__=m,p[i]=d[i]=null):(p[i]=gt(m),h[i]=d[i]=null),g.remove(b);for(i=-1;++i<s;)g.has(y[i])&&(d[i]=e[i])}else{for(i=-1;++i<u;)v=e[i],m=n[i],v?(v.__data__=m,h[i]=v,p[i]=d[i]=null):(p[i]=gt(m),h[i]=d[i]=null);for(;i<o;++i)p[i]=gt(n[i]),h[i]=d[i]=null;for(;i<c;++i)d[i]=e[i],p[i]=h[i]=null}p.update=h,p.parentNode=h.parentNode=d.parentNode=e.parentNode,a.push(p),f.push(h),l.push(d)}var i=-1,s=this.length,o,u;if(!arguments.length){e=new Array(s=(o=this[0]).length);while(++i<s)if(u=o[i])e[i]=u.__data__;return e}var a=St([]),f=at([]),l=at([]);if(typeof e=="function")while(++i<s)n(o=this[i],e.call(o,o.parentNode.__data__,i));else while(++i<s)n(o=this[i],e);return f.enter=function(){return a},f.exit=function(){return l},f},Ss.datum=Ss.map=function(e){return arguments.length<1?this.property("__data__"):this.property("__data__",e)},Ss.filter=function(e){var t=[],n,r,i;typeof e!="function"&&(e=yt(e));for(var s=0,o=this.length;s<o;s++){t.push(n=[]),n.parentNode=(r=this[s]).parentNode;for(var u=0,a=r.length;u<a;u++)(i=r[u])&&e.call(i,i.__data__,u)&&n.push(i)}return at(t)},Ss.order=function(){for(var e=-1,t=this.length;++e<t;)for(var n=this[e],r=n.length-1,i=n[r],s;--r>=0;)if(s=n[r])i&&i!==s.nextSibling&&i.parentNode.insertBefore(s,i),i=s;return this},Ss.sort=function(e){e=bt.apply(this,arguments);for(var t=-1,n=this.length;++t<n;)this[t].sort(e);return this.order()},Ss.on=function(e,t,n){var r=arguments.length;if(r<3){if(typeof e!="string"){r<2&&(t=!1);for(n in e)this.each(wt(n,e[n],t));return this}if(r<2)return(r=this.node()["__on"+e])&&r._;n=!1}return this.each(wt(e,t,n))},Ss.each=function(e){return Et(this,function(t,n,r){e.call(t,t.__data__,n,r)})},Ss.call=function(e){return e.apply(this,(arguments[0]=this,arguments)),this},Ss.empty=function(){return!this.node()},Ss.node=function(e){for(var t=0,n=this.length;t<n;t++)for(var r=this[t],i=0,s=r.length;i<s;i++){var o=r[i];if(o)return o}return null},Ss.transition=function(){var e=[],t,n;for(var r=-1,i=this.length;++r<i;){e.push(t=[]);for(var s=this[r],o=-1,u=s.length;++o<u;)t.push((n=s[o])?{node:n,delay:Ms,duration:_s}:null)}return xt(e,ks||++Cs,Date.now())};var xs=at([[document]]);xs[0].parentNode=bs,d3.select=function(e){return typeof e=="string"?xs.select(e):at([[e]])},d3.selectAll=function(e){return typeof e=="string"?xs.selectAll(e):at([$i(e)])};var Ts=[];d3.selection.enter=St,d3.selection.enter.prototype=Ts,Ts.append=Ss.append,Ts.insert=Ss.insert,Ts.empty=Ss.empty,Ts.node=Ss.node,Ts.select=function(e){var t=[],n,r,i,s,o;for(var u=-1,a=this.length;++u<a;){i=(s=this[u]).update,t.push(n=[]),n.parentNode=s.parentNode;for(var f=-1,l=s.length;++f<l;)(o=s[f])?(n.push(i[f]=r=e.call(s.parentNode,o.__data__,f)),r.__data__=o.__data__):n.push(null)}return at(t)};var Ns=[],Cs=0,ks=0,Ls=0,As=250,Os=d3.ease("cubic-in-out"),Ms=Ls,_s=As,Ds=Os;Ns.call=Ss.call,d3.transition=function(e){return arguments.length?ks?e.transition():e:xs.transition()},d3.transition.prototype=Ns,Ns.select=function(e){var t=[],n,r,i;typeof e!="function"&&(e=ft(e));for(var s=-1,o=this.length;++s<o;){t.push(n=[]);for(var u=this[s],a=-1,f=u.length;++a<f;)(i=u[a])&&(r=e.call(i.node,i.node.__data__,a))?("__data__"in i.node&&(r.__data__=i.node.__data__),n.push({node:r,delay:i.delay,duration:i.duration})):n.push(null)}return xt(t,this.id,this.time).ease(this.ease())},Ns.selectAll=function(e){var t=[],n,r,i;typeof e!="function"&&(e=lt(e));for(var s=-1,o=this.length;++s<o;)for(var u=this[s],a=-1,f=u.length;++a<f;)if(i=u[a]){r=e.call(i.node,i.node.__data__,a),t.push(n=[]);for(var l=-1,c=r.length;++l<c;)n.push({node:r[l],delay:i.delay,duration:i.duration})}return xt(t,this.id,this.time).ease(this.ease())},Ns.filter=function(e){var t=[],n,r,i;typeof e!="function"&&(e=yt(e));for(var s=0,o=this.length;s<o;s++){t.push(n=[]);for(var r=this[s],u=0,a=r.length;u<a;u++)(i=r[u])&&e.call(i.node,i.node.__data__,u)&&n.push(i)}return xt(t,this.id,this.time).ease(this.ease())},Ns.attr=function(e,t){if(arguments.length<2){for(t in e)this.attrTween(t,Ct(e[t],t));return this}return this.attrTween(e,Ct(t,e))},Ns.attrTween=function(e,t){function n(e,n){var r=t.call(this,e,n,this.getAttribute(i));return r===Ps?(this.removeAttribute(i),null):r&&function(e){this.setAttribute(i,r(e))}}function r(e,n){var r=t.call(this,e,n,this.getAttributeNS(i.space,i.local));return r===Ps?(this.removeAttributeNS(i.space,i.local),null):r&&function(e){this.setAttributeNS(i.space,i.local,r(e))}}var i=d3.ns.qualify(e);return this.tween("attr."+e,i.local?r:n)},Ns.style=function(e,t,n){var r=arguments.length;if(r<3){if(typeof e!="string"){r<2&&(t="");for(n in e)this.styleTween(n,Ct(e[n],n),t);return this}n=""}return this.styleTween(e,Ct(t,e),n)},Ns.styleTween=function(e,t,n){return arguments.length<3&&(n=""),this.tween("style."+e,function(r,i){var s=t.call(this,r,i,window.getComputedStyle(this,null).getPropertyValue(e));return s===Ps?(this.style.removeProperty(e),null):s&&function(t){this.style.setProperty(e,s(t),n)}})},Ns.text=function(e){return this.tween("text",function(t,n){this.textContent=typeof e=="function"?e.call(this,t,n):e})},Ns.remove=function(){return this.each("end.transition",function(){var e;!this.__transition__&&(e=this.parentNode)&&e.removeChild(this)})},Ns.delay=function(e){return Et(this,typeof e=="function"?function(t,n,r){t.delay=e.call(t=t.node,t.__data__,n,r)|0}:(e|=0,function(t){t.delay=e}))},Ns.duration=function(e){return Et(this,typeof e=="function"?function(t,n,r){t.duration=Math.max(1,e.call(t=t.node,t.__data__,n,r)|0)}:(e=Math.max(1,e|0),function(t){t.duration=e}))},Ns.transition=function(){return this.select(s)},d3.tween=function(e,t){function n(n,r,i){var s=e.call(this,n,r);return s==null?i!=""&&Ps:i!=s&&t(i,s)}function r(n,r,i){return i!=e&&t(i,e)}return typeof e=="function"?n:e==null?Nt:(e+="",r)};var Ps={},Hs=null,Bs,js;d3.timer=function(e,t,n){var r=!1,i,s=Hs;if(arguments.length<3){if(arguments.length<2)t=0;else if(!isFinite(t))return;n=Date.now()}while(s){if(s.callback===e){s.then=n,s.delay=t,r=!0;break}i=s,s=s.next}r||(Hs={callback:e,then:n,delay:t,next:Hs}),Bs||(js=clearTimeout(js),Bs=1,Fs(kt))},d3.timer.flush=function(){var e,t=Date.now(),n=Hs;while(n)e=t-n.then,n.delay||(n.flush=n.callback(e)),n=n.next;Lt()};var Fs=window.requestAnimationFrame||window.webkitRequestAnimationFrame||
-window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||function(e){setTimeout(e,17)};d3.mouse=function(e){return At(e,_())};var Is=/WebKit/.test(navigator.userAgent)?-1:0;d3.touches=function(e,t){return arguments.length<2&&(t=_().touches),t?$i(t).map(function(t){var n=At(e,t);return n.identifier=t.identifier,n}):[]},d3.scale={},d3.scale.linear=function(){return Ht([0,1],[0,1],d3.interpolate,!1)},d3.scale.log=function(){return zt(d3.scale.linear(),Wt)};var qs=d3.format(".0e");Wt.pow=function(e){return Math.pow(10,e)},Xt.pow=function(e){return-Math.pow(10,-e)},d3.scale.pow=function(){return Vt(d3.scale.linear(),1)},d3.scale.sqrt=function(){return d3.scale.pow().exponent(.5)},d3.scale.ordinal=function(){return Jt([],{t:"range",a:[[]]})},d3.scale.category10=function(){return d3.scale.ordinal().range(Rs)},d3.scale.category20=function(){return d3.scale.ordinal().range(Us)},d3.scale.category20b=function(){return d3.scale.ordinal().range(zs)},d3.scale.category20c=function(){return d3.scale.ordinal().range(Ws)};var Rs=["#1f77b4","#ff7f0e","#2ca02c","#d62728","#9467bd","#8c564b","#e377c2","#7f7f7f","#bcbd22","#17becf"],Us=["#1f77b4","#aec7e8","#ff7f0e","#ffbb78","#2ca02c","#98df8a","#d62728","#ff9896","#9467bd","#c5b0d5","#8c564b","#c49c94","#e377c2","#f7b6d2","#7f7f7f","#c7c7c7","#bcbd22","#dbdb8d","#17becf","#9edae5"],zs=["#393b79","#5254a3","#6b6ecf","#9c9ede","#637939","#8ca252","#b5cf6b","#cedb9c","#8c6d31","#bd9e39","#e7ba52","#e7cb94","#843c39","#ad494a","#d6616b","#e7969c","#7b4173","#a55194","#ce6dbd","#de9ed6"],Ws=["#3182bd","#6baed6","#9ecae1","#c6dbef","#e6550d","#fd8d3c","#fdae6b","#fdd0a2","#31a354","#74c476","#a1d99b","#c7e9c0","#756bb1","#9e9ac8","#bcbddc","#dadaeb","#636363","#969696","#bdbdbd","#d9d9d9"];d3.scale.quantile=function(){return Kt([],[])},d3.scale.quantize=function(){return Qt(0,1,[0,1])},d3.scale.threshold=function(){return Gt([.5],[0,1])},d3.scale.identity=function(){return Yt([0,1])},d3.svg={},d3.svg.arc=function(){function e(){var e=t.apply(this,arguments),s=n.apply(this,arguments),o=r.apply(this,arguments)+Xs,u=i.apply(this,arguments)+Xs,a=(u<o&&(a=o,o=u,u=a),u-o),f=a<Math.PI?"0":"1",l=Math.cos(o),c=Math.sin(o),h=Math.cos(u),p=Math.sin(u);return a>=Vs?e?"M0,"+s+"A"+s+","+s+" 0 1,1 0,"+ -s+"A"+s+","+s+" 0 1,1 0,"+s+"M0,"+e+"A"+e+","+e+" 0 1,0 0,"+ -e+"A"+e+","+e+" 0 1,0 0,"+e+"Z":"M0,"+s+"A"+s+","+s+" 0 1,1 0,"+ -s+"A"+s+","+s+" 0 1,1 0,"+s+"Z":e?"M"+s*l+","+s*c+"A"+s+","+s+" 0 "+f+",1 "+s*h+","+s*p+"L"+e*h+","+e*p+"A"+e+","+e+" 0 "+f+",0 "+e*l+","+e*c+"Z":"M"+s*l+","+s*c+"A"+s+","+s+" 0 "+f+",1 "+s*h+","+s*p+"L0,0"+"Z"}var t=Zt,n=en,r=tn,i=nn;return e.innerRadius=function(n){return arguments.length?(t=u(n),e):t},e.outerRadius=function(t){return arguments.length?(n=u(t),e):n},e.startAngle=function(t){return arguments.length?(r=u(t),e):r},e.endAngle=function(t){return arguments.length?(i=u(t),e):i},e.centroid=function(){var e=(t.apply(this,arguments)+n.apply(this,arguments))/2,s=(r.apply(this,arguments)+i.apply(this,arguments))/2+Xs;return[Math.cos(s)*e,Math.sin(s)*e]},e};var Xs=-Math.PI/2,Vs=2*Math.PI-1e-6;d3.svg.line=function(){return rn(i)};var $s=d3.map({linear:un,"linear-closed":an,"step-before":fn,"step-after":ln,basis:mn,"basis-open":gn,"basis-closed":yn,bundle:bn,cardinal:pn,"cardinal-open":cn,"cardinal-closed":hn,monotone:Nn});$s.forEach(function(e,t){t.key=e,t.closed=/-closed$/.test(e)});var Js=[0,2/3,1/3,0],Ks=[0,1/3,2/3,0],Qs=[0,1/6,2/3,1/6];d3.svg.line.radial=function(){var e=rn(Cn);return e.radius=e.x,delete e.x,e.angle=e.y,delete e.y,e},fn.reverse=ln,ln.reverse=fn,d3.svg.area=function(){return kn(i)},d3.svg.area.radial=function(){var e=kn(Cn);return e.radius=e.x,delete e.x,e.innerRadius=e.x0,delete e.x0,e.outerRadius=e.x1,delete e.x1,e.angle=e.y,delete e.y,e.startAngle=e.y0,delete e.y0,e.endAngle=e.y1,delete e.y1,e},d3.svg.chord=function(){function e(e,u){var a=t(this,s,e,u),f=t(this,o,e,u);return"M"+a.p0+r(a.r,a.p1,a.a1-a.a0)+(n(a,f)?i(a.r,a.p1,a.r,a.p0):i(a.r,a.p1,f.r,f.p0)+r(f.r,f.p1,f.a1-f.a0)+i(f.r,f.p1,a.r,a.p0))+"Z"}function t(e,t,n,r){var i=t.call(e,n,r),s=a.call(e,i,r),o=f.call(e,i,r)+Xs,u=l.call(e,i,r)+Xs;return{r:s,a0:o,a1:u,p0:[s*Math.cos(o),s*Math.sin(o)],p1:[s*Math.cos(u),s*Math.sin(u)]}}function n(e,t){return e.a0==t.a0&&e.a1==t.a1}function r(e,t,n){return"A"+e+","+e+" 0 "+ +(n>Math.PI)+",1 "+t}function i(e,t,n,r){return"Q 0,0 "+r}var s=Ln,o=An,a=On,f=tn,l=nn;return e.radius=function(t){return arguments.length?(a=u(t),e):a},e.source=function(t){return arguments.length?(s=u(t),e):s},e.target=function(t){return arguments.length?(o=u(t),e):o},e.startAngle=function(t){return arguments.length?(f=u(t),e):f},e.endAngle=function(t){return arguments.length?(l=u(t),e):l},e},d3.svg.diagonal=function(){function e(e,i){var s=t.call(this,e,i),o=n.call(this,e,i),u=(s.y+o.y)/2,a=[s,{x:s.x,y:u},{x:o.x,y:u},o];return a=a.map(r),"M"+a[0]+"C"+a[1]+" "+a[2]+" "+a[3]}var t=Ln,n=An,r=Dn;return e.source=function(n){return arguments.length?(t=u(n),e):t},e.target=function(t){return arguments.length?(n=u(t),e):n},e.projection=function(t){return arguments.length?(r=t,e):r},e},d3.svg.diagonal.radial=function(){var e=d3.svg.diagonal(),t=Dn,n=e.projection;return e.projection=function(e){return arguments.length?n(Pn(t=e)):t},e},d3.svg.mouse=d3.mouse,d3.svg.touches=d3.touches,d3.svg.symbol=function(){function e(e,r){return(Gs.get(t.call(this,e,r))||jn)(n.call(this,e,r))}var t=Bn,n=Hn;return e.type=function(n){return arguments.length?(t=u(n),e):t},e.size=function(t){return arguments.length?(n=u(t),e):n},e};var Gs=d3.map({circle:jn,cross:function(e){var t=Math.sqrt(e/5)/2;return"M"+ -3*t+","+ -t+"H"+ -t+"V"+ -3*t+"H"+t+"V"+ -t+"H"+3*t+"V"+t+"H"+t+"V"+3*t+"H"+ -t+"V"+t+"H"+ -3*t+"Z"},diamond:function(e){var t=Math.sqrt(e/(2*Zs)),n=t*Zs;return"M0,"+ -t+"L"+n+",0"+" 0,"+t+" "+ -n+",0"+"Z"},square:function(e){var t=Math.sqrt(e)/2;return"M"+ -t+","+ -t+"L"+t+","+ -t+" "+t+","+t+" "+ -t+","+t+"Z"},"triangle-down":function(e){var t=Math.sqrt(e/Ys),n=t*Ys/2;return"M0,"+n+"L"+t+","+ -n+" "+ -t+","+ -n+"Z"},"triangle-up":function(e){var t=Math.sqrt(e/Ys),n=t*Ys/2;return"M0,"+ -n+"L"+t+","+n+" "+ -t+","+n+"Z"}});d3.svg.symbolTypes=Gs.keys();var Ys=Math.sqrt(3),Zs=Math.tan(30*Math.PI/180);d3.svg.axis=function(){function e(e){e.each(function(){var e=d3.select(this),c=a==null?t.ticks?t.ticks.apply(t,u):t.domain():a,h=f==null?t.tickFormat?t.tickFormat.apply(t,u):String:f,p=qn(t,c,l),d=e.selectAll(".minor").data(p,String),v=d.enter().insert("line","g").attr("class","tick minor").style("opacity",1e-6),m=d3.transition(d.exit()).style("opacity",1e-6).remove(),g=d3.transition(d).style("opacity",1),y=e.selectAll("g").data(c,String),b=y.enter().insert("g","path").style("opacity",1e-6),w=d3.transition(y.exit()).style("opacity",1e-6).remove(),E=d3.transition(y).style("opacity",1),S,x=_t(t),T=e.selectAll(".domain").data([0]),N=T.enter().append("path").attr("class","domain"),C=d3.transition(T),k=t.copy(),L=this.__chart__||k;this.__chart__=k,b.append("line").attr("class","tick"),b.append("text");var A=b.select("line"),O=E.select("line"),M=y.select("text").text(h),_=b.select("text"),D=E.select("text");switch(n){case"bottom":S=Fn,v.attr("y2",i),g.attr("x2",0).attr("y2",i),A.attr("y2",r),_.attr("y",Math.max(r,0)+o),O.attr("x2",0).attr("y2",r),D.attr("x",0).attr("y",Math.max(r,0)+o),M.attr("dy",".71em").attr("text-anchor","middle"),C.attr("d","M"+x[0]+","+s+"V0H"+x[1]+"V"+s);break;case"top":S=Fn,v.attr("y2",-i),g.attr("x2",0).attr("y2",-i),A.attr("y2",-r),_.attr("y",-(Math.max(r,0)+o)),O.attr("x2",0).attr("y2",-r),D.attr("x",0).attr("y",-(Math.max(r,0)+o)),M.attr("dy","0em").attr("text-anchor","middle"),C.attr("d","M"+x[0]+","+ -s+"V0H"+x[1]+"V"+ -s);break;case"left":S=In,v.attr("x2",-i),g.attr("x2",-i).attr("y2",0),A.attr("x2",-r),_.attr("x",-(Math.max(r,0)+o)),O.attr("x2",-r).attr("y2",0),D.attr("x",-(Math.max(r,0)+o)).attr("y",0),M.attr("dy",".32em").attr("text-anchor","end"),C.attr("d","M"+ -s+","+x[0]+"H0V"+x[1]+"H"+ -s);break;case"right":S=In,v.attr("x2",i),g.attr("x2",i).attr("y2",0),A.attr("x2",r),_.attr("x",Math.max(r,0)+o),O.attr("x2",r).attr("y2",0),D.attr("x",Math.max(r,0)+o).attr("y",0),M.attr("dy",".32em").attr("text-anchor","start"),C.attr("d","M"+s+","+x[0]+"H0V"+x[1]+"H"+s)}if(t.ticks)b.call(S,L),E.call(S,k),w.call(S,k),v.call(S,L),g.call(S,k),m.call(S,k);else{var P=k.rangeBand()/2,H=function(e){return k(e)+P};b.call(S,H),E.call(S,H)}})}var t=d3.scale.linear(),n="bottom",r=6,i=6,s=6,o=3,u=[10],a=null,f,l=0;return e.scale=function(n){return arguments.length?(t=n,e):t},e.orient=function(t){return arguments.length?(n=t,e):n},e.ticks=function(){return arguments.length?(u=arguments,e):u},e.tickValues=function(t){return arguments.length?(a=t,e):a},e.tickFormat=function(t){return arguments.length?(f=t,e):f},e.tickSize=function(t,n,o){if(!arguments.length)return r;var u=arguments.length-1;return r=+t,i=u>1?+n:r,s=u>0?+arguments[u]:r,e},e.tickPadding=function(t){return arguments.length?(o=+t,e):o},e.tickSubdivide=function(t){return arguments.length?(l=+t,e):l},e},d3.svg.brush=function(){function e(s){s.each(function(){var s=d3.select(this),f=s.selectAll(".background").data([0]),l=s.selectAll(".extent").data([0]),c=s.selectAll(".resize").data(a,String),h;s.style("pointer-events","all").on("mousedown.brush",i).on("touchstart.brush",i),f.enter().append("rect").attr("class","background").style("visibility","hidden").style("cursor","crosshair"),l.enter().append("rect").attr("class","extent").style("cursor","move"),c.enter().append("g").attr("class",function(e){return"resize "+e}).style("cursor",function(e){return eo[e]}).append("rect").attr("x",function(e){return/[ew]$/.test(e)?-3:null}).attr("y",function(e){return/^[ns]/.test(e)?-3:null}).attr("width",6).attr("height",6).style("visibility","hidden"),c.style("display",e.empty()?"none":null),c.exit().remove(),o&&(h=_t(o),f.attr("x",h[0]).attr("width",h[1]-h[0]),n(s)),u&&(h=_t(u),f.attr("y",h[0]).attr("height",h[1]-h[0]),r(s)),t(s)})}function t(e){e.selectAll(".resize").attr("transform",function(e){return"translate("+f[+/e$/.test(e)][0]+","+f[+/^s/.test(e)][1]+")"})}function n(e){e.select(".extent").attr("x",f[0][0]),e.selectAll(".extent,.n>rect,.s>rect").attr("width",f[1][0]-f[0][0])}function r(e){e.select(".extent").attr("y",f[0][1]),e.selectAll(".extent,.e>rect,.w>rect").attr("height",f[1][1]-f[0][1])}function i(){function i(){var e=d3.event.changedTouches;return e?d3.touches(v,e)[0]:d3.mouse(v)}function a(){d3.event.keyCode==32&&(S||(x=null,T[0]-=f[1][0],T[1]-=f[1][1],S=2),M())}function c(){d3.event.keyCode==32&&S==2&&(T[0]+=f[1][0],T[1]+=f[1][1],S=0,M())}function h(){var e=i(),s=!1;N&&(e[0]+=N[0],e[1]+=N[1]),S||(d3.event.altKey?(x||(x=[(f[0][0]+f[1][0])/2,(f[0][1]+f[1][1])/2]),T[0]=f[+(e[0]<x[0])][0],T[1]=f[+(e[1]<x[1])][1]):x=null),w&&p(e,o,0)&&(n(y),s=!0),E&&p(e,u,1)&&(r(y),s=!0),s&&(t(y),g({type:"brush",mode:S?"move":"resize"}))}function p(e,t,n){var r=_t(t),i=r[0],s=r[1],o=T[n],u=f[1][n]-f[0][n],a,c;S&&(i-=o,s-=u+o),a=Math.max(i,Math.min(s,e[n])),S?c=(a+=o)+u:(x&&(o=Math.max(i,Math.min(s,2*x[n]-a))),o<a?(c=a,a=o):c=o);if(f[0][n]!==a||f[1][n]!==c)return l=null,f[0][n]=a,f[1][n]=c,!0}function d(){h(),y.style("pointer-events","all").selectAll(".resize").style("display",e.empty()?"none":null),d3.select("body").style("cursor",null),C.on("mousemove.brush",null).on("mouseup.brush",null).on("touchmove.brush",null).on("touchend.brush",null).on("keydown.brush",null).on("keyup.brush",null),g({type:"brushend"}),M()}var v=this,m=d3.select(d3.event.target),g=s.of(v,arguments),y=d3.select(v),b=m.datum(),w=!/^(n|s)$/.test(b)&&o,E=!/^(e|w)$/.test(b)&&u,S=m.classed("extent"),x,T=i(),N,C=d3.select(window).on("mousemove.brush",h).on("mouseup.brush",d).on("touchmove.brush",h).on("touchend.brush",d).on("keydown.brush",a).on("keyup.brush",c);if(S)T[0]=f[0][0]-T[0],T[1]=f[0][1]-T[1];else if(b){var k=+/w$/.test(b),L=+/^n/.test(b);N=[f[1-k][0]-T[0],f[1-L][1]-T[1]],T[0]=f[k][0],T[1]=f[L][1]}else d3.event.altKey&&(x=T.slice());y.style("pointer-events","none").selectAll(".resize").style("display",null),d3.select("body").style("cursor",m.style("cursor")),g({type:"brushstart"}),h(),M()}var s=D(e,"brushstart","brush","brushend"),o=null,u=null,a=to[0],f=[[0,0],[0,0]],l;return e.x=function(t){return arguments.length?(o=t,a=to[!o<<1|!u],e):o},e.y=function(t){return arguments.length?(u=t,a=to[!o<<1|!u],e):u},e.extent=function(t){var n,r,i,s,a;return arguments.length?(l=[[0,0],[0,0]],o&&(n=t[0],r=t[1],u&&(n=n[0],r=r[0]),l[0][0]=n,l[1][0]=r,o.invert&&(n=o(n),r=o(r)),r<n&&(a=n,n=r,r=a),f[0][0]=n|0,f[1][0]=r|0),u&&(i=t[0],s=t[1],o&&(i=i[1],s=s[1]),l[0][1]=i,l[1][1]=s,u.invert&&(i=u(i),s=u(s)),s<i&&(a=i,i=s,s=a),f[0][1]=i|0,f[1][1]=s|0),e):(t=l||f,o&&(n=t[0][0],r=t[1][0],l||(n=f[0][0],r=f[1][0],o.invert&&(n=o.invert(n),r=o.invert(r)),r<n&&(a=n,n=r,r=a))),u&&(i=t[0][1],s=t[1][1],l||(i=f[0][1],s=f[1][1],u.invert&&(i=u.invert(i),s=u.invert(s)),s<i&&(a=i,i=s,s=a))),o&&u?[[n,i],[r,s]]:o?[n,r]:u&&[i,s])},e.clear=function(){return l=null,f[0][0]=f[0][1]=f[1][0]=f[1][1]=0,e},e.empty=function(){return o&&f[0][0]===f[1][0]||u&&f[0][1]===f[1][1]},d3.rebind(e,s,"on")};var eo={n:"ns-resize",e:"ew-resize",s:"ns-resize",w:"ew-resize",nw:"nwse-resize",ne:"nesw-resize",se:"nwse-resize",sw:"nesw-resize"},to=[["n","e","s","w","nw","ne","se","sw"],["e","w"],["n","s"],[]];d3.behavior={},d3.behavior.drag=function(){function e(){this.on("mousedown.drag",t).on("touchstart.drag",t)}function t(){function e(){var e=o.parentNode;return f?d3.touches(e).filter(function(e){return e.identifier===f})[0]:d3.mouse(e)}function t(){if(!o.parentNode)return i();var t=e(),n=t[0]-c[0],r=t[1]-c[1];h|=n|r,c=t,M(),u({type:"drag",x:t[0]+l[0],y:t[1]+l[1],dx:n,dy:r})}function i(){u({type:"dragend"}),h&&(M(),d3.event.target===a&&p.on("click.drag",s,!0)),p.on(f?"touchmove.drag-"+f:"mousemove.drag",null).on(f?"touchend.drag-"+f:"mouseup.drag",null)}function s(){M(),p.on("click.drag",null)}var o=this,u=n.of(o,arguments),a=d3.event.target,f=d3.event.touches&&d3.event.changedTouches[0].identifier,l,c=e(),h=0,p=d3.select(window).on(f?"touchmove.drag-"+f:"mousemove.drag",t).on(f?"touchend.drag-"+f:"mouseup.drag",i,!0);r?(l=r.apply(o,arguments),l=[l.x-c[0],l.y-c[1]]):l=[0,0],f||M(),u({type:"dragstart"})}var n=D(e,"drag","dragstart","dragend"),r=null;return e.origin=function(t){return arguments.length?(r=t,e):r},d3.rebind(e,n,"on")},d3.behavior.zoom=function(){function e(){this.on("mousedown.zoom",o).on("mousewheel.zoom",u).on("mousemove.zoom",a).on("DOMMouseScroll.zoom",u).on("dblclick.zoom",f).on("touchstart.zoom",l).on("touchmove.zoom",c).on("touchend.zoom",l)}function t(e){return[(e[0]-h[0])/d,(e[1]-h[1])/d]}function n(e){return[e[0]*d+h[0],e[1]*d+h[1]]}function r(e){d=Math.max(m[0],Math.min(m[1],e))}function i(e,t){t=n(t),h[0]+=e[0]-t[0],h[1]+=e[1]-t[1]}function s(e){b&&b.domain(y.range().map(function(e){return(e-h[0])/d}).map(y.invert)),E&&E.domain(w.range().map(function(e){return(e-h[1])/d}).map(w.invert)),d3.event.preventDefault(),e({type:"zoom",scale:d,translate:h})}function o(){function e(){f=1,i(d3.mouse(o),c),s(u)}function n(){f&&M(),l.on("mousemove.zoom",null).on("mouseup.zoom",null),f&&d3.event.target===a&&l.on("click.zoom",r,!0)}function r(){M(),l.on("click.zoom",null)}var o=this,u=g.of(o,arguments),a=d3.event.target,f=0,l=d3.select(window).on("mousemove.zoom",e).on("mouseup.zoom",n),c=t(d3.mouse(o));window.focus(),M()}function u(){p||(p=t(d3.mouse(this))),r(Math.pow(2,Rn()*.002)*d),i(d3.mouse(this),p),s(g.of(this,arguments))}function a(){p=null}function f(){var e=d3.mouse(this),n=t(e);r(d3.event.shiftKey?d/2:d*2),i(e,n),s(g.of(this,arguments))}function l(){var e=d3.touches(this),n=Date.now();v=d,p={},e.forEach(function(e){p[e.identifier]=t(e)}),M();if(e.length===1){if(n-S<500){var o=e[0],u=t(e[0]);r(d*2),i(o,u),s(g.of(this,arguments))}S=n}}function c(){var e=d3.touches(this),t=e[0],n=p[t.identifier];if(o=e[1]){var o,u=p[o.identifier];t=[(t[0]+o[0])/2,(t[1]+o[1])/2],n=[(n[0]+u[0])/2,(n[1]+u[1])/2],r(d3.event.scale*v)}i(t,n),S=null,s(g.of(this,arguments))}var h=[0,0],p,d=1,v,m=ro,g=D(e,"zoom"),y,b,w,E,S;return e.translate=function(t){return arguments.length?(h=t.map(Number),e):h},e.scale=function(t){return arguments.length?(d=+t,e):d},e.scaleExtent=function(t){return arguments.length?(m=t==null?ro:t.map(Number),e):m},e.x=function(t){return arguments.length?(b=t,y=t.copy(),e):b},e.y=function(t){return arguments.length?(E=t,w=t.copy(),e):E},d3.rebind(e,g,"on")};var no,ro=[0,Infinity];d3.layout={},d3.layout.bundle=function(){return function(e){var t=[],n=-1,r=e.length;while(++n<r)t.push(Un(e[n]));return t}},d3.layout.chord=function(){function e(){var e={},n=[],c=d3.range(o),h=[],p,d,v,m,g;r=[],i=[],p=0,m=-1;while(++m<o){d=0,g=-1;while(++g<o)d+=s[m][g];n.push(d),h.push(d3.range(o)),p+=d}a&&c.sort(function(e,t){return a(n[e],n[t])}),f&&h.forEach(function(e,t){e.sort(function(e,n){return f(s[t][e],s[t][n])})}),p=(2*Math.PI-u*o)/p,d=0,m=-1;while(++m<o){v=d,g=-1;while(++g<o){var y=c[m],b=h[y][g],w=s[y][b],E=d,S=d+=w*p;e[y+"-"+b]={index:y,subindex:b,startAngle:E,endAngle:S,value:w}}i[y]={index:y,startAngle:v,endAngle:d,value:(d-v)/p},d+=u}m=-1;while(++m<o){g=m-1;while(++g<o){var x=e[m+"-"+g],T=e[g+"-"+m];(x.value||T.value)&&r.push(x.value<T.value?{source:T,target:x}:{source:x,target:T})}}l&&t()}function t(){r.sort(function(e,t){return l((e.source.value+e.target.value)/2,(t.source.value+t.target.value)/2)})}var n={},r,i,s,o,u=0,a,f,l;return n.matrix=function(e){return arguments.length?(o=(s=e)&&s.length,r=i=null,n):s},n.padding=function(e){return arguments.length?(u=e,r=i=null,n):u},n.sortGroups=function(e){return arguments.length?(a=e,r=i=null,n):a},n.sortSubgroups=function(e){return arguments.length?(f=e,r=null,n):f},n.sortChords=function(e){return arguments.length?(l=e,r&&t(),n):l},n.chords=function(){return r||e(),r},n.groups=function(){return i||e(),i},n},d3.layout.force=function(){function e(e){return function(t,n,r,i,s){if(t.point!==e){var o=t.cx-e.x,u=t.cy-e.y,a=1/Math.sqrt(o*o+u*u);if((i-n)*a<d){var f=t.charge*a*a;return e.px-=o*f,e.py-=u*f,!0}if(t.point&&isFinite(a)){var f=t.pointCharge*a*a;e.px-=o*f,e.py-=u*f}}return!t.charge}}function t(e){e.px=d3.event.x,e.py=d3.event.y,n.resume()}var n={},r=d3.dispatch("start","tick","end"),s=[1,1],o,a,f=.9,l=Qn,c=Gn,h=-30,p=.1,d=.8,v,m=[],g=[],y,b,w;return n.tick=function(){if((a*=.99)<.005)return r.end({type:"end",alpha:a=0}),!0;var t=m.length,n=g.length,i,o,u,l,c,d,v,E,S;for(o=0;o<n;++o){u=g[o],l=u.source,c=u.target,E=c.x-l.x,S=c.y-l.y;if(d=E*E+S*S)d=a*b[o]*((d=Math.sqrt(d))-y[o])/d,E*=d,S*=d,c.x-=E*(v=l.weight/(c.weight+l.weight)),c.y-=S*v,l.x+=E*(v=1-v),l.y+=S*v}if(v=a*p){E=s[0]/2,S=s[1]/2,o=-1;if(v)while(++o<t)u=m[o],u.x+=(E-u.x)*v,u.y+=(S-u.y)*v}if(h){Kn(i=d3.geom.quadtree(m),a,w),o=-1;while(++o<t)(u=m[o]).fixed||i.visit(e(u))}o=-1;while(++o<t)u=m[o],u.fixed?(u.x=u.px,u.y=u.py):(u.x-=(u.px-(u.px=u.x))*f,u.y-=(u.py-(u.py=u.y))*f);r.tick({type:"tick",alpha:a})},n.nodes=function(e){return arguments.length?(m=e,n):m},n.links=function(e){return arguments.length?(g=e,n):g},n.size=function(e){return arguments.length?(s=e,n):s},n.linkDistance=function(e){return arguments.length?(l=u(e),n):l},n.distance=n.linkDistance,n.linkStrength=function(e){return arguments.length?(c=u(e),n):c},n.friction=function(e){return arguments.length?(f=e,n):f},n.charge=function(e){return arguments.length?(h=typeof e=="function"?e:+e,n):h},n.gravity=function(e){return arguments.length?(p=e,n):p},n.theta=function(e){return arguments.length?(d=e,n):d},n.alpha=function(e){return arguments.length?(a?e>0?a=e:a=0:e>0&&(r.start({type:"start",alpha:a=e}),d3.timer(n.tick)),n):a},n.start=function(){function e(e,n){var i=t(r),s=-1,o=i.length,u;while(++s<o)if(!isNaN(u=i[s][e]))return u;return Math.random()*n}function t(){if(!p){p=[];for(i=0;i<o;++i)p[i]=[];for(i=0;i<u;++i){var e=g[i];p[e.source.index].push(e.target),p[e.target.index].push(e.source)}}return p[r]}var r,i,o=m.length,u=g.length,a=s[0],f=s[1],p,d;for(r=0;r<o;++r)(d=m[r]).index=r,d.weight=0;y=[],b=[];for(r=0;r<u;++r)d=g[r],typeof d.source=="number"&&(d.source=m[d.source]),typeof d.target=="number"&&(d.target=m[d.target]),y[r]=l.call(this,d,r),b[r]=c.call(this,d,r),++d.source.weight,++d.target.weight;for(r=0;r<o;++r)d=m[r],isNaN(d.x)&&(d.x=e("x",a)),isNaN(d.y)&&(d.y=e("y",f)),isNaN(d.px)&&(d.px=d.x),isNaN(d.py)&&(d.py=d.y);w=[];if(typeof h=="function")for(r=0;r<o;++r)w[r]=+h.call(this,m[r],r);else for(r=0;r<o;++r)w[r]=h;return n.resume()},n.resume=function(){return n.alpha(.1)},n.stop=function(){return n.alpha(0)},n.drag=function(){o||(o=d3.behavior.drag().origin(i).on("dragstart",Xn).on("drag",t).on("dragend",Vn)),this.on("mouseover.force",$n).on("mouseout.force",Jn).call(o)},d3.rebind(n,r,"on")},d3.layout.partition=function(){function e(t,n,r,i){var s=t.children;t.x=n,t.y=t.depth*i,t.dx=r,t.dy=i;if(s&&(u=s.length)){var o=-1,u,a,f;r=t.value?r/t.value:0;while(++o<u)e(a=s[o],n,f=a.value*r,i),n+=f}}function t(e){var n=e.children,r=0;if(n&&(s=n.length)){var i=-1,s;while(++i<s)r=Math.max(r,t(n[i]))}return 1+r}function n(n,s){var o=r.call(this,n,s);return e(o[0],0,i[0],i[1]/t(o[0])),o}var r=d3.layout.hierarchy(),i=[1,1];return n.size=function(e){return arguments.length?(i=e,n):i},fr(n,r)},d3.layout.pie=function(){function e(s,o){var u=s.map(function(n,r){return+t.call(e,n,r)}),a=+(typeof r=="function"?r.apply(this,arguments):r),f=((typeof i=="function"?i.apply(this,arguments):i)-r)/d3.sum(u),l=d3.range(s.length);n!=null&&l.sort(n===io?function(e,t){return u[t]-u[e]}:function(e,t){return n(s[e],s[t])});var c=[];return l.forEach(function(e){var t;c[e]={data:s[e],value:t=u[e],startAngle:a,endAngle:a+=t*f}}),c}var t=Number,n=io,r=0,i=2*Math.PI;return e.value=function(n){return arguments.length?(t=n,e):t},e.sort=function(t){return arguments.length?(n=t,e):n},e.startAngle=function(t){return arguments.length?(r=t,e):r},e.endAngle=function(t){return arguments.length?(i=t,e):i},e};var io={};d3.layout.stack=function(){function e(i,a){var f=i.map(function(n,r){return t.call(e,n,r)}),l=f.map(function(t,n){return t.map(function(t,n){return[o.call(e,t,n),u.call(e,t,n)]})}),c=n.call(e,l,a);f=d3.permute(f,c),l=d3.permute(l,c);var h=r.call(e,l,a),p=f.length,d=f[0].length,v,m,g;for(m=0;m<d;++m){s.call(e,f[0][m],g=h[m],l[0][m][1]);for(v=1;v<p;++v)s.call(e,f[v][m],g+=l[v-1][m][1],l[v][m][1])}return i}var t=i,n=tr,r=nr,s=er,o=Yn,u=Zn;return e.values=function(n){return arguments.length?(t=n,e):t},e.order=function(t){return arguments.length?(n=typeof t=="function"?t:so.get(t)||tr,e):n},e.offset=function(t){return arguments.length?(r=typeof t=="function"?t:oo.get(t)||nr,e):r},e.x=function(t){return arguments.length?(o=t,e):o},e.y=function(t){return arguments.length?(u=t,e):u},e.out=function(t){return arguments.length?(s=t,e):s},e};var so=d3.map({"inside-out":function(e){var t=e.length,n,r,i=e.map(rr),s=e.map(ir),o=d3.range(t).sort(function(e,t){return i[e]-i[t]}),u=0,a=0,f=[],l=[];for(n=0;n<t;++n)r=o[n],u<a?(u+=s[r],f.push(r)):(a+=s[r],l.push(r));return l.reverse().concat(f)},reverse:function(e){return d3.range(e.length).reverse()},"default":tr}),oo=d3.map({silhouette:function(e){var t=e.length,n=e[0].length,r=[],i=0,s,o,u,a=[];for(o=0;o<n;++o){for(s=0,u=0;s<t;s++)u+=e[s][o][1];u>i&&(i=u),r.push(u)}for(o=0;o<n;++o)a[o]=(i-r[o])/2;return a},wiggle:function(e){var t=e.length,n=e[0],r=n.length,i=0,s,o,u,a,f,l,c,h,p,d=[];d[0]=h=p=0;for(o=1;o<r;++o){for(s=0,a=0;s<t;++s)a+=e[s][o][1];for(s=0,f=0,c=n[o][0]-n[o-1][0];s<t;++s){for(u=0,l=(e[s][o][1]-e[s][o-1][1])/(2*c);u<s;++u)l+=(e[u][o][1]-e[u][o-1][1])/c;f+=l*e[s][o][1]}d[o]=h-=a?f/a*c:0,h<p&&(p=h)}for(o=0;o<r;++o)d[o]-=p;return d},expand:function(e){var t=e.length,n=e[0].length,r=1/t,i,s,o,u=[];for(s=0;s<n;++s){for(i=0,o=0;i<t;i++)o+=e[i][s][1];if(o)for(i=0;i<t;i++)e[i][s][1]/=o;else for(i=0;i<t;i++)e[i][s][1]=r}for(s=0;s<n;++s)u[s]=0;return u},zero:nr});d3.layout.histogram=function(){function e(e,s){var o=[],u=e.map(n,this),a=r.call(this,u,s),f=i.call(this,a,u,s),l,s=-1,c=u.length,h=f.length-1,p=t?1:1/c,d;while(++s<h)l=o[s]=[],l.dx=f[s+1]-(l.x=f[s]),l.y=0;if(h>0){s=-1;while(++s<c)d=u[s],d>=a[0]&&d<=a[1]&&(l=o[d3.bisect(f,d,1,h)-1],l.y+=p,l.push(e[s]))}return o}var t=!0,n=Number,r=ar,i=or;return e.value=function(t){return arguments.length?(n=t,e):n},e.range=function(t){return arguments.length?(r=u(t),e):r},e.bins=function(t){return arguments.length?(i=typeof t=="number"?function(e){return ur(e,t)}:u(t),e):i},e.frequency=function(n){return arguments.length?(t=!!n,e):t},e},d3.layout.hierarchy=function(){function e(t,o,u){var a=i.call(n,t,o),f=uo?t:{data:t};f.depth=o,u.push(f);if(a&&(c=a.length)){var l=-1,c,h=f.children=[],p=0,d=o+1,v;while(++l<c)v=e(a[l],d,u),v.parent=f,h.push(v),p+=v.value;r&&h.sort(r),s&&(f.value=p)}else s&&(f.value=+s.call(n,t,o)||0);return f}function t(e,r){var i=e.children,o=0;if(i&&(a=i.length)){var u=-1,a,f=r+1;while(++u<a)o+=t(i[u],f)}else s&&(o=+s.call(n,uo?e:e.data,r)||0);return s&&(e.value=o),o}function n(t){var n=[];return e(t,0,n),n}var r=hr,i=lr,s=cr;return n.sort=function(e){return arguments.length?(r=e,n):r},n.children=function(e){return arguments.length?(i=e,n):i},n.value=function(e){return arguments.length?(s=e,n):s},n.revalue=function(e){return t(e,0),e},n};var uo=!1;d3.layout.pack=function(){function e(e,i){var s=t.call(this,e,i),o=s[0];o.x=0,o.y=0,Pr(o,function(e){e.r=Math.sqrt(e.value)}),Pr(o,yr);var u=r[0],a=r[1],f=Math.max(2*o.r/u,2*o.r/a);if(n>0){var l=n*f/2;Pr(o,function(e){e.r+=l}),Pr(o,yr),Pr(o,function(e){e.r-=l}),f=Math.max(2*o.r/u,2*o.r/a)}return Er(o,u/2,a/2,1/f),s}var t=d3.layout.hierarchy().sort(dr),n=0,r=[1,1];return e.size=function(t){return arguments.length?(r=t,e):r},e.padding=function(t){return arguments.length?(n=+t,e):n},fr(e,t)},d3.layout.cluster=function(){function e(e,i){var s=t.call(this,e,i),o=s[0],u,a=0,f,l;Pr(o,function(e){var t=e.children;t&&t.length?(e.x=Tr(t),e.y=xr(t)):(e.x=u?a+=n(e,u):0,e.y=0,u=e)});var c=Nr(o),h=Cr(o),p=c.x-n(c,h)/2,d=h.x+n(h,c)/2;return Pr(o,function(e){e.x=(e.x-p)/(d-p)*r[0],e.y=(1-(o.y?e.y/o.y:1))*r[1]}),s}var t=d3.layout.hierarchy().sort(null).value(null),n=kr,r=[1,1];return e.separation=function(t){return arguments.length?(n=t,e):n},e.size=function(t){return arguments.length?(r=t,e):r},fr(e,t)},d3.layout.tree=function(){function e(e,i){function s(e,t){var r=e.children,i=e._tree;if(r&&(o=r.length)){var o,a=r[0],f,l=a,c,h=-1;while(++h<o)c=r[h],s(c,f),l=u(c,f,l),f=c;Hr(e);var p=.5*(a._tree.prelim+c._tree.prelim);t?(i.prelim=t._tree.prelim+n(e,t),i.mod=i.prelim-p):i.prelim=p}else t&&(i.prelim=t._tree.prelim+n(e,t))}function o(e,t){e.x=e._tree.prelim+t;var n=e.children;if(n&&(i=n.length)){var r=-1,i;t+=e._tree.mod;while(++r<i)o(n[r],t)}}function u(e,t,r){if(t){var i=e,s=e,o=t,u=e.parent.children[0],a=i._tree.mod,f=s._tree.mod,l=o._tree.mod,c=u._tree.mod,h;while(o=Ar(o),i=Lr(i),o&&i)u=Lr(u),s=Ar(s),s._tree.ancestor=e,h=o._tree.prelim+l-i._tree.prelim-a+n(o,i),h>0&&(Br(jr(o,e,r),e,h),a+=h,f+=h),l+=o._tree.mod,a+=i._tree.mod,c+=u._tree.mod,f+=s._tree.mod;o&&!Ar(s)&&(s._tree.thread=o,s._tree.mod+=l-f),i&&!Lr(u)&&(u._tree.thread=i,u._tree.mod+=a-c,r=e)}return r}var a=t.call(this,e,i),f=a[0];Pr(f,function(e,t){e._tree={ancestor:e,prelim:0,mod:0,change:0,shift:0,number:t?t._tree.number+1:0}}),s(f),o(f,-f._tree.prelim);var l=Or(f,_r),c=Or(f,Mr),h=Or(f,Dr),p=l.x-n(l,c)/2,d=c.x+n(c,l)/2,v=h.depth||1;return Pr(f,function(e){e.x=(e.x-p)/(d-p)*r[0],e.y=e.depth/v*r[1],delete e._tree}),a}var t=d3.layout.hierarchy().sort(null).value(null),n=kr,r=[1,1];return e.separation=function(t){return arguments.length?(n=t,e):n},e.size=function(t){return arguments.length?(r=t,e):r},fr(e,t)},d3.layout.treemap=function(){function e(e,t){var n=-1,r=e.length,i,s;while(++n<r)s=(i=e[n]).value*(t<0?0:t),i.area=isNaN(s)||s<=0?0:s}function t(n){var s=n.children;if(s&&s.length){var o=l(n),u=[],a=s.slice(),f,c=Infinity,h,p=Math.min(o.dx,o.dy),d;e(a,o.dx*o.dy/n.value),u.area=0;while((d=a.length)>0)u.push(f=a[d-1]),u.area+=f.area,(h=r(u,p))<=c?(a.pop(),c=h):(u.area-=u.pop().area,i(u,p,o,!1),p=Math.min(o.dx,o.dy),u.length=u.area=0,c=Infinity);u.length&&(i(u,p,o,!0),u.length=u.area=0),s.forEach(t)}}function n(t){var r=t.children;if(r&&r.length){var s=l(t),o=r.slice(),u,a=[];e(o,s.dx*s.dy/t.value),a.area=0;while(u=o.pop())a.push(u),a.area+=u.area,u.z!=null&&(i(a,u.z?s.dx:s.dy,s,!o.length),a.length=a.area=0);r.forEach(n)}}function r(e,t){var n=e.area,r,i=0,s=Infinity,o=-1,u=e.length;while(++o<u){if(!(r=e[o].area))continue;r<s&&(s=r),r>i&&(i=r)}return n*=n,t*=t,n?Math.max(t*i*p/n,n/(t*s*p)):Infinity}function i(e,t,n,r){var i=-1,s=e.length,o=n.x,a=n.y,f=t?u(e.area/t):0,l;if(t==n.dx){if(r||f>n.dy)f=n.dy;while(++i<s)l=e[i],l.x=o,l.y=a,l.dy=f,o+=l.dx=Math.min(n.x+n.dx-o,f?u(l.area/f):0);l.z=!0,l.dx+=n.x+n.dx-o,n.y+=f,n.dy-=f}else{if(r||f>n.dx)f=n.dx;while(++i<s)l=e[i],l.x=o,l.y=a,l.dx=f,a+=l.dy=Math.min(n.y+n.dy-a,f?u(l.area/f):0);l.z=!1,l.dy+=n.y+n.dy-a,n.x+=f,n.dx-=f}}function s(r){var i=h||o(r),s=i[0];return s.x=0,s.y=0,s.dx=a[0],s.dy=a[1],h&&o.revalue(s),e([s],s.dx*s.dy/s.value),(h?n:t)(s),c&&(h=i),i}var o=d3.layout.hierarchy(),u=Math.round,a=[1,1],f=null,l=Fr,c=!1,h,p=.5*(1+Math.sqrt(5));return s.size=function(e){return arguments.length?(a=e,s):a},s.padding=function(e){function t(t){var n=e.call(s,t,t.depth);return n==null?Fr(t):Ir(t,typeof n=="number"?[n,n,n,n]:n)}function n(t){return Ir(t,e)}if(!arguments.length)return f;var r;return l=(f=e)==null?Fr:(r=typeof e)==="function"?t:r==="number"?(e=[e,e,e,e],n):n,s},s.round=function(e){return arguments.length?(u=e?Math.round:Number,s):u!=Number},s.sticky=function(e){return arguments.length?(c=e,h=null,s):c},s.ratio=function(e){return arguments.length?(p=e,s):p},fr(s,o)},d3.csv=qr(",","text/csv"),d3.tsv=qr("	","text/tab-separated-values"),d3.geo={};var ao=Math.PI/180;d3.geo.azimuthal=function(){function e(e){var n=e[0]*ao-s,o=e[1]*ao,f=Math.cos(n),l=Math.sin(n),c=Math.cos(o),h=Math.sin(o),p=t!=="orthographic"?a*h+u*c*f:null,d,v=t==="stereographic"?1/(1+p):t==="gnomonic"?1/p:t==="equidistant"?(d=Math.acos(p),d?d/Math.sin(d):0):t==="equalarea"?Math.sqrt(2/(1+p)):1,m=v*c*l,g=v*(a*c*f-u*h);return[r*m+i[0],r*g+i[1]]}var t="orthographic",n,r=200,i=[480,250],s,o,u,a;return e.invert=function(e){var n=(e[0]-i[0])/r,o=(e[1]-i[1])/r,f=Math.sqrt(n*n+o*o),l=t==="stereographic"?2*Math.atan(f):t==="gnomonic"?Math.atan(f):t==="equidistant"?f:t==="equalarea"?2*Math.asin(.5*f):Math.asin(f),c=Math.sin(l),h=Math.cos(l);return[(s+Math.atan2(n*c,f*u*h+o*a*c))/ao,Math.asin(h*a-(f?o*c*u/f:0))/ao]},e.mode=function(n){return arguments.length?(t=n+"",e):t},e.origin=function(t){return arguments.length?(n=t,s=n[0]*ao,o=n[1]*ao,u=Math.cos(o),a=Math.sin(o),e):n},e.scale=function(t){return arguments.length?(r=+t,e):r},e.translate=function(t){return arguments.length?(i=[+t[0],+t[1]],e):i},e.origin([0,0])},d3.geo.albers=function(){function e(e){var t=u*(ao*e[0]-o),n=Math.sqrt(a-2*u*Math.sin(ao*e[1]))/u;return[i*n*Math.sin(t)+s[0],i*(n*Math.cos(t)-f)+s[1]]}function t(){var t=ao*r[0],i=ao*r[1],s=ao*n[1],l=Math.sin(t),c=Math.cos(t);return o=ao*n[0],u=.5*(l+Math.sin(i)),a=c*c+2*u*l,f=Math.sqrt(a-2*u*Math.sin(s))/u,e}var n=[-98,38],r=[29.5,45.5],i=1e3,s=[480,250],o,u,a,f;return e.invert=function(e){var t=(e[0]-s[0])/i,n=(e[1]-s[1])/i,r=f+n,l=Math.atan2(t,r),c=Math.sqrt(t*t+r*r);return[(o+l/u)/ao,Math.asin((a-c*c*u*u)/(2*u))/ao]},e.origin=function(e){return arguments.length?(n=[+e[0],+e[1]],t()):n},e.parallels=function(e){return arguments.length?(r=[+e[0],+e[1]],t()):r},e.scale=function(t){return arguments.length?(i=+t,e):i},e.translate=function(t){return arguments.length?(s=[+t[0],+t[1]],e):s},t()},d3.geo.albersUsa=function(){function e(e){var s=e[0],o=e[1];return(o>50?n:s<-140?r:o<21?i:t)(e)}var t=d3.geo.albers(),n=d3.geo.albers().origin([-160,60]).parallels([55,65]),r=d3.geo.albers().origin([-160,20]).parallels([8,18]),i=d3.geo.albers().origin([-60,10]).parallels([8,18]);return e.scale=function(s){return arguments.length?(t.scale(s),n.scale(s*.6),r.scale(s),i.scale(s*1.5),e.translate(t.translate())):t.scale()},e.translate=function(s){if(!arguments.length)return t.translate();var o=t.scale()/1e3,u=s[0],a=s[1];return t.translate(s),n.translate([u-400*o,a+170*o]),r.translate([u-190*o,a+200*o]),i.translate([u+580*o,a+430*o]),e},e.scale(t.scale())},d3.geo.bonne=function(){function e(e){var u=e[0]*ao-r,a=e[1]*ao-i;if(s){var f=o+s-a,l=u*Math.cos(a)/f;u=f*Math.sin(l),a=f*Math.cos(l)-o}else u*=Math.cos(a),a*=-1;return[t*u+n[0],t*a+n[1]]}var t=200,n=[480,250],r,i,s,o;return e.invert=function(e){var i=(e[0]-n[0])/t,u=(e[1]-n[1])/t;if(s){var a=o+u,f=Math.sqrt(i*i+a*a);u=o+s-f,i=r+f*Math.atan2(i,a)/Math.cos(u)}else u*=-1,i/=Math.cos(u);return[i/ao,u/ao]},e.parallel=function(t){return arguments.length?(o=1/Math.tan
-(s=t*ao),e):s/ao},e.origin=function(t){return arguments.length?(r=t[0]*ao,i=t[1]*ao,e):[r/ao,i/ao]},e.scale=function(n){return arguments.length?(t=+n,e):t},e.translate=function(t){return arguments.length?(n=[+t[0],+t[1]],e):n},e.origin([0,0]).parallel(45)},d3.geo.equirectangular=function(){function e(e){var r=e[0]/360,i=-e[1]/360;return[t*r+n[0],t*i+n[1]]}var t=500,n=[480,250];return e.invert=function(e){var r=(e[0]-n[0])/t,i=(e[1]-n[1])/t;return[360*r,-360*i]},e.scale=function(n){return arguments.length?(t=+n,e):t},e.translate=function(t){return arguments.length?(n=[+t[0],+t[1]],e):n},e},d3.geo.mercator=function(){function e(e){var r=e[0]/360,i=-(Math.log(Math.tan(Math.PI/4+e[1]*ao/2))/ao)/360;return[t*r+n[0],t*Math.max(-0.5,Math.min(.5,i))+n[1]]}var t=500,n=[480,250];return e.invert=function(e){var r=(e[0]-n[0])/t,i=(e[1]-n[1])/t;return[360*r,2*Math.atan(Math.exp(-360*i*ao))/ao-90]},e.scale=function(n){return arguments.length?(t=+n,e):t},e.translate=function(t){return arguments.length?(n=[+t[0],+t[1]],e):n},e},d3.geo.path=function(){function e(e,t){typeof s=="function"&&(o=Ur(s.apply(this,arguments))),f(e);var n=a.length?a.join(""):null;return a=[],n}function t(e){return u(e).join(",")}function n(e){var t=i(e[0]),n=0,r=e.length;while(++n<r)t-=i(e[n]);return t}function r(e){var t=d3.geom.polygon(e[0].map(u)),n=t.area(),r=t.centroid(n<0?(n*=-1,1):-1),i=r[0],s=r[1],o=n,a=0,f=e.length;while(++a<f)t=d3.geom.polygon(e[a].map(u)),n=t.area(),r=t.centroid(n<0?(n*=-1,1):-1),i-=r[0],s-=r[1],o-=n;return[i,s,6*o]}function i(e){return Math.abs(d3.geom.polygon(e.map(u)).area())}var s=4.5,o=Ur(s),u=d3.geo.albersUsa(),a=[],f=Rr({FeatureCollection:function(e){var t=e.features,n=-1,r=t.length;while(++n<r)a.push(f(t[n].geometry))},Feature:function(e){f(e.geometry)},Point:function(e){a.push("M",t(e.coordinates),o)},MultiPoint:function(e){var n=e.coordinates,r=-1,i=n.length;while(++r<i)a.push("M",t(n[r]),o)},LineString:function(e){var n=e.coordinates,r=-1,i=n.length;a.push("M");while(++r<i)a.push(t(n[r]),"L");a.pop()},MultiLineString:function(e){var n=e.coordinates,r=-1,i=n.length,s,o,u;while(++r<i){s=n[r],o=-1,u=s.length,a.push("M");while(++o<u)a.push(t(s[o]),"L");a.pop()}},Polygon:function(e){var n=e.coordinates,r=-1,i=n.length,s,o,u;while(++r<i){s=n[r],o=-1;if((u=s.length-1)>0){a.push("M");while(++o<u)a.push(t(s[o]),"L");a[a.length-1]="Z"}}},MultiPolygon:function(e){var n=e.coordinates,r=-1,i=n.length,s,o,u,f,l,c;while(++r<i){s=n[r],o=-1,u=s.length;while(++o<u){f=s[o],l=-1;if((c=f.length-1)>0){a.push("M");while(++l<c)a.push(t(f[l]),"L");a[a.length-1]="Z"}}}},GeometryCollection:function(e){var t=e.geometries,n=-1,r=t.length;while(++n<r)a.push(f(t[n]))}}),l=e.area=Rr({FeatureCollection:function(e){var t=0,n=e.features,r=-1,i=n.length;while(++r<i)t+=l(n[r]);return t},Feature:function(e){return l(e.geometry)},Polygon:function(e){return n(e.coordinates)},MultiPolygon:function(e){var t=0,r=e.coordinates,i=-1,s=r.length;while(++i<s)t+=n(r[i]);return t},GeometryCollection:function(e){var t=0,n=e.geometries,r=-1,i=n.length;while(++r<i)t+=l(n[r]);return t}},0),c=e.centroid=Rr({Feature:function(e){return c(e.geometry)},Polygon:function(e){var t=r(e.coordinates);return[t[0]/t[2],t[1]/t[2]]},MultiPolygon:function(e){var t=0,n=e.coordinates,i,s=0,o=0,u=0,a=-1,f=n.length;while(++a<f)i=r(n[a]),s+=i[0],o+=i[1],u+=i[2];return[s/u,o/u]}});return e.projection=function(t){return u=t,e},e.pointRadius=function(t){return typeof t=="function"?s=t:(s=+t,o=Ur(s)),e},e},d3.geo.bounds=function(e){var t=Infinity,n=Infinity,r=-Infinity,i=-Infinity;return zr(e,function(e,s){e<t&&(t=e),e>r&&(r=e),s<n&&(n=s),s>i&&(i=s)}),[[t,n],[r,i]]};var fo={Feature:Wr,FeatureCollection:Xr,GeometryCollection:Vr,LineString:$r,MultiLineString:Jr,MultiPoint:$r,MultiPolygon:Kr,Point:Qr,Polygon:Gr};d3.geo.circle=function(){function e(){}function t(e){return a.distance(e)<u}function n(e){var t=-1,n=e.length,i=[],s,o,f,l,c;while(++t<n)c=a.distance(f=e[t]),c<u?(o&&i.push(ti(o,f)((l-u)/(l-c))),i.push(f),s=o=null):(o=f,!s&&i.length&&(i.push(ti(i[i.length-1],o)((u-l)/(c-l))),s=o)),l=c;return s=e[0],o=i[0],o&&f[0]===s[0]&&f[1]===s[1]&&(f[0]!==o[0]||f[1]!==o[1])&&i.push(o),r(i)}function r(e){var t=0,n=e.length,r,i,s=n?[e[0]]:e,o,u=a.source();while(++t<n){o=a.source(e[t-1])(e[t]).coordinates;for(r=0,i=o.length;++r<i;)s.push(o[r])}return a.source(u),s}var s=[0,0],o=89.99,u=o*ao,a=d3.geo.greatArc().source(s).target(i);e.clip=function(e){return typeof s=="function"&&a.source(s.apply(this,arguments)),f(e)||null};var f=Rr({FeatureCollection:function(e){var t=e.features.map(f).filter(i);return t&&(e=Object.create(e),e.features=t,e)},Feature:function(e){var t=f(e.geometry);return t&&(e=Object.create(e),e.geometry=t,e)},Point:function(e){return t(e.coordinates)&&e},MultiPoint:function(e){var n=e.coordinates.filter(t);return n.length&&{type:e.type,coordinates:n}},LineString:function(e){var t=n(e.coordinates);return t.length&&(e=Object.create(e),e.coordinates=t,e)},MultiLineString:function(e){var t=e.coordinates.map(n).filter(function(e){return e.length});return t.length&&(e=Object.create(e),e.coordinates=t,e)},Polygon:function(e){var t=e.coordinates.map(n);return t[0].length&&(e=Object.create(e),e.coordinates=t,e)},MultiPolygon:function(e){var t=e.coordinates.map(function(e){return e.map(n)}).filter(function(e){return e[0].length});return t.length&&(e=Object.create(e),e.coordinates=t,e)},GeometryCollection:function(e){var t=e.geometries.map(f).filter(i);return t.length&&(e=Object.create(e),e.geometries=t,e)}});return e.origin=function(t){return arguments.length?(s=t,typeof s!="function"&&a.source(s),e):s},e.angle=function(t){return arguments.length?(u=(o=+t)*ao,e):o},d3.rebind(e,a,"precision")},d3.geo.greatArc=function(){function e(){var t=e.distance.apply(this,arguments),r=0,u=s/t,a=[n];while((r+=u)<1)a.push(o(r));return a.push(i),{type:"LineString",coordinates:a}}var t=Yr,n,r=Zr,i,s=6*ao,o=ei();return e.distance=function(){return typeof t=="function"&&o.source(n=t.apply(this,arguments)),typeof r=="function"&&o.target(i=r.apply(this,arguments)),o.distance()},e.source=function(r){return arguments.length?(t=r,typeof t!="function"&&o.source(n=t),e):t},e.target=function(t){return arguments.length?(r=t,typeof r!="function"&&o.target(i=r),e):r},e.precision=function(t){return arguments.length?(s=t*ao,e):s/ao},e},d3.geo.greatCircle=d3.geo.circle,d3.geom={},d3.geom.contour=function(e,t){var n=t||ni(e),r=[],i=n[0],s=n[1],o=0,u=0,a=NaN,f=NaN,l=0;do l=0,e(i-1,s-1)&&(l+=1),e(i,s-1)&&(l+=2),e(i-1,s)&&(l+=4),e(i,s)&&(l+=8),l===6?(o=f===-1?-1:1,u=0):l===9?(o=0,u=a===1?-1:1):(o=lo[l],u=co[l]),o!=a&&u!=f&&(r.push([i,s]),a=o,f=u),i+=o,s+=u;while(n[0]!=i||n[1]!=s);return r};var lo=[1,0,1,1,-1,0,-1,1,0,0,0,0,-1,0,-1,NaN],co=[0,-1,0,0,0,-1,0,0,1,-1,1,1,0,-1,0,NaN];d3.geom.hull=function(e){if(e.length<3)return[];var t=e.length,n=t-1,r=[],i=[],s,o,u=0,a,f,l,c,h,p,d,v;for(s=1;s<t;++s)e[s][1]<e[u][1]?u=s:e[s][1]==e[u][1]&&(u=e[s][0]<e[u][0]?s:u);for(s=0;s<t;++s){if(s===u)continue;f=e[s][1]-e[u][1],a=e[s][0]-e[u][0],r.push({angle:Math.atan2(f,a),index:s})}r.sort(function(e,t){return e.angle-t.angle}),d=r[0].angle,p=r[0].index,h=0;for(s=1;s<n;++s)o=r[s].index,d==r[s].angle?(a=e[p][0]-e[u][0],f=e[p][1]-e[u][1],l=e[o][0]-e[u][0],c=e[o][1]-e[u][1],a*a+f*f>=l*l+c*c?r[s].index=-1:(r[h].index=-1,d=r[s].angle,h=s,p=o)):(d=r[s].angle,h=s,p=o);i.push(u);for(s=0,o=0;s<2;++o)r[o].index!==-1&&(i.push(r[o].index),s++);v=i.length;for(;o<n;++o){if(r[o].index===-1)continue;while(!ri(i[v-2],i[v-1],r[o].index,e))--v;i[v++]=r[o].index}var m=[];for(s=0;s<v;++s)m.push(e[i[s]]);return m},d3.geom.polygon=function(e){return e.area=function(){var t=0,n=e.length,r=e[n-1][0]*e[0][1],i=e[n-1][1]*e[0][0];while(++t<n)r+=e[t-1][0]*e[t][1],i+=e[t-1][1]*e[t][0];return(i-r)*.5},e.centroid=function(t){var n=-1,r=e.length,i=0,s=0,o,u=e[r-1],a;arguments.length||(t=-1/(6*e.area()));while(++n<r)o=u,u=e[n],a=o[0]*u[1]-u[0]*o[1],i+=(o[0]+u[0])*a,s+=(o[1]+u[1])*a;return[i*t,s*t]},e.clip=function(t){var n,r=-1,i=e.length,s,o,u=e[i-1],a,f,l;while(++r<i){n=t.slice(),t.length=0,a=e[r],f=n[(o=n.length)-1],s=-1;while(++s<o)l=n[s],ii(l,u,a)?(ii(f,u,a)||t.push(si(f,l,u,a)),t.push(l)):ii(f,u,a)&&t.push(si(f,l,u,a)),f=l;u=a}return t},e},d3.geom.voronoi=function(e){var t=e.map(function(){return[]});return oi(e,function(e){var n,r,i,s,o,u;e.a===1&&e.b>=0?(n=e.ep.r,r=e.ep.l):(n=e.ep.l,r=e.ep.r),e.a===1?(o=n?n.y:-1e6,i=e.c-e.b*o,u=r?r.y:1e6,s=e.c-e.b*u):(i=n?n.x:-1e6,o=e.c-e.a*i,s=r?r.x:1e6,u=e.c-e.a*s);var a=[i,o],f=[s,u];t[e.region.l.index].push(a,f),t[e.region.r.index].push(a,f)}),t.map(function(t,n){var r=e[n][0],i=e[n][1];return t.forEach(function(e){e.angle=Math.atan2(e[0]-r,e[1]-i)}),t.sort(function(e,t){return e.angle-t.angle}).filter(function(e,n){return!n||e.angle-t[n-1].angle>1e-10})})};var ho={l:"r",r:"l"};d3.geom.delaunay=function(e){var t=e.map(function(){return[]}),n=[];return oi(e,function(n){t[n.region.l.index].push(e[n.region.r.index])}),t.forEach(function(t,r){var i=e[r],s=i[0],o=i[1];t.forEach(function(e){e.angle=Math.atan2(e[0]-s,e[1]-o)}),t.sort(function(e,t){return e.angle-t.angle});for(var u=0,a=t.length-1;u<a;u++)n.push([i,t[u],t[u+1]])}),n},d3.geom.quadtree=function(e,t,n,r,i){function s(e,t,n,r,i,s){if(isNaN(t.x)||isNaN(t.y))return;if(e.leaf){var u=e.point;u?Math.abs(u.x-t.x)+Math.abs(u.y-t.y)<.01?o(e,t,n,r,i,s):(e.point=null,o(e,u,n,r,i,s),o(e,t,n,r,i,s)):e.point=t}else o(e,t,n,r,i,s)}function o(e,t,n,r,i,o){var u=(n+i)*.5,a=(r+o)*.5,f=t.x>=u,l=t.y>=a,c=(l<<1)+f;e.leaf=!1,e=e.nodes[c]||(e.nodes[c]=ui()),f?n=u:i=u,l?r=a:o=a,s(e,t,n,r,i,o)}var u,a=-1,f=e.length;f&&isNaN(e[0].x)&&(e=e.map(fi));if(arguments.length<5)if(arguments.length===3)i=r=n,n=t;else{t=n=Infinity,r=i=-Infinity;while(++a<f)u=e[a],u.x<t&&(t=u.x),u.y<n&&(n=u.y),u.x>r&&(r=u.x),u.y>i&&(i=u.y);var l=r-t,c=i-n;l>c?i=n+l:r=t+c}var h=ui();return h.add=function(e){s(h,e,t,n,r,i)},h.visit=function(e){ai(e,h,t,n,r,i)},e.forEach(h.add),h},d3.time={};var po=Date,vo=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];li.prototype={getDate:function(){return this._.getUTCDate()},getDay:function(){return this._.getUTCDay()},getFullYear:function(){return this._.getUTCFullYear()},getHours:function(){return this._.getUTCHours()},getMilliseconds:function(){return this._.getUTCMilliseconds()},getMinutes:function(){return this._.getUTCMinutes()},getMonth:function(){return this._.getUTCMonth()},getSeconds:function(){return this._.getUTCSeconds()},getTime:function(){return this._.getTime()},getTimezoneOffset:function(){return 0},valueOf:function(){return this._.valueOf()},setDate:function(){mo.setUTCDate.apply(this._,arguments)},setDay:function(){mo.setUTCDay.apply(this._,arguments)},setFullYear:function(){mo.setUTCFullYear.apply(this._,arguments)},setHours:function(){mo.setUTCHours.apply(this._,arguments)},setMilliseconds:function(){mo.setUTCMilliseconds.apply(this._,arguments)},setMinutes:function(){mo.setUTCMinutes.apply(this._,arguments)},setMonth:function(){mo.setUTCMonth.apply(this._,arguments)},setSeconds:function(){mo.setUTCSeconds.apply(this._,arguments)},setTime:function(){mo.setTime.apply(this._,arguments)}};var mo=Date.prototype,go="%a %b %e %H:%M:%S %Y",yo="%m/%d/%y",bo="%H:%M:%S",wo=vo,Eo=wo.map(ci),So=["January","February","March","April","May","June","July","August","September","October","November","December"],xo=So.map(ci);d3.time.format=function(e){function t(t){var r=[],i=-1,s=0,o,u;while(++i<n)e.charCodeAt(i)==37&&(r.push(e.substring(s,i),(u=Po[o=e.charAt(++i)])?u(t):o),s=i+1);return r.push(e.substring(s,i)),r.join("")}var n=e.length;return t.parse=function(t){var n={y:1900,m:0,d:1,H:0,M:0,S:0,L:0},r=hi(n,e,t,0);if(r!=t.length)return null;"p"in n&&(n.H=n.H%12+n.p*12);var i=new po;return i.setFullYear(n.y,n.m,n.d),i.setHours(n.H,n.M,n.S,n.L),i},t.toString=function(){return e},t};var To=d3.format("02d"),No=d3.format("03d"),Co=d3.format("04d"),ko=d3.format("2d"),Lo=pi(wo),Ao=pi(Eo),Oo=pi(So),Mo=di(So),_o=pi(xo),Do=di(xo),Po={a:function(e){return Eo[e.getDay()]},A:function(e){return wo[e.getDay()]},b:function(e){return xo[e.getMonth()]},B:function(e){return So[e.getMonth()]},c:d3.time.format(go),d:function(e){return To(e.getDate())},e:function(e){return ko(e.getDate())},H:function(e){return To(e.getHours())},I:function(e){return To(e.getHours()%12||12)},j:function(e){return No(1+d3.time.dayOfYear(e))},L:function(e){return No(e.getMilliseconds())},m:function(e){return To(e.getMonth()+1)},M:function(e){return To(e.getMinutes())},p:function(e){return e.getHours()>=12?"PM":"AM"},S:function(e){return To(e.getSeconds())},U:function(e){return To(d3.time.sundayOfYear(e))},w:function(e){return e.getDay()},W:function(e){return To(d3.time.mondayOfYear(e))},x:d3.time.format(yo),X:d3.time.format(bo),y:function(e){return To(e.getFullYear()%100)},Y:function(e){return Co(e.getFullYear()%1e4)},Z:_i,"%":function(e){return"%"}},Ho={a:vi,A:mi,b:gi,B:yi,c:bi,d:Ci,e:Ci,H:ki,I:ki,L:Oi,m:Ni,M:Li,p:Mi,S:Ai,x:wi,X:Ei,y:xi,Y:Si},Bo=/^\s*\d+/,jo=d3.map({am:0,pm:1});d3.time.format.utc=function(e){function t(e){try{po=li;var t=new po;return t._=e,n(t)}finally{po=Date}}var n=d3.time.format(e);return t.parse=function(e){try{po=li;var t=n.parse(e);return t&&t._}finally{po=Date}},t.toString=n.toString,t};var Fo=d3.time.format.utc("%Y-%m-%dT%H:%M:%S.%LZ");d3.time.format.iso=Date.prototype.toISOString?Di:Fo,Di.parse=function(e){var t=new Date(e);return isNaN(t)?null:t},Di.toString=Fo.toString,d3.time.second=Pi(function(e){return new po(Math.floor(e/1e3)*1e3)},function(e,t){e.setTime(e.getTime()+Math.floor(t)*1e3)},function(e){return e.getSeconds()}),d3.time.seconds=d3.time.second.range,d3.time.seconds.utc=d3.time.second.utc.range,d3.time.minute=Pi(function(e){return new po(Math.floor(e/6e4)*6e4)},function(e,t){e.setTime(e.getTime()+Math.floor(t)*6e4)},function(e){return e.getMinutes()}),d3.time.minutes=d3.time.minute.range,d3.time.minutes.utc=d3.time.minute.utc.range,d3.time.hour=Pi(function(e){var t=e.getTimezoneOffset()/60;return new po((Math.floor(e/36e5-t)+t)*36e5)},function(e,t){e.setTime(e.getTime()+Math.floor(t)*36e5)},function(e){return e.getHours()}),d3.time.hours=d3.time.hour.range,d3.time.hours.utc=d3.time.hour.utc.range,d3.time.day=Pi(function(e){var t=new po(1970,0);return t.setFullYear(e.getFullYear(),e.getMonth(),e.getDate()),t},function(e,t){e.setDate(e.getDate()+t)},function(e){return e.getDate()-1}),d3.time.days=d3.time.day.range,d3.time.days.utc=d3.time.day.utc.range,d3.time.dayOfYear=function(e){var t=d3.time.year(e);return Math.floor((e-t-(e.getTimezoneOffset()-t.getTimezoneOffset())*6e4)/864e5)},vo.forEach(function(e,t){e=e.toLowerCase(),t=7-t;var n=d3.time[e]=Pi(function(e){return(e=d3.time.day(e)).setDate(e.getDate()-(e.getDay()+t)%7),e},function(e,t){e.setDate(e.getDate()+Math.floor(t)*7)},function(e){var n=d3.time.year(e).getDay();return Math.floor((d3.time.dayOfYear(e)+(n+t)%7)/7)-(n!==t)});d3.time[e+"s"]=n.range,d3.time[e+"s"].utc=n.utc.range,d3.time[e+"OfYear"]=function(e){var n=d3.time.year(e).getDay();return Math.floor((d3.time.dayOfYear(e)+(n+t)%7)/7)}}),d3.time.week=d3.time.sunday,d3.time.weeks=d3.time.sunday.range,d3.time.weeks.utc=d3.time.sunday.utc.range,d3.time.weekOfYear=d3.time.sundayOfYear,d3.time.month=Pi(function(e){return e=d3.time.day(e),e.setDate(1),e},function(e,t){e.setMonth(e.getMonth()+t)},function(e){return e.getMonth()}),d3.time.months=d3.time.month.range,d3.time.months.utc=d3.time.month.utc.range,d3.time.year=Pi(function(e){return e=d3.time.day(e),e.setMonth(0,1),e},function(e,t){e.setFullYear(e.getFullYear()+t)},function(e){return e.getFullYear()}),d3.time.years=d3.time.year.range,d3.time.years.utc=d3.time.year.utc.range;var Io=[1e3,5e3,15e3,3e4,6e4,3e5,9e5,18e5,36e5,108e5,216e5,432e5,864e5,1728e5,6048e5,2592e6,7776e6,31536e6],qo=[[d3.time.second,1],[d3.time.second,5],[d3.time.second,15],[d3.time.second,30],[d3.time.minute,1],[d3.time.minute,5],[d3.time.minute,15],[d3.time.minute,30],[d3.time.hour,1],[d3.time.hour,3],[d3.time.hour,6],[d3.time.hour,12],[d3.time.day,1],[d3.time.day,2],[d3.time.week,1],[d3.time.month,1],[d3.time.month,3],[d3.time.year,1]],Ro=[[d3.time.format("%Y"),function(e){return!0}],[d3.time.format("%B"),function(e){return e.getMonth()}],[d3.time.format("%b %d"),function(e){return e.getDate()!=1}],[d3.time.format("%a %d"),function(e){return e.getDay()&&e.getDate()!=1}],[d3.time.format("%I %p"),function(e){return e.getHours()}],[d3.time.format("%I:%M"),function(e){return e.getMinutes()}],[d3.time.format(":%S"),function(e){return e.getSeconds()}],[d3.time.format(".%L"),function(e){return e.getMilliseconds()}]],Uo=d3.scale.linear(),zo=Ii(Ro);qo.year=function(e,t){return Uo.domain(e.map(Ri)).ticks(t).map(qi)},d3.time.scale=function(){return Bi(d3.scale.linear(),qo,zo)};var Wo=qo.map(function(e){return[e[0].utc,e[1]]}),Xo=[[d3.time.format.utc("%Y"),function(e){return!0}],[d3.time.format.utc("%B"),function(e){return e.getUTCMonth()}],[d3.time.format.utc("%b %d"),function(e){return e.getUTCDate()!=1}],[d3.time.format.utc("%a %d"),function(e){return e.getUTCDay()&&e.getUTCDate()!=1}],[d3.time.format.utc("%I %p"),function(e){return e.getUTCHours()}],[d3.time.format.utc("%I:%M"),function(e){return e.getUTCMinutes()}],[d3.time.format.utc(":%S"),function(e){return e.getUTCSeconds()}],[d3.time.format.utc(".%L"),function(e){return e.getUTCMilliseconds()}]],Vo=Ii(Xo);Wo.year=function(e,t){return Uo.domain(e.map(zi)).ticks(t).map(Ui)},d3.time.scale.utc=function(){return Bi(d3.scale.linear(),Wo,Vo)}})();
\ No newline at end of file
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/lib/d3.v3.js b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/lib/d3.v3.js
deleted file mode 100755
index 8dd7ffe7..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/lib/d3.v3.js
+++ /dev/null
@@ -1,8436 +0,0 @@
-d3 = function() {
-  var d3 = {
-    version: "3.1.5"
-  };
-  if (!Date.now) Date.now = function() {
-    return +new Date();
-  };
-  var d3_document = document, d3_window = window;
-  try {
-    d3_document.createElement("div").style.setProperty("opacity", 0, "");
-  } catch (error) {
-    var d3_style_prototype = d3_window.CSSStyleDeclaration.prototype, d3_style_setProperty = d3_style_prototype.setProperty;
-    d3_style_prototype.setProperty = function(name, value, priority) {
-      d3_style_setProperty.call(this, name, value + "", priority);
-    };
-  }
-  d3.ascending = function(a, b) {
-    return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;
-  };
-  d3.descending = function(a, b) {
-    return b < a ? -1 : b > a ? 1 : b >= a ? 0 : NaN;
-  };
-  d3.min = function(array, f) {
-    var i = -1, n = array.length, a, b;
-    if (arguments.length === 1) {
-      while (++i < n && ((a = array[i]) == null || a != a)) a = undefined;
-      while (++i < n) if ((b = array[i]) != null && a > b) a = b;
-    } else {
-      while (++i < n && ((a = f.call(array, array[i], i)) == null || a != a)) a = undefined;
-      while (++i < n) if ((b = f.call(array, array[i], i)) != null && a > b) a = b;
-    }
-    return a;
-  };
-  d3.max = function(array, f) {
-    var i = -1, n = array.length, a, b;
-    if (arguments.length === 1) {
-      while (++i < n && ((a = array[i]) == null || a != a)) a = undefined;
-      while (++i < n) if ((b = array[i]) != null && b > a) a = b;
-    } else {
-      while (++i < n && ((a = f.call(array, array[i], i)) == null || a != a)) a = undefined;
-      while (++i < n) if ((b = f.call(array, array[i], i)) != null && b > a) a = b;
-    }
-    return a;
-  };
-  d3.extent = function(array, f) {
-    var i = -1, n = array.length, a, b, c;
-    if (arguments.length === 1) {
-      while (++i < n && ((a = c = array[i]) == null || a != a)) a = c = undefined;
-      while (++i < n) if ((b = array[i]) != null) {
-        if (a > b) a = b;
-        if (c < b) c = b;
-      }
-    } else {
-      while (++i < n && ((a = c = f.call(array, array[i], i)) == null || a != a)) a = undefined;
-      while (++i < n) if ((b = f.call(array, array[i], i)) != null) {
-        if (a > b) a = b;
-        if (c < b) c = b;
-      }
-    }
-    return [ a, c ];
-  };
-  d3.sum = function(array, f) {
-    var s = 0, n = array.length, a, i = -1;
-    if (arguments.length === 1) {
-      while (++i < n) if (!isNaN(a = +array[i])) s += a;
-    } else {
-      while (++i < n) if (!isNaN(a = +f.call(array, array[i], i))) s += a;
-    }
-    return s;
-  };
-  function d3_number(x) {
-    return x != null && !isNaN(x);
-  }
-  d3.mean = function(array, f) {
-    var n = array.length, a, m = 0, i = -1, j = 0;
-    if (arguments.length === 1) {
-      while (++i < n) if (d3_number(a = array[i])) m += (a - m) / ++j;
-    } else {
-      while (++i < n) if (d3_number(a = f.call(array, array[i], i))) m += (a - m) / ++j;
-    }
-    return j ? m : undefined;
-  };
-  d3.quantile = function(values, p) {
-    var H = (values.length - 1) * p + 1, h = Math.floor(H), v = +values[h - 1], e = H - h;
-    return e ? v + e * (values[h] - v) : v;
-  };
-  d3.median = function(array, f) {
-    if (arguments.length > 1) array = array.map(f);
-    array = array.filter(d3_number);
-    return array.length ? d3.quantile(array.sort(d3.ascending), .5) : undefined;
-  };
-  d3.bisector = function(f) {
-    return {
-      left: function(a, x, lo, hi) {
-        if (arguments.length < 3) lo = 0;
-        if (arguments.length < 4) hi = a.length;
-        while (lo < hi) {
-          var mid = lo + hi >>> 1;
-          if (f.call(a, a[mid], mid) < x) lo = mid + 1; else hi = mid;
-        }
-        return lo;
-      },
-      right: function(a, x, lo, hi) {
-        if (arguments.length < 3) lo = 0;
-        if (arguments.length < 4) hi = a.length;
-        while (lo < hi) {
-          var mid = lo + hi >>> 1;
-          if (x < f.call(a, a[mid], mid)) hi = mid; else lo = mid + 1;
-        }
-        return lo;
-      }
-    };
-  };
-  var d3_bisector = d3.bisector(function(d) {
-    return d;
-  });
-  d3.bisectLeft = d3_bisector.left;
-  d3.bisect = d3.bisectRight = d3_bisector.right;
-  d3.shuffle = function(array) {
-    var m = array.length, t, i;
-    while (m) {
-      i = Math.random() * m-- | 0;
-      t = array[m], array[m] = array[i], array[i] = t;
-    }
-    return array;
-  };
-  d3.permute = function(array, indexes) {
-    var permutes = [], i = -1, n = indexes.length;
-    while (++i < n) permutes[i] = array[indexes[i]];
-    return permutes;
-  };
-  d3.zip = function() {
-    if (!(n = arguments.length)) return [];
-    for (var i = -1, m = d3.min(arguments, d3_zipLength), zips = new Array(m); ++i < m; ) {
-      for (var j = -1, n, zip = zips[i] = new Array(n); ++j < n; ) {
-        zip[j] = arguments[j][i];
-      }
-    }
-    return zips;
-  };
-  function d3_zipLength(d) {
-    return d.length;
-  }
-  d3.transpose = function(matrix) {
-    return d3.zip.apply(d3, matrix);
-  };
-  d3.keys = function(map) {
-    var keys = [];
-    for (var key in map) keys.push(key);
-    return keys;
-  };
-  d3.values = function(map) {
-    var values = [];
-    for (var key in map) values.push(map[key]);
-    return values;
-  };
-  d3.entries = function(map) {
-    var entries = [];
-    for (var key in map) entries.push({
-      key: key,
-      value: map[key]
-    });
-    return entries;
-  };
-  d3.merge = function(arrays) {
-    return Array.prototype.concat.apply([], arrays);
-  };
-  d3.range = function(start, stop, step) {
-    if (arguments.length < 3) {
-      step = 1;
-      if (arguments.length < 2) {
-        stop = start;
-        start = 0;
-      }
-    }
-    if ((stop - start) / step === Infinity) throw new Error("infinite range");
-    var range = [], k = d3_range_integerScale(Math.abs(step)), i = -1, j;
-    start *= k, stop *= k, step *= k;
-    if (step < 0) while ((j = start + step * ++i) > stop) range.push(j / k); else while ((j = start + step * ++i) < stop) range.push(j / k);
-    return range;
-  };
-  function d3_range_integerScale(x) {
-    var k = 1;
-    while (x * k % 1) k *= 10;
-    return k;
-  }
-  function d3_class(ctor, properties) {
-    try {
-      for (var key in properties) {
-        Object.defineProperty(ctor.prototype, key, {
-          value: properties[key],
-          enumerable: false
-        });
-      }
-    } catch (e) {
-      ctor.prototype = properties;
-    }
-  }
-  d3.map = function(object) {
-    var map = new d3_Map();
-    for (var key in object) map.set(key, object[key]);
-    return map;
-  };
-  function d3_Map() {}
-  d3_class(d3_Map, {
-    has: function(key) {
-      return d3_map_prefix + key in this;
-    },
-    get: function(key) {
-      return this[d3_map_prefix + key];
-    },
-    set: function(key, value) {
-      return this[d3_map_prefix + key] = value;
-    },
-    remove: function(key) {
-      key = d3_map_prefix + key;
-      return key in this && delete this[key];
-    },
-    keys: function() {
-      var keys = [];
-      this.forEach(function(key) {
-        keys.push(key);
-      });
-      return keys;
-    },
-    values: function() {
-      var values = [];
-      this.forEach(function(key, value) {
-        values.push(value);
-      });
-      return values;
-    },
-    entries: function() {
-      var entries = [];
-      this.forEach(function(key, value) {
-        entries.push({
-          key: key,
-          value: value
-        });
-      });
-      return entries;
-    },
-    forEach: function(f) {
-      for (var key in this) {
-        if (key.charCodeAt(0) === d3_map_prefixCode) {
-          f.call(this, key.substring(1), this[key]);
-        }
-      }
-    }
-  });
-  var d3_map_prefix = "\0", d3_map_prefixCode = d3_map_prefix.charCodeAt(0);
-  d3.nest = function() {
-    var nest = {}, keys = [], sortKeys = [], sortValues, rollup;
-    function map(mapType, array, depth) {
-      if (depth >= keys.length) return rollup ? rollup.call(nest, array) : sortValues ? array.sort(sortValues) : array;
-      var i = -1, n = array.length, key = keys[depth++], keyValue, object, setter, valuesByKey = new d3_Map(), values;
-      while (++i < n) {
-        if (values = valuesByKey.get(keyValue = key(object = array[i]))) {
-          values.push(object);
-        } else {
-          valuesByKey.set(keyValue, [ object ]);
-        }
-      }
-      if (mapType) {
-        object = mapType();
-        setter = function(keyValue, values) {
-          object.set(keyValue, map(mapType, values, depth));
-        };
-      } else {
-        object = {};
-        setter = function(keyValue, values) {
-          object[keyValue] = map(mapType, values, depth);
-        };
-      }
-      valuesByKey.forEach(setter);
-      return object;
-    }
-    function entries(map, depth) {
-      if (depth >= keys.length) return map;
-      var array = [], sortKey = sortKeys[depth++];
-      map.forEach(function(key, keyMap) {
-        array.push({
-          key: key,
-          values: entries(keyMap, depth)
-        });
-      });
-      return sortKey ? array.sort(function(a, b) {
-        return sortKey(a.key, b.key);
-      }) : array;
-    }
-    nest.map = function(array, mapType) {
-      return map(mapType, array, 0);
-    };
-    nest.entries = function(array) {
-      return entries(map(d3.map, array, 0), 0);
-    };
-    nest.key = function(d) {
-      keys.push(d);
-      return nest;
-    };
-    nest.sortKeys = function(order) {
-      sortKeys[keys.length - 1] = order;
-      return nest;
-    };
-    nest.sortValues = function(order) {
-      sortValues = order;
-      return nest;
-    };
-    nest.rollup = function(f) {
-      rollup = f;
-      return nest;
-    };
-    return nest;
-  };
-  d3.set = function(array) {
-    var set = new d3_Set();
-    if (array) for (var i = 0; i < array.length; i++) set.add(array[i]);
-    return set;
-  };
-  function d3_Set() {}
-  d3_class(d3_Set, {
-    has: function(value) {
-      return d3_map_prefix + value in this;
-    },
-    add: function(value) {
-      this[d3_map_prefix + value] = true;
-      return value;
-    },
-    remove: function(value) {
-      value = d3_map_prefix + value;
-      return value in this && delete this[value];
-    },
-    values: function() {
-      var values = [];
-      this.forEach(function(value) {
-        values.push(value);
-      });
-      return values;
-    },
-    forEach: function(f) {
-      for (var value in this) {
-        if (value.charCodeAt(0) === d3_map_prefixCode) {
-          f.call(this, value.substring(1));
-        }
-      }
-    }
-  });
-  d3.behavior = {};
-  d3.rebind = function(target, source) {
-    var i = 1, n = arguments.length, method;
-    while (++i < n) target[method = arguments[i]] = d3_rebind(target, source, source[method]);
-    return target;
-  };
-  function d3_rebind(target, source, method) {
-    return function() {
-      var value = method.apply(source, arguments);
-      return value === source ? target : value;
-    };
-  }
-  d3.dispatch = function() {
-    var dispatch = new d3_dispatch(), i = -1, n = arguments.length;
-    while (++i < n) dispatch[arguments[i]] = d3_dispatch_event(dispatch);
-    return dispatch;
-  };
-  function d3_dispatch() {}
-  d3_dispatch.prototype.on = function(type, listener) {
-    var i = type.indexOf("."), name = "";
-    if (i >= 0) {
-      name = type.substring(i + 1);
-      type = type.substring(0, i);
-    }
-    if (type) return arguments.length < 2 ? this[type].on(name) : this[type].on(name, listener);
-    if (arguments.length === 2) {
-      if (listener == null) for (type in this) {
-        if (this.hasOwnProperty(type)) this[type].on(name, null);
-      }
-      return this;
-    }
-  };
-  function d3_dispatch_event(dispatch) {
-    var listeners = [], listenerByName = new d3_Map();
-    function event() {
-      var z = listeners, i = -1, n = z.length, l;
-      while (++i < n) if (l = z[i].on) l.apply(this, arguments);
-      return dispatch;
-    }
-    event.on = function(name, listener) {
-      var l = listenerByName.get(name), i;
-      if (arguments.length < 2) return l && l.on;
-      if (l) {
-        l.on = null;
-        listeners = listeners.slice(0, i = listeners.indexOf(l)).concat(listeners.slice(i + 1));
-        listenerByName.remove(name);
-      }
-      if (listener) listeners.push(listenerByName.set(name, {
-        on: listener
-      }));
-      return dispatch;
-    };
-    return event;
-  }
-  d3.event = null;
-  function d3_eventCancel() {
-    d3.event.stopPropagation();
-    d3.event.preventDefault();
-  }
-  function d3_eventSource() {
-    var e = d3.event, s;
-    while (s = e.sourceEvent) e = s;
-    return e;
-  }
-  function d3_eventSuppress(target, type) {
-    function off() {
-      target.on(type, null);
-    }
-    target.on(type, function() {
-      d3_eventCancel();
-      off();
-    }, true);
-    setTimeout(off, 0);
-  }
-  function d3_eventDispatch(target) {
-    var dispatch = new d3_dispatch(), i = 0, n = arguments.length;
-    while (++i < n) dispatch[arguments[i]] = d3_dispatch_event(dispatch);
-    dispatch.of = function(thiz, argumentz) {
-      return function(e1) {
-        try {
-          var e0 = e1.sourceEvent = d3.event;
-          e1.target = target;
-          d3.event = e1;
-          dispatch[e1.type].apply(thiz, argumentz);
-        } finally {
-          d3.event = e0;
-        }
-      };
-    };
-    return dispatch;
-  }
-  d3.mouse = function(container) {
-    return d3_mousePoint(container, d3_eventSource());
-  };
-  var d3_mouse_bug44083 = /WebKit/.test(d3_window.navigator.userAgent) ? -1 : 0;
-  function d3_mousePoint(container, e) {
-    var svg = container.ownerSVGElement || container;
-    if (svg.createSVGPoint) {
-      var point = svg.createSVGPoint();
-      if (d3_mouse_bug44083 < 0 && (d3_window.scrollX || d3_window.scrollY)) {
-        svg = d3.select(d3_document.body).append("svg").style("position", "absolute").style("top", 0).style("left", 0);
-        var ctm = svg[0][0].getScreenCTM();
-        d3_mouse_bug44083 = !(ctm.f || ctm.e);
-        svg.remove();
-      }
-      if (d3_mouse_bug44083) {
-        point.x = e.pageX;
-        point.y = e.pageY;
-      } else {
-        point.x = e.clientX;
-        point.y = e.clientY;
-      }
-      point = point.matrixTransform(container.getScreenCTM().inverse());
-      return [ point.x, point.y ];
-    }
-    var rect = container.getBoundingClientRect();
-    return [ e.clientX - rect.left - container.clientLeft, e.clientY - rect.top - container.clientTop ];
-  }
-  var d3_array = d3_arraySlice;
-  function d3_arrayCopy(pseudoarray) {
-    var i = -1, n = pseudoarray.length, array = [];
-    while (++i < n) array.push(pseudoarray[i]);
-    return array;
-  }
-  function d3_arraySlice(pseudoarray) {
-    return Array.prototype.slice.call(pseudoarray);
-  }
-  try {
-    d3_array(d3_document.documentElement.childNodes)[0].nodeType;
-  } catch (e) {
-    d3_array = d3_arrayCopy;
-  }
-  var d3_arraySubclass = [].__proto__ ? function(array, prototype) {
-    array.__proto__ = prototype;
-  } : function(array, prototype) {
-    for (var property in prototype) array[property] = prototype[property];
-  };
-  d3.touches = function(container, touches) {
-    if (arguments.length < 2) touches = d3_eventSource().touches;
-    return touches ? d3_array(touches).map(function(touch) {
-      var point = d3_mousePoint(container, touch);
-      point.identifier = touch.identifier;
-      return point;
-    }) : [];
-  };
-  d3.behavior.drag = function() {
-    var event = d3_eventDispatch(drag, "drag", "dragstart", "dragend"), origin = null;
-    function drag() {
-      this.on("mousedown.drag", mousedown).on("touchstart.drag", mousedown);
-    }
-    function mousedown() {
-      var target = this, event_ = event.of(target, arguments), eventTarget = d3.event.target, touchId = d3.event.touches ? d3.event.changedTouches[0].identifier : null, offset, origin_ = point(), moved = 0;
-      var w = d3.select(d3_window).on(touchId != null ? "touchmove.drag-" + touchId : "mousemove.drag", dragmove).on(touchId != null ? "touchend.drag-" + touchId : "mouseup.drag", dragend, true);
-      if (origin) {
-        offset = origin.apply(target, arguments);
-        offset = [ offset.x - origin_[0], offset.y - origin_[1] ];
-      } else {
-        offset = [ 0, 0 ];
-      }
-      if (touchId == null) d3_eventCancel();
-      event_({
-        type: "dragstart"
-      });
-      function point() {
-        var p = target.parentNode;
-        return touchId != null ? d3.touches(p).filter(function(p) {
-          return p.identifier === touchId;
-        })[0] : d3.mouse(p);
-      }
-      function dragmove() {
-        if (!target.parentNode) return dragend();
-        var p = point(), dx = p[0] - origin_[0], dy = p[1] - origin_[1];
-        moved |= dx | dy;
-        origin_ = p;
-        d3_eventCancel();
-        event_({
-          type: "drag",
-          x: p[0] + offset[0],
-          y: p[1] + offset[1],
-          dx: dx,
-          dy: dy
-        });
-      }
-      function dragend() {
-        event_({
-          type: "dragend"
-        });
-        if (moved) {
-          d3_eventCancel();
-          if (d3.event.target === eventTarget) d3_eventSuppress(w, "click");
-        }
-        w.on(touchId != null ? "touchmove.drag-" + touchId : "mousemove.drag", null).on(touchId != null ? "touchend.drag-" + touchId : "mouseup.drag", null);
-      }
-    }
-    drag.origin = function(x) {
-      if (!arguments.length) return origin;
-      origin = x;
-      return drag;
-    };
-    return d3.rebind(drag, event, "on");
-  };
-  function d3_selection(groups) {
-    d3_arraySubclass(groups, d3_selectionPrototype);
-    return groups;
-  }
-  var d3_select = function(s, n) {
-    return n.querySelector(s);
-  }, d3_selectAll = function(s, n) {
-    return n.querySelectorAll(s);
-  }, d3_selectRoot = d3_document.documentElement, d3_selectMatcher = d3_selectRoot.matchesSelector || d3_selectRoot.webkitMatchesSelector || d3_selectRoot.mozMatchesSelector || d3_selectRoot.msMatchesSelector || d3_selectRoot.oMatchesSelector, d3_selectMatches = function(n, s) {
-    return d3_selectMatcher.call(n, s);
-  };
-  if (typeof Sizzle === "function") {
-    d3_select = function(s, n) {
-      return Sizzle(s, n)[0] || null;
-    };
-    d3_selectAll = function(s, n) {
-      return Sizzle.uniqueSort(Sizzle(s, n));
-    };
-    d3_selectMatches = Sizzle.matchesSelector;
-  }
-  var d3_selectionPrototype = [];
-  d3.selection = function() {
-    return d3_selectionRoot;
-  };
-  d3.selection.prototype = d3_selectionPrototype;
-  d3_selectionPrototype.select = function(selector) {
-    var subgroups = [], subgroup, subnode, group, node;
-    if (typeof selector !== "function") selector = d3_selection_selector(selector);
-    for (var j = -1, m = this.length; ++j < m; ) {
-      subgroups.push(subgroup = []);
-      subgroup.parentNode = (group = this[j]).parentNode;
-      for (var i = -1, n = group.length; ++i < n; ) {
-        if (node = group[i]) {
-          subgroup.push(subnode = selector.call(node, node.__data__, i));
-          if (subnode && "__data__" in node) subnode.__data__ = node.__data__;
-        } else {
-          subgroup.push(null);
-        }
-      }
-    }
-    return d3_selection(subgroups);
-  };
-  function d3_selection_selector(selector) {
-    return function() {
-      return d3_select(selector, this);
-    };
-  }
-  d3_selectionPrototype.selectAll = function(selector) {
-    var subgroups = [], subgroup, node;
-    if (typeof selector !== "function") selector = d3_selection_selectorAll(selector);
-    for (var j = -1, m = this.length; ++j < m; ) {
-      for (var group = this[j], i = -1, n = group.length; ++i < n; ) {
-        if (node = group[i]) {
-          subgroups.push(subgroup = d3_array(selector.call(node, node.__data__, i)));
-          subgroup.parentNode = node;
-        }
-      }
-    }
-    return d3_selection(subgroups);
-  };
-  function d3_selection_selectorAll(selector) {
-    return function() {
-      return d3_selectAll(selector, this);
-    };
-  }
-  var d3_nsPrefix = {
-    svg: "http://www.w3.org/2000/svg",
-    xhtml: "http://www.w3.org/1999/xhtml",
-    xlink: "http://www.w3.org/1999/xlink",
-    xml: "http://www.w3.org/XML/1998/namespace",
-    xmlns: "http://www.w3.org/2000/xmlns/"
-  };
-  d3.ns = {
-    prefix: d3_nsPrefix,
-    qualify: function(name) {
-      var i = name.indexOf(":"), prefix = name;
-      if (i >= 0) {
-        prefix = name.substring(0, i);
-        name = name.substring(i + 1);
-      }
-      return d3_nsPrefix.hasOwnProperty(prefix) ? {
-        space: d3_nsPrefix[prefix],
-        local: name
-      } : name;
-    }
-  };
-  d3_selectionPrototype.attr = function(name, value) {
-    if (arguments.length < 2) {
-      if (typeof name === "string") {
-        var node = this.node();
-        name = d3.ns.qualify(name);
-        return name.local ? node.getAttributeNS(name.space, name.local) : node.getAttribute(name);
-      }
-      for (value in name) this.each(d3_selection_attr(value, name[value]));
-      return this;
-    }
-    return this.each(d3_selection_attr(name, value));
-  };
-  function d3_selection_attr(name, value) {
-    name = d3.ns.qualify(name);
-    function attrNull() {
-      this.removeAttribute(name);
-    }
-    function attrNullNS() {
-      this.removeAttributeNS(name.space, name.local);
-    }
-    function attrConstant() {
-      this.setAttribute(name, value);
-    }
-    function attrConstantNS() {
-      this.setAttributeNS(name.space, name.local, value);
-    }
-    function attrFunction() {
-      var x = value.apply(this, arguments);
-      if (x == null) this.removeAttribute(name); else this.setAttribute(name, x);
-    }
-    function attrFunctionNS() {
-      var x = value.apply(this, arguments);
-      if (x == null) this.removeAttributeNS(name.space, name.local); else this.setAttributeNS(name.space, name.local, x);
-    }
-    return value == null ? name.local ? attrNullNS : attrNull : typeof value === "function" ? name.local ? attrFunctionNS : attrFunction : name.local ? attrConstantNS : attrConstant;
-  }
-  function d3_collapse(s) {
-    return s.trim().replace(/\s+/g, " ");
-  }
-  d3.requote = function(s) {
-    return s.replace(d3_requote_re, "\\$&");
-  };
-  var d3_requote_re = /[\\\^\$\*\+\?\|\[\]\(\)\.\{\}]/g;
-  d3_selectionPrototype.classed = function(name, value) {
-    if (arguments.length < 2) {
-      if (typeof name === "string") {
-        var node = this.node(), n = (name = name.trim().split(/^|\s+/g)).length, i = -1;
-        if (value = node.classList) {
-          while (++i < n) if (!value.contains(name[i])) return false;
-        } else {
-          value = node.getAttribute("class");
-          while (++i < n) if (!d3_selection_classedRe(name[i]).test(value)) return false;
-        }
-        return true;
-      }
-      for (value in name) this.each(d3_selection_classed(value, name[value]));
-      return this;
-    }
-    return this.each(d3_selection_classed(name, value));
-  };
-  function d3_selection_classedRe(name) {
-    return new RegExp("(?:^|\\s+)" + d3.requote(name) + "(?:\\s+|$)", "g");
-  }
-  function d3_selection_classed(name, value) {
-    name = name.trim().split(/\s+/).map(d3_selection_classedName);
-    var n = name.length;
-    function classedConstant() {
-      var i = -1;
-      while (++i < n) name[i](this, value);
-    }
-    function classedFunction() {
-      var i = -1, x = value.apply(this, arguments);
-      while (++i < n) name[i](this, x);
-    }
-    return typeof value === "function" ? classedFunction : classedConstant;
-  }
-  function d3_selection_classedName(name) {
-    var re = d3_selection_classedRe(name);
-    return function(node, value) {
-      if (c = node.classList) return value ? c.add(name) : c.remove(name);
-      var c = node.getAttribute("class") || "";
-      if (value) {
-        re.lastIndex = 0;
-        if (!re.test(c)) node.setAttribute("class", d3_collapse(c + " " + name));
-      } else {
-        node.setAttribute("class", d3_collapse(c.replace(re, " ")));
-      }
-    };
-  }
-  d3_selectionPrototype.style = function(name, value, priority) {
-    var n = arguments.length;
-    if (n < 3) {
-      if (typeof name !== "string") {
-        if (n < 2) value = "";
-        for (priority in name) this.each(d3_selection_style(priority, name[priority], value));
-        return this;
-      }
-      if (n < 2) return d3_window.getComputedStyle(this.node(), null).getPropertyValue(name);
-      priority = "";
-    }
-    return this.each(d3_selection_style(name, value, priority));
-  };
-  function d3_selection_style(name, value, priority) {
-    function styleNull() {
-      this.style.removeProperty(name);
-    }
-    function styleConstant() {
-      this.style.setProperty(name, value, priority);
-    }
-    function styleFunction() {
-      var x = value.apply(this, arguments);
-      if (x == null) this.style.removeProperty(name); else this.style.setProperty(name, x, priority);
-    }
-    return value == null ? styleNull : typeof value === "function" ? styleFunction : styleConstant;
-  }
-  d3_selectionPrototype.property = function(name, value) {
-    if (arguments.length < 2) {
-      if (typeof name === "string") return this.node()[name];
-      for (value in name) this.each(d3_selection_property(value, name[value]));
-      return this;
-    }
-    return this.each(d3_selection_property(name, value));
-  };
-  function d3_selection_property(name, value) {
-    function propertyNull() {
-      delete this[name];
-    }
-    function propertyConstant() {
-      this[name] = value;
-    }
-    function propertyFunction() {
-      var x = value.apply(this, arguments);
-      if (x == null) delete this[name]; else this[name] = x;
-    }
-    return value == null ? propertyNull : typeof value === "function" ? propertyFunction : propertyConstant;
-  }
-  d3_selectionPrototype.text = function(value) {
-    return arguments.length ? this.each(typeof value === "function" ? function() {
-      var v = value.apply(this, arguments);
-      this.textContent = v == null ? "" : v;
-    } : value == null ? function() {
-      this.textContent = "";
-    } : function() {
-      this.textContent = value;
-    }) : this.node().textContent;
-  };
-  d3_selectionPrototype.html = function(value) {
-    return arguments.length ? this.each(typeof value === "function" ? function() {
-      var v = value.apply(this, arguments);
-      this.innerHTML = v == null ? "" : v;
-    } : value == null ? function() {
-      this.innerHTML = "";
-    } : function() {
-      this.innerHTML = value;
-    }) : this.node().innerHTML;
-  };
-  d3_selectionPrototype.append = function(name) {
-    name = d3.ns.qualify(name);
-    function append() {
-      return this.appendChild(d3_document.createElementNS(this.namespaceURI, name));
-    }
-    function appendNS() {
-      return this.appendChild(d3_document.createElementNS(name.space, name.local));
-    }
-    return this.select(name.local ? appendNS : append);
-  };
-  d3_selectionPrototype.insert = function(name, before) {
-    name = d3.ns.qualify(name);
-    if (typeof before !== "function") before = d3_selection_selector(before);
-    function insert(d, i) {
-      return this.insertBefore(d3_document.createElementNS(this.namespaceURI, name), before.call(this, d, i));
-    }
-    function insertNS(d, i) {
-      return this.insertBefore(d3_document.createElementNS(name.space, name.local), before.call(this, d, i));
-    }
-    return this.select(name.local ? insertNS : insert);
-  };
-  d3_selectionPrototype.remove = function() {
-    return this.each(function() {
-      var parent = this.parentNode;
-      if (parent) parent.removeChild(this);
-    });
-  };
-  d3_selectionPrototype.data = function(value, key) {
-    var i = -1, n = this.length, group, node;
-    if (!arguments.length) {
-      value = new Array(n = (group = this[0]).length);
-      while (++i < n) {
-        if (node = group[i]) {
-          value[i] = node.__data__;
-        }
-      }
-      return value;
-    }
-    function bind(group, groupData) {
-      var i, n = group.length, m = groupData.length, n0 = Math.min(n, m), updateNodes = new Array(m), enterNodes = new Array(m), exitNodes = new Array(n), node, nodeData;
-      if (key) {
-        var nodeByKeyValue = new d3_Map(), dataByKeyValue = new d3_Map(), keyValues = [], keyValue;
-        for (i = -1; ++i < n; ) {
-          keyValue = key.call(node = group[i], node.__data__, i);
-          if (nodeByKeyValue.has(keyValue)) {
-            exitNodes[i] = node;
-          } else {
-            nodeByKeyValue.set(keyValue, node);
-          }
-          keyValues.push(keyValue);
-        }
-        for (i = -1; ++i < m; ) {
-          keyValue = key.call(groupData, nodeData = groupData[i], i);
-          if (node = nodeByKeyValue.get(keyValue)) {
-            updateNodes[i] = node;
-            node.__data__ = nodeData;
-          } else if (!dataByKeyValue.has(keyValue)) {
-            enterNodes[i] = d3_selection_dataNode(nodeData);
-          }
-          dataByKeyValue.set(keyValue, nodeData);
-          nodeByKeyValue.remove(keyValue);
-        }
-        for (i = -1; ++i < n; ) {
-          if (nodeByKeyValue.has(keyValues[i])) {
-            exitNodes[i] = group[i];
-          }
-        }
-      } else {
-        for (i = -1; ++i < n0; ) {
-          node = group[i];
-          nodeData = groupData[i];
-          if (node) {
-            node.__data__ = nodeData;
-            updateNodes[i] = node;
-          } else {
-            enterNodes[i] = d3_selection_dataNode(nodeData);
-          }
-        }
-        for (;i < m; ++i) {
-          enterNodes[i] = d3_selection_dataNode(groupData[i]);
-        }
-        for (;i < n; ++i) {
-          exitNodes[i] = group[i];
-        }
-      }
-      enterNodes.update = updateNodes;
-      enterNodes.parentNode = updateNodes.parentNode = exitNodes.parentNode = group.parentNode;
-      enter.push(enterNodes);
-      update.push(updateNodes);
-      exit.push(exitNodes);
-    }
-    var enter = d3_selection_enter([]), update = d3_selection([]), exit = d3_selection([]);
-    if (typeof value === "function") {
-      while (++i < n) {
-        bind(group = this[i], value.call(group, group.parentNode.__data__, i));
-      }
-    } else {
-      while (++i < n) {
-        bind(group = this[i], value);
-      }
-    }
-    update.enter = function() {
-      return enter;
-    };
-    update.exit = function() {
-      return exit;
-    };
-    return update;
-  };
-  function d3_selection_dataNode(data) {
-    return {
-      __data__: data
-    };
-  }
-  d3_selectionPrototype.datum = function(value) {
-    return arguments.length ? this.property("__data__", value) : this.property("__data__");
-  };
-  d3_selectionPrototype.filter = function(filter) {
-    var subgroups = [], subgroup, group, node;
-    if (typeof filter !== "function") filter = d3_selection_filter(filter);
-    for (var j = 0, m = this.length; j < m; j++) {
-      subgroups.push(subgroup = []);
-      subgroup.parentNode = (group = this[j]).parentNode;
-      for (var i = 0, n = group.length; i < n; i++) {
-        if ((node = group[i]) && filter.call(node, node.__data__, i)) {
-          subgroup.push(node);
-        }
-      }
-    }
-    return d3_selection(subgroups);
-  };
-  function d3_selection_filter(selector) {
-    return function() {
-      return d3_selectMatches(this, selector);
-    };
-  }
-  d3_selectionPrototype.order = function() {
-    for (var j = -1, m = this.length; ++j < m; ) {
-      for (var group = this[j], i = group.length - 1, next = group[i], node; --i >= 0; ) {
-        if (node = group[i]) {
-          if (next && next !== node.nextSibling) next.parentNode.insertBefore(node, next);
-          next = node;
-        }
-      }
-    }
-    return this;
-  };
-  d3_selectionPrototype.sort = function(comparator) {
-    comparator = d3_selection_sortComparator.apply(this, arguments);
-    for (var j = -1, m = this.length; ++j < m; ) this[j].sort(comparator);
-    return this.order();
-  };
-  function d3_selection_sortComparator(comparator) {
-    if (!arguments.length) comparator = d3.ascending;
-    return function(a, b) {
-      return !a - !b || comparator(a.__data__, b.__data__);
-    };
-  }
-  function d3_noop() {}
-  d3_selectionPrototype.on = function(type, listener, capture) {
-    var n = arguments.length;
-    if (n < 3) {
-      if (typeof type !== "string") {
-        if (n < 2) listener = false;
-        for (capture in type) this.each(d3_selection_on(capture, type[capture], listener));
-        return this;
-      }
-      if (n < 2) return (n = this.node()["__on" + type]) && n._;
-      capture = false;
-    }
-    return this.each(d3_selection_on(type, listener, capture));
-  };
-  function d3_selection_on(type, listener, capture) {
-    var name = "__on" + type, i = type.indexOf("."), wrap = d3_selection_onListener;
-    if (i > 0) type = type.substring(0, i);
-    var filter = d3_selection_onFilters.get(type);
-    if (filter) type = filter, wrap = d3_selection_onFilter;
-    function onRemove() {
-      var l = this[name];
-      if (l) {
-        this.removeEventListener(type, l, l.$);
-        delete this[name];
-      }
-    }
-    function onAdd() {
-      var l = wrap(listener, d3_array(arguments));
-      onRemove.call(this);
-      this.addEventListener(type, this[name] = l, l.$ = capture);
-      l._ = listener;
-    }
-    function removeAll() {
-      var re = new RegExp("^__on([^.]+)" + d3.requote(type) + "$"), match;
-      for (var name in this) {
-        if (match = name.match(re)) {
-          var l = this[name];
-          this.removeEventListener(match[1], l, l.$);
-          delete this[name];
-        }
-      }
-    }
-    return i ? listener ? onAdd : onRemove : listener ? d3_noop : removeAll;
-  }
-  var d3_selection_onFilters = d3.map({
-    mouseenter: "mouseover",
-    mouseleave: "mouseout"
-  });
-  d3_selection_onFilters.forEach(function(k) {
-    if ("on" + k in d3_document) d3_selection_onFilters.remove(k);
-  });
-  function d3_selection_onListener(listener, argumentz) {
-    return function(e) {
-      var o = d3.event;
-      d3.event = e;
-      argumentz[0] = this.__data__;
-      try {
-        listener.apply(this, argumentz);
-      } finally {
-        d3.event = o;
-      }
-    };
-  }
-  function d3_selection_onFilter(listener, argumentz) {
-    var l = d3_selection_onListener(listener, argumentz);
-    return function(e) {
-      var target = this, related = e.relatedTarget;
-      if (!related || related !== target && !(related.compareDocumentPosition(target) & 8)) {
-        l.call(target, e);
-      }
-    };
-  }
-  d3_selectionPrototype.each = function(callback) {
-    return d3_selection_each(this, function(node, i, j) {
-      callback.call(node, node.__data__, i, j);
-    });
-  };
-  function d3_selection_each(groups, callback) {
-    for (var j = 0, m = groups.length; j < m; j++) {
-      for (var group = groups[j], i = 0, n = group.length, node; i < n; i++) {
-        if (node = group[i]) callback(node, i, j);
-      }
-    }
-    return groups;
-  }
-  d3_selectionPrototype.call = function(callback) {
-    var args = d3_array(arguments);
-    callback.apply(args[0] = this, args);
-    return this;
-  };
-  d3_selectionPrototype.empty = function() {
-    return !this.node();
-  };
-  d3_selectionPrototype.node = function() {
-    for (var j = 0, m = this.length; j < m; j++) {
-      for (var group = this[j], i = 0, n = group.length; i < n; i++) {
-        var node = group[i];
-        if (node) return node;
-      }
-    }
-    return null;
-  };
-  function d3_selection_enter(selection) {
-    d3_arraySubclass(selection, d3_selection_enterPrototype);
-    return selection;
-  }
-  var d3_selection_enterPrototype = [];
-  d3.selection.enter = d3_selection_enter;
-  d3.selection.enter.prototype = d3_selection_enterPrototype;
-  d3_selection_enterPrototype.append = d3_selectionPrototype.append;
-  d3_selection_enterPrototype.insert = d3_selectionPrototype.insert;
-  d3_selection_enterPrototype.empty = d3_selectionPrototype.empty;
-  d3_selection_enterPrototype.node = d3_selectionPrototype.node;
-  d3_selection_enterPrototype.select = function(selector) {
-    var subgroups = [], subgroup, subnode, upgroup, group, node;
-    for (var j = -1, m = this.length; ++j < m; ) {
-      upgroup = (group = this[j]).update;
-      subgroups.push(subgroup = []);
-      subgroup.parentNode = group.parentNode;
-      for (var i = -1, n = group.length; ++i < n; ) {
-        if (node = group[i]) {
-          subgroup.push(upgroup[i] = subnode = selector.call(group.parentNode, node.__data__, i));
-          subnode.__data__ = node.__data__;
-        } else {
-          subgroup.push(null);
-        }
-      }
-    }
-    return d3_selection(subgroups);
-  };
-  d3_selectionPrototype.transition = function() {
-    var id = d3_transitionInheritId || ++d3_transitionId, subgroups = [], subgroup, node, transition = Object.create(d3_transitionInherit);
-    transition.time = Date.now();
-    for (var j = -1, m = this.length; ++j < m; ) {
-      subgroups.push(subgroup = []);
-      for (var group = this[j], i = -1, n = group.length; ++i < n; ) {
-        if (node = group[i]) d3_transitionNode(node, i, id, transition);
-        subgroup.push(node);
-      }
-    }
-    return d3_transition(subgroups, id);
-  };
-  var d3_selectionRoot = d3_selection([ [ d3_document ] ]);
-  d3_selectionRoot[0].parentNode = d3_selectRoot;
-  d3.select = function(selector) {
-    return typeof selector === "string" ? d3_selectionRoot.select(selector) : d3_selection([ [ selector ] ]);
-  };
-  d3.selectAll = function(selector) {
-    return typeof selector === "string" ? d3_selectionRoot.selectAll(selector) : d3_selection([ d3_array(selector) ]);
-  };
-  d3.behavior.zoom = function() {
-    var translate = [ 0, 0 ], translate0, scale = 1, scale0, scaleExtent = d3_behavior_zoomInfinity, event = d3_eventDispatch(zoom, "zoom"), x0, x1, y0, y1, touchtime;
-    function zoom() {
-      this.on("mousedown.zoom", mousedown).on("mousemove.zoom", mousemove).on(d3_behavior_zoomWheel + ".zoom", mousewheel).on("dblclick.zoom", dblclick).on("touchstart.zoom", touchstart).on("touchmove.zoom", touchmove).on("touchend.zoom", touchstart);
-    }
-    zoom.translate = function(x) {
-      if (!arguments.length) return translate;
-      translate = x.map(Number);
-      rescale();
-      return zoom;
-    };
-    zoom.scale = function(x) {
-      if (!arguments.length) return scale;
-      scale = +x;
-      rescale();
-      return zoom;
-    };
-    zoom.scaleExtent = function(x) {
-      if (!arguments.length) return scaleExtent;
-      scaleExtent = x == null ? d3_behavior_zoomInfinity : x.map(Number);
-      return zoom;
-    };
-    zoom.x = function(z) {
-      if (!arguments.length) return x1;
-      x1 = z;
-      x0 = z.copy();
-      translate = [ 0, 0 ];
-      scale = 1;
-      return zoom;
-    };
-    zoom.y = function(z) {
-      if (!arguments.length) return y1;
-      y1 = z;
-      y0 = z.copy();
-      translate = [ 0, 0 ];
-      scale = 1;
-      return zoom;
-    };
-    function location(p) {
-      return [ (p[0] - translate[0]) / scale, (p[1] - translate[1]) / scale ];
-    }
-    function point(l) {
-      return [ l[0] * scale + translate[0], l[1] * scale + translate[1] ];
-    }
-    function scaleTo(s) {
-      scale = Math.max(scaleExtent[0], Math.min(scaleExtent[1], s));
-    }
-    function translateTo(p, l) {
-      l = point(l);
-      translate[0] += p[0] - l[0];
-      translate[1] += p[1] - l[1];
-    }
-    function rescale() {
-      if (x1) x1.domain(x0.range().map(function(x) {
-        return (x - translate[0]) / scale;
-      }).map(x0.invert));
-      if (y1) y1.domain(y0.range().map(function(y) {
-        return (y - translate[1]) / scale;
-      }).map(y0.invert));
-    }
-    function dispatch(event) {
-      rescale();
-      d3.event.preventDefault();
-      event({
-        type: "zoom",
-        scale: scale,
-        translate: translate
-      });
-    }
-    function mousedown() {
-      var target = this, event_ = event.of(target, arguments), eventTarget = d3.event.target, moved = 0, w = d3.select(d3_window).on("mousemove.zoom", mousemove).on("mouseup.zoom", mouseup), l = location(d3.mouse(target));
-      d3_window.focus();
-      d3_eventCancel();
-      function mousemove() {
-        moved = 1;
-        translateTo(d3.mouse(target), l);
-        dispatch(event_);
-      }
-      function mouseup() {
-        if (moved) d3_eventCancel();
-        w.on("mousemove.zoom", null).on("mouseup.zoom", null);
-        if (moved && d3.event.target === eventTarget) d3_eventSuppress(w, "click.zoom");
-      }
-    }
-    function mousewheel() {
-      if (!translate0) translate0 = location(d3.mouse(this));
-      scaleTo(Math.pow(2, d3_behavior_zoomDelta() * .002) * scale);
-      translateTo(d3.mouse(this), translate0);
-      dispatch(event.of(this, arguments));
-    }
-    function mousemove() {
-      translate0 = null;
-    }
-    function dblclick() {
-      var p = d3.mouse(this), l = location(p), k = Math.log(scale) / Math.LN2;
-      scaleTo(Math.pow(2, d3.event.shiftKey ? Math.ceil(k) - 1 : Math.floor(k) + 1));
-      translateTo(p, l);
-      dispatch(event.of(this, arguments));
-    }
-    function touchstart() {
-      var touches = d3.touches(this), now = Date.now();
-      scale0 = scale;
-      translate0 = {};
-      touches.forEach(function(t) {
-        translate0[t.identifier] = location(t);
-      });
-      d3_eventCancel();
-      if (touches.length === 1) {
-        if (now - touchtime < 500) {
-          var p = touches[0], l = location(touches[0]);
-          scaleTo(scale * 2);
-          translateTo(p, l);
-          dispatch(event.of(this, arguments));
-        }
-        touchtime = now;
-      }
-    }
-    function touchmove() {
-      var touches = d3.touches(this), p0 = touches[0], l0 = translate0[p0.identifier];
-      if (p1 = touches[1]) {
-        var p1, l1 = translate0[p1.identifier];
-        p0 = [ (p0[0] + p1[0]) / 2, (p0[1] + p1[1]) / 2 ];
-        l0 = [ (l0[0] + l1[0]) / 2, (l0[1] + l1[1]) / 2 ];
-        scaleTo(d3.event.scale * scale0);
-      }
-      translateTo(p0, l0);
-      touchtime = null;
-      dispatch(event.of(this, arguments));
-    }
-    return d3.rebind(zoom, event, "on");
-  };
-  var d3_behavior_zoomInfinity = [ 0, Infinity ];
-  var d3_behavior_zoomDelta, d3_behavior_zoomWheel = "onwheel" in d3_document ? (d3_behavior_zoomDelta = function() {
-    return -d3.event.deltaY * (d3.event.deltaMode ? 120 : 1);
-  }, "wheel") : "onmousewheel" in d3_document ? (d3_behavior_zoomDelta = function() {
-    return d3.event.wheelDelta;
-  }, "mousewheel") : (d3_behavior_zoomDelta = function() {
-    return -d3.event.detail;
-  }, "MozMousePixelScroll");
-  function d3_Color() {}
-  d3_Color.prototype.toString = function() {
-    return this.rgb() + "";
-  };
-  d3.hsl = function(h, s, l) {
-    return arguments.length === 1 ? h instanceof d3_Hsl ? d3_hsl(h.h, h.s, h.l) : d3_rgb_parse("" + h, d3_rgb_hsl, d3_hsl) : d3_hsl(+h, +s, +l);
-  };
-  function d3_hsl(h, s, l) {
-    return new d3_Hsl(h, s, l);
-  }
-  function d3_Hsl(h, s, l) {
-    this.h = h;
-    this.s = s;
-    this.l = l;
-  }
-  var d3_hslPrototype = d3_Hsl.prototype = new d3_Color();
-  d3_hslPrototype.brighter = function(k) {
-    k = Math.pow(.7, arguments.length ? k : 1);
-    return d3_hsl(this.h, this.s, this.l / k);
-  };
-  d3_hslPrototype.darker = function(k) {
-    k = Math.pow(.7, arguments.length ? k : 1);
-    return d3_hsl(this.h, this.s, k * this.l);
-  };
-  d3_hslPrototype.rgb = function() {
-    return d3_hsl_rgb(this.h, this.s, this.l);
-  };
-  function d3_hsl_rgb(h, s, l) {
-    var m1, m2;
-    h = h % 360;
-    if (h < 0) h += 360;
-    s = s < 0 ? 0 : s > 1 ? 1 : s;
-    l = l < 0 ? 0 : l > 1 ? 1 : l;
-    m2 = l <= .5 ? l * (1 + s) : l + s - l * s;
-    m1 = 2 * l - m2;
-    function v(h) {
-      if (h > 360) h -= 360; else if (h < 0) h += 360;
-      if (h < 60) return m1 + (m2 - m1) * h / 60;
-      if (h < 180) return m2;
-      if (h < 240) return m1 + (m2 - m1) * (240 - h) / 60;
-      return m1;
-    }
-    function vv(h) {
-      return Math.round(v(h) * 255);
-    }
-    return d3_rgb(vv(h + 120), vv(h), vv(h - 120));
-  }
-  var π = Math.PI, ε = 1e-6, d3_radians = π / 180, d3_degrees = 180 / π;
-  function d3_sgn(x) {
-    return x > 0 ? 1 : x < 0 ? -1 : 0;
-  }
-  function d3_acos(x) {
-    return Math.acos(Math.max(-1, Math.min(1, x)));
-  }
-  function d3_asin(x) {
-    return x > 1 ? π / 2 : x < -1 ? -π / 2 : Math.asin(x);
-  }
-  function d3_sinh(x) {
-    return (Math.exp(x) - Math.exp(-x)) / 2;
-  }
-  function d3_cosh(x) {
-    return (Math.exp(x) + Math.exp(-x)) / 2;
-  }
-  function d3_haversin(x) {
-    return (x = Math.sin(x / 2)) * x;
-  }
-  d3.hcl = function(h, c, l) {
-    return arguments.length === 1 ? h instanceof d3_Hcl ? d3_hcl(h.h, h.c, h.l) : h instanceof d3_Lab ? d3_lab_hcl(h.l, h.a, h.b) : d3_lab_hcl((h = d3_rgb_lab((h = d3.rgb(h)).r, h.g, h.b)).l, h.a, h.b) : d3_hcl(+h, +c, +l);
-  };
-  function d3_hcl(h, c, l) {
-    return new d3_Hcl(h, c, l);
-  }
-  function d3_Hcl(h, c, l) {
-    this.h = h;
-    this.c = c;
-    this.l = l;
-  }
-  var d3_hclPrototype = d3_Hcl.prototype = new d3_Color();
-  d3_hclPrototype.brighter = function(k) {
-    return d3_hcl(this.h, this.c, Math.min(100, this.l + d3_lab_K * (arguments.length ? k : 1)));
-  };
-  d3_hclPrototype.darker = function(k) {
-    return d3_hcl(this.h, this.c, Math.max(0, this.l - d3_lab_K * (arguments.length ? k : 1)));
-  };
-  d3_hclPrototype.rgb = function() {
-    return d3_hcl_lab(this.h, this.c, this.l).rgb();
-  };
-  function d3_hcl_lab(h, c, l) {
-    return d3_lab(l, Math.cos(h *= d3_radians) * c, Math.sin(h) * c);
-  }
-  d3.lab = function(l, a, b) {
-    return arguments.length === 1 ? l instanceof d3_Lab ? d3_lab(l.l, l.a, l.b) : l instanceof d3_Hcl ? d3_hcl_lab(l.l, l.c, l.h) : d3_rgb_lab((l = d3.rgb(l)).r, l.g, l.b) : d3_lab(+l, +a, +b);
-  };
-  function d3_lab(l, a, b) {
-    return new d3_Lab(l, a, b);
-  }
-  function d3_Lab(l, a, b) {
-    this.l = l;
-    this.a = a;
-    this.b = b;
-  }
-  var d3_lab_K = 18;
-  var d3_lab_X = .95047, d3_lab_Y = 1, d3_lab_Z = 1.08883;
-  var d3_labPrototype = d3_Lab.prototype = new d3_Color();
-  d3_labPrototype.brighter = function(k) {
-    return d3_lab(Math.min(100, this.l + d3_lab_K * (arguments.length ? k : 1)), this.a, this.b);
-  };
-  d3_labPrototype.darker = function(k) {
-    return d3_lab(Math.max(0, this.l - d3_lab_K * (arguments.length ? k : 1)), this.a, this.b);
-  };
-  d3_labPrototype.rgb = function() {
-    return d3_lab_rgb(this.l, this.a, this.b);
-  };
-  function d3_lab_rgb(l, a, b) {
-    var y = (l + 16) / 116, x = y + a / 500, z = y - b / 200;
-    x = d3_lab_xyz(x) * d3_lab_X;
-    y = d3_lab_xyz(y) * d3_lab_Y;
-    z = d3_lab_xyz(z) * d3_lab_Z;
-    return d3_rgb(d3_xyz_rgb(3.2404542 * x - 1.5371385 * y - .4985314 * z), d3_xyz_rgb(-.969266 * x + 1.8760108 * y + .041556 * z), d3_xyz_rgb(.0556434 * x - .2040259 * y + 1.0572252 * z));
-  }
-  function d3_lab_hcl(l, a, b) {
-    return d3_hcl(Math.atan2(b, a) * d3_degrees, Math.sqrt(a * a + b * b), l);
-  }
-  function d3_lab_xyz(x) {
-    return x > .206893034 ? x * x * x : (x - 4 / 29) / 7.787037;
-  }
-  function d3_xyz_lab(x) {
-    return x > .008856 ? Math.pow(x, 1 / 3) : 7.787037 * x + 4 / 29;
-  }
-  function d3_xyz_rgb(r) {
-    return Math.round(255 * (r <= .00304 ? 12.92 * r : 1.055 * Math.pow(r, 1 / 2.4) - .055));
-  }
-  d3.rgb = function(r, g, b) {
-    return arguments.length === 1 ? r instanceof d3_Rgb ? d3_rgb(r.r, r.g, r.b) : d3_rgb_parse("" + r, d3_rgb, d3_hsl_rgb) : d3_rgb(~~r, ~~g, ~~b);
-  };
-  function d3_rgb(r, g, b) {
-    return new d3_Rgb(r, g, b);
-  }
-  function d3_Rgb(r, g, b) {
-    this.r = r;
-    this.g = g;
-    this.b = b;
-  }
-  var d3_rgbPrototype = d3_Rgb.prototype = new d3_Color();
-  d3_rgbPrototype.brighter = function(k) {
-    k = Math.pow(.7, arguments.length ? k : 1);
-    var r = this.r, g = this.g, b = this.b, i = 30;
-    if (!r && !g && !b) return d3_rgb(i, i, i);
-    if (r && r < i) r = i;
-    if (g && g < i) g = i;
-    if (b && b < i) b = i;
-    return d3_rgb(Math.min(255, Math.floor(r / k)), Math.min(255, Math.floor(g / k)), Math.min(255, Math.floor(b / k)));
-  };
-  d3_rgbPrototype.darker = function(k) {
-    k = Math.pow(.7, arguments.length ? k : 1);
-    return d3_rgb(Math.floor(k * this.r), Math.floor(k * this.g), Math.floor(k * this.b));
-  };
-  d3_rgbPrototype.hsl = function() {
-    return d3_rgb_hsl(this.r, this.g, this.b);
-  };
-  d3_rgbPrototype.toString = function() {
-    return "#" + d3_rgb_hex(this.r) + d3_rgb_hex(this.g) + d3_rgb_hex(this.b);
-  };
-  function d3_rgb_hex(v) {
-    return v < 16 ? "0" + Math.max(0, v).toString(16) : Math.min(255, v).toString(16);
-  }
-  function d3_rgb_parse(format, rgb, hsl) {
-    var r = 0, g = 0, b = 0, m1, m2, name;
-    m1 = /([a-z]+)\((.*)\)/i.exec(format);
-    if (m1) {
-      m2 = m1[2].split(",");
-      switch (m1[1]) {
-       case "hsl":
-        {
-          return hsl(parseFloat(m2[0]), parseFloat(m2[1]) / 100, parseFloat(m2[2]) / 100);
-        }
-
-       case "rgb":
-        {
-          return rgb(d3_rgb_parseNumber(m2[0]), d3_rgb_parseNumber(m2[1]), d3_rgb_parseNumber(m2[2]));
-        }
-      }
-    }
-    if (name = d3_rgb_names.get(format)) return rgb(name.r, name.g, name.b);
-    if (format != null && format.charAt(0) === "#") {
-      if (format.length === 4) {
-        r = format.charAt(1);
-        r += r;
-        g = format.charAt(2);
-        g += g;
-        b = format.charAt(3);
-        b += b;
-      } else if (format.length === 7) {
-        r = format.substring(1, 3);
-        g = format.substring(3, 5);
-        b = format.substring(5, 7);
-      }
-      r = parseInt(r, 16);
-      g = parseInt(g, 16);
-      b = parseInt(b, 16);
-    }
-    return rgb(r, g, b);
-  }
-  function d3_rgb_hsl(r, g, b) {
-    var min = Math.min(r /= 255, g /= 255, b /= 255), max = Math.max(r, g, b), d = max - min, h, s, l = (max + min) / 2;
-    if (d) {
-      s = l < .5 ? d / (max + min) : d / (2 - max - min);
-      if (r == max) h = (g - b) / d + (g < b ? 6 : 0); else if (g == max) h = (b - r) / d + 2; else h = (r - g) / d + 4;
-      h *= 60;
-    } else {
-      s = h = 0;
-    }
-    return d3_hsl(h, s, l);
-  }
-  function d3_rgb_lab(r, g, b) {
-    r = d3_rgb_xyz(r);
-    g = d3_rgb_xyz(g);
-    b = d3_rgb_xyz(b);
-    var x = d3_xyz_lab((.4124564 * r + .3575761 * g + .1804375 * b) / d3_lab_X), y = d3_xyz_lab((.2126729 * r + .7151522 * g + .072175 * b) / d3_lab_Y), z = d3_xyz_lab((.0193339 * r + .119192 * g + .9503041 * b) / d3_lab_Z);
-    return d3_lab(116 * y - 16, 500 * (x - y), 200 * (y - z));
-  }
-  function d3_rgb_xyz(r) {
-    return (r /= 255) <= .04045 ? r / 12.92 : Math.pow((r + .055) / 1.055, 2.4);
-  }
-  function d3_rgb_parseNumber(c) {
-    var f = parseFloat(c);
-    return c.charAt(c.length - 1) === "%" ? Math.round(f * 2.55) : f;
-  }
-  var d3_rgb_names = d3.map({
-    aliceblue: "#f0f8ff",
-    antiquewhite: "#faebd7",
-    aqua: "#00ffff",
-    aquamarine: "#7fffd4",
-    azure: "#f0ffff",
-    beige: "#f5f5dc",
-    bisque: "#ffe4c4",
-    black: "#000000",
-    blanchedalmond: "#ffebcd",
-    blue: "#0000ff",
-    blueviolet: "#8a2be2",
-    brown: "#a52a2a",
-    burlywood: "#deb887",
-    cadetblue: "#5f9ea0",
-    chartreuse: "#7fff00",
-    chocolate: "#d2691e",
-    coral: "#ff7f50",
-    cornflowerblue: "#6495ed",
-    cornsilk: "#fff8dc",
-    crimson: "#dc143c",
-    cyan: "#00ffff",
-    darkblue: "#00008b",
-    darkcyan: "#008b8b",
-    darkgoldenrod: "#b8860b",
-    darkgray: "#a9a9a9",
-    darkgreen: "#006400",
-    darkgrey: "#a9a9a9",
-    darkkhaki: "#bdb76b",
-    darkmagenta: "#8b008b",
-    darkolivegreen: "#556b2f",
-    darkorange: "#ff8c00",
-    darkorchid: "#9932cc",
-    darkred: "#8b0000",
-    darksalmon: "#e9967a",
-    darkseagreen: "#8fbc8f",
-    darkslateblue: "#483d8b",
-    darkslategray: "#2f4f4f",
-    darkslategrey: "#2f4f4f",
-    darkturquoise: "#00ced1",
-    darkviolet: "#9400d3",
-    deeppink: "#ff1493",
-    deepskyblue: "#00bfff",
-    dimgray: "#696969",
-    dimgrey: "#696969",
-    dodgerblue: "#1e90ff",
-    firebrick: "#b22222",
-    floralwhite: "#fffaf0",
-    forestgreen: "#228b22",
-    fuchsia: "#ff00ff",
-    gainsboro: "#dcdcdc",
-    ghostwhite: "#f8f8ff",
-    gold: "#ffd700",
-    goldenrod: "#daa520",
-    gray: "#808080",
-    green: "#008000",
-    greenyellow: "#adff2f",
-    grey: "#808080",
-    honeydew: "#f0fff0",
-    hotpink: "#ff69b4",
-    indianred: "#cd5c5c",
-    indigo: "#4b0082",
-    ivory: "#fffff0",
-    khaki: "#f0e68c",
-    lavender: "#e6e6fa",
-    lavenderblush: "#fff0f5",
-    lawngreen: "#7cfc00",
-    lemonchiffon: "#fffacd",
-    lightblue: "#add8e6",
-    lightcoral: "#f08080",
-    lightcyan: "#e0ffff",
-    lightgoldenrodyellow: "#fafad2",
-    lightgray: "#d3d3d3",
-    lightgreen: "#90ee90",
-    lightgrey: "#d3d3d3",
-    lightpink: "#ffb6c1",
-    lightsalmon: "#ffa07a",
-    lightseagreen: "#20b2aa",
-    lightskyblue: "#87cefa",
-    lightslategray: "#778899",
-    lightslategrey: "#778899",
-    lightsteelblue: "#b0c4de",
-    lightyellow: "#ffffe0",
-    lime: "#00ff00",
-    limegreen: "#32cd32",
-    linen: "#faf0e6",
-    magenta: "#ff00ff",
-    maroon: "#800000",
-    mediumaquamarine: "#66cdaa",
-    mediumblue: "#0000cd",
-    mediumorchid: "#ba55d3",
-    mediumpurple: "#9370db",
-    mediumseagreen: "#3cb371",
-    mediumslateblue: "#7b68ee",
-    mediumspringgreen: "#00fa9a",
-    mediumturquoise: "#48d1cc",
-    mediumvioletred: "#c71585",
-    midnightblue: "#191970",
-    mintcream: "#f5fffa",
-    mistyrose: "#ffe4e1",
-    moccasin: "#ffe4b5",
-    navajowhite: "#ffdead",
-    navy: "#000080",
-    oldlace: "#fdf5e6",
-    olive: "#808000",
-    olivedrab: "#6b8e23",
-    orange: "#ffa500",
-    orangered: "#ff4500",
-    orchid: "#da70d6",
-    palegoldenrod: "#eee8aa",
-    palegreen: "#98fb98",
-    paleturquoise: "#afeeee",
-    palevioletred: "#db7093",
-    papayawhip: "#ffefd5",
-    peachpuff: "#ffdab9",
-    peru: "#cd853f",
-    pink: "#ffc0cb",
-    plum: "#dda0dd",
-    powderblue: "#b0e0e6",
-    purple: "#800080",
-    red: "#ff0000",
-    rosybrown: "#bc8f8f",
-    royalblue: "#4169e1",
-    saddlebrown: "#8b4513",
-    salmon: "#fa8072",
-    sandybrown: "#f4a460",
-    seagreen: "#2e8b57",
-    seashell: "#fff5ee",
-    sienna: "#a0522d",
-    silver: "#c0c0c0",
-    skyblue: "#87ceeb",
-    slateblue: "#6a5acd",
-    slategray: "#708090",
-    slategrey: "#708090",
-    snow: "#fffafa",
-    springgreen: "#00ff7f",
-    steelblue: "#4682b4",
-    tan: "#d2b48c",
-    teal: "#008080",
-    thistle: "#d8bfd8",
-    tomato: "#ff6347",
-    turquoise: "#40e0d0",
-    violet: "#ee82ee",
-    wheat: "#f5deb3",
-    white: "#ffffff",
-    whitesmoke: "#f5f5f5",
-    yellow: "#ffff00",
-    yellowgreen: "#9acd32"
-  });
-  d3_rgb_names.forEach(function(key, value) {
-    d3_rgb_names.set(key, d3_rgb_parse(value, d3_rgb, d3_hsl_rgb));
-  });
-  function d3_functor(v) {
-    return typeof v === "function" ? v : function() {
-      return v;
-    };
-  }
-  d3.functor = d3_functor;
-  function d3_identity(d) {
-    return d;
-  }
-  d3.xhr = function(url, mimeType, callback) {
-    var xhr = {}, dispatch = d3.dispatch("progress", "load", "error"), headers = {}, response = d3_identity, request = new (d3_window.XDomainRequest && /^(http(s)?:)?\/\//.test(url) ? XDomainRequest : XMLHttpRequest)();
-    "onload" in request ? request.onload = request.onerror = respond : request.onreadystatechange = function() {
-      request.readyState > 3 && respond();
-    };
-    function respond() {
-      var s = request.status;
-      !s && request.responseText || s >= 200 && s < 300 || s === 304 ? dispatch.load.call(xhr, response.call(xhr, request)) : dispatch.error.call(xhr, request);
-    }
-    request.onprogress = function(event) {
-      var o = d3.event;
-      d3.event = event;
-      try {
-        dispatch.progress.call(xhr, request);
-      } finally {
-        d3.event = o;
-      }
-    };
-    xhr.header = function(name, value) {
-      name = (name + "").toLowerCase();
-      if (arguments.length < 2) return headers[name];
-      if (value == null) delete headers[name]; else headers[name] = value + "";
-      return xhr;
-    };
-    xhr.mimeType = function(value) {
-      if (!arguments.length) return mimeType;
-      mimeType = value == null ? null : value + "";
-      return xhr;
-    };
-    xhr.response = function(value) {
-      response = value;
-      return xhr;
-    };
-    [ "get", "post" ].forEach(function(method) {
-      xhr[method] = function() {
-        return xhr.send.apply(xhr, [ method ].concat(d3_array(arguments)));
-      };
-    });
-    xhr.send = function(method, data, callback) {
-      if (arguments.length === 2 && typeof data === "function") callback = data, data = null;
-      request.open(method, url, true);
-      if (mimeType != null && !("accept" in headers)) headers["accept"] = mimeType + ",*/*";
-      if (request.setRequestHeader) for (var name in headers) request.setRequestHeader(name, headers[name]);
-      if (mimeType != null && request.overrideMimeType) request.overrideMimeType(mimeType);
-      if (callback != null) xhr.on("error", callback).on("load", function(request) {
-        callback(null, request);
-      });
-      request.send(data == null ? null : data);
-      return xhr;
-    };
-    xhr.abort = function() {
-      request.abort();
-      return xhr;
-    };
-    d3.rebind(xhr, dispatch, "on");
-    if (arguments.length === 2 && typeof mimeType === "function") callback = mimeType, 
-    mimeType = null;
-    return callback == null ? xhr : xhr.get(d3_xhr_fixCallback(callback));
-  };
-  function d3_xhr_fixCallback(callback) {
-    return callback.length === 1 ? function(error, request) {
-      callback(error == null ? request : null);
-    } : callback;
-  }
-  function d3_dsv(delimiter, mimeType) {
-    var reFormat = new RegExp('["' + delimiter + "\n]"), delimiterCode = delimiter.charCodeAt(0);
-    function dsv(url, row, callback) {
-      if (arguments.length < 3) callback = row, row = null;
-      var xhr = d3.xhr(url, mimeType, callback);
-      xhr.row = function(_) {
-        return arguments.length ? xhr.response((row = _) == null ? response : typedResponse(_)) : row;
-      };
-      return xhr.row(row);
-    }
-    function response(request) {
-      return dsv.parse(request.responseText);
-    }
-    function typedResponse(f) {
-      return function(request) {
-        return dsv.parse(request.responseText, f);
-      };
-    }
-    dsv.parse = function(text, f) {
-      var o;
-      return dsv.parseRows(text, function(row, i) {
-        if (o) return o(row, i - 1);
-        var a = new Function("d", "return {" + row.map(function(name, i) {
-          return JSON.stringify(name) + ": d[" + i + "]";
-        }).join(",") + "}");
-        o = f ? function(row, i) {
-          return f(a(row), i);
-        } : a;
-      });
-    };
-    dsv.parseRows = function(text, f) {
-      var EOL = {}, EOF = {}, rows = [], N = text.length, I = 0, n = 0, t, eol;
-      function token() {
-        if (I >= N) return EOF;
-        if (eol) return eol = false, EOL;
-        var j = I;
-        if (text.charCodeAt(j) === 34) {
-          var i = j;
-          while (i++ < N) {
-            if (text.charCodeAt(i) === 34) {
-              if (text.charCodeAt(i + 1) !== 34) break;
-              ++i;
-            }
-          }
-          I = i + 2;
-          var c = text.charCodeAt(i + 1);
-          if (c === 13) {
-            eol = true;
-            if (text.charCodeAt(i + 2) === 10) ++I;
-          } else if (c === 10) {
-            eol = true;
-          }
-          return text.substring(j + 1, i).replace(/""/g, '"');
-        }
-        while (I < N) {
-          var c = text.charCodeAt(I++), k = 1;
-          if (c === 10) eol = true; else if (c === 13) {
-            eol = true;
-            if (text.charCodeAt(I) === 10) ++I, ++k;
-          } else if (c !== delimiterCode) continue;
-          return text.substring(j, I - k);
-        }
-        return text.substring(j);
-      }
-      while ((t = token()) !== EOF) {
-        var a = [];
-        while (t !== EOL && t !== EOF) {
-          a.push(t);
-          t = token();
-        }
-        if (f && !(a = f(a, n++))) continue;
-        rows.push(a);
-      }
-      return rows;
-    };
-    dsv.format = function(rows) {
-      if (Array.isArray(rows[0])) return dsv.formatRows(rows);
-      var fieldSet = new d3_Set(), fields = [];
-      rows.forEach(function(row) {
-        for (var field in row) {
-          if (!fieldSet.has(field)) {
-            fields.push(fieldSet.add(field));
-          }
-        }
-      });
-      return [ fields.map(formatValue).join(delimiter) ].concat(rows.map(function(row) {
-        return fields.map(function(field) {
-          return formatValue(row[field]);
-        }).join(delimiter);
-      })).join("\n");
-    };
-    dsv.formatRows = function(rows) {
-      return rows.map(formatRow).join("\n");
-    };
-    function formatRow(row) {
-      return row.map(formatValue).join(delimiter);
-    }
-    function formatValue(text) {
-      return reFormat.test(text) ? '"' + text.replace(/\"/g, '""') + '"' : text;
-    }
-    return dsv;
-  }
-  d3.csv = d3_dsv(",", "text/csv");
-  d3.tsv = d3_dsv("	", "text/tab-separated-values");
-  var d3_timer_id = 0, d3_timer_byId = {}, d3_timer_queue = null, d3_timer_interval, d3_timer_timeout;
-  d3.timer = function(callback, delay, then) {
-    if (arguments.length < 3) {
-      if (arguments.length < 2) delay = 0; else if (!isFinite(delay)) return;
-      then = Date.now();
-    }
-    var timer = d3_timer_byId[callback.id];
-    if (timer && timer.callback === callback) {
-      timer.then = then;
-      timer.delay = delay;
-    } else d3_timer_byId[callback.id = ++d3_timer_id] = d3_timer_queue = {
-      callback: callback,
-      then: then,
-      delay: delay,
-      next: d3_timer_queue
-    };
-    if (!d3_timer_interval) {
-      d3_timer_timeout = clearTimeout(d3_timer_timeout);
-      d3_timer_interval = 1;
-      d3_timer_frame(d3_timer_step);
-    }
-  };
-  function d3_timer_step() {
-    var elapsed, now = Date.now(), t1 = d3_timer_queue;
-    while (t1) {
-      elapsed = now - t1.then;
-      if (elapsed >= t1.delay) t1.flush = t1.callback(elapsed);
-      t1 = t1.next;
-    }
-    var delay = d3_timer_flush() - now;
-    if (delay > 24) {
-      if (isFinite(delay)) {
-        clearTimeout(d3_timer_timeout);
-        d3_timer_timeout = setTimeout(d3_timer_step, delay);
-      }
-      d3_timer_interval = 0;
-    } else {
-      d3_timer_interval = 1;
-      d3_timer_frame(d3_timer_step);
-    }
-  }
-  d3.timer.flush = function() {
-    var elapsed, now = Date.now(), t1 = d3_timer_queue;
-    while (t1) {
-      elapsed = now - t1.then;
-      if (!t1.delay) t1.flush = t1.callback(elapsed);
-      t1 = t1.next;
-    }
-    d3_timer_flush();
-  };
-  function d3_timer_flush() {
-    var t0 = null, t1 = d3_timer_queue, then = Infinity;
-    while (t1) {
-      if (t1.flush) {
-        delete d3_timer_byId[t1.callback.id];
-        t1 = t0 ? t0.next = t1.next : d3_timer_queue = t1.next;
-      } else {
-        then = Math.min(then, t1.then + t1.delay);
-        t1 = (t0 = t1).next;
-      }
-    }
-    return then;
-  }
-  var d3_timer_frame = d3_window.requestAnimationFrame || d3_window.webkitRequestAnimationFrame || d3_window.mozRequestAnimationFrame || d3_window.oRequestAnimationFrame || d3_window.msRequestAnimationFrame || function(callback) {
-    setTimeout(callback, 17);
-  };
-  var d3_format_decimalPoint = ".", d3_format_thousandsSeparator = ",", d3_format_grouping = [ 3, 3 ];
-  var d3_formatPrefixes = [ "y", "z", "a", "f", "p", "n", "µ", "m", "", "k", "M", "G", "T", "P", "E", "Z", "Y" ].map(d3_formatPrefix);
-  d3.formatPrefix = function(value, precision) {
-    var i = 0;
-    if (value) {
-      if (value < 0) value *= -1;
-      if (precision) value = d3.round(value, d3_format_precision(value, precision));
-      i = 1 + Math.floor(1e-12 + Math.log(value) / Math.LN10);
-      i = Math.max(-24, Math.min(24, Math.floor((i <= 0 ? i + 1 : i - 1) / 3) * 3));
-    }
-    return d3_formatPrefixes[8 + i / 3];
-  };
-  function d3_formatPrefix(d, i) {
-    var k = Math.pow(10, Math.abs(8 - i) * 3);
-    return {
-      scale: i > 8 ? function(d) {
-        return d / k;
-      } : function(d) {
-        return d * k;
-      },
-      symbol: d
-    };
-  }
-  d3.round = function(x, n) {
-    return n ? Math.round(x * (n = Math.pow(10, n))) / n : Math.round(x);
-  };
-  d3.format = function(specifier) {
-    var match = d3_format_re.exec(specifier), fill = match[1] || " ", align = match[2] || ">", sign = match[3] || "", basePrefix = match[4] || "", zfill = match[5], width = +match[6], comma = match[7], precision = match[8], type = match[9], scale = 1, suffix = "", integer = false;
-    if (precision) precision = +precision.substring(1);
-    if (zfill || fill === "0" && align === "=") {
-      zfill = fill = "0";
-      align = "=";
-      if (comma) width -= Math.floor((width - 1) / 4);
-    }
-    switch (type) {
-     case "n":
-      comma = true;
-      type = "g";
-      break;
-
-     case "%":
-      scale = 100;
-      suffix = "%";
-      type = "f";
-      break;
-
-     case "p":
-      scale = 100;
-      suffix = "%";
-      type = "r";
-      break;
-
-     case "b":
-     case "o":
-     case "x":
-     case "X":
-      if (basePrefix) basePrefix = "0" + type.toLowerCase();
-
-     case "c":
-     case "d":
-      integer = true;
-      precision = 0;
-      break;
-
-     case "s":
-      scale = -1;
-      type = "r";
-      break;
-    }
-    if (basePrefix === "#") basePrefix = "";
-    if (type == "r" && !precision) type = "g";
-    if (precision != null) {
-      if (type == "g") precision = Math.max(1, Math.min(21, precision)); else if (type == "e" || type == "f") precision = Math.max(0, Math.min(20, precision));
-    }
-    type = d3_format_types.get(type) || d3_format_typeDefault;
-    var zcomma = zfill && comma;
-    return function(value) {
-      if (integer && value % 1) return "";
-      var negative = value < 0 || value === 0 && 1 / value < 0 ? (value = -value, "-") : sign;
-      if (scale < 0) {
-        var prefix = d3.formatPrefix(value, precision);
-        value = prefix.scale(value);
-        suffix = prefix.symbol;
-      } else {
-        value *= scale;
-      }
-      value = type(value, precision);
-      if (!zfill && comma) value = d3_format_group(value);
-      var length = basePrefix.length + value.length + (zcomma ? 0 : negative.length), padding = length < width ? new Array(length = width - length + 1).join(fill) : "";
-      if (zcomma) value = d3_format_group(padding + value);
-      if (d3_format_decimalPoint) value.replace(".", d3_format_decimalPoint);
-      negative += basePrefix;
-      return (align === "<" ? negative + value + padding : align === ">" ? padding + negative + value : align === "^" ? padding.substring(0, length >>= 1) + negative + value + padding.substring(length) : negative + (zcomma ? value : padding + value)) + suffix;
-    };
-  };
-  var d3_format_re = /(?:([^{])?([<>=^]))?([+\- ])?(#)?(0)?(\d+)?(,)?(\.-?\d+)?([a-z%])?/i;
-  var d3_format_types = d3.map({
-    b: function(x) {
-      return x.toString(2);
-    },
-    c: function(x) {
-      return String.fromCharCode(x);
-    },
-    o: function(x) {
-      return x.toString(8);
-    },
-    x: function(x) {
-      return x.toString(16);
-    },
-    X: function(x) {
-      return x.toString(16).toUpperCase();
-    },
-    g: function(x, p) {
-      return x.toPrecision(p);
-    },
-    e: function(x, p) {
-      return x.toExponential(p);
-    },
-    f: function(x, p) {
-      return x.toFixed(p);
-    },
-    r: function(x, p) {
-      return (x = d3.round(x, d3_format_precision(x, p))).toFixed(Math.max(0, Math.min(20, d3_format_precision(x * (1 + 1e-15), p))));
-    }
-  });
-  function d3_format_precision(x, p) {
-    return p - (x ? Math.ceil(Math.log(x) / Math.LN10) : 1);
-  }
-  function d3_format_typeDefault(x) {
-    return x + "";
-  }
-  var d3_format_group = d3_identity;
-  if (d3_format_grouping) {
-    var d3_format_groupingLength = d3_format_grouping.length;
-    d3_format_group = function(value) {
-      var i = value.lastIndexOf("."), f = i >= 0 ? "." + value.substring(i + 1) : (i = value.length, 
-      ""), t = [], j = 0, g = d3_format_grouping[0];
-      while (i > 0 && g > 0) {
-        t.push(value.substring(i -= g, i + g));
-        g = d3_format_grouping[j = (j + 1) % d3_format_groupingLength];
-      }
-      return t.reverse().join(d3_format_thousandsSeparator || "") + f;
-    };
-  }
-  d3.geo = {};
-  d3.geo.stream = function(object, listener) {
-    if (object && d3_geo_streamObjectType.hasOwnProperty(object.type)) {
-      d3_geo_streamObjectType[object.type](object, listener);
-    } else {
-      d3_geo_streamGeometry(object, listener);
-    }
-  };
-  function d3_geo_streamGeometry(geometry, listener) {
-    if (geometry && d3_geo_streamGeometryType.hasOwnProperty(geometry.type)) {
-      d3_geo_streamGeometryType[geometry.type](geometry, listener);
-    }
-  }
-  var d3_geo_streamObjectType = {
-    Feature: function(feature, listener) {
-      d3_geo_streamGeometry(feature.geometry, listener);
-    },
-    FeatureCollection: function(object, listener) {
-      var features = object.features, i = -1, n = features.length;
-      while (++i < n) d3_geo_streamGeometry(features[i].geometry, listener);
-    }
-  };
-  var d3_geo_streamGeometryType = {
-    Sphere: function(object, listener) {
-      listener.sphere();
-    },
-    Point: function(object, listener) {
-      var coordinate = object.coordinates;
-      listener.point(coordinate[0], coordinate[1]);
-    },
-    MultiPoint: function(object, listener) {
-      var coordinates = object.coordinates, i = -1, n = coordinates.length, coordinate;
-      while (++i < n) coordinate = coordinates[i], listener.point(coordinate[0], coordinate[1]);
-    },
-    LineString: function(object, listener) {
-      d3_geo_streamLine(object.coordinates, listener, 0);
-    },
-    MultiLineString: function(object, listener) {
-      var coordinates = object.coordinates, i = -1, n = coordinates.length;
-      while (++i < n) d3_geo_streamLine(coordinates[i], listener, 0);
-    },
-    Polygon: function(object, listener) {
-      d3_geo_streamPolygon(object.coordinates, listener);
-    },
-    MultiPolygon: function(object, listener) {
-      var coordinates = object.coordinates, i = -1, n = coordinates.length;
-      while (++i < n) d3_geo_streamPolygon(coordinates[i], listener);
-    },
-    GeometryCollection: function(object, listener) {
-      var geometries = object.geometries, i = -1, n = geometries.length;
-      while (++i < n) d3_geo_streamGeometry(geometries[i], listener);
-    }
-  };
-  function d3_geo_streamLine(coordinates, listener, closed) {
-    var i = -1, n = coordinates.length - closed, coordinate;
-    listener.lineStart();
-    while (++i < n) coordinate = coordinates[i], listener.point(coordinate[0], coordinate[1]);
-    listener.lineEnd();
-  }
-  function d3_geo_streamPolygon(coordinates, listener) {
-    var i = -1, n = coordinates.length;
-    listener.polygonStart();
-    while (++i < n) d3_geo_streamLine(coordinates[i], listener, 1);
-    listener.polygonEnd();
-  }
-  d3.geo.area = function(object) {
-    d3_geo_areaSum = 0;
-    d3.geo.stream(object, d3_geo_area);
-    return d3_geo_areaSum;
-  };
-  var d3_geo_areaSum, d3_geo_areaRingU, d3_geo_areaRingV;
-  var d3_geo_area = {
-    sphere: function() {
-      d3_geo_areaSum += 4 * π;
-    },
-    point: d3_noop,
-    lineStart: d3_noop,
-    lineEnd: d3_noop,
-    polygonStart: function() {
-      d3_geo_areaRingU = 1, d3_geo_areaRingV = 0;
-      d3_geo_area.lineStart = d3_geo_areaRingStart;
-    },
-    polygonEnd: function() {
-      var area = 2 * Math.atan2(d3_geo_areaRingV, d3_geo_areaRingU);
-      d3_geo_areaSum += area < 0 ? 4 * π + area : area;
-      d3_geo_area.lineStart = d3_geo_area.lineEnd = d3_geo_area.point = d3_noop;
-    }
-  };
-  function d3_geo_areaRingStart() {
-    var λ00, φ00, λ0, cosφ0, sinφ0;
-    d3_geo_area.point = function(λ, φ) {
-      d3_geo_area.point = nextPoint;
-      λ0 = (λ00 = λ) * d3_radians, cosφ0 = Math.cos(φ = (φ00 = φ) * d3_radians / 2 + π / 4), 
-      sinφ0 = Math.sin(φ);
-    };
-    function nextPoint(λ, φ) {
-      λ *= d3_radians;
-      φ = φ * d3_radians / 2 + π / 4;
-      var dλ = λ - λ0, cosφ = Math.cos(φ), sinφ = Math.sin(φ), k = sinφ0 * sinφ, u0 = d3_geo_areaRingU, v0 = d3_geo_areaRingV, u = cosφ0 * cosφ + k * Math.cos(dλ), v = k * Math.sin(dλ);
-      d3_geo_areaRingU = u0 * u - v0 * v;
-      d3_geo_areaRingV = v0 * u + u0 * v;
-      λ0 = λ, cosφ0 = cosφ, sinφ0 = sinφ;
-    }
-    d3_geo_area.lineEnd = function() {
-      nextPoint(λ00, φ00);
-    };
-  }
-  d3.geo.bounds = d3_geo_bounds(d3_identity);
-  function d3_geo_bounds(projectStream) {
-    var x0, y0, x1, y1;
-    var bound = {
-      point: boundPoint,
-      lineStart: d3_noop,
-      lineEnd: d3_noop,
-      polygonStart: function() {
-        bound.lineEnd = boundPolygonLineEnd;
-      },
-      polygonEnd: function() {
-        bound.point = boundPoint;
-      }
-    };
-    function boundPoint(x, y) {
-      if (x < x0) x0 = x;
-      if (x > x1) x1 = x;
-      if (y < y0) y0 = y;
-      if (y > y1) y1 = y;
-    }
-    function boundPolygonLineEnd() {
-      bound.point = bound.lineEnd = d3_noop;
-    }
-    return function(feature) {
-      y1 = x1 = -(x0 = y0 = Infinity);
-      d3.geo.stream(feature, projectStream(bound));
-      return [ [ x0, y0 ], [ x1, y1 ] ];
-    };
-  }
-  d3.geo.centroid = function(object) {
-    d3_geo_centroidDimension = d3_geo_centroidW = d3_geo_centroidX = d3_geo_centroidY = d3_geo_centroidZ = 0;
-    d3.geo.stream(object, d3_geo_centroid);
-    var m;
-    if (d3_geo_centroidW && Math.abs(m = Math.sqrt(d3_geo_centroidX * d3_geo_centroidX + d3_geo_centroidY * d3_geo_centroidY + d3_geo_centroidZ * d3_geo_centroidZ)) > ε) {
-      return [ Math.atan2(d3_geo_centroidY, d3_geo_centroidX) * d3_degrees, Math.asin(Math.max(-1, Math.min(1, d3_geo_centroidZ / m))) * d3_degrees ];
-    }
-  };
-  var d3_geo_centroidDimension, d3_geo_centroidW, d3_geo_centroidX, d3_geo_centroidY, d3_geo_centroidZ;
-  var d3_geo_centroid = {
-    sphere: function() {
-      if (d3_geo_centroidDimension < 2) {
-        d3_geo_centroidDimension = 2;
-        d3_geo_centroidW = d3_geo_centroidX = d3_geo_centroidY = d3_geo_centroidZ = 0;
-      }
-    },
-    point: d3_geo_centroidPoint,
-    lineStart: d3_geo_centroidLineStart,
-    lineEnd: d3_geo_centroidLineEnd,
-    polygonStart: function() {
-      if (d3_geo_centroidDimension < 2) {
-        d3_geo_centroidDimension = 2;
-        d3_geo_centroidW = d3_geo_centroidX = d3_geo_centroidY = d3_geo_centroidZ = 0;
-      }
-      d3_geo_centroid.lineStart = d3_geo_centroidRingStart;
-    },
-    polygonEnd: function() {
-      d3_geo_centroid.lineStart = d3_geo_centroidLineStart;
-    }
-  };
-  function d3_geo_centroidPoint(λ, φ) {
-    if (d3_geo_centroidDimension) return;
-    ++d3_geo_centroidW;
-    λ *= d3_radians;
-    var cosφ = Math.cos(φ *= d3_radians);
-    d3_geo_centroidX += (cosφ * Math.cos(λ) - d3_geo_centroidX) / d3_geo_centroidW;
-    d3_geo_centroidY += (cosφ * Math.sin(λ) - d3_geo_centroidY) / d3_geo_centroidW;
-    d3_geo_centroidZ += (Math.sin(φ) - d3_geo_centroidZ) / d3_geo_centroidW;
-  }
-  function d3_geo_centroidRingStart() {
-    var λ00, φ00;
-    d3_geo_centroidDimension = 1;
-    d3_geo_centroidLineStart();
-    d3_geo_centroidDimension = 2;
-    var linePoint = d3_geo_centroid.point;
-    d3_geo_centroid.point = function(λ, φ) {
-      linePoint(λ00 = λ, φ00 = φ);
-    };
-    d3_geo_centroid.lineEnd = function() {
-      d3_geo_centroid.point(λ00, φ00);
-      d3_geo_centroidLineEnd();
-      d3_geo_centroid.lineEnd = d3_geo_centroidLineEnd;
-    };
-  }
-  function d3_geo_centroidLineStart() {
-    var x0, y0, z0;
-    if (d3_geo_centroidDimension > 1) return;
-    if (d3_geo_centroidDimension < 1) {
-      d3_geo_centroidDimension = 1;
-      d3_geo_centroidW = d3_geo_centroidX = d3_geo_centroidY = d3_geo_centroidZ = 0;
-    }
-    d3_geo_centroid.point = function(λ, φ) {
-      λ *= d3_radians;
-      var cosφ = Math.cos(φ *= d3_radians);
-      x0 = cosφ * Math.cos(λ);
-      y0 = cosφ * Math.sin(λ);
-      z0 = Math.sin(φ);
-      d3_geo_centroid.point = nextPoint;
-    };
-    function nextPoint(λ, φ) {
-      λ *= d3_radians;
-      var cosφ = Math.cos(φ *= d3_radians), x = cosφ * Math.cos(λ), y = cosφ * Math.sin(λ), z = Math.sin(φ), w = Math.atan2(Math.sqrt((w = y0 * z - z0 * y) * w + (w = z0 * x - x0 * z) * w + (w = x0 * y - y0 * x) * w), x0 * x + y0 * y + z0 * z);
-      d3_geo_centroidW += w;
-      d3_geo_centroidX += w * (x0 + (x0 = x));
-      d3_geo_centroidY += w * (y0 + (y0 = y));
-      d3_geo_centroidZ += w * (z0 + (z0 = z));
-    }
-  }
-  function d3_geo_centroidLineEnd() {
-    d3_geo_centroid.point = d3_geo_centroidPoint;
-  }
-  function d3_geo_cartesian(spherical) {
-    var λ = spherical[0], φ = spherical[1], cosφ = Math.cos(φ);
-    return [ cosφ * Math.cos(λ), cosφ * Math.sin(λ), Math.sin(φ) ];
-  }
-  function d3_geo_cartesianDot(a, b) {
-    return a[0] * b[0] + a[1] * b[1] + a[2] * b[2];
-  }
-  function d3_geo_cartesianCross(a, b) {
-    return [ a[1] * b[2] - a[2] * b[1], a[2] * b[0] - a[0] * b[2], a[0] * b[1] - a[1] * b[0] ];
-  }
-  function d3_geo_cartesianAdd(a, b) {
-    a[0] += b[0];
-    a[1] += b[1];
-    a[2] += b[2];
-  }
-  function d3_geo_cartesianScale(vector, k) {
-    return [ vector[0] * k, vector[1] * k, vector[2] * k ];
-  }
-  function d3_geo_cartesianNormalize(d) {
-    var l = Math.sqrt(d[0] * d[0] + d[1] * d[1] + d[2] * d[2]);
-    d[0] /= l;
-    d[1] /= l;
-    d[2] /= l;
-  }
-  function d3_true() {
-    return true;
-  }
-  function d3_geo_spherical(cartesian) {
-    return [ Math.atan2(cartesian[1], cartesian[0]), Math.asin(Math.max(-1, Math.min(1, cartesian[2]))) ];
-  }
-  function d3_geo_sphericalEqual(a, b) {
-    return Math.abs(a[0] - b[0]) < ε && Math.abs(a[1] - b[1]) < ε;
-  }
-  function d3_geo_clipPolygon(segments, compare, inside, interpolate, listener) {
-    var subject = [], clip = [];
-    segments.forEach(function(segment) {
-      if ((n = segment.length - 1) <= 0) return;
-      var n, p0 = segment[0], p1 = segment[n];
-      if (d3_geo_sphericalEqual(p0, p1)) {
-        listener.lineStart();
-        for (var i = 0; i < n; ++i) listener.point((p0 = segment[i])[0], p0[1]);
-        listener.lineEnd();
-        return;
-      }
-      var a = {
-        point: p0,
-        points: segment,
-        other: null,
-        visited: false,
-        entry: true,
-        subject: true
-      }, b = {
-        point: p0,
-        points: [ p0 ],
-        other: a,
-        visited: false,
-        entry: false,
-        subject: false
-      };
-      a.other = b;
-      subject.push(a);
-      clip.push(b);
-      a = {
-        point: p1,
-        points: [ p1 ],
-        other: null,
-        visited: false,
-        entry: false,
-        subject: true
-      };
-      b = {
-        point: p1,
-        points: [ p1 ],
-        other: a,
-        visited: false,
-        entry: true,
-        subject: false
-      };
-      a.other = b;
-      subject.push(a);
-      clip.push(b);
-    });
-    clip.sort(compare);
-    d3_geo_clipPolygonLinkCircular(subject);
-    d3_geo_clipPolygonLinkCircular(clip);
-    if (!subject.length) return;
-    if (inside) for (var i = 1, e = !inside(clip[0].point), n = clip.length; i < n; ++i) {
-      clip[i].entry = e = !e;
-    }
-    var start = subject[0], current, points, point;
-    while (1) {
-      current = start;
-      while (current.visited) if ((current = current.next) === start) return;
-      points = current.points;
-      listener.lineStart();
-      do {
-        current.visited = current.other.visited = true;
-        if (current.entry) {
-          if (current.subject) {
-            for (var i = 0; i < points.length; i++) listener.point((point = points[i])[0], point[1]);
-          } else {
-            interpolate(current.point, current.next.point, 1, listener);
-          }
-          current = current.next;
-        } else {
-          if (current.subject) {
-            points = current.prev.points;
-            for (var i = points.length; --i >= 0; ) listener.point((point = points[i])[0], point[1]);
-          } else {
-            interpolate(current.point, current.prev.point, -1, listener);
-          }
-          current = current.prev;
-        }
-        current = current.other;
-        points = current.points;
-      } while (!current.visited);
-      listener.lineEnd();
-    }
-  }
-  function d3_geo_clipPolygonLinkCircular(array) {
-    if (!(n = array.length)) return;
-    var n, i = 0, a = array[0], b;
-    while (++i < n) {
-      a.next = b = array[i];
-      b.prev = a;
-      a = b;
-    }
-    a.next = b = array[0];
-    b.prev = a;
-  }
-  function d3_geo_clip(pointVisible, clipLine, interpolate) {
-    return function(listener) {
-      var line = clipLine(listener);
-      var clip = {
-        point: point,
-        lineStart: lineStart,
-        lineEnd: lineEnd,
-        polygonStart: function() {
-          clip.point = pointRing;
-          clip.lineStart = ringStart;
-          clip.lineEnd = ringEnd;
-          invisible = false;
-          invisibleArea = visibleArea = 0;
-          segments = [];
-          listener.polygonStart();
-        },
-        polygonEnd: function() {
-          clip.point = point;
-          clip.lineStart = lineStart;
-          clip.lineEnd = lineEnd;
-          segments = d3.merge(segments);
-          if (segments.length) {
-            d3_geo_clipPolygon(segments, d3_geo_clipSort, null, interpolate, listener);
-          } else if (visibleArea < -ε || invisible && invisibleArea < -ε) {
-            listener.lineStart();
-            interpolate(null, null, 1, listener);
-            listener.lineEnd();
-          }
-          listener.polygonEnd();
-          segments = null;
-        },
-        sphere: function() {
-          listener.polygonStart();
-          listener.lineStart();
-          interpolate(null, null, 1, listener);
-          listener.lineEnd();
-          listener.polygonEnd();
-        }
-      };
-      function point(λ, φ) {
-        if (pointVisible(λ, φ)) listener.point(λ, φ);
-      }
-      function pointLine(λ, φ) {
-        line.point(λ, φ);
-      }
-      function lineStart() {
-        clip.point = pointLine;
-        line.lineStart();
-      }
-      function lineEnd() {
-        clip.point = point;
-        line.lineEnd();
-      }
-      var segments, visibleArea, invisibleArea, invisible;
-      var buffer = d3_geo_clipBufferListener(), ringListener = clipLine(buffer), ring;
-      function pointRing(λ, φ) {
-        ringListener.point(λ, φ);
-        ring.push([ λ, φ ]);
-      }
-      function ringStart() {
-        ringListener.lineStart();
-        ring = [];
-      }
-      function ringEnd() {
-        pointRing(ring[0][0], ring[0][1]);
-        ringListener.lineEnd();
-        var clean = ringListener.clean(), ringSegments = buffer.buffer(), segment, n = ringSegments.length;
-        if (!n) {
-          invisible = true;
-          invisibleArea += d3_geo_clipAreaRing(ring, -1);
-          ring = null;
-          return;
-        }
-        ring = null;
-        if (clean & 1) {
-          segment = ringSegments[0];
-          visibleArea += d3_geo_clipAreaRing(segment, 1);
-          var n = segment.length - 1, i = -1, point;
-          listener.lineStart();
-          while (++i < n) listener.point((point = segment[i])[0], point[1]);
-          listener.lineEnd();
-          return;
-        }
-        if (n > 1 && clean & 2) ringSegments.push(ringSegments.pop().concat(ringSegments.shift()));
-        segments.push(ringSegments.filter(d3_geo_clipSegmentLength1));
-      }
-      return clip;
-    };
-  }
-  function d3_geo_clipSegmentLength1(segment) {
-    return segment.length > 1;
-  }
-  function d3_geo_clipBufferListener() {
-    var lines = [], line;
-    return {
-      lineStart: function() {
-        lines.push(line = []);
-      },
-      point: function(λ, φ) {
-        line.push([ λ, φ ]);
-      },
-      lineEnd: d3_noop,
-      buffer: function() {
-        var buffer = lines;
-        lines = [];
-        line = null;
-        return buffer;
-      },
-      rejoin: function() {
-        if (lines.length > 1) lines.push(lines.pop().concat(lines.shift()));
-      }
-    };
-  }
-  function d3_geo_clipAreaRing(ring, invisible) {
-    if (!(n = ring.length)) return 0;
-    var n, i = 0, area = 0, p = ring[0], λ = p[0], φ = p[1], cosφ = Math.cos(φ), x0 = Math.atan2(invisible * Math.sin(λ) * cosφ, Math.sin(φ)), y0 = 1 - invisible * Math.cos(λ) * cosφ, x1 = x0, x, y;
-    while (++i < n) {
-      p = ring[i];
-      cosφ = Math.cos(φ = p[1]);
-      x = Math.atan2(invisible * Math.sin(λ = p[0]) * cosφ, Math.sin(φ));
-      y = 1 - invisible * Math.cos(λ) * cosφ;
-      if (Math.abs(y0 - 2) < ε && Math.abs(y - 2) < ε) continue;
-      if (Math.abs(y) < ε || Math.abs(y0) < ε) {} else if (Math.abs(Math.abs(x - x0) - π) < ε) {
-        if (y + y0 > 2) area += 4 * (x - x0);
-      } else if (Math.abs(y0 - 2) < ε) area += 4 * (x - x1); else area += ((3 * π + x - x0) % (2 * π) - π) * (y0 + y);
-      x1 = x0, x0 = x, y0 = y;
-    }
-    return area;
-  }
-  function d3_geo_clipSort(a, b) {
-    return ((a = a.point)[0] < 0 ? a[1] - π / 2 - ε : π / 2 - a[1]) - ((b = b.point)[0] < 0 ? b[1] - π / 2 - ε : π / 2 - b[1]);
-  }
-  var d3_geo_clipAntimeridian = d3_geo_clip(d3_true, d3_geo_clipAntimeridianLine, d3_geo_clipAntimeridianInterpolate);
-  function d3_geo_clipAntimeridianLine(listener) {
-    var λ0 = NaN, φ0 = NaN, sλ0 = NaN, clean;
-    return {
-      lineStart: function() {
-        listener.lineStart();
-        clean = 1;
-      },
-      point: function(λ1, φ1) {
-        var sλ1 = λ1 > 0 ? π : -π, dλ = Math.abs(λ1 - λ0);
-        if (Math.abs(dλ - π) < ε) {
-          listener.point(λ0, φ0 = (φ0 + φ1) / 2 > 0 ? π / 2 : -π / 2);
-          listener.point(sλ0, φ0);
-          listener.lineEnd();
-          listener.lineStart();
-          listener.point(sλ1, φ0);
-          listener.point(λ1, φ0);
-          clean = 0;
-        } else if (sλ0 !== sλ1 && dλ >= π) {
-          if (Math.abs(λ0 - sλ0) < ε) λ0 -= sλ0 * ε;
-          if (Math.abs(λ1 - sλ1) < ε) λ1 -= sλ1 * ε;
-          φ0 = d3_geo_clipAntimeridianIntersect(λ0, φ0, λ1, φ1);
-          listener.point(sλ0, φ0);
-          listener.lineEnd();
-          listener.lineStart();
-          listener.point(sλ1, φ0);
-          clean = 0;
-        }
-        listener.point(λ0 = λ1, φ0 = φ1);
-        sλ0 = sλ1;
-      },
-      lineEnd: function() {
-        listener.lineEnd();
-        λ0 = φ0 = NaN;
-      },
-      clean: function() {
-        return 2 - clean;
-      }
-    };
-  }
-  function d3_geo_clipAntimeridianIntersect(λ0, φ0, λ1, φ1) {
-    var cosφ0, cosφ1, sinλ0_λ1 = Math.sin(λ0 - λ1);
-    return Math.abs(sinλ0_λ1) > ε ? Math.atan((Math.sin(φ0) * (cosφ1 = Math.cos(φ1)) * Math.sin(λ1) - Math.sin(φ1) * (cosφ0 = Math.cos(φ0)) * Math.sin(λ0)) / (cosφ0 * cosφ1 * sinλ0_λ1)) : (φ0 + φ1) / 2;
-  }
-  function d3_geo_clipAntimeridianInterpolate(from, to, direction, listener) {
-    var φ;
-    if (from == null) {
-      φ = direction * π / 2;
-      listener.point(-π, φ);
-      listener.point(0, φ);
-      listener.point(π, φ);
-      listener.point(π, 0);
-      listener.point(π, -φ);
-      listener.point(0, -φ);
-      listener.point(-π, -φ);
-      listener.point(-π, 0);
-      listener.point(-π, φ);
-    } else if (Math.abs(from[0] - to[0]) > ε) {
-      var s = (from[0] < to[0] ? 1 : -1) * π;
-      φ = direction * s / 2;
-      listener.point(-s, φ);
-      listener.point(0, φ);
-      listener.point(s, φ);
-    } else {
-      listener.point(to[0], to[1]);
-    }
-  }
-  function d3_geo_clipCircle(radius) {
-    var cr = Math.cos(radius), smallRadius = cr > 0, notHemisphere = Math.abs(cr) > ε, interpolate = d3_geo_circleInterpolate(radius, 6 * d3_radians);
-    return d3_geo_clip(visible, clipLine, interpolate);
-    function visible(λ, φ) {
-      return Math.cos(λ) * Math.cos(φ) > cr;
-    }
-    function clipLine(listener) {
-      var point0, c0, v0, v00, clean;
-      return {
-        lineStart: function() {
-          v00 = v0 = false;
-          clean = 1;
-        },
-        point: function(λ, φ) {
-          var point1 = [ λ, φ ], point2, v = visible(λ, φ), c = smallRadius ? v ? 0 : code(λ, φ) : v ? code(λ + (λ < 0 ? π : -π), φ) : 0;
-          if (!point0 && (v00 = v0 = v)) listener.lineStart();
-          if (v !== v0) {
-            point2 = intersect(point0, point1);
-            if (d3_geo_sphericalEqual(point0, point2) || d3_geo_sphericalEqual(point1, point2)) {
-              point1[0] += ε;
-              point1[1] += ε;
-              v = visible(point1[0], point1[1]);
-            }
-          }
-          if (v !== v0) {
-            clean = 0;
-            if (v) {
-              listener.lineStart();
-              point2 = intersect(point1, point0);
-              listener.point(point2[0], point2[1]);
-            } else {
-              point2 = intersect(point0, point1);
-              listener.point(point2[0], point2[1]);
-              listener.lineEnd();
-            }
-            point0 = point2;
-          } else if (notHemisphere && point0 && smallRadius ^ v) {
-            var t;
-            if (!(c & c0) && (t = intersect(point1, point0, true))) {
-              clean = 0;
-              if (smallRadius) {
-                listener.lineStart();
-                listener.point(t[0][0], t[0][1]);
-                listener.point(t[1][0], t[1][1]);
-                listener.lineEnd();
-              } else {
-                listener.point(t[1][0], t[1][1]);
-                listener.lineEnd();
-                listener.lineStart();
-                listener.point(t[0][0], t[0][1]);
-              }
-            }
-          }
-          if (v && (!point0 || !d3_geo_sphericalEqual(point0, point1))) {
-            listener.point(point1[0], point1[1]);
-          }
-          point0 = point1, v0 = v, c0 = c;
-        },
-        lineEnd: function() {
-          if (v0) listener.lineEnd();
-          point0 = null;
-        },
-        clean: function() {
-          return clean | (v00 && v0) << 1;
-        }
-      };
-    }
-    function intersect(a, b, two) {
-      var pa = d3_geo_cartesian(a), pb = d3_geo_cartesian(b);
-      var n1 = [ 1, 0, 0 ], n2 = d3_geo_cartesianCross(pa, pb), n2n2 = d3_geo_cartesianDot(n2, n2), n1n2 = n2[0], determinant = n2n2 - n1n2 * n1n2;
-      if (!determinant) return !two && a;
-      var c1 = cr * n2n2 / determinant, c2 = -cr * n1n2 / determinant, n1xn2 = d3_geo_cartesianCross(n1, n2), A = d3_geo_cartesianScale(n1, c1), B = d3_geo_cartesianScale(n2, c2);
-      d3_geo_cartesianAdd(A, B);
-      var u = n1xn2, w = d3_geo_cartesianDot(A, u), uu = d3_geo_cartesianDot(u, u), t2 = w * w - uu * (d3_geo_cartesianDot(A, A) - 1);
-      if (t2 < 0) return;
-      var t = Math.sqrt(t2), q = d3_geo_cartesianScale(u, (-w - t) / uu);
-      d3_geo_cartesianAdd(q, A);
-      q = d3_geo_spherical(q);
-      if (!two) return q;
-      var λ0 = a[0], λ1 = b[0], φ0 = a[1], φ1 = b[1], z;
-      if (λ1 < λ0) z = λ0, λ0 = λ1, λ1 = z;
-      var δλ = λ1 - λ0, polar = Math.abs(δλ - π) < ε, meridian = polar || δλ < ε;
-      if (!polar && φ1 < φ0) z = φ0, φ0 = φ1, φ1 = z;
-      if (meridian ? polar ? φ0 + φ1 > 0 ^ q[1] < (Math.abs(q[0] - λ0) < ε ? φ0 : φ1) : φ0 <= q[1] && q[1] <= φ1 : δλ > π ^ (λ0 <= q[0] && q[0] <= λ1)) {
-        var q1 = d3_geo_cartesianScale(u, (-w + t) / uu);
-        d3_geo_cartesianAdd(q1, A);
-        return [ q, d3_geo_spherical(q1) ];
-      }
-    }
-    function code(λ, φ) {
-      var r = smallRadius ? radius : π - radius, code = 0;
-      if (λ < -r) code |= 1; else if (λ > r) code |= 2;
-      if (φ < -r) code |= 4; else if (φ > r) code |= 8;
-      return code;
-    }
-  }
-  var d3_geo_clipViewMAX = 1e9;
-  function d3_geo_clipView(x0, y0, x1, y1) {
-    return function(listener) {
-      var listener_ = listener, bufferListener = d3_geo_clipBufferListener(), segments, polygon, ring;
-      var clip = {
-        point: point,
-        lineStart: lineStart,
-        lineEnd: lineEnd,
-        polygonStart: function() {
-          listener = bufferListener;
-          segments = [];
-          polygon = [];
-        },
-        polygonEnd: function() {
-          listener = listener_;
-          if ((segments = d3.merge(segments)).length) {
-            listener.polygonStart();
-            d3_geo_clipPolygon(segments, compare, inside, interpolate, listener);
-            listener.polygonEnd();
-          } else if (insidePolygon([ x0, y0 ])) {
-            listener.polygonStart(), listener.lineStart();
-            interpolate(null, null, 1, listener);
-            listener.lineEnd(), listener.polygonEnd();
-          }
-          segments = polygon = ring = null;
-        }
-      };
-      function inside(point) {
-        var a = corner(point, -1), i = insidePolygon([ a === 0 || a === 3 ? x0 : x1, a > 1 ? y1 : y0 ]);
-        return i;
-      }
-      function insidePolygon(p) {
-        var wn = 0, n = polygon.length, y = p[1];
-        for (var i = 0; i < n; ++i) {
-          for (var j = 1, v = polygon[i], m = v.length, a = v[0]; j < m; ++j) {
-            b = v[j];
-            if (a[1] <= y) {
-              if (b[1] > y && isLeft(a, b, p) > 0) ++wn;
-            } else {
-              if (b[1] <= y && isLeft(a, b, p) < 0) --wn;
-            }
-            a = b;
-          }
-        }
-        return wn !== 0;
-      }
-      function isLeft(a, b, c) {
-        return (b[0] - a[0]) * (c[1] - a[1]) - (c[0] - a[0]) * (b[1] - a[1]);
-      }
-      function interpolate(from, to, direction, listener) {
-        var a = 0, a1 = 0;
-        if (from == null || (a = corner(from, direction)) !== (a1 = corner(to, direction)) || comparePoints(from, to) < 0 ^ direction > 0) {
-          do {
-            listener.point(a === 0 || a === 3 ? x0 : x1, a > 1 ? y1 : y0);
-          } while ((a = (a + direction + 4) % 4) !== a1);
-        } else {
-          listener.point(to[0], to[1]);
-        }
-      }
-      function visible(x, y) {
-        return x0 <= x && x <= x1 && y0 <= y && y <= y1;
-      }
-      function point(x, y) {
-        if (visible(x, y)) listener.point(x, y);
-      }
-      var x__, y__, v__, x_, y_, v_, first;
-      function lineStart() {
-        clip.point = linePoint;
-        if (polygon) polygon.push(ring = []);
-        first = true;
-        v_ = false;
-        x_ = y_ = NaN;
-      }
-      function lineEnd() {
-        if (segments) {
-          linePoint(x__, y__);
-          if (v__ && v_) bufferListener.rejoin();
-          segments.push(bufferListener.buffer());
-        }
-        clip.point = point;
-        if (v_) listener.lineEnd();
-      }
-      function linePoint(x, y) {
-        x = Math.max(-d3_geo_clipViewMAX, Math.min(d3_geo_clipViewMAX, x));
-        y = Math.max(-d3_geo_clipViewMAX, Math.min(d3_geo_clipViewMAX, y));
-        var v = visible(x, y);
-        if (polygon) ring.push([ x, y ]);
-        if (first) {
-          x__ = x, y__ = y, v__ = v;
-          first = false;
-          if (v) {
-            listener.lineStart();
-            listener.point(x, y);
-          }
-        } else {
-          if (v && v_) listener.point(x, y); else {
-            var a = [ x_, y_ ], b = [ x, y ];
-            if (clipLine(a, b)) {
-              if (!v_) {
-                listener.lineStart();
-                listener.point(a[0], a[1]);
-              }
-              listener.point(b[0], b[1]);
-              if (!v) listener.lineEnd();
-            } else {
-              listener.lineStart();
-              listener.point(x, y);
-            }
-          }
-        }
-        x_ = x, y_ = y, v_ = v;
-      }
-      return clip;
-    };
-    function corner(p, direction) {
-      return Math.abs(p[0] - x0) < ε ? direction > 0 ? 0 : 3 : Math.abs(p[0] - x1) < ε ? direction > 0 ? 2 : 1 : Math.abs(p[1] - y0) < ε ? direction > 0 ? 1 : 0 : direction > 0 ? 3 : 2;
-    }
-    function compare(a, b) {
-      return comparePoints(a.point, b.point);
-    }
-    function comparePoints(a, b) {
-      var ca = corner(a, 1), cb = corner(b, 1);
-      return ca !== cb ? ca - cb : ca === 0 ? b[1] - a[1] : ca === 1 ? a[0] - b[0] : ca === 2 ? a[1] - b[1] : b[0] - a[0];
-    }
-    function clipLine(a, b) {
-      var dx = b[0] - a[0], dy = b[1] - a[1], t = [ 0, 1 ];
-      if (Math.abs(dx) < ε && Math.abs(dy) < ε) return x0 <= a[0] && a[0] <= x1 && y0 <= a[1] && a[1] <= y1;
-      if (d3_geo_clipViewT(x0 - a[0], dx, t) && d3_geo_clipViewT(a[0] - x1, -dx, t) && d3_geo_clipViewT(y0 - a[1], dy, t) && d3_geo_clipViewT(a[1] - y1, -dy, t)) {
-        if (t[1] < 1) {
-          b[0] = a[0] + t[1] * dx;
-          b[1] = a[1] + t[1] * dy;
-        }
-        if (t[0] > 0) {
-          a[0] += t[0] * dx;
-          a[1] += t[0] * dy;
-        }
-        return true;
-      }
-      return false;
-    }
-  }
-  function d3_geo_clipViewT(num, denominator, t) {
-    if (Math.abs(denominator) < ε) return num <= 0;
-    var u = num / denominator;
-    if (denominator > 0) {
-      if (u > t[1]) return false;
-      if (u > t[0]) t[0] = u;
-    } else {
-      if (u < t[0]) return false;
-      if (u < t[1]) t[1] = u;
-    }
-    return true;
-  }
-  function d3_geo_compose(a, b) {
-    function compose(x, y) {
-      return x = a(x, y), b(x[0], x[1]);
-    }
-    if (a.invert && b.invert) compose.invert = function(x, y) {
-      return x = b.invert(x, y), x && a.invert(x[0], x[1]);
-    };
-    return compose;
-  }
-  function d3_geo_resample(project) {
-    var δ2 = .5, maxDepth = 16;
-    function resample(stream) {
-      var λ0, x0, y0, a0, b0, c0;
-      var resample = {
-        point: point,
-        lineStart: lineStart,
-        lineEnd: lineEnd,
-        polygonStart: function() {
-          stream.polygonStart();
-          resample.lineStart = polygonLineStart;
-        },
-        polygonEnd: function() {
-          stream.polygonEnd();
-          resample.lineStart = lineStart;
-        }
-      };
-      function point(x, y) {
-        x = project(x, y);
-        stream.point(x[0], x[1]);
-      }
-      function lineStart() {
-        x0 = NaN;
-        resample.point = linePoint;
-        stream.lineStart();
-      }
-      function linePoint(λ, φ) {
-        var c = d3_geo_cartesian([ λ, φ ]), p = project(λ, φ);
-        resampleLineTo(x0, y0, λ0, a0, b0, c0, x0 = p[0], y0 = p[1], λ0 = λ, a0 = c[0], b0 = c[1], c0 = c[2], maxDepth, stream);
-        stream.point(x0, y0);
-      }
-      function lineEnd() {
-        resample.point = point;
-        stream.lineEnd();
-      }
-      function polygonLineStart() {
-        var λ00, φ00, x00, y00, a00, b00, c00;
-        lineStart();
-        resample.point = function(λ, φ) {
-          linePoint(λ00 = λ, φ00 = φ), x00 = x0, y00 = y0, a00 = a0, b00 = b0, c00 = c0;
-          resample.point = linePoint;
-        };
-        resample.lineEnd = function() {
-          resampleLineTo(x0, y0, λ0, a0, b0, c0, x00, y00, λ00, a00, b00, c00, maxDepth, stream);
-          resample.lineEnd = lineEnd;
-          lineEnd();
-        };
-      }
-      return resample;
-    }
-    function resampleLineTo(x0, y0, λ0, a0, b0, c0, x1, y1, λ1, a1, b1, c1, depth, stream) {
-      var dx = x1 - x0, dy = y1 - y0, d2 = dx * dx + dy * dy;
-      if (d2 > 4 * δ2 && depth--) {
-        var a = a0 + a1, b = b0 + b1, c = c0 + c1, m = Math.sqrt(a * a + b * b + c * c), φ2 = Math.asin(c /= m), λ2 = Math.abs(Math.abs(c) - 1) < ε ? (λ0 + λ1) / 2 : Math.atan2(b, a), p = project(λ2, φ2), x2 = p[0], y2 = p[1], dx2 = x2 - x0, dy2 = y2 - y0, dz = dy * dx2 - dx * dy2;
-        if (dz * dz / d2 > δ2 || Math.abs((dx * dx2 + dy * dy2) / d2 - .5) > .3) {
-          resampleLineTo(x0, y0, λ0, a0, b0, c0, x2, y2, λ2, a /= m, b /= m, c, depth, stream);
-          stream.point(x2, y2);
-          resampleLineTo(x2, y2, λ2, a, b, c, x1, y1, λ1, a1, b1, c1, depth, stream);
-        }
-      }
-    }
-    resample.precision = function(_) {
-      if (!arguments.length) return Math.sqrt(δ2);
-      maxDepth = (δ2 = _ * _) > 0 && 16;
-      return resample;
-    };
-    return resample;
-  }
-  d3.geo.projection = d3_geo_projection;
-  d3.geo.projectionMutator = d3_geo_projectionMutator;
-  function d3_geo_projection(project) {
-    return d3_geo_projectionMutator(function() {
-      return project;
-    })();
-  }
-  function d3_geo_projectionMutator(projectAt) {
-    var project, rotate, projectRotate, projectResample = d3_geo_resample(function(x, y) {
-      x = project(x, y);
-      return [ x[0] * k + δx, δy - x[1] * k ];
-    }), k = 150, x = 480, y = 250, λ = 0, φ = 0, δλ = 0, δφ = 0, δγ = 0, δx, δy, preclip = d3_geo_clipAntimeridian, postclip = d3_identity, clipAngle = null, clipExtent = null;
-    function projection(point) {
-      point = projectRotate(point[0] * d3_radians, point[1] * d3_radians);
-      return [ point[0] * k + δx, δy - point[1] * k ];
-    }
-    function invert(point) {
-      point = projectRotate.invert((point[0] - δx) / k, (δy - point[1]) / k);
-      return point && [ point[0] * d3_degrees, point[1] * d3_degrees ];
-    }
-    projection.stream = function(stream) {
-      return d3_geo_projectionRadiansRotate(rotate, preclip(projectResample(postclip(stream))));
-    };
-    projection.clipAngle = function(_) {
-      if (!arguments.length) return clipAngle;
-      preclip = _ == null ? (clipAngle = _, d3_geo_clipAntimeridian) : d3_geo_clipCircle((clipAngle = +_) * d3_radians);
-      return projection;
-    };
-    projection.clipExtent = function(_) {
-      if (!arguments.length) return clipExtent;
-      clipExtent = _;
-      postclip = _ == null ? d3_identity : d3_geo_clipView(_[0][0], _[0][1], _[1][0], _[1][1]);
-      return projection;
-    };
-    projection.scale = function(_) {
-      if (!arguments.length) return k;
-      k = +_;
-      return reset();
-    };
-    projection.translate = function(_) {
-      if (!arguments.length) return [ x, y ];
-      x = +_[0];
-      y = +_[1];
-      return reset();
-    };
-    projection.center = function(_) {
-      if (!arguments.length) return [ λ * d3_degrees, φ * d3_degrees ];
-      λ = _[0] % 360 * d3_radians;
-      φ = _[1] % 360 * d3_radians;
-      return reset();
-    };
-    projection.rotate = function(_) {
-      if (!arguments.length) return [ δλ * d3_degrees, δφ * d3_degrees, δγ * d3_degrees ];
-      δλ = _[0] % 360 * d3_radians;
-      δφ = _[1] % 360 * d3_radians;
-      δγ = _.length > 2 ? _[2] % 360 * d3_radians : 0;
-      return reset();
-    };
-    d3.rebind(projection, projectResample, "precision");
-    function reset() {
-      projectRotate = d3_geo_compose(rotate = d3_geo_rotation(δλ, δφ, δγ), project);
-      var center = project(λ, φ);
-      δx = x - center[0] * k;
-      δy = y + center[1] * k;
-      return projection;
-    }
-    return function() {
-      project = projectAt.apply(this, arguments);
-      projection.invert = project.invert && invert;
-      return reset();
-    };
-  }
-  function d3_geo_projectionRadiansRotate(rotate, stream) {
-    return {
-      point: function(x, y) {
-        y = rotate(x * d3_radians, y * d3_radians), x = y[0];
-        stream.point(x > π ? x - 2 * π : x < -π ? x + 2 * π : x, y[1]);
-      },
-      sphere: function() {
-        stream.sphere();
-      },
-      lineStart: function() {
-        stream.lineStart();
-      },
-      lineEnd: function() {
-        stream.lineEnd();
-      },
-      polygonStart: function() {
-        stream.polygonStart();
-      },
-      polygonEnd: function() {
-        stream.polygonEnd();
-      }
-    };
-  }
-  function d3_geo_equirectangular(λ, φ) {
-    return [ λ, φ ];
-  }
-  (d3.geo.equirectangular = function() {
-    return d3_geo_projection(d3_geo_equirectangular);
-  }).raw = d3_geo_equirectangular.invert = d3_geo_equirectangular;
-  d3.geo.rotation = function(rotate) {
-    rotate = d3_geo_rotation(rotate[0] % 360 * d3_radians, rotate[1] * d3_radians, rotate.length > 2 ? rotate[2] * d3_radians : 0);
-    function forward(coordinates) {
-      coordinates = rotate(coordinates[0] * d3_radians, coordinates[1] * d3_radians);
-      return coordinates[0] *= d3_degrees, coordinates[1] *= d3_degrees, coordinates;
-    }
-    forward.invert = function(coordinates) {
-      coordinates = rotate.invert(coordinates[0] * d3_radians, coordinates[1] * d3_radians);
-      return coordinates[0] *= d3_degrees, coordinates[1] *= d3_degrees, coordinates;
-    };
-    return forward;
-  };
-  function d3_geo_rotation(δλ, δφ, δγ) {
-    return δλ ? δφ || δγ ? d3_geo_compose(d3_geo_rotationλ(δλ), d3_geo_rotationφγ(δφ, δγ)) : d3_geo_rotationλ(δλ) : δφ || δγ ? d3_geo_rotationφγ(δφ, δγ) : d3_geo_equirectangular;
-  }
-  function d3_geo_forwardRotationλ(δλ) {
-    return function(λ, φ) {
-      return λ += δλ, [ λ > π ? λ - 2 * π : λ < -π ? λ + 2 * π : λ, φ ];
-    };
-  }
-  function d3_geo_rotationλ(δλ) {
-    var rotation = d3_geo_forwardRotationλ(δλ);
-    rotation.invert = d3_geo_forwardRotationλ(-δλ);
-    return rotation;
-  }
-  function d3_geo_rotationφγ(δφ, δγ) {
-    var cosδφ = Math.cos(δφ), sinδφ = Math.sin(δφ), cosδγ = Math.cos(δγ), sinδγ = Math.sin(δγ);
-    function rotation(λ, φ) {
-      var cosφ = Math.cos(φ), x = Math.cos(λ) * cosφ, y = Math.sin(λ) * cosφ, z = Math.sin(φ), k = z * cosδφ + x * sinδφ;
-      return [ Math.atan2(y * cosδγ - k * sinδγ, x * cosδφ - z * sinδφ), Math.asin(Math.max(-1, Math.min(1, k * cosδγ + y * sinδγ))) ];
-    }
-    rotation.invert = function(λ, φ) {
-      var cosφ = Math.cos(φ), x = Math.cos(λ) * cosφ, y = Math.sin(λ) * cosφ, z = Math.sin(φ), k = z * cosδγ - y * sinδγ;
-      return [ Math.atan2(y * cosδγ + z * sinδγ, x * cosδφ + k * sinδφ), Math.asin(Math.max(-1, Math.min(1, k * cosδφ - x * sinδφ))) ];
-    };
-    return rotation;
-  }
-  d3.geo.circle = function() {
-    var origin = [ 0, 0 ], angle, precision = 6, interpolate;
-    function circle() {
-      var center = typeof origin === "function" ? origin.apply(this, arguments) : origin, rotate = d3_geo_rotation(-center[0] * d3_radians, -center[1] * d3_radians, 0).invert, ring = [];
-      interpolate(null, null, 1, {
-        point: function(x, y) {
-          ring.push(x = rotate(x, y));
-          x[0] *= d3_degrees, x[1] *= d3_degrees;
-        }
-      });
-      return {
-        type: "Polygon",
-        coordinates: [ ring ]
-      };
-    }
-    circle.origin = function(x) {
-      if (!arguments.length) return origin;
-      origin = x;
-      return circle;
-    };
-    circle.angle = function(x) {
-      if (!arguments.length) return angle;
-      interpolate = d3_geo_circleInterpolate((angle = +x) * d3_radians, precision * d3_radians);
-      return circle;
-    };
-    circle.precision = function(_) {
-      if (!arguments.length) return precision;
-      interpolate = d3_geo_circleInterpolate(angle * d3_radians, (precision = +_) * d3_radians);
-      return circle;
-    };
-    return circle.angle(90);
-  };
-  function d3_geo_circleInterpolate(radius, precision) {
-    var cr = Math.cos(radius), sr = Math.sin(radius);
-    return function(from, to, direction, listener) {
-      if (from != null) {
-        from = d3_geo_circleAngle(cr, from);
-        to = d3_geo_circleAngle(cr, to);
-        if (direction > 0 ? from < to : from > to) from += direction * 2 * π;
-      } else {
-        from = radius + direction * 2 * π;
-        to = radius;
-      }
-      var point;
-      for (var step = direction * precision, t = from; direction > 0 ? t > to : t < to; t -= step) {
-        listener.point((point = d3_geo_spherical([ cr, -sr * Math.cos(t), -sr * Math.sin(t) ]))[0], point[1]);
-      }
-    };
-  }
-  function d3_geo_circleAngle(cr, point) {
-    var a = d3_geo_cartesian(point);
-    a[0] -= cr;
-    d3_geo_cartesianNormalize(a);
-    var angle = d3_acos(-a[1]);
-    return ((-a[2] < 0 ? -angle : angle) + 2 * Math.PI - ε) % (2 * Math.PI);
-  }
-  d3.geo.distance = function(a, b) {
-    var Δλ = (b[0] - a[0]) * d3_radians, φ0 = a[1] * d3_radians, φ1 = b[1] * d3_radians, sinΔλ = Math.sin(Δλ), cosΔλ = Math.cos(Δλ), sinφ0 = Math.sin(φ0), cosφ0 = Math.cos(φ0), sinφ1 = Math.sin(φ1), cosφ1 = Math.cos(φ1), t;
-    return Math.atan2(Math.sqrt((t = cosφ1 * sinΔλ) * t + (t = cosφ0 * sinφ1 - sinφ0 * cosφ1 * cosΔλ) * t), sinφ0 * sinφ1 + cosφ0 * cosφ1 * cosΔλ);
-  };
-  d3.geo.graticule = function() {
-    var x1, x0, X1, X0, y1, y0, Y1, Y0, dx = 10, dy = dx, DX = 90, DY = 360, x, y, X, Y, precision = 2.5;
-    function graticule() {
-      return {
-        type: "MultiLineString",
-        coordinates: lines()
-      };
-    }
-    function lines() {
-      return d3.range(Math.ceil(X0 / DX) * DX, X1, DX).map(X).concat(d3.range(Math.ceil(Y0 / DY) * DY, Y1, DY).map(Y)).concat(d3.range(Math.ceil(x0 / dx) * dx, x1, dx).filter(function(x) {
-        return Math.abs(x % DX) > ε;
-      }).map(x)).concat(d3.range(Math.ceil(y0 / dy) * dy, y1, dy).filter(function(y) {
-        return Math.abs(y % DY) > ε;
-      }).map(y));
-    }
-    graticule.lines = function() {
-      return lines().map(function(coordinates) {
-        return {
-          type: "LineString",
-          coordinates: coordinates
-        };
-      });
-    };
-    graticule.outline = function() {
-      return {
-        type: "Polygon",
-        coordinates: [ X(X0).concat(Y(Y1).slice(1), X(X1).reverse().slice(1), Y(Y0).reverse().slice(1)) ]
-      };
-    };
-    graticule.extent = function(_) {
-      if (!arguments.length) return graticule.minorExtent();
-      return graticule.majorExtent(_).minorExtent(_);
-    };
-    graticule.majorExtent = function(_) {
-      if (!arguments.length) return [ [ X0, Y0 ], [ X1, Y1 ] ];
-      X0 = +_[0][0], X1 = +_[1][0];
-      Y0 = +_[0][1], Y1 = +_[1][1];
-      if (X0 > X1) _ = X0, X0 = X1, X1 = _;
-      if (Y0 > Y1) _ = Y0, Y0 = Y1, Y1 = _;
-      return graticule.precision(precision);
-    };
-    graticule.minorExtent = function(_) {
-      if (!arguments.length) return [ [ x0, y0 ], [ x1, y1 ] ];
-      x0 = +_[0][0], x1 = +_[1][0];
-      y0 = +_[0][1], y1 = +_[1][1];
-      if (x0 > x1) _ = x0, x0 = x1, x1 = _;
-      if (y0 > y1) _ = y0, y0 = y1, y1 = _;
-      return graticule.precision(precision);
-    };
-    graticule.step = function(_) {
-      if (!arguments.length) return graticule.minorStep();
-      return graticule.majorStep(_).minorStep(_);
-    };
-    graticule.majorStep = function(_) {
-      if (!arguments.length) return [ DX, DY ];
-      DX = +_[0], DY = +_[1];
-      return graticule;
-    };
-    graticule.minorStep = function(_) {
-      if (!arguments.length) return [ dx, dy ];
-      dx = +_[0], dy = +_[1];
-      return graticule;
-    };
-    graticule.precision = function(_) {
-      if (!arguments.length) return precision;
-      precision = +_;
-      x = d3_geo_graticuleX(y0, y1, 90);
-      y = d3_geo_graticuleY(x0, x1, precision);
-      X = d3_geo_graticuleX(Y0, Y1, 90);
-      Y = d3_geo_graticuleY(X0, X1, precision);
-      return graticule;
-    };
-    return graticule.majorExtent([ [ -180, -90 + ε ], [ 180, 90 - ε ] ]).minorExtent([ [ -180, -80 - ε ], [ 180, 80 + ε ] ]);
-  };
-  function d3_geo_graticuleX(y0, y1, dy) {
-    var y = d3.range(y0, y1 - ε, dy).concat(y1);
-    return function(x) {
-      return y.map(function(y) {
-        return [ x, y ];
-      });
-    };
-  }
-  function d3_geo_graticuleY(x0, x1, dx) {
-    var x = d3.range(x0, x1 - ε, dx).concat(x1);
-    return function(y) {
-      return x.map(function(x) {
-        return [ x, y ];
-      });
-    };
-  }
-  function d3_source(d) {
-    return d.source;
-  }
-  function d3_target(d) {
-    return d.target;
-  }
-  d3.geo.greatArc = function() {
-    var source = d3_source, source_, target = d3_target, target_;
-    function greatArc() {
-      return {
-        type: "LineString",
-        coordinates: [ source_ || source.apply(this, arguments), target_ || target.apply(this, arguments) ]
-      };
-    }
-    greatArc.distance = function() {
-      return d3.geo.distance(source_ || source.apply(this, arguments), target_ || target.apply(this, arguments));
-    };
-    greatArc.source = function(_) {
-      if (!arguments.length) return source;
-      source = _, source_ = typeof _ === "function" ? null : _;
-      return greatArc;
-    };
-    greatArc.target = function(_) {
-      if (!arguments.length) return target;
-      target = _, target_ = typeof _ === "function" ? null : _;
-      return greatArc;
-    };
-    greatArc.precision = function() {
-      return arguments.length ? greatArc : 0;
-    };
-    return greatArc;
-  };
-  d3.geo.interpolate = function(source, target) {
-    return d3_geo_interpolate(source[0] * d3_radians, source[1] * d3_radians, target[0] * d3_radians, target[1] * d3_radians);
-  };
-  function d3_geo_interpolate(x0, y0, x1, y1) {
-    var cy0 = Math.cos(y0), sy0 = Math.sin(y0), cy1 = Math.cos(y1), sy1 = Math.sin(y1), kx0 = cy0 * Math.cos(x0), ky0 = cy0 * Math.sin(x0), kx1 = cy1 * Math.cos(x1), ky1 = cy1 * Math.sin(x1), d = 2 * Math.asin(Math.sqrt(d3_haversin(y1 - y0) + cy0 * cy1 * d3_haversin(x1 - x0))), k = 1 / Math.sin(d);
-    var interpolate = d ? function(t) {
-      var B = Math.sin(t *= d) * k, A = Math.sin(d - t) * k, x = A * kx0 + B * kx1, y = A * ky0 + B * ky1, z = A * sy0 + B * sy1;
-      return [ Math.atan2(y, x) * d3_degrees, Math.atan2(z, Math.sqrt(x * x + y * y)) * d3_degrees ];
-    } : function() {
-      return [ x0 * d3_degrees, y0 * d3_degrees ];
-    };
-    interpolate.distance = d;
-    return interpolate;
-  }
-  d3.geo.length = function(object) {
-    d3_geo_lengthSum = 0;
-    d3.geo.stream(object, d3_geo_length);
-    return d3_geo_lengthSum;
-  };
-  var d3_geo_lengthSum;
-  var d3_geo_length = {
-    sphere: d3_noop,
-    point: d3_noop,
-    lineStart: d3_geo_lengthLineStart,
-    lineEnd: d3_noop,
-    polygonStart: d3_noop,
-    polygonEnd: d3_noop
-  };
-  function d3_geo_lengthLineStart() {
-    var λ0, sinφ0, cosφ0;
-    d3_geo_length.point = function(λ, φ) {
-      λ0 = λ * d3_radians, sinφ0 = Math.sin(φ *= d3_radians), cosφ0 = Math.cos(φ);
-      d3_geo_length.point = nextPoint;
-    };
-    d3_geo_length.lineEnd = function() {
-      d3_geo_length.point = d3_geo_length.lineEnd = d3_noop;
-    };
-    function nextPoint(λ, φ) {
-      var sinφ = Math.sin(φ *= d3_radians), cosφ = Math.cos(φ), t = Math.abs((λ *= d3_radians) - λ0), cosΔλ = Math.cos(t);
-      d3_geo_lengthSum += Math.atan2(Math.sqrt((t = cosφ * Math.sin(t)) * t + (t = cosφ0 * sinφ - sinφ0 * cosφ * cosΔλ) * t), sinφ0 * sinφ + cosφ0 * cosφ * cosΔλ);
-      λ0 = λ, sinφ0 = sinφ, cosφ0 = cosφ;
-    }
-  }
-  function d3_geo_conic(projectAt) {
-    var φ0 = 0, φ1 = π / 3, m = d3_geo_projectionMutator(projectAt), p = m(φ0, φ1);
-    p.parallels = function(_) {
-      if (!arguments.length) return [ φ0 / π * 180, φ1 / π * 180 ];
-      return m(φ0 = _[0] * π / 180, φ1 = _[1] * π / 180);
-    };
-    return p;
-  }
-  function d3_geo_conicEqualArea(φ0, φ1) {
-    var sinφ0 = Math.sin(φ0), n = (sinφ0 + Math.sin(φ1)) / 2, C = 1 + sinφ0 * (2 * n - sinφ0), ρ0 = Math.sqrt(C) / n;
-    function forward(λ, φ) {
-      var ρ = Math.sqrt(C - 2 * n * Math.sin(φ)) / n;
-      return [ ρ * Math.sin(λ *= n), ρ0 - ρ * Math.cos(λ) ];
-    }
-    forward.invert = function(x, y) {
-      var ρ0_y = ρ0 - y;
-      return [ Math.atan2(x, ρ0_y) / n, Math.asin((C - (x * x + ρ0_y * ρ0_y) * n * n) / (2 * n)) ];
-    };
-    return forward;
-  }
-  (d3.geo.conicEqualArea = function() {
-    return d3_geo_conic(d3_geo_conicEqualArea);
-  }).raw = d3_geo_conicEqualArea;
-  d3.geo.albersUsa = function() {
-    var lower48 = d3.geo.conicEqualArea().rotate([ 98, 0 ]).center([ 0, 38 ]).parallels([ 29.5, 45.5 ]);
-    var alaska = d3.geo.conicEqualArea().rotate([ 160, 0 ]).center([ 0, 60 ]).parallels([ 55, 65 ]);
-    var hawaii = d3.geo.conicEqualArea().rotate([ 160, 0 ]).center([ 0, 20 ]).parallels([ 8, 18 ]);
-    var puertoRico = d3.geo.conicEqualArea().rotate([ 60, 0 ]).center([ 0, 10 ]).parallels([ 8, 18 ]);
-    var alaskaInvert, hawaiiInvert, puertoRicoInvert;
-    function albersUsa(coordinates) {
-      return projection(coordinates)(coordinates);
-    }
-    function projection(point) {
-      var lon = point[0], lat = point[1];
-      return lat > 50 ? alaska : lon < -140 ? hawaii : lat < 21 ? puertoRico : lower48;
-    }
-    albersUsa.invert = function(coordinates) {
-      return alaskaInvert(coordinates) || hawaiiInvert(coordinates) || puertoRicoInvert(coordinates) || lower48.invert(coordinates);
-    };
-    albersUsa.scale = function(x) {
-      if (!arguments.length) return lower48.scale();
-      lower48.scale(x);
-      alaska.scale(x * .6);
-      hawaii.scale(x);
-      puertoRico.scale(x * 1.5);
-      return albersUsa.translate(lower48.translate());
-    };
-    albersUsa.translate = function(x) {
-      if (!arguments.length) return lower48.translate();
-      var dz = lower48.scale(), dx = x[0], dy = x[1];
-      lower48.translate(x);
-      alaska.translate([ dx - .4 * dz, dy + .17 * dz ]);
-      hawaii.translate([ dx - .19 * dz, dy + .2 * dz ]);
-      puertoRico.translate([ dx + .58 * dz, dy + .43 * dz ]);
-      alaskaInvert = d3_geo_albersUsaInvert(alaska, [ [ -180, 50 ], [ -130, 72 ] ]);
-      hawaiiInvert = d3_geo_albersUsaInvert(hawaii, [ [ -164, 18 ], [ -154, 24 ] ]);
-      puertoRicoInvert = d3_geo_albersUsaInvert(puertoRico, [ [ -67.5, 17.5 ], [ -65, 19 ] ]);
-      return albersUsa;
-    };
-    return albersUsa.scale(1e3);
-  };
-  function d3_geo_albersUsaInvert(projection, extent) {
-    var a = projection(extent[0]), b = projection([ .5 * (extent[0][0] + extent[1][0]), extent[0][1] ]), c = projection([ extent[1][0], extent[0][1] ]), d = projection(extent[1]);
-    var dya = b[1] - a[1], dxa = b[0] - a[0], dyb = c[1] - b[1], dxb = c[0] - b[0];
-    var ma = dya / dxa, mb = dyb / dxb;
-    var cx = .5 * (ma * mb * (a[1] - c[1]) + mb * (a[0] + b[0]) - ma * (b[0] + c[0])) / (mb - ma), cy = (.5 * (a[0] + b[0]) - cx) / ma + .5 * (a[1] + b[1]);
-    var dx0 = d[0] - cx, dy0 = d[1] - cy, dx1 = a[0] - cx, dy1 = a[1] - cy, r0 = dx0 * dx0 + dy0 * dy0, r1 = dx1 * dx1 + dy1 * dy1;
-    var a0 = Math.atan2(dy0, dx0), a1 = Math.atan2(dy1, dx1);
-    return function(coordinates) {
-      var dx = coordinates[0] - cx, dy = coordinates[1] - cy, r = dx * dx + dy * dy, a = Math.atan2(dy, dx);
-      if (r0 < r && r < r1 && a0 < a && a < a1) return projection.invert(coordinates);
-    };
-  }
-  var d3_geo_pathAreaSum, d3_geo_pathAreaPolygon, d3_geo_pathArea = {
-    point: d3_noop,
-    lineStart: d3_noop,
-    lineEnd: d3_noop,
-    polygonStart: function() {
-      d3_geo_pathAreaPolygon = 0;
-      d3_geo_pathArea.lineStart = d3_geo_pathAreaRingStart;
-    },
-    polygonEnd: function() {
-      d3_geo_pathArea.lineStart = d3_geo_pathArea.lineEnd = d3_geo_pathArea.point = d3_noop;
-      d3_geo_pathAreaSum += Math.abs(d3_geo_pathAreaPolygon / 2);
-    }
-  };
-  function d3_geo_pathAreaRingStart() {
-    var x00, y00, x0, y0;
-    d3_geo_pathArea.point = function(x, y) {
-      d3_geo_pathArea.point = nextPoint;
-      x00 = x0 = x, y00 = y0 = y;
-    };
-    function nextPoint(x, y) {
-      d3_geo_pathAreaPolygon += y0 * x - x0 * y;
-      x0 = x, y0 = y;
-    }
-    d3_geo_pathArea.lineEnd = function() {
-      nextPoint(x00, y00);
-    };
-  }
-  function d3_geo_pathBuffer() {
-    var pointCircle = d3_geo_pathCircle(4.5), buffer = [];
-    var stream = {
-      point: point,
-      lineStart: function() {
-        stream.point = pointLineStart;
-      },
-      lineEnd: lineEnd,
-      polygonStart: function() {
-        stream.lineEnd = lineEndPolygon;
-      },
-      polygonEnd: function() {
-        stream.lineEnd = lineEnd;
-        stream.point = point;
-      },
-      pointRadius: function(_) {
-        pointCircle = d3_geo_pathCircle(_);
-        return stream;
-      },
-      result: function() {
-        if (buffer.length) {
-          var result = buffer.join("");
-          buffer = [];
-          return result;
-        }
-      }
-    };
-    function point(x, y) {
-      buffer.push("M", x, ",", y, pointCircle);
-    }
-    function pointLineStart(x, y) {
-      buffer.push("M", x, ",", y);
-      stream.point = pointLine;
-    }
-    function pointLine(x, y) {
-      buffer.push("L", x, ",", y);
-    }
-    function lineEnd() {
-      stream.point = point;
-    }
-    function lineEndPolygon() {
-      buffer.push("Z");
-    }
-    return stream;
-  }
-  var d3_geo_pathCentroid = {
-    point: d3_geo_pathCentroidPoint,
-    lineStart: d3_geo_pathCentroidLineStart,
-    lineEnd: d3_geo_pathCentroidLineEnd,
-    polygonStart: function() {
-      d3_geo_pathCentroid.lineStart = d3_geo_pathCentroidRingStart;
-    },
-    polygonEnd: function() {
-      d3_geo_pathCentroid.point = d3_geo_pathCentroidPoint;
-      d3_geo_pathCentroid.lineStart = d3_geo_pathCentroidLineStart;
-      d3_geo_pathCentroid.lineEnd = d3_geo_pathCentroidLineEnd;
-    }
-  };
-  function d3_geo_pathCentroidPoint(x, y) {
-    if (d3_geo_centroidDimension) return;
-    d3_geo_centroidX += x;
-    d3_geo_centroidY += y;
-    ++d3_geo_centroidZ;
-  }
-  function d3_geo_pathCentroidLineStart() {
-    var x0, y0;
-    if (d3_geo_centroidDimension !== 1) {
-      if (d3_geo_centroidDimension < 1) {
-        d3_geo_centroidDimension = 1;
-        d3_geo_centroidX = d3_geo_centroidY = d3_geo_centroidZ = 0;
-      } else return;
-    }
-    d3_geo_pathCentroid.point = function(x, y) {
-      d3_geo_pathCentroid.point = nextPoint;
-      x0 = x, y0 = y;
-    };
-    function nextPoint(x, y) {
-      var dx = x - x0, dy = y - y0, z = Math.sqrt(dx * dx + dy * dy);
-      d3_geo_centroidX += z * (x0 + x) / 2;
-      d3_geo_centroidY += z * (y0 + y) / 2;
-      d3_geo_centroidZ += z;
-      x0 = x, y0 = y;
-    }
-  }
-  function d3_geo_pathCentroidLineEnd() {
-    d3_geo_pathCentroid.point = d3_geo_pathCentroidPoint;
-  }
-  function d3_geo_pathCentroidRingStart() {
-    var x00, y00, x0, y0;
-    if (d3_geo_centroidDimension < 2) {
-      d3_geo_centroidDimension = 2;
-      d3_geo_centroidX = d3_geo_centroidY = d3_geo_centroidZ = 0;
-    }
-    d3_geo_pathCentroid.point = function(x, y) {
-      d3_geo_pathCentroid.point = nextPoint;
-      x00 = x0 = x, y00 = y0 = y;
-    };
-    function nextPoint(x, y) {
-      var z = y0 * x - x0 * y;
-      d3_geo_centroidX += z * (x0 + x);
-      d3_geo_centroidY += z * (y0 + y);
-      d3_geo_centroidZ += z * 3;
-      x0 = x, y0 = y;
-    }
-    d3_geo_pathCentroid.lineEnd = function() {
-      nextPoint(x00, y00);
-    };
-  }
-  function d3_geo_pathContext(context) {
-    var pointRadius = 4.5;
-    var stream = {
-      point: point,
-      lineStart: function() {
-        stream.point = pointLineStart;
-      },
-      lineEnd: lineEnd,
-      polygonStart: function() {
-        stream.lineEnd = lineEndPolygon;
-      },
-      polygonEnd: function() {
-        stream.lineEnd = lineEnd;
-        stream.point = point;
-      },
-      pointRadius: function(_) {
-        pointRadius = _;
-        return stream;
-      },
-      result: d3_noop
-    };
-    function point(x, y) {
-      context.moveTo(x, y);
-      context.arc(x, y, pointRadius, 0, 2 * π);
-    }
-    function pointLineStart(x, y) {
-      context.moveTo(x, y);
-      stream.point = pointLine;
-    }
-    function pointLine(x, y) {
-      context.lineTo(x, y);
-    }
-    function lineEnd() {
-      stream.point = point;
-    }
-    function lineEndPolygon() {
-      context.closePath();
-    }
-    return stream;
-  }
-  d3.geo.path = function() {
-    var pointRadius = 4.5, projection, context, projectStream, contextStream;
-    function path(object) {
-      if (object) d3.geo.stream(object, projectStream(contextStream.pointRadius(typeof pointRadius === "function" ? +pointRadius.apply(this, arguments) : pointRadius)));
-      return contextStream.result();
-    }
-    path.area = function(object) {
-      d3_geo_pathAreaSum = 0;
-      d3.geo.stream(object, projectStream(d3_geo_pathArea));
-      return d3_geo_pathAreaSum;
-    };
-    path.centroid = function(object) {
-      d3_geo_centroidDimension = d3_geo_centroidX = d3_geo_centroidY = d3_geo_centroidZ = 0;
-      d3.geo.stream(object, projectStream(d3_geo_pathCentroid));
-      return d3_geo_centroidZ ? [ d3_geo_centroidX / d3_geo_centroidZ, d3_geo_centroidY / d3_geo_centroidZ ] : undefined;
-    };
-    path.bounds = function(object) {
-      return d3_geo_bounds(projectStream)(object);
-    };
-    path.projection = function(_) {
-      if (!arguments.length) return projection;
-      projectStream = (projection = _) ? _.stream || d3_geo_pathProjectStream(_) : d3_identity;
-      return path;
-    };
-    path.context = function(_) {
-      if (!arguments.length) return context;
-      contextStream = (context = _) == null ? new d3_geo_pathBuffer() : new d3_geo_pathContext(_);
-      return path;
-    };
-    path.pointRadius = function(_) {
-      if (!arguments.length) return pointRadius;
-      pointRadius = typeof _ === "function" ? _ : +_;
-      return path;
-    };
-    return path.projection(d3.geo.albersUsa()).context(null);
-  };
-  function d3_geo_pathCircle(radius) {
-    return "m0," + radius + "a" + radius + "," + radius + " 0 1,1 0," + -2 * radius + "a" + radius + "," + radius + " 0 1,1 0," + +2 * radius + "z";
-  }
-  function d3_geo_pathProjectStream(project) {
-    var resample = d3_geo_resample(function(λ, φ) {
-      return project([ λ * d3_degrees, φ * d3_degrees ]);
-    });
-    return function(stream) {
-      stream = resample(stream);
-      return {
-        point: function(λ, φ) {
-          stream.point(λ * d3_radians, φ * d3_radians);
-        },
-        sphere: function() {
-          stream.sphere();
-        },
-        lineStart: function() {
-          stream.lineStart();
-        },
-        lineEnd: function() {
-          stream.lineEnd();
-        },
-        polygonStart: function() {
-          stream.polygonStart();
-        },
-        polygonEnd: function() {
-          stream.polygonEnd();
-        }
-      };
-    };
-  }
-  d3.geo.albers = function() {
-    return d3.geo.conicEqualArea().parallels([ 29.5, 45.5 ]).rotate([ 98, 0 ]).center([ 0, 38 ]).scale(1e3);
-  };
-  function d3_geo_azimuthal(scale, angle) {
-    function azimuthal(λ, φ) {
-      var cosλ = Math.cos(λ), cosφ = Math.cos(φ), k = scale(cosλ * cosφ);
-      return [ k * cosφ * Math.sin(λ), k * Math.sin(φ) ];
-    }
-    azimuthal.invert = function(x, y) {
-      var ρ = Math.sqrt(x * x + y * y), c = angle(ρ), sinc = Math.sin(c), cosc = Math.cos(c);
-      return [ Math.atan2(x * sinc, ρ * cosc), Math.asin(ρ && y * sinc / ρ) ];
-    };
-    return azimuthal;
-  }
-  var d3_geo_azimuthalEqualArea = d3_geo_azimuthal(function(cosλcosφ) {
-    return Math.sqrt(2 / (1 + cosλcosφ));
-  }, function(ρ) {
-    return 2 * Math.asin(ρ / 2);
-  });
-  (d3.geo.azimuthalEqualArea = function() {
-    return d3_geo_projection(d3_geo_azimuthalEqualArea);
-  }).raw = d3_geo_azimuthalEqualArea;
-  var d3_geo_azimuthalEquidistant = d3_geo_azimuthal(function(cosλcosφ) {
-    var c = Math.acos(cosλcosφ);
-    return c && c / Math.sin(c);
-  }, d3_identity);
-  (d3.geo.azimuthalEquidistant = function() {
-    return d3_geo_projection(d3_geo_azimuthalEquidistant);
-  }).raw = d3_geo_azimuthalEquidistant;
-  function d3_geo_conicConformal(φ0, φ1) {
-    var cosφ0 = Math.cos(φ0), t = function(φ) {
-      return Math.tan(π / 4 + φ / 2);
-    }, n = φ0 === φ1 ? Math.sin(φ0) : Math.log(cosφ0 / Math.cos(φ1)) / Math.log(t(φ1) / t(φ0)), F = cosφ0 * Math.pow(t(φ0), n) / n;
-    if (!n) return d3_geo_mercator;
-    function forward(λ, φ) {
-      var ρ = Math.abs(Math.abs(φ) - π / 2) < ε ? 0 : F / Math.pow(t(φ), n);
-      return [ ρ * Math.sin(n * λ), F - ρ * Math.cos(n * λ) ];
-    }
-    forward.invert = function(x, y) {
-      var ρ0_y = F - y, ρ = d3_sgn(n) * Math.sqrt(x * x + ρ0_y * ρ0_y);
-      return [ Math.atan2(x, ρ0_y) / n, 2 * Math.atan(Math.pow(F / ρ, 1 / n)) - π / 2 ];
-    };
-    return forward;
-  }
-  (d3.geo.conicConformal = function() {
-    return d3_geo_conic(d3_geo_conicConformal);
-  }).raw = d3_geo_conicConformal;
-  function d3_geo_conicEquidistant(φ0, φ1) {
-    var cosφ0 = Math.cos(φ0), n = φ0 === φ1 ? Math.sin(φ0) : (cosφ0 - Math.cos(φ1)) / (φ1 - φ0), G = cosφ0 / n + φ0;
-    if (Math.abs(n) < ε) return d3_geo_equirectangular;
-    function forward(λ, φ) {
-      var ρ = G - φ;
-      return [ ρ * Math.sin(n * λ), G - ρ * Math.cos(n * λ) ];
-    }
-    forward.invert = function(x, y) {
-      var ρ0_y = G - y;
-      return [ Math.atan2(x, ρ0_y) / n, G - d3_sgn(n) * Math.sqrt(x * x + ρ0_y * ρ0_y) ];
-    };
-    return forward;
-  }
-  (d3.geo.conicEquidistant = function() {
-    return d3_geo_conic(d3_geo_conicEquidistant);
-  }).raw = d3_geo_conicEquidistant;
-  var d3_geo_gnomonic = d3_geo_azimuthal(function(cosλcosφ) {
-    return 1 / cosλcosφ;
-  }, Math.atan);
-  (d3.geo.gnomonic = function() {
-    return d3_geo_projection(d3_geo_gnomonic);
-  }).raw = d3_geo_gnomonic;
-  function d3_geo_mercator(λ, φ) {
-    return [ λ, Math.log(Math.tan(π / 4 + φ / 2)) ];
-  }
-  d3_geo_mercator.invert = function(x, y) {
-    return [ x, 2 * Math.atan(Math.exp(y)) - π / 2 ];
-  };
-  function d3_geo_mercatorProjection(project) {
-    var m = d3_geo_projection(project), scale = m.scale, translate = m.translate, clipExtent = m.clipExtent, clipAuto;
-    m.scale = function() {
-      var v = scale.apply(m, arguments);
-      return v === m ? clipAuto ? m.clipExtent(null) : m : v;
-    };
-    m.translate = function() {
-      var v = translate.apply(m, arguments);
-      return v === m ? clipAuto ? m.clipExtent(null) : m : v;
-    };
-    m.clipExtent = function(_) {
-      var v = clipExtent.apply(m, arguments);
-      if (v === m) {
-        if (clipAuto = _ == null) {
-          var k = π * scale(), t = translate();
-          clipExtent([ [ t[0] - k, t[1] - k ], [ t[0] + k, t[1] + k ] ]);
-        }
-      } else if (clipAuto) {
-        v = null;
-      }
-      return v;
-    };
-    return m.clipExtent(null);
-  }
-  (d3.geo.mercator = function() {
-    return d3_geo_mercatorProjection(d3_geo_mercator);
-  }).raw = d3_geo_mercator;
-  var d3_geo_orthographic = d3_geo_azimuthal(function() {
-    return 1;
-  }, Math.asin);
-  (d3.geo.orthographic = function() {
-    return d3_geo_projection(d3_geo_orthographic);
-  }).raw = d3_geo_orthographic;
-  var d3_geo_stereographic = d3_geo_azimuthal(function(cosλcosφ) {
-    return 1 / (1 + cosλcosφ);
-  }, function(ρ) {
-    return 2 * Math.atan(ρ);
-  });
-  (d3.geo.stereographic = function() {
-    return d3_geo_projection(d3_geo_stereographic);
-  }).raw = d3_geo_stereographic;
-  function d3_geo_transverseMercator(λ, φ) {
-    var B = Math.cos(φ) * Math.sin(λ);
-    return [ Math.log((1 + B) / (1 - B)) / 2, Math.atan2(Math.tan(φ), Math.cos(λ)) ];
-  }
-  d3_geo_transverseMercator.invert = function(x, y) {
-    return [ Math.atan2(d3_sinh(x), Math.cos(y)), d3_asin(Math.sin(y) / d3_cosh(x)) ];
-  };
-  (d3.geo.transverseMercator = function() {
-    return d3_geo_mercatorProjection(d3_geo_transverseMercator);
-  }).raw = d3_geo_transverseMercator;
-  d3.geom = {};
-  d3.svg = {};
-  function d3_svg_line(projection) {
-    var x = d3_svg_lineX, y = d3_svg_lineY, defined = d3_true, interpolate = d3_svg_lineLinear, interpolateKey = interpolate.key, tension = .7;
-    function line(data) {
-      var segments = [], points = [], i = -1, n = data.length, d, fx = d3_functor(x), fy = d3_functor(y);
-      function segment() {
-        segments.push("M", interpolate(projection(points), tension));
-      }
-      while (++i < n) {
-        if (defined.call(this, d = data[i], i)) {
-          points.push([ +fx.call(this, d, i), +fy.call(this, d, i) ]);
-        } else if (points.length) {
-          segment();
-          points = [];
-        }
-      }
-      if (points.length) segment();
-      return segments.length ? segments.join("") : null;
-    }
-    line.x = function(_) {
-      if (!arguments.length) return x;
-      x = _;
-      return line;
-    };
-    line.y = function(_) {
-      if (!arguments.length) return y;
-      y = _;
-      return line;
-    };
-    line.defined = function(_) {
-      if (!arguments.length) return defined;
-      defined = _;
-      return line;
-    };
-    line.interpolate = function(_) {
-      if (!arguments.length) return interpolateKey;
-      if (typeof _ === "function") interpolateKey = interpolate = _; else interpolateKey = (interpolate = d3_svg_lineInterpolators.get(_) || d3_svg_lineLinear).key;
-      return line;
-    };
-    line.tension = function(_) {
-      if (!arguments.length) return tension;
-      tension = _;
-      return line;
-    };
-    return line;
-  }
-  d3.svg.line = function() {
-    return d3_svg_line(d3_identity);
-  };
-  function d3_svg_lineX(d) {
-    return d[0];
-  }
-  function d3_svg_lineY(d) {
-    return d[1];
-  }
-  var d3_svg_lineInterpolators = d3.map({
-    linear: d3_svg_lineLinear,
-    "linear-closed": d3_svg_lineLinearClosed,
-    "step-before": d3_svg_lineStepBefore,
-    "step-after": d3_svg_lineStepAfter,
-    basis: d3_svg_lineBasis,
-    "basis-open": d3_svg_lineBasisOpen,
-    "basis-closed": d3_svg_lineBasisClosed,
-    bundle: d3_svg_lineBundle,
-    cardinal: d3_svg_lineCardinal,
-    "cardinal-open": d3_svg_lineCardinalOpen,
-    "cardinal-closed": d3_svg_lineCardinalClosed,
-    monotone: d3_svg_lineMonotone
-  });
-  d3_svg_lineInterpolators.forEach(function(key, value) {
-    value.key = key;
-    value.closed = /-closed$/.test(key);
-  });
-  function d3_svg_lineLinear(points) {
-    return points.join("L");
-  }
-  function d3_svg_lineLinearClosed(points) {
-    return d3_svg_lineLinear(points) + "Z";
-  }
-  function d3_svg_lineStepBefore(points) {
-    var i = 0, n = points.length, p = points[0], path = [ p[0], ",", p[1] ];
-    while (++i < n) path.push("V", (p = points[i])[1], "H", p[0]);
-    return path.join("");
-  }
-  function d3_svg_lineStepAfter(points) {
-    var i = 0, n = points.length, p = points[0], path = [ p[0], ",", p[1] ];
-    while (++i < n) path.push("H", (p = points[i])[0], "V", p[1]);
-    return path.join("");
-  }
-  function d3_svg_lineCardinalOpen(points, tension) {
-    return points.length < 4 ? d3_svg_lineLinear(points) : points[1] + d3_svg_lineHermite(points.slice(1, points.length - 1), d3_svg_lineCardinalTangents(points, tension));
-  }
-  function d3_svg_lineCardinalClosed(points, tension) {
-    return points.length < 3 ? d3_svg_lineLinear(points) : points[0] + d3_svg_lineHermite((points.push(points[0]), 
-    points), d3_svg_lineCardinalTangents([ points[points.length - 2] ].concat(points, [ points[1] ]), tension));
-  }
-  function d3_svg_lineCardinal(points, tension) {
-    return points.length < 3 ? d3_svg_lineLinear(points) : points[0] + d3_svg_lineHermite(points, d3_svg_lineCardinalTangents(points, tension));
-  }
-  function d3_svg_lineHermite(points, tangents) {
-    if (tangents.length < 1 || points.length != tangents.length && points.length != tangents.length + 2) {
-      return d3_svg_lineLinear(points);
-    }
-    var quad = points.length != tangents.length, path = "", p0 = points[0], p = points[1], t0 = tangents[0], t = t0, pi = 1;
-    if (quad) {
-      path += "Q" + (p[0] - t0[0] * 2 / 3) + "," + (p[1] - t0[1] * 2 / 3) + "," + p[0] + "," + p[1];
-      p0 = points[1];
-      pi = 2;
-    }
-    if (tangents.length > 1) {
-      t = tangents[1];
-      p = points[pi];
-      pi++;
-      path += "C" + (p0[0] + t0[0]) + "," + (p0[1] + t0[1]) + "," + (p[0] - t[0]) + "," + (p[1] - t[1]) + "," + p[0] + "," + p[1];
-      for (var i = 2; i < tangents.length; i++, pi++) {
-        p = points[pi];
-        t = tangents[i];
-        path += "S" + (p[0] - t[0]) + "," + (p[1] - t[1]) + "," + p[0] + "," + p[1];
-      }
-    }
-    if (quad) {
-      var lp = points[pi];
-      path += "Q" + (p[0] + t[0] * 2 / 3) + "," + (p[1] + t[1] * 2 / 3) + "," + lp[0] + "," + lp[1];
-    }
-    return path;
-  }
-  function d3_svg_lineCardinalTangents(points, tension) {
-    var tangents = [], a = (1 - tension) / 2, p0, p1 = points[0], p2 = points[1], i = 1, n = points.length;
-    while (++i < n) {
-      p0 = p1;
-      p1 = p2;
-      p2 = points[i];
-      tangents.push([ a * (p2[0] - p0[0]), a * (p2[1] - p0[1]) ]);
-    }
-    return tangents;
-  }
-  function d3_svg_lineBasis(points) {
-    if (points.length < 3) return d3_svg_lineLinear(points);
-    var i = 1, n = points.length, pi = points[0], x0 = pi[0], y0 = pi[1], px = [ x0, x0, x0, (pi = points[1])[0] ], py = [ y0, y0, y0, pi[1] ], path = [ x0, ",", y0 ];
-    d3_svg_lineBasisBezier(path, px, py);
-    while (++i < n) {
-      pi = points[i];
-      px.shift();
-      px.push(pi[0]);
-      py.shift();
-      py.push(pi[1]);
-      d3_svg_lineBasisBezier(path, px, py);
-    }
-    i = -1;
-    while (++i < 2) {
-      px.shift();
-      px.push(pi[0]);
-      py.shift();
-      py.push(pi[1]);
-      d3_svg_lineBasisBezier(path, px, py);
-    }
-    return path.join("");
-  }
-  function d3_svg_lineBasisOpen(points) {
-    if (points.length < 4) return d3_svg_lineLinear(points);
-    var path = [], i = -1, n = points.length, pi, px = [ 0 ], py = [ 0 ];
-    while (++i < 3) {
-      pi = points[i];
-      px.push(pi[0]);
-      py.push(pi[1]);
-    }
-    path.push(d3_svg_lineDot4(d3_svg_lineBasisBezier3, px) + "," + d3_svg_lineDot4(d3_svg_lineBasisBezier3, py));
-    --i;
-    while (++i < n) {
-      pi = points[i];
-      px.shift();
-      px.push(pi[0]);
-      py.shift();
-      py.push(pi[1]);
-      d3_svg_lineBasisBezier(path, px, py);
-    }
-    return path.join("");
-  }
-  function d3_svg_lineBasisClosed(points) {
-    var path, i = -1, n = points.length, m = n + 4, pi, px = [], py = [];
-    while (++i < 4) {
-      pi = points[i % n];
-      px.push(pi[0]);
-      py.push(pi[1]);
-    }
-    path = [ d3_svg_lineDot4(d3_svg_lineBasisBezier3, px), ",", d3_svg_lineDot4(d3_svg_lineBasisBezier3, py) ];
-    --i;
-    while (++i < m) {
-      pi = points[i % n];
-      px.shift();
-      px.push(pi[0]);
-      py.shift();
-      py.push(pi[1]);
-      d3_svg_lineBasisBezier(path, px, py);
-    }
-    return path.join("");
-  }
-  function d3_svg_lineBundle(points, tension) {
-    var n = points.length - 1;
-    if (n) {
-      var x0 = points[0][0], y0 = points[0][1], dx = points[n][0] - x0, dy = points[n][1] - y0, i = -1, p, t;
-      while (++i <= n) {
-        p = points[i];
-        t = i / n;
-        p[0] = tension * p[0] + (1 - tension) * (x0 + t * dx);
-        p[1] = tension * p[1] + (1 - tension) * (y0 + t * dy);
-      }
-    }
-    return d3_svg_lineBasis(points);
-  }
-  function d3_svg_lineDot4(a, b) {
-    return a[0] * b[0] + a[1] * b[1] + a[2] * b[2] + a[3] * b[3];
-  }
-  var d3_svg_lineBasisBezier1 = [ 0, 2 / 3, 1 / 3, 0 ], d3_svg_lineBasisBezier2 = [ 0, 1 / 3, 2 / 3, 0 ], d3_svg_lineBasisBezier3 = [ 0, 1 / 6, 2 / 3, 1 / 6 ];
-  function d3_svg_lineBasisBezier(path, x, y) {
-    path.push("C", d3_svg_lineDot4(d3_svg_lineBasisBezier1, x), ",", d3_svg_lineDot4(d3_svg_lineBasisBezier1, y), ",", d3_svg_lineDot4(d3_svg_lineBasisBezier2, x), ",", d3_svg_lineDot4(d3_svg_lineBasisBezier2, y), ",", d3_svg_lineDot4(d3_svg_lineBasisBezier3, x), ",", d3_svg_lineDot4(d3_svg_lineBasisBezier3, y));
-  }
-  function d3_svg_lineSlope(p0, p1) {
-    return (p1[1] - p0[1]) / (p1[0] - p0[0]);
-  }
-  function d3_svg_lineFiniteDifferences(points) {
-    var i = 0, j = points.length - 1, m = [], p0 = points[0], p1 = points[1], d = m[0] = d3_svg_lineSlope(p0, p1);
-    while (++i < j) {
-      m[i] = (d + (d = d3_svg_lineSlope(p0 = p1, p1 = points[i + 1]))) / 2;
-    }
-    m[i] = d;
-    return m;
-  }
-  function d3_svg_lineMonotoneTangents(points) {
-    var tangents = [], d, a, b, s, m = d3_svg_lineFiniteDifferences(points), i = -1, j = points.length - 1;
-    while (++i < j) {
-      d = d3_svg_lineSlope(points[i], points[i + 1]);
-      if (Math.abs(d) < 1e-6) {
-        m[i] = m[i + 1] = 0;
-      } else {
-        a = m[i] / d;
-        b = m[i + 1] / d;
-        s = a * a + b * b;
-        if (s > 9) {
-          s = d * 3 / Math.sqrt(s);
-          m[i] = s * a;
-          m[i + 1] = s * b;
-        }
-      }
-    }
-    i = -1;
-    while (++i <= j) {
-      s = (points[Math.min(j, i + 1)][0] - points[Math.max(0, i - 1)][0]) / (6 * (1 + m[i] * m[i]));
-      tangents.push([ s || 0, m[i] * s || 0 ]);
-    }
-    return tangents;
-  }
-  function d3_svg_lineMonotone(points) {
-    return points.length < 3 ? d3_svg_lineLinear(points) : points[0] + d3_svg_lineHermite(points, d3_svg_lineMonotoneTangents(points));
-  }
-  d3.geom.hull = function(vertices) {
-    var x = d3_svg_lineX, y = d3_svg_lineY;
-    if (arguments.length) return hull(vertices);
-    function hull(data) {
-      if (data.length < 3) return [];
-      var fx = d3_functor(x), fy = d3_functor(y), n = data.length, vertices, plen = n - 1, points = [], stack = [], d, i, j, h = 0, x1, y1, x2, y2, u, v, a, sp;
-      if (fx === d3_svg_lineX && y === d3_svg_lineY) vertices = data; else for (i = 0, 
-      vertices = []; i < n; ++i) {
-        vertices.push([ +fx.call(this, d = data[i], i), +fy.call(this, d, i) ]);
-      }
-      for (i = 1; i < n; ++i) {
-        if (vertices[i][1] < vertices[h][1]) {
-          h = i;
-        } else if (vertices[i][1] == vertices[h][1]) {
-          h = vertices[i][0] < vertices[h][0] ? i : h;
-        }
-      }
-      for (i = 0; i < n; ++i) {
-        if (i === h) continue;
-        y1 = vertices[i][1] - vertices[h][1];
-        x1 = vertices[i][0] - vertices[h][0];
-        points.push({
-          angle: Math.atan2(y1, x1),
-          index: i
-        });
-      }
-      points.sort(function(a, b) {
-        return a.angle - b.angle;
-      });
-      a = points[0].angle;
-      v = points[0].index;
-      u = 0;
-      for (i = 1; i < plen; ++i) {
-        j = points[i].index;
-        if (a == points[i].angle) {
-          x1 = vertices[v][0] - vertices[h][0];
-          y1 = vertices[v][1] - vertices[h][1];
-          x2 = vertices[j][0] - vertices[h][0];
-          y2 = vertices[j][1] - vertices[h][1];
-          if (x1 * x1 + y1 * y1 >= x2 * x2 + y2 * y2) {
-            points[i].index = -1;
-          } else {
-            points[u].index = -1;
-            a = points[i].angle;
-            u = i;
-            v = j;
-          }
-        } else {
-          a = points[i].angle;
-          u = i;
-          v = j;
-        }
-      }
-      stack.push(h);
-      for (i = 0, j = 0; i < 2; ++j) {
-        if (points[j].index !== -1) {
-          stack.push(points[j].index);
-          i++;
-        }
-      }
-      sp = stack.length;
-      for (;j < plen; ++j) {
-        if (points[j].index === -1) continue;
-        while (!d3_geom_hullCCW(stack[sp - 2], stack[sp - 1], points[j].index, vertices)) {
-          --sp;
-        }
-        stack[sp++] = points[j].index;
-      }
-      var poly = [];
-      for (i = 0; i < sp; ++i) {
-        poly.push(data[stack[i]]);
-      }
-      return poly;
-    }
-    hull.x = function(_) {
-      return arguments.length ? (x = _, hull) : x;
-    };
-    hull.y = function(_) {
-      return arguments.length ? (y = _, hull) : y;
-    };
-    return hull;
-  };
-  function d3_geom_hullCCW(i1, i2, i3, v) {
-    var t, a, b, c, d, e, f;
-    t = v[i1];
-    a = t[0];
-    b = t[1];
-    t = v[i2];
-    c = t[0];
-    d = t[1];
-    t = v[i3];
-    e = t[0];
-    f = t[1];
-    return (f - b) * (c - a) - (d - b) * (e - a) > 0;
-  }
-  d3.geom.polygon = function(coordinates) {
-    coordinates.area = function() {
-      var i = 0, n = coordinates.length, area = coordinates[n - 1][1] * coordinates[0][0] - coordinates[n - 1][0] * coordinates[0][1];
-      while (++i < n) {
-        area += coordinates[i - 1][1] * coordinates[i][0] - coordinates[i - 1][0] * coordinates[i][1];
-      }
-      return area * .5;
-    };
-    coordinates.centroid = function(k) {
-      var i = -1, n = coordinates.length, x = 0, y = 0, a, b = coordinates[n - 1], c;
-      if (!arguments.length) k = -1 / (6 * coordinates.area());
-      while (++i < n) {
-        a = b;
-        b = coordinates[i];
-        c = a[0] * b[1] - b[0] * a[1];
-        x += (a[0] + b[0]) * c;
-        y += (a[1] + b[1]) * c;
-      }
-      return [ x * k, y * k ];
-    };
-    coordinates.clip = function(subject) {
-      var input, i = -1, n = coordinates.length, j, m, a = coordinates[n - 1], b, c, d;
-      while (++i < n) {
-        input = subject.slice();
-        subject.length = 0;
-        b = coordinates[i];
-        c = input[(m = input.length) - 1];
-        j = -1;
-        while (++j < m) {
-          d = input[j];
-          if (d3_geom_polygonInside(d, a, b)) {
-            if (!d3_geom_polygonInside(c, a, b)) {
-              subject.push(d3_geom_polygonIntersect(c, d, a, b));
-            }
-            subject.push(d);
-          } else if (d3_geom_polygonInside(c, a, b)) {
-            subject.push(d3_geom_polygonIntersect(c, d, a, b));
-          }
-          c = d;
-        }
-        a = b;
-      }
-      return subject;
-    };
-    return coordinates;
-  };
-  function d3_geom_polygonInside(p, a, b) {
-    return (b[0] - a[0]) * (p[1] - a[1]) < (b[1] - a[1]) * (p[0] - a[0]);
-  }
-  function d3_geom_polygonIntersect(c, d, a, b) {
-    var x1 = c[0], x3 = a[0], x21 = d[0] - x1, x43 = b[0] - x3, y1 = c[1], y3 = a[1], y21 = d[1] - y1, y43 = b[1] - y3, ua = (x43 * (y1 - y3) - y43 * (x1 - x3)) / (y43 * x21 - x43 * y21);
-    return [ x1 + ua * x21, y1 + ua * y21 ];
-  }
-  d3.geom.delaunay = function(vertices) {
-    var edges = vertices.map(function() {
-      return [];
-    }), triangles = [];
-    d3_geom_voronoiTessellate(vertices, function(e) {
-      edges[e.region.l.index].push(vertices[e.region.r.index]);
-    });
-    edges.forEach(function(edge, i) {
-      var v = vertices[i], cx = v[0], cy = v[1];
-      edge.forEach(function(v) {
-        v.angle = Math.atan2(v[0] - cx, v[1] - cy);
-      });
-      edge.sort(function(a, b) {
-        return a.angle - b.angle;
-      });
-      for (var j = 0, m = edge.length - 1; j < m; j++) {
-        triangles.push([ v, edge[j], edge[j + 1] ]);
-      }
-    });
-    return triangles;
-  };
-  d3.geom.voronoi = function(points) {
-    var size = null, x = d3_svg_lineX, y = d3_svg_lineY, clip;
-    if (arguments.length) return voronoi(points);
-    function voronoi(data) {
-      var points, polygons = data.map(function() {
-        return [];
-      }), fx = d3_functor(x), fy = d3_functor(y), d, i, n = data.length, Z = 1e6;
-      if (fx === d3_svg_lineX && fy === d3_svg_lineY) points = data; else for (points = [], 
-      i = 0; i < n; ++i) {
-        points.push([ +fx.call(this, d = data[i], i), +fy.call(this, d, i) ]);
-      }
-      d3_geom_voronoiTessellate(points, function(e) {
-        var s1, s2, x1, x2, y1, y2;
-        if (e.a === 1 && e.b >= 0) {
-          s1 = e.ep.r;
-          s2 = e.ep.l;
-        } else {
-          s1 = e.ep.l;
-          s2 = e.ep.r;
-        }
-        if (e.a === 1) {
-          y1 = s1 ? s1.y : -Z;
-          x1 = e.c - e.b * y1;
-          y2 = s2 ? s2.y : Z;
-          x2 = e.c - e.b * y2;
-        } else {
-          x1 = s1 ? s1.x : -Z;
-          y1 = e.c - e.a * x1;
-          x2 = s2 ? s2.x : Z;
-          y2 = e.c - e.a * x2;
-        }
-        var v1 = [ x1, y1 ], v2 = [ x2, y2 ];
-        polygons[e.region.l.index].push(v1, v2);
-        polygons[e.region.r.index].push(v1, v2);
-      });
-      polygons = polygons.map(function(polygon, i) {
-        var cx = points[i][0], cy = points[i][1], angle = polygon.map(function(v) {
-          return Math.atan2(v[0] - cx, v[1] - cy);
-        }), order = d3.range(polygon.length).sort(function(a, b) {
-          return angle[a] - angle[b];
-        });
-        return order.filter(function(d, i) {
-          return !i || angle[d] - angle[order[i - 1]] > ε;
-        }).map(function(d) {
-          return polygon[d];
-        });
-      });
-      polygons.forEach(function(polygon, i) {
-        var n = polygon.length;
-        if (!n) return polygon.push([ -Z, -Z ], [ -Z, Z ], [ Z, Z ], [ Z, -Z ]);
-        if (n > 2) return;
-        var p0 = points[i], p1 = polygon[0], p2 = polygon[1], x0 = p0[0], y0 = p0[1], x1 = p1[0], y1 = p1[1], x2 = p2[0], y2 = p2[1], dx = Math.abs(x2 - x1), dy = y2 - y1;
-        if (Math.abs(dy) < ε) {
-          var y = y0 < y1 ? -Z : Z;
-          polygon.push([ -Z, y ], [ Z, y ]);
-        } else if (dx < ε) {
-          var x = x0 < x1 ? -Z : Z;
-          polygon.push([ x, -Z ], [ x, Z ]);
-        } else {
-          var y = (x2 - x1) * (y1 - y0) < (x1 - x0) * (y2 - y1) ? Z : -Z, z = Math.abs(dy) - dx;
-          if (Math.abs(z) < ε) {
-            polygon.push([ dy < 0 ? y : -y, y ]);
-          } else {
-            if (z > 0) y *= -1;
-            polygon.push([ -Z, y ], [ Z, y ]);
-          }
-        }
-      });
-      if (clip) for (i = 0; i < n; ++i) clip(polygons[i]);
-      for (i = 0; i < n; ++i) polygons[i].point = data[i];
-      return polygons;
-    }
-    voronoi.x = function(_) {
-      return arguments.length ? (x = _, voronoi) : x;
-    };
-    voronoi.y = function(_) {
-      return arguments.length ? (y = _, voronoi) : y;
-    };
-    voronoi.size = function(_) {
-      if (!arguments.length) return size;
-      if (_ == null) {
-        clip = null;
-      } else {
-        size = [ +_[0], +_[1] ];
-        clip = d3.geom.polygon([ [ 0, 0 ], [ 0, size[1] ], size, [ size[0], 0 ] ]).clip;
-      }
-      return voronoi;
-    };
-    voronoi.links = function(data) {
-      var points, graph = data.map(function() {
-        return [];
-      }), links = [], fx = d3_functor(x), fy = d3_functor(y), d, i, n = data.length;
-      if (fx === d3_svg_lineX && fy === d3_svg_lineY) points = data; else for (i = 0; i < n; ++i) {
-        points.push([ +fx.call(this, d = data[i], i), +fy.call(this, d, i) ]);
-      }
-      d3_geom_voronoiTessellate(points, function(e) {
-        var l = e.region.l.index, r = e.region.r.index;
-        if (graph[l][r]) return;
-        graph[l][r] = graph[r][l] = true;
-        links.push({
-          source: data[l],
-          target: data[r]
-        });
-      });
-      return links;
-    };
-    voronoi.triangles = function(data) {
-      if (x === d3_svg_lineX && y === d3_svg_lineY) return d3.geom.delaunay(data);
-      var points, point, fx = d3_functor(x), fy = d3_functor(y), d, i, n;
-      for (i = 0, points = [], n = data.length; i < n; ++i) {
-        point = [ +fx.call(this, d = data[i], i), +fy.call(this, d, i) ];
-        point.data = d;
-        points.push(point);
-      }
-      return d3.geom.delaunay(points).map(function(triangle) {
-        return triangle.map(function(point) {
-          return point.data;
-        });
-      });
-    };
-    return voronoi;
-  };
-  var d3_geom_voronoiOpposite = {
-    l: "r",
-    r: "l"
-  };
-  function d3_geom_voronoiTessellate(points, callback) {
-    var Sites = {
-      list: points.map(function(v, i) {
-        return {
-          index: i,
-          x: v[0],
-          y: v[1]
-        };
-      }).sort(function(a, b) {
-        return a.y < b.y ? -1 : a.y > b.y ? 1 : a.x < b.x ? -1 : a.x > b.x ? 1 : 0;
-      }),
-      bottomSite: null
-    };
-    var EdgeList = {
-      list: [],
-      leftEnd: null,
-      rightEnd: null,
-      init: function() {
-        EdgeList.leftEnd = EdgeList.createHalfEdge(null, "l");
-        EdgeList.rightEnd = EdgeList.createHalfEdge(null, "l");
-        EdgeList.leftEnd.r = EdgeList.rightEnd;
-        EdgeList.rightEnd.l = EdgeList.leftEnd;
-        EdgeList.list.unshift(EdgeList.leftEnd, EdgeList.rightEnd);
-      },
-      createHalfEdge: function(edge, side) {
-        return {
-          edge: edge,
-          side: side,
-          vertex: null,
-          l: null,
-          r: null
-        };
-      },
-      insert: function(lb, he) {
-        he.l = lb;
-        he.r = lb.r;
-        lb.r.l = he;
-        lb.r = he;
-      },
-      leftBound: function(p) {
-        var he = EdgeList.leftEnd;
-        do {
-          he = he.r;
-        } while (he != EdgeList.rightEnd && Geom.rightOf(he, p));
-        he = he.l;
-        return he;
-      },
-      del: function(he) {
-        he.l.r = he.r;
-        he.r.l = he.l;
-        he.edge = null;
-      },
-      right: function(he) {
-        return he.r;
-      },
-      left: function(he) {
-        return he.l;
-      },
-      leftRegion: function(he) {
-        return he.edge == null ? Sites.bottomSite : he.edge.region[he.side];
-      },
-      rightRegion: function(he) {
-        return he.edge == null ? Sites.bottomSite : he.edge.region[d3_geom_voronoiOpposite[he.side]];
-      }
-    };
-    var Geom = {
-      bisect: function(s1, s2) {
-        var newEdge = {
-          region: {
-            l: s1,
-            r: s2
-          },
-          ep: {
-            l: null,
-            r: null
-          }
-        };
-        var dx = s2.x - s1.x, dy = s2.y - s1.y, adx = dx > 0 ? dx : -dx, ady = dy > 0 ? dy : -dy;
-        newEdge.c = s1.x * dx + s1.y * dy + (dx * dx + dy * dy) * .5;
-        if (adx > ady) {
-          newEdge.a = 1;
-          newEdge.b = dy / dx;
-          newEdge.c /= dx;
-        } else {
-          newEdge.b = 1;
-          newEdge.a = dx / dy;
-          newEdge.c /= dy;
-        }
-        return newEdge;
-      },
-      intersect: function(el1, el2) {
-        var e1 = el1.edge, e2 = el2.edge;
-        if (!e1 || !e2 || e1.region.r == e2.region.r) {
-          return null;
-        }
-        var d = e1.a * e2.b - e1.b * e2.a;
-        if (Math.abs(d) < 1e-10) {
-          return null;
-        }
-        var xint = (e1.c * e2.b - e2.c * e1.b) / d, yint = (e2.c * e1.a - e1.c * e2.a) / d, e1r = e1.region.r, e2r = e2.region.r, el, e;
-        if (e1r.y < e2r.y || e1r.y == e2r.y && e1r.x < e2r.x) {
-          el = el1;
-          e = e1;
-        } else {
-          el = el2;
-          e = e2;
-        }
-        var rightOfSite = xint >= e.region.r.x;
-        if (rightOfSite && el.side === "l" || !rightOfSite && el.side === "r") {
-          return null;
-        }
-        return {
-          x: xint,
-          y: yint
-        };
-      },
-      rightOf: function(he, p) {
-        var e = he.edge, topsite = e.region.r, rightOfSite = p.x > topsite.x;
-        if (rightOfSite && he.side === "l") {
-          return 1;
-        }
-        if (!rightOfSite && he.side === "r") {
-          return 0;
-        }
-        if (e.a === 1) {
-          var dyp = p.y - topsite.y, dxp = p.x - topsite.x, fast = 0, above = 0;
-          if (!rightOfSite && e.b < 0 || rightOfSite && e.b >= 0) {
-            above = fast = dyp >= e.b * dxp;
-          } else {
-            above = p.x + p.y * e.b > e.c;
-            if (e.b < 0) {
-              above = !above;
-            }
-            if (!above) {
-              fast = 1;
-            }
-          }
-          if (!fast) {
-            var dxs = topsite.x - e.region.l.x;
-            above = e.b * (dxp * dxp - dyp * dyp) < dxs * dyp * (1 + 2 * dxp / dxs + e.b * e.b);
-            if (e.b < 0) {
-              above = !above;
-            }
-          }
-        } else {
-          var yl = e.c - e.a * p.x, t1 = p.y - yl, t2 = p.x - topsite.x, t3 = yl - topsite.y;
-          above = t1 * t1 > t2 * t2 + t3 * t3;
-        }
-        return he.side === "l" ? above : !above;
-      },
-      endPoint: function(edge, side, site) {
-        edge.ep[side] = site;
-        if (!edge.ep[d3_geom_voronoiOpposite[side]]) return;
-        callback(edge);
-      },
-      distance: function(s, t) {
-        var dx = s.x - t.x, dy = s.y - t.y;
-        return Math.sqrt(dx * dx + dy * dy);
-      }
-    };
-    var EventQueue = {
-      list: [],
-      insert: function(he, site, offset) {
-        he.vertex = site;
-        he.ystar = site.y + offset;
-        for (var i = 0, list = EventQueue.list, l = list.length; i < l; i++) {
-          var next = list[i];
-          if (he.ystar > next.ystar || he.ystar == next.ystar && site.x > next.vertex.x) {
-            continue;
-          } else {
-            break;
-          }
-        }
-        list.splice(i, 0, he);
-      },
-      del: function(he) {
-        for (var i = 0, ls = EventQueue.list, l = ls.length; i < l && ls[i] != he; ++i) {}
-        ls.splice(i, 1);
-      },
-      empty: function() {
-        return EventQueue.list.length === 0;
-      },
-      nextEvent: function(he) {
-        for (var i = 0, ls = EventQueue.list, l = ls.length; i < l; ++i) {
-          if (ls[i] == he) return ls[i + 1];
-        }
-        return null;
-      },
-      min: function() {
-        var elem = EventQueue.list[0];
-        return {
-          x: elem.vertex.x,
-          y: elem.ystar
-        };
-      },
-      extractMin: function() {
-        return EventQueue.list.shift();
-      }
-    };
-    EdgeList.init();
-    Sites.bottomSite = Sites.list.shift();
-    var newSite = Sites.list.shift(), newIntStar;
-    var lbnd, rbnd, llbnd, rrbnd, bisector;
-    var bot, top, temp, p, v;
-    var e, pm;
-    while (true) {
-      if (!EventQueue.empty()) {
-        newIntStar = EventQueue.min();
-      }
-      if (newSite && (EventQueue.empty() || newSite.y < newIntStar.y || newSite.y == newIntStar.y && newSite.x < newIntStar.x)) {
-        lbnd = EdgeList.leftBound(newSite);
-        rbnd = EdgeList.right(lbnd);
-        bot = EdgeList.rightRegion(lbnd);
-        e = Geom.bisect(bot, newSite);
-        bisector = EdgeList.createHalfEdge(e, "l");
-        EdgeList.insert(lbnd, bisector);
-        p = Geom.intersect(lbnd, bisector);
-        if (p) {
-          EventQueue.del(lbnd);
-          EventQueue.insert(lbnd, p, Geom.distance(p, newSite));
-        }
-        lbnd = bisector;
-        bisector = EdgeList.createHalfEdge(e, "r");
-        EdgeList.insert(lbnd, bisector);
-        p = Geom.intersect(bisector, rbnd);
-        if (p) {
-          EventQueue.insert(bisector, p, Geom.distance(p, newSite));
-        }
-        newSite = Sites.list.shift();
-      } else if (!EventQueue.empty()) {
-        lbnd = EventQueue.extractMin();
-        llbnd = EdgeList.left(lbnd);
-        rbnd = EdgeList.right(lbnd);
-        rrbnd = EdgeList.right(rbnd);
-        bot = EdgeList.leftRegion(lbnd);
-        top = EdgeList.rightRegion(rbnd);
-        v = lbnd.vertex;
-        Geom.endPoint(lbnd.edge, lbnd.side, v);
-        Geom.endPoint(rbnd.edge, rbnd.side, v);
-        EdgeList.del(lbnd);
-        EventQueue.del(rbnd);
-        EdgeList.del(rbnd);
-        pm = "l";
-        if (bot.y > top.y) {
-          temp = bot;
-          bot = top;
-          top = temp;
-          pm = "r";
-        }
-        e = Geom.bisect(bot, top);
-        bisector = EdgeList.createHalfEdge(e, pm);
-        EdgeList.insert(llbnd, bisector);
-        Geom.endPoint(e, d3_geom_voronoiOpposite[pm], v);
-        p = Geom.intersect(llbnd, bisector);
-        if (p) {
-          EventQueue.del(llbnd);
-          EventQueue.insert(llbnd, p, Geom.distance(p, bot));
-        }
-        p = Geom.intersect(bisector, rrbnd);
-        if (p) {
-          EventQueue.insert(bisector, p, Geom.distance(p, bot));
-        }
-      } else {
-        break;
-      }
-    }
-    for (lbnd = EdgeList.right(EdgeList.leftEnd); lbnd != EdgeList.rightEnd; lbnd = EdgeList.right(lbnd)) {
-      callback(lbnd.edge);
-    }
-  }
-  d3.geom.quadtree = function(points, x1, y1, x2, y2) {
-    var x = d3_svg_lineX, y = d3_svg_lineY, compat;
-    if (compat = arguments.length) {
-      x = d3_geom_quadtreeCompatX;
-      y = d3_geom_quadtreeCompatY;
-      if (compat === 3) {
-        y2 = y1;
-        x2 = x1;
-        y1 = x1 = 0;
-      }
-      return quadtree(points);
-    }
-    function quadtree(data) {
-      var d, fx = d3_functor(x), fy = d3_functor(y), xs, ys, i, n, x1_, y1_, x2_, y2_;
-      if (x1 != null) {
-        x1_ = x1, y1_ = y1, x2_ = x2, y2_ = y2;
-      } else {
-        x2_ = y2_ = -(x1_ = y1_ = Infinity);
-        xs = [], ys = [];
-        n = data.length;
-        if (compat) for (i = 0; i < n; ++i) {
-          d = data[i];
-          if (d.x < x1_) x1_ = d.x;
-          if (d.y < y1_) y1_ = d.y;
-          if (d.x > x2_) x2_ = d.x;
-          if (d.y > y2_) y2_ = d.y;
-          xs.push(d.x);
-          ys.push(d.y);
-        } else for (i = 0; i < n; ++i) {
-          var x_ = +fx(d = data[i], i), y_ = +fy(d, i);
-          if (x_ < x1_) x1_ = x_;
-          if (y_ < y1_) y1_ = y_;
-          if (x_ > x2_) x2_ = x_;
-          if (y_ > y2_) y2_ = y_;
-          xs.push(x_);
-          ys.push(y_);
-        }
-      }
-      var dx = x2_ - x1_, dy = y2_ - y1_;
-      if (dx > dy) y2_ = y1_ + dx; else x2_ = x1_ + dy;
-      function insert(n, d, x, y, x1, y1, x2, y2) {
-        if (isNaN(x) || isNaN(y)) return;
-        if (n.leaf) {
-          var nx = n.x, ny = n.y;
-          if (nx != null) {
-            if (Math.abs(nx - x) + Math.abs(ny - y) < .01) {
-              insertChild(n, d, x, y, x1, y1, x2, y2);
-            } else {
-              var nPoint = n.point;
-              n.x = n.y = n.point = null;
-              insertChild(n, nPoint, nx, ny, x1, y1, x2, y2);
-              insertChild(n, d, x, y, x1, y1, x2, y2);
-            }
-          } else {
-            n.x = x, n.y = y, n.point = d;
-          }
-        } else {
-          insertChild(n, d, x, y, x1, y1, x2, y2);
-        }
-      }
-      function insertChild(n, d, x, y, x1, y1, x2, y2) {
-        var sx = (x1 + x2) * .5, sy = (y1 + y2) * .5, right = x >= sx, bottom = y >= sy, i = (bottom << 1) + right;
-        n.leaf = false;
-        n = n.nodes[i] || (n.nodes[i] = d3_geom_quadtreeNode());
-        if (right) x1 = sx; else x2 = sx;
-        if (bottom) y1 = sy; else y2 = sy;
-        insert(n, d, x, y, x1, y1, x2, y2);
-      }
-      var root = d3_geom_quadtreeNode();
-      root.add = function(d) {
-        insert(root, d, +fx(d, ++i), +fy(d, i), x1_, y1_, x2_, y2_);
-      };
-      root.visit = function(f) {
-        d3_geom_quadtreeVisit(f, root, x1_, y1_, x2_, y2_);
-      };
-      i = -1;
-      if (x1 == null) {
-        while (++i < n) {
-          insert(root, data[i], xs[i], ys[i], x1_, y1_, x2_, y2_);
-        }
-        --i;
-      } else data.forEach(root.add);
-      xs = ys = data = d = null;
-      return root;
-    }
-    quadtree.x = function(_) {
-      return arguments.length ? (x = _, quadtree) : x;
-    };
-    quadtree.y = function(_) {
-      return arguments.length ? (y = _, quadtree) : y;
-    };
-    quadtree.size = function(_) {
-      if (!arguments.length) return x1 == null ? null : [ x2, y2 ];
-      if (_ == null) {
-        x1 = y1 = x2 = y2 = null;
-      } else {
-        x1 = y1 = 0;
-        x2 = +_[0], y2 = +_[1];
-      }
-      return quadtree;
-    };
-    return quadtree;
-  };
-  function d3_geom_quadtreeCompatX(d) {
-    return d.x;
-  }
-  function d3_geom_quadtreeCompatY(d) {
-    return d.y;
-  }
-  function d3_geom_quadtreeNode() {
-    return {
-      leaf: true,
-      nodes: [],
-      point: null,
-      x: null,
-      y: null
-    };
-  }
-  function d3_geom_quadtreeVisit(f, node, x1, y1, x2, y2) {
-    if (!f(node, x1, y1, x2, y2)) {
-      var sx = (x1 + x2) * .5, sy = (y1 + y2) * .5, children = node.nodes;
-      if (children[0]) d3_geom_quadtreeVisit(f, children[0], x1, y1, sx, sy);
-      if (children[1]) d3_geom_quadtreeVisit(f, children[1], sx, y1, x2, sy);
-      if (children[2]) d3_geom_quadtreeVisit(f, children[2], x1, sy, sx, y2);
-      if (children[3]) d3_geom_quadtreeVisit(f, children[3], sx, sy, x2, y2);
-    }
-  }
-  d3.interpolateRgb = d3_interpolateRgb;
-  function d3_interpolateRgb(a, b) {
-    a = d3.rgb(a);
-    b = d3.rgb(b);
-    var ar = a.r, ag = a.g, ab = a.b, br = b.r - ar, bg = b.g - ag, bb = b.b - ab;
-    return function(t) {
-      return "#" + d3_rgb_hex(Math.round(ar + br * t)) + d3_rgb_hex(Math.round(ag + bg * t)) + d3_rgb_hex(Math.round(ab + bb * t));
-    };
-  }
-  d3.transform = function(string) {
-    var g = d3_document.createElementNS(d3.ns.prefix.svg, "g");
-    return (d3.transform = function(string) {
-      g.setAttribute("transform", string);
-      var t = g.transform.baseVal.consolidate();
-      return new d3_transform(t ? t.matrix : d3_transformIdentity);
-    })(string);
-  };
-  function d3_transform(m) {
-    var r0 = [ m.a, m.b ], r1 = [ m.c, m.d ], kx = d3_transformNormalize(r0), kz = d3_transformDot(r0, r1), ky = d3_transformNormalize(d3_transformCombine(r1, r0, -kz)) || 0;
-    if (r0[0] * r1[1] < r1[0] * r0[1]) {
-      r0[0] *= -1;
-      r0[1] *= -1;
-      kx *= -1;
-      kz *= -1;
-    }
-    this.rotate = (kx ? Math.atan2(r0[1], r0[0]) : Math.atan2(-r1[0], r1[1])) * d3_degrees;
-    this.translate = [ m.e, m.f ];
-    this.scale = [ kx, ky ];
-    this.skew = ky ? Math.atan2(kz, ky) * d3_degrees : 0;
-  }
-  d3_transform.prototype.toString = function() {
-    return "translate(" + this.translate + ")rotate(" + this.rotate + ")skewX(" + this.skew + ")scale(" + this.scale + ")";
-  };
-  function d3_transformDot(a, b) {
-    return a[0] * b[0] + a[1] * b[1];
-  }
-  function d3_transformNormalize(a) {
-    var k = Math.sqrt(d3_transformDot(a, a));
-    if (k) {
-      a[0] /= k;
-      a[1] /= k;
-    }
-    return k;
-  }
-  function d3_transformCombine(a, b, k) {
-    a[0] += k * b[0];
-    a[1] += k * b[1];
-    return a;
-  }
-  var d3_transformIdentity = {
-    a: 1,
-    b: 0,
-    c: 0,
-    d: 1,
-    e: 0,
-    f: 0
-  };
-  d3.interpolateNumber = d3_interpolateNumber;
-  function d3_interpolateNumber(a, b) {
-    b -= a = +a;
-    return function(t) {
-      return a + b * t;
-    };
-  }
-  d3.interpolateTransform = d3_interpolateTransform;
-  function d3_interpolateTransform(a, b) {
-    var s = [], q = [], n, A = d3.transform(a), B = d3.transform(b), ta = A.translate, tb = B.translate, ra = A.rotate, rb = B.rotate, wa = A.skew, wb = B.skew, ka = A.scale, kb = B.scale;
-    if (ta[0] != tb[0] || ta[1] != tb[1]) {
-      s.push("translate(", null, ",", null, ")");
-      q.push({
-        i: 1,
-        x: d3_interpolateNumber(ta[0], tb[0])
-      }, {
-        i: 3,
-        x: d3_interpolateNumber(ta[1], tb[1])
-      });
-    } else if (tb[0] || tb[1]) {
-      s.push("translate(" + tb + ")");
-    } else {
-      s.push("");
-    }
-    if (ra != rb) {
-      if (ra - rb > 180) rb += 360; else if (rb - ra > 180) ra += 360;
-      q.push({
-        i: s.push(s.pop() + "rotate(", null, ")") - 2,
-        x: d3_interpolateNumber(ra, rb)
-      });
-    } else if (rb) {
-      s.push(s.pop() + "rotate(" + rb + ")");
-    }
-    if (wa != wb) {
-      q.push({
-        i: s.push(s.pop() + "skewX(", null, ")") - 2,
-        x: d3_interpolateNumber(wa, wb)
-      });
-    } else if (wb) {
-      s.push(s.pop() + "skewX(" + wb + ")");
-    }
-    if (ka[0] != kb[0] || ka[1] != kb[1]) {
-      n = s.push(s.pop() + "scale(", null, ",", null, ")");
-      q.push({
-        i: n - 4,
-        x: d3_interpolateNumber(ka[0], kb[0])
-      }, {
-        i: n - 2,
-        x: d3_interpolateNumber(ka[1], kb[1])
-      });
-    } else if (kb[0] != 1 || kb[1] != 1) {
-      s.push(s.pop() + "scale(" + kb + ")");
-    }
-    n = q.length;
-    return function(t) {
-      var i = -1, o;
-      while (++i < n) s[(o = q[i]).i] = o.x(t);
-      return s.join("");
-    };
-  }
-  d3.interpolateObject = d3_interpolateObject;
-  function d3_interpolateObject(a, b) {
-    var i = {}, c = {}, k;
-    for (k in a) {
-      if (k in b) {
-        i[k] = d3_interpolateByName(k)(a[k], b[k]);
-      } else {
-        c[k] = a[k];
-      }
-    }
-    for (k in b) {
-      if (!(k in a)) {
-        c[k] = b[k];
-      }
-    }
-    return function(t) {
-      for (k in i) c[k] = i[k](t);
-      return c;
-    };
-  }
-  d3.interpolateString = d3_interpolateString;
-  function d3_interpolateString(a, b) {
-    var m, i, j, s0 = 0, s1 = 0, s = [], q = [], n, o;
-    a = a + "", b = b + "";
-    d3_interpolate_number.lastIndex = 0;
-    for (i = 0; m = d3_interpolate_number.exec(b); ++i) {
-      if (m.index) s.push(b.substring(s0, s1 = m.index));
-      q.push({
-        i: s.length,
-        x: m[0]
-      });
-      s.push(null);
-      s0 = d3_interpolate_number.lastIndex;
-    }
-    if (s0 < b.length) s.push(b.substring(s0));
-    for (i = 0, n = q.length; (m = d3_interpolate_number.exec(a)) && i < n; ++i) {
-      o = q[i];
-      if (o.x == m[0]) {
-        if (o.i) {
-          if (s[o.i + 1] == null) {
-            s[o.i - 1] += o.x;
-            s.splice(o.i, 1);
-            for (j = i + 1; j < n; ++j) q[j].i--;
-          } else {
-            s[o.i - 1] += o.x + s[o.i + 1];
-            s.splice(o.i, 2);
-            for (j = i + 1; j < n; ++j) q[j].i -= 2;
-          }
-        } else {
-          if (s[o.i + 1] == null) {
-            s[o.i] = o.x;
-          } else {
-            s[o.i] = o.x + s[o.i + 1];
-            s.splice(o.i + 1, 1);
-            for (j = i + 1; j < n; ++j) q[j].i--;
-          }
-        }
-        q.splice(i, 1);
-        n--;
-        i--;
-      } else {
-        o.x = d3_interpolateNumber(parseFloat(m[0]), parseFloat(o.x));
-      }
-    }
-    while (i < n) {
-      o = q.pop();
-      if (s[o.i + 1] == null) {
-        s[o.i] = o.x;
-      } else {
-        s[o.i] = o.x + s[o.i + 1];
-        s.splice(o.i + 1, 1);
-      }
-      n--;
-    }
-    if (s.length === 1) {
-      return s[0] == null ? q[0].x : function() {
-        return b;
-      };
-    }
-    return function(t) {
-      for (i = 0; i < n; ++i) s[(o = q[i]).i] = o.x(t);
-      return s.join("");
-    };
-  }
-  var d3_interpolate_number = /[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g;
-  d3.interpolate = d3_interpolate;
-  function d3_interpolate(a, b) {
-    var i = d3.interpolators.length, f;
-    while (--i >= 0 && !(f = d3.interpolators[i](a, b))) ;
-    return f;
-  }
-  function d3_interpolateByName(name) {
-    return name == "transform" ? d3_interpolateTransform : d3_interpolate;
-  }
-  d3.interpolators = [ function(a, b) {
-    var t = typeof b;
-    return (t === "string" || t !== typeof a ? d3_rgb_names.has(b) || /^(#|rgb\(|hsl\()/.test(b) ? d3_interpolateRgb : d3_interpolateString : b instanceof d3_Color ? d3_interpolateRgb : t === "object" ? Array.isArray(b) ? d3_interpolateArray : d3_interpolateObject : d3_interpolateNumber)(a, b);
-  } ];
-  d3.interpolateArray = d3_interpolateArray;
-  function d3_interpolateArray(a, b) {
-    var x = [], c = [], na = a.length, nb = b.length, n0 = Math.min(a.length, b.length), i;
-    for (i = 0; i < n0; ++i) x.push(d3_interpolate(a[i], b[i]));
-    for (;i < na; ++i) c[i] = a[i];
-    for (;i < nb; ++i) c[i] = b[i];
-    return function(t) {
-      for (i = 0; i < n0; ++i) c[i] = x[i](t);
-      return c;
-    };
-  }
-  var d3_ease_default = function() {
-    return d3_identity;
-  };
-  var d3_ease = d3.map({
-    linear: d3_ease_default,
-    poly: d3_ease_poly,
-    quad: function() {
-      return d3_ease_quad;
-    },
-    cubic: function() {
-      return d3_ease_cubic;
-    },
-    sin: function() {
-      return d3_ease_sin;
-    },
-    exp: function() {
-      return d3_ease_exp;
-    },
-    circle: function() {
-      return d3_ease_circle;
-    },
-    elastic: d3_ease_elastic,
-    back: d3_ease_back,
-    bounce: function() {
-      return d3_ease_bounce;
-    }
-  });
-  var d3_ease_mode = d3.map({
-    "in": d3_identity,
-    out: d3_ease_reverse,
-    "in-out": d3_ease_reflect,
-    "out-in": function(f) {
-      return d3_ease_reflect(d3_ease_reverse(f));
-    }
-  });
-  d3.ease = function(name) {
-    var i = name.indexOf("-"), t = i >= 0 ? name.substring(0, i) : name, m = i >= 0 ? name.substring(i + 1) : "in";
-    t = d3_ease.get(t) || d3_ease_default;
-    m = d3_ease_mode.get(m) || d3_identity;
-    return d3_ease_clamp(m(t.apply(null, Array.prototype.slice.call(arguments, 1))));
-  };
-  function d3_ease_clamp(f) {
-    return function(t) {
-      return t <= 0 ? 0 : t >= 1 ? 1 : f(t);
-    };
-  }
-  function d3_ease_reverse(f) {
-    return function(t) {
-      return 1 - f(1 - t);
-    };
-  }
-  function d3_ease_reflect(f) {
-    return function(t) {
-      return .5 * (t < .5 ? f(2 * t) : 2 - f(2 - 2 * t));
-    };
-  }
-  function d3_ease_quad(t) {
-    return t * t;
-  }
-  function d3_ease_cubic(t) {
-    return t * t * t;
-  }
-  function d3_ease_cubicInOut(t) {
-    if (t <= 0) return 0;
-    if (t >= 1) return 1;
-    var t2 = t * t, t3 = t2 * t;
-    return 4 * (t < .5 ? t3 : 3 * (t - t2) + t3 - .75);
-  }
-  function d3_ease_poly(e) {
-    return function(t) {
-      return Math.pow(t, e);
-    };
-  }
-  function d3_ease_sin(t) {
-    return 1 - Math.cos(t * π / 2);
-  }
-  function d3_ease_exp(t) {
-    return Math.pow(2, 10 * (t - 1));
-  }
-  function d3_ease_circle(t) {
-    return 1 - Math.sqrt(1 - t * t);
-  }
-  function d3_ease_elastic(a, p) {
-    var s;
-    if (arguments.length < 2) p = .45;
-    if (arguments.length) s = p / (2 * π) * Math.asin(1 / a); else a = 1, s = p / 4;
-    return function(t) {
-      return 1 + a * Math.pow(2, 10 * -t) * Math.sin((t - s) * 2 * π / p);
-    };
-  }
-  function d3_ease_back(s) {
-    if (!s) s = 1.70158;
-    return function(t) {
-      return t * t * ((s + 1) * t - s);
-    };
-  }
-  function d3_ease_bounce(t) {
-    return t < 1 / 2.75 ? 7.5625 * t * t : t < 2 / 2.75 ? 7.5625 * (t -= 1.5 / 2.75) * t + .75 : t < 2.5 / 2.75 ? 7.5625 * (t -= 2.25 / 2.75) * t + .9375 : 7.5625 * (t -= 2.625 / 2.75) * t + .984375;
-  }
-  d3.interpolateHcl = d3_interpolateHcl;
-  function d3_interpolateHcl(a, b) {
-    a = d3.hcl(a);
-    b = d3.hcl(b);
-    var ah = a.h, ac = a.c, al = a.l, bh = b.h - ah, bc = b.c - ac, bl = b.l - al;
-    if (bh > 180) bh -= 360; else if (bh < -180) bh += 360;
-    return function(t) {
-      return d3_hcl_lab(ah + bh * t, ac + bc * t, al + bl * t) + "";
-    };
-  }
-  d3.interpolateHsl = d3_interpolateHsl;
-  function d3_interpolateHsl(a, b) {
-    a = d3.hsl(a);
-    b = d3.hsl(b);
-    var h0 = a.h, s0 = a.s, l0 = a.l, h1 = b.h - h0, s1 = b.s - s0, l1 = b.l - l0;
-    if (h1 > 180) h1 -= 360; else if (h1 < -180) h1 += 360;
-    return function(t) {
-      return d3_hsl_rgb(h0 + h1 * t, s0 + s1 * t, l0 + l1 * t) + "";
-    };
-  }
-  d3.interpolateLab = d3_interpolateLab;
-  function d3_interpolateLab(a, b) {
-    a = d3.lab(a);
-    b = d3.lab(b);
-    var al = a.l, aa = a.a, ab = a.b, bl = b.l - al, ba = b.a - aa, bb = b.b - ab;
-    return function(t) {
-      return d3_lab_rgb(al + bl * t, aa + ba * t, ab + bb * t) + "";
-    };
-  }
-  d3.interpolateRound = d3_interpolateRound;
-  function d3_interpolateRound(a, b) {
-    b -= a;
-    return function(t) {
-      return Math.round(a + b * t);
-    };
-  }
-  function d3_uninterpolateNumber(a, b) {
-    b = b - (a = +a) ? 1 / (b - a) : 0;
-    return function(x) {
-      return (x - a) * b;
-    };
-  }
-  function d3_uninterpolateClamp(a, b) {
-    b = b - (a = +a) ? 1 / (b - a) : 0;
-    return function(x) {
-      return Math.max(0, Math.min(1, (x - a) * b));
-    };
-  }
-  d3.layout = {};
-  d3.layout.bundle = function() {
-    return function(links) {
-      var paths = [], i = -1, n = links.length;
-      while (++i < n) paths.push(d3_layout_bundlePath(links[i]));
-      return paths;
-    };
-  };
-  function d3_layout_bundlePath(link) {
-    var start = link.source, end = link.target, lca = d3_layout_bundleLeastCommonAncestor(start, end), points = [ start ];
-    while (start !== lca) {
-      start = start.parent;
-      points.push(start);
-    }
-    var k = points.length;
-    while (end !== lca) {
-      points.splice(k, 0, end);
-      end = end.parent;
-    }
-    return points;
-  }
-  function d3_layout_bundleAncestors(node) {
-    var ancestors = [], parent = node.parent;
-    while (parent != null) {
-      ancestors.push(node);
-      node = parent;
-      parent = parent.parent;
-    }
-    ancestors.push(node);
-    return ancestors;
-  }
-  function d3_layout_bundleLeastCommonAncestor(a, b) {
-    if (a === b) return a;
-    var aNodes = d3_layout_bundleAncestors(a), bNodes = d3_layout_bundleAncestors(b), aNode = aNodes.pop(), bNode = bNodes.pop(), sharedNode = null;
-    while (aNode === bNode) {
-      sharedNode = aNode;
-      aNode = aNodes.pop();
-      bNode = bNodes.pop();
-    }
-    return sharedNode;
-  }
-  d3.layout.chord = function() {
-    var chord = {}, chords, groups, matrix, n, padding = 0, sortGroups, sortSubgroups, sortChords;
-    function relayout() {
-      var subgroups = {}, groupSums = [], groupIndex = d3.range(n), subgroupIndex = [], k, x, x0, i, j;
-      chords = [];
-      groups = [];
-      k = 0, i = -1;
-      while (++i < n) {
-        x = 0, j = -1;
-        while (++j < n) {
-          x += matrix[i][j];
-        }
-        groupSums.push(x);
-        subgroupIndex.push(d3.range(n));
-        k += x;
-      }
-      if (sortGroups) {
-        groupIndex.sort(function(a, b) {
-          return sortGroups(groupSums[a], groupSums[b]);
-        });
-      }
-      if (sortSubgroups) {
-        subgroupIndex.forEach(function(d, i) {
-          d.sort(function(a, b) {
-            return sortSubgroups(matrix[i][a], matrix[i][b]);
-          });
-        });
-      }
-      k = (2 * π - padding * n) / k;
-      x = 0, i = -1;
-      while (++i < n) {
-        x0 = x, j = -1;
-        while (++j < n) {
-          var di = groupIndex[i], dj = subgroupIndex[di][j], v = matrix[di][dj], a0 = x, a1 = x += v * k;
-          subgroups[di + "-" + dj] = {
-            index: di,
-            subindex: dj,
-            startAngle: a0,
-            endAngle: a1,
-            value: v
-          };
-        }
-        groups[di] = {
-          index: di,
-          startAngle: x0,
-          endAngle: x,
-          value: (x - x0) / k
-        };
-        x += padding;
-      }
-      i = -1;
-      while (++i < n) {
-        j = i - 1;
-        while (++j < n) {
-          var source = subgroups[i + "-" + j], target = subgroups[j + "-" + i];
-          if (source.value || target.value) {
-            chords.push(source.value < target.value ? {
-              source: target,
-              target: source
-            } : {
-              source: source,
-              target: target
-            });
-          }
-        }
-      }
-      if (sortChords) resort();
-    }
-    function resort() {
-      chords.sort(function(a, b) {
-        return sortChords((a.source.value + a.target.value) / 2, (b.source.value + b.target.value) / 2);
-      });
-    }
-    chord.matrix = function(x) {
-      if (!arguments.length) return matrix;
-      n = (matrix = x) && matrix.length;
-      chords = groups = null;
-      return chord;
-    };
-    chord.padding = function(x) {
-      if (!arguments.length) return padding;
-      padding = x;
-      chords = groups = null;
-      return chord;
-    };
-    chord.sortGroups = function(x) {
-      if (!arguments.length) return sortGroups;
-      sortGroups = x;
-      chords = groups = null;
-      return chord;
-    };
-    chord.sortSubgroups = function(x) {
-      if (!arguments.length) return sortSubgroups;
-      sortSubgroups = x;
-      chords = null;
-      return chord;
-    };
-    chord.sortChords = function(x) {
-      if (!arguments.length) return sortChords;
-      sortChords = x;
-      if (chords) resort();
-      return chord;
-    };
-    chord.chords = function() {
-      if (!chords) relayout();
-      return chords;
-    };
-    chord.groups = function() {
-      if (!groups) relayout();
-      return groups;
-    };
-    return chord;
-  };
-  d3.layout.force = function() {
-    var force = {}, event = d3.dispatch("start", "tick", "end"), size = [ 1, 1 ], drag, alpha, friction = .9, linkDistance = d3_layout_forceLinkDistance, linkStrength = d3_layout_forceLinkStrength, charge = -30, gravity = .1, theta = .8, nodes = [], links = [], distances, strengths, charges;
-    function repulse(node) {
-      return function(quad, x1, _, x2) {
-        if (quad.point !== node) {
-          var dx = quad.cx - node.x, dy = quad.cy - node.y, dn = 1 / Math.sqrt(dx * dx + dy * dy);
-          if ((x2 - x1) * dn < theta) {
-            var k = quad.charge * dn * dn;
-            node.px -= dx * k;
-            node.py -= dy * k;
-            return true;
-          }
-          if (quad.point && isFinite(dn)) {
-            var k = quad.pointCharge * dn * dn;
-            node.px -= dx * k;
-            node.py -= dy * k;
-          }
-        }
-        return !quad.charge;
-      };
-    }
-    force.tick = function() {
-      if ((alpha *= .99) < .005) {
-        event.end({
-          type: "end",
-          alpha: alpha = 0
-        });
-        return true;
-      }
-      var n = nodes.length, m = links.length, q, i, o, s, t, l, k, x, y;
-      for (i = 0; i < m; ++i) {
-        o = links[i];
-        s = o.source;
-        t = o.target;
-        x = t.x - s.x;
-        y = t.y - s.y;
-        if (l = x * x + y * y) {
-          l = alpha * strengths[i] * ((l = Math.sqrt(l)) - distances[i]) / l;
-          x *= l;
-          y *= l;
-          t.x -= x * (k = s.weight / (t.weight + s.weight));
-          t.y -= y * k;
-          s.x += x * (k = 1 - k);
-          s.y += y * k;
-        }
-      }
-      if (k = alpha * gravity) {
-        x = size[0] / 2;
-        y = size[1] / 2;
-        i = -1;
-        if (k) while (++i < n) {
-          o = nodes[i];
-          o.x += (x - o.x) * k;
-          o.y += (y - o.y) * k;
-        }
-      }
-      if (charge) {
-        d3_layout_forceAccumulate(q = d3.geom.quadtree(nodes), alpha, charges);
-        i = -1;
-        while (++i < n) {
-          if (!(o = nodes[i]).fixed) {
-            q.visit(repulse(o));
-          }
-        }
-      }
-      i = -1;
-      while (++i < n) {
-        o = nodes[i];
-        if (o.fixed) {
-          o.x = o.px;
-          o.y = o.py;
-        } else {
-          o.x -= (o.px - (o.px = o.x)) * friction;
-          o.y -= (o.py - (o.py = o.y)) * friction;
-        }
-      }
-      event.tick({
-        type: "tick",
-        alpha: alpha
-      });
-    };
-    force.nodes = function(x) {
-      if (!arguments.length) return nodes;
-      nodes = x;
-      return force;
-    };
-    force.links = function(x) {
-      if (!arguments.length) return links;
-      links = x;
-      return force;
-    };
-    force.size = function(x) {
-      if (!arguments.length) return size;
-      size = x;
-      return force;
-    };
-    force.linkDistance = function(x) {
-      if (!arguments.length) return linkDistance;
-      linkDistance = typeof x === "function" ? x : +x;
-      return force;
-    };
-    force.distance = force.linkDistance;
-    force.linkStrength = function(x) {
-      if (!arguments.length) return linkStrength;
-      linkStrength = typeof x === "function" ? x : +x;
-      return force;
-    };
-    force.friction = function(x) {
-      if (!arguments.length) return friction;
-      friction = +x;
-      return force;
-    };
-    force.charge = function(x) {
-      if (!arguments.length) return charge;
-      charge = typeof x === "function" ? x : +x;
-      return force;
-    };
-    force.gravity = function(x) {
-      if (!arguments.length) return gravity;
-      gravity = +x;
-      return force;
-    };
-    force.theta = function(x) {
-      if (!arguments.length) return theta;
-      theta = +x;
-      return force;
-    };
-    force.alpha = function(x) {
-      if (!arguments.length) return alpha;
-      x = +x;
-      if (alpha) {
-        if (x > 0) alpha = x; else alpha = 0;
-      } else if (x > 0) {
-        event.start({
-          type: "start",
-          alpha: alpha = x
-        });
-        d3.timer(force.tick);
-      }
-      return force;
-    };
-    force.start = function() {
-      var i, j, n = nodes.length, m = links.length, w = size[0], h = size[1], neighbors, o;
-      for (i = 0; i < n; ++i) {
-        (o = nodes[i]).index = i;
-        o.weight = 0;
-      }
-      for (i = 0; i < m; ++i) {
-        o = links[i];
-        if (typeof o.source == "number") o.source = nodes[o.source];
-        if (typeof o.target == "number") o.target = nodes[o.target];
-        ++o.source.weight;
-        ++o.target.weight;
-      }
-      for (i = 0; i < n; ++i) {
-        o = nodes[i];
-        if (isNaN(o.x)) o.x = position("x", w);
-        if (isNaN(o.y)) o.y = position("y", h);
-        if (isNaN(o.px)) o.px = o.x;
-        if (isNaN(o.py)) o.py = o.y;
-      }
-      distances = [];
-      if (typeof linkDistance === "function") for (i = 0; i < m; ++i) distances[i] = +linkDistance.call(this, links[i], i); else for (i = 0; i < m; ++i) distances[i] = linkDistance;
-      strengths = [];
-      if (typeof linkStrength === "function") for (i = 0; i < m; ++i) strengths[i] = +linkStrength.call(this, links[i], i); else for (i = 0; i < m; ++i) strengths[i] = linkStrength;
-      charges = [];
-      if (typeof charge === "function") for (i = 0; i < n; ++i) charges[i] = +charge.call(this, nodes[i], i); else for (i = 0; i < n; ++i) charges[i] = charge;
-      function position(dimension, size) {
-        var neighbors = neighbor(i), j = -1, m = neighbors.length, x;
-        while (++j < m) if (!isNaN(x = neighbors[j][dimension])) return x;
-        return Math.random() * size;
-      }
-      function neighbor() {
-        if (!neighbors) {
-          neighbors = [];
-          for (j = 0; j < n; ++j) {
-            neighbors[j] = [];
-          }
-          for (j = 0; j < m; ++j) {
-            var o = links[j];
-            neighbors[o.source.index].push(o.target);
-            neighbors[o.target.index].push(o.source);
-          }
-        }
-        return neighbors[i];
-      }
-      return force.resume();
-    };
-    force.resume = function() {
-      return force.alpha(.1);
-    };
-    force.stop = function() {
-      return force.alpha(0);
-    };
-    force.drag = function() {
-      if (!drag) drag = d3.behavior.drag().origin(d3_identity).on("dragstart.force", d3_layout_forceDragstart).on("drag.force", dragmove).on("dragend.force", d3_layout_forceDragend);
-      if (!arguments.length) return drag;
-      this.on("mouseover.force", d3_layout_forceMouseover).on("mouseout.force", d3_layout_forceMouseout).call(drag);
-    };
-    function dragmove(d) {
-      d.px = d3.event.x, d.py = d3.event.y;
-      force.resume();
-    }
-    return d3.rebind(force, event, "on");
-  };
-  function d3_layout_forceDragstart(d) {
-    d.fixed |= 2;
-  }
-  function d3_layout_forceDragend(d) {
-    d.fixed &= ~6;
-  }
-  function d3_layout_forceMouseover(d) {
-    d.fixed |= 4;
-    d.px = d.x, d.py = d.y;
-  }
-  function d3_layout_forceMouseout(d) {
-    d.fixed &= ~4;
-  }
-  function d3_layout_forceAccumulate(quad, alpha, charges) {
-    var cx = 0, cy = 0;
-    quad.charge = 0;
-    if (!quad.leaf) {
-      var nodes = quad.nodes, n = nodes.length, i = -1, c;
-      while (++i < n) {
-        c = nodes[i];
-        if (c == null) continue;
-        d3_layout_forceAccumulate(c, alpha, charges);
-        quad.charge += c.charge;
-        cx += c.charge * c.cx;
-        cy += c.charge * c.cy;
-      }
-    }
-    if (quad.point) {
-      if (!quad.leaf) {
-        quad.point.x += Math.random() - .5;
-        quad.point.y += Math.random() - .5;
-      }
-      var k = alpha * charges[quad.point.index];
-      quad.charge += quad.pointCharge = k;
-      cx += k * quad.point.x;
-      cy += k * quad.point.y;
-    }
-    quad.cx = cx / quad.charge;
-    quad.cy = cy / quad.charge;
-  }
-  var d3_layout_forceLinkDistance = 20, d3_layout_forceLinkStrength = 1;
-  d3.layout.hierarchy = function() {
-    var sort = d3_layout_hierarchySort, children = d3_layout_hierarchyChildren, value = d3_layout_hierarchyValue;
-    function recurse(node, depth, nodes) {
-      var childs = children.call(hierarchy, node, depth);
-      node.depth = depth;
-      nodes.push(node);
-      if (childs && (n = childs.length)) {
-        var i = -1, n, c = node.children = [], v = 0, j = depth + 1, d;
-        while (++i < n) {
-          d = recurse(childs[i], j, nodes);
-          d.parent = node;
-          c.push(d);
-          v += d.value;
-        }
-        if (sort) c.sort(sort);
-        if (value) node.value = v;
-      } else if (value) {
-        node.value = +value.call(hierarchy, node, depth) || 0;
-      }
-      return node;
-    }
-    function revalue(node, depth) {
-      var children = node.children, v = 0;
-      if (children && (n = children.length)) {
-        var i = -1, n, j = depth + 1;
-        while (++i < n) v += revalue(children[i], j);
-      } else if (value) {
-        v = +value.call(hierarchy, node, depth) || 0;
-      }
-      if (value) node.value = v;
-      return v;
-    }
-    function hierarchy(d) {
-      var nodes = [];
-      recurse(d, 0, nodes);
-      return nodes;
-    }
-    hierarchy.sort = function(x) {
-      if (!arguments.length) return sort;
-      sort = x;
-      return hierarchy;
-    };
-    hierarchy.children = function(x) {
-      if (!arguments.length) return children;
-      children = x;
-      return hierarchy;
-    };
-    hierarchy.value = function(x) {
-      if (!arguments.length) return value;
-      value = x;
-      return hierarchy;
-    };
-    hierarchy.revalue = function(root) {
-      revalue(root, 0);
-      return root;
-    };
-    return hierarchy;
-  };
-  function d3_layout_hierarchyRebind(object, hierarchy) {
-    d3.rebind(object, hierarchy, "sort", "children", "value");
-    object.nodes = object;
-    object.links = d3_layout_hierarchyLinks;
-    return object;
-  }
-  function d3_layout_hierarchyChildren(d) {
-    return d.children;
-  }
-  function d3_layout_hierarchyValue(d) {
-    return d.value;
-  }
-  function d3_layout_hierarchySort(a, b) {
-    return b.value - a.value;
-  }
-  function d3_layout_hierarchyLinks(nodes) {
-    return d3.merge(nodes.map(function(parent) {
-      return (parent.children || []).map(function(child) {
-        return {
-          source: parent,
-          target: child
-        };
-      });
-    }));
-  }
-  d3.layout.partition = function() {
-    var hierarchy = d3.layout.hierarchy(), size = [ 1, 1 ];
-    function position(node, x, dx, dy) {
-      var children = node.children;
-      node.x = x;
-      node.y = node.depth * dy;
-      node.dx = dx;
-      node.dy = dy;
-      if (children && (n = children.length)) {
-        var i = -1, n, c, d;
-        dx = node.value ? dx / node.value : 0;
-        while (++i < n) {
-          position(c = children[i], x, d = c.value * dx, dy);
-          x += d;
-        }
-      }
-    }
-    function depth(node) {
-      var children = node.children, d = 0;
-      if (children && (n = children.length)) {
-        var i = -1, n;
-        while (++i < n) d = Math.max(d, depth(children[i]));
-      }
-      return 1 + d;
-    }
-    function partition(d, i) {
-      var nodes = hierarchy.call(this, d, i);
-      position(nodes[0], 0, size[0], size[1] / depth(nodes[0]));
-      return nodes;
-    }
-    partition.size = function(x) {
-      if (!arguments.length) return size;
-      size = x;
-      return partition;
-    };
-    return d3_layout_hierarchyRebind(partition, hierarchy);
-  };
-  d3.layout.pie = function() {
-    var value = Number, sort = d3_layout_pieSortByValue, startAngle = 0, endAngle = 2 * π;
-    function pie(data) {
-      var values = data.map(function(d, i) {
-        return +value.call(pie, d, i);
-      });
-      var a = +(typeof startAngle === "function" ? startAngle.apply(this, arguments) : startAngle);
-      var k = ((typeof endAngle === "function" ? endAngle.apply(this, arguments) : endAngle) - a) / d3.sum(values);
-      var index = d3.range(data.length);
-      if (sort != null) index.sort(sort === d3_layout_pieSortByValue ? function(i, j) {
-        return values[j] - values[i];
-      } : function(i, j) {
-        return sort(data[i], data[j]);
-      });
-      var arcs = [];
-      index.forEach(function(i) {
-        var d;
-        arcs[i] = {
-          data: data[i],
-          value: d = values[i],
-          startAngle: a,
-          endAngle: a += d * k
-        };
-      });
-      return arcs;
-    }
-    pie.value = function(x) {
-      if (!arguments.length) return value;
-      value = x;
-      return pie;
-    };
-    pie.sort = function(x) {
-      if (!arguments.length) return sort;
-      sort = x;
-      return pie;
-    };
-    pie.startAngle = function(x) {
-      if (!arguments.length) return startAngle;
-      startAngle = x;
-      return pie;
-    };
-    pie.endAngle = function(x) {
-      if (!arguments.length) return endAngle;
-      endAngle = x;
-      return pie;
-    };
-    return pie;
-  };
-  var d3_layout_pieSortByValue = {};
-  d3.layout.stack = function() {
-    var values = d3_identity, order = d3_layout_stackOrderDefault, offset = d3_layout_stackOffsetZero, out = d3_layout_stackOut, x = d3_layout_stackX, y = d3_layout_stackY;
-    function stack(data, index) {
-      var series = data.map(function(d, i) {
-        return values.call(stack, d, i);
-      });
-      var points = series.map(function(d) {
-        return d.map(function(v, i) {
-          return [ x.call(stack, v, i), y.call(stack, v, i) ];
-        });
-      });
-      var orders = order.call(stack, points, index);
-      series = d3.permute(series, orders);
-      points = d3.permute(points, orders);
-      var offsets = offset.call(stack, points, index);
-      var n = series.length, m = series[0].length, i, j, o;
-      for (j = 0; j < m; ++j) {
-        out.call(stack, series[0][j], o = offsets[j], points[0][j][1]);
-        for (i = 1; i < n; ++i) {
-          out.call(stack, series[i][j], o += points[i - 1][j][1], points[i][j][1]);
-        }
-      }
-      return data;
-    }
-    stack.values = function(x) {
-      if (!arguments.length) return values;
-      values = x;
-      return stack;
-    };
-    stack.order = function(x) {
-      if (!arguments.length) return order;
-      order = typeof x === "function" ? x : d3_layout_stackOrders.get(x) || d3_layout_stackOrderDefault;
-      return stack;
-    };
-    stack.offset = function(x) {
-      if (!arguments.length) return offset;
-      offset = typeof x === "function" ? x : d3_layout_stackOffsets.get(x) || d3_layout_stackOffsetZero;
-      return stack;
-    };
-    stack.x = function(z) {
-      if (!arguments.length) return x;
-      x = z;
-      return stack;
-    };
-    stack.y = function(z) {
-      if (!arguments.length) return y;
-      y = z;
-      return stack;
-    };
-    stack.out = function(z) {
-      if (!arguments.length) return out;
-      out = z;
-      return stack;
-    };
-    return stack;
-  };
-  function d3_layout_stackX(d) {
-    return d.x;
-  }
-  function d3_layout_stackY(d) {
-    return d.y;
-  }
-  function d3_layout_stackOut(d, y0, y) {
-    d.y0 = y0;
-    d.y = y;
-  }
-  var d3_layout_stackOrders = d3.map({
-    "inside-out": function(data) {
-      var n = data.length, i, j, max = data.map(d3_layout_stackMaxIndex), sums = data.map(d3_layout_stackReduceSum), index = d3.range(n).sort(function(a, b) {
-        return max[a] - max[b];
-      }), top = 0, bottom = 0, tops = [], bottoms = [];
-      for (i = 0; i < n; ++i) {
-        j = index[i];
-        if (top < bottom) {
-          top += sums[j];
-          tops.push(j);
-        } else {
-          bottom += sums[j];
-          bottoms.push(j);
-        }
-      }
-      return bottoms.reverse().concat(tops);
-    },
-    reverse: function(data) {
-      return d3.range(data.length).reverse();
-    },
-    "default": d3_layout_stackOrderDefault
-  });
-  var d3_layout_stackOffsets = d3.map({
-    silhouette: function(data) {
-      var n = data.length, m = data[0].length, sums = [], max = 0, i, j, o, y0 = [];
-      for (j = 0; j < m; ++j) {
-        for (i = 0, o = 0; i < n; i++) o += data[i][j][1];
-        if (o > max) max = o;
-        sums.push(o);
-      }
-      for (j = 0; j < m; ++j) {
-        y0[j] = (max - sums[j]) / 2;
-      }
-      return y0;
-    },
-    wiggle: function(data) {
-      var n = data.length, x = data[0], m = x.length, i, j, k, s1, s2, s3, dx, o, o0, y0 = [];
-      y0[0] = o = o0 = 0;
-      for (j = 1; j < m; ++j) {
-        for (i = 0, s1 = 0; i < n; ++i) s1 += data[i][j][1];
-        for (i = 0, s2 = 0, dx = x[j][0] - x[j - 1][0]; i < n; ++i) {
-          for (k = 0, s3 = (data[i][j][1] - data[i][j - 1][1]) / (2 * dx); k < i; ++k) {
-            s3 += (data[k][j][1] - data[k][j - 1][1]) / dx;
-          }
-          s2 += s3 * data[i][j][1];
-        }
-        y0[j] = o -= s1 ? s2 / s1 * dx : 0;
-        if (o < o0) o0 = o;
-      }
-      for (j = 0; j < m; ++j) y0[j] -= o0;
-      return y0;
-    },
-    expand: function(data) {
-      var n = data.length, m = data[0].length, k = 1 / n, i, j, o, y0 = [];
-      for (j = 0; j < m; ++j) {
-        for (i = 0, o = 0; i < n; i++) o += data[i][j][1];
-        if (o) for (i = 0; i < n; i++) data[i][j][1] /= o; else for (i = 0; i < n; i++) data[i][j][1] = k;
-      }
-      for (j = 0; j < m; ++j) y0[j] = 0;
-      return y0;
-    },
-    zero: d3_layout_stackOffsetZero
-  });
-  function d3_layout_stackOrderDefault(data) {
-    return d3.range(data.length);
-  }
-  function d3_layout_stackOffsetZero(data) {
-    var j = -1, m = data[0].length, y0 = [];
-    while (++j < m) y0[j] = 0;
-    return y0;
-  }
-  function d3_layout_stackMaxIndex(array) {
-    var i = 1, j = 0, v = array[0][1], k, n = array.length;
-    for (;i < n; ++i) {
-      if ((k = array[i][1]) > v) {
-        j = i;
-        v = k;
-      }
-    }
-    return j;
-  }
-  function d3_layout_stackReduceSum(d) {
-    return d.reduce(d3_layout_stackSum, 0);
-  }
-  function d3_layout_stackSum(p, d) {
-    return p + d[1];
-  }
-  d3.layout.histogram = function() {
-    var frequency = true, valuer = Number, ranger = d3_layout_histogramRange, binner = d3_layout_histogramBinSturges;
-    function histogram(data, i) {
-      var bins = [], values = data.map(valuer, this), range = ranger.call(this, values, i), thresholds = binner.call(this, range, values, i), bin, i = -1, n = values.length, m = thresholds.length - 1, k = frequency ? 1 : 1 / n, x;
-      while (++i < m) {
-        bin = bins[i] = [];
-        bin.dx = thresholds[i + 1] - (bin.x = thresholds[i]);
-        bin.y = 0;
-      }
-      if (m > 0) {
-        i = -1;
-        while (++i < n) {
-          x = values[i];
-          if (x >= range[0] && x <= range[1]) {
-            bin = bins[d3.bisect(thresholds, x, 1, m) - 1];
-            bin.y += k;
-            bin.push(data[i]);
-          }
-        }
-      }
-      return bins;
-    }
-    histogram.value = function(x) {
-      if (!arguments.length) return valuer;
-      valuer = x;
-      return histogram;
-    };
-    histogram.range = function(x) {
-      if (!arguments.length) return ranger;
-      ranger = d3_functor(x);
-      return histogram;
-    };
-    histogram.bins = function(x) {
-      if (!arguments.length) return binner;
-      binner = typeof x === "number" ? function(range) {
-        return d3_layout_histogramBinFixed(range, x);
-      } : d3_functor(x);
-      return histogram;
-    };
-    histogram.frequency = function(x) {
-      if (!arguments.length) return frequency;
-      frequency = !!x;
-      return histogram;
-    };
-    return histogram;
-  };
-  function d3_layout_histogramBinSturges(range, values) {
-    return d3_layout_histogramBinFixed(range, Math.ceil(Math.log(values.length) / Math.LN2 + 1));
-  }
-  function d3_layout_histogramBinFixed(range, n) {
-    var x = -1, b = +range[0], m = (range[1] - b) / n, f = [];
-    while (++x <= n) f[x] = m * x + b;
-    return f;
-  }
-  function d3_layout_histogramRange(values) {
-    return [ d3.min(values), d3.max(values) ];
-  }
-  d3.layout.tree = function() {
-    var hierarchy = d3.layout.hierarchy().sort(null).value(null), separation = d3_layout_treeSeparation, size = [ 1, 1 ];
-    function tree(d, i) {
-      var nodes = hierarchy.call(this, d, i), root = nodes[0];
-      function firstWalk(node, previousSibling) {
-        var children = node.children, layout = node._tree;
-        if (children && (n = children.length)) {
-          var n, firstChild = children[0], previousChild, ancestor = firstChild, child, i = -1;
-          while (++i < n) {
-            child = children[i];
-            firstWalk(child, previousChild);
-            ancestor = apportion(child, previousChild, ancestor);
-            previousChild = child;
-          }
-          d3_layout_treeShift(node);
-          var midpoint = .5 * (firstChild._tree.prelim + child._tree.prelim);
-          if (previousSibling) {
-            layout.prelim = previousSibling._tree.prelim + separation(node, previousSibling);
-            layout.mod = layout.prelim - midpoint;
-          } else {
-            layout.prelim = midpoint;
-          }
-        } else {
-          if (previousSibling) {
-            layout.prelim = previousSibling._tree.prelim + separation(node, previousSibling);
-          }
-        }
-      }
-      function secondWalk(node, x) {
-        node.x = node._tree.prelim + x;
-        var children = node.children;
-        if (children && (n = children.length)) {
-          var i = -1, n;
-          x += node._tree.mod;
-          while (++i < n) {
-            secondWalk(children[i], x);
-          }
-        }
-      }
-      function apportion(node, previousSibling, ancestor) {
-        if (previousSibling) {
-          var vip = node, vop = node, vim = previousSibling, vom = node.parent.children[0], sip = vip._tree.mod, sop = vop._tree.mod, sim = vim._tree.mod, som = vom._tree.mod, shift;
-          while (vim = d3_layout_treeRight(vim), vip = d3_layout_treeLeft(vip), vim && vip) {
-            vom = d3_layout_treeLeft(vom);
-            vop = d3_layout_treeRight(vop);
-            vop._tree.ancestor = node;
-            shift = vim._tree.prelim + sim - vip._tree.prelim - sip + separation(vim, vip);
-            if (shift > 0) {
-              d3_layout_treeMove(d3_layout_treeAncestor(vim, node, ancestor), node, shift);
-              sip += shift;
-              sop += shift;
-            }
-            sim += vim._tree.mod;
-            sip += vip._tree.mod;
-            som += vom._tree.mod;
-            sop += vop._tree.mod;
-          }
-          if (vim && !d3_layout_treeRight(vop)) {
-            vop._tree.thread = vim;
-            vop._tree.mod += sim - sop;
-          }
-          if (vip && !d3_layout_treeLeft(vom)) {
-            vom._tree.thread = vip;
-            vom._tree.mod += sip - som;
-            ancestor = node;
-          }
-        }
-        return ancestor;
-      }
-      d3_layout_treeVisitAfter(root, function(node, previousSibling) {
-        node._tree = {
-          ancestor: node,
-          prelim: 0,
-          mod: 0,
-          change: 0,
-          shift: 0,
-          number: previousSibling ? previousSibling._tree.number + 1 : 0
-        };
-      });
-      firstWalk(root);
-      secondWalk(root, -root._tree.prelim);
-      var left = d3_layout_treeSearch(root, d3_layout_treeLeftmost), right = d3_layout_treeSearch(root, d3_layout_treeRightmost), deep = d3_layout_treeSearch(root, d3_layout_treeDeepest), x0 = left.x - separation(left, right) / 2, x1 = right.x + separation(right, left) / 2, y1 = deep.depth || 1;
-      d3_layout_treeVisitAfter(root, function(node) {
-        node.x = (node.x - x0) / (x1 - x0) * size[0];
-        node.y = node.depth / y1 * size[1];
-        delete node._tree;
-      });
-      return nodes;
-    }
-    tree.separation = function(x) {
-      if (!arguments.length) return separation;
-      separation = x;
-      return tree;
-    };
-    tree.size = function(x) {
-      if (!arguments.length) return size;
-      size = x;
-      return tree;
-    };
-    return d3_layout_hierarchyRebind(tree, hierarchy);
-  };
-  function d3_layout_treeSeparation(a, b) {
-    return a.parent == b.parent ? 1 : 2;
-  }
-  function d3_layout_treeLeft(node) {
-    var children = node.children;
-    return children && children.length ? children[0] : node._tree.thread;
-  }
-  function d3_layout_treeRight(node) {
-    var children = node.children, n;
-    return children && (n = children.length) ? children[n - 1] : node._tree.thread;
-  }
-  function d3_layout_treeSearch(node, compare) {
-    var children = node.children;
-    if (children && (n = children.length)) {
-      var child, n, i = -1;
-      while (++i < n) {
-        if (compare(child = d3_layout_treeSearch(children[i], compare), node) > 0) {
-          node = child;
-        }
-      }
-    }
-    return node;
-  }
-  function d3_layout_treeRightmost(a, b) {
-    return a.x - b.x;
-  }
-  function d3_layout_treeLeftmost(a, b) {
-    return b.x - a.x;
-  }
-  function d3_layout_treeDeepest(a, b) {
-    return a.depth - b.depth;
-  }
-  function d3_layout_treeVisitAfter(node, callback) {
-    function visit(node, previousSibling) {
-      var children = node.children;
-      if (children && (n = children.length)) {
-        var child, previousChild = null, i = -1, n;
-        while (++i < n) {
-          child = children[i];
-          visit(child, previousChild);
-          previousChild = child;
-        }
-      }
-      callback(node, previousSibling);
-    }
-    visit(node, null);
-  }
-  function d3_layout_treeShift(node) {
-    var shift = 0, change = 0, children = node.children, i = children.length, child;
-    while (--i >= 0) {
-      child = children[i]._tree;
-      child.prelim += shift;
-      child.mod += shift;
-      shift += child.shift + (change += child.change);
-    }
-  }
-  function d3_layout_treeMove(ancestor, node, shift) {
-    ancestor = ancestor._tree;
-    node = node._tree;
-    var change = shift / (node.number - ancestor.number);
-    ancestor.change += change;
-    node.change -= change;
-    node.shift += shift;
-    node.prelim += shift;
-    node.mod += shift;
-  }
-  function d3_layout_treeAncestor(vim, node, ancestor) {
-    return vim._tree.ancestor.parent == node.parent ? vim._tree.ancestor : ancestor;
-  }
-  d3.layout.pack = function() {
-    var hierarchy = d3.layout.hierarchy().sort(d3_layout_packSort), padding = 0, size = [ 1, 1 ];
-    function pack(d, i) {
-      var nodes = hierarchy.call(this, d, i), root = nodes[0];
-      root.x = 0;
-      root.y = 0;
-      d3_layout_treeVisitAfter(root, function(d) {
-        d.r = Math.sqrt(d.value);
-      });
-      d3_layout_treeVisitAfter(root, d3_layout_packSiblings);
-      var w = size[0], h = size[1], k = Math.max(2 * root.r / w, 2 * root.r / h);
-      if (padding > 0) {
-        var dr = padding * k / 2;
-        d3_layout_treeVisitAfter(root, function(d) {
-          d.r += dr;
-        });
-        d3_layout_treeVisitAfter(root, d3_layout_packSiblings);
-        d3_layout_treeVisitAfter(root, function(d) {
-          d.r -= dr;
-        });
-        k = Math.max(2 * root.r / w, 2 * root.r / h);
-      }
-      d3_layout_packTransform(root, w / 2, h / 2, 1 / k);
-      return nodes;
-    }
-    pack.size = function(x) {
-      if (!arguments.length) return size;
-      size = x;
-      return pack;
-    };
-    pack.padding = function(_) {
-      if (!arguments.length) return padding;
-      padding = +_;
-      return pack;
-    };
-    return d3_layout_hierarchyRebind(pack, hierarchy);
-  };
-  function d3_layout_packSort(a, b) {
-    return a.value - b.value;
-  }
-  function d3_layout_packInsert(a, b) {
-    var c = a._pack_next;
-    a._pack_next = b;
-    b._pack_prev = a;
-    b._pack_next = c;
-    c._pack_prev = b;
-  }
-  function d3_layout_packSplice(a, b) {
-    a._pack_next = b;
-    b._pack_prev = a;
-  }
-  function d3_layout_packIntersects(a, b) {
-    var dx = b.x - a.x, dy = b.y - a.y, dr = a.r + b.r;
-    return dr * dr - dx * dx - dy * dy > .001;
-  }
-  function d3_layout_packSiblings(node) {
-    if (!(nodes = node.children) || !(n = nodes.length)) return;
-    var nodes, xMin = Infinity, xMax = -Infinity, yMin = Infinity, yMax = -Infinity, a, b, c, i, j, k, n;
-    function bound(node) {
-      xMin = Math.min(node.x - node.r, xMin);
-      xMax = Math.max(node.x + node.r, xMax);
-      yMin = Math.min(node.y - node.r, yMin);
-      yMax = Math.max(node.y + node.r, yMax);
-    }
-    nodes.forEach(d3_layout_packLink);
-    a = nodes[0];
-    a.x = -a.r;
-    a.y = 0;
-    bound(a);
-    if (n > 1) {
-      b = nodes[1];
-      b.x = b.r;
-      b.y = 0;
-      bound(b);
-      if (n > 2) {
-        c = nodes[2];
-        d3_layout_packPlace(a, b, c);
-        bound(c);
-        d3_layout_packInsert(a, c);
-        a._pack_prev = c;
-        d3_layout_packInsert(c, b);
-        b = a._pack_next;
-        for (i = 3; i < n; i++) {
-          d3_layout_packPlace(a, b, c = nodes[i]);
-          var isect = 0, s1 = 1, s2 = 1;
-          for (j = b._pack_next; j !== b; j = j._pack_next, s1++) {
-            if (d3_layout_packIntersects(j, c)) {
-              isect = 1;
-              break;
-            }
-          }
-          if (isect == 1) {
-            for (k = a._pack_prev; k !== j._pack_prev; k = k._pack_prev, s2++) {
-              if (d3_layout_packIntersects(k, c)) {
-                break;
-              }
-            }
-          }
-          if (isect) {
-            if (s1 < s2 || s1 == s2 && b.r < a.r) d3_layout_packSplice(a, b = j); else d3_layout_packSplice(a = k, b);
-            i--;
-          } else {
-            d3_layout_packInsert(a, c);
-            b = c;
-            bound(c);
-          }
-        }
-      }
-    }
-    var cx = (xMin + xMax) / 2, cy = (yMin + yMax) / 2, cr = 0;
-    for (i = 0; i < n; i++) {
-      c = nodes[i];
-      c.x -= cx;
-      c.y -= cy;
-      cr = Math.max(cr, c.r + Math.sqrt(c.x * c.x + c.y * c.y));
-    }
-    node.r = cr;
-    nodes.forEach(d3_layout_packUnlink);
-  }
-  function d3_layout_packLink(node) {
-    node._pack_next = node._pack_prev = node;
-  }
-  function d3_layout_packUnlink(node) {
-    delete node._pack_next;
-    delete node._pack_prev;
-  }
-  function d3_layout_packTransform(node, x, y, k) {
-    var children = node.children;
-    node.x = x += k * node.x;
-    node.y = y += k * node.y;
-    node.r *= k;
-    if (children) {
-      var i = -1, n = children.length;
-      while (++i < n) d3_layout_packTransform(children[i], x, y, k);
-    }
-  }
-  function d3_layout_packPlace(a, b, c) {
-    var db = a.r + c.r, dx = b.x - a.x, dy = b.y - a.y;
-    if (db && (dx || dy)) {
-      var da = b.r + c.r, dc = dx * dx + dy * dy;
-      da *= da;
-      db *= db;
-      var x = .5 + (db - da) / (2 * dc), y = Math.sqrt(Math.max(0, 2 * da * (db + dc) - (db -= dc) * db - da * da)) / (2 * dc);
-      c.x = a.x + x * dx + y * dy;
-      c.y = a.y + x * dy - y * dx;
-    } else {
-      c.x = a.x + db;
-      c.y = a.y;
-    }
-  }
-  d3.layout.cluster = function() {
-    var hierarchy = d3.layout.hierarchy().sort(null).value(null), separation = d3_layout_treeSeparation, size = [ 1, 1 ];
-    function cluster(d, i) {
-      var nodes = hierarchy.call(this, d, i), root = nodes[0], previousNode, x = 0;
-      d3_layout_treeVisitAfter(root, function(node) {
-        var children = node.children;
-        if (children && children.length) {
-          node.x = d3_layout_clusterX(children);
-          node.y = d3_layout_clusterY(children);
-        } else {
-          node.x = previousNode ? x += separation(node, previousNode) : 0;
-          node.y = 0;
-          previousNode = node;
-        }
-      });
-      var left = d3_layout_clusterLeft(root), right = d3_layout_clusterRight(root), x0 = left.x - separation(left, right) / 2, x1 = right.x + separation(right, left) / 2;
-      d3_layout_treeVisitAfter(root, function(node) {
-        node.x = (node.x - x0) / (x1 - x0) * size[0];
-        node.y = (1 - (root.y ? node.y / root.y : 1)) * size[1];
-      });
-      return nodes;
-    }
-    cluster.separation = function(x) {
-      if (!arguments.length) return separation;
-      separation = x;
-      return cluster;
-    };
-    cluster.size = function(x) {
-      if (!arguments.length) return size;
-      size = x;
-      return cluster;
-    };
-    return d3_layout_hierarchyRebind(cluster, hierarchy);
-  };
-  function d3_layout_clusterY(children) {
-    return 1 + d3.max(children, function(child) {
-      return child.y;
-    });
-  }
-  function d3_layout_clusterX(children) {
-    return children.reduce(function(x, child) {
-      return x + child.x;
-    }, 0) / children.length;
-  }
-  function d3_layout_clusterLeft(node) {
-    var children = node.children;
-    return children && children.length ? d3_layout_clusterLeft(children[0]) : node;
-  }
-  function d3_layout_clusterRight(node) {
-    var children = node.children, n;
-    return children && (n = children.length) ? d3_layout_clusterRight(children[n - 1]) : node;
-  }
-  d3.layout.treemap = function() {
-    var hierarchy = d3.layout.hierarchy(), round = Math.round, size = [ 1, 1 ], padding = null, pad = d3_layout_treemapPadNull, sticky = false, stickies, mode = "squarify", ratio = .5 * (1 + Math.sqrt(5));
-    function scale(children, k) {
-      var i = -1, n = children.length, child, area;
-      while (++i < n) {
-        area = (child = children[i]).value * (k < 0 ? 0 : k);
-        child.area = isNaN(area) || area <= 0 ? 0 : area;
-      }
-    }
-    function squarify(node) {
-      var children = node.children;
-      if (children && children.length) {
-        var rect = pad(node), row = [], remaining = children.slice(), child, best = Infinity, score, u = mode === "slice" ? rect.dx : mode === "dice" ? rect.dy : mode === "slice-dice" ? node.depth & 1 ? rect.dy : rect.dx : Math.min(rect.dx, rect.dy), n;
-        scale(remaining, rect.dx * rect.dy / node.value);
-        row.area = 0;
-        while ((n = remaining.length) > 0) {
-          row.push(child = remaining[n - 1]);
-          row.area += child.area;
-          if (mode !== "squarify" || (score = worst(row, u)) <= best) {
-            remaining.pop();
-            best = score;
-          } else {
-            row.area -= row.pop().area;
-            position(row, u, rect, false);
-            u = Math.min(rect.dx, rect.dy);
-            row.length = row.area = 0;
-            best = Infinity;
-          }
-        }
-        if (row.length) {
-          position(row, u, rect, true);
-          row.length = row.area = 0;
-        }
-        children.forEach(squarify);
-      }
-    }
-    function stickify(node) {
-      var children = node.children;
-      if (children && children.length) {
-        var rect = pad(node), remaining = children.slice(), child, row = [];
-        scale(remaining, rect.dx * rect.dy / node.value);
-        row.area = 0;
-        while (child = remaining.pop()) {
-          row.push(child);
-          row.area += child.area;
-          if (child.z != null) {
-            position(row, child.z ? rect.dx : rect.dy, rect, !remaining.length);
-            row.length = row.area = 0;
-          }
-        }
-        children.forEach(stickify);
-      }
-    }
-    function worst(row, u) {
-      var s = row.area, r, rmax = 0, rmin = Infinity, i = -1, n = row.length;
-      while (++i < n) {
-        if (!(r = row[i].area)) continue;
-        if (r < rmin) rmin = r;
-        if (r > rmax) rmax = r;
-      }
-      s *= s;
-      u *= u;
-      return s ? Math.max(u * rmax * ratio / s, s / (u * rmin * ratio)) : Infinity;
-    }
-    function position(row, u, rect, flush) {
-      var i = -1, n = row.length, x = rect.x, y = rect.y, v = u ? round(row.area / u) : 0, o;
-      if (u == rect.dx) {
-        if (flush || v > rect.dy) v = rect.dy;
-        while (++i < n) {
-          o = row[i];
-          o.x = x;
-          o.y = y;
-          o.dy = v;
-          x += o.dx = Math.min(rect.x + rect.dx - x, v ? round(o.area / v) : 0);
-        }
-        o.z = true;
-        o.dx += rect.x + rect.dx - x;
-        rect.y += v;
-        rect.dy -= v;
-      } else {
-        if (flush || v > rect.dx) v = rect.dx;
-        while (++i < n) {
-          o = row[i];
-          o.x = x;
-          o.y = y;
-          o.dx = v;
-          y += o.dy = Math.min(rect.y + rect.dy - y, v ? round(o.area / v) : 0);
-        }
-        o.z = false;
-        o.dy += rect.y + rect.dy - y;
-        rect.x += v;
-        rect.dx -= v;
-      }
-    }
-    function treemap(d) {
-      var nodes = stickies || hierarchy(d), root = nodes[0];
-      root.x = 0;
-      root.y = 0;
-      root.dx = size[0];
-      root.dy = size[1];
-      if (stickies) hierarchy.revalue(root);
-      scale([ root ], root.dx * root.dy / root.value);
-      (stickies ? stickify : squarify)(root);
-      if (sticky) stickies = nodes;
-      return nodes;
-    }
-    treemap.size = function(x) {
-      if (!arguments.length) return size;
-      size = x;
-      return treemap;
-    };
-    treemap.padding = function(x) {
-      if (!arguments.length) return padding;
-      function padFunction(node) {
-        var p = x.call(treemap, node, node.depth);
-        return p == null ? d3_layout_treemapPadNull(node) : d3_layout_treemapPad(node, typeof p === "number" ? [ p, p, p, p ] : p);
-      }
-      function padConstant(node) {
-        return d3_layout_treemapPad(node, x);
-      }
-      var type;
-      pad = (padding = x) == null ? d3_layout_treemapPadNull : (type = typeof x) === "function" ? padFunction : type === "number" ? (x = [ x, x, x, x ], 
-      padConstant) : padConstant;
-      return treemap;
-    };
-    treemap.round = function(x) {
-      if (!arguments.length) return round != Number;
-      round = x ? Math.round : Number;
-      return treemap;
-    };
-    treemap.sticky = function(x) {
-      if (!arguments.length) return sticky;
-      sticky = x;
-      stickies = null;
-      return treemap;
-    };
-    treemap.ratio = function(x) {
-      if (!arguments.length) return ratio;
-      ratio = x;
-      return treemap;
-    };
-    treemap.mode = function(x) {
-      if (!arguments.length) return mode;
-      mode = x + "";
-      return treemap;
-    };
-    return d3_layout_hierarchyRebind(treemap, hierarchy);
-  };
-  function d3_layout_treemapPadNull(node) {
-    return {
-      x: node.x,
-      y: node.y,
-      dx: node.dx,
-      dy: node.dy
-    };
-  }
-  function d3_layout_treemapPad(node, padding) {
-    var x = node.x + padding[3], y = node.y + padding[0], dx = node.dx - padding[1] - padding[3], dy = node.dy - padding[0] - padding[2];
-    if (dx < 0) {
-      x += dx / 2;
-      dx = 0;
-    }
-    if (dy < 0) {
-      y += dy / 2;
-      dy = 0;
-    }
-    return {
-      x: x,
-      y: y,
-      dx: dx,
-      dy: dy
-    };
-  }
-  d3.random = {
-    normal: function(µ, σ) {
-      var n = arguments.length;
-      if (n < 2) σ = 1;
-      if (n < 1) µ = 0;
-      return function() {
-        var x, y, r;
-        do {
-          x = Math.random() * 2 - 1;
-          y = Math.random() * 2 - 1;
-          r = x * x + y * y;
-        } while (!r || r > 1);
-        return µ + σ * x * Math.sqrt(-2 * Math.log(r) / r);
-      };
-    },
-    logNormal: function() {
-      var random = d3.random.normal.apply(d3, arguments);
-      return function() {
-        return Math.exp(random());
-      };
-    },
-    irwinHall: function(m) {
-      return function() {
-        for (var s = 0, j = 0; j < m; j++) s += Math.random();
-        return s / m;
-      };
-    }
-  };
-  d3.scale = {};
-  function d3_scaleExtent(domain) {
-    var start = domain[0], stop = domain[domain.length - 1];
-    return start < stop ? [ start, stop ] : [ stop, start ];
-  }
-  function d3_scaleRange(scale) {
-    return scale.rangeExtent ? scale.rangeExtent() : d3_scaleExtent(scale.range());
-  }
-  function d3_scale_bilinear(domain, range, uninterpolate, interpolate) {
-    var u = uninterpolate(domain[0], domain[1]), i = interpolate(range[0], range[1]);
-    return function(x) {
-      return i(u(x));
-    };
-  }
-  function d3_scale_nice(domain, nice) {
-    var i0 = 0, i1 = domain.length - 1, x0 = domain[i0], x1 = domain[i1], dx;
-    if (x1 < x0) {
-      dx = i0, i0 = i1, i1 = dx;
-      dx = x0, x0 = x1, x1 = dx;
-    }
-    if (nice = nice(x1 - x0)) {
-      domain[i0] = nice.floor(x0);
-      domain[i1] = nice.ceil(x1);
-    }
-    return domain;
-  }
-  function d3_scale_polylinear(domain, range, uninterpolate, interpolate) {
-    var u = [], i = [], j = 0, k = Math.min(domain.length, range.length) - 1;
-    if (domain[k] < domain[0]) {
-      domain = domain.slice().reverse();
-      range = range.slice().reverse();
-    }
-    while (++j <= k) {
-      u.push(uninterpolate(domain[j - 1], domain[j]));
-      i.push(interpolate(range[j - 1], range[j]));
-    }
-    return function(x) {
-      var j = d3.bisect(domain, x, 1, k) - 1;
-      return i[j](u[j](x));
-    };
-  }
-  d3.scale.linear = function() {
-    return d3_scale_linear([ 0, 1 ], [ 0, 1 ], d3_interpolate, false);
-  };
-  function d3_scale_linear(domain, range, interpolate, clamp) {
-    var output, input;
-    function rescale() {
-      var linear = Math.min(domain.length, range.length) > 2 ? d3_scale_polylinear : d3_scale_bilinear, uninterpolate = clamp ? d3_uninterpolateClamp : d3_uninterpolateNumber;
-      output = linear(domain, range, uninterpolate, interpolate);
-      input = linear(range, domain, uninterpolate, d3_interpolate);
-      return scale;
-    }
-    function scale(x) {
-      return output(x);
-    }
-    scale.invert = function(y) {
-      return input(y);
-    };
-    scale.domain = function(x) {
-      if (!arguments.length) return domain;
-      domain = x.map(Number);
-      return rescale();
-    };
-    scale.range = function(x) {
-      if (!arguments.length) return range;
-      range = x;
-      return rescale();
-    };
-    scale.rangeRound = function(x) {
-      return scale.range(x).interpolate(d3_interpolateRound);
-    };
-    scale.clamp = function(x) {
-      if (!arguments.length) return clamp;
-      clamp = x;
-      return rescale();
-    };
-    scale.interpolate = function(x) {
-      if (!arguments.length) return interpolate;
-      interpolate = x;
-      return rescale();
-    };
-    scale.ticks = function(m) {
-      return d3_scale_linearTicks(domain, m);
-    };
-    scale.tickFormat = function(m, format) {
-      return d3_scale_linearTickFormat(domain, m, format);
-    };
-    scale.nice = function() {
-      d3_scale_nice(domain, d3_scale_linearNice);
-      return rescale();
-    };
-    scale.copy = function() {
-      return d3_scale_linear(domain, range, interpolate, clamp);
-    };
-    return rescale();
-  }
-  function d3_scale_linearRebind(scale, linear) {
-    return d3.rebind(scale, linear, "range", "rangeRound", "interpolate", "clamp");
-  }
-  function d3_scale_linearNice(dx) {
-    dx = Math.pow(10, Math.round(Math.log(dx) / Math.LN10) - 1);
-    return dx && {
-      floor: function(x) {
-        return Math.floor(x / dx) * dx;
-      },
-      ceil: function(x) {
-        return Math.ceil(x / dx) * dx;
-      }
-    };
-  }
-  function d3_scale_linearTickRange(domain, m) {
-    var extent = d3_scaleExtent(domain), span = extent[1] - extent[0], step = Math.pow(10, Math.floor(Math.log(span / m) / Math.LN10)), err = m / span * step;
-    if (err <= .15) step *= 10; else if (err <= .35) step *= 5; else if (err <= .75) step *= 2;
-    extent[0] = Math.ceil(extent[0] / step) * step;
-    extent[1] = Math.floor(extent[1] / step) * step + step * .5;
-    extent[2] = step;
-    return extent;
-  }
-  function d3_scale_linearTicks(domain, m) {
-    return d3.range.apply(d3, d3_scale_linearTickRange(domain, m));
-  }
-  function d3_scale_linearTickFormat(domain, m, format) {
-    var precision = -Math.floor(Math.log(d3_scale_linearTickRange(domain, m)[2]) / Math.LN10 + .01);
-    return d3.format(format ? format.replace(d3_format_re, function(a, b, c, d, e, f, g, h, i, j) {
-      return [ b, c, d, e, f, g, h, i || "." + (precision - (j === "%") * 2), j ].join("");
-    }) : ",." + precision + "f");
-  }
-  d3.scale.log = function() {
-    return d3_scale_log(d3.scale.linear().domain([ 0, Math.LN10 ]), 10, d3_scale_logp, d3_scale_powp);
-  };
-  function d3_scale_log(linear, base, log, pow) {
-    function scale(x) {
-      return linear(log(x));
-    }
-    scale.invert = function(x) {
-      return pow(linear.invert(x));
-    };
-    scale.domain = function(x) {
-      if (!arguments.length) return linear.domain().map(pow);
-      if (x[0] < 0) log = d3_scale_logn, pow = d3_scale_pown; else log = d3_scale_logp, 
-      pow = d3_scale_powp;
-      linear.domain(x.map(log));
-      return scale;
-    };
-    scale.base = function(_) {
-      if (!arguments.length) return base;
-      base = +_;
-      return scale;
-    };
-    scale.nice = function() {
-      linear.domain(d3_scale_nice(linear.domain(), d3_scale_logNice(base)));
-      return scale;
-    };
-    scale.ticks = function() {
-      var extent = d3_scaleExtent(linear.domain()), ticks = [];
-      if (extent.every(isFinite)) {
-        var b = Math.log(base), i = Math.floor(extent[0] / b), j = Math.ceil(extent[1] / b), u = pow(extent[0]), v = pow(extent[1]), n = base % 1 ? 2 : base;
-        if (log === d3_scale_logn) {
-          ticks.push(-Math.pow(base, -i));
-          for (;i++ < j; ) for (var k = n - 1; k > 0; k--) ticks.push(-Math.pow(base, -i) * k);
-        } else {
-          for (;i < j; i++) for (var k = 1; k < n; k++) ticks.push(Math.pow(base, i) * k);
-          ticks.push(Math.pow(base, i));
-        }
-        for (i = 0; ticks[i] < u; i++) {}
-        for (j = ticks.length; ticks[j - 1] > v; j--) {}
-        ticks = ticks.slice(i, j);
-      }
-      return ticks;
-    };
-    scale.tickFormat = function(n, format) {
-      if (arguments.length < 2) format = d3_scale_logFormat;
-      if (!arguments.length) return format;
-      var b = Math.log(base), k = Math.max(.1, n / scale.ticks().length), f = log === d3_scale_logn ? (e = -1e-12, 
-      Math.floor) : (e = 1e-12, Math.ceil), e;
-      return function(d) {
-        return d / pow(b * f(log(d) / b + e)) <= k ? format(d) : "";
-      };
-    };
-    scale.copy = function() {
-      return d3_scale_log(linear.copy(), base, log, pow);
-    };
-    return d3_scale_linearRebind(scale, linear);
-  }
-  var d3_scale_logFormat = d3.format(".0e");
-  function d3_scale_logp(x) {
-    return Math.log(x < 0 ? 0 : x);
-  }
-  function d3_scale_powp(x) {
-    return Math.exp(x);
-  }
-  function d3_scale_logn(x) {
-    return -Math.log(x > 0 ? 0 : -x);
-  }
-  function d3_scale_pown(x) {
-    return -Math.exp(-x);
-  }
-  function d3_scale_logNice(base) {
-    base = Math.log(base);
-    var nice = {
-      floor: function(x) {
-        return Math.floor(x / base) * base;
-      },
-      ceil: function(x) {
-        return Math.ceil(x / base) * base;
-      }
-    };
-    return function() {
-      return nice;
-    };
-  }
-  d3.scale.pow = function() {
-    return d3_scale_pow(d3.scale.linear(), 1);
-  };
-  function d3_scale_pow(linear, exponent) {
-    var powp = d3_scale_powPow(exponent), powb = d3_scale_powPow(1 / exponent);
-    function scale(x) {
-      return linear(powp(x));
-    }
-    scale.invert = function(x) {
-      return powb(linear.invert(x));
-    };
-    scale.domain = function(x) {
-      if (!arguments.length) return linear.domain().map(powb);
-      linear.domain(x.map(powp));
-      return scale;
-    };
-    scale.ticks = function(m) {
-      return d3_scale_linearTicks(scale.domain(), m);
-    };
-    scale.tickFormat = function(m, format) {
-      return d3_scale_linearTickFormat(scale.domain(), m, format);
-    };
-    scale.nice = function() {
-      return scale.domain(d3_scale_nice(scale.domain(), d3_scale_linearNice));
-    };
-    scale.exponent = function(x) {
-      if (!arguments.length) return exponent;
-      var domain = scale.domain();
-      powp = d3_scale_powPow(exponent = x);
-      powb = d3_scale_powPow(1 / exponent);
-      return scale.domain(domain);
-    };
-    scale.copy = function() {
-      return d3_scale_pow(linear.copy(), exponent);
-    };
-    return d3_scale_linearRebind(scale, linear);
-  }
-  function d3_scale_powPow(e) {
-    return function(x) {
-      return x < 0 ? -Math.pow(-x, e) : Math.pow(x, e);
-    };
-  }
-  d3.scale.sqrt = function() {
-    return d3.scale.pow().exponent(.5);
-  };
-  d3.scale.ordinal = function() {
-    return d3_scale_ordinal([], {
-      t: "range",
-      a: [ [] ]
-    });
-  };
-  function d3_scale_ordinal(domain, ranger) {
-    var index, range, rangeBand;
-    function scale(x) {
-      return range[((index.get(x) || index.set(x, domain.push(x))) - 1) % range.length];
-    }
-    function steps(start, step) {
-      return d3.range(domain.length).map(function(i) {
-        return start + step * i;
-      });
-    }
-    scale.domain = function(x) {
-      if (!arguments.length) return domain;
-      domain = [];
-      index = new d3_Map();
-      var i = -1, n = x.length, xi;
-      while (++i < n) if (!index.has(xi = x[i])) index.set(xi, domain.push(xi));
-      return scale[ranger.t].apply(scale, ranger.a);
-    };
-    scale.range = function(x) {
-      if (!arguments.length) return range;
-      range = x;
-      rangeBand = 0;
-      ranger = {
-        t: "range",
-        a: arguments
-      };
-      return scale;
-    };
-    scale.rangePoints = function(x, padding) {
-      if (arguments.length < 2) padding = 0;
-      var start = x[0], stop = x[1], step = (stop - start) / (Math.max(1, domain.length - 1) + padding);
-      range = steps(domain.length < 2 ? (start + stop) / 2 : start + step * padding / 2, step);
-      rangeBand = 0;
-      ranger = {
-        t: "rangePoints",
-        a: arguments
-      };
-      return scale;
-    };
-    scale.rangeBands = function(x, padding, outerPadding) {
-      if (arguments.length < 2) padding = 0;
-      if (arguments.length < 3) outerPadding = padding;
-      var reverse = x[1] < x[0], start = x[reverse - 0], stop = x[1 - reverse], step = (stop - start) / (domain.length - padding + 2 * outerPadding);
-      range = steps(start + step * outerPadding, step);
-      if (reverse) range.reverse();
-      rangeBand = step * (1 - padding);
-      ranger = {
-        t: "rangeBands",
-        a: arguments
-      };
-      return scale;
-    };
-    scale.rangeRoundBands = function(x, padding, outerPadding) {
-      if (arguments.length < 2) padding = 0;
-      if (arguments.length < 3) outerPadding = padding;
-      var reverse = x[1] < x[0], start = x[reverse - 0], stop = x[1 - reverse], step = Math.floor((stop - start) / (domain.length - padding + 2 * outerPadding)), error = stop - start - (domain.length - padding) * step;
-      range = steps(start + Math.round(error / 2), step);
-      if (reverse) range.reverse();
-      rangeBand = Math.round(step * (1 - padding));
-      ranger = {
-        t: "rangeRoundBands",
-        a: arguments
-      };
-      return scale;
-    };
-    scale.rangeBand = function() {
-      return rangeBand;
-    };
-    scale.rangeExtent = function() {
-      return d3_scaleExtent(ranger.a[0]);
-    };
-    scale.copy = function() {
-      return d3_scale_ordinal(domain, ranger);
-    };
-    return scale.domain(domain);
-  }
-  d3.scale.category10 = function() {
-    return d3.scale.ordinal().range(d3_category10);
-  };
-  d3.scale.category20 = function() {
-    return d3.scale.ordinal().range(d3_category20);
-  };
-  d3.scale.category20b = function() {
-    return d3.scale.ordinal().range(d3_category20b);
-  };
-  d3.scale.category20c = function() {
-    return d3.scale.ordinal().range(d3_category20c);
-  };
-  var d3_category10 = [ "#1f77b4", "#ff7f0e", "#2ca02c", "#d62728", "#9467bd", "#8c564b", "#e377c2", "#7f7f7f", "#bcbd22", "#17becf" ];
-  var d3_category20 = [ "#1f77b4", "#aec7e8", "#ff7f0e", "#ffbb78", "#2ca02c", "#98df8a", "#d62728", "#ff9896", "#9467bd", "#c5b0d5", "#8c564b", "#c49c94", "#e377c2", "#f7b6d2", "#7f7f7f", "#c7c7c7", "#bcbd22", "#dbdb8d", "#17becf", "#9edae5" ];
-  var d3_category20b = [ "#393b79", "#5254a3", "#6b6ecf", "#9c9ede", "#637939", "#8ca252", "#b5cf6b", "#cedb9c", "#8c6d31", "#bd9e39", "#e7ba52", "#e7cb94", "#843c39", "#ad494a", "#d6616b", "#e7969c", "#7b4173", "#a55194", "#ce6dbd", "#de9ed6" ];
-  var d3_category20c = [ "#3182bd", "#6baed6", "#9ecae1", "#c6dbef", "#e6550d", "#fd8d3c", "#fdae6b", "#fdd0a2", "#31a354", "#74c476", "#a1d99b", "#c7e9c0", "#756bb1", "#9e9ac8", "#bcbddc", "#dadaeb", "#636363", "#969696", "#bdbdbd", "#d9d9d9" ];
-  d3.scale.quantile = function() {
-    return d3_scale_quantile([], []);
-  };
-  function d3_scale_quantile(domain, range) {
-    var thresholds;
-    function rescale() {
-      var k = 0, q = range.length;
-      thresholds = [];
-      while (++k < q) thresholds[k - 1] = d3.quantile(domain, k / q);
-      return scale;
-    }
-    function scale(x) {
-      if (isNaN(x = +x)) return NaN;
-      return range[d3.bisect(thresholds, x)];
-    }
-    scale.domain = function(x) {
-      if (!arguments.length) return domain;
-      domain = x.filter(function(d) {
-        return !isNaN(d);
-      }).sort(d3.ascending);
-      return rescale();
-    };
-    scale.range = function(x) {
-      if (!arguments.length) return range;
-      range = x;
-      return rescale();
-    };
-    scale.quantiles = function() {
-      return thresholds;
-    };
-    scale.copy = function() {
-      return d3_scale_quantile(domain, range);
-    };
-    return rescale();
-  }
-  d3.scale.quantize = function() {
-    return d3_scale_quantize(0, 1, [ 0, 1 ]);
-  };
-  function d3_scale_quantize(x0, x1, range) {
-    var kx, i;
-    function scale(x) {
-      return range[Math.max(0, Math.min(i, Math.floor(kx * (x - x0))))];
-    }
-    function rescale() {
-      kx = range.length / (x1 - x0);
-      i = range.length - 1;
-      return scale;
-    }
-    scale.domain = function(x) {
-      if (!arguments.length) return [ x0, x1 ];
-      x0 = +x[0];
-      x1 = +x[x.length - 1];
-      return rescale();
-    };
-    scale.range = function(x) {
-      if (!arguments.length) return range;
-      range = x;
-      return rescale();
-    };
-    scale.copy = function() {
-      return d3_scale_quantize(x0, x1, range);
-    };
-    return rescale();
-  }
-  d3.scale.threshold = function() {
-    return d3_scale_threshold([ .5 ], [ 0, 1 ]);
-  };
-  function d3_scale_threshold(domain, range) {
-    function scale(x) {
-      return range[d3.bisect(domain, x)];
-    }
-    scale.domain = function(_) {
-      if (!arguments.length) return domain;
-      domain = _;
-      return scale;
-    };
-    scale.range = function(_) {
-      if (!arguments.length) return range;
-      range = _;
-      return scale;
-    };
-    scale.copy = function() {
-      return d3_scale_threshold(domain, range);
-    };
-    return scale;
-  }
-  d3.scale.identity = function() {
-    return d3_scale_identity([ 0, 1 ]);
-  };
-  function d3_scale_identity(domain) {
-    function identity(x) {
-      return +x;
-    }
-    identity.invert = identity;
-    identity.domain = identity.range = function(x) {
-      if (!arguments.length) return domain;
-      domain = x.map(identity);
-      return identity;
-    };
-    identity.ticks = function(m) {
-      return d3_scale_linearTicks(domain, m);
-    };
-    identity.tickFormat = function(m, format) {
-      return d3_scale_linearTickFormat(domain, m, format);
-    };
-    identity.copy = function() {
-      return d3_scale_identity(domain);
-    };
-    return identity;
-  }
-  d3.svg.arc = function() {
-    var innerRadius = d3_svg_arcInnerRadius, outerRadius = d3_svg_arcOuterRadius, startAngle = d3_svg_arcStartAngle, endAngle = d3_svg_arcEndAngle;
-    function arc() {
-      var r0 = innerRadius.apply(this, arguments), r1 = outerRadius.apply(this, arguments), a0 = startAngle.apply(this, arguments) + d3_svg_arcOffset, a1 = endAngle.apply(this, arguments) + d3_svg_arcOffset, da = (a1 < a0 && (da = a0, 
-      a0 = a1, a1 = da), a1 - a0), df = da < π ? "0" : "1", c0 = Math.cos(a0), s0 = Math.sin(a0), c1 = Math.cos(a1), s1 = Math.sin(a1);
-      return da >= d3_svg_arcMax ? r0 ? "M0," + r1 + "A" + r1 + "," + r1 + " 0 1,1 0," + -r1 + "A" + r1 + "," + r1 + " 0 1,1 0," + r1 + "M0," + r0 + "A" + r0 + "," + r0 + " 0 1,0 0," + -r0 + "A" + r0 + "," + r0 + " 0 1,0 0," + r0 + "Z" : "M0," + r1 + "A" + r1 + "," + r1 + " 0 1,1 0," + -r1 + "A" + r1 + "," + r1 + " 0 1,1 0," + r1 + "Z" : r0 ? "M" + r1 * c0 + "," + r1 * s0 + "A" + r1 + "," + r1 + " 0 " + df + ",1 " + r1 * c1 + "," + r1 * s1 + "L" + r0 * c1 + "," + r0 * s1 + "A" + r0 + "," + r0 + " 0 " + df + ",0 " + r0 * c0 + "," + r0 * s0 + "Z" : "M" + r1 * c0 + "," + r1 * s0 + "A" + r1 + "," + r1 + " 0 " + df + ",1 " + r1 * c1 + "," + r1 * s1 + "L0,0" + "Z";
-    }
-    arc.innerRadius = function(v) {
-      if (!arguments.length) return innerRadius;
-      innerRadius = d3_functor(v);
-      return arc;
-    };
-    arc.outerRadius = function(v) {
-      if (!arguments.length) return outerRadius;
-      outerRadius = d3_functor(v);
-      return arc;
-    };
-    arc.startAngle = function(v) {
-      if (!arguments.length) return startAngle;
-      startAngle = d3_functor(v);
-      return arc;
-    };
-    arc.endAngle = function(v) {
-      if (!arguments.length) return endAngle;
-      endAngle = d3_functor(v);
-      return arc;
-    };
-    arc.centroid = function() {
-      var r = (innerRadius.apply(this, arguments) + outerRadius.apply(this, arguments)) / 2, a = (startAngle.apply(this, arguments) + endAngle.apply(this, arguments)) / 2 + d3_svg_arcOffset;
-      return [ Math.cos(a) * r, Math.sin(a) * r ];
-    };
-    return arc;
-  };
-  var d3_svg_arcOffset = -π / 2, d3_svg_arcMax = 2 * π - 1e-6;
-  function d3_svg_arcInnerRadius(d) {
-    return d.innerRadius;
-  }
-  function d3_svg_arcOuterRadius(d) {
-    return d.outerRadius;
-  }
-  function d3_svg_arcStartAngle(d) {
-    return d.startAngle;
-  }
-  function d3_svg_arcEndAngle(d) {
-    return d.endAngle;
-  }
-  d3.svg.line.radial = function() {
-    var line = d3_svg_line(d3_svg_lineRadial);
-    line.radius = line.x, delete line.x;
-    line.angle = line.y, delete line.y;
-    return line;
-  };
-  function d3_svg_lineRadial(points) {
-    var point, i = -1, n = points.length, r, a;
-    while (++i < n) {
-      point = points[i];
-      r = point[0];
-      a = point[1] + d3_svg_arcOffset;
-      point[0] = r * Math.cos(a);
-      point[1] = r * Math.sin(a);
-    }
-    return points;
-  }
-  function d3_svg_area(projection) {
-    var x0 = d3_svg_lineX, x1 = d3_svg_lineX, y0 = 0, y1 = d3_svg_lineY, defined = d3_true, interpolate = d3_svg_lineLinear, interpolateKey = interpolate.key, interpolateReverse = interpolate, L = "L", tension = .7;
-    function area(data) {
-      var segments = [], points0 = [], points1 = [], i = -1, n = data.length, d, fx0 = d3_functor(x0), fy0 = d3_functor(y0), fx1 = x0 === x1 ? function() {
-        return x;
-      } : d3_functor(x1), fy1 = y0 === y1 ? function() {
-        return y;
-      } : d3_functor(y1), x, y;
-      function segment() {
-        segments.push("M", interpolate(projection(points1), tension), L, interpolateReverse(projection(points0.reverse()), tension), "Z");
-      }
-      while (++i < n) {
-        if (defined.call(this, d = data[i], i)) {
-          points0.push([ x = +fx0.call(this, d, i), y = +fy0.call(this, d, i) ]);
-          points1.push([ +fx1.call(this, d, i), +fy1.call(this, d, i) ]);
-        } else if (points0.length) {
-          segment();
-          points0 = [];
-          points1 = [];
-        }
-      }
-      if (points0.length) segment();
-      return segments.length ? segments.join("") : null;
-    }
-    area.x = function(_) {
-      if (!arguments.length) return x1;
-      x0 = x1 = _;
-      return area;
-    };
-    area.x0 = function(_) {
-      if (!arguments.length) return x0;
-      x0 = _;
-      return area;
-    };
-    area.x1 = function(_) {
-      if (!arguments.length) return x1;
-      x1 = _;
-      return area;
-    };
-    area.y = function(_) {
-      if (!arguments.length) return y1;
-      y0 = y1 = _;
-      return area;
-    };
-    area.y0 = function(_) {
-      if (!arguments.length) return y0;
-      y0 = _;
-      return area;
-    };
-    area.y1 = function(_) {
-      if (!arguments.length) return y1;
-      y1 = _;
-      return area;
-    };
-    area.defined = function(_) {
-      if (!arguments.length) return defined;
-      defined = _;
-      return area;
-    };
-    area.interpolate = function(_) {
-      if (!arguments.length) return interpolateKey;
-      if (typeof _ === "function") interpolateKey = interpolate = _; else interpolateKey = (interpolate = d3_svg_lineInterpolators.get(_) || d3_svg_lineLinear).key;
-      interpolateReverse = interpolate.reverse || interpolate;
-      L = interpolate.closed ? "M" : "L";
-      return area;
-    };
-    area.tension = function(_) {
-      if (!arguments.length) return tension;
-      tension = _;
-      return area;
-    };
-    return area;
-  }
-  d3_svg_lineStepBefore.reverse = d3_svg_lineStepAfter;
-  d3_svg_lineStepAfter.reverse = d3_svg_lineStepBefore;
-  d3.svg.area = function() {
-    return d3_svg_area(d3_identity);
-  };
-  d3.svg.area.radial = function() {
-    var area = d3_svg_area(d3_svg_lineRadial);
-    area.radius = area.x, delete area.x;
-    area.innerRadius = area.x0, delete area.x0;
-    area.outerRadius = area.x1, delete area.x1;
-    area.angle = area.y, delete area.y;
-    area.startAngle = area.y0, delete area.y0;
-    area.endAngle = area.y1, delete area.y1;
-    return area;
-  };
-  d3.svg.chord = function() {
-    var source = d3_source, target = d3_target, radius = d3_svg_chordRadius, startAngle = d3_svg_arcStartAngle, endAngle = d3_svg_arcEndAngle;
-    function chord(d, i) {
-      var s = subgroup(this, source, d, i), t = subgroup(this, target, d, i);
-      return "M" + s.p0 + arc(s.r, s.p1, s.a1 - s.a0) + (equals(s, t) ? curve(s.r, s.p1, s.r, s.p0) : curve(s.r, s.p1, t.r, t.p0) + arc(t.r, t.p1, t.a1 - t.a0) + curve(t.r, t.p1, s.r, s.p0)) + "Z";
-    }
-    function subgroup(self, f, d, i) {
-      var subgroup = f.call(self, d, i), r = radius.call(self, subgroup, i), a0 = startAngle.call(self, subgroup, i) + d3_svg_arcOffset, a1 = endAngle.call(self, subgroup, i) + d3_svg_arcOffset;
-      return {
-        r: r,
-        a0: a0,
-        a1: a1,
-        p0: [ r * Math.cos(a0), r * Math.sin(a0) ],
-        p1: [ r * Math.cos(a1), r * Math.sin(a1) ]
-      };
-    }
-    function equals(a, b) {
-      return a.a0 == b.a0 && a.a1 == b.a1;
-    }
-    function arc(r, p, a) {
-      return "A" + r + "," + r + " 0 " + +(a > π) + ",1 " + p;
-    }
-    function curve(r0, p0, r1, p1) {
-      return "Q 0,0 " + p1;
-    }
-    chord.radius = function(v) {
-      if (!arguments.length) return radius;
-      radius = d3_functor(v);
-      return chord;
-    };
-    chord.source = function(v) {
-      if (!arguments.length) return source;
-      source = d3_functor(v);
-      return chord;
-    };
-    chord.target = function(v) {
-      if (!arguments.length) return target;
-      target = d3_functor(v);
-      return chord;
-    };
-    chord.startAngle = function(v) {
-      if (!arguments.length) return startAngle;
-      startAngle = d3_functor(v);
-      return chord;
-    };
-    chord.endAngle = function(v) {
-      if (!arguments.length) return endAngle;
-      endAngle = d3_functor(v);
-      return chord;
-    };
-    return chord;
-  };
-  function d3_svg_chordRadius(d) {
-    return d.radius;
-  }
-  d3.svg.diagonal = function() {
-    var source = d3_source, target = d3_target, projection = d3_svg_diagonalProjection;
-    function diagonal(d, i) {
-      var p0 = source.call(this, d, i), p3 = target.call(this, d, i), m = (p0.y + p3.y) / 2, p = [ p0, {
-        x: p0.x,
-        y: m
-      }, {
-        x: p3.x,
-        y: m
-      }, p3 ];
-      p = p.map(projection);
-      return "M" + p[0] + "C" + p[1] + " " + p[2] + " " + p[3];
-    }
-    diagonal.source = function(x) {
-      if (!arguments.length) return source;
-      source = d3_functor(x);
-      return diagonal;
-    };
-    diagonal.target = function(x) {
-      if (!arguments.length) return target;
-      target = d3_functor(x);
-      return diagonal;
-    };
-    diagonal.projection = function(x) {
-      if (!arguments.length) return projection;
-      projection = x;
-      return diagonal;
-    };
-    return diagonal;
-  };
-  function d3_svg_diagonalProjection(d) {
-    return [ d.x, d.y ];
-  }
-  d3.svg.diagonal.radial = function() {
-    var diagonal = d3.svg.diagonal(), projection = d3_svg_diagonalProjection, projection_ = diagonal.projection;
-    diagonal.projection = function(x) {
-      return arguments.length ? projection_(d3_svg_diagonalRadialProjection(projection = x)) : projection;
-    };
-    return diagonal;
-  };
-  function d3_svg_diagonalRadialProjection(projection) {
-    return function() {
-      var d = projection.apply(this, arguments), r = d[0], a = d[1] + d3_svg_arcOffset;
-      return [ r * Math.cos(a), r * Math.sin(a) ];
-    };
-  }
-  d3.svg.symbol = function() {
-    var type = d3_svg_symbolType, size = d3_svg_symbolSize;
-    function symbol(d, i) {
-      return (d3_svg_symbols.get(type.call(this, d, i)) || d3_svg_symbolCircle)(size.call(this, d, i));
-    }
-    symbol.type = function(x) {
-      if (!arguments.length) return type;
-      type = d3_functor(x);
-      return symbol;
-    };
-    symbol.size = function(x) {
-      if (!arguments.length) return size;
-      size = d3_functor(x);
-      return symbol;
-    };
-    return symbol;
-  };
-  function d3_svg_symbolSize() {
-    return 64;
-  }
-  function d3_svg_symbolType() {
-    return "circle";
-  }
-  function d3_svg_symbolCircle(size) {
-    var r = Math.sqrt(size / π);
-    return "M0," + r + "A" + r + "," + r + " 0 1,1 0," + -r + "A" + r + "," + r + " 0 1,1 0," + r + "Z";
-  }
-  var d3_svg_symbols = d3.map({
-    circle: d3_svg_symbolCircle,
-    cross: function(size) {
-      var r = Math.sqrt(size / 5) / 2;
-      return "M" + -3 * r + "," + -r + "H" + -r + "V" + -3 * r + "H" + r + "V" + -r + "H" + 3 * r + "V" + r + "H" + r + "V" + 3 * r + "H" + -r + "V" + r + "H" + -3 * r + "Z";
-    },
-    diamond: function(size) {
-      var ry = Math.sqrt(size / (2 * d3_svg_symbolTan30)), rx = ry * d3_svg_symbolTan30;
-      return "M0," + -ry + "L" + rx + ",0" + " 0," + ry + " " + -rx + ",0" + "Z";
-    },
-    square: function(size) {
-      var r = Math.sqrt(size) / 2;
-      return "M" + -r + "," + -r + "L" + r + "," + -r + " " + r + "," + r + " " + -r + "," + r + "Z";
-    },
-    "triangle-down": function(size) {
-      var rx = Math.sqrt(size / d3_svg_symbolSqrt3), ry = rx * d3_svg_symbolSqrt3 / 2;
-      return "M0," + ry + "L" + rx + "," + -ry + " " + -rx + "," + -ry + "Z";
-    },
-    "triangle-up": function(size) {
-      var rx = Math.sqrt(size / d3_svg_symbolSqrt3), ry = rx * d3_svg_symbolSqrt3 / 2;
-      return "M0," + -ry + "L" + rx + "," + ry + " " + -rx + "," + ry + "Z";
-    }
-  });
-  d3.svg.symbolTypes = d3_svg_symbols.keys();
-  var d3_svg_symbolSqrt3 = Math.sqrt(3), d3_svg_symbolTan30 = Math.tan(30 * d3_radians);
-  function d3_transition(groups, id) {
-    d3_arraySubclass(groups, d3_transitionPrototype);
-    groups.id = id;
-    return groups;
-  }
-  var d3_transitionPrototype = [], d3_transitionId = 0, d3_transitionInheritId, d3_transitionInherit = {
-    ease: d3_ease_cubicInOut,
-    delay: 0,
-    duration: 250
-  };
-  d3_transitionPrototype.call = d3_selectionPrototype.call;
-  d3_transitionPrototype.empty = d3_selectionPrototype.empty;
-  d3_transitionPrototype.node = d3_selectionPrototype.node;
-  d3.transition = function(selection) {
-    return arguments.length ? d3_transitionInheritId ? selection.transition() : selection : d3_selectionRoot.transition();
-  };
-  d3.transition.prototype = d3_transitionPrototype;
-  d3_transitionPrototype.select = function(selector) {
-    var id = this.id, subgroups = [], subgroup, subnode, node;
-    if (typeof selector !== "function") selector = d3_selection_selector(selector);
-    for (var j = -1, m = this.length; ++j < m; ) {
-      subgroups.push(subgroup = []);
-      for (var group = this[j], i = -1, n = group.length; ++i < n; ) {
-        if ((node = group[i]) && (subnode = selector.call(node, node.__data__, i))) {
-          if ("__data__" in node) subnode.__data__ = node.__data__;
-          d3_transitionNode(subnode, i, id, node.__transition__[id]);
-          subgroup.push(subnode);
-        } else {
-          subgroup.push(null);
-        }
-      }
-    }
-    return d3_transition(subgroups, id);
-  };
-  d3_transitionPrototype.selectAll = function(selector) {
-    var id = this.id, subgroups = [], subgroup, subnodes, node, subnode, transition;
-    if (typeof selector !== "function") selector = d3_selection_selectorAll(selector);
-    for (var j = -1, m = this.length; ++j < m; ) {
-      for (var group = this[j], i = -1, n = group.length; ++i < n; ) {
-        if (node = group[i]) {
-          transition = node.__transition__[id];
-          subnodes = selector.call(node, node.__data__, i);
-          subgroups.push(subgroup = []);
-          for (var k = -1, o = subnodes.length; ++k < o; ) {
-            d3_transitionNode(subnode = subnodes[k], k, id, transition);
-            subgroup.push(subnode);
-          }
-        }
-      }
-    }
-    return d3_transition(subgroups, id);
-  };
-  d3_transitionPrototype.filter = function(filter) {
-    var subgroups = [], subgroup, group, node;
-    if (typeof filter !== "function") filter = d3_selection_filter(filter);
-    for (var j = 0, m = this.length; j < m; j++) {
-      subgroups.push(subgroup = []);
-      for (var group = this[j], i = 0, n = group.length; i < n; i++) {
-        if ((node = group[i]) && filter.call(node, node.__data__, i)) {
-          subgroup.push(node);
-        }
-      }
-    }
-    return d3_transition(subgroups, this.id, this.time).ease(this.ease());
-  };
-  d3_transitionPrototype.tween = function(name, tween) {
-    var id = this.id;
-    if (arguments.length < 2) return this.node().__transition__[id].tween.get(name);
-    return d3_selection_each(this, tween == null ? function(node) {
-      node.__transition__[id].tween.remove(name);
-    } : function(node) {
-      node.__transition__[id].tween.set(name, tween);
-    });
-  };
-  function d3_transition_tween(groups, name, value, tween) {
-    var id = groups.id;
-    return d3_selection_each(groups, typeof value === "function" ? function(node, i, j) {
-      node.__transition__[id].tween.set(name, tween(value.call(node, node.__data__, i, j)));
-    } : (value = tween(value), function(node) {
-      node.__transition__[id].tween.set(name, value);
-    }));
-  }
-  d3_transitionPrototype.attr = function(nameNS, value) {
-    if (arguments.length < 2) {
-      for (value in nameNS) this.attr(value, nameNS[value]);
-      return this;
-    }
-    var interpolate = d3_interpolateByName(nameNS), name = d3.ns.qualify(nameNS);
-    function attrNull() {
-      this.removeAttribute(name);
-    }
-    function attrNullNS() {
-      this.removeAttributeNS(name.space, name.local);
-    }
-    return d3_transition_tween(this, "attr." + nameNS, value, function(b) {
-      function attrString() {
-        var a = this.getAttribute(name), i;
-        return a !== b && (i = interpolate(a, b), function(t) {
-          this.setAttribute(name, i(t));
-        });
-      }
-      function attrStringNS() {
-        var a = this.getAttributeNS(name.space, name.local), i;
-        return a !== b && (i = interpolate(a, b), function(t) {
-          this.setAttributeNS(name.space, name.local, i(t));
-        });
-      }
-      return b == null ? name.local ? attrNullNS : attrNull : (b += "", name.local ? attrStringNS : attrString);
-    });
-  };
-  d3_transitionPrototype.attrTween = function(nameNS, tween) {
-    var name = d3.ns.qualify(nameNS);
-    function attrTween(d, i) {
-      var f = tween.call(this, d, i, this.getAttribute(name));
-      return f && function(t) {
-        this.setAttribute(name, f(t));
-      };
-    }
-    function attrTweenNS(d, i) {
-      var f = tween.call(this, d, i, this.getAttributeNS(name.space, name.local));
-      return f && function(t) {
-        this.setAttributeNS(name.space, name.local, f(t));
-      };
-    }
-    return this.tween("attr." + nameNS, name.local ? attrTweenNS : attrTween);
-  };
-  d3_transitionPrototype.style = function(name, value, priority) {
-    var n = arguments.length;
-    if (n < 3) {
-      if (typeof name !== "string") {
-        if (n < 2) value = "";
-        for (priority in name) this.style(priority, name[priority], value);
-        return this;
-      }
-      priority = "";
-    }
-    var interpolate = d3_interpolateByName(name);
-    function styleNull() {
-      this.style.removeProperty(name);
-    }
-    return d3_transition_tween(this, "style." + name, value, function(b) {
-      function styleString() {
-        var a = d3_window.getComputedStyle(this, null).getPropertyValue(name), i;
-        return a !== b && (i = interpolate(a, b), function(t) {
-          this.style.setProperty(name, i(t), priority);
-        });
-      }
-      return b == null ? styleNull : (b += "", styleString);
-    });
-  };
-  d3_transitionPrototype.styleTween = function(name, tween, priority) {
-    if (arguments.length < 3) priority = "";
-    return this.tween("style." + name, function(d, i) {
-      var f = tween.call(this, d, i, d3_window.getComputedStyle(this, null).getPropertyValue(name));
-      return f && function(t) {
-        this.style.setProperty(name, f(t), priority);
-      };
-    });
-  };
-  d3_transitionPrototype.text = function(value) {
-    return d3_transition_tween(this, "text", value, d3_transition_text);
-  };
-  function d3_transition_text(b) {
-    if (b == null) b = "";
-    return function() {
-      this.textContent = b;
-    };
-  }
-  d3_transitionPrototype.remove = function() {
-    return this.each("end.transition", function() {
-      var p;
-      if (!this.__transition__ && (p = this.parentNode)) p.removeChild(this);
-    });
-  };
-  d3_transitionPrototype.ease = function(value) {
-    var id = this.id;
-    if (arguments.length < 1) return this.node().__transition__[id].ease;
-    if (typeof value !== "function") value = d3.ease.apply(d3, arguments);
-    return d3_selection_each(this, function(node) {
-      node.__transition__[id].ease = value;
-    });
-  };
-  d3_transitionPrototype.delay = function(value) {
-    var id = this.id;
-    return d3_selection_each(this, typeof value === "function" ? function(node, i, j) {
-      node.__transition__[id].delay = value.call(node, node.__data__, i, j) | 0;
-    } : (value |= 0, function(node) {
-      node.__transition__[id].delay = value;
-    }));
-  };
-  d3_transitionPrototype.duration = function(value) {
-    var id = this.id;
-    return d3_selection_each(this, typeof value === "function" ? function(node, i, j) {
-      node.__transition__[id].duration = Math.max(1, value.call(node, node.__data__, i, j) | 0);
-    } : (value = Math.max(1, value | 0), function(node) {
-      node.__transition__[id].duration = value;
-    }));
-  };
-  d3_transitionPrototype.each = function(type, listener) {
-    var id = this.id;
-    if (arguments.length < 2) {
-      var inherit = d3_transitionInherit, inheritId = d3_transitionInheritId;
-      d3_transitionInheritId = id;
-      d3_selection_each(this, function(node, i, j) {
-        d3_transitionInherit = node.__transition__[id];
-        type.call(node, node.__data__, i, j);
-      });
-      d3_transitionInherit = inherit;
-      d3_transitionInheritId = inheritId;
-    } else {
-      d3_selection_each(this, function(node) {
-        node.__transition__[id].event.on(type, listener);
-      });
-    }
-    return this;
-  };
-  d3_transitionPrototype.transition = function() {
-    var id0 = this.id, id1 = ++d3_transitionId, subgroups = [], subgroup, group, node, transition;
-    for (var j = 0, m = this.length; j < m; j++) {
-      subgroups.push(subgroup = []);
-      for (var group = this[j], i = 0, n = group.length; i < n; i++) {
-        if (node = group[i]) {
-          transition = Object.create(node.__transition__[id0]);
-          transition.delay += transition.duration;
-          d3_transitionNode(node, i, id1, transition);
-        }
-        subgroup.push(node);
-      }
-    }
-    return d3_transition(subgroups, id1);
-  };
-  function d3_transitionNode(node, i, id, inherit) {
-    var lock = node.__transition__ || (node.__transition__ = {
-      active: 0,
-      count: 0
-    }), transition = lock[id];
-    if (!transition) {
-      var time = inherit.time;
-      transition = lock[id] = {
-        tween: new d3_Map(),
-        event: d3.dispatch("start", "end"),
-        time: time,
-        ease: inherit.ease,
-        delay: inherit.delay,
-        duration: inherit.duration
-      };
-      ++lock.count;
-      d3.timer(function(elapsed) {
-        var d = node.__data__, ease = transition.ease, event = transition.event, delay = transition.delay, duration = transition.duration, tweened = [];
-        return delay <= elapsed ? start(elapsed) : d3.timer(start, delay, time), 1;
-        function start(elapsed) {
-          if (lock.active > id) return stop();
-          lock.active = id;
-          event.start.call(node, d, i);
-          transition.tween.forEach(function(key, value) {
-            if (value = value.call(node, d, i)) {
-              tweened.push(value);
-            }
-          });
-          if (!tick(elapsed)) d3.timer(tick, 0, time);
-          return 1;
-        }
-        function tick(elapsed) {
-          if (lock.active !== id) return stop();
-          var t = (elapsed - delay) / duration, e = ease(t), n = tweened.length;
-          while (n > 0) {
-            tweened[--n].call(node, e);
-          }
-          if (t >= 1) {
-            stop();
-            event.end.call(node, d, i);
-            return 1;
-          }
-        }
-        function stop() {
-          if (--lock.count) delete lock[id]; else delete node.__transition__;
-          return 1;
-        }
-      }, 0, time);
-      return transition;
-    }
-  }
-  d3.svg.axis = function() {
-    var scale = d3.scale.linear(), orient = d3_svg_axisDefaultOrient, tickMajorSize = 6, tickMinorSize = 6, tickEndSize = 6, tickPadding = 3, tickArguments_ = [ 10 ], tickValues = null, tickFormat_, tickSubdivide = 0;
-    function axis(g) {
-      g.each(function() {
-        var g = d3.select(this);
-        var ticks = tickValues == null ? scale.ticks ? scale.ticks.apply(scale, tickArguments_) : scale.domain() : tickValues, tickFormat = tickFormat_ == null ? scale.tickFormat ? scale.tickFormat.apply(scale, tickArguments_) : String : tickFormat_;
-        var subticks = d3_svg_axisSubdivide(scale, ticks, tickSubdivide), subtick = g.selectAll(".tick.minor").data(subticks, String), subtickEnter = subtick.enter().insert("line", ".tick").attr("class", "tick minor").style("opacity", 1e-6), subtickExit = d3.transition(subtick.exit()).style("opacity", 1e-6).remove(), subtickUpdate = d3.transition(subtick).style("opacity", 1);
-        var tick = g.selectAll(".tick.major").data(ticks, String), tickEnter = tick.enter().insert("g", "path").attr("class", "tick major").style("opacity", 1e-6), tickExit = d3.transition(tick.exit()).style("opacity", 1e-6).remove(), tickUpdate = d3.transition(tick).style("opacity", 1), tickTransform;
-        var range = d3_scaleRange(scale), path = g.selectAll(".domain").data([ 0 ]), pathUpdate = (path.enter().append("path").attr("class", "domain"), 
-        d3.transition(path));
-        var scale1 = scale.copy(), scale0 = this.__chart__ || scale1;
-        this.__chart__ = scale1;
-        tickEnter.append("line");
-        tickEnter.append("text");
-        var lineEnter = tickEnter.select("line"), lineUpdate = tickUpdate.select("line"), text = tick.select("text").text(tickFormat), textEnter = tickEnter.select("text"), textUpdate = tickUpdate.select("text");
-        switch (orient) {
-         case "bottom":
-          {
-            tickTransform = d3_svg_axisX;
-            subtickEnter.attr("y2", tickMinorSize);
-            subtickUpdate.attr("x2", 0).attr("y2", tickMinorSize);
-            lineEnter.attr("y2", tickMajorSize);
-            textEnter.attr("y", Math.max(tickMajorSize, 0) + tickPadding);
-            lineUpdate.attr("x2", 0).attr("y2", tickMajorSize);
-            textUpdate.attr("x", 0).attr("y", Math.max(tickMajorSize, 0) + tickPadding);
-            text.attr("dy", ".71em").style("text-anchor", "middle");
-            pathUpdate.attr("d", "M" + range[0] + "," + tickEndSize + "V0H" + range[1] + "V" + tickEndSize);
-            break;
-          }
-
-         case "top":
-          {
-            tickTransform = d3_svg_axisX;
-            subtickEnter.attr("y2", -tickMinorSize);
-            subtickUpdate.attr("x2", 0).attr("y2", -tickMinorSize);
-            lineEnter.attr("y2", -tickMajorSize);
-            textEnter.attr("y", -(Math.max(tickMajorSize, 0) + tickPadding));
-            lineUpdate.attr("x2", 0).attr("y2", -tickMajorSize);
-            textUpdate.attr("x", 0).attr("y", -(Math.max(tickMajorSize, 0) + tickPadding));
-            text.attr("dy", "0em").style("text-anchor", "middle");
-            pathUpdate.attr("d", "M" + range[0] + "," + -tickEndSize + "V0H" + range[1] + "V" + -tickEndSize);
-            break;
-          }
-
-         case "left":
-          {
-            tickTransform = d3_svg_axisY;
-            subtickEnter.attr("x2", -tickMinorSize);
-            subtickUpdate.attr("x2", -tickMinorSize).attr("y2", 0);
-            lineEnter.attr("x2", -tickMajorSize);
-            textEnter.attr("x", -(Math.max(tickMajorSize, 0) + tickPadding));
-            lineUpdate.attr("x2", -tickMajorSize).attr("y2", 0);
-            textUpdate.attr("x", -(Math.max(tickMajorSize, 0) + tickPadding)).attr("y", 0);
-            text.attr("dy", ".32em").style("text-anchor", "end");
-            pathUpdate.attr("d", "M" + -tickEndSize + "," + range[0] + "H0V" + range[1] + "H" + -tickEndSize);
-            break;
-          }
-
-         case "right":
-          {
-            tickTransform = d3_svg_axisY;
-            subtickEnter.attr("x2", tickMinorSize);
-            subtickUpdate.attr("x2", tickMinorSize).attr("y2", 0);
-            lineEnter.attr("x2", tickMajorSize);
-            textEnter.attr("x", Math.max(tickMajorSize, 0) + tickPadding);
-            lineUpdate.attr("x2", tickMajorSize).attr("y2", 0);
-            textUpdate.attr("x", Math.max(tickMajorSize, 0) + tickPadding).attr("y", 0);
-            text.attr("dy", ".32em").style("text-anchor", "start");
-            pathUpdate.attr("d", "M" + tickEndSize + "," + range[0] + "H0V" + range[1] + "H" + tickEndSize);
-            break;
-          }
-        }
-        if (scale.ticks) {
-          tickEnter.call(tickTransform, scale0);
-          tickUpdate.call(tickTransform, scale1);
-          tickExit.call(tickTransform, scale1);
-          subtickEnter.call(tickTransform, scale0);
-          subtickUpdate.call(tickTransform, scale1);
-          subtickExit.call(tickTransform, scale1);
-        } else {
-          var dx = scale1.rangeBand() / 2, x = function(d) {
-            return scale1(d) + dx;
-          };
-          tickEnter.call(tickTransform, x);
-          tickUpdate.call(tickTransform, x);
-        }
-      });
-    }
-    axis.scale = function(x) {
-      if (!arguments.length) return scale;
-      scale = x;
-      return axis;
-    };
-    axis.orient = function(x) {
-      if (!arguments.length) return orient;
-      orient = x in d3_svg_axisOrients ? x + "" : d3_svg_axisDefaultOrient;
-      return axis;
-    };
-    axis.ticks = function() {
-      if (!arguments.length) return tickArguments_;
-      tickArguments_ = arguments;
-      return axis;
-    };
-    axis.tickValues = function(x) {
-      if (!arguments.length) return tickValues;
-      tickValues = x;
-      return axis;
-    };
-    axis.tickFormat = function(x) {
-      if (!arguments.length) return tickFormat_;
-      tickFormat_ = x;
-      return axis;
-    };
-    axis.tickSize = function(x, y) {
-      if (!arguments.length) return tickMajorSize;
-      var n = arguments.length - 1;
-      tickMajorSize = +x;
-      tickMinorSize = n > 1 ? +y : tickMajorSize;
-      tickEndSize = n > 0 ? +arguments[n] : tickMajorSize;
-      return axis;
-    };
-    axis.tickPadding = function(x) {
-      if (!arguments.length) return tickPadding;
-      tickPadding = +x;
-      return axis;
-    };
-    axis.tickSubdivide = function(x) {
-      if (!arguments.length) return tickSubdivide;
-      tickSubdivide = +x;
-      return axis;
-    };
-    return axis;
-  };
-  var d3_svg_axisDefaultOrient = "bottom", d3_svg_axisOrients = {
-    top: 1,
-    right: 1,
-    bottom: 1,
-    left: 1
-  };
-  function d3_svg_axisX(selection, x) {
-    selection.attr("transform", function(d) {
-      return "translate(" + x(d) + ",0)";
-    });
-  }
-  function d3_svg_axisY(selection, y) {
-    selection.attr("transform", function(d) {
-      return "translate(0," + y(d) + ")";
-    });
-  }
-  function d3_svg_axisSubdivide(scale, ticks, m) {
-    subticks = [];
-    if (m && ticks.length > 1) {
-      var extent = d3_scaleExtent(scale.domain()), subticks, i = -1, n = ticks.length, d = (ticks[1] - ticks[0]) / ++m, j, v;
-      while (++i < n) {
-        for (j = m; --j > 0; ) {
-          if ((v = +ticks[i] - j * d) >= extent[0]) {
-            subticks.push(v);
-          }
-        }
-      }
-      for (--i, j = 0; ++j < m && (v = +ticks[i] + j * d) < extent[1]; ) {
-        subticks.push(v);
-      }
-    }
-    return subticks;
-  }
-  d3.svg.brush = function() {
-    var event = d3_eventDispatch(brush, "brushstart", "brush", "brushend"), x = null, y = null, resizes = d3_svg_brushResizes[0], extent = [ [ 0, 0 ], [ 0, 0 ] ], extentDomain;
-    function brush(g) {
-      g.each(function() {
-        var g = d3.select(this), bg = g.selectAll(".background").data([ 0 ]), fg = g.selectAll(".extent").data([ 0 ]), tz = g.selectAll(".resize").data(resizes, String), e;
-        g.style("pointer-events", "all").on("mousedown.brush", brushstart).on("touchstart.brush", brushstart);
-        bg.enter().append("rect").attr("class", "background").style("visibility", "hidden").style("cursor", "crosshair");
-        fg.enter().append("rect").attr("class", "extent").style("cursor", "move");
-        tz.enter().append("g").attr("class", function(d) {
-          return "resize " + d;
-        }).style("cursor", function(d) {
-          return d3_svg_brushCursor[d];
-        }).append("rect").attr("x", function(d) {
-          return /[ew]$/.test(d) ? -3 : null;
-        }).attr("y", function(d) {
-          return /^[ns]/.test(d) ? -3 : null;
-        }).attr("width", 6).attr("height", 6).style("visibility", "hidden");
-        tz.style("display", brush.empty() ? "none" : null);
-        tz.exit().remove();
-        if (x) {
-          e = d3_scaleRange(x);
-          bg.attr("x", e[0]).attr("width", e[1] - e[0]);
-          redrawX(g);
-        }
-        if (y) {
-          e = d3_scaleRange(y);
-          bg.attr("y", e[0]).attr("height", e[1] - e[0]);
-          redrawY(g);
-        }
-        redraw(g);
-      });
-    }
-    function redraw(g) {
-      g.selectAll(".resize").attr("transform", function(d) {
-        return "translate(" + extent[+/e$/.test(d)][0] + "," + extent[+/^s/.test(d)][1] + ")";
-      });
-    }
-    function redrawX(g) {
-      g.select(".extent").attr("x", extent[0][0]);
-      g.selectAll(".extent,.n>rect,.s>rect").attr("width", extent[1][0] - extent[0][0]);
-    }
-    function redrawY(g) {
-      g.select(".extent").attr("y", extent[0][1]);
-      g.selectAll(".extent,.e>rect,.w>rect").attr("height", extent[1][1] - extent[0][1]);
-    }
-    function brushstart() {
-      var target = this, eventTarget = d3.select(d3.event.target), event_ = event.of(target, arguments), g = d3.select(target), resizing = eventTarget.datum(), resizingX = !/^(n|s)$/.test(resizing) && x, resizingY = !/^(e|w)$/.test(resizing) && y, dragging = eventTarget.classed("extent"), center, origin = mouse(), offset;
-      var w = d3.select(d3_window).on("mousemove.brush", brushmove).on("mouseup.brush", brushend).on("touchmove.brush", brushmove).on("touchend.brush", brushend).on("keydown.brush", keydown).on("keyup.brush", keyup);
-      if (dragging) {
-        origin[0] = extent[0][0] - origin[0];
-        origin[1] = extent[0][1] - origin[1];
-      } else if (resizing) {
-        var ex = +/w$/.test(resizing), ey = +/^n/.test(resizing);
-        offset = [ extent[1 - ex][0] - origin[0], extent[1 - ey][1] - origin[1] ];
-        origin[0] = extent[ex][0];
-        origin[1] = extent[ey][1];
-      } else if (d3.event.altKey) center = origin.slice();
-      g.style("pointer-events", "none").selectAll(".resize").style("display", null);
-      d3.select("body").style("cursor", eventTarget.style("cursor"));
-      event_({
-        type: "brushstart"
-      });
-      brushmove();
-      d3_eventCancel();
-      function mouse() {
-        var touches = d3.event.changedTouches;
-        return touches ? d3.touches(target, touches)[0] : d3.mouse(target);
-      }
-      function keydown() {
-        if (d3.event.keyCode == 32) {
-          if (!dragging) {
-            center = null;
-            origin[0] -= extent[1][0];
-            origin[1] -= extent[1][1];
-            dragging = 2;
-          }
-          d3_eventCancel();
-        }
-      }
-      function keyup() {
-        if (d3.event.keyCode == 32 && dragging == 2) {
-          origin[0] += extent[1][0];
-          origin[1] += extent[1][1];
-          dragging = 0;
-          d3_eventCancel();
-        }
-      }
-      function brushmove() {
-        var point = mouse(), moved = false;
-        if (offset) {
-          point[0] += offset[0];
-          point[1] += offset[1];
-        }
-        if (!dragging) {
-          if (d3.event.altKey) {
-            if (!center) center = [ (extent[0][0] + extent[1][0]) / 2, (extent[0][1] + extent[1][1]) / 2 ];
-            origin[0] = extent[+(point[0] < center[0])][0];
-            origin[1] = extent[+(point[1] < center[1])][1];
-          } else center = null;
-        }
-        if (resizingX && move1(point, x, 0)) {
-          redrawX(g);
-          moved = true;
-        }
-        if (resizingY && move1(point, y, 1)) {
-          redrawY(g);
-          moved = true;
-        }
-        if (moved) {
-          redraw(g);
-          event_({
-            type: "brush",
-            mode: dragging ? "move" : "resize"
-          });
-        }
-      }
-      function move1(point, scale, i) {
-        var range = d3_scaleRange(scale), r0 = range[0], r1 = range[1], position = origin[i], size = extent[1][i] - extent[0][i], min, max;
-        if (dragging) {
-          r0 -= position;
-          r1 -= size + position;
-        }
-        min = Math.max(r0, Math.min(r1, point[i]));
-        if (dragging) {
-          max = (min += position) + size;
-        } else {
-          if (center) position = Math.max(r0, Math.min(r1, 2 * center[i] - min));
-          if (position < min) {
-            max = min;
-            min = position;
-          } else {
-            max = position;
-          }
-        }
-        if (extent[0][i] !== min || extent[1][i] !== max) {
-          extentDomain = null;
-          extent[0][i] = min;
-          extent[1][i] = max;
-          return true;
-        }
-      }
-      function brushend() {
-        brushmove();
-        g.style("pointer-events", "all").selectAll(".resize").style("display", brush.empty() ? "none" : null);
-        d3.select("body").style("cursor", null);
-        w.on("mousemove.brush", null).on("mouseup.brush", null).on("touchmove.brush", null).on("touchend.brush", null).on("keydown.brush", null).on("keyup.brush", null);
-        event_({
-          type: "brushend"
-        });
-        d3_eventCancel();
-      }
-    }
-    brush.x = function(z) {
-      if (!arguments.length) return x;
-      x = z;
-      resizes = d3_svg_brushResizes[!x << 1 | !y];
-      return brush;
-    };
-    brush.y = function(z) {
-      if (!arguments.length) return y;
-      y = z;
-      resizes = d3_svg_brushResizes[!x << 1 | !y];
-      return brush;
-    };
-    brush.extent = function(z) {
-      var x0, x1, y0, y1, t;
-      if (!arguments.length) {
-        z = extentDomain || extent;
-        if (x) {
-          x0 = z[0][0], x1 = z[1][0];
-          if (!extentDomain) {
-            x0 = extent[0][0], x1 = extent[1][0];
-            if (x.invert) x0 = x.invert(x0), x1 = x.invert(x1);
-            if (x1 < x0) t = x0, x0 = x1, x1 = t;
-          }
-        }
-        if (y) {
-          y0 = z[0][1], y1 = z[1][1];
-          if (!extentDomain) {
-            y0 = extent[0][1], y1 = extent[1][1];
-            if (y.invert) y0 = y.invert(y0), y1 = y.invert(y1);
-            if (y1 < y0) t = y0, y0 = y1, y1 = t;
-          }
-        }
-        return x && y ? [ [ x0, y0 ], [ x1, y1 ] ] : x ? [ x0, x1 ] : y && [ y0, y1 ];
-      }
-      extentDomain = [ [ 0, 0 ], [ 0, 0 ] ];
-      if (x) {
-        x0 = z[0], x1 = z[1];
-        if (y) x0 = x0[0], x1 = x1[0];
-        extentDomain[0][0] = x0, extentDomain[1][0] = x1;
-        if (x.invert) x0 = x(x0), x1 = x(x1);
-        if (x1 < x0) t = x0, x0 = x1, x1 = t;
-        extent[0][0] = x0 | 0, extent[1][0] = x1 | 0;
-      }
-      if (y) {
-        y0 = z[0], y1 = z[1];
-        if (x) y0 = y0[1], y1 = y1[1];
-        extentDomain[0][1] = y0, extentDomain[1][1] = y1;
-        if (y.invert) y0 = y(y0), y1 = y(y1);
-        if (y1 < y0) t = y0, y0 = y1, y1 = t;
-        extent[0][1] = y0 | 0, extent[1][1] = y1 | 0;
-      }
-      return brush;
-    };
-    brush.clear = function() {
-      extentDomain = null;
-      extent[0][0] = extent[0][1] = extent[1][0] = extent[1][1] = 0;
-      return brush;
-    };
-    brush.empty = function() {
-      return x && extent[0][0] === extent[1][0] || y && extent[0][1] === extent[1][1];
-    };
-    return d3.rebind(brush, event, "on");
-  };
-  var d3_svg_brushCursor = {
-    n: "ns-resize",
-    e: "ew-resize",
-    s: "ns-resize",
-    w: "ew-resize",
-    nw: "nwse-resize",
-    ne: "nesw-resize",
-    se: "nwse-resize",
-    sw: "nesw-resize"
-  };
-  var d3_svg_brushResizes = [ [ "n", "e", "s", "w", "nw", "ne", "se", "sw" ], [ "e", "w" ], [ "n", "s" ], [] ];
-  d3.time = {};
-  var d3_time = Date, d3_time_daySymbols = [ "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday" ];
-  function d3_time_utc() {
-    this._ = new Date(arguments.length > 1 ? Date.UTC.apply(this, arguments) : arguments[0]);
-  }
-  d3_time_utc.prototype = {
-    getDate: function() {
-      return this._.getUTCDate();
-    },
-    getDay: function() {
-      return this._.getUTCDay();
-    },
-    getFullYear: function() {
-      return this._.getUTCFullYear();
-    },
-    getHours: function() {
-      return this._.getUTCHours();
-    },
-    getMilliseconds: function() {
-      return this._.getUTCMilliseconds();
-    },
-    getMinutes: function() {
-      return this._.getUTCMinutes();
-    },
-    getMonth: function() {
-      return this._.getUTCMonth();
-    },
-    getSeconds: function() {
-      return this._.getUTCSeconds();
-    },
-    getTime: function() {
-      return this._.getTime();
-    },
-    getTimezoneOffset: function() {
-      return 0;
-    },
-    valueOf: function() {
-      return this._.valueOf();
-    },
-    setDate: function() {
-      d3_time_prototype.setUTCDate.apply(this._, arguments);
-    },
-    setDay: function() {
-      d3_time_prototype.setUTCDay.apply(this._, arguments);
-    },
-    setFullYear: function() {
-      d3_time_prototype.setUTCFullYear.apply(this._, arguments);
-    },
-    setHours: function() {
-      d3_time_prototype.setUTCHours.apply(this._, arguments);
-    },
-    setMilliseconds: function() {
-      d3_time_prototype.setUTCMilliseconds.apply(this._, arguments);
-    },
-    setMinutes: function() {
-      d3_time_prototype.setUTCMinutes.apply(this._, arguments);
-    },
-    setMonth: function() {
-      d3_time_prototype.setUTCMonth.apply(this._, arguments);
-    },
-    setSeconds: function() {
-      d3_time_prototype.setUTCSeconds.apply(this._, arguments);
-    },
-    setTime: function() {
-      d3_time_prototype.setTime.apply(this._, arguments);
-    }
-  };
-  var d3_time_prototype = Date.prototype;
-  var d3_time_formatDateTime = "%a %b %e %X %Y", d3_time_formatDate = "%m/%d/%Y", d3_time_formatTime = "%H:%M:%S";
-  var d3_time_days = [ "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday" ], d3_time_dayAbbreviations = [ "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat" ], d3_time_months = [ "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December" ], d3_time_monthAbbreviations = [ "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" ];
-  function d3_time_interval(local, step, number) {
-    function round(date) {
-      var d0 = local(date), d1 = offset(d0, 1);
-      return date - d0 < d1 - date ? d0 : d1;
-    }
-    function ceil(date) {
-      step(date = local(new d3_time(date - 1)), 1);
-      return date;
-    }
-    function offset(date, k) {
-      step(date = new d3_time(+date), k);
-      return date;
-    }
-    function range(t0, t1, dt) {
-      var time = ceil(t0), times = [];
-      if (dt > 1) {
-        while (time < t1) {
-          if (!(number(time) % dt)) times.push(new Date(+time));
-          step(time, 1);
-        }
-      } else {
-        while (time < t1) times.push(new Date(+time)), step(time, 1);
-      }
-      return times;
-    }
-    function range_utc(t0, t1, dt) {
-      try {
-        d3_time = d3_time_utc;
-        var utc = new d3_time_utc();
-        utc._ = t0;
-        return range(utc, t1, dt);
-      } finally {
-        d3_time = Date;
-      }
-    }
-    local.floor = local;
-    local.round = round;
-    local.ceil = ceil;
-    local.offset = offset;
-    local.range = range;
-    var utc = local.utc = d3_time_interval_utc(local);
-    utc.floor = utc;
-    utc.round = d3_time_interval_utc(round);
-    utc.ceil = d3_time_interval_utc(ceil);
-    utc.offset = d3_time_interval_utc(offset);
-    utc.range = range_utc;
-    return local;
-  }
-  function d3_time_interval_utc(method) {
-    return function(date, k) {
-      try {
-        d3_time = d3_time_utc;
-        var utc = new d3_time_utc();
-        utc._ = date;
-        return method(utc, k)._;
-      } finally {
-        d3_time = Date;
-      }
-    };
-  }
-  d3.time.year = d3_time_interval(function(date) {
-    date = d3.time.day(date);
-    date.setMonth(0, 1);
-    return date;
-  }, function(date, offset) {
-    date.setFullYear(date.getFullYear() + offset);
-  }, function(date) {
-    return date.getFullYear();
-  });
-  d3.time.years = d3.time.year.range;
-  d3.time.years.utc = d3.time.year.utc.range;
-  d3.time.day = d3_time_interval(function(date) {
-    var day = new d3_time(1970, 0);
-    day.setFullYear(date.getFullYear(), date.getMonth(), date.getDate());
-    return day;
-  }, function(date, offset) {
-    date.setDate(date.getDate() + offset);
-  }, function(date) {
-    return date.getDate() - 1;
-  });
-  d3.time.days = d3.time.day.range;
-  d3.time.days.utc = d3.time.day.utc.range;
-  d3.time.dayOfYear = function(date) {
-    var year = d3.time.year(date);
-    return Math.floor((date - year - (date.getTimezoneOffset() - year.getTimezoneOffset()) * 6e4) / 864e5);
-  };
-  d3_time_daySymbols.forEach(function(day, i) {
-    day = day.toLowerCase();
-    i = 7 - i;
-    var interval = d3.time[day] = d3_time_interval(function(date) {
-      (date = d3.time.day(date)).setDate(date.getDate() - (date.getDay() + i) % 7);
-      return date;
-    }, function(date, offset) {
-      date.setDate(date.getDate() + Math.floor(offset) * 7);
-    }, function(date) {
-      var day = d3.time.year(date).getDay();
-      return Math.floor((d3.time.dayOfYear(date) + (day + i) % 7) / 7) - (day !== i);
-    });
-    d3.time[day + "s"] = interval.range;
-    d3.time[day + "s"].utc = interval.utc.range;
-    d3.time[day + "OfYear"] = function(date) {
-      var day = d3.time.year(date).getDay();
-      return Math.floor((d3.time.dayOfYear(date) + (day + i) % 7) / 7);
-    };
-  });
-  d3.time.week = d3.time.sunday;
-  d3.time.weeks = d3.time.sunday.range;
-  d3.time.weeks.utc = d3.time.sunday.utc.range;
-  d3.time.weekOfYear = d3.time.sundayOfYear;
-  d3.time.format = function(template) {
-    var n = template.length;
-    function format(date) {
-      var string = [], i = -1, j = 0, c, p, f;
-      while (++i < n) {
-        if (template.charCodeAt(i) === 37) {
-          string.push(template.substring(j, i));
-          if ((p = d3_time_formatPads[c = template.charAt(++i)]) != null) c = template.charAt(++i);
-          if (f = d3_time_formats[c]) c = f(date, p == null ? c === "e" ? " " : "0" : p);
-          string.push(c);
-          j = i + 1;
-        }
-      }
-      string.push(template.substring(j, i));
-      return string.join("");
-    }
-    format.parse = function(string) {
-      var d = {
-        y: 1900,
-        m: 0,
-        d: 1,
-        H: 0,
-        M: 0,
-        S: 0,
-        L: 0
-      }, i = d3_time_parse(d, template, string, 0);
-      if (i != string.length) return null;
-      if ("p" in d) d.H = d.H % 12 + d.p * 12;
-      var date = new d3_time();
-      date.setFullYear(d.y, d.m, d.d);
-      date.setHours(d.H, d.M, d.S, d.L);
-      return date;
-    };
-    format.toString = function() {
-      return template;
-    };
-    return format;
-  };
-  function d3_time_parse(date, template, string, j) {
-    var c, p, i = 0, n = template.length, m = string.length;
-    while (i < n) {
-      if (j >= m) return -1;
-      c = template.charCodeAt(i++);
-      if (c === 37) {
-        p = d3_time_parsers[template.charAt(i++)];
-        if (!p || (j = p(date, string, j)) < 0) return -1;
-      } else if (c != string.charCodeAt(j++)) {
-        return -1;
-      }
-    }
-    return j;
-  }
-  function d3_time_formatRe(names) {
-    return new RegExp("^(?:" + names.map(d3.requote).join("|") + ")", "i");
-  }
-  function d3_time_formatLookup(names) {
-    var map = new d3_Map(), i = -1, n = names.length;
-    while (++i < n) map.set(names[i].toLowerCase(), i);
-    return map;
-  }
-  function d3_time_formatPad(value, fill, width) {
-    value += "";
-    var length = value.length;
-    return length < width ? new Array(width - length + 1).join(fill) + value : value;
-  }
-  var d3_time_dayRe = d3_time_formatRe(d3_time_days), d3_time_dayAbbrevRe = d3_time_formatRe(d3_time_dayAbbreviations), d3_time_monthRe = d3_time_formatRe(d3_time_months), d3_time_monthLookup = d3_time_formatLookup(d3_time_months), d3_time_monthAbbrevRe = d3_time_formatRe(d3_time_monthAbbreviations), d3_time_monthAbbrevLookup = d3_time_formatLookup(d3_time_monthAbbreviations);
-  var d3_time_formatPads = {
-    "-": "",
-    _: " ",
-    "0": "0"
-  };
-  var d3_time_formats = {
-    a: function(d) {
-      return d3_time_dayAbbreviations[d.getDay()];
-    },
-    A: function(d) {
-      return d3_time_days[d.getDay()];
-    },
-    b: function(d) {
-      return d3_time_monthAbbreviations[d.getMonth()];
-    },
-    B: function(d) {
-      return d3_time_months[d.getMonth()];
-    },
-    c: d3.time.format(d3_time_formatDateTime),
-    d: function(d, p) {
-      return d3_time_formatPad(d.getDate(), p, 2);
-    },
-    e: function(d, p) {
-      return d3_time_formatPad(d.getDate(), p, 2);
-    },
-    H: function(d, p) {
-      return d3_time_formatPad(d.getHours(), p, 2);
-    },
-    I: function(d, p) {
-      return d3_time_formatPad(d.getHours() % 12 || 12, p, 2);
-    },
-    j: function(d, p) {
-      return d3_time_formatPad(1 + d3.time.dayOfYear(d), p, 3);
-    },
-    L: function(d, p) {
-      return d3_time_formatPad(d.getMilliseconds(), p, 3);
-    },
-    m: function(d, p) {
-      return d3_time_formatPad(d.getMonth() + 1, p, 2);
-    },
-    M: function(d, p) {
-      return d3_time_formatPad(d.getMinutes(), p, 2);
-    },
-    p: function(d) {
-      return d.getHours() >= 12 ? "PM" : "AM";
-    },
-    S: function(d, p) {
-      return d3_time_formatPad(d.getSeconds(), p, 2);
-    },
-    U: function(d, p) {
-      return d3_time_formatPad(d3.time.sundayOfYear(d), p, 2);
-    },
-    w: function(d) {
-      return d.getDay();
-    },
-    W: function(d, p) {
-      return d3_time_formatPad(d3.time.mondayOfYear(d), p, 2);
-    },
-    x: d3.time.format(d3_time_formatDate),
-    X: d3.time.format(d3_time_formatTime),
-    y: function(d, p) {
-      return d3_time_formatPad(d.getFullYear() % 100, p, 2);
-    },
-    Y: function(d, p) {
-      return d3_time_formatPad(d.getFullYear() % 1e4, p, 4);
-    },
-    Z: d3_time_zone,
-    "%": function() {
-      return "%";
-    }
-  };
-  var d3_time_parsers = {
-    a: d3_time_parseWeekdayAbbrev,
-    A: d3_time_parseWeekday,
-    b: d3_time_parseMonthAbbrev,
-    B: d3_time_parseMonth,
-    c: d3_time_parseLocaleFull,
-    d: d3_time_parseDay,
-    e: d3_time_parseDay,
-    H: d3_time_parseHour24,
-    I: d3_time_parseHour24,
-    L: d3_time_parseMilliseconds,
-    m: d3_time_parseMonthNumber,
-    M: d3_time_parseMinutes,
-    p: d3_time_parseAmPm,
-    S: d3_time_parseSeconds,
-    x: d3_time_parseLocaleDate,
-    X: d3_time_parseLocaleTime,
-    y: d3_time_parseYear,
-    Y: d3_time_parseFullYear
-  };
-  function d3_time_parseWeekdayAbbrev(date, string, i) {
-    d3_time_dayAbbrevRe.lastIndex = 0;
-    var n = d3_time_dayAbbrevRe.exec(string.substring(i));
-    return n ? i += n[0].length : -1;
-  }
-  function d3_time_parseWeekday(date, string, i) {
-    d3_time_dayRe.lastIndex = 0;
-    var n = d3_time_dayRe.exec(string.substring(i));
-    return n ? i += n[0].length : -1;
-  }
-  function d3_time_parseMonthAbbrev(date, string, i) {
-    d3_time_monthAbbrevRe.lastIndex = 0;
-    var n = d3_time_monthAbbrevRe.exec(string.substring(i));
-    return n ? (date.m = d3_time_monthAbbrevLookup.get(n[0].toLowerCase()), i += n[0].length) : -1;
-  }
-  function d3_time_parseMonth(date, string, i) {
-    d3_time_monthRe.lastIndex = 0;
-    var n = d3_time_monthRe.exec(string.substring(i));
-    return n ? (date.m = d3_time_monthLookup.get(n[0].toLowerCase()), i += n[0].length) : -1;
-  }
-  function d3_time_parseLocaleFull(date, string, i) {
-    return d3_time_parse(date, d3_time_formats.c.toString(), string, i);
-  }
-  function d3_time_parseLocaleDate(date, string, i) {
-    return d3_time_parse(date, d3_time_formats.x.toString(), string, i);
-  }
-  function d3_time_parseLocaleTime(date, string, i) {
-    return d3_time_parse(date, d3_time_formats.X.toString(), string, i);
-  }
-  function d3_time_parseFullYear(date, string, i) {
-    d3_time_numberRe.lastIndex = 0;
-    var n = d3_time_numberRe.exec(string.substring(i, i + 4));
-    return n ? (date.y = +n[0], i += n[0].length) : -1;
-  }
-  function d3_time_parseYear(date, string, i) {
-    d3_time_numberRe.lastIndex = 0;
-    var n = d3_time_numberRe.exec(string.substring(i, i + 2));
-    return n ? (date.y = d3_time_expandYear(+n[0]), i += n[0].length) : -1;
-  }
-  function d3_time_expandYear(d) {
-    return d + (d > 68 ? 1900 : 2e3);
-  }
-  function d3_time_parseMonthNumber(date, string, i) {
-    d3_time_numberRe.lastIndex = 0;
-    var n = d3_time_numberRe.exec(string.substring(i, i + 2));
-    return n ? (date.m = n[0] - 1, i += n[0].length) : -1;
-  }
-  function d3_time_parseDay(date, string, i) {
-    d3_time_numberRe.lastIndex = 0;
-    var n = d3_time_numberRe.exec(string.substring(i, i + 2));
-    return n ? (date.d = +n[0], i += n[0].length) : -1;
-  }
-  function d3_time_parseHour24(date, string, i) {
-    d3_time_numberRe.lastIndex = 0;
-    var n = d3_time_numberRe.exec(string.substring(i, i + 2));
-    return n ? (date.H = +n[0], i += n[0].length) : -1;
-  }
-  function d3_time_parseMinutes(date, string, i) {
-    d3_time_numberRe.lastIndex = 0;
-    var n = d3_time_numberRe.exec(string.substring(i, i + 2));
-    return n ? (date.M = +n[0], i += n[0].length) : -1;
-  }
-  function d3_time_parseSeconds(date, string, i) {
-    d3_time_numberRe.lastIndex = 0;
-    var n = d3_time_numberRe.exec(string.substring(i, i + 2));
-    return n ? (date.S = +n[0], i += n[0].length) : -1;
-  }
-  function d3_time_parseMilliseconds(date, string, i) {
-    d3_time_numberRe.lastIndex = 0;
-    var n = d3_time_numberRe.exec(string.substring(i, i + 3));
-    return n ? (date.L = +n[0], i += n[0].length) : -1;
-  }
-  var d3_time_numberRe = /^\s*\d+/;
-  function d3_time_parseAmPm(date, string, i) {
-    var n = d3_time_amPmLookup.get(string.substring(i, i += 2).toLowerCase());
-    return n == null ? -1 : (date.p = n, i);
-  }
-  var d3_time_amPmLookup = d3.map({
-    am: 0,
-    pm: 1
-  });
-  function d3_time_zone(d) {
-    var z = d.getTimezoneOffset(), zs = z > 0 ? "-" : "+", zh = ~~(Math.abs(z) / 60), zm = Math.abs(z) % 60;
-    return zs + d3_time_formatPad(zh, "0", 2) + d3_time_formatPad(zm, "0", 2);
-  }
-  d3.time.format.utc = function(template) {
-    var local = d3.time.format(template);
-    function format(date) {
-      try {
-        d3_time = d3_time_utc;
-        var utc = new d3_time();
-        utc._ = date;
-        return local(utc);
-      } finally {
-        d3_time = Date;
-      }
-    }
-    format.parse = function(string) {
-      try {
-        d3_time = d3_time_utc;
-        var date = local.parse(string);
-        return date && date._;
-      } finally {
-        d3_time = Date;
-      }
-    };
-    format.toString = local.toString;
-    return format;
-  };
-  var d3_time_formatIso = d3.time.format.utc("%Y-%m-%dT%H:%M:%S.%LZ");
-  d3.time.format.iso = Date.prototype.toISOString && +new Date("2000-01-01T00:00:00.000Z") ? d3_time_formatIsoNative : d3_time_formatIso;
-  function d3_time_formatIsoNative(date) {
-    return date.toISOString();
-  }
-  d3_time_formatIsoNative.parse = function(string) {
-    var date = new Date(string);
-    return isNaN(date) ? null : date;
-  };
-  d3_time_formatIsoNative.toString = d3_time_formatIso.toString;
-  d3.time.second = d3_time_interval(function(date) {
-    return new d3_time(Math.floor(date / 1e3) * 1e3);
-  }, function(date, offset) {
-    date.setTime(date.getTime() + Math.floor(offset) * 1e3);
-  }, function(date) {
-    return date.getSeconds();
-  });
-  d3.time.seconds = d3.time.second.range;
-  d3.time.seconds.utc = d3.time.second.utc.range;
-  d3.time.minute = d3_time_interval(function(date) {
-    return new d3_time(Math.floor(date / 6e4) * 6e4);
-  }, function(date, offset) {
-    date.setTime(date.getTime() + Math.floor(offset) * 6e4);
-  }, function(date) {
-    return date.getMinutes();
-  });
-  d3.time.minutes = d3.time.minute.range;
-  d3.time.minutes.utc = d3.time.minute.utc.range;
-  d3.time.hour = d3_time_interval(function(date) {
-    var timezone = date.getTimezoneOffset() / 60;
-    return new d3_time((Math.floor(date / 36e5 - timezone) + timezone) * 36e5);
-  }, function(date, offset) {
-    date.setTime(date.getTime() + Math.floor(offset) * 36e5);
-  }, function(date) {
-    return date.getHours();
-  });
-  d3.time.hours = d3.time.hour.range;
-  d3.time.hours.utc = d3.time.hour.utc.range;
-  d3.time.month = d3_time_interval(function(date) {
-    date = d3.time.day(date);
-    date.setDate(1);
-    return date;
-  }, function(date, offset) {
-    date.setMonth(date.getMonth() + offset);
-  }, function(date) {
-    return date.getMonth();
-  });
-  d3.time.months = d3.time.month.range;
-  d3.time.months.utc = d3.time.month.utc.range;
-  function d3_time_scale(linear, methods, format) {
-    function scale(x) {
-      return linear(x);
-    }
-    scale.invert = function(x) {
-      return d3_time_scaleDate(linear.invert(x));
-    };
-    scale.domain = function(x) {
-      if (!arguments.length) return linear.domain().map(d3_time_scaleDate);
-      linear.domain(x);
-      return scale;
-    };
-    scale.nice = function(m) {
-      return scale.domain(d3_scale_nice(scale.domain(), function() {
-        return m;
-      }));
-    };
-    scale.ticks = function(m, k) {
-      var extent = d3_time_scaleExtent(scale.domain());
-      if (typeof m !== "function") {
-        var span = extent[1] - extent[0], target = span / m, i = d3.bisect(d3_time_scaleSteps, target);
-        if (i == d3_time_scaleSteps.length) return methods.year(extent, m);
-        if (!i) return linear.ticks(m).map(d3_time_scaleDate);
-        if (Math.log(target / d3_time_scaleSteps[i - 1]) < Math.log(d3_time_scaleSteps[i] / target)) --i;
-        m = methods[i];
-        k = m[1];
-        m = m[0].range;
-      }
-      return m(extent[0], new Date(+extent[1] + 1), k);
-    };
-    scale.tickFormat = function() {
-      return format;
-    };
-    scale.copy = function() {
-      return d3_time_scale(linear.copy(), methods, format);
-    };
-    return d3.rebind(scale, linear, "range", "rangeRound", "interpolate", "clamp");
-  }
-  function d3_time_scaleExtent(domain) {
-    var start = domain[0], stop = domain[domain.length - 1];
-    return start < stop ? [ start, stop ] : [ stop, start ];
-  }
-  function d3_time_scaleDate(t) {
-    return new Date(t);
-  }
-  function d3_time_scaleFormat(formats) {
-    return function(date) {
-      var i = formats.length - 1, f = formats[i];
-      while (!f[1](date)) f = formats[--i];
-      return f[0](date);
-    };
-  }
-  function d3_time_scaleSetYear(y) {
-    var d = new Date(y, 0, 1);
-    d.setFullYear(y);
-    return d;
-  }
-  function d3_time_scaleGetYear(d) {
-    var y = d.getFullYear(), d0 = d3_time_scaleSetYear(y), d1 = d3_time_scaleSetYear(y + 1);
-    return y + (d - d0) / (d1 - d0);
-  }
-  var d3_time_scaleSteps = [ 1e3, 5e3, 15e3, 3e4, 6e4, 3e5, 9e5, 18e5, 36e5, 108e5, 216e5, 432e5, 864e5, 1728e5, 6048e5, 2592e6, 7776e6, 31536e6 ];
-  var d3_time_scaleLocalMethods = [ [ d3.time.second, 1 ], [ d3.time.second, 5 ], [ d3.time.second, 15 ], [ d3.time.second, 30 ], [ d3.time.minute, 1 ], [ d3.time.minute, 5 ], [ d3.time.minute, 15 ], [ d3.time.minute, 30 ], [ d3.time.hour, 1 ], [ d3.time.hour, 3 ], [ d3.time.hour, 6 ], [ d3.time.hour, 12 ], [ d3.time.day, 1 ], [ d3.time.day, 2 ], [ d3.time.week, 1 ], [ d3.time.month, 1 ], [ d3.time.month, 3 ], [ d3.time.year, 1 ] ];
-  var d3_time_scaleLocalFormats = [ [ d3.time.format("%Y"), d3_true ], [ d3.time.format("%B"), function(d) {
-    return d.getMonth();
-  } ], [ d3.time.format("%b %d"), function(d) {
-    return d.getDate() != 1;
-  } ], [ d3.time.format("%a %d"), function(d) {
-    return d.getDay() && d.getDate() != 1;
-  } ], [ d3.time.format("%I %p"), function(d) {
-    return d.getHours();
-  } ], [ d3.time.format("%I:%M"), function(d) {
-    return d.getMinutes();
-  } ], [ d3.time.format(":%S"), function(d) {
-    return d.getSeconds();
-  } ], [ d3.time.format(".%L"), function(d) {
-    return d.getMilliseconds();
-  } ] ];
-  var d3_time_scaleLinear = d3.scale.linear(), d3_time_scaleLocalFormat = d3_time_scaleFormat(d3_time_scaleLocalFormats);
-  d3_time_scaleLocalMethods.year = function(extent, m) {
-    return d3_time_scaleLinear.domain(extent.map(d3_time_scaleGetYear)).ticks(m).map(d3_time_scaleSetYear);
-  };
-  d3.time.scale = function() {
-    return d3_time_scale(d3.scale.linear(), d3_time_scaleLocalMethods, d3_time_scaleLocalFormat);
-  };
-  var d3_time_scaleUTCMethods = d3_time_scaleLocalMethods.map(function(m) {
-    return [ m[0].utc, m[1] ];
-  });
-  var d3_time_scaleUTCFormats = [ [ d3.time.format.utc("%Y"), d3_true ], [ d3.time.format.utc("%B"), function(d) {
-    return d.getUTCMonth();
-  } ], [ d3.time.format.utc("%b %d"), function(d) {
-    return d.getUTCDate() != 1;
-  } ], [ d3.time.format.utc("%a %d"), function(d) {
-    return d.getUTCDay() && d.getUTCDate() != 1;
-  } ], [ d3.time.format.utc("%I %p"), function(d) {
-    return d.getUTCHours();
-  } ], [ d3.time.format.utc("%I:%M"), function(d) {
-    return d.getUTCMinutes();
-  } ], [ d3.time.format.utc(":%S"), function(d) {
-    return d.getUTCSeconds();
-  } ], [ d3.time.format.utc(".%L"), function(d) {
-    return d.getUTCMilliseconds();
-  } ] ];
-  var d3_time_scaleUTCFormat = d3_time_scaleFormat(d3_time_scaleUTCFormats);
-  function d3_time_scaleUTCSetYear(y) {
-    var d = new Date(Date.UTC(y, 0, 1));
-    d.setUTCFullYear(y);
-    return d;
-  }
-  function d3_time_scaleUTCGetYear(d) {
-    var y = d.getUTCFullYear(), d0 = d3_time_scaleUTCSetYear(y), d1 = d3_time_scaleUTCSetYear(y + 1);
-    return y + (d - d0) / (d1 - d0);
-  }
-  d3_time_scaleUTCMethods.year = function(extent, m) {
-    return d3_time_scaleLinear.domain(extent.map(d3_time_scaleUTCGetYear)).ticks(m).map(d3_time_scaleUTCSetYear);
-  };
-  d3.time.scale.utc = function() {
-    return d3_time_scale(d3.scale.linear(), d3_time_scaleUTCMethods, d3_time_scaleUTCFormat);
-  };
-  d3.text = function() {
-    return d3.xhr.apply(d3, arguments).response(d3_text);
-  };
-  function d3_text(request) {
-    return request.responseText;
-  }
-  d3.json = function(url, callback) {
-    return d3.xhr(url, "application/json", callback).response(d3_json);
-  };
-  function d3_json(request) {
-    return JSON.parse(request.responseText);
-  }
-  d3.html = function(url, callback) {
-    return d3.xhr(url, "text/html", callback).response(d3_html);
-  };
-  function d3_html(request) {
-    var range = d3_document.createRange();
-    range.selectNode(d3_document.body);
-    return range.createContextualFragment(request.responseText);
-  }
-  d3.xml = function() {
-    return d3.xhr.apply(d3, arguments).response(d3_xml);
-  };
-  function d3_xml(request) {
-    return request.responseXML;
-  }
-  return d3;
-}();
\ No newline at end of file
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/lib/fisheye.js b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/lib/fisheye.js
deleted file mode 100755
index e1addd7b..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/lib/fisheye.js
+++ /dev/null
@@ -1,86 +0,0 @@
-(function() {
-  d3.fisheye = {
-    scale: function(scaleType) {
-      return d3_fisheye_scale(scaleType(), 3, 0);
-    },
-    circular: function() {
-      var radius = 200,
-          distortion = 2,
-          k0,
-          k1,
-          focus = [0, 0];
-
-      function fisheye(d) {
-        var dx = d.x - focus[0],
-            dy = d.y - focus[1],
-            dd = Math.sqrt(dx * dx + dy * dy);
-        if (!dd || dd >= radius) return {x: d.x, y: d.y, z: 1};
-        var k = k0 * (1 - Math.exp(-dd * k1)) / dd * .75 + .25;
-        return {x: focus[0] + dx * k, y: focus[1] + dy * k, z: Math.min(k, 10)};
-      }
-
-      function rescale() {
-        k0 = Math.exp(distortion);
-        k0 = k0 / (k0 - 1) * radius;
-        k1 = distortion / radius;
-        return fisheye;
-      }
-
-      fisheye.radius = function(_) {
-        if (!arguments.length) return radius;
-        radius = +_;
-        return rescale();
-      };
-
-      fisheye.distortion = function(_) {
-        if (!arguments.length) return distortion;
-        distortion = +_;
-        return rescale();
-      };
-
-      fisheye.focus = function(_) {
-        if (!arguments.length) return focus;
-        focus = _;
-        return fisheye;
-      };
-
-      return rescale();
-    }
-  };
-
-  function d3_fisheye_scale(scale, d, a) {
-
-    function fisheye(_) {
-      var x = scale(_),
-          left = x < a,
-          v,
-          range = d3.extent(scale.range()),
-          min = range[0],
-          max = range[1],
-          m = left ? a - min : max - a;
-      if (m == 0) m = max - min;
-      return (left ? -1 : 1) * m * (d + 1) / (d + (m / Math.abs(x - a))) + a;
-    }
-
-    fisheye.distortion = function(_) {
-      if (!arguments.length) return d;
-      d = +_;
-      return fisheye;
-    };
-
-    fisheye.focus = function(_) {
-      if (!arguments.length) return a;
-      a = +_;
-      return fisheye;
-    };
-
-    fisheye.copy = function() {
-      return d3_fisheye_scale(scale.copy(), d, a);
-    };
-
-    fisheye.nice = scale.nice;
-    fisheye.ticks = scale.ticks;
-    fisheye.tickFormat = scale.tickFormat;
-    return d3.rebind(fisheye, scale, "domain", "range");
-  }
-})();
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/lib/hive.js b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/lib/hive.js
deleted file mode 100755
index 06e53aed..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/lib/hive.js
+++ /dev/null
@@ -1,80 +0,0 @@
-d3.hive = {};
-
-d3.hive.link = function() {
-  var source = function(d) { return d.source; },
-      target = function(d) { return d.target; },
-      angle = function(d) { return d.angle; },
-      startRadius = function(d) { return d.radius; },
-      endRadius = startRadius,
-      arcOffset = -Math.PI / 2;
-
-  function link(d, i) {
-    var s = node(source, this, d, i),
-        t = node(target, this, d, i),
-        x;
-    if (t.a < s.a) x = t, t = s, s = x;
-    if (t.a - s.a > Math.PI) s.a += 2 * Math.PI;
-    var a1 = s.a + (t.a - s.a) / 3,
-        a2 = t.a - (t.a - s.a) / 3;
-    return s.r0 - s.r1 || t.r0 - t.r1
-        ? "M" + Math.cos(s.a) * s.r0 + "," + Math.sin(s.a) * s.r0
-        + "L" + Math.cos(s.a) * s.r1 + "," + Math.sin(s.a) * s.r1
-        + "C" + Math.cos(a1) * s.r1 + "," + Math.sin(a1) * s.r1
-        + " " + Math.cos(a2) * t.r1 + "," + Math.sin(a2) * t.r1
-        + " " + Math.cos(t.a) * t.r1 + "," + Math.sin(t.a) * t.r1
-        + "L" + Math.cos(t.a) * t.r0 + "," + Math.sin(t.a) * t.r0
-        + "C" + Math.cos(a2) * t.r0 + "," + Math.sin(a2) * t.r0
-        + " " + Math.cos(a1) * s.r0 + "," + Math.sin(a1) * s.r0
-        + " " + Math.cos(s.a) * s.r0 + "," + Math.sin(s.a) * s.r0
-        : "M" + Math.cos(s.a) * s.r0 + "," + Math.sin(s.a) * s.r0
-        + "C" + Math.cos(a1) * s.r1 + "," + Math.sin(a1) * s.r1
-        + " " + Math.cos(a2) * t.r1 + "," + Math.sin(a2) * t.r1
-        + " " + Math.cos(t.a) * t.r1 + "," + Math.sin(t.a) * t.r1;
-  }
-
-  function node(method, thiz, d, i) {
-    var node = method.call(thiz, d, i),
-        a = +(typeof angle === "function" ? angle.call(thiz, node, i) : angle) + arcOffset,
-        r0 = +(typeof startRadius === "function" ? startRadius.call(thiz, node, i) : startRadius),
-        r1 = (startRadius === endRadius ? r0 : +(typeof endRadius === "function" ? endRadius.call(thiz, node, i) : endRadius));
-    return {r0: r0, r1: r1, a: a};
-  }
-
-  link.source = function(_) {
-    if (!arguments.length) return source;
-    source = _;
-    return link;
-  };
-
-  link.target = function(_) {
-    if (!arguments.length) return target;
-    target = _;
-    return link;
-  };
-
-  link.angle = function(_) {
-    if (!arguments.length) return angle;
-    angle = _;
-    return link;
-  };
-
-  link.radius = function(_) {
-    if (!arguments.length) return startRadius;
-    startRadius = endRadius = _;
-    return link;
-  };
-
-  link.startRadius = function(_) {
-    if (!arguments.length) return startRadius;
-    startRadius = _;
-    return link;
-  };
-
-  link.endRadius = function(_) {
-    if (!arguments.length) return endRadius;
-    endRadius = _;
-    return link;
-  };
-
-  return link;
-};
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/lib/horizon.js b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/lib/horizon.js
deleted file mode 100755
index d84c6567..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/lib/horizon.js
+++ /dev/null
@@ -1,192 +0,0 @@
-(function() {
-  d3.horizon = function() {
-    var bands = 1, // between 1 and 5, typically
-        mode = "offset", // or mirror
-        interpolate = "linear", // or basis, monotone, step-before, etc.
-        x = d3_horizonX,
-        y = d3_horizonY,
-        w = 960,
-        h = 40,
-        duration = 0;
-
-    var color = d3.scale.linear()
-        .domain([-1, 0, 1])
-        .range(["#d62728", "#fff", "#1f77b4"]);
-
-    // For each small multiple…
-    function horizon(g) {
-      g.each(function(d, i) {
-        var g = d3.select(this),
-            n = 2 * bands + 1,
-            xMin = Infinity,
-            xMax = -Infinity,
-            yMax = -Infinity,
-            x0, // old x-scale
-            y0, // old y-scale
-            id; // unique id for paths
-
-        // Compute x- and y-values along with extents.
-        var data = d.map(function(d, i) {
-          var xv = x.call(this, d, i),
-              yv = y.call(this, d, i);
-          if (xv < xMin) xMin = xv;
-          if (xv > xMax) xMax = xv;
-          if (-yv > yMax) yMax = -yv;
-          if (yv > yMax) yMax = yv;
-          return [xv, yv];
-        });
-
-        // Compute the new x- and y-scales, and transform.
-        var x1 = d3.scale.linear().domain([xMin, xMax]).range([0, w]),
-            y1 = d3.scale.linear().domain([0, yMax]).range([0, h * bands]),
-            t1 = d3_horizonTransform(bands, h, mode);
-
-        // Retrieve the old scales, if this is an update.
-        if (this.__chart__) {
-          x0 = this.__chart__.x;
-          y0 = this.__chart__.y;
-          t0 = this.__chart__.t;
-          id = this.__chart__.id;
-        } else {
-          x0 = x1.copy();
-          y0 = y1.copy();
-          t0 = t1;
-          id = ++d3_horizonId;
-        }
-
-        // We'll use a defs to store the area path and the clip path.
-        var defs = g.selectAll("defs")
-            .data([null]);
-
-        // The clip path is a simple rect.
-        defs.enter().append("defs").append("clipPath")
-            .attr("id", "d3_horizon_clip" + id)
-          .append("rect")
-            .attr("width", w)
-            .attr("height", h);
-
-        defs.select("rect").transition()
-            .duration(duration)
-            .attr("width", w)
-            .attr("height", h);
-
-        // We'll use a container to clip all horizon layers at once.
-        g.selectAll("g")
-            .data([null])
-          .enter().append("g")
-            .attr("clip-path", "url(#d3_horizon_clip" + id + ")");
-
-        // Instantiate each copy of the path with different transforms.
-        var path = g.select("g").selectAll("path")
-            .data(d3.range(-1, -bands - 1, -1).concat(d3.range(1, bands + 1)), Number);
-
-        var d0 = d3_horizonArea
-            .interpolate(interpolate)
-            .x(function(d) { return x0(d[0]); })
-            .y0(h * bands)
-            .y1(function(d) { return h * bands - y0(d[1]); })
-            (data);
-
-        var d1 = d3_horizonArea
-            .x(function(d) { return x1(d[0]); })
-            .y1(function(d) { return h * bands - y1(d[1]); })
-            (data);
-
-        path.enter().append("path")
-            .style("fill", color)
-            .attr("transform", t0)
-            .attr("d", d0);
-
-        path.transition()
-            .duration(duration)
-            .style("fill", color)
-            .attr("transform", t1)
-            .attr("d", d1);
-
-        path.exit().transition()
-            .duration(duration)
-            .attr("transform", t1)
-            .attr("d", d1)
-            .remove();
-
-        // Stash the new scales.
-        this.__chart__ = {x: x1, y: y1, t: t1, id: id};
-      });
-      d3.timer.flush();
-    }
-
-    horizon.duration = function(x) {
-      if (!arguments.length) return duration;
-      duration = +x;
-      return horizon;
-    };
-
-    horizon.bands = function(x) {
-      if (!arguments.length) return bands;
-      bands = +x;
-      color.domain([-bands, 0, bands]);
-      return horizon;
-    };
-
-    horizon.mode = function(x) {
-      if (!arguments.length) return mode;
-      mode = x + "";
-      return horizon;
-    };
-
-    horizon.colors = function(x) {
-      if (!arguments.length) return color.range();
-      color.range(x);
-      return horizon;
-    };
-
-    horizon.interpolate = function(x) {
-      if (!arguments.length) return interpolate;
-      interpolate = x + "";
-      return horizon;
-    };
-
-    horizon.x = function(z) {
-      if (!arguments.length) return x;
-      x = z;
-      return horizon;
-    };
-
-    horizon.y = function(z) {
-      if (!arguments.length) return y;
-      y = z;
-      return horizon;
-    };
-
-    horizon.width = function(x) {
-      if (!arguments.length) return w;
-      w = +x;
-      return horizon;
-    };
-
-    horizon.height = function(x) {
-      if (!arguments.length) return h;
-      h = +x;
-      return horizon;
-    };
-
-    return horizon;
-  };
-
-  var d3_horizonArea = d3.svg.area(),
-      d3_horizonId = 0;
-
-  function d3_horizonX(d) {
-    return d[0];
-  }
-
-  function d3_horizonY(d) {
-    return d[1];
-  }
-
-  function d3_horizonTransform(bands, h, mode) {
-    return mode == "offset"
-        ? function(d) { return "translate(0," + (d + (d < 0) - bands) * h + ")"; }
-        : function(d) { return (d < 0 ? "scale(1,-1)" : "") + "translate(0," + (d - bands) * h + ")"; };
-  }
-})();
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/lib/sankey.js b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/lib/sankey.js
deleted file mode 100755
index c3bc59fb..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/lib/sankey.js
+++ /dev/null
@@ -1,292 +0,0 @@
-d3.sankey = function() {
-  var sankey = {},
-      nodeWidth = 24,
-      nodePadding = 8,
-      size = [1, 1],
-      nodes = [],
-      links = [];
-
-  sankey.nodeWidth = function(_) {
-    if (!arguments.length) return nodeWidth;
-    nodeWidth = +_;
-    return sankey;
-  };
-
-  sankey.nodePadding = function(_) {
-    if (!arguments.length) return nodePadding;
-    nodePadding = +_;
-    return sankey;
-  };
-
-  sankey.nodes = function(_) {
-    if (!arguments.length) return nodes;
-    nodes = _;
-    return sankey;
-  };
-
-  sankey.links = function(_) {
-    if (!arguments.length) return links;
-    links = _;
-    return sankey;
-  };
-
-  sankey.size = function(_) {
-    if (!arguments.length) return size;
-    size = _;
-    return sankey;
-  };
-
-  sankey.layout = function(iterations) {
-    computeNodeLinks();
-    computeNodeValues();
-    computeNodeBreadths();
-    computeNodeDepths(iterations);
-    computeLinkDepths();
-    return sankey;
-  };
-
-  sankey.relayout = function() {
-    computeLinkDepths();
-    return sankey;
-  };
-
-  sankey.link = function() {
-    var curvature = .5;
-
-    function link(d) {
-      var x0 = d.source.x + d.source.dx,
-          x1 = d.target.x,
-          xi = d3.interpolateNumber(x0, x1),
-          x2 = xi(curvature),
-          x3 = xi(1 - curvature),
-          y0 = d.source.y + d.sy + d.dy / 2,
-          y1 = d.target.y + d.ty + d.dy / 2;
-      return "M" + x0 + "," + y0
-           + "C" + x2 + "," + y0
-           + " " + x3 + "," + y1
-           + " " + x1 + "," + y1;
-    }
-
-    link.curvature = function(_) {
-      if (!arguments.length) return curvature;
-      curvature = +_;
-      return link;
-    };
-
-    return link;
-  };
-
-  // Populate the sourceLinks and targetLinks for each node.
-  // Also, if the source and target are not objects, assume they are indices.
-  function computeNodeLinks() {
-    nodes.forEach(function(node) {
-      node.sourceLinks = [];
-      node.targetLinks = [];
-    });
-    links.forEach(function(link) {
-      var source = link.source,
-          target = link.target;
-      if (typeof source === "number") source = link.source = nodes[link.source];
-      if (typeof target === "number") target = link.target = nodes[link.target];
-      source.sourceLinks.push(link);
-      target.targetLinks.push(link);
-    });
-  }
-
-  // Compute the value (size) of each node by summing the associated links.
-  function computeNodeValues() {
-    nodes.forEach(function(node) {
-      node.value = Math.max(
-        d3.sum(node.sourceLinks, value),
-        d3.sum(node.targetLinks, value)
-      );
-    });
-  }
-
-  // Iteratively assign the breadth (x-position) for each node.
-  // Nodes are assigned the maximum breadth of incoming neighbors plus one;
-  // nodes with no incoming links are assigned breadth zero, while
-  // nodes with no outgoing links are assigned the maximum breadth.
-  function computeNodeBreadths() {
-    var remainingNodes = nodes,
-        nextNodes,
-        x = 0;
-
-    while (remainingNodes.length) {
-      nextNodes = [];
-      remainingNodes.forEach(function(node) {
-        node.x = x;
-        node.dx = nodeWidth;
-        node.sourceLinks.forEach(function(link) {
-          nextNodes.push(link.target);
-        });
-      });
-      remainingNodes = nextNodes;
-      ++x;
-    }
-
-    //
-    moveSinksRight(x);
-    scaleNodeBreadths((size[0] - nodeWidth) / (x - 1));
-  }
-
-  function moveSourcesRight() {
-    nodes.forEach(function(node) {
-      if (!node.targetLinks.length) {
-        node.x = d3.min(node.sourceLinks, function(d) { return d.target.x; }) - 1;
-      }
-    });
-  }
-
-  function moveSinksRight(x) {
-    nodes.forEach(function(node) {
-      if (!node.sourceLinks.length) {
-        node.x = x - 1;
-      }
-    });
-  }
-
-  function scaleNodeBreadths(kx) {
-    nodes.forEach(function(node) {
-      node.x *= kx;
-    });
-  }
-
-  function computeNodeDepths(iterations) {
-    var nodesByBreadth = d3.nest()
-        .key(function(d) { return d.x; })
-        .sortKeys(d3.ascending)
-        .entries(nodes)
-        .map(function(d) { return d.values; });
-
-    //
-    initializeNodeDepth();
-    resolveCollisions();
-    for (var alpha = 1; iterations > 0; --iterations) {
-      relaxRightToLeft(alpha *= .99);
-      resolveCollisions();
-      relaxLeftToRight(alpha);
-      resolveCollisions();
-    }
-
-    function initializeNodeDepth() {
-      var ky = d3.min(nodesByBreadth, function(nodes) {
-        return (size[1] - (nodes.length - 1) * nodePadding) / d3.sum(nodes, value);
-      });
-
-      nodesByBreadth.forEach(function(nodes) {
-        nodes.forEach(function(node, i) {
-          node.y = i;
-          node.dy = node.value * ky;
-        });
-      });
-
-      links.forEach(function(link) {
-        link.dy = link.value * ky;
-      });
-    }
-
-    function relaxLeftToRight(alpha) {
-      nodesByBreadth.forEach(function(nodes, breadth) {
-        nodes.forEach(function(node) {
-          if (node.targetLinks.length) {
-            var y = d3.sum(node.targetLinks, weightedSource) / d3.sum(node.targetLinks, value);
-            node.y += (y - center(node)) * alpha;
-          }
-        });
-      });
-
-      function weightedSource(link) {
-        return center(link.source) * link.value;
-      }
-    }
-
-    function relaxRightToLeft(alpha) {
-      nodesByBreadth.slice().reverse().forEach(function(nodes) {
-        nodes.forEach(function(node) {
-          if (node.sourceLinks.length) {
-            var y = d3.sum(node.sourceLinks, weightedTarget) / d3.sum(node.sourceLinks, value);
-            node.y += (y - center(node)) * alpha;
-          }
-        });
-      });
-
-      function weightedTarget(link) {
-        return center(link.target) * link.value;
-      }
-    }
-
-    function resolveCollisions() {
-      nodesByBreadth.forEach(function(nodes) {
-        var node,
-            dy,
-            y0 = 0,
-            n = nodes.length,
-            i;
-
-        // Push any overlapping nodes down.
-        nodes.sort(ascendingDepth);
-        for (i = 0; i < n; ++i) {
-          node = nodes[i];
-          dy = y0 - node.y;
-          if (dy > 0) node.y += dy;
-          y0 = node.y + node.dy + nodePadding;
-        }
-
-        // If the bottommost node goes outside the bounds, push it back up.
-        dy = y0 - nodePadding - size[1];
-        if (dy > 0) {
-          y0 = node.y -= dy;
-
-          // Push any overlapping nodes back up.
-          for (i = n - 2; i >= 0; --i) {
-            node = nodes[i];
-            dy = node.y + node.dy + nodePadding - y0;
-            if (dy > 0) node.y -= dy;
-            y0 = node.y;
-          }
-        }
-      });
-    }
-
-    function ascendingDepth(a, b) {
-      return a.y - b.y;
-    }
-  }
-
-  function computeLinkDepths() {
-    nodes.forEach(function(node) {
-      node.sourceLinks.sort(ascendingTargetDepth);
-      node.targetLinks.sort(ascendingSourceDepth);
-    });
-    nodes.forEach(function(node) {
-      var sy = 0, ty = 0;
-      node.sourceLinks.forEach(function(link) {
-        link.sy = sy;
-        sy += link.dy;
-      });
-      node.targetLinks.forEach(function(link) {
-        link.ty = ty;
-        ty += link.dy;
-      });
-    });
-
-    function ascendingSourceDepth(a, b) {
-      return a.source.y - b.source.y;
-    }
-
-    function ascendingTargetDepth(a, b) {
-      return a.target.y - b.target.y;
-    }
-  }
-
-  function center(node) {
-    return node.y + node.dy / 2;
-  }
-
-  function value(link) {
-    return link.value;
-  }
-
-  return sankey;
-};
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/nv.d3.css b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/nv.d3.css
deleted file mode 100755
index cae83482..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/nv.d3.css
+++ /dev/null
@@ -1,769 +0,0 @@
-
-/********************
- * HTML CSS
- */
-
-
-.chartWrap {
-  margin: 0;
-  padding: 0;
-  overflow: hidden;
-}
-
-/********************
-  Box shadow and border radius styling
-*/
-.nvtooltip.with-3d-shadow, .with-3d-shadow .nvtooltip {
-  -moz-box-shadow: 0 5px 10px rgba(0,0,0,.2);
-  -webkit-box-shadow: 0 5px 10px rgba(0,0,0,.2);
-  box-shadow: 0 5px 10px rgba(0,0,0,.2);
-
-  -webkit-border-radius: 6px;
-  -moz-border-radius: 6px;
-  border-radius: 6px;
-}
-
-/********************
- * TOOLTIP CSS
- */
-
-.nvtooltip {
-  position: absolute;
-  background-color: rgba(255,255,255,1.0);
-  padding: 1px;
-  border: 1px solid rgba(0,0,0,.2);
-  z-index: 10000;
-
-  font-family: Arial;
-  font-size: 13px;
-  text-align: left;
-  pointer-events: none;
-
-  white-space: nowrap;
-
-  -webkit-touch-callout: none;
-  -webkit-user-select: none;
-  -khtml-user-select: none;
-  -moz-user-select: none;
-  -ms-user-select: none;
-  user-select: none;
-}
-
-/*Give tooltips that old fade in transition by
-    putting a "with-transitions" class on the container div.
-*/
-.nvtooltip.with-transitions, .with-transitions .nvtooltip {
-  transition: opacity 250ms linear;
-  -moz-transition: opacity 250ms linear;
-  -webkit-transition: opacity 250ms linear;
-
-  transition-delay: 250ms;
-  -moz-transition-delay: 250ms;
-  -webkit-transition-delay: 250ms;
-}
-
-.nvtooltip.x-nvtooltip,
-.nvtooltip.y-nvtooltip {
-  padding: 8px;
-}
-
-.nvtooltip h3 {
-  margin: 0;
-  padding: 4px 14px;
-  line-height: 18px;
-  font-weight: normal;
-  background-color: rgba(247,247,247,0.75);
-  text-align: center;
-
-  border-bottom: 1px solid #ebebeb;
-
-  -webkit-border-radius: 5px 5px 0 0;
-  -moz-border-radius: 5px 5px 0 0;
-  border-radius: 5px 5px 0 0;
-}
-
-.nvtooltip p {
-  margin: 0;
-  padding: 5px 14px;
-  text-align: center;
-}
-
-.nvtooltip span {
-  display: inline-block;
-  margin: 2px 0;
-}
-
-.nvtooltip table {
-  margin: 6px;
-  border-spacing:0;
-}
-
-
-.nvtooltip table td {
-  padding: 2px 9px 2px 0;
-  vertical-align: middle;
-}
-
-.nvtooltip table td.key {
-  font-weight:normal;
-}
-.nvtooltip table td.value {
-  text-align: right;
-  font-weight: bold;
-}
-
-.nvtooltip table tr.highlight td {
-  padding: 1px 9px 1px 0;
-  border-bottom-style: solid;
-  border-bottom-width: 1px;
-  border-top-style: solid;
-  border-top-width: 1px;
-}
-
-.nvtooltip table td.legend-color-guide div {
-  width: 8px;
-  height: 8px;
-  vertical-align: middle;
-}
-
-.nvtooltip .footer {
-  padding: 3px;
-  text-align: center;
-}
-
-
-.nvtooltip-pending-removal {
-  position: absolute;
-  pointer-events: none;
-}
-
-
-/********************
- * SVG CSS
- */
-
-
-svg {
-  -webkit-touch-callout: none;
-  -webkit-user-select: none;
-  -khtml-user-select: none;
-  -moz-user-select: none;
-  -ms-user-select: none;
-  user-select: none;
-  /* Trying to get SVG to act like a greedy block in all browsers */
-  display: block;
-  width:100%;
-  height:100%;
-}
-
-
-svg text {
-  font: normal 12px Arial;
-}
-
-svg .title {
- font: bold 14px Arial;
-}
-
-.nvd3 .nv-background {
-  fill: white;
-  fill-opacity: 0;
-  /*
-  pointer-events: none;
-  */
-}
-
-.nvd3.nv-noData {
-  font-size: 18px;
-  font-weight: bold;
-}
-
-
-/**********
-*  Brush
-*/
-
-.nv-brush .extent {
-  fill-opacity: .125;
-  shape-rendering: crispEdges;
-}
-
-
-
-/**********
-*  Legend
-*/
-
-.nvd3 .nv-legend .nv-series {
-  cursor: pointer;
-}
-
-.nvd3 .nv-legend .disabled circle {
-  fill-opacity: 0;
-}
-
-
-
-/**********
-*  Axes
-*/
-.nvd3 .nv-axis {
-  pointer-events:none;
-}
-
-.nvd3 .nv-axis path {
-  fill: none;
-  stroke: #000;
-  stroke-opacity: .75;
-  shape-rendering: crispEdges;
-}
-
-.nvd3 .nv-axis path.domain {
-  stroke-opacity: .75;
-}
-
-.nvd3 .nv-axis.nv-x path.domain {
-  stroke-opacity: 0;
-}
-
-.nvd3 .nv-axis line {
-  fill: none;
-  stroke: #e5e5e5;
-  shape-rendering: crispEdges;
-}
-
-.nvd3 .nv-axis .zero line,
-/*this selector may not be necessary*/ .nvd3 .nv-axis line.zero {
-  stroke-opacity: .75;
-}
-
-.nvd3 .nv-axis .nv-axisMaxMin text {
-  font-weight: bold;
-}
-
-.nvd3 .x  .nv-axis .nv-axisMaxMin text,
-.nvd3 .x2 .nv-axis .nv-axisMaxMin text,
-.nvd3 .x3 .nv-axis .nv-axisMaxMin text {
-  text-anchor: middle
-}
-
-
-
-/**********
-*  Brush
-*/
-
-.nv-brush .resize path {
-  fill: #eee;
-  stroke: #666;
-}
-
-
-
-/**********
-*  Bars
-*/
-
-.nvd3 .nv-bars .negative rect {
-    zfill: brown;
-}
-
-.nvd3 .nv-bars rect {
-  zfill: steelblue;
-  fill-opacity: .75;
-
-  transition: fill-opacity 250ms linear;
-  -moz-transition: fill-opacity 250ms linear;
-  -webkit-transition: fill-opacity 250ms linear;
-}
-
-.nvd3 .nv-bars rect.hover {
-  fill-opacity: 1;
-}
-
-.nvd3 .nv-bars .hover rect {
-  fill: lightblue;
-}
-
-.nvd3 .nv-bars text {
-  fill: rgba(0,0,0,0);
-}
-
-.nvd3 .nv-bars .hover text {
-  fill: rgba(0,0,0,1);
-}
-
-
-/**********
-*  Bars
-*/
-
-.nvd3 .nv-multibar .nv-groups rect,
-.nvd3 .nv-multibarHorizontal .nv-groups rect,
-.nvd3 .nv-discretebar .nv-groups rect {
-  stroke-opacity: 0;
-
-  transition: fill-opacity 250ms linear;
-  -moz-transition: fill-opacity 250ms linear;
-  -webkit-transition: fill-opacity 250ms linear;
-}
-
-.nvd3 .nv-multibar .nv-groups rect:hover,
-.nvd3 .nv-multibarHorizontal .nv-groups rect:hover,
-.nvd3 .nv-discretebar .nv-groups rect:hover {
-  fill-opacity: 1;
-}
-
-.nvd3 .nv-discretebar .nv-groups text,
-.nvd3 .nv-multibarHorizontal .nv-groups text {
-  font-weight: bold;
-  fill: rgba(0,0,0,1);
-  stroke: rgba(0,0,0,0);
-}
-
-/***********
-*  Pie Chart
-*/
-
-.nvd3.nv-pie path {
-  stroke-opacity: 0;
-  transition: fill-opacity 250ms linear, stroke-width 250ms linear, stroke-opacity 250ms linear;
-  -moz-transition: fill-opacity 250ms linear, stroke-width 250ms linear, stroke-opacity 250ms linear;
-  -webkit-transition: fill-opacity 250ms linear, stroke-width 250ms linear, stroke-opacity 250ms linear;
-
-}
-
-.nvd3.nv-pie .nv-slice text {
-  stroke: #000;
-  stroke-width: 0;
-}
-
-.nvd3.nv-pie path {
-  stroke: #fff;
-  stroke-width: 1px;
-  stroke-opacity: 1;
-}
-
-.nvd3.nv-pie .hover path {
-  fill-opacity: .7;
-}
-.nvd3.nv-pie .nv-label {
-  pointer-events: none;
-}
-.nvd3.nv-pie .nv-label rect {
-  fill-opacity: 0;
-  stroke-opacity: 0;
-}
-
-/**********
-* Lines
-*/
-
-.nvd3 .nv-groups path.nv-line {
-  fill: none;
-  stroke-width: 1.5px;
-  /*
-  stroke-linecap: round;
-  shape-rendering: geometricPrecision;
-
-  transition: stroke-width 250ms linear;
-  -moz-transition: stroke-width 250ms linear;
-  -webkit-transition: stroke-width 250ms linear;
-
-  transition-delay: 250ms
-  -moz-transition-delay: 250ms;
-  -webkit-transition-delay: 250ms;
-  */
-}
-
-.nvd3 .nv-groups path.nv-line.nv-thin-line {
-  stroke-width: 1px;
-}
-
-
-.nvd3 .nv-groups path.nv-area {
-  stroke: none;
-  /*
-  stroke-linecap: round;
-  shape-rendering: geometricPrecision;
-
-  stroke-width: 2.5px;
-  transition: stroke-width 250ms linear;
-  -moz-transition: stroke-width 250ms linear;
-  -webkit-transition: stroke-width 250ms linear;
-
-  transition-delay: 250ms
-  -moz-transition-delay: 250ms;
-  -webkit-transition-delay: 250ms;
-  */
-}
-
-.nvd3 .nv-line.hover path {
-  stroke-width: 6px;
-}
-
-/*
-.nvd3.scatter .groups .point {
-  fill-opacity: 0.1;
-  stroke-opacity: 0.1;
-}
-  */
-
-.nvd3.nv-line .nvd3.nv-scatter .nv-groups .nv-point {
-  fill-opacity: 0;
-  stroke-opacity: 0;
-}
-
-.nvd3.nv-scatter.nv-single-point .nv-groups .nv-point {
-  fill-opacity: .5 !important;
-  stroke-opacity: .5 !important;
-}
-
-
-.with-transitions .nvd3 .nv-groups .nv-point {
-  transition: stroke-width 250ms linear, stroke-opacity 250ms linear;
-  -moz-transition: stroke-width 250ms linear, stroke-opacity 250ms linear;
-  -webkit-transition: stroke-width 250ms linear, stroke-opacity 250ms linear;
-
-}
-
-.nvd3.nv-scatter .nv-groups .nv-point.hover,
-.nvd3 .nv-groups .nv-point.hover {
-  stroke-width: 7px;
-  fill-opacity: .95 !important;
-  stroke-opacity: .95 !important;
-}
-
-
-.nvd3 .nv-point-paths path {
-  stroke: #aaa;
-  stroke-opacity: 0;
-  fill: #eee;
-  fill-opacity: 0;
-}
-
-
-
-.nvd3 .nv-indexLine {
-  cursor: ew-resize;
-}
-
-
-/**********
-* Distribution
-*/
-
-.nvd3 .nv-distribution {
-  pointer-events: none;
-}
-
-
-
-/**********
-*  Scatter
-*/
-
-/* **Attempting to remove this for useVoronoi(false), need to see if it's required anywhere
-.nvd3 .nv-groups .nv-point {
-  pointer-events: none;
-}
-*/
-
-.nvd3 .nv-groups .nv-point.hover {
-  stroke-width: 20px;
-  stroke-opacity: .5;
-}
-
-.nvd3 .nv-scatter .nv-point.hover {
-  fill-opacity: 1;
-}
-
-/*
-.nv-group.hover .nv-point {
-  fill-opacity: 1;
-}
-*/
-
-
-/**********
-*  Stacked Area
-*/
-
-.nvd3.nv-stackedarea path.nv-area {
-  fill-opacity: .7;
-  /*
-  stroke-opacity: .65;
-  fill-opacity: 1;
-  */
-  stroke-opacity: 0;
-
-  transition: fill-opacity 250ms linear, stroke-opacity 250ms linear;
-  -moz-transition: fill-opacity 250ms linear, stroke-opacity 250ms linear;
-  -webkit-transition: fill-opacity 250ms linear, stroke-opacity 250ms linear;
-
-  /*
-  transition-delay: 500ms;
-  -moz-transition-delay: 500ms;
-  -webkit-transition-delay: 500ms;
-  */
-
-}
-
-.nvd3.nv-stackedarea path.nv-area.hover {
-  fill-opacity: .9;
-  /*
-  stroke-opacity: .85;
-  */
-}
-/*
-.d3stackedarea .groups path {
-  stroke-opacity: 0;
-}
-  */
-
-
-
-.nvd3.nv-stackedarea .nv-groups .nv-point {
-  stroke-opacity: 0;
-  fill-opacity: 0;
-}
-
-/*
-.nvd3.nv-stackedarea .nv-groups .nv-point.hover {
-  stroke-width: 20px;
-  stroke-opacity: .75;
-  fill-opacity: 1;
-}*/
-
-
-
-/**********
-*  Line Plus Bar
-*/
-
-.nvd3.nv-linePlusBar .nv-bar rect {
-  fill-opacity: .75;
-}
-
-.nvd3.nv-linePlusBar .nv-bar rect:hover {
-  fill-opacity: 1;
-}
-
-
-/**********
-*  Bullet
-*/
-
-.nvd3.nv-bullet { font: 10px sans-serif; }
-.nvd3.nv-bullet .nv-measure { fill-opacity: .8; }
-.nvd3.nv-bullet .nv-measure:hover { fill-opacity: 1; }
-.nvd3.nv-bullet .nv-marker { stroke: #000; stroke-width: 2px; }
-.nvd3.nv-bullet .nv-markerTriangle { stroke: #000; fill: #fff; stroke-width: 1.5px; }
-.nvd3.nv-bullet .nv-tick line { stroke: #666; stroke-width: .5px; }
-.nvd3.nv-bullet .nv-range.nv-s0 { fill: #eee; }
-.nvd3.nv-bullet .nv-range.nv-s1 { fill: #ddd; }
-.nvd3.nv-bullet .nv-range.nv-s2 { fill: #ccc; }
-.nvd3.nv-bullet .nv-title { font-size: 14px; font-weight: bold; }
-.nvd3.nv-bullet .nv-subtitle { fill: #999; }
-
-
-.nvd3.nv-bullet .nv-range {
-  fill: #bababa;
-  fill-opacity: .4;
-}
-.nvd3.nv-bullet .nv-range:hover {
-  fill-opacity: .7;
-}
-
-
-
-/**********
-* Sparkline
-*/
-
-.nvd3.nv-sparkline path {
-  fill: none;
-}
-
-.nvd3.nv-sparklineplus g.nv-hoverValue {
-  pointer-events: none;
-}
-
-.nvd3.nv-sparklineplus .nv-hoverValue line {
-  stroke: #333;
-  stroke-width: 1.5px;
- }
-
-.nvd3.nv-sparklineplus,
-.nvd3.nv-sparklineplus g {
-  pointer-events: all;
-}
-
-.nvd3 .nv-hoverArea {
-  fill-opacity: 0;
-  stroke-opacity: 0;
-}
-
-.nvd3.nv-sparklineplus .nv-xValue,
-.nvd3.nv-sparklineplus .nv-yValue {
-  /*
-  stroke: #666;
-  */
-  stroke-width: 0;
-  font-size: .9em;
-  font-weight: normal;
-}
-
-.nvd3.nv-sparklineplus .nv-yValue {
-  stroke: #f66;
-}
-
-.nvd3.nv-sparklineplus .nv-maxValue {
-  stroke: #2ca02c;
-  fill: #2ca02c;
-}
-
-.nvd3.nv-sparklineplus .nv-minValue {
-  stroke: #d62728;
-  fill: #d62728;
-}
-
-.nvd3.nv-sparklineplus .nv-currentValue {
-  /*
-  stroke: #444;
-  fill: #000;
-  */
-  font-weight: bold;
-  font-size: 1.1em;
-}
-
-/**********
-* historical stock
-*/
-
-.nvd3.nv-ohlcBar .nv-ticks .nv-tick {
-  stroke-width: 2px;
-}
-
-.nvd3.nv-ohlcBar .nv-ticks .nv-tick.hover {
-  stroke-width: 4px;
-}
-
-.nvd3.nv-ohlcBar .nv-ticks .nv-tick.positive {
- stroke: #2ca02c;
-}
-
-.nvd3.nv-ohlcBar .nv-ticks .nv-tick.negative {
- stroke: #d62728;
-}
-
-.nvd3.nv-historicalStockChart .nv-axis .nv-axislabel {
-  font-weight: bold;
-}
-
-.nvd3.nv-historicalStockChart .nv-dragTarget {
-  fill-opacity: 0;
-  stroke: none;
-  cursor: move;
-}
-
-.nvd3 .nv-brush .extent {
-  /*
-  cursor: ew-resize !important;
-  */
-  fill-opacity: 0 !important;
-}
-
-.nvd3 .nv-brushBackground rect {
-  stroke: #000;
-  stroke-width: .4;
-  fill: #fff;
-  fill-opacity: .7;
-}
-
-
-
-/**********
-* Indented Tree
-*/
-
-
-/**
- * TODO: the following 3 selectors are based on classes used in the example.  I should either make them standard and leave them here, or move to a CSS file not included in the library
- */
-.nvd3.nv-indentedtree .name {
-  margin-left: 5px;
-}
-
-.nvd3.nv-indentedtree .clickable {
-  color: #08C;
-  cursor: pointer;
-}
-
-.nvd3.nv-indentedtree span.clickable:hover {
-  color: #005580;
-  text-decoration: underline;
-}
-
-
-.nvd3.nv-indentedtree .nv-childrenCount {
-  display: inline-block;
-  margin-left: 5px;
-}
-
-.nvd3.nv-indentedtree .nv-treeicon {
-  cursor: pointer;
-  /*
-  cursor: n-resize;
-  */
-}
-
-.nvd3.nv-indentedtree .nv-treeicon.nv-folded {
-  cursor: pointer;
-  /*
-  cursor: s-resize;
-  */
-}
-
-/**********
-* Parallel Coordinates
-*/
-
-.nvd3 .background path {
-  fill: none;
-  stroke: #ccc;
-  stroke-opacity: .4;
-  shape-rendering: crispEdges;
-}
-
-.nvd3 .foreground path {
-  fill: none;
-  stroke: steelblue;
-  stroke-opacity: .7;
-}
-
-.nvd3 .brush .extent {
-  fill-opacity: .3;
-  stroke: #fff;
-  shape-rendering: crispEdges;
-}
-
-.nvd3 .axis line, .axis path {
-  fill: none;
-  stroke: #000;
-  shape-rendering: crispEdges;
-}
-
-.nvd3 .axis text {
-  text-shadow: 0 1px 0 #fff;
-}
-
-/****
-Interactive Layer
-*/
-.nvd3 .nv-interactiveGuideLine {
-  pointer-events:none;
-}
-.nvd3 line.nv-guideline {
-  stroke: #ccc;
-}
\ No newline at end of file
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/nv.d3.js b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/nv.d3.js
deleted file mode 100755
index a1a9dfc5..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/nv.d3.js
+++ /dev/null
@@ -1,14346 +0,0 @@
-(function(){
-
-var nv = window.nv || {};
-
-
-nv.version = '1.1.15b';
-nv.dev = true //set false when in production
-
-window.nv = nv;
-
-nv.tooltip = nv.tooltip || {}; // For the tooltip system
-nv.utils = nv.utils || {}; // Utility subsystem
-nv.models = nv.models || {}; //stores all the possible models/components
-nv.charts = {}; //stores all the ready to use charts
-nv.graphs = []; //stores all the graphs currently on the page
-nv.logs = {}; //stores some statistics and potential error messages
-
-nv.dispatch = d3.dispatch('render_start', 'render_end');
-
-// *************************************************************************
-//  Development render timers - disabled if dev = false
-
-if (nv.dev) {
-  nv.dispatch.on('render_start', function(e) {
-    nv.logs.startTime = +new Date();
-  });
-
-  nv.dispatch.on('render_end', function(e) {
-    nv.logs.endTime = +new Date();
-    nv.logs.totalTime = nv.logs.endTime - nv.logs.startTime;
-    nv.log('total', nv.logs.totalTime); // used for development, to keep track of graph generation times
-  });
-}
-
-// ********************************************
-//  Public Core NV functions
-
-// Logs all arguments, and returns the last so you can test things in place
-// Note: in IE8 console.log is an object not a function, and if modernizr is used
-// then calling Function.prototype.bind with with anything other than a function
-// causes a TypeError to be thrown.
-nv.log = function() {
-  if (nv.dev && console.log && console.log.apply)
-    console.log.apply(console, arguments)
-  else if (nv.dev && typeof console.log == "function" && Function.prototype.bind) {
-    var log = Function.prototype.bind.call(console.log, console);
-    log.apply(console, arguments);
-  }
-  return arguments[arguments.length - 1];
-};
-
-
-nv.render = function render(step) {
-  step = step || 1; // number of graphs to generate in each timeout loop
-
-  nv.render.active = true;
-  nv.dispatch.render_start();
-
-  setTimeout(function() {
-    var chart, graph;
-
-    for (var i = 0; i < step && (graph = nv.render.queue[i]); i++) {
-      chart = graph.generate();
-      if (typeof graph.callback == typeof(Function)) graph.callback(chart);
-      nv.graphs.push(chart);
-    }
-
-    nv.render.queue.splice(0, i);
-
-    if (nv.render.queue.length) setTimeout(arguments.callee, 0);
-    else {
-      nv.dispatch.render_end();
-      nv.render.active = false;
-    }
-  }, 0);
-};
-
-nv.render.active = false;
-nv.render.queue = [];
-
-nv.addGraph = function(obj) {
-  if (typeof arguments[0] === typeof(Function))
-    obj = {generate: arguments[0], callback: arguments[1]};
-
-  nv.render.queue.push(obj);
-
-  if (!nv.render.active) nv.render();
-};
-
-nv.identity = function(d) { return d; };
-
-nv.strip = function(s) { return s.replace(/(\s|&)/g,''); };
-
-function daysInMonth(month,year) {
-  return (new Date(year, month+1, 0)).getDate();
-}
-
-function d3_time_range(floor, step, number) {
-  return function(t0, t1, dt) {
-    var time = floor(t0), times = [];
-    if (time < t0) step(time);
-    if (dt > 1) {
-      while (time < t1) {
-        var date = new Date(+time);
-        if ((number(date) % dt === 0)) times.push(date);
-        step(time);
-      }
-    } else {
-      while (time < t1) { times.push(new Date(+time)); step(time); }
-    }
-    return times;
-  };
-}
-
-d3.time.monthEnd = function(date) {
-  return new Date(date.getFullYear(), date.getMonth(), 0);
-};
-
-d3.time.monthEnds = d3_time_range(d3.time.monthEnd, function(date) {
-    date.setUTCDate(date.getUTCDate() + 1);
-    date.setDate(daysInMonth(date.getMonth() + 1, date.getFullYear()));
-  }, function(date) {
-    return date.getMonth();
-  }
-);
-
-/* Utility class to handle creation of an interactive layer.
-This places a rectangle on top of the chart. When you mouse move over it, it sends a dispatch
-containing the X-coordinate. It can also render a vertical line where the mouse is located.
-
-dispatch.elementMousemove is the important event to latch onto.  It is fired whenever the mouse moves over
-the rectangle. The dispatch is given one object which contains the mouseX/Y location.
-It also has 'pointXValue', which is the conversion of mouseX to the x-axis scale.
-*/
-nv.interactiveGuideline = function() {
-	"use strict";
-	var tooltip = nv.models.tooltip();
-	//Public settings
-	var width = null
-	, height = null
-    //Please pass in the bounding chart's top and left margins
-    //This is important for calculating the correct mouseX/Y positions.
-	, margin = {left: 0, top: 0}
-	, xScale = d3.scale.linear()
-	, yScale = d3.scale.linear()
-	, dispatch = d3.dispatch('elementMousemove', 'elementMouseout','elementDblclick')
-	, showGuideLine = true
-	, svgContainer = null  
-    //Must pass in the bounding chart's <svg> container.
-    //The mousemove event is attached to this container.
-	;
-
-	//Private variables
-	var isMSIE = navigator.userAgent.indexOf("MSIE") !== -1  //Check user-agent for Microsoft Internet Explorer.
-	;
-
-
-	function layer(selection) {
-		selection.each(function(data) {
-				var container = d3.select(this);
-				
-				var availableWidth = (width || 960), availableHeight = (height || 400);
-
-				var wrap = container.selectAll("g.nv-wrap.nv-interactiveLineLayer").data([data]);
-				var wrapEnter = wrap.enter()
-								.append("g").attr("class", " nv-wrap nv-interactiveLineLayer");
-								
-				
-				wrapEnter.append("g").attr("class","nv-interactiveGuideLine");
-				
-				if (!svgContainer) {
-					return;
-				}
-
-                function mouseHandler() {
-                      var d3mouse = d3.mouse(this);
-                      var mouseX = d3mouse[0];
-                      var mouseY = d3mouse[1];
-                      var subtractMargin = true;
-                      var mouseOutAnyReason = false;
-                      if (isMSIE) {
-                         /*
-                            D3.js (or maybe SVG.getScreenCTM) has a nasty bug in Internet Explorer 10.
-                            d3.mouse() returns incorrect X,Y mouse coordinates when mouse moving
-                            over a rect in IE 10.
-                            However, d3.event.offsetX/Y also returns the mouse coordinates
-                            relative to the triggering <rect>. So we use offsetX/Y on IE.  
-                         */
-                         mouseX = d3.event.offsetX;
-                         mouseY = d3.event.offsetY;
-
-                         /*
-                            On IE, if you attach a mouse event listener to the <svg> container,
-                            it will actually trigger it for all the child elements (like <path>, <circle>, etc).
-                            When this happens on IE, the offsetX/Y is set to where ever the child element
-                            is located.
-                            As a result, we do NOT need to subtract margins to figure out the mouse X/Y
-                            position under this scenario. Removing the line below *will* cause 
-                            the interactive layer to not work right on IE.
-                         */
-                         if(d3.event.target.tagName !== "svg")
-                            subtractMargin = false;
-
-                         if (d3.event.target.className.baseVal.match("nv-legend"))
-                         	mouseOutAnyReason = true;
-                          
-                      }
-
-                      if(subtractMargin) {
-                         mouseX -= margin.left;
-                         mouseY -= margin.top;
-                      }
-
-                      /* If mouseX/Y is outside of the chart's bounds,
-                      trigger a mouseOut event.
-                      */
-                      if (mouseX < 0 || mouseY < 0 
-                        || mouseX > availableWidth || mouseY > availableHeight
-                        || (d3.event.relatedTarget && d3.event.relatedTarget.ownerSVGElement === undefined)
-                        || mouseOutAnyReason
-                        ) 
-                      {
-                      		if (isMSIE) {
-                      			if (d3.event.relatedTarget 
-                      				&& d3.event.relatedTarget.ownerSVGElement === undefined
-                      				&& d3.event.relatedTarget.className.match(tooltip.nvPointerEventsClass)) {
-                      				return;
-                      			}
-                      		}
-                            dispatch.elementMouseout({
-                               mouseX: mouseX,
-                               mouseY: mouseY
-                            });
-                            layer.renderGuideLine(null); //hide the guideline
-                            return;
-                      }
-                      
-                      var pointXValue = xScale.invert(mouseX);
-                      dispatch.elementMousemove({
-                            mouseX: mouseX,
-                            mouseY: mouseY,
-                            pointXValue: pointXValue
-                      });
-
-                      //If user double clicks the layer, fire a elementDblclick dispatch.
-                      if (d3.event.type === "dblclick") {
-                        dispatch.elementDblclick({
-                            mouseX: mouseX,
-                            mouseY: mouseY,
-                            pointXValue: pointXValue
-                        });
-                      }
-                }
-
-				svgContainer
-				      .on("mousemove",mouseHandler, true)
-				      .on("mouseout" ,mouseHandler,true)
-                      .on("dblclick" ,mouseHandler)
-				      ;
-
-				 //Draws a vertical guideline at the given X postion.
-				layer.renderGuideLine = function(x) {
-				 	if (!showGuideLine) return;
-				 	var line = wrap.select(".nv-interactiveGuideLine")
-				 	      .selectAll("line")
-				 	      .data((x != null) ? [nv.utils.NaNtoZero(x)] : [], String);
-
-				 	line.enter()
-				 		.append("line")
-				 		.attr("class", "nv-guideline")
-				 		.attr("x1", function(d) { return d;})
-				 		.attr("x2", function(d) { return d;})
-				 		.attr("y1", availableHeight)
-				 		.attr("y2",0)
-				 		;
-				 	line.exit().remove();
-
-				}
-		});
-	}
-
-	layer.dispatch = dispatch;
-	layer.tooltip = tooltip;
-
-	layer.margin = function(_) {
-	    if (!arguments.length) return margin;
-	    margin.top    = typeof _.top    != 'undefined' ? _.top    : margin.top;
-	    margin.left   = typeof _.left   != 'undefined' ? _.left   : margin.left;
-	    return layer;
-    };
-
-	layer.width = function(_) {
-		if (!arguments.length) return width;
-		width = _;
-		return layer;
-	};
-
-	layer.height = function(_) {
-		if (!arguments.length) return height;
-		height = _;
-		return layer;
-	};
-
-	layer.xScale = function(_) {
-		if (!arguments.length) return xScale;
-		xScale = _;
-		return layer;
-	};
-
-	layer.showGuideLine = function(_) {
-		if (!arguments.length) return showGuideLine;
-		showGuideLine = _;
-		return layer;
-	};
-
-	layer.svgContainer = function(_) {
-		if (!arguments.length) return svgContainer;
-		svgContainer = _;
-		return layer;
-	};
-
-
-	return layer;
-};
-
-/* Utility class that uses d3.bisect to find the index in a given array, where a search value can be inserted.
-This is different from normal bisectLeft; this function finds the nearest index to insert the search value.
-
-For instance, lets say your array is [1,2,3,5,10,30], and you search for 28. 
-Normal d3.bisectLeft will return 4, because 28 is inserted after the number 10.  But interactiveBisect will return 5
-because 28 is closer to 30 than 10.
-
-Unit tests can be found in: interactiveBisectTest.html
-
-Has the following known issues:
-   * Will not work if the data points move backwards (ie, 10,9,8,7, etc) or if the data points are in random order.
-   * Won't work if there are duplicate x coordinate values.
-*/
-nv.interactiveBisect = function (values, searchVal, xAccessor) {
-	  "use strict";
-      if (! values instanceof Array) return null;
-      if (typeof xAccessor !== 'function') xAccessor = function(d,i) { return d.x;}
-
-      var bisect = d3.bisector(xAccessor).left;
-      var index = d3.max([0, bisect(values,searchVal) - 1]);
-      var currentValue = xAccessor(values[index], index);
-      if (typeof currentValue === 'undefined') currentValue = index;
-
-      if (currentValue === searchVal) return index;  //found exact match
-
-      var nextIndex = d3.min([index+1, values.length - 1]);
-      var nextValue = xAccessor(values[nextIndex], nextIndex);
-      if (typeof nextValue === 'undefined') nextValue = nextIndex;
-
-      if (Math.abs(nextValue - searchVal) >= Math.abs(currentValue - searchVal))
-          return index;
-      else
-          return nextIndex
-};
-
-/*
-Returns the index in the array "values" that is closest to searchVal.
-Only returns an index if searchVal is within some "threshold".
-Otherwise, returns null.
-*/
-nv.nearestValueIndex = function (values, searchVal, threshold) {
-      "use strict";
-      var yDistMax = Infinity, indexToHighlight = null;
-      values.forEach(function(d,i) {
-         var delta = Math.abs(searchVal - d);
-         if ( delta <= yDistMax && delta < threshold) {
-            yDistMax = delta;
-            indexToHighlight = i;
-         }
-      });
-      return indexToHighlight;
-};/* Tooltip rendering model for nvd3 charts.
-window.nv.models.tooltip is the updated,new way to render tooltips.
-
-window.nv.tooltip.show is the old tooltip code.
-window.nv.tooltip.* also has various helper methods.
-*/
-(function() {
-  "use strict";
-  window.nv.tooltip = {};
-
-  /* Model which can be instantiated to handle tooltip rendering.
-    Example usage: 
-    var tip = nv.models.tooltip().gravity('w').distance(23)
-                .data(myDataObject);
-
-        tip();    //just invoke the returned function to render tooltip.
-  */
-  window.nv.models.tooltip = function() {
-        var content = null    //HTML contents of the tooltip.  If null, the content is generated via the data variable.
-        ,   data = null     /* Tooltip data. If data is given in the proper format, a consistent tooltip is generated.
-        Format of data:
-        {
-            key: "Date",
-            value: "August 2009", 
-            series: [
-                    {
-                        key: "Series 1",
-                        value: "Value 1",
-                        color: "#000"
-                    },
-                    {
-                        key: "Series 2",
-                        value: "Value 2",
-                        color: "#00f"
-                    }
-            ]
-
-        }
-
-        */
-        ,   gravity = 'w'   //Can be 'n','s','e','w'. Determines how tooltip is positioned.
-        ,   distance = 50   //Distance to offset tooltip from the mouse location.
-        ,   snapDistance = 25   //Tolerance allowed before tooltip is moved from its current position (creates 'snapping' effect)
-        ,   fixedTop = null //If not null, this fixes the top position of the tooltip.
-        ,   classes = null  //Attaches additional CSS classes to the tooltip DIV that is created.
-        ,   chartContainer = null   //Parent DIV, of the SVG Container that holds the chart.
-        ,   tooltipElem = null  //actual DOM element representing the tooltip.
-        ,   position = {left: null, top: null}      //Relative position of the tooltip inside chartContainer.
-        ,   enabled = true  //True -> tooltips are rendered. False -> don't render tooltips.
-        //Generates a unique id when you create a new tooltip() object
-        ,   id = "nvtooltip-" + Math.floor(Math.random() * 100000)
-        ;
-
-        //CSS class to specify whether element should not have mouse events.
-        var  nvPointerEventsClass = "nv-pointer-events-none";
-
-        //Format function for the tooltip values column
-        var valueFormatter = function(d,i) {
-            return d;
-        };
-
-        //Format function for the tooltip header value.
-        var headerFormatter = function(d) {
-            return d;
-        };
-
-        //By default, the tooltip model renders a beautiful table inside a DIV.
-        //You can override this function if a custom tooltip is desired.
-        var contentGenerator = function(d) {
-            if (content != null) return content;
-
-            if (d == null) return '';
-
-            var table = d3.select(document.createElement("table"));
-            var theadEnter = table.selectAll("thead")
-                .data([d])
-                .enter().append("thead");
-            theadEnter.append("tr")
-                .append("td")
-                .attr("colspan",3)
-                .append("strong")
-                    .classed("x-value",true)
-                    .html(headerFormatter(d.value));
-
-            var tbodyEnter = table.selectAll("tbody")
-                .data([d])
-                .enter().append("tbody");
-            var trowEnter = tbodyEnter.selectAll("tr")
-                .data(function(p) { return p.series})
-                .enter()
-                .append("tr")
-                .classed("highlight", function(p) { return p.highlight})
-                ;
-
-            trowEnter.append("td")
-                .classed("legend-color-guide",true)
-                .append("div")
-                    .style("background-color", function(p) { return p.color});
-            trowEnter.append("td")
-                .classed("key",true)
-                .html(function(p) {return p.key});
-            trowEnter.append("td")
-                .classed("value",true)
-                .html(function(p,i) { return valueFormatter(p.value,i) });
-
-
-            trowEnter.selectAll("td").each(function(p) {
-                if (p.highlight) {
-                    var opacityScale = d3.scale.linear().domain([0,1]).range(["#fff",p.color]);
-                    var opacity = 0.6;
-                    d3.select(this)
-                        .style("border-bottom-color", opacityScale(opacity))
-                        .style("border-top-color", opacityScale(opacity))
-                        ;
-                }
-            });
-
-            var html = table.node().outerHTML;
-            if (d.footer !== undefined)
-                html += "<div class='footer'>" + d.footer + "</div>";
-            return html;
-
-        };
-
-        var dataSeriesExists = function(d) {
-            if (d && d.series && d.series.length > 0) return true;
-
-            return false;
-        };
-
-        //In situations where the chart is in a 'viewBox', re-position the tooltip based on how far chart is zoomed.
-        function convertViewBoxRatio() {
-            if (chartContainer) {
-              var svg = d3.select(chartContainer);
-              if (svg.node().tagName !== "svg") {
-                 svg = svg.select("svg");
-              }
-              var viewBox = (svg.node()) ? svg.attr('viewBox') : null;
-              if (viewBox) {
-                viewBox = viewBox.split(' ');
-                var ratio = parseInt(svg.style('width')) / viewBox[2];
-                
-                position.left = position.left * ratio;
-                position.top  = position.top * ratio;
-              }
-            }
-        }
-
-        //Creates new tooltip container, or uses existing one on DOM.
-        function getTooltipContainer(newContent) {
-            var body;
-            if (chartContainer)
-                body = d3.select(chartContainer);
-            else
-                body = d3.select("body");
-
-            var container = body.select(".nvtooltip");
-            if (container.node() === null) {
-                //Create new tooltip div if it doesn't exist on DOM.
-                container = body.append("div")
-                    .attr("class", "nvtooltip " + (classes? classes: "xy-tooltip"))
-                    .attr("id",id)
-                    ;
-            }
-        
-
-            container.node().innerHTML = newContent;
-            container.style("top",0).style("left",0).style("opacity",0);
-            container.selectAll("div, table, td, tr").classed(nvPointerEventsClass,true)
-            container.classed(nvPointerEventsClass,true);
-            return container.node();
-        }
-
-        
-
-        //Draw the tooltip onto the DOM.
-        function nvtooltip() {
-            if (!enabled) return;
-            if (!dataSeriesExists(data)) return;
-
-            convertViewBoxRatio();
-
-            var left = position.left;
-            var top = (fixedTop != null) ? fixedTop : position.top;
-            var container = getTooltipContainer(contentGenerator(data));
-            tooltipElem = container;
-            if (chartContainer) {
-                var svgComp = chartContainer.getElementsByTagName("svg")[0];
-                var boundRect = (svgComp) ? svgComp.getBoundingClientRect() : chartContainer.getBoundingClientRect();
-                var svgOffset = {left:0,top:0};
-                if (svgComp) {
-                    var svgBound = svgComp.getBoundingClientRect();
-                    var chartBound = chartContainer.getBoundingClientRect();
-                    var svgBoundTop = svgBound.top;
-                    
-                    //Defensive code. Sometimes, svgBoundTop can be a really negative
-                    //  number, like -134254. That's a bug. 
-                    //  If such a number is found, use zero instead. FireFox bug only
-                    if (svgBoundTop < 0) {
-                        var containerBound = chartContainer.getBoundingClientRect();
-                        svgBoundTop = (Math.abs(svgBoundTop) > containerBound.height) ? 0 : svgBoundTop;
-                    } 
-                    svgOffset.top = Math.abs(svgBoundTop - chartBound.top);
-                    svgOffset.left = Math.abs(svgBound.left - chartBound.left);
-                }
-                //If the parent container is an overflow <div> with scrollbars, subtract the scroll offsets.
-                //You need to also add any offset between the <svg> element and its containing <div>
-                //Finally, add any offset of the containing <div> on the whole page.
-                left += chartContainer.offsetLeft + svgOffset.left - 2*chartContainer.scrollLeft;
-                top += chartContainer.offsetTop + svgOffset.top - 2*chartContainer.scrollTop;
-            }
-
-            if (snapDistance && snapDistance > 0) {
-                top = Math.floor(top/snapDistance) * snapDistance;
-            }
-
-            nv.tooltip.calcTooltipPosition([left,top], gravity, distance, container);
-            return nvtooltip;
-        };
-
-        nvtooltip.nvPointerEventsClass = nvPointerEventsClass;
-        
-        nvtooltip.content = function(_) {
-            if (!arguments.length) return content;
-            content = _;
-            return nvtooltip;
-        };
-
-        //Returns tooltipElem...not able to set it.
-        nvtooltip.tooltipElem = function() {
-            return tooltipElem;
-        };
-
-        nvtooltip.contentGenerator = function(_) {
-            if (!arguments.length) return contentGenerator;
-            if (typeof _ === 'function') {
-                contentGenerator = _;
-            }
-            return nvtooltip;
-        };
-
-        nvtooltip.data = function(_) {
-            if (!arguments.length) return data;
-            data = _;
-            return nvtooltip;
-        };
-
-        nvtooltip.gravity = function(_) {
-            if (!arguments.length) return gravity;
-            gravity = _;
-            return nvtooltip;
-        };
-
-        nvtooltip.distance = function(_) {
-            if (!arguments.length) return distance;
-            distance = _;
-            return nvtooltip;
-        };
-
-        nvtooltip.snapDistance = function(_) {
-            if (!arguments.length) return snapDistance;
-            snapDistance = _;
-            return nvtooltip;
-        };
-
-        nvtooltip.classes = function(_) {
-            if (!arguments.length) return classes;
-            classes = _;
-            return nvtooltip;
-        };
-
-        nvtooltip.chartContainer = function(_) {
-            if (!arguments.length) return chartContainer;
-            chartContainer = _;
-            return nvtooltip;
-        };
-
-        nvtooltip.position = function(_) {
-            if (!arguments.length) return position;
-            position.left = (typeof _.left !== 'undefined') ? _.left : position.left;
-            position.top = (typeof _.top !== 'undefined') ? _.top : position.top;
-            return nvtooltip;
-        };
-
-        nvtooltip.fixedTop = function(_) {
-            if (!arguments.length) return fixedTop;
-            fixedTop = _;
-            return nvtooltip;
-        };
-
-        nvtooltip.enabled = function(_) {
-            if (!arguments.length) return enabled;
-            enabled = _;
-            return nvtooltip;
-        };
-
-        nvtooltip.valueFormatter = function(_) {
-            if (!arguments.length) return valueFormatter;
-            if (typeof _ === 'function') {
-                valueFormatter = _;
-            }
-            return nvtooltip;
-        };
-
-        nvtooltip.headerFormatter = function(_) {
-            if (!arguments.length) return headerFormatter;
-            if (typeof _ === 'function') {
-                headerFormatter = _;
-            }
-            return nvtooltip;
-        };
-
-        //id() is a read-only function. You can't use it to set the id.
-        nvtooltip.id = function() {
-            return id;
-        };
-
-
-        return nvtooltip;
-  };
-
-
-  //Original tooltip.show function. Kept for backward compatibility.
-  // pos = [left,top]
-  nv.tooltip.show = function(pos, content, gravity, dist, parentContainer, classes) {
-      
-        //Create new tooltip div if it doesn't exist on DOM.
-        var   container = document.createElement('div');
-        container.className = 'nvtooltip ' + (classes ? classes : 'xy-tooltip');
-
-        var body = parentContainer;
-        if ( !parentContainer || parentContainer.tagName.match(/g|svg/i)) {
-            //If the parent element is an SVG element, place tooltip in the <body> element.
-            body = document.getElementsByTagName('body')[0];
-        }
-   
-        container.style.left = 0;
-        container.style.top = 0;
-        container.style.opacity = 0;
-        container.innerHTML = content;
-        body.appendChild(container);
-        
-        //If the parent container is an overflow <div> with scrollbars, subtract the scroll offsets.
-        if (parentContainer) {
-           pos[0] = pos[0] - parentContainer.scrollLeft;
-           pos[1] = pos[1] - parentContainer.scrollTop;
-        }
-        nv.tooltip.calcTooltipPosition(pos, gravity, dist, container);
-  };
-
-  //Looks up the ancestry of a DOM element, and returns the first NON-svg node.
-  nv.tooltip.findFirstNonSVGParent = function(Elem) {
-            while(Elem.tagName.match(/^g|svg$/i) !== null) {
-                Elem = Elem.parentNode;
-            }
-            return Elem;
-  };
-
-  //Finds the total offsetTop of a given DOM element.
-  //Looks up the entire ancestry of an element, up to the first relatively positioned element.
-  nv.tooltip.findTotalOffsetTop = function ( Elem, initialTop ) {
-                var offsetTop = initialTop;
-                
-                do {
-                    if( !isNaN( Elem.offsetTop ) ) {
-                        offsetTop += (Elem.offsetTop);
-                    }
-                } while( Elem = Elem.offsetParent );
-                return offsetTop;
-  };
-
-  //Finds the total offsetLeft of a given DOM element.
-  //Looks up the entire ancestry of an element, up to the first relatively positioned element.
-  nv.tooltip.findTotalOffsetLeft = function ( Elem, initialLeft) {
-                var offsetLeft = initialLeft;
-                
-                do {
-                    if( !isNaN( Elem.offsetLeft ) ) {
-                        offsetLeft += (Elem.offsetLeft);
-                    }
-                } while( Elem = Elem.offsetParent );
-                return offsetLeft;
-  };
-
-  //Global utility function to render a tooltip on the DOM.
-  //pos = [left,top] coordinates of where to place the tooltip, relative to the SVG chart container.
-  //gravity = how to orient the tooltip
-  //dist = how far away from the mouse to place tooltip
-  //container = tooltip DIV
-  nv.tooltip.calcTooltipPosition = function(pos, gravity, dist, container) {
-
-            var height = parseInt(container.offsetHeight),
-                width = parseInt(container.offsetWidth),
-                windowWidth = nv.utils.windowSize().width,
-                windowHeight = nv.utils.windowSize().height,
-                scrollTop = window.pageYOffset,
-                scrollLeft = window.pageXOffset,
-                left, top;
-
-            windowHeight = window.innerWidth >= document.body.scrollWidth ? windowHeight : windowHeight - 16;
-            windowWidth = window.innerHeight >= document.body.scrollHeight ? windowWidth : windowWidth - 16;
-
-            gravity = gravity || 's';
-            dist = dist || 20;
-
-            var tooltipTop = function ( Elem ) {
-                return nv.tooltip.findTotalOffsetTop(Elem, top);
-            };
-
-            var tooltipLeft = function ( Elem ) {
-                return nv.tooltip.findTotalOffsetLeft(Elem,left);
-            };
-
-            switch (gravity) {
-              case 'e':
-                left = pos[0] - width - dist;
-                top = pos[1] - (height / 2);
-                var tLeft = tooltipLeft(container);
-                var tTop = tooltipTop(container);
-                if (tLeft < scrollLeft) left = pos[0] + dist > scrollLeft ? pos[0] + dist : scrollLeft - tLeft + left;
-                if (tTop < scrollTop) top = scrollTop - tTop + top;
-                if (tTop + height > scrollTop + windowHeight) top = scrollTop + windowHeight - tTop + top - height;
-                break;
-              case 'w':
-                left = pos[0] + dist;
-                top = pos[1] - (height / 2);
-                var tLeft = tooltipLeft(container);
-                var tTop = tooltipTop(container);
-                if (tLeft + width > windowWidth) left = pos[0] - width - dist;
-                if (tTop < scrollTop) top = scrollTop + 5;
-                if (tTop + height > scrollTop + windowHeight) top = scrollTop + windowHeight - tTop + top - height;
-                break;
-              case 'n':
-                left = pos[0] - (width / 2) - 5;
-                top = pos[1] + dist;
-                var tLeft = tooltipLeft(container);
-                var tTop = tooltipTop(container);
-                if (tLeft < scrollLeft) left = scrollLeft + 5;
-                if (tLeft + width > windowWidth) left = left - width/2 + 5;
-                if (tTop + height > scrollTop + windowHeight) top = scrollTop + windowHeight - tTop + top - height;
-                break;
-              case 's':
-                left = pos[0] - (width / 2);
-                top = pos[1] - height - dist;
-                var tLeft = tooltipLeft(container);
-                var tTop = tooltipTop(container);
-                if (tLeft < scrollLeft) left = scrollLeft + 5;
-                if (tLeft + width > windowWidth) left = left - width/2 + 5;
-                if (scrollTop > tTop) top = scrollTop;
-                break;
-              case 'none':
-                left = pos[0];
-                top = pos[1] - dist;
-                var tLeft = tooltipLeft(container);
-                var tTop = tooltipTop(container);
-                break;
-            }
-
-
-            container.style.left = left+'px';
-            container.style.top = top+'px';
-            container.style.opacity = 1;
-            container.style.position = 'absolute'; 
-
-            return container;
-    };
-
-    //Global utility function to remove tooltips from the DOM.
-    nv.tooltip.cleanup = function() {
-
-              // Find the tooltips, mark them for removal by this class (so others cleanups won't find it)
-              var tooltips = document.getElementsByClassName('nvtooltip');
-              var purging = [];
-              while(tooltips.length) {
-                purging.push(tooltips[0]);
-                tooltips[0].style.transitionDelay = '0 !important';
-                tooltips[0].style.opacity = 0;
-                tooltips[0].className = 'nvtooltip-pending-removal';
-              }
-
-              setTimeout(function() {
-
-                  while (purging.length) {
-                     var removeMe = purging.pop();
-                      removeMe.parentNode.removeChild(removeMe);
-                  }
-            }, 500);
-    };
-
-})();
-
-nv.utils.windowSize = function() {
-    // Sane defaults
-    var size = {width: 640, height: 480};
-
-    // Earlier IE uses Doc.body
-    if (document.body && document.body.offsetWidth) {
-        size.width = document.body.offsetWidth;
-        size.height = document.body.offsetHeight;
-    }
-
-    // IE can use depending on mode it is in
-    if (document.compatMode=='CSS1Compat' &&
-        document.documentElement &&
-        document.documentElement.offsetWidth ) {
-        size.width = document.documentElement.offsetWidth;
-        size.height = document.documentElement.offsetHeight;
-    }
-
-    // Most recent browsers use
-    if (window.innerWidth && window.innerHeight) {
-        size.width = window.innerWidth;
-        size.height = window.innerHeight;
-    }
-    return (size);
-};
-
-
-
-// Easy way to bind multiple functions to window.onresize
-// TODO: give a way to remove a function after its bound, other than removing all of them
-nv.utils.windowResize = function(fun){
-  if (fun === undefined) return;
-  var oldresize = window.onresize;
-
-  window.onresize = function(e) {
-    if (typeof oldresize == 'function') oldresize(e);
-    fun(e);
-  }
-}
-
-// Backwards compatible way to implement more d3-like coloring of graphs.
-// If passed an array, wrap it in a function which implements the old default
-// behavior
-nv.utils.getColor = function(color) {
-    if (!arguments.length) return nv.utils.defaultColor(); //if you pass in nothing, get default colors back
-
-    if( Object.prototype.toString.call( color ) === '[object Array]' )
-        return function(d, i) { return d.color || color[i % color.length]; };
-    else
-        return color;
-        //can't really help it if someone passes rubbish as color
-}
-
-// Default color chooser uses the index of an object as before.
-nv.utils.defaultColor = function() {
-    var colors = d3.scale.category20().range();
-    return function(d, i) { return d.color || colors[i % colors.length] };
-}
-
-
-// Returns a color function that takes the result of 'getKey' for each series and
-// looks for a corresponding color from the dictionary,
-nv.utils.customTheme = function(dictionary, getKey, defaultColors) {
-  getKey = getKey || function(series) { return series.key }; // use default series.key if getKey is undefined
-  defaultColors = defaultColors || d3.scale.category20().range(); //default color function
-
-  var defIndex = defaultColors.length; //current default color (going in reverse)
-
-  return function(series, index) {
-    var key = getKey(series);
-
-    if (!defIndex) defIndex = defaultColors.length; //used all the default colors, start over
-
-    if (typeof dictionary[key] !== "undefined")
-      return (typeof dictionary[key] === "function") ? dictionary[key]() : dictionary[key];
-    else
-      return defaultColors[--defIndex]; // no match in dictionary, use default color
-  }
-}
-
-
-
-// From the PJAX example on d3js.org, while this is not really directly needed
-// it's a very cool method for doing pjax, I may expand upon it a little bit,
-// open to suggestions on anything that may be useful
-nv.utils.pjax = function(links, content) {
-  d3.selectAll(links).on("click", function() {
-    history.pushState(this.href, this.textContent, this.href);
-    load(this.href);
-    d3.event.preventDefault();
-  });
-
-  function load(href) {
-    d3.html(href, function(fragment) {
-      var target = d3.select(content).node();
-      target.parentNode.replaceChild(d3.select(fragment).select(content).node(), target);
-      nv.utils.pjax(links, content);
-    });
-  }
-
-  d3.select(window).on("popstate", function() {
-    if (d3.event.state) load(d3.event.state);
-  });
-}
-
-/* For situations where we want to approximate the width in pixels for an SVG:text element.
-Most common instance is when the element is in a display:none; container. 
-Forumla is : text.length * font-size * constant_factor
-*/
-nv.utils.calcApproxTextWidth = function (svgTextElem) {
-    if (svgTextElem instanceof d3.selection) {
-        var fontSize = parseInt(svgTextElem.style("font-size").replace("px",""));
-        var textLength = svgTextElem.text().length;
-
-        return textLength * fontSize * 0.5; 
-    }
-    return 0;
-};
-
-/* Numbers that are undefined, null or NaN, convert them to zeros.
-*/
-nv.utils.NaNtoZero = function(n) {
-    if (typeof n !== 'number' 
-        || isNaN(n) 
-        || n === null
-        || n === Infinity) return 0;
-
-    return n;
-};
-
-/*
-Snippet of code you can insert into each nv.models.* to give you the ability to
-do things like:
-chart.options({
-  showXAxis: true,
-  tooltips: true
-});
-
-To enable in the chart:
-chart.options = nv.utils.optionsFunc.bind(chart);
-*/
-nv.utils.optionsFunc = function(args) {
-    if (args) {
-      d3.map(args).forEach((function(key,value) {
-        if (typeof this[key] === "function") {
-           this[key](value);
-        }
-      }).bind(this));
-    }
-    return this;
-};nv.models.axis = function() {
-  "use strict";
-  //============================================================
-  // Public Variables with Default Settings
-  //------------------------------------------------------------
-
-  var axis = d3.svg.axis()
-    ;
-
-  var margin = {top: 0, right: 0, bottom: 0, left: 0}
-    , width = 75 //only used for tickLabel currently
-    , height = 60 //only used for tickLabel currently
-    , scale = d3.scale.linear()
-    , axisLabelText = null
-    , showMaxMin = true //TODO: showMaxMin should be disabled on all ordinal scaled axes
-    , highlightZero = true
-    , rotateLabels = 0
-    , rotateYLabel = true
-    , staggerLabels = false
-    , isOrdinal = false
-    , ticks = null
-    , axisLabelDistance = 12 //The larger this number is, the closer the axis label is to the axis.
-    ;
-
-  axis
-    .scale(scale)
-    .orient('bottom')
-    .tickFormat(function(d) { return d })
-    ;
-
-  //============================================================
-
-
-  //============================================================
-  // Private Variables
-  //------------------------------------------------------------
-
-  var scale0;
-
-  //============================================================
-
-
-  function chart(selection) {
-    selection.each(function(data) {
-      var container = d3.select(this);
-
-
-      //------------------------------------------------------------
-      // Setup containers and skeleton of chart
-
-      var wrap = container.selectAll('g.nv-wrap.nv-axis').data([data]);
-      var wrapEnter = wrap.enter().append('g').attr('class', 'nvd3 nv-wrap nv-axis');
-      var gEnter = wrapEnter.append('g');
-      var g = wrap.select('g')
-
-      //------------------------------------------------------------
-
-
-      if (ticks !== null)
-        axis.ticks(ticks);
-      else if (axis.orient() == 'top' || axis.orient() == 'bottom')
-        axis.ticks(Math.abs(scale.range()[1] - scale.range()[0]) / 100);
-
-
-      //TODO: consider calculating width/height based on whether or not label is added, for reference in charts using this component
-
-
-      g.transition().call(axis);
-
-      scale0 = scale0 || axis.scale();
-
-      var fmt = axis.tickFormat();
-      if (fmt == null) {
-        fmt = scale0.tickFormat();
-      }
-
-      var axisLabel = g.selectAll('text.nv-axislabel')
-          .data([axisLabelText || null]);
-      axisLabel.exit().remove();
-      switch (axis.orient()) {
-        case 'top':
-          axisLabel.enter().append('text').attr('class', 'nv-axislabel');
-          var w = (scale.range().length==2) ? scale.range()[1] : (scale.range()[scale.range().length-1]+(scale.range()[1]-scale.range()[0]));
-          axisLabel
-              .attr('text-anchor', 'middle')
-              .attr('y', 0)
-              .attr('x', w/2);
-          if (showMaxMin) {
-            var axisMaxMin = wrap.selectAll('g.nv-axisMaxMin')
-                           .data(scale.domain());
-            axisMaxMin.enter().append('g').attr('class', 'nv-axisMaxMin').append('text');
-            axisMaxMin.exit().remove();
-            axisMaxMin
-                .attr('transform', function(d,i) {
-                  return 'translate(' + scale(d) + ',0)'
-                })
-              .select('text')
-                .attr('dy', '-0.5em')
-                .attr('y', -axis.tickPadding())
-                .attr('text-anchor', 'middle')
-                .text(function(d,i) {
-                  var v = fmt(d);
-                  return ('' + v).match('NaN') ? '' : v;
-                });
-            axisMaxMin.transition()
-                .attr('transform', function(d,i) {
-                  return 'translate(' + scale.range()[i] + ',0)'
-                });
-          }
-          break;
-        case 'bottom':
-          var xLabelMargin = 36;
-          var maxTextWidth = 30;
-          var xTicks = g.selectAll('g').select("text");
-          if (rotateLabels%360) {
-            //Calculate the longest xTick width
-            xTicks.each(function(d,i){
-              var width = this.getBBox().width;
-              if(width > maxTextWidth) maxTextWidth = width;
-            });
-            //Convert to radians before calculating sin. Add 30 to margin for healthy padding.
-            var sin = Math.abs(Math.sin(rotateLabels*Math.PI/180));
-            var xLabelMargin = (sin ? sin*maxTextWidth : maxTextWidth)+30;
-            //Rotate all xTicks
-            xTicks
-              .attr('transform', function(d,i,j) { return 'rotate(' + rotateLabels + ' 0,0)' })
-              .style('text-anchor', rotateLabels%360 > 0 ? 'start' : 'end');
-          }
-          axisLabel.enter().append('text').attr('class', 'nv-axislabel');
-          var w = (scale.range().length==2) ? scale.range()[1] : (scale.range()[scale.range().length-1]+(scale.range()[1]-scale.range()[0]));
-          axisLabel
-              .attr('text-anchor', 'middle')
-              .attr('y', xLabelMargin)
-              .attr('x', w/2);
-          if (showMaxMin) {
-          //if (showMaxMin && !isOrdinal) {
-            var axisMaxMin = wrap.selectAll('g.nv-axisMaxMin')
-                           //.data(scale.domain())
-                           .data([scale.domain()[0], scale.domain()[scale.domain().length - 1]]);
-            axisMaxMin.enter().append('g').attr('class', 'nv-axisMaxMin').append('text');
-            axisMaxMin.exit().remove();
-            axisMaxMin
-                .attr('transform', function(d,i) {
-                  return 'translate(' + (scale(d) + (isOrdinal ? scale.rangeBand() / 2 : 0)) + ',0)'
-                })
-              .select('text')
-                .attr('dy', '.71em')
-                .attr('y', axis.tickPadding())
-                .attr('transform', function(d,i,j) { return 'rotate(' + rotateLabels + ' 0,0)' })
-                .style('text-anchor', rotateLabels ? (rotateLabels%360 > 0 ? 'start' : 'end') : 'middle')
-                .text(function(d,i) {
-                  var v = fmt(d);
-                  return ('' + v).match('NaN') ? '' : v;
-                });
-            axisMaxMin.transition()
-                .attr('transform', function(d,i) {
-                  //return 'translate(' + scale.range()[i] + ',0)'
-                  //return 'translate(' + scale(d) + ',0)'
-                  return 'translate(' + (scale(d) + (isOrdinal ? scale.rangeBand() / 2 : 0)) + ',0)'
-                });
-          }
-          if (staggerLabels)
-            xTicks
-                .attr('transform', function(d,i) { return 'translate(0,' + (i % 2 == 0 ? '0' : '12') + ')' });
-
-          break;
-        case 'right':
-          axisLabel.enter().append('text').attr('class', 'nv-axislabel');
-          axisLabel
-              .style('text-anchor', rotateYLabel ? 'middle' : 'begin')
-              .attr('transform', rotateYLabel ? 'rotate(90)' : '')
-              .attr('y', rotateYLabel ? (-Math.max(margin.right,width) + 12) : -10) //TODO: consider calculating this based on largest tick width... OR at least expose this on chart
-              .attr('x', rotateYLabel ? (scale.range()[0] / 2) : axis.tickPadding());
-          if (showMaxMin) {
-            var axisMaxMin = wrap.selectAll('g.nv-axisMaxMin')
-                           .data(scale.domain());
-            axisMaxMin.enter().append('g').attr('class', 'nv-axisMaxMin').append('text')
-                .style('opacity', 0);
-            axisMaxMin.exit().remove();
-            axisMaxMin
-                .attr('transform', function(d,i) {
-                  return 'translate(0,' + scale(d) + ')'
-                })
-              .select('text')
-                .attr('dy', '.32em')
-                .attr('y', 0)
-                .attr('x', axis.tickPadding())
-                .style('text-anchor', 'start')
-                .text(function(d,i) {
-                  var v = fmt(d);
-                  return ('' + v).match('NaN') ? '' : v;
-                });
-            axisMaxMin.transition()
-                .attr('transform', function(d,i) {
-                  return 'translate(0,' + scale.range()[i] + ')'
-                })
-              .select('text')
-                .style('opacity', 1);
-          }
-          break;
-        case 'left':
-          /*
-          //For dynamically placing the label. Can be used with dynamically-sized chart axis margins
-          var yTicks = g.selectAll('g').select("text");
-          yTicks.each(function(d,i){
-            var labelPadding = this.getBBox().width + axis.tickPadding() + 16;
-            if(labelPadding > width) width = labelPadding;
-          });
-          */
-          axisLabel.enter().append('text').attr('class', 'nv-axislabel');
-          axisLabel
-              .style('text-anchor', rotateYLabel ? 'middle' : 'end')
-              .attr('transform', rotateYLabel ? 'rotate(-90)' : '')
-              .attr('y', rotateYLabel ? (-Math.max(margin.left,width) + axisLabelDistance) : -10) //TODO: consider calculating this based on largest tick width... OR at least expose this on chart
-              .attr('x', rotateYLabel ? (-scale.range()[0] / 2) : -axis.tickPadding());
-          if (showMaxMin) {
-            var axisMaxMin = wrap.selectAll('g.nv-axisMaxMin')
-                           .data(scale.domain());
-            axisMaxMin.enter().append('g').attr('class', 'nv-axisMaxMin').append('text')
-                .style('opacity', 0);
-            axisMaxMin.exit().remove();
-            axisMaxMin
-                .attr('transform', function(d,i) {
-                  return 'translate(0,' + scale0(d) + ')'
-                })
-              .select('text')
-                .attr('dy', '.32em')
-                .attr('y', 0)
-                .attr('x', -axis.tickPadding())
-                .attr('text-anchor', 'end')
-                .text(function(d,i) {
-                  var v = fmt(d);
-                  return ('' + v).match('NaN') ? '' : v;
-                });
-            axisMaxMin.transition()
-                .attr('transform', function(d,i) {
-                  return 'translate(0,' + scale.range()[i] + ')'
-                })
-              .select('text')
-                .style('opacity', 1);
-          }
-          break;
-      }
-      axisLabel
-          .text(function(d) { return d });
-
-
-      if (showMaxMin && (axis.orient() === 'left' || axis.orient() === 'right')) {
-        //check if max and min overlap other values, if so, hide the values that overlap
-        g.selectAll('g') // the g's wrapping each tick
-            .each(function(d,i) {
-              d3.select(this).select('text').attr('opacity', 1);
-              if (scale(d) < scale.range()[1] + 10 || scale(d) > scale.range()[0] - 10) { // 10 is assuming text height is 16... if d is 0, leave it!
-                if (d > 1e-10 || d < -1e-10) // accounts for minor floating point errors... though could be problematic if the scale is EXTREMELY SMALL
-                  d3.select(this).attr('opacity', 0);
-
-                d3.select(this).select('text').attr('opacity', 0); // Don't remove the ZERO line!!
-              }
-            });
-
-        //if Max and Min = 0 only show min, Issue #281
-        if (scale.domain()[0] == scale.domain()[1] && scale.domain()[0] == 0)
-          wrap.selectAll('g.nv-axisMaxMin')
-            .style('opacity', function(d,i) { return !i ? 1 : 0 });
-
-      }
-
-      if (showMaxMin && (axis.orient() === 'top' || axis.orient() === 'bottom')) {
-        var maxMinRange = [];
-        wrap.selectAll('g.nv-axisMaxMin')
-            .each(function(d,i) {
-              try {
-                  if (i) // i== 1, max position
-                      maxMinRange.push(scale(d) - this.getBBox().width - 4)  //assuming the max and min labels are as wide as the next tick (with an extra 4 pixels just in case)
-                  else // i==0, min position
-                      maxMinRange.push(scale(d) + this.getBBox().width + 4)
-              }catch (err) {
-                  if (i) // i== 1, max position
-                      maxMinRange.push(scale(d) - 4)  //assuming the max and min labels are as wide as the next tick (with an extra 4 pixels just in case)
-                  else // i==0, min position
-                      maxMinRange.push(scale(d) + 4)
-              }
-            });
-        g.selectAll('g') // the g's wrapping each tick
-            .each(function(d,i) {
-              if (scale(d) < maxMinRange[0] || scale(d) > maxMinRange[1]) {
-                if (d > 1e-10 || d < -1e-10) // accounts for minor floating point errors... though could be problematic if the scale is EXTREMELY SMALL
-                  d3.select(this).remove();
-                else
-                  d3.select(this).select('text').remove(); // Don't remove the ZERO line!!
-              }
-            });
-      }
-
-
-      //highlight zero line ... Maybe should not be an option and should just be in CSS?
-      if (highlightZero)
-        g.selectAll('.tick')
-          .filter(function(d) { return !parseFloat(Math.round(d.__data__*100000)/1000000) && (d.__data__ !== undefined) }) //this is because sometimes the 0 tick is a very small fraction, TODO: think of cleaner technique
-            .classed('zero', true);
-
-      //store old scales for use in transitions on update
-      scale0 = scale.copy();
-
-    });
-
-    return chart;
-  }
-
-
-  //============================================================
-  // Expose Public Variables
-  //------------------------------------------------------------
-
-  // expose chart's sub-components
-  chart.axis = axis;
-
-  d3.rebind(chart, axis, 'orient', 'tickValues', 'tickSubdivide', 'tickSize', 'tickPadding', 'tickFormat');
-  d3.rebind(chart, scale, 'domain', 'range', 'rangeBand', 'rangeBands'); //these are also accessible by chart.scale(), but added common ones directly for ease of use
-
-  chart.options = nv.utils.optionsFunc.bind(chart);
-
-  chart.margin = function(_) {
-    if(!arguments.length) return margin;
-    margin.top    = typeof _.top    != 'undefined' ? _.top    : margin.top;
-    margin.right  = typeof _.right  != 'undefined' ? _.right  : margin.right;
-    margin.bottom = typeof _.bottom != 'undefined' ? _.bottom : margin.bottom;
-    margin.left   = typeof _.left   != 'undefined' ? _.left   : margin.left;
-    return chart;
-  }
-
-  chart.width = function(_) {
-    if (!arguments.length) return width;
-    width = _;
-    return chart;
-  };
-
-  chart.ticks = function(_) {
-    if (!arguments.length) return ticks;
-    ticks = _;
-    return chart;
-  };
-
-  chart.height = function(_) {
-    if (!arguments.length) return height;
-    height = _;
-    return chart;
-  };
-
-  chart.axisLabel = function(_) {
-    if (!arguments.length) return axisLabelText;
-    axisLabelText = _;
-    return chart;
-  }
-
-  chart.showMaxMin = function(_) {
-    if (!arguments.length) return showMaxMin;
-    showMaxMin = _;
-    return chart;
-  }
-
-  chart.highlightZero = function(_) {
-    if (!arguments.length) return highlightZero;
-    highlightZero = _;
-    return chart;
-  }
-
-  chart.scale = function(_) {
-    if (!arguments.length) return scale;
-    scale = _;
-    axis.scale(scale);
-    isOrdinal = typeof scale.rangeBands === 'function';
-    d3.rebind(chart, scale, 'domain', 'range', 'rangeBand', 'rangeBands');
-    return chart;
-  }
-
-  chart.rotateYLabel = function(_) {
-    if(!arguments.length) return rotateYLabel;
-    rotateYLabel = _;
-    return chart;
-  }
-
-  chart.rotateLabels = function(_) {
-    if(!arguments.length) return rotateLabels;
-    rotateLabels = _;
-    return chart;
-  }
-
-  chart.staggerLabels = function(_) {
-    if (!arguments.length) return staggerLabels;
-    staggerLabels = _;
-    return chart;
-  };
-
-  chart.axisLabelDistance = function(_) {
-    if (!arguments.length) return axisLabelDistance;
-    axisLabelDistance = _;
-    return chart;
-  };
-
-  //============================================================
-
-
-  return chart;
-}
-
-// Chart design based on the recommendations of Stephen Few. Implementation
-// based on the work of Clint Ivy, Jamie Love, and Jason Davies.
-// http://projects.instantcognition.com/protovis/bulletchart/
-
-nv.models.bullet = function() {
-  "use strict";
-  //============================================================
-  // Public Variables with Default Settings
-  //------------------------------------------------------------
-
-  var margin = {top: 0, right: 0, bottom: 0, left: 0}
-    , orient = 'left' // TODO top & bottom
-    , reverse = false
-    , ranges = function(d) { return d.ranges }
-    , markers = function(d) { return d.markers }
-    , measures = function(d) { return d.measures }
-    , rangeLabels = function(d) { return d.rangeLabels ? d.rangeLabels : [] }
-    , markerLabels = function(d) { return d.markerLabels ? d.markerLabels : []  }
-    , measureLabels = function(d) { return d.measureLabels ? d.measureLabels : []  }
-    , forceX = [0] // List of numbers to Force into the X scale (ie. 0, or a max / min, etc.)
-    , width = 380
-    , height = 30
-    , tickFormat = null
-    , color = nv.utils.getColor(['#1f77b4'])
-    , dispatch = d3.dispatch('elementMouseover', 'elementMouseout')
-    ;
-
-  //============================================================
-
-
-  function chart(selection) {
-    selection.each(function(d, i) {
-      var availableWidth = width - margin.left - margin.right,
-          availableHeight = height - margin.top - margin.bottom,
-          container = d3.select(this);
-
-      var rangez = ranges.call(this, d, i).slice().sort(d3.descending),
-          markerz = markers.call(this, d, i).slice().sort(d3.descending),
-          measurez = measures.call(this, d, i).slice().sort(d3.descending),
-          rangeLabelz = rangeLabels.call(this, d, i).slice(),
-          markerLabelz = markerLabels.call(this, d, i).slice(),
-          measureLabelz = measureLabels.call(this, d, i).slice();
-
-
-      //------------------------------------------------------------
-      // Setup Scales
-
-      // Compute the new x-scale.
-      var x1 = d3.scale.linear()
-          .domain( d3.extent(d3.merge([forceX, rangez])) )
-          .range(reverse ? [availableWidth, 0] : [0, availableWidth]);
-
-      // Retrieve the old x-scale, if this is an update.
-      var x0 = this.__chart__ || d3.scale.linear()
-          .domain([0, Infinity])
-          .range(x1.range());
-
-      // Stash the new scale.
-      this.__chart__ = x1;
-
-
-      var rangeMin = d3.min(rangez), //rangez[2]
-          rangeMax = d3.max(rangez), //rangez[0]
-          rangeAvg = rangez[1];
-
-      //------------------------------------------------------------
-
-
-      //------------------------------------------------------------
-      // Setup containers and skeleton of chart
-
-      var wrap = container.selectAll('g.nv-wrap.nv-bullet').data([d]);
-      var wrapEnter = wrap.enter().append('g').attr('class', 'nvd3 nv-wrap nv-bullet');
-      var gEnter = wrapEnter.append('g');
-      var g = wrap.select('g');
-
-      gEnter.append('rect').attr('class', 'nv-range nv-rangeMax');
-      gEnter.append('rect').attr('class', 'nv-range nv-rangeAvg');
-      gEnter.append('rect').attr('class', 'nv-range nv-rangeMin');
-      gEnter.append('rect').attr('class', 'nv-measure');
-      gEnter.append('path').attr('class', 'nv-markerTriangle');
-
-      wrap.attr('transform', 'translate(' + margin.left + ',' + margin.top + ')');
-
-      //------------------------------------------------------------
-
-
-
-      var w0 = function(d) { return Math.abs(x0(d) - x0(0)) }, // TODO: could optimize by precalculating x0(0) and x1(0)
-          w1 = function(d) { return Math.abs(x1(d) - x1(0)) };
-      var xp0 = function(d) { return d < 0 ? x0(d) : x0(0) },
-          xp1 = function(d) { return d < 0 ? x1(d) : x1(0) };
-
-
-      g.select('rect.nv-rangeMax')
-          .attr('height', availableHeight)
-          .attr('width', w1(rangeMax > 0 ? rangeMax : rangeMin))
-          .attr('x', xp1(rangeMax > 0 ? rangeMax : rangeMin))
-          .datum(rangeMax > 0 ? rangeMax : rangeMin)
-          /*
-          .attr('x', rangeMin < 0 ?
-                         rangeMax > 0 ?
-                             x1(rangeMin)
-                           : x1(rangeMax)
-                       : x1(0))
-                      */
-
-      g.select('rect.nv-rangeAvg')
-          .attr('height', availableHeight)
-          .attr('width', w1(rangeAvg))
-          .attr('x', xp1(rangeAvg))
-          .datum(rangeAvg)
-          /*
-          .attr('width', rangeMax <= 0 ?
-                             x1(rangeMax) - x1(rangeAvg)
-                           : x1(rangeAvg) - x1(rangeMin))
-          .attr('x', rangeMax <= 0 ?
-                         x1(rangeAvg)
-                       : x1(rangeMin))
-                      */
-
-      g.select('rect.nv-rangeMin')
-          .attr('height', availableHeight)
-          .attr('width', w1(rangeMax))
-          .attr('x', xp1(rangeMax))
-          .attr('width', w1(rangeMax > 0 ? rangeMin : rangeMax))
-          .attr('x', xp1(rangeMax > 0 ? rangeMin : rangeMax))
-          .datum(rangeMax > 0 ? rangeMin : rangeMax)
-          /*
-          .attr('width', rangeMax <= 0 ?
-                             x1(rangeAvg) - x1(rangeMin)
-                           : x1(rangeMax) - x1(rangeAvg))
-          .attr('x', rangeMax <= 0 ?
-                         x1(rangeMin)
-                       : x1(rangeAvg))
-                      */
-
-      g.select('rect.nv-measure')
-          .style('fill', color)
-          .attr('height', availableHeight / 3)
-          .attr('y', availableHeight / 3)
-          .attr('width', measurez < 0 ?
-                             x1(0) - x1(measurez[0])
-                           : x1(measurez[0]) - x1(0))
-          .attr('x', xp1(measurez))
-          .on('mouseover', function() {
-              dispatch.elementMouseover({
-                value: measurez[0],
-                label: measureLabelz[0] || 'Current',
-                pos: [x1(measurez[0]), availableHeight/2]
-              })
-          })
-          .on('mouseout', function() {
-              dispatch.elementMouseout({
-                value: measurez[0],
-                label: measureLabelz[0] || 'Current'
-              })
-          })
-
-      var h3 =  availableHeight / 6;
-      if (markerz[0]) {
-        g.selectAll('path.nv-markerTriangle')
-            .attr('transform', function(d) { return 'translate(' + x1(markerz[0]) + ',' + (availableHeight / 2) + ')' })
-            .attr('d', 'M0,' + h3 + 'L' + h3 + ',' + (-h3) + ' ' + (-h3) + ',' + (-h3) + 'Z')
-            .on('mouseover', function() {
-              dispatch.elementMouseover({
-                value: markerz[0],
-                label: markerLabelz[0] || 'Previous',
-                pos: [x1(markerz[0]), availableHeight/2]
-              })
-            })
-            .on('mouseout', function() {
-              dispatch.elementMouseout({
-                value: markerz[0],
-                label: markerLabelz[0] || 'Previous'
-              })
-            });
-      } else {
-        g.selectAll('path.nv-markerTriangle').remove();
-      }
-
-
-      wrap.selectAll('.nv-range')
-          .on('mouseover', function(d,i) {
-            var label = rangeLabelz[i] || (!i ? "Maximum" : i == 1 ? "Mean" : "Minimum");
-
-            dispatch.elementMouseover({
-              value: d,
-              label: label,
-              pos: [x1(d), availableHeight/2]
-            })
-          })
-          .on('mouseout', function(d,i) {
-            var label = rangeLabelz[i] || (!i ? "Maximum" : i == 1 ? "Mean" : "Minimum");
-
-            dispatch.elementMouseout({
-              value: d,
-              label: label
-            })
-          })
-
-/* // THIS IS THE PREVIOUS BULLET IMPLEMENTATION, WILL REMOVE SHORTLY
-      // Update the range rects.
-      var range = g.selectAll('rect.nv-range')
-          .data(rangez);
-
-      range.enter().append('rect')
-          .attr('class', function(d, i) { return 'nv-range nv-s' + i; })
-          .attr('width', w0)
-          .attr('height', availableHeight)
-          .attr('x', reverse ? x0 : 0)
-          .on('mouseover', function(d,i) { 
-              dispatch.elementMouseover({
-                value: d,
-                label: (i <= 0) ? 'Maximum' : (i > 1) ? 'Minimum' : 'Mean', //TODO: make these labels a variable
-                pos: [x1(d), availableHeight/2]
-              })
-          })
-          .on('mouseout', function(d,i) { 
-              dispatch.elementMouseout({
-                value: d,
-                label: (i <= 0) ? 'Minimum' : (i >=1) ? 'Maximum' : 'Mean' //TODO: make these labels a variable
-              })
-          })
-
-      d3.transition(range)
-          .attr('x', reverse ? x1 : 0)
-          .attr('width', w1)
-          .attr('height', availableHeight);
-
-
-      // Update the measure rects.
-      var measure = g.selectAll('rect.nv-measure')
-          .data(measurez);
-
-      measure.enter().append('rect')
-          .attr('class', function(d, i) { return 'nv-measure nv-s' + i; })
-          .style('fill', function(d,i) { return color(d,i ) })
-          .attr('width', w0)
-          .attr('height', availableHeight / 3)
-          .attr('x', reverse ? x0 : 0)
-          .attr('y', availableHeight / 3)
-          .on('mouseover', function(d) { 
-              dispatch.elementMouseover({
-                value: d,
-                label: 'Current', //TODO: make these labels a variable
-                pos: [x1(d), availableHeight/2]
-              })
-          })
-          .on('mouseout', function(d) { 
-              dispatch.elementMouseout({
-                value: d,
-                label: 'Current' //TODO: make these labels a variable
-              })
-          })
-
-      d3.transition(measure)
-          .attr('width', w1)
-          .attr('height', availableHeight / 3)
-          .attr('x', reverse ? x1 : 0)
-          .attr('y', availableHeight / 3);
-
-
-
-      // Update the marker lines.
-      var marker = g.selectAll('path.nv-markerTriangle')
-          .data(markerz);
-
-      var h3 =  availableHeight / 6;
-      marker.enter().append('path')
-          .attr('class', 'nv-markerTriangle')
-          .attr('transform', function(d) { return 'translate(' + x0(d) + ',' + (availableHeight / 2) + ')' })
-          .attr('d', 'M0,' + h3 + 'L' + h3 + ',' + (-h3) + ' ' + (-h3) + ',' + (-h3) + 'Z')
-          .on('mouseover', function(d,i) {
-              dispatch.elementMouseover({
-                value: d,
-                label: 'Previous',
-                pos: [x1(d), availableHeight/2]
-              })
-          })
-          .on('mouseout', function(d,i) {
-              dispatch.elementMouseout({
-                value: d,
-                label: 'Previous'
-              })
-          });
-
-      d3.transition(marker)
-          .attr('transform', function(d) { return 'translate(' + (x1(d) - x1(0)) + ',' + (availableHeight / 2) + ')' });
-
-      marker.exit().remove();
-*/
-
-    });
-
-    // d3.timer.flush();  // Not needed?
-
-    return chart;
-  }
-
-
-  //============================================================
-  // Expose Public Variables
-  //------------------------------------------------------------
-
-  chart.dispatch = dispatch;
-
-  chart.options = nv.utils.optionsFunc.bind(chart);
-  
-  // left, right, top, bottom
-  chart.orient = function(_) {
-    if (!arguments.length) return orient;
-    orient = _;
-    reverse = orient == 'right' || orient == 'bottom';
-    return chart;
-  };
-
-  // ranges (bad, satisfactory, good)
-  chart.ranges = function(_) {
-    if (!arguments.length) return ranges;
-    ranges = _;
-    return chart;
-  };
-
-  // markers (previous, goal)
-  chart.markers = function(_) {
-    if (!arguments.length) return markers;
-    markers = _;
-    return chart;
-  };
-
-  // measures (actual, forecast)
-  chart.measures = function(_) {
-    if (!arguments.length) return measures;
-    measures = _;
-    return chart;
-  };
-
-  chart.forceX = function(_) {
-    if (!arguments.length) return forceX;
-    forceX = _;
-    return chart;
-  };
-
-  chart.width = function(_) {
-    if (!arguments.length) return width;
-    width = _;
-    return chart;
-  };
-
-  chart.height = function(_) {
-    if (!arguments.length) return height;
-    height = _;
-    return chart;
-  };
-
-  chart.margin = function(_) {
-    if (!arguments.length) return margin;
-    margin.top    = typeof _.top    != 'undefined' ? _.top    : margin.top;
-    margin.right  = typeof _.right  != 'undefined' ? _.right  : margin.right;
-    margin.bottom = typeof _.bottom != 'undefined' ? _.bottom : margin.bottom;
-    margin.left   = typeof _.left   != 'undefined' ? _.left   : margin.left;
-    return chart;
-  };
-
-  chart.tickFormat = function(_) {
-    if (!arguments.length) return tickFormat;
-    tickFormat = _;
-    return chart;
-  };
-
-  chart.color = function(_) {
-    if (!arguments.length) return color;
-    color = nv.utils.getColor(_);
-    return chart;
-  };
-
-  //============================================================
-
-
-  return chart;
-};
-
-
-
-// Chart design based on the recommendations of Stephen Few. Implementation
-// based on the work of Clint Ivy, Jamie Love, and Jason Davies.
-// http://projects.instantcognition.com/protovis/bulletchart/
-nv.models.bulletChart = function() {
-  "use strict";
-  //============================================================
-  // Public Variables with Default Settings
-  //------------------------------------------------------------
-
-  var bullet = nv.models.bullet()
-    ;
-
-  var orient = 'left' // TODO top & bottom
-    , reverse = false
-    , margin = {top: 5, right: 40, bottom: 20, left: 120}
-    , ranges = function(d) { return d.ranges }
-    , markers = function(d) { return d.markers }
-    , measures = function(d) { return d.measures }
-    , width = null
-    , height = 55
-    , tickFormat = null
-    , tooltips = true
-    , tooltip = function(key, x, y, e, graph) {
-        return '<h3>' + x + '</h3>' +
-               '<p>' + y + '</p>'
-      }
-    , noData = 'No Data Available.'
-    , dispatch = d3.dispatch('tooltipShow', 'tooltipHide')
-    ;
-
-  //============================================================
-
-
-  //============================================================
-  // Private Variables
-  //------------------------------------------------------------
-
-  var showTooltip = function(e, offsetElement) {
-    var left = e.pos[0] + ( offsetElement.offsetLeft || 0 ) + margin.left,
-        top = e.pos[1] + ( offsetElement.offsetTop || 0) + margin.top,
-        content = tooltip(e.key, e.label, e.value, e, chart);
-
-    nv.tooltip.show([left, top], content, e.value < 0 ? 'e' : 'w', null, offsetElement);
-  };
-
-  //============================================================
-
-
-  function chart(selection) {
-    selection.each(function(d, i) {
-      var container = d3.select(this);
-
-      var availableWidth = (width  || parseInt(container.style('width')) || 960)
-                             - margin.left - margin.right,
-          availableHeight = height - margin.top - margin.bottom,
-          that = this;
-
-
-      chart.update = function() { chart(selection) };
-      chart.container = this;
-
-      //------------------------------------------------------------
-      // Display No Data message if there's nothing to show.
-
-      if (!d || !ranges.call(this, d, i)) {
-        var noDataText = container.selectAll('.nv-noData').data([noData]);
-
-        noDataText.enter().append('text')
-          .attr('class', 'nvd3 nv-noData')
-          .attr('dy', '-.7em')
-          .style('text-anchor', 'middle');
-
-        noDataText
-          .attr('x', margin.left + availableWidth / 2)
-          .attr('y', 18 + margin.top + availableHeight / 2)
-          .text(function(d) { return d });
-
-        return chart;
-      } else {
-        container.selectAll('.nv-noData').remove();
-      }
-
-      //------------------------------------------------------------
-
-
-
-      var rangez = ranges.call(this, d, i).slice().sort(d3.descending),
-          markerz = markers.call(this, d, i).slice().sort(d3.descending),
-          measurez = measures.call(this, d, i).slice().sort(d3.descending);
-
-
-      //------------------------------------------------------------
-      // Setup containers and skeleton of chart
-
-      var wrap = container.selectAll('g.nv-wrap.nv-bulletChart').data([d]);
-      var wrapEnter = wrap.enter().append('g').attr('class', 'nvd3 nv-wrap nv-bulletChart');
-      var gEnter = wrapEnter.append('g');
-      var g = wrap.select('g');
-
-      gEnter.append('g').attr('class', 'nv-bulletWrap');
-      gEnter.append('g').attr('class', 'nv-titles');
-
-      wrap.attr('transform', 'translate(' + margin.left + ',' + margin.top + ')');
-
-      //------------------------------------------------------------
-
-
-      // Compute the new x-scale.
-      var x1 = d3.scale.linear()
-          .domain([0, Math.max(rangez[0], markerz[0], measurez[0])])  // TODO: need to allow forceX and forceY, and xDomain, yDomain
-          .range(reverse ? [availableWidth, 0] : [0, availableWidth]);
-
-      // Retrieve the old x-scale, if this is an update.
-      var x0 = this.__chart__ || d3.scale.linear()
-          .domain([0, Infinity])
-          .range(x1.range());
-
-      // Stash the new scale.
-      this.__chart__ = x1;
-
-      /*
-      // Derive width-scales from the x-scales.
-      var w0 = bulletWidth(x0),
-          w1 = bulletWidth(x1);
-
-      function bulletWidth(x) {
-        var x0 = x(0);
-        return function(d) {
-          return Math.abs(x(d) - x(0));
-        };
-      }
-
-      function bulletTranslate(x) {
-        return function(d) {
-          return 'translate(' + x(d) + ',0)';
-        };
-      }
-      */
-
-      var w0 = function(d) { return Math.abs(x0(d) - x0(0)) }, // TODO: could optimize by precalculating x0(0) and x1(0)
-          w1 = function(d) { return Math.abs(x1(d) - x1(0)) };
-
-
-      var title = gEnter.select('.nv-titles').append('g')
-          .attr('text-anchor', 'end')
-          .attr('transform', 'translate(-6,' + (height - margin.top - margin.bottom) / 2 + ')');
-      title.append('text')
-          .attr('class', 'nv-title')
-          .text(function(d) { return d.title; });
-
-      title.append('text')
-          .attr('class', 'nv-subtitle')
-          .attr('dy', '1em')
-          .text(function(d) { return d.subtitle; });
-
-
-
-      bullet
-        .width(availableWidth)
-        .height(availableHeight)
-
-      var bulletWrap = g.select('.nv-bulletWrap');
-
-      d3.transition(bulletWrap).call(bullet);
-
-
-
-      // Compute the tick format.
-      var format = tickFormat || x1.tickFormat( availableWidth / 100 );
-
-      // Update the tick groups.
-      var tick = g.selectAll('g.nv-tick')
-          .data(x1.ticks( availableWidth / 50 ), function(d) {
-            return this.textContent || format(d);
-          });
-
-      // Initialize the ticks with the old scale, x0.
-      var tickEnter = tick.enter().append('g')
-          .attr('class', 'nv-tick')
-          .attr('transform', function(d) { return 'translate(' + x0(d) + ',0)' })
-          .style('opacity', 1e-6);
-
-      tickEnter.append('line')
-          .attr('y1', availableHeight)
-          .attr('y2', availableHeight * 7 / 6);
-
-      tickEnter.append('text')
-          .attr('text-anchor', 'middle')
-          .attr('dy', '1em')
-          .attr('y', availableHeight * 7 / 6)
-          .text(format);
-
-
-      // Transition the updating ticks to the new scale, x1.
-      var tickUpdate = d3.transition(tick)
-          .attr('transform', function(d) { return 'translate(' + x1(d) + ',0)' })
-          .style('opacity', 1);
-
-      tickUpdate.select('line')
-          .attr('y1', availableHeight)
-          .attr('y2', availableHeight * 7 / 6);
-
-      tickUpdate.select('text')
-          .attr('y', availableHeight * 7 / 6);
-
-      // Transition the exiting ticks to the new scale, x1.
-      d3.transition(tick.exit())
-          .attr('transform', function(d) { return 'translate(' + x1(d) + ',0)' })
-          .style('opacity', 1e-6)
-          .remove();
-
-
-      //============================================================
-      // Event Handling/Dispatching (in chart's scope)
-      //------------------------------------------------------------
-
-      dispatch.on('tooltipShow', function(e) {
-        e.key = d.title;
-        if (tooltips) showTooltip(e, that.parentNode);
-      });
-
-      //============================================================
-
-    });
-
-    d3.timer.flush();
-
-    return chart;
-  }
-
-
-  //============================================================
-  // Event Handling/Dispatching (out of chart's scope)
-  //------------------------------------------------------------
-
-  bullet.dispatch.on('elementMouseover.tooltip', function(e) {
-    dispatch.tooltipShow(e);
-  });
-
-  bullet.dispatch.on('elementMouseout.tooltip', function(e) {
-    dispatch.tooltipHide(e);
-  });
-
-  dispatch.on('tooltipHide', function() {
-    if (tooltips) nv.tooltip.cleanup();
-  });
-
-  //============================================================
-
-
-  //============================================================
-  // Expose Public Variables
-  //------------------------------------------------------------
-
-  chart.dispatch = dispatch;
-  chart.bullet = bullet;
-
-  d3.rebind(chart, bullet, 'color');
-
-  chart.options = nv.utils.optionsFunc.bind(chart);
-  
-  // left, right, top, bottom
-  chart.orient = function(x) {
-    if (!arguments.length) return orient;
-    orient = x;
-    reverse = orient == 'right' || orient == 'bottom';
-    return chart;
-  };
-
-  // ranges (bad, satisfactory, good)
-  chart.ranges = function(x) {
-    if (!arguments.length) return ranges;
-    ranges = x;
-    return chart;
-  };
-
-  // markers (previous, goal)
-  chart.markers = function(x) {
-    if (!arguments.length) return markers;
-    markers = x;
-    return chart;
-  };
-
-  // measures (actual, forecast)
-  chart.measures = function(x) {
-    if (!arguments.length) return measures;
-    measures = x;
-    return chart;
-  };
-
-  chart.width = function(x) {
-    if (!arguments.length) return width;
-    width = x;
-    return chart;
-  };
-
-  chart.height = function(x) {
-    if (!arguments.length) return height;
-    height = x;
-    return chart;
-  };
-
-  chart.margin = function(_) {
-    if (!arguments.length) return margin;
-    margin.top    = typeof _.top    != 'undefined' ? _.top    : margin.top;
-    margin.right  = typeof _.right  != 'undefined' ? _.right  : margin.right;
-    margin.bottom = typeof _.bottom != 'undefined' ? _.bottom : margin.bottom;
-    margin.left   = typeof _.left   != 'undefined' ? _.left   : margin.left;
-    return chart;
-  };
-
-  chart.tickFormat = function(x) {
-    if (!arguments.length) return tickFormat;
-    tickFormat = x;
-    return chart;
-  };
-
-  chart.tooltips = function(_) {
-    if (!arguments.length) return tooltips;
-    tooltips = _;
-    return chart;
-  };
-
-  chart.tooltipContent = function(_) {
-    if (!arguments.length) return tooltip;
-    tooltip = _;
-    return chart;
-  };
-
-  chart.noData = function(_) {
-    if (!arguments.length) return noData;
-    noData = _;
-    return chart;
-  };
-
-  //============================================================
-
-
-  return chart;
-};
-
-
-
-nv.models.cumulativeLineChart = function() {
-  "use strict";
-  //============================================================
-  // Public Variables with Default Settings
-  //------------------------------------------------------------
-
-  var lines = nv.models.line()
-    , xAxis = nv.models.axis()
-    , yAxis = nv.models.axis()
-    , legend = nv.models.legend()
-    , controls = nv.models.legend()
-    , interactiveLayer = nv.interactiveGuideline()
-    ;
-
-  var margin = {top: 30, right: 30, bottom: 50, left: 60}
-    , color = nv.utils.defaultColor()
-    , width = null
-    , height = null
-    , showLegend = true
-    , showXAxis = true
-    , showYAxis = true
-    , rightAlignYAxis = false
-    , tooltips = true
-    , showControls = true
-    , useInteractiveGuideline = false
-    , rescaleY = true
-    , tooltip = function(key, x, y, e, graph) {
-        return '<h3>' + key + '</h3>' +
-               '<p>' +  y + ' at ' + x + '</p>'
-      }
-    , x //can be accessed via chart.xScale()
-    , y //can be accessed via chart.yScale()
-    , id = lines.id()
-    , state = { index: 0, rescaleY: rescaleY }
-    , defaultState = null
-    , noData = 'No Data Available.'
-    , average = function(d) { return d.average }
-    , dispatch = d3.dispatch('tooltipShow', 'tooltipHide', 'stateChange', 'changeState')
-    , transitionDuration = 250
-    ;
-
-  xAxis
-    .orient('bottom')
-    .tickPadding(7)
-    ;
-  yAxis
-    .orient((rightAlignYAxis) ? 'right' : 'left')
-    ;
-
-  //============================================================
-  controls.updateState(false);
-
-  //============================================================
-  // Private Variables
-  //------------------------------------------------------------
-
-   var dx = d3.scale.linear()
-     , index = {i: 0, x: 0}
-     ;
-
-  var showTooltip = function(e, offsetElement) {
-    var left = e.pos[0] + ( offsetElement.offsetLeft || 0 ),
-        top = e.pos[1] + ( offsetElement.offsetTop || 0),
-        x = xAxis.tickFormat()(lines.x()(e.point, e.pointIndex)),
-        y = yAxis.tickFormat()(lines.y()(e.point, e.pointIndex)),
-        content = tooltip(e.series.key, x, y, e, chart);
-
-    nv.tooltip.show([left, top], content, null, null, offsetElement);
-  };
-
-  //============================================================
-
-  function chart(selection) {
-    selection.each(function(data) {
-      var container = d3.select(this).classed('nv-chart-' + id, true),
-          that = this;
-
-      var availableWidth = (width  || parseInt(container.style('width')) || 960)
-                             - margin.left - margin.right,
-          availableHeight = (height || parseInt(container.style('height')) || 400)
-                             - margin.top - margin.bottom;
-
-
-      chart.update = function() { container.transition().duration(transitionDuration).call(chart) };
-      chart.container = this;
-
-      //set state.disabled
-      state.disabled = data.map(function(d) { return !!d.disabled });
-
-      if (!defaultState) {
-        var key;
-        defaultState = {};
-        for (key in state) {
-          if (state[key] instanceof Array)
-            defaultState[key] = state[key].slice(0);
-          else
-            defaultState[key] = state[key];
-        }
-      }
-
-      var indexDrag = d3.behavior.drag()
-                        .on('dragstart', dragStart)
-                        .on('drag', dragMove)
-                        .on('dragend', dragEnd);
-
-
-      function dragStart(d,i) {
-        d3.select(chart.container)
-            .style('cursor', 'ew-resize');
-      }
-
-      function dragMove(d,i) {
-        index.x = d3.event.x;
-        index.i = Math.round(dx.invert(index.x));
-        updateZero();
-      }
-
-      function dragEnd(d,i) {
-        d3.select(chart.container)
-            .style('cursor', 'auto');
-
-        // update state and send stateChange with new index
-        state.index = index.i;
-        dispatch.stateChange(state);
-      }
-
-      //------------------------------------------------------------
-      // Display No Data message if there's nothing to show.
-
-      if (!data || !data.length || !data.filter(function(d) { return d.values.length }).length) {
-        var noDataText = container.selectAll('.nv-noData').data([noData]);
-
-        noDataText.enter().append('text')
-          .attr('class', 'nvd3 nv-noData')
-          .attr('dy', '-.7em')
-          .style('text-anchor', 'middle');
-
-        noDataText
-          .attr('x', margin.left + availableWidth / 2)
-          .attr('y', margin.top + availableHeight / 2)
-          .text(function(d) { return d });
-
-        return chart;
-      } else {
-        container.selectAll('.nv-noData').remove();
-      }
-
-      //------------------------------------------------------------
-
-
-      //------------------------------------------------------------
-      // Setup Scales
-
-      x = lines.xScale();
-      y = lines.yScale();
-
-
-      if (!rescaleY) {
-        var seriesDomains = data
-          .filter(function(series) { return !series.disabled })
-          .map(function(series,i) {
-            var initialDomain = d3.extent(series.values, lines.y());
-
-            //account for series being disabled when losing 95% or more
-            if (initialDomain[0] < -.95) initialDomain[0] = -.95;
-
-            return [
-              (initialDomain[0] - initialDomain[1]) / (1 + initialDomain[1]),
-              (initialDomain[1] - initialDomain[0]) / (1 + initialDomain[0])
-            ];
-          });
-
-        var completeDomain = [
-          d3.min(seriesDomains, function(d) { return d[0] }),
-          d3.max(seriesDomains, function(d) { return d[1] })
-        ]
-
-        lines.yDomain(completeDomain);
-      } else {
-        lines.yDomain(null);
-      }
-
-
-      dx  .domain([0, data[0].values.length - 1]) //Assumes all series have same length
-          .range([0, availableWidth])
-          .clamp(true);
-
-      //------------------------------------------------------------
-
-
-      var data = indexify(index.i, data);
-
-
-      //------------------------------------------------------------
-      // Setup containers and skeleton of chart
-      var interactivePointerEvents = (useInteractiveGuideline) ? "none" : "all";
-      var wrap = container.selectAll('g.nv-wrap.nv-cumulativeLine').data([data]);
-      var gEnter = wrap.enter().append('g').attr('class', 'nvd3 nv-wrap nv-cumulativeLine').append('g');
-      var g = wrap.select('g');
-
-      gEnter.append('g').attr('class', 'nv-interactive');
-      gEnter.append('g').attr('class', 'nv-x nv-axis').style("pointer-events","none");
-      gEnter.append('g').attr('class', 'nv-y nv-axis');
-      gEnter.append('g').attr('class', 'nv-background');
-      gEnter.append('g').attr('class', 'nv-linesWrap').style("pointer-events",interactivePointerEvents);
-      gEnter.append('g').attr('class', 'nv-avgLinesWrap').style("pointer-events","none");
-      gEnter.append('g').attr('class', 'nv-legendWrap');
-      gEnter.append('g').attr('class', 'nv-controlsWrap');
-      
-
-      //------------------------------------------------------------
-      // Legend
-
-      if (showLegend) {
-        legend.width(availableWidth);
-
-        g.select('.nv-legendWrap')
-            .datum(data)
-            .call(legend);
-
-        if ( margin.top != legend.height()) {
-          margin.top = legend.height();
-          availableHeight = (height || parseInt(container.style('height')) || 400)
-                             - margin.top - margin.bottom;
-        }
-
-        g.select('.nv-legendWrap')
-            .attr('transform', 'translate(0,' + (-margin.top) +')')
-      }
-
-      //------------------------------------------------------------
-
-
-      //------------------------------------------------------------
-      // Controls
-
-      if (showControls) {
-        var controlsData = [
-          { key: 'Re-scale y-axis', disabled: !rescaleY }
-        ];
-
-        controls.width(140).color(['#444', '#444', '#444']);
-        g.select('.nv-controlsWrap')
-            .datum(controlsData)
-            .attr('transform', 'translate(0,' + (-margin.top) +')')
-            .call(controls);
-      }
-
-      //------------------------------------------------------------
-
-
-      wrap.attr('transform', 'translate(' + margin.left + ',' + margin.top + ')');
-
-      if (rightAlignYAxis) {
-          g.select(".nv-y.nv-axis")
-              .attr("transform", "translate(" + availableWidth + ",0)");
-      }
-
-      // Show error if series goes below 100%
-      var tempDisabled = data.filter(function(d) { return d.tempDisabled });
-
-      wrap.select('.tempDisabled').remove(); //clean-up and prevent duplicates
-      if (tempDisabled.length) {
-        wrap.append('text').attr('class', 'tempDisabled')
-            .attr('x', availableWidth / 2)
-            .attr('y', '-.71em')
-            .style('text-anchor', 'end')
-            .text(tempDisabled.map(function(d) { return d.key }).join(', ') + ' values cannot be calculated for this time period.');
-      }
-
-      //------------------------------------------------------------
-      // Main Chart Component(s)
-      
-      //------------------------------------------------------------
-      //Set up interactive layer
-      if (useInteractiveGuideline) {
-        interactiveLayer
-          .width(availableWidth)
-          .height(availableHeight)
-          .margin({left:margin.left,top:margin.top})
-          .svgContainer(container)
-          .xScale(x);
-        wrap.select(".nv-interactive").call(interactiveLayer);
-      }
-
-      gEnter.select('.nv-background')
-        .append('rect');
-
-      g.select('.nv-background rect')
-          .attr('width', availableWidth)
-          .attr('height', availableHeight);
-
-      lines
-        //.x(function(d) { return d.x })
-        .y(function(d) { return d.display.y })
-        .width(availableWidth)
-        .height(availableHeight)
-        .color(data.map(function(d,i) {
-          return d.color || color(d, i);
-        }).filter(function(d,i) { return !data[i].disabled && !data[i].tempDisabled; }));
-
-
-
-      var linesWrap = g.select('.nv-linesWrap')
-          .datum(data.filter(function(d) { return  !d.disabled && !d.tempDisabled }));
-
-      //d3.transition(linesWrap).call(lines);
-      linesWrap.call(lines);
-
-      /*Handle average lines [AN-612] ----------------------------*/
-
-      //Store a series index number in the data array.
-      data.forEach(function(d,i) {
-            d.seriesIndex = i;
-      });
-
-      var avgLineData = data.filter(function(d) {
-          return !d.disabled && !!average(d);
-      });
-
-      var avgLines = g.select(".nv-avgLinesWrap").selectAll("line")
-              .data(avgLineData, function(d) { return d.key; });
-
-      var getAvgLineY = function(d) {
-          //If average lines go off the svg element, clamp them to the svg bounds.
-          var yVal = y(average(d));
-          if (yVal < 0) return 0;
-          if (yVal > availableHeight) return availableHeight;
-          return yVal;
-      };
-
-      avgLines.enter()
-              .append('line')
-              .style('stroke-width',2)
-              .style('stroke-dasharray','10,10')
-              .style('stroke',function (d,i) {
-                  return lines.color()(d,d.seriesIndex);
-              })
-              .attr('x1',0)
-              .attr('x2',availableWidth)
-              .attr('y1', getAvgLineY)
-              .attr('y2', getAvgLineY);
-
-      avgLines
-              .style('stroke-opacity',function(d){
-                  //If average lines go offscreen, make them transparent
-                  var yVal = y(average(d));
-                  if (yVal < 0 || yVal > availableHeight) return 0;
-                  return 1;
-              })
-              .attr('x1',0)
-              .attr('x2',availableWidth)
-              .attr('y1', getAvgLineY)
-              .attr('y2', getAvgLineY);
-
-      avgLines.exit().remove();
-
-      //Create index line -----------------------------------------
-
-      var indexLine = linesWrap.selectAll('.nv-indexLine')
-          .data([index]);
-      indexLine.enter().append('rect').attr('class', 'nv-indexLine')
-          .attr('width', 3)
-          .attr('x', -2)
-          .attr('fill', 'red')
-          .attr('fill-opacity', .5)
-          .style("pointer-events","all")
-          .call(indexDrag)
-
-      indexLine
-          .attr('transform', function(d) { return 'translate(' + dx(d.i) + ',0)' })
-          .attr('height', availableHeight)
-
-      //------------------------------------------------------------
-
-
-      //------------------------------------------------------------
-      // Setup Axes
-
-      if (showXAxis) {
-        xAxis
-          .scale(x)
-          //Suggest how many ticks based on the chart width and D3 should listen (70 is the optimal number for MM/DD/YY dates)
-          .ticks( Math.min(data[0].values.length,availableWidth/70) )
-          .tickSize(-availableHeight, 0);
-
-        g.select('.nv-x.nv-axis')
-            .attr('transform', 'translate(0,' + y.range()[0] + ')');
-        d3.transition(g.select('.nv-x.nv-axis'))
-            .call(xAxis);
-      }
-
-
-      if (showYAxis) {
-        yAxis
-          .scale(y)
-          .ticks( availableHeight / 36 )
-          .tickSize( -availableWidth, 0);
-
-        d3.transition(g.select('.nv-y.nv-axis'))
-            .call(yAxis);
-      }
-      //------------------------------------------------------------
-
-
-      //============================================================
-      // Event Handling/Dispatching (in chart's scope)
-      //------------------------------------------------------------
-
-
-      function updateZero() {
-        indexLine
-          .data([index]);
-        
-        //When dragging the index line, turn off line transitions.
-        // Then turn them back on when done dragging.
-        var oldDuration = chart.transitionDuration();
-        chart.transitionDuration(0);
-        chart.update();
-        chart.transitionDuration(oldDuration);
-      }
-
-      g.select('.nv-background rect')
-          .on('click', function() {
-            index.x = d3.mouse(this)[0];
-            index.i = Math.round(dx.invert(index.x));
-
-            // update state and send stateChange with new index
-            state.index = index.i;
-            dispatch.stateChange(state);
-
-            updateZero();
-          });
-
-      lines.dispatch.on('elementClick', function(e) {
-        index.i = e.pointIndex;
-        index.x = dx(index.i);
-
-        // update state and send stateChange with new index
-        state.index = index.i;
-        dispatch.stateChange(state);
-
-        updateZero();
-      });
-
-      controls.dispatch.on('legendClick', function(d,i) { 
-        d.disabled = !d.disabled;
-        rescaleY = !d.disabled;
-
-        state.rescaleY = rescaleY;
-        dispatch.stateChange(state);
-        chart.update();
-      });
-
-
-      legend.dispatch.on('stateChange', function(newState) {
-        state.disabled = newState.disabled; 
-        dispatch.stateChange(state);
-        chart.update();
-      });
-
-      interactiveLayer.dispatch.on('elementMousemove', function(e) {
-          lines.clearHighlights();
-          var singlePoint, pointIndex, pointXLocation, allData = [];
-          
-          
-          data
-          .filter(function(series, i) { 
-            series.seriesIndex = i;
-            return !series.disabled; 
-          })
-          .forEach(function(series,i) {
-              pointIndex = nv.interactiveBisect(series.values, e.pointXValue, chart.x());
-              lines.highlightPoint(i, pointIndex, true);
-              var point = series.values[pointIndex];
-              if (typeof point === 'undefined') return;
-              if (typeof singlePoint === 'undefined') singlePoint = point;
-              if (typeof pointXLocation === 'undefined') pointXLocation = chart.xScale()(chart.x()(point,pointIndex));
-              allData.push({
-                  key: series.key,
-                  value: chart.y()(point, pointIndex),
-                  color: color(series,series.seriesIndex)
-              });
-          });
-
-          //Highlight the tooltip entry based on which point the mouse is closest to.
-          if (allData.length > 2) {
-            var yValue = chart.yScale().invert(e.mouseY);
-            var domainExtent = Math.abs(chart.yScale().domain()[0] - chart.yScale().domain()[1]);
-            var threshold = 0.03 * domainExtent;
-            var indexToHighlight = nv.nearestValueIndex(allData.map(function(d){return d.value}),yValue,threshold);
-            if (indexToHighlight !== null)
-              allData[indexToHighlight].highlight = true;
-          }
-
-          var xValue = xAxis.tickFormat()(chart.x()(singlePoint,pointIndex), pointIndex);
-          interactiveLayer.tooltip
-                  .position({left: pointXLocation + margin.left, top: e.mouseY + margin.top})
-                  .chartContainer(that.parentNode)
-                  .enabled(tooltips)
-                  .valueFormatter(function(d,i) {
-                     return yAxis.tickFormat()(d);
-                  })
-                  .data(
-                      {
-                        value: xValue,
-                        series: allData
-                      }
-                  )();
-
-          interactiveLayer.renderGuideLine(pointXLocation);
-
-      });
-
-      interactiveLayer.dispatch.on("elementMouseout",function(e) {
-          dispatch.tooltipHide();
-          lines.clearHighlights();
-      });
-
-      dispatch.on('tooltipShow', function(e) {
-        if (tooltips) showTooltip(e, that.parentNode);
-      });
-
-
-      // Update chart from a state object passed to event handler
-      dispatch.on('changeState', function(e) {
-
-        if (typeof e.disabled !== 'undefined') {
-          data.forEach(function(series,i) {
-            series.disabled = e.disabled[i];
-          });
-
-          state.disabled = e.disabled;
-        }
-
-
-        if (typeof e.index !== 'undefined') {
-          index.i = e.index;
-          index.x = dx(index.i);
-
-          state.index = e.index;
-
-          indexLine
-            .data([index]);
-        }
-
-
-        if (typeof e.rescaleY !== 'undefined') {
-          rescaleY = e.rescaleY;
-        }
-
-        chart.update();
-      });
-
-      //============================================================
-
-    });
-
-    return chart;
-  }
-
-
-  //============================================================
-  // Event Handling/Dispatching (out of chart's scope)
-  //------------------------------------------------------------
-
-  lines.dispatch.on('elementMouseover.tooltip', function(e) {
-    e.pos = [e.pos[0] +  margin.left, e.pos[1] + margin.top];
-    dispatch.tooltipShow(e);
-  });
-
-  lines.dispatch.on('elementMouseout.tooltip', function(e) {
-    dispatch.tooltipHide(e);
-  });
-
-  dispatch.on('tooltipHide', function() {
-    if (tooltips) nv.tooltip.cleanup();
-  });
-
-  //============================================================
-
-
-  //============================================================
-  // Expose Public Variables
-  //------------------------------------------------------------
-
-  // expose chart's sub-components
-  chart.dispatch = dispatch;
-  chart.lines = lines;
-  chart.legend = legend;
-  chart.xAxis = xAxis;
-  chart.yAxis = yAxis;
-  chart.interactiveLayer = interactiveLayer;
-
-  d3.rebind(chart, lines, 'defined', 'isArea', 'x', 'y', 'xScale','yScale', 'size', 'xDomain', 'yDomain', 'xRange', 'yRange', 'forceX', 'forceY', 'interactive', 'clipEdge', 'clipVoronoi','useVoronoi',  'id');
-
-  chart.options = nv.utils.optionsFunc.bind(chart);
-  
-  chart.margin = function(_) {
-    if (!arguments.length) return margin;
-    margin.top    = typeof _.top    != 'undefined' ? _.top    : margin.top;
-    margin.right  = typeof _.right  != 'undefined' ? _.right  : margin.right;
-    margin.bottom = typeof _.bottom != 'undefined' ? _.bottom : margin.bottom;
-    margin.left   = typeof _.left   != 'undefined' ? _.left   : margin.left;
-    return chart;
-  };
-
-  chart.width = function(_) {
-    if (!arguments.length) return width;
-    width = _;
-    return chart;
-  };
-
-  chart.height = function(_) {
-    if (!arguments.length) return height;
-    height = _;
-    return chart;
-  };
-
-  chart.color = function(_) {
-    if (!arguments.length) return color;
-    color = nv.utils.getColor(_);
-    legend.color(color);
-    return chart;
-  };
-
-  chart.rescaleY = function(_) {
-    if (!arguments.length) return rescaleY;
-    rescaleY = _;
-    return chart;
-  };
-
-  chart.showControls = function(_) {
-    if (!arguments.length) return showControls;
-    showControls = _;
-    return chart;
-  };
-
-  chart.useInteractiveGuideline = function(_) {
-    if(!arguments.length) return useInteractiveGuideline;
-    useInteractiveGuideline = _;
-    if (_ === true) {
-       chart.interactive(false);
-       chart.useVoronoi(false);
-    }
-    return chart;
-  };
-
-  chart.showLegend = function(_) {
-    if (!arguments.length) return showLegend;
-    showLegend = _;
-    return chart;
-  };
-
-  chart.showXAxis = function(_) {
-    if (!arguments.length) return showXAxis;
-    showXAxis = _;
-    return chart;
-  };
-
-  chart.showYAxis = function(_) {
-    if (!arguments.length) return showYAxis;
-    showYAxis = _;
-    return chart;
-  };
-
-  chart.rightAlignYAxis = function(_) {
-    if(!arguments.length) return rightAlignYAxis;
-    rightAlignYAxis = _;
-    yAxis.orient( (_) ? 'right' : 'left');
-    return chart;
-  };
-
-  chart.tooltips = function(_) {
-    if (!arguments.length) return tooltips;
-    tooltips = _;
-    return chart;
-  };
-
-  chart.tooltipContent = function(_) {
-    if (!arguments.length) return tooltip;
-    tooltip = _;
-    return chart;
-  };
-
-  chart.state = function(_) {
-    if (!arguments.length) return state;
-    state = _;
-    return chart;
-  };
-
-  chart.defaultState = function(_) {
-    if (!arguments.length) return defaultState;
-    defaultState = _;
-    return chart;
-  };
-
-  chart.noData = function(_) {
-    if (!arguments.length) return noData;
-    noData = _;
-    return chart;
-  };
-
-  chart.average = function(_) {
-     if(!arguments.length) return average;
-     average = _;
-     return chart;
-  };
-
-  chart.transitionDuration = function(_) {
-    if (!arguments.length) return transitionDuration;
-    transitionDuration = _;
-    return chart;
-  };
-
-  //============================================================
-
-
-  //============================================================
-  // Functions
-  //------------------------------------------------------------
-
-  /* Normalize the data according to an index point. */
-  function indexify(idx, data) {
-    return data.map(function(line, i) {
-      if (!line.values) {
-         return line;
-      }
-      var v = lines.y()(line.values[idx], idx);
-
-      //TODO: implement check below, and disable series if series loses 100% or more cause divide by 0 issue
-      if (v < -.95) {
-        //if a series loses more than 100%, calculations fail.. anything close can cause major distortion (but is mathematically correct till it hits 100)
-        line.tempDisabled = true;
-        return line;
-      }
-
-      line.tempDisabled = false;
-
-      line.values = line.values.map(function(point, pointIndex) {
-        point.display = {'y': (lines.y()(point, pointIndex) - v) / (1 + v) };
-        return point;
-      })
-
-      return line;
-    })
-  }
-
-  //============================================================
-
-
-  return chart;
-}
-//TODO: consider deprecating by adding necessary features to multiBar model
-nv.models.discreteBar = function() {
-  "use strict";
-  //============================================================
-  // Public Variables with Default Settings
-  //------------------------------------------------------------
-
-  var margin = {top: 0, right: 0, bottom: 0, left: 0}
-    , width = 960
-    , height = 500
-    , id = Math.floor(Math.random() * 10000) //Create semi-unique ID in case user doesn't select one
-    , x = d3.scale.ordinal()
-    , y = d3.scale.linear()
-    , getX = function(d) { return d.x }
-    , getY = function(d) { return d.y }
-    , forceY = [0] // 0 is forced by default.. this makes sense for the majority of bar graphs... user can always do chart.forceY([]) to remove
-    , color = nv.utils.defaultColor()
-    , showValues = false
-    , valueFormat = d3.format(',.2f')
-    , xDomain
-    , yDomain
-    , xRange
-    , yRange
-    , dispatch = d3.dispatch('chartClick', 'elementClick', 'elementDblClick', 'elementMouseover', 'elementMouseout')
-    , rectClass = 'discreteBar'
-    ;
-
-  //============================================================
-
-
-  //============================================================
-  // Private Variables
-  //------------------------------------------------------------
-
-  var x0, y0;
-
-  //============================================================
-
-
-  function chart(selection) {
-    selection.each(function(data) {
-      var availableWidth = width - margin.left - margin.right,
-          availableHeight = height - margin.top - margin.bottom,
-          container = d3.select(this);
-
-
-      //add series index to each data point for reference
-      data.forEach(function(series, i) {
-        series.values.forEach(function(point) {
-          point.series = i;
-        });
-      });
-
-
-      //------------------------------------------------------------
-      // Setup Scales
-
-      // remap and flatten the data for use in calculating the scales' domains
-      var seriesData = (xDomain && yDomain) ? [] : // if we know xDomain and yDomain, no need to calculate
-            data.map(function(d) {
-              return d.values.map(function(d,i) {
-                return { x: getX(d,i), y: getY(d,i), y0: d.y0 }
-              })
-            });
-
-      x   .domain(xDomain || d3.merge(seriesData).map(function(d) { return d.x }))
-          .rangeBands(xRange || [0, availableWidth], .1);
-
-      y   .domain(yDomain || d3.extent(d3.merge(seriesData).map(function(d) { return d.y }).concat(forceY)));
-
-
-      // If showValues, pad the Y axis range to account for label height
-      if (showValues) y.range(yRange || [availableHeight - (y.domain()[0] < 0 ? 12 : 0), y.domain()[1] > 0 ? 12 : 0]);
-      else y.range(yRange || [availableHeight, 0]);
-
-      //store old scales if they exist
-      x0 = x0 || x;
-      y0 = y0 || y.copy().range([y(0),y(0)]);
-
-      //------------------------------------------------------------
-
-
-      //------------------------------------------------------------
-      // Setup containers and skeleton of chart
-
-      var wrap = container.selectAll('g.nv-wrap.nv-discretebar').data([data]);
-      var wrapEnter = wrap.enter().append('g').attr('class', 'nvd3 nv-wrap nv-discretebar');
-      var gEnter = wrapEnter.append('g');
-      var g = wrap.select('g');
-
-      gEnter.append('g').attr('class', 'nv-groups');
-
-      wrap.attr('transform', 'translate(' + margin.left + ',' + margin.top + ')');
-
-      //------------------------------------------------------------
-
-
-
-      //TODO: by definition, the discrete bar should not have multiple groups, will modify/remove later
-      var groups = wrap.select('.nv-groups').selectAll('.nv-group')
-          .data(function(d) { return d }, function(d) { return d.key });
-      groups.enter().append('g')
-          .style('stroke-opacity', 1e-6)
-          .style('fill-opacity', 1e-6);
-      groups.exit()
-          .transition()
-          .style('stroke-opacity', 1e-6)
-          .style('fill-opacity', 1e-6)
-          .remove();
-      groups
-          .attr('class', function(d,i) { return 'nv-group nv-series-' + i })
-          .classed('hover', function(d) { return d.hover });
-      groups
-          .transition()
-          .style('stroke-opacity', 1)
-          .style('fill-opacity', .75);
-
-
-      var bars = groups.selectAll('g.nv-bar')
-          .data(function(d) { return d.values });
-
-      bars.exit().remove();
-
-
-      var barsEnter = bars.enter().append('g')
-          .attr('transform', function(d,i,j) {
-              return 'translate(' + (x(getX(d,i)) + x.rangeBand() * .05 ) + ', ' + y(0) + ')'
-          })
-          .on('mouseover', function(d,i) { //TODO: figure out why j works above, but not here
-            d3.select(this).classed('hover', true);
-            dispatch.elementMouseover({
-              value: getY(d,i),
-              point: d,
-              series: data[d.series],
-              pos: [x(getX(d,i)) + (x.rangeBand() * (d.series + .5) / data.length), y(getY(d,i))],  // TODO: Figure out why the value appears to be shifted
-              pointIndex: i,
-              seriesIndex: d.series,
-              e: d3.event
-            });
-          })
-          .on('mouseout', function(d,i) {
-            d3.select(this).classed('hover', false);
-            dispatch.elementMouseout({
-              value: getY(d,i),
-              point: d,
-              series: data[d.series],
-              pointIndex: i,
-              seriesIndex: d.series,
-              e: d3.event
-            });
-          })
-          .on('click', function(d,i) {
-            dispatch.elementClick({
-              value: getY(d,i),
-              point: d,
-              series: data[d.series],
-              pos: [x(getX(d,i)) + (x.rangeBand() * (d.series + .5) / data.length), y(getY(d,i))],  // TODO: Figure out why the value appears to be shifted
-              pointIndex: i,
-              seriesIndex: d.series,
-              e: d3.event
-            });
-            d3.event.stopPropagation();
-          })
-          .on('dblclick', function(d,i) {
-            dispatch.elementDblClick({
-              value: getY(d,i),
-              point: d,
-              series: data[d.series],
-              pos: [x(getX(d,i)) + (x.rangeBand() * (d.series + .5) / data.length), y(getY(d,i))],  // TODO: Figure out why the value appears to be shifted
-              pointIndex: i,
-              seriesIndex: d.series,
-              e: d3.event
-            });
-            d3.event.stopPropagation();
-          });
-
-      barsEnter.append('rect')
-          .attr('height', 0)
-          .attr('width', x.rangeBand() * .9 / data.length )
-
-      if (showValues) {
-        barsEnter.append('text')
-          .attr('text-anchor', 'middle')
-          ;
-
-        bars.select('text')
-          .text(function(d,i) { return valueFormat(getY(d,i)) })
-          .transition()
-          .attr('x', x.rangeBand() * .9 / 2)
-          .attr('y', function(d,i) { return getY(d,i) < 0 ? y(getY(d,i)) - y(0) + 12 : -4 })
-
-          ;
-      } else {
-        bars.selectAll('text').remove();
-      }
-
-      bars
-          .attr('class', function(d,i) { return getY(d,i) < 0 ? 'nv-bar negative' : 'nv-bar positive' })
-          .style('fill', function(d,i) { return d.color || color(d,i) })
-          .style('stroke', function(d,i) { return d.color || color(d,i) })
-        .select('rect')
-          .attr('class', rectClass)
-          .transition()
-          .attr('width', x.rangeBand() * .9 / data.length);
-      bars.transition()
-        //.delay(function(d,i) { return i * 1200 / data[0].values.length })
-          .attr('transform', function(d,i) {
-            var left = x(getX(d,i)) + x.rangeBand() * .05,
-                top = getY(d,i) < 0 ?
-                        y(0) :
-                        y(0) - y(getY(d,i)) < 1 ?
-                          y(0) - 1 : //make 1 px positive bars show up above y=0
-                          y(getY(d,i));
-
-              return 'translate(' + left + ', ' + top + ')'
-          })
-        .select('rect')
-          .attr('height', function(d,i) {
-            return  Math.max(Math.abs(y(getY(d,i)) - y((yDomain && yDomain[0]) || 0)) || 1)
-          });
-
-
-      //store old scales for use in transitions on update
-      x0 = x.copy();
-      y0 = y.copy();
-
-    });
-
-    return chart;
-  }
-
-
-  //============================================================
-  // Expose Public Variables
-  //------------------------------------------------------------
-
-  chart.dispatch = dispatch;
-
-  chart.options = nv.utils.optionsFunc.bind(chart);
-
-  chart.x = function(_) {
-    if (!arguments.length) return getX;
-    getX = _;
-    return chart;
-  };
-
-  chart.y = function(_) {
-    if (!arguments.length) return getY;
-    getY = _;
-    return chart;
-  };
-
-  chart.margin = function(_) {
-    if (!arguments.length) return margin;
-    margin.top    = typeof _.top    != 'undefined' ? _.top    : margin.top;
-    margin.right  = typeof _.right  != 'undefined' ? _.right  : margin.right;
-    margin.bottom = typeof _.bottom != 'undefined' ? _.bottom : margin.bottom;
-    margin.left   = typeof _.left   != 'undefined' ? _.left   : margin.left;
-    return chart;
-  };
-
-  chart.width = function(_) {
-    if (!arguments.length) return width;
-    width = _;
-    return chart;
-  };
-
-  chart.height = function(_) {
-    if (!arguments.length) return height;
-    height = _;
-    return chart;
-  };
-
-  chart.xScale = function(_) {
-    if (!arguments.length) return x;
-    x = _;
-    return chart;
-  };
-
-  chart.yScale = function(_) {
-    if (!arguments.length) return y;
-    y = _;
-    return chart;
-  };
-
-  chart.xDomain = function(_) {
-    if (!arguments.length) return xDomain;
-    xDomain = _;
-    return chart;
-  };
-
-  chart.yDomain = function(_) {
-    if (!arguments.length) return yDomain;
-    yDomain = _;
-    return chart;
-  };
-
-  chart.xRange = function(_) {
-    if (!arguments.length) return xRange;
-    xRange = _;
-    return chart;
-  };
-
-  chart.yRange = function(_) {
-    if (!arguments.length) return yRange;
-    yRange = _;
-    return chart;
-  };
-
-  chart.forceY = function(_) {
-    if (!arguments.length) return forceY;
-    forceY = _;
-    return chart;
-  };
-
-  chart.color = function(_) {
-    if (!arguments.length) return color;
-    color = nv.utils.getColor(_);
-    return chart;
-  };
-
-  chart.id = function(_) {
-    if (!arguments.length) return id;
-    id = _;
-    return chart;
-  };
-
-  chart.showValues = function(_) {
-    if (!arguments.length) return showValues;
-    showValues = _;
-    return chart;
-  };
-
-  chart.valueFormat= function(_) {
-    if (!arguments.length) return valueFormat;
-    valueFormat = _;
-    return chart;
-  };
-
-  chart.rectClass= function(_) {
-    if (!arguments.length) return rectClass;
-    rectClass = _;
-    return chart;
-  };
-  //============================================================
-
-
-  return chart;
-}
-
-nv.models.discreteBarChart = function() {
-  "use strict";
-  //============================================================
-  // Public Variables with Default Settings
-  //------------------------------------------------------------
-
-  var discretebar = nv.models.discreteBar()
-    , xAxis = nv.models.axis()
-    , yAxis = nv.models.axis()
-    ;
-
-  var margin = {top: 15, right: 10, bottom: 50, left: 60}
-    , width = null
-    , height = null
-    , color = nv.utils.getColor()
-    , showXAxis = true
-    , showYAxis = true
-    , rightAlignYAxis = false
-    , staggerLabels = false
-    , tooltips = true
-    , tooltip = function(key, x, y, e, graph) {
-        return '<h3>' + x + '</h3>' +
-               '<p>' +  y + '</p>'
-      }
-    , x
-    , y
-    , noData = "No Data Available."
-    , dispatch = d3.dispatch('tooltipShow', 'tooltipHide', 'beforeUpdate')
-    , transitionDuration = 250
-    ;
-
-  xAxis
-    .orient('bottom')
-    .highlightZero(false)
-    .showMaxMin(false)
-    .tickFormat(function(d) { return d })
-    ;
-  yAxis
-    .orient((rightAlignYAxis) ? 'right' : 'left')
-    .tickFormat(d3.format(',.1f'))
-    ;
-
-  //============================================================
-
-
-  //============================================================
-  // Private Variables
-  //------------------------------------------------------------
-
-  var showTooltip = function(e, offsetElement) {
-    var left = e.pos[0] + ( offsetElement.offsetLeft || 0 ),
-        top = e.pos[1] + ( offsetElement.offsetTop || 0),
-        x = xAxis.tickFormat()(discretebar.x()(e.point, e.pointIndex)),
-        y = yAxis.tickFormat()(discretebar.y()(e.point, e.pointIndex)),
-        content = tooltip(e.series.key, x, y, e, chart);
-
-    nv.tooltip.show([left, top], content, e.value < 0 ? 'n' : 's', null, offsetElement);
-  };
-
-  //============================================================
-
-
-  function chart(selection) {
-    selection.each(function(data) {
-      var container = d3.select(this),
-          that = this;
-
-      var availableWidth = (width  || parseInt(container.style('width')) || 960)
-                             - margin.left - margin.right,
-          availableHeight = (height || parseInt(container.style('height')) || 400)
-                             - margin.top - margin.bottom;
-
-
-      chart.update = function() { 
-        dispatch.beforeUpdate(); 
-        container.transition().duration(transitionDuration).call(chart); 
-      };
-      chart.container = this;
-
-
-      //------------------------------------------------------------
-      // Display No Data message if there's nothing to show.
-
-      if (!data || !data.length || !data.filter(function(d) { return d.values.length }).length) {
-        var noDataText = container.selectAll('.nv-noData').data([noData]);
-
-        noDataText.enter().append('text')
-          .attr('class', 'nvd3 nv-noData')
-          .attr('dy', '-.7em')
-          .style('text-anchor', 'middle');
-
-        noDataText
-          .attr('x', margin.left + availableWidth / 2)
-          .attr('y', margin.top + availableHeight / 2)
-          .text(function(d) { return d });
-
-        return chart;
-      } else {
-        container.selectAll('.nv-noData').remove();
-      }
-
-      //------------------------------------------------------------
-
-
-      //------------------------------------------------------------
-      // Setup Scales
-
-      x = discretebar.xScale();
-      y = discretebar.yScale().clamp(true);
-
-      //------------------------------------------------------------
-
-
-      //------------------------------------------------------------
-      // Setup containers and skeleton of chart
-
-      var wrap = container.selectAll('g.nv-wrap.nv-discreteBarWithAxes').data([data]);
-      var gEnter = wrap.enter().append('g').attr('class', 'nvd3 nv-wrap nv-discreteBarWithAxes').append('g');
-      var defsEnter = gEnter.append('defs');
-      var g = wrap.select('g');
-
-      gEnter.append('g').attr('class', 'nv-x nv-axis');
-      gEnter.append('g').attr('class', 'nv-y nv-axis')
-            .append('g').attr('class', 'nv-zeroLine')
-            .append('line');
-        
-      gEnter.append('g').attr('class', 'nv-barsWrap');
-
-      g.attr('transform', 'translate(' + margin.left + ',' + margin.top + ')');
-
-      if (rightAlignYAxis) {
-          g.select(".nv-y.nv-axis")
-              .attr("transform", "translate(" + availableWidth + ",0)");
-      }
-
-      //------------------------------------------------------------
-
-
-      //------------------------------------------------------------
-      // Main Chart Component(s)
-
-      discretebar
-        .width(availableWidth)
-        .height(availableHeight);
-
-
-      var barsWrap = g.select('.nv-barsWrap')
-          .datum(data.filter(function(d) { return !d.disabled }))
-
-      barsWrap.transition().call(discretebar);
-
-      //------------------------------------------------------------
-
-
-
-      defsEnter.append('clipPath')
-          .attr('id', 'nv-x-label-clip-' + discretebar.id())
-        .append('rect');
-
-      g.select('#nv-x-label-clip-' + discretebar.id() + ' rect')
-          .attr('width', x.rangeBand() * (staggerLabels ? 2 : 1))
-          .attr('height', 16)
-          .attr('x', -x.rangeBand() / (staggerLabels ? 1 : 2 ));
-
-
-      //------------------------------------------------------------
-      // Setup Axes
-
-      if (showXAxis) {
-          xAxis
-            .scale(x)
-            .ticks( availableWidth / 100 )
-            .tickSize(-availableHeight, 0);
-
-          g.select('.nv-x.nv-axis')
-              .attr('transform', 'translate(0,' + (y.range()[0] + ((discretebar.showValues() && y.domain()[0] < 0) ? 16 : 0)) + ')');
-          //d3.transition(g.select('.nv-x.nv-axis'))
-          g.select('.nv-x.nv-axis').transition()
-              .call(xAxis);
-
-
-          var xTicks = g.select('.nv-x.nv-axis').selectAll('g');
-
-          if (staggerLabels) {
-            xTicks
-                .selectAll('text')
-                .attr('transform', function(d,i,j) { return 'translate(0,' + (j % 2 == 0 ? '5' : '17') + ')' })
-          }
-      }
-
-      if (showYAxis) {
-          yAxis
-            .scale(y)
-            .ticks( availableHeight / 36 )
-            .tickSize( -availableWidth, 0);
-
-          g.select('.nv-y.nv-axis').transition()
-              .call(yAxis);
-      }
-
-      // Zero line
-      g.select(".nv-zeroLine line")
-        .attr("x1",0)
-        .attr("x2",availableWidth)
-        .attr("y1", y(0))
-        .attr("y2", y(0))
-        ;
-
-      //------------------------------------------------------------
-
-
-      //============================================================
-      // Event Handling/Dispatching (in chart's scope)
-      //------------------------------------------------------------
-
-      dispatch.on('tooltipShow', function(e) {
-        if (tooltips) showTooltip(e, that.parentNode);
-      });
-
-      //============================================================
-
-
-    });
-
-    return chart;
-  }
-
-  //============================================================
-  // Event Handling/Dispatching (out of chart's scope)
-  //------------------------------------------------------------
-
-  discretebar.dispatch.on('elementMouseover.tooltip', function(e) {
-    e.pos = [e.pos[0] +  margin.left, e.pos[1] + margin.top];
-    dispatch.tooltipShow(e);
-  });
-
-  discretebar.dispatch.on('elementMouseout.tooltip', function(e) {
-    dispatch.tooltipHide(e);
-  });
-
-  dispatch.on('tooltipHide', function() {
-    if (tooltips) nv.tooltip.cleanup();
-  });
-
-  //============================================================
-
-
-  //============================================================
-  // Expose Public Variables
-  //------------------------------------------------------------
-
-  // expose chart's sub-components
-  chart.dispatch = dispatch;
-  chart.discretebar = discretebar;
-  chart.xAxis = xAxis;
-  chart.yAxis = yAxis;
-
-  d3.rebind(chart, discretebar, 'x', 'y', 'xDomain', 'yDomain', 'xRange', 'yRange', 'forceX', 'forceY', 'id', 'showValues', 'valueFormat');
-
-  chart.options = nv.utils.optionsFunc.bind(chart);
-  
-  chart.margin = function(_) {
-    if (!arguments.length) return margin;
-    margin.top    = typeof _.top    != 'undefined' ? _.top    : margin.top;
-    margin.right  = typeof _.right  != 'undefined' ? _.right  : margin.right;
-    margin.bottom = typeof _.bottom != 'undefined' ? _.bottom : margin.bottom;
-    margin.left   = typeof _.left   != 'undefined' ? _.left   : margin.left;
-    return chart;
-  };
-
-  chart.width = function(_) {
-    if (!arguments.length) return width;
-    width = _;
-    return chart;
-  };
-
-  chart.height = function(_) {
-    if (!arguments.length) return height;
-    height = _;
-    return chart;
-  };
-
-  chart.color = function(_) {
-    if (!arguments.length) return color;
-    color = nv.utils.getColor(_);
-    discretebar.color(color);
-    return chart;
-  };
-
-  chart.showXAxis = function(_) {
-    if (!arguments.length) return showXAxis;
-    showXAxis = _;
-    return chart;
-  };
-
-  chart.showYAxis = function(_) {
-    if (!arguments.length) return showYAxis;
-    showYAxis = _;
-    return chart;
-  };
-
-  chart.rightAlignYAxis = function(_) {
-    if(!arguments.length) return rightAlignYAxis;
-    rightAlignYAxis = _;
-    yAxis.orient( (_) ? 'right' : 'left');
-    return chart;
-  };
-
-  chart.staggerLabels = function(_) {
-    if (!arguments.length) return staggerLabels;
-    staggerLabels = _;
-    return chart;
-  };
-
-  chart.tooltips = function(_) {
-    if (!arguments.length) return tooltips;
-    tooltips = _;
-    return chart;
-  };
-
-  chart.tooltipContent = function(_) {
-    if (!arguments.length) return tooltip;
-    tooltip = _;
-    return chart;
-  };
-
-  chart.noData = function(_) {
-    if (!arguments.length) return noData;
-    noData = _;
-    return chart;
-  };
-
-  chart.transitionDuration = function(_) {
-    if (!arguments.length) return transitionDuration;
-    transitionDuration = _;
-    return chart;
-  };
-
-  //============================================================
-
-
-  return chart;
-}
-
-nv.models.distribution = function() {
-  "use strict";
-  //============================================================
-  // Public Variables with Default Settings
-  //------------------------------------------------------------
-
-  var margin = {top: 0, right: 0, bottom: 0, left: 0}
-    , width = 400 //technically width or height depending on x or y....
-    , size = 8
-    , axis = 'x' // 'x' or 'y'... horizontal or vertical
-    , getData = function(d) { return d[axis] }  // defaults d.x or d.y
-    , color = nv.utils.defaultColor()
-    , scale = d3.scale.linear()
-    , domain
-    ;
-
-  //============================================================
-
-
-  //============================================================
-  // Private Variables
-  //------------------------------------------------------------
-
-  var scale0;
-
-  //============================================================
-
-
-  function chart(selection) {
-    selection.each(function(data) {
-      var availableLength = width - (axis === 'x' ? margin.left + margin.right : margin.top + margin.bottom),
-          naxis = axis == 'x' ? 'y' : 'x',
-          container = d3.select(this);
-
-
-      //------------------------------------------------------------
-      // Setup Scales
-
-      scale0 = scale0 || scale;
-
-      //------------------------------------------------------------
-
-
-      //------------------------------------------------------------
-      // Setup containers and skeleton of chart
-
-      var wrap = container.selectAll('g.nv-distribution').data([data]);
-      var wrapEnter = wrap.enter().append('g').attr('class', 'nvd3 nv-distribution');
-      var gEnter = wrapEnter.append('g');
-      var g = wrap.select('g');
-
-      wrap.attr('transform', 'translate(' + margin.left + ',' + margin.top + ')')
-
-      //------------------------------------------------------------
-
-
-      var distWrap = g.selectAll('g.nv-dist')
-          .data(function(d) { return d }, function(d) { return d.key });
-
-      distWrap.enter().append('g');
-      distWrap
-          .attr('class', function(d,i) { return 'nv-dist nv-series-' + i })
-          .style('stroke', function(d,i) { return color(d, i) });
-
-      var dist = distWrap.selectAll('line.nv-dist' + axis)
-          .data(function(d) { return d.values })
-      dist.enter().append('line')
-          .attr(axis + '1', function(d,i) { return scale0(getData(d,i)) })
-          .attr(axis + '2', function(d,i) { return scale0(getData(d,i)) })
-      distWrap.exit().selectAll('line.nv-dist' + axis)
-          .transition()
-          .attr(axis + '1', function(d,i) { return scale(getData(d,i)) })
-          .attr(axis + '2', function(d,i) { return scale(getData(d,i)) })
-          .style('stroke-opacity', 0)
-          .remove();
-      dist
-          .attr('class', function(d,i) { return 'nv-dist' + axis + ' nv-dist' + axis + '-' + i })
-          .attr(naxis + '1', 0)
-          .attr(naxis + '2', size);
-      dist
-          .transition()
-          .attr(axis + '1', function(d,i) { return scale(getData(d,i)) })
-          .attr(axis + '2', function(d,i) { return scale(getData(d,i)) })
-
-
-      scale0 = scale.copy();
-
-    });
-
-    return chart;
-  }
-
-
-  //============================================================
-  // Expose Public Variables
-  //------------------------------------------------------------
-  chart.options = nv.utils.optionsFunc.bind(chart);
-  
-  chart.margin = function(_) {
-    if (!arguments.length) return margin;
-    margin.top    = typeof _.top    != 'undefined' ? _.top    : margin.top;
-    margin.right  = typeof _.right  != 'undefined' ? _.right  : margin.right;
-    margin.bottom = typeof _.bottom != 'undefined' ? _.bottom : margin.bottom;
-    margin.left   = typeof _.left   != 'undefined' ? _.left   : margin.left;
-    return chart;
-  };
-
-  chart.width = function(_) {
-    if (!arguments.length) return width;
-    width = _;
-    return chart;
-  };
-
-  chart.axis = function(_) {
-    if (!arguments.length) return axis;
-    axis = _;
-    return chart;
-  };
-
-  chart.size = function(_) {
-    if (!arguments.length) return size;
-    size = _;
-    return chart;
-  };
-
-  chart.getData = function(_) {
-    if (!arguments.length) return getData;
-    getData = d3.functor(_);
-    return chart;
-  };
-
-  chart.scale = function(_) {
-    if (!arguments.length) return scale;
-    scale = _;
-    return chart;
-  };
-
-  chart.color = function(_) {
-    if (!arguments.length) return color;
-    color = nv.utils.getColor(_);
-    return chart;
-  };
-  //============================================================
-
-
-  return chart;
-}
-//TODO: consider deprecating and using multibar with single series for this
-nv.models.historicalBar = function() {
-  "use strict";
-  //============================================================
-  // Public Variables with Default Settings
-  //------------------------------------------------------------
-
-  var margin = {top: 0, right: 0, bottom: 0, left: 0}
-    , width = 960
-    , height = 500
-    , id = Math.floor(Math.random() * 10000) //Create semi-unique ID in case user doesn't select one
-    , x = d3.scale.linear()
-    , y = d3.scale.linear()
-    , getX = function(d) { return d.x }
-    , getY = function(d) { return d.y }
-    , forceX = []
-    , forceY = [0]
-    , padData = false
-    , clipEdge = true
-    , color = nv.utils.defaultColor()
-    , xDomain
-    , yDomain
-    , xRange
-    , yRange
-    , dispatch = d3.dispatch('chartClick', 'elementClick', 'elementDblClick', 'elementMouseover', 'elementMouseout')
-    , interactive = true
-    ;
-
-  //============================================================
-
-
-  function chart(selection) {
-    selection.each(function(data) {
-      var availableWidth = width - margin.left - margin.right,
-          availableHeight = height - margin.top - margin.bottom,
-          container = d3.select(this);
-
-
-      //------------------------------------------------------------
-      // Setup Scales
-
-      x   .domain(xDomain || d3.extent(data[0].values.map(getX).concat(forceX) ))
-
-      if (padData)
-        x.range(xRange || [availableWidth * .5 / data[0].values.length, availableWidth * (data[0].values.length - .5)  / data[0].values.length ]);
-      else
-        x.range(xRange || [0, availableWidth]);
-
-      y   .domain(yDomain || d3.extent(data[0].values.map(getY).concat(forceY) ))
-          .range(yRange || [availableHeight, 0]);
-
-      // If scale's domain don't have a range, slightly adjust to make one... so a chart can show a single data point
-
-      if (x.domain()[0] === x.domain()[1])
-        x.domain()[0] ?
-            x.domain([x.domain()[0] - x.domain()[0] * 0.01, x.domain()[1] + x.domain()[1] * 0.01])
-          : x.domain([-1,1]);
-
-      if (y.domain()[0] === y.domain()[1])
-        y.domain()[0] ?
-            y.domain([y.domain()[0] + y.domain()[0] * 0.01, y.domain()[1] - y.domain()[1] * 0.01])
-          : y.domain([-1,1]);
-
-      //------------------------------------------------------------
-
-
-      //------------------------------------------------------------
-      // Setup containers and skeleton of chart
-
-      var wrap = container.selectAll('g.nv-wrap.nv-historicalBar-' + id).data([data[0].values]);
-      var wrapEnter = wrap.enter().append('g').attr('class', 'nvd3 nv-wrap nv-historicalBar-' + id);
-      var defsEnter = wrapEnter.append('defs');
-      var gEnter = wrapEnter.append('g');
-      var g = wrap.select('g');
-
-      gEnter.append('g').attr('class', 'nv-bars');
-
-      wrap.attr('transform', 'translate(' + margin.left + ',' + margin.top + ')');
-
-      //------------------------------------------------------------
-
-
-      container
-          .on('click', function(d,i) {
-            dispatch.chartClick({
-                data: d,
-                index: i,
-                pos: d3.event,
-                id: id
-            });
-          });
-
-
-      defsEnter.append('clipPath')
-          .attr('id', 'nv-chart-clip-path-' + id)
-        .append('rect');
-
-      wrap.select('#nv-chart-clip-path-' + id + ' rect')
-          .attr('width', availableWidth)
-          .attr('height', availableHeight);
-
-      g   .attr('clip-path', clipEdge ? 'url(#nv-chart-clip-path-' + id + ')' : '');
-
-
-
-      var bars = wrap.select('.nv-bars').selectAll('.nv-bar')
-          .data(function(d) { return d }, function(d,i) {return getX(d,i)});
-
-      bars.exit().remove();
-
-
-      var barsEnter = bars.enter().append('rect')
-          //.attr('class', function(d,i,j) { return (getY(d,i) < 0 ? 'nv-bar negative' : 'nv-bar positive') + ' nv-bar-' + j + '-' + i })
-          .attr('x', 0 )
-          .attr('y', function(d,i) {  return nv.utils.NaNtoZero(y(Math.max(0, getY(d,i)))) })
-          .attr('height', function(d,i) { return nv.utils.NaNtoZero(Math.abs(y(getY(d,i)) - y(0))) })
-          .attr('transform', function(d,i) { return 'translate(' + (x(getX(d,i)) - availableWidth / data[0].values.length * .45) + ',0)'; }) 
-          .on('mouseover', function(d,i) {
-            if (!interactive) return;
-            d3.select(this).classed('hover', true);
-            dispatch.elementMouseover({
-                point: d,
-                series: data[0],
-                pos: [x(getX(d,i)), y(getY(d,i))],  // TODO: Figure out why the value appears to be shifted
-                pointIndex: i,
-                seriesIndex: 0,
-                e: d3.event
-            });
-
-          })
-          .on('mouseout', function(d,i) {
-                if (!interactive) return;
-                d3.select(this).classed('hover', false);
-                dispatch.elementMouseout({
-                    point: d,
-                    series: data[0],
-                    pointIndex: i,
-                    seriesIndex: 0,
-                    e: d3.event
-                });
-          })
-          .on('click', function(d,i) {
-                if (!interactive) return;
-                dispatch.elementClick({
-                    //label: d[label],
-                    value: getY(d,i),
-                    data: d,
-                    index: i,
-                    pos: [x(getX(d,i)), y(getY(d,i))],
-                    e: d3.event,
-                    id: id
-                });
-              d3.event.stopPropagation();
-          })
-          .on('dblclick', function(d,i) {
-              if (!interactive) return;
-              dispatch.elementDblClick({
-                  //label: d[label],
-                  value: getY(d,i),
-                  data: d,
-                  index: i,
-                  pos: [x(getX(d,i)), y(getY(d,i))],
-                  e: d3.event,
-                  id: id
-              });
-              d3.event.stopPropagation();
-          });
-
-      bars
-          .attr('fill', function(d,i) { return color(d, i); })
-          .attr('class', function(d,i,j) { return (getY(d,i) < 0 ? 'nv-bar negative' : 'nv-bar positive') + ' nv-bar-' + j + '-' + i })
-          .transition()
-          .attr('transform', function(d,i) { return 'translate(' + (x(getX(d,i)) - availableWidth / data[0].values.length * .45) + ',0)'; }) 
-           //TODO: better width calculations that don't assume always uniform data spacing;w
-          .attr('width', (availableWidth / data[0].values.length) * .9 );
-
-
-      bars.transition()
-          .attr('y', function(d,i) {
-            var rval = getY(d,i) < 0 ?
-                    y(0) :
-                    y(0) - y(getY(d,i)) < 1 ?
-                      y(0) - 1 :
-                      y(getY(d,i));
-            return nv.utils.NaNtoZero(rval);
-          })
-          .attr('height', function(d,i) { return nv.utils.NaNtoZero(Math.max(Math.abs(y(getY(d,i)) - y(0)),1)) });
-
-    });
-
-    return chart;
-  }
-
-  //Create methods to allow outside functions to highlight a specific bar.
-  chart.highlightPoint = function(pointIndex, isHoverOver) {
-      d3.select(".nv-historicalBar-" + id)
-        .select(".nv-bars .nv-bar-0-" + pointIndex)
-              .classed("hover", isHoverOver)
-               ;
-  };
-
-  chart.clearHighlights = function() {
-      d3.select(".nv-historicalBar-" + id)
-        .select(".nv-bars .nv-bar.hover")
-              .classed("hover", false)
-               ;
-  };
-  //============================================================
-  // Expose Public Variables
-  //------------------------------------------------------------
-
-  chart.dispatch = dispatch;
-
-  chart.options = nv.utils.optionsFunc.bind(chart);
-  
-  chart.x = function(_) {
-    if (!arguments.length) return getX;
-    getX = _;
-    return chart;
-  };
-
-  chart.y = function(_) {
-    if (!arguments.length) return getY;
-    getY = _;
-    return chart;
-  };
-
-  chart.margin = function(_) {
-    if (!arguments.length) return margin;
-    margin.top    = typeof _.top    != 'undefined' ? _.top    : margin.top;
-    margin.right  = typeof _.right  != 'undefined' ? _.right  : margin.right;
-    margin.bottom = typeof _.bottom != 'undefined' ? _.bottom : margin.bottom;
-    margin.left   = typeof _.left   != 'undefined' ? _.left   : margin.left;
-    return chart;
-  };
-
-  chart.width = function(_) {
-    if (!arguments.length) return width;
-    width = _;
-    return chart;
-  };
-
-  chart.height = function(_) {
-    if (!arguments.length) return height;
-    height = _;
-    return chart;
-  };
-
-  chart.xScale = function(_) {
-    if (!arguments.length) return x;
-    x = _;
-    return chart;
-  };
-
-  chart.yScale = function(_) {
-    if (!arguments.length) return y;
-    y = _;
-    return chart;
-  };
-
-  chart.xDomain = function(_) {
-    if (!arguments.length) return xDomain;
-    xDomain = _;
-    return chart;
-  };
-
-  chart.yDomain = function(_) {
-    if (!arguments.length) return yDomain;
-    yDomain = _;
-    return chart;
-  };
-
-  chart.xRange = function(_) {
-    if (!arguments.length) return xRange;
-    xRange = _;
-    return chart;
-  };
-
-  chart.yRange = function(_) {
-    if (!arguments.length) return yRange;
-    yRange = _;
-    return chart;
-  };
-
-  chart.forceX = function(_) {
-    if (!arguments.length) return forceX;
-    forceX = _;
-    return chart;
-  };
-
-  chart.forceY = function(_) {
-    if (!arguments.length) return forceY;
-    forceY = _;
-    return chart;
-  };
-
-  chart.padData = function(_) {
-    if (!arguments.length) return padData;
-    padData = _;
-    return chart;
-  };
-
-  chart.clipEdge = function(_) {
-    if (!arguments.length) return clipEdge;
-    clipEdge = _;
-    return chart;
-  };
-
-  chart.color = function(_) {
-    if (!arguments.length) return color;
-    color = nv.utils.getColor(_);
-    return chart;
-  };
-
-  chart.id = function(_) {
-    if (!arguments.length) return id;
-    id = _;
-    return chart;
-  };
-
-  chart.interactive = function(_) {
-    if(!arguments.length) return interactive;
-    interactive = false;
-    return chart;
-  };
-
-  //============================================================
-
-
-  return chart;
-}
-
-nv.models.historicalBarChart = function() {
-  "use strict";
-  //============================================================
-  // Public Variables with Default Settings
-  //------------------------------------------------------------
-
-  var bars = nv.models.historicalBar()
-    , xAxis = nv.models.axis()
-    , yAxis = nv.models.axis()
-    , legend = nv.models.legend()
-    ;
-
-
-  var margin = {top: 30, right: 90, bottom: 50, left: 90}
-    , color = nv.utils.defaultColor()
-    , width = null
-    , height = null
-    , showLegend = false
-    , showXAxis = true
-    , showYAxis = true
-    , rightAlignYAxis = false
-    , tooltips = true
-    , tooltip = function(key, x, y, e, graph) {
-        return '<h3>' + key + '</h3>' +
-               '<p>' +  y + ' at ' + x + '</p>'
-      }
-    , x
-    , y
-    , state = {}
-    , defaultState = null
-    , noData = 'No Data Available.'
-    , dispatch = d3.dispatch('tooltipShow', 'tooltipHide', 'stateChange', 'changeState')
-    , transitionDuration = 250
-    ;
-
-  xAxis
-    .orient('bottom')
-    .tickPadding(7)
-    ;
-  yAxis
-    .orient( (rightAlignYAxis) ? 'right' : 'left')
-    ;
-
-  //============================================================
-
-
-  //============================================================
-  // Private Variables
-  //------------------------------------------------------------
-
-  var showTooltip = function(e, offsetElement) {
-
-    // New addition to calculate position if SVG is scaled with viewBox, may move TODO: consider implementing everywhere else
-    if (offsetElement) {
-      var svg = d3.select(offsetElement).select('svg');
-      var viewBox = (svg.node()) ? svg.attr('viewBox') : null;
-      if (viewBox) {
-        viewBox = viewBox.split(' ');
-        var ratio = parseInt(svg.style('width')) / viewBox[2];
-        e.pos[0] = e.pos[0] * ratio;
-        e.pos[1] = e.pos[1] * ratio;
-      }
-    }
-
-    var left = e.pos[0] + ( offsetElement.offsetLeft || 0 ),
-        top = e.pos[1] + ( offsetElement.offsetTop || 0),
-        x = xAxis.tickFormat()(bars.x()(e.point, e.pointIndex)),
-        y = yAxis.tickFormat()(bars.y()(e.point, e.pointIndex)),
-        content = tooltip(e.series.key, x, y, e, chart);
-
-    nv.tooltip.show([left, top], content, null, null, offsetElement);
-  };
-
-  //============================================================
-
-
-  function chart(selection) {
-    selection.each(function(data) {
-      var container = d3.select(this),
-          that = this;
-
-      var availableWidth = (width  || parseInt(container.style('width')) || 960)
-                             - margin.left - margin.right,
-          availableHeight = (height || parseInt(container.style('height')) || 400)
-                             - margin.top - margin.bottom;
-
-
-      chart.update = function() { container.transition().duration(transitionDuration).call(chart) };
-      chart.container = this;
-
-      //set state.disabled
-      state.disabled = data.map(function(d) { return !!d.disabled });
-
-      if (!defaultState) {
-        var key;
-        defaultState = {};
-        for (key in state) {
-          if (state[key] instanceof Array)
-            defaultState[key] = state[key].slice(0);
-          else
-            defaultState[key] = state[key];
-        }
-      }
-
-      //------------------------------------------------------------
-      // Display noData message if there's nothing to show.
-
-      if (!data || !data.length || !data.filter(function(d) { return d.values.length }).length) {
-        var noDataText = container.selectAll('.nv-noData').data([noData]);
-
-        noDataText.enter().append('text')
-          .attr('class', 'nvd3 nv-noData')
-          .attr('dy', '-.7em')
-          .style('text-anchor', 'middle');
-
-        noDataText
-          .attr('x', margin.left + availableWidth / 2)
-          .attr('y', margin.top + availableHeight / 2)
-          .text(function(d) { return d });
-
-        return chart;
-      } else {
-        container.selectAll('.nv-noData').remove();
-      }
-
-      //------------------------------------------------------------
-
-
-      //------------------------------------------------------------
-      // Setup Scales
-
-      x = bars.xScale();
-      y = bars.yScale();
-
-      //------------------------------------------------------------
-
-
-      //------------------------------------------------------------
-      // Setup containers and skeleton of chart
-
-      var wrap = container.selectAll('g.nv-wrap.nv-historicalBarChart').data([data]);
-      var gEnter = wrap.enter().append('g').attr('class', 'nvd3 nv-wrap nv-historicalBarChart').append('g');
-      var g = wrap.select('g');
-
-      gEnter.append('g').attr('class', 'nv-x nv-axis');
-      gEnter.append('g').attr('class', 'nv-y nv-axis');
-      gEnter.append('g').attr('class', 'nv-barsWrap');
-      gEnter.append('g').attr('class', 'nv-legendWrap');
-
-      //------------------------------------------------------------
-
-
-      //------------------------------------------------------------
-      // Legend
-
-      if (showLegend) {
-        legend.width(availableWidth);
-
-        g.select('.nv-legendWrap')
-            .datum(data)
-            .call(legend);
-
-        if ( margin.top != legend.height()) {
-          margin.top = legend.height();
-          availableHeight = (height || parseInt(container.style('height')) || 400)
-                             - margin.top - margin.bottom;
-        }
-
-        wrap.select('.nv-legendWrap')
-            .attr('transform', 'translate(0,' + (-margin.top) +')')
-      }
-
-      //------------------------------------------------------------
-
-      wrap.attr('transform', 'translate(' + margin.left + ',' + margin.top + ')');
-
-      if (rightAlignYAxis) {
-        g.select(".nv-y.nv-axis")
-            .attr("transform", "translate(" + availableWidth + ",0)");
-      }
-
-
-      //------------------------------------------------------------
-      // Main Chart Component(s)
-
-      bars
-        .width(availableWidth)
-        .height(availableHeight)
-        .color(data.map(function(d,i) {
-          return d.color || color(d, i);
-        }).filter(function(d,i) { return !data[i].disabled }));
-
-
-      var barsWrap = g.select('.nv-barsWrap')
-          .datum(data.filter(function(d) { return !d.disabled }))
-
-      barsWrap.transition().call(bars);
-
-      //------------------------------------------------------------
-
-
-      //------------------------------------------------------------
-      // Setup Axes
-
-      if (showXAxis) {
-        xAxis
-          .scale(x)
-          .tickSize(-availableHeight, 0);
-
-        g.select('.nv-x.nv-axis')
-            .attr('transform', 'translate(0,' + y.range()[0] + ')');
-        g.select('.nv-x.nv-axis')
-            .transition()
-            .call(xAxis);
-      }
-
-      if (showYAxis) {
-        yAxis
-          .scale(y)
-          .ticks( availableHeight / 36 )
-          .tickSize( -availableWidth, 0);
-
-        g.select('.nv-y.nv-axis')
-          .transition()
-            .call(yAxis);
-      }
-      //------------------------------------------------------------
-
-
-      //============================================================
-      // Event Handling/Dispatching (in chart's scope)
-      //------------------------------------------------------------
-
-      legend.dispatch.on('legendClick', function(d,i) {
-        d.disabled = !d.disabled;
-
-        if (!data.filter(function(d) { return !d.disabled }).length) {
-          data.map(function(d) {
-            d.disabled = false;
-            wrap.selectAll('.nv-series').classed('disabled', false);
-            return d;
-          });
-        }
-
-        state.disabled = data.map(function(d) { return !!d.disabled });
-        dispatch.stateChange(state);
-
-        selection.transition().call(chart);
-      });
-
-      legend.dispatch.on('legendDblclick', function(d) {
-          //Double clicking should always enable current series, and disabled all others.
-          data.forEach(function(d) {
-             d.disabled = true;
-          });
-          d.disabled = false;
-
-          state.disabled = data.map(function(d) { return !!d.disabled });
-          dispatch.stateChange(state);
-          chart.update();
-      });
-
-      dispatch.on('tooltipShow', function(e) {
-        if (tooltips) showTooltip(e, that.parentNode);
-      });
-
-
-      dispatch.on('changeState', function(e) {
-
-        if (typeof e.disabled !== 'undefined') {
-          data.forEach(function(series,i) {
-            series.disabled = e.disabled[i];
-          });
-
-          state.disabled = e.disabled;
-        }
-
-        chart.update();
-      });
-
-      //============================================================
-
-    });
-
-    return chart;
-  }
-
-
-  //============================================================
-  // Event Handling/Dispatching (out of chart's scope)
-  //------------------------------------------------------------
-
-  bars.dispatch.on('elementMouseover.tooltip', function(e) {
-    e.pos = [e.pos[0] +  margin.left, e.pos[1] + margin.top];
-    dispatch.tooltipShow(e);
-  });
-
-  bars.dispatch.on('elementMouseout.tooltip', function(e) {
-    dispatch.tooltipHide(e);
-  });
-
-  dispatch.on('tooltipHide', function() {
-    if (tooltips) nv.tooltip.cleanup();
-  });
-
-  //============================================================
-
-
-  //============================================================
-  // Expose Public Variables
-  //------------------------------------------------------------
-
-  // expose chart's sub-components
-  chart.dispatch = dispatch;
-  chart.bars = bars;
-  chart.legend = legend;
-  chart.xAxis = xAxis;
-  chart.yAxis = yAxis;
-
-  d3.rebind(chart, bars, 'defined', 'isArea', 'x', 'y', 'size', 'xScale', 'yScale',
-    'xDomain', 'yDomain', 'xRange', 'yRange', 'forceX', 'forceY', 'interactive', 'clipEdge', 'clipVoronoi', 'id', 'interpolate','highlightPoint','clearHighlights', 'interactive');
-
-  chart.options = nv.utils.optionsFunc.bind(chart);
-
-  chart.margin = function(_) {
-    if (!arguments.length) return margin;
-    margin.top    = typeof _.top    != 'undefined' ? _.top    : margin.top;
-    margin.right  = typeof _.right  != 'undefined' ? _.right  : margin.right;
-    margin.bottom = typeof _.bottom != 'undefined' ? _.bottom : margin.bottom;
-    margin.left   = typeof _.left   != 'undefined' ? _.left   : margin.left;
-    return chart;
-  };
-
-  chart.width = function(_) {
-    if (!arguments.length) return width;
-    width = _;
-    return chart;
-  };
-
-  chart.height = function(_) {
-    if (!arguments.length) return height;
-    height = _;
-    return chart;
-  };
-
-  chart.color = function(_) {
-    if (!arguments.length) return color;
-    color = nv.utils.getColor(_);
-    legend.color(color);
-    return chart;
-  };
-
-  chart.showLegend = function(_) {
-    if (!arguments.length) return showLegend;
-    showLegend = _;
-    return chart;
-  };
-
-  chart.showXAxis = function(_) {
-    if (!arguments.length) return showXAxis;
-    showXAxis = _;
-    return chart;
-  };
-
-  chart.showYAxis = function(_) {
-    if (!arguments.length) return showYAxis;
-    showYAxis = _;
-    return chart;
-  };
-
-  chart.rightAlignYAxis = function(_) {
-    if(!arguments.length) return rightAlignYAxis;
-    rightAlignYAxis = _;
-    yAxis.orient( (_) ? 'right' : 'left');
-    return chart;
-  };
-
-  chart.tooltips = function(_) {
-    if (!arguments.length) return tooltips;
-    tooltips = _;
-    return chart;
-  };
-
-  chart.tooltipContent = function(_) {
-    if (!arguments.length) return tooltip;
-    tooltip = _;
-    return chart;
-  };
-
-  chart.state = function(_) {
-    if (!arguments.length) return state;
-    state = _;
-    return chart;
-  };
-
-  chart.defaultState = function(_) {
-    if (!arguments.length) return defaultState;
-    defaultState = _;
-    return chart;
-  };
-
-  chart.noData = function(_) {
-    if (!arguments.length) return noData;
-    noData = _;
-    return chart;
-  };
-
-  chart.transitionDuration = function(_) {
-    if (!arguments.length) return transitionDuration;
-    transitionDuration = _;
-    return chart;
-  };
-
-  //============================================================
-
-
-  return chart;
-}
-nv.models.indentedTree = function() {
-  "use strict";
-  //============================================================
-  // Public Variables with Default Settings
-  //------------------------------------------------------------
-
-  var margin = {top: 0, right: 0, bottom: 0, left: 0} //TODO: implement, maybe as margin on the containing div
-    , width = 960
-    , height = 500
-    , color = nv.utils.defaultColor()
-    , id = Math.floor(Math.random() * 10000)
-    , header = true
-    , filterZero = false
-    , noData = "No Data Available."
-    , childIndent = 20
-    , columns = [{key:'key', label: 'Name', type:'text'}] //TODO: consider functions like chart.addColumn, chart.removeColumn, instead of a block like this
-    , tableClass = null
-    , iconOpen = 'images/grey-plus.png' //TODO: consider removing this and replacing with a '+' or '-' unless user defines images
-    , iconClose = 'images/grey-minus.png'
-    , dispatch = d3.dispatch('elementClick', 'elementDblclick', 'elementMouseover', 'elementMouseout')
-    , getUrl = function(d) { return d.url }
-    ;
-
-  //============================================================
-
-  var idx = 0;
-
-  function chart(selection) {
-    selection.each(function(data) {
-      var depth = 1,
-          container = d3.select(this);
-
-      var tree = d3.layout.tree()
-          .children(function(d) { return d.values })
-          .size([height, childIndent]); //Not sure if this is needed now that the result is HTML
-
-      chart.update = function() { container.transition().duration(600).call(chart) };
-
-
-      //------------------------------------------------------------
-      // Display No Data message if there's nothing to show.
-      if (!data[0]) data[0] = {key: noData};
-
-      //------------------------------------------------------------
-
-
-      var nodes = tree.nodes(data[0]);
-
-      // nodes.map(function(d) {
-      //   d.id = i++;
-      // })
-
-      //------------------------------------------------------------
-      // Setup containers and skeleton of chart
-
-      var wrap = d3.select(this).selectAll('div').data([[nodes]]);
-      var wrapEnter = wrap.enter().append('div').attr('class', 'nvd3 nv-wrap nv-indentedtree');
-      var tableEnter = wrapEnter.append('table');
-      var table = wrap.select('table').attr('width', '100%').attr('class', tableClass);
-
-      //------------------------------------------------------------
-
-
-      if (header) {
-        var thead = tableEnter.append('thead');
-
-        var theadRow1 = thead.append('tr');
-
-        columns.forEach(function(column) {
-          theadRow1
-            .append('th')
-              .attr('width', column.width ? column.width : '10%')
-              .style('text-align', column.type == 'numeric' ? 'right' : 'left')
-            .append('span')
-              .text(column.label);
-        });
-      }
-
-
-      var tbody = table.selectAll('tbody')
-                    .data(function(d) { return d });
-      tbody.enter().append('tbody');
-
-
-
-      //compute max generations
-      depth = d3.max(nodes, function(node) { return node.depth });
-      tree.size([height, depth * childIndent]); //TODO: see if this is necessary at all
-
-
-      // Update the nodes…
-      var node = tbody.selectAll('tr')
-          // .data(function(d) { return d; }, function(d) { return d.id || (d.id == ++i)});
-          .data(function(d) { return d.filter(function(d) { return (filterZero && !d.children) ? filterZero(d) :  true; } )}, function(d,i) { return d.id || (d.id || ++idx)});
-          //.style('display', 'table-row'); //TODO: see if this does anything
-
-      node.exit().remove();
-
-      node.select('img.nv-treeicon')
-          .attr('src', icon)
-          .classed('folded', folded);
-
-      var nodeEnter = node.enter().append('tr');
-
-
-      columns.forEach(function(column, index) {
-
-        var nodeName = nodeEnter.append('td')
-            .style('padding-left', function(d) { return (index ? 0 : d.depth * childIndent + 12 + (icon(d) ? 0 : 16)) + 'px' }, 'important') //TODO: check why I did the ternary here
-            .style('text-align', column.type == 'numeric' ? 'right' : 'left');
-
-
-        if (index == 0) {
-          nodeName.append('img')
-              .classed('nv-treeicon', true)
-              .classed('nv-folded', folded)
-              .attr('src', icon)
-              .style('width', '14px')
-              .style('height', '14px')
-              .style('padding', '0 1px')
-              .style('display', function(d) { return icon(d) ? 'inline-block' : 'none'; })
-              .on('click', click);
-        }
-
-
-        nodeName.each(function(d) {
-          if (!index && getUrl(d))
-            d3.select(this)
-              .append('a')
-              .attr('href',getUrl)
-              .attr('class', d3.functor(column.classes))
-              .append('span')
-          else
-            d3.select(this)
-              .append('span')
-
-            d3.select(this).select('span')
-              .attr('class', d3.functor(column.classes) )
-              .text(function(d) { return column.format ? column.format(d) :
-                                        (d[column.key] || '-') });
-          });
-
-        if  (column.showCount) {
-          nodeName.append('span')
-              .attr('class', 'nv-childrenCount');
-
-          node.selectAll('span.nv-childrenCount').text(function(d) {
-                return ((d.values && d.values.length) || (d._values && d._values.length)) ?                                   //If this is a parent
-                    '(' + ((d.values && (d.values.filter(function(d) { return filterZero ? filterZero(d) :  true; }).length)) //If children are in values check its children and filter
-                    || (d._values && d._values.filter(function(d) { return filterZero ? filterZero(d) :  true; }).length)     //Otherwise, do the same, but with the other name, _values...
-                    || 0) + ')'                                                                                               //This is the catch-all in case there are no children after a filter
-                    : ''                                                                                                     //If this is not a parent, just give an empty string
-            });
-        }
-
-        // if (column.click)
-        //   nodeName.select('span').on('click', column.click);
-
-      });
-
-      node
-        .order()
-        .on('click', function(d) { 
-          dispatch.elementClick({
-            row: this, //TODO: decide whether or not this should be consistent with scatter/line events or should be an html link (a href)
-            data: d,
-            pos: [d.x, d.y]
-          });
-        })
-        .on('dblclick', function(d) { 
-          dispatch.elementDblclick({
-            row: this,
-            data: d,
-            pos: [d.x, d.y]
-          });
-        })
-        .on('mouseover', function(d) { 
-          dispatch.elementMouseover({
-            row: this,
-            data: d,
-            pos: [d.x, d.y]
-          });
-        })
-        .on('mouseout', function(d) { 
-          dispatch.elementMouseout({
-            row: this,
-            data: d,
-            pos: [d.x, d.y]
-          });
-        });
-
-
-
-
-      // Toggle children on click.
-      function click(d, _, unshift) {
-        d3.event.stopPropagation();
-
-        if(d3.event.shiftKey && !unshift) {
-          //If you shift-click, it'll toggle fold all the children, instead of itself
-          d3.event.shiftKey = false;
-          d.values && d.values.forEach(function(node){
-            if (node.values || node._values) {
-              click(node, 0, true);
-            }
-          });
-          return true;
-        }
-        if(!hasChildren(d)) {
-          //download file
-          //window.location.href = d.url;
-          return true;
-        }
-        if (d.values) {
-          d._values = d.values;
-          d.values = null;
-        } else {
-          d.values = d._values;
-          d._values = null;
-        }
-        chart.update();
-      }
-
-
-      function icon(d) {
-        return (d._values && d._values.length) ? iconOpen : (d.values && d.values.length) ? iconClose : '';
-      }
-
-      function folded(d) {
-        return (d._values && d._values.length);
-      }
-
-      function hasChildren(d) {
-        var values = d.values || d._values;
-
-        return (values && values.length);
-      }
-
-
-    });
-
-    return chart;
-  }
-
-
-  //============================================================
-  // Expose Public Variables
-  //------------------------------------------------------------
-  chart.options = nv.utils.optionsFunc.bind(chart);
-  
-  chart.margin = function(_) {
-    if (!arguments.length) return margin;
-    margin.top    = typeof _.top    != 'undefined' ? _.top    : margin.top;
-    margin.right  = typeof _.right  != 'undefined' ? _.right  : margin.right;
-    margin.bottom = typeof _.bottom != 'undefined' ? _.bottom : margin.bottom;
-    margin.left   = typeof _.left   != 'undefined' ? _.left   : margin.left;
-    return chart;
-  };
-
-  chart.width = function(_) {
-    if (!arguments.length) return width;
-    width = _;
-    return chart;
-  };
-
-  chart.height = function(_) {
-    if (!arguments.length) return height;
-    height = _;
-    return chart;
-  };
-
-  chart.color = function(_) {
-    if (!arguments.length) return color;
-    color = nv.utils.getColor(_);
-    scatter.color(color);
-    return chart;
-  };
-
-  chart.id = function(_) {
-    if (!arguments.length) return id;
-    id = _;
-    return chart;
-  };
-
-  chart.header = function(_) {
-    if (!arguments.length) return header;
-    header = _;
-    return chart;
-  };
-
-  chart.noData = function(_) {
-    if (!arguments.length) return noData;
-    noData = _;
-    return chart;
-  };
-
-  chart.filterZero = function(_) {
-    if (!arguments.length) return filterZero;
-    filterZero = _;
-    return chart;
-  };
-
-  chart.columns = function(_) {
-    if (!arguments.length) return columns;
-    columns = _;
-    return chart;
-  };
-
-  chart.tableClass = function(_) {
-    if (!arguments.length) return tableClass;
-    tableClass = _;
-    return chart;
-  };
-
-  chart.iconOpen = function(_){
-     if (!arguments.length) return iconOpen;
-    iconOpen = _;
-    return chart;
-  }
-
-  chart.iconClose = function(_){
-     if (!arguments.length) return iconClose;
-    iconClose = _;
-    return chart;
-  }
-
-  chart.getUrl = function(_){
-     if (!arguments.length) return getUrl;
-    getUrl = _;
-    return chart;
-  }
-
-  //============================================================
-
-
-  return chart;
-};nv.models.legend = function() {
-  "use strict";
-  //============================================================
-  // Public Variables with Default Settings
-  //------------------------------------------------------------
-
-  var margin = {top: 5, right: 0, bottom: 5, left: 0}
-    , width = 400
-    , height = 20
-    , getKey = function(d) { return d.key }
-    , color = nv.utils.defaultColor()
-    , align = true
-    , rightAlign = true
-    , updateState = true   //If true, legend will update data.disabled and trigger a 'stateChange' dispatch.
-    , radioButtonMode = false   //If true, clicking legend items will cause it to behave like a radio button. (only one can be selected at a time)
-    , dispatch = d3.dispatch('legendClick', 'legendDblclick', 'legendMouseover', 'legendMouseout', 'stateChange')
-    ;
-
-  //============================================================
-
-
-  function chart(selection) {
-    selection.each(function(data) {
-      var availableWidth = width - margin.left - margin.right,
-          container = d3.select(this);
-
-
-      //------------------------------------------------------------
-      // Setup containers and skeleton of chart
-
-      var wrap = container.selectAll('g.nv-legend').data([data]);
-      var gEnter = wrap.enter().append('g').attr('class', 'nvd3 nv-legend').append('g');
-      var g = wrap.select('g');
-
-      wrap.attr('transform', 'translate(' + margin.left + ',' + margin.top + ')');
-
-      //------------------------------------------------------------
-
-
-      var series = g.selectAll('.nv-series')
-          .data(function(d) { return d });
-      var seriesEnter = series.enter().append('g').attr('class', 'nv-series')
-          .on('mouseover', function(d,i) {
-            dispatch.legendMouseover(d,i);  //TODO: Make consistent with other event objects
-          })
-          .on('mouseout', function(d,i) {
-            dispatch.legendMouseout(d,i);
-          })
-          .on('click', function(d,i) {
-            dispatch.legendClick(d,i);
-            if (updateState) {
-               if (radioButtonMode) {
-                   //Radio button mode: set every series to disabled,
-                   //  and enable the clicked series.
-                   data.forEach(function(series) { series.disabled = true});
-                   d.disabled = false;
-               }
-               else {
-                   d.disabled = !d.disabled;
-                   if (data.every(function(series) { return series.disabled})) {
-                       //the default behavior of NVD3 legends is, if every single series
-                       // is disabled, turn all series' back on.
-                       data.forEach(function(series) { series.disabled = false});
-                   }
-               }
-               dispatch.stateChange({
-                  disabled: data.map(function(d) { return !!d.disabled })
-               });
-            }
-          })
-          .on('dblclick', function(d,i) {
-            dispatch.legendDblclick(d,i);
-            if (updateState) {
-                //the default behavior of NVD3 legends, when double clicking one,
-                // is to set all other series' to false, and make the double clicked series enabled.
-                data.forEach(function(series) {
-                   series.disabled = true;
-                });
-                d.disabled = false; 
-                dispatch.stateChange({
-                    disabled: data.map(function(d) { return !!d.disabled })
-                });
-            }
-          });
-      seriesEnter.append('circle')
-          .style('stroke-width', 2)
-          .attr('class','nv-legend-symbol')
-          .attr('r', 5);
-      seriesEnter.append('text')
-          .attr('text-anchor', 'start')
-          .attr('class','nv-legend-text')
-          .attr('dy', '.32em')
-          .attr('dx', '8');
-      series.classed('disabled', function(d) { return d.disabled });
-      series.exit().remove();
-      series.select('circle')
-          .style('fill', function(d,i) { return d.color || color(d,i)})
-          .style('stroke', function(d,i) { return d.color || color(d, i) });
-      series.select('text').text(getKey);
-
-
-      //TODO: implement fixed-width and max-width options (max-width is especially useful with the align option)
-
-      // NEW ALIGNING CODE, TODO: clean up
-      if (align) {
-
-        var seriesWidths = [];
-        series.each(function(d,i) {
-              var legendText = d3.select(this).select('text');
-              var nodeTextLength;
-              try {
-                nodeTextLength = legendText.node().getComputedTextLength();
-              }
-              catch(e) {
-                nodeTextLength = nv.utils.calcApproxTextWidth(legendText);
-              }
-             
-              seriesWidths.push(nodeTextLength + 28); // 28 is ~ the width of the circle plus some padding
-            });
-
-        var seriesPerRow = 0;
-        var legendWidth = 0;
-        var columnWidths = [];
-
-        while ( legendWidth < availableWidth && seriesPerRow < seriesWidths.length) {
-          columnWidths[seriesPerRow] = seriesWidths[seriesPerRow];
-          legendWidth += seriesWidths[seriesPerRow++];
-        }
-        if (seriesPerRow === 0) seriesPerRow = 1; //minimum of one series per row
-
-
-        while ( legendWidth > availableWidth && seriesPerRow > 1 ) {
-          columnWidths = [];
-          seriesPerRow--;
-
-          for (var k = 0; k < seriesWidths.length; k++) {
-            if (seriesWidths[k] > (columnWidths[k % seriesPerRow] || 0) )
-              columnWidths[k % seriesPerRow] = seriesWidths[k];
-          }
-
-          legendWidth = columnWidths.reduce(function(prev, cur, index, array) {
-                          return prev + cur;
-                        });
-        }
-
-        var xPositions = [];
-        for (var i = 0, curX = 0; i < seriesPerRow; i++) {
-            xPositions[i] = curX;
-            curX += columnWidths[i];
-        }
-
-        series
-            .attr('transform', function(d, i) {
-              return 'translate(' + xPositions[i % seriesPerRow] + ',' + (5 + Math.floor(i / seriesPerRow) * 20) + ')';
-            });
-
-        //position legend as far right as possible within the total width
-        if (rightAlign) {
-           g.attr('transform', 'translate(' + (width - margin.right - legendWidth) + ',' + margin.top + ')');
-        }
-        else {
-           g.attr('transform', 'translate(0' + ',' + margin.top + ')');
-        }
-
-        height = margin.top + margin.bottom + (Math.ceil(seriesWidths.length / seriesPerRow) * 20);
-
-      } else {
-
-        var ypos = 5,
-            newxpos = 5,
-            maxwidth = 0,
-            xpos;
-        series
-            .attr('transform', function(d, i) {
-              var length = d3.select(this).select('text').node().getComputedTextLength() + 28;
-              xpos = newxpos;
-
-              if (width < margin.left + margin.right + xpos + length) {
-                newxpos = xpos = 5;
-                ypos += 20;
-              }
-
-              newxpos += length;
-              if (newxpos > maxwidth) maxwidth = newxpos;
-
-              return 'translate(' + xpos + ',' + ypos + ')';
-            });
-
-        //position legend as far right as possible within the total width
-        g.attr('transform', 'translate(' + (width - margin.right - maxwidth) + ',' + margin.top + ')');
-
-        height = margin.top + margin.bottom + ypos + 15;
-
-      }
-
-    });
-
-    return chart;
-  }
-
-
-  //============================================================
-  // Expose Public Variables
-  //------------------------------------------------------------
-
-  chart.dispatch = dispatch;
-  chart.options = nv.utils.optionsFunc.bind(chart);
-  
-  chart.margin = function(_) {
-    if (!arguments.length) return margin;
-    margin.top    = typeof _.top    != 'undefined' ? _.top    : margin.top;
-    margin.right  = typeof _.right  != 'undefined' ? _.right  : margin.right;
-    margin.bottom = typeof _.bottom != 'undefined' ? _.bottom : margin.bottom;
-    margin.left   = typeof _.left   != 'undefined' ? _.left   : margin.left;
-    return chart;
-  };
-
-  chart.width = function(_) {
-    if (!arguments.length) return width;
-    width = _;
-    return chart;
-  };
-
-  chart.height = function(_) {
-    if (!arguments.length) return height;
-    height = _;
-    return chart;
-  };
-
-  chart.key = function(_) {
-    if (!arguments.length) return getKey;
-    getKey = _;
-    return chart;
-  };
-
-  chart.color = function(_) {
-    if (!arguments.length) return color;
-    color = nv.utils.getColor(_);
-    return chart;
-  };
-
-  chart.align = function(_) {
-    if (!arguments.length) return align;
-    align = _;
-    return chart;
-  };
-
-  chart.rightAlign = function(_) {
-    if (!arguments.length) return rightAlign;
-    rightAlign = _;
-    return chart;
-  };
-
-  chart.updateState = function(_) {
-    if (!arguments.length) return updateState;
-    updateState = _;
-    return chart;
-  };
-
-  chart.radioButtonMode = function(_) {
-    if (!arguments.length) return radioButtonMode;
-    radioButtonMode = _;
-    return chart;
-  };
-
-  //============================================================
-
-
-  return chart;
-}
-
-nv.models.line = function() {
-  "use strict";
-  //============================================================
-  // Public Variables with Default Settings
-  //------------------------------------------------------------
-
-  var  scatter = nv.models.scatter()
-    ;
-
-  var margin = {top: 0, right: 0, bottom: 0, left: 0}
-    , width = 960
-    , height = 500
-    , color = nv.utils.defaultColor() // a function that returns a color
-    , getX = function(d) { return d.x } // accessor to get the x value from a data point
-    , getY = function(d) { return d.y } // accessor to get the y value from a data point
-    , defined = function(d,i) { return !isNaN(getY(d,i)) && getY(d,i) !== null } // allows a line to be not continuous when it is not defined
-    , isArea = function(d) { return d.area } // decides if a line is an area or just a line
-    , clipEdge = false // if true, masks lines within x and y scale
-    , x //can be accessed via chart.xScale()
-    , y //can be accessed via chart.yScale()
-    , interpolate = "linear" // controls the line interpolation
-    ;
-
-  scatter
-    .size(16) // default size
-    .sizeDomain([16,256]) //set to speed up calculation, needs to be unset if there is a custom size accessor
-    ;
-
-  //============================================================
-
-
-  //============================================================
-  // Private Variables
-  //------------------------------------------------------------
-
-  var x0, y0 //used to store previous scales
-      ;
-
-  //============================================================
-
-
-  function chart(selection) {
-    selection.each(function(data) {
-      var availableWidth = width - margin.left - margin.right,
-          availableHeight = height - margin.top - margin.bottom,
-          container = d3.select(this);
-
-      //------------------------------------------------------------
-      // Setup Scales
-
-      x = scatter.xScale();
-      y = scatter.yScale();
-
-      x0 = x0 || x;
-      y0 = y0 || y;
-
-      //------------------------------------------------------------
-
-
-      //------------------------------------------------------------
-      // Setup containers and skeleton of chart
-
-      var wrap = container.selectAll('g.nv-wrap.nv-line').data([data]);
-      var wrapEnter = wrap.enter().append('g').attr('class', 'nvd3 nv-wrap nv-line');
-      var defsEnter = wrapEnter.append('defs');
-      var gEnter = wrapEnter.append('g');
-      var g = wrap.select('g')
-
-      gEnter.append('g').attr('class', 'nv-groups');
-      gEnter.append('g').attr('class', 'nv-scatterWrap');
-
-      wrap.attr('transform', 'translate(' + margin.left + ',' + margin.top + ')');
-
-      //------------------------------------------------------------
-
-
-
-
-      scatter
-        .width(availableWidth)
-        .height(availableHeight)
-
-      var scatterWrap = wrap.select('.nv-scatterWrap');
-          //.datum(data); // Data automatically trickles down from the wrap
-
-      scatterWrap.transition().call(scatter);
-
-
-
-      defsEnter.append('clipPath')
-          .attr('id', 'nv-edge-clip-' + scatter.id())
-        .append('rect');
-
-      wrap.select('#nv-edge-clip-' + scatter.id() + ' rect')
-          .attr('width', availableWidth)
-          .attr('height', availableHeight);
-
-      g   .attr('clip-path', clipEdge ? 'url(#nv-edge-clip-' + scatter.id() + ')' : '');
-      scatterWrap
-          .attr('clip-path', clipEdge ? 'url(#nv-edge-clip-' + scatter.id() + ')' : '');
-
-
-
-
-      var groups = wrap.select('.nv-groups').selectAll('.nv-group')
-          .data(function(d) { return d }, function(d) { return d.key });
-      groups.enter().append('g')
-          .style('stroke-opacity', 1e-6)
-          .style('fill-opacity', 1e-6);
-
-      groups.exit().remove();
-
-      groups
-          .attr('class', function(d,i) { return 'nv-group nv-series-' + i })
-          .classed('hover', function(d) { return d.hover })
-          .style('fill', function(d,i){ return color(d, i) })
-          .style('stroke', function(d,i){ return color(d, i)});
-      groups
-          .transition()
-          .style('stroke-opacity', 1)
-          .style('fill-opacity', .5);
-
-
-
-      var areaPaths = groups.selectAll('path.nv-area')
-          .data(function(d) { return isArea(d) ? [d] : [] }); // this is done differently than lines because I need to check if series is an area
-      areaPaths.enter().append('path')
-          .attr('class', 'nv-area')
-          .attr('d', function(d) {
-            return d3.svg.area()
-                .interpolate(interpolate)
-                .defined(defined)
-                .x(function(d,i) { return nv.utils.NaNtoZero(x0(getX(d,i))) })
-                .y0(function(d,i) { return nv.utils.NaNtoZero(y0(getY(d,i))) })
-                .y1(function(d,i) { return y0( y.domain()[0] <= 0 ? y.domain()[1] >= 0 ? 0 : y.domain()[1] : y.domain()[0] ) })
-                //.y1(function(d,i) { return y0(0) }) //assuming 0 is within y domain.. may need to tweak this
-                .apply(this, [d.values])
-          });
-      groups.exit().selectAll('path.nv-area')
-           .remove();
-
-      areaPaths
-          .transition()
-          .attr('d', function(d) {
-            return d3.svg.area()
-                .interpolate(interpolate)
-                .defined(defined)
-                .x(function(d,i) { return nv.utils.NaNtoZero(x(getX(d,i))) })
-                .y0(function(d,i) { return nv.utils.NaNtoZero(y(getY(d,i))) })
-                .y1(function(d,i) { return y( y.domain()[0] <= 0 ? y.domain()[1] >= 0 ? 0 : y.domain()[1] : y.domain()[0] ) })
-                //.y1(function(d,i) { return y0(0) }) //assuming 0 is within y domain.. may need to tweak this
-                .apply(this, [d.values])
-          });
-
-
-
-      var linePaths = groups.selectAll('path.nv-line')
-          .data(function(d) { return [d.values] });
-      linePaths.enter().append('path')
-          .attr('class', 'nv-line')
-          .attr('d',
-            d3.svg.line()
-              .interpolate(interpolate)
-              .defined(defined)
-              .x(function(d,i) { return nv.utils.NaNtoZero(x0(getX(d,i))) })
-              .y(function(d,i) { return nv.utils.NaNtoZero(y0(getY(d,i))) })
-          );
-
-      linePaths
-          .transition()
-          .attr('d',
-            d3.svg.line()
-              .interpolate(interpolate)
-              .defined(defined)
-              .x(function(d,i) { return nv.utils.NaNtoZero(x(getX(d,i))) })
-              .y(function(d,i) { return nv.utils.NaNtoZero(y(getY(d,i))) })
-          );
-
-
-
-      //store old scales for use in transitions on update
-      x0 = x.copy();
-      y0 = y.copy();
-
-    });
-
-    return chart;
-  }
-
-
-  //============================================================
-  // Expose Public Variables
-  //------------------------------------------------------------
-
-  chart.dispatch = scatter.dispatch;
-  chart.scatter = scatter;
-
-  d3.rebind(chart, scatter, 'id', 'interactive', 'size', 'xScale', 'yScale', 'zScale', 'xDomain', 'yDomain', 'xRange', 'yRange',
-    'sizeDomain', 'forceX', 'forceY', 'forceSize', 'clipVoronoi', 'useVoronoi', 'clipRadius', 'padData','highlightPoint','clearHighlights');
-
-  chart.options = nv.utils.optionsFunc.bind(chart);
-
-  chart.margin = function(_) {
-    if (!arguments.length) return margin;
-    margin.top    = typeof _.top    != 'undefined' ? _.top    : margin.top;
-    margin.right  = typeof _.right  != 'undefined' ? _.right  : margin.right;
-    margin.bottom = typeof _.bottom != 'undefined' ? _.bottom : margin.bottom;
-    margin.left   = typeof _.left   != 'undefined' ? _.left   : margin.left;
-    return chart;
-  };
-
-  chart.width = function(_) {
-    if (!arguments.length) return width;
-    width = _;
-    return chart;
-  };
-
-  chart.height = function(_) {
-    if (!arguments.length) return height;
-    height = _;
-    return chart;
-  };
-
-  chart.x = function(_) {
-    if (!arguments.length) return getX;
-    getX = _;
-    scatter.x(_);
-    return chart;
-  };
-
-  chart.y = function(_) {
-    if (!arguments.length) return getY;
-    getY = _;
-    scatter.y(_);
-    return chart;
-  };
-
-  chart.clipEdge = function(_) {
-    if (!arguments.length) return clipEdge;
-    clipEdge = _;
-    return chart;
-  };
-
-  chart.color = function(_) {
-    if (!arguments.length) return color;
-    color = nv.utils.getColor(_);
-    scatter.color(color);
-    return chart;
-  };
-
-  chart.interpolate = function(_) {
-    if (!arguments.length) return interpolate;
-    interpolate = _;
-    return chart;
-  };
-
-  chart.defined = function(_) {
-    if (!arguments.length) return defined;
-    defined = _;
-    return chart;
-  };
-
-  chart.isArea = function(_) {
-    if (!arguments.length) return isArea;
-    isArea = d3.functor(_);
-    return chart;
-  };
-
-  //============================================================
-
-
-  return chart;
-}
-
-nv.models.lineChart = function() {
-  "use strict";
-  //============================================================
-  // Public Variables with Default Settings
-  //------------------------------------------------------------
-
-  var lines = nv.models.line()
-    , xAxis = nv.models.axis()
-    , yAxis = nv.models.axis()
-    , legend = nv.models.legend()
-    , interactiveLayer = nv.interactiveGuideline()
-    ;
-
-  var margin = {top: 30, right: 20, bottom: 50, left: 60}
-    , color = nv.utils.defaultColor()
-    , width = null
-    , height = null
-    , showLegend = true
-    , showXAxis = true
-    , showYAxis = true
-    , rightAlignYAxis = false
-    , useInteractiveGuideline = false
-    , tooltips = true
-    , tooltip = function(key, x, y, e, graph) {
-        return '<h3>' + key + '</h3>' +
-               '<p>' +  y + ' at ' + x + '</p>'
-      }
-    , x
-    , y
-    , state = {}
-    , defaultState = null
-    , noData = 'No Data Available.'
-    , dispatch = d3.dispatch('tooltipShow', 'tooltipHide', 'stateChange', 'changeState')
-    , transitionDuration = 250
-    ;
-
-  xAxis
-    .orient('bottom')
-    .tickPadding(7)
-    ;
-  yAxis
-    .orient((rightAlignYAxis) ? 'right' : 'left')
-    ;
-
-  //============================================================
-
-
-  //============================================================
-  // Private Variables
-  //------------------------------------------------------------
-
-  var showTooltip = function(e, offsetElement) {
-    var left = e.pos[0] + ( offsetElement.offsetLeft || 0 ),
-        top = e.pos[1] + ( offsetElement.offsetTop || 0),
-        x = xAxis.tickFormat()(lines.x()(e.point, e.pointIndex)),
-        y = yAxis.tickFormat()(lines.y()(e.point, e.pointIndex)),
-        content = tooltip(e.series.key, x, y, e, chart);
-
-    nv.tooltip.show([left, top], content, null, null, offsetElement);
-  };
-
-  //============================================================
-
-
-  function chart(selection) {
-    selection.each(function(data) {
-      var container = d3.select(this),
-          that = this;
-
-      var availableWidth = (width  || parseInt(container.style('width')) || 960)
-                             - margin.left - margin.right,
-          availableHeight = (height || parseInt(container.style('height')) || 400)
-                             - margin.top - margin.bottom;
-
-
-      chart.update = function() { container.transition().duration(transitionDuration).call(chart) };
-      chart.container = this;
-
-      //set state.disabled
-      state.disabled = data.map(function(d) { return !!d.disabled });
-
-    
-      if (!defaultState) {
-        var key;
-        defaultState = {};
-        for (key in state) {
-          if (state[key] instanceof Array)
-            defaultState[key] = state[key].slice(0);
-          else
-            defaultState[key] = state[key];
-        }
-      }
-
-      //------------------------------------------------------------
-      // Display noData message if there's nothing to show.
-
-      if (!data || !data.length || !data.filter(function(d) { return d.values.length }).length) {
-        var noDataText = container.selectAll('.nv-noData').data([noData]);
-
-        noDataText.enter().append('text')
-          .attr('class', 'nvd3 nv-noData')
-          .attr('dy', '-.7em')
-          .style('text-anchor', 'middle');
-
-        noDataText
-          .attr('x', margin.left + availableWidth / 2)
-          .attr('y', margin.top + availableHeight / 2)
-          .text(function(d) { return d });
-
-        return chart;
-      } else {
-        container.selectAll('.nv-noData').remove();
-      }
-
-      //------------------------------------------------------------
-
-
-      //------------------------------------------------------------
-      // Setup Scales
-
-      x = lines.xScale();
-      y = lines.yScale();
-
-      //------------------------------------------------------------
-
-
-      //------------------------------------------------------------
-      // Setup containers and skeleton of chart
-
-      var wrap = container.selectAll('g.nv-wrap.nv-lineChart').data([data]);
-      var gEnter = wrap.enter().append('g').attr('class', 'nvd3 nv-wrap nv-lineChart').append('g');
-      var g = wrap.select('g');
-
-      gEnter.append("rect").style("opacity",0);
-      gEnter.append('g').attr('class', 'nv-x nv-axis');
-      gEnter.append('g').attr('class', 'nv-y nv-axis');
-      gEnter.append('g').attr('class', 'nv-linesWrap');
-      gEnter.append('g').attr('class', 'nv-legendWrap');
-      gEnter.append('g').attr('class', 'nv-interactive');
-
-      g.select("rect").attr("width",availableWidth).attr("height",availableHeight);
-      //------------------------------------------------------------
-      // Legend
-
-      if (showLegend) {
-        legend.width(availableWidth);
-
-        g.select('.nv-legendWrap')
-            .datum(data)
-            .call(legend);
-
-        if ( margin.top != legend.height()) {
-          margin.top = legend.height();
-          availableHeight = (height || parseInt(container.style('height')) || 400)
-                             - margin.top - margin.bottom;
-        }
-
-        wrap.select('.nv-legendWrap')
-            .attr('transform', 'translate(0,' + (-margin.top) +')')
-      }
-
-      //------------------------------------------------------------
-
-      wrap.attr('transform', 'translate(' + margin.left + ',' + margin.top + ')');
-
-      if (rightAlignYAxis) {
-          g.select(".nv-y.nv-axis")
-              .attr("transform", "translate(" + availableWidth + ",0)");
-      }
-
-      //------------------------------------------------------------
-      // Main Chart Component(s)
-
-      
-      //------------------------------------------------------------
-      //Set up interactive layer
-      if (useInteractiveGuideline) {
-        interactiveLayer
-           .width(availableWidth)
-           .height(availableHeight)
-           .margin({left:margin.left, top:margin.top})
-           .svgContainer(container)
-           .xScale(x);
-        wrap.select(".nv-interactive").call(interactiveLayer);
-      }
-
-
-      lines
-        .width(availableWidth)
-        .height(availableHeight)
-        .color(data.map(function(d,i) {
-          return d.color || color(d, i);
-        }).filter(function(d,i) { return !data[i].disabled }));
-
-
-      var linesWrap = g.select('.nv-linesWrap')
-          .datum(data.filter(function(d) { return !d.disabled }))
-
-      linesWrap.transition().call(lines);
-
-      //------------------------------------------------------------
-
-
-      //------------------------------------------------------------
-      // Setup Axes
-
-      if (showXAxis) {
-        xAxis
-          .scale(x)
-          .ticks( availableWidth / 100 )
-          .tickSize(-availableHeight, 0);
-
-        g.select('.nv-x.nv-axis')
-            .attr('transform', 'translate(0,' + y.range()[0] + ')');
-        g.select('.nv-x.nv-axis')
-            .transition()
-            .call(xAxis);
-      }
-
-      if (showYAxis) {
-        yAxis
-          .scale(y)
-          .ticks( availableHeight / 36 )
-          .tickSize( -availableWidth, 0);
-
-        g.select('.nv-y.nv-axis')
-            .transition()
-            .call(yAxis);
-      }
-      //------------------------------------------------------------
-
-
-      //============================================================
-      // Event Handling/Dispatching (in chart's scope)
-      //------------------------------------------------------------
-
-      legend.dispatch.on('stateChange', function(newState) {
-          state = newState;
-          dispatch.stateChange(state);
-          chart.update();
-      });
-
-      interactiveLayer.dispatch.on('elementMousemove', function(e) {
-          lines.clearHighlights();
-          var singlePoint, pointIndex, pointXLocation, allData = [];
-          data
-          .filter(function(series, i) { 
-            series.seriesIndex = i;
-            return !series.disabled; 
-          })
-          .forEach(function(series,i) {
-              pointIndex = nv.interactiveBisect(series.values, e.pointXValue, chart.x());
-              lines.highlightPoint(i, pointIndex, true);
-              var point = series.values[pointIndex];
-              if (typeof point === 'undefined') return;
-              if (typeof singlePoint === 'undefined') singlePoint = point;
-              if (typeof pointXLocation === 'undefined') pointXLocation = chart.xScale()(chart.x()(point,pointIndex));
-              allData.push({
-                  key: series.key,
-                  value: chart.y()(point, pointIndex),
-                  color: color(series,series.seriesIndex)
-              });
-          });
-          //Highlight the tooltip entry based on which point the mouse is closest to.
-          if (allData.length > 2) {
-            var yValue = chart.yScale().invert(e.mouseY);
-            var domainExtent = Math.abs(chart.yScale().domain()[0] - chart.yScale().domain()[1]);
-            var threshold = 0.03 * domainExtent;
-            var indexToHighlight = nv.nearestValueIndex(allData.map(function(d){return d.value}),yValue,threshold);
-            if (indexToHighlight !== null)
-              allData[indexToHighlight].highlight = true;
-          }
-
-          var xValue = xAxis.tickFormat()(chart.x()(singlePoint,pointIndex));
-          interactiveLayer.tooltip
-                  .position({left: pointXLocation + margin.left, top: e.mouseY + margin.top})
-                  .chartContainer(that.parentNode)
-                  .enabled(tooltips)
-                  .valueFormatter(function(d,i) {
-                     return yAxis.tickFormat()(d);
-                  })
-                  .data(
-                      {
-                        value: xValue,
-                        series: allData
-                      }
-                  )();
-
-          interactiveLayer.renderGuideLine(pointXLocation);
-
-      });
-
-      interactiveLayer.dispatch.on("elementMouseout",function(e) {
-          dispatch.tooltipHide();
-          lines.clearHighlights();
-      });
-
-      dispatch.on('tooltipShow', function(e) {
-        if (tooltips) showTooltip(e, that.parentNode);
-      });
-
-
-      dispatch.on('changeState', function(e) {
-
-        if (typeof e.disabled !== 'undefined') {
-          data.forEach(function(series,i) {
-            series.disabled = e.disabled[i];
-          });
-
-          state.disabled = e.disabled;
-        }
-
-        chart.update();
-      });
-
-      //============================================================
-
-    });
-
-    return chart;
-  }
-
-
-  //============================================================
-  // Event Handling/Dispatching (out of chart's scope)
-  //------------------------------------------------------------
-
-  lines.dispatch.on('elementMouseover.tooltip', function(e) {
-    e.pos = [e.pos[0] +  margin.left, e.pos[1] + margin.top];
-    dispatch.tooltipShow(e);
-  });
-
-  lines.dispatch.on('elementMouseout.tooltip', function(e) {
-    dispatch.tooltipHide(e);
-  });
-
-  dispatch.on('tooltipHide', function() {
-    if (tooltips) nv.tooltip.cleanup();
-  });
-
-  //============================================================
-
-
-  //============================================================
-  // Expose Public Variables
-  //------------------------------------------------------------
-
-  // expose chart's sub-components
-  chart.dispatch = dispatch;
-  chart.lines = lines;
-  chart.legend = legend;
-  chart.xAxis = xAxis;
-  chart.yAxis = yAxis;
-  chart.interactiveLayer = interactiveLayer;
-
-  d3.rebind(chart, lines, 'defined', 'isArea', 'x', 'y', 'size', 'xScale', 'yScale', 'xDomain', 'yDomain', 'xRange', 'yRange'
-    , 'forceX', 'forceY', 'interactive', 'clipEdge', 'clipVoronoi', 'useVoronoi','id', 'interpolate');
-
-  chart.options = nv.utils.optionsFunc.bind(chart);
-
-  chart.margin = function(_) {
-    if (!arguments.length) return margin;
-    margin.top    = typeof _.top    != 'undefined' ? _.top    : margin.top;
-    margin.right  = typeof _.right  != 'undefined' ? _.right  : margin.right;
-    margin.bottom = typeof _.bottom != 'undefined' ? _.bottom : margin.bottom;
-    margin.left   = typeof _.left   != 'undefined' ? _.left   : margin.left;
-    return chart;
-  };
-
-  chart.width = function(_) {
-    if (!arguments.length) return width;
-    width = _;
-    return chart;
-  };
-
-  chart.height = function(_) {
-    if (!arguments.length) return height;
-    height = _;
-    return chart;
-  };
-
-  chart.color = function(_) {
-    if (!arguments.length) return color;
-    color = nv.utils.getColor(_);
-    legend.color(color);
-    return chart;
-  };
-
-  chart.showLegend = function(_) {
-    if (!arguments.length) return showLegend;
-    showLegend = _;
-    return chart;
-  };
-
-  chart.showXAxis = function(_) {
-    if (!arguments.length) return showXAxis;
-    showXAxis = _;
-    return chart;
-  };
-
-  chart.showYAxis = function(_) {
-    if (!arguments.length) return showYAxis;
-    showYAxis = _;
-    return chart;
-  };
-
-  chart.rightAlignYAxis = function(_) {
-    if(!arguments.length) return rightAlignYAxis;
-    rightAlignYAxis = _;
-    yAxis.orient( (_) ? 'right' : 'left');
-    return chart;
-  };
-
-  chart.useInteractiveGuideline = function(_) {
-    if(!arguments.length) return useInteractiveGuideline;
-    useInteractiveGuideline = _;
-    if (_ === true) {
-       chart.interactive(false);
-       chart.useVoronoi(false);
-    }
-    return chart;
-  };
-
-  chart.tooltips = function(_) {
-    if (!arguments.length) return tooltips;
-    tooltips = _;
-    return chart;
-  };
-
-  chart.tooltipContent = function(_) {
-    if (!arguments.length) return tooltip;
-    tooltip = _;
-    return chart;
-  };
-
-  chart.state = function(_) {
-    if (!arguments.length) return state;
-    state = _;
-    return chart;
-  };
-
-  chart.defaultState = function(_) {
-    if (!arguments.length) return defaultState;
-    defaultState = _;
-    return chart;
-  };
-
-  chart.noData = function(_) {
-    if (!arguments.length) return noData;
-    noData = _;
-    return chart;
-  };
-
-  chart.transitionDuration = function(_) {
-    if (!arguments.length) return transitionDuration;
-    transitionDuration = _;
-    return chart;
-  };
-
-  //============================================================
-
-
-  return chart;
-}
-
-nv.models.linePlusBarChart = function() {
-  "use strict";
-  //============================================================
-  // Public Variables with Default Settings
-  //------------------------------------------------------------
-
-  var lines = nv.models.line()
-    , bars = nv.models.historicalBar()
-    , xAxis = nv.models.axis()
-    , y1Axis = nv.models.axis()
-    , y2Axis = nv.models.axis()
-    , legend = nv.models.legend()
-    ;
-
-  var margin = {top: 30, right: 60, bottom: 50, left: 60}
-    , width = null
-    , height = null
-    , getX = function(d) { return d.x }
-    , getY = function(d) { return d.y }
-    , color = nv.utils.defaultColor()
-    , showLegend = true
-    , tooltips = true
-    , tooltip = function(key, x, y, e, graph) {
-        return '<h3>' + key + '</h3>' +
-               '<p>' +  y + ' at ' + x + '</p>';
-      }
-    , x
-    , y1
-    , y2
-    , state = {}
-    , defaultState = null
-    , noData = "No Data Available."
-    , dispatch = d3.dispatch('tooltipShow', 'tooltipHide', 'stateChange', 'changeState')
-    ;
-
-  bars
-    .padData(true)
-    ;
-  lines
-    .clipEdge(false)
-    .padData(true)
-    ;
-  xAxis
-    .orient('bottom')
-    .tickPadding(7)
-    .highlightZero(false)
-    ;
-  y1Axis
-    .orient('left')
-    ;
-  y2Axis
-    .orient('right')
-    ;
-
-  //============================================================
-
-
-  //============================================================
-  // Private Variables
-  //------------------------------------------------------------
-
-  var showTooltip = function(e, offsetElement) {
-      var left = e.pos[0] + ( offsetElement.offsetLeft || 0 ),
-          top = e.pos[1] + ( offsetElement.offsetTop || 0),
-          x = xAxis.tickFormat()(lines.x()(e.point, e.pointIndex)),
-          y = (e.series.bar ? y1Axis : y2Axis).tickFormat()(lines.y()(e.point, e.pointIndex)),
-          content = tooltip(e.series.key, x, y, e, chart);
-
-      nv.tooltip.show([left, top], content, e.value < 0 ? 'n' : 's', null, offsetElement);
-    }
-    ;
-
-  //------------------------------------------------------------
-
-
-
-  function chart(selection) {
-    selection.each(function(data) {
-      var container = d3.select(this),
-          that = this;
-
-      var availableWidth = (width  || parseInt(container.style('width')) || 960)
-                             - margin.left - margin.right,
-          availableHeight = (height || parseInt(container.style('height')) || 400)
-                             - margin.top - margin.bottom;
-
-      chart.update = function() { container.transition().call(chart); };
-      // chart.container = this;
-
-      //set state.disabled
-      state.disabled = data.map(function(d) { return !!d.disabled });
-
-      if (!defaultState) {
-        var key;
-        defaultState = {};
-        for (key in state) {
-          if (state[key] instanceof Array)
-            defaultState[key] = state[key].slice(0);
-          else
-            defaultState[key] = state[key];
-        }
-      }
-
-      //------------------------------------------------------------
-      // Display No Data message if there's nothing to show.
-
-      if (!data || !data.length || !data.filter(function(d) { return d.values.length }).length) {
-        var noDataText = container.selectAll('.nv-noData').data([noData]);
-
-        noDataText.enter().append('text')
-          .attr('class', 'nvd3 nv-noData')
-          .attr('dy', '-.7em')
-          .style('text-anchor', 'middle');
-
-        noDataText
-          .attr('x', margin.left + availableWidth / 2)
-          .attr('y', margin.top + availableHeight / 2)
-          .text(function(d) { return d });
-
-        return chart;
-      } else {
-        container.selectAll('.nv-noData').remove();
-      }
-
-      //------------------------------------------------------------
-
-
-      //------------------------------------------------------------
-      // Setup Scales
-
-      var dataBars = data.filter(function(d) { return !d.disabled && d.bar });
-      var dataLines = data.filter(function(d) { return !d.bar }); // removed the !d.disabled clause here to fix Issue #240
-
-      //x = xAxis.scale();
-       x = dataLines.filter(function(d) { return !d.disabled; }).length && dataLines.filter(function(d) { return !d.disabled; })[0].values.length ? lines.xScale() : bars.xScale();
-      //x = dataLines.filter(function(d) { return !d.disabled; }).length ? lines.xScale() : bars.xScale(); //old code before change above
-      y1 = bars.yScale();
-      y2 = lines.yScale();
-
-      //------------------------------------------------------------
-
-      //------------------------------------------------------------
-      // Setup containers and skeleton of chart
-
-      var wrap = d3.select(this).selectAll('g.nv-wrap.nv-linePlusBar').data([data]);
-      var gEnter = wrap.enter().append('g').attr('class', 'nvd3 nv-wrap nv-linePlusBar').append('g');
-      var g = wrap.select('g');
-
-      gEnter.append('g').attr('class', 'nv-x nv-axis');
-      gEnter.append('g').attr('class', 'nv-y1 nv-axis');
-      gEnter.append('g').attr('class', 'nv-y2 nv-axis');
-      gEnter.append('g').attr('class', 'nv-barsWrap');
-      gEnter.append('g').attr('class', 'nv-linesWrap');
-      gEnter.append('g').attr('class', 'nv-legendWrap');
-
-      //------------------------------------------------------------
-
-
-      //------------------------------------------------------------
-      // Legend
-
-      if (showLegend) {
-        legend.width( availableWidth / 2 );
-
-        g.select('.nv-legendWrap')
-            .datum(data.map(function(series) {
-              series.originalKey = series.originalKey === undefined ? series.key : series.originalKey;
-              series.key = series.originalKey + (series.bar ? ' (left axis)' : ' (right axis)');
-              return series;
-            }))
-          .call(legend);
-
-        if ( margin.top != legend.height()) {
-          margin.top = legend.height();
-          availableHeight = (height || parseInt(container.style('height')) || 400)
-                             - margin.top - margin.bottom;
-        }
-
-        g.select('.nv-legendWrap')
-            .attr('transform', 'translate(' + ( availableWidth / 2 ) + ',' + (-margin.top) +')');
-      }
-
-      //------------------------------------------------------------
-
-
-      wrap.attr('transform', 'translate(' + margin.left + ',' + margin.top + ')');
-
-
-      //------------------------------------------------------------
-      // Main Chart Component(s)
-
-
-      lines
-        .width(availableWidth)
-        .height(availableHeight)
-        .color(data.map(function(d,i) {
-          return d.color || color(d, i);
-        }).filter(function(d,i) { return !data[i].disabled && !data[i].bar }))
-
-      bars
-        .width(availableWidth)
-        .height(availableHeight)
-        .color(data.map(function(d,i) {
-          return d.color || color(d, i);
-        }).filter(function(d,i) { return !data[i].disabled && data[i].bar }))
-
-
-
-      var barsWrap = g.select('.nv-barsWrap')
-          .datum(dataBars.length ? dataBars : [{values:[]}])
-
-      var linesWrap = g.select('.nv-linesWrap')
-          .datum(dataLines[0] && !dataLines[0].disabled ? dataLines : [{values:[]}] );
-          //.datum(!dataLines[0].disabled ? dataLines : [{values:dataLines[0].values.map(function(d) { return [d[0], null] }) }] );
-
-      d3.transition(barsWrap).call(bars);
-      d3.transition(linesWrap).call(lines);
-
-      //------------------------------------------------------------
-
-
-      //------------------------------------------------------------
-      // Setup Axes
-
-      xAxis
-        .scale(x)
-        .ticks( availableWidth / 100 )
-        .tickSize(-availableHeight, 0);
-
-      g.select('.nv-x.nv-axis')
-          .attr('transform', 'translate(0,' + y1.range()[0] + ')');
-      d3.transition(g.select('.nv-x.nv-axis'))
-          .call(xAxis);
-
-
-      y1Axis
-        .scale(y1)
-        .ticks( availableHeight / 36 )
-        .tickSize(-availableWidth, 0);
-
-      d3.transition(g.select('.nv-y1.nv-axis'))
-          .style('opacity', dataBars.length ? 1 : 0)
-          .call(y1Axis);
-
-
-      y2Axis
-        .scale(y2)
-        .ticks( availableHeight / 36 )
-        .tickSize(dataBars.length ? 0 : -availableWidth, 0); // Show the y2 rules only if y1 has none
-
-      g.select('.nv-y2.nv-axis')
-          .style('opacity', dataLines.length ? 1 : 0)
-          .attr('transform', 'translate(' + availableWidth + ',0)');
-          //.attr('transform', 'translate(' + x.range()[1] + ',0)');
-
-      d3.transition(g.select('.nv-y2.nv-axis'))
-          .call(y2Axis);
-
-      //------------------------------------------------------------
-
-
-      //============================================================
-      // Event Handling/Dispatching (in chart's scope)
-      //------------------------------------------------------------
-
-      legend.dispatch.on('stateChange', function(newState) { 
-        state = newState;
-        dispatch.stateChange(state);
-        chart.update();
-      });
-
-      dispatch.on('tooltipShow', function(e) {
-        if (tooltips) showTooltip(e, that.parentNode);
-      });
-
-
-      // Update chart from a state object passed to event handler
-      dispatch.on('changeState', function(e) {
-
-        if (typeof e.disabled !== 'undefined') {
-          data.forEach(function(series,i) {
-            series.disabled = e.disabled[i];
-          });
-
-          state.disabled = e.disabled;
-        }
-
-        chart.update();
-      });
-
-      //============================================================
-
-
-    });
-
-    return chart;
-  }
-
-
-  //============================================================
-  // Event Handling/Dispatching (out of chart's scope)
-  //------------------------------------------------------------
-
-  lines.dispatch.on('elementMouseover.tooltip', function(e) {
-    e.pos = [e.pos[0] +  margin.left, e.pos[1] + margin.top];
-    dispatch.tooltipShow(e);
-  });
-
-  lines.dispatch.on('elementMouseout.tooltip', function(e) {
-    dispatch.tooltipHide(e);
-  });
-
-  bars.dispatch.on('elementMouseover.tooltip', function(e) {
-    e.pos = [e.pos[0] +  margin.left, e.pos[1] + margin.top];
-    dispatch.tooltipShow(e);
-  });
-
-  bars.dispatch.on('elementMouseout.tooltip', function(e) {
-    dispatch.tooltipHide(e);
-  });
-
-  dispatch.on('tooltipHide', function() {
-    if (tooltips) nv.tooltip.cleanup();
-  });
-
-  //============================================================
-
-
-  //============================================================
-  // Expose Public Variables
-  //------------------------------------------------------------
-
-  // expose chart's sub-components
-  chart.dispatch = dispatch;
-  chart.legend = legend;
-  chart.lines = lines;
-  chart.bars = bars;
-  chart.xAxis = xAxis;
-  chart.y1Axis = y1Axis;
-  chart.y2Axis = y2Axis;
-
-  d3.rebind(chart, lines, 'defined', 'size', 'clipVoronoi', 'interpolate');
-  //TODO: consider rebinding x, y and some other stuff, and simply do soemthign lile bars.x(lines.x()), etc.
-  //d3.rebind(chart, lines, 'x', 'y', 'size', 'xDomain', 'yDomain', 'xRange', 'yRange', 'forceX', 'forceY', 'interactive', 'clipEdge', 'clipVoronoi', 'id');
-
-  chart.options = nv.utils.optionsFunc.bind(chart);
-  
-  chart.x = function(_) {
-    if (!arguments.length) return getX;
-    getX = _;
-    lines.x(_);
-    bars.x(_);
-    return chart;
-  };
-
-  chart.y = function(_) {
-    if (!arguments.length) return getY;
-    getY = _;
-    lines.y(_);
-    bars.y(_);
-    return chart;
-  };
-
-  chart.margin = function(_) {
-    if (!arguments.length) return margin;
-    margin.top    = typeof _.top    != 'undefined' ? _.top    : margin.top;
-    margin.right  = typeof _.right  != 'undefined' ? _.right  : margin.right;
-    margin.bottom = typeof _.bottom != 'undefined' ? _.bottom : margin.bottom;
-    margin.left   = typeof _.left   != 'undefined' ? _.left   : margin.left;
-    return chart;
-  };
-
-  chart.width = function(_) {
-    if (!arguments.length) return width;
-    width = _;
-    return chart;
-  };
-
-  chart.height = function(_) {
-    if (!arguments.length) return height;
-    height = _;
-    return chart;
-  };
-
-  chart.color = function(_) {
-    if (!arguments.length) return color;
-    color = nv.utils.getColor(_);
-    legend.color(color);
-    return chart;
-  };
-
-  chart.showLegend = function(_) {
-    if (!arguments.length) return showLegend;
-    showLegend = _;
-    return chart;
-  };
-
-  chart.tooltips = function(_) {
-    if (!arguments.length) return tooltips;
-    tooltips = _;
-    return chart;
-  };
-
-  chart.tooltipContent = function(_) {
-    if (!arguments.length) return tooltip;
-    tooltip = _;
-    return chart;
-  };
-
-  chart.state = function(_) {
-    if (!arguments.length) return state;
-    state = _;
-    return chart;
-  };
-
-  chart.defaultState = function(_) {
-    if (!arguments.length) return defaultState;
-    defaultState = _;
-    return chart;
-  };
-
-  chart.noData = function(_) {
-    if (!arguments.length) return noData;
-    noData = _;
-    return chart;
-  };
-
-  //============================================================
-
-
-  return chart;
-}
-nv.models.lineWithFocusChart = function() {
-  "use strict";
-  //============================================================
-  // Public Variables with Default Settings
-  //------------------------------------------------------------
-
-  var lines = nv.models.line()
-    , lines2 = nv.models.line()
-    , xAxis = nv.models.axis()
-    , yAxis = nv.models.axis()
-    , x2Axis = nv.models.axis()
-    , y2Axis = nv.models.axis()
-    , legend = nv.models.legend()
-    , brush = d3.svg.brush()
-    ;
-
-  var margin = {top: 30, right: 30, bottom: 30, left: 60}
-    , margin2 = {top: 0, right: 30, bottom: 20, left: 60}
-    , color = nv.utils.defaultColor()
-    , width = null
-    , height = null
-    , height2 = 100
-    , x
-    , y
-    , x2
-    , y2
-    , showLegend = true
-    , brushExtent = null
-    , tooltips = true
-    , tooltip = function(key, x, y, e, graph) {
-        return '<h3>' + key + '</h3>' +
-               '<p>' +  y + ' at ' + x + '</p>'
-      }
-    , noData = "No Data Available."
-    , dispatch = d3.dispatch('tooltipShow', 'tooltipHide', 'brush')
-    , transitionDuration = 250
-    ;
-
-  lines
-    .clipEdge(true)
-    ;
-  lines2
-    .interactive(false)
-    ;
-  xAxis
-    .orient('bottom')
-    .tickPadding(5)
-    ;
-  yAxis
-    .orient('left')
-    ;
-  x2Axis
-    .orient('bottom')
-    .tickPadding(5)
-    ;
-  y2Axis
-    .orient('left')
-    ;
-  //============================================================
-
-
-  //============================================================
-  // Private Variables
-  //------------------------------------------------------------
-
-  var showTooltip = function(e, offsetElement) {
-    var left = e.pos[0] + ( offsetElement.offsetLeft || 0 ),
-        top = e.pos[1] + ( offsetElement.offsetTop || 0),
-        x = xAxis.tickFormat()(lines.x()(e.point, e.pointIndex)),
-        y = yAxis.tickFormat()(lines.y()(e.point, e.pointIndex)),
-        content = tooltip(e.series.key, x, y, e, chart);
-
-    nv.tooltip.show([left, top], content, null, null, offsetElement);
-  };
-
-  //============================================================
-
-
-  function chart(selection) {
-    selection.each(function(data) {
-      var container = d3.select(this),
-          that = this;
-
-      var availableWidth = (width  || parseInt(container.style('width')) || 960)
-                             - margin.left - margin.right,
-          availableHeight1 = (height || parseInt(container.style('height')) || 400)
-                             - margin.top - margin.bottom - height2,
-          availableHeight2 = height2 - margin2.top - margin2.bottom;
-
-      chart.update = function() { container.transition().duration(transitionDuration).call(chart) };
-      chart.container = this;
-
-
-      //------------------------------------------------------------
-      // Display No Data message if there's nothing to show.
-
-      if (!data || !data.length || !data.filter(function(d) { return d.values.length }).length) {
-        var noDataText = container.selectAll('.nv-noData').data([noData]);
-
-        noDataText.enter().append('text')
-          .attr('class', 'nvd3 nv-noData')
-          .attr('dy', '-.7em')
-          .style('text-anchor', 'middle');
-
-        noDataText
-          .attr('x', margin.left + availableWidth / 2)
-          .attr('y', margin.top + availableHeight1 / 2)
-          .text(function(d) { return d });
-
-        return chart;
-      } else {
-        container.selectAll('.nv-noData').remove();
-      }
-
-      //------------------------------------------------------------
-
-
-      //------------------------------------------------------------
-      // Setup Scales
-
-      x = lines.xScale();
-      y = lines.yScale();
-      x2 = lines2.xScale();
-      y2 = lines2.yScale();
-
-      //------------------------------------------------------------
-
-
-      //------------------------------------------------------------
-      // Setup containers and skeleton of chart
-
-      var wrap = container.selectAll('g.nv-wrap.nv-lineWithFocusChart').data([data]);
-      var gEnter = wrap.enter().append('g').attr('class', 'nvd3 nv-wrap nv-lineWithFocusChart').append('g');
-      var g = wrap.select('g');
-
-      gEnter.append('g').attr('class', 'nv-legendWrap');
-
-      var focusEnter = gEnter.append('g').attr('class', 'nv-focus');
-      focusEnter.append('g').attr('class', 'nv-x nv-axis');
-      focusEnter.append('g').attr('class', 'nv-y nv-axis');
-      focusEnter.append('g').attr('class', 'nv-linesWrap');
-
-      var contextEnter = gEnter.append('g').attr('class', 'nv-context');
-      contextEnter.append('g').attr('class', 'nv-x nv-axis');
-      contextEnter.append('g').attr('class', 'nv-y nv-axis');
-      contextEnter.append('g').attr('class', 'nv-linesWrap');
-      contextEnter.append('g').attr('class', 'nv-brushBackground');
-      contextEnter.append('g').attr('class', 'nv-x nv-brush');
-
-      //------------------------------------------------------------
-
-
-      //------------------------------------------------------------
-      // Legend
-
-      if (showLegend) {
-        legend.width(availableWidth);
-
-        g.select('.nv-legendWrap')
-            .datum(data)
-            .call(legend);
-
-        if ( margin.top != legend.height()) {
-          margin.top = legend.height();
-          availableHeight1 = (height || parseInt(container.style('height')) || 400)
-                             - margin.top - margin.bottom - height2;
-        }
-
-        g.select('.nv-legendWrap')
-            .attr('transform', 'translate(0,' + (-margin.top) +')')
-      }
-
-      //------------------------------------------------------------
-
-
-      wrap.attr('transform', 'translate(' + margin.left + ',' + margin.top + ')');
-
-
-      //------------------------------------------------------------
-      // Main Chart Component(s)
-
-      lines
-        .width(availableWidth)
-        .height(availableHeight1)
-        .color(
-          data
-            .map(function(d,i) {
-              return d.color || color(d, i);
-            })
-            .filter(function(d,i) {
-              return !data[i].disabled;
-          })
-        );
-
-      lines2
-        .defined(lines.defined())
-        .width(availableWidth)
-        .height(availableHeight2)
-        .color(
-          data
-            .map(function(d,i) {
-              return d.color || color(d, i);
-            })
-            .filter(function(d,i) {
-              return !data[i].disabled;
-          })
-        );
-
-      g.select('.nv-context')
-          .attr('transform', 'translate(0,' + ( availableHeight1 + margin.bottom + margin2.top) + ')')
-
-      var contextLinesWrap = g.select('.nv-context .nv-linesWrap')
-          .datum(data.filter(function(d) { return !d.disabled }))
-
-      d3.transition(contextLinesWrap).call(lines2);
-
-      //------------------------------------------------------------
-
-
-      /*
-      var focusLinesWrap = g.select('.nv-focus .nv-linesWrap')
-          .datum(data.filter(function(d) { return !d.disabled }))
-
-      d3.transition(focusLinesWrap).call(lines);
-     */
-
-
-      //------------------------------------------------------------
-      // Setup Main (Focus) Axes
-
-      xAxis
-        .scale(x)
-        .ticks( availableWidth / 100 )
-        .tickSize(-availableHeight1, 0);
-
-      yAxis
-        .scale(y)
-        .ticks( availableHeight1 / 36 )
-        .tickSize( -availableWidth, 0);
-
-      g.select('.nv-focus .nv-x.nv-axis')
-          .attr('transform', 'translate(0,' + availableHeight1 + ')');
-
-      //------------------------------------------------------------
-
-
-      //------------------------------------------------------------
-      // Setup Brush
-
-      brush
-        .x(x2)
-        .on('brush', function() {
-            //When brushing, turn off transitions because chart needs to change immediately.
-            var oldTransition = chart.transitionDuration();
-            chart.transitionDuration(0); 
-            onBrush();
-            chart.transitionDuration(oldTransition);
-        });
-
-      if (brushExtent) brush.extent(brushExtent);
-
-      var brushBG = g.select('.nv-brushBackground').selectAll('g')
-          .data([brushExtent || brush.extent()])
-
-      var brushBGenter = brushBG.enter()
-          .append('g');
-
-      brushBGenter.append('rect')
-          .attr('class', 'left')
-          .attr('x', 0)
-          .attr('y', 0)
-          .attr('height', availableHeight2);
-
-      brushBGenter.append('rect')
-          .attr('class', 'right')
-          .attr('x', 0)
-          .attr('y', 0)
-          .attr('height', availableHeight2);
-
-      var gBrush = g.select('.nv-x.nv-brush')
-          .call(brush);
-      gBrush.selectAll('rect')
-          //.attr('y', -5)
-          .attr('height', availableHeight2);
-      gBrush.selectAll('.resize').append('path').attr('d', resizePath);
-
-      onBrush();
-
-      //------------------------------------------------------------
-
-
-      //------------------------------------------------------------
-      // Setup Secondary (Context) Axes
-
-      x2Axis
-        .scale(x2)
-        .ticks( availableWidth / 100 )
-        .tickSize(-availableHeight2, 0);
-
-      g.select('.nv-context .nv-x.nv-axis')
-          .attr('transform', 'translate(0,' + y2.range()[0] + ')');
-      d3.transition(g.select('.nv-context .nv-x.nv-axis'))
-          .call(x2Axis);
-
-
-      y2Axis
-        .scale(y2)
-        .ticks( availableHeight2 / 36 )
-        .tickSize( -availableWidth, 0);
-
-      d3.transition(g.select('.nv-context .nv-y.nv-axis'))
-          .call(y2Axis);
-
-      g.select('.nv-context .nv-x.nv-axis')
-          .attr('transform', 'translate(0,' + y2.range()[0] + ')');
-
-      //------------------------------------------------------------
-
-
-      //============================================================
-      // Event Handling/Dispatching (in chart's scope)
-      //------------------------------------------------------------
-
-      legend.dispatch.on('stateChange', function(newState) { 
-        chart.update();
-      });
-
-      dispatch.on('tooltipShow', function(e) {
-        if (tooltips) showTooltip(e, that.parentNode);
-      });
-
-      //============================================================
-
-
-      //============================================================
-      // Functions
-      //------------------------------------------------------------
-
-      // Taken from crossfilter (http://square.github.com/crossfilter/)
-      function resizePath(d) {
-        var e = +(d == 'e'),
-            x = e ? 1 : -1,
-            y = availableHeight2 / 3;
-        return 'M' + (.5 * x) + ',' + y
-            + 'A6,6 0 0 ' + e + ' ' + (6.5 * x) + ',' + (y + 6)
-            + 'V' + (2 * y - 6)
-            + 'A6,6 0 0 ' + e + ' ' + (.5 * x) + ',' + (2 * y)
-            + 'Z'
-            + 'M' + (2.5 * x) + ',' + (y + 8)
-            + 'V' + (2 * y - 8)
-            + 'M' + (4.5 * x) + ',' + (y + 8)
-            + 'V' + (2 * y - 8);
-      }
-
-
-      function updateBrushBG() {
-        if (!brush.empty()) brush.extent(brushExtent);
-        brushBG
-            .data([brush.empty() ? x2.domain() : brushExtent])
-            .each(function(d,i) {
-              var leftWidth = x2(d[0]) - x.range()[0],
-                  rightWidth = x.range()[1] - x2(d[1]);
-              d3.select(this).select('.left')
-                .attr('width',  leftWidth < 0 ? 0 : leftWidth);
-
-              d3.select(this).select('.right')
-                .attr('x', x2(d[1]))
-                .attr('width', rightWidth < 0 ? 0 : rightWidth);
-            });
-      }
-
-
-      function onBrush() {
-        brushExtent = brush.empty() ? null : brush.extent();
-        var extent = brush.empty() ? x2.domain() : brush.extent();
-
-        //The brush extent cannot be less than one.  If it is, don't update the line chart.
-        if (Math.abs(extent[0] - extent[1]) <= 1) {
-          return;
-        }
-
-        dispatch.brush({extent: extent, brush: brush});
-
-
-        updateBrushBG();
-
-        // Update Main (Focus)
-        var focusLinesWrap = g.select('.nv-focus .nv-linesWrap')
-            .datum(
-              data
-                .filter(function(d) { return !d.disabled })
-                .map(function(d,i) {
-                  return {
-                    key: d.key,
-                    values: d.values.filter(function(d,i) {
-                      return lines.x()(d,i) >= extent[0] && lines.x()(d,i) <= extent[1];
-                    })
-                  }
-                })
-            );
-        focusLinesWrap.transition().duration(transitionDuration).call(lines);
-
-
-        // Update Main (Focus) Axes
-        g.select('.nv-focus .nv-x.nv-axis').transition().duration(transitionDuration)
-            .call(xAxis);
-        g.select('.nv-focus .nv-y.nv-axis').transition().duration(transitionDuration)
-            .call(yAxis);
-      }
-
-      //============================================================
-
-
-    });
-
-    return chart;
-  }
-
-
-  //============================================================
-  // Event Handling/Dispatching (out of chart's scope)
-  //------------------------------------------------------------
-
-  lines.dispatch.on('elementMouseover.tooltip', function(e) {
-    e.pos = [e.pos[0] +  margin.left, e.pos[1] + margin.top];
-    dispatch.tooltipShow(e);
-  });
-
-  lines.dispatch.on('elementMouseout.tooltip', function(e) {
-    dispatch.tooltipHide(e);
-  });
-
-  dispatch.on('tooltipHide', function() {
-    if (tooltips) nv.tooltip.cleanup();
-  });
-
-  //============================================================
-
-
-  //============================================================
-  // Expose Public Variables
-  //------------------------------------------------------------
-
-  // expose chart's sub-components
-  chart.dispatch = dispatch;
-  chart.legend = legend;
-  chart.lines = lines;
-  chart.lines2 = lines2;
-  chart.xAxis = xAxis;
-  chart.yAxis = yAxis;
-  chart.x2Axis = x2Axis;
-  chart.y2Axis = y2Axis;
-
-  d3.rebind(chart, lines, 'defined', 'isArea', 'size', 'xDomain', 'yDomain', 'xRange', 'yRange', 'forceX', 'forceY', 'interactive', 'clipEdge', 'clipVoronoi', 'id');
-
-  chart.options = nv.utils.optionsFunc.bind(chart);
-  
-  chart.x = function(_) {
-    if (!arguments.length) return lines.x;
-    lines.x(_);
-    lines2.x(_);
-    return chart;
-  };
-
-  chart.y = function(_) {
-    if (!arguments.length) return lines.y;
-    lines.y(_);
-    lines2.y(_);
-    return chart;
-  };
-
-  chart.margin = function(_) {
-    if (!arguments.length) return margin;
-    margin.top    = typeof _.top    != 'undefined' ? _.top    : margin.top;
-    margin.right  = typeof _.right  != 'undefined' ? _.right  : margin.right;
-    margin.bottom = typeof _.bottom != 'undefined' ? _.bottom : margin.bottom;
-    margin.left   = typeof _.left   != 'undefined' ? _.left   : margin.left;
-    return chart;
-  };
-
-  chart.margin2 = function(_) {
-    if (!arguments.length) return margin2;
-    margin2 = _;
-    return chart;
-  };
-
-  chart.width = function(_) {
-    if (!arguments.length) return width;
-    width = _;
-    return chart;
-  };
-
-  chart.height = function(_) {
-    if (!arguments.length) return height;
-    height = _;
-    return chart;
-  };
-
-  chart.height2 = function(_) {
-    if (!arguments.length) return height2;
-    height2 = _;
-    return chart;
-  };
-
-  chart.color = function(_) {
-    if (!arguments.length) return color;
-    color =nv.utils.getColor(_);
-    legend.color(color);
-    return chart;
-  };
-
-  chart.showLegend = function(_) {
-    if (!arguments.length) return showLegend;
-    showLegend = _;
-    return chart;
-  };
-
-  chart.tooltips = function(_) {
-    if (!arguments.length) return tooltips;
-    tooltips = _;
-    return chart;
-  };
-
-  chart.tooltipContent = function(_) {
-    if (!arguments.length) return tooltip;
-    tooltip = _;
-    return chart;
-  };
-
-  chart.interpolate = function(_) {
-    if (!arguments.length) return lines.interpolate();
-    lines.interpolate(_);
-    lines2.interpolate(_);
-    return chart;
-  };
-
-  chart.noData = function(_) {
-    if (!arguments.length) return noData;
-    noData = _;
-    return chart;
-  };
-
-  // Chart has multiple similar Axes, to prevent code duplication, probably need to link all axis functions manually like below
-  chart.xTickFormat = function(_) {
-    if (!arguments.length) return xAxis.tickFormat();
-    xAxis.tickFormat(_);
-    x2Axis.tickFormat(_);
-    return chart;
-  };
-
-  chart.yTickFormat = function(_) {
-    if (!arguments.length) return yAxis.tickFormat();
-    yAxis.tickFormat(_);
-    y2Axis.tickFormat(_);
-    return chart;
-  };
-  
-  chart.brushExtent = function(_) {
-    if (!arguments.length) return brushExtent;
-    brushExtent = _;
-    return chart;
-  };
-
-  chart.transitionDuration = function(_) {
-    if (!arguments.length) return transitionDuration;
-    transitionDuration = _;
-    return chart;
-  };
-
-  //============================================================
-
-
-  return chart;
-}
-
-nv.models.linePlusBarWithFocusChart = function() {
-  "use strict";
-  //============================================================
-  // Public Variables with Default Settings
-  //------------------------------------------------------------
-
-  var lines = nv.models.line()
-    , lines2 = nv.models.line()
-    , bars = nv.models.historicalBar()
-    , bars2 = nv.models.historicalBar()
-    , xAxis = nv.models.axis()
-    , x2Axis = nv.models.axis()
-    , y1Axis = nv.models.axis()
-    , y2Axis = nv.models.axis()
-    , y3Axis = nv.models.axis()
-    , y4Axis = nv.models.axis()
-    , legend = nv.models.legend()
-    , brush = d3.svg.brush()
-    ;
-
-  var margin = {top: 30, right: 30, bottom: 30, left: 60}
-    , margin2 = {top: 0, right: 30, bottom: 20, left: 60}
-    , width = null
-    , height = null
-    , height2 = 100
-    , getX = function(d) { return d.x }
-    , getY = function(d) { return d.y }
-    , color = nv.utils.defaultColor()
-    , showLegend = true
-    , extent
-    , brushExtent = null
-    , tooltips = true
-    , tooltip = function(key, x, y, e, graph) {
-        return '<h3>' + key + '</h3>' +
-               '<p>' +  y + ' at ' + x + '</p>';
-      }
-    , x
-    , x2
-    , y1
-    , y2
-    , y3
-    , y4
-    , noData = "No Data Available."
-    , dispatch = d3.dispatch('tooltipShow', 'tooltipHide', 'brush')
-    , transitionDuration = 0
-    ;
-
-  lines
-    .clipEdge(true)
-    ;
-  lines2
-    .interactive(false)
-    ;
-  xAxis
-    .orient('bottom')
-    .tickPadding(5)
-    ;
-  y1Axis
-    .orient('left')
-    ;
-  y2Axis
-    .orient('right')
-    ;
-  x2Axis
-    .orient('bottom')
-    .tickPadding(5)
-    ;
-  y3Axis
-    .orient('left')
-    ;
-  y4Axis
-    .orient('right')
-    ;
-
-  //============================================================
-
-
-  //============================================================
-  // Private Variables
-  //------------------------------------------------------------
-
-  var showTooltip = function(e, offsetElement) {
-    if (extent) {
-        e.pointIndex += Math.ceil(extent[0]);
-    }
-    var left = e.pos[0] + ( offsetElement.offsetLeft || 0 ),
-        top = e.pos[1] + ( offsetElement.offsetTop || 0),
-        x = xAxis.tickFormat()(lines.x()(e.point, e.pointIndex)),
-        y = (e.series.bar ? y1Axis : y2Axis).tickFormat()(lines.y()(e.point, e.pointIndex)),
-        content = tooltip(e.series.key, x, y, e, chart);
-
-    nv.tooltip.show([left, top], content, e.value < 0 ? 'n' : 's', null, offsetElement);
-  };
-
-  //------------------------------------------------------------
-
-
-
-  function chart(selection) {
-    selection.each(function(data) {
-      var container = d3.select(this),
-          that = this;
-
-      var availableWidth = (width  || parseInt(container.style('width')) || 960)
-                             - margin.left - margin.right,
-          availableHeight1 = (height || parseInt(container.style('height')) || 400)
-                             - margin.top - margin.bottom - height2,
-          availableHeight2 = height2 - margin2.top - margin2.bottom;
-
-      chart.update = function() { container.transition().duration(transitionDuration).call(chart); };
-      chart.container = this;
-
-
-      //------------------------------------------------------------
-      // Display No Data message if there's nothing to show.
-
-      if (!data || !data.length || !data.filter(function(d) { return d.values.length }).length) {
-        var noDataText = container.selectAll('.nv-noData').data([noData]);
-
-        noDataText.enter().append('text')
-          .attr('class', 'nvd3 nv-noData')
-          .attr('dy', '-.7em')
-          .style('text-anchor', 'middle');
-
-        noDataText
-          .attr('x', margin.left + availableWidth / 2)
-          .attr('y', margin.top + availableHeight1 / 2)
-          .text(function(d) { return d });
-
-        return chart;
-      } else {
-        container.selectAll('.nv-noData').remove();
-      }
-
-      //------------------------------------------------------------
-
-
-      //------------------------------------------------------------
-      // Setup Scales
-
-      var dataBars = data.filter(function(d) { return !d.disabled && d.bar });
-      var dataLines = data.filter(function(d) { return !d.bar }); // removed the !d.disabled clause here to fix Issue #240
-
-      x = bars.xScale();
-      x2 = x2Axis.scale();
-      y1 = bars.yScale();
-      y2 = lines.yScale();
-      y3 = bars2.yScale();
-      y4 = lines2.yScale();
-
-      var series1 = data
-        .filter(function(d) { return !d.disabled && d.bar })
-        .map(function(d) {
-          return d.values.map(function(d,i) {
-            return { x: getX(d,i), y: getY(d,i) }
-          })
-        });
-
-      var series2 = data
-        .filter(function(d) { return !d.disabled && !d.bar })
-        .map(function(d) {
-          return d.values.map(function(d,i) {
-            return { x: getX(d,i), y: getY(d,i) }
-          })
-        });
-
-      x   .range([0, availableWidth]);
-      
-      x2  .domain(d3.extent(d3.merge(series1.concat(series2)), function(d) { return d.x } ))
-          .range([0, availableWidth]);
-
-
-      //------------------------------------------------------------
-
-
-      //------------------------------------------------------------
-      // Setup containers and skeleton of chart
-
-      var wrap = container.selectAll('g.nv-wrap.nv-linePlusBar').data([data]);
-      var gEnter = wrap.enter().append('g').attr('class', 'nvd3 nv-wrap nv-linePlusBar').append('g');
-      var g = wrap.select('g');
-
-      gEnter.append('g').attr('class', 'nv-legendWrap');
-      
-      var focusEnter = gEnter.append('g').attr('class', 'nv-focus');
-      focusEnter.append('g').attr('class', 'nv-x nv-axis');
-      focusEnter.append('g').attr('class', 'nv-y1 nv-axis');
-      focusEnter.append('g').attr('class', 'nv-y2 nv-axis');
-      focusEnter.append('g').attr('class', 'nv-barsWrap');
-      focusEnter.append('g').attr('class', 'nv-linesWrap');
-
-      var contextEnter = gEnter.append('g').attr('class', 'nv-context');
-      contextEnter.append('g').attr('class', 'nv-x nv-axis');
-      contextEnter.append('g').attr('class', 'nv-y1 nv-axis');
-      contextEnter.append('g').attr('class', 'nv-y2 nv-axis');
-      contextEnter.append('g').attr('class', 'nv-barsWrap');
-      contextEnter.append('g').attr('class', 'nv-linesWrap');
-      contextEnter.append('g').attr('class', 'nv-brushBackground');
-      contextEnter.append('g').attr('class', 'nv-x nv-brush');
-
-
-      //------------------------------------------------------------
-
-
-      //------------------------------------------------------------
-      // Legend
-
-      if (showLegend) {
-        legend.width( availableWidth / 2 );
-
-        g.select('.nv-legendWrap')
-            .datum(data.map(function(series) {
-              series.originalKey = series.originalKey === undefined ? series.key : series.originalKey;
-              series.key = series.originalKey + (series.bar ? ' (left axis)' : ' (right axis)');
-              return series;
-            }))
-          .call(legend);
-
-        if ( margin.top != legend.height()) {
-          margin.top = legend.height();
-          availableHeight1 = (height || parseInt(container.style('height')) || 400)
-                             - margin.top - margin.bottom - height2;
-        }
-
-        g.select('.nv-legendWrap')
-            .attr('transform', 'translate(' + ( availableWidth / 2 ) + ',' + (-margin.top) +')');
-      }
-
-      //------------------------------------------------------------
-
-
-      wrap.attr('transform', 'translate(' + margin.left + ',' + margin.top + ')');
-
-
-      //------------------------------------------------------------
-      // Context Components
-
-      bars2
-        .width(availableWidth)
-        .height(availableHeight2)
-        .color(data.map(function(d,i) {
-          return d.color || color(d, i);
-        }).filter(function(d,i) { return !data[i].disabled && data[i].bar }));
-
-      lines2
-        .width(availableWidth)
-        .height(availableHeight2)
-        .color(data.map(function(d,i) {
-          return d.color || color(d, i);
-        }).filter(function(d,i) { return !data[i].disabled && !data[i].bar }));
-        
-      var bars2Wrap = g.select('.nv-context .nv-barsWrap')
-          .datum(dataBars.length ? dataBars : [{values:[]}]);
-
-      var lines2Wrap = g.select('.nv-context .nv-linesWrap')
-          .datum(!dataLines[0].disabled ? dataLines : [{values:[]}]);
-          
-      g.select('.nv-context')
-          .attr('transform', 'translate(0,' + ( availableHeight1 + margin.bottom + margin2.top) + ')')
-
-      bars2Wrap.transition().call(bars2);
-      lines2Wrap.transition().call(lines2);
-
-      //------------------------------------------------------------
-
-
-
-      //------------------------------------------------------------
-      // Setup Brush
-
-      brush
-        .x(x2)
-        .on('brush', onBrush);
-
-      if (brushExtent) brush.extent(brushExtent);
-
-      var brushBG = g.select('.nv-brushBackground').selectAll('g')
-          .data([brushExtent || brush.extent()])
-
-      var brushBGenter = brushBG.enter()
-          .append('g');
-
-      brushBGenter.append('rect')
-          .attr('class', 'left')
-          .attr('x', 0)
-          .attr('y', 0)
-          .attr('height', availableHeight2);
-
-      brushBGenter.append('rect')
-          .attr('class', 'right')
-          .attr('x', 0)
-          .attr('y', 0)
-          .attr('height', availableHeight2);
-
-      var gBrush = g.select('.nv-x.nv-brush')
-          .call(brush);
-      gBrush.selectAll('rect')
-          //.attr('y', -5)
-          .attr('height', availableHeight2);
-      gBrush.selectAll('.resize').append('path').attr('d', resizePath);
-
-      //------------------------------------------------------------
-
-      //------------------------------------------------------------
-      // Setup Secondary (Context) Axes
-
-      x2Axis
-        .ticks( availableWidth / 100 )
-        .tickSize(-availableHeight2, 0);
-
-      g.select('.nv-context .nv-x.nv-axis')
-          .attr('transform', 'translate(0,' + y3.range()[0] + ')');
-      g.select('.nv-context .nv-x.nv-axis').transition()
-          .call(x2Axis);
-
-
-      y3Axis
-        .scale(y3)
-        .ticks( availableHeight2 / 36 )
-        .tickSize( -availableWidth, 0);
-
-      g.select('.nv-context .nv-y1.nv-axis')
-          .style('opacity', dataBars.length ? 1 : 0)
-          .attr('transform', 'translate(0,' + x2.range()[0] + ')');
-          
-      g.select('.nv-context .nv-y1.nv-axis').transition()
-          .call(y3Axis);
-          
-
-      y4Axis
-        .scale(y4)
-        .ticks( availableHeight2 / 36 )
-        .tickSize(dataBars.length ? 0 : -availableWidth, 0); // Show the y2 rules only if y1 has none
-
-      g.select('.nv-context .nv-y2.nv-axis')
-          .style('opacity', dataLines.length ? 1 : 0)
-          .attr('transform', 'translate(' + x2.range()[1] + ',0)');
-
-      g.select('.nv-context .nv-y2.nv-axis').transition()
-          .call(y4Axis);
-          
-      //------------------------------------------------------------
-
-      //============================================================
-      // Event Handling/Dispatching (in chart's scope)
-      //------------------------------------------------------------
-
-      legend.dispatch.on('stateChange', function(newState) { 
-        chart.update();
-      });
-
-      dispatch.on('tooltipShow', function(e) {
-        if (tooltips) showTooltip(e, that.parentNode);
-      });
-
-      //============================================================
-
-
-      //============================================================
-      // Functions
-      //------------------------------------------------------------
-
-      // Taken from crossfilter (http://square.github.com/crossfilter/)
-      function resizePath(d) {
-        var e = +(d == 'e'),
-            x = e ? 1 : -1,
-            y = availableHeight2 / 3;
-        return 'M' + (.5 * x) + ',' + y
-            + 'A6,6 0 0 ' + e + ' ' + (6.5 * x) + ',' + (y + 6)
-            + 'V' + (2 * y - 6)
-            + 'A6,6 0 0 ' + e + ' ' + (.5 * x) + ',' + (2 * y)
-            + 'Z'
-            + 'M' + (2.5 * x) + ',' + (y + 8)
-            + 'V' + (2 * y - 8)
-            + 'M' + (4.5 * x) + ',' + (y + 8)
-            + 'V' + (2 * y - 8);
-      }
-
-
-      function updateBrushBG() {
-        if (!brush.empty()) brush.extent(brushExtent);
-        brushBG
-            .data([brush.empty() ? x2.domain() : brushExtent])
-            .each(function(d,i) {
-              var leftWidth = x2(d[0]) - x2.range()[0],
-                  rightWidth = x2.range()[1] - x2(d[1]);
-              d3.select(this).select('.left')
-                .attr('width',  leftWidth < 0 ? 0 : leftWidth);
-
-              d3.select(this).select('.right')
-                .attr('x', x2(d[1]))
-                .attr('width', rightWidth < 0 ? 0 : rightWidth);
-            });
-      }
-
-
-      function onBrush() {
-        brushExtent = brush.empty() ? null : brush.extent();
-        extent = brush.empty() ? x2.domain() : brush.extent();
-
-
-        dispatch.brush({extent: extent, brush: brush});
-
-        updateBrushBG();
-
-
-        //------------------------------------------------------------
-        // Prepare Main (Focus) Bars and Lines
-        
-        bars
-        .width(availableWidth)
-        .height(availableHeight1)
-        .color(data.map(function(d,i) {
-          return d.color || color(d, i);
-        }).filter(function(d,i) { return !data[i].disabled && data[i].bar }));
-
-
-        lines
-        .width(availableWidth)
-        .height(availableHeight1)
-        .color(data.map(function(d,i) {
-          return d.color || color(d, i);
-        }).filter(function(d,i) { return !data[i].disabled && !data[i].bar }));
-
-        var focusBarsWrap = g.select('.nv-focus .nv-barsWrap')
-            .datum(!dataBars.length ? [{values:[]}] :
-              dataBars
-                .map(function(d,i) {
-                  return {
-                    key: d.key,
-                    values: d.values.filter(function(d,i) {
-                      return bars.x()(d,i) >= extent[0] && bars.x()(d,i) <= extent[1];
-                    })
-                  }
-                })
-            );
-        
-        var focusLinesWrap = g.select('.nv-focus .nv-linesWrap')
-            .datum(dataLines[0].disabled ? [{values:[]}] :
-              dataLines
-                .map(function(d,i) {
-                  return {
-                    key: d.key,
-                    values: d.values.filter(function(d,i) {
-                      return lines.x()(d,i) >= extent[0] && lines.x()(d,i) <= extent[1];
-                    })
-                  }
-                })
-             );
-                 
-        //------------------------------------------------------------
-        
-        
-        //------------------------------------------------------------
-        // Update Main (Focus) X Axis
-
-        if (dataBars.length) {
-            x = bars.xScale();
-        } else {
-            x = lines.xScale();
-        }
-        
-        xAxis
-        .scale(x)
-        .ticks( availableWidth / 100 )
-        .tickSize(-availableHeight1, 0);
-
-        xAxis.domain([Math.ceil(extent[0]), Math.floor(extent[1])]);
-        
-        g.select('.nv-x.nv-axis').transition().duration(transitionDuration)
-          .call(xAxis);
-        //------------------------------------------------------------
-        
-        
-        //------------------------------------------------------------
-        // Update Main (Focus) Bars and Lines
-
-        focusBarsWrap.transition().duration(transitionDuration).call(bars);
-        focusLinesWrap.transition().duration(transitionDuration).call(lines);
-        
-        //------------------------------------------------------------
-        
-          
-        //------------------------------------------------------------
-        // Setup and Update Main (Focus) Y Axes
-        
-        g.select('.nv-focus .nv-x.nv-axis')
-          .attr('transform', 'translate(0,' + y1.range()[0] + ')');
-
-
-        y1Axis
-        .scale(y1)
-        .ticks( availableHeight1 / 36 )
-        .tickSize(-availableWidth, 0);
-
-        g.select('.nv-focus .nv-y1.nv-axis')
-          .style('opacity', dataBars.length ? 1 : 0);
-
-
-        y2Axis
-        .scale(y2)
-        .ticks( availableHeight1 / 36 )
-        .tickSize(dataBars.length ? 0 : -availableWidth, 0); // Show the y2 rules only if y1 has none
-
-        g.select('.nv-focus .nv-y2.nv-axis')
-          .style('opacity', dataLines.length ? 1 : 0)
-          .attr('transform', 'translate(' + x.range()[1] + ',0)');
-
-        g.select('.nv-focus .nv-y1.nv-axis').transition().duration(transitionDuration)
-            .call(y1Axis);
-        g.select('.nv-focus .nv-y2.nv-axis').transition().duration(transitionDuration)
-            .call(y2Axis);
-      }
-
-      //============================================================
-
-      onBrush();
-
-    });
-
-    return chart;
-  }
-
-
-  //============================================================
-  // Event Handling/Dispatching (out of chart's scope)
-  //------------------------------------------------------------
-
-  lines.dispatch.on('elementMouseover.tooltip', function(e) {
-    e.pos = [e.pos[0] +  margin.left, e.pos[1] + margin.top];
-    dispatch.tooltipShow(e);
-  });
-
-  lines.dispatch.on('elementMouseout.tooltip', function(e) {
-    dispatch.tooltipHide(e);
-  });
-
-  bars.dispatch.on('elementMouseover.tooltip', function(e) {
-    e.pos = [e.pos[0] +  margin.left, e.pos[1] + margin.top];
-    dispatch.tooltipShow(e);
-  });
-
-  bars.dispatch.on('elementMouseout.tooltip', function(e) {
-    dispatch.tooltipHide(e);
-  });
-
-  dispatch.on('tooltipHide', function() {
-    if (tooltips) nv.tooltip.cleanup();
-  });
-
-  //============================================================
-
-
-  //============================================================
-  // Expose Public Variables
-  //------------------------------------------------------------
-
-  // expose chart's sub-components
-  chart.dispatch = dispatch;
-  chart.legend = legend;
-  chart.lines = lines;
-  chart.lines2 = lines2;
-  chart.bars = bars;
-  chart.bars2 = bars2;
-  chart.xAxis = xAxis;
-  chart.x2Axis = x2Axis;
-  chart.y1Axis = y1Axis;
-  chart.y2Axis = y2Axis;
-  chart.y3Axis = y3Axis;
-  chart.y4Axis = y4Axis;
-
-  d3.rebind(chart, lines, 'defined', 'size', 'clipVoronoi', 'interpolate');
-  //TODO: consider rebinding x, y and some other stuff, and simply do soemthign lile bars.x(lines.x()), etc.
-  //d3.rebind(chart, lines, 'x', 'y', 'size', 'xDomain', 'yDomain', 'xRange', 'yRange', 'forceX', 'forceY', 'interactive', 'clipEdge', 'clipVoronoi', 'id');
-
-  chart.options = nv.utils.optionsFunc.bind(chart);
-  
-  chart.x = function(_) {
-    if (!arguments.length) return getX;
-    getX = _;
-    lines.x(_);
-    bars.x(_);
-    return chart;
-  };
-
-  chart.y = function(_) {
-    if (!arguments.length) return getY;
-    getY = _;
-    lines.y(_);
-    bars.y(_);
-    return chart;
-  };
-
-  chart.margin = function(_) {
-    if (!arguments.length) return margin;
-    margin.top    = typeof _.top    != 'undefined' ? _.top    : margin.top;
-    margin.right  = typeof _.right  != 'undefined' ? _.right  : margin.right;
-    margin.bottom = typeof _.bottom != 'undefined' ? _.bottom : margin.bottom;
-    margin.left   = typeof _.left   != 'undefined' ? _.left   : margin.left;
-    return chart;
-  };
-
-  chart.width = function(_) {
-    if (!arguments.length) return width;
-    width = _;
-    return chart;
-  };
-
-  chart.height = function(_) {
-    if (!arguments.length) return height;
-    height = _;
-    return chart;
-  };
-
-  chart.color = function(_) {
-    if (!arguments.length) return color;
-    color = nv.utils.getColor(_);
-    legend.color(color);
-    return chart;
-  };
-
-  chart.showLegend = function(_) {
-    if (!arguments.length) return showLegend;
-    showLegend = _;
-    return chart;
-  };
-
-  chart.tooltips = function(_) {
-    if (!arguments.length) return tooltips;
-    tooltips = _;
-    return chart;
-  };
-
-  chart.tooltipContent = function(_) {
-    if (!arguments.length) return tooltip;
-    tooltip = _;
-    return chart;
-  };
-
-  chart.noData = function(_) {
-    if (!arguments.length) return noData;
-    noData = _;
-    return chart;
-  };
-
-  chart.brushExtent = function(_) {
-    if (!arguments.length) return brushExtent;
-    brushExtent = _;
-    return chart;
-  };
-
-
-  //============================================================
-
-
-  return chart;
-}
-
-nv.models.multiBar = function() {
-  "use strict";
-  //============================================================
-  // Public Variables with Default Settings
-  //------------------------------------------------------------
-
-  var margin = {top: 0, right: 0, bottom: 0, left: 0}
-    , width = 960
-    , height = 500
-    , x = d3.scale.ordinal()
-    , y = d3.scale.linear()
-    , id = Math.floor(Math.random() * 10000) //Create semi-unique ID in case user doesn't select one
-    , getX = function(d) { return d.x }
-    , getY = function(d) { return d.y }
-    , forceY = [0] // 0 is forced by default.. this makes sense for the majority of bar graphs... user can always do chart.forceY([]) to remove
-    , clipEdge = true
-    , stacked = false
-    , stackOffset = 'zero' // options include 'silhouette', 'wiggle', 'expand', 'zero', or a custom function
-    , color = nv.utils.defaultColor()
-    , hideable = false
-    , barColor = null // adding the ability to set the color for each rather than the whole group
-    , disabled // used in conjunction with barColor to communicate from multiBarHorizontalChart what series are disabled
-    , delay = 1200
-    , xDomain
-    , yDomain
-    , xRange
-    , yRange
-    , groupSpacing = 0.1
-    , dispatch = d3.dispatch('chartClick', 'elementClick', 'elementDblClick', 'elementMouseover', 'elementMouseout')
-    ;
-
-  //============================================================
-
-
-  //============================================================
-  // Private Variables
-  //------------------------------------------------------------
-
-  var x0, y0 //used to store previous scales
-      ;
-
-  //============================================================
-
-
-  function chart(selection) {
-    selection.each(function(data) {
-      var availableWidth = width - margin.left - margin.right,
-          availableHeight = height - margin.top - margin.bottom,
-          container = d3.select(this);
-
-      if(hideable && data.length) hideable = [{
-        values: data[0].values.map(function(d) {
-        return {
-          x: d.x,
-          y: 0,
-          series: d.series,
-          size: 0.01
-        };}
-      )}];
-
-      if (stacked)
-        data = d3.layout.stack()
-                 .offset(stackOffset)
-                 .values(function(d){ return d.values })
-                 .y(getY)
-                 (!data.length && hideable ? hideable : data);
-
-
-      //add series index to each data point for reference
-      data.forEach(function(series, i) {
-        series.values.forEach(function(point) {
-          point.series = i;
-        });
-      });
-
-
-      //------------------------------------------------------------
-      // HACK for negative value stacking
-      if (stacked)
-        data[0].values.map(function(d,i) {
-          var posBase = 0, negBase = 0;
-          data.map(function(d) {
-            var f = d.values[i]
-            f.size = Math.abs(f.y);
-            if (f.y<0)  {
-              f.y1 = negBase;
-              negBase = negBase - f.size;
-            } else
-            {
-              f.y1 = f.size + posBase;
-              posBase = posBase + f.size;
-            }
-          });
-        });
-
-      //------------------------------------------------------------
-      // Setup Scales
-
-      // remap and flatten the data for use in calculating the scales' domains
-      var seriesData = (xDomain && yDomain) ? [] : // if we know xDomain and yDomain, no need to calculate
-            data.map(function(d) {
-              return d.values.map(function(d,i) {
-                return { x: getX(d,i), y: getY(d,i), y0: d.y0, y1: d.y1 }
-              })
-            });
-
-      x   .domain(xDomain || d3.merge(seriesData).map(function(d) { return d.x }))
-          .rangeBands(xRange || [0, availableWidth], groupSpacing);
-
-      //y   .domain(yDomain || d3.extent(d3.merge(seriesData).map(function(d) { return d.y + (stacked ? d.y1 : 0) }).concat(forceY)))
-      y   .domain(yDomain || d3.extent(d3.merge(seriesData).map(function(d) { return stacked ? (d.y > 0 ? d.y1 : d.y1 + d.y ) : d.y }).concat(forceY)))
-          .range(yRange || [availableHeight, 0]);
-
-      // If scale's domain don't have a range, slightly adjust to make one... so a chart can show a single data point
-      if (x.domain()[0] === x.domain()[1])
-        x.domain()[0] ?
-            x.domain([x.domain()[0] - x.domain()[0] * 0.01, x.domain()[1] + x.domain()[1] * 0.01])
-          : x.domain([-1,1]);
-
-      if (y.domain()[0] === y.domain()[1])
-        y.domain()[0] ?
-            y.domain([y.domain()[0] + y.domain()[0] * 0.01, y.domain()[1] - y.domain()[1] * 0.01])
-          : y.domain([-1,1]);
-
-
-      x0 = x0 || x;
-      y0 = y0 || y;
-
-      //------------------------------------------------------------
-
-
-      //------------------------------------------------------------
-      // Setup containers and skeleton of chart
-
-      var wrap = container.selectAll('g.nv-wrap.nv-multibar').data([data]);
-      var wrapEnter = wrap.enter().append('g').attr('class', 'nvd3 nv-wrap nv-multibar');
-      var defsEnter = wrapEnter.append('defs');
-      var gEnter = wrapEnter.append('g');
-      var g = wrap.select('g')
-
-      gEnter.append('g').attr('class', 'nv-groups');
-
-      wrap.attr('transform', 'translate(' + margin.left + ',' + margin.top + ')');
-
-      //------------------------------------------------------------
-
-
-
-      defsEnter.append('clipPath')
-          .attr('id', 'nv-edge-clip-' + id)
-        .append('rect');
-      wrap.select('#nv-edge-clip-' + id + ' rect')
-          .attr('width', availableWidth)
-          .attr('height', availableHeight);
-
-      g   .attr('clip-path', clipEdge ? 'url(#nv-edge-clip-' + id + ')' : '');
-
-
-
-      var groups = wrap.select('.nv-groups').selectAll('.nv-group')
-          .data(function(d) { return d }, function(d,i) { return i });
-      groups.enter().append('g')
-          .style('stroke-opacity', 1e-6)
-          .style('fill-opacity', 1e-6);
-      groups.exit()
-        .transition()
-        .selectAll('rect.nv-bar')
-        .delay(function(d,i) {
-             return i * delay/ data[0].values.length;
-        })
-          .attr('y', function(d) { return stacked ? y0(d.y0) : y0(0) })
-          .attr('height', 0)
-          .remove();
-      groups
-          .attr('class', function(d,i) { return 'nv-group nv-series-' + i })
-          .classed('hover', function(d) { return d.hover })
-          .style('fill', function(d,i){ return color(d, i) })
-          .style('stroke', function(d,i){ return color(d, i) });
-      groups
-          .transition()
-          .style('stroke-opacity', 1)
-          .style('fill-opacity', .75);
-
-
-      var bars = groups.selectAll('rect.nv-bar')
-          .data(function(d) { return (hideable && !data.length) ? hideable.values : d.values });
-
-      bars.exit().remove();
-
-
-      var barsEnter = bars.enter().append('rect')
-          .attr('class', function(d,i) { return getY(d,i) < 0 ? 'nv-bar negative' : 'nv-bar positive'})
-          .attr('x', function(d,i,j) {
-              return stacked ? 0 : (j * x.rangeBand() / data.length )
-          })
-          .attr('y', function(d) { return y0(stacked ? d.y0 : 0) })
-          .attr('height', 0)
-          .attr('width', x.rangeBand() / (stacked ? 1 : data.length) )
-          .attr('transform', function(d,i) { return 'translate(' + x(getX(d,i)) + ',0)'; })
-          ;
-      bars
-          .style('fill', function(d,i,j){ return color(d, j, i);  })
-          .style('stroke', function(d,i,j){ return color(d, j, i); })
-          .on('mouseover', function(d,i) { //TODO: figure out why j works above, but not here
-            d3.select(this).classed('hover', true);
-            dispatch.elementMouseover({
-              value: getY(d,i),
-              point: d,
-              series: data[d.series],
-              pos: [x(getX(d,i)) + (x.rangeBand() * (stacked ? data.length / 2 : d.series + .5) / data.length), y(getY(d,i) + (stacked ? d.y0 : 0))],  // TODO: Figure out why the value appears to be shifted
-              pointIndex: i,
-              seriesIndex: d.series,
-              e: d3.event
-            });
-          })
-          .on('mouseout', function(d,i) {
-            d3.select(this).classed('hover', false);
-            dispatch.elementMouseout({
-              value: getY(d,i),
-              point: d,
-              series: data[d.series],
-              pointIndex: i,
-              seriesIndex: d.series,
-              e: d3.event
-            });
-          })
-          .on('click', function(d,i) {
-            dispatch.elementClick({
-              value: getY(d,i),
-              point: d,
-              series: data[d.series],
-              pos: [x(getX(d,i)) + (x.rangeBand() * (stacked ? data.length / 2 : d.series + .5) / data.length), y(getY(d,i) + (stacked ? d.y0 : 0))],  // TODO: Figure out why the value appears to be shifted
-              pointIndex: i,
-              seriesIndex: d.series,
-              e: d3.event
-            });
-            d3.event.stopPropagation();
-          })
-          .on('dblclick', function(d,i) {
-            dispatch.elementDblClick({
-              value: getY(d,i),
-              point: d,
-              series: data[d.series],
-              pos: [x(getX(d,i)) + (x.rangeBand() * (stacked ? data.length / 2 : d.series + .5) / data.length), y(getY(d,i) + (stacked ? d.y0 : 0))],  // TODO: Figure out why the value appears to be shifted
-              pointIndex: i,
-              seriesIndex: d.series,
-              e: d3.event
-            });
-            d3.event.stopPropagation();
-          });
-      bars
-          .attr('class', function(d,i) { return getY(d,i) < 0 ? 'nv-bar negative' : 'nv-bar positive'})
-          .transition()
-          .attr('transform', function(d,i) { return 'translate(' + x(getX(d,i)) + ',0)'; })
-
-      if (barColor) {
-        if (!disabled) disabled = data.map(function() { return true });
-        bars
-          .style('fill', function(d,i,j) { return d3.rgb(barColor(d,i)).darker(  disabled.map(function(d,i) { return i }).filter(function(d,i){ return !disabled[i]  })[j]   ).toString(); })
-          .style('stroke', function(d,i,j) { return d3.rgb(barColor(d,i)).darker(  disabled.map(function(d,i) { return i }).filter(function(d,i){ return !disabled[i]  })[j]   ).toString(); });
-      }
-
-
-      if (stacked)
-          bars.transition()
-            .delay(function(d,i) {
-
-                  return i * delay / data[0].values.length;
-            })
-            .attr('y', function(d,i) {
-
-              return y((stacked ? d.y1 : 0));
-            })
-            .attr('height', function(d,i) {
-              return Math.max(Math.abs(y(d.y + (stacked ? d.y0 : 0)) - y((stacked ? d.y0 : 0))),1);
-            })
-            .attr('x', function(d,i) {
-                  return stacked ? 0 : (d.series * x.rangeBand() / data.length )
-            })
-            .attr('width', x.rangeBand() / (stacked ? 1 : data.length) );
-      else
-          bars.transition()
-            .delay(function(d,i) {
-                return i * delay/ data[0].values.length;
-            })
-            .attr('x', function(d,i) {
-              return d.series * x.rangeBand() / data.length
-            })
-            .attr('width', x.rangeBand() / data.length)
-            .attr('y', function(d,i) {
-                return getY(d,i) < 0 ?
-                        y(0) :
-                        y(0) - y(getY(d,i)) < 1 ?
-                          y(0) - 1 :
-                        y(getY(d,i)) || 0;
-            })
-            .attr('height', function(d,i) {
-                return Math.max(Math.abs(y(getY(d,i)) - y(0)),1) || 0;
-            });
-
-
-
-      //store old scales for use in transitions on update
-      x0 = x.copy();
-      y0 = y.copy();
-
-    });
-
-    return chart;
-  }
-
-
-  //============================================================
-  // Expose Public Variables
-  //------------------------------------------------------------
-
-  chart.dispatch = dispatch;
-
-  chart.options = nv.utils.optionsFunc.bind(chart);
-
-  chart.x = function(_) {
-    if (!arguments.length) return getX;
-    getX = _;
-    return chart;
-  };
-
-  chart.y = function(_) {
-    if (!arguments.length) return getY;
-    getY = _;
-    return chart;
-  };
-
-  chart.margin = function(_) {
-    if (!arguments.length) return margin;
-    margin.top    = typeof _.top    != 'undefined' ? _.top    : margin.top;
-    margin.right  = typeof _.right  != 'undefined' ? _.right  : margin.right;
-    margin.bottom = typeof _.bottom != 'undefined' ? _.bottom : margin.bottom;
-    margin.left   = typeof _.left   != 'undefined' ? _.left   : margin.left;
-    return chart;
-  };
-
-  chart.width = function(_) {
-    if (!arguments.length) return width;
-    width = _;
-    return chart;
-  };
-
-  chart.height = function(_) {
-    if (!arguments.length) return height;
-    height = _;
-    return chart;
-  };
-
-  chart.xScale = function(_) {
-    if (!arguments.length) return x;
-    x = _;
-    return chart;
-  };
-
-  chart.yScale = function(_) {
-    if (!arguments.length) return y;
-    y = _;
-    return chart;
-  };
-
-  chart.xDomain = function(_) {
-    if (!arguments.length) return xDomain;
-    xDomain = _;
-    return chart;
-  };
-
-  chart.yDomain = function(_) {
-    if (!arguments.length) return yDomain;
-    yDomain = _;
-    return chart;
-  };
-
-  chart.xRange = function(_) {
-    if (!arguments.length) return xRange;
-    xRange = _;
-    return chart;
-  };
-
-  chart.yRange = function(_) {
-    if (!arguments.length) return yRange;
-    yRange = _;
-    return chart;
-  };
-
-  chart.forceY = function(_) {
-    if (!arguments.length) return forceY;
-    forceY = _;
-    return chart;
-  };
-
-  chart.stacked = function(_) {
-    if (!arguments.length) return stacked;
-    stacked = _;
-    return chart;
-  };
-
-  chart.stackOffset = function(_) {
-    if (!arguments.length) return stackOffset;
-    stackOffset = _;
-    return chart;
-  };
-
-  chart.clipEdge = function(_) {
-    if (!arguments.length) return clipEdge;
-    clipEdge = _;
-    return chart;
-  };
-
-  chart.color = function(_) {
-    if (!arguments.length) return color;
-    color = nv.utils.getColor(_);
-    return chart;
-  };
-
-  chart.barColor = function(_) {
-    if (!arguments.length) return barColor;
-    barColor = nv.utils.getColor(_);
-    return chart;
-  };
-
-  chart.disabled = function(_) {
-    if (!arguments.length) return disabled;
-    disabled = _;
-    return chart;
-  };
-
-  chart.id = function(_) {
-    if (!arguments.length) return id;
-    id = _;
-    return chart;
-  };
-
-  chart.hideable = function(_) {
-    if (!arguments.length) return hideable;
-    hideable = _;
-    return chart;
-  };
-
-  chart.delay = function(_) {
-    if (!arguments.length) return delay;
-    delay = _;
-    return chart;
-  };
-
-  chart.groupSpacing = function(_) {
-    if (!arguments.length) return groupSpacing;
-    groupSpacing = _;
-    return chart;
-  };
-
-  //============================================================
-
-
-  return chart;
-}
-
-nv.models.multiBarChart = function() {
-  "use strict";
-  //============================================================
-  // Public Variables with Default Settings
-  //------------------------------------------------------------
-
-  var multibar = nv.models.multiBar()
-    , xAxis = nv.models.axis()
-    , yAxis = nv.models.axis()
-    , legend = nv.models.legend()
-    , controls = nv.models.legend()
-    ;
-
-  var margin = {top: 30, right: 20, bottom: 50, left: 60}
-    , width = null
-    , height = null
-    , color = nv.utils.defaultColor()
-    , showControls = true
-    , showLegend = true
-    , showXAxis = true
-    , showYAxis = true
-    , rightAlignYAxis = false
-    , reduceXTicks = true // if false a tick will show for every data point
-    , staggerLabels = false
-    , rotateLabels = 0
-    , tooltips = true
-    , tooltip = function(key, x, y, e, graph) {
-        return '<h3>' + key + '</h3>' +
-               '<p>' +  y + ' on ' + x + '</p>'
-      }
-    , x //can be accessed via chart.xScale()
-    , y //can be accessed via chart.yScale()
-    , state = { stacked: false }
-    , defaultState = null
-    , noData = "No Data Available."
-    , dispatch = d3.dispatch('tooltipShow', 'tooltipHide', 'stateChange', 'changeState')
-    , controlWidth = function() { return showControls ? 180 : 0 }
-    , transitionDuration = 250
-    ;
-
-  multibar
-    .stacked(false)
-    ;
-  xAxis
-    .orient('bottom')
-    .tickPadding(7)
-    .highlightZero(true)
-    .showMaxMin(false)
-    .tickFormat(function(d) { return d })
-    ;
-  yAxis
-    .orient((rightAlignYAxis) ? 'right' : 'left')
-    .tickFormat(d3.format(',.1f'))
-    ;
-
-  controls.updateState(false);
-  //============================================================
-
-
-  //============================================================
-  // Private Variables
-  //------------------------------------------------------------
-
-  var showTooltip = function(e, offsetElement) {
-    var left = e.pos[0] + ( offsetElement.offsetLeft || 0 ),
-        top = e.pos[1] + ( offsetElement.offsetTop || 0),
-        x = xAxis.tickFormat()(multibar.x()(e.point, e.pointIndex)),
-        y = yAxis.tickFormat()(multibar.y()(e.point, e.pointIndex)),
-        content = tooltip(e.series.key, x, y, e, chart);
-
-    nv.tooltip.show([left, top], content, e.value < 0 ? 'n' : 's', null, offsetElement);
-  };
-
-  //============================================================
-
-
-  function chart(selection) {
-    selection.each(function(data) {
-      var container = d3.select(this),
-          that = this;
-
-      var availableWidth = (width  || parseInt(container.style('width')) || 960)
-                             - margin.left - margin.right,
-          availableHeight = (height || parseInt(container.style('height')) || 400)
-                             - margin.top - margin.bottom;
-
-      chart.update = function() { container.transition().duration(transitionDuration).call(chart) };
-      chart.container = this;
-
-      //set state.disabled
-      state.disabled = data.map(function(d) { return !!d.disabled });
-
-      if (!defaultState) {
-        var key;
-        defaultState = {};
-        for (key in state) {
-          if (state[key] instanceof Array)
-            defaultState[key] = state[key].slice(0);
-          else
-            defaultState[key] = state[key];
-        }
-      }
-      //------------------------------------------------------------
-      // Display noData message if there's nothing to show.
-
-      if (!data || !data.length || !data.filter(function(d) { return d.values.length }).length) {
-        var noDataText = container.selectAll('.nv-noData').data([noData]);
-
-        noDataText.enter().append('text')
-          .attr('class', 'nvd3 nv-noData')
-          .attr('dy', '-.7em')
-          .style('text-anchor', 'middle');
-
-        noDataText
-          .attr('x', margin.left + availableWidth / 2)
-          .attr('y', margin.top + availableHeight / 2)
-          .text(function(d) { return d });
-
-        return chart;
-      } else {
-        container.selectAll('.nv-noData').remove();
-      }
-
-      //------------------------------------------------------------
-
-
-      //------------------------------------------------------------
-      // Setup Scales
-
-      x = multibar.xScale();
-      y = multibar.yScale();
-
-      //------------------------------------------------------------
-
-
-      //------------------------------------------------------------
-      // Setup containers and skeleton of chart
-
-      var wrap = container.selectAll('g.nv-wrap.nv-multiBarWithLegend').data([data]);
-      var gEnter = wrap.enter().append('g').attr('class', 'nvd3 nv-wrap nv-multiBarWithLegend').append('g');
-      var g = wrap.select('g');
-
-      gEnter.append('g').attr('class', 'nv-x nv-axis');
-      gEnter.append('g').attr('class', 'nv-y nv-axis');
-      gEnter.append('g').attr('class', 'nv-barsWrap');
-      gEnter.append('g').attr('class', 'nv-legendWrap');
-      gEnter.append('g').attr('class', 'nv-controlsWrap');
-
-      //------------------------------------------------------------
-
-
-      //------------------------------------------------------------
-      // Legend
-
-      if (showLegend) {
-        legend.width(availableWidth - controlWidth());
-
-        if (multibar.barColor())
-          data.forEach(function(series,i) {
-            series.color = d3.rgb('#ccc').darker(i * 1.5).toString();
-          })
-
-        g.select('.nv-legendWrap')
-            .datum(data)
-            .call(legend);
-
-        if ( margin.top != legend.height()) {
-          margin.top = legend.height();
-          availableHeight = (height || parseInt(container.style('height')) || 400)
-                             - margin.top - margin.bottom;
-        }
-
-        g.select('.nv-legendWrap')
-            .attr('transform', 'translate(' + controlWidth() + ',' + (-margin.top) +')');
-      }
-
-      //------------------------------------------------------------
-
-
-      //------------------------------------------------------------
-      // Controls
-
-      if (showControls) {
-        var controlsData = [
-          { key: 'Grouped', disabled: multibar.stacked() },
-          { key: 'Stacked', disabled: !multibar.stacked() }
-        ];
-
-        controls.width(controlWidth()).color(['#444', '#444', '#444']);
-        g.select('.nv-controlsWrap')
-            .datum(controlsData)
-            .attr('transform', 'translate(0,' + (-margin.top) +')')
-            .call(controls);
-      }
-
-      //------------------------------------------------------------
-
-
-      wrap.attr('transform', 'translate(' + margin.left + ',' + margin.top + ')');
-
-      if (rightAlignYAxis) {
-          g.select(".nv-y.nv-axis")
-              .attr("transform", "translate(" + availableWidth + ",0)");
-      }
-
-      //------------------------------------------------------------
-      // Main Chart Component(s)
-
-      multibar
-        .disabled(data.map(function(series) { return series.disabled }))
-        .width(availableWidth)
-        .height(availableHeight)
-        .color(data.map(function(d,i) {
-          return d.color || color(d, i);
-        }).filter(function(d,i) { return !data[i].disabled }))
-
-
-      var barsWrap = g.select('.nv-barsWrap')
-          .datum(data.filter(function(d) { return !d.disabled }))
-
-      barsWrap.transition().call(multibar);
-
-      //------------------------------------------------------------
-
-
-      //------------------------------------------------------------
-      // Setup Axes
-
-      if (showXAxis) {
-          xAxis
-            .scale(x)
-            .ticks( availableWidth / 100 )
-            .tickSize(-availableHeight, 0);
-
-          g.select('.nv-x.nv-axis')
-              .attr('transform', 'translate(0,' + y.range()[0] + ')');
-          g.select('.nv-x.nv-axis').transition()
-              .call(xAxis);
-
-          var xTicks = g.select('.nv-x.nv-axis > g').selectAll('g');
-
-          xTicks
-              .selectAll('line, text')
-              .style('opacity', 1)
-
-          if (staggerLabels) {
-              var getTranslate = function(x,y) {
-                  return "translate(" + x + "," + y + ")";
-              };
-
-              var staggerUp = 5, staggerDown = 17;  //pixels to stagger by
-              // Issue #140
-              xTicks
-                .selectAll("text")
-                .attr('transform', function(d,i,j) { 
-                    return  getTranslate(0, (j % 2 == 0 ? staggerUp : staggerDown));
-                  });
-
-              var totalInBetweenTicks = d3.selectAll(".nv-x.nv-axis .nv-wrap g g text")[0].length;
-              g.selectAll(".nv-x.nv-axis .nv-axisMaxMin text")
-                .attr("transform", function(d,i) {
-                    return getTranslate(0, (i === 0 || totalInBetweenTicks % 2 !== 0) ? staggerDown : staggerUp);
-                });
-          }
-
-          if (reduceXTicks)
-            xTicks
-              .filter(function(d,i) {
-                  return i % Math.ceil(data[0].values.length / (availableWidth / 100)) !== 0;
-                })
-              .selectAll('text, line')
-              .style('opacity', 0);
-
-          if(rotateLabels)
-            xTicks
-              .selectAll('.tick text')
-              .attr('transform', 'rotate(' + rotateLabels + ' 0,0)')
-              .style('text-anchor', rotateLabels > 0 ? 'start' : 'end');
-          
-          g.select('.nv-x.nv-axis').selectAll('g.nv-axisMaxMin text')
-              .style('opacity', 1);
-      }
-
-
-      if (showYAxis) {      
-          yAxis
-            .scale(y)
-            .ticks( availableHeight / 36 )
-            .tickSize( -availableWidth, 0);
-
-          g.select('.nv-y.nv-axis').transition()
-              .call(yAxis);
-      }
-
-
-      //------------------------------------------------------------
-
-
-
-      //============================================================
-      // Event Handling/Dispatching (in chart's scope)
-      //------------------------------------------------------------
-
-      legend.dispatch.on('stateChange', function(newState) { 
-        state = newState;
-        dispatch.stateChange(state);
-        chart.update();
-      });
-
-      controls.dispatch.on('legendClick', function(d,i) {
-        if (!d.disabled) return;
-        controlsData = controlsData.map(function(s) {
-          s.disabled = true;
-          return s;
-        });
-        d.disabled = false;
-
-        switch (d.key) {
-          case 'Grouped':
-            multibar.stacked(false);
-            break;
-          case 'Stacked':
-            multibar.stacked(true);
-            break;
-        }
-
-        state.stacked = multibar.stacked();
-        dispatch.stateChange(state);
-
-        chart.update();
-      });
-
-      dispatch.on('tooltipShow', function(e) {
-        if (tooltips) showTooltip(e, that.parentNode)
-      });
-
-      // Update chart from a state object passed to event handler
-      dispatch.on('changeState', function(e) {
-
-        if (typeof e.disabled !== 'undefined') {
-          data.forEach(function(series,i) {
-            series.disabled = e.disabled[i];
-          });
-
-          state.disabled = e.disabled;
-        }
-
-        if (typeof e.stacked !== 'undefined') {
-          multibar.stacked(e.stacked);
-          state.stacked = e.stacked;
-        }
-
-        chart.update();
-      });
-
-      //============================================================
-
-
-    });
-
-    return chart;
-  }
-
-
-  //============================================================
-  // Event Handling/Dispatching (out of chart's scope)
-  //------------------------------------------------------------
-
-  multibar.dispatch.on('elementMouseover.tooltip', function(e) {
-    e.pos = [e.pos[0] +  margin.left, e.pos[1] + margin.top];
-    dispatch.tooltipShow(e);
-  });
-
-  multibar.dispatch.on('elementMouseout.tooltip', function(e) {
-    dispatch.tooltipHide(e);
-  });
-  dispatch.on('tooltipHide', function() {
-    if (tooltips) nv.tooltip.cleanup();
-  });
-
-  //============================================================
-
-
-  //============================================================
-  // Expose Public Variables
-  //------------------------------------------------------------
-
-  // expose chart's sub-components
-  chart.dispatch = dispatch;
-  chart.multibar = multibar;
-  chart.legend = legend;
-  chart.xAxis = xAxis;
-  chart.yAxis = yAxis;
-
-  d3.rebind(chart, multibar, 'x', 'y', 'xDomain', 'yDomain', 'xRange', 'yRange', 'forceX', 'forceY', 'clipEdge',
-   'id', 'stacked', 'stackOffset', 'delay', 'barColor','groupSpacing');
-
-  chart.options = nv.utils.optionsFunc.bind(chart);
-  
-  chart.margin = function(_) {
-    if (!arguments.length) return margin;
-    margin.top    = typeof _.top    != 'undefined' ? _.top    : margin.top;
-    margin.right  = typeof _.right  != 'undefined' ? _.right  : margin.right;
-    margin.bottom = typeof _.bottom != 'undefined' ? _.bottom : margin.bottom;
-    margin.left   = typeof _.left   != 'undefined' ? _.left   : margin.left;
-    return chart;
-  };
-
-  chart.width = function(_) {
-    if (!arguments.length) return width;
-    width = _;
-    return chart;
-  };
-
-  chart.height = function(_) {
-    if (!arguments.length) return height;
-    height = _;
-    return chart;
-  };
-
-  chart.color = function(_) {
-    if (!arguments.length) return color;
-    color = nv.utils.getColor(_);
-    legend.color(color);
-    return chart;
-  };
-
-  chart.showControls = function(_) {
-    if (!arguments.length) return showControls;
-    showControls = _;
-    return chart;
-  };
-
-  chart.showLegend = function(_) {
-    if (!arguments.length) return showLegend;
-    showLegend = _;
-    return chart;
-  };
-
-  chart.showXAxis = function(_) {
-    if (!arguments.length) return showXAxis;
-    showXAxis = _;
-    return chart;
-  };
-
-  chart.showYAxis = function(_) {
-    if (!arguments.length) return showYAxis;
-    showYAxis = _;
-    return chart;
-  };
-
-  chart.rightAlignYAxis = function(_) {
-    if(!arguments.length) return rightAlignYAxis;
-    rightAlignYAxis = _;
-    yAxis.orient( (_) ? 'right' : 'left');
-    return chart;
-  };
-
-  chart.reduceXTicks= function(_) {
-    if (!arguments.length) return reduceXTicks;
-    reduceXTicks = _;
-    return chart;
-  };
-
-  chart.rotateLabels = function(_) {
-    if (!arguments.length) return rotateLabels;
-    rotateLabels = _;
-    return chart;
-  }
-
-  chart.staggerLabels = function(_) {
-    if (!arguments.length) return staggerLabels;
-    staggerLabels = _;
-    return chart;
-  };
-
-  chart.tooltip = function(_) {
-    if (!arguments.length) return tooltip;
-    tooltip = _;
-    return chart;
-  };
-
-  chart.tooltips = function(_) {
-    if (!arguments.length) return tooltips;
-    tooltips = _;
-    return chart;
-  };
-
-  chart.tooltipContent = function(_) {
-    if (!arguments.length) return tooltip;
-    tooltip = _;
-    return chart;
-  };
-
-  chart.state = function(_) {
-    if (!arguments.length) return state;
-    state = _;
-    return chart;
-  };
-
-  chart.defaultState = function(_) {
-    if (!arguments.length) return defaultState;
-    defaultState = _;
-    return chart;
-  };
-  
-  chart.noData = function(_) {
-    if (!arguments.length) return noData;
-    noData = _;
-    return chart;
-  };
-
-  chart.transitionDuration = function(_) {
-    if (!arguments.length) return transitionDuration;
-    transitionDuration = _;
-    return chart;
-  };
-
-  //============================================================
-
-
-  return chart;
-}
-
-nv.models.multiBarHorizontal = function() {
-  "use strict";
-  //============================================================
-  // Public Variables with Default Settings
-  //------------------------------------------------------------
-
-  var margin = {top: 0, right: 0, bottom: 0, left: 0}
-    , width = 960
-    , height = 500
-    , id = Math.floor(Math.random() * 10000) //Create semi-unique ID in case user doesn't select one
-    , x = d3.scale.ordinal()
-    , y = d3.scale.linear()
-    , getX = function(d) { return d.x }
-    , getY = function(d) { return d.y }
-    , forceY = [0] // 0 is forced by default.. this makes sense for the majority of bar graphs... user can always do chart.forceY([]) to remove
-    , color = nv.utils.defaultColor()
-    , barColor = null // adding the ability to set the color for each rather than the whole group
-    , disabled // used in conjunction with barColor to communicate from multiBarHorizontalChart what series are disabled
-    , stacked = false
-    , showValues = false
-    , showBarLabels = false
-    , valuePadding = 60
-    , valueFormat = d3.format(',.2f')
-    , delay = 1200
-    , xDomain
-    , yDomain
-    , xRange
-    , yRange
-    , dispatch = d3.dispatch('chartClick', 'elementClick', 'elementDblClick', 'elementMouseover', 'elementMouseout')
-    ;
-
-  //============================================================
-
-
-  //============================================================
-  // Private Variables
-  //------------------------------------------------------------
-
-  var x0, y0 //used to store previous scales
-      ;
-
-  //============================================================
-
-
-  function chart(selection) {
-    selection.each(function(data) {
-      var availableWidth = width - margin.left - margin.right,
-          availableHeight = height - margin.top - margin.bottom,
-          container = d3.select(this);
-
-
-      if (stacked)
-        data = d3.layout.stack()
-                 .offset('zero')
-                 .values(function(d){ return d.values })
-                 .y(getY)
-                 (data);
-
-
-      //add series index to each data point for reference
-      data.forEach(function(series, i) {
-        series.values.forEach(function(point) {
-          point.series = i;
-        });
-      });
-
-
-
-      //------------------------------------------------------------
-      // HACK for negative value stacking
-      if (stacked)
-        data[0].values.map(function(d,i) {
-          var posBase = 0, negBase = 0;
-          data.map(function(d) {
-            var f = d.values[i]
-            f.size = Math.abs(f.y);
-            if (f.y<0)  {
-              f.y1 = negBase - f.size;
-              negBase = negBase - f.size;
-            } else
-            {
-              f.y1 = posBase;
-              posBase = posBase + f.size;
-            }
-          });
-        });
-
-
-
-      //------------------------------------------------------------
-      // Setup Scales
-
-      // remap and flatten the data for use in calculating the scales' domains
-      var seriesData = (xDomain && yDomain) ? [] : // if we know xDomain and yDomain, no need to calculate
-            data.map(function(d) {
-              return d.values.map(function(d,i) {
-                return { x: getX(d,i), y: getY(d,i), y0: d.y0, y1: d.y1 }
-              })
-            });
-
-      x   .domain(xDomain || d3.merge(seriesData).map(function(d) { return d.x }))
-          .rangeBands(xRange || [0, availableHeight], .1);
-
-      //y   .domain(yDomain || d3.extent(d3.merge(seriesData).map(function(d) { return d.y + (stacked ? d.y0 : 0) }).concat(forceY)))
-      y   .domain(yDomain || d3.extent(d3.merge(seriesData).map(function(d) { return stacked ? (d.y > 0 ? d.y1 + d.y : d.y1 ) : d.y }).concat(forceY)))
-
-      if (showValues && !stacked)
-        y.range(yRange || [(y.domain()[0] < 0 ? valuePadding : 0), availableWidth - (y.domain()[1] > 0 ? valuePadding : 0) ]);
-      else
-        y.range(yRange || [0, availableWidth]);
-
-      x0 = x0 || x;
-      y0 = y0 || d3.scale.linear().domain(y.domain()).range([y(0),y(0)]);
-
-      //------------------------------------------------------------
-
-
-      //------------------------------------------------------------
-      // Setup containers and skeleton of chart
-
-      var wrap = d3.select(this).selectAll('g.nv-wrap.nv-multibarHorizontal').data([data]);
-      var wrapEnter = wrap.enter().append('g').attr('class', 'nvd3 nv-wrap nv-multibarHorizontal');
-      var defsEnter = wrapEnter.append('defs');
-      var gEnter = wrapEnter.append('g');
-      var g = wrap.select('g');
-
-      gEnter.append('g').attr('class', 'nv-groups');
-
-      wrap.attr('transform', 'translate(' + margin.left + ',' + margin.top + ')');
-
-      //------------------------------------------------------------
-
-
-
-      var groups = wrap.select('.nv-groups').selectAll('.nv-group')
-          .data(function(d) { return d }, function(d,i) { return i });
-      groups.enter().append('g')
-          .style('stroke-opacity', 1e-6)
-          .style('fill-opacity', 1e-6);
-      groups.exit().transition()
-          .style('stroke-opacity', 1e-6)
-          .style('fill-opacity', 1e-6)
-          .remove();
-      groups
-          .attr('class', function(d,i) { return 'nv-group nv-series-' + i })
-          .classed('hover', function(d) { return d.hover })
-          .style('fill', function(d,i){ return color(d, i) })
-          .style('stroke', function(d,i){ return color(d, i) });
-      groups.transition()
-          .style('stroke-opacity', 1)
-          .style('fill-opacity', .75);
-
-
-      var bars = groups.selectAll('g.nv-bar')
-          .data(function(d) { return d.values });
-
-      bars.exit().remove();
-
-
-      var barsEnter = bars.enter().append('g')
-          .attr('transform', function(d,i,j) {
-              return 'translate(' + y0(stacked ? d.y0 : 0) + ',' + (stacked ? 0 : (j * x.rangeBand() / data.length ) + x(getX(d,i))) + ')'
-          });
-
-      barsEnter.append('rect')
-          .attr('width', 0)
-          .attr('height', x.rangeBand() / (stacked ? 1 : data.length) )
-
-      bars
-          .on('mouseover', function(d,i) { //TODO: figure out why j works above, but not here
-            d3.select(this).classed('hover', true);
-            dispatch.elementMouseover({
-              value: getY(d,i),
-              point: d,
-              series: data[d.series],
-              pos: [ y(getY(d,i) + (stacked ? d.y0 : 0)), x(getX(d,i)) + (x.rangeBand() * (stacked ? data.length / 2 : d.series + .5) / data.length) ],
-              pointIndex: i,
-              seriesIndex: d.series,
-              e: d3.event
-            });
-          })
-          .on('mouseout', function(d,i) {
-            d3.select(this).classed('hover', false);
-            dispatch.elementMouseout({
-              value: getY(d,i),
-              point: d,
-              series: data[d.series],
-              pointIndex: i,
-              seriesIndex: d.series,
-              e: d3.event
-            });
-          })
-          .on('click', function(d,i) {
-            dispatch.elementClick({
-              value: getY(d,i),
-              point: d,
-              series: data[d.series],
-              pos: [x(getX(d,i)) + (x.rangeBand() * (stacked ? data.length / 2 : d.series + .5) / data.length), y(getY(d,i) + (stacked ? d.y0 : 0))],  // TODO: Figure out why the value appears to be shifted
-              pointIndex: i,
-              seriesIndex: d.series,
-              e: d3.event
-            });
-            d3.event.stopPropagation();
-          })
-          .on('dblclick', function(d,i) {
-            dispatch.elementDblClick({
-              value: getY(d,i),
-              point: d,
-              series: data[d.series],
-              pos: [x(getX(d,i)) + (x.rangeBand() * (stacked ? data.length / 2 : d.series + .5) / data.length), y(getY(d,i) + (stacked ? d.y0 : 0))],  // TODO: Figure out why the value appears to be shifted
-              pointIndex: i,
-              seriesIndex: d.series,
-              e: d3.event
-            });
-            d3.event.stopPropagation();
-          });
-
-
-      barsEnter.append('text');
-
-      if (showValues && !stacked) {
-        bars.select('text')
-            .attr('text-anchor', function(d,i) { return getY(d,i) < 0 ? 'end' : 'start' })
-            .attr('y', x.rangeBand() / (data.length * 2))
-            .attr('dy', '.32em')
-            .text(function(d,i) { return valueFormat(getY(d,i)) })
-        bars.transition()
-          .select('text')
-            .attr('x', function(d,i) { return getY(d,i) < 0 ? -4 : y(getY(d,i)) - y(0) + 4 })
-      } else {
-        bars.selectAll('text').text('');
-      }
-
-      if (showBarLabels && !stacked) {
-        barsEnter.append('text').classed('nv-bar-label',true);
-        bars.select('text.nv-bar-label')
-            .attr('text-anchor', function(d,i) { return getY(d,i) < 0 ? 'start' : 'end' })
-            .attr('y', x.rangeBand() / (data.length * 2))
-            .attr('dy', '.32em')
-            .text(function(d,i) { return getX(d,i) });
-        bars.transition()
-          .select('text.nv-bar-label')
-            .attr('x', function(d,i) { return getY(d,i) < 0 ? y(0) - y(getY(d,i)) + 4 : -4 });
-      }
-      else {
-        bars.selectAll('text.nv-bar-label').text('');
-      }
-
-      bars
-          .attr('class', function(d,i) { return getY(d,i) < 0 ? 'nv-bar negative' : 'nv-bar positive'})
-
-      if (barColor) {
-        if (!disabled) disabled = data.map(function() { return true });
-        bars
-          .style('fill', function(d,i,j) { return d3.rgb(barColor(d,i)).darker(  disabled.map(function(d,i) { return i }).filter(function(d,i){ return !disabled[i]  })[j]   ).toString(); })
-          .style('stroke', function(d,i,j) { return d3.rgb(barColor(d,i)).darker(  disabled.map(function(d,i) { return i }).filter(function(d,i){ return !disabled[i]  })[j]   ).toString(); });
-      }
-
-      if (stacked)
-        bars.transition()
-            .attr('transform', function(d,i) {
-              return 'translate(' + y(d.y1) + ',' + x(getX(d,i)) + ')'
-            })
-          .select('rect')
-            .attr('width', function(d,i) {
-              return Math.abs(y(getY(d,i) + d.y0) - y(d.y0))
-            })
-            .attr('height', x.rangeBand() );
-      else
-        bars.transition()
-            .attr('transform', function(d,i) {
-              //TODO: stacked must be all positive or all negative, not both?
-              return 'translate(' +
-              (getY(d,i) < 0 ? y(getY(d,i)) : y(0))
-              + ',' +
-              (d.series * x.rangeBand() / data.length
-              +
-              x(getX(d,i)) )
-              + ')'
-            })
-          .select('rect')
-            .attr('height', x.rangeBand() / data.length )
-            .attr('width', function(d,i) {
-              return Math.max(Math.abs(y(getY(d,i)) - y(0)),1)
-            });
-
-
-      //store old scales for use in transitions on update
-      x0 = x.copy();
-      y0 = y.copy();
-
-    });
-
-    return chart;
-  }
-
-
-  //============================================================
-  // Expose Public Variables
-  //------------------------------------------------------------
-
-  chart.dispatch = dispatch;
-
-  chart.options = nv.utils.optionsFunc.bind(chart);
-
-  chart.x = function(_) {
-    if (!arguments.length) return getX;
-    getX = _;
-    return chart;
-  };
-
-  chart.y = function(_) {
-    if (!arguments.length) return getY;
-    getY = _;
-    return chart;
-  };
-
-  chart.margin = function(_) {
-    if (!arguments.length) return margin;
-    margin.top    = typeof _.top    != 'undefined' ? _.top    : margin.top;
-    margin.right  = typeof _.right  != 'undefined' ? _.right  : margin.right;
-    margin.bottom = typeof _.bottom != 'undefined' ? _.bottom : margin.bottom;
-    margin.left   = typeof _.left   != 'undefined' ? _.left   : margin.left;
-    return chart;
-  };
-
-  chart.width = function(_) {
-    if (!arguments.length) return width;
-    width = _;
-    return chart;
-  };
-
-  chart.height = function(_) {
-    if (!arguments.length) return height;
-    height = _;
-    return chart;
-  };
-
-  chart.xScale = function(_) {
-    if (!arguments.length) return x;
-    x = _;
-    return chart;
-  };
-
-  chart.yScale = function(_) {
-    if (!arguments.length) return y;
-    y = _;
-    return chart;
-  };
-
-  chart.xDomain = function(_) {
-    if (!arguments.length) return xDomain;
-    xDomain = _;
-    return chart;
-  };
-
-  chart.yDomain = function(_) {
-    if (!arguments.length) return yDomain;
-    yDomain = _;
-    return chart;
-  };
-
-  chart.xRange = function(_) {
-    if (!arguments.length) return xRange;
-    xRange = _;
-    return chart;
-  };
-
-  chart.yRange = function(_) {
-    if (!arguments.length) return yRange;
-    yRange = _;
-    return chart;
-  };
-
-  chart.forceY = function(_) {
-    if (!arguments.length) return forceY;
-    forceY = _;
-    return chart;
-  };
-
-  chart.stacked = function(_) {
-    if (!arguments.length) return stacked;
-    stacked = _;
-    return chart;
-  };
-
-  chart.color = function(_) {
-    if (!arguments.length) return color;
-    color = nv.utils.getColor(_);
-    return chart;
-  };
-
-  chart.barColor = function(_) {
-    if (!arguments.length) return barColor;
-    barColor = nv.utils.getColor(_);
-    return chart;
-  };
-
-  chart.disabled = function(_) {
-    if (!arguments.length) return disabled;
-    disabled = _;
-    return chart;
-  };
-
-  chart.id = function(_) {
-    if (!arguments.length) return id;
-    id = _;
-    return chart;
-  };
-
-  chart.delay = function(_) {
-    if (!arguments.length) return delay;
-    delay = _;
-    return chart;
-  };
-
-  chart.showValues = function(_) {
-    if (!arguments.length) return showValues;
-    showValues = _;
-    return chart;
-  };
-
-  chart.showBarLabels = function(_) {
-    if (!arguments.length) return showBarLabels;
-    showBarLabels = _;
-    return chart;
-  };
-
-
-  chart.valueFormat= function(_) {
-    if (!arguments.length) return valueFormat;
-    valueFormat = _;
-    return chart;
-  };
-
-  chart.valuePadding = function(_) {
-    if (!arguments.length) return valuePadding;
-    valuePadding = _;
-    return chart;
-  };
-
-  //============================================================
-
-
-  return chart;
-}
-
-nv.models.multiBarHorizontalChart = function() {
-  "use strict";
-  //============================================================
-  // Public Variables with Default Settings
-  //------------------------------------------------------------
-
-  var multibar = nv.models.multiBarHorizontal()
-    , xAxis = nv.models.axis()
-    , yAxis = nv.models.axis()
-    , legend = nv.models.legend().height(30)
-    , controls = nv.models.legend().height(30)
-    ;
-
-  var margin = {top: 30, right: 20, bottom: 50, left: 60}
-    , width = null
-    , height = null
-    , color = nv.utils.defaultColor()
-    , showControls = true
-    , showLegend = true
-    , showXAxis = true
-    , showYAxis = true
-    , stacked = false
-    , tooltips = true
-    , tooltip = function(key, x, y, e, graph) {
-        return '<h3>' + key + ' - ' + x + '</h3>' +
-               '<p>' +  y + '</p>'
-      }
-    , x //can be accessed via chart.xScale()
-    , y //can be accessed via chart.yScale()
-    , state = { stacked: stacked }
-    , defaultState = null
-    , noData = 'No Data Available.'
-    , dispatch = d3.dispatch('tooltipShow', 'tooltipHide', 'stateChange', 'changeState')
-    , controlWidth = function() { return showControls ? 180 : 0 }
-    , transitionDuration = 250
-    ;
-
-  multibar
-    .stacked(stacked)
-    ;
-  xAxis
-    .orient('left')
-    .tickPadding(5)
-    .highlightZero(false)
-    .showMaxMin(false)
-    .tickFormat(function(d) { return d })
-    ;
-  yAxis
-    .orient('bottom')
-    .tickFormat(d3.format(',.1f'))
-    ;
-
-  controls.updateState(false);
-  //============================================================
-
-
-  //============================================================
-  // Private Variables
-  //------------------------------------------------------------
-
-  var showTooltip = function(e, offsetElement) {
-    var left = e.pos[0] + ( offsetElement.offsetLeft || 0 ),
-        top = e.pos[1] + ( offsetElement.offsetTop || 0),
-        x = xAxis.tickFormat()(multibar.x()(e.point, e.pointIndex)),
-        y = yAxis.tickFormat()(multibar.y()(e.point, e.pointIndex)),
-        content = tooltip(e.series.key, x, y, e, chart);
-
-    nv.tooltip.show([left, top], content, e.value < 0 ? 'e' : 'w', null, offsetElement);
-  };
-
-  //============================================================
-
-
-  function chart(selection) {
-    selection.each(function(data) {
-      var container = d3.select(this),
-          that = this;
-
-      var availableWidth = (width  || parseInt(container.style('width')) || 960)
-                             - margin.left - margin.right,
-          availableHeight = (height || parseInt(container.style('height')) || 400)
-                             - margin.top - margin.bottom;
-
-      chart.update = function() { container.transition().duration(transitionDuration).call(chart) };
-      chart.container = this;
-
-      //set state.disabled
-      state.disabled = data.map(function(d) { return !!d.disabled });
-
-      if (!defaultState) {
-        var key;
-        defaultState = {};
-        for (key in state) {
-          if (state[key] instanceof Array)
-            defaultState[key] = state[key].slice(0);
-          else
-            defaultState[key] = state[key];
-        }
-      }
-
-      //------------------------------------------------------------
-      // Display No Data message if there's nothing to show.
-
-      if (!data || !data.length || !data.filter(function(d) { return d.values.length }).length) {
-        var noDataText = container.selectAll('.nv-noData').data([noData]);
-
-        noDataText.enter().append('text')
-          .attr('class', 'nvd3 nv-noData')
-          .attr('dy', '-.7em')
-          .style('text-anchor', 'middle');
-
-        noDataText
-          .attr('x', margin.left + availableWidth / 2)
-          .attr('y', margin.top + availableHeight / 2)
-          .text(function(d) { return d });
-
-        return chart;
-      } else {
-        container.selectAll('.nv-noData').remove();
-      }
-
-      //------------------------------------------------------------
-
-
-      //------------------------------------------------------------
-      // Setup Scales
-
-      x = multibar.xScale();
-      y = multibar.yScale();
-
-      //------------------------------------------------------------
-
-
-      //------------------------------------------------------------
-      // Setup containers and skeleton of chart
-
-      var wrap = container.selectAll('g.nv-wrap.nv-multiBarHorizontalChart').data([data]);
-      var gEnter = wrap.enter().append('g').attr('class', 'nvd3 nv-wrap nv-multiBarHorizontalChart').append('g');
-      var g = wrap.select('g');
-
-      gEnter.append('g').attr('class', 'nv-x nv-axis');
-      gEnter.append('g').attr('class', 'nv-y nv-axis')
-            .append('g').attr('class', 'nv-zeroLine')
-            .append('line');
-      gEnter.append('g').attr('class', 'nv-barsWrap');
-      gEnter.append('g').attr('class', 'nv-legendWrap');
-      gEnter.append('g').attr('class', 'nv-controlsWrap');
-
-      //------------------------------------------------------------
-
-
-      //------------------------------------------------------------
-      // Legend
-
-      if (showLegend) {
-        legend.width(availableWidth - controlWidth());
-
-        if (multibar.barColor())
-          data.forEach(function(series,i) {
-            series.color = d3.rgb('#ccc').darker(i * 1.5).toString();
-          })
-
-        g.select('.nv-legendWrap')
-            .datum(data)
-            .call(legend);
-
-        if ( margin.top != legend.height()) {
-          margin.top = legend.height();
-          availableHeight = (height || parseInt(container.style('height')) || 400)
-                             - margin.top - margin.bottom;
-        }
-
-        g.select('.nv-legendWrap')
-            .attr('transform', 'translate(' + controlWidth() + ',' + (-margin.top) +')');
-      }
-
-      //------------------------------------------------------------
-
-
-      //------------------------------------------------------------
-      // Controls
-
-      if (showControls) {
-        var controlsData = [
-          { key: 'Grouped', disabled: multibar.stacked() },
-          { key: 'Stacked', disabled: !multibar.stacked() }
-        ];
-
-        controls.width(controlWidth()).color(['#444', '#444', '#444']);
-        g.select('.nv-controlsWrap')
-            .datum(controlsData)
-            .attr('transform', 'translate(0,' + (-margin.top) +')')
-            .call(controls);
-      }
-
-      //------------------------------------------------------------
-
-
-      wrap.attr('transform', 'translate(' + margin.left + ',' + margin.top + ')');
-
-
-      //------------------------------------------------------------
-      // Main Chart Component(s)
-
-      multibar
-        .disabled(data.map(function(series) { return series.disabled }))
-        .width(availableWidth)
-        .height(availableHeight)
-        .color(data.map(function(d,i) {
-          return d.color || color(d, i);
-        }).filter(function(d,i) { return !data[i].disabled }))
-
-
-      var barsWrap = g.select('.nv-barsWrap')
-          .datum(data.filter(function(d) { return !d.disabled }))
-
-      barsWrap.transition().call(multibar);
-
-      //------------------------------------------------------------
-
-
-      //------------------------------------------------------------
-      // Setup Axes
-
-      if (showXAxis) {
-          xAxis
-            .scale(x)
-            .ticks( availableHeight / 24 )
-            .tickSize(-availableWidth, 0);
-
-          g.select('.nv-x.nv-axis').transition()
-              .call(xAxis);
-
-          var xTicks = g.select('.nv-x.nv-axis').selectAll('g');
-
-          xTicks
-              .selectAll('line, text');
-      }
-
-      if (showYAxis) {
-          yAxis
-            .scale(y)
-            .ticks( availableWidth / 100 )
-            .tickSize( -availableHeight, 0);
-
-          g.select('.nv-y.nv-axis')
-              .attr('transform', 'translate(0,' + availableHeight + ')');
-          g.select('.nv-y.nv-axis').transition()
-              .call(yAxis);
-      }
-
-      // Zero line
-      g.select(".nv-zeroLine line")
-        .attr("x1", y(0))
-        .attr("x2", y(0))
-        .attr("y1", 0)
-        .attr("y2", -availableHeight)
-        ;
-
-      //------------------------------------------------------------
-
-
-
-      //============================================================
-      // Event Handling/Dispatching (in chart's scope)
-      //------------------------------------------------------------
-
-      legend.dispatch.on('stateChange', function(newState) {
-        state = newState;
-        dispatch.stateChange(state);
-        chart.update();
-      });
-
-      controls.dispatch.on('legendClick', function(d,i) {
-        if (!d.disabled) return;
-        controlsData = controlsData.map(function(s) {
-          s.disabled = true;
-          return s;
-        });
-        d.disabled = false;
-
-        switch (d.key) {
-          case 'Grouped':
-            multibar.stacked(false);
-            break;
-          case 'Stacked':
-            multibar.stacked(true);
-            break;
-        }
-
-        state.stacked = multibar.stacked();
-        dispatch.stateChange(state);
-
-        chart.update();
-      });
-
-      dispatch.on('tooltipShow', function(e) {
-        if (tooltips) showTooltip(e, that.parentNode);
-      });
-
-      // Update chart from a state object passed to event handler
-      dispatch.on('changeState', function(e) {
-
-        if (typeof e.disabled !== 'undefined') {
-          data.forEach(function(series,i) {
-            series.disabled = e.disabled[i];
-          });
-
-          state.disabled = e.disabled;
-        }
-
-        if (typeof e.stacked !== 'undefined') {
-          multibar.stacked(e.stacked);
-          state.stacked = e.stacked;
-        }
-
-        chart.update();
-      });
-      //============================================================
-
-
-    });
-
-    return chart;
-  }
-
-
-  //============================================================
-  // Event Handling/Dispatching (out of chart's scope)
-  //------------------------------------------------------------
-
-  multibar.dispatch.on('elementMouseover.tooltip', function(e) {
-    e.pos = [e.pos[0] +  margin.left, e.pos[1] + margin.top];
-    dispatch.tooltipShow(e);
-  });
-
-  multibar.dispatch.on('elementMouseout.tooltip', function(e) {
-    dispatch.tooltipHide(e);
-  });
-  dispatch.on('tooltipHide', function() {
-    if (tooltips) nv.tooltip.cleanup();
-  });
-
-  //============================================================
-
-
-  //============================================================
-  // Expose Public Variables
-  //------------------------------------------------------------
-
-  // expose chart's sub-components
-  chart.dispatch = dispatch;
-  chart.multibar = multibar;
-  chart.legend = legend;
-  chart.xAxis = xAxis;
-  chart.yAxis = yAxis;
-
-  d3.rebind(chart, multibar, 'x', 'y', 'xDomain', 'yDomain', 'xRange', 'yRange', 'forceX', 'forceY',
-    'clipEdge', 'id', 'delay', 'showValues','showBarLabels', 'valueFormat', 'stacked', 'barColor');
-
-  chart.options = nv.utils.optionsFunc.bind(chart);
-
-  chart.margin = function(_) {
-    if (!arguments.length) return margin;
-    margin.top    = typeof _.top    != 'undefined' ? _.top    : margin.top;
-    margin.right  = typeof _.right  != 'undefined' ? _.right  : margin.right;
-    margin.bottom = typeof _.bottom != 'undefined' ? _.bottom : margin.bottom;
-    margin.left   = typeof _.left   != 'undefined' ? _.left   : margin.left;
-    return chart;
-  };
-
-  chart.width = function(_) {
-    if (!arguments.length) return width;
-    width = _;
-    return chart;
-  };
-
-  chart.height = function(_) {
-    if (!arguments.length) return height;
-    height = _;
-    return chart;
-  };
-
-  chart.color = function(_) {
-    if (!arguments.length) return color;
-    color = nv.utils.getColor(_);
-    legend.color(color);
-    return chart;
-  };
-
-  chart.showControls = function(_) {
-    if (!arguments.length) return showControls;
-    showControls = _;
-    return chart;
-  };
-
-  chart.showLegend = function(_) {
-    if (!arguments.length) return showLegend;
-    showLegend = _;
-    return chart;
-  };
-
-  chart.showXAxis = function(_) {
-    if (!arguments.length) return showXAxis;
-    showXAxis = _;
-    return chart;
-  };
-
-  chart.showYAxis = function(_) {
-    if (!arguments.length) return showYAxis;
-    showYAxis = _;
-    return chart;
-  };
-
-  chart.tooltip = function(_) {
-    if (!arguments.length) return tooltip;
-    tooltip = _;
-    return chart;
-  };
-
-  chart.tooltips = function(_) {
-    if (!arguments.length) return tooltips;
-    tooltips = _;
-    return chart;
-  };
-
-  chart.tooltipContent = function(_) {
-    if (!arguments.length) return tooltip;
-    tooltip = _;
-    return chart;
-  };
-
-  chart.state = function(_) {
-    if (!arguments.length) return state;
-    state = _;
-    return chart;
-  };
-
-  chart.defaultState = function(_) {
-    if (!arguments.length) return defaultState;
-    defaultState = _;
-    return chart;
-  };
-
-  chart.noData = function(_) {
-    if (!arguments.length) return noData;
-    noData = _;
-    return chart;
-  };
-
-  chart.transitionDuration = function(_) {
-    if (!arguments.length) return transitionDuration;
-    transitionDuration = _;
-    return chart;
-  };
-  //============================================================
-
-
-  return chart;
-}
-nv.models.multiChart = function() {
-  "use strict";
-  //============================================================
-  // Public Variables with Default Settings
-  //------------------------------------------------------------
-
-  var margin = {top: 30, right: 20, bottom: 50, left: 60},
-      color = d3.scale.category20().range(),
-      width = null, 
-      height = null,
-      showLegend = true,
-      tooltips = true,
-      tooltip = function(key, x, y, e, graph) {
-        return '<h3>' + key + '</h3>' +
-               '<p>' +  y + ' at ' + x + '</p>'
-      },
-      x,
-      y,
-      yDomain1,
-      yDomain2
-      ; //can be accessed via chart.lines.[x/y]Scale()
-
-  //============================================================
-  // Private Variables
-  //------------------------------------------------------------
-
-  var x = d3.scale.linear(),
-      yScale1 = d3.scale.linear(),
-      yScale2 = d3.scale.linear(),
-
-      lines1 = nv.models.line().yScale(yScale1),
-      lines2 = nv.models.line().yScale(yScale2),
-
-      bars1 = nv.models.multiBar().stacked(false).yScale(yScale1),
-      bars2 = nv.models.multiBar().stacked(false).yScale(yScale2),
-
-      stack1 = nv.models.stackedArea().yScale(yScale1),
-      stack2 = nv.models.stackedArea().yScale(yScale2),
-
-      xAxis = nv.models.axis().scale(x).orient('bottom').tickPadding(5),
-      yAxis1 = nv.models.axis().scale(yScale1).orient('left'),
-      yAxis2 = nv.models.axis().scale(yScale2).orient('right'),
-
-      legend = nv.models.legend().height(30),
-      dispatch = d3.dispatch('tooltipShow', 'tooltipHide');
-
-  var showTooltip = function(e, offsetElement) {
-    var left = e.pos[0] + ( offsetElement.offsetLeft || 0 ),
-        top = e.pos[1] + ( offsetElement.offsetTop || 0),
-        x = xAxis.tickFormat()(lines1.x()(e.point, e.pointIndex)),
-        y = ((e.series.yAxis == 2) ? yAxis2 : yAxis1).tickFormat()(lines1.y()(e.point, e.pointIndex)),
-        content = tooltip(e.series.key, x, y, e, chart);
-
-    nv.tooltip.show([left, top], content, undefined, undefined, offsetElement.offsetParent);
-  };
-
-  function chart(selection) {
-    selection.each(function(data) {
-      var container = d3.select(this),
-          that = this;
-
-      chart.update = function() { container.transition().call(chart); };
-      chart.container = this;
-
-      var availableWidth = (width  || parseInt(container.style('width')) || 960)
-                             - margin.left - margin.right,
-          availableHeight = (height || parseInt(container.style('height')) || 400)
-                             - margin.top - margin.bottom;
-
-      var dataLines1 = data.filter(function(d) {return !d.disabled && d.type == 'line' && d.yAxis == 1})
-      var dataLines2 = data.filter(function(d) {return !d.disabled && d.type == 'line' && d.yAxis == 2})
-      var dataBars1 = data.filter(function(d) {return !d.disabled && d.type == 'bar' && d.yAxis == 1})
-      var dataBars2 = data.filter(function(d) {return !d.disabled && d.type == 'bar' && d.yAxis == 2})
-      var dataStack1 = data.filter(function(d) {return !d.disabled && d.type == 'area' && d.yAxis == 1})
-      var dataStack2 = data.filter(function(d) {return !d.disabled && d.type == 'area' && d.yAxis == 2})
-
-      var series1 = data.filter(function(d) {return !d.disabled && d.yAxis == 1})
-            .map(function(d) {
-              return d.values.map(function(d,i) {
-                return { x: d.x, y: d.y }
-              })
-            })
-
-      var series2 = data.filter(function(d) {return !d.disabled && d.yAxis == 2})
-            .map(function(d) {
-              return d.values.map(function(d,i) {
-                return { x: d.x, y: d.y }
-              })
-            })
-
-      x   .domain(d3.extent(d3.merge(series1.concat(series2)), function(d) { return d.x } ))
-          .range([0, availableWidth]);
-
-      var wrap = container.selectAll('g.wrap.multiChart').data([data]);
-      var gEnter = wrap.enter().append('g').attr('class', 'wrap nvd3 multiChart').append('g');
-
-      gEnter.append('g').attr('class', 'x axis');
-      gEnter.append('g').attr('class', 'y1 axis');
-      gEnter.append('g').attr('class', 'y2 axis');
-      gEnter.append('g').attr('class', 'lines1Wrap');
-      gEnter.append('g').attr('class', 'lines2Wrap');
-      gEnter.append('g').attr('class', 'bars1Wrap');
-      gEnter.append('g').attr('class', 'bars2Wrap');
-      gEnter.append('g').attr('class', 'stack1Wrap');
-      gEnter.append('g').attr('class', 'stack2Wrap');
-      gEnter.append('g').attr('class', 'legendWrap');
-
-      var g = wrap.select('g');
-
-      if (showLegend) {
-        legend.width( availableWidth / 2 );
-
-        g.select('.legendWrap')
-            .datum(data.map(function(series) { 
-              series.originalKey = series.originalKey === undefined ? series.key : series.originalKey;
-              series.key = series.originalKey + (series.yAxis == 1 ? '' : ' (right axis)');
-              return series;
-            }))
-          .call(legend);
-
-        if ( margin.top != legend.height()) {
-          margin.top = legend.height();
-          availableHeight = (height || parseInt(container.style('height')) || 400)
-                             - margin.top - margin.bottom;
-        }
-
-        g.select('.legendWrap')
-            .attr('transform', 'translate(' + ( availableWidth / 2 ) + ',' + (-margin.top) +')');
-      }
-
-
-      lines1
-        .width(availableWidth)
-        .height(availableHeight)
-        .interpolate("monotone")
-        .color(data.map(function(d,i) {
-          return d.color || color[i % color.length];
-        }).filter(function(d,i) { return !data[i].disabled && data[i].yAxis == 1 && data[i].type == 'line'}));
-
-      lines2
-        .width(availableWidth)
-        .height(availableHeight)
-        .interpolate("monotone")
-        .color(data.map(function(d,i) {
-          return d.color || color[i % color.length];
-        }).filter(function(d,i) { return !data[i].disabled && data[i].yAxis == 2 && data[i].type == 'line'}));
-
-      bars1
-        .width(availableWidth)
-        .height(availableHeight)
-        .color(data.map(function(d,i) {
-          return d.color || color[i % color.length];
-        }).filter(function(d,i) { return !data[i].disabled && data[i].yAxis == 1 && data[i].type == 'bar'}));
-
-      bars2
-        .width(availableWidth)
-        .height(availableHeight)
-        .color(data.map(function(d,i) {
-          return d.color || color[i % color.length];
-        }).filter(function(d,i) { return !data[i].disabled && data[i].yAxis == 2 && data[i].type == 'bar'}));
-
-      stack1
-        .width(availableWidth)
-        .height(availableHeight)
-        .color(data.map(function(d,i) {
-          return d.color || color[i % color.length];
-        }).filter(function(d,i) { return !data[i].disabled && data[i].yAxis == 1 && data[i].type == 'area'}));
-
-      stack2
-        .width(availableWidth)
-        .height(availableHeight)
-        .color(data.map(function(d,i) {
-          return d.color || color[i % color.length];
-        }).filter(function(d,i) { return !data[i].disabled && data[i].yAxis == 2 && data[i].type == 'area'}));
-
-      g.attr('transform', 'translate(' + margin.left + ',' + margin.top + ')');
-
-
-      var lines1Wrap = g.select('.lines1Wrap')
-          .datum(dataLines1)
-      var bars1Wrap = g.select('.bars1Wrap')
-          .datum(dataBars1)
-      var stack1Wrap = g.select('.stack1Wrap')
-          .datum(dataStack1)
-
-      var lines2Wrap = g.select('.lines2Wrap')
-          .datum(dataLines2)
-      var bars2Wrap = g.select('.bars2Wrap')
-          .datum(dataBars2)
-      var stack2Wrap = g.select('.stack2Wrap')
-          .datum(dataStack2)
-
-      var extraValue1 = dataStack1.length ? dataStack1.map(function(a){return a.values}).reduce(function(a,b){
-        return a.map(function(aVal,i){return {x: aVal.x, y: aVal.y + b[i].y}})
-      }).concat([{x:0, y:0}]) : []
-      var extraValue2 = dataStack2.length ? dataStack2.map(function(a){return a.values}).reduce(function(a,b){
-        return a.map(function(aVal,i){return {x: aVal.x, y: aVal.y + b[i].y}})
-      }).concat([{x:0, y:0}]) : []
-
-      yScale1 .domain(yDomain1 || d3.extent(d3.merge(series1).concat(extraValue1), function(d) { return d.y } ))
-              .range([0, availableHeight])
-
-      yScale2 .domain(yDomain2 || d3.extent(d3.merge(series2).concat(extraValue2), function(d) { return d.y } ))
-              .range([0, availableHeight])
-
-      lines1.yDomain(yScale1.domain())
-      bars1.yDomain(yScale1.domain())
-      stack1.yDomain(yScale1.domain())
-
-      lines2.yDomain(yScale2.domain())
-      bars2.yDomain(yScale2.domain())
-      stack2.yDomain(yScale2.domain())
-
-      if(dataStack1.length){d3.transition(stack1Wrap).call(stack1);}
-      if(dataStack2.length){d3.transition(stack2Wrap).call(stack2);}
-
-      if(dataBars1.length){d3.transition(bars1Wrap).call(bars1);}
-      if(dataBars2.length){d3.transition(bars2Wrap).call(bars2);}
-
-      if(dataLines1.length){d3.transition(lines1Wrap).call(lines1);}
-      if(dataLines2.length){d3.transition(lines2Wrap).call(lines2);}
-      
-
-
-      xAxis
-        .ticks( availableWidth / 100 )
-        .tickSize(-availableHeight, 0);
-
-      g.select('.x.axis')
-          .attr('transform', 'translate(0,' + availableHeight + ')');
-      d3.transition(g.select('.x.axis'))
-          .call(xAxis);
-
-      yAxis1
-        .ticks( availableHeight / 36 )
-        .tickSize( -availableWidth, 0);
-
-
-      d3.transition(g.select('.y1.axis'))
-          .call(yAxis1);
-
-      yAxis2
-        .ticks( availableHeight / 36 )
-        .tickSize( -availableWidth, 0);
-
-      d3.transition(g.select('.y2.axis'))
-          .call(yAxis2);
-
-      g.select('.y2.axis')
-          .style('opacity', series2.length ? 1 : 0)
-          .attr('transform', 'translate(' + x.range()[1] + ',0)');
-
-      legend.dispatch.on('stateChange', function(newState) { 
-        chart.update();
-      });
-     
-      dispatch.on('tooltipShow', function(e) {
-        if (tooltips) showTooltip(e, that.parentNode);
-      });
-
-    });
-
-    return chart;
-  }
-
-
-  //============================================================
-  // Event Handling/Dispatching (out of chart's scope)
-  //------------------------------------------------------------
-
-  lines1.dispatch.on('elementMouseover.tooltip', function(e) {
-    e.pos = [e.pos[0] +  margin.left, e.pos[1] + margin.top];
-    dispatch.tooltipShow(e);
-  });
-
-  lines1.dispatch.on('elementMouseout.tooltip', function(e) {
-    dispatch.tooltipHide(e);
-  });
-
-  lines2.dispatch.on('elementMouseover.tooltip', function(e) {
-    e.pos = [e.pos[0] +  margin.left, e.pos[1] + margin.top];
-    dispatch.tooltipShow(e);
-  });
-
-  lines2.dispatch.on('elementMouseout.tooltip', function(e) {
-    dispatch.tooltipHide(e);
-  });
-
-  bars1.dispatch.on('elementMouseover.tooltip', function(e) {
-    e.pos = [e.pos[0] +  margin.left, e.pos[1] + margin.top];
-    dispatch.tooltipShow(e);
-  });
-
-  bars1.dispatch.on('elementMouseout.tooltip', function(e) {
-    dispatch.tooltipHide(e);
-  });
-
-  bars2.dispatch.on('elementMouseover.tooltip', function(e) {
-    e.pos = [e.pos[0] +  margin.left, e.pos[1] + margin.top];
-    dispatch.tooltipShow(e);
-  });
-
-  bars2.dispatch.on('elementMouseout.tooltip', function(e) {
-    dispatch.tooltipHide(e);
-  });
-
-  stack1.dispatch.on('tooltipShow', function(e) {
-    //disable tooltips when value ~= 0
-    //// TODO: consider removing points from voronoi that have 0 value instead of this hack
-    if (!Math.round(stack1.y()(e.point) * 100)) {  // 100 will not be good for very small numbers... will have to think about making this valu dynamic, based on data range
-      setTimeout(function() { d3.selectAll('.point.hover').classed('hover', false) }, 0);
-      return false;
-    }
-
-    e.pos = [e.pos[0] + margin.left, e.pos[1] + margin.top],
-    dispatch.tooltipShow(e);
-  });
-
-  stack1.dispatch.on('tooltipHide', function(e) {
-    dispatch.tooltipHide(e);
-  });
-
-  stack2.dispatch.on('tooltipShow', function(e) {
-    //disable tooltips when value ~= 0
-    //// TODO: consider removing points from voronoi that have 0 value instead of this hack
-    if (!Math.round(stack2.y()(e.point) * 100)) {  // 100 will not be good for very small numbers... will have to think about making this valu dynamic, based on data range
-      setTimeout(function() { d3.selectAll('.point.hover').classed('hover', false) }, 0);
-      return false;
-    }
-
-    e.pos = [e.pos[0] + margin.left, e.pos[1] + margin.top],
-    dispatch.tooltipShow(e);
-  });
-
-  stack2.dispatch.on('tooltipHide', function(e) {
-    dispatch.tooltipHide(e);
-  });
-
-    lines1.dispatch.on('elementMouseover.tooltip', function(e) {
-    e.pos = [e.pos[0] +  margin.left, e.pos[1] + margin.top];
-    dispatch.tooltipShow(e);
-  });
-
-  lines1.dispatch.on('elementMouseout.tooltip', function(e) {
-    dispatch.tooltipHide(e);
-  });
-
-  lines2.dispatch.on('elementMouseover.tooltip', function(e) {
-    e.pos = [e.pos[0] +  margin.left, e.pos[1] + margin.top];
-    dispatch.tooltipShow(e);
-  });
-
-  lines2.dispatch.on('elementMouseout.tooltip', function(e) {
-    dispatch.tooltipHide(e);
-  });
-
-  dispatch.on('tooltipHide', function() {
-    if (tooltips) nv.tooltip.cleanup();
-  });
-
-
-
-  //============================================================
-  // Global getters and setters
-  //------------------------------------------------------------
-
-  chart.dispatch = dispatch;
-  chart.lines1 = lines1;
-  chart.lines2 = lines2;
-  chart.bars1 = bars1;
-  chart.bars2 = bars2;
-  chart.stack1 = stack1;
-  chart.stack2 = stack2;
-  chart.xAxis = xAxis;
-  chart.yAxis1 = yAxis1;
-  chart.yAxis2 = yAxis2;
-  chart.options = nv.utils.optionsFunc.bind(chart);
-
-  chart.x = function(_) {
-    if (!arguments.length) return getX;
-    getX = _;
-    lines1.x(_);
-    bars1.x(_);
-    return chart;
-  };
-
-  chart.y = function(_) {
-    if (!arguments.length) return getY;
-    getY = _;
-    lines1.y(_);
-    bars1.y(_);
-    return chart;
-  };
-
-  chart.yDomain1 = function(_) {
-    if (!arguments.length) return yDomain1;
-    yDomain1 = _;
-    return chart;
-  };
-
-  chart.yDomain2 = function(_) {
-    if (!arguments.length) return yDomain2;
-    yDomain2 = _;
-    return chart;
-  };
-
-  chart.margin = function(_) {
-    if (!arguments.length) return margin;
-    margin = _;
-    return chart;
-  };
-
-  chart.width = function(_) {
-    if (!arguments.length) return width;
-    width = _;
-    return chart;
-  };
-
-  chart.height = function(_) {
-    if (!arguments.length) return height;
-    height = _;
-    return chart;
-  };
-
-  chart.color = function(_) {
-    if (!arguments.length) return color;
-    color = _;
-    legend.color(_);
-    return chart;
-  };
-
-  chart.showLegend = function(_) {
-    if (!arguments.length) return showLegend;
-    showLegend = _;
-    return chart;
-  };
-
-  chart.tooltips = function(_) {
-    if (!arguments.length) return tooltips;
-    tooltips = _;
-    return chart;
-  };
-
-  chart.tooltipContent = function(_) {
-    if (!arguments.length) return tooltip;
-    tooltip = _;
-    return chart;
-  };
-
-  return chart;
-}
-
-
-nv.models.ohlcBar = function() {
-  "use strict";
-  //============================================================
-  // Public Variables with Default Settings
-  //------------------------------------------------------------
-
-  var margin = {top: 0, right: 0, bottom: 0, left: 0}
-    , width = 960
-    , height = 500
-    , id = Math.floor(Math.random() * 10000) //Create semi-unique ID in case user doesn't select one
-    , x = d3.scale.linear()
-    , y = d3.scale.linear()
-    , getX = function(d) { return d.x }
-    , getY = function(d) { return d.y }
-    , getOpen = function(d) { return d.open }
-    , getClose = function(d) { return d.close }
-    , getHigh = function(d) { return d.high }
-    , getLow = function(d) { return d.low }
-    , forceX = []
-    , forceY = []
-    , padData     = false // If true, adds half a data points width to front and back, for lining up a line chart with a bar chart
-    , clipEdge = true
-    , color = nv.utils.defaultColor()
-    , xDomain
-    , yDomain
-    , xRange
-    , yRange
-    , dispatch = d3.dispatch('chartClick', 'elementClick', 'elementDblClick', 'elementMouseover', 'elementMouseout')
-    ;
-
-  //============================================================
-
-  //============================================================
-  // Private Variables
-  //------------------------------------------------------------
-
-  //TODO: store old scales for transitions
-
-  //============================================================
-
-
-  function chart(selection) {
-    selection.each(function(data) {
-      var availableWidth = width - margin.left - margin.right,
-          availableHeight = height - margin.top - margin.bottom,
-          container = d3.select(this);
-
-
-      //------------------------------------------------------------
-      // Setup Scales
-
-      x   .domain(xDomain || d3.extent(data[0].values.map(getX).concat(forceX) ));
-
-      if (padData)
-        x.range(xRange || [availableWidth * .5 / data[0].values.length, availableWidth * (data[0].values.length - .5)  / data[0].values.length ]);
-      else
-        x.range(xRange || [0, availableWidth]);
-
-      y   .domain(yDomain || [
-            d3.min(data[0].values.map(getLow).concat(forceY)),
-            d3.max(data[0].values.map(getHigh).concat(forceY))
-          ])
-          .range(yRange || [availableHeight, 0]);
-
-      // If scale's domain don't have a range, slightly adjust to make one... so a chart can show a single data point
-      if (x.domain()[0] === x.domain()[1])
-        x.domain()[0] ?
-            x.domain([x.domain()[0] - x.domain()[0] * 0.01, x.domain()[1] + x.domain()[1] * 0.01])
-          : x.domain([-1,1]);
-
-      if (y.domain()[0] === y.domain()[1])
-        y.domain()[0] ?
-            y.domain([y.domain()[0] + y.domain()[0] * 0.01, y.domain()[1] - y.domain()[1] * 0.01])
-          : y.domain([-1,1]);
-
-      //------------------------------------------------------------
-
-
-      //------------------------------------------------------------
-      // Setup containers and skeleton of chart
-
-      var wrap = d3.select(this).selectAll('g.nv-wrap.nv-ohlcBar').data([data[0].values]);
-      var wrapEnter = wrap.enter().append('g').attr('class', 'nvd3 nv-wrap nv-ohlcBar');
-      var defsEnter = wrapEnter.append('defs');
-      var gEnter = wrapEnter.append('g');
-      var g = wrap.select('g');
-
-      gEnter.append('g').attr('class', 'nv-ticks');
-
-      wrap.attr('transform', 'translate(' + margin.left + ',' + margin.top + ')');
-
-      //------------------------------------------------------------
-
-
-      container
-          .on('click', function(d,i) {
-            dispatch.chartClick({
-                data: d,
-                index: i,
-                pos: d3.event,
-                id: id
-            });
-          });
-
-
-      defsEnter.append('clipPath')
-          .attr('id', 'nv-chart-clip-path-' + id)
-        .append('rect');
-
-      wrap.select('#nv-chart-clip-path-' + id + ' rect')
-          .attr('width', availableWidth)
-          .attr('height', availableHeight);
-
-      g   .attr('clip-path', clipEdge ? 'url(#nv-chart-clip-path-' + id + ')' : '');
-
-
-
-      var ticks = wrap.select('.nv-ticks').selectAll('.nv-tick')
-          .data(function(d) { return d });
-
-      ticks.exit().remove();
-
-
-      var ticksEnter = ticks.enter().append('path')
-          .attr('class', function(d,i,j) { return (getOpen(d,i) > getClose(d,i) ? 'nv-tick negative' : 'nv-tick positive') + ' nv-tick-' + j + '-' + i })
-          .attr('d', function(d,i) {
-            var w = (availableWidth / data[0].values.length) * .9;
-            return 'm0,0l0,'
-                 + (y(getOpen(d,i))
-                 - y(getHigh(d,i)))
-                 + 'l'
-                 + (-w/2)
-                 + ',0l'
-                 + (w/2)
-                 + ',0l0,'
-                 + (y(getLow(d,i)) - y(getOpen(d,i)))
-                 + 'l0,'
-                 + (y(getClose(d,i))
-                 - y(getLow(d,i)))
-                 + 'l'
-                 + (w/2)
-                 + ',0l'
-                 + (-w/2)
-                 + ',0z';
-          })
-          .attr('transform', function(d,i) { return 'translate(' + x(getX(d,i)) + ',' + y(getHigh(d,i)) + ')'; })
-          //.attr('fill', function(d,i) { return color[0]; })
-          //.attr('stroke', function(d,i) { return color[0]; })
-          //.attr('x', 0 )
-          //.attr('y', function(d,i) {  return y(Math.max(0, getY(d,i))) })
-          //.attr('height', function(d,i) { return Math.abs(y(getY(d,i)) - y(0)) })
-          .on('mouseover', function(d,i) {
-            d3.select(this).classed('hover', true);
-            dispatch.elementMouseover({
-                point: d,
-                series: data[0],
-                pos: [x(getX(d,i)), y(getY(d,i))],  // TODO: Figure out why the value appears to be shifted
-                pointIndex: i,
-                seriesIndex: 0,
-                e: d3.event
-            });
-
-          })
-          .on('mouseout', function(d,i) {
-                d3.select(this).classed('hover', false);
-                dispatch.elementMouseout({
-                    point: d,
-                    series: data[0],
-                    pointIndex: i,
-                    seriesIndex: 0,
-                    e: d3.event
-                });
-          })
-          .on('click', function(d,i) {
-                dispatch.elementClick({
-                    //label: d[label],
-                    value: getY(d,i),
-                    data: d,
-                    index: i,
-                    pos: [x(getX(d,i)), y(getY(d,i))],
-                    e: d3.event,
-                    id: id
-                });
-              d3.event.stopPropagation();
-          })
-          .on('dblclick', function(d,i) {
-              dispatch.elementDblClick({
-                  //label: d[label],
-                  value: getY(d,i),
-                  data: d,
-                  index: i,
-                  pos: [x(getX(d,i)), y(getY(d,i))],
-                  e: d3.event,
-                  id: id
-              });
-              d3.event.stopPropagation();
-          });
-
-      ticks
-          .attr('class', function(d,i,j) { return (getOpen(d,i) > getClose(d,i) ? 'nv-tick negative' : 'nv-tick positive') + ' nv-tick-' + j + '-' + i })
-      d3.transition(ticks)
-          .attr('transform', function(d,i) { return 'translate(' + x(getX(d,i)) + ',' + y(getHigh(d,i)) + ')'; })
-          .attr('d', function(d,i) {
-            var w = (availableWidth / data[0].values.length) * .9;
-            return 'm0,0l0,'
-                 + (y(getOpen(d,i))
-                 - y(getHigh(d,i)))
-                 + 'l'
-                 + (-w/2)
-                 + ',0l'
-                 + (w/2)
-                 + ',0l0,'
-                 + (y(getLow(d,i))
-                 - y(getOpen(d,i)))
-                 + 'l0,'
-                 + (y(getClose(d,i))
-                 - y(getLow(d,i)))
-                 + 'l'
-                 + (w/2)
-                 + ',0l'
-                 + (-w/2)
-                 + ',0z';
-          })
-          //.attr('width', (availableWidth / data[0].values.length) * .9 )
-
-
-      //d3.transition(ticks)
-          //.attr('y', function(d,i) {  return y(Math.max(0, getY(d,i))) })
-          //.attr('height', function(d,i) { return Math.abs(y(getY(d,i)) - y(0)) });
-          //.order();  // not sure if this makes any sense for this model
-
-    });
-
-    return chart;
-  }
-
-
-  //============================================================
-  // Expose Public Variables
-  //------------------------------------------------------------
-
-  chart.dispatch = dispatch;
-
-  chart.options = nv.utils.optionsFunc.bind(chart);
-
-  chart.x = function(_) {
-    if (!arguments.length) return getX;
-    getX = _;
-    return chart;
-  };
-
-  chart.y = function(_) {
-    if (!arguments.length) return getY;
-    getY = _;
-    return chart;
-  };
-
-  chart.open = function(_) {
-    if (!arguments.length) return getOpen;
-    getOpen = _;
-    return chart;
-  };
-
-  chart.close = function(_) {
-    if (!arguments.length) return getClose;
-    getClose = _;
-    return chart;
-  };
-
-  chart.high = function(_) {
-    if (!arguments.length) return getHigh;
-    getHigh = _;
-    return chart;
-  };
-
-  chart.low = function(_) {
-    if (!arguments.length) return getLow;
-    getLow = _;
-    return chart;
-  };
-
-  chart.margin = function(_) {
-    if (!arguments.length) return margin;
-    margin.top    = typeof _.top    != 'undefined' ? _.top    : margin.top;
-    margin.right  = typeof _.right  != 'undefined' ? _.right  : margin.right;
-    margin.bottom = typeof _.bottom != 'undefined' ? _.bottom : margin.bottom;
-    margin.left   = typeof _.left   != 'undefined' ? _.left   : margin.left;
-    return chart;
-  };
-
-  chart.width = function(_) {
-    if (!arguments.length) return width;
-    width = _;
-    return chart;
-  };
-
-  chart.height = function(_) {
-    if (!arguments.length) return height;
-    height = _;
-    return chart;
-  };
-
-  chart.xScale = function(_) {
-    if (!arguments.length) return x;
-    x = _;
-    return chart;
-  };
-
-  chart.yScale = function(_) {
-    if (!arguments.length) return y;
-    y = _;
-    return chart;
-  };
-
-  chart.xDomain = function(_) {
-    if (!arguments.length) return xDomain;
-    xDomain = _;
-    return chart;
-  };
-
-  chart.yDomain = function(_) {
-    if (!arguments.length) return yDomain;
-    yDomain = _;
-    return chart;
-  };
-
-  chart.xRange = function(_) {
-    if (!arguments.length) return xRange;
-    xRange = _;
-    return chart;
-  };
-
-  chart.yRange = function(_) {
-    if (!arguments.length) return yRange;
-    yRange = _;
-    return chart;
-  };
-
-  chart.forceX = function(_) {
-    if (!arguments.length) return forceX;
-    forceX = _;
-    return chart;
-  };
-
-  chart.forceY = function(_) {
-    if (!arguments.length) return forceY;
-    forceY = _;
-    return chart;
-  };
-
-  chart.padData = function(_) {
-    if (!arguments.length) return padData;
-    padData = _;
-    return chart;
-  };
-
-  chart.clipEdge = function(_) {
-    if (!arguments.length) return clipEdge;
-    clipEdge = _;
-    return chart;
-  };
-
-  chart.color = function(_) {
-    if (!arguments.length) return color;
-    color = nv.utils.getColor(_);
-    return chart;
-  };
-
-  chart.id = function(_) {
-    if (!arguments.length) return id;
-    id = _;
-    return chart;
-  };
-
-  //============================================================
-
-
-  return chart;
-}
-nv.models.pie = function() {
-  "use strict";
-  //============================================================
-  // Public Variables with Default Settings
-  //------------------------------------------------------------
-
-  var margin = {top: 0, right: 0, bottom: 0, left: 0}
-    , width = 500
-    , height = 500
-    , getX = function(d) { return d.x }
-    , getY = function(d) { return d.y }
-    , getDescription = function(d) { return d.description }
-    , id = Math.floor(Math.random() * 10000) //Create semi-unique ID in case user doesn't select one
-    , color = nv.utils.defaultColor()
-    , valueFormat = d3.format(',.2f')
-    , showLabels = true
-    , pieLabelsOutside = true
-    , donutLabelsOutside = false
-    , labelType = "key"
-    , labelThreshold = .02 //if slice percentage is under this, don't show label
-    , donut = false
-    , labelSunbeamLayout = false
-    , startAngle = false
-    , endAngle = false
-    , donutRatio = 0.5
-    , dispatch = d3.dispatch('chartClick', 'elementClick', 'elementDblClick', 'elementMouseover', 'elementMouseout')
-    ;
-
-  //============================================================
-
-
-  function chart(selection) {
-    selection.each(function(data) {
-      var availableWidth = width - margin.left - margin.right,
-          availableHeight = height - margin.top - margin.bottom,
-          radius = Math.min(availableWidth, availableHeight) / 2,
-          arcRadius = radius-(radius / 5),
-          container = d3.select(this);
-
-
-      //------------------------------------------------------------
-      // Setup containers and skeleton of chart
-
-      //var wrap = container.selectAll('.nv-wrap.nv-pie').data([data]);
-      var wrap = container.selectAll('.nv-wrap.nv-pie').data(data);
-      var wrapEnter = wrap.enter().append('g').attr('class','nvd3 nv-wrap nv-pie nv-chart-' + id);
-      var gEnter = wrapEnter.append('g');
-      var g = wrap.select('g');
-
-      gEnter.append('g').attr('class', 'nv-pie');
-      gEnter.append('g').attr('class', 'nv-pieLabels');
-
-      wrap.attr('transform', 'translate(' + margin.left + ',' + margin.top + ')');
-      g.select('.nv-pie').attr('transform', 'translate(' + availableWidth / 2 + ',' + availableHeight / 2 + ')');
-      g.select('.nv-pieLabels').attr('transform', 'translate(' + availableWidth / 2 + ',' + availableHeight / 2 + ')');
-
-      //------------------------------------------------------------
-
-
-      container
-          .on('click', function(d,i) {
-              dispatch.chartClick({
-                  data: d,
-                  index: i,
-                  pos: d3.event,
-                  id: id
-              });
-          });
-
-
-      var arc = d3.svg.arc()
-                  .outerRadius(arcRadius);
-
-      if (startAngle) arc.startAngle(startAngle)
-      if (endAngle) arc.endAngle(endAngle);
-      if (donut) arc.innerRadius(radius * donutRatio);
-
-      // Setup the Pie chart and choose the data element
-      var pie = d3.layout.pie()
-          .sort(null)
-          .value(function(d) { return d.disabled ? 0 : getY(d) });
-
-      var slices = wrap.select('.nv-pie').selectAll('.nv-slice')
-          .data(pie);
-
-      var pieLabels = wrap.select('.nv-pieLabels').selectAll('.nv-label')
-          .data(pie);
-
-      slices.exit().remove();
-      pieLabels.exit().remove();
-
-      var ae = slices.enter().append('g')
-              .attr('class', 'nv-slice')
-              .on('mouseover', function(d,i){
-                d3.select(this).classed('hover', true);
-                dispatch.elementMouseover({
-                    label: getX(d.data),
-                    value: getY(d.data),
-                    point: d.data,
-                    pointIndex: i,
-                    pos: [d3.event.pageX, d3.event.pageY],
-                    id: id
-                });
-              })
-              .on('mouseout', function(d,i){
-                d3.select(this).classed('hover', false);
-                dispatch.elementMouseout({
-                    label: getX(d.data),
-                    value: getY(d.data),
-                    point: d.data,
-                    index: i,
-                    id: id
-                });
-              })
-              .on('click', function(d,i) {
-                dispatch.elementClick({
-                    label: getX(d.data),
-                    value: getY(d.data),
-                    point: d.data,
-                    index: i,
-                    pos: d3.event,
-                    id: id
-                });
-                d3.event.stopPropagation();
-              })
-              .on('dblclick', function(d,i) {
-                dispatch.elementDblClick({
-                    label: getX(d.data),
-                    value: getY(d.data),
-                    point: d.data,
-                    index: i,
-                    pos: d3.event,
-                    id: id
-                });
-                d3.event.stopPropagation();
-              });
-
-        slices
-            .attr('fill', function(d,i) { return color(d, i); })
-            .attr('stroke', function(d,i) { return color(d, i); });
-
-        var paths = ae.append('path')
-            .each(function(d) { this._current = d; });
-            //.attr('d', arc);
-
-        slices.select('path')
-          .transition()
-            .attr('d', arc)
-            .attrTween('d', arcTween);
-
-        if (showLabels) {
-          // This does the normal label
-          var labelsArc = d3.svg.arc().innerRadius(0);
-
-          if (pieLabelsOutside){ labelsArc = arc; }
-
-          if (donutLabelsOutside) { labelsArc = d3.svg.arc().outerRadius(arc.outerRadius()); }
-
-          pieLabels.enter().append("g").classed("nv-label",true)
-            .each(function(d,i) {
-                var group = d3.select(this);
-
-                group
-                  .attr('transform', function(d) {
-                       if (labelSunbeamLayout) {
-                         d.outerRadius = arcRadius + 10; // Set Outer Coordinate
-                         d.innerRadius = arcRadius + 15; // Set Inner Coordinate
-                         var rotateAngle = (d.startAngle + d.endAngle) / 2 * (180 / Math.PI);
-                         if ((d.startAngle+d.endAngle)/2 < Math.PI) {
-                           rotateAngle -= 90;
-                         } else {
-                           rotateAngle += 90;
-                         }
-                         return 'translate(' + labelsArc.centroid(d) + ') rotate(' + rotateAngle + ')';
-                       } else {
-                         d.outerRadius = radius + 10; // Set Outer Coordinate
-                         d.innerRadius = radius + 15; // Set Inner Coordinate
-                         return 'translate(' + labelsArc.centroid(d) + ')'
-                       }
-                  });
-
-                group.append('rect')
-                    .style('stroke', '#fff')
-                    .style('fill', '#fff')
-                    .attr("rx", 3)
-                    .attr("ry", 3);
-
-                group.append('text')
-                    .style('text-anchor', labelSunbeamLayout ? ((d.startAngle + d.endAngle) / 2 < Math.PI ? 'start' : 'end') : 'middle') //center the text on it's origin or begin/end if orthogonal aligned
-                    .style('fill', '#000')
-
-            });
-
-          var labelLocationHash = {};
-          var avgHeight = 14;
-          var avgWidth = 140;
-          var createHashKey = function(coordinates) {
-
-              return Math.floor(coordinates[0]/avgWidth) * avgWidth + ',' + Math.floor(coordinates[1]/avgHeight) * avgHeight;
-          };
-          pieLabels.transition()
-                .attr('transform', function(d) {
-                  if (labelSunbeamLayout) {
-                      d.outerRadius = arcRadius + 10; // Set Outer Coordinate
-                      d.innerRadius = arcRadius + 15; // Set Inner Coordinate
-                      var rotateAngle = (d.startAngle + d.endAngle) / 2 * (180 / Math.PI);
-                      if ((d.startAngle+d.endAngle)/2 < Math.PI) {
-                        rotateAngle -= 90;
-                      } else {
-                        rotateAngle += 90;
-                      }
-                      return 'translate(' + labelsArc.centroid(d) + ') rotate(' + rotateAngle + ')';
-                    } else {
-                      d.outerRadius = radius + 10; // Set Outer Coordinate
-                      d.innerRadius = radius + 15; // Set Inner Coordinate
-
-                      /*
-                      Overlapping pie labels are not good. What this attempts to do is, prevent overlapping.
-                      Each label location is hashed, and if a hash collision occurs, we assume an overlap.
-                      Adjust the label's y-position to remove the overlap.
-                      */
-                      var center = labelsArc.centroid(d);
-                      var hashKey = createHashKey(center);
-                      if (labelLocationHash[hashKey]) {
-                        center[1] -= avgHeight;
-                      }
-                      labelLocationHash[createHashKey(center)] = true;
-                      return 'translate(' + center + ')'
-                    }
-                });
-          pieLabels.select(".nv-label text")
-                .style('text-anchor', labelSunbeamLayout ? ((d.startAngle + d.endAngle) / 2 < Math.PI ? 'start' : 'end') : 'middle') //center the text on it's origin or begin/end if orthogonal aligned
-                .text(function(d, i) {
-                  var percent = (d.endAngle - d.startAngle) / (2 * Math.PI);
-                  var labelTypes = {
-                    "key" : getX(d.data),
-                    "value": getY(d.data),
-                    "percent": d3.format('%')(percent)
-                  };
-                  return (d.value && percent > labelThreshold) ? labelTypes[labelType] : '';
-                });
-        }
-
-
-        // Computes the angle of an arc, converting from radians to degrees.
-        function angle(d) {
-          var a = (d.startAngle + d.endAngle) * 90 / Math.PI - 90;
-          return a > 90 ? a - 180 : a;
-        }
-
-        function arcTween(a) {
-          a.endAngle = isNaN(a.endAngle) ? 0 : a.endAngle;
-          a.startAngle = isNaN(a.startAngle) ? 0 : a.startAngle;
-          if (!donut) a.innerRadius = 0;
-          var i = d3.interpolate(this._current, a);
-          this._current = i(0);
-          return function(t) {
-            return arc(i(t));
-          };
-        }
-
-        function tweenPie(b) {
-          b.innerRadius = 0;
-          var i = d3.interpolate({startAngle: 0, endAngle: 0}, b);
-          return function(t) {
-              return arc(i(t));
-          };
-        }
-
-    });
-
-    return chart;
-  }
-
-
-  //============================================================
-  // Expose Public Variables
-  //------------------------------------------------------------
-
-  chart.dispatch = dispatch;
-  chart.options = nv.utils.optionsFunc.bind(chart);
-
-  chart.margin = function(_) {
-    if (!arguments.length) return margin;
-    margin.top    = typeof _.top    != 'undefined' ? _.top    : margin.top;
-    margin.right  = typeof _.right  != 'undefined' ? _.right  : margin.right;
-    margin.bottom = typeof _.bottom != 'undefined' ? _.bottom : margin.bottom;
-    margin.left   = typeof _.left   != 'undefined' ? _.left   : margin.left;
-    return chart;
-  };
-
-  chart.width = function(_) {
-    if (!arguments.length) return width;
-    width = _;
-    return chart;
-  };
-
-  chart.height = function(_) {
-    if (!arguments.length) return height;
-    height = _;
-    return chart;
-  };
-
-  chart.values = function(_) {
-    nv.log("pie.values() is no longer supported.");
-    return chart;
-  };
-
-  chart.x = function(_) {
-    if (!arguments.length) return getX;
-    getX = _;
-    return chart;
-  };
-
-  chart.y = function(_) {
-    if (!arguments.length) return getY;
-    getY = d3.functor(_);
-    return chart;
-  };
-
-  chart.description = function(_) {
-    if (!arguments.length) return getDescription;
-    getDescription = _;
-    return chart;
-  };
-
-  chart.showLabels = function(_) {
-    if (!arguments.length) return showLabels;
-    showLabels = _;
-    return chart;
-  };
-
-  chart.labelSunbeamLayout = function(_) {
-    if (!arguments.length) return labelSunbeamLayout;
-    labelSunbeamLayout = _;
-    return chart;
-  };
-
-  chart.donutLabelsOutside = function(_) {
-    if (!arguments.length) return donutLabelsOutside;
-    donutLabelsOutside = _;
-    return chart;
-  };
-
-  chart.pieLabelsOutside = function(_) {
-    if (!arguments.length) return pieLabelsOutside;
-    pieLabelsOutside = _;
-    return chart;
-  };
-
-  chart.labelType = function(_) {
-    if (!arguments.length) return labelType;
-    labelType = _;
-    labelType = labelType || "key";
-    return chart;
-  };
-
-  chart.donut = function(_) {
-    if (!arguments.length) return donut;
-    donut = _;
-    return chart;
-  };
-
-  chart.donutRatio = function(_) {
-    if (!arguments.length) return donutRatio;
-    donutRatio = _;
-    return chart;
-  };
-
-  chart.startAngle = function(_) {
-    if (!arguments.length) return startAngle;
-    startAngle = _;
-    return chart;
-  };
-
-  chart.endAngle = function(_) {
-    if (!arguments.length) return endAngle;
-    endAngle = _;
-    return chart;
-  };
-
-  chart.id = function(_) {
-    if (!arguments.length) return id;
-    id = _;
-    return chart;
-  };
-
-  chart.color = function(_) {
-    if (!arguments.length) return color;
-    color = nv.utils.getColor(_);
-    return chart;
-  };
-
-  chart.valueFormat = function(_) {
-    if (!arguments.length) return valueFormat;
-    valueFormat = _;
-    return chart;
-  };
-
-  chart.labelThreshold = function(_) {
-    if (!arguments.length) return labelThreshold;
-    labelThreshold = _;
-    return chart;
-  };
-  //============================================================
-
-
-  return chart;
-}
-nv.models.pieChart = function() {
-  "use strict";
-  //============================================================
-  // Public Variables with Default Settings
-  //------------------------------------------------------------
-
-  var pie = nv.models.pie()
-    , legend = nv.models.legend()
-    ;
-
-  var margin = {top: 30, right: 20, bottom: 20, left: 20}
-    , width = null
-    , height = null
-    , showLegend = true
-    , color = nv.utils.defaultColor()
-    , tooltips = true
-    , tooltip = function(key, y, e, graph) {
-        return '<h3>' + key + '</h3>' +
-               '<p>' +  y + '</p>'
-      }
-    , state = {}
-    , defaultState = null
-    , noData = "No Data Available."
-    , dispatch = d3.dispatch('tooltipShow', 'tooltipHide', 'stateChange', 'changeState')
-    ;
-
-  //============================================================
-
-
-  //============================================================
-  // Private Variables
-  //------------------------------------------------------------
-
-  var showTooltip = function(e, offsetElement) {
-    var tooltipLabel = pie.description()(e.point) || pie.x()(e.point)
-    var left = e.pos[0] + ( (offsetElement && offsetElement.offsetLeft) || 0 ),
-        top = e.pos[1] + ( (offsetElement && offsetElement.offsetTop) || 0),
-        y = pie.valueFormat()(pie.y()(e.point)),
-        content = tooltip(tooltipLabel, y, e, chart);
-
-    nv.tooltip.show([left, top], content, e.value < 0 ? 'n' : 's', null, offsetElement);
-  };
-
-  //============================================================
-
-
-  function chart(selection) {
-    selection.each(function(data) {
-      var container = d3.select(this),
-          that = this;
-
-      var availableWidth = (width || parseInt(container.style('width')) || 960)
-                             - margin.left - margin.right,
-          availableHeight = (height || parseInt(container.style('height')) || 400)
-                             - margin.top - margin.bottom;
-
-      chart.update = function() { container.transition().call(chart); };
-      chart.container = this;
-
-      //set state.disabled
-      state.disabled = data.map(function(d) { return !!d.disabled });
-
-      if (!defaultState) {
-        var key;
-        defaultState = {};
-        for (key in state) {
-          if (state[key] instanceof Array)
-            defaultState[key] = state[key].slice(0);
-          else
-            defaultState[key] = state[key];
-        }
-      }
-
-      //------------------------------------------------------------
-      // Display No Data message if there's nothing to show.
-
-      if (!data || !data.length) {
-        var noDataText = container.selectAll('.nv-noData').data([noData]);
-
-        noDataText.enter().append('text')
-          .attr('class', 'nvd3 nv-noData')
-          .attr('dy', '-.7em')
-          .style('text-anchor', 'middle');
-
-        noDataText
-          .attr('x', margin.left + availableWidth / 2)
-          .attr('y', margin.top + availableHeight / 2)
-          .text(function(d) { return d });
-
-        return chart;
-      } else {
-        container.selectAll('.nv-noData').remove();
-      }
-
-      //------------------------------------------------------------
-
-
-      //------------------------------------------------------------
-      // Setup containers and skeleton of chart
-
-      var wrap = container.selectAll('g.nv-wrap.nv-pieChart').data([data]);
-      var gEnter = wrap.enter().append('g').attr('class', 'nvd3 nv-wrap nv-pieChart').append('g');
-      var g = wrap.select('g');
-
-      gEnter.append('g').attr('class', 'nv-pieWrap');
-      gEnter.append('g').attr('class', 'nv-legendWrap');
-
-      //------------------------------------------------------------
-
-
-      //------------------------------------------------------------
-      // Legend
-
-      if (showLegend) {
-        legend
-          .width( availableWidth )
-          .key(pie.x());
-
-        wrap.select('.nv-legendWrap')
-            .datum(data)
-            .call(legend);
-
-        if ( margin.top != legend.height()) {
-          margin.top = legend.height();
-          availableHeight = (height || parseInt(container.style('height')) || 400)
-                             - margin.top - margin.bottom;
-        }
-
-        wrap.select('.nv-legendWrap')
-            .attr('transform', 'translate(0,' + (-margin.top) +')');
-      }
-
-      //------------------------------------------------------------
-
-
-      wrap.attr('transform', 'translate(' + margin.left + ',' + margin.top + ')');
-
-
-      //------------------------------------------------------------
-      // Main Chart Component(s)
-
-      pie
-        .width(availableWidth)
-        .height(availableHeight);
-
-
-      var pieWrap = g.select('.nv-pieWrap')
-          .datum([data]);
-
-      d3.transition(pieWrap).call(pie);
-
-      //------------------------------------------------------------
-
-
-      //============================================================
-      // Event Handling/Dispatching (in chart's scope)
-      //------------------------------------------------------------
-
-      legend.dispatch.on('stateChange', function(newState) {
-        state = newState;
-        dispatch.stateChange(state);
-        chart.update();
-      });
-
-      pie.dispatch.on('elementMouseout.tooltip', function(e) {
-        dispatch.tooltipHide(e);
-      });
-
-      // Update chart from a state object passed to event handler
-      dispatch.on('changeState', function(e) {
-
-        if (typeof e.disabled !== 'undefined') {
-          data.forEach(function(series,i) {
-            series.disabled = e.disabled[i];
-          });
-
-          state.disabled = e.disabled;
-        }
-
-        chart.update();
-      });
-
-      //============================================================
-
-
-    });
-
-    return chart;
-  }
-
-  //============================================================
-  // Event Handling/Dispatching (out of chart's scope)
-  //------------------------------------------------------------
-
-  pie.dispatch.on('elementMouseover.tooltip', function(e) {
-    e.pos = [e.pos[0] +  margin.left, e.pos[1] + margin.top];
-    dispatch.tooltipShow(e);
-  });
-
-  dispatch.on('tooltipShow', function(e) {
-    if (tooltips) showTooltip(e);
-  });
-
-  dispatch.on('tooltipHide', function() {
-    if (tooltips) nv.tooltip.cleanup();
-  });
-
-  //============================================================
-
-
-  //============================================================
-  // Expose Public Variables
-  //------------------------------------------------------------
-
-  // expose chart's sub-components
-  chart.legend = legend;
-  chart.dispatch = dispatch;
-  chart.pie = pie;
-
-  d3.rebind(chart, pie, 'valueFormat', 'values', 'x', 'y', 'description', 'id', 'showLabels', 'donutLabelsOutside', 'pieLabelsOutside', 'labelType', 'donut', 'donutRatio', 'labelThreshold');
-  chart.options = nv.utils.optionsFunc.bind(chart);
-  
-  chart.margin = function(_) {
-    if (!arguments.length) return margin;
-    margin.top    = typeof _.top    != 'undefined' ? _.top    : margin.top;
-    margin.right  = typeof _.right  != 'undefined' ? _.right  : margin.right;
-    margin.bottom = typeof _.bottom != 'undefined' ? _.bottom : margin.bottom;
-    margin.left   = typeof _.left   != 'undefined' ? _.left   : margin.left;
-    return chart;
-  };
-
-  chart.width = function(_) {
-    if (!arguments.length) return width;
-    width = _;
-    return chart;
-  };
-
-  chart.height = function(_) {
-    if (!arguments.length) return height;
-    height = _;
-    return chart;
-  };
-
-  chart.color = function(_) {
-    if (!arguments.length) return color;
-    color = nv.utils.getColor(_);
-    legend.color(color);
-    pie.color(color);
-    return chart;
-  };
-
-  chart.showLegend = function(_) {
-    if (!arguments.length) return showLegend;
-    showLegend = _;
-    return chart;
-  };
-
-  chart.tooltips = function(_) {
-    if (!arguments.length) return tooltips;
-    tooltips = _;
-    return chart;
-  };
-
-  chart.tooltipContent = function(_) {
-    if (!arguments.length) return tooltip;
-    tooltip = _;
-    return chart;
-  };
-
-  chart.state = function(_) {
-    if (!arguments.length) return state;
-    state = _;
-    return chart;
-  };
-
-  chart.defaultState = function(_) {
-    if (!arguments.length) return defaultState;
-    defaultState = _;
-    return chart;
-  };
-
-  chart.noData = function(_) {
-    if (!arguments.length) return noData;
-    noData = _;
-    return chart;
-  };
-
-  //============================================================
-
-
-  return chart;
-}
-
-nv.models.scatter = function() {
-  "use strict";
-  //============================================================
-  // Public Variables with Default Settings
-  //------------------------------------------------------------
-
-  var margin       = {top: 0, right: 0, bottom: 0, left: 0}
-    , width        = 960
-    , height       = 500
-    , color        = nv.utils.defaultColor() // chooses color
-    , id           = Math.floor(Math.random() * 100000) //Create semi-unique ID incase user doesn't select one
-    , x            = d3.scale.linear()
-    , y            = d3.scale.linear()
-    , z            = d3.scale.linear() //linear because d3.svg.shape.size is treated as area
-    , getX         = function(d) { return d.x } // accessor to get the x value
-    , getY         = function(d) { return d.y } // accessor to get the y value
-    , getSize      = function(d) { return d.size || 1} // accessor to get the point size
-    , getShape     = function(d) { return d.shape || 'circle' } // accessor to get point shape
-    , onlyCircles  = true // Set to false to use shapes
-    , forceX       = [] // List of numbers to Force into the X scale (ie. 0, or a max / min, etc.)
-    , forceY       = [] // List of numbers to Force into the Y scale
-    , forceSize    = [] // List of numbers to Force into the Size scale
-    , interactive  = true // If true, plots a voronoi overlay for advanced point intersection
-    , pointKey     = null
-    , pointActive  = function(d) { return !d.notActive } // any points that return false will be filtered out
-    , padData      = false // If true, adds half a data points width to front and back, for lining up a line chart with a bar chart
-    , padDataOuter = .1 //outerPadding to imitate ordinal scale outer padding
-    , clipEdge     = false // if true, masks points within x and y scale
-    , clipVoronoi  = true // if true, masks each point with a circle... can turn off to slightly increase performance
-    , clipRadius   = function() { return 25 } // function to get the radius for voronoi point clips
-    , xDomain      = null // Override x domain (skips the calculation from data)
-    , yDomain      = null // Override y domain
-    , xRange       = null // Override x range
-    , yRange       = null // Override y range
-    , sizeDomain   = null // Override point size domain
-    , sizeRange    = null
-    , singlePoint  = false
-    , dispatch     = d3.dispatch('elementClick', 'elementMouseover', 'elementMouseout')
-    , useVoronoi   = true
-    ;
-
-  //============================================================
-
-
-  //============================================================
-  // Private Variables
-  //------------------------------------------------------------
-
-  var x0, y0, z0 // used to store previous scales
-    , timeoutID
-    , needsUpdate = false // Flag for when the points are visually updating, but the interactive layer is behind, to disable tooltips
-    ;
-
-  //============================================================
-
-
-  function chart(selection) {
-    selection.each(function(data) {
-      var availableWidth = width - margin.left - margin.right,
-          availableHeight = height - margin.top - margin.bottom,
-          container = d3.select(this);
-
-      //add series index to each data point for reference
-      data.forEach(function(series, i) {
-        series.values.forEach(function(point) {
-          point.series = i;
-        });
-      });
-
-      //------------------------------------------------------------
-      // Setup Scales
-
-      // remap and flatten the data for use in calculating the scales' domains
-      var seriesData = (xDomain && yDomain && sizeDomain) ? [] : // if we know xDomain and yDomain and sizeDomain, no need to calculate.... if Size is constant remember to set sizeDomain to speed up performance
-            d3.merge(
-              data.map(function(d) {
-                return d.values.map(function(d,i) {
-                  return { x: getX(d,i), y: getY(d,i), size: getSize(d,i) }
-                })
-              })
-            );
-
-      x   .domain(xDomain || d3.extent(seriesData.map(function(d) { return d.x; }).concat(forceX)))
-
-      if (padData && data[0])
-        x.range(xRange || [(availableWidth * padDataOuter +  availableWidth) / (2 *data[0].values.length), availableWidth - availableWidth * (1 + padDataOuter) / (2 * data[0].values.length)  ]);
-        //x.range([availableWidth * .5 / data[0].values.length, availableWidth * (data[0].values.length - .5)  / data[0].values.length ]);
-      else
-        x.range(xRange || [0, availableWidth]);
-
-      y   .domain(yDomain || d3.extent(seriesData.map(function(d) { return d.y }).concat(forceY)))
-          .range(yRange || [availableHeight, 0]);
-
-      z   .domain(sizeDomain || d3.extent(seriesData.map(function(d) { return d.size }).concat(forceSize)))
-          .range(sizeRange || [16, 256]);
-
-      // If scale's domain don't have a range, slightly adjust to make one... so a chart can show a single data point
-      if (x.domain()[0] === x.domain()[1] || y.domain()[0] === y.domain()[1]) singlePoint = true;
-      if (x.domain()[0] === x.domain()[1])
-        x.domain()[0] ?
-            x.domain([x.domain()[0] - x.domain()[0] * 0.01, x.domain()[1] + x.domain()[1] * 0.01])
-          : x.domain([-1,1]);
-
-      if (y.domain()[0] === y.domain()[1])
-        y.domain()[0] ?
-            y.domain([y.domain()[0] - y.domain()[0] * 0.01, y.domain()[1] + y.domain()[1] * 0.01])
-          : y.domain([-1,1]);
-
-      if ( isNaN(x.domain()[0])) {
-          x.domain([-1,1]);
-      }
-
-      if ( isNaN(y.domain()[0])) {
-          y.domain([-1,1]);
-      }
-
-
-      x0 = x0 || x;
-      y0 = y0 || y;
-      z0 = z0 || z;
-
-      //------------------------------------------------------------
-
-
-      //------------------------------------------------------------
-      // Setup containers and skeleton of chart
-
-      var wrap = container.selectAll('g.nv-wrap.nv-scatter').data([data]);
-      var wrapEnter = wrap.enter().append('g').attr('class', 'nvd3 nv-wrap nv-scatter nv-chart-' + id + (singlePoint ? ' nv-single-point' : ''));
-      var defsEnter = wrapEnter.append('defs');
-      var gEnter = wrapEnter.append('g');
-      var g = wrap.select('g');
-
-      gEnter.append('g').attr('class', 'nv-groups');
-      gEnter.append('g').attr('class', 'nv-point-paths');
-
-      wrap.attr('transform', 'translate(' + margin.left + ',' + margin.top + ')');
-
-      //------------------------------------------------------------
-
-
-      defsEnter.append('clipPath')
-          .attr('id', 'nv-edge-clip-' + id)
-        .append('rect');
-
-      wrap.select('#nv-edge-clip-' + id + ' rect')
-          .attr('width', availableWidth)
-          .attr('height', availableHeight);
-
-      g   .attr('clip-path', clipEdge ? 'url(#nv-edge-clip-' + id + ')' : '');
-
-
-      function updateInteractiveLayer() {
-
-        if (!interactive) return false;
-
-        var eventElements;
-
-        var vertices = d3.merge(data.map(function(group, groupIndex) {
-            return group.values
-              .map(function(point, pointIndex) {
-                // *Adding noise to make duplicates very unlikely
-                // *Injecting series and point index for reference
-                /* *Adding a 'jitter' to the points, because there's an issue in d3.geom.voronoi.
-                */
-                var pX = getX(point,pointIndex);
-                var pY = getY(point,pointIndex);
-
-                return [x(pX)+ Math.random() * 1e-7,
-                        y(pY)+ Math.random() * 1e-7,
-                        groupIndex,
-                        pointIndex, point]; //temp hack to add noise untill I think of a better way so there are no duplicates
-              })
-              .filter(function(pointArray, pointIndex) {
-                return pointActive(pointArray[4], pointIndex); // Issue #237.. move filter to after map, so pointIndex is correct!
-              })
-          })
-        );
-
-
-
-        //inject series and point index for reference into voronoi
-        if (useVoronoi === true) {
-
-          if (clipVoronoi) {
-            var pointClipsEnter = wrap.select('defs').selectAll('.nv-point-clips')
-                .data([id])
-              .enter();
-
-            pointClipsEnter.append('clipPath')
-                  .attr('class', 'nv-point-clips')
-                  .attr('id', 'nv-points-clip-' + id);
-
-            var pointClips = wrap.select('#nv-points-clip-' + id).selectAll('circle')
-                .data(vertices);
-            pointClips.enter().append('circle')
-                .attr('r', clipRadius);
-            pointClips.exit().remove();
-            pointClips
-                .attr('cx', function(d) { return d[0] })
-                .attr('cy', function(d) { return d[1] });
-
-            wrap.select('.nv-point-paths')
-                .attr('clip-path', 'url(#nv-points-clip-' + id + ')');
-          }
-
-
-          if(vertices.length) {
-            // Issue #283 - Adding 2 dummy points to the voronoi b/c voronoi requires min 3 points to work
-            vertices.push([x.range()[0] - 20, y.range()[0] - 20, null, null]);
-            vertices.push([x.range()[1] + 20, y.range()[1] + 20, null, null]);
-            vertices.push([x.range()[0] - 20, y.range()[0] + 20, null, null]);
-            vertices.push([x.range()[1] + 20, y.range()[1] - 20, null, null]);
-          }
-
-          var bounds = d3.geom.polygon([
-              [-10,-10],
-              [-10,height + 10],
-              [width + 10,height + 10],
-              [width + 10,-10]
-          ]);
-
-          var voronoi = d3.geom.voronoi(vertices).map(function(d, i) {
-              return {
-                'data': bounds.clip(d),
-                'series': vertices[i][2],
-                'point': vertices[i][3]
-              }
-            });
-
-
-          var pointPaths = wrap.select('.nv-point-paths').selectAll('path')
-              .data(voronoi);
-          pointPaths.enter().append('path')
-              .attr('class', function(d,i) { return 'nv-path-'+i; });
-          pointPaths.exit().remove();
-          pointPaths
-              .attr('d', function(d) {
-                if (d.data.length === 0)
-                    return 'M 0 0'
-                else
-                    return 'M' + d.data.join('L') + 'Z';
-              });
-
-          var mouseEventCallback = function(d,mDispatch) {
-                if (needsUpdate) return 0;
-                var series = data[d.series];
-                if (typeof series === 'undefined') return;
-
-                var point  = series.values[d.point];
-
-                mDispatch({
-                  point: point,
-                  series: series,
-                  pos: [x(getX(point, d.point)) + margin.left, y(getY(point, d.point)) + margin.top],
-                  seriesIndex: d.series,
-                  pointIndex: d.point
-                });
-          };
-
-          pointPaths
-              .on('click', function(d) {
-                mouseEventCallback(d, dispatch.elementClick);
-              })
-              .on('mouseover', function(d) {
-                mouseEventCallback(d, dispatch.elementMouseover);
-              })
-              .on('mouseout', function(d, i) {
-                mouseEventCallback(d, dispatch.elementMouseout);
-              });
-
-
-        } else {
-          /*
-          // bring data in form needed for click handlers
-          var dataWithPoints = vertices.map(function(d, i) {
-              return {
-                'data': d,
-                'series': vertices[i][2],
-                'point': vertices[i][3]
-              }
-            });
-           */
-
-          // add event handlers to points instead voronoi paths
-          wrap.select('.nv-groups').selectAll('.nv-group')
-            .selectAll('.nv-point')
-              //.data(dataWithPoints)
-              //.style('pointer-events', 'auto') // recativate events, disabled by css
-              .on('click', function(d,i) {
-                //nv.log('test', d, i);
-                if (needsUpdate || !data[d.series]) return 0; //check if this is a dummy point
-                var series = data[d.series],
-                    point  = series.values[i];
-
-                dispatch.elementClick({
-                  point: point,
-                  series: series,
-                  pos: [x(getX(point, i)) + margin.left, y(getY(point, i)) + margin.top],
-                  seriesIndex: d.series,
-                  pointIndex: i
-                });
-              })
-              .on('mouseover', function(d,i) {
-                if (needsUpdate || !data[d.series]) return 0; //check if this is a dummy point
-                var series = data[d.series],
-                    point  = series.values[i];
-
-                dispatch.elementMouseover({
-                  point: point,
-                  series: series,
-                  pos: [x(getX(point, i)) + margin.left, y(getY(point, i)) + margin.top],
-                  seriesIndex: d.series,
-                  pointIndex: i
-                });
-              })
-              .on('mouseout', function(d,i) {
-                if (needsUpdate || !data[d.series]) return 0; //check if this is a dummy point
-                var series = data[d.series],
-                    point  = series.values[i];
-
-                dispatch.elementMouseout({
-                  point: point,
-                  series: series,
-                  seriesIndex: d.series,
-                  pointIndex: i
-                });
-              });
-          }
-
-          needsUpdate = false;
-      }
-
-      needsUpdate = true;
-
-      var groups = wrap.select('.nv-groups').selectAll('.nv-group')
-          .data(function(d) { return d }, function(d) { return d.key });
-      groups.enter().append('g')
-          .style('stroke-opacity', 1e-6)
-          .style('fill-opacity', 1e-6);
-      groups.exit()
-          .remove();
-      groups
-          .attr('class', function(d,i) { return 'nv-group nv-series-' + i })
-          .classed('hover', function(d) { return d.hover });
-      groups
-          .transition()
-          .style('fill', function(d,i) { return color(d, i) })
-          .style('stroke', function(d,i) { return color(d, i) })
-          .style('stroke-opacity', 1)
-          .style('fill-opacity', .5);
-
-
-      if (onlyCircles) {
-
-        var points = groups.selectAll('circle.nv-point')
-            .data(function(d) { return d.values }, pointKey);
-        points.enter().append('circle')
-            .style('fill', function (d,i) { return d.color })
-            .style('stroke', function (d,i) { return d.color })
-            .attr('cx', function(d,i) { return nv.utils.NaNtoZero(x0(getX(d,i))) })
-            .attr('cy', function(d,i) { return nv.utils.NaNtoZero(y0(getY(d,i))) })
-            .attr('r', function(d,i) { return Math.sqrt(z(getSize(d,i))/Math.PI) });
-        points.exit().remove();
-        groups.exit().selectAll('path.nv-point').transition()
-            .attr('cx', function(d,i) { return nv.utils.NaNtoZero(x(getX(d,i))) })
-            .attr('cy', function(d,i) { return nv.utils.NaNtoZero(y(getY(d,i))) })
-            .remove();
-        points.each(function(d,i) {
-          d3.select(this)
-            .classed('nv-point', true)
-            .classed('nv-point-' + i, true)
-            .classed('hover',false)
-            ;
-        });
-        points.transition()
-            .attr('cx', function(d,i) { return nv.utils.NaNtoZero(x(getX(d,i))) })
-            .attr('cy', function(d,i) { return nv.utils.NaNtoZero(y(getY(d,i))) })
-            .attr('r', function(d,i) { return Math.sqrt(z(getSize(d,i))/Math.PI) });
-
-      } else {
-
-        var points = groups.selectAll('path.nv-point')
-            .data(function(d) { return d.values });
-        points.enter().append('path')
-            .style('fill', function (d,i) { return d.color })
-            .style('stroke', function (d,i) { return d.color })
-            .attr('transform', function(d,i) {
-              return 'translate(' + x0(getX(d,i)) + ',' + y0(getY(d,i)) + ')'
-            })
-            .attr('d',
-              d3.svg.symbol()
-                .type(getShape)
-                .size(function(d,i) { return z(getSize(d,i)) })
-            );
-        points.exit().remove();
-        groups.exit().selectAll('path.nv-point')
-            .transition()
-            .attr('transform', function(d,i) {
-              return 'translate(' + x(getX(d,i)) + ',' + y(getY(d,i)) + ')'
-            })
-            .remove();
-        points.each(function(d,i) {
-          d3.select(this)
-            .classed('nv-point', true)
-            .classed('nv-point-' + i, true)
-            .classed('hover',false)
-            ;
-        });
-        points.transition()
-            .attr('transform', function(d,i) {
-              //nv.log(d,i,getX(d,i), x(getX(d,i)));
-              return 'translate(' + x(getX(d,i)) + ',' + y(getY(d,i)) + ')'
-            })
-            .attr('d',
-              d3.svg.symbol()
-                .type(getShape)
-                .size(function(d,i) { return z(getSize(d,i)) })
-            );
-      }
-
-
-      // Delay updating the invisible interactive layer for smoother animation
-      clearTimeout(timeoutID); // stop repeat calls to updateInteractiveLayer
-      timeoutID = setTimeout(updateInteractiveLayer, 300);
-      //updateInteractiveLayer();
-
-      //store old scales for use in transitions on update
-      x0 = x.copy();
-      y0 = y.copy();
-      z0 = z.copy();
-
-    });
-
-    return chart;
-  }
-
-
-  //============================================================
-  // Event Handling/Dispatching (out of chart's scope)
-  //------------------------------------------------------------
-  chart.clearHighlights = function() {
-      //Remove the 'hover' class from all highlighted points.
-      d3.selectAll(".nv-chart-" + id + " .nv-point.hover").classed("hover",false);
-  };
-
-  chart.highlightPoint = function(seriesIndex,pointIndex,isHoverOver) {
-      d3.select(".nv-chart-" + id + " .nv-series-" + seriesIndex + " .nv-point-" + pointIndex)
-          .classed("hover",isHoverOver);
-  };
-
-
-  dispatch.on('elementMouseover.point', function(d) {
-     if (interactive) chart.highlightPoint(d.seriesIndex,d.pointIndex,true);
-  });
-
-  dispatch.on('elementMouseout.point', function(d) {
-     if (interactive) chart.highlightPoint(d.seriesIndex,d.pointIndex,false);
-  });
-
-  //============================================================
-
-
-  //============================================================
-  // Expose Public Variables
-  //------------------------------------------------------------
-
-  chart.dispatch = dispatch;
-  chart.options = nv.utils.optionsFunc.bind(chart);
-
-  chart.x = function(_) {
-    if (!arguments.length) return getX;
-    getX = d3.functor(_);
-    return chart;
-  };
-
-  chart.y = function(_) {
-    if (!arguments.length) return getY;
-    getY = d3.functor(_);
-    return chart;
-  };
-
-  chart.size = function(_) {
-    if (!arguments.length) return getSize;
-    getSize = d3.functor(_);
-    return chart;
-  };
-
-  chart.margin = function(_) {
-    if (!arguments.length) return margin;
-    margin.top    = typeof _.top    != 'undefined' ? _.top    : margin.top;
-    margin.right  = typeof _.right  != 'undefined' ? _.right  : margin.right;
-    margin.bottom = typeof _.bottom != 'undefined' ? _.bottom : margin.bottom;
-    margin.left   = typeof _.left   != 'undefined' ? _.left   : margin.left;
-    return chart;
-  };
-
-  chart.width = function(_) {
-    if (!arguments.length) return width;
-    width = _;
-    return chart;
-  };
-
-  chart.height = function(_) {
-    if (!arguments.length) return height;
-    height = _;
-    return chart;
-  };
-
-  chart.xScale = function(_) {
-    if (!arguments.length) return x;
-    x = _;
-    return chart;
-  };
-
-  chart.yScale = function(_) {
-    if (!arguments.length) return y;
-    y = _;
-    return chart;
-  };
-
-  chart.zScale = function(_) {
-    if (!arguments.length) return z;
-    z = _;
-    return chart;
-  };
-
-  chart.xDomain = function(_) {
-    if (!arguments.length) return xDomain;
-    xDomain = _;
-    return chart;
-  };
-
-  chart.yDomain = function(_) {
-    if (!arguments.length) return yDomain;
-    yDomain = _;
-    return chart;
-  };
-
-  chart.sizeDomain = function(_) {
-    if (!arguments.length) return sizeDomain;
-    sizeDomain = _;
-    return chart;
-  };
-
-  chart.xRange = function(_) {
-    if (!arguments.length) return xRange;
-    xRange = _;
-    return chart;
-  };
-
-  chart.yRange = function(_) {
-    if (!arguments.length) return yRange;
-    yRange = _;
-    return chart;
-  };
-
-  chart.sizeRange = function(_) {
-    if (!arguments.length) return sizeRange;
-    sizeRange = _;
-    return chart;
-  };
-
-  chart.forceX = function(_) {
-    if (!arguments.length) return forceX;
-    forceX = _;
-    return chart;
-  };
-
-  chart.forceY = function(_) {
-    if (!arguments.length) return forceY;
-    forceY = _;
-    return chart;
-  };
-
-  chart.forceSize = function(_) {
-    if (!arguments.length) return forceSize;
-    forceSize = _;
-    return chart;
-  };
-
-  chart.interactive = function(_) {
-    if (!arguments.length) return interactive;
-    interactive = _;
-    return chart;
-  };
-
-  chart.pointKey = function(_) {
-    if (!arguments.length) return pointKey;
-    pointKey = _;
-    return chart;
-  };
-
-  chart.pointActive = function(_) {
-    if (!arguments.length) return pointActive;
-    pointActive = _;
-    return chart;
-  };
-
-  chart.padData = function(_) {
-    if (!arguments.length) return padData;
-    padData = _;
-    return chart;
-  };
-
-  chart.padDataOuter = function(_) {
-    if (!arguments.length) return padDataOuter;
-    padDataOuter = _;
-    return chart;
-  };
-
-  chart.clipEdge = function(_) {
-    if (!arguments.length) return clipEdge;
-    clipEdge = _;
-    return chart;
-  };
-
-  chart.clipVoronoi= function(_) {
-    if (!arguments.length) return clipVoronoi;
-    clipVoronoi = _;
-    return chart;
-  };
-
-  chart.useVoronoi= function(_) {
-    if (!arguments.length) return useVoronoi;
-    useVoronoi = _;
-    if (useVoronoi === false) {
-        clipVoronoi = false;
-    }
-    return chart;
-  };
-
-  chart.clipRadius = function(_) {
-    if (!arguments.length) return clipRadius;
-    clipRadius = _;
-    return chart;
-  };
-
-  chart.color = function(_) {
-    if (!arguments.length) return color;
-    color = nv.utils.getColor(_);
-    return chart;
-  };
-
-  chart.shape = function(_) {
-    if (!arguments.length) return getShape;
-    getShape = _;
-    return chart;
-  };
-
-  chart.onlyCircles = function(_) {
-    if (!arguments.length) return onlyCircles;
-    onlyCircles = _;
-    return chart;
-  };
-
-  chart.id = function(_) {
-    if (!arguments.length) return id;
-    id = _;
-    return chart;
-  };
-
-  chart.singlePoint = function(_) {
-    if (!arguments.length) return singlePoint;
-    singlePoint = _;
-    return chart;
-  };
-
-  //============================================================
-
-
-  return chart;
-}
-nv.models.scatterChart = function() {
-  "use strict";
-  //============================================================
-  // Public Variables with Default Settings
-  //------------------------------------------------------------
-
-  var scatter      = nv.models.scatter()
-    , xAxis        = nv.models.axis()
-    , yAxis        = nv.models.axis()
-    , legend       = nv.models.legend()
-    , controls     = nv.models.legend()
-    , distX        = nv.models.distribution()
-    , distY        = nv.models.distribution()
-    ;
-
-  var margin       = {top: 30, right: 20, bottom: 50, left: 75}
-    , width        = null
-    , height       = null
-    , color        = nv.utils.defaultColor()
-    , x            = d3.fisheye ? d3.fisheye.scale(d3.scale.linear).distortion(0) : scatter.xScale()
-    , y            = d3.fisheye ? d3.fisheye.scale(d3.scale.linear).distortion(0) : scatter.yScale()
-    , xPadding     = 0
-    , yPadding     = 0
-    , showDistX    = false
-    , showDistY    = false
-    , showLegend   = true
-    , showXAxis    = true
-    , showYAxis    = true
-    , rightAlignYAxis = false
-    , showControls = !!d3.fisheye
-    , fisheye      = 0
-    , pauseFisheye = false
-    , tooltips     = true
-    , tooltipX     = function(key, x, y) { return '<strong>' + x + '</strong>' }
-    , tooltipY     = function(key, x, y) { return '<strong>' + y + '</strong>' }
-    , tooltip      = null
-    , state = {}
-    , defaultState = null
-    , dispatch     = d3.dispatch('tooltipShow', 'tooltipHide', 'stateChange', 'changeState')
-    , noData       = "No Data Available."
-    , transitionDuration = 250
-    ;
-
-  scatter
-    .xScale(x)
-    .yScale(y)
-    ;
-  xAxis
-    .orient('bottom')
-    .tickPadding(10)
-    ;
-  yAxis
-    .orient((rightAlignYAxis) ? 'right' : 'left')
-    .tickPadding(10)
-    ;
-  distX
-    .axis('x')
-    ;
-  distY
-    .axis('y')
-    ;
-
-  controls.updateState(false);
-
-  //============================================================
-
-
-  //============================================================
-  // Private Variables
-  //------------------------------------------------------------
-
-  var x0, y0;
-
-  var showTooltip = function(e, offsetElement) {
-    //TODO: make tooltip style an option between single or dual on axes (maybe on all charts with axes?)
-
-    var left = e.pos[0] + ( offsetElement.offsetLeft || 0 ),
-        top = e.pos[1] + ( offsetElement.offsetTop || 0),
-        leftX = e.pos[0] + ( offsetElement.offsetLeft || 0 ),
-        topX = y.range()[0] + margin.top + ( offsetElement.offsetTop || 0),
-        leftY = x.range()[0] + margin.left + ( offsetElement.offsetLeft || 0 ),
-        topY = e.pos[1] + ( offsetElement.offsetTop || 0),
-        xVal = xAxis.tickFormat()(scatter.x()(e.point, e.pointIndex)),
-        yVal = yAxis.tickFormat()(scatter.y()(e.point, e.pointIndex));
-
-      if( tooltipX != null )
-          nv.tooltip.show([leftX, topX], tooltipX(e.series.key, xVal, yVal, e, chart), 'n', 1, offsetElement, 'x-nvtooltip');
-      if( tooltipY != null )
-          nv.tooltip.show([leftY, topY], tooltipY(e.series.key, xVal, yVal, e, chart), 'e', 1, offsetElement, 'y-nvtooltip');
-      if( tooltip != null )
-          nv.tooltip.show([left, top], tooltip(e.series.key, xVal, yVal, e, chart), e.value < 0 ? 'n' : 's', null, offsetElement);
-  };
-
-  var controlsData = [
-    { key: 'Magnify', disabled: true }
-  ];
-
-  //============================================================
-
-
-  function chart(selection) {
-    selection.each(function(data) {
-      var container = d3.select(this),
-          that = this;
-
-      var availableWidth = (width  || parseInt(container.style('width')) || 960)
-                             - margin.left - margin.right,
-          availableHeight = (height || parseInt(container.style('height')) || 400)
-                             - margin.top - margin.bottom;
-
-      chart.update = function() { container.transition().duration(transitionDuration).call(chart); };
-      chart.container = this;
-
-      //set state.disabled
-      state.disabled = data.map(function(d) { return !!d.disabled });
-
-      if (!defaultState) {
-        var key;
-        defaultState = {};
-        for (key in state) {
-          if (state[key] instanceof Array)
-            defaultState[key] = state[key].slice(0);
-          else
-            defaultState[key] = state[key];
-        }
-      }
-
-      //------------------------------------------------------------
-      // Display noData message if there's nothing to show.
-
-      if (!data || !data.length || !data.filter(function(d) { return d.values.length }).length) {
-        var noDataText = container.selectAll('.nv-noData').data([noData]);
-
-        noDataText.enter().append('text')
-          .attr('class', 'nvd3 nv-noData')
-          .attr('dy', '-.7em')
-          .style('text-anchor', 'middle');
-
-        noDataText
-          .attr('x', margin.left + availableWidth / 2)
-          .attr('y', margin.top + availableHeight / 2)
-          .text(function(d) { return d });
-
-        return chart;
-      } else {
-        container.selectAll('.nv-noData').remove();
-      }
-
-      //------------------------------------------------------------
-
-
-      //------------------------------------------------------------
-      // Setup Scales
-
-      x0 = x0 || x;
-      y0 = y0 || y;
-
-      //------------------------------------------------------------
-
-
-      //------------------------------------------------------------
-      // Setup containers and skeleton of chart
-
-      var wrap = container.selectAll('g.nv-wrap.nv-scatterChart').data([data]);
-      var wrapEnter = wrap.enter().append('g').attr('class', 'nvd3 nv-wrap nv-scatterChart nv-chart-' + scatter.id());
-      var gEnter = wrapEnter.append('g');
-      var g = wrap.select('g');
-
-      // background for pointer events
-      gEnter.append('rect').attr('class', 'nvd3 nv-background');
-
-      gEnter.append('g').attr('class', 'nv-x nv-axis');
-      gEnter.append('g').attr('class', 'nv-y nv-axis');
-      gEnter.append('g').attr('class', 'nv-scatterWrap');
-      gEnter.append('g').attr('class', 'nv-distWrap');
-      gEnter.append('g').attr('class', 'nv-legendWrap');
-      gEnter.append('g').attr('class', 'nv-controlsWrap');
-
-      //------------------------------------------------------------
-
-
-      //------------------------------------------------------------
-      // Legend
-
-      if (showLegend) {
-        var legendWidth = (showControls) ? availableWidth / 2 : availableWidth;
-        legend.width(legendWidth);
-
-        wrap.select('.nv-legendWrap')
-            .datum(data)
-            .call(legend);
-
-        if ( margin.top != legend.height()) {
-          margin.top = legend.height();
-          availableHeight = (height || parseInt(container.style('height')) || 400)
-                             - margin.top - margin.bottom;
-        }
-
-        wrap.select('.nv-legendWrap')
-            .attr('transform', 'translate(' + (availableWidth - legendWidth) + ',' + (-margin.top) +')');
-      }
-
-      //------------------------------------------------------------
-
-
-      //------------------------------------------------------------
-      // Controls
-
-      if (showControls) {
-        controls.width(180).color(['#444']);
-        g.select('.nv-controlsWrap')
-            .datum(controlsData)
-            .attr('transform', 'translate(0,' + (-margin.top) +')')
-            .call(controls);
-      }
-
-      //------------------------------------------------------------
-
-
-      wrap.attr('transform', 'translate(' + margin.left + ',' + margin.top + ')');
-
-      if (rightAlignYAxis) {
-          g.select(".nv-y.nv-axis")
-              .attr("transform", "translate(" + availableWidth + ",0)");
-      }
-
-      //------------------------------------------------------------
-      // Main Chart Component(s)
-
-      scatter
-          .width(availableWidth)
-          .height(availableHeight)
-          .color(data.map(function(d,i) {
-            return d.color || color(d, i);
-          }).filter(function(d,i) { return !data[i].disabled }));
-
-      if (xPadding !== 0)
-        scatter.xDomain(null);
-
-      if (yPadding !== 0)
-        scatter.yDomain(null);
-
-      wrap.select('.nv-scatterWrap')
-          .datum(data.filter(function(d) { return !d.disabled }))
-          .call(scatter);
-
-      //Adjust for x and y padding
-      if (xPadding !== 0) {
-        var xRange = x.domain()[1] - x.domain()[0];
-        scatter.xDomain([x.domain()[0] - (xPadding * xRange), x.domain()[1] + (xPadding * xRange)]);
-      }
-
-      if (yPadding !== 0) {
-        var yRange = y.domain()[1] - y.domain()[0];
-        scatter.yDomain([y.domain()[0] - (yPadding * yRange), y.domain()[1] + (yPadding * yRange)]);
-      }
-
-      //Only need to update the scatter again if x/yPadding changed the domain.
-      if (yPadding !== 0 || xPadding !== 0) {
-        wrap.select('.nv-scatterWrap')
-            .datum(data.filter(function(d) { return !d.disabled }))
-            .call(scatter);
-      }
-
-      //------------------------------------------------------------
-
-
-      //------------------------------------------------------------
-      // Setup Axes
-      if (showXAxis) {
-        xAxis
-            .scale(x)
-            .ticks( xAxis.ticks() && xAxis.ticks().length ? xAxis.ticks() : availableWidth / 100 )
-            .tickSize( -availableHeight , 0);
-
-        g.select('.nv-x.nv-axis')
-            .attr('transform', 'translate(0,' + y.range()[0] + ')')
-            .call(xAxis);
-
-      }
-
-      if (showYAxis) {
-        yAxis
-            .scale(y)
-            .ticks( yAxis.ticks() && yAxis.ticks().length ? yAxis.ticks() : availableHeight / 36 )
-            .tickSize( -availableWidth, 0);
-
-        g.select('.nv-y.nv-axis')
-            .call(yAxis);
-      }
-
-
-      if (showDistX) {
-        distX
-            .getData(scatter.x())
-            .scale(x)
-            .width(availableWidth)
-            .color(data.map(function(d,i) {
-              return d.color || color(d, i);
-            }).filter(function(d,i) { return !data[i].disabled }));
-        gEnter.select('.nv-distWrap').append('g')
-            .attr('class', 'nv-distributionX');
-        g.select('.nv-distributionX')
-            .attr('transform', 'translate(0,' + y.range()[0] + ')')
-            .datum(data.filter(function(d) { return !d.disabled }))
-            .call(distX);
-      }
-
-      if (showDistY) {
-        distY
-            .getData(scatter.y())
-            .scale(y)
-            .width(availableHeight)
-            .color(data.map(function(d,i) {
-              return d.color || color(d, i);
-            }).filter(function(d,i) { return !data[i].disabled }));
-        gEnter.select('.nv-distWrap').append('g')
-            .attr('class', 'nv-distributionY');
-        g.select('.nv-distributionY')
-            .attr('transform', 
-              'translate(' + (rightAlignYAxis ? availableWidth : -distY.size() ) + ',0)')
-            .datum(data.filter(function(d) { return !d.disabled }))
-            .call(distY);
-      }
-
-      //------------------------------------------------------------
-
-
-
-
-      if (d3.fisheye) {
-        g.select('.nv-background')
-            .attr('width', availableWidth)
-            .attr('height', availableHeight);
-
-        g.select('.nv-background').on('mousemove', updateFisheye);
-        g.select('.nv-background').on('click', function() { pauseFisheye = !pauseFisheye;});
-        scatter.dispatch.on('elementClick.freezeFisheye', function() {
-          pauseFisheye = !pauseFisheye;
-        });
-      }
-
-
-      function updateFisheye() {
-        if (pauseFisheye) {
-          g.select('.nv-point-paths').style('pointer-events', 'all');
-          return false;
-        }
-
-        g.select('.nv-point-paths').style('pointer-events', 'none' );
-
-        var mouse = d3.mouse(this);
-        x.distortion(fisheye).focus(mouse[0]);
-        y.distortion(fisheye).focus(mouse[1]);
-
-        g.select('.nv-scatterWrap')
-            .call(scatter);
-
-        if (showXAxis)
-          g.select('.nv-x.nv-axis').call(xAxis);
-        
-        if (showYAxis)
-          g.select('.nv-y.nv-axis').call(yAxis);
-        
-        g.select('.nv-distributionX')
-            .datum(data.filter(function(d) { return !d.disabled }))
-            .call(distX);
-        g.select('.nv-distributionY')
-            .datum(data.filter(function(d) { return !d.disabled }))
-            .call(distY);
-      }
-
-
-
-      //============================================================
-      // Event Handling/Dispatching (in chart's scope)
-      //------------------------------------------------------------
-
-      controls.dispatch.on('legendClick', function(d,i) {
-        d.disabled = !d.disabled;
-
-        fisheye = d.disabled ? 0 : 2.5;
-        g.select('.nv-background') .style('pointer-events', d.disabled ? 'none' : 'all');
-        g.select('.nv-point-paths').style('pointer-events', d.disabled ? 'all' : 'none' );
-
-        if (d.disabled) {
-          x.distortion(fisheye).focus(0);
-          y.distortion(fisheye).focus(0);
-
-          g.select('.nv-scatterWrap').call(scatter);
-          g.select('.nv-x.nv-axis').call(xAxis);
-          g.select('.nv-y.nv-axis').call(yAxis);
-        } else {
-          pauseFisheye = false;
-        }
-
-        chart.update();
-      });
-
-      legend.dispatch.on('stateChange', function(newState) {
-        state.disabled = newState.disabled;
-        dispatch.stateChange(state);
-        chart.update();
-      });
-
-      scatter.dispatch.on('elementMouseover.tooltip', function(e) {
-        d3.select('.nv-chart-' + scatter.id() + ' .nv-series-' + e.seriesIndex + ' .nv-distx-' + e.pointIndex)
-            .attr('y1', function(d,i) { return e.pos[1] - availableHeight;});
-        d3.select('.nv-chart-' + scatter.id() + ' .nv-series-' + e.seriesIndex + ' .nv-disty-' + e.pointIndex)
-            .attr('x2', e.pos[0] + distX.size());
-
-        e.pos = [e.pos[0] + margin.left, e.pos[1] + margin.top];
-        dispatch.tooltipShow(e);
-      });
-
-      dispatch.on('tooltipShow', function(e) {
-        if (tooltips) showTooltip(e, that.parentNode);
-      });
-
-      // Update chart from a state object passed to event handler
-      dispatch.on('changeState', function(e) {
-
-        if (typeof e.disabled !== 'undefined') {
-          data.forEach(function(series,i) {
-            series.disabled = e.disabled[i];
-          });
-
-          state.disabled = e.disabled;
-        }
-
-        chart.update();
-      });
-
-      //============================================================
-
-
-      //store old scales for use in transitions on update
-      x0 = x.copy();
-      y0 = y.copy();
-
-
-    });
-
-    return chart;
-  }
-
-
-  //============================================================
-  // Event Handling/Dispatching (out of chart's scope)
-  //------------------------------------------------------------
-
-  scatter.dispatch.on('elementMouseout.tooltip', function(e) {
-    dispatch.tooltipHide(e);
-
-    d3.select('.nv-chart-' + scatter.id() + ' .nv-series-' + e.seriesIndex + ' .nv-distx-' + e.pointIndex)
-        .attr('y1', 0);
-    d3.select('.nv-chart-' + scatter.id() + ' .nv-series-' + e.seriesIndex + ' .nv-disty-' + e.pointIndex)
-        .attr('x2', distY.size());
-  });
-  dispatch.on('tooltipHide', function() {
-    if (tooltips) nv.tooltip.cleanup();
-  });
-
-  //============================================================
-
-
-  //============================================================
-  // Expose Public Variables
-  //------------------------------------------------------------
-
-  // expose chart's sub-components
-  chart.dispatch = dispatch;
-  chart.scatter = scatter;
-  chart.legend = legend;
-  chart.controls = controls;
-  chart.xAxis = xAxis;
-  chart.yAxis = yAxis;
-  chart.distX = distX;
-  chart.distY = distY;
-
-  d3.rebind(chart, scatter, 'id', 'interactive', 'pointActive', 'x', 'y', 'shape', 'size', 'xScale', 'yScale', 'zScale', 'xDomain', 'yDomain', 'xRange', 'yRange', 'sizeDomain', 'sizeRange', 'forceX', 'forceY', 'forceSize', 'clipVoronoi', 'clipRadius', 'useVoronoi');
-  chart.options = nv.utils.optionsFunc.bind(chart);
-  
-  chart.margin = function(_) {
-    if (!arguments.length) return margin;
-    margin.top    = typeof _.top    != 'undefined' ? _.top    : margin.top;
-    margin.right  = typeof _.right  != 'undefined' ? _.right  : margin.right;
-    margin.bottom = typeof _.bottom != 'undefined' ? _.bottom : margin.bottom;
-    margin.left   = typeof _.left   != 'undefined' ? _.left   : margin.left;
-    return chart;
-  };
-
-  chart.width = function(_) {
-    if (!arguments.length) return width;
-    width = _;
-    return chart;
-  };
-
-  chart.height = function(_) {
-    if (!arguments.length) return height;
-    height = _;
-    return chart;
-  };
-
-  chart.color = function(_) {
-    if (!arguments.length) return color;
-    color = nv.utils.getColor(_);
-    legend.color(color);
-    distX.color(color);
-    distY.color(color);
-    return chart;
-  };
-
-  chart.showDistX = function(_) {
-    if (!arguments.length) return showDistX;
-    showDistX = _;
-    return chart;
-  };
-
-  chart.showDistY = function(_) {
-    if (!arguments.length) return showDistY;
-    showDistY = _;
-    return chart;
-  };
-
-  chart.showControls = function(_) {
-    if (!arguments.length) return showControls;
-    showControls = _;
-    return chart;
-  };
-
-  chart.showLegend = function(_) {
-    if (!arguments.length) return showLegend;
-    showLegend = _;
-    return chart;
-  };
-
-  chart.showXAxis = function(_) {
-    if (!arguments.length) return showXAxis;
-    showXAxis = _;
-    return chart;
-  };
-
-  chart.showYAxis = function(_) {
-    if (!arguments.length) return showYAxis;
-    showYAxis = _;
-    return chart;
-  };
-
-  chart.rightAlignYAxis = function(_) {
-    if(!arguments.length) return rightAlignYAxis;
-    rightAlignYAxis = _;
-    yAxis.orient( (_) ? 'right' : 'left');
-    return chart;
-  };
-
-
-  chart.fisheye = function(_) {
-    if (!arguments.length) return fisheye;
-    fisheye = _;
-    return chart;
-  };
-
-  chart.xPadding = function(_) {
-    if (!arguments.length) return xPadding;
-    xPadding = _;
-    return chart;
-  };
-
-  chart.yPadding = function(_) {
-    if (!arguments.length) return yPadding;
-    yPadding = _;
-    return chart;
-  };
-
-  chart.tooltips = function(_) {
-    if (!arguments.length) return tooltips;
-    tooltips = _;
-    return chart;
-  };
-
-  chart.tooltipContent = function(_) {
-    if (!arguments.length) return tooltip;
-    tooltip = _;
-    return chart;
-  };
-
-  chart.tooltipXContent = function(_) {
-    if (!arguments.length) return tooltipX;
-    tooltipX = _;
-    return chart;
-  };
-
-  chart.tooltipYContent = function(_) {
-    if (!arguments.length) return tooltipY;
-    tooltipY = _;
-    return chart;
-  };
-
-  chart.state = function(_) {
-    if (!arguments.length) return state;
-    state = _;
-    return chart;
-  };
-
-  chart.defaultState = function(_) {
-    if (!arguments.length) return defaultState;
-    defaultState = _;
-    return chart;
-  };
-  
-  chart.noData = function(_) {
-    if (!arguments.length) return noData;
-    noData = _;
-    return chart;
-  };
-
-  chart.transitionDuration = function(_) {
-    if (!arguments.length) return transitionDuration;
-    transitionDuration = _;
-    return chart;
-  };
-
-  //============================================================
-
-
-  return chart;
-}
-
-nv.models.scatterPlusLineChart = function() {
-  "use strict";
-  //============================================================
-  // Public Variables with Default Settings
-  //------------------------------------------------------------
-
-  var scatter      = nv.models.scatter()
-    , xAxis        = nv.models.axis()
-    , yAxis        = nv.models.axis()
-    , legend       = nv.models.legend()
-    , controls     = nv.models.legend()
-    , distX        = nv.models.distribution()
-    , distY        = nv.models.distribution()
-    ;
-
-  var margin       = {top: 30, right: 20, bottom: 50, left: 75}
-    , width        = null
-    , height       = null
-    , color        = nv.utils.defaultColor()
-    , x            = d3.fisheye ? d3.fisheye.scale(d3.scale.linear).distortion(0) : scatter.xScale()
-    , y            = d3.fisheye ? d3.fisheye.scale(d3.scale.linear).distortion(0) : scatter.yScale()
-    , showDistX    = false
-    , showDistY    = false
-    , showLegend   = true
-    , showXAxis    = true
-    , showYAxis    = true
-    , rightAlignYAxis = false
-    , showControls = !!d3.fisheye
-    , fisheye      = 0
-    , pauseFisheye = false
-    , tooltips     = true
-    , tooltipX     = function(key, x, y) { return '<strong>' + x + '</strong>' }
-    , tooltipY     = function(key, x, y) { return '<strong>' + y + '</strong>' }
-    , tooltip      = function(key, x, y, date) { return '<h3>' + key + '</h3>' 
-                                                      + '<p>' + date + '</p>' }
-    , state = {}
-    , defaultState = null
-    , dispatch = d3.dispatch('tooltipShow', 'tooltipHide', 'stateChange', 'changeState')
-    , noData       = "No Data Available."
-    , transitionDuration = 250
-    ;
-
-  scatter
-    .xScale(x)
-    .yScale(y)
-    ;
-  xAxis
-    .orient('bottom')
-    .tickPadding(10)
-    ;
-  yAxis
-    .orient((rightAlignYAxis) ? 'right' : 'left')
-    .tickPadding(10)
-    ;
-  distX
-    .axis('x')
-    ;
-  distY
-    .axis('y')
-    ;
-  
-  controls.updateState(false);
-  //============================================================
-
-
-  //============================================================
-  // Private Variables
-  //------------------------------------------------------------
-
-  var x0, y0;
-
-  var showTooltip = function(e, offsetElement) {
-    //TODO: make tooltip style an option between single or dual on axes (maybe on all charts with axes?)
-
-    var left = e.pos[0] + ( offsetElement.offsetLeft || 0 ),
-        top = e.pos[1] + ( offsetElement.offsetTop || 0),
-        leftX = e.pos[0] + ( offsetElement.offsetLeft || 0 ),
-        topX = y.range()[0] + margin.top + ( offsetElement.offsetTop || 0),
-        leftY = x.range()[0] + margin.left + ( offsetElement.offsetLeft || 0 ),
-        topY = e.pos[1] + ( offsetElement.offsetTop || 0),
-        xVal = xAxis.tickFormat()(scatter.x()(e.point, e.pointIndex)),
-        yVal = yAxis.tickFormat()(scatter.y()(e.point, e.pointIndex));
-
-      if( tooltipX != null )
-          nv.tooltip.show([leftX, topX], tooltipX(e.series.key, xVal, yVal, e, chart), 'n', 1, offsetElement, 'x-nvtooltip');
-      if( tooltipY != null )
-          nv.tooltip.show([leftY, topY], tooltipY(e.series.key, xVal, yVal, e, chart), 'e', 1, offsetElement, 'y-nvtooltip');
-      if( tooltip != null )
-          nv.tooltip.show([left, top], tooltip(e.series.key, xVal, yVal, e.point.tooltip, e, chart), e.value < 0 ? 'n' : 's', null, offsetElement);
-  };
-
-  var controlsData = [
-    { key: 'Magnify', disabled: true }
-  ];
-
-  //============================================================
-
-
-  function chart(selection) {
-    selection.each(function(data) {
-      var container = d3.select(this),
-          that = this;
-
-      var availableWidth = (width  || parseInt(container.style('width')) || 960)
-                             - margin.left - margin.right,
-          availableHeight = (height || parseInt(container.style('height')) || 400)
-                             - margin.top - margin.bottom;
-
-      chart.update = function() { container.transition().duration(transitionDuration).call(chart); };
-      chart.container = this;
-
-      //set state.disabled
-      state.disabled = data.map(function(d) { return !!d.disabled });
-
-      if (!defaultState) {
-        var key;
-        defaultState = {};
-        for (key in state) {
-          if (state[key] instanceof Array)
-            defaultState[key] = state[key].slice(0);
-          else
-            defaultState[key] = state[key];
-        }
-      }
-
-      //------------------------------------------------------------
-      // Display noData message if there's nothing to show.
-
-      if (!data || !data.length || !data.filter(function(d) { return d.values.length }).length) {
-        var noDataText = container.selectAll('.nv-noData').data([noData]);
-
-        noDataText.enter().append('text')
-          .attr('class', 'nvd3 nv-noData')
-          .attr('dy', '-.7em')
-          .style('text-anchor', 'middle');
-
-        noDataText
-          .attr('x', margin.left + availableWidth / 2)
-          .attr('y', margin.top + availableHeight / 2)
-          .text(function(d) { return d });
-
-        return chart;
-      } else {
-        container.selectAll('.nv-noData').remove();
-      }
-
-      //------------------------------------------------------------
-
-
-      //------------------------------------------------------------
-      // Setup Scales
-
-      x = scatter.xScale();
-      y = scatter.yScale();
-
-      x0 = x0 || x;
-      y0 = y0 || y;
-
-      //------------------------------------------------------------
-
-
-      //------------------------------------------------------------
-      // Setup containers and skeleton of chart
-
-      var wrap = container.selectAll('g.nv-wrap.nv-scatterChart').data([data]);
-      var wrapEnter = wrap.enter().append('g').attr('class', 'nvd3 nv-wrap nv-scatterChart nv-chart-' + scatter.id());
-      var gEnter = wrapEnter.append('g');
-      var g = wrap.select('g')
-
-      // background for pointer events
-      gEnter.append('rect').attr('class', 'nvd3 nv-background').style("pointer-events","none");
-
-      gEnter.append('g').attr('class', 'nv-x nv-axis');
-      gEnter.append('g').attr('class', 'nv-y nv-axis');
-      gEnter.append('g').attr('class', 'nv-scatterWrap');
-      gEnter.append('g').attr('class', 'nv-regressionLinesWrap');
-      gEnter.append('g').attr('class', 'nv-distWrap');
-      gEnter.append('g').attr('class', 'nv-legendWrap');
-      gEnter.append('g').attr('class', 'nv-controlsWrap');
-
-      wrap.attr('transform', 'translate(' + margin.left + ',' + margin.top + ')');
-
-      if (rightAlignYAxis) {
-          g.select(".nv-y.nv-axis")
-              .attr("transform", "translate(" + availableWidth + ",0)");
-      }
-
-      //------------------------------------------------------------
-
-
-      //------------------------------------------------------------
-      // Legend
-
-      if (showLegend) {
-        legend.width( availableWidth / 2 );
-
-        wrap.select('.nv-legendWrap')
-            .datum(data)
-            .call(legend);
-
-        if ( margin.top != legend.height()) {
-          margin.top = legend.height();
-          availableHeight = (height || parseInt(container.style('height')) || 400)
-                             - margin.top - margin.bottom;
-        }
-
-        wrap.select('.nv-legendWrap')
-            .attr('transform', 'translate(' + (availableWidth / 2) + ',' + (-margin.top) +')');
-      }
-
-      //------------------------------------------------------------
-
-
-      //------------------------------------------------------------
-      // Controls
-
-      if (showControls) {
-        controls.width(180).color(['#444']);
-        g.select('.nv-controlsWrap')
-            .datum(controlsData)
-            .attr('transform', 'translate(0,' + (-margin.top) +')')
-            .call(controls);
-      }
-
-      //------------------------------------------------------------
-
-
-      //------------------------------------------------------------
-      // Main Chart Component(s)
-
-      scatter
-          .width(availableWidth)
-          .height(availableHeight)
-          .color(data.map(function(d,i) {
-            return d.color || color(d, i);
-          }).filter(function(d,i) { return !data[i].disabled }))
-
-      wrap.select('.nv-scatterWrap')
-          .datum(data.filter(function(d) { return !d.disabled }))
-          .call(scatter);
-
-      wrap.select('.nv-regressionLinesWrap')
-          .attr('clip-path', 'url(#nv-edge-clip-' + scatter.id() + ')');
-
-      var regWrap = wrap.select('.nv-regressionLinesWrap').selectAll('.nv-regLines')
-                      .data(function(d) {return d });
-      
-      regWrap.enter().append('g').attr('class', 'nv-regLines');
-
-      var regLine = regWrap.selectAll('.nv-regLine').data(function(d){return [d]});
-      var regLineEnter = regLine.enter()
-                       .append('line').attr('class', 'nv-regLine')
-                       .style('stroke-opacity', 0);
-
-      regLine
-          .transition()
-          .attr('x1', x.range()[0])
-          .attr('x2', x.range()[1])
-          .attr('y1', function(d,i) {return y(x.domain()[0] * d.slope + d.intercept) })
-          .attr('y2', function(d,i) { return y(x.domain()[1] * d.slope + d.intercept) })
-          .style('stroke', function(d,i,j) { return color(d,j) })
-          .style('stroke-opacity', function(d,i) {
-            return (d.disabled || typeof d.slope === 'undefined' || typeof d.intercept === 'undefined') ? 0 : 1 
-          });
-
-      //------------------------------------------------------------
-
-
-      //------------------------------------------------------------
-      // Setup Axes
-
-      if (showXAxis) {
-        xAxis
-            .scale(x)
-            .ticks( xAxis.ticks() ? xAxis.ticks() : availableWidth / 100 )
-            .tickSize( -availableHeight , 0);
-
-        g.select('.nv-x.nv-axis')
-            .attr('transform', 'translate(0,' + y.range()[0] + ')')
-            .call(xAxis);
-      }
-
-      if (showYAxis) {
-        yAxis
-            .scale(y)
-            .ticks( yAxis.ticks() ? yAxis.ticks() : availableHeight / 36 )
-            .tickSize( -availableWidth, 0);
-
-        g.select('.nv-y.nv-axis')
-            .call(yAxis);
-      }
-
-
-      if (showDistX) {
-        distX
-            .getData(scatter.x())
-            .scale(x)
-            .width(availableWidth)
-            .color(data.map(function(d,i) {
-              return d.color || color(d, i);
-            }).filter(function(d,i) { return !data[i].disabled }));
-        gEnter.select('.nv-distWrap').append('g')
-            .attr('class', 'nv-distributionX');
-        g.select('.nv-distributionX')
-            .attr('transform', 'translate(0,' + y.range()[0] + ')')
-            .datum(data.filter(function(d) { return !d.disabled }))
-            .call(distX);
-      }
-
-      if (showDistY) {
-        distY
-            .getData(scatter.y())
-            .scale(y)
-            .width(availableHeight)
-            .color(data.map(function(d,i) {
-              return d.color || color(d, i);
-            }).filter(function(d,i) { return !data[i].disabled }));
-        gEnter.select('.nv-distWrap').append('g')
-            .attr('class', 'nv-distributionY');
-        g.select('.nv-distributionY')
-            .attr('transform', 'translate(' + (rightAlignYAxis ? availableWidth : -distY.size() ) + ',0)')
-            .datum(data.filter(function(d) { return !d.disabled }))
-            .call(distY);
-      }
-
-      //------------------------------------------------------------
-
-
-
-
-      if (d3.fisheye) {
-        g.select('.nv-background')
-            .attr('width', availableWidth)
-            .attr('height', availableHeight)
-            ;
-
-        g.select('.nv-background').on('mousemove', updateFisheye);
-        g.select('.nv-background').on('click', function() { pauseFisheye = !pauseFisheye;});
-        scatter.dispatch.on('elementClick.freezeFisheye', function() {
-          pauseFisheye = !pauseFisheye;
-        });
-      }
-
-
-      function updateFisheye() {
-        if (pauseFisheye) {
-          g.select('.nv-point-paths').style('pointer-events', 'all');
-          return false;
-        }
-
-        g.select('.nv-point-paths').style('pointer-events', 'none' );
-
-        var mouse = d3.mouse(this);
-        x.distortion(fisheye).focus(mouse[0]);
-        y.distortion(fisheye).focus(mouse[1]);
-
-        g.select('.nv-scatterWrap')
-            .datum(data.filter(function(d) { return !d.disabled }))
-            .call(scatter);
-
-        if (showXAxis)
-          g.select('.nv-x.nv-axis').call(xAxis);
-
-        if (showYAxis)
-          g.select('.nv-y.nv-axis').call(yAxis);
-        
-        g.select('.nv-distributionX')
-            .datum(data.filter(function(d) { return !d.disabled }))
-            .call(distX);
-        g.select('.nv-distributionY')
-            .datum(data.filter(function(d) { return !d.disabled }))
-            .call(distY);
-      }
-
-
-
-      //============================================================
-      // Event Handling/Dispatching (in chart's scope)
-      //------------------------------------------------------------
-
-      controls.dispatch.on('legendClick', function(d,i) {
-        d.disabled = !d.disabled;
-
-        fisheye = d.disabled ? 0 : 2.5;
-        g.select('.nv-background') .style('pointer-events', d.disabled ? 'none' : 'all');
-        g.select('.nv-point-paths').style('pointer-events', d.disabled ? 'all' : 'none' );
-
-        if (d.disabled) {
-          x.distortion(fisheye).focus(0);
-          y.distortion(fisheye).focus(0);
-
-          g.select('.nv-scatterWrap').call(scatter);
-          g.select('.nv-x.nv-axis').call(xAxis);
-          g.select('.nv-y.nv-axis').call(yAxis);
-        } else {
-          pauseFisheye = false;
-        }
-
-        chart.update();
-      });
-
-      legend.dispatch.on('stateChange', function(newState) { 
-        state = newState;
-        dispatch.stateChange(state);
-        chart.update();
-      });
-
-
-      scatter.dispatch.on('elementMouseover.tooltip', function(e) {
-        d3.select('.nv-chart-' + scatter.id() + ' .nv-series-' + e.seriesIndex + ' .nv-distx-' + e.pointIndex)
-            .attr('y1', e.pos[1] - availableHeight);
-        d3.select('.nv-chart-' + scatter.id() + ' .nv-series-' + e.seriesIndex + ' .nv-disty-' + e.pointIndex)
-            .attr('x2', e.pos[0] + distX.size());
-
-        e.pos = [e.pos[0] + margin.left, e.pos[1] + margin.top];
-        dispatch.tooltipShow(e);
-      });
-
-      dispatch.on('tooltipShow', function(e) {
-        if (tooltips) showTooltip(e, that.parentNode);
-      });
-
-      // Update chart from a state object passed to event handler
-      dispatch.on('changeState', function(e) {
-
-        if (typeof e.disabled !== 'undefined') {
-          data.forEach(function(series,i) {
-            series.disabled = e.disabled[i];
-          });
-
-          state.disabled = e.disabled;
-        }
-
-        chart.update();
-      });
-
-      //============================================================
-
-
-      //store old scales for use in transitions on update
-      x0 = x.copy();
-      y0 = y.copy();
-
-
-    });
-
-    return chart;
-  }
-
-
-  //============================================================
-  // Event Handling/Dispatching (out of chart's scope)
-  //------------------------------------------------------------
-
-  scatter.dispatch.on('elementMouseout.tooltip', function(e) {
-    dispatch.tooltipHide(e);
-
-    d3.select('.nv-chart-' + scatter.id() + ' .nv-series-' + e.seriesIndex + ' .nv-distx-' + e.pointIndex)
-        .attr('y1', 0);
-    d3.select('.nv-chart-' + scatter.id() + ' .nv-series-' + e.seriesIndex + ' .nv-disty-' + e.pointIndex)
-        .attr('x2', distY.size());
-  });
-  dispatch.on('tooltipHide', function() {
-    if (tooltips) nv.tooltip.cleanup();
-  });
-
-  //============================================================
-
-
-  //============================================================
-  // Expose Public Variables
-  //------------------------------------------------------------
-
-  // expose chart's sub-components
-  chart.dispatch = dispatch;
-  chart.scatter = scatter;
-  chart.legend = legend;
-  chart.controls = controls;
-  chart.xAxis = xAxis;
-  chart.yAxis = yAxis;
-  chart.distX = distX;
-  chart.distY = distY;
-
-  d3.rebind(chart, scatter, 'id', 'interactive', 'pointActive', 'x', 'y', 'shape', 'size', 'xScale', 'yScale', 'zScale', 'xDomain', 'yDomain', 'xRange', 'yRange', 'sizeDomain', 'sizeRange', 'forceX', 'forceY', 'forceSize', 'clipVoronoi', 'clipRadius', 'useVoronoi');
-
-  chart.options = nv.utils.optionsFunc.bind(chart);
-  
-  chart.margin = function(_) {
-    if (!arguments.length) return margin;
-    margin.top    = typeof _.top    != 'undefined' ? _.top    : margin.top;
-    margin.right  = typeof _.right  != 'undefined' ? _.right  : margin.right;
-    margin.bottom = typeof _.bottom != 'undefined' ? _.bottom : margin.bottom;
-    margin.left   = typeof _.left   != 'undefined' ? _.left   : margin.left;
-    return chart;
-  };
-
-  chart.width = function(_) {
-    if (!arguments.length) return width;
-    width = _;
-    return chart;
-  };
-
-  chart.height = function(_) {
-    if (!arguments.length) return height;
-    height = _;
-    return chart;
-  };
-
-  chart.color = function(_) {
-    if (!arguments.length) return color;
-    color = nv.utils.getColor(_);
-    legend.color(color);
-    distX.color(color);
-    distY.color(color);
-    return chart;
-  };
-
-  chart.showDistX = function(_) {
-    if (!arguments.length) return showDistX;
-    showDistX = _;
-    return chart;
-  };
-
-  chart.showDistY = function(_) {
-    if (!arguments.length) return showDistY;
-    showDistY = _;
-    return chart;
-  };
-
-  chart.showControls = function(_) {
-    if (!arguments.length) return showControls;
-    showControls = _;
-    return chart;
-  };
-
-  chart.showLegend = function(_) {
-    if (!arguments.length) return showLegend;
-    showLegend = _;
-    return chart;
-  };
-
-  chart.showXAxis = function(_) {
-    if (!arguments.length) return showXAxis;
-    showXAxis = _;
-    return chart;
-  };
-
-  chart.showYAxis = function(_) {
-    if (!arguments.length) return showYAxis;
-    showYAxis = _;
-    return chart;
-  };
-
-  chart.rightAlignYAxis = function(_) {
-    if(!arguments.length) return rightAlignYAxis;
-    rightAlignYAxis = _;
-    yAxis.orient( (_) ? 'right' : 'left');
-    return chart;
-  };
-
-  chart.fisheye = function(_) {
-    if (!arguments.length) return fisheye;
-    fisheye = _;
-    return chart;
-  };
-
-  chart.tooltips = function(_) {
-    if (!arguments.length) return tooltips;
-    tooltips = _;
-    return chart;
-  };
-
-  chart.tooltipContent = function(_) {
-    if (!arguments.length) return tooltip;
-    tooltip = _;
-    return chart;
-  };
-
-  chart.tooltipXContent = function(_) {
-    if (!arguments.length) return tooltipX;
-    tooltipX = _;
-    return chart;
-  };
-
-  chart.tooltipYContent = function(_) {
-    if (!arguments.length) return tooltipY;
-    tooltipY = _;
-    return chart;
-  };
-
-  chart.state = function(_) {
-    if (!arguments.length) return state;
-    state = _;
-    return chart;
-  };
-
-  chart.defaultState = function(_) {
-    if (!arguments.length) return defaultState;
-    defaultState = _;
-    return chart;
-  };
-
-  chart.noData = function(_) {
-    if (!arguments.length) return noData;
-    noData = _;
-    return chart;
-  };
-
-  chart.transitionDuration = function(_) {
-    if (!arguments.length) return transitionDuration;
-    transitionDuration = _;
-    return chart;
-  };
-
-  //============================================================
-
-
-  return chart;
-}
-
-nv.models.sparkline = function() {
-  "use strict";
-  //============================================================
-  // Public Variables with Default Settings
-  //------------------------------------------------------------
-
-  var margin = {top: 2, right: 0, bottom: 2, left: 0}
-    , width = 400
-    , height = 32
-    , animate = true
-    , x = d3.scale.linear()
-    , y = d3.scale.linear()
-    , getX = function(d) { return d.x }
-    , getY = function(d) { return d.y }
-    , color = nv.utils.getColor(['#000'])
-    , xDomain
-    , yDomain
-    , xRange
-    , yRange
-    ;
-
-  //============================================================
-
-
-  function chart(selection) {
-    selection.each(function(data) {
-      var availableWidth = width - margin.left - margin.right,
-          availableHeight = height - margin.top - margin.bottom,
-          container = d3.select(this);
-
-
-      //------------------------------------------------------------
-      // Setup Scales
-
-      x   .domain(xDomain || d3.extent(data, getX ))
-          .range(xRange || [0, availableWidth]);
-
-      y   .domain(yDomain || d3.extent(data, getY ))
-          .range(yRange || [availableHeight, 0]);
-
-      //------------------------------------------------------------
-
-
-      //------------------------------------------------------------
-      // Setup containers and skeleton of chart
-
-      var wrap = container.selectAll('g.nv-wrap.nv-sparkline').data([data]);
-      var wrapEnter = wrap.enter().append('g').attr('class', 'nvd3 nv-wrap nv-sparkline');
-      var gEnter = wrapEnter.append('g');
-      var g = wrap.select('g');
-
-      wrap.attr('transform', 'translate(' + margin.left + ',' + margin.top + ')')
-
-      //------------------------------------------------------------
-
-
-      var paths = wrap.selectAll('path')
-          .data(function(d) { return [d] });
-      paths.enter().append('path');
-      paths.exit().remove();
-      paths
-          .style('stroke', function(d,i) { return d.color || color(d, i) })
-          .attr('d', d3.svg.line()
-            .x(function(d,i) { return x(getX(d,i)) })
-            .y(function(d,i) { return y(getY(d,i)) })
-          );
-
-
-      // TODO: Add CURRENT data point (Need Min, Mac, Current / Most recent)
-      var points = wrap.selectAll('circle.nv-point')
-          .data(function(data) {
-              var yValues = data.map(function(d, i) { return getY(d,i); });
-              function pointIndex(index) {
-                  if (index != -1) {
-	              var result = data[index];
-                      result.pointIndex = index;
-                      return result;
-                  } else {
-                      return null;
-                  }
-              }
-              var maxPoint = pointIndex(yValues.lastIndexOf(y.domain()[1])),
-                  minPoint = pointIndex(yValues.indexOf(y.domain()[0])),
-                  currentPoint = pointIndex(yValues.length - 1);
-              return [minPoint, maxPoint, currentPoint].filter(function (d) {return d != null;});
-          });
-      points.enter().append('circle');
-      points.exit().remove();
-      points
-          .attr('cx', function(d,i) { return x(getX(d,d.pointIndex)) })
-          .attr('cy', function(d,i) { return y(getY(d,d.pointIndex)) })
-          .attr('r', 2)
-          .attr('class', function(d,i) {
-            return getX(d, d.pointIndex) == x.domain()[1] ? 'nv-point nv-currentValue' :
-                   getY(d, d.pointIndex) == y.domain()[0] ? 'nv-point nv-minValue' : 'nv-point nv-maxValue'
-          });
-    });
-
-    return chart;
-  }
-
-
-  //============================================================
-  // Expose Public Variables
-  //------------------------------------------------------------
-  chart.options = nv.utils.optionsFunc.bind(chart);
-  
-  chart.margin = function(_) {
-    if (!arguments.length) return margin;
-    margin.top    = typeof _.top    != 'undefined' ? _.top    : margin.top;
-    margin.right  = typeof _.right  != 'undefined' ? _.right  : margin.right;
-    margin.bottom = typeof _.bottom != 'undefined' ? _.bottom : margin.bottom;
-    margin.left   = typeof _.left   != 'undefined' ? _.left   : margin.left;
-    return chart;
-  };
-
-  chart.width = function(_) {
-    if (!arguments.length) return width;
-    width = _;
-    return chart;
-  };
-
-  chart.height = function(_) {
-    if (!arguments.length) return height;
-    height = _;
-    return chart;
-  };
-
-  chart.x = function(_) {
-    if (!arguments.length) return getX;
-    getX = d3.functor(_);
-    return chart;
-  };
-
-  chart.y = function(_) {
-    if (!arguments.length) return getY;
-    getY = d3.functor(_);
-    return chart;
-  };
-
-  chart.xScale = function(_) {
-    if (!arguments.length) return x;
-    x = _;
-    return chart;
-  };
-
-  chart.yScale = function(_) {
-    if (!arguments.length) return y;
-    y = _;
-    return chart;
-  };
-
-  chart.xDomain = function(_) {
-    if (!arguments.length) return xDomain;
-    xDomain = _;
-    return chart;
-  };
-
-  chart.yDomain = function(_) {
-    if (!arguments.length) return yDomain;
-    yDomain = _;
-    return chart;
-  };
-
-  chart.xRange = function(_) {
-    if (!arguments.length) return xRange;
-    xRange = _;
-    return chart;
-  };
-
-  chart.yRange = function(_) {
-    if (!arguments.length) return yRange;
-    yRange = _;
-    return chart;
-  };
-
-  chart.animate = function(_) {
-    if (!arguments.length) return animate;
-    animate = _;
-    return chart;
-  };
-
-  chart.color = function(_) {
-    if (!arguments.length) return color;
-    color = nv.utils.getColor(_);
-    return chart;
-  };
-
-  //============================================================
-
-
-  return chart;
-}
-
-nv.models.sparklinePlus = function() {
-  "use strict";
-  //============================================================
-  // Public Variables with Default Settings
-  //------------------------------------------------------------
-
-  var sparkline = nv.models.sparkline();
-
-  var margin = {top: 15, right: 100, bottom: 10, left: 50}
-    , width = null
-    , height = null
-    , x
-    , y
-    , index = []
-    , paused = false
-    , xTickFormat = d3.format(',r')
-    , yTickFormat = d3.format(',.2f')
-    , showValue = true
-    , alignValue = true
-    , rightAlignValue = false
-    , noData = "No Data Available."
-    ;
-
-  //============================================================
-
-
-  function chart(selection) {
-    selection.each(function(data) {
-      var container = d3.select(this);
-
-      var availableWidth = (width  || parseInt(container.style('width')) || 960)
-                             - margin.left - margin.right,
-          availableHeight = (height || parseInt(container.style('height')) || 400)
-                             - margin.top - margin.bottom;
-
-      
-
-      chart.update = function() { chart(selection) };
-      chart.container = this;
-
-
-      //------------------------------------------------------------
-      // Display No Data message if there's nothing to show.
-
-      if (!data || !data.length) {
-        var noDataText = container.selectAll('.nv-noData').data([noData]);
-
-        noDataText.enter().append('text')
-          .attr('class', 'nvd3 nv-noData')
-          .attr('dy', '-.7em')
-          .style('text-anchor', 'middle');
-
-        noDataText
-          .attr('x', margin.left + availableWidth / 2)
-          .attr('y', margin.top + availableHeight / 2)
-          .text(function(d) { return d });
-
-        return chart;
-      } else {
-        container.selectAll('.nv-noData').remove();
-      }
-
-      var currentValue = sparkline.y()(data[data.length-1], data.length-1);
-
-      //------------------------------------------------------------
-
-
-
-      //------------------------------------------------------------
-      // Setup Scales
-
-      x = sparkline.xScale();
-      y = sparkline.yScale();
-
-      //------------------------------------------------------------
-
-
-      //------------------------------------------------------------
-      // Setup containers and skeleton of chart
-
-      var wrap = container.selectAll('g.nv-wrap.nv-sparklineplus').data([data]);
-      var wrapEnter = wrap.enter().append('g').attr('class', 'nvd3 nv-wrap nv-sparklineplus');
-      var gEnter = wrapEnter.append('g');
-      var g = wrap.select('g');
-
-      gEnter.append('g').attr('class', 'nv-sparklineWrap');
-      gEnter.append('g').attr('class', 'nv-valueWrap');
-      gEnter.append('g').attr('class', 'nv-hoverArea');
-
-      wrap.attr('transform', 'translate(' + margin.left + ',' + margin.top + ')');
-
-      //------------------------------------------------------------
-
-
-      //------------------------------------------------------------
-      // Main Chart Component(s)
-
-      var sparklineWrap = g.select('.nv-sparklineWrap');
-
-      sparkline
-        .width(availableWidth)
-        .height(availableHeight);
-
-      sparklineWrap
-          .call(sparkline);
-
-      //------------------------------------------------------------
-
-
-      var valueWrap = g.select('.nv-valueWrap');
-      
-      var value = valueWrap.selectAll('.nv-currentValue')
-          .data([currentValue]);
-
-      value.enter().append('text').attr('class', 'nv-currentValue')
-          .attr('dx', rightAlignValue ? -8 : 8)
-          .attr('dy', '.9em')
-          .style('text-anchor', rightAlignValue ? 'end' : 'start');
-
-      value
-          .attr('x', availableWidth + (rightAlignValue ? margin.right : 0))
-          .attr('y', alignValue ? function(d) { return y(d) } : 0)
-          .style('fill', sparkline.color()(data[data.length-1], data.length-1))
-          .text(yTickFormat(currentValue));
-
-
-
-      gEnter.select('.nv-hoverArea').append('rect')
-          .on('mousemove', sparklineHover)
-          .on('click', function() { paused = !paused })
-          .on('mouseout', function() { index = []; updateValueLine(); });
-          //.on('mouseout', function() { index = null; updateValueLine(); });
-
-      g.select('.nv-hoverArea rect')
-          .attr('transform', function(d) { return 'translate(' + -margin.left + ',' + -margin.top + ')' })
-          .attr('width', availableWidth + margin.left + margin.right)
-          .attr('height', availableHeight + margin.top);
-
-
-
-      function updateValueLine() { //index is currently global (within the chart), may or may not keep it that way
-        if (paused) return;
-
-        var hoverValue = g.selectAll('.nv-hoverValue').data(index)
-
-        var hoverEnter = hoverValue.enter()
-          .append('g').attr('class', 'nv-hoverValue')
-            .style('stroke-opacity', 0)
-            .style('fill-opacity', 0);
-
-        hoverValue.exit()
-          .transition().duration(250)
-            .style('stroke-opacity', 0)
-            .style('fill-opacity', 0)
-            .remove();
-
-        hoverValue
-            .attr('transform', function(d) { return 'translate(' + x(sparkline.x()(data[d],d)) + ',0)' })
-          .transition().duration(250)
-            .style('stroke-opacity', 1)
-            .style('fill-opacity', 1);
-
-        if (!index.length) return;
-
-        hoverEnter.append('line')
-            .attr('x1', 0)
-            .attr('y1', -margin.top)
-            .attr('x2', 0)
-            .attr('y2', availableHeight);
-
-
-        hoverEnter.append('text').attr('class', 'nv-xValue')
-            .attr('x', -6)
-            .attr('y', -margin.top)
-            .attr('text-anchor', 'end')
-            .attr('dy', '.9em')
-
-
-        g.select('.nv-hoverValue .nv-xValue')
-            .text(xTickFormat(sparkline.x()(data[index[0]], index[0])));
-
-        hoverEnter.append('text').attr('class', 'nv-yValue')
-            .attr('x', 6)
-            .attr('y', -margin.top)
-            .attr('text-anchor', 'start')
-            .attr('dy', '.9em')
-
-        g.select('.nv-hoverValue .nv-yValue')
-            .text(yTickFormat(sparkline.y()(data[index[0]], index[0])));
-
-      }
-
-
-      function sparklineHover() {
-        if (paused) return;
-
-        var pos = d3.mouse(this)[0] - margin.left;
-
-        function getClosestIndex(data, x) {
-          var distance = Math.abs(sparkline.x()(data[0], 0) - x);
-          var closestIndex = 0;
-          for (var i = 0; i < data.length; i++){
-            if (Math.abs(sparkline.x()(data[i], i) - x) < distance) {
-              distance = Math.abs(sparkline.x()(data[i], i) - x);
-              closestIndex = i;
-            }
-          }
-          return closestIndex;
-        }
-
-        index = [getClosestIndex(data, Math.round(x.invert(pos)))];
-
-        updateValueLine();
-      }
-
-    });
-
-    return chart;
-  }
-
-
-  //============================================================
-  // Expose Public Variables
-  //------------------------------------------------------------
-
-  // expose chart's sub-components
-  chart.sparkline = sparkline;
-
-  d3.rebind(chart, sparkline, 'x', 'y', 'xScale', 'yScale', 'color');
-
-  chart.options = nv.utils.optionsFunc.bind(chart);
-  
-  chart.margin = function(_) {
-    if (!arguments.length) return margin;
-    margin.top    = typeof _.top    != 'undefined' ? _.top    : margin.top;
-    margin.right  = typeof _.right  != 'undefined' ? _.right  : margin.right;
-    margin.bottom = typeof _.bottom != 'undefined' ? _.bottom : margin.bottom;
-    margin.left   = typeof _.left   != 'undefined' ? _.left   : margin.left;
-    return chart;
-  };
-
-  chart.width = function(_) {
-    if (!arguments.length) return width;
-    width = _;
-    return chart;
-  };
-
-  chart.height = function(_) {
-    if (!arguments.length) return height;
-    height = _;
-    return chart;
-  };
-
-  chart.xTickFormat = function(_) {
-    if (!arguments.length) return xTickFormat;
-    xTickFormat = _;
-    return chart;
-  };
-
-  chart.yTickFormat = function(_) {
-    if (!arguments.length) return yTickFormat;
-    yTickFormat = _;
-    return chart;
-  };
-
-  chart.showValue = function(_) {
-    if (!arguments.length) return showValue;
-    showValue = _;
-    return chart;
-  };
-
-  chart.alignValue = function(_) {
-    if (!arguments.length) return alignValue;
-    alignValue = _;
-    return chart;
-  };
-
-  chart.rightAlignValue = function(_) {
-    if (!arguments.length) return rightAlignValue;
-    rightAlignValue = _;
-    return chart;
-  };
-
-  chart.noData = function(_) {
-    if (!arguments.length) return noData;
-    noData = _;
-    return chart;
-  };
-
-  //============================================================
-
-
-  return chart;
-}
-
-nv.models.stackedArea = function() {
-  "use strict";
-  //============================================================
-  // Public Variables with Default Settings
-  //------------------------------------------------------------
-
-  var margin = {top: 0, right: 0, bottom: 0, left: 0}
-    , width = 960
-    , height = 500
-    , color = nv.utils.defaultColor() // a function that computes the color
-    , id = Math.floor(Math.random() * 100000) //Create semi-unique ID incase user doesn't selet one
-    , getX = function(d) { return d.x } // accessor to get the x value from a data point
-    , getY = function(d) { return d.y } // accessor to get the y value from a data point
-    , style = 'stack'
-    , offset = 'zero'
-    , order = 'default'
-    , interpolate = 'linear'  // controls the line interpolation
-    , clipEdge = false // if true, masks lines within x and y scale
-    , x //can be accessed via chart.xScale()
-    , y //can be accessed via chart.yScale()
-    , scatter = nv.models.scatter()
-    , dispatch =  d3.dispatch('tooltipShow', 'tooltipHide', 'areaClick', 'areaMouseover', 'areaMouseout')
-    ;
-
-  scatter
-    .size(2.2) // default size
-    .sizeDomain([2.2,2.2]) // all the same size by default
-    ;
-
-  /************************************
-   * offset:
-   *   'wiggle' (stream)
-   *   'zero' (stacked)
-   *   'expand' (normalize to 100%)
-   *   'silhouette' (simple centered)
-   *
-   * order:
-   *   'inside-out' (stream)
-   *   'default' (input order)
-   ************************************/
-
-  //============================================================
-
-
-  function chart(selection) {
-    selection.each(function(data) {
-      var availableWidth = width - margin.left - margin.right,
-          availableHeight = height - margin.top - margin.bottom,
-          container = d3.select(this);
-
-      //------------------------------------------------------------
-      // Setup Scales
-
-      x = scatter.xScale();
-      y = scatter.yScale();
-
-      //------------------------------------------------------------
-
-      var dataRaw = data;
-      // Injecting point index into each point because d3.layout.stack().out does not give index
-      data.forEach(function(aseries, i) {
-        aseries.seriesIndex = i;
-        aseries.values = aseries.values.map(function(d, j) {
-          d.index = j;
-          d.seriesIndex = i;
-          return d;
-        });
-      });
-
-      var dataFiltered = data.filter(function(series) {
-            return !series.disabled;
-      });
-
-      data = d3.layout.stack()
-               .order(order)
-               .offset(offset)
-               .values(function(d) { return d.values })  //TODO: make values customizeable in EVERY model in this fashion
-               .x(getX)
-               .y(getY)
-               .out(function(d, y0, y) {
-                    var yHeight = (getY(d) === 0) ? 0 : y;
-                    d.display = {
-                      y: yHeight,
-                     y0: y0
-                    };
-                })
-              (dataFiltered);
-
-
-      //------------------------------------------------------------
-      // Setup containers and skeleton of chart
-
-      var wrap = container.selectAll('g.nv-wrap.nv-stackedarea').data([data]);
-      var wrapEnter = wrap.enter().append('g').attr('class', 'nvd3 nv-wrap nv-stackedarea');
-      var defsEnter = wrapEnter.append('defs');
-      var gEnter = wrapEnter.append('g');
-      var g = wrap.select('g');
-
-      gEnter.append('g').attr('class', 'nv-areaWrap');
-      gEnter.append('g').attr('class', 'nv-scatterWrap');
-
-      wrap.attr('transform', 'translate(' + margin.left + ',' + margin.top + ')');
-
-      //------------------------------------------------------------
-
-
-      scatter
-        .width(availableWidth)
-        .height(availableHeight)
-        .x(getX)
-        .y(function(d) { return d.display.y + d.display.y0 })
-        .forceY([0])
-        .color(data.map(function(d,i) {
-          return d.color || color(d, d.seriesIndex);
-        }));
-
-
-      var scatterWrap = g.select('.nv-scatterWrap')
-          .datum(data);
-
-      scatterWrap.call(scatter);
-
-      defsEnter.append('clipPath')
-          .attr('id', 'nv-edge-clip-' + id)
-        .append('rect');
-
-      wrap.select('#nv-edge-clip-' + id + ' rect')
-          .attr('width', availableWidth)
-          .attr('height', availableHeight);
-
-      g   .attr('clip-path', clipEdge ? 'url(#nv-edge-clip-' + id + ')' : '');
-
-      var area = d3.svg.area()
-          .x(function(d,i)  { return x(getX(d,i)) })
-          .y0(function(d) {
-              return y(d.display.y0)
-          })
-          .y1(function(d) {
-              return y(d.display.y + d.display.y0)
-          })
-          .interpolate(interpolate);
-
-      var zeroArea = d3.svg.area()
-          .x(function(d,i)  { return x(getX(d,i)) })
-          .y0(function(d) { return y(d.display.y0) })
-          .y1(function(d) { return y(d.display.y0) });
-
-
-      var path = g.select('.nv-areaWrap').selectAll('path.nv-area')
-          .data(function(d) { return d });
-
-      path.enter().append('path').attr('class', function(d,i) { return 'nv-area nv-area-' + i })
-          .attr('d', function(d,i){
-            return zeroArea(d.values, d.seriesIndex);
-          })
-          .on('mouseover', function(d,i) {
-            d3.select(this).classed('hover', true);
-            dispatch.areaMouseover({
-              point: d,
-              series: d.key,
-              pos: [d3.event.pageX, d3.event.pageY],
-              seriesIndex: d.seriesIndex
-            });
-          })
-          .on('mouseout', function(d,i) {
-            d3.select(this).classed('hover', false);
-            dispatch.areaMouseout({
-              point: d,
-              series: d.key,
-              pos: [d3.event.pageX, d3.event.pageY],
-              seriesIndex: d.seriesIndex
-            });
-          })
-          .on('click', function(d,i) {
-            d3.select(this).classed('hover', false);
-            dispatch.areaClick({
-              point: d,
-              series: d.key,
-              pos: [d3.event.pageX, d3.event.pageY],
-              seriesIndex: d.seriesIndex
-            });
-          })
-
-      path.exit().remove();
-
-      path
-          .style('fill', function(d,i){
-            return d.color || color(d, d.seriesIndex)
-          })
-          .style('stroke', function(d,i){ return d.color || color(d, d.seriesIndex) });
-      path.transition()
-          .attr('d', function(d,i) {
-            return area(d.values,i)
-          });
-
-
-
-      //============================================================
-      // Event Handling/Dispatching (in chart's scope)
-      //------------------------------------------------------------
-
-      scatter.dispatch.on('elementMouseover.area', function(e) {
-        g.select('.nv-chart-' + id + ' .nv-area-' + e.seriesIndex).classed('hover', true);
-      });
-      scatter.dispatch.on('elementMouseout.area', function(e) {
-        g.select('.nv-chart-' + id + ' .nv-area-' + e.seriesIndex).classed('hover', false);
-      });
-
-      //============================================================
-      //Special offset functions
-      chart.d3_stackedOffset_stackPercent = function(stackData) {
-          var n = stackData.length,    //How many series
-          m = stackData[0].length,     //how many points per series
-          k = 1 / n,
-           i,
-           j,
-           o,
-           y0 = [];
-
-          for (j = 0; j < m; ++j) { //Looping through all points
-            for (i = 0, o = 0; i < dataRaw.length; i++)  //looping through series'
-                o += getY(dataRaw[i].values[j])   //total value of all points at a certian point in time.
-
-            if (o) for (i = 0; i < n; i++)
-               stackData[i][j][1] /= o;
-            else
-              for (i = 0; i < n; i++)
-               stackData[i][j][1] = k;
-          }
-          for (j = 0; j < m; ++j) y0[j] = 0;
-          return y0;
-      };
-
-    });
-
-
-    return chart;
-  }
-
-
-  //============================================================
-  // Event Handling/Dispatching (out of chart's scope)
-  //------------------------------------------------------------
-
-  scatter.dispatch.on('elementClick.area', function(e) {
-    dispatch.areaClick(e);
-  })
-  scatter.dispatch.on('elementMouseover.tooltip', function(e) {
-        e.pos = [e.pos[0] + margin.left, e.pos[1] + margin.top],
-        dispatch.tooltipShow(e);
-  });
-  scatter.dispatch.on('elementMouseout.tooltip', function(e) {
-        dispatch.tooltipHide(e);
-  });
-
-  //============================================================
-
-  //============================================================
-  // Global getters and setters
-  //------------------------------------------------------------
-
-  chart.dispatch = dispatch;
-  chart.scatter = scatter;
-
-  d3.rebind(chart, scatter, 'interactive', 'size', 'xScale', 'yScale', 'zScale', 'xDomain', 'yDomain', 'xRange', 'yRange',
-    'sizeDomain', 'forceX', 'forceY', 'forceSize', 'clipVoronoi', 'useVoronoi','clipRadius','highlightPoint','clearHighlights');
-
-  chart.options = nv.utils.optionsFunc.bind(chart);
-
-  chart.x = function(_) {
-    if (!arguments.length) return getX;
-    getX = d3.functor(_);
-    return chart;
-  };
-
-  chart.y = function(_) {
-    if (!arguments.length) return getY;
-    getY = d3.functor(_);
-    return chart;
-  }
-
-  chart.margin = function(_) {
-    if (!arguments.length) return margin;
-    margin.top    = typeof _.top    != 'undefined' ? _.top    : margin.top;
-    margin.right  = typeof _.right  != 'undefined' ? _.right  : margin.right;
-    margin.bottom = typeof _.bottom != 'undefined' ? _.bottom : margin.bottom;
-    margin.left   = typeof _.left   != 'undefined' ? _.left   : margin.left;
-    return chart;
-  };
-
-  chart.width = function(_) {
-    if (!arguments.length) return width;
-    width = _;
-    return chart;
-  };
-
-  chart.height = function(_) {
-    if (!arguments.length) return height;
-    height = _;
-    return chart;
-  };
-
-  chart.clipEdge = function(_) {
-    if (!arguments.length) return clipEdge;
-    clipEdge = _;
-    return chart;
-  };
-
-  chart.color = function(_) {
-    if (!arguments.length) return color;
-    color = nv.utils.getColor(_);
-    return chart;
-  };
-
-  chart.offset = function(_) {
-    if (!arguments.length) return offset;
-    offset = _;
-    return chart;
-  };
-
-  chart.order = function(_) {
-    if (!arguments.length) return order;
-    order = _;
-    return chart;
-  };
-
-  //shortcut for offset + order
-  chart.style = function(_) {
-    if (!arguments.length) return style;
-    style = _;
-
-    switch (style) {
-      case 'stack':
-        chart.offset('zero');
-        chart.order('default');
-        break;
-      case 'stream':
-        chart.offset('wiggle');
-        chart.order('inside-out');
-        break;
-      case 'stream-center':
-          chart.offset('silhouette');
-          chart.order('inside-out');
-          break;
-      case 'expand':
-        chart.offset('expand');
-        chart.order('default');
-        break;
-      case 'stack_percent':
-        chart.offset(chart.d3_stackedOffset_stackPercent);
-        chart.order('default');
-        break;
-    }
-
-    return chart;
-  };
-
-  chart.interpolate = function(_) {
-	    if (!arguments.length) return interpolate;
-	    interpolate = _;
-	    return chart;
-  };
-  //============================================================
-
-
-  return chart;
-}
-
-nv.models.stackedAreaChart = function() {
-  "use strict";
-  //============================================================
-  // Public Variables with Default Settings
-  //------------------------------------------------------------
-
-  var stacked = nv.models.stackedArea()
-    , xAxis = nv.models.axis()
-    , yAxis = nv.models.axis()
-    , legend = nv.models.legend()
-    , controls = nv.models.legend()
-    , interactiveLayer = nv.interactiveGuideline()
-    ;
-
-  var margin = {top: 30, right: 25, bottom: 50, left: 60}
-    , width = null
-    , height = null
-    , color = nv.utils.defaultColor() // a function that takes in d, i and returns color
-    , showControls = true
-    , showLegend = true
-    , showXAxis = true
-    , showYAxis = true
-    , rightAlignYAxis = false
-    , useInteractiveGuideline = false
-    , tooltips = true
-    , tooltip = function(key, x, y, e, graph) {
-        return '<h3>' + key + '</h3>' +
-               '<p>' +  y + ' on ' + x + '</p>'
-      }
-    , x //can be accessed via chart.xScale()
-    , y //can be accessed via chart.yScale()
-    , yAxisTickFormat = d3.format(',.2f')
-    , state = { style: stacked.style() }
-    , defaultState = null
-    , noData = 'No Data Available.'
-    , dispatch = d3.dispatch('tooltipShow', 'tooltipHide', 'stateChange', 'changeState')
-    , controlWidth = 250
-    , cData = ['Stacked','Stream','Expanded']
-    , controlLabels = {}
-    , transitionDuration = 250
-    ;
-
-  xAxis
-    .orient('bottom')
-    .tickPadding(7)
-    ;
-  yAxis
-    .orient((rightAlignYAxis) ? 'right' : 'left')
-    ;
-
-  controls.updateState(false);
-  //============================================================
-
-
-  //============================================================
-  // Private Variables
-  //------------------------------------------------------------
-
-  var showTooltip = function(e, offsetElement) {
-    var left = e.pos[0] + ( offsetElement.offsetLeft || 0 ),
-        top = e.pos[1] + ( offsetElement.offsetTop || 0),
-        x = xAxis.tickFormat()(stacked.x()(e.point, e.pointIndex)),
-        y = yAxis.tickFormat()(stacked.y()(e.point, e.pointIndex)),
-        content = tooltip(e.series.key, x, y, e, chart);
-
-    nv.tooltip.show([left, top], content, e.value < 0 ? 'n' : 's', null, offsetElement);
-  };
-
-  //============================================================
-
-
-  function chart(selection) {
-    selection.each(function(data) {
-      var container = d3.select(this),
-          that = this;
-
-      var availableWidth = (width  || parseInt(container.style('width')) || 960)
-                             - margin.left - margin.right,
-          availableHeight = (height || parseInt(container.style('height')) || 400)
-                             - margin.top - margin.bottom;
-
-      chart.update = function() { container.transition().duration(transitionDuration).call(chart); };
-      chart.container = this;
-
-      //set state.disabled
-      state.disabled = data.map(function(d) { return !!d.disabled });
-
-      if (!defaultState) {
-        var key;
-        defaultState = {};
-        for (key in state) {
-          if (state[key] instanceof Array)
-            defaultState[key] = state[key].slice(0);
-          else
-            defaultState[key] = state[key];
-        }
-      }
-
-      //------------------------------------------------------------
-      // Display No Data message if there's nothing to show.
-
-      if (!data || !data.length || !data.filter(function(d) { return d.values.length }).length) {
-        var noDataText = container.selectAll('.nv-noData').data([noData]);
-
-        noDataText.enter().append('text')
-          .attr('class', 'nvd3 nv-noData')
-          .attr('dy', '-.7em')
-          .style('text-anchor', 'middle');
-
-        noDataText
-          .attr('x', margin.left + availableWidth / 2)
-          .attr('y', margin.top + availableHeight / 2)
-          .text(function(d) { return d });
-
-        return chart;
-      } else {
-        container.selectAll('.nv-noData').remove();
-      }
-
-      //------------------------------------------------------------
-
-
-      //------------------------------------------------------------
-      // Setup Scales
-
-      x = stacked.xScale();
-      y = stacked.yScale();
-
-      //------------------------------------------------------------
-
-
-      //------------------------------------------------------------
-      // Setup containers and skeleton of chart
-
-      var wrap = container.selectAll('g.nv-wrap.nv-stackedAreaChart').data([data]);
-      var gEnter = wrap.enter().append('g').attr('class', 'nvd3 nv-wrap nv-stackedAreaChart').append('g');
-      var g = wrap.select('g');
-
-      gEnter.append("rect").style("opacity",0);
-      gEnter.append('g').attr('class', 'nv-x nv-axis');
-      gEnter.append('g').attr('class', 'nv-y nv-axis');
-      gEnter.append('g').attr('class', 'nv-stackedWrap');
-      gEnter.append('g').attr('class', 'nv-legendWrap');
-      gEnter.append('g').attr('class', 'nv-controlsWrap');
-      gEnter.append('g').attr('class', 'nv-interactive');
-
-      g.select("rect").attr("width",availableWidth).attr("height",availableHeight);
-      //------------------------------------------------------------
-      // Legend
-
-      if (showLegend) {
-        var legendWidth = (showControls) ? availableWidth - controlWidth : availableWidth;
-        legend
-          .width(legendWidth);
-
-        g.select('.nv-legendWrap')
-            .datum(data)
-            .call(legend);
-
-        if ( margin.top != legend.height()) {
-          margin.top = legend.height();
-          availableHeight = (height || parseInt(container.style('height')) || 400)
-                             - margin.top - margin.bottom;
-        }
-
-        g.select('.nv-legendWrap')
-            .attr('transform', 'translate(' + (availableWidth-legendWidth) + ',' + (-margin.top) +')');
-      }
-
-      //------------------------------------------------------------
-
-
-      //------------------------------------------------------------
-      // Controls
-
-      if (showControls) {
-        var controlsData = [
-          {
-            key: controlLabels.stacked || 'Stacked',
-            metaKey: 'Stacked',
-            disabled: stacked.style() != 'stack',
-            style: 'stack'
-          },
-          {
-            key: controlLabels.stream || 'Stream',
-            metaKey: 'Stream',
-            disabled: stacked.style() != 'stream',
-            style: 'stream'
-          },
-          {
-            key: controlLabels.expanded || 'Expanded',
-            metaKey: 'Expanded',
-            disabled: stacked.style() != 'expand',
-            style: 'expand'
-          },
-          {
-            key: controlLabels.stack_percent || 'Stack %',
-            metaKey: 'Stack_Percent',
-            disabled: stacked.style() != 'stack_percent',
-            style: 'stack_percent'
-          }
-        ];
-
-        controlWidth = (cData.length/3) * 260;
-
-        controlsData = controlsData.filter(function(d) {
-          return cData.indexOf(d.metaKey) !== -1;
-        })
-
-        controls
-          .width( controlWidth )
-          .color(['#444', '#444', '#444']);
-
-        g.select('.nv-controlsWrap')
-            .datum(controlsData)
-            .call(controls);
-
-
-        if ( margin.top != Math.max(controls.height(), legend.height()) ) {
-          margin.top = Math.max(controls.height(), legend.height());
-          availableHeight = (height || parseInt(container.style('height')) || 400)
-                             - margin.top - margin.bottom;
-        }
-
-
-        g.select('.nv-controlsWrap')
-            .attr('transform', 'translate(0,' + (-margin.top) +')');
-      }
-
-      //------------------------------------------------------------
-
-
-      wrap.attr('transform', 'translate(' + margin.left + ',' + margin.top + ')');
-
-      if (rightAlignYAxis) {
-          g.select(".nv-y.nv-axis")
-              .attr("transform", "translate(" + availableWidth + ",0)");
-      }
-
-      //------------------------------------------------------------
-      // Main Chart Component(s)
-
-      //------------------------------------------------------------
-      //Set up interactive layer
-      if (useInteractiveGuideline) {
-        interactiveLayer
-           .width(availableWidth)
-           .height(availableHeight)
-           .margin({left: margin.left, top: margin.top})
-           .svgContainer(container)
-           .xScale(x);
-        wrap.select(".nv-interactive").call(interactiveLayer);
-      }
-
-      stacked
-        .width(availableWidth)
-        .height(availableHeight)
-
-      var stackedWrap = g.select('.nv-stackedWrap')
-          .datum(data);
-
-      stackedWrap.transition().call(stacked);
-
-      //------------------------------------------------------------
-
-
-      //------------------------------------------------------------
-      // Setup Axes
-
-      if (showXAxis) {
-        xAxis
-          .scale(x)
-          .ticks( availableWidth / 100 )
-          .tickSize( -availableHeight, 0);
-
-        g.select('.nv-x.nv-axis')
-            .attr('transform', 'translate(0,' + availableHeight + ')');
-
-        g.select('.nv-x.nv-axis')
-          .transition().duration(0)
-            .call(xAxis);
-      }
-
-      if (showYAxis) {
-        yAxis
-          .scale(y)
-          .ticks(stacked.offset() == 'wiggle' ? 0 : availableHeight / 36)
-          .tickSize(-availableWidth, 0)
-          .setTickFormat( (stacked.style() == 'expand' || stacked.style() == 'stack_percent')
-                ? d3.format('%') : yAxisTickFormat);
-
-        g.select('.nv-y.nv-axis')
-          .transition().duration(0)
-            .call(yAxis);
-      }
-
-      //------------------------------------------------------------
-
-
-      //============================================================
-      // Event Handling/Dispatching (in chart's scope)
-      //------------------------------------------------------------
-
-      stacked.dispatch.on('areaClick.toggle', function(e) {
-        if (data.filter(function(d) { return !d.disabled }).length === 1)
-          data.forEach(function(d) {
-            d.disabled = false;
-          });
-        else
-          data.forEach(function(d,i) {
-            d.disabled = (i != e.seriesIndex);
-          });
-
-        state.disabled = data.map(function(d) { return !!d.disabled });
-        dispatch.stateChange(state);
-
-        chart.update();
-      });
-
-      legend.dispatch.on('stateChange', function(newState) {
-        state.disabled = newState.disabled;
-        dispatch.stateChange(state);
-        chart.update();
-      });
-
-      controls.dispatch.on('legendClick', function(d,i) {
-        if (!d.disabled) return;
-
-        controlsData = controlsData.map(function(s) {
-          s.disabled = true;
-          return s;
-        });
-        d.disabled = false;
-
-        stacked.style(d.style);
-
-
-        state.style = stacked.style();
-        dispatch.stateChange(state);
-
-        chart.update();
-      });
-
-
-      interactiveLayer.dispatch.on('elementMousemove', function(e) {
-          stacked.clearHighlights();
-          var singlePoint, pointIndex, pointXLocation, allData = [];
-          data
-          .filter(function(series, i) {
-            series.seriesIndex = i;
-            return !series.disabled;
-          })
-          .forEach(function(series,i) {
-              pointIndex = nv.interactiveBisect(series.values, e.pointXValue, chart.x());
-              stacked.highlightPoint(i, pointIndex, true);
-              var point = series.values[pointIndex];
-              if (typeof point === 'undefined') return;
-              if (typeof singlePoint === 'undefined') singlePoint = point;
-              if (typeof pointXLocation === 'undefined') pointXLocation = chart.xScale()(chart.x()(point,pointIndex));
-
-              //If we are in 'expand' mode, use the stacked percent value instead of raw value.
-              var tooltipValue = (stacked.style() == 'expand') ? point.display.y : chart.y()(point,pointIndex);
-              allData.push({
-                  key: series.key,
-                  value: tooltipValue,
-                  color: color(series,series.seriesIndex),
-                  stackedValue: point.display
-              });
-          });
-
-          allData.reverse();
-
-          //Highlight the tooltip entry based on which stack the mouse is closest to.
-          if (allData.length > 2) {
-            var yValue = chart.yScale().invert(e.mouseY);
-            var yDistMax = Infinity, indexToHighlight = null;
-            allData.forEach(function(series,i) {
-
-               //To handle situation where the stacked area chart is negative, we need to use absolute values
-               //when checking if the mouse Y value is within the stack area.
-               yValue = Math.abs(yValue);
-               var stackedY0 = Math.abs(series.stackedValue.y0);
-               var stackedY = Math.abs(series.stackedValue.y);
-               if ( yValue >= stackedY0 && yValue <= (stackedY + stackedY0))
-               {
-                  indexToHighlight = i;
-                  return;
-               }
-            });
-            if (indexToHighlight != null)
-               allData[indexToHighlight].highlight = true;
-          }
-
-          var xValue = xAxis.tickFormat()(chart.x()(singlePoint,pointIndex));
-
-          //If we are in 'expand' mode, force the format to be a percentage.
-          var valueFormatter = (stacked.style() == 'expand') ?
-               function(d,i) {return d3.format(".1%")(d);} :
-               function(d,i) {return yAxis.tickFormat()(d); };
-          interactiveLayer.tooltip
-                  .position({left: pointXLocation + margin.left, top: e.mouseY + margin.top})
-                  .chartContainer(that.parentNode)
-                  .enabled(tooltips)
-                  .valueFormatter(valueFormatter)
-                  .data(
-                      {
-                        value: xValue,
-                        series: allData
-                      }
-                  )();
-
-          interactiveLayer.renderGuideLine(pointXLocation);
-
-      });
-
-      interactiveLayer.dispatch.on("elementMouseout",function(e) {
-          dispatch.tooltipHide();
-          stacked.clearHighlights();
-      });
-
-
-      dispatch.on('tooltipShow', function(e) {
-        if (tooltips) showTooltip(e, that.parentNode);
-      });
-
-      // Update chart from a state object passed to event handler
-      dispatch.on('changeState', function(e) {
-
-        if (typeof e.disabled !== 'undefined') {
-          data.forEach(function(series,i) {
-            series.disabled = e.disabled[i];
-          });
-
-          state.disabled = e.disabled;
-        }
-
-        if (typeof e.style !== 'undefined') {
-          stacked.style(e.style);
-        }
-
-        chart.update();
-      });
-
-    });
-
-
-    return chart;
-  }
-
-
-  //============================================================
-  // Event Handling/Dispatching (out of chart's scope)
-  //------------------------------------------------------------
-
-  stacked.dispatch.on('tooltipShow', function(e) {
-    //disable tooltips when value ~= 0
-    //// TODO: consider removing points from voronoi that have 0 value instead of this hack
-    /*
-    if (!Math.round(stacked.y()(e.point) * 100)) {  // 100 will not be good for very small numbers... will have to think about making this valu dynamic, based on data range
-      setTimeout(function() { d3.selectAll('.point.hover').classed('hover', false) }, 0);
-      return false;
-    }
-   */
-
-    e.pos = [e.pos[0] + margin.left, e.pos[1] + margin.top],
-    dispatch.tooltipShow(e);
-  });
-
-  stacked.dispatch.on('tooltipHide', function(e) {
-    dispatch.tooltipHide(e);
-  });
-
-  dispatch.on('tooltipHide', function() {
-    if (tooltips) nv.tooltip.cleanup();
-  });
-
-  //============================================================
-
-
-  //============================================================
-  // Expose Public Variables
-  //------------------------------------------------------------
-
-  // expose chart's sub-components
-  chart.dispatch = dispatch;
-  chart.stacked = stacked;
-  chart.legend = legend;
-  chart.controls = controls;
-  chart.xAxis = xAxis;
-  chart.yAxis = yAxis;
-  chart.interactiveLayer = interactiveLayer;
-
-  d3.rebind(chart, stacked, 'x', 'y', 'size', 'xScale', 'yScale', 'xDomain', 'yDomain', 'xRange', 'yRange', 'sizeDomain', 'interactive', 'useVoronoi', 'offset', 'order', 'style', 'clipEdge', 'forceX', 'forceY', 'forceSize', 'interpolate');
-
-  chart.options = nv.utils.optionsFunc.bind(chart);
-
-  chart.margin = function(_) {
-    if (!arguments.length) return margin;
-    margin.top    = typeof _.top    != 'undefined' ? _.top    : margin.top;
-    margin.right  = typeof _.right  != 'undefined' ? _.right  : margin.right;
-    margin.bottom = typeof _.bottom != 'undefined' ? _.bottom : margin.bottom;
-    margin.left   = typeof _.left   != 'undefined' ? _.left   : margin.left;
-    return chart;
-  };
-
-  chart.width = function(_) {
-    if (!arguments.length) return width;
-    width = _;
-    return chart;
-  };
-
-  chart.height = function(_) {
-    if (!arguments.length) return height;
-    height = _;
-    return chart;
-  };
-
-  chart.color = function(_) {
-    if (!arguments.length) return color;
-    color = nv.utils.getColor(_);
-    legend.color(color);
-    stacked.color(color);
-    return chart;
-  };
-
-  chart.showControls = function(_) {
-    if (!arguments.length) return showControls;
-    showControls = _;
-    return chart;
-  };
-
-  chart.showLegend = function(_) {
-    if (!arguments.length) return showLegend;
-    showLegend = _;
-    return chart;
-  };
-
-  chart.showXAxis = function(_) {
-    if (!arguments.length) return showXAxis;
-    showXAxis = _;
-    return chart;
-  };
-
-  chart.showYAxis = function(_) {
-    if (!arguments.length) return showYAxis;
-    showYAxis = _;
-    return chart;
-  };
-
-  chart.rightAlignYAxis = function(_) {
-    if(!arguments.length) return rightAlignYAxis;
-    rightAlignYAxis = _;
-    yAxis.orient( (_) ? 'right' : 'left');
-    return chart;
-  };
-
-  chart.useInteractiveGuideline = function(_) {
-    if(!arguments.length) return useInteractiveGuideline;
-    useInteractiveGuideline = _;
-    if (_ === true) {
-       chart.interactive(false);
-       chart.useVoronoi(false);
-    }
-    return chart;
-  };
-
-  chart.tooltip = function(_) {
-    if (!arguments.length) return tooltip;
-    tooltip = _;
-    return chart;
-  };
-
-  chart.tooltips = function(_) {
-    if (!arguments.length) return tooltips;
-    tooltips = _;
-    return chart;
-  };
-
-  chart.tooltipContent = function(_) {
-    if (!arguments.length) return tooltip;
-    tooltip = _;
-    return chart;
-  };
-
-  chart.state = function(_) {
-    if (!arguments.length) return state;
-    state = _;
-    return chart;
-  };
-
-  chart.defaultState = function(_) {
-    if (!arguments.length) return defaultState;
-    defaultState = _;
-    return chart;
-  };
-
-  chart.noData = function(_) {
-    if (!arguments.length) return noData;
-    noData = _;
-    return chart;
-  };
-
-  chart.transitionDuration = function(_) {
-    if (!arguments.length) return transitionDuration;
-    transitionDuration = _;
-    return chart;
-  };
-
-  chart.controlsData = function(_) {
-    if (!arguments.length) return cData;
-    cData = _;
-    return chart;
-  };
-
-  chart.controlLabels = function(_) {
-    if (!arguments.length) return controlLabels;
-    if (typeof _ !== 'object') return controlLabels;
-    controlLabels = _;
-    return chart;
-  };
-
-  yAxis.setTickFormat = yAxis.tickFormat;
-
-  yAxis.tickFormat = function(_) {
-    if (!arguments.length) return yAxisTickFormat;
-    yAxisTickFormat = _;
-    return yAxis;
-  };
-
-
-  //============================================================
-
-  return chart;
-}
-})();
\ No newline at end of file
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/nv.d3.min.css b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/nv.d3.min.css
deleted file mode 100755
index e69de29b..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/nv.d3.min.css
+++ /dev/null
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/nv.d3.min.js b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/nv.d3.min.js
deleted file mode 100755
index e6712797..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/nv.d3.min.js
+++ /dev/null
@@ -1,6 +0,0 @@
-(function(){function t(e,t){return(new Date(t,e+1,0)).getDate()}function n(e,t,n){return function(r,i,s){var o=e(r),u=[];o<r&&t(o);if(s>1)while(o<i){var a=new Date(+o);n(a)%s===0&&u.push(a),t(o)}else while(o<i)u.push(new Date(+o)),t(o);return u}}var e=window.nv||{};e.version="1.1.15b",e.dev=!0,window.nv=e,e.tooltip=e.tooltip||{},e.utils=e.utils||{},e.models=e.models||{},e.charts={},e.graphs=[],e.logs={},e.dispatch=d3.dispatch("render_start","render_end"),e.dev&&(e.dispatch.on("render_start",function(t){e.logs.startTime=+(new Date)}),e.dispatch.on("render_end",function(t){e.logs.endTime=+(new Date),e.logs.totalTime=e.logs.endTime-e.logs.startTime,e.log("total",e.logs.totalTime)})),e.log=function(){if(e.dev&&console.log&&console.log.apply)console.log.apply(console,arguments);else if(e.dev&&typeof console.log=="function"&&Function.prototype.bind){var t=Function.prototype.bind.call(console.log,console);t.apply(console,arguments)}return arguments[arguments.length-1]},e.render=function(n){n=n||1,e.render.active=!0,e.dispatch.render_start(),setTimeout(function(){var t,r;for(var i=0;i<n&&(r=e.render.queue[i]);i++)t=r.generate(),typeof r.callback==typeof Function&&r.callback(t),e.graphs.push(t);e.render.queue.splice(0,i),e.render.queue.length?setTimeout(arguments.callee,0):(e.dispatch.render_end(),e.render.active=!1)},0)},e.render.active=!1,e.render.queue=[],e.addGraph=function(t){typeof arguments[0]==typeof Function&&(t={generate:arguments[0],callback:arguments[1]}),e.render.queue.push(t),e.render.active||e.render()},e.identity=function(e){return e},e.strip=function(e){return e.replace(/(\s|&)/g,"")},d3.time.monthEnd=function(e){return new Date(e.getFullYear(),e.getMonth(),0)},d3.time.monthEnds=n(d3.time.monthEnd,function(e){e.setUTCDate(e.getUTCDate()+1),e.setDate(t(e.getMonth()+1,e.getFullYear()))},function(e){return e.getMonth()}),e.interactiveGuideline=function(){"use strict";function c(o){o.each(function(o){function g(){var e=d3.mouse(this),n=e[0],r=e[1],o=!0,a=!1;l&&(n=d3.event.offsetX,r=d3.event.offsetY,d3.event.target.tagName!=="svg"&&(o=!1),d3.event.target.className.baseVal.match("nv-legend")&&(a=!0)),o&&(n-=i.left,r-=i.top);if(n<0||r<0||n>p||r>d||d3.event.relatedTarget&&d3.event.relatedTarget.ownerSVGElement===undefined||a){if(l&&d3.event.relatedTarget&&d3.event.relatedTarget.ownerSVGElement===undefined&&d3.event.relatedTarget.className.match(t.nvPointerEventsClass))return;u.elementMouseout({mouseX:n,mouseY:r}),c.renderGuideLine(null);return}var f=s.invert(n);u.elementMousemove({mouseX:n,mouseY:r,pointXValue:f}),d3.event.type==="dblclick"&&u.elementDblclick({mouseX:n,mouseY:r,pointXValue:f})}var h=d3.select(this),p=n||960,d=r||400,v=h.selectAll("g.nv-wrap.nv-interactiveLineLayer").data([o]),m=v.enter().append("g").attr("class"," nv-wrap nv-interactiveLineLayer");m.append("g").attr("class","nv-interactiveGuideLine");if(!f)return;f.on("mousemove",g,!0).on("mouseout",g,!0).on("dblclick",g),c.renderGuideLine=function(t){if(!a)return;var n=v.select(".nv-interactiveGuideLine").selectAll("line").data(t!=null?[e.utils.NaNtoZero(t)]:[],String);n.enter().append("line").attr("class","nv-guideline").attr("x1",function(e){return e}).attr("x2",function(e){return e}).attr("y1",d).attr("y2",0),n.exit().remove()}})}var t=e.models.tooltip(),n=null,r=null,i={left:0,top:0},s=d3.scale.linear(),o=d3.scale.linear(),u=d3.dispatch("elementMousemove","elementMouseout","elementDblclick"),a=!0,f=null,l=navigator.userAgent.indexOf("MSIE")!==-1;return c.dispatch=u,c.tooltip=t,c.margin=function(e){return arguments.length?(i.top=typeof e.top!="undefined"?e.top:i.top,i.left=typeof e.left!="undefined"?e.left:i.left,c):i},c.width=function(e){return arguments.length?(n=e,c):n},c.height=function(e){return arguments.length?(r=e,c):r},c.xScale=function(e){return arguments.length?(s=e,c):s},c.showGuideLine=function(e){return arguments.length?(a=e,c):a},c.svgContainer=function(e){return arguments.length?(f=e,c):f},c},e.interactiveBisect=function(e,t,n){"use strict";if(!e instanceof Array)return null;typeof n!="function"&&(n=function(e,t){return e.x});var r=d3.bisector(n).left,i=d3.max([0,r(e,t)-1]),s=n(e[i],i);typeof s=="undefined"&&(s=i);if(s===t)return i;var o=d3.min([i+1,e.length-1]),u=n(e[o],o);return typeof u=="undefined"&&(u=o),Math.abs(u-t)>=Math.abs(s-t)?i:o},e.nearestValueIndex=function(e,t,n){"use strict";var r=Infinity,i=null;return e.forEach(function(e,s){var o=Math.abs(t-e);o<=r&&o<n&&(r=o,i=s)}),i},function(){"use strict";window.nv.tooltip={},window.nv.models.tooltip=function(){function y(){if(a){var e=d3.select(a);e.node().tagName!=="svg"&&(e=e.select("svg"));var t=e.node()?e.attr("viewBox"):null;if(t){t=t.split(" ");var n=parseInt(e.style("width"))/t[2];l.left=l.left*n,l.top=l.top*n}}}function b(e){var t;a?t=d3.select(a):t=d3.select("body");var n=t.select(".nvtooltip");return n.node()===null&&(n=t.append("div").attr("class","nvtooltip "+(u?u:"xy-tooltip")).attr("id",h)),n.node().innerHTML=e,n.style("top",0).style("left",0).style("opacity",0),n.selectAll("div, table, td, tr").classed(p,!0),n.classed(p,!0),n.node()}function w(){if(!c)return;if(!g(n))return;y();var t=l.left,u=o!=null?o:l.top,h=b(m(n));f=h;if(a){var p=a.getElementsByTagName("svg")[0],d=p?p.getBoundingClientRect():a.getBoundingClientRect(),v={left:0,top:0};if(p){var E=p.getBoundingClientRect(),S=a.getBoundingClientRect(),x=E.top;if(x<0){var T=a.getBoundingClientRect();x=Math.abs(x)>T.height?0:x}v.top=Math.abs(x-S.top),v.left=Math.abs(E.left-S.left)}t+=a.offsetLeft+v.left-2*a.scrollLeft,u+=a.offsetTop+v.top-2*a.scrollTop}return s&&s>0&&(u=Math.floor(u/s)*s),e.tooltip.calcTooltipPosition([t,u],r,i,h),w}var t=null,n=null,r="w",i=50,s=25,o=null,u=null,a=null,f=null,l={left:null,top:null},c=!0,h="nvtooltip-"+Math.floor(Math.random()*1e5),p="nv-pointer-events-none",d=function(e,t){return e},v=function(e){return e},m=function(e){if(t!=null)return t;if(e==null)return"";var n=d3.select(document.createElement("table")),r=n.selectAll("thead").data([e]).enter().append("thead");r.append("tr").append("td").attr("colspan",3).append("strong").classed("x-value",!0).html(v(e.value));var i=n.selectAll("tbody").data([e]).enter().append("tbody"),s=i.selectAll("tr").data(function(e){return e.series}).enter().append("tr").classed("highlight",function(e){return e.highlight});s.append("td").classed("legend-color-guide",!0).append("div").style("background-color",function(e){return e.color}),s.append("td").classed("key",!0).html(function(e){return e.key}),s.append("td").classed("value",!0).html(function(e,t){return d(e.value,t)}),s.selectAll("td").each(function(e){if(e.highlight){var t=d3.scale.linear().domain([0,1]).range(["#fff",e.color]),n=.6;d3.select(this).style("border-bottom-color",t(n)).style("border-top-color",t(n))}});var o=n.node().outerHTML;return e.footer!==undefined&&(o+="<div class='footer'>"+e.footer+"</div>"),o},g=function(e){return e&&e.series&&e.series.length>0?!0:!1};return w.nvPointerEventsClass=p,w.content=function(e){return arguments.length?(t=e,w):t},w.tooltipElem=function(){return f},w.contentGenerator=function(e){return arguments.length?(typeof e=="function"&&(m=e),w):m},w.data=function(e){return arguments.length?(n=e,w):n},w.gravity=function(e){return arguments.length?(r=e,w):r},w.distance=function(e){return arguments.length?(i=e,w):i},w.snapDistance=function(e){return arguments.length?(s=e,w):s},w.classes=function(e){return arguments.length?(u=e,w):u},w.chartContainer=function(e){return arguments.length?(a=e,w):a},w.position=function(e){return arguments.length?(l.left=typeof e.left!="undefined"?e.left:l.left,l.top=typeof e.top!="undefined"?e.top:l.top,w):l},w.fixedTop=function(e){return arguments.length?(o=e,w):o},w.enabled=function(e){return arguments.length?(c=e,w):c},w.valueFormatter=function(e){return arguments.length?(typeof e=="function"&&(d=e),w):d},w.headerFormatter=function(e){return arguments.length?(typeof e=="function"&&(v=e),w):v},w.id=function(){return h},w},e.tooltip.show=function(t,n,r,i,s,o){var u=document.createElement("div");u.className="nvtooltip "+(o?o:"xy-tooltip");var a=s;if(!s||s.tagName.match(/g|svg/i))a=document.getElementsByTagName("body")[0];u.style.left=0,u.style.top=0,u.style.opacity=0,u.innerHTML=n,a.appendChild(u),s&&(t[0]=t[0]-s.scrollLeft,t[1]=t[1]-s.scrollTop),e.tooltip.calcTooltipPosition(t,r,i,u)},e.tooltip.findFirstNonSVGParent=function(e){while(e.tagName.match(/^g|svg$/i)!==null)e=e.parentNode;return e},e.tooltip.findTotalOffsetTop=function(e,t){var n=t;do isNaN(e.offsetTop)||(n+=e.offsetTop);while(e=e.offsetParent);return n},e.tooltip.findTotalOffsetLeft=function(e,t){var n=t;do isNaN(e.offsetLeft)||(n+=e.offsetLeft);while(e=e.offsetParent);return n},e.tooltip.calcTooltipPosition=function(t,n,r,i){var s=parseInt(i.offsetHeight),o=parseInt(i.offsetWidth),u=e.utils.windowSize().width,a=e.utils.windowSize().height,f=window.pageYOffset,l=window.pageXOffset,c,h;a=window.innerWidth>=document.body.scrollWidth?a:a-16,u=window.innerHeight>=document.body.scrollHeight?u:u-16,n=n||"s",r=r||20;var p=function(t){return e.tooltip.findTotalOffsetTop(t,h)},d=function(t){return e.tooltip.findTotalOffsetLeft(t,c)};switch(n){case"e":c=t[0]-o-r,h=t[1]-s/2;var v=d(i),m=p(i);v<l&&(c=t[0]+r>l?t[0]+r:l-v+c),m<f&&(h=f-m+h),m+s>f+a&&(h=f+a-m+h-s);break;case"w":c=t[0]+r,h=t[1]-s/2;var v=d(i),m=p(i);v+o>u&&(c=t[0]-o-r),m<f&&(h=f+5),m+s>f+a&&(h=f+a-m+h-s);break;case"n":c=t[0]-o/2-5,h=t[1]+r;var v=d(i),m=p(i);v<l&&(c=l+5),v+o>u&&(c=c-o/2+5),m+s>f+a&&(h=f+a-m+h-s);break;case"s":c=t[0]-o/2,h=t[1]-s-r;var v=d(i),m=p(i);v<l&&(c=l+5),v+o>u&&(c=c-o/2+5),f>m&&(h=f);break;case"none":c=t[0],h=t[1]-r;var v=d(i),m=p(i)}return i.style.left=c+"px",i.style.top=h+"px",i.style.opacity=1,i.style.position="absolute",i},e.tooltip.cleanup=function(){var e=document.getElementsByClassName("nvtooltip"),t=[];while(e.length)t.push(e[0]),e[0].style.transitionDelay="0 !important",e[0].style.opacity=0,e[0].className="nvtooltip-pending-removal";setTimeout(function(){while(t.length){var e=t.pop();e.parentNode.removeChild(e)}},500)}}(),e.utils.windowSize=function(){var e={width:640,height:480};return document.body&&document.body.offsetWidth&&(e.width=document.body.offsetWidth,e.height=document.body.offsetHeight),document.compatMode=="CSS1Compat"&&document.documentElement&&document.documentElement.offsetWidth&&(e.width=document.documentElement.offsetWidth,e.height=document.documentElement.offsetHeight),window.innerWidth&&window.innerHeight&&(e.width=window.innerWidth,e.height=window.innerHeight),e},e.utils.windowResize=function(e){if(e===undefined)return;var t=window.onresize;window.onresize=function(n){typeof t=="function"&&t(n),e(n)}},e.utils.getColor=function(t){return arguments.length?Object.prototype.toString.call(t)==="[object Array]"?function(e,n){return e.color||t[n%t.length]}:t:e.utils.defaultColor()},e.utils.defaultColor=function(){var e=d3.scale.category20().range();return function(t,n){return t.color||e[n%e.length]}},e.utils.customTheme=function(e,t,n){t=t||function(e){return e.key},n=n||d3.scale.category20().range();var r=n.length;return function(i,s){var o=t(i);return r||(r=n.length),typeof e[o]!="undefined"?typeof e[o]=="function"?e[o]():e[o]:n[--r]}},e.utils.pjax=function(t,n){function r(r){d3.html(r,function(r){var i=d3.select(n).node();i.parentNode.replaceChild(d3.select(r).select(n).node(),i),e.utils.pjax(t,n)})}d3.selectAll(t).on("click",function(){history.pushState(this.href,this.textContent,this.href),r(this.href),d3.event.preventDefault()}),d3.select(window).on("popstate",function(){d3.event.state&&r(d3.event.state)})},e.utils.calcApproxTextWidth=function(e){if(e instanceof d3.selection){var t=parseInt(e.style("font-size").replace("px","")),n=e.text().length;return n*t*.5}return 0},e.utils.NaNtoZero=function(e){return typeof e!="number"||isNaN(e)||e===null||e===Infinity?0:e},e.utils.optionsFunc=function(e){return e&&d3.map(e).forEach(function(e,t){typeof this[e]=="function"&&this[e](t)}.bind(this)),this},e.models.axis=function(){"use strict";function m(e){return e.each(function(e){var i=d3.select(this),m=i.selectAll("g.nv-wrap.nv-axis").data([e]),g=m.enter().append("g").attr("class","nvd3 nv-wrap nv-axis"),y=g.append("g"),b=m.select("g");p!==null?t.ticks(p):(t.orient()=="top"||t.orient()=="bottom")&&t.ticks(Math.abs(s.range()[1]-s.range()[0])/100),b.transition().call(t),v=v||t.scale();var w=t.tickFormat();w==null&&(w=v.tickFormat());var E=b.selectAll("text.nv-axislabel").data([o||null]);E.exit().remove();switch(t.orient()){case"top":E.enter().append("text").attr("class","nv-axislabel");var S=s.range().length==2?s.range()[1]:s.range()[s.range().length-1]+(s.range()[1]-s.range()[0]);E.attr("text-anchor","middle").attr("y",0).attr("x",S/2);if(u){var x=m.selectAll("g.nv-axisMaxMin").data(s.domain());x.enter().append("g").attr("class","nv-axisMaxMin").append("text"),x.exit().remove(),x.attr("transform",function(e,t){return"translate("+s(e)+",0)"}).select("text").attr("dy","-0.5em").attr("y",-t.tickPadding()).attr("text-anchor","middle").text(function(e,t){var n=w(e);return(""+n).match("NaN")?"":n}),x.transition().attr("transform",function(e,t){return"translate("+s.range()[t]+",0)"})}break;case"bottom":var T=36,N=30,C=b.selectAll("g").select("text");if(f%360){C.each(function(e,t){var n=this.getBBox().width;n>N&&(N=n)});var k=Math.abs(Math.sin(f*Math.PI/180)),T=(k?k*N:N)+30;C.attr("transform",function(e,t,n){return"rotate("+f+" 0,0)"}).style("text-anchor",f%360>0?"start":"end")}E.enter().append("text").attr("class","nv-axislabel");var S=s.range().length==2?s.range()[1]:s.range()[s.range().length-1]+(s.range()[1]-s.range()[0]);E.attr("text-anchor","middle").attr("y",T).attr("x",S/2);if(u){var x=m.selectAll("g.nv-axisMaxMin").data([s.domain()[0],s.domain()[s.domain().length-1]]);x.enter().append("g").attr("class","nv-axisMaxMin").append("text"),x.exit().remove(),x.attr("transform",function(e,t){return"translate("+(s(e)+(h?s.rangeBand()/2:0))+",0)"}).select("text").attr("dy",".71em").attr("y",t.tickPadding()).attr("transform",function(e,t,n){return"rotate("+f+" 0,0)"}).style("text-anchor",f?f%360>0?"start":"end":"middle").text(function(e,t){var n=w(e);return(""+n).match("NaN")?"":n}),x.transition().attr("transform",function(e,t){return"translate("+(s(e)+(h?s.rangeBand()/2:0))+",0)"})}c&&C.attr("transform",function(e,t){return"translate(0,"+(t%2==0?"0":"12")+")"});break;case"right":E.enter().append("text").attr("class","nv-axislabel"),E.style("text-anchor",l?"middle":"begin").attr("transform",l?"rotate(90)":"").attr("y",l?-Math.max(n.right,r)+12:-10).attr("x",l?s.range()[0]/2:t.tickPadding());if(u){var x=m.selectAll("g.nv-axisMaxMin").data(s.domain());x.enter().append("g").attr("class","nv-axisMaxMin").append("text").style("opacity",0),x.exit().remove(),x.attr("transform",function(e,t){return"translate(0,"+s(e)+")"}).select("text").attr("dy",".32em").attr("y",0).attr("x",t.tickPadding()).style("text-anchor","start").text(function(e,t){var n=w(e);return(""+n).match("NaN")?"":n}),x.transition().attr("transform",function(e,t){return"translate(0,"+s.range()[t]+")"}).select("text").style("opacity",1)}break;case"left":E.enter().append("text").attr("class","nv-axislabel"),E.style("text-anchor",l?"middle":"end").attr("transform",l?"rotate(-90)":"").attr("y",l?-Math.max(n.left,r)+d:-10).attr("x",l?-s.range()[0]/2:-t.tickPadding());if(u){var x=m.selectAll("g.nv-axisMaxMin").data(s.domain());x.enter().append("g").attr("class","nv-axisMaxMin").append("text").style("opacity",0),x.exit().remove(),x.attr("transform",function(e,t){return"translate(0,"+v(e)+")"}).select("text").attr("dy",".32em").attr("y",0).attr("x",-t.tickPadding()).attr("text-anchor","end").text(function(e,t){var n=w(e);return(""+n).match("NaN")?"":n}),x.transition().attr("transform",function(e,t){return"translate(0,"+s.range()[t]+")"}).select("text").style("opacity",1)}}E.text(function(e){return e}),u&&(t.orient()==="left"||t.orient()==="right")&&(b.selectAll("g").each(function(e,t){d3.select(this).select("text").attr("opacity",1);if(s(e)<s.range()[1]+10||s(e)>s.range()[0]-10)(e>1e-10||e<-1e-10)&&d3.select(this).attr("opacity",0),d3.select(this).select("text").attr("opacity",0)}),s.domain()[0]==s.domain()[1]&&s.domain()[0]==0&&m.selectAll("g.nv-axisMaxMin").style("opacity",function(e,t){return t?0:1}));if(u&&(t.orient()==="top"||t.orient()==="bottom")){var L=[];m.selectAll("g.nv-axisMaxMin").each(function(e,t){try{t?L.push(s(e)-this.getBBox().width-4):L.push(s(e)+this.getBBox().width+4)}catch(n){t?L.push(s(e)-4):L.push(s(e)+4)}}),b.selectAll("g").each(function(e,t){if(s(e)<L[0]||s(e)>L[1])e>1e-10||e<-1e-10?d3.select(this).remove():d3.select(this).select("text").remove()})}a&&b.selectAll(".tick").filter(function(e){return!parseFloat(Math.round(e.__data__*1e5)/1e6)&&e.__data__!==undefined}).classed("zero",!0),v=s.copy()}),m}var t=d3.svg.axis(),n={top:0,right:0,bottom:0,left:0},r=75,i=60,s=d3.scale.linear(),o=null,u=!0,a=!0,f=0,l=!0,c=!1,h=!1,p=null,d=12;t.scale(s).orient("bottom").tickFormat(function(e){return e});var v;return m.axis=t,d3.rebind(m,t,"orient","tickValues","tickSubdivide","tickSize","tickPadding","tickFormat"),d3.rebind(m,s,"domain","range","rangeBand","rangeBands"),m.options=e.utils.optionsFunc.bind(m),m.margin=function(e){return arguments.length?(n.top=typeof e.top!="undefined"?e.top:n.top,n.right=typeof e.right!="undefined"?e.right:n.right,n.bottom=typeof e.bottom!="undefined"?e.bottom:n.bottom,n.left=typeof e.left!="undefined"?e.left:n.left,m):n},m.width=function(e){return arguments.length?(r=e,m):r},m.ticks=function(e){return arguments.length?(p=e,m):p},m.height=function(e){return arguments.length?(i=e,m):i},m.axisLabel=function(e){return arguments.length?(o=e,m):o},m.showMaxMin=function(e){return arguments.length?(u=e,m):u},m.highlightZero=function(e){return arguments.length?(a=e,m):a},m.scale=function(e){return arguments.length?(s=e,t.scale(s),h=typeof s.rangeBands=="function",d3.rebind(m,s,"domain","range","rangeBand","rangeBands"),m):s},m.rotateYLabel=function(e){return arguments.length?(l=e,m):l},m.rotateLabels=function(e){return arguments.length?(f=e,m):f},m.staggerLabels=function(e){return arguments.length?(c=e,m):c},m.axisLabelDistance=function(e){return arguments.length?(d=e,m):d},m},e.models.bullet=function(){"use strict";function m(e){return e.each(function(e,n){var p=c-t.left-t.right,m=h-t.top-t.bottom,g=d3.select(this),y=i.call(this,e,n).slice().sort(d3.descending),b=s.call(this,e,n).slice().sort(d3.descending),w=o.call(this,e,n).slice().sort(d3.descending),E=u.call(this,e,n).slice(),S=a.call(this,e,n).slice(),x=f.call(this,e,n).slice(),T=d3.scale.linear().domain(d3.extent(d3.merge([l,y]))).range(r?[p,0]:[0,p]),N=this.__chart__||d3.scale.linear().domain([0,Infinity]).range(T.range());this.__chart__=T;var C=d3.min(y),k=d3.max(y),L=y[1],A=g.selectAll("g.nv-wrap.nv-bullet").data([e]),O=A.enter().append("g").attr("class","nvd3 nv-wrap nv-bullet"),M=O.append("g"),_=A.select("g");M.append("rect").attr("class","nv-range nv-rangeMax"),M.append("rect").attr("class","nv-range nv-rangeAvg"),M.append("rect").attr("class","nv-range nv-rangeMin"),M.append("rect").attr("class","nv-measure"),M.append("path").attr("class","nv-markerTriangle"),A.attr("transform","translate("+t.left+","+t.top+")");var D=function(e){return Math.abs(N(e)-N(0))},P=function(e){return Math.abs(T(e)-T(0))},H=function(e){return e<0?N(e):N(0)},B=function(e){return e<0?T(e):T(0)};_.select("rect.nv-rangeMax").attr("height",m).attr("width",P(k>0?k:C)).attr("x",B(k>0?k:C)).datum(k>0?k:C),_.select("rect.nv-rangeAvg").attr("height",m).attr("width",P(L)).attr("x",B(L)).datum(L),_.select("rect.nv-rangeMin").attr("height",m).attr("width",P(k)).attr("x",B(k)).attr("width",P(k>0?C:k)).attr("x",B(k>0?C:k)).datum(k>0?C:k),_.select("rect.nv-measure").style("fill",d).attr("height",m/3).attr("y",m/3).attr("width",w<0?T(0)-T(w[0]):T(w[0])-T(0)).attr("x",B(w)).on("mouseover",function(){v.elementMouseover({value:w[0],label:x[0]||"Current",pos:[T(w[0]),m/2]})}).on("mouseout",function(){v.elementMouseout({value:w[0],label:x[0]||"Current"})});var j=m/6;b[0]?_.selectAll("path.nv-markerTriangle").attr("transform",function(e){return"translate("+T(b[0])+","+m/2+")"}).attr("d","M0,"+j+"L"+j+","+ -j+" "+ -j+","+ -j+"Z").on("mouseover",function(){v.elementMouseover({value:b[0],label:S[0]||"Previous",pos:[T(b[0]),m/2]})}).on("mouseout",function(){v.elementMouseout({value:b[0],label:S[0]||"Previous"})}):_.selectAll("path.nv-markerTriangle").remove(),A.selectAll(".nv-range").on("mouseover",function(e,t){var n=E[t]||(t?t==1?"Mean":"Minimum":"Maximum");v.elementMouseover({value:e,label:n,pos:[T(e),m/2]})}).on("mouseout",function(e,t){var n=E[t]||(t?t==1?"Mean":"Minimum":"Maximum");v.elementMouseout({value:e,label:n})})}),m}var t={top:0,right:0,bottom:0,left:0},n="left",r=!1,i=function(e){return e.ranges},s=function(e){return e.markers},o=function(e){return e.measures},u=function(e){return e.rangeLabels?e.rangeLabels:[]},a=function(e){return e.markerLabels?e.markerLabels:[]},f=function(e){return e.measureLabels?e.measureLabels:[]},l=[0],c=380,h=30,p=null,d=e.utils.getColor(["#1f77b4"]),v=d3.dispatch("elementMouseover","elementMouseout");return m.dispatch=v,m.options=e.utils.optionsFunc.bind(m),m.orient=function(e){return arguments.length?(n=e,r=n=="right"||n=="bottom",m):n},m.ranges=function(e){return arguments.length?(i=e,m):i},m.markers=function(e){return arguments.length?(s=e,m):s},m.measures=function(e){return arguments.length?(o=e,m):o},m.forceX=function(e){return arguments.length?(l=e,m):l},m.width=function(e){return arguments.length?(c=e,m):c},m.height=function(e){return arguments.length?(h=e,m):h},m.margin=function(e){return arguments.length?(t.top=typeof e.top!="undefined"?e.top:t.top,t.right=typeof e.right!="undefined"?e.right:t.right,t.bottom=typeof e.bottom!="undefined"?e.bottom:t.bottom,t.left=typeof e.left!="undefined"?e.left:t.left,m):t},m.tickFormat=function(e){return arguments.length?(p=e,m):p},m.color=function(t){return arguments.length?(d=e.utils.getColor(t),m):d},m},e.models.bulletChart=function(){"use strict";function m(e){return e.each(function(n,h){var g=d3.select(this),y=(a||parseInt(g.style("width"))||960)-i.left-i.right,b=f-i.top-i.bottom,w=this;m.update=function(){m(e)},m.container=this;if(!n||!s.call(this,n,h)){var E=g.selectAll(".nv-noData").data([p]);return E.enter().append("text").attr("class","nvd3 nv-noData").attr("dy","-.7em").style("text-anchor","middle"),E.attr("x",i.left+y/2).attr("y",18+i.top+b/2).text(function(e){return e}),m}g.selectAll(".nv-noData").remove();var S=s.call(this,n,h).slice().sort(d3.descending),x=o.call(this,n,h).slice().sort(d3.descending),T=u.call(this,n,h).slice().sort(d3.descending),N=g.selectAll("g.nv-wrap.nv-bulletChart").data([n]),C=N.enter().append("g").attr("class","nvd3 nv-wrap nv-bulletChart"),k=C.append("g"),L=N.select("g");k.append("g").attr("class","nv-bulletWrap"),k.append("g").attr("class","nv-titles"),N.attr("transform","translate("+i.left+","+i.top+")");var A=d3.scale.linear().domain([0,Math.max(S[0],x[0],T[0])]).range(r?[y,0]:[0,y]),O=this.__chart__||d3.scale.linear().domain([0,Infinity]).range(A.range());this.__chart__=A;var M=function(e){return Math.abs(O(e)-O(0))},_=function(e){return Math.abs(A(e)-A(0))},D=k.select(".nv-titles").append("g").attr("text-anchor","end").attr("transform","translate(-6,"+(f-i.top-i.bottom)/2+")");D.append("text").attr("class","nv-title").text(function(e){return e.title}),D.append("text").attr("class","nv-subtitle").attr("dy","1em").text(function(e){return e.subtitle}),t.width(y).height(b);var P=L.select(".nv-bulletWrap");d3.transition(P).call(t);var H=l||A.tickFormat(y/100),B=L.selectAll("g.nv-tick").data(A.ticks(y/50),function(e){return this.textContent||H(e)}),j=B.enter().append("g").attr("class","nv-tick").attr("transform",function(e){return"translate("+O(e)+",0)"}).style("opacity",1e-6);j.append("line").attr("y1",b).attr("y2",b*7/6),j.append("text").attr("text-anchor","middle").attr("dy","1em").attr("y",b*7/6).text(H);var F=d3.transition(B).attr("transform",function(e){return"translate("+A(e)+",0)"}).style("opacity",1);F.select("line").attr("y1",b).attr("y2",b*7/6),F.select("text").attr("y",b*7/6),d3.transition(B.exit()).attr("transform",function(e){return"translate("+A(e)+",0)"}).style("opacity",1e-6).remove(),d.on("tooltipShow",function(e){e.key=n.title,c&&v(e,w.parentNode)})}),d3.timer.flush(),m}var t=e.models.bullet(),n="left",r=!1,i={top:5,right:40,bottom:20,left:120},s=function(e){return e.ranges},o=function(e){return e.markers},u=function(e){return e.measures},a=null,f=55,l=null,c=!0,h=function(e,t,n,r,i){return"<h3>"+t+"</h3>"+"<p>"+n+"</p>"},p="No Data Available.",d=d3.dispatch("tooltipShow","tooltipHide"),v=function(t,n){var r=t.pos[0]+(n.offsetLeft||0)+i.left,s=t.pos[1]+(n.offsetTop||0)+i.top,o=h(t.key,t.label,t.value,t,m);e.tooltip.show([r,s],o,t.value<0?"e":"w",null,n)};return t.dispatch.on("elementMouseover.tooltip",function(e){d.tooltipShow(e)}),t.dispatch.on("elementMouseout.tooltip",function(e){d.tooltipHide(e)}),d.on("tooltipHide",function(){c&&e.tooltip.cleanup()}),m.dispatch=d,m.bullet=t,d3.rebind(m,t,"color"),m.options=e.utils.optionsFunc.bind(m),m.orient=function(e){return arguments.length?(n=e,r=n=="right"||n=="bottom",m):n},m.ranges=function(e){return arguments.length?(s=e,m):s},m.markers=function(e){return arguments.length?(o=e,m):o},m.measures=function(e){return arguments.length?(u=e,m):u},m.width=function(e){return arguments.length?(a=e,m):a},m.height=function(e){return arguments.length?(f=e,m):f},m.margin=function(e){return arguments.length?(i.top=typeof e.top!="undefined"?e.top:i.top,i.right=typeof e.right!="undefined"?e.right:i.right,i.bottom=typeof e.bottom!="undefined"?e.bottom:i.bottom,i.left=typeof e.left!="undefined"?e.left:i.left,m):i},m.tickFormat=function(e){return arguments.length?(l=e,m):l},m.tooltips=function(e){return arguments.length?(c=e,m):c},m.tooltipContent=function(e){return arguments.length?(h=e,m):h},m.noData=function(e){return arguments.length?(p=e,m):p},m},e.models.cumulativeLineChart=function(){"use strict";function _(b){return b.each(function(b){function q(e,t){d3.select(_.container).style("cursor","ew-resize")}function R(e,t){O.x=d3.event.x,O.i=Math.round(A.invert(O.x)),rt()}function U(e,t){d3.select(_.container).style("cursor","auto"),x.index=O.i,k.stateChange(x)}function rt(){nt.data([O]);var e=_.transitionDuration();_.transitionDuration(0),_.update(),_.transitionDuration(e)}var P=d3.select(this).classed("nv-chart-"+S,!0),H=this,B=(f||parseInt(P.style("width"))||960)-u.left-u.right,j=(l||parseInt(P.style("height"))||400)-u.top-u.bottom;_.update=function(){P.transition().duration(L).call(_)},_.container=this,x.disabled=b.map(function(e){return!!e.disabled});if(!T){var F;T={};for(F in x)x[F]instanceof Array?T[F]=x[F].slice(0):T[F]=x[F]}var I=d3.behavior.drag().on("dragstart",q).on("drag",R).on("dragend",U);if(!b||!b.length||!b.filter(function(e){return e.values.length}).length){var z=P.selectAll(".nv-noData").data([N]);return z.enter().append("text").attr("class","nvd3 nv-noData").attr("dy","-.7em").style("text-anchor","middle"),z.attr("x",u.left+B/2).attr("y",u.top+j/2).text(function(e){return e}),_}P.selectAll(".nv-noData").remove(),w=t.xScale(),E=t.yScale();if(!y){var W=b.filter(function(e){return!e.disabled}).map(function(e,n){var r=d3.extent(e.values,t.y());return r[0]<-0.95&&(r[0]=-0.95),[(r[0]-r[1])/(1+r[1]),(r[1]-r[0])/(1+r[0])]}),X=[d3.min(W,function(e){return e[0]}),d3.max(W,function(e){return e[1]})];t.yDomain(X)}else t.yDomain(null);A.domain([0,b[0].values.length-1]).range([0,B]).clamp(!0);var b=D(O.i,b),V=g?"none":"all",$=P.selectAll("g.nv-wrap.nv-cumulativeLine").data([b]),J=$.enter().append("g").attr("class","nvd3 nv-wrap nv-cumulativeLine").append("g"),K=$.select("g");J.append("g").attr("class","nv-interactive"),J.append("g").attr("class","nv-x nv-axis").style("pointer-events","none"),J.append("g").attr("class","nv-y nv-axis"),J.append("g").attr("class","nv-background"),J.append("g").attr("class","nv-linesWrap").style("pointer-events",V),J.append("g").attr("class","nv-avgLinesWrap").style("pointer-events","none"),J.append("g").attr("class","nv-legendWrap"),J.append("g").attr("class","nv-controlsWrap"),c&&(i.width(B),K.select(".nv-legendWrap").datum(b).call(i),u.top!=i.height()&&(u.top=i.height(),j=(l||parseInt(P.style("height"))||400)-u.top-u.bottom),K.select(".nv-legendWrap").attr("transform","translate(0,"+ -u.top+")"));if(m){var Q=[{key:"Re-scale y-axis",disabled:!y}];s.width(140).color(["#444","#444","#444"]),K.select(".nv-controlsWrap").datum(Q).attr("transform","translate(0,"+ -u.top+")").call(s)}$.attr("transform","translate("+u.left+","+u.top+")"),d&&K.select(".nv-y.nv-axis").attr("transform","translate("+B+",0)");var G=b.filter(function(e){return e.tempDisabled});$.select(".tempDisabled").remove(),G.length&&$.append("text").attr("class","tempDisabled").attr("x",B/2).attr("y","-.71em").style("text-anchor","end").text(G.map(function(e){return e.key}).join(", ")+" values cannot be calculated for this time period."),g&&(o.width(B).height(j).margin({left:u.left,top:u.top}).svgContainer(P).xScale(w),$.select(".nv-interactive").call(o)),J.select(".nv-background").append("rect"),K.select(".nv-background rect").attr("width",B).attr("height",j),t.y(function(e){return e.display.y}).width(B).height(j).color(b.map(function(e,t){return e.color||a(e,t)}).filter(function(e,t){return!b[t].disabled&&!b[t].tempDisabled}));var Y=K.select(".nv-linesWrap").datum(b.filter(function(e){return!e.disabled&&!e.tempDisabled}));Y.call(t),b.forEach(function(e,t){e.seriesIndex=t});var Z=b.filter(function(e){return!e.disabled&&!!C(e)}),et=K.select(".nv-avgLinesWrap").selectAll("line").data(Z,function(e){return e.key}),tt=function(e){var t=E(C(e));return t<0?0:t>j?j:t};et.enter().append("line").style("stroke-width",2).style("stroke-dasharray","10,10").style("stroke",function(e,n){return t.color()(e,e.seriesIndex)}).attr("x1",0).attr("x2",B).attr("y1",tt).attr("y2",tt),et.style("stroke-opacity",function(e){var t=E(C(e));return t<0||t>j?0:1}).attr("x1",0).attr("x2",B).attr("y1",tt).attr("y2",tt),et.exit().remove();var nt=Y.selectAll(".nv-indexLine").data([O]);nt.enter().append("rect").attr("class","nv-indexLine").attr("width",3).attr("x",-2).attr("fill","red").attr("fill-opacity",.5).style("pointer-events","all").call(I),nt.attr("transform",function(e){return"translate("+A(e.i)+",0)"}).attr("height",j),h&&(n.scale(w).ticks(Math.min(b[0].values.length,B/70)).tickSize(-j,0),K.select(".nv-x.nv-axis").attr("transform","translate(0,"+E.range()[0]+")"),d3.transition(K.select(".nv-x.nv-axis")).call(n)),p&&(r.scale(E).ticks(j/36).tickSize(-B,0),d3.transition(K.select(".nv-y.nv-axis")).call(r)),K.select(".nv-background rect").on("click",function(){O.x=d3.mouse(this)[0],O.i=Math.round(A.invert(O.x)),x.index=O.i,k.stateChange(x),rt()}),t.dispatch.on("elementClick",function(e){O.i=e.pointIndex,O.x=A(O.i),x.index=O.i,k.stateChange(x),rt()}),s.dispatch.on("legendClick",function(e,t){e.disabled=!e.disabled,y=!e.disabled,x.rescaleY=y,k.stateChange(x),_.update()}),i.dispatch.on("stateChange",function(e){x.disabled=e.disabled,k.stateChange(x),_.update()}),o.dispatch.on("elementMousemove",function(i){t.clearHighlights();var s,f,l,c=[];b.filter(function(e,t){return e.seriesIndex=t,!e.disabled}).forEach(function(n,r){f=e.interactiveBisect(n.values,i.pointXValue,_.x()),t.highlightPoint(r,f,!0);var o=n.values[f];if(typeof o=="undefined")return;typeof s=="undefined"&&(s=o),typeof l=="undefined"&&(l=_.xScale()(_.x()(o,f))),c.push({key:n.key,value:_.y()(o,f),color:a(n,n.seriesIndex)})});if(c.length>2){var h=_.yScale().invert(i.mouseY),p=Math.abs(_.yScale().domain()[0]-_.yScale().domain()[1]),d=.03*p,m=e.nearestValueIndex(c.map(function(e){return e.value}),h,d);m!==null&&(c[m].highlight=!0)}var g=n.tickFormat()(_.x()(s,f),f);o.tooltip.position({left:l+u.left,top:i.mouseY+u.top}).chartContainer(H.parentNode).enabled(v).valueFormatter(function(e,t){return r.tickFormat()(e)}).data({value:g,series:c})(),o.renderGuideLine(l)}),o.dispatch.on("elementMouseout",function(e){k.tooltipHide(),t.clearHighlights()}),k.on("tooltipShow",function(e){v&&M(e,H.parentNode)}),k.on("changeState",function(e){typeof e.disabled!="undefined"&&(b.forEach(function(t,n){t.disabled=e.disabled[n]}),x.disabled=e.disabled),typeof e.index!="undefined"&&(O.i=e.index,O.x=A(O.i),x.index=e.index,nt.data([O])),typeof e.rescaleY!="undefined"&&(y=e.rescaleY),_.update()})}),_}function D(e,n){return n.map(function(n,r){if(!n.values)return n;var i=t.y()(n.values[e],e);return i<-0.95?(n.tempDisabled=!0,n):(n.tempDisabled=!1,n.values=n.values.map(function(e,n){return e.display={y:(t.y()(e,n)-i)/(1+i)},e}),n)})}var t=
-e.models.line(),n=e.models.axis(),r=e.models.axis(),i=e.models.legend(),s=e.models.legend(),o=e.interactiveGuideline(),u={top:30,right:30,bottom:50,left:60},a=e.utils.defaultColor(),f=null,l=null,c=!0,h=!0,p=!0,d=!1,v=!0,m=!0,g=!1,y=!0,b=function(e,t,n,r,i){return"<h3>"+e+"</h3>"+"<p>"+n+" at "+t+"</p>"},w,E,S=t.id(),x={index:0,rescaleY:y},T=null,N="No Data Available.",C=function(e){return e.average},k=d3.dispatch("tooltipShow","tooltipHide","stateChange","changeState"),L=250;n.orient("bottom").tickPadding(7),r.orient(d?"right":"left"),s.updateState(!1);var A=d3.scale.linear(),O={i:0,x:0},M=function(i,s){var o=i.pos[0]+(s.offsetLeft||0),u=i.pos[1]+(s.offsetTop||0),a=n.tickFormat()(t.x()(i.point,i.pointIndex)),f=r.tickFormat()(t.y()(i.point,i.pointIndex)),l=b(i.series.key,a,f,i,_);e.tooltip.show([o,u],l,null,null,s)};return t.dispatch.on("elementMouseover.tooltip",function(e){e.pos=[e.pos[0]+u.left,e.pos[1]+u.top],k.tooltipShow(e)}),t.dispatch.on("elementMouseout.tooltip",function(e){k.tooltipHide(e)}),k.on("tooltipHide",function(){v&&e.tooltip.cleanup()}),_.dispatch=k,_.lines=t,_.legend=i,_.xAxis=n,_.yAxis=r,_.interactiveLayer=o,d3.rebind(_,t,"defined","isArea","x","y","xScale","yScale","size","xDomain","yDomain","xRange","yRange","forceX","forceY","interactive","clipEdge","clipVoronoi","useVoronoi","id"),_.options=e.utils.optionsFunc.bind(_),_.margin=function(e){return arguments.length?(u.top=typeof e.top!="undefined"?e.top:u.top,u.right=typeof e.right!="undefined"?e.right:u.right,u.bottom=typeof e.bottom!="undefined"?e.bottom:u.bottom,u.left=typeof e.left!="undefined"?e.left:u.left,_):u},_.width=function(e){return arguments.length?(f=e,_):f},_.height=function(e){return arguments.length?(l=e,_):l},_.color=function(t){return arguments.length?(a=e.utils.getColor(t),i.color(a),_):a},_.rescaleY=function(e){return arguments.length?(y=e,_):y},_.showControls=function(e){return arguments.length?(m=e,_):m},_.useInteractiveGuideline=function(e){return arguments.length?(g=e,e===!0&&(_.interactive(!1),_.useVoronoi(!1)),_):g},_.showLegend=function(e){return arguments.length?(c=e,_):c},_.showXAxis=function(e){return arguments.length?(h=e,_):h},_.showYAxis=function(e){return arguments.length?(p=e,_):p},_.rightAlignYAxis=function(e){return arguments.length?(d=e,r.orient(e?"right":"left"),_):d},_.tooltips=function(e){return arguments.length?(v=e,_):v},_.tooltipContent=function(e){return arguments.length?(b=e,_):b},_.state=function(e){return arguments.length?(x=e,_):x},_.defaultState=function(e){return arguments.length?(T=e,_):T},_.noData=function(e){return arguments.length?(N=e,_):N},_.average=function(e){return arguments.length?(C=e,_):C},_.transitionDuration=function(e){return arguments.length?(L=e,_):L},_},e.models.discreteBar=function(){"use strict";function E(e){return e.each(function(e){var i=n-t.left-t.right,E=r-t.top-t.bottom,S=d3.select(this);e.forEach(function(e,t){e.values.forEach(function(e){e.series=t})});var T=p&&d?[]:e.map(function(e){return e.values.map(function(e,t){return{x:u(e,t),y:a(e,t),y0:e.y0}})});s.domain(p||d3.merge(T).map(function(e){return e.x})).rangeBands(v||[0,i],.1),o.domain(d||d3.extent(d3.merge(T).map(function(e){return e.y}).concat(f))),c?o.range(m||[E-(o.domain()[0]<0?12:0),o.domain()[1]>0?12:0]):o.range(m||[E,0]),b=b||s,w=w||o.copy().range([o(0),o(0)]);var N=S.selectAll("g.nv-wrap.nv-discretebar").data([e]),C=N.enter().append("g").attr("class","nvd3 nv-wrap nv-discretebar"),k=C.append("g"),L=N.select("g");k.append("g").attr("class","nv-groups"),N.attr("transform","translate("+t.left+","+t.top+")");var A=N.select(".nv-groups").selectAll(".nv-group").data(function(e){return e},function(e){return e.key});A.enter().append("g").style("stroke-opacity",1e-6).style("fill-opacity",1e-6),A.exit().transition().style("stroke-opacity",1e-6).style("fill-opacity",1e-6).remove(),A.attr("class",function(e,t){return"nv-group nv-series-"+t}).classed("hover",function(e){return e.hover}),A.transition().style("stroke-opacity",1).style("fill-opacity",.75);var O=A.selectAll("g.nv-bar").data(function(e){return e.values});O.exit().remove();var M=O.enter().append("g").attr("transform",function(e,t,n){return"translate("+(s(u(e,t))+s.rangeBand()*.05)+", "+o(0)+")"}).on("mouseover",function(t,n){d3.select(this).classed("hover",!0),g.elementMouseover({value:a(t,n),point:t,series:e[t.series],pos:[s(u(t,n))+s.rangeBand()*(t.series+.5)/e.length,o(a(t,n))],pointIndex:n,seriesIndex:t.series,e:d3.event})}).on("mouseout",function(t,n){d3.select(this).classed("hover",!1),g.elementMouseout({value:a(t,n),point:t,series:e[t.series],pointIndex:n,seriesIndex:t.series,e:d3.event})}).on("click",function(t,n){g.elementClick({value:a(t,n),point:t,series:e[t.series],pos:[s(u(t,n))+s.rangeBand()*(t.series+.5)/e.length,o(a(t,n))],pointIndex:n,seriesIndex:t.series,e:d3.event}),d3.event.stopPropagation()}).on("dblclick",function(t,n){g.elementDblClick({value:a(t,n),point:t,series:e[t.series],pos:[s(u(t,n))+s.rangeBand()*(t.series+.5)/e.length,o(a(t,n))],pointIndex:n,seriesIndex:t.series,e:d3.event}),d3.event.stopPropagation()});M.append("rect").attr("height",0).attr("width",s.rangeBand()*.9/e.length),c?(M.append("text").attr("text-anchor","middle"),O.select("text").text(function(e,t){return h(a(e,t))}).transition().attr("x",s.rangeBand()*.9/2).attr("y",function(e,t){return a(e,t)<0?o(a(e,t))-o(0)+12:-4})):O.selectAll("text").remove(),O.attr("class",function(e,t){return a(e,t)<0?"nv-bar negative":"nv-bar positive"}).style("fill",function(e,t){return e.color||l(e,t)}).style("stroke",function(e,t){return e.color||l(e,t)}).select("rect").attr("class",y).transition().attr("width",s.rangeBand()*.9/e.length),O.transition().attr("transform",function(e,t){var n=s(u(e,t))+s.rangeBand()*.05,r=a(e,t)<0?o(0):o(0)-o(a(e,t))<1?o(0)-1:o(a(e,t));return"translate("+n+", "+r+")"}).select("rect").attr("height",function(e,t){return Math.max(Math.abs(o(a(e,t))-o(d&&d[0]||0))||1)}),b=s.copy(),w=o.copy()}),E}var t={top:0,right:0,bottom:0,left:0},n=960,r=500,i=Math.floor(Math.random()*1e4),s=d3.scale.ordinal(),o=d3.scale.linear(),u=function(e){return e.x},a=function(e){return e.y},f=[0],l=e.utils.defaultColor(),c=!1,h=d3.format(",.2f"),p,d,v,m,g=d3.dispatch("chartClick","elementClick","elementDblClick","elementMouseover","elementMouseout"),y="discreteBar",b,w;return E.dispatch=g,E.options=e.utils.optionsFunc.bind(E),E.x=function(e){return arguments.length?(u=e,E):u},E.y=function(e){return arguments.length?(a=e,E):a},E.margin=function(e){return arguments.length?(t.top=typeof e.top!="undefined"?e.top:t.top,t.right=typeof e.right!="undefined"?e.right:t.right,t.bottom=typeof e.bottom!="undefined"?e.bottom:t.bottom,t.left=typeof e.left!="undefined"?e.left:t.left,E):t},E.width=function(e){return arguments.length?(n=e,E):n},E.height=function(e){return arguments.length?(r=e,E):r},E.xScale=function(e){return arguments.length?(s=e,E):s},E.yScale=function(e){return arguments.length?(o=e,E):o},E.xDomain=function(e){return arguments.length?(p=e,E):p},E.yDomain=function(e){return arguments.length?(d=e,E):d},E.xRange=function(e){return arguments.length?(v=e,E):v},E.yRange=function(e){return arguments.length?(m=e,E):m},E.forceY=function(e){return arguments.length?(f=e,E):f},E.color=function(t){return arguments.length?(l=e.utils.getColor(t),E):l},E.id=function(e){return arguments.length?(i=e,E):i},E.showValues=function(e){return arguments.length?(c=e,E):c},E.valueFormat=function(e){return arguments.length?(h=e,E):h},E.rectClass=function(e){return arguments.length?(y=e,E):y},E},e.models.discreteBarChart=function(){"use strict";function w(e){return e.each(function(e){var u=d3.select(this),p=this,E=(s||parseInt(u.style("width"))||960)-i.left-i.right,S=(o||parseInt(u.style("height"))||400)-i.top-i.bottom;w.update=function(){g.beforeUpdate(),u.transition().duration(y).call(w)},w.container=this;if(!e||!e.length||!e.filter(function(e){return e.values.length}).length){var T=u.selectAll(".nv-noData").data([m]);return T.enter().append("text").attr("class","nvd3 nv-noData").attr("dy","-.7em").style("text-anchor","middle"),T.attr("x",i.left+E/2).attr("y",i.top+S/2).text(function(e){return e}),w}u.selectAll(".nv-noData").remove(),d=t.xScale(),v=t.yScale().clamp(!0);var N=u.selectAll("g.nv-wrap.nv-discreteBarWithAxes").data([e]),C=N.enter().append("g").attr("class","nvd3 nv-wrap nv-discreteBarWithAxes").append("g"),k=C.append("defs"),L=N.select("g");C.append("g").attr("class","nv-x nv-axis"),C.append("g").attr("class","nv-y nv-axis").append("g").attr("class","nv-zeroLine").append("line"),C.append("g").attr("class","nv-barsWrap"),L.attr("transform","translate("+i.left+","+i.top+")"),l&&L.select(".nv-y.nv-axis").attr("transform","translate("+E+",0)"),t.width(E).height(S);var A=L.select(".nv-barsWrap").datum(e.filter(function(e){return!e.disabled}));A.transition().call(t),k.append("clipPath").attr("id","nv-x-label-clip-"+t.id()).append("rect"),L.select("#nv-x-label-clip-"+t.id()+" rect").attr("width",d.rangeBand()*(c?2:1)).attr("height",16).attr("x",-d.rangeBand()/(c?1:2));if(a){n.scale(d).ticks(E/100).tickSize(-S,0),L.select(".nv-x.nv-axis").attr("transform","translate(0,"+(v.range()[0]+(t.showValues()&&v.domain()[0]<0?16:0))+")"),L.select(".nv-x.nv-axis").transition().call(n);var O=L.select(".nv-x.nv-axis").selectAll("g");c&&O.selectAll("text").attr("transform",function(e,t,n){return"translate(0,"+(n%2==0?"5":"17")+")"})}f&&(r.scale(v).ticks(S/36).tickSize(-E,0),L.select(".nv-y.nv-axis").transition().call(r)),L.select(".nv-zeroLine line").attr("x1",0).attr("x2",E).attr("y1",v(0)).attr("y2",v(0)),g.on("tooltipShow",function(e){h&&b(e,p.parentNode)})}),w}var t=e.models.discreteBar(),n=e.models.axis(),r=e.models.axis(),i={top:15,right:10,bottom:50,left:60},s=null,o=null,u=e.utils.getColor(),a=!0,f=!0,l=!1,c=!1,h=!0,p=function(e,t,n,r,i){return"<h3>"+t+"</h3>"+"<p>"+n+"</p>"},d,v,m="No Data Available.",g=d3.dispatch("tooltipShow","tooltipHide","beforeUpdate"),y=250;n.orient("bottom").highlightZero(!1).showMaxMin(!1).tickFormat(function(e){return e}),r.orient(l?"right":"left").tickFormat(d3.format(",.1f"));var b=function(i,s){var o=i.pos[0]+(s.offsetLeft||0),u=i.pos[1]+(s.offsetTop||0),a=n.tickFormat()(t.x()(i.point,i.pointIndex)),f=r.tickFormat()(t.y()(i.point,i.pointIndex)),l=p(i.series.key,a,f,i,w);e.tooltip.show([o,u],l,i.value<0?"n":"s",null,s)};return t.dispatch.on("elementMouseover.tooltip",function(e){e.pos=[e.pos[0]+i.left,e.pos[1]+i.top],g.tooltipShow(e)}),t.dispatch.on("elementMouseout.tooltip",function(e){g.tooltipHide(e)}),g.on("tooltipHide",function(){h&&e.tooltip.cleanup()}),w.dispatch=g,w.discretebar=t,w.xAxis=n,w.yAxis=r,d3.rebind(w,t,"x","y","xDomain","yDomain","xRange","yRange","forceX","forceY","id","showValues","valueFormat"),w.options=e.utils.optionsFunc.bind(w),w.margin=function(e){return arguments.length?(i.top=typeof e.top!="undefined"?e.top:i.top,i.right=typeof e.right!="undefined"?e.right:i.right,i.bottom=typeof e.bottom!="undefined"?e.bottom:i.bottom,i.left=typeof e.left!="undefined"?e.left:i.left,w):i},w.width=function(e){return arguments.length?(s=e,w):s},w.height=function(e){return arguments.length?(o=e,w):o},w.color=function(n){return arguments.length?(u=e.utils.getColor(n),t.color(u),w):u},w.showXAxis=function(e){return arguments.length?(a=e,w):a},w.showYAxis=function(e){return arguments.length?(f=e,w):f},w.rightAlignYAxis=function(e){return arguments.length?(l=e,r.orient(e?"right":"left"),w):l},w.staggerLabels=function(e){return arguments.length?(c=e,w):c},w.tooltips=function(e){return arguments.length?(h=e,w):h},w.tooltipContent=function(e){return arguments.length?(p=e,w):p},w.noData=function(e){return arguments.length?(m=e,w):m},w.transitionDuration=function(e){return arguments.length?(y=e,w):y},w},e.models.distribution=function(){"use strict";function l(e){return e.each(function(e){var a=n-(i==="x"?t.left+t.right:t.top+t.bottom),l=i=="x"?"y":"x",c=d3.select(this);f=f||u;var h=c.selectAll("g.nv-distribution").data([e]),p=h.enter().append("g").attr("class","nvd3 nv-distribution"),d=p.append("g"),v=h.select("g");h.attr("transform","translate("+t.left+","+t.top+")");var m=v.selectAll("g.nv-dist").data(function(e){return e},function(e){return e.key});m.enter().append("g"),m.attr("class",function(e,t){return"nv-dist nv-series-"+t}).style("stroke",function(e,t){return o(e,t)});var g=m.selectAll("line.nv-dist"+i).data(function(e){return e.values});g.enter().append("line").attr(i+"1",function(e,t){return f(s(e,t))}).attr(i+"2",function(e,t){return f(s(e,t))}),m.exit().selectAll("line.nv-dist"+i).transition().attr(i+"1",function(e,t){return u(s(e,t))}).attr(i+"2",function(e,t){return u(s(e,t))}).style("stroke-opacity",0).remove(),g.attr("class",function(e,t){return"nv-dist"+i+" nv-dist"+i+"-"+t}).attr(l+"1",0).attr(l+"2",r),g.transition().attr(i+"1",function(e,t){return u(s(e,t))}).attr(i+"2",function(e,t){return u(s(e,t))}),f=u.copy()}),l}var t={top:0,right:0,bottom:0,left:0},n=400,r=8,i="x",s=function(e){return e[i]},o=e.utils.defaultColor(),u=d3.scale.linear(),a,f;return l.options=e.utils.optionsFunc.bind(l),l.margin=function(e){return arguments.length?(t.top=typeof e.top!="undefined"?e.top:t.top,t.right=typeof e.right!="undefined"?e.right:t.right,t.bottom=typeof e.bottom!="undefined"?e.bottom:t.bottom,t.left=typeof e.left!="undefined"?e.left:t.left,l):t},l.width=function(e){return arguments.length?(n=e,l):n},l.axis=function(e){return arguments.length?(i=e,l):i},l.size=function(e){return arguments.length?(r=e,l):r},l.getData=function(e){return arguments.length?(s=d3.functor(e),l):s},l.scale=function(e){return arguments.length?(u=e,l):u},l.color=function(t){return arguments.length?(o=e.utils.getColor(t),l):o},l},e.models.historicalBar=function(){"use strict";function w(E){return E.each(function(w){var E=n-t.left-t.right,S=r-t.top-t.bottom,T=d3.select(this);s.domain(d||d3.extent(w[0].values.map(u).concat(f))),c?s.range(m||[E*.5/w[0].values.length,E*(w[0].values.length-.5)/w[0].values.length]):s.range(m||[0,E]),o.domain(v||d3.extent(w[0].values.map(a).concat(l))).range(g||[S,0]),s.domain()[0]===s.domain()[1]&&(s.domain()[0]?s.domain([s.domain()[0]-s.domain()[0]*.01,s.domain()[1]+s.domain()[1]*.01]):s.domain([-1,1])),o.domain()[0]===o.domain()[1]&&(o.domain()[0]?o.domain([o.domain()[0]+o.domain()[0]*.01,o.domain()[1]-o.domain()[1]*.01]):o.domain([-1,1]));var N=T.selectAll("g.nv-wrap.nv-historicalBar-"+i).data([w[0].values]),C=N.enter().append("g").attr("class","nvd3 nv-wrap nv-historicalBar-"+i),k=C.append("defs"),L=C.append("g"),A=N.select("g");L.append("g").attr("class","nv-bars"),N.attr("transform","translate("+t.left+","+t.top+")"),T.on("click",function(e,t){y.chartClick({data:e,index:t,pos:d3.event,id:i})}),k.append("clipPath").attr("id","nv-chart-clip-path-"+i).append("rect"),N.select("#nv-chart-clip-path-"+i+" rect").attr("width",E).attr("height",S),A.attr("clip-path",h?"url(#nv-chart-clip-path-"+i+")":"");var O=N.select(".nv-bars").selectAll(".nv-bar").data(function(e){return e},function(e,t){return u(e,t)});O.exit().remove();var M=O.enter().append("rect").attr("x",0).attr("y",function(t,n){return e.utils.NaNtoZero(o(Math.max(0,a(t,n))))}).attr("height",function(t,n){return e.utils.NaNtoZero(Math.abs(o(a(t,n))-o(0)))}).attr("transform",function(e,t){return"translate("+(s(u(e,t))-E/w[0].values.length*.45)+",0)"}).on("mouseover",function(e,t){if(!b)return;d3.select(this).classed("hover",!0),y.elementMouseover({point:e,series:w[0],pos:[s(u(e,t)),o(a(e,t))],pointIndex:t,seriesIndex:0,e:d3.event})}).on("mouseout",function(e,t){if(!b)return;d3.select(this).classed("hover",!1),y.elementMouseout({point:e,series:w[0],pointIndex:t,seriesIndex:0,e:d3.event})}).on("click",function(e,t){if(!b)return;y.elementClick({value:a(e,t),data:e,index:t,pos:[s(u(e,t)),o(a(e,t))],e:d3.event,id:i}),d3.event.stopPropagation()}).on("dblclick",function(e,t){if(!b)return;y.elementDblClick({value:a(e,t),data:e,index:t,pos:[s(u(e,t)),o(a(e,t))],e:d3.event,id:i}),d3.event.stopPropagation()});O.attr("fill",function(e,t){return p(e,t)}).attr("class",function(e,t,n){return(a(e,t)<0?"nv-bar negative":"nv-bar positive")+" nv-bar-"+n+"-"+t}).transition().attr("transform",function(e,t){return"translate("+(s(u(e,t))-E/w[0].values.length*.45)+",0)"}).attr("width",E/w[0].values.length*.9),O.transition().attr("y",function(t,n){var r=a(t,n)<0?o(0):o(0)-o(a(t,n))<1?o(0)-1:o(a(t,n));return e.utils.NaNtoZero(r)}).attr("height",function(t,n){return e.utils.NaNtoZero(Math.max(Math.abs(o(a(t,n))-o(0)),1))})}),w}var t={top:0,right:0,bottom:0,left:0},n=960,r=500,i=Math.floor(Math.random()*1e4),s=d3.scale.linear(),o=d3.scale.linear(),u=function(e){return e.x},a=function(e){return e.y},f=[],l=[0],c=!1,h=!0,p=e.utils.defaultColor(),d,v,m,g,y=d3.dispatch("chartClick","elementClick","elementDblClick","elementMouseover","elementMouseout"),b=!0;return w.highlightPoint=function(e,t){d3.select(".nv-historicalBar-"+i).select(".nv-bars .nv-bar-0-"+e).classed("hover",t)},w.clearHighlights=function(){d3.select(".nv-historicalBar-"+i).select(".nv-bars .nv-bar.hover").classed("hover",!1)},w.dispatch=y,w.options=e.utils.optionsFunc.bind(w),w.x=function(e){return arguments.length?(u=e,w):u},w.y=function(e){return arguments.length?(a=e,w):a},w.margin=function(e){return arguments.length?(t.top=typeof e.top!="undefined"?e.top:t.top,t.right=typeof e.right!="undefined"?e.right:t.right,t.bottom=typeof e.bottom!="undefined"?e.bottom:t.bottom,t.left=typeof e.left!="undefined"?e.left:t.left,w):t},w.width=function(e){return arguments.length?(n=e,w):n},w.height=function(e){return arguments.length?(r=e,w):r},w.xScale=function(e){return arguments.length?(s=e,w):s},w.yScale=function(e){return arguments.length?(o=e,w):o},w.xDomain=function(e){return arguments.length?(d=e,w):d},w.yDomain=function(e){return arguments.length?(v=e,w):v},w.xRange=function(e){return arguments.length?(m=e,w):m},w.yRange=function(e){return arguments.length?(g=e,w):g},w.forceX=function(e){return arguments.length?(f=e,w):f},w.forceY=function(e){return arguments.length?(l=e,w):l},w.padData=function(e){return arguments.length?(c=e,w):c},w.clipEdge=function(e){return arguments.length?(h=e,w):h},w.color=function(t){return arguments.length?(p=e.utils.getColor(t),w):p},w.id=function(e){return arguments.length?(i=e,w):i},w.interactive=function(e){return arguments.length?(b=!1,w):b},w},e.models.historicalBarChart=function(){"use strict";function x(e){return e.each(function(d){var T=d3.select(this),N=this,C=(u||parseInt(T.style("width"))||960)-s.left-s.right,k=(a||parseInt(T.style("height"))||400)-s.top-s.bottom;x.update=function(){T.transition().duration(E).call(x)},x.container=this,g.disabled=d.map(function(e){return!!e.disabled});if(!y){var L;y={};for(L in g)g[L]instanceof Array?y[L]=g[L].slice(0):y[L]=g[L]}if(!d||!d.length||!d.filter(function(e){return e.values.length}).length){var A=T.selectAll(".nv-noData").data([b]);return A.enter().append("text").attr("class","nvd3 nv-noData").attr("dy","-.7em").style("text-anchor","middle"),A.attr("x",s.left+C/2).attr("y",s.top+k/2).text(function(e){return e}),x}T.selectAll(".nv-noData").remove(),v=t.xScale(),m=t.yScale();var O=T.selectAll("g.nv-wrap.nv-historicalBarChart").data([d]),M=O.enter().append("g").attr("class","nvd3 nv-wrap nv-historicalBarChart").append("g"),_=O.select("g");M.append("g").attr("class","nv-x nv-axis"),M.append("g").attr("class","nv-y nv-axis"),M.append("g").attr("class","nv-barsWrap"),M.append("g").attr("class","nv-legendWrap"),f&&(i.width(C),_.select(".nv-legendWrap").datum(d).call(i),s.top!=i.height()&&(s.top=i.height(),k=(a||parseInt(T.style("height"))||400)-s.top-s.bottom),O.select(".nv-legendWrap").attr("transform","translate(0,"+ -s.top+")")),O.attr("transform","translate("+s.left+","+s.top+")"),h&&_.select(".nv-y.nv-axis").attr("transform","translate("+C+",0)"),t.width(C).height(k).color(d.map(function(e,t){return e.color||o(e,t)}).filter(function(e,t){return!d[t].disabled}));var D=_.select(".nv-barsWrap").datum(d.filter(function(e){return!e.disabled}));D.transition().call(t),l&&(n.scale(v).tickSize(-k,0),_.select(".nv-x.nv-axis").attr("transform","translate(0,"+m.range()[0]+")"),_.select(".nv-x.nv-axis").transition().call(n)),c&&(r.scale(m).ticks(k/36).tickSize(-C,0),_.select(".nv-y.nv-axis").transition().call(r)),i.dispatch.on("legendClick",function(t,n){t.disabled=!t.disabled,d.filter(function(e){return!e.disabled}).length||d.map(function(e){return e.disabled=!1,O.selectAll(".nv-series").classed("disabled",!1),e}),g.disabled=d.map(function(e){return!!e.disabled}),w.stateChange(g),e.transition().call(x)}),i.dispatch.on("legendDblclick",function(e){d.forEach(function(e){e.disabled=!0}),e.disabled=!1,g.disabled=d.map(function(e){return!!e.disabled}),w.stateChange(g),x.update()}),w.on("tooltipShow",function(e){p&&S(e,N.parentNode)}),w.on("changeState",function(e){typeof e.disabled!="undefined"&&(d.forEach(function(t,n){t.disabled=e.disabled[n]}),g.disabled=e.disabled),x.update()})}),x}var t=e.models.historicalBar(),n=e.models.axis(),r=e.models.axis(),i=e.models.legend(),s={top:30,right:90,bottom:50,left:90},o=e.utils.defaultColor(),u=null,a=null,f=!1,l=!0,c=!0,h=!1,p=!0,d=function(e,t,n,r,i){return"<h3>"+e+"</h3>"+"<p>"+n+" at "+t+"</p>"},v,m,g={},y=null,b="No Data Available.",w=d3.dispatch("tooltipShow","tooltipHide","stateChange","changeState"),E=250;n.orient("bottom").tickPadding(7),r.orient(h?"right":"left");var S=function(i,s){if(s){var o=d3.select(s).select("svg"),u=o.node()?o.attr("viewBox"):null;if(u){u=u.split(" ");var a=parseInt(o.style("width"))/u[2];i.pos[0]=i.pos[0]*a,i.pos[1]=i.pos[1]*a}}var f=i.pos[0]+(s.offsetLeft||0),l=i.pos[1]+(s.offsetTop||0),c=n.tickFormat()(t.x()(i.point,i.pointIndex)),h=r.tickFormat()(t.y()(i.point,i.pointIndex)),p=d(i.series.key,c,h,i,x);e.tooltip.show([f,l],p,null,null,s)};return t.dispatch.on("elementMouseover.tooltip",function(e){e.pos=[e.pos[0]+s.left,e.pos[1]+s.top],w.tooltipShow(e)}),t.dispatch.on("elementMouseout.tooltip",function(e){w.tooltipHide(e)}),w.on("tooltipHide",function(){p&&e.tooltip.cleanup()}),x.dispatch=w,x.bars=t,x.legend=i,x.xAxis=n,x.yAxis=r,d3.rebind(x,t,"defined","isArea","x","y","size","xScale","yScale","xDomain","yDomain","xRange","yRange","forceX","forceY","interactive","clipEdge","clipVoronoi","id","interpolate","highlightPoint","clearHighlights","interactive"),x.options=e.utils.optionsFunc.bind(x),x.margin=function(e){return arguments.length?(s.top=typeof e.top!="undefined"?e.top:s.top,s.right=typeof e.right!="undefined"?e.right:s.right,s.bottom=typeof e.bottom!="undefined"?e.bottom:s.bottom,s.left=typeof e.left!="undefined"?e.left:s.left,x):s},x.width=function(e){return arguments.length?(u=e,x):u},x.height=function(e){return arguments.length?(a=e,x):a},x.color=function(t){return arguments.length?(o=e.utils.getColor(t),i.color(o),x):o},x.showLegend=function(e){return arguments.length?(f=e,x):f},x.showXAxis=function(e){return arguments.length?(l=e,x):l},x.showYAxis=function(e){return arguments.length?(c=e,x):c},x.rightAlignYAxis=function(e){return arguments.length?(h=e,r.orient(e?"right":"left"),x):h},x.tooltips=function(e){return arguments.length?(p=e,x):p},x.tooltipContent=function(e){return arguments.length?(d=e,x):d},x.state=function(e){return arguments.length?(g=e,x):g},x.defaultState=function(e){return arguments.length?(y=e,x):y},x.noData=function(e){return arguments.length?(b=e,x):b},x.transitionDuration=function(e){return arguments.length?(E=e,x):E},x},e.models.indentedTree=function(){"use strict";function g(e){return e.each(function(e){function k(e,t,n){d3.event.stopPropagation();if(d3.event.shiftKey&&!n)return d3.event.shiftKey=!1,e.values&&e.values.forEach(function(e){(e.values||e._values)&&k(e,0,!0)}),!0;if(!O(e))return!0;e.values?(e._values=e.values,e.values=null):(e.values=e._values,e._values=null),g.update()}function L(e){return e._values&&e._values.length?h:e.values&&e.values.length?p:""}function A(e){return e._values&&e._values.length}function O(e){var t=e.values||e._values;return t&&t.length}var t=1,n=d3.select(this),i=d3.layout.tree().children(function(e){return e.values}).size([r,f]);g.update=function(){n.transition().duration(600).call(g)},e[0]||(e[0]={key:a});var s=i.nodes(e[0]),y=d3.select(this).selectAll("div").data([[s]]),b=y.enter().append("div").attr("class","nvd3 nv-wrap nv-indentedtree"),w=b.append("table"),E=y.select("table").attr("width","100%").attr("class",c);if(o){var S=w.append("thead"),x=S.append("tr");l.forEach(function(e){x.append("th").attr("width",e.width?e.width:"10%").style("text-align",e.type=="numeric"?"right":"left").append("span").text(e.label)})}var T=E.selectAll("tbody").data(function(e){return e});T.enter().append("tbody"),t=d3.max(s,function(e){return e.depth}),i.size([r,t*f]);var N=T.selectAll("tr").data(function(e){return e.filter(function(e){return u&&!e.children?u(e):!0})},function(e,t){return e.id||e.id||++m});N.exit().remove(),N.select("img.nv-treeicon").attr("src",L).classed("folded",A);var C=N.enter().append("tr");l.forEach(function(e,t){var n=C.append("td").style("padding-left",function(e){return(t?0:e.depth*f+12+(L(e)?0:16))+"px"},"important").style("text-align",e.type=="numeric"?"right":"left");t==0&&n.append("img").classed("nv-treeicon",!0).classed("nv-folded",A).attr("src",L).style("width","14px").style("height","14px").style("padding","0 1px").style("display",function(e){return L(e)?"inline-block":"none"}).on("click",k),n.each(function(n){!t&&v(n)?d3.select(this).append("a").attr("href",v).attr("class",d3.functor(e.classes)).append("span"):d3.select(this).append("span"),d3.select(this).select("span").attr("class",d3.functor(e.classes)).text(function(t){return e.format?e.format(t):t[e.key]||"-"})}),e.showCount&&(n.append("span").attr("class","nv-childrenCount"),N.selectAll("span.nv-childrenCount").text(function(e){return e.values&&e.values.length||e._values&&e._values.length?"("+(e.values&&e.values.filter(function(e){return u?u(e):!0}).length||e._values&&e._values.filter(function(e){return u?u(e):!0}).length||0)+")":""}))}),N.order().on("click",function(e){d.elementClick({row:this,data:e,pos:[e.x,e.y]})}).on("dblclick",function(e){d.elementDblclick({row:this,data:e,pos:[e.x,e.y]})}).on("mouseover",function(e){d.elementMouseover({row:this,data:e,pos:[e.x,e.y]})}).on("mouseout",function(e){d.elementMouseout({row:this,data:e,pos:[e.x,e.y]})})}),g}var t={top:0,right:0,bottom:0,left:0},n=960,r=500,i=e.utils.defaultColor(),s=Math.floor(Math.random()*1e4),o=!0,u=!1,a="No Data Available.",f=20,l=[{key:"key",label:"Name",type:"text"}],c=null,h="images/grey-plus.png",p="images/grey-minus.png",d=d3.dispatch("elementClick","elementDblclick","elementMouseover","elementMouseout"),v=function(e){return e.url},m=0;return g.options=e.utils.optionsFunc.bind(g),g.margin=function(e){return arguments.length?(t.top=typeof e.top!="undefined"?e.top:t.top,t.right=typeof e.right!="undefined"?e.right:t.right,t.bottom=typeof e.bottom!="undefined"?e.bottom:t.bottom,t.left=typeof e.left!="undefined"?e.left:t.left,g):t},g.width=function(e){return arguments.length?(n=e,g):n},g.height=function(e){return arguments.length?(r=e,g):r},g.color=function(t){return arguments.length?(i=e.utils.getColor(t),scatter.color(i),g):i},g.id=function(e){return arguments.length?(s=e,g):s},g.header=function(e){return arguments.length?(o=e,g):o},g.noData=function(e){return arguments.length?(a=e,g):a},g.filterZero=function(e){return arguments.length?(u=e,g):u},g.columns=function(e){return arguments.length?(l=e,g):l},g.tableClass=function(e){return arguments.length?(c=e,g):c},g.iconOpen=function(e){return arguments.length?(h=e,g):h},g.iconClose=function(e){return arguments.length?(p=e,g):p},g.getUrl=function(e){return arguments.length?(v=e,g):v},g},e.models.legend=function(){"use strict";function c(h){return h.each(function(c){var h=n-t.left-t.right,p=d3.select(this),d=p.selectAll("g.nv-legend").data([c]),v=d.enter().append("g").attr("class","nvd3 nv-legend").append("g"),m=d.select("g");d.attr("transform","translate("+t.left+","+t.top+")");var g=m.selectAll(".nv-series").data(function(e){return e}),y=g.enter().append("g").attr("class","nv-series").on("mouseover",function(e,t){l.legendMouseover(e,t)}).on("mouseout",function(e,t){l.legendMouseout(e,t)}).on("click",function(e,t){l.legendClick(e,t),a&&(f?(c.forEach(function(e){e.disabled=!0}),e.disabled=!1):(e.disabled=!e.disabled,c.every(function(e){return e.disabled})&&c.forEach(function(e){e.disabled=!1})),l.stateChange({disabled:c.map(function(e){return!!e.disabled})}))}).on("dblclick",function(e,t){l.legendDblclick(e,t),a&&(c.forEach(function(e){e.disabled=!0}),e.disabled=!1,l.stateChange({disabled:c.map(function(e){return!!e.disabled})}))});y.append("circle").style("stroke-width",2).attr("class","nv-legend-symbol").attr("r",5),y.append("text").attr("text-anchor","start").attr("class","nv-legend-text").attr("dy",".32em").attr("dx","8"),g.classed("disabled",function(e){return e.disabled}),g.exit().remove(),g.select("circle").style("fill",function(e,t){return e.color||s(e,t)}).style("stroke",function(e,t){return e.color||s(e,t)}),g.select("text").text(i);if(o){var b=[];g.each(function(t,n){var r=d3.select(this).select("text"),i;try{i=r.node().getComputedTextLength()}catch(s){i=e.utils.calcApproxTextWidth(r)}b.push(i+28)});var w=0,E=0,S=[];while(E<h&&w<b.length)S[w]=b[w],E+=b[w++];w===0&&(w=1);while(E>h&&w>1){S=[],w--;for(var x=0;x<b.length;x++)b[x]>(S[x%w]||0)&&(S[x%w]=b[x]);E=S.reduce(function(e,t,n,r){return e+t})}var T=[];for(var N=0,C=0;N<w;N++)T[N]=C,C+=S[N];g.attr("transform",function(e,t){return"translate("+T[t%w]+","+(5+Math.floor(t/w)*20)+")"}),u?m.attr("transform","translate("+(n-t.right-E)+","+t.top+")"):m.attr("transform","translate(0,"+t.top+")"),r=t.top+t.bottom+Math.ceil(b.length/w)*20}else{var k=5,L=5,A=0,O;g.attr("transform",function(e,r){var i=d3.select(this).select("text").node().getComputedTextLength()+28;return O=L,n<t.left+t.right+O+i&&(L=O=5,k+=20),L+=i,L>A&&(A=L),"translate("+O+","+k+")"}),m.attr("transform","translate("+(n-t.right-A)+","+t.top+")"),r=t.top+t.bottom+k+15}}),c}var t={top:5,right:0,bottom:5,left:0},n=400,r=20,i=function(e){return e.key},s=e.utils.defaultColor(),o=!0,u=!0,a=!0,f=!1,l=d3.dispatch("legendClick","legendDblclick","legendMouseover","legendMouseout","stateChange");return c.dispatch=l,c.options=e.utils.optionsFunc.bind(c),c.margin=function(e){return arguments.length?(t.top=typeof e.top!="undefined"?e.top:t.top,t.right=typeof e.right!="undefined"?e.right:t.right,t.bottom=typeof e.bottom!="undefined"?e.bottom:t.bottom,t.left=typeof e.left!="undefined"?e.left:t.left,c):t},c.width=function(e){return arguments.length?(n=e,c):n},c.height=function(e){return arguments.length?(r=e,c):r},c.key=function(e){return arguments.length?(i=e,c):i},c.color=function(t){return arguments.length?(s=e.utils.getColor(t),c):s},c.align=function(e){return arguments.length?(o=e,c):o},c.rightAlign=function(e){return arguments.length?(u=e,c):u},c.updateState=function(e){return arguments.length?(a=e,c):a},c.radioButtonMode=function(e){return arguments.length?(f=e,c):f},c},e.models.line=function(){"use strict";function m(g){return g.each(function(m){var g=r-n.left-n.right,b=i-n.top-n.bottom,w=d3.select(this);c=t.xScale(),h=t.yScale(),d=d||c,v=v||h;var E=w.selectAll("g.nv-wrap.nv-line").data([m]),S=E.enter().append("g").attr("class","nvd3 nv-wrap nv-line"),T=S.append("defs"),N=S.append("g"),C=E.select("g");N.append("g").attr("class","nv-groups"),N.append("g").attr("class","nv-scatterWrap"),E.attr("transform","translate("+n.left+","+n.top+")"),t.width(g).height(b);var k=E.select(".nv-scatterWrap");k.transition().call(t),T.append("clipPath").attr("id","nv-edge-clip-"+t.id()).append("rect"),E.select("#nv-edge-clip-"+t.id()+" rect").attr("width",g).attr("height",b),C.attr("clip-path",l?"url(#nv-edge-clip-"+t.id()+")":""),k.attr("clip-path",l?"url(#nv-edge-clip-"+t.id()+")":"");var L=E.select(".nv-groups").selectAll(".nv-group").data(function(e){return e},function(e){return e.key});L.enter().append("g").style("stroke-opacity",1e-6).style("fill-opacity",1e-6),L.exit().remove(),L.attr("class",function(e,t){return"nv-group nv-series-"+t}).classed("hover",function(e){return e.hover}).style("fill",function(e,t){return s(e,t)}).style("stroke",function(e,t){return s(e,t)}),L.transition().style("stroke-opacity",1).style("fill-opacity",.5);var A=L.selectAll("path.nv-area").data(function(e){return f(e)?[e]:[]});A.enter().append("path").attr("class","nv-area").attr("d",function(t){return d3.svg.area().interpolate(p).defined(a).x(function(t,n){return e.utils.NaNtoZero(d(o(t,n)))}).y0(function(t,n){return e.utils.NaNtoZero(v(u(t,n)))}).y1(function(e,t){return v(h.domain()[0]<=0?h.domain()[1]>=0?0:h.domain()[1]:h.domain
-()[0])}).apply(this,[t.values])}),L.exit().selectAll("path.nv-area").remove(),A.transition().attr("d",function(t){return d3.svg.area().interpolate(p).defined(a).x(function(t,n){return e.utils.NaNtoZero(c(o(t,n)))}).y0(function(t,n){return e.utils.NaNtoZero(h(u(t,n)))}).y1(function(e,t){return h(h.domain()[0]<=0?h.domain()[1]>=0?0:h.domain()[1]:h.domain()[0])}).apply(this,[t.values])});var O=L.selectAll("path.nv-line").data(function(e){return[e.values]});O.enter().append("path").attr("class","nv-line").attr("d",d3.svg.line().interpolate(p).defined(a).x(function(t,n){return e.utils.NaNtoZero(d(o(t,n)))}).y(function(t,n){return e.utils.NaNtoZero(v(u(t,n)))})),O.transition().attr("d",d3.svg.line().interpolate(p).defined(a).x(function(t,n){return e.utils.NaNtoZero(c(o(t,n)))}).y(function(t,n){return e.utils.NaNtoZero(h(u(t,n)))})),d=c.copy(),v=h.copy()}),m}var t=e.models.scatter(),n={top:0,right:0,bottom:0,left:0},r=960,i=500,s=e.utils.defaultColor(),o=function(e){return e.x},u=function(e){return e.y},a=function(e,t){return!isNaN(u(e,t))&&u(e,t)!==null},f=function(e){return e.area},l=!1,c,h,p="linear";t.size(16).sizeDomain([16,256]);var d,v;return m.dispatch=t.dispatch,m.scatter=t,d3.rebind(m,t,"id","interactive","size","xScale","yScale","zScale","xDomain","yDomain","xRange","yRange","sizeDomain","forceX","forceY","forceSize","clipVoronoi","useVoronoi","clipRadius","padData","highlightPoint","clearHighlights"),m.options=e.utils.optionsFunc.bind(m),m.margin=function(e){return arguments.length?(n.top=typeof e.top!="undefined"?e.top:n.top,n.right=typeof e.right!="undefined"?e.right:n.right,n.bottom=typeof e.bottom!="undefined"?e.bottom:n.bottom,n.left=typeof e.left!="undefined"?e.left:n.left,m):n},m.width=function(e){return arguments.length?(r=e,m):r},m.height=function(e){return arguments.length?(i=e,m):i},m.x=function(e){return arguments.length?(o=e,t.x(e),m):o},m.y=function(e){return arguments.length?(u=e,t.y(e),m):u},m.clipEdge=function(e){return arguments.length?(l=e,m):l},m.color=function(n){return arguments.length?(s=e.utils.getColor(n),t.color(s),m):s},m.interpolate=function(e){return arguments.length?(p=e,m):p},m.defined=function(e){return arguments.length?(a=e,m):a},m.isArea=function(e){return arguments.length?(f=d3.functor(e),m):f},m},e.models.lineChart=function(){"use strict";function N(m){return m.each(function(m){var C=d3.select(this),k=this,L=(a||parseInt(C.style("width"))||960)-o.left-o.right,A=(f||parseInt(C.style("height"))||400)-o.top-o.bottom;N.update=function(){C.transition().duration(x).call(N)},N.container=this,b.disabled=m.map(function(e){return!!e.disabled});if(!w){var O;w={};for(O in b)b[O]instanceof Array?w[O]=b[O].slice(0):w[O]=b[O]}if(!m||!m.length||!m.filter(function(e){return e.values.length}).length){var M=C.selectAll(".nv-noData").data([E]);return M.enter().append("text").attr("class","nvd3 nv-noData").attr("dy","-.7em").style("text-anchor","middle"),M.attr("x",o.left+L/2).attr("y",o.top+A/2).text(function(e){return e}),N}C.selectAll(".nv-noData").remove(),g=t.xScale(),y=t.yScale();var _=C.selectAll("g.nv-wrap.nv-lineChart").data([m]),D=_.enter().append("g").attr("class","nvd3 nv-wrap nv-lineChart").append("g"),P=_.select("g");D.append("rect").style("opacity",0),D.append("g").attr("class","nv-x nv-axis"),D.append("g").attr("class","nv-y nv-axis"),D.append("g").attr("class","nv-linesWrap"),D.append("g").attr("class","nv-legendWrap"),D.append("g").attr("class","nv-interactive"),P.select("rect").attr("width",L).attr("height",A),l&&(i.width(L),P.select(".nv-legendWrap").datum(m).call(i),o.top!=i.height()&&(o.top=i.height(),A=(f||parseInt(C.style("height"))||400)-o.top-o.bottom),_.select(".nv-legendWrap").attr("transform","translate(0,"+ -o.top+")")),_.attr("transform","translate("+o.left+","+o.top+")"),p&&P.select(".nv-y.nv-axis").attr("transform","translate("+L+",0)"),d&&(s.width(L).height(A).margin({left:o.left,top:o.top}).svgContainer(C).xScale(g),_.select(".nv-interactive").call(s)),t.width(L).height(A).color(m.map(function(e,t){return e.color||u(e,t)}).filter(function(e,t){return!m[t].disabled}));var H=P.select(".nv-linesWrap").datum(m.filter(function(e){return!e.disabled}));H.transition().call(t),c&&(n.scale(g).ticks(L/100).tickSize(-A,0),P.select(".nv-x.nv-axis").attr("transform","translate(0,"+y.range()[0]+")"),P.select(".nv-x.nv-axis").transition().call(n)),h&&(r.scale(y).ticks(A/36).tickSize(-L,0),P.select(".nv-y.nv-axis").transition().call(r)),i.dispatch.on("stateChange",function(e){b=e,S.stateChange(b),N.update()}),s.dispatch.on("elementMousemove",function(i){t.clearHighlights();var a,f,l,c=[];m.filter(function(e,t){return e.seriesIndex=t,!e.disabled}).forEach(function(n,r){f=e.interactiveBisect(n.values,i.pointXValue,N.x()),t.highlightPoint(r,f,!0);var s=n.values[f];if(typeof s=="undefined")return;typeof a=="undefined"&&(a=s),typeof l=="undefined"&&(l=N.xScale()(N.x()(s,f))),c.push({key:n.key,value:N.y()(s,f),color:u(n,n.seriesIndex)})});if(c.length>2){var h=N.yScale().invert(i.mouseY),p=Math.abs(N.yScale().domain()[0]-N.yScale().domain()[1]),d=.03*p,g=e.nearestValueIndex(c.map(function(e){return e.value}),h,d);g!==null&&(c[g].highlight=!0)}var y=n.tickFormat()(N.x()(a,f));s.tooltip.position({left:l+o.left,top:i.mouseY+o.top}).chartContainer(k.parentNode).enabled(v).valueFormatter(function(e,t){return r.tickFormat()(e)}).data({value:y,series:c})(),s.renderGuideLine(l)}),s.dispatch.on("elementMouseout",function(e){S.tooltipHide(),t.clearHighlights()}),S.on("tooltipShow",function(e){v&&T(e,k.parentNode)}),S.on("changeState",function(e){typeof e.disabled!="undefined"&&(m.forEach(function(t,n){t.disabled=e.disabled[n]}),b.disabled=e.disabled),N.update()})}),N}var t=e.models.line(),n=e.models.axis(),r=e.models.axis(),i=e.models.legend(),s=e.interactiveGuideline(),o={top:30,right:20,bottom:50,left:60},u=e.utils.defaultColor(),a=null,f=null,l=!0,c=!0,h=!0,p=!1,d=!1,v=!0,m=function(e,t,n,r,i){return"<h3>"+e+"</h3>"+"<p>"+n+" at "+t+"</p>"},g,y,b={},w=null,E="No Data Available.",S=d3.dispatch("tooltipShow","tooltipHide","stateChange","changeState"),x=250;n.orient("bottom").tickPadding(7),r.orient(p?"right":"left");var T=function(i,s){var o=i.pos[0]+(s.offsetLeft||0),u=i.pos[1]+(s.offsetTop||0),a=n.tickFormat()(t.x()(i.point,i.pointIndex)),f=r.tickFormat()(t.y()(i.point,i.pointIndex)),l=m(i.series.key,a,f,i,N);e.tooltip.show([o,u],l,null,null,s)};return t.dispatch.on("elementMouseover.tooltip",function(e){e.pos=[e.pos[0]+o.left,e.pos[1]+o.top],S.tooltipShow(e)}),t.dispatch.on("elementMouseout.tooltip",function(e){S.tooltipHide(e)}),S.on("tooltipHide",function(){v&&e.tooltip.cleanup()}),N.dispatch=S,N.lines=t,N.legend=i,N.xAxis=n,N.yAxis=r,N.interactiveLayer=s,d3.rebind(N,t,"defined","isArea","x","y","size","xScale","yScale","xDomain","yDomain","xRange","yRange","forceX","forceY","interactive","clipEdge","clipVoronoi","useVoronoi","id","interpolate"),N.options=e.utils.optionsFunc.bind(N),N.margin=function(e){return arguments.length?(o.top=typeof e.top!="undefined"?e.top:o.top,o.right=typeof e.right!="undefined"?e.right:o.right,o.bottom=typeof e.bottom!="undefined"?e.bottom:o.bottom,o.left=typeof e.left!="undefined"?e.left:o.left,N):o},N.width=function(e){return arguments.length?(a=e,N):a},N.height=function(e){return arguments.length?(f=e,N):f},N.color=function(t){return arguments.length?(u=e.utils.getColor(t),i.color(u),N):u},N.showLegend=function(e){return arguments.length?(l=e,N):l},N.showXAxis=function(e){return arguments.length?(c=e,N):c},N.showYAxis=function(e){return arguments.length?(h=e,N):h},N.rightAlignYAxis=function(e){return arguments.length?(p=e,r.orient(e?"right":"left"),N):p},N.useInteractiveGuideline=function(e){return arguments.length?(d=e,e===!0&&(N.interactive(!1),N.useVoronoi(!1)),N):d},N.tooltips=function(e){return arguments.length?(v=e,N):v},N.tooltipContent=function(e){return arguments.length?(m=e,N):m},N.state=function(e){return arguments.length?(b=e,N):b},N.defaultState=function(e){return arguments.length?(w=e,N):w},N.noData=function(e){return arguments.length?(E=e,N):E},N.transitionDuration=function(e){return arguments.length?(x=e,N):x},N},e.models.linePlusBarChart=function(){"use strict";function T(e){return e.each(function(e){var l=d3.select(this),c=this,v=(a||parseInt(l.style("width"))||960)-u.left-u.right,N=(f||parseInt(l.style("height"))||400)-u.top-u.bottom;T.update=function(){l.transition().call(T)},b.disabled=e.map(function(e){return!!e.disabled});if(!w){var C;w={};for(C in b)b[C]instanceof Array?w[C]=b[C].slice(0):w[C]=b[C]}if(!e||!e.length||!e.filter(function(e){return e.values.length}).length){var k=l.selectAll(".nv-noData").data([E]);return k.enter().append("text").attr("class","nvd3 nv-noData").attr("dy","-.7em").style("text-anchor","middle"),k.attr("x",u.left+v/2).attr("y",u.top+N/2).text(function(e){return e}),T}l.selectAll(".nv-noData").remove();var L=e.filter(function(e){return!e.disabled&&e.bar}),A=e.filter(function(e){return!e.bar});m=A.filter(function(e){return!e.disabled}).length&&A.filter(function(e){return!e.disabled})[0].values.length?t.xScale():n.xScale(),g=n.yScale(),y=t.yScale();var O=d3.select(this).selectAll("g.nv-wrap.nv-linePlusBar").data([e]),M=O.enter().append("g").attr("class","nvd3 nv-wrap nv-linePlusBar").append("g"),_=O.select("g");M.append("g").attr("class","nv-x nv-axis"),M.append("g").attr("class","nv-y1 nv-axis"),M.append("g").attr("class","nv-y2 nv-axis"),M.append("g").attr("class","nv-barsWrap"),M.append("g").attr("class","nv-linesWrap"),M.append("g").attr("class","nv-legendWrap"),p&&(o.width(v/2),_.select(".nv-legendWrap").datum(e.map(function(e){return e.originalKey=e.originalKey===undefined?e.key:e.originalKey,e.key=e.originalKey+(e.bar?" (left axis)":" (right axis)"),e})).call(o),u.top!=o.height()&&(u.top=o.height(),N=(f||parseInt(l.style("height"))||400)-u.top-u.bottom),_.select(".nv-legendWrap").attr("transform","translate("+v/2+","+ -u.top+")")),O.attr("transform","translate("+u.left+","+u.top+")"),t.width(v).height(N).color(e.map(function(e,t){return e.color||h(e,t)}).filter(function(t,n){return!e[n].disabled&&!e[n].bar})),n.width(v).height(N).color(e.map(function(e,t){return e.color||h(e,t)}).filter(function(t,n){return!e[n].disabled&&e[n].bar}));var D=_.select(".nv-barsWrap").datum(L.length?L:[{values:[]}]),P=_.select(".nv-linesWrap").datum(A[0]&&!A[0].disabled?A:[{values:[]}]);d3.transition(D).call(n),d3.transition(P).call(t),r.scale(m).ticks(v/100).tickSize(-N,0),_.select(".nv-x.nv-axis").attr("transform","translate(0,"+g.range()[0]+")"),d3.transition(_.select(".nv-x.nv-axis")).call(r),i.scale(g).ticks(N/36).tickSize(-v,0),d3.transition(_.select(".nv-y1.nv-axis")).style("opacity",L.length?1:0).call(i),s.scale(y).ticks(N/36).tickSize(L.length?0:-v,0),_.select(".nv-y2.nv-axis").style("opacity",A.length?1:0).attr("transform","translate("+v+",0)"),d3.transition(_.select(".nv-y2.nv-axis")).call(s),o.dispatch.on("stateChange",function(e){b=e,S.stateChange(b),T.update()}),S.on("tooltipShow",function(e){d&&x(e,c.parentNode)}),S.on("changeState",function(t){typeof t.disabled!="undefined"&&(e.forEach(function(e,n){e.disabled=t.disabled[n]}),b.disabled=t.disabled),T.update()})}),T}var t=e.models.line(),n=e.models.historicalBar(),r=e.models.axis(),i=e.models.axis(),s=e.models.axis(),o=e.models.legend(),u={top:30,right:60,bottom:50,left:60},a=null,f=null,l=function(e){return e.x},c=function(e){return e.y},h=e.utils.defaultColor(),p=!0,d=!0,v=function(e,t,n,r,i){return"<h3>"+e+"</h3>"+"<p>"+n+" at "+t+"</p>"},m,g,y,b={},w=null,E="No Data Available.",S=d3.dispatch("tooltipShow","tooltipHide","stateChange","changeState");n.padData(!0),t.clipEdge(!1).padData(!0),r.orient("bottom").tickPadding(7).highlightZero(!1),i.orient("left"),s.orient("right");var x=function(n,o){var u=n.pos[0]+(o.offsetLeft||0),a=n.pos[1]+(o.offsetTop||0),f=r.tickFormat()(t.x()(n.point,n.pointIndex)),l=(n.series.bar?i:s).tickFormat()(t.y()(n.point,n.pointIndex)),c=v(n.series.key,f,l,n,T);e.tooltip.show([u,a],c,n.value<0?"n":"s",null,o)};return t.dispatch.on("elementMouseover.tooltip",function(e){e.pos=[e.pos[0]+u.left,e.pos[1]+u.top],S.tooltipShow(e)}),t.dispatch.on("elementMouseout.tooltip",function(e){S.tooltipHide(e)}),n.dispatch.on("elementMouseover.tooltip",function(e){e.pos=[e.pos[0]+u.left,e.pos[1]+u.top],S.tooltipShow(e)}),n.dispatch.on("elementMouseout.tooltip",function(e){S.tooltipHide(e)}),S.on("tooltipHide",function(){d&&e.tooltip.cleanup()}),T.dispatch=S,T.legend=o,T.lines=t,T.bars=n,T.xAxis=r,T.y1Axis=i,T.y2Axis=s,d3.rebind(T,t,"defined","size","clipVoronoi","interpolate"),T.options=e.utils.optionsFunc.bind(T),T.x=function(e){return arguments.length?(l=e,t.x(e),n.x(e),T):l},T.y=function(e){return arguments.length?(c=e,t.y(e),n.y(e),T):c},T.margin=function(e){return arguments.length?(u.top=typeof e.top!="undefined"?e.top:u.top,u.right=typeof e.right!="undefined"?e.right:u.right,u.bottom=typeof e.bottom!="undefined"?e.bottom:u.bottom,u.left=typeof e.left!="undefined"?e.left:u.left,T):u},T.width=function(e){return arguments.length?(a=e,T):a},T.height=function(e){return arguments.length?(f=e,T):f},T.color=function(t){return arguments.length?(h=e.utils.getColor(t),o.color(h),T):h},T.showLegend=function(e){return arguments.length?(p=e,T):p},T.tooltips=function(e){return arguments.length?(d=e,T):d},T.tooltipContent=function(e){return arguments.length?(v=e,T):v},T.state=function(e){return arguments.length?(b=e,T):b},T.defaultState=function(e){return arguments.length?(w=e,T):w},T.noData=function(e){return arguments.length?(E=e,T):E},T},e.models.lineWithFocusChart=function(){"use strict";function k(e){return e.each(function(e){function U(e){var t=+(e=="e"),n=t?1:-1,r=M/3;return"M"+.5*n+","+r+"A6,6 0 0 "+t+" "+6.5*n+","+(r+6)+"V"+(2*r-6)+"A6,6 0 0 "+t+" "+.5*n+","+2*r+"Z"+"M"+2.5*n+","+(r+8)+"V"+(2*r-8)+"M"+4.5*n+","+(r+8)+"V"+(2*r-8)}function z(){a.empty()||a.extent(w),I.data([a.empty()?g.domain():w]).each(function(e,t){var n=g(e[0])-v.range()[0],r=v.range()[1]-g(e[1]);d3.select(this).select(".left").attr("width",n<0?0:n),d3.select(this).select(".right").attr("x",g(e[1])).attr("width",r<0?0:r)})}function W(){w=a.empty()?null:a.extent();var n=a.empty()?g.domain():a.extent();if(Math.abs(n[0]-n[1])<=1)return;T.brush({extent:n,brush:a}),z();var s=H.select(".nv-focus .nv-linesWrap").datum(e.filter(function(e){return!e.disabled}).map(function(e,r){return{key:e.key,values:e.values.filter(function(e,r){return t.x()(e,r)>=n[0]&&t.x()(e,r)<=n[1]})}}));s.transition().duration(N).call(t),H.select(".nv-focus .nv-x.nv-axis").transition().duration(N).call(r),H.select(".nv-focus .nv-y.nv-axis").transition().duration(N).call(i)}var S=d3.select(this),L=this,A=(h||parseInt(S.style("width"))||960)-f.left-f.right,O=(p||parseInt(S.style("height"))||400)-f.top-f.bottom-d,M=d-l.top-l.bottom;k.update=function(){S.transition().duration(N).call(k)},k.container=this;if(!e||!e.length||!e.filter(function(e){return e.values.length}).length){var _=S.selectAll(".nv-noData").data([x]);return _.enter().append("text").attr("class","nvd3 nv-noData").attr("dy","-.7em").style("text-anchor","middle"),_.attr("x",f.left+A/2).attr("y",f.top+O/2).text(function(e){return e}),k}S.selectAll(".nv-noData").remove(),v=t.xScale(),m=t.yScale(),g=n.xScale(),y=n.yScale();var D=S.selectAll("g.nv-wrap.nv-lineWithFocusChart").data([e]),P=D.enter().append("g").attr("class","nvd3 nv-wrap nv-lineWithFocusChart").append("g"),H=D.select("g");P.append("g").attr("class","nv-legendWrap");var B=P.append("g").attr("class","nv-focus");B.append("g").attr("class","nv-x nv-axis"),B.append("g").attr("class","nv-y nv-axis"),B.append("g").attr("class","nv-linesWrap");var j=P.append("g").attr("class","nv-context");j.append("g").attr("class","nv-x nv-axis"),j.append("g").attr("class","nv-y nv-axis"),j.append("g").attr("class","nv-linesWrap"),j.append("g").attr("class","nv-brushBackground"),j.append("g").attr("class","nv-x nv-brush"),b&&(u.width(A),H.select(".nv-legendWrap").datum(e).call(u),f.top!=u.height()&&(f.top=u.height(),O=(p||parseInt(S.style("height"))||400)-f.top-f.bottom-d),H.select(".nv-legendWrap").attr("transform","translate(0,"+ -f.top+")")),D.attr("transform","translate("+f.left+","+f.top+")"),t.width(A).height(O).color(e.map(function(e,t){return e.color||c(e,t)}).filter(function(t,n){return!e[n].disabled})),n.defined(t.defined()).width(A).height(M).color(e.map(function(e,t){return e.color||c(e,t)}).filter(function(t,n){return!e[n].disabled})),H.select(".nv-context").attr("transform","translate(0,"+(O+f.bottom+l.top)+")");var F=H.select(".nv-context .nv-linesWrap").datum(e.filter(function(e){return!e.disabled}));d3.transition(F).call(n),r.scale(v).ticks(A/100).tickSize(-O,0),i.scale(m).ticks(O/36).tickSize(-A,0),H.select(".nv-focus .nv-x.nv-axis").attr("transform","translate(0,"+O+")"),a.x(g).on("brush",function(){var e=k.transitionDuration();k.transitionDuration(0),W(),k.transitionDuration(e)}),w&&a.extent(w);var I=H.select(".nv-brushBackground").selectAll("g").data([w||a.extent()]),q=I.enter().append("g");q.append("rect").attr("class","left").attr("x",0).attr("y",0).attr("height",M),q.append("rect").attr("class","right").attr("x",0).attr("y",0).attr("height",M);var R=H.select(".nv-x.nv-brush").call(a);R.selectAll("rect").attr("height",M),R.selectAll(".resize").append("path").attr("d",U),W(),s.scale(g).ticks(A/100).tickSize(-M,0),H.select(".nv-context .nv-x.nv-axis").attr("transform","translate(0,"+y.range()[0]+")"),d3.transition(H.select(".nv-context .nv-x.nv-axis")).call(s),o.scale(y).ticks(M/36).tickSize(-A,0),d3.transition(H.select(".nv-context .nv-y.nv-axis")).call(o),H.select(".nv-context .nv-x.nv-axis").attr("transform","translate(0,"+y.range()[0]+")"),u.dispatch.on("stateChange",function(e){k.update()}),T.on("tooltipShow",function(e){E&&C(e,L.parentNode)})}),k}var t=e.models.line(),n=e.models.line(),r=e.models.axis(),i=e.models.axis(),s=e.models.axis(),o=e.models.axis(),u=e.models.legend(),a=d3.svg.brush(),f={top:30,right:30,bottom:30,left:60},l={top:0,right:30,bottom:20,left:60},c=e.utils.defaultColor(),h=null,p=null,d=100,v,m,g,y,b=!0,w=null,E=!0,S=function(e,t,n,r,i){return"<h3>"+e+"</h3>"+"<p>"+n+" at "+t+"</p>"},x="No Data Available.",T=d3.dispatch("tooltipShow","tooltipHide","brush"),N=250;t.clipEdge(!0),n.interactive(!1),r.orient("bottom").tickPadding(5),i.orient("left"),s.orient("bottom").tickPadding(5),o.orient("left");var C=function(n,s){var o=n.pos[0]+(s.offsetLeft||0),u=n.pos[1]+(s.offsetTop||0),a=r.tickFormat()(t.x()(n.point,n.pointIndex)),f=i.tickFormat()(t.y()(n.point,n.pointIndex)),l=S(n.series.key,a,f,n,k);e.tooltip.show([o,u],l,null,null,s)};return t.dispatch.on("elementMouseover.tooltip",function(e){e.pos=[e.pos[0]+f.left,e.pos[1]+f.top],T.tooltipShow(e)}),t.dispatch.on("elementMouseout.tooltip",function(e){T.tooltipHide(e)}),T.on("tooltipHide",function(){E&&e.tooltip.cleanup()}),k.dispatch=T,k.legend=u,k.lines=t,k.lines2=n,k.xAxis=r,k.yAxis=i,k.x2Axis=s,k.y2Axis=o,d3.rebind(k,t,"defined","isArea","size","xDomain","yDomain","xRange","yRange","forceX","forceY","interactive","clipEdge","clipVoronoi","id"),k.options=e.utils.optionsFunc.bind(k),k.x=function(e){return arguments.length?(t.x(e),n.x(e),k):t.x},k.y=function(e){return arguments.length?(t.y(e),n.y(e),k):t.y},k.margin=function(e){return arguments.length?(f.top=typeof e.top!="undefined"?e.top:f.top,f.right=typeof e.right!="undefined"?e.right:f.right,f.bottom=typeof e.bottom!="undefined"?e.bottom:f.bottom,f.left=typeof e.left!="undefined"?e.left:f.left,k):f},k.margin2=function(e){return arguments.length?(l=e,k):l},k.width=function(e){return arguments.length?(h=e,k):h},k.height=function(e){return arguments.length?(p=e,k):p},k.height2=function(e){return arguments.length?(d=e,k):d},k.color=function(t){return arguments.length?(c=e.utils.getColor(t),u.color(c),k):c},k.showLegend=function(e){return arguments.length?(b=e,k):b},k.tooltips=function(e){return arguments.length?(E=e,k):E},k.tooltipContent=function(e){return arguments.length?(S=e,k):S},k.interpolate=function(e){return arguments.length?(t.interpolate(e),n.interpolate(e),k):t.interpolate()},k.noData=function(e){return arguments.length?(x=e,k):x},k.xTickFormat=function(e){return arguments.length?(r.tickFormat(e),s.tickFormat(e),k):r.tickFormat()},k.yTickFormat=function(e){return arguments.length?(i.tickFormat(e),o.tickFormat(e),k):i.tickFormat()},k.brushExtent=function(e){return arguments.length?(w=e,k):w},k.transitionDuration=function(e){return arguments.length?(N=e,k):N},k},e.models.linePlusBarWithFocusChart=function(){"use strict";function B(e){return e.each(function(e){function nt(e){var t=+(e=="e"),n=t?1:-1,r=q/3;return"M"+.5*n+","+r+"A6,6 0 0 "+t+" "+6.5*n+","+(r+6)+"V"+(2*r-6)+"A6,6 0 0 "+t+" "+.5*n+","+2*r+"Z"+"M"+2.5*n+","+(r+8)+"V"+(2*r-8)+"M"+4.5*n+","+(r+8)+"V"+(2*r-8)}function rt(){h.empty()||h.extent(x),Z.data([h.empty()?k.domain():x]).each(function(e,t){var n=k(e[0])-k.range()[0],r=k.range()[1]-k(e[1]);d3.select(this).select(".left").attr("width",n<0?0:n),d3.select(this).select(".right").attr("x",k(e[1])).attr("width",r<0?0:r)})}function it(){x=h.empty()?null:h.extent(),S=h.empty()?k.domain():h.extent(),D.brush({extent:S,brush:h}),rt(),r.width(F).height(I).color(e.map(function(e,t){return e.color||w(e,t)}).filter(function(t,n){return!e[n].disabled&&e[n].bar})),t.width(F).height(I).color(e.map(function(e,t){return e.color||w(e,t)}).filter(function(t,n){return!e[n].disabled&&!e[n].bar}));var n=J.select(".nv-focus .nv-barsWrap").datum(U.length?U.map(function(e,t){return{key:e.key,values:e.values.filter(function(e,t){return r.x()(e,t)>=S[0]&&r.x()(e,t)<=S[1]})}}):[{values:[]}]),i=J.select(".nv-focus .nv-linesWrap").datum(z[0].disabled?[{values:[]}]:z.map(function(e,n){return{key:e.key,values:e.values.filter(function(e,n){return t.x()(e,n)>=S[0]&&t.x()(e,n)<=S[1]})}}));U.length?C=r.xScale():C=t.xScale(),s.scale(C).ticks(F/100).tickSize(-I,0),s.domain([Math.ceil(S[0]),Math.floor(S[1])]),J.select(".nv-x.nv-axis").transition().duration(P).call(s),n.transition().duration(P).call(r),i.transition().duration(P).call(t),J.select(".nv-focus .nv-x.nv-axis").attr("transform","translate(0,"+L.range()[0]+")"),u.scale(L).ticks(I/36).tickSize(-F,0),J.select(".nv-focus .nv-y1.nv-axis").style("opacity",U.length?1:0),a.scale(A).ticks(I/36).tickSize(U.length?0:-F,0),J.select(".nv-focus .nv-y2.nv-axis").style("opacity",z.length?1:0).attr("transform","translate("+C.range()[1]+",0)"),J.select(".nv-focus .nv-y1.nv-axis").transition().duration(P).call(u),J.select(".nv-focus .nv-y2.nv-axis").transition().duration(P).call(a)}var N=d3.select(this),j=this,F=(v||parseInt(N.style("width"))||960)-p.left-p.right,I=(m||parseInt(N.style("height"))||400)-p.top-p.bottom-g,q=g-d.top-d.bottom;B.update=function(){N.transition().duration(P).call(B)},B.container=this;if(!e||!e.length||!e.filter(function(e){return e.values.length}).length){var R=N.selectAll(".nv-noData").data([_]);return R.enter().append("text").attr("class","nvd3 nv-noData").attr("dy","-.7em").style("text-anchor","middle"),R.attr("x",p.left+F/2).attr("y",p.top+I/2).text(function(e){return e}),B}N.selectAll(".nv-noData").remove();var U=e.filter(function(e){return!e.disabled&&e.bar}),z=e.filter(function(e){return!e.bar});C=r.xScale(),k=o.scale(),L=r.yScale(),A=t.yScale(),O=i.yScale(),M=n.yScale();var W=e.filter(function(e){return!e.disabled&&e.bar}).map(function(e){return e.values.map(function(e,t){return{x:y(e,t),y:b(e,t)}})}),X=e.filter(function(e){return!e.disabled&&!e.bar}).map(function(e){return e.values.map(function(e,t){return{x:y(e,t),y:b(e,t)}})});C.range([0,F]),k.domain(d3.extent(d3.merge(W.concat(X)),function(e){return e.x})).range([0,F]);var V=N.selectAll("g.nv-wrap.nv-linePlusBar").data([e]),$=V.enter().append("g").attr("class","nvd3 nv-wrap nv-linePlusBar").append("g"),J=V.select("g");$.append("g").attr("class","nv-legendWrap");var K=$.append("g").attr("class","nv-focus");K.append("g").attr("class","nv-x nv-axis"),K.append("g").attr("class","nv-y1 nv-axis"),K.append("g").attr("class","nv-y2 nv-axis"),K.append("g").attr("class","nv-barsWrap"),K.append("g").attr("class","nv-linesWrap");var Q=$.append("g").attr("class","nv-context");Q.append("g").attr("class","nv-x nv-axis"),Q.append("g").attr("class","nv-y1 nv-axis"),Q.append("g").attr("class","nv-y2 nv-axis"),Q.append("g").attr("class","nv-barsWrap"),Q.append("g").attr("class","nv-linesWrap"),Q.append("g").attr("class","nv-brushBackground"),Q.append("g").attr("class","nv-x nv-brush"),E&&(c.width(F/2),J.select(".nv-legendWrap").datum(e.map(function(e){return e.originalKey=e.originalKey===undefined?e.key:e.originalKey,e.key=e.originalKey+(e.bar?" (left axis)":" (right axis)"),e})).call(c),p.top!=c.height()&&(p.top=c.height(),I=(m||parseInt(N.style("height"))||400)-p.top-p.bottom-g),J.select(".nv-legendWrap").attr("transform","translate("+F/2+","+ -p.top+")")),V.attr("transform","translate("+p.left+","+p.top+")"),i.width(F).height(q).color(e.map(function(e,t){return e.color||w(e,t)}).filter(function(t,n){return!e[n].disabled&&e[n].bar})),n.width(F).height(q).color(e.map(function(e,t){return e.color||w(e,t)}).filter(function(t,n){return!e[n].disabled&&!e[n].bar}));var G=J.select(".nv-context .nv-barsWrap").datum(U.length?U:[{values:[]}]),Y=J.select(".nv-context .nv-linesWrap").datum(z[0].disabled?[{values:[]}]:z);J.select(".nv-context").attr("transform","translate(0,"+(I+p.bottom+d.top)+")"),G.transition().call(i),Y.transition().call(n),h.x(k).on("brush",it),x&&h.extent(x);var Z=J.select(".nv-brushBackground").selectAll("g").data([x||h.extent()]),et=Z.enter().append("g");et.append("rect").attr("class","left").attr("x",0).attr("y",0).attr("height",q),et.append("rect").attr("class","right").attr("x",0).attr("y",0).attr("height",q);var tt=J.select(".nv-x.nv-brush").call(h);tt.selectAll("rect").attr("height",q),tt.selectAll(".resize").append("path").attr("d",nt),o.ticks(F/100).tickSize(-q,0),J.select(".nv-context .nv-x.nv-axis").attr("transform","translate(0,"+O.range()[0]+")"),J.select(".nv-context .nv-x.nv-axis").transition().call(o),f.scale(O).ticks(q/36).tickSize(-F,0),J.select(".nv-context .nv-y1.nv-axis").style("opacity",U.length?1:0).attr("transform","translate(0,"+k.range()[0]+")"),J.select(".nv-context .nv-y1.nv-axis").transition().call(f),l.scale(M).ticks(q/36).tickSize(U.length?0:-F,0),J.select(".nv-context .nv-y2.nv-axis").style("opacity",z.length?1:0).attr("transform","translate("+k.range()[1]+",0)"),J.select(".nv-context .nv-y2.nv-axis").transition().call(l),c.dispatch.on("stateChange",function(e){B.update()}),D.on("tooltipShow",function(e){T&&H(e,j.parentNode)}),it()}),B}var t=e.models.line(),n=e.models.line(),r=e.models.historicalBar(),i=e.models.historicalBar(),s=e.models.axis(),o=e.models.axis(),u=e.models.axis(),a=e.models.axis(),f=e.models.axis(),l=e.models.axis(),c=e.models.legend(),h=d3.svg.brush(),p={top:30,right:30,bottom:30,left:60},d={top:0,right:30,bottom:20,left:60},v=null,m=null,g=100,y=function(e){return e.x},b=function(e){return e.y},w=e.utils.defaultColor(),E=!0,S,x=null,T=!0,N=function(e,t,n,r,i){return"<h3>"+e+"</h3>"+"<p>"+n+" at "+t+"</p>"},C,k,L,A,O,M,_="No Data Available.",D=d3.dispatch("tooltipShow","tooltipHide","brush"),P=0;t.clipEdge(!0),n.interactive(!1),s.orient("bottom").tickPadding(5),u.orient("left"),a.orient("right"),o.orient("bottom").tickPadding(5),f.orient("left"),l.orient("right");var H=function(n,r){S&&(n.pointIndex+=Math.ceil(S[0]));var i=n.pos[0]+(r.offsetLeft||0),o=n.pos[1]+(r.offsetTop||0),f=s.tickFormat()(t.x()(n.point,n.pointIndex)),l=(n.series.bar?u:a).tickFormat()(t.y()(n.point,n.pointIndex)),c=N(n.series.key,f,l,n,B);e.tooltip.show([i,o],c,n.value<0?"n":"s",null,r)};return t.dispatch.on("elementMouseover.tooltip",function(e){e.pos=[e.pos[0]+p.left,e.pos[1]+p.top],D.tooltipShow(e)}),t.dispatch.on("elementMouseout.tooltip",function(e){D.tooltipHide(e)}),r.dispatch.on("elementMouseover.tooltip",function(e){e.pos=[e.pos[0]+p.left,e.pos[1]+p.top],D.tooltipShow(e)}),r.dispatch.on("elementMouseout.tooltip",function(e){D.tooltipHide(e)}),D.on("tooltipHide",function(){T&&e.tooltip.cleanup()}),B.dispatch=D,B.legend=c,B.lines=t,B.lines2=n,B.bars=r,B.bars2=i,B.xAxis=s,B.x2Axis=o,B.y1Axis=u,B.y2Axis=a,B.y3Axis=f,B.y4Axis=l,d3.rebind(B,t,"defined","size","clipVoronoi","interpolate"),B.options=e.utils.optionsFunc.bind(B),B.x=function(e){return arguments.length?(y=e,t.x(e),r.x(e),B):y},B.y=function(e){return arguments.length?(b=e,t.y(e),r.y(e),B):b},B.margin=function(e){return arguments.length?(p.top=typeof e.top!="undefined"?e.top:p.top,p.right=typeof e.right!="undefined"?e.right:p.right,p.bottom=typeof e.bottom!="undefined"?e.bottom:p.bottom,p.left=typeof e.left!="undefined"?e.left:p.left,B):p},B.width=function(e){return arguments.length?(v=e,B):v},B.height=function(e){return arguments.length?(m=e,B):m},B.color=function(t){return arguments.length?(w=e.utils.getColor(t),c.color(w),B):w},B.showLegend=function(e){return arguments.length?(E=e,B):E},B.tooltips=function(e){return arguments.length?(T=e,B):T},B.tooltipContent=function(e){return arguments.length?(N=e,B):N},B.noData=function(e){return arguments.length?(_=e,B):_},B.brushExtent=function(e){return arguments.length?(x=e,B):x},B},e.models.multiBar=function(){"use strict";function C(e){return e.each(function(e){var C=n-t.left-t.right,k=r-t.top-t.bottom,L=d3.select(this);d&&e.length&&(d=[{values:e[0].values.map(function(e){return{x:e.x,y:0,series:e.series,size:.01}})}]),c&&(e=d3.layout.stack().offset(h).values(function(e){return e.values}).y(a)(!e.length&&d?d:e)),e.forEach(function(e,t){e.values.forEach(function(e){e.series=t})}),c&&e[0].values.map(function(t,n){var r=0,i=0;e.map(function(e){var t=e.values[n];t.size=Math.abs(t.y),t.y<0?(t.y1=i,i-=t.size):(t.y1=t.size+r,r+=t.size)})});var A=y&&b?[]:e.map(function(e){return e.values.map(function(e,t){return{x:u(e,t),y:a(e,t),y0:e.y0,y1:e.y1}})});i.domain(y||d3.merge(A).map(function(e){return e.x})).rangeBands(w||[0,C],S),s.domain(b||d3.extent(d3.merge(A).map(function(e){return c?e.y>0?e.y1:e.y1+e.y:e.y}).concat(f))).range(E||[k,0]),i.domain()[0]===i.domain()[1]&&(i.domain()[0]?i.domain([i.domain()[0]-i.domain()[0]*.01,i.domain()[1]+i.domain()[1]*.01]):i.domain([-1,1])),s.domain()[0]===s.domain()[1]&&(s.domain()[0]?s.domain([s.domain()[0]+s.domain()[0]*.01,s.domain()[1]-s.domain()[1]*.01]):s.domain([-1,1])),T=T||i,N=N||s;var O=L.selectAll("g.nv-wrap.nv-multibar").data([e]),M=O.enter().append("g").attr("class","nvd3 nv-wrap nv-multibar"),_=M.append("defs"),D=M.append("g"),P=O.select("g");D.append("g").attr("class","nv-groups"),O.attr("transform","translate("+t.left+","+t.top+")"),_.append("clipPath").attr("id","nv-edge-clip-"+o).append("rect"),O.select("#nv-edge-clip-"+o+" rect").attr("width",C).attr("height",k),P.attr("clip-path",l?"url(#nv-edge-clip-"+o+")":"");var H=O.select(".nv-groups").selectAll(".nv-group").data(function(e){return e},function(e,t){return t});H.enter().append("g").style("stroke-opacity",1e-6).style("fill-opacity",1e-6),H.exit().transition().selectAll("rect.nv-bar").delay(function(t,n){return n*g/e[0].values.length}).attr("y",function(e){return c?N(e.y0):N(0)}).attr("height",0).remove(),H.attr("class",function(e,t){return"nv-group nv-series-"+t}).classed("hover",function(e){return e.hover}).style("fill",function(e,t){return p(e,t)}).style("stroke",function(e,t){return p(e,t)}),H.transition().style("stroke-opacity",1).style("fill-opacity",.75);var B=H.selectAll("rect.nv-bar").data(function(t){return d&&!e.length?d.values:t.values});B.exit().remove();var j=B.enter().append("rect").attr("class",function(e,t){return a(e,t)<0?"nv-bar negative":"nv-bar positive"}).attr("x",function(t,n,r){return c?0:r*i.rangeBand()/e.length}).attr("y",function(e){return N(c?e.y0:0)}).attr("height",0).attr("width",i.rangeBand()/(c?1:e.length)).attr("transform",function(e,t){return"translate("+i(u(e,t))+",0)"});B.style("fill",function(e,t,n){return p(e,n,t)}).style("stroke",function(e,t,n){return p(e,n,t)}).on("mouseover",function(t,n){d3.select(this).classed("hover",!0),x.elementMouseover({value:a(t,n),point:t,series:e[t.series],pos:[i(u(t,n))+i.rangeBand()*(c?e.length/2:t.series+.5)/e.length,s(a(t,n)+(c?t.y0:0))],pointIndex:n,seriesIndex:t.series,e:d3.event})}).on("mouseout",function(t,n){d3.select(this).classed("hover",!1),x.elementMouseout({value:a(t,n),point:t,series:e[t.series],pointIndex:n,seriesIndex:t.series,e:d3.event})}).on("click",function(t,n){x.elementClick({value:a(t,n),point:t,series:e[t.series],pos:[i(u(t,n))+i.rangeBand()*(c?e.length/2:t.series+.5)/e.length,s(a(t,n)+(c?t.y0:0))],pointIndex:n,seriesIndex:t.series,e:d3.event}),d3.event.stopPropagation()}).on("dblclick",function(t,n){x.elementDblClick({value:a(t,n),point:t,series:e[t.series],pos:[i(u(t,n))+
-i.rangeBand()*(c?e.length/2:t.series+.5)/e.length,s(a(t,n)+(c?t.y0:0))],pointIndex:n,seriesIndex:t.series,e:d3.event}),d3.event.stopPropagation()}),B.attr("class",function(e,t){return a(e,t)<0?"nv-bar negative":"nv-bar positive"}).transition().attr("transform",function(e,t){return"translate("+i(u(e,t))+",0)"}),v&&(m||(m=e.map(function(){return!0})),B.style("fill",function(e,t,n){return d3.rgb(v(e,t)).darker(m.map(function(e,t){return t}).filter(function(e,t){return!m[t]})[n]).toString()}).style("stroke",function(e,t,n){return d3.rgb(v(e,t)).darker(m.map(function(e,t){return t}).filter(function(e,t){return!m[t]})[n]).toString()})),c?B.transition().delay(function(t,n){return n*g/e[0].values.length}).attr("y",function(e,t){return s(c?e.y1:0)}).attr("height",function(e,t){return Math.max(Math.abs(s(e.y+(c?e.y0:0))-s(c?e.y0:0)),1)}).attr("x",function(t,n){return c?0:t.series*i.rangeBand()/e.length}).attr("width",i.rangeBand()/(c?1:e.length)):B.transition().delay(function(t,n){return n*g/e[0].values.length}).attr("x",function(t,n){return t.series*i.rangeBand()/e.length}).attr("width",i.rangeBand()/e.length).attr("y",function(e,t){return a(e,t)<0?s(0):s(0)-s(a(e,t))<1?s(0)-1:s(a(e,t))||0}).attr("height",function(e,t){return Math.max(Math.abs(s(a(e,t))-s(0)),1)||0}),T=i.copy(),N=s.copy()}),C}var t={top:0,right:0,bottom:0,left:0},n=960,r=500,i=d3.scale.ordinal(),s=d3.scale.linear(),o=Math.floor(Math.random()*1e4),u=function(e){return e.x},a=function(e){return e.y},f=[0],l=!0,c=!1,h="zero",p=e.utils.defaultColor(),d=!1,v=null,m,g=1200,y,b,w,E,S=.1,x=d3.dispatch("chartClick","elementClick","elementDblClick","elementMouseover","elementMouseout"),T,N;return C.dispatch=x,C.options=e.utils.optionsFunc.bind(C),C.x=function(e){return arguments.length?(u=e,C):u},C.y=function(e){return arguments.length?(a=e,C):a},C.margin=function(e){return arguments.length?(t.top=typeof e.top!="undefined"?e.top:t.top,t.right=typeof e.right!="undefined"?e.right:t.right,t.bottom=typeof e.bottom!="undefined"?e.bottom:t.bottom,t.left=typeof e.left!="undefined"?e.left:t.left,C):t},C.width=function(e){return arguments.length?(n=e,C):n},C.height=function(e){return arguments.length?(r=e,C):r},C.xScale=function(e){return arguments.length?(i=e,C):i},C.yScale=function(e){return arguments.length?(s=e,C):s},C.xDomain=function(e){return arguments.length?(y=e,C):y},C.yDomain=function(e){return arguments.length?(b=e,C):b},C.xRange=function(e){return arguments.length?(w=e,C):w},C.yRange=function(e){return arguments.length?(E=e,C):E},C.forceY=function(e){return arguments.length?(f=e,C):f},C.stacked=function(e){return arguments.length?(c=e,C):c},C.stackOffset=function(e){return arguments.length?(h=e,C):h},C.clipEdge=function(e){return arguments.length?(l=e,C):l},C.color=function(t){return arguments.length?(p=e.utils.getColor(t),C):p},C.barColor=function(t){return arguments.length?(v=e.utils.getColor(t),C):v},C.disabled=function(e){return arguments.length?(m=e,C):m},C.id=function(e){return arguments.length?(o=e,C):o},C.hideable=function(e){return arguments.length?(d=e,C):d},C.delay=function(e){return arguments.length?(g=e,C):g},C.groupSpacing=function(e){return arguments.length?(S=e,C):S},C},e.models.multiBarChart=function(){"use strict";function A(e){return e.each(function(e){var b=d3.select(this),O=this,M=(u||parseInt(b.style("width"))||960)-o.left-o.right,_=(a||parseInt(b.style("height"))||400)-o.top-o.bottom;A.update=function(){b.transition().duration(k).call(A)},A.container=this,S.disabled=e.map(function(e){return!!e.disabled});if(!x){var D;x={};for(D in S)S[D]instanceof Array?x[D]=S[D].slice(0):x[D]=S[D]}if(!e||!e.length||!e.filter(function(e){return e.values.length}).length){var P=b.selectAll(".nv-noData").data([T]);return P.enter().append("text").attr("class","nvd3 nv-noData").attr("dy","-.7em").style("text-anchor","middle"),P.attr("x",o.left+M/2).attr("y",o.top+_/2).text(function(e){return e}),A}b.selectAll(".nv-noData").remove(),w=t.xScale(),E=t.yScale();var H=b.selectAll("g.nv-wrap.nv-multiBarWithLegend").data([e]),B=H.enter().append("g").attr("class","nvd3 nv-wrap nv-multiBarWithLegend").append("g"),j=H.select("g");B.append("g").attr("class","nv-x nv-axis"),B.append("g").attr("class","nv-y nv-axis"),B.append("g").attr("class","nv-barsWrap"),B.append("g").attr("class","nv-legendWrap"),B.append("g").attr("class","nv-controlsWrap"),c&&(i.width(M-C()),t.barColor()&&e.forEach(function(e,t){e.color=d3.rgb("#ccc").darker(t*1.5).toString()}),j.select(".nv-legendWrap").datum(e).call(i),o.top!=i.height()&&(o.top=i.height(),_=(a||parseInt(b.style("height"))||400)-o.top-o.bottom),j.select(".nv-legendWrap").attr("transform","translate("+C()+","+ -o.top+")"));if(l){var F=[{key:"Grouped",disabled:t.stacked()},{key:"Stacked",disabled:!t.stacked()}];s.width(C()).color(["#444","#444","#444"]),j.select(".nv-controlsWrap").datum(F).attr("transform","translate(0,"+ -o.top+")").call(s)}H.attr("transform","translate("+o.left+","+o.top+")"),d&&j.select(".nv-y.nv-axis").attr("transform","translate("+M+",0)"),t.disabled(e.map(function(e){return e.disabled})).width(M).height(_).color(e.map(function(e,t){return e.color||f(e,t)}).filter(function(t,n){return!e[n].disabled}));var I=j.select(".nv-barsWrap").datum(e.filter(function(e){return!e.disabled}));I.transition().call(t);if(h){n.scale(w).ticks(M/100).tickSize(-_,0),j.select(".nv-x.nv-axis").attr("transform","translate(0,"+E.range()[0]+")"),j.select(".nv-x.nv-axis").transition().call(n);var q=j.select(".nv-x.nv-axis > g").selectAll("g");q.selectAll("line, text").style("opacity",1);if(m){var R=function(e,t){return"translate("+e+","+t+")"},U=5,z=17;q.selectAll("text").attr("transform",function(e,t,n){return R(0,n%2==0?U:z)});var W=d3.selectAll(".nv-x.nv-axis .nv-wrap g g text")[0].length;j.selectAll(".nv-x.nv-axis .nv-axisMaxMin text").attr("transform",function(e,t){return R(0,t===0||W%2!==0?z:U)})}v&&q.filter(function(t,n){return n%Math.ceil(e[0].values.length/(M/100))!==0}).selectAll("text, line").style("opacity",0),g&&q.selectAll(".tick text").attr("transform","rotate("+g+" 0,0)").style("text-anchor",g>0?"start":"end"),j.select(".nv-x.nv-axis").selectAll("g.nv-axisMaxMin text").style("opacity",1)}p&&(r.scale(E).ticks(_/36).tickSize(-M,0),j.select(".nv-y.nv-axis").transition().call(r)),i.dispatch.on("stateChange",function(e){S=e,N.stateChange(S),A.update()}),s.dispatch.on("legendClick",function(e,n){if(!e.disabled)return;F=F.map(function(e){return e.disabled=!0,e}),e.disabled=!1;switch(e.key){case"Grouped":t.stacked(!1);break;case"Stacked":t.stacked(!0)}S.stacked=t.stacked(),N.stateChange(S),A.update()}),N.on("tooltipShow",function(e){y&&L(e,O.parentNode)}),N.on("changeState",function(n){typeof n.disabled!="undefined"&&(e.forEach(function(e,t){e.disabled=n.disabled[t]}),S.disabled=n.disabled),typeof n.stacked!="undefined"&&(t.stacked(n.stacked),S.stacked=n.stacked),A.update()})}),A}var t=e.models.multiBar(),n=e.models.axis(),r=e.models.axis(),i=e.models.legend(),s=e.models.legend(),o={top:30,right:20,bottom:50,left:60},u=null,a=null,f=e.utils.defaultColor(),l=!0,c=!0,h=!0,p=!0,d=!1,v=!0,m=!1,g=0,y=!0,b=function(e,t,n,r,i){return"<h3>"+e+"</h3>"+"<p>"+n+" on "+t+"</p>"},w,E,S={stacked:!1},x=null,T="No Data Available.",N=d3.dispatch("tooltipShow","tooltipHide","stateChange","changeState"),C=function(){return l?180:0},k=250;t.stacked(!1),n.orient("bottom").tickPadding(7).highlightZero(!0).showMaxMin(!1).tickFormat(function(e){return e}),r.orient(d?"right":"left").tickFormat(d3.format(",.1f")),s.updateState(!1);var L=function(i,s){var o=i.pos[0]+(s.offsetLeft||0),u=i.pos[1]+(s.offsetTop||0),a=n.tickFormat()(t.x()(i.point,i.pointIndex)),f=r.tickFormat()(t.y()(i.point,i.pointIndex)),l=b(i.series.key,a,f,i,A);e.tooltip.show([o,u],l,i.value<0?"n":"s",null,s)};return t.dispatch.on("elementMouseover.tooltip",function(e){e.pos=[e.pos[0]+o.left,e.pos[1]+o.top],N.tooltipShow(e)}),t.dispatch.on("elementMouseout.tooltip",function(e){N.tooltipHide(e)}),N.on("tooltipHide",function(){y&&e.tooltip.cleanup()}),A.dispatch=N,A.multibar=t,A.legend=i,A.xAxis=n,A.yAxis=r,d3.rebind(A,t,"x","y","xDomain","yDomain","xRange","yRange","forceX","forceY","clipEdge","id","stacked","stackOffset","delay","barColor","groupSpacing"),A.options=e.utils.optionsFunc.bind(A),A.margin=function(e){return arguments.length?(o.top=typeof e.top!="undefined"?e.top:o.top,o.right=typeof e.right!="undefined"?e.right:o.right,o.bottom=typeof e.bottom!="undefined"?e.bottom:o.bottom,o.left=typeof e.left!="undefined"?e.left:o.left,A):o},A.width=function(e){return arguments.length?(u=e,A):u},A.height=function(e){return arguments.length?(a=e,A):a},A.color=function(t){return arguments.length?(f=e.utils.getColor(t),i.color(f),A):f},A.showControls=function(e){return arguments.length?(l=e,A):l},A.showLegend=function(e){return arguments.length?(c=e,A):c},A.showXAxis=function(e){return arguments.length?(h=e,A):h},A.showYAxis=function(e){return arguments.length?(p=e,A):p},A.rightAlignYAxis=function(e){return arguments.length?(d=e,r.orient(e?"right":"left"),A):d},A.reduceXTicks=function(e){return arguments.length?(v=e,A):v},A.rotateLabels=function(e){return arguments.length?(g=e,A):g},A.staggerLabels=function(e){return arguments.length?(m=e,A):m},A.tooltip=function(e){return arguments.length?(b=e,A):b},A.tooltips=function(e){return arguments.length?(y=e,A):y},A.tooltipContent=function(e){return arguments.length?(b=e,A):b},A.state=function(e){return arguments.length?(S=e,A):S},A.defaultState=function(e){return arguments.length?(x=e,A):x},A.noData=function(e){return arguments.length?(T=e,A):T},A.transitionDuration=function(e){return arguments.length?(k=e,A):k},A},e.models.multiBarHorizontal=function(){"use strict";function C(e){return e.each(function(e){var i=n-t.left-t.right,y=r-t.top-t.bottom,C=d3.select(this);p&&(e=d3.layout.stack().offset("zero").values(function(e){return e.values}).y(a)(e)),e.forEach(function(e,t){e.values.forEach(function(e){e.series=t})}),p&&e[0].values.map(function(t,n){var r=0,i=0;e.map(function(e){var t=e.values[n];t.size=Math.abs(t.y),t.y<0?(t.y1=i-t.size,i-=t.size):(t.y1=r,r+=t.size)})});var k=b&&w?[]:e.map(function(e){return e.values.map(function(e,t){return{x:u(e,t),y:a(e,t),y0:e.y0,y1:e.y1}})});s.domain(b||d3.merge(k).map(function(e){return e.x})).rangeBands(E||[0,y],.1),o.domain(w||d3.extent(d3.merge(k).map(function(e){return p?e.y>0?e.y1+e.y:e.y1:e.y}).concat(f))),d&&!p?o.range(S||[o.domain()[0]<0?m:0,i-(o.domain()[1]>0?m:0)]):o.range(S||[0,i]),T=T||s,N=N||d3.scale.linear().domain(o.domain()).range([o(0),o(0)]);var L=d3.select(this).selectAll("g.nv-wrap.nv-multibarHorizontal").data([e]),A=L.enter().append("g").attr("class","nvd3 nv-wrap nv-multibarHorizontal"),O=A.append("defs"),M=A.append("g"),_=L.select("g");M.append("g").attr("class","nv-groups"),L.attr("transform","translate("+t.left+","+t.top+")");var D=L.select(".nv-groups").selectAll(".nv-group").data(function(e){return e},function(e,t){return t});D.enter().append("g").style("stroke-opacity",1e-6).style("fill-opacity",1e-6),D.exit().transition().style("stroke-opacity",1e-6).style("fill-opacity",1e-6).remove(),D.attr("class",function(e,t){return"nv-group nv-series-"+t}).classed("hover",function(e){return e.hover}).style("fill",function(e,t){return l(e,t)}).style("stroke",function(e,t){return l(e,t)}),D.transition().style("stroke-opacity",1).style("fill-opacity",.75);var P=D.selectAll("g.nv-bar").data(function(e){return e.values});P.exit().remove();var H=P.enter().append("g").attr("transform",function(t,n,r){return"translate("+N(p?t.y0:0)+","+(p?0:r*s.rangeBand()/e.length+s(u(t,n)))+")"});H.append("rect").attr("width",0).attr("height",s.rangeBand()/(p?1:e.length)),P.on("mouseover",function(t,n){d3.select(this).classed("hover",!0),x.elementMouseover({value:a(t,n),point:t,series:e[t.series],pos:[o(a(t,n)+(p?t.y0:0)),s(u(t,n))+s.rangeBand()*(p?e.length/2:t.series+.5)/e.length],pointIndex:n,seriesIndex:t.series,e:d3.event})}).on("mouseout",function(t,n){d3.select(this).classed("hover",!1),x.elementMouseout({value:a(t,n),point:t,series:e[t.series],pointIndex:n,seriesIndex:t.series,e:d3.event})}).on("click",function(t,n){x.elementClick({value:a(t,n),point:t,series:e[t.series],pos:[s(u(t,n))+s.rangeBand()*(p?e.length/2:t.series+.5)/e.length,o(a(t,n)+(p?t.y0:0))],pointIndex:n,seriesIndex:t.series,e:d3.event}),d3.event.stopPropagation()}).on("dblclick",function(t,n){x.elementDblClick({value:a(t,n),point:t,series:e[t.series],pos:[s(u(t,n))+s.rangeBand()*(p?e.length/2:t.series+.5)/e.length,o(a(t,n)+(p?t.y0:0))],pointIndex:n,seriesIndex:t.series,e:d3.event}),d3.event.stopPropagation()}),H.append("text"),d&&!p?(P.select("text").attr("text-anchor",function(e,t){return a(e,t)<0?"end":"start"}).attr("y",s.rangeBand()/(e.length*2)).attr("dy",".32em").text(function(e,t){return g(a(e,t))}),P.transition().select("text").attr("x",function(e,t){return a(e,t)<0?-4:o(a(e,t))-o(0)+4})):P.selectAll("text").text(""),v&&!p?(H.append("text").classed("nv-bar-label",!0),P.select("text.nv-bar-label").attr("text-anchor",function(e,t){return a(e,t)<0?"start":"end"}).attr("y",s.rangeBand()/(e.length*2)).attr("dy",".32em").text(function(e,t){return u(e,t)}),P.transition().select("text.nv-bar-label").attr("x",function(e,t){return a(e,t)<0?o(0)-o(a(e,t))+4:-4})):P.selectAll("text.nv-bar-label").text(""),P.attr("class",function(e,t){return a(e,t)<0?"nv-bar negative":"nv-bar positive"}),c&&(h||(h=e.map(function(){return!0})),P.style("fill",function(e,t,n){return d3.rgb(c(e,t)).darker(h.map(function(e,t){return t}).filter(function(e,t){return!h[t]})[n]).toString()}).style("stroke",function(e,t,n){return d3.rgb(c(e,t)).darker(h.map(function(e,t){return t}).filter(function(e,t){return!h[t]})[n]).toString()})),p?P.transition().attr("transform",function(e,t){return"translate("+o(e.y1)+","+s(u(e,t))+")"}).select("rect").attr("width",function(e,t){return Math.abs(o(a(e,t)+e.y0)-o(e.y0))}).attr("height",s.rangeBand()):P.transition().attr("transform",function(t,n){return"translate("+(a(t,n)<0?o(a(t,n)):o(0))+","+(t.series*s.rangeBand()/e.length+s(u(t,n)))+")"}).select("rect").attr("height",s.rangeBand()/e.length).attr("width",function(e,t){return Math.max(Math.abs(o(a(e,t))-o(0)),1)}),T=s.copy(),N=o.copy()}),C}var t={top:0,right:0,bottom:0,left:0},n=960,r=500,i=Math.floor(Math.random()*1e4),s=d3.scale.ordinal(),o=d3.scale.linear(),u=function(e){return e.x},a=function(e){return e.y},f=[0],l=e.utils.defaultColor(),c=null,h,p=!1,d=!1,v=!1,m=60,g=d3.format(",.2f"),y=1200,b,w,E,S,x=d3.dispatch("chartClick","elementClick","elementDblClick","elementMouseover","elementMouseout"),T,N;return C.dispatch=x,C.options=e.utils.optionsFunc.bind(C),C.x=function(e){return arguments.length?(u=e,C):u},C.y=function(e){return arguments.length?(a=e,C):a},C.margin=function(e){return arguments.length?(t.top=typeof e.top!="undefined"?e.top:t.top,t.right=typeof e.right!="undefined"?e.right:t.right,t.bottom=typeof e.bottom!="undefined"?e.bottom:t.bottom,t.left=typeof e.left!="undefined"?e.left:t.left,C):t},C.width=function(e){return arguments.length?(n=e,C):n},C.height=function(e){return arguments.length?(r=e,C):r},C.xScale=function(e){return arguments.length?(s=e,C):s},C.yScale=function(e){return arguments.length?(o=e,C):o},C.xDomain=function(e){return arguments.length?(b=e,C):b},C.yDomain=function(e){return arguments.length?(w=e,C):w},C.xRange=function(e){return arguments.length?(E=e,C):E},C.yRange=function(e){return arguments.length?(S=e,C):S},C.forceY=function(e){return arguments.length?(f=e,C):f},C.stacked=function(e){return arguments.length?(p=e,C):p},C.color=function(t){return arguments.length?(l=e.utils.getColor(t),C):l},C.barColor=function(t){return arguments.length?(c=e.utils.getColor(t),C):c},C.disabled=function(e){return arguments.length?(h=e,C):h},C.id=function(e){return arguments.length?(i=e,C):i},C.delay=function(e){return arguments.length?(y=e,C):y},C.showValues=function(e){return arguments.length?(d=e,C):d},C.showBarLabels=function(e){return arguments.length?(v=e,C):v},C.valueFormat=function(e){return arguments.length?(g=e,C):g},C.valuePadding=function(e){return arguments.length?(m=e,C):m},C},e.models.multiBarHorizontalChart=function(){"use strict";function C(e){return e.each(function(e){var d=d3.select(this),m=this,k=(u||parseInt(d.style("width"))||960)-o.left-o.right,L=(a||parseInt(d.style("height"))||400)-o.top-o.bottom;C.update=function(){d.transition().duration(T).call(C)},C.container=this,b.disabled=e.map(function(e){return!!e.disabled});if(!w){var A;w={};for(A in b)b[A]instanceof Array?w[A]=b[A].slice(0):w[A]=b[A]}if(!e||!e.length||!e.filter(function(e){return e.values.length}).length){var O=d.selectAll(".nv-noData").data([E]);return O.enter().append("text").attr("class","nvd3 nv-noData").attr("dy","-.7em").style("text-anchor","middle"),O.attr("x",o.left+k/2).attr("y",o.top+L/2).text(function(e){return e}),C}d.selectAll(".nv-noData").remove(),g=t.xScale(),y=t.yScale();var M=d.selectAll("g.nv-wrap.nv-multiBarHorizontalChart").data([e]),_=M.enter().append("g").attr("class","nvd3 nv-wrap nv-multiBarHorizontalChart").append("g"),D=M.select("g");_.append("g").attr("class","nv-x nv-axis"),_.append("g").attr("class","nv-y nv-axis").append("g").attr("class","nv-zeroLine").append("line"),_.append("g").attr("class","nv-barsWrap"),_.append("g").attr("class","nv-legendWrap"),_.append("g").attr("class","nv-controlsWrap"),c&&(i.width(k-x()),t.barColor()&&e.forEach(function(e,t){e.color=d3.rgb("#ccc").darker(t*1.5).toString()}),D.select(".nv-legendWrap").datum(e).call(i),o.top!=i.height()&&(o.top=i.height(),L=(a||parseInt(d.style("height"))||400)-o.top-o.bottom),D.select(".nv-legendWrap").attr("transform","translate("+x()+","+ -o.top+")"));if(l){var P=[{key:"Grouped",disabled:t.stacked()},{key:"Stacked",disabled:!t.stacked()}];s.width(x()).color(["#444","#444","#444"]),D.select(".nv-controlsWrap").datum(P).attr("transform","translate(0,"+ -o.top+")").call(s)}M.attr("transform","translate("+o.left+","+o.top+")"),t.disabled(e.map(function(e){return e.disabled})).width(k).height(L).color(e.map(function(e,t){return e.color||f(e,t)}).filter(function(t,n){return!e[n].disabled}));var H=D.select(".nv-barsWrap").datum(e.filter(function(e){return!e.disabled}));H.transition().call(t);if(h){n.scale(g).ticks(L/24).tickSize(-k,0),D.select(".nv-x.nv-axis").transition().call(n);var B=D.select(".nv-x.nv-axis").selectAll("g");B.selectAll("line, text")}p&&(r.scale(y).ticks(k/100).tickSize(-L,0),D.select(".nv-y.nv-axis").attr("transform","translate(0,"+L+")"),D.select(".nv-y.nv-axis").transition().call(r)),D.select(".nv-zeroLine line").attr("x1",y(0)).attr("x2",y(0)).attr("y1",0).attr("y2",-L),i.dispatch.on("stateChange",function(e){b=e,S.stateChange(b),C.update()}),s.dispatch.on("legendClick",function(e,n){if(!e.disabled)return;P=P.map(function(e){return e.disabled=!0,e}),e.disabled=!1;switch(e.key){case"Grouped":t.stacked(!1);break;case"Stacked":t.stacked(!0)}b.stacked=t.stacked(),S.stateChange(b),C.update()}),S.on("tooltipShow",function(e){v&&N(e,m.parentNode)}),S.on("changeState",function(n){typeof n.disabled!="undefined"&&(e.forEach(function(e,t){e.disabled=n.disabled[t]}),b.disabled=n.disabled),typeof n.stacked!="undefined"&&(t.stacked(n.stacked),b.stacked=n.stacked),C.update()})}),C}var t=e.models.multiBarHorizontal(),n=e.models.axis(),r=e.models.axis(),i=e.models.legend().height(30),s=e.models.legend().height(30),o={top:30,right:20,bottom:50,left:60},u=null,a=null,f=e.utils.defaultColor(),l=!0,c=!0,h=!0,p=!0,d=!1,v=!0,m=function(e,t,n,r,i){return"<h3>"+e+" - "+t+"</h3>"+"<p>"+n+"</p>"},g,y,b={stacked:d},w=null,E="No Data Available.",S=d3.dispatch("tooltipShow","tooltipHide","stateChange","changeState"),x=function(){return l?180:0},T=250;t.stacked(d),n.orient("left").tickPadding(5).highlightZero(!1).showMaxMin(!1).tickFormat(function(e){return e}),r.orient("bottom").tickFormat(d3.format(",.1f")),s.updateState(!1);var N=function(i,s){var o=i.pos[0]+(s.offsetLeft||0),u=i.pos[1]+(s.offsetTop||0),a=n.tickFormat()(t.x()(i.point,i.pointIndex)),f=r.tickFormat()(t.y()(i.point,i.pointIndex)),l=m(i.series.key,a,f,i,C);e.tooltip.show([o,u],l,i.value<0?"e":"w",null,s)};return t.dispatch.on("elementMouseover.tooltip",function(e){e.pos=[e.pos[0]+o.left,e.pos[1]+o.top],S.tooltipShow(e)}),t.dispatch.on("elementMouseout.tooltip",function(e){S.tooltipHide(e)}),S.on("tooltipHide",function(){v&&e.tooltip.cleanup()}),C.dispatch=S,C.multibar=t,C.legend=i,C.xAxis=n,C.yAxis=r,d3.rebind(C,t,"x","y","xDomain","yDomain","xRange","yRange","forceX","forceY","clipEdge","id","delay","showValues","showBarLabels","valueFormat","stacked","barColor"),C.options=e.utils.optionsFunc.bind(C),C.margin=function(e){return arguments.length?(o.top=typeof e.top!="undefined"?e.top:o.top,o.right=typeof e.right!="undefined"?e.right:o.right,o.bottom=typeof e.bottom!="undefined"?e.bottom:o.bottom,o.left=typeof e.left!="undefined"?e.left:o.left,C):o},C.width=function(e){return arguments.length?(u=e,C):u},C.height=function(e){return arguments.length?(a=e,C):a},C.color=function(t){return arguments.length?(f=e.utils.getColor(t),i.color(f),C):f},C.showControls=function(e){return arguments.length?(l=e,C):l},C.showLegend=function(e){return arguments.length?(c=e,C):c},C.showXAxis=function(e){return arguments.length?(h=e,C):h},C.showYAxis=function(e){return arguments.length?(p=e,C):p},C.tooltip=function(e){return arguments.length?(m=e,C):m},C.tooltips=function(e){return arguments.length?(v=e,C):v},C.tooltipContent=function(e){return arguments.length?(m=e,C):m},C.state=function(e){return arguments.length?(b=e,C):b},C.defaultState=function(e){return arguments.length?(w=e,C):w},C.noData=function(e){return arguments.length?(E=e,C):E},C.transitionDuration=function(e){return arguments.length?(T=e,C):T},C},e.models.multiChart=function(){"use strict";function C(e){return e.each(function(e){var u=d3.select(this),f=this;C.update=function(){u.transition().call(C)},C.container=this;var k=(r||parseInt(u.style("width"))||960)-t.left-t.right,L=(i||parseInt(u.style("height"))||400)-t.top-t.bottom,A=e.filter(function(e){return!e.disabled&&e.type=="line"&&e.yAxis==1}),O=e.filter(function(e){return!e.disabled&&e.type=="line"&&e.yAxis==2}),M=e.filter(function(e){return!e.disabled&&e.type=="bar"&&e.yAxis==1}),_=e.filter(function(e){return!e.disabled&&e.type=="bar"&&e.yAxis==2}),D=e.filter(function(e){return!e.disabled&&e.type=="area"&&e.yAxis==1}),P=e.filter(function(e){return!e.disabled&&e.type=="area"&&e.yAxis==2}),H=e.filter(function(e){return!e.disabled&&e.yAxis==1}).map(function(e){return e.values.map(function(e,t){return{x:e.x,y:e.y}})}),B=e.filter(function(e){return!e.disabled&&e.yAxis==2}).map(function(e){return e.values.map(function(e,t){return{x:e.x,y:e.y}})});a.domain(d3.extent(d3.merge(H.concat(B)),function(e){return e.x})).range([0,k]);var j=u.selectAll("g.wrap.multiChart").data([e]),F=j.enter().append("g").attr("class","wrap nvd3 multiChart").append("g");F.append("g").attr("class","x axis"),F.append("g").attr("class","y1 axis"),F.append("g").attr("class","y2 axis"),F.append("g").attr("class","lines1Wrap"),F.append("g").attr("class","lines2Wrap"),F.append("g").attr("class","bars1Wrap"),F.append("g").attr("class","bars2Wrap"),F.append("g").attr("class","stack1Wrap"),F.append("g").attr("class","stack2Wrap"),F.append("g").attr("class","legendWrap");var I=j.select("g");s&&(x.width(k/2),I.select(".legendWrap").datum(e.map(function(e){return e.originalKey=e.originalKey===undefined?e.key:e.originalKey,e.key=e.originalKey+(e.yAxis==1?"":" (right axis)"),e})).call(x),t.top!=x.height()&&(t.top=x.height(),L=(i||parseInt(u.style("height"))||400)-t.top-t.bottom),I.select(".legendWrap").attr("transform","translate("+k/2+","+ -t.top+")")),d.width(k).height(L).interpolate("monotone").color(e.map(function(e,t){return e.color||n[t%n.length]}).filter(function(t,n){return!e[n].disabled&&e[n].yAxis==1&&e[n].type=="line"})),v.width(k).height(L).interpolate("monotone").color(e.map(function(e,t){return e.color||n[t%n.length]}).filter(function(t,n){return!e[n].disabled&&e[n].yAxis==2&&e[n].type=="line"})),m.width(k).height(L).color(e.map(function(e,t){return e.color||n[t%n.length]}).filter(function(t,n){return!e[n].disabled&&e[n].yAxis==1&&e[n].type=="bar"})),g.width(k).height(L).color(e.map(function(e,t){return e.color||n[t%n.length]}).filter(function(t,n){return!e[n].disabled&&e[n].yAxis==2&&e[n].type=="bar"})),y.width(k).height(L).color(e.map(function(e,t){return e.color||n[t%n.length]}).filter(function(t,n){return!e[n].disabled&&e[n].yAxis==1&&e[n].type=="area"})),b.width(k).height(L).color(e.map(function(e,t){return e.color||n[t%n.length]}).filter(function(t,n){return!e[n].disabled&&e[n].yAxis==2&&e[n].type=="area"})),I.attr("transform","translate("+t.left+","+t.top+")");var q=I.select(".lines1Wrap").datum(A),R=I.select(".bars1Wrap").datum(M),U=I.select(".stack1Wrap").datum(D),z=I.select(".lines2Wrap").datum(O),W=I.select(".bars2Wrap").datum(_),X=I.select(".stack2Wrap").datum(P),V=D.length?D.map(function(e){return e.values}).reduce(function(e,t){return e.map(function(e,n){return{x:e.x,y:e.y+t[n].y}})}).concat([{x:0,y:0}]):[],$=P.length?P.map(function(e){return e.values}).reduce(function(e,t){return e.map(function(e,n){return{x:e.x,y:e.y+t[n].y}})}).concat([{x:0,y:0}]):[];h.domain(l||d3.extent(d3.merge(H).concat(V),function(e){return e.y})).range([0,L]),p.domain(c||d3.extent(d3.merge(B).concat($),function(e){return e.y})).range([0,L]),d.yDomain(h.domain()),m.yDomain(h.domain()),y.yDomain(h.domain()),v.yDomain(p.domain()),g.yDomain(p.domain()),b.yDomain(p.domain()),D.length&&d3.transition(U).call(y),P.length&&d3.transition(X).call(b),M.length&&d3.transition(R).call(m),_.length&&d3.transition(W).call(g),A.length&&d3.transition(q).call(d),O.length&&d3.transition(z).call(v),w.ticks(k/100).tickSize(-L,0),I.select(".x.axis").attr("transform","translate(0,"+L+")"),d3.transition(I.select(".x.axis")).call(w),E.ticks(L/36).tickSize(-k,0),d3.transition(I.select(".y1.axis")).call(E),S.ticks(L/36).tickSize(-k,0),d3.transition(I.select(".y2.axis")).call(S),I.select(".y2.axis").style("opacity",B.length?1:0).attr("transform","translate("+a.range()[1]+",0)"),x.dispatch.on("stateChange",function(e){C.update()}),T.on("tooltipShow",function(e){o&&N(e,f.parentNode)})}),C}var t={top:30,right:20,bottom:50,left:60},n=d3.scale.category20().range(),r=null,i=null,s=!0,o=!0,u=function(e,t,n,r,i){return"<h3>"+e+"</h3>"+"<p>"+n+" at "+t+"</p>"},a,f,l,c,a=d3.scale.linear(),h=d3.scale.linear(),p=d3.scale.linear(),d=e.models.line().yScale(h),v=e.models.line().yScale(p),m=e.models.multiBar().stacked(!1).yScale(h),g=e.models.multiBar().stacked(!1).yScale(p),y=e.models.stackedArea().yScale(h),b=e.models.stackedArea().yScale(p),w=e.models.axis().scale(a).orient("bottom").tickPadding(5),E=e.models.axis().scale(h).orient("left"),S=e.models.axis().scale(p).orient("right"),x=e.models.legend().height(30),T=d3.dispatch("tooltipShow","tooltipHide"),N=function(t,n){var r=t.pos[0]+(n.offsetLeft||0),i=t.pos[1]+(n.offsetTop||0),s=w.tickFormat()(d.x()(t.point,t.pointIndex)),o=(t.series.yAxis==2?S:E).tickFormat()(d.y()(t.point,t.pointIndex)),a=u(t.series.key,s,o,t,C);e.tooltip.show([r,i],a,undefined,undefined,n.offsetParent)};return d.dispatch.on("elementMouseover.tooltip",function(e){e.pos=[e.pos[0]+t.left,e.pos[1]+t.top],T.tooltipShow(e)}),d.dispatch.on("elementMouseout.tooltip",function(e){T.tooltipHide(e)}),v.dispatch.on("elementMouseover.tooltip",function(e){e.pos=[e.pos[0]+t.left,e.pos[1]+t.top],T.tooltipShow(e)}),v.dispatch.on("elementMouseout.tooltip",function(e){T.tooltipHide(e)}),m.dispatch.on("elementMouseover.tooltip",function(e){e.pos=[e.pos[0]+t.left,e.pos[1]+t.top],T.tooltipShow(e)}),m.dispatch.on("elementMouseout.tooltip",function(e){T.tooltipHide(e)}),g.dispatch.on("elementMouseover.tooltip",function(e){e.pos=[e.pos[0]+t.left,e.pos[1]+t.top],T.tooltipShow(e)}),g.dispatch.on("elementMouseout.tooltip",function(e){T.tooltipHide(e)}),y.dispatch.on("tooltipShow",function(e){if(!Math.round(y.y()(e.point)*100))return setTimeout(function(){d3.selectAll(".point.hover").classed("hover",!1)},0),!1;e.pos=[e.pos[0]+t.left,e.pos[1]+t.top],T.tooltipShow(e)}),y.dispatch.on("tooltipHide",function(e){T.tooltipHide(e)}),b.dispatch.on("tooltipShow",function(e){if(!Math.round(b.y()(e.point)*100))return setTimeout(function(){d3.selectAll(".point.hover").classed("hover",!1)},0),!1;e.pos=[e.pos[0]+t.left,e.pos[1]+t.top],T.tooltipShow(e)}),b.dispatch.on("tooltipHide",function(e){T.tooltipHide(e)}),d.dispatch.on("elementMouseover.tooltip",function(e){e.pos=[e.pos[0]+t.left,e.pos[1]+t.top],T.tooltipShow(e)}),d.dispatch.on("elementMouseout.tooltip",function(e){T.tooltipHide(e)}),v.dispatch.on("elementMouseover.tooltip",function(e){e.pos=[e.pos[0]+t.left,e.pos[1]+t.top],T.tooltipShow(e)}),v.dispatch.on("elementMouseout.tooltip",function(e){T.tooltipHide(e)}),T.on("tooltipHide",function(){o&&e.tooltip.cleanup()}),C.dispatch=T,C.lines1=d,C.lines2=v,C.bars1=m,C.bars2=g,C.stack1=y,C.stack2=b,C.xAxis=w,C.yAxis1=E,C.yAxis2=S,C.options=e.utils.optionsFunc.bind(C),C.x=function(e){return arguments.length?(getX=e,d.x(e),m.x(e),C):getX},C.y=function(e){return arguments.length?(getY=e,d.y(e),m.y(e),C):getY},C.yDomain1=function(e){return arguments.length?(l=e,C):l},C.yDomain2=function(e){return arguments.length?(c=e,C):c},C.margin=function(e){return arguments.length?(t=e,C):t},C.width=function(e){return arguments.length?(r=e,C):r},C.height=function(e){return arguments.length?(i=e,C):i},C.color=function(e){return arguments.length?(n=e,x.color(e),C):n},C.showLegend=function(e){return arguments.length?(s=e,C):s},C.tooltips=function(e){return arguments.length?(o=e,C):o},C.tooltipContent=function(e){return arguments.length?(u=e,C):u},C},e.models.ohlcBar=function(){"use strict";function x(e){return e.each(function(e){var g=n-t.left-t.right,x=r-t.top-t.bottom,T=d3.select(this);s.domain(y||d3.extent(e[0].values.map(u).concat(p))),v?s.range(w||[g*.5/e[0].values.length,g*(e[0].values.length-.5)/e[0].values.length]):s.range(w||[0,g]),o.domain(b||[d3.min(e[0].values.map(h).concat(d)),d3.max(e[0].values.map(c).concat(d))]).range(E||[x,0]),s.domain()[0]===s.domain()[1]&&(s.domain()[0]?s.domain([s.domain()[0]-s.domain()[0]*.01,s.domain()[1]+s.domain()[1]*.01]):s.domain([-1,1])),o.domain()[0]===o.domain()[1]&&(o.domain()[0]?o.domain([o.domain()[0]+o.domain()[0]*.01,o.domain()[1]-o.domain()[1]*.01]):o.domain([-1,1]));var N=d3.select(this).selectAll("g.nv-wrap.nv-ohlcBar").data([e[0].values]),C=N.enter().append("g").attr("class","nvd3 nv-wrap nv-ohlcBar"),k=C.append("defs"),L=C.append("g"),A=N.select("g");L.append("g").attr("class","nv-ticks"),N.attr("transform","translate("+t.left+","+t.top+")"),T.on("click",function(e,t){S.chartClick({data:e,index:t,pos:d3.event,id:i})}),k.append("clipPath").attr("id","nv-chart-clip-path-"+i).append("rect"),N.select("#nv-chart-clip-path-"+i+" rect").attr("width",g).attr("height",x),A.attr("clip-path",m?"url(#nv-chart-clip-path-"+i+")":"");var O=N.select(".nv-ticks").selectAll(".nv-tick").data(function(e){return e});O.exit().remove();var M=O.enter().append("path").attr("class",function(e,t,n){return(f(e,t)>l(e,t)?"nv-tick negative":"nv-tick positive")+" nv-tick-"+n+"-"+t}).attr("d",function(t,n){var r=g/e[0].values.length*.9;return"m0,0l0,"+(o(f(t,n))-o(c(t,n)))+"l"+ -r/2+",0l"+r/2+",0l0,"+(o(h(t,n))-o(f(t,n)))+"l0,"+(o(l(t,n))-o(h(t,n)))+"l"+r/2+",0l"+ -r/2+",0z"}).attr("transform",function(e,t){return"translate("+s(u(e,t))+","+o(c(e,t))+")"}).on("mouseover",function(t,n){d3.select(this).classed("hover",!0),S.elementMouseover({point:t,series:e[0],pos:[s(u(t,n)),o(a(t,n))],pointIndex:n,seriesIndex:0,e:d3.event})}).on("mouseout",function(t,n){d3.select(this).classed("hover",!1),S.elementMouseout({point:t,series:e[0],pointIndex:n,seriesIndex:0,e:d3.event})}).on("click",function(e,t){S.elementClick({value:a(e,t),data:e,index:t,pos:[s(u(e,t)),o(a(e,t))],e:d3.event,id:i}),d3.event.stopPropagation()}).on("dblclick",function(e,t){S.elementDblClick({value:a(e,t),data:e,index:t,pos:[s(u(e,t)),o(a(e,t))],e:d3.event,id:i}),d3.event.stopPropagation()});O.attr("class",function(e,t,n){return(f(e,t)>l(e,t)?"nv-tick negative":"nv-tick positive")+" nv-tick-"+n+"-"+t}),d3.transition(O).attr("transform",function(e,t){return"translate("+s(u(e,t))+","+o(c(e,t))+")"}).attr("d",function(t,n){var r=g/e[0].values.length*.9;return"m0,0l0,"+(o(f(t,n))-o(c(t,n)))+"l"+ -r/2+",0l"+r/2+",0l0,"+(o(h(t,n))-o(f(t,n)))+"l0,"+(o(l(t,n))-o(h(t,n)))+"l"+r/2+",0l"+ -r/2+",0z"})}),x}var t={top:0,right:0,bottom:0,left:0},n=960,r=500,i=Math.floor(Math.random()*1e4),s=d3.scale.linear(),o=d3.scale.linear(),u=function(e){return e.x},a=function(e){return e.y},f=function(e){return e.open},l=function(
-e){return e.close},c=function(e){return e.high},h=function(e){return e.low},p=[],d=[],v=!1,m=!0,g=e.utils.defaultColor(),y,b,w,E,S=d3.dispatch("chartClick","elementClick","elementDblClick","elementMouseover","elementMouseout");return x.dispatch=S,x.options=e.utils.optionsFunc.bind(x),x.x=function(e){return arguments.length?(u=e,x):u},x.y=function(e){return arguments.length?(a=e,x):a},x.open=function(e){return arguments.length?(f=e,x):f},x.close=function(e){return arguments.length?(l=e,x):l},x.high=function(e){return arguments.length?(c=e,x):c},x.low=function(e){return arguments.length?(h=e,x):h},x.margin=function(e){return arguments.length?(t.top=typeof e.top!="undefined"?e.top:t.top,t.right=typeof e.right!="undefined"?e.right:t.right,t.bottom=typeof e.bottom!="undefined"?e.bottom:t.bottom,t.left=typeof e.left!="undefined"?e.left:t.left,x):t},x.width=function(e){return arguments.length?(n=e,x):n},x.height=function(e){return arguments.length?(r=e,x):r},x.xScale=function(e){return arguments.length?(s=e,x):s},x.yScale=function(e){return arguments.length?(o=e,x):o},x.xDomain=function(e){return arguments.length?(y=e,x):y},x.yDomain=function(e){return arguments.length?(b=e,x):b},x.xRange=function(e){return arguments.length?(w=e,x):w},x.yRange=function(e){return arguments.length?(E=e,x):E},x.forceX=function(e){return arguments.length?(p=e,x):p},x.forceY=function(e){return arguments.length?(d=e,x):d},x.padData=function(e){return arguments.length?(v=e,x):v},x.clipEdge=function(e){return arguments.length?(m=e,x):m},x.color=function(t){return arguments.length?(g=e.utils.getColor(t),x):g},x.id=function(e){return arguments.length?(i=e,x):i},x},e.models.pie=function(){"use strict";function S(e){return e.each(function(e){function q(e){var t=(e.startAngle+e.endAngle)*90/Math.PI-90;return t>90?t-180:t}function R(e){e.endAngle=isNaN(e.endAngle)?0:e.endAngle,e.startAngle=isNaN(e.startAngle)?0:e.startAngle,m||(e.innerRadius=0);var t=d3.interpolate(this._current,e);return this._current=t(0),function(e){return A(t(e))}}function U(e){e.innerRadius=0;var t=d3.interpolate({startAngle:0,endAngle:0},e);return function(e){return A(t(e))}}var o=n-t.left-t.right,f=r-t.top-t.bottom,S=Math.min(o,f)/2,x=S-S/5,T=d3.select(this),N=T.selectAll(".nv-wrap.nv-pie").data(e),C=N.enter().append("g").attr("class","nvd3 nv-wrap nv-pie nv-chart-"+u),k=C.append("g"),L=N.select("g");k.append("g").attr("class","nv-pie"),k.append("g").attr("class","nv-pieLabels"),N.attr("transform","translate("+t.left+","+t.top+")"),L.select(".nv-pie").attr("transform","translate("+o/2+","+f/2+")"),L.select(".nv-pieLabels").attr("transform","translate("+o/2+","+f/2+")"),T.on("click",function(e,t){E.chartClick({data:e,index:t,pos:d3.event,id:u})});var A=d3.svg.arc().outerRadius(x);y&&A.startAngle(y),b&&A.endAngle(b),m&&A.innerRadius(S*w);var O=d3.layout.pie().sort(null).value(function(e){return e.disabled?0:s(e)}),M=N.select(".nv-pie").selectAll(".nv-slice").data(O),_=N.select(".nv-pieLabels").selectAll(".nv-label").data(O);M.exit().remove(),_.exit().remove();var D=M.enter().append("g").attr("class","nv-slice").on("mouseover",function(e,t){d3.select(this).classed("hover",!0),E.elementMouseover({label:i(e.data),value:s(e.data),point:e.data,pointIndex:t,pos:[d3.event.pageX,d3.event.pageY],id:u})}).on("mouseout",function(e,t){d3.select(this).classed("hover",!1),E.elementMouseout({label:i(e.data),value:s(e.data),point:e.data,index:t,id:u})}).on("click",function(e,t){E.elementClick({label:i(e.data),value:s(e.data),point:e.data,index:t,pos:d3.event,id:u}),d3.event.stopPropagation()}).on("dblclick",function(e,t){E.elementDblClick({label:i(e.data),value:s(e.data),point:e.data,index:t,pos:d3.event,id:u}),d3.event.stopPropagation()});M.attr("fill",function(e,t){return a(e,t)}).attr("stroke",function(e,t){return a(e,t)});var P=D.append("path").each(function(e){this._current=e});M.select("path").transition().attr("d",A).attrTween("d",R);if(l){var H=d3.svg.arc().innerRadius(0);c&&(H=A),h&&(H=d3.svg.arc().outerRadius(A.outerRadius())),_.enter().append("g").classed("nv-label",!0).each(function(e,t){var n=d3.select(this);n.attr("transform",function(e){if(g){e.outerRadius=x+10,e.innerRadius=x+15;var t=(e.startAngle+e.endAngle)/2*(180/Math.PI);return(e.startAngle+e.endAngle)/2<Math.PI?t-=90:t+=90,"translate("+H.centroid(e)+") rotate("+t+")"}return e.outerRadius=S+10,e.innerRadius=S+15,"translate("+H.centroid(e)+")"}),n.append("rect").style("stroke","#fff").style("fill","#fff").attr("rx",3).attr("ry",3),n.append("text").style("text-anchor",g?(e.startAngle+e.endAngle)/2<Math.PI?"start":"end":"middle").style("fill","#000")});var B={},j=14,F=140,I=function(e){return Math.floor(e[0]/F)*F+","+Math.floor(e[1]/j)*j};_.transition().attr("transform",function(e){if(g){e.outerRadius=x+10,e.innerRadius=x+15;var t=(e.startAngle+e.endAngle)/2*(180/Math.PI);return(e.startAngle+e.endAngle)/2<Math.PI?t-=90:t+=90,"translate("+H.centroid(e)+") rotate("+t+")"}e.outerRadius=S+10,e.innerRadius=S+15;var n=H.centroid(e),r=I(n);return B[r]&&(n[1]-=j),B[I(n)]=!0,"translate("+n+")"}),_.select(".nv-label text").style("text-anchor",g?(d.startAngle+d.endAngle)/2<Math.PI?"start":"end":"middle").text(function(e,t){var n=(e.endAngle-e.startAngle)/(2*Math.PI),r={key:i(e.data),value:s(e.data),percent:d3.format("%")(n)};return e.value&&n>v?r[p]:""})}}),S}var t={top:0,right:0,bottom:0,left:0},n=500,r=500,i=function(e){return e.x},s=function(e){return e.y},o=function(e){return e.description},u=Math.floor(Math.random()*1e4),a=e.utils.defaultColor(),f=d3.format(",.2f"),l=!0,c=!0,h=!1,p="key",v=.02,m=!1,g=!1,y=!1,b=!1,w=.5,E=d3.dispatch("chartClick","elementClick","elementDblClick","elementMouseover","elementMouseout");return S.dispatch=E,S.options=e.utils.optionsFunc.bind(S),S.margin=function(e){return arguments.length?(t.top=typeof e.top!="undefined"?e.top:t.top,t.right=typeof e.right!="undefined"?e.right:t.right,t.bottom=typeof e.bottom!="undefined"?e.bottom:t.bottom,t.left=typeof e.left!="undefined"?e.left:t.left,S):t},S.width=function(e){return arguments.length?(n=e,S):n},S.height=function(e){return arguments.length?(r=e,S):r},S.values=function(t){return e.log("pie.values() is no longer supported."),S},S.x=function(e){return arguments.length?(i=e,S):i},S.y=function(e){return arguments.length?(s=d3.functor(e),S):s},S.description=function(e){return arguments.length?(o=e,S):o},S.showLabels=function(e){return arguments.length?(l=e,S):l},S.labelSunbeamLayout=function(e){return arguments.length?(g=e,S):g},S.donutLabelsOutside=function(e){return arguments.length?(h=e,S):h},S.pieLabelsOutside=function(e){return arguments.length?(c=e,S):c},S.labelType=function(e){return arguments.length?(p=e,p=p||"key",S):p},S.donut=function(e){return arguments.length?(m=e,S):m},S.donutRatio=function(e){return arguments.length?(w=e,S):w},S.startAngle=function(e){return arguments.length?(y=e,S):y},S.endAngle=function(e){return arguments.length?(b=e,S):b},S.id=function(e){return arguments.length?(u=e,S):u},S.color=function(t){return arguments.length?(a=e.utils.getColor(t),S):a},S.valueFormat=function(e){return arguments.length?(f=e,S):f},S.labelThreshold=function(e){return arguments.length?(v=e,S):v},S},e.models.pieChart=function(){"use strict";function v(e){return e.each(function(e){var u=d3.select(this),a=this,f=(i||parseInt(u.style("width"))||960)-r.left-r.right,d=(s||parseInt(u.style("height"))||400)-r.top-r.bottom;v.update=function(){u.transition().call(v)},v.container=this,l.disabled=e.map(function(e){return!!e.disabled});if(!c){var m;c={};for(m in l)l[m]instanceof Array?c[m]=l[m].slice(0):c[m]=l[m]}if(!e||!e.length){var g=u.selectAll(".nv-noData").data([h]);return g.enter().append("text").attr("class","nvd3 nv-noData").attr("dy","-.7em").style("text-anchor","middle"),g.attr("x",r.left+f/2).attr("y",r.top+d/2).text(function(e){return e}),v}u.selectAll(".nv-noData").remove();var y=u.selectAll("g.nv-wrap.nv-pieChart").data([e]),b=y.enter().append("g").attr("class","nvd3 nv-wrap nv-pieChart").append("g"),w=y.select("g");b.append("g").attr("class","nv-pieWrap"),b.append("g").attr("class","nv-legendWrap"),o&&(n.width(f).key(t.x()),y.select(".nv-legendWrap").datum(e).call(n),r.top!=n.height()&&(r.top=n.height(),d=(s||parseInt(u.style("height"))||400)-r.top-r.bottom),y.select(".nv-legendWrap").attr("transform","translate(0,"+ -r.top+")")),y.attr("transform","translate("+r.left+","+r.top+")"),t.width(f).height(d);var E=w.select(".nv-pieWrap").datum([e]);d3.transition(E).call(t),n.dispatch.on("stateChange",function(e){l=e,p.stateChange(l),v.update()}),t.dispatch.on("elementMouseout.tooltip",function(e){p.tooltipHide(e)}),p.on("changeState",function(t){typeof t.disabled!="undefined"&&(e.forEach(function(e,n){e.disabled=t.disabled[n]}),l.disabled=t.disabled),v.update()})}),v}var t=e.models.pie(),n=e.models.legend(),r={top:30,right:20,bottom:20,left:20},i=null,s=null,o=!0,u=e.utils.defaultColor(),a=!0,f=function(e,t,n,r){return"<h3>"+e+"</h3>"+"<p>"+t+"</p>"},l={},c=null,h="No Data Available.",p=d3.dispatch("tooltipShow","tooltipHide","stateChange","changeState"),d=function(n,r){var i=t.description()(n.point)||t.x()(n.point),s=n.pos[0]+(r&&r.offsetLeft||0),o=n.pos[1]+(r&&r.offsetTop||0),u=t.valueFormat()(t.y()(n.point)),a=f(i,u,n,v);e.tooltip.show([s,o],a,n.value<0?"n":"s",null,r)};return t.dispatch.on("elementMouseover.tooltip",function(e){e.pos=[e.pos[0]+r.left,e.pos[1]+r.top],p.tooltipShow(e)}),p.on("tooltipShow",function(e){a&&d(e)}),p.on("tooltipHide",function(){a&&e.tooltip.cleanup()}),v.legend=n,v.dispatch=p,v.pie=t,d3.rebind(v,t,"valueFormat","values","x","y","description","id","showLabels","donutLabelsOutside","pieLabelsOutside","labelType","donut","donutRatio","labelThreshold"),v.options=e.utils.optionsFunc.bind(v),v.margin=function(e){return arguments.length?(r.top=typeof e.top!="undefined"?e.top:r.top,r.right=typeof e.right!="undefined"?e.right:r.right,r.bottom=typeof e.bottom!="undefined"?e.bottom:r.bottom,r.left=typeof e.left!="undefined"?e.left:r.left,v):r},v.width=function(e){return arguments.length?(i=e,v):i},v.height=function(e){return arguments.length?(s=e,v):s},v.color=function(r){return arguments.length?(u=e.utils.getColor(r),n.color(u),t.color(u),v):u},v.showLegend=function(e){return arguments.length?(o=e,v):o},v.tooltips=function(e){return arguments.length?(a=e,v):a},v.tooltipContent=function(e){return arguments.length?(f=e,v):f},v.state=function(e){return arguments.length?(l=e,v):l},v.defaultState=function(e){return arguments.length?(c=e,v):c},v.noData=function(e){return arguments.length?(h=e,v):h},v},e.models.scatter=function(){"use strict";function I(q){return q.each(function(I){function Q(){if(!g)return!1;var e,i=d3.merge(I.map(function(e,t){return e.values.map(function(e,n){var r=f(e,n),i=l(e,n);return[o(r)+Math.random()*1e-7,u(i)+Math.random()*1e-7,t,n,e]}).filter(function(e,t){return b(e[4],t)})}));if(D===!0){if(x){var a=X.select("defs").selectAll(".nv-point-clips").data([s]).enter();a.append("clipPath").attr("class","nv-point-clips").attr("id","nv-points-clip-"+s);var c=X.select("#nv-points-clip-"+s).selectAll("circle").data(i);c.enter().append("circle").attr("r",T),c.exit().remove(),c.attr("cx",function(e){return e[0]}).attr("cy",function(e){return e[1]}),X.select(".nv-point-paths").attr("clip-path","url(#nv-points-clip-"+s+")")}i.length&&(i.push([o.range()[0]-20,u.range()[0]-20,null,null]),i.push([o.range()[1]+20,u.range()[1]+20,null,null]),i.push([o.range()[0]-20,u.range()[0]+20,null,null]),i.push([o.range()[1]+20,u.range()[1]-20,null,null]));var h=d3.geom.polygon([[-10,-10],[-10,r+10],[n+10,r+10],[n+10,-10]]),p=d3.geom.voronoi(i).map(function(e,t){return{data:h.clip(e),series:i[t][2],point:i[t][3]}}),d=X.select(".nv-point-paths").selectAll("path").data(p);d.enter().append("path").attr("class",function(e,t){return"nv-path-"+t}),d.exit().remove(),d.attr("d",function(e){return e.data.length===0?"M 0 0":"M"+e.data.join("L")+"Z"});var v=function(e,n){if(F)return 0;var r=I[e.series];if(typeof r=="undefined")return;var i=r.values[e.point];n({point:i,series:r,pos:[o(f(i,e.point))+t.left,u(l(i,e.point))+t.top],seriesIndex:e.series,pointIndex:e.point})};d.on("click",function(e){v(e,_.elementClick)}).on("mouseover",function(e){v(e,_.elementMouseover)}).on("mouseout",function(e,t){v(e,_.elementMouseout)})}else X.select(".nv-groups").selectAll(".nv-group").selectAll(".nv-point").on("click",function(e,n){if(F||!I[e.series])return 0;var r=I[e.series],i=r.values[n];_.elementClick({point:i,series:r,pos:[o(f(i,n))+t.left,u(l(i,n))+t.top],seriesIndex:e.series,pointIndex:n})}).on("mouseover",function(e,n){if(F||!I[e.series])return 0;var r=I[e.series],i=r.values[n];_.elementMouseover({point:i,series:r,pos:[o(f(i,n))+t.left,u(l(i,n))+t.top],seriesIndex:e.series,pointIndex:n})}).on("mouseout",function(e,t){if(F||!I[e.series])return 0;var n=I[e.series],r=n.values[t];_.elementMouseout({point:r,series:n,seriesIndex:e.series,pointIndex:t})});F=!1}var q=n-t.left-t.right,R=r-t.top-t.bottom,U=d3.select(this);I.forEach(function(e,t){e.values.forEach(function(e){e.series=t})});var W=N&&C&&A?[]:d3.merge(I.map(function(e){return e.values.map(function(e,t){return{x:f(e,t),y:l(e,t),size:c(e,t)}})}));o.domain(N||d3.extent(W.map(function(e){return e.x}).concat(d))),w&&I[0]?o.range(k||[(q*E+q)/(2*I[0].values.length),q-q*(1+E)/(2*I[0].values.length)]):o.range(k||[0,q]),u.domain(C||d3.extent(W.map(function(e){return e.y}).concat(v))).range(L||[R,0]),a.domain(A||d3.extent(W.map(function(e){return e.size}).concat(m))).range(O||[16,256]);if(o.domain()[0]===o.domain()[1]||u.domain()[0]===u.domain()[1])M=!0;o.domain()[0]===o.domain()[1]&&(o.domain()[0]?o.domain([o.domain()[0]-o.domain()[0]*.01,o.domain()[1]+o.domain()[1]*.01]):o.domain([-1,1])),u.domain()[0]===u.domain()[1]&&(u.domain()[0]?u.domain([u.domain()[0]-u.domain()[0]*.01,u.domain()[1]+u.domain()[1]*.01]):u.domain([-1,1])),isNaN(o.domain()[0])&&o.domain([-1,1]),isNaN(u.domain()[0])&&u.domain([-1,1]),P=P||o,H=H||u,B=B||a;var X=U.selectAll("g.nv-wrap.nv-scatter").data([I]),V=X.enter().append("g").attr("class","nvd3 nv-wrap nv-scatter nv-chart-"+s+(M?" nv-single-point":"")),$=V.append("defs"),J=V.append("g"),K=X.select("g");J.append("g").attr("class","nv-groups"),J.append("g").attr("class","nv-point-paths"),X.attr("transform","translate("+t.left+","+t.top+")"),$.append("clipPath").attr("id","nv-edge-clip-"+s).append("rect"),X.select("#nv-edge-clip-"+s+" rect").attr("width",q).attr("height",R),K.attr("clip-path",S?"url(#nv-edge-clip-"+s+")":""),F=!0;var G=X.select(".nv-groups").selectAll(".nv-group").data(function(e){return e},function(e){return e.key});G.enter().append("g").style("stroke-opacity",1e-6).style("fill-opacity",1e-6),G.exit().remove(),G.attr("class",function(e,t){return"nv-group nv-series-"+t}).classed("hover",function(e){return e.hover}),G.transition().style("fill",function(e,t){return i(e,t)}).style("stroke",function(e,t){return i(e,t)}).style("stroke-opacity",1).style("fill-opacity",.5);if(p){var Y=G.selectAll("circle.nv-point").data(function(e){return e.values},y);Y.enter().append("circle").style("fill",function(e,t){return e.color}).style("stroke",function(e,t){return e.color}).attr("cx",function(t,n){return e.utils.NaNtoZero(P(f(t,n)))}).attr("cy",function(t,n){return e.utils.NaNtoZero(H(l(t,n)))}).attr("r",function(e,t){return Math.sqrt(a(c(e,t))/Math.PI)}),Y.exit().remove(),G.exit().selectAll("path.nv-point").transition().attr("cx",function(t,n){return e.utils.NaNtoZero(o(f(t,n)))}).attr("cy",function(t,n){return e.utils.NaNtoZero(u(l(t,n)))}).remove(),Y.each(function(e,t){d3.select(this).classed("nv-point",!0).classed("nv-point-"+t,!0).classed("hover",!1)}),Y.transition().attr("cx",function(t,n){return e.utils.NaNtoZero(o(f(t,n)))}).attr("cy",function(t,n){return e.utils.NaNtoZero(u(l(t,n)))}).attr("r",function(e,t){return Math.sqrt(a(c(e,t))/Math.PI)})}else{var Y=G.selectAll("path.nv-point").data(function(e){return e.values});Y.enter().append("path").style("fill",function(e,t){return e.color}).style("stroke",function(e,t){return e.color}).attr("transform",function(e,t){return"translate("+P(f(e,t))+","+H(l(e,t))+")"}).attr("d",d3.svg.symbol().type(h).size(function(e,t){return a(c(e,t))})),Y.exit().remove(),G.exit().selectAll("path.nv-point").transition().attr("transform",function(e,t){return"translate("+o(f(e,t))+","+u(l(e,t))+")"}).remove(),Y.each(function(e,t){d3.select(this).classed("nv-point",!0).classed("nv-point-"+t,!0).classed("hover",!1)}),Y.transition().attr("transform",function(e,t){return"translate("+o(f(e,t))+","+u(l(e,t))+")"}).attr("d",d3.svg.symbol().type(h).size(function(e,t){return a(c(e,t))}))}clearTimeout(j),j=setTimeout(Q,300),P=o.copy(),H=u.copy(),B=a.copy()}),I}var t={top:0,right:0,bottom:0,left:0},n=960,r=500,i=e.utils.defaultColor(),s=Math.floor(Math.random()*1e5),o=d3.scale.linear(),u=d3.scale.linear(),a=d3.scale.linear(),f=function(e){return e.x},l=function(e){return e.y},c=function(e){return e.size||1},h=function(e){return e.shape||"circle"},p=!0,d=[],v=[],m=[],g=!0,y=null,b=function(e){return!e.notActive},w=!1,E=.1,S=!1,x=!0,T=function(){return 25},N=null,C=null,k=null,L=null,A=null,O=null,M=!1,_=d3.dispatch("elementClick","elementMouseover","elementMouseout"),D=!0,P,H,B,j,F=!1;return I.clearHighlights=function(){d3.selectAll(".nv-chart-"+s+" .nv-point.hover").classed("hover",!1)},I.highlightPoint=function(e,t,n){d3.select(".nv-chart-"+s+" .nv-series-"+e+" .nv-point-"+t).classed("hover",n)},_.on("elementMouseover.point",function(e){g&&I.highlightPoint(e.seriesIndex,e.pointIndex,!0)}),_.on("elementMouseout.point",function(e){g&&I.highlightPoint(e.seriesIndex,e.pointIndex,!1)}),I.dispatch=_,I.options=e.utils.optionsFunc.bind(I),I.x=function(e){return arguments.length?(f=d3.functor(e),I):f},I.y=function(e){return arguments.length?(l=d3.functor(e),I):l},I.size=function(e){return arguments.length?(c=d3.functor(e),I):c},I.margin=function(e){return arguments.length?(t.top=typeof e.top!="undefined"?e.top:t.top,t.right=typeof e.right!="undefined"?e.right:t.right,t.bottom=typeof e.bottom!="undefined"?e.bottom:t.bottom,t.left=typeof e.left!="undefined"?e.left:t.left,I):t},I.width=function(e){return arguments.length?(n=e,I):n},I.height=function(e){return arguments.length?(r=e,I):r},I.xScale=function(e){return arguments.length?(o=e,I):o},I.yScale=function(e){return arguments.length?(u=e,I):u},I.zScale=function(e){return arguments.length?(a=e,I):a},I.xDomain=function(e){return arguments.length?(N=e,I):N},I.yDomain=function(e){return arguments.length?(C=e,I):C},I.sizeDomain=function(e){return arguments.length?(A=e,I):A},I.xRange=function(e){return arguments.length?(k=e,I):k},I.yRange=function(e){return arguments.length?(L=e,I):L},I.sizeRange=function(e){return arguments.length?(O=e,I):O},I.forceX=function(e){return arguments.length?(d=e,I):d},I.forceY=function(e){return arguments.length?(v=e,I):v},I.forceSize=function(e){return arguments.length?(m=e,I):m},I.interactive=function(e){return arguments.length?(g=e,I):g},I.pointKey=function(e){return arguments.length?(y=e,I):y},I.pointActive=function(e){return arguments.length?(b=e,I):b},I.padData=function(e){return arguments.length?(w=e,I):w},I.padDataOuter=function(e){return arguments.length?(E=e,I):E},I.clipEdge=function(e){return arguments.length?(S=e,I):S},I.clipVoronoi=function(e){return arguments.length?(x=e,I):x},I.useVoronoi=function(e){return arguments.length?(D=e,D===!1&&(x=!1),I):D},I.clipRadius=function(e){return arguments.length?(T=e,I):T},I.color=function(t){return arguments.length?(i=e.utils.getColor(t),I):i},I.shape=function(e){return arguments.length?(h=e,I):h},I.onlyCircles=function(e){return arguments.length?(p=e,I):p},I.id=function(e){return arguments.length?(s=e,I):s},I.singlePoint=function(e){return arguments.length?(M=e,I):M},I},e.models.scatterChart=function(){"use strict";function F(e){return e.each(function(e){function K(){if(T)return X.select(".nv-point-paths").style("pointer-events","all"),!1;X.select(".nv-point-paths").style("pointer-events","none");var i=d3.mouse(this);h.distortion(x).focus(i[0]),p.distortion(x).focus(i[1]),X.select(".nv-scatterWrap").call(t),b&&X.select(".nv-x.nv-axis").call(n),w&&X.select(".nv-y.nv-axis").call(r),X.select(".nv-distributionX").datum(e.filter(function(e){return!e.disabled})).call(o),X.select(".nv-distributionY").datum(e.filter(function(e){return!e.disabled})).call(u)}var C=d3.select(this),k=this,L=(f||parseInt(C.style("width"))||960)-a.left-a.right,I=(l||parseInt(C.style("height"))||400)-a.top-a.bottom;F.update=function(){C.transition().duration(D).call(F)},F.container=this,A.disabled=e.map(function(e){return!!e.disabled});if(!O){var q;O={};for(q in A)A[q]instanceof Array?O[q]=A[q].slice(0):O[q]=A[q]}if(!e||!e.length||!e.filter(function(e){return e.values.length}).length){var R=C.selectAll(".nv-noData").data([_]);return R.enter().append("text").attr("class","nvd3 nv-noData").attr("dy","-.7em").style("text-anchor","middle"),R.attr("x",a.left+L/2).attr("y",a.top+I/2).text(function(e){return e}),F}C.selectAll(".nv-noData").remove(),P=P||h,H=H||p;var U=C.selectAll("g.nv-wrap.nv-scatterChart").data([e]),z=U.enter().append("g").attr("class","nvd3 nv-wrap nv-scatterChart nv-chart-"+t.id()),W=z.append("g"),X=U.select("g");W.append("rect").attr("class","nvd3 nv-background"),W.append("g").attr("class","nv-x nv-axis"),W.append("g").attr("class","nv-y nv-axis"),W.append("g").attr("class","nv-scatterWrap"),W.append("g").attr("class","nv-distWrap"),W.append("g").attr("class","nv-legendWrap"),W.append("g").attr("class","nv-controlsWrap");if(y){var V=S?L/2:L;i.width(V),U.select(".nv-legendWrap").datum(e).call(i),a.top!=i.height()&&(a.top=i.height(),I=(l||parseInt(C.style("height"))||400)-a.top-a.bottom),U.select(".nv-legendWrap").attr("transform","translate("+(L-V)+","+ -a.top+")")}S&&(s.width(180).color(["#444"]),X.select(".nv-controlsWrap").datum(j).attr("transform","translate(0,"+ -a.top+")").call(s)),U.attr("transform","translate("+a.left+","+a.top+")"),E&&X.select(".nv-y.nv-axis").attr("transform","translate("+L+",0)"),t.width(L).height(I).color(e.map(function(e,t){return e.color||c(e,t)}).filter(function(t,n){return!e[n].disabled})),d!==0&&t.xDomain(null),v!==0&&t.yDomain(null),U.select(".nv-scatterWrap").datum(e.filter(function(e){return!e.disabled})).call(t);if(d!==0){var $=h.domain()[1]-h.domain()[0];t.xDomain([h.domain()[0]-d*$,h.domain()[1]+d*$])}if(v!==0){var J=p.domain()[1]-p.domain()[0];t.yDomain([p.domain()[0]-v*J,p.domain()[1]+v*J])}(v!==0||d!==0)&&U.select(".nv-scatterWrap").datum(e.filter(function(e){return!e.disabled})).call(t),b&&(n.scale(h).ticks(n.ticks()&&n.ticks().length?n.ticks():L/100).tickSize(-I,0),X.select(".nv-x.nv-axis").attr("transform","translate(0,"+p.range()[0]+")").call(n)),w&&(r.scale(p).ticks(r.ticks()&&r.ticks().length?r.ticks():I/36).tickSize(-L,0),X.select(".nv-y.nv-axis").call(r)),m&&(o.getData(t.x()).scale(h).width(L).color(e.map(function(e,t){return e.color||c(e,t)}).filter(function(t,n){return!e[n].disabled})),W.select(".nv-distWrap").append("g").attr("class","nv-distributionX"),X.select(".nv-distributionX").attr("transform","translate(0,"+p.range()[0]+")").datum(e.filter(function(e){return!e.disabled})).call(o)),g&&(u.getData(t.y()).scale(p).width(I).color(e.map(function(e,t){return e.color||c(e,t)}).filter(function(t,n){return!e[n].disabled})),W.select(".nv-distWrap").append("g").attr("class","nv-distributionY"),X.select(".nv-distributionY").attr("transform","translate("+(E?L:-u.size())+",0)").datum(e.filter(function(e){return!e.disabled})).call(u)),d3.fisheye&&(X.select(".nv-background").attr("width",L).attr("height",I),X.select(".nv-background").on("mousemove",K),X.select(".nv-background").on("click",function(){T=!T}),t.dispatch.on("elementClick.freezeFisheye",function(){T=!T})),s.dispatch.on("legendClick",function(e,i){e.disabled=!e.disabled,x=e.disabled?0:2.5,X.select(".nv-background").style("pointer-events",e.disabled?"none":"all"),X.select(".nv-point-paths").style("pointer-events",e.disabled?"all":"none"),e.disabled?(h.distortion(x).focus(0),p.distortion(x).focus(0),X.select(".nv-scatterWrap").call(t),X.select(".nv-x.nv-axis").call(n),X.select(".nv-y.nv-axis").call(r)):T=!1,F.update()}),i.dispatch.on("stateChange",function(e){A.disabled=e.disabled,M.stateChange(A),F.update()}),t.dispatch.on("elementMouseover.tooltip",function(e){d3.select(".nv-chart-"+t.id()+" .nv-series-"+e.seriesIndex+" .nv-distx-"+e.pointIndex).attr("y1",function(t,n){return e.pos[1]-I}),d3.select(".nv-chart-"+t.id()+" .nv-series-"+e.seriesIndex+" .nv-disty-"+e.pointIndex).attr("x2",e.pos[0]+o.size()),e.pos=[e.pos[0]+a.left,e.pos[1]+a.top],M.tooltipShow(e)}),M.on("tooltipShow",function(e){N&&B(e,k.parentNode)}),M.on("changeState",function(t){typeof t.disabled!="undefined"&&(e.forEach(function(e,n){e.disabled=t.disabled[n]}),A.disabled=t.disabled),F.update()}),P=h.copy(),H=p.copy()}),F}var t=e.models.scatter(),n=e.models.axis(),r=e.models.axis(),i=e.models.legend(),s=e.models.legend(),o=e.models.distribution(),u=e.models.distribution(),a={top:30,right:20,bottom:50,left:75},f=null,l=null,c=e.utils.defaultColor(),h=d3.fisheye?d3.fisheye.scale(d3.scale.linear).distortion(0):t.xScale(),p=d3.fisheye?d3.fisheye.scale(d3.scale.linear).distortion(0):t.yScale(),d=0,v=0,m=!1,g=!1,y=!0,b=!0,w=!0,E=!1,S=!!d3.fisheye,x=0,T=!1,N=!0,C=function(e,t,n){return"<strong>"+t+"</strong>"},k=function(e,t,n){return"<strong>"+n+"</strong>"},L=null,A={},O=null,M=d3.dispatch("tooltipShow","tooltipHide","stateChange","changeState"),_="No Data Available.",D=250;t.xScale(h).yScale(p),n.orient("bottom").tickPadding(10),r.orient(E?"right":"left").tickPadding(10),o.axis("x"),u.axis("y"),s.updateState(!1);var P,H,B=function(i,s){var o=i.pos[0]+(s.offsetLeft||0),u=i.pos[1]+(s.offsetTop||0),f=i.pos[0]+(s.offsetLeft||0),l=p.range()[0]+a.top+(s.offsetTop||0),c=h.range()[0]+a.left+(s.offsetLeft||0),d=i.pos[1]+(s.offsetTop||0),v=n.tickFormat()(t.x()(i.point,i.pointIndex)),m=r.tickFormat()(t.y()(i.point,i.pointIndex));C!=null&&e.tooltip.show([f,l],C(i.series.key,v,m,i,F),"n",1,s,"x-nvtooltip"),k!=null&&e.tooltip.show([c,d],k(i.series.key,v,m,i,F),"e",1,s,"y-nvtooltip"),L!=null&&e.tooltip.show([o,u],L(i.series.key,v,m,i,F),i.value<0?"n":"s",null,s)},j=[{key:"Magnify",disabled:!0}];return t.dispatch.on("elementMouseout.tooltip",function(e){M.tooltipHide(e),d3.select(".nv-chart-"+t.id()+" .nv-series-"+e.seriesIndex+" .nv-distx-"+e.pointIndex).attr("y1",0),d3.select(".nv-chart-"+t.id()+" .nv-series-"+e.seriesIndex+" .nv-disty-"+e.pointIndex).attr("x2",u.size())}),M.on("tooltipHide",function(){N&&e.tooltip.cleanup()}),F.dispatch=M,F.scatter=t,F.legend=i,F.controls=s,F.xAxis=n,F.yAxis=r,F.distX=o,F.distY=u,d3.rebind(F,t,"id","interactive","pointActive","x","y","shape","size","xScale","yScale","zScale","xDomain","yDomain","xRange","yRange","sizeDomain","sizeRange","forceX","forceY","forceSize","clipVoronoi","clipRadius","useVoronoi"),F.options=e.utils.optionsFunc.bind(F),F.margin=function(e){return arguments.length?(a.top=typeof e.top!="undefined"?e.top:a.top,a.right=typeof e.right!="undefined"?e.right:a.right,a.bottom=typeof e.bottom!="undefined"?e.bottom:a.bottom,a.left=typeof e.left!="undefined"?e.left:a.left,F):a},F.width=function(e){return arguments.length?(f=e,F):f},F.height=function(e){return arguments.length?(l=e,F):l},F.color=function(t){return arguments.length?(c=e.utils.getColor(t),i.color(c),o.color(c),u.color(c),F):c},F.showDistX=function(e){return arguments.length?(m=e,F):m},F.showDistY=function(e){return arguments.length?(g=e,F):g},F.showControls=function(e){return arguments.length?(S=e,F):S},F.showLegend=function(e){return arguments.length?(y=e,F):y},F.showXAxis=function(e){return arguments.length?(b=e,F):b},F.showYAxis=function(e){return arguments.length?(w=e,F):w},F.rightAlignYAxis=function(e){return arguments.length?(E=e,r.orient(e?"right":"left"),F):E},F.fisheye=function(e){return arguments.length?(x=e,F):x},F.xPadding=function(e){return arguments.length?(d=e,F):d},F.yPadding=function(e){return arguments.length?(v=e,F):v},F.tooltips=function(e){return arguments.length?(N=e,F):N},F.tooltipContent=function(e){return arguments.length?(L=e,F):L},F.tooltipXContent=function(e){return arguments.length?(C=e,F):C},F.tooltipYContent=function(e){return arguments.length?(k=e,F):k},F.state=function(e){return arguments.length?(A=e,F):A},F.defaultState=function(e){return arguments.length?(O=e,F):O},F.noData=function(e){return arguments.length?(_=e,F):_},F.transitionDuration=function(e){return arguments.length?(D=e,F):D},F},e.models.scatterPlusLineChart=function(){"use strict";function B(e){return e.each(function(e){function $(){if(S)return z.select(".nv-point-paths").style("pointer-events","all"),!1;z.select(".nv-point-paths").style("pointer-events","none");var i=d3.mouse(this);h.distortion(E).focus(i[0]),p.distortion(E).focus(i[1]),z.select(".nv-scatterWrap").datum(e.filter(function(e){return!e.disabled})).call(t),g&&z.select(".nv-x.nv-axis").call(n),y&&z.select(".nv-y.nv-axis").call(r),z.select(".nv-distributionX").datum(e.filter(function(e){return!e.disabled})).call(o),z.select(".nv-distributionY").datum(e.filter(function(e){return!e.disabled})).call(u)}var T=d3.select(this),N=this,C=(f||parseInt(T.style("width"))||960)-a.left-a.right,j=(l||parseInt(T.style("height"))||400)-a.top-a.bottom;B.update=function(){T.transition().duration(M).call(B)},B.container=this,k.disabled=e.map(function(e){return!!e.disabled});if(!L){var F;L={};for(F in k)k[F]instanceof Array?L[F]=k[F].slice(0):L[F]=k[F]}if(!e||!e.length||!e.filter(function(e){return e.values.length}).length){var I=T.selectAll(".nv-noData").data([O]);return I.enter().append("text").attr("class","nvd3 nv-noData").attr("dy","-.7em").style("text-anchor","middle"),I.attr("x",a.left+C/2).attr("y",a.top+j/2).text(function(e){return e}),B}T.selectAll(".nv-noData").remove(),h=t.xScale(),p=t.yScale(),_=_||h,D=D||p;var q=T.selectAll("g.nv-wrap.nv-scatterChart").data([e]),R=q.enter().append("g").attr("class","nvd3 nv-wrap nv-scatterChart nv-chart-"+t.id()),U=R.append("g"),z=q.select("g");U.append("rect").attr("class","nvd3 nv-background").style("pointer-events","none"),U.append("g").attr("class","nv-x nv-axis"),U.append("g").attr("class","nv-y nv-axis"),U.append("g").attr("class","nv-scatterWrap"),U.append("g").attr("class","nv-regressionLinesWrap"),U.append("g").attr("class","nv-distWrap"),U.append("g").attr("class","nv-legendWrap"),U.append("g").attr("class","nv-controlsWrap"),q.attr("transform","translate("+a.left+","+a.top+")"),b&&z.select(".nv-y.nv-axis").attr("transform","translate("+C+",0)"),m&&(i.width(C/2),q.select(".nv-legendWrap").datum(e).call(i),a.top!=i.height()&&(a.top=i.height(),j=(l||parseInt(T.style("height"))||400)-a.top-a.bottom),q.select(".nv-legendWrap").attr("transform","translate("+C/2+","+ -a.top+")")),w&&(s.width(180).color(["#444"]),z.select(".nv-controlsWrap").datum(H).attr("transform","translate(0,"+ -a.top+")").call(s)),t.width(C).height(j).color(e.map(function(e,t){return e.color||c(e,t)}).filter(function(t,n){return!e[n].disabled})),q.select(".nv-scatterWrap").datum(e.filter(function(e){return!e.disabled})).call(t),q.select(".nv-regressionLinesWrap").attr("clip-path","url(#nv-edge-clip-"+t.id()+")");var W=q.select(".nv-regressionLinesWrap").selectAll(".nv-regLines").data(function(e){return e});W.enter().append("g").attr("class","nv-regLines");var X=W.selectAll(".nv-regLine").data(function(e){return[e]}),V=X.enter().append("line").attr("class","nv-regLine").style("stroke-opacity",0);X.transition().attr("x1",h.range()[0]).attr("x2",h.range()[1]).attr("y1",function(e,t){return p(h.domain()[0]*e.slope+e.intercept)}).attr("y2",function(e,t){return p(h.domain()[1]*e.slope+e.intercept)}).style("stroke",function(e,t,n){return c(e,n)}).style("stroke-opacity",function(e,t){return e.disabled||typeof e.slope=="undefined"||typeof e.intercept=="undefined"?0:1}),g&&(n.scale(h).ticks(n.ticks()?n.ticks():C/100).tickSize(-j,0),z.select(".nv-x.nv-axis").attr("transform","translate(0,"+p.range()[0]+")").call(n)),y&&(r.scale(p).ticks(r.ticks()?r.ticks():j/36).tickSize(-C,0),z.select(".nv-y.nv-axis").call(r)),d&&(o.getData(t.x()).scale(h).width(C).color(e.map(function(e,t){return e.color||c(e,t)}).filter(function(t,n){return!e[n].disabled})),U.select(".nv-distWrap").append("g").attr("class","nv-distributionX"),z.select(".nv-distributionX").attr("transform","translate(0,"+p.range()[0]+")").datum(e.filter(function(e){return!e.disabled})).call(o)),v&&(u.getData(t.y()).scale(p).width(j).color(e.map(function(e,t){return e.color||c(e,t)}).filter(function(t,n){return!e[n].disabled})),U.select(".nv-distWrap").append("g").attr("class","nv-distributionY"),z.select(".nv-distributionY").attr("transform"
-,"translate("+(b?C:-u.size())+",0)").datum(e.filter(function(e){return!e.disabled})).call(u)),d3.fisheye&&(z.select(".nv-background").attr("width",C).attr("height",j),z.select(".nv-background").on("mousemove",$),z.select(".nv-background").on("click",function(){S=!S}),t.dispatch.on("elementClick.freezeFisheye",function(){S=!S})),s.dispatch.on("legendClick",function(e,i){e.disabled=!e.disabled,E=e.disabled?0:2.5,z.select(".nv-background").style("pointer-events",e.disabled?"none":"all"),z.select(".nv-point-paths").style("pointer-events",e.disabled?"all":"none"),e.disabled?(h.distortion(E).focus(0),p.distortion(E).focus(0),z.select(".nv-scatterWrap").call(t),z.select(".nv-x.nv-axis").call(n),z.select(".nv-y.nv-axis").call(r)):S=!1,B.update()}),i.dispatch.on("stateChange",function(e){k=e,A.stateChange(k),B.update()}),t.dispatch.on("elementMouseover.tooltip",function(e){d3.select(".nv-chart-"+t.id()+" .nv-series-"+e.seriesIndex+" .nv-distx-"+e.pointIndex).attr("y1",e.pos[1]-j),d3.select(".nv-chart-"+t.id()+" .nv-series-"+e.seriesIndex+" .nv-disty-"+e.pointIndex).attr("x2",e.pos[0]+o.size()),e.pos=[e.pos[0]+a.left,e.pos[1]+a.top],A.tooltipShow(e)}),A.on("tooltipShow",function(e){x&&P(e,N.parentNode)}),A.on("changeState",function(t){typeof t.disabled!="undefined"&&(e.forEach(function(e,n){e.disabled=t.disabled[n]}),k.disabled=t.disabled),B.update()}),_=h.copy(),D=p.copy()}),B}var t=e.models.scatter(),n=e.models.axis(),r=e.models.axis(),i=e.models.legend(),s=e.models.legend(),o=e.models.distribution(),u=e.models.distribution(),a={top:30,right:20,bottom:50,left:75},f=null,l=null,c=e.utils.defaultColor(),h=d3.fisheye?d3.fisheye.scale(d3.scale.linear).distortion(0):t.xScale(),p=d3.fisheye?d3.fisheye.scale(d3.scale.linear).distortion(0):t.yScale(),d=!1,v=!1,m=!0,g=!0,y=!0,b=!1,w=!!d3.fisheye,E=0,S=!1,x=!0,T=function(e,t,n){return"<strong>"+t+"</strong>"},N=function(e,t,n){return"<strong>"+n+"</strong>"},C=function(e,t,n,r){return"<h3>"+e+"</h3>"+"<p>"+r+"</p>"},k={},L=null,A=d3.dispatch("tooltipShow","tooltipHide","stateChange","changeState"),O="No Data Available.",M=250;t.xScale(h).yScale(p),n.orient("bottom").tickPadding(10),r.orient(b?"right":"left").tickPadding(10),o.axis("x"),u.axis("y"),s.updateState(!1);var _,D,P=function(i,s){var o=i.pos[0]+(s.offsetLeft||0),u=i.pos[1]+(s.offsetTop||0),f=i.pos[0]+(s.offsetLeft||0),l=p.range()[0]+a.top+(s.offsetTop||0),c=h.range()[0]+a.left+(s.offsetLeft||0),d=i.pos[1]+(s.offsetTop||0),v=n.tickFormat()(t.x()(i.point,i.pointIndex)),m=r.tickFormat()(t.y()(i.point,i.pointIndex));T!=null&&e.tooltip.show([f,l],T(i.series.key,v,m,i,B),"n",1,s,"x-nvtooltip"),N!=null&&e.tooltip.show([c,d],N(i.series.key,v,m,i,B),"e",1,s,"y-nvtooltip"),C!=null&&e.tooltip.show([o,u],C(i.series.key,v,m,i.point.tooltip,i,B),i.value<0?"n":"s",null,s)},H=[{key:"Magnify",disabled:!0}];return t.dispatch.on("elementMouseout.tooltip",function(e){A.tooltipHide(e),d3.select(".nv-chart-"+t.id()+" .nv-series-"+e.seriesIndex+" .nv-distx-"+e.pointIndex).attr("y1",0),d3.select(".nv-chart-"+t.id()+" .nv-series-"+e.seriesIndex+" .nv-disty-"+e.pointIndex).attr("x2",u.size())}),A.on("tooltipHide",function(){x&&e.tooltip.cleanup()}),B.dispatch=A,B.scatter=t,B.legend=i,B.controls=s,B.xAxis=n,B.yAxis=r,B.distX=o,B.distY=u,d3.rebind(B,t,"id","interactive","pointActive","x","y","shape","size","xScale","yScale","zScale","xDomain","yDomain","xRange","yRange","sizeDomain","sizeRange","forceX","forceY","forceSize","clipVoronoi","clipRadius","useVoronoi"),B.options=e.utils.optionsFunc.bind(B),B.margin=function(e){return arguments.length?(a.top=typeof e.top!="undefined"?e.top:a.top,a.right=typeof e.right!="undefined"?e.right:a.right,a.bottom=typeof e.bottom!="undefined"?e.bottom:a.bottom,a.left=typeof e.left!="undefined"?e.left:a.left,B):a},B.width=function(e){return arguments.length?(f=e,B):f},B.height=function(e){return arguments.length?(l=e,B):l},B.color=function(t){return arguments.length?(c=e.utils.getColor(t),i.color(c),o.color(c),u.color(c),B):c},B.showDistX=function(e){return arguments.length?(d=e,B):d},B.showDistY=function(e){return arguments.length?(v=e,B):v},B.showControls=function(e){return arguments.length?(w=e,B):w},B.showLegend=function(e){return arguments.length?(m=e,B):m},B.showXAxis=function(e){return arguments.length?(g=e,B):g},B.showYAxis=function(e){return arguments.length?(y=e,B):y},B.rightAlignYAxis=function(e){return arguments.length?(b=e,r.orient(e?"right":"left"),B):b},B.fisheye=function(e){return arguments.length?(E=e,B):E},B.tooltips=function(e){return arguments.length?(x=e,B):x},B.tooltipContent=function(e){return arguments.length?(C=e,B):C},B.tooltipXContent=function(e){return arguments.length?(T=e,B):T},B.tooltipYContent=function(e){return arguments.length?(N=e,B):N},B.state=function(e){return arguments.length?(k=e,B):k},B.defaultState=function(e){return arguments.length?(L=e,B):L},B.noData=function(e){return arguments.length?(O=e,B):O},B.transitionDuration=function(e){return arguments.length?(M=e,B):M},B},e.models.sparkline=function(){"use strict";function d(e){return e.each(function(e){var i=n-t.left-t.right,d=r-t.top-t.bottom,v=d3.select(this);s.domain(l||d3.extent(e,u)).range(h||[0,i]),o.domain(c||d3.extent(e,a)).range(p||[d,0]);var m=v.selectAll("g.nv-wrap.nv-sparkline").data([e]),g=m.enter().append("g").attr("class","nvd3 nv-wrap nv-sparkline"),b=g.append("g"),w=m.select("g");m.attr("transform","translate("+t.left+","+t.top+")");var E=m.selectAll("path").data(function(e){return[e]});E.enter().append("path"),E.exit().remove(),E.style("stroke",function(e,t){return e.color||f(e,t)}).attr("d",d3.svg.line().x(function(e,t){return s(u(e,t))}).y(function(e,t){return o(a(e,t))}));var S=m.selectAll("circle.nv-point").data(function(e){function n(t){if(t!=-1){var n=e[t];return n.pointIndex=t,n}return null}var t=e.map(function(e,t){return a(e,t)}),r=n(t.lastIndexOf(o.domain()[1])),i=n(t.indexOf(o.domain()[0])),s=n(t.length-1);return[i,r,s].filter(function(e){return e!=null})});S.enter().append("circle"),S.exit().remove(),S.attr("cx",function(e,t){return s(u(e,e.pointIndex))}).attr("cy",function(e,t){return o(a(e,e.pointIndex))}).attr("r",2).attr("class",function(e,t){return u(e,e.pointIndex)==s.domain()[1]?"nv-point nv-currentValue":a(e,e.pointIndex)==o.domain()[0]?"nv-point nv-minValue":"nv-point nv-maxValue"})}),d}var t={top:2,right:0,bottom:2,left:0},n=400,r=32,i=!0,s=d3.scale.linear(),o=d3.scale.linear(),u=function(e){return e.x},a=function(e){return e.y},f=e.utils.getColor(["#000"]),l,c,h,p;return d.options=e.utils.optionsFunc.bind(d),d.margin=function(e){return arguments.length?(t.top=typeof e.top!="undefined"?e.top:t.top,t.right=typeof e.right!="undefined"?e.right:t.right,t.bottom=typeof e.bottom!="undefined"?e.bottom:t.bottom,t.left=typeof e.left!="undefined"?e.left:t.left,d):t},d.width=function(e){return arguments.length?(n=e,d):n},d.height=function(e){return arguments.length?(r=e,d):r},d.x=function(e){return arguments.length?(u=d3.functor(e),d):u},d.y=function(e){return arguments.length?(a=d3.functor(e),d):a},d.xScale=function(e){return arguments.length?(s=e,d):s},d.yScale=function(e){return arguments.length?(o=e,d):o},d.xDomain=function(e){return arguments.length?(l=e,d):l},d.yDomain=function(e){return arguments.length?(c=e,d):c},d.xRange=function(e){return arguments.length?(h=e,d):h},d.yRange=function(e){return arguments.length?(p=e,d):p},d.animate=function(e){return arguments.length?(i=e,d):i},d.color=function(t){return arguments.length?(f=e.utils.getColor(t),d):f},d},e.models.sparklinePlus=function(){"use strict";function v(e){return e.each(function(c){function O(){if(a)return;var e=C.selectAll(".nv-hoverValue").data(u),r=e.enter().append("g").attr("class","nv-hoverValue").style("stroke-opacity",0).style("fill-opacity",0);e.exit().transition().duration(250).style("stroke-opacity",0).style("fill-opacity",0).remove(),e.attr("transform",function(e){return"translate("+s(t.x()(c[e],e))+",0)"}).transition().duration(250).style("stroke-opacity",1).style("fill-opacity",1);if(!u.length)return;r.append("line").attr("x1",0).attr("y1",-n.top).attr("x2",0).attr("y2",b),r.append("text").attr("class","nv-xValue").attr("x",-6).attr("y",-n.top).attr("text-anchor","end").attr("dy",".9em"),C.select(".nv-hoverValue .nv-xValue").text(f(t.x()(c[u[0]],u[0]))),r.append("text").attr("class","nv-yValue").attr("x",6).attr("y",-n.top).attr("text-anchor","start").attr("dy",".9em"),C.select(".nv-hoverValue .nv-yValue").text(l(t.y()(c[u[0]],u[0])))}function M(){function r(e,n){var r=Math.abs(t.x()(e[0],0)-n),i=0;for(var s=0;s<e.length;s++)Math.abs(t.x()(e[s],s)-n)<r&&(r=Math.abs(t.x()(e[s],s)-n),i=s);return i}if(a)return;var e=d3.mouse(this)[0]-n.left;u=[r(c,Math.round(s.invert(e)))],O()}var m=d3.select(this),g=(r||parseInt(m.style("width"))||960)-n.left-n.right,b=(i||parseInt(m.style("height"))||400)-n.top-n.bottom;v.update=function(){v(e)},v.container=this;if(!c||!c.length){var w=m.selectAll(".nv-noData").data([d]);return w.enter().append("text").attr("class","nvd3 nv-noData").attr("dy","-.7em").style("text-anchor","middle"),w.attr("x",n.left+g/2).attr("y",n.top+b/2).text(function(e){return e}),v}m.selectAll(".nv-noData").remove();var E=t.y()(c[c.length-1],c.length-1);s=t.xScale(),o=t.yScale();var S=m.selectAll("g.nv-wrap.nv-sparklineplus").data([c]),T=S.enter().append("g").attr("class","nvd3 nv-wrap nv-sparklineplus"),N=T.append("g"),C=S.select("g");N.append("g").attr("class","nv-sparklineWrap"),N.append("g").attr("class","nv-valueWrap"),N.append("g").attr("class","nv-hoverArea"),S.attr("transform","translate("+n.left+","+n.top+")");var k=C.select(".nv-sparklineWrap");t.width(g).height(b),k.call(t);var L=C.select(".nv-valueWrap"),A=L.selectAll(".nv-currentValue").data([E]);A.enter().append("text").attr("class","nv-currentValue").attr("dx",p?-8:8).attr("dy",".9em").style("text-anchor",p?"end":"start"),A.attr("x",g+(p?n.right:0)).attr("y",h?function(e){return o(e)}:0).style("fill",t.color()(c[c.length-1],c.length-1)).text(l(E)),N.select(".nv-hoverArea").append("rect").on("mousemove",M).on("click",function(){a=!a}).on("mouseout",function(){u=[],O()}),C.select(".nv-hoverArea rect").attr("transform",function(e){return"translate("+ -n.left+","+ -n.top+")"}).attr("width",g+n.left+n.right).attr("height",b+n.top)}),v}var t=e.models.sparkline(),n={top:15,right:100,bottom:10,left:50},r=null,i=null,s,o,u=[],a=!1,f=d3.format(",r"),l=d3.format(",.2f"),c=!0,h=!0,p=!1,d="No Data Available.";return v.sparkline=t,d3.rebind(v,t,"x","y","xScale","yScale","color"),v.options=e.utils.optionsFunc.bind(v),v.margin=function(e){return arguments.length?(n.top=typeof e.top!="undefined"?e.top:n.top,n.right=typeof e.right!="undefined"?e.right:n.right,n.bottom=typeof e.bottom!="undefined"?e.bottom:n.bottom,n.left=typeof e.left!="undefined"?e.left:n.left,v):n},v.width=function(e){return arguments.length?(r=e,v):r},v.height=function(e){return arguments.length?(i=e,v):i},v.xTickFormat=function(e){return arguments.length?(f=e,v):f},v.yTickFormat=function(e){return arguments.length?(l=e,v):l},v.showValue=function(e){return arguments.length?(c=e,v):c},v.alignValue=function(e){return arguments.length?(h=e,v):h},v.rightAlignValue=function(e){return arguments.length?(p=e,v):p},v.noData=function(e){return arguments.length?(d=e,v):d},v},e.models.stackedArea=function(){"use strict";function g(e){return e.each(function(e){var a=n-t.left-t.right,b=r-t.top-t.bottom,w=d3.select(this);p=v.xScale(),d=v.yScale();var E=e;e.forEach(function(e,t){e.seriesIndex=t,e.values=e.values.map(function(e,n){return e.index=n,e.seriesIndex=t,e})});var S=e.filter(function(e){return!e.disabled});e=d3.layout.stack().order(l).offset(f).values(function(e){return e.values}).x(o).y(u).out(function(e,t,n){var r=u(e)===0?0:n;e.display={y:r,y0:t}})(S);var T=w.selectAll("g.nv-wrap.nv-stackedarea").data([e]),N=T.enter().append("g").attr("class","nvd3 nv-wrap nv-stackedarea"),C=N.append("defs"),k=N.append("g"),L=T.select("g");k.append("g").attr("class","nv-areaWrap"),k.append("g").attr("class","nv-scatterWrap"),T.attr("transform","translate("+t.left+","+t.top+")"),v.width(a).height(b).x(o).y(function(e){return e.display.y+e.display.y0}).forceY([0]).color(e.map(function(e,t){return e.color||i(e,e.seriesIndex)}));var A=L.select(".nv-scatterWrap").datum(e);A.call(v),C.append("clipPath").attr("id","nv-edge-clip-"+s).append("rect"),T.select("#nv-edge-clip-"+s+" rect").attr("width",a).attr("height",b),L.attr("clip-path",h?"url(#nv-edge-clip-"+s+")":"");var O=d3.svg.area().x(function(e,t){return p(o(e,t))}).y0(function(e){return d(e.display.y0)}).y1(function(e){return d(e.display.y+e.display.y0)}).interpolate(c),M=d3.svg.area().x(function(e,t){return p(o(e,t))}).y0(function(e){return d(e.display.y0)}).y1(function(e){return d(e.display.y0)}),_=L.select(".nv-areaWrap").selectAll("path.nv-area").data(function(e){return e});_.enter().append("path").attr("class",function(e,t){return"nv-area nv-area-"+t}).attr("d",function(e,t){return M(e.values,e.seriesIndex)}).on("mouseover",function(e,t){d3.select(this).classed("hover",!0),m.areaMouseover({point:e,series:e.key,pos:[d3.event.pageX,d3.event.pageY],seriesIndex:e.seriesIndex})}).on("mouseout",function(e,t){d3.select(this).classed("hover",!1),m.areaMouseout({point:e,series:e.key,pos:[d3.event.pageX,d3.event.pageY],seriesIndex:e.seriesIndex})}).on("click",function(e,t){d3.select(this).classed("hover",!1),m.areaClick({point:e,series:e.key,pos:[d3.event.pageX,d3.event.pageY],seriesIndex:e.seriesIndex})}),_.exit().remove(),_.style("fill",function(e,t){return e.color||i(e,e.seriesIndex)}).style("stroke",function(e,t){return e.color||i(e,e.seriesIndex)}),_.transition().attr("d",function(e,t){return O(e.values,t)}),v.dispatch.on("elementMouseover.area",function(e){L.select(".nv-chart-"+s+" .nv-area-"+e.seriesIndex).classed("hover",!0)}),v.dispatch.on("elementMouseout.area",function(e){L.select(".nv-chart-"+s+" .nv-area-"+e.seriesIndex).classed("hover",!1)}),g.d3_stackedOffset_stackPercent=function(e){var t=e.length,n=e[0].length,r=1/t,i,s,o,a=[];for(s=0;s<n;++s){for(i=0,o=0;i<E.length;i++)o+=u(E[i].values[s]);if(o)for(i=0;i<t;i++)e[i][s][1]/=o;else for(i=0;i<t;i++)e[i][s][1]=r}for(s=0;s<n;++s)a[s]=0;return a}}),g}var t={top:0,right:0,bottom:0,left:0},n=960,r=500,i=e.utils.defaultColor(),s=Math.floor(Math.random()*1e5),o=function(e){return e.x},u=function(e){return e.y},a="stack",f="zero",l="default",c="linear",h=!1,p,d,v=e.models.scatter(),m=d3.dispatch("tooltipShow","tooltipHide","areaClick","areaMouseover","areaMouseout");return v.size(2.2).sizeDomain([2.2,2.2]),v.dispatch.on("elementClick.area",function(e){m.areaClick(e)}),v.dispatch.on("elementMouseover.tooltip",function(e){e.pos=[e.pos[0]+t.left,e.pos[1]+t.top],m.tooltipShow(e)}),v.dispatch.on("elementMouseout.tooltip",function(e){m.tooltipHide(e)}),g.dispatch=m,g.scatter=v,d3.rebind(g,v,"interactive","size","xScale","yScale","zScale","xDomain","yDomain","xRange","yRange","sizeDomain","forceX","forceY","forceSize","clipVoronoi","useVoronoi","clipRadius","highlightPoint","clearHighlights"),g.options=e.utils.optionsFunc.bind(g),g.x=function(e){return arguments.length?(o=d3.functor(e),g):o},g.y=function(e){return arguments.length?(u=d3.functor(e),g):u},g.margin=function(e){return arguments.length?(t.top=typeof e.top!="undefined"?e.top:t.top,t.right=typeof e.right!="undefined"?e.right:t.right,t.bottom=typeof e.bottom!="undefined"?e.bottom:t.bottom,t.left=typeof e.left!="undefined"?e.left:t.left,g):t},g.width=function(e){return arguments.length?(n=e,g):n},g.height=function(e){return arguments.length?(r=e,g):r},g.clipEdge=function(e){return arguments.length?(h=e,g):h},g.color=function(t){return arguments.length?(i=e.utils.getColor(t),g):i},g.offset=function(e){return arguments.length?(f=e,g):f},g.order=function(e){return arguments.length?(l=e,g):l},g.style=function(e){if(!arguments.length)return a;a=e;switch(a){case"stack":g.offset("zero"),g.order("default");break;case"stream":g.offset("wiggle"),g.order("inside-out");break;case"stream-center":g.offset("silhouette"),g.order("inside-out");break;case"expand":g.offset("expand"),g.order("default");break;case"stack_percent":g.offset(g.d3_stackedOffset_stackPercent),g.order("default")}return g},g.interpolate=function(e){return arguments.length?(c=e,g):c},g},e.models.stackedAreaChart=function(){"use strict";function M(y){return y.each(function(y){var _=d3.select(this),D=this,P=(a||parseInt(_.style("width"))||960)-u.left-u.right,H=(f||parseInt(_.style("height"))||400)-u.top-u.bottom;M.update=function(){_.transition().duration(A).call(M)},M.container=this,S.disabled=y.map(function(e){return!!e.disabled});if(!x){var B;x={};for(B in S)S[B]instanceof Array?x[B]=S[B].slice(0):x[B]=S[B]}if(!y||!y.length||!y.filter(function(e){return e.values.length}).length){var j=_.selectAll(".nv-noData").data([T]);return j.enter().append("text").attr("class","nvd3 nv-noData").attr("dy","-.7em").style("text-anchor","middle"),j.attr("x",u.left+P/2).attr("y",u.top+H/2).text(function(e){return e}),M}_.selectAll(".nv-noData").remove(),b=t.xScale(),w=t.yScale();var F=_.selectAll("g.nv-wrap.nv-stackedAreaChart").data([y]),I=F.enter().append("g").attr("class","nvd3 nv-wrap nv-stackedAreaChart").append("g"),q=F.select("g");I.append("rect").style("opacity",0),I.append("g").attr("class","nv-x nv-axis"),I.append("g").attr("class","nv-y nv-axis"),I.append("g").attr("class","nv-stackedWrap"),I.append("g").attr("class","nv-legendWrap"),I.append("g").attr("class","nv-controlsWrap"),I.append("g").attr("class","nv-interactive"),q.select("rect").attr("width",P).attr("height",H);if(h){var R=c?P-C:P;i.width(R),q.select(".nv-legendWrap").datum(y).call(i),u.top!=i.height()&&(u.top=i.height(),H=(f||parseInt(_.style("height"))||400)-u.top-u.bottom),q.select(".nv-legendWrap").attr("transform","translate("+(P-R)+","+ -u.top+")")}if(c){var U=[{key:L.stacked||"Stacked",metaKey:"Stacked",disabled:t.style()!="stack",style:"stack"},{key:L.stream||"Stream",metaKey:"Stream",disabled:t.style()!="stream",style:"stream"},{key:L.expanded||"Expanded",metaKey:"Expanded",disabled:t.style()!="expand",style:"expand"},{key:L.stack_percent||"Stack %",metaKey:"Stack_Percent",disabled:t.style()!="stack_percent",style:"stack_percent"}];C=k.length/3*260,U=U.filter(function(e){return k.indexOf(e.metaKey)!==-1}),s.width(C).color(["#444","#444","#444"]),q.select(".nv-controlsWrap").datum(U).call(s),u.top!=Math.max(s.height(),i.height())&&(u.top=Math.max(s.height(),i.height()),H=(f||parseInt(_.style("height"))||400)-u.top-u.bottom),q.select(".nv-controlsWrap").attr("transform","translate(0,"+ -u.top+")")}F.attr("transform","translate("+u.left+","+u.top+")"),v&&q.select(".nv-y.nv-axis").attr("transform","translate("+P+",0)"),m&&(o.width(P).height(H).margin({left:u.left,top:u.top}).svgContainer(_).xScale(b),F.select(".nv-interactive").call(o)),t.width(P).height(H);var z=q.select(".nv-stackedWrap").datum(y);z.transition().call(t),p&&(n.scale(b).ticks(P/100).tickSize(-H,0),q.select(".nv-x.nv-axis").attr("transform","translate(0,"+H+")"),q.select(".nv-x.nv-axis").transition().duration(0).call(n)),d&&(r.scale(w).ticks(t.offset()=="wiggle"?0:H/36).tickSize(-P,0).setTickFormat(t.style()=="expand"||t.style()=="stack_percent"?d3.format("%"):E),q.select(".nv-y.nv-axis").transition().duration(0).call(r)),t.dispatch.on("areaClick.toggle",function(e){y.filter(function(e){return!e.disabled}).length===1?y.forEach(function(e){e.disabled=!1}):y.forEach(function(t,n){t.disabled=n!=e.seriesIndex}),S.disabled=y.map(function(e){return!!e.disabled}),N.stateChange(S),M.update()}),i.dispatch.on("stateChange",function(e){S.disabled=e.disabled,N.stateChange(S),M.update()}),s.dispatch.on("legendClick",function(e,n){if(!e.disabled)return;U=U.map(function(e){return e.disabled=!0,e}),e.disabled=!1,t.style(e.style),S.style=t.style(),N.stateChange(S),M.update()}),o.dispatch.on("elementMousemove",function(i){t.clearHighlights();var s,a,f,c=[];y.filter(function(e,t){return e.seriesIndex=t,!e.disabled}).forEach(function(n,r){a=e.interactiveBisect(n.values,i.pointXValue,M.x()),t.highlightPoint(r,a,!0);var o=n.values[a];if(typeof o=="undefined")return;typeof s=="undefined"&&(s=o),typeof f=="undefined"&&(f=M.xScale()(M.x()(o,a)));var u=t.style()=="expand"?o.display.y:M.y()(o,a);c.push({key:n.key,value:u,color:l(n,n.seriesIndex),stackedValue:o.display})}),c.reverse();if(c.length>2){var h=M.yScale().invert(i.mouseY),p=Infinity,d=null;c.forEach(function(e,t){h=Math.abs(h);var n=Math.abs(e.stackedValue.y0),r=Math.abs(e.stackedValue.y);if(h>=n&&h<=r+n){d=t;return}}),d!=null&&(c[d].highlight=!0)}var v=n.tickFormat()(M.x()(s,a)),m=t.style()=="expand"?function(e,t){return d3.format(".1%")(e)}:function(e,t){return r.tickFormat()(e)};o.tooltip.position({left:f+u.left,top:i.mouseY+u.top}).chartContainer(D.parentNode).enabled(g).valueFormatter(m).data({value:v,series:c})(),o.renderGuideLine(f)}),o.dispatch.on("elementMouseout",function(e){N.tooltipHide(),t.clearHighlights()}),N.on("tooltipShow",function(e){g&&O(e,D.parentNode)}),N.on("changeState",function(e){typeof e.disabled!="undefined"&&(y.forEach(function(t,n){t.disabled=e.disabled[n]}),S.disabled=e.disabled),typeof e.style!="undefined"&&t.style(e.style),M.update()})}),M}var t=e.models.stackedArea(),n=e.models.axis(),r=e.models.axis(),i=e.models.legend(),s=e.models.legend(),o=e.interactiveGuideline(),u={top:30,right:25,bottom:50,left:60},a=null,f=null,l=e.utils.defaultColor(),c=!0,h=!0,p=!0,d=!0,v=!1,m=!1,g=!0,y=function(e,t,n,r,i){return"<h3>"+e+"</h3>"+"<p>"+n+" on "+t+"</p>"},b,w,E=d3.format(",.2f"),S={style:t.style()},x=null,T="No Data Available.",N=d3.dispatch("tooltipShow","tooltipHide","stateChange","changeState"),C=250,k=["Stacked","Stream","Expanded"],L={},A=250;n.orient("bottom").tickPadding(7),r.orient(v?"right":"left"),s.updateState(!1);var O=function(i,s){var o=i.pos[0]+(s.offsetLeft||0),u=i.pos[1]+(s.offsetTop||0),a=n.tickFormat()(t.x()(i.point,i.pointIndex)),f=r.tickFormat()(t.y()(i.point,i.pointIndex)),l=y(i.series.key,a,f,i,M);e.tooltip.show([o,u],l,i.value<0?"n":"s",null,s)};return t.dispatch.on("tooltipShow",function(e){e.pos=[e.pos[0]+u.left,e.pos[1]+u.top],N.tooltipShow(e)}),t.dispatch.on("tooltipHide",function(e){N.tooltipHide(e)}),N.on("tooltipHide",function(){g&&e.tooltip.cleanup()}),M.dispatch=N,M.stacked=t,M.legend=i,M.controls=s,M.xAxis=n,M.yAxis=r,M.interactiveLayer=o,d3.rebind(M,t,"x","y","size","xScale","yScale","xDomain","yDomain","xRange","yRange","sizeDomain","interactive","useVoronoi","offset","order","style","clipEdge","forceX","forceY","forceSize","interpolate"),M.options=e.utils.optionsFunc.bind(M),M.margin=function(e){return arguments.length?(u.top=typeof e.top!="undefined"?e.top:u.top,u.right=typeof e.right!="undefined"?e.right:u.right,u.bottom=typeof e.bottom!="undefined"?e.bottom:u.bottom,u.left=typeof e.left!="undefined"?e.left:u.left,M):u},M.width=function(e){return arguments.length?(a=e,M):a},M.height=function(e){return arguments.length?(f=e,M):f},M.color=function(n){return arguments.length?(l=e.utils.getColor(n),i.color(l),t.color(l),M):l},M.showControls=function(e){return arguments.length?(c=e,M):c},M.showLegend=function(e){return arguments.length?(h=e,M):h},M.showXAxis=function(e){return arguments.length?(p=e,M):p},M.showYAxis=function(e){return arguments.length?(d=e,M):d},M.rightAlignYAxis=function(e){return arguments.length?(v=e,r.orient(e?"right":"left"),M):v},M.useInteractiveGuideline=function(e){return arguments.length?(m=e,e===!0&&(M.interactive(!1),M.useVoronoi(!1)),M):m},M.tooltip=function(e){return arguments.length?(y=e,M):y},M.tooltips=function(e){return arguments.length?(g=e,M):g},M.tooltipContent=function(e){return arguments.length?(y=e,M):y},M.state=function(e){return arguments.length?(S=e,M):S},M.defaultState=function(e){return arguments.length?(x=e,M):x},M.noData=function(e){return arguments.length?(T=e,M):T},M.transitionDuration=function(e){return arguments.length?(A=e,M):A},M.controlsData=function(e){return arguments.length?(k=e,M):k},M.controlLabels=function(e){return arguments.length?typeof e!="object"?L:(L=e,M):L},r.setTickFormat=r.tickFormat,r.tickFormat=function(e){return arguments.length?(E=e,r):E},M}})();
\ No newline at end of file
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/package.json b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/package.json
deleted file mode 100755
index 6e328d17..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/package.json
+++ /dev/null
@@ -1,13 +0,0 @@
-{
-  "name": "nvd3",
-  "version": "0.0.1",
-  "devDependencies": {
-    "grunt": "~0.4.1",
-    "grunt-contrib-jshint": "~0.3.0",
-    "grunt-contrib-watch": "~0.3.1",
-    "grunt-contrib-uglify": "~0.2.0",
-    "grunt-contrib-concat": "~0.2.0",
-    "grunt-contrib-copy": "~0.4.1",
-    "grunt-contrib-cssmin": "~0.6.2"
-  }
-}
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/core.js b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/core.js
deleted file mode 100755
index b96b071f..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/core.js
+++ /dev/null
@@ -1,125 +0,0 @@
-
-var nv = window.nv || {};
-
-
-nv.version = '1.1.15b';
-nv.dev = true //set false when in production
-
-window.nv = nv;
-
-nv.tooltip = nv.tooltip || {}; // For the tooltip system
-nv.utils = nv.utils || {}; // Utility subsystem
-nv.models = nv.models || {}; //stores all the possible models/components
-nv.charts = {}; //stores all the ready to use charts
-nv.graphs = []; //stores all the graphs currently on the page
-nv.logs = {}; //stores some statistics and potential error messages
-
-nv.dispatch = d3.dispatch('render_start', 'render_end');
-
-// *************************************************************************
-//  Development render timers - disabled if dev = false
-
-if (nv.dev) {
-  nv.dispatch.on('render_start', function(e) {
-    nv.logs.startTime = +new Date();
-  });
-
-  nv.dispatch.on('render_end', function(e) {
-    nv.logs.endTime = +new Date();
-    nv.logs.totalTime = nv.logs.endTime - nv.logs.startTime;
-    nv.log('total', nv.logs.totalTime); // used for development, to keep track of graph generation times
-  });
-}
-
-// ********************************************
-//  Public Core NV functions
-
-// Logs all arguments, and returns the last so you can test things in place
-// Note: in IE8 console.log is an object not a function, and if modernizr is used
-// then calling Function.prototype.bind with with anything other than a function
-// causes a TypeError to be thrown.
-nv.log = function() {
-  if (nv.dev && console.log && console.log.apply)
-    console.log.apply(console, arguments)
-  else if (nv.dev && typeof console.log == "function" && Function.prototype.bind) {
-    var log = Function.prototype.bind.call(console.log, console);
-    log.apply(console, arguments);
-  }
-  return arguments[arguments.length - 1];
-};
-
-
-nv.render = function render(step) {
-  step = step || 1; // number of graphs to generate in each timeout loop
-
-  nv.render.active = true;
-  nv.dispatch.render_start();
-
-  setTimeout(function() {
-    var chart, graph;
-
-    for (var i = 0; i < step && (graph = nv.render.queue[i]); i++) {
-      chart = graph.generate();
-      if (typeof graph.callback == typeof(Function)) graph.callback(chart);
-      nv.graphs.push(chart);
-    }
-
-    nv.render.queue.splice(0, i);
-
-    if (nv.render.queue.length) setTimeout(arguments.callee, 0);
-    else {
-      nv.dispatch.render_end();
-      nv.render.active = false;
-    }
-  }, 0);
-};
-
-nv.render.active = false;
-nv.render.queue = [];
-
-nv.addGraph = function(obj) {
-  if (typeof arguments[0] === typeof(Function))
-    obj = {generate: arguments[0], callback: arguments[1]};
-
-  nv.render.queue.push(obj);
-
-  if (!nv.render.active) nv.render();
-};
-
-nv.identity = function(d) { return d; };
-
-nv.strip = function(s) { return s.replace(/(\s|&)/g,''); };
-
-function daysInMonth(month,year) {
-  return (new Date(year, month+1, 0)).getDate();
-}
-
-function d3_time_range(floor, step, number) {
-  return function(t0, t1, dt) {
-    var time = floor(t0), times = [];
-    if (time < t0) step(time);
-    if (dt > 1) {
-      while (time < t1) {
-        var date = new Date(+time);
-        if ((number(date) % dt === 0)) times.push(date);
-        step(time);
-      }
-    } else {
-      while (time < t1) { times.push(new Date(+time)); step(time); }
-    }
-    return times;
-  };
-}
-
-d3.time.monthEnd = function(date) {
-  return new Date(date.getFullYear(), date.getMonth(), 0);
-};
-
-d3.time.monthEnds = d3_time_range(d3.time.monthEnd, function(date) {
-    date.setUTCDate(date.getUTCDate() + 1);
-    date.setDate(daysInMonth(date.getMonth() + 1, date.getFullYear()));
-  }, function(date) {
-    return date.getMonth();
-  }
-);
-
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/interactiveLayer.js b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/interactiveLayer.js
deleted file mode 100755
index 4dfb68dc..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/interactiveLayer.js
+++ /dev/null
@@ -1,251 +0,0 @@
-/* Utility class to handle creation of an interactive layer.
-This places a rectangle on top of the chart. When you mouse move over it, it sends a dispatch
-containing the X-coordinate. It can also render a vertical line where the mouse is located.
-
-dispatch.elementMousemove is the important event to latch onto.  It is fired whenever the mouse moves over
-the rectangle. The dispatch is given one object which contains the mouseX/Y location.
-It also has 'pointXValue', which is the conversion of mouseX to the x-axis scale.
-*/
-nv.interactiveGuideline = function() {
-	"use strict";
-	var tooltip = nv.models.tooltip();
-	//Public settings
-	var width = null
-	, height = null
-    //Please pass in the bounding chart's top and left margins
-    //This is important for calculating the correct mouseX/Y positions.
-	, margin = {left: 0, top: 0}
-	, xScale = d3.scale.linear()
-	, yScale = d3.scale.linear()
-	, dispatch = d3.dispatch('elementMousemove', 'elementMouseout','elementDblclick')
-	, showGuideLine = true
-	, svgContainer = null  
-    //Must pass in the bounding chart's <svg> container.
-    //The mousemove event is attached to this container.
-	;
-
-	//Private variables
-	var isMSIE = navigator.userAgent.indexOf("MSIE") !== -1  //Check user-agent for Microsoft Internet Explorer.
-	;
-
-
-	function layer(selection) {
-		selection.each(function(data) {
-				var container = d3.select(this);
-				
-				var availableWidth = (width || 960), availableHeight = (height || 400);
-
-				var wrap = container.selectAll("g.nv-wrap.nv-interactiveLineLayer").data([data]);
-				var wrapEnter = wrap.enter()
-								.append("g").attr("class", " nv-wrap nv-interactiveLineLayer");
-								
-				
-				wrapEnter.append("g").attr("class","nv-interactiveGuideLine");
-				
-				if (!svgContainer) {
-					return;
-				}
-
-                function mouseHandler() {
-                      var d3mouse = d3.mouse(this);
-                      var mouseX = d3mouse[0];
-                      var mouseY = d3mouse[1];
-                      var subtractMargin = true;
-                      var mouseOutAnyReason = false;
-                      if (isMSIE) {
-                         /*
-                            D3.js (or maybe SVG.getScreenCTM) has a nasty bug in Internet Explorer 10.
-                            d3.mouse() returns incorrect X,Y mouse coordinates when mouse moving
-                            over a rect in IE 10.
-                            However, d3.event.offsetX/Y also returns the mouse coordinates
-                            relative to the triggering <rect>. So we use offsetX/Y on IE.  
-                         */
-                         mouseX = d3.event.offsetX;
-                         mouseY = d3.event.offsetY;
-
-                         /*
-                            On IE, if you attach a mouse event listener to the <svg> container,
-                            it will actually trigger it for all the child elements (like <path>, <circle>, etc).
-                            When this happens on IE, the offsetX/Y is set to where ever the child element
-                            is located.
-                            As a result, we do NOT need to subtract margins to figure out the mouse X/Y
-                            position under this scenario. Removing the line below *will* cause 
-                            the interactive layer to not work right on IE.
-                         */
-                         if(d3.event.target.tagName !== "svg")
-                            subtractMargin = false;
-
-                         if (d3.event.target.className.baseVal.match("nv-legend"))
-                         	mouseOutAnyReason = true;
-                          
-                      }
-
-                      if(subtractMargin) {
-                         mouseX -= margin.left;
-                         mouseY -= margin.top;
-                      }
-
-                      /* If mouseX/Y is outside of the chart's bounds,
-                      trigger a mouseOut event.
-                      */
-                      if (mouseX < 0 || mouseY < 0 
-                        || mouseX > availableWidth || mouseY > availableHeight
-                        || (d3.event.relatedTarget && d3.event.relatedTarget.ownerSVGElement === undefined)
-                        || mouseOutAnyReason
-                        ) 
-                      {
-                      		if (isMSIE) {
-                      			if (d3.event.relatedTarget 
-                      				&& d3.event.relatedTarget.ownerSVGElement === undefined
-                      				&& d3.event.relatedTarget.className.match(tooltip.nvPointerEventsClass)) {
-                      				return;
-                      			}
-                      		}
-                            dispatch.elementMouseout({
-                               mouseX: mouseX,
-                               mouseY: mouseY
-                            });
-                            layer.renderGuideLine(null); //hide the guideline
-                            return;
-                      }
-                      
-                      var pointXValue = xScale.invert(mouseX);
-                      dispatch.elementMousemove({
-                            mouseX: mouseX,
-                            mouseY: mouseY,
-                            pointXValue: pointXValue
-                      });
-
-                      //If user double clicks the layer, fire a elementDblclick dispatch.
-                      if (d3.event.type === "dblclick") {
-                        dispatch.elementDblclick({
-                            mouseX: mouseX,
-                            mouseY: mouseY,
-                            pointXValue: pointXValue
-                        });
-                      }
-                }
-
-				svgContainer
-				      .on("mousemove",mouseHandler, true)
-				      .on("mouseout" ,mouseHandler,true)
-                      .on("dblclick" ,mouseHandler)
-				      ;
-
-				 //Draws a vertical guideline at the given X postion.
-				layer.renderGuideLine = function(x) {
-				 	if (!showGuideLine) return;
-				 	var line = wrap.select(".nv-interactiveGuideLine")
-				 	      .selectAll("line")
-				 	      .data((x != null) ? [nv.utils.NaNtoZero(x)] : [], String);
-
-				 	line.enter()
-				 		.append("line")
-				 		.attr("class", "nv-guideline")
-				 		.attr("x1", function(d) { return d;})
-				 		.attr("x2", function(d) { return d;})
-				 		.attr("y1", availableHeight)
-				 		.attr("y2",0)
-				 		;
-				 	line.exit().remove();
-
-				}
-		});
-	}
-
-	layer.dispatch = dispatch;
-	layer.tooltip = tooltip;
-
-	layer.margin = function(_) {
-	    if (!arguments.length) return margin;
-	    margin.top    = typeof _.top    != 'undefined' ? _.top    : margin.top;
-	    margin.left   = typeof _.left   != 'undefined' ? _.left   : margin.left;
-	    return layer;
-    };
-
-	layer.width = function(_) {
-		if (!arguments.length) return width;
-		width = _;
-		return layer;
-	};
-
-	layer.height = function(_) {
-		if (!arguments.length) return height;
-		height = _;
-		return layer;
-	};
-
-	layer.xScale = function(_) {
-		if (!arguments.length) return xScale;
-		xScale = _;
-		return layer;
-	};
-
-	layer.showGuideLine = function(_) {
-		if (!arguments.length) return showGuideLine;
-		showGuideLine = _;
-		return layer;
-	};
-
-	layer.svgContainer = function(_) {
-		if (!arguments.length) return svgContainer;
-		svgContainer = _;
-		return layer;
-	};
-
-
-	return layer;
-};
-
-/* Utility class that uses d3.bisect to find the index in a given array, where a search value can be inserted.
-This is different from normal bisectLeft; this function finds the nearest index to insert the search value.
-
-For instance, lets say your array is [1,2,3,5,10,30], and you search for 28. 
-Normal d3.bisectLeft will return 4, because 28 is inserted after the number 10.  But interactiveBisect will return 5
-because 28 is closer to 30 than 10.
-
-Unit tests can be found in: interactiveBisectTest.html
-
-Has the following known issues:
-   * Will not work if the data points move backwards (ie, 10,9,8,7, etc) or if the data points are in random order.
-   * Won't work if there are duplicate x coordinate values.
-*/
-nv.interactiveBisect = function (values, searchVal, xAccessor) {
-	  "use strict";
-      if (! values instanceof Array) return null;
-      if (typeof xAccessor !== 'function') xAccessor = function(d,i) { return d.x;}
-
-      var bisect = d3.bisector(xAccessor).left;
-      var index = d3.max([0, bisect(values,searchVal) - 1]);
-      var currentValue = xAccessor(values[index], index);
-      if (typeof currentValue === 'undefined') currentValue = index;
-
-      if (currentValue === searchVal) return index;  //found exact match
-
-      var nextIndex = d3.min([index+1, values.length - 1]);
-      var nextValue = xAccessor(values[nextIndex], nextIndex);
-      if (typeof nextValue === 'undefined') nextValue = nextIndex;
-
-      if (Math.abs(nextValue - searchVal) >= Math.abs(currentValue - searchVal))
-          return index;
-      else
-          return nextIndex
-};
-
-/*
-Returns the index in the array "values" that is closest to searchVal.
-Only returns an index if searchVal is within some "threshold".
-Otherwise, returns null.
-*/
-nv.nearestValueIndex = function (values, searchVal, threshold) {
-      "use strict";
-      var yDistMax = Infinity, indexToHighlight = null;
-      values.forEach(function(d,i) {
-         var delta = Math.abs(searchVal - d);
-         if ( delta <= yDistMax && delta < threshold) {
-            yDistMax = delta;
-            indexToHighlight = i;
-         }
-      });
-      return indexToHighlight;
-};
\ No newline at end of file
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/intro.js b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/intro.js
deleted file mode 100755
index af50383e..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/intro.js
+++ /dev/null
@@ -1 +0,0 @@
-(function(){
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/axis.js b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/axis.js
deleted file mode 100755
index 37677640..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/axis.js
+++ /dev/null
@@ -1,405 +0,0 @@
-nv.models.axis = function() {
-  "use strict";
-  //============================================================
-  // Public Variables with Default Settings
-  //------------------------------------------------------------
-
-  var axis = d3.svg.axis()
-    ;
-
-  var margin = {top: 0, right: 0, bottom: 0, left: 0}
-    , width = 75 //only used for tickLabel currently
-    , height = 60 //only used for tickLabel currently
-    , scale = d3.scale.linear()
-    , axisLabelText = null
-    , showMaxMin = true //TODO: showMaxMin should be disabled on all ordinal scaled axes
-    , highlightZero = true
-    , rotateLabels = 0
-    , rotateYLabel = true
-    , staggerLabels = false
-    , isOrdinal = false
-    , ticks = null
-    , axisLabelDistance = 12 //The larger this number is, the closer the axis label is to the axis.
-    ;
-
-  axis
-    .scale(scale)
-    .orient('bottom')
-    .tickFormat(function(d) { return d })
-    ;
-
-  //============================================================
-
-
-  //============================================================
-  // Private Variables
-  //------------------------------------------------------------
-
-  var scale0;
-
-  //============================================================
-
-
-  function chart(selection) {
-    selection.each(function(data) {
-      var container = d3.select(this);
-
-
-      //------------------------------------------------------------
-      // Setup containers and skeleton of chart
-
-      var wrap = container.selectAll('g.nv-wrap.nv-axis').data([data]);
-      var wrapEnter = wrap.enter().append('g').attr('class', 'nvd3 nv-wrap nv-axis');
-      var gEnter = wrapEnter.append('g');
-      var g = wrap.select('g')
-
-      //------------------------------------------------------------
-
-
-      if (ticks !== null)
-        axis.ticks(ticks);
-      else if (axis.orient() == 'top' || axis.orient() == 'bottom')
-        axis.ticks(Math.abs(scale.range()[1] - scale.range()[0]) / 100);
-
-
-      //TODO: consider calculating width/height based on whether or not label is added, for reference in charts using this component
-
-
-      g.transition().call(axis);
-
-      scale0 = scale0 || axis.scale();
-
-      var fmt = axis.tickFormat();
-      if (fmt == null) {
-        fmt = scale0.tickFormat();
-      }
-
-      var axisLabel = g.selectAll('text.nv-axislabel')
-          .data([axisLabelText || null]);
-      axisLabel.exit().remove();
-      switch (axis.orient()) {
-        case 'top':
-          axisLabel.enter().append('text').attr('class', 'nv-axislabel');
-          var w = (scale.range().length==2) ? scale.range()[1] : (scale.range()[scale.range().length-1]+(scale.range()[1]-scale.range()[0]));
-          axisLabel
-              .attr('text-anchor', 'middle')
-              .attr('y', 0)
-              .attr('x', w/2);
-          if (showMaxMin) {
-            var axisMaxMin = wrap.selectAll('g.nv-axisMaxMin')
-                           .data(scale.domain());
-            axisMaxMin.enter().append('g').attr('class', 'nv-axisMaxMin').append('text');
-            axisMaxMin.exit().remove();
-            axisMaxMin
-                .attr('transform', function(d,i) {
-                  return 'translate(' + scale(d) + ',0)'
-                })
-              .select('text')
-                .attr('dy', '-0.5em')
-                .attr('y', -axis.tickPadding())
-                .attr('text-anchor', 'middle')
-                .text(function(d,i) {
-                  var v = fmt(d);
-                  return ('' + v).match('NaN') ? '' : v;
-                });
-            axisMaxMin.transition()
-                .attr('transform', function(d,i) {
-                  return 'translate(' + scale.range()[i] + ',0)'
-                });
-          }
-          break;
-        case 'bottom':
-          var xLabelMargin = 36;
-          var maxTextWidth = 30;
-          var xTicks = g.selectAll('g').select("text");
-          if (rotateLabels%360) {
-            //Calculate the longest xTick width
-            xTicks.each(function(d,i){
-              var width = this.getBBox().width;
-              if(width > maxTextWidth) maxTextWidth = width;
-            });
-            //Convert to radians before calculating sin. Add 30 to margin for healthy padding.
-            var sin = Math.abs(Math.sin(rotateLabels*Math.PI/180));
-            var xLabelMargin = (sin ? sin*maxTextWidth : maxTextWidth)+30;
-            //Rotate all xTicks
-            xTicks
-              .attr('transform', function(d,i,j) { return 'rotate(' + rotateLabels + ' 0,0)' })
-              .style('text-anchor', rotateLabels%360 > 0 ? 'start' : 'end');
-          }
-          axisLabel.enter().append('text').attr('class', 'nv-axislabel');
-          var w = (scale.range().length==2) ? scale.range()[1] : (scale.range()[scale.range().length-1]+(scale.range()[1]-scale.range()[0]));
-          axisLabel
-              .attr('text-anchor', 'middle')
-              .attr('y', xLabelMargin)
-              .attr('x', w/2);
-          if (showMaxMin) {
-          //if (showMaxMin && !isOrdinal) {
-            var axisMaxMin = wrap.selectAll('g.nv-axisMaxMin')
-                           //.data(scale.domain())
-                           .data([scale.domain()[0], scale.domain()[scale.domain().length - 1]]);
-            axisMaxMin.enter().append('g').attr('class', 'nv-axisMaxMin').append('text');
-            axisMaxMin.exit().remove();
-            axisMaxMin
-                .attr('transform', function(d,i) {
-                  return 'translate(' + (scale(d) + (isOrdinal ? scale.rangeBand() / 2 : 0)) + ',0)'
-                })
-              .select('text')
-                .attr('dy', '.71em')
-                .attr('y', axis.tickPadding())
-                .attr('transform', function(d,i,j) { return 'rotate(' + rotateLabels + ' 0,0)' })
-                .style('text-anchor', rotateLabels ? (rotateLabels%360 > 0 ? 'start' : 'end') : 'middle')
-                .text(function(d,i) {
-                  var v = fmt(d);
-                  return ('' + v).match('NaN') ? '' : v;
-                });
-            axisMaxMin.transition()
-                .attr('transform', function(d,i) {
-                  //return 'translate(' + scale.range()[i] + ',0)'
-                  //return 'translate(' + scale(d) + ',0)'
-                  return 'translate(' + (scale(d) + (isOrdinal ? scale.rangeBand() / 2 : 0)) + ',0)'
-                });
-          }
-          if (staggerLabels)
-            xTicks
-                .attr('transform', function(d,i) { return 'translate(0,' + (i % 2 == 0 ? '0' : '12') + ')' });
-
-          break;
-        case 'right':
-          axisLabel.enter().append('text').attr('class', 'nv-axislabel');
-          axisLabel
-              .style('text-anchor', rotateYLabel ? 'middle' : 'begin')
-              .attr('transform', rotateYLabel ? 'rotate(90)' : '')
-              .attr('y', rotateYLabel ? (-Math.max(margin.right,width) + 12) : -10) //TODO: consider calculating this based on largest tick width... OR at least expose this on chart
-              .attr('x', rotateYLabel ? (scale.range()[0] / 2) : axis.tickPadding());
-          if (showMaxMin) {
-            var axisMaxMin = wrap.selectAll('g.nv-axisMaxMin')
-                           .data(scale.domain());
-            axisMaxMin.enter().append('g').attr('class', 'nv-axisMaxMin').append('text')
-                .style('opacity', 0);
-            axisMaxMin.exit().remove();
-            axisMaxMin
-                .attr('transform', function(d,i) {
-                  return 'translate(0,' + scale(d) + ')'
-                })
-              .select('text')
-                .attr('dy', '.32em')
-                .attr('y', 0)
-                .attr('x', axis.tickPadding())
-                .style('text-anchor', 'start')
-                .text(function(d,i) {
-                  var v = fmt(d);
-                  return ('' + v).match('NaN') ? '' : v;
-                });
-            axisMaxMin.transition()
-                .attr('transform', function(d,i) {
-                  return 'translate(0,' + scale.range()[i] + ')'
-                })
-              .select('text')
-                .style('opacity', 1);
-          }
-          break;
-        case 'left':
-          /*
-          //For dynamically placing the label. Can be used with dynamically-sized chart axis margins
-          var yTicks = g.selectAll('g').select("text");
-          yTicks.each(function(d,i){
-            var labelPadding = this.getBBox().width + axis.tickPadding() + 16;
-            if(labelPadding > width) width = labelPadding;
-          });
-          */
-          axisLabel.enter().append('text').attr('class', 'nv-axislabel');
-          axisLabel
-              .style('text-anchor', rotateYLabel ? 'middle' : 'end')
-              .attr('transform', rotateYLabel ? 'rotate(-90)' : '')
-              .attr('y', rotateYLabel ? (-Math.max(margin.left,width) + axisLabelDistance) : -10) //TODO: consider calculating this based on largest tick width... OR at least expose this on chart
-              .attr('x', rotateYLabel ? (-scale.range()[0] / 2) : -axis.tickPadding());
-          if (showMaxMin) {
-            var axisMaxMin = wrap.selectAll('g.nv-axisMaxMin')
-                           .data(scale.domain());
-            axisMaxMin.enter().append('g').attr('class', 'nv-axisMaxMin').append('text')
-                .style('opacity', 0);
-            axisMaxMin.exit().remove();
-            axisMaxMin
-                .attr('transform', function(d,i) {
-                  return 'translate(0,' + scale0(d) + ')'
-                })
-              .select('text')
-                .attr('dy', '.32em')
-                .attr('y', 0)
-                .attr('x', -axis.tickPadding())
-                .attr('text-anchor', 'end')
-                .text(function(d,i) {
-                  var v = fmt(d);
-                  return ('' + v).match('NaN') ? '' : v;
-                });
-            axisMaxMin.transition()
-                .attr('transform', function(d,i) {
-                  return 'translate(0,' + scale.range()[i] + ')'
-                })
-              .select('text')
-                .style('opacity', 1);
-          }
-          break;
-      }
-      axisLabel
-          .text(function(d) { return d });
-
-
-      if (showMaxMin && (axis.orient() === 'left' || axis.orient() === 'right')) {
-        //check if max and min overlap other values, if so, hide the values that overlap
-        g.selectAll('g') // the g's wrapping each tick
-            .each(function(d,i) {
-              d3.select(this).select('text').attr('opacity', 1);
-              if (scale(d) < scale.range()[1] + 10 || scale(d) > scale.range()[0] - 10) { // 10 is assuming text height is 16... if d is 0, leave it!
-                if (d > 1e-10 || d < -1e-10) // accounts for minor floating point errors... though could be problematic if the scale is EXTREMELY SMALL
-                  d3.select(this).attr('opacity', 0);
-
-                d3.select(this).select('text').attr('opacity', 0); // Don't remove the ZERO line!!
-              }
-            });
-
-        //if Max and Min = 0 only show min, Issue #281
-        if (scale.domain()[0] == scale.domain()[1] && scale.domain()[0] == 0)
-          wrap.selectAll('g.nv-axisMaxMin')
-            .style('opacity', function(d,i) { return !i ? 1 : 0 });
-
-      }
-
-      if (showMaxMin && (axis.orient() === 'top' || axis.orient() === 'bottom')) {
-        var maxMinRange = [];
-        wrap.selectAll('g.nv-axisMaxMin')
-            .each(function(d,i) {
-              try {
-                  if (i) // i== 1, max position
-                      maxMinRange.push(scale(d) - this.getBBox().width - 4)  //assuming the max and min labels are as wide as the next tick (with an extra 4 pixels just in case)
-                  else // i==0, min position
-                      maxMinRange.push(scale(d) + this.getBBox().width + 4)
-              }catch (err) {
-                  if (i) // i== 1, max position
-                      maxMinRange.push(scale(d) - 4)  //assuming the max and min labels are as wide as the next tick (with an extra 4 pixels just in case)
-                  else // i==0, min position
-                      maxMinRange.push(scale(d) + 4)
-              }
-            });
-        g.selectAll('g') // the g's wrapping each tick
-            .each(function(d,i) {
-              if (scale(d) < maxMinRange[0] || scale(d) > maxMinRange[1]) {
-                if (d > 1e-10 || d < -1e-10) // accounts for minor floating point errors... though could be problematic if the scale is EXTREMELY SMALL
-                  d3.select(this).remove();
-                else
-                  d3.select(this).select('text').remove(); // Don't remove the ZERO line!!
-              }
-            });
-      }
-
-
-      //highlight zero line ... Maybe should not be an option and should just be in CSS?
-      if (highlightZero)
-        g.selectAll('.tick')
-          .filter(function(d) { return !parseFloat(Math.round(d.__data__*100000)/1000000) && (d.__data__ !== undefined) }) //this is because sometimes the 0 tick is a very small fraction, TODO: think of cleaner technique
-            .classed('zero', true);
-
-      //store old scales for use in transitions on update
-      scale0 = scale.copy();
-
-    });
-
-    return chart;
-  }
-
-
-  //============================================================
-  // Expose Public Variables
-  //------------------------------------------------------------
-
-  // expose chart's sub-components
-  chart.axis = axis;
-
-  d3.rebind(chart, axis, 'orient', 'tickValues', 'tickSubdivide', 'tickSize', 'tickPadding', 'tickFormat');
-  d3.rebind(chart, scale, 'domain', 'range', 'rangeBand', 'rangeBands'); //these are also accessible by chart.scale(), but added common ones directly for ease of use
-
-  chart.options = nv.utils.optionsFunc.bind(chart);
-
-  chart.margin = function(_) {
-    if(!arguments.length) return margin;
-    margin.top    = typeof _.top    != 'undefined' ? _.top    : margin.top;
-    margin.right  = typeof _.right  != 'undefined' ? _.right  : margin.right;
-    margin.bottom = typeof _.bottom != 'undefined' ? _.bottom : margin.bottom;
-    margin.left   = typeof _.left   != 'undefined' ? _.left   : margin.left;
-    return chart;
-  }
-
-  chart.width = function(_) {
-    if (!arguments.length) return width;
-    width = _;
-    return chart;
-  };
-
-  chart.ticks = function(_) {
-    if (!arguments.length) return ticks;
-    ticks = _;
-    return chart;
-  };
-
-  chart.height = function(_) {
-    if (!arguments.length) return height;
-    height = _;
-    return chart;
-  };
-
-  chart.axisLabel = function(_) {
-    if (!arguments.length) return axisLabelText;
-    axisLabelText = _;
-    return chart;
-  }
-
-  chart.showMaxMin = function(_) {
-    if (!arguments.length) return showMaxMin;
-    showMaxMin = _;
-    return chart;
-  }
-
-  chart.highlightZero = function(_) {
-    if (!arguments.length) return highlightZero;
-    highlightZero = _;
-    return chart;
-  }
-
-  chart.scale = function(_) {
-    if (!arguments.length) return scale;
-    scale = _;
-    axis.scale(scale);
-    isOrdinal = typeof scale.rangeBands === 'function';
-    d3.rebind(chart, scale, 'domain', 'range', 'rangeBand', 'rangeBands');
-    return chart;
-  }
-
-  chart.rotateYLabel = function(_) {
-    if(!arguments.length) return rotateYLabel;
-    rotateYLabel = _;
-    return chart;
-  }
-
-  chart.rotateLabels = function(_) {
-    if(!arguments.length) return rotateLabels;
-    rotateLabels = _;
-    return chart;
-  }
-
-  chart.staggerLabels = function(_) {
-    if (!arguments.length) return staggerLabels;
-    staggerLabels = _;
-    return chart;
-  };
-
-  chart.axisLabelDistance = function(_) {
-    if (!arguments.length) return axisLabelDistance;
-    axisLabelDistance = _;
-    return chart;
-  };
-
-  //============================================================
-
-
-  return chart;
-}
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/backup/bullet.js b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/backup/bullet.js
deleted file mode 100755
index 86ebeb0f..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/backup/bullet.js
+++ /dev/null
@@ -1,250 +0,0 @@
-
-// Chart design based on the recommendations of Stephen Few. Implementation
-// based on the work of Clint Ivy, Jamie Love, and Jason Davies.
-// http://projects.instantcognition.com/protovis/bulletchart/
-
-nv.models.bullet = function() {
-
-  //============================================================
-  // Public Variables with Default Settings
-  //------------------------------------------------------------
-
-  var margin = {top: 0, right: 0, bottom: 0, left: 0}
-    , orient = 'left' // TODO top & bottom
-    , reverse = false
-    , ranges = function(d) { return d.ranges }
-    , markers = function(d) { return d.markers }
-    , measures = function(d) { return d.measures }
-    , forceX = [0] // List of numbers to Force into the X scale (ie. 0, or a max / min, etc.)
-    , width = 380
-    , height = 30
-    , tickFormat = null
-    , dispatch = d3.dispatch('elementMouseover', 'elementMouseout')
-    ;
-
-  //============================================================
-
-
-  function chart(selection) {
-    selection.each(function(d, i) {
-      var availableWidth = width - margin.left - margin.right,
-          availableHeight = height - margin.top - margin.bottom,
-          container = d3.select(this),
-          mainGroup = nv.log(this.parentNode.parentNode).getAttribute('transform'),
-          heightFromTop = nv.log(parseInt(mainGroup.replace(/.*,(\d+)\)/,"$1"))); //TODO: There should be a smarter way to get this value
-
-      var rangez = ranges.call(this, d, i).slice().sort(d3.descending),
-          markerz = markers.call(this, d, i).slice().sort(d3.descending),
-          measurez = measures.call(this, d, i).slice().sort(d3.descending);
-
-
-      //------------------------------------------------------------
-      // Setup Scales
-
-      // Compute the new x-scale.
-      var MaxX = Math.max(rangez[0] ? rangez[0]:0 , markerz[0] ? markerz[0] : 0 , measurez[0] ? measurez[0] : 0)
-      var x1 = d3.scale.linear()
-          .domain([0, MaxX]).nice()  // TODO: need to allow forceX and forceY, and xDomain, yDomain
-          .range(reverse ? [availableWidth, 0] : [0, availableWidth]);
-
-      // Retrieve the old x-scale, if this is an update.
-      var x0 = this.__chart__ || d3.scale.linear()
-          .domain([0, Infinity])
-          .range(x1.range());
-
-      // Stash the new scale.
-      this.__chart__ = x1;
-
-      //------------------------------------------------------------
-
-
-      //------------------------------------------------------------
-      // Setup containers and skeleton of chart
-
-      var wrap = container.selectAll('g.nv-wrap.nv-bullet').data([d]);
-      var wrapEnter = wrap.enter().append('g').attr('class', 'nvd3 nv-wrap nv-bullet');
-      var gEnter = wrapEnter.append('g');
-      var g = wrap.select('g');
-
-      wrap.attr('transform', 'translate(' + margin.left + ',' + margin.top + ')');
-
-      //------------------------------------------------------------
-
-
-
-      var w0 = function(d) { return Math.abs(x0(d) - x0(0)) }, // TODO: could optimize by precalculating x0(0) and x1(0)
-          w1 = function(d) { return Math.abs(x1(d) - x1(0)) };
-
-
-      // Update the range rects.
-      var range = g.selectAll('rect.nv-range')
-          .data(rangez);
-
-      range.enter().append('rect')
-          .attr('class', function(d, i) { return 'nv-range nv-s' + i; })
-          .attr('width', w0)
-          .attr('height', availableHeight)
-          .attr('x', reverse ? x0 : 0)
-          .on('mouseover', function(d,i) { 
-              dispatch.elementMouseover({
-                value: d,
-                label: (i <= 0) ? 'Maximum' : (i > 1) ? 'Minimum' : 'Mean', //TODO: make these labels a variable
-                pos: [x1(d), heightFromTop]
-              })
-          })
-          .on('mouseout', function(d,i) { 
-              dispatch.elementMouseout({
-                value: d,
-                label: (i <= 0) ? 'Minimum' : (i >=1) ? 'Maximum' : 'Mean' //TODO: make these labels a variable
-              })
-          })
-
-      d3.transition(range)
-          .attr('x', reverse ? x1 : 0)
-          .attr('width', w1)
-          .attr('height', availableHeight);
-
-
-      // Update the measure rects.
-      var measure = g.selectAll('rect.nv-measure')
-          .data(measurez);
-
-      measure.enter().append('rect')
-          .attr('class', function(d, i) { return 'nv-measure nv-s' + i; })
-          .attr('width', w0)
-          .attr('height', availableHeight / 3)
-          .attr('x', reverse ? x0 : 0)
-          .attr('y', availableHeight / 3)
-          .on('mouseover', function(d) { 
-              dispatch.elementMouseover({
-                value: d,
-                label: 'Current', //TODO: make these labels a variable
-                pos: [x1(d), heightFromTop]
-              })
-          })
-          .on('mouseout', function(d) { 
-              dispatch.elementMouseout({
-                value: d,
-                label: 'Current' //TODO: make these labels a variable
-              })
-          })
-
-      d3.transition(measure)
-          .attr('width', w1)
-          .attr('height', availableHeight / 3)
-          .attr('x', reverse ? x1 : 0)
-          .attr('y', availableHeight / 3);
-
-
-
-      // Update the marker lines.
-      var marker = g.selectAll('path.nv-markerTriangle')
-          .data(markerz);
-
-      var h3 =  availableHeight / 6;
-      marker.enter().append('path')
-          .attr('class', 'nv-markerTriangle')
-          .attr('transform', function(d) { return 'translate(' + x0(d) + ',' + (availableHeight / 2) + ')' })
-          .attr('d', 'M0,' + h3 + 'L' + h3 + ',' + (-h3) + ' ' + (-h3) + ',' + (-h3) + 'Z')
-          .on('mouseover', function(d,i) {
-              dispatch.elementMouseover({
-                value: d,
-                label: 'Previous',
-                pos: [x1(d), heightFromTop]
-              })
-          })
-          .on('mouseout', function(d,i) {
-              dispatch.elementMouseout({
-                value: d,
-                label: 'Previous'
-              })
-          });
-
-      d3.transition(marker)
-          .attr('transform', function(d) { return 'translate(' + x1(d) + ',' + (availableHeight / 2) + ')' });
-
-      marker.exit().remove();
-
-    });
-
-    d3.timer.flush();
-
-    return chart;
-  }
-
-
-  //============================================================
-  // Expose Public Variables
-  //------------------------------------------------------------
-
-  chart.dispatch = dispatch;
-
-  // left, right, top, bottom
-  chart.orient = function(_) {
-    if (!arguments.length) return orient;
-    orient = _;
-    reverse = orient == 'right' || orient == 'bottom';
-    return chart;
-  };
-
-  // ranges (bad, satisfactory, good)
-  chart.ranges = function(_) {
-    if (!arguments.length) return ranges;
-    ranges = _;
-    return chart;
-  };
-
-  // markers (previous, goal)
-  chart.markers = function(_) {
-    if (!arguments.length) return markers;
-    markers = _;
-    return chart;
-  };
-
-  // measures (actual, forecast)
-  chart.measures = function(_) {
-    if (!arguments.length) return measures;
-    measures = _;
-    return chart;
-  };
-
-  chart.forceX = function(_) {
-    if (!arguments.length) return forceX;
-    forceX = _;
-    return chart;
-  };
-
-  chart.width = function(_) {
-    if (!arguments.length) return width;
-    width = _;
-    return chart;
-  };
-
-  chart.height = function(_) {
-    if (!arguments.length) return height;
-    height = _;
-    return chart;
-  };
-
-  chart.margin = function(_) {
-    if (!arguments.length) return margin;
-    margin.top    = typeof _.top    != 'undefined' ? _.top    : margin.top;
-    margin.right  = typeof _.right  != 'undefined' ? _.right  : margin.right;
-    margin.bottom = typeof _.bottom != 'undefined' ? _.bottom : margin.bottom;
-    margin.left   = typeof _.left   != 'undefined' ? _.left   : margin.left;
-    return chart;
-  };
-
-  chart.tickFormat = function(_) {
-    if (!arguments.length) return tickFormat;
-    tickFormat = _;
-    return chart;
-  };
-
-  //============================================================
-
-
-  return chart;
-};
-
-
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/backup/bulletChart.js b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/backup/bulletChart.js
deleted file mode 100755
index a2a0f077..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/backup/bulletChart.js
+++ /dev/null
@@ -1,349 +0,0 @@
-
-// Chart design based on the recommendations of Stephen Few. Implementation
-// based on the work of Clint Ivy, Jamie Love, and Jason Davies.
-// http://projects.instantcognition.com/protovis/bulletchart/
-nv.models.bulletChart = function() {
-
-  //============================================================
-  // Public Variables with Default Settings
-  //------------------------------------------------------------
-
-  var bullet = nv.models.bullet()
-    ;
-
-  var orient = 'left' // TODO top & bottom
-    , reverse = false
-    , margin = {top: 5, right: 40, bottom: 20, left: 120}
-    , ranges = function(d) { return d.ranges }
-    , markers = function(d) { return d.markers }
-    , measures = function(d) { return d.measures }
-    , width = null
-    , height = 55
-    , tickFormat = null
-    , tooltips = true
-    , tooltip = function(key, x, y, e, graph) {
-        return '<h3>' + e.label + '</h3>' +
-               '<p>' +  e.value + '</p>'
-      }
-    , noData = "No Data Available."
-    , dispatch = d3.dispatch('tooltipShow', 'tooltipHide')
-    ;
-
-  //============================================================
-
-
-  //============================================================
-  // Private Variables
-  //------------------------------------------------------------
-
-  var showTooltip = function(e, parentElement) {
-    var offsetElement = parentElement.parentNode.parentNode,
-        left = e.pos[0] + offsetElement.offsetLeft + margin.left,
-        top = e.pos[1] + offsetElement.offsetTop + margin.top;
-
-    var content = '<h3>' + e.label + '</h3>' +
-            '<p>' + e.value + '</p>';
-
-    nv.tooltip.show([left, top], content, e.value < 0 ? 'e' : 'w', null, offsetElement.parentNode);
-  };
-
-  //============================================================
-
-
-  function chart(selection) {
-    selection.each(function(d, i) {
-      var container = d3.select(this);
-
-      var availableWidth = (width  || parseInt(container.style('width')) || 960)
-                             - margin.left - margin.right,
-          availableHeight = height - margin.top - margin.bottom,
-          that = this;
-
-
-      chart.update = function() { chart(selection) };
-      chart.container = this;
-
-      //------------------------------------------------------------
-      // Display No Data message if there's nothing to show.
-
-      /*
-      // Disabled until I figure out a better way to check for no data with the bullet chart
-      if (!data || !data.length || !data.filter(function(d) { return d.values.length }).length) {
-        var noDataText = container.selectAll('.nv-noData').data([noData]);
-
-        noDataText.enter().append('text')
-          .attr('class', 'nvd3 nv-noData')
-          .attr('dy', '-.7em')
-          .style('text-anchor', 'middle');
-
-        noDataText
-          .attr('x', margin.left + availableWidth / 2)
-          .attr('y', margin.top + availableHeight / 2)
-          .text(function(d) { return d });
-
-        return chart;
-      } else {
-        container.selectAll('.nv-noData').remove();
-      }
-      */
-
-      //------------------------------------------------------------
-
-
-
-      var rangez = ranges.call(this, d, i).slice().sort(d3.descending),
-          markerz = markers.call(this, d, i).slice().sort(d3.descending),
-          measurez = measures.call(this, d, i).slice().sort(d3.descending);
-
-
-      //------------------------------------------------------------
-      // Setup containers and skeleton of chart
-
-      var wrap = container.selectAll('g.nv-wrap.nv-bulletChart').data([d]);
-      var wrapEnter = wrap.enter().append('g').attr('class', 'nvd3 nv-wrap nv-bulletChart');
-      var gEnter = wrapEnter.append('g');
-      var g = wrap.select('g');
-
-      gEnter.append('g').attr('class', 'nv-bulletWrap');
-      gEnter.append('g').attr('class', 'nv-titles');
-
-      wrap.attr('transform', 'translate(' + margin.left + ',' + ( margin.top + i*height )+ ')');
-
-      //------------------------------------------------------------
-
-
-      // Compute the new x-scale.
-      var MaxX = Math.max(rangez[0] ? rangez[0]:0 , markerz[0] ? markerz[0] : 0 , measurez[0] ? measurez[0] : 0)
-      var x1 = d3.scale.linear()
-          .domain([0, MaxX]).nice()  // TODO: need to allow forceX and forceY, and xDomain, yDomain
-          .range(reverse ? [availableWidth, 0] : [0, availableWidth]);
-
-      // Retrieve the old x-scale, if this is an update.
-      var x0 = this.__chart__ || d3.scale.linear()
-          .domain([0, Infinity])
-          .range(x1.range());
-
-      // Stash the new scale.
-      this.__chart__ = x1;
-
-      /*
-      // Derive width-scales from the x-scales.
-      var w0 = bulletWidth(x0),
-          w1 = bulletWidth(x1);
-
-      function bulletWidth(x) {
-        var x0 = x(0);
-        return function(d) {
-          return Math.abs(x(d) - x(0));
-        };
-      }
-
-      function bulletTranslate(x) {
-        return function(d) {
-          return 'translate(' + x(d) + ',0)';
-        };
-      }
-      */
-
-      var w0 = function(d) { return Math.abs(x0(d) - x0(0)) }, // TODO: could optimize by precalculating x0(0) and x1(0)
-          w1 = function(d) { return Math.abs(x1(d) - x1(0)) };
-
-
-      var title = gEnter.select('.nv-titles').append("g")
-          .attr("text-anchor", "end")
-          .attr("transform", "translate(-6," + (height - margin.top - margin.bottom) / 2 + ")");
-      title.append("text")
-          .attr("class", "nv-title")
-          .text(function(d) { return d.title; });
-
-      title.append("text")
-          .attr("class", "nv-subtitle")
-          .attr("dy", "1em")
-          .text(function(d) { return d.subtitle; });
-
-
-
-      bullet
-        .width(availableWidth)
-        .height(availableHeight)
-
-      var bulletWrap = g.select('.nv-bulletWrap');
-
-      d3.transition(bulletWrap).call(bullet);
-
-
-
-      // Compute the tick format.
-      var format = tickFormat || x1.tickFormat(8);
-
-      // Update the tick groups.
-      var tick = g.selectAll('g.nv-tick')
-          .data(x1.ticks(8), function(d) {
-            return this.textContent || format(d);
-          });
-
-      // Initialize the ticks with the old scale, x0.
-      var tickEnter = tick.enter().append('g')
-          .attr('class', 'nv-tick')
-          .attr('transform', function(d) { return 'translate(' + x0(d) + ',0)' })
-          .style('opacity', 1e-6);
-
-      tickEnter.append('line')
-          .attr('y1', availableHeight)
-          .attr('y2', availableHeight * 7 / 6);
-
-      tickEnter.append('text')
-          .attr('text-anchor', 'middle')
-          .attr('dy', '1em')
-          .attr('y', availableHeight * 7 / 6)
-          .text(format);
-
-      // Transition the entering ticks to the new scale, x1.
-      d3.transition(tickEnter)
-          .attr('transform', function(d) { return 'translate(' + x1(d) + ',0)' })
-          .style('opacity', 1);
-
-      // Transition the updating ticks to the new scale, x1.
-      var tickUpdate = d3.transition(tick)
-          .attr('transform', function(d) { return 'translate(' + x1(d) + ',0)' })
-          .style('opacity', 1);
-
-      tickUpdate.select('line')
-          .attr('y1', availableHeight)
-          .attr('y2', availableHeight * 7 / 6);
-
-      tickUpdate.select('text')
-          .attr('y', availableHeight * 7 / 6);
-
-      // Transition the exiting ticks to the new scale, x1.
-      d3.transition(tick.exit())
-          .attr('transform', function(d) { return 'translate(' + x1(d) + ',0)' })
-          .style('opacity', 1e-6)
-          .remove();
-
-
-      //============================================================
-      // Event Handling/Dispatching (in chart's scope)
-      //------------------------------------------------------------
-
-      dispatch.on('tooltipShow', function(e) {
-        if (tooltips) showTooltip(e, that.parentNode);
-      });
-
-      //============================================================
-
-    });
-
-    d3.timer.flush();
-
-    return chart;
-  }
-
-
-  //============================================================
-  // Event Handling/Dispatching (out of chart's scope)
-  //------------------------------------------------------------
-
-  bullet.dispatch.on('elementMouseover.tooltip', function(e) {
-    dispatch.tooltipShow(e);
-  });
-
-  bullet.dispatch.on('elementMouseout.tooltip', function(e) {
-    dispatch.tooltipHide(e);
-  });
-
-  dispatch.on('tooltipHide', function() {
-    if (tooltips) nv.tooltip.cleanup();
-  });
-
-  //============================================================
-
-
-  //============================================================
-  // Expose Public Variables
-  //------------------------------------------------------------
-
-  chart.dispatch = dispatch;
-  chart.bullet = bullet;
-
-  // left, right, top, bottom
-  chart.orient = function(x) {
-    if (!arguments.length) return orient;
-    orient = x;
-    reverse = orient == 'right' || orient == 'bottom';
-    return chart;
-  };
-
-  // ranges (bad, satisfactory, good)
-  chart.ranges = function(x) {
-    if (!arguments.length) return ranges;
-    ranges = x;
-    return chart;
-  };
-
-  // markers (previous, goal)
-  chart.markers = function(x) {
-    if (!arguments.length) return markers;
-    markers = x;
-    return chart;
-  };
-
-  // measures (actual, forecast)
-  chart.measures = function(x) {
-    if (!arguments.length) return measures;
-    measures = x;
-    return chart;
-  };
-
-  chart.width = function(x) {
-    if (!arguments.length) return width;
-    width = x;
-    return chart;
-  };
-
-  chart.height = function(x) {
-    if (!arguments.length) return height;
-    height = x;
-    return chart;
-  };
-
-  chart.margin = function(_) {
-    if (!arguments.length) return margin;
-    margin.top    = typeof _.top    != 'undefined' ? _.top    : margin.top;
-    margin.right  = typeof _.right  != 'undefined' ? _.right  : margin.right;
-    margin.bottom = typeof _.bottom != 'undefined' ? _.bottom : margin.bottom;
-    margin.left   = typeof _.left   != 'undefined' ? _.left   : margin.left;
-    return chart;
-  };
-
-  chart.tickFormat = function(x) {
-    if (!arguments.length) return tickFormat;
-    tickFormat = x;
-    return chart;
-  };
-
-  chart.tooltips = function(_) {
-    if (!arguments.length) return tooltips;
-    tooltips = _;
-    return chart;
-  };
-
-  chart.tooltipContent = function(_) {
-    if (!arguments.length) return tooltip;
-    tooltip = _;
-    return chart;
-  };
-
-  chart.noData = function(_) {
-    if (!arguments.length) return noData;
-    noData = _;
-    return chart;
-  };
-
-  //============================================================
-
-
-  return chart;
-};
-
-
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/boilerplate.js b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/boilerplate.js
deleted file mode 100755
index 3d2360a6..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/boilerplate.js
+++ /dev/null
@@ -1,104 +0,0 @@
-
-nv.models.chartName = function() {
-  "use strict";
-  //============================================================
-  // Public Variables with Default Settings
-  //------------------------------------------------------------
-
-
-  var margin = {top: 30, right: 10, bottom: 10, left: 10}
-    , width = 960
-    , height = 500
-    , color = nv.utils.getColor(d3.scale.category20c().range())
-    , dispatch = d3.dispatch('stateChange', 'changeState')
-    ;
-
-  //============================================================
-
-
-  //============================================================
-  // Private Variables
-  //------------------------------------------------------------
-
-
-  //============================================================
-
-
-  function chart(selection) {
-    selection.each(function(data) {
-      var availableWidth = width - margin.left - margin.right,
-          availableHeight = height - margin.top - margin.bottom,
-          container = d3.select(this);
-
-
-      //------------------------------------------------------------
-      // Setup Scales
-
-
-      //------------------------------------------------------------
-
-
-      //------------------------------------------------------------
-      // Setup containers and skeleton of chart
-
-      var wrap = container.selectAll('g.nv-wrap.nv-chartName').data([data]);
-      var wrapEnter = wrap.enter().append('g').attr('class', 'nvd3 nv-wrap nv-chartName');
-      var gEnter = wrapEnter.append('g');
-      var g = wrap.select('g')
-
-      gEnter.append('g').attr('class', 'nv-mainWrap');
-
-      wrap.attr('transform', 'translate(' + margin.left + ',' + margin.top + ')');
-
-      //------------------------------------------------------------
-
-
-
-
-    });
-
-    return chart;
-  }
-
-
-  //============================================================
-  // Expose Public Variables
-  //------------------------------------------------------------
-
-
-  chart.dispatch = dispatch;
-
-  chart.options = nv.utils.optionsFunc.bind(chart);
-  
-  chart.margin = function(_) {
-    if (!arguments.length) return margin;
-    margin.top    = typeof _.top    != 'undefined' ? _.top    : margin.top;
-    margin.right  = typeof _.right  != 'undefined' ? _.right  : margin.right;
-    margin.bottom = typeof _.bottom != 'undefined' ? _.bottom : margin.bottom;
-    margin.left   = typeof _.left   != 'undefined' ? _.left   : margin.left;
-    return chart;
-  };
-
-  chart.width = function(_) {
-    if (!arguments.length) return width;
-    width = _;
-    return chart;
-  };
-
-  chart.height = function(_) {
-    if (!arguments.length) return height;
-    height = _;
-    return chart;
-  };
-
-  chart.color = function(_) {
-    if (!arguments.length) return color;
-    color = nv.utils.getColor(_)
-    return chart;
-  };
-
-  //============================================================
-
-
-  return chart;
-}
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/bullet.js b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/bullet.js
deleted file mode 100755
index 9b9bf4d1..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/bullet.js
+++ /dev/null
@@ -1,385 +0,0 @@
-
-// Chart design based on the recommendations of Stephen Few. Implementation
-// based on the work of Clint Ivy, Jamie Love, and Jason Davies.
-// http://projects.instantcognition.com/protovis/bulletchart/
-
-nv.models.bullet = function() {
-  "use strict";
-  //============================================================
-  // Public Variables with Default Settings
-  //------------------------------------------------------------
-
-  var margin = {top: 0, right: 0, bottom: 0, left: 0}
-    , orient = 'left' // TODO top & bottom
-    , reverse = false
-    , ranges = function(d) { return d.ranges }
-    , markers = function(d) { return d.markers }
-    , measures = function(d) { return d.measures }
-    , rangeLabels = function(d) { return d.rangeLabels ? d.rangeLabels : [] }
-    , markerLabels = function(d) { return d.markerLabels ? d.markerLabels : []  }
-    , measureLabels = function(d) { return d.measureLabels ? d.measureLabels : []  }
-    , forceX = [0] // List of numbers to Force into the X scale (ie. 0, or a max / min, etc.)
-    , width = 380
-    , height = 30
-    , tickFormat = null
-    , color = nv.utils.getColor(['#1f77b4'])
-    , dispatch = d3.dispatch('elementMouseover', 'elementMouseout')
-    ;
-
-  //============================================================
-
-
-  function chart(selection) {
-    selection.each(function(d, i) {
-      var availableWidth = width - margin.left - margin.right,
-          availableHeight = height - margin.top - margin.bottom,
-          container = d3.select(this);
-
-      var rangez = ranges.call(this, d, i).slice().sort(d3.descending),
-          markerz = markers.call(this, d, i).slice().sort(d3.descending),
-          measurez = measures.call(this, d, i).slice().sort(d3.descending),
-          rangeLabelz = rangeLabels.call(this, d, i).slice(),
-          markerLabelz = markerLabels.call(this, d, i).slice(),
-          measureLabelz = measureLabels.call(this, d, i).slice();
-
-
-      //------------------------------------------------------------
-      // Setup Scales
-
-      // Compute the new x-scale.
-      var x1 = d3.scale.linear()
-          .domain( d3.extent(d3.merge([forceX, rangez])) )
-          .range(reverse ? [availableWidth, 0] : [0, availableWidth]);
-
-      // Retrieve the old x-scale, if this is an update.
-      var x0 = this.__chart__ || d3.scale.linear()
-          .domain([0, Infinity])
-          .range(x1.range());
-
-      // Stash the new scale.
-      this.__chart__ = x1;
-
-
-      var rangeMin = d3.min(rangez), //rangez[2]
-          rangeMax = d3.max(rangez), //rangez[0]
-          rangeAvg = rangez[1];
-
-      //------------------------------------------------------------
-
-
-      //------------------------------------------------------------
-      // Setup containers and skeleton of chart
-
-      var wrap = container.selectAll('g.nv-wrap.nv-bullet').data([d]);
-      var wrapEnter = wrap.enter().append('g').attr('class', 'nvd3 nv-wrap nv-bullet');
-      var gEnter = wrapEnter.append('g');
-      var g = wrap.select('g');
-
-      gEnter.append('rect').attr('class', 'nv-range nv-rangeMax');
-      gEnter.append('rect').attr('class', 'nv-range nv-rangeAvg');
-      gEnter.append('rect').attr('class', 'nv-range nv-rangeMin');
-      gEnter.append('rect').attr('class', 'nv-measure');
-      gEnter.append('path').attr('class', 'nv-markerTriangle');
-
-      wrap.attr('transform', 'translate(' + margin.left + ',' + margin.top + ')');
-
-      //------------------------------------------------------------
-
-
-
-      var w0 = function(d) { return Math.abs(x0(d) - x0(0)) }, // TODO: could optimize by precalculating x0(0) and x1(0)
-          w1 = function(d) { return Math.abs(x1(d) - x1(0)) };
-      var xp0 = function(d) { return d < 0 ? x0(d) : x0(0) },
-          xp1 = function(d) { return d < 0 ? x1(d) : x1(0) };
-
-
-      g.select('rect.nv-rangeMax')
-          .attr('height', availableHeight)
-          .attr('width', w1(rangeMax > 0 ? rangeMax : rangeMin))
-          .attr('x', xp1(rangeMax > 0 ? rangeMax : rangeMin))
-          .datum(rangeMax > 0 ? rangeMax : rangeMin)
-          /*
-          .attr('x', rangeMin < 0 ?
-                         rangeMax > 0 ?
-                             x1(rangeMin)
-                           : x1(rangeMax)
-                       : x1(0))
-                      */
-
-      g.select('rect.nv-rangeAvg')
-          .attr('height', availableHeight)
-          .attr('width', w1(rangeAvg))
-          .attr('x', xp1(rangeAvg))
-          .datum(rangeAvg)
-          /*
-          .attr('width', rangeMax <= 0 ?
-                             x1(rangeMax) - x1(rangeAvg)
-                           : x1(rangeAvg) - x1(rangeMin))
-          .attr('x', rangeMax <= 0 ?
-                         x1(rangeAvg)
-                       : x1(rangeMin))
-                      */
-
-      g.select('rect.nv-rangeMin')
-          .attr('height', availableHeight)
-          .attr('width', w1(rangeMax))
-          .attr('x', xp1(rangeMax))
-          .attr('width', w1(rangeMax > 0 ? rangeMin : rangeMax))
-          .attr('x', xp1(rangeMax > 0 ? rangeMin : rangeMax))
-          .datum(rangeMax > 0 ? rangeMin : rangeMax)
-          /*
-          .attr('width', rangeMax <= 0 ?
-                             x1(rangeAvg) - x1(rangeMin)
-                           : x1(rangeMax) - x1(rangeAvg))
-          .attr('x', rangeMax <= 0 ?
-                         x1(rangeMin)
-                       : x1(rangeAvg))
-                      */
-
-      g.select('rect.nv-measure')
-          .style('fill', color)
-          .attr('height', availableHeight / 3)
-          .attr('y', availableHeight / 3)
-          .attr('width', measurez < 0 ?
-                             x1(0) - x1(measurez[0])
-                           : x1(measurez[0]) - x1(0))
-          .attr('x', xp1(measurez))
-          .on('mouseover', function() {
-              dispatch.elementMouseover({
-                value: measurez[0],
-                label: measureLabelz[0] || 'Current',
-                pos: [x1(measurez[0]), availableHeight/2]
-              })
-          })
-          .on('mouseout', function() {
-              dispatch.elementMouseout({
-                value: measurez[0],
-                label: measureLabelz[0] || 'Current'
-              })
-          })
-
-      var h3 =  availableHeight / 6;
-      if (markerz[0]) {
-        g.selectAll('path.nv-markerTriangle')
-            .attr('transform', function(d) { return 'translate(' + x1(markerz[0]) + ',' + (availableHeight / 2) + ')' })
-            .attr('d', 'M0,' + h3 + 'L' + h3 + ',' + (-h3) + ' ' + (-h3) + ',' + (-h3) + 'Z')
-            .on('mouseover', function() {
-              dispatch.elementMouseover({
-                value: markerz[0],
-                label: markerLabelz[0] || 'Previous',
-                pos: [x1(markerz[0]), availableHeight/2]
-              })
-            })
-            .on('mouseout', function() {
-              dispatch.elementMouseout({
-                value: markerz[0],
-                label: markerLabelz[0] || 'Previous'
-              })
-            });
-      } else {
-        g.selectAll('path.nv-markerTriangle').remove();
-      }
-
-
-      wrap.selectAll('.nv-range')
-          .on('mouseover', function(d,i) {
-            var label = rangeLabelz[i] || (!i ? "Maximum" : i == 1 ? "Mean" : "Minimum");
-
-            dispatch.elementMouseover({
-              value: d,
-              label: label,
-              pos: [x1(d), availableHeight/2]
-            })
-          })
-          .on('mouseout', function(d,i) {
-            var label = rangeLabelz[i] || (!i ? "Maximum" : i == 1 ? "Mean" : "Minimum");
-
-            dispatch.elementMouseout({
-              value: d,
-              label: label
-            })
-          })
-
-/* // THIS IS THE PREVIOUS BULLET IMPLEMENTATION, WILL REMOVE SHORTLY
-      // Update the range rects.
-      var range = g.selectAll('rect.nv-range')
-          .data(rangez);
-
-      range.enter().append('rect')
-          .attr('class', function(d, i) { return 'nv-range nv-s' + i; })
-          .attr('width', w0)
-          .attr('height', availableHeight)
-          .attr('x', reverse ? x0 : 0)
-          .on('mouseover', function(d,i) { 
-              dispatch.elementMouseover({
-                value: d,
-                label: (i <= 0) ? 'Maximum' : (i > 1) ? 'Minimum' : 'Mean', //TODO: make these labels a variable
-                pos: [x1(d), availableHeight/2]
-              })
-          })
-          .on('mouseout', function(d,i) { 
-              dispatch.elementMouseout({
-                value: d,
-                label: (i <= 0) ? 'Minimum' : (i >=1) ? 'Maximum' : 'Mean' //TODO: make these labels a variable
-              })
-          })
-
-      d3.transition(range)
-          .attr('x', reverse ? x1 : 0)
-          .attr('width', w1)
-          .attr('height', availableHeight);
-
-
-      // Update the measure rects.
-      var measure = g.selectAll('rect.nv-measure')
-          .data(measurez);
-
-      measure.enter().append('rect')
-          .attr('class', function(d, i) { return 'nv-measure nv-s' + i; })
-          .style('fill', function(d,i) { return color(d,i ) })
-          .attr('width', w0)
-          .attr('height', availableHeight / 3)
-          .attr('x', reverse ? x0 : 0)
-          .attr('y', availableHeight / 3)
-          .on('mouseover', function(d) { 
-              dispatch.elementMouseover({
-                value: d,
-                label: 'Current', //TODO: make these labels a variable
-                pos: [x1(d), availableHeight/2]
-              })
-          })
-          .on('mouseout', function(d) { 
-              dispatch.elementMouseout({
-                value: d,
-                label: 'Current' //TODO: make these labels a variable
-              })
-          })
-
-      d3.transition(measure)
-          .attr('width', w1)
-          .attr('height', availableHeight / 3)
-          .attr('x', reverse ? x1 : 0)
-          .attr('y', availableHeight / 3);
-
-
-
-      // Update the marker lines.
-      var marker = g.selectAll('path.nv-markerTriangle')
-          .data(markerz);
-
-      var h3 =  availableHeight / 6;
-      marker.enter().append('path')
-          .attr('class', 'nv-markerTriangle')
-          .attr('transform', function(d) { return 'translate(' + x0(d) + ',' + (availableHeight / 2) + ')' })
-          .attr('d', 'M0,' + h3 + 'L' + h3 + ',' + (-h3) + ' ' + (-h3) + ',' + (-h3) + 'Z')
-          .on('mouseover', function(d,i) {
-              dispatch.elementMouseover({
-                value: d,
-                label: 'Previous',
-                pos: [x1(d), availableHeight/2]
-              })
-          })
-          .on('mouseout', function(d,i) {
-              dispatch.elementMouseout({
-                value: d,
-                label: 'Previous'
-              })
-          });
-
-      d3.transition(marker)
-          .attr('transform', function(d) { return 'translate(' + (x1(d) - x1(0)) + ',' + (availableHeight / 2) + ')' });
-
-      marker.exit().remove();
-*/
-
-    });
-
-    // d3.timer.flush();  // Not needed?
-
-    return chart;
-  }
-
-
-  //============================================================
-  // Expose Public Variables
-  //------------------------------------------------------------
-
-  chart.dispatch = dispatch;
-
-  chart.options = nv.utils.optionsFunc.bind(chart);
-  
-  // left, right, top, bottom
-  chart.orient = function(_) {
-    if (!arguments.length) return orient;
-    orient = _;
-    reverse = orient == 'right' || orient == 'bottom';
-    return chart;
-  };
-
-  // ranges (bad, satisfactory, good)
-  chart.ranges = function(_) {
-    if (!arguments.length) return ranges;
-    ranges = _;
-    return chart;
-  };
-
-  // markers (previous, goal)
-  chart.markers = function(_) {
-    if (!arguments.length) return markers;
-    markers = _;
-    return chart;
-  };
-
-  // measures (actual, forecast)
-  chart.measures = function(_) {
-    if (!arguments.length) return measures;
-    measures = _;
-    return chart;
-  };
-
-  chart.forceX = function(_) {
-    if (!arguments.length) return forceX;
-    forceX = _;
-    return chart;
-  };
-
-  chart.width = function(_) {
-    if (!arguments.length) return width;
-    width = _;
-    return chart;
-  };
-
-  chart.height = function(_) {
-    if (!arguments.length) return height;
-    height = _;
-    return chart;
-  };
-
-  chart.margin = function(_) {
-    if (!arguments.length) return margin;
-    margin.top    = typeof _.top    != 'undefined' ? _.top    : margin.top;
-    margin.right  = typeof _.right  != 'undefined' ? _.right  : margin.right;
-    margin.bottom = typeof _.bottom != 'undefined' ? _.bottom : margin.bottom;
-    margin.left   = typeof _.left   != 'undefined' ? _.left   : margin.left;
-    return chart;
-  };
-
-  chart.tickFormat = function(_) {
-    if (!arguments.length) return tickFormat;
-    tickFormat = _;
-    return chart;
-  };
-
-  chart.color = function(_) {
-    if (!arguments.length) return color;
-    color = nv.utils.getColor(_);
-    return chart;
-  };
-
-  //============================================================
-
-
-  return chart;
-};
-
-
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/bulletChart.js b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/bulletChart.js
deleted file mode 100755
index fa5bd596..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/bulletChart.js
+++ /dev/null
@@ -1,343 +0,0 @@
-
-// Chart design based on the recommendations of Stephen Few. Implementation
-// based on the work of Clint Ivy, Jamie Love, and Jason Davies.
-// http://projects.instantcognition.com/protovis/bulletchart/
-nv.models.bulletChart = function() {
-  "use strict";
-  //============================================================
-  // Public Variables with Default Settings
-  //------------------------------------------------------------
-
-  var bullet = nv.models.bullet()
-    ;
-
-  var orient = 'left' // TODO top & bottom
-    , reverse = false
-    , margin = {top: 5, right: 40, bottom: 20, left: 120}
-    , ranges = function(d) { return d.ranges }
-    , markers = function(d) { return d.markers }
-    , measures = function(d) { return d.measures }
-    , width = null
-    , height = 55
-    , tickFormat = null
-    , tooltips = true
-    , tooltip = function(key, x, y, e, graph) {
-        return '<h3>' + x + '</h3>' +
-               '<p>' + y + '</p>'
-      }
-    , noData = 'No Data Available.'
-    , dispatch = d3.dispatch('tooltipShow', 'tooltipHide')
-    ;
-
-  //============================================================
-
-
-  //============================================================
-  // Private Variables
-  //------------------------------------------------------------
-
-  var showTooltip = function(e, offsetElement) {
-    var left = e.pos[0] + ( offsetElement.offsetLeft || 0 ) + margin.left,
-        top = e.pos[1] + ( offsetElement.offsetTop || 0) + margin.top,
-        content = tooltip(e.key, e.label, e.value, e, chart);
-
-    nv.tooltip.show([left, top], content, e.value < 0 ? 'e' : 'w', null, offsetElement);
-  };
-
-  //============================================================
-
-
-  function chart(selection) {
-    selection.each(function(d, i) {
-      var container = d3.select(this);
-
-      var availableWidth = (width  || parseInt(container.style('width')) || 960)
-                             - margin.left - margin.right,
-          availableHeight = height - margin.top - margin.bottom,
-          that = this;
-
-
-      chart.update = function() { chart(selection) };
-      chart.container = this;
-
-      //------------------------------------------------------------
-      // Display No Data message if there's nothing to show.
-
-      if (!d || !ranges.call(this, d, i)) {
-        var noDataText = container.selectAll('.nv-noData').data([noData]);
-
-        noDataText.enter().append('text')
-          .attr('class', 'nvd3 nv-noData')
-          .attr('dy', '-.7em')
-          .style('text-anchor', 'middle');
-
-        noDataText
-          .attr('x', margin.left + availableWidth / 2)
-          .attr('y', 18 + margin.top + availableHeight / 2)
-          .text(function(d) { return d });
-
-        return chart;
-      } else {
-        container.selectAll('.nv-noData').remove();
-      }
-
-      //------------------------------------------------------------
-
-
-
-      var rangez = ranges.call(this, d, i).slice().sort(d3.descending),
-          markerz = markers.call(this, d, i).slice().sort(d3.descending),
-          measurez = measures.call(this, d, i).slice().sort(d3.descending);
-
-
-      //------------------------------------------------------------
-      // Setup containers and skeleton of chart
-
-      var wrap = container.selectAll('g.nv-wrap.nv-bulletChart').data([d]);
-      var wrapEnter = wrap.enter().append('g').attr('class', 'nvd3 nv-wrap nv-bulletChart');
-      var gEnter = wrapEnter.append('g');
-      var g = wrap.select('g');
-
-      gEnter.append('g').attr('class', 'nv-bulletWrap');
-      gEnter.append('g').attr('class', 'nv-titles');
-
-      wrap.attr('transform', 'translate(' + margin.left + ',' + margin.top + ')');
-
-      //------------------------------------------------------------
-
-
-      // Compute the new x-scale.
-      var x1 = d3.scale.linear()
-          .domain([0, Math.max(rangez[0], markerz[0], measurez[0])])  // TODO: need to allow forceX and forceY, and xDomain, yDomain
-          .range(reverse ? [availableWidth, 0] : [0, availableWidth]);
-
-      // Retrieve the old x-scale, if this is an update.
-      var x0 = this.__chart__ || d3.scale.linear()
-          .domain([0, Infinity])
-          .range(x1.range());
-
-      // Stash the new scale.
-      this.__chart__ = x1;
-
-      /*
-      // Derive width-scales from the x-scales.
-      var w0 = bulletWidth(x0),
-          w1 = bulletWidth(x1);
-
-      function bulletWidth(x) {
-        var x0 = x(0);
-        return function(d) {
-          return Math.abs(x(d) - x(0));
-        };
-      }
-
-      function bulletTranslate(x) {
-        return function(d) {
-          return 'translate(' + x(d) + ',0)';
-        };
-      }
-      */
-
-      var w0 = function(d) { return Math.abs(x0(d) - x0(0)) }, // TODO: could optimize by precalculating x0(0) and x1(0)
-          w1 = function(d) { return Math.abs(x1(d) - x1(0)) };
-
-
-      var title = gEnter.select('.nv-titles').append('g')
-          .attr('text-anchor', 'end')
-          .attr('transform', 'translate(-6,' + (height - margin.top - margin.bottom) / 2 + ')');
-      title.append('text')
-          .attr('class', 'nv-title')
-          .text(function(d) { return d.title; });
-
-      title.append('text')
-          .attr('class', 'nv-subtitle')
-          .attr('dy', '1em')
-          .text(function(d) { return d.subtitle; });
-
-
-
-      bullet
-        .width(availableWidth)
-        .height(availableHeight)
-
-      var bulletWrap = g.select('.nv-bulletWrap');
-
-      d3.transition(bulletWrap).call(bullet);
-
-
-
-      // Compute the tick format.
-      var format = tickFormat || x1.tickFormat( availableWidth / 100 );
-
-      // Update the tick groups.
-      var tick = g.selectAll('g.nv-tick')
-          .data(x1.ticks( availableWidth / 50 ), function(d) {
-            return this.textContent || format(d);
-          });
-
-      // Initialize the ticks with the old scale, x0.
-      var tickEnter = tick.enter().append('g')
-          .attr('class', 'nv-tick')
-          .attr('transform', function(d) { return 'translate(' + x0(d) + ',0)' })
-          .style('opacity', 1e-6);
-
-      tickEnter.append('line')
-          .attr('y1', availableHeight)
-          .attr('y2', availableHeight * 7 / 6);
-
-      tickEnter.append('text')
-          .attr('text-anchor', 'middle')
-          .attr('dy', '1em')
-          .attr('y', availableHeight * 7 / 6)
-          .text(format);
-
-
-      // Transition the updating ticks to the new scale, x1.
-      var tickUpdate = d3.transition(tick)
-          .attr('transform', function(d) { return 'translate(' + x1(d) + ',0)' })
-          .style('opacity', 1);
-
-      tickUpdate.select('line')
-          .attr('y1', availableHeight)
-          .attr('y2', availableHeight * 7 / 6);
-
-      tickUpdate.select('text')
-          .attr('y', availableHeight * 7 / 6);
-
-      // Transition the exiting ticks to the new scale, x1.
-      d3.transition(tick.exit())
-          .attr('transform', function(d) { return 'translate(' + x1(d) + ',0)' })
-          .style('opacity', 1e-6)
-          .remove();
-
-
-      //============================================================
-      // Event Handling/Dispatching (in chart's scope)
-      //------------------------------------------------------------
-
-      dispatch.on('tooltipShow', function(e) {
-        e.key = d.title;
-        if (tooltips) showTooltip(e, that.parentNode);
-      });
-
-      //============================================================
-
-    });
-
-    d3.timer.flush();
-
-    return chart;
-  }
-
-
-  //============================================================
-  // Event Handling/Dispatching (out of chart's scope)
-  //------------------------------------------------------------
-
-  bullet.dispatch.on('elementMouseover.tooltip', function(e) {
-    dispatch.tooltipShow(e);
-  });
-
-  bullet.dispatch.on('elementMouseout.tooltip', function(e) {
-    dispatch.tooltipHide(e);
-  });
-
-  dispatch.on('tooltipHide', function() {
-    if (tooltips) nv.tooltip.cleanup();
-  });
-
-  //============================================================
-
-
-  //============================================================
-  // Expose Public Variables
-  //------------------------------------------------------------
-
-  chart.dispatch = dispatch;
-  chart.bullet = bullet;
-
-  d3.rebind(chart, bullet, 'color');
-
-  chart.options = nv.utils.optionsFunc.bind(chart);
-  
-  // left, right, top, bottom
-  chart.orient = function(x) {
-    if (!arguments.length) return orient;
-    orient = x;
-    reverse = orient == 'right' || orient == 'bottom';
-    return chart;
-  };
-
-  // ranges (bad, satisfactory, good)
-  chart.ranges = function(x) {
-    if (!arguments.length) return ranges;
-    ranges = x;
-    return chart;
-  };
-
-  // markers (previous, goal)
-  chart.markers = function(x) {
-    if (!arguments.length) return markers;
-    markers = x;
-    return chart;
-  };
-
-  // measures (actual, forecast)
-  chart.measures = function(x) {
-    if (!arguments.length) return measures;
-    measures = x;
-    return chart;
-  };
-
-  chart.width = function(x) {
-    if (!arguments.length) return width;
-    width = x;
-    return chart;
-  };
-
-  chart.height = function(x) {
-    if (!arguments.length) return height;
-    height = x;
-    return chart;
-  };
-
-  chart.margin = function(_) {
-    if (!arguments.length) return margin;
-    margin.top    = typeof _.top    != 'undefined' ? _.top    : margin.top;
-    margin.right  = typeof _.right  != 'undefined' ? _.right  : margin.right;
-    margin.bottom = typeof _.bottom != 'undefined' ? _.bottom : margin.bottom;
-    margin.left   = typeof _.left   != 'undefined' ? _.left   : margin.left;
-    return chart;
-  };
-
-  chart.tickFormat = function(x) {
-    if (!arguments.length) return tickFormat;
-    tickFormat = x;
-    return chart;
-  };
-
-  chart.tooltips = function(_) {
-    if (!arguments.length) return tooltips;
-    tooltips = _;
-    return chart;
-  };
-
-  chart.tooltipContent = function(_) {
-    if (!arguments.length) return tooltip;
-    tooltip = _;
-    return chart;
-  };
-
-  chart.noData = function(_) {
-    if (!arguments.length) return noData;
-    noData = _;
-    return chart;
-  };
-
-  //============================================================
-
-
-  return chart;
-};
-
-
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/cumulativeLineChart.js b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/cumulativeLineChart.js
deleted file mode 100755
index 2a53563b..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/cumulativeLineChart.js
+++ /dev/null
@@ -1,754 +0,0 @@
-
-nv.models.cumulativeLineChart = function() {
-  "use strict";
-  //============================================================
-  // Public Variables with Default Settings
-  //------------------------------------------------------------
-
-  var lines = nv.models.line()
-    , xAxis = nv.models.axis()
-    , yAxis = nv.models.axis()
-    , legend = nv.models.legend()
-    , controls = nv.models.legend()
-    , interactiveLayer = nv.interactiveGuideline()
-    ;
-
-  var margin = {top: 30, right: 30, bottom: 50, left: 60}
-    , color = nv.utils.defaultColor()
-    , width = null
-    , height = null
-    , showLegend = true
-    , showXAxis = true
-    , showYAxis = true
-    , rightAlignYAxis = false
-    , tooltips = true
-    , showControls = true
-    , useInteractiveGuideline = false
-    , rescaleY = true
-    , tooltip = function(key, x, y, e, graph) {
-        return '<h3>' + key + '</h3>' +
-               '<p>' +  y + ' at ' + x + '</p>'
-      }
-    , x //can be accessed via chart.xScale()
-    , y //can be accessed via chart.yScale()
-    , id = lines.id()
-    , state = { index: 0, rescaleY: rescaleY }
-    , defaultState = null
-    , noData = 'No Data Available.'
-    , average = function(d) { return d.average }
-    , dispatch = d3.dispatch('tooltipShow', 'tooltipHide', 'stateChange', 'changeState')
-    , transitionDuration = 250
-    ;
-
-  xAxis
-    .orient('bottom')
-    .tickPadding(7)
-    ;
-  yAxis
-    .orient((rightAlignYAxis) ? 'right' : 'left')
-    ;
-
-  //============================================================
-  controls.updateState(false);
-
-  //============================================================
-  // Private Variables
-  //------------------------------------------------------------
-
-   var dx = d3.scale.linear()
-     , index = {i: 0, x: 0}
-     ;
-
-  var showTooltip = function(e, offsetElement) {
-    var left = e.pos[0] + ( offsetElement.offsetLeft || 0 ),
-        top = e.pos[1] + ( offsetElement.offsetTop || 0),
-        x = xAxis.tickFormat()(lines.x()(e.point, e.pointIndex)),
-        y = yAxis.tickFormat()(lines.y()(e.point, e.pointIndex)),
-        content = tooltip(e.series.key, x, y, e, chart);
-
-    nv.tooltip.show([left, top], content, null, null, offsetElement);
-  };
-
-  //============================================================
-
-  function chart(selection) {
-    selection.each(function(data) {
-      var container = d3.select(this).classed('nv-chart-' + id, true),
-          that = this;
-
-      var availableWidth = (width  || parseInt(container.style('width')) || 960)
-                             - margin.left - margin.right,
-          availableHeight = (height || parseInt(container.style('height')) || 400)
-                             - margin.top - margin.bottom;
-
-
-      chart.update = function() { container.transition().duration(transitionDuration).call(chart) };
-      chart.container = this;
-
-      //set state.disabled
-      state.disabled = data.map(function(d) { return !!d.disabled });
-
-      if (!defaultState) {
-        var key;
-        defaultState = {};
-        for (key in state) {
-          if (state[key] instanceof Array)
-            defaultState[key] = state[key].slice(0);
-          else
-            defaultState[key] = state[key];
-        }
-      }
-
-      var indexDrag = d3.behavior.drag()
-                        .on('dragstart', dragStart)
-                        .on('drag', dragMove)
-                        .on('dragend', dragEnd);
-
-
-      function dragStart(d,i) {
-        d3.select(chart.container)
-            .style('cursor', 'ew-resize');
-      }
-
-      function dragMove(d,i) {
-        index.x = d3.event.x;
-        index.i = Math.round(dx.invert(index.x));
-        updateZero();
-      }
-
-      function dragEnd(d,i) {
-        d3.select(chart.container)
-            .style('cursor', 'auto');
-
-        // update state and send stateChange with new index
-        state.index = index.i;
-        dispatch.stateChange(state);
-      }
-
-      //------------------------------------------------------------
-      // Display No Data message if there's nothing to show.
-
-      if (!data || !data.length || !data.filter(function(d) { return d.values.length }).length) {
-        var noDataText = container.selectAll('.nv-noData').data([noData]);
-
-        noDataText.enter().append('text')
-          .attr('class', 'nvd3 nv-noData')
-          .attr('dy', '-.7em')
-          .style('text-anchor', 'middle');
-
-        noDataText
-          .attr('x', margin.left + availableWidth / 2)
-          .attr('y', margin.top + availableHeight / 2)
-          .text(function(d) { return d });
-
-        return chart;
-      } else {
-        container.selectAll('.nv-noData').remove();
-      }
-
-      //------------------------------------------------------------
-
-
-      //------------------------------------------------------------
-      // Setup Scales
-
-      x = lines.xScale();
-      y = lines.yScale();
-
-
-      if (!rescaleY) {
-        var seriesDomains = data
-          .filter(function(series) { return !series.disabled })
-          .map(function(series,i) {
-            var initialDomain = d3.extent(series.values, lines.y());
-
-            //account for series being disabled when losing 95% or more
-            if (initialDomain[0] < -.95) initialDomain[0] = -.95;
-
-            return [
-              (initialDomain[0] - initialDomain[1]) / (1 + initialDomain[1]),
-              (initialDomain[1] - initialDomain[0]) / (1 + initialDomain[0])
-            ];
-          });
-
-        var completeDomain = [
-          d3.min(seriesDomains, function(d) { return d[0] }),
-          d3.max(seriesDomains, function(d) { return d[1] })
-        ]
-
-        lines.yDomain(completeDomain);
-      } else {
-        lines.yDomain(null);
-      }
-
-
-      dx  .domain([0, data[0].values.length - 1]) //Assumes all series have same length
-          .range([0, availableWidth])
-          .clamp(true);
-
-      //------------------------------------------------------------
-
-
-      var data = indexify(index.i, data);
-
-
-      //------------------------------------------------------------
-      // Setup containers and skeleton of chart
-      var interactivePointerEvents = (useInteractiveGuideline) ? "none" : "all";
-      var wrap = container.selectAll('g.nv-wrap.nv-cumulativeLine').data([data]);
-      var gEnter = wrap.enter().append('g').attr('class', 'nvd3 nv-wrap nv-cumulativeLine').append('g');
-      var g = wrap.select('g');
-
-      gEnter.append('g').attr('class', 'nv-interactive');
-      gEnter.append('g').attr('class', 'nv-x nv-axis').style("pointer-events","none");
-      gEnter.append('g').attr('class', 'nv-y nv-axis');
-      gEnter.append('g').attr('class', 'nv-background');
-      gEnter.append('g').attr('class', 'nv-linesWrap').style("pointer-events",interactivePointerEvents);
-      gEnter.append('g').attr('class', 'nv-avgLinesWrap').style("pointer-events","none");
-      gEnter.append('g').attr('class', 'nv-legendWrap');
-      gEnter.append('g').attr('class', 'nv-controlsWrap');
-      
-
-      //------------------------------------------------------------
-      // Legend
-
-      if (showLegend) {
-        legend.width(availableWidth);
-
-        g.select('.nv-legendWrap')
-            .datum(data)
-            .call(legend);
-
-        if ( margin.top != legend.height()) {
-          margin.top = legend.height();
-          availableHeight = (height || parseInt(container.style('height')) || 400)
-                             - margin.top - margin.bottom;
-        }
-
-        g.select('.nv-legendWrap')
-            .attr('transform', 'translate(0,' + (-margin.top) +')')
-      }
-
-      //------------------------------------------------------------
-
-
-      //------------------------------------------------------------
-      // Controls
-
-      if (showControls) {
-        var controlsData = [
-          { key: 'Re-scale y-axis', disabled: !rescaleY }
-        ];
-
-        controls.width(140).color(['#444', '#444', '#444']);
-        g.select('.nv-controlsWrap')
-            .datum(controlsData)
-            .attr('transform', 'translate(0,' + (-margin.top) +')')
-            .call(controls);
-      }
-
-      //------------------------------------------------------------
-
-
-      wrap.attr('transform', 'translate(' + margin.left + ',' + margin.top + ')');
-
-      if (rightAlignYAxis) {
-          g.select(".nv-y.nv-axis")
-              .attr("transform", "translate(" + availableWidth + ",0)");
-      }
-
-      // Show error if series goes below 100%
-      var tempDisabled = data.filter(function(d) { return d.tempDisabled });
-
-      wrap.select('.tempDisabled').remove(); //clean-up and prevent duplicates
-      if (tempDisabled.length) {
-        wrap.append('text').attr('class', 'tempDisabled')
-            .attr('x', availableWidth / 2)
-            .attr('y', '-.71em')
-            .style('text-anchor', 'end')
-            .text(tempDisabled.map(function(d) { return d.key }).join(', ') + ' values cannot be calculated for this time period.');
-      }
-
-      //------------------------------------------------------------
-      // Main Chart Component(s)
-      
-      //------------------------------------------------------------
-      //Set up interactive layer
-      if (useInteractiveGuideline) {
-        interactiveLayer
-          .width(availableWidth)
-          .height(availableHeight)
-          .margin({left:margin.left,top:margin.top})
-          .svgContainer(container)
-          .xScale(x);
-        wrap.select(".nv-interactive").call(interactiveLayer);
-      }
-
-      gEnter.select('.nv-background')
-        .append('rect');
-
-      g.select('.nv-background rect')
-          .attr('width', availableWidth)
-          .attr('height', availableHeight);
-
-      lines
-        //.x(function(d) { return d.x })
-        .y(function(d) { return d.display.y })
-        .width(availableWidth)
-        .height(availableHeight)
-        .color(data.map(function(d,i) {
-          return d.color || color(d, i);
-        }).filter(function(d,i) { return !data[i].disabled && !data[i].tempDisabled; }));
-
-
-
-      var linesWrap = g.select('.nv-linesWrap')
-          .datum(data.filter(function(d) { return  !d.disabled && !d.tempDisabled }));
-
-      //d3.transition(linesWrap).call(lines);
-      linesWrap.call(lines);
-
-      /*Handle average lines [AN-612] ----------------------------*/
-
-      //Store a series index number in the data array.
-      data.forEach(function(d,i) {
-            d.seriesIndex = i;
-      });
-
-      var avgLineData = data.filter(function(d) {
-          return !d.disabled && !!average(d);
-      });
-
-      var avgLines = g.select(".nv-avgLinesWrap").selectAll("line")
-              .data(avgLineData, function(d) { return d.key; });
-
-      var getAvgLineY = function(d) {
-          //If average lines go off the svg element, clamp them to the svg bounds.
-          var yVal = y(average(d));
-          if (yVal < 0) return 0;
-          if (yVal > availableHeight) return availableHeight;
-          return yVal;
-      };
-
-      avgLines.enter()
-              .append('line')
-              .style('stroke-width',2)
-              .style('stroke-dasharray','10,10')
-              .style('stroke',function (d,i) {
-                  return lines.color()(d,d.seriesIndex);
-              })
-              .attr('x1',0)
-              .attr('x2',availableWidth)
-              .attr('y1', getAvgLineY)
-              .attr('y2', getAvgLineY);
-
-      avgLines
-              .style('stroke-opacity',function(d){
-                  //If average lines go offscreen, make them transparent
-                  var yVal = y(average(d));
-                  if (yVal < 0 || yVal > availableHeight) return 0;
-                  return 1;
-              })
-              .attr('x1',0)
-              .attr('x2',availableWidth)
-              .attr('y1', getAvgLineY)
-              .attr('y2', getAvgLineY);
-
-      avgLines.exit().remove();
-
-      //Create index line -----------------------------------------
-
-      var indexLine = linesWrap.selectAll('.nv-indexLine')
-          .data([index]);
-      indexLine.enter().append('rect').attr('class', 'nv-indexLine')
-          .attr('width', 3)
-          .attr('x', -2)
-          .attr('fill', 'red')
-          .attr('fill-opacity', .5)
-          .style("pointer-events","all")
-          .call(indexDrag)
-
-      indexLine
-          .attr('transform', function(d) { return 'translate(' + dx(d.i) + ',0)' })
-          .attr('height', availableHeight)
-
-      //------------------------------------------------------------
-
-
-      //------------------------------------------------------------
-      // Setup Axes
-
-      if (showXAxis) {
-        xAxis
-          .scale(x)
-          //Suggest how many ticks based on the chart width and D3 should listen (70 is the optimal number for MM/DD/YY dates)
-          .ticks( Math.min(data[0].values.length,availableWidth/70) )
-          .tickSize(-availableHeight, 0);
-
-        g.select('.nv-x.nv-axis')
-            .attr('transform', 'translate(0,' + y.range()[0] + ')');
-        d3.transition(g.select('.nv-x.nv-axis'))
-            .call(xAxis);
-      }
-
-
-      if (showYAxis) {
-        yAxis
-          .scale(y)
-          .ticks( availableHeight / 36 )
-          .tickSize( -availableWidth, 0);
-
-        d3.transition(g.select('.nv-y.nv-axis'))
-            .call(yAxis);
-      }
-      //------------------------------------------------------------
-
-
-      //============================================================
-      // Event Handling/Dispatching (in chart's scope)
-      //------------------------------------------------------------
-
-
-      function updateZero() {
-        indexLine
-          .data([index]);
-        
-        //When dragging the index line, turn off line transitions.
-        // Then turn them back on when done dragging.
-        var oldDuration = chart.transitionDuration();
-        chart.transitionDuration(0);
-        chart.update();
-        chart.transitionDuration(oldDuration);
-      }
-
-      g.select('.nv-background rect')
-          .on('click', function() {
-            index.x = d3.mouse(this)[0];
-            index.i = Math.round(dx.invert(index.x));
-
-            // update state and send stateChange with new index
-            state.index = index.i;
-            dispatch.stateChange(state);
-
-            updateZero();
-          });
-
-      lines.dispatch.on('elementClick', function(e) {
-        index.i = e.pointIndex;
-        index.x = dx(index.i);
-
-        // update state and send stateChange with new index
-        state.index = index.i;
-        dispatch.stateChange(state);
-
-        updateZero();
-      });
-
-      controls.dispatch.on('legendClick', function(d,i) { 
-        d.disabled = !d.disabled;
-        rescaleY = !d.disabled;
-
-        state.rescaleY = rescaleY;
-        dispatch.stateChange(state);
-        chart.update();
-      });
-
-
-      legend.dispatch.on('stateChange', function(newState) {
-        state.disabled = newState.disabled; 
-        dispatch.stateChange(state);
-        chart.update();
-      });
-
-      interactiveLayer.dispatch.on('elementMousemove', function(e) {
-          lines.clearHighlights();
-          var singlePoint, pointIndex, pointXLocation, allData = [];
-          
-          
-          data
-          .filter(function(series, i) { 
-            series.seriesIndex = i;
-            return !series.disabled; 
-          })
-          .forEach(function(series,i) {
-              pointIndex = nv.interactiveBisect(series.values, e.pointXValue, chart.x());
-              lines.highlightPoint(i, pointIndex, true);
-              var point = series.values[pointIndex];
-              if (typeof point === 'undefined') return;
-              if (typeof singlePoint === 'undefined') singlePoint = point;
-              if (typeof pointXLocation === 'undefined') pointXLocation = chart.xScale()(chart.x()(point,pointIndex));
-              allData.push({
-                  key: series.key,
-                  value: chart.y()(point, pointIndex),
-                  color: color(series,series.seriesIndex)
-              });
-          });
-
-          //Highlight the tooltip entry based on which point the mouse is closest to.
-          if (allData.length > 2) {
-            var yValue = chart.yScale().invert(e.mouseY);
-            var domainExtent = Math.abs(chart.yScale().domain()[0] - chart.yScale().domain()[1]);
-            var threshold = 0.03 * domainExtent;
-            var indexToHighlight = nv.nearestValueIndex(allData.map(function(d){return d.value}),yValue,threshold);
-            if (indexToHighlight !== null)
-              allData[indexToHighlight].highlight = true;
-          }
-
-          var xValue = xAxis.tickFormat()(chart.x()(singlePoint,pointIndex), pointIndex);
-          interactiveLayer.tooltip
-                  .position({left: pointXLocation + margin.left, top: e.mouseY + margin.top})
-                  .chartContainer(that.parentNode)
-                  .enabled(tooltips)
-                  .valueFormatter(function(d,i) {
-                     return yAxis.tickFormat()(d);
-                  })
-                  .data(
-                      {
-                        value: xValue,
-                        series: allData
-                      }
-                  )();
-
-          interactiveLayer.renderGuideLine(pointXLocation);
-
-      });
-
-      interactiveLayer.dispatch.on("elementMouseout",function(e) {
-          dispatch.tooltipHide();
-          lines.clearHighlights();
-      });
-
-      dispatch.on('tooltipShow', function(e) {
-        if (tooltips) showTooltip(e, that.parentNode);
-      });
-
-
-      // Update chart from a state object passed to event handler
-      dispatch.on('changeState', function(e) {
-
-        if (typeof e.disabled !== 'undefined') {
-          data.forEach(function(series,i) {
-            series.disabled = e.disabled[i];
-          });
-
-          state.disabled = e.disabled;
-        }
-
-
-        if (typeof e.index !== 'undefined') {
-          index.i = e.index;
-          index.x = dx(index.i);
-
-          state.index = e.index;
-
-          indexLine
-            .data([index]);
-        }
-
-
-        if (typeof e.rescaleY !== 'undefined') {
-          rescaleY = e.rescaleY;
-        }
-
-        chart.update();
-      });
-
-      //============================================================
-
-    });
-
-    return chart;
-  }
-
-
-  //============================================================
-  // Event Handling/Dispatching (out of chart's scope)
-  //------------------------------------------------------------
-
-  lines.dispatch.on('elementMouseover.tooltip', function(e) {
-    e.pos = [e.pos[0] +  margin.left, e.pos[1] + margin.top];
-    dispatch.tooltipShow(e);
-  });
-
-  lines.dispatch.on('elementMouseout.tooltip', function(e) {
-    dispatch.tooltipHide(e);
-  });
-
-  dispatch.on('tooltipHide', function() {
-    if (tooltips) nv.tooltip.cleanup();
-  });
-
-  //============================================================
-
-
-  //============================================================
-  // Expose Public Variables
-  //------------------------------------------------------------
-
-  // expose chart's sub-components
-  chart.dispatch = dispatch;
-  chart.lines = lines;
-  chart.legend = legend;
-  chart.xAxis = xAxis;
-  chart.yAxis = yAxis;
-  chart.interactiveLayer = interactiveLayer;
-
-  d3.rebind(chart, lines, 'defined', 'isArea', 'x', 'y', 'xScale','yScale', 'size', 'xDomain', 'yDomain', 'xRange', 'yRange', 'forceX', 'forceY', 'interactive', 'clipEdge', 'clipVoronoi','useVoronoi',  'id');
-
-  chart.options = nv.utils.optionsFunc.bind(chart);
-  
-  chart.margin = function(_) {
-    if (!arguments.length) return margin;
-    margin.top    = typeof _.top    != 'undefined' ? _.top    : margin.top;
-    margin.right  = typeof _.right  != 'undefined' ? _.right  : margin.right;
-    margin.bottom = typeof _.bottom != 'undefined' ? _.bottom : margin.bottom;
-    margin.left   = typeof _.left   != 'undefined' ? _.left   : margin.left;
-    return chart;
-  };
-
-  chart.width = function(_) {
-    if (!arguments.length) return width;
-    width = _;
-    return chart;
-  };
-
-  chart.height = function(_) {
-    if (!arguments.length) return height;
-    height = _;
-    return chart;
-  };
-
-  chart.color = function(_) {
-    if (!arguments.length) return color;
-    color = nv.utils.getColor(_);
-    legend.color(color);
-    return chart;
-  };
-
-  chart.rescaleY = function(_) {
-    if (!arguments.length) return rescaleY;
-    rescaleY = _;
-    return chart;
-  };
-
-  chart.showControls = function(_) {
-    if (!arguments.length) return showControls;
-    showControls = _;
-    return chart;
-  };
-
-  chart.useInteractiveGuideline = function(_) {
-    if(!arguments.length) return useInteractiveGuideline;
-    useInteractiveGuideline = _;
-    if (_ === true) {
-       chart.interactive(false);
-       chart.useVoronoi(false);
-    }
-    return chart;
-  };
-
-  chart.showLegend = function(_) {
-    if (!arguments.length) return showLegend;
-    showLegend = _;
-    return chart;
-  };
-
-  chart.showXAxis = function(_) {
-    if (!arguments.length) return showXAxis;
-    showXAxis = _;
-    return chart;
-  };
-
-  chart.showYAxis = function(_) {
-    if (!arguments.length) return showYAxis;
-    showYAxis = _;
-    return chart;
-  };
-
-  chart.rightAlignYAxis = function(_) {
-    if(!arguments.length) return rightAlignYAxis;
-    rightAlignYAxis = _;
-    yAxis.orient( (_) ? 'right' : 'left');
-    return chart;
-  };
-
-  chart.tooltips = function(_) {
-    if (!arguments.length) return tooltips;
-    tooltips = _;
-    return chart;
-  };
-
-  chart.tooltipContent = function(_) {
-    if (!arguments.length) return tooltip;
-    tooltip = _;
-    return chart;
-  };
-
-  chart.state = function(_) {
-    if (!arguments.length) return state;
-    state = _;
-    return chart;
-  };
-
-  chart.defaultState = function(_) {
-    if (!arguments.length) return defaultState;
-    defaultState = _;
-    return chart;
-  };
-
-  chart.noData = function(_) {
-    if (!arguments.length) return noData;
-    noData = _;
-    return chart;
-  };
-
-  chart.average = function(_) {
-     if(!arguments.length) return average;
-     average = _;
-     return chart;
-  };
-
-  chart.transitionDuration = function(_) {
-    if (!arguments.length) return transitionDuration;
-    transitionDuration = _;
-    return chart;
-  };
-
-  //============================================================
-
-
-  //============================================================
-  // Functions
-  //------------------------------------------------------------
-
-  /* Normalize the data according to an index point. */
-  function indexify(idx, data) {
-    return data.map(function(line, i) {
-      if (!line.values) {
-         return line;
-      }
-      var v = lines.y()(line.values[idx], idx);
-
-      //TODO: implement check below, and disable series if series loses 100% or more cause divide by 0 issue
-      if (v < -.95) {
-        //if a series loses more than 100%, calculations fail.. anything close can cause major distortion (but is mathematically correct till it hits 100)
-        line.tempDisabled = true;
-        return line;
-      }
-
-      line.tempDisabled = false;
-
-      line.values = line.values.map(function(point, pointIndex) {
-        point.display = {'y': (lines.y()(point, pointIndex) - v) / (1 + v) };
-        return point;
-      })
-
-      return line;
-    })
-  }
-
-  //============================================================
-
-
-  return chart;
-}
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/discreteBar.js b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/discreteBar.js
deleted file mode 100755
index a20f5829..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/discreteBar.js
+++ /dev/null
@@ -1,349 +0,0 @@
-//TODO: consider deprecating by adding necessary features to multiBar model
-nv.models.discreteBar = function() {
-  "use strict";
-  //============================================================
-  // Public Variables with Default Settings
-  //------------------------------------------------------------
-
-  var margin = {top: 0, right: 0, bottom: 0, left: 0}
-    , width = 960
-    , height = 500
-    , id = Math.floor(Math.random() * 10000) //Create semi-unique ID in case user doesn't select one
-    , x = d3.scale.ordinal()
-    , y = d3.scale.linear()
-    , getX = function(d) { return d.x }
-    , getY = function(d) { return d.y }
-    , forceY = [0] // 0 is forced by default.. this makes sense for the majority of bar graphs... user can always do chart.forceY([]) to remove
-    , color = nv.utils.defaultColor()
-    , showValues = false
-    , valueFormat = d3.format(',.2f')
-    , xDomain
-    , yDomain
-    , xRange
-    , yRange
-    , dispatch = d3.dispatch('chartClick', 'elementClick', 'elementDblClick', 'elementMouseover', 'elementMouseout')
-    , rectClass = 'discreteBar'
-    ;
-
-  //============================================================
-
-
-  //============================================================
-  // Private Variables
-  //------------------------------------------------------------
-
-  var x0, y0;
-
-  //============================================================
-
-
-  function chart(selection) {
-    selection.each(function(data) {
-      var availableWidth = width - margin.left - margin.right,
-          availableHeight = height - margin.top - margin.bottom,
-          container = d3.select(this);
-
-
-      //add series index to each data point for reference
-      data.forEach(function(series, i) {
-        series.values.forEach(function(point) {
-          point.series = i;
-        });
-      });
-
-
-      //------------------------------------------------------------
-      // Setup Scales
-
-      // remap and flatten the data for use in calculating the scales' domains
-      var seriesData = (xDomain && yDomain) ? [] : // if we know xDomain and yDomain, no need to calculate
-            data.map(function(d) {
-              return d.values.map(function(d,i) {
-                return { x: getX(d,i), y: getY(d,i), y0: d.y0 }
-              })
-            });
-
-      x   .domain(xDomain || d3.merge(seriesData).map(function(d) { return d.x }))
-          .rangeBands(xRange || [0, availableWidth], .1);
-
-      y   .domain(yDomain || d3.extent(d3.merge(seriesData).map(function(d) { return d.y }).concat(forceY)));
-
-
-      // If showValues, pad the Y axis range to account for label height
-      if (showValues) y.range(yRange || [availableHeight - (y.domain()[0] < 0 ? 12 : 0), y.domain()[1] > 0 ? 12 : 0]);
-      else y.range(yRange || [availableHeight, 0]);
-
-      //store old scales if they exist
-      x0 = x0 || x;
-      y0 = y0 || y.copy().range([y(0),y(0)]);
-
-      //------------------------------------------------------------
-
-
-      //------------------------------------------------------------
-      // Setup containers and skeleton of chart
-
-      var wrap = container.selectAll('g.nv-wrap.nv-discretebar').data([data]);
-      var wrapEnter = wrap.enter().append('g').attr('class', 'nvd3 nv-wrap nv-discretebar');
-      var gEnter = wrapEnter.append('g');
-      var g = wrap.select('g');
-
-      gEnter.append('g').attr('class', 'nv-groups');
-
-      wrap.attr('transform', 'translate(' + margin.left + ',' + margin.top + ')');
-
-      //------------------------------------------------------------
-
-
-
-      //TODO: by definition, the discrete bar should not have multiple groups, will modify/remove later
-      var groups = wrap.select('.nv-groups').selectAll('.nv-group')
-          .data(function(d) { return d }, function(d) { return d.key });
-      groups.enter().append('g')
-          .style('stroke-opacity', 1e-6)
-          .style('fill-opacity', 1e-6);
-      groups.exit()
-          .transition()
-          .style('stroke-opacity', 1e-6)
-          .style('fill-opacity', 1e-6)
-          .remove();
-      groups
-          .attr('class', function(d,i) { return 'nv-group nv-series-' + i })
-          .classed('hover', function(d) { return d.hover });
-      groups
-          .transition()
-          .style('stroke-opacity', 1)
-          .style('fill-opacity', .75);
-
-
-      var bars = groups.selectAll('g.nv-bar')
-          .data(function(d) { return d.values });
-
-      bars.exit().remove();
-
-
-      var barsEnter = bars.enter().append('g')
-          .attr('transform', function(d,i,j) {
-              return 'translate(' + (x(getX(d,i)) + x.rangeBand() * .05 ) + ', ' + y(0) + ')'
-          })
-          .on('mouseover', function(d,i) { //TODO: figure out why j works above, but not here
-            d3.select(this).classed('hover', true);
-            dispatch.elementMouseover({
-              value: getY(d,i),
-              point: d,
-              series: data[d.series],
-              pos: [x(getX(d,i)) + (x.rangeBand() * (d.series + .5) / data.length), y(getY(d,i))],  // TODO: Figure out why the value appears to be shifted
-              pointIndex: i,
-              seriesIndex: d.series,
-              e: d3.event
-            });
-          })
-          .on('mouseout', function(d,i) {
-            d3.select(this).classed('hover', false);
-            dispatch.elementMouseout({
-              value: getY(d,i),
-              point: d,
-              series: data[d.series],
-              pointIndex: i,
-              seriesIndex: d.series,
-              e: d3.event
-            });
-          })
-          .on('click', function(d,i) {
-            dispatch.elementClick({
-              value: getY(d,i),
-              point: d,
-              series: data[d.series],
-              pos: [x(getX(d,i)) + (x.rangeBand() * (d.series + .5) / data.length), y(getY(d,i))],  // TODO: Figure out why the value appears to be shifted
-              pointIndex: i,
-              seriesIndex: d.series,
-              e: d3.event
-            });
-            d3.event.stopPropagation();
-          })
-          .on('dblclick', function(d,i) {
-            dispatch.elementDblClick({
-              value: getY(d,i),
-              point: d,
-              series: data[d.series],
-              pos: [x(getX(d,i)) + (x.rangeBand() * (d.series + .5) / data.length), y(getY(d,i))],  // TODO: Figure out why the value appears to be shifted
-              pointIndex: i,
-              seriesIndex: d.series,
-              e: d3.event
-            });
-            d3.event.stopPropagation();
-          });
-
-      barsEnter.append('rect')
-          .attr('height', 0)
-          .attr('width', x.rangeBand() * .9 / data.length )
-
-      if (showValues) {
-        barsEnter.append('text')
-          .attr('text-anchor', 'middle')
-          ;
-
-        bars.select('text')
-          .text(function(d,i) { return valueFormat(getY(d,i)) })
-          .transition()
-          .attr('x', x.rangeBand() * .9 / 2)
-          .attr('y', function(d,i) { return getY(d,i) < 0 ? y(getY(d,i)) - y(0) + 12 : -4 })
-
-          ;
-      } else {
-        bars.selectAll('text').remove();
-      }
-
-      bars
-          .attr('class', function(d,i) { return getY(d,i) < 0 ? 'nv-bar negative' : 'nv-bar positive' })
-          .style('fill', function(d,i) { return d.color || color(d,i) })
-          .style('stroke', function(d,i) { return d.color || color(d,i) })
-        .select('rect')
-          .attr('class', rectClass)
-          .transition()
-          .attr('width', x.rangeBand() * .9 / data.length);
-      bars.transition()
-        //.delay(function(d,i) { return i * 1200 / data[0].values.length })
-          .attr('transform', function(d,i) {
-            var left = x(getX(d,i)) + x.rangeBand() * .05,
-                top = getY(d,i) < 0 ?
-                        y(0) :
-                        y(0) - y(getY(d,i)) < 1 ?
-                          y(0) - 1 : //make 1 px positive bars show up above y=0
-                          y(getY(d,i));
-
-              return 'translate(' + left + ', ' + top + ')'
-          })
-        .select('rect')
-          .attr('height', function(d,i) {
-            return  Math.max(Math.abs(y(getY(d,i)) - y((yDomain && yDomain[0]) || 0)) || 1)
-          });
-
-
-      //store old scales for use in transitions on update
-      x0 = x.copy();
-      y0 = y.copy();
-
-    });
-
-    return chart;
-  }
-
-
-  //============================================================
-  // Expose Public Variables
-  //------------------------------------------------------------
-
-  chart.dispatch = dispatch;
-
-  chart.options = nv.utils.optionsFunc.bind(chart);
-
-  chart.x = function(_) {
-    if (!arguments.length) return getX;
-    getX = _;
-    return chart;
-  };
-
-  chart.y = function(_) {
-    if (!arguments.length) return getY;
-    getY = _;
-    return chart;
-  };
-
-  chart.margin = function(_) {
-    if (!arguments.length) return margin;
-    margin.top    = typeof _.top    != 'undefined' ? _.top    : margin.top;
-    margin.right  = typeof _.right  != 'undefined' ? _.right  : margin.right;
-    margin.bottom = typeof _.bottom != 'undefined' ? _.bottom : margin.bottom;
-    margin.left   = typeof _.left   != 'undefined' ? _.left   : margin.left;
-    return chart;
-  };
-
-  chart.width = function(_) {
-    if (!arguments.length) return width;
-    width = _;
-    return chart;
-  };
-
-  chart.height = function(_) {
-    if (!arguments.length) return height;
-    height = _;
-    return chart;
-  };
-
-  chart.xScale = function(_) {
-    if (!arguments.length) return x;
-    x = _;
-    return chart;
-  };
-
-  chart.yScale = function(_) {
-    if (!arguments.length) return y;
-    y = _;
-    return chart;
-  };
-
-  chart.xDomain = function(_) {
-    if (!arguments.length) return xDomain;
-    xDomain = _;
-    return chart;
-  };
-
-  chart.yDomain = function(_) {
-    if (!arguments.length) return yDomain;
-    yDomain = _;
-    return chart;
-  };
-
-  chart.xRange = function(_) {
-    if (!arguments.length) return xRange;
-    xRange = _;
-    return chart;
-  };
-
-  chart.yRange = function(_) {
-    if (!arguments.length) return yRange;
-    yRange = _;
-    return chart;
-  };
-
-  chart.forceY = function(_) {
-    if (!arguments.length) return forceY;
-    forceY = _;
-    return chart;
-  };
-
-  chart.color = function(_) {
-    if (!arguments.length) return color;
-    color = nv.utils.getColor(_);
-    return chart;
-  };
-
-  chart.id = function(_) {
-    if (!arguments.length) return id;
-    id = _;
-    return chart;
-  };
-
-  chart.showValues = function(_) {
-    if (!arguments.length) return showValues;
-    showValues = _;
-    return chart;
-  };
-
-  chart.valueFormat= function(_) {
-    if (!arguments.length) return valueFormat;
-    valueFormat = _;
-    return chart;
-  };
-
-  chart.rectClass= function(_) {
-    if (!arguments.length) return rectClass;
-    rectClass = _;
-    return chart;
-  };
-  //============================================================
-
-
-  return chart;
-}
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/discreteBarChart.js b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/discreteBarChart.js
deleted file mode 100755
index d695576e..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/discreteBarChart.js
+++ /dev/null
@@ -1,344 +0,0 @@
-
-nv.models.discreteBarChart = function() {
-  "use strict";
-  //============================================================
-  // Public Variables with Default Settings
-  //------------------------------------------------------------
-
-  var discretebar = nv.models.discreteBar()
-    , xAxis = nv.models.axis()
-    , yAxis = nv.models.axis()
-    ;
-
-  var margin = {top: 15, right: 10, bottom: 50, left: 60}
-    , width = null
-    , height = null
-    , color = nv.utils.getColor()
-    , showXAxis = true
-    , showYAxis = true
-    , rightAlignYAxis = false
-    , staggerLabels = false
-    , tooltips = true
-    , tooltip = function(key, x, y, e, graph) {
-        return '<h3>' + x + '</h3>' +
-               '<p>' +  y + '</p>'
-      }
-    , x
-    , y
-    , noData = "No Data Available."
-    , dispatch = d3.dispatch('tooltipShow', 'tooltipHide', 'beforeUpdate')
-    , transitionDuration = 250
-    ;
-
-  xAxis
-    .orient('bottom')
-    .highlightZero(false)
-    .showMaxMin(false)
-    .tickFormat(function(d) { return d })
-    ;
-  yAxis
-    .orient((rightAlignYAxis) ? 'right' : 'left')
-    .tickFormat(d3.format(',.1f'))
-    ;
-
-  //============================================================
-
-
-  //============================================================
-  // Private Variables
-  //------------------------------------------------------------
-
-  var showTooltip = function(e, offsetElement) {
-    var left = e.pos[0] + ( offsetElement.offsetLeft || 0 ),
-        top = e.pos[1] + ( offsetElement.offsetTop || 0),
-        x = xAxis.tickFormat()(discretebar.x()(e.point, e.pointIndex)),
-        y = yAxis.tickFormat()(discretebar.y()(e.point, e.pointIndex)),
-        content = tooltip(e.series.key, x, y, e, chart);
-
-    nv.tooltip.show([left, top], content, e.value < 0 ? 'n' : 's', null, offsetElement);
-  };
-
-  //============================================================
-
-
-  function chart(selection) {
-    selection.each(function(data) {
-      var container = d3.select(this),
-          that = this;
-
-      var availableWidth = (width  || parseInt(container.style('width')) || 960)
-                             - margin.left - margin.right,
-          availableHeight = (height || parseInt(container.style('height')) || 400)
-                             - margin.top - margin.bottom;
-
-
-      chart.update = function() { 
-        dispatch.beforeUpdate(); 
-        container.transition().duration(transitionDuration).call(chart); 
-      };
-      chart.container = this;
-
-
-      //------------------------------------------------------------
-      // Display No Data message if there's nothing to show.
-
-      if (!data || !data.length || !data.filter(function(d) { return d.values.length }).length) {
-        var noDataText = container.selectAll('.nv-noData').data([noData]);
-
-        noDataText.enter().append('text')
-          .attr('class', 'nvd3 nv-noData')
-          .attr('dy', '-.7em')
-          .style('text-anchor', 'middle');
-
-        noDataText
-          .attr('x', margin.left + availableWidth / 2)
-          .attr('y', margin.top + availableHeight / 2)
-          .text(function(d) { return d });
-
-        return chart;
-      } else {
-        container.selectAll('.nv-noData').remove();
-      }
-
-      //------------------------------------------------------------
-
-
-      //------------------------------------------------------------
-      // Setup Scales
-
-      x = discretebar.xScale();
-      y = discretebar.yScale().clamp(true);
-
-      //------------------------------------------------------------
-
-
-      //------------------------------------------------------------
-      // Setup containers and skeleton of chart
-
-      var wrap = container.selectAll('g.nv-wrap.nv-discreteBarWithAxes').data([data]);
-      var gEnter = wrap.enter().append('g').attr('class', 'nvd3 nv-wrap nv-discreteBarWithAxes').append('g');
-      var defsEnter = gEnter.append('defs');
-      var g = wrap.select('g');
-
-      gEnter.append('g').attr('class', 'nv-x nv-axis');
-      gEnter.append('g').attr('class', 'nv-y nv-axis')
-            .append('g').attr('class', 'nv-zeroLine')
-            .append('line');
-        
-      gEnter.append('g').attr('class', 'nv-barsWrap');
-
-      g.attr('transform', 'translate(' + margin.left + ',' + margin.top + ')');
-
-      if (rightAlignYAxis) {
-          g.select(".nv-y.nv-axis")
-              .attr("transform", "translate(" + availableWidth + ",0)");
-      }
-
-      //------------------------------------------------------------
-
-
-      //------------------------------------------------------------
-      // Main Chart Component(s)
-
-      discretebar
-        .width(availableWidth)
-        .height(availableHeight);
-
-
-      var barsWrap = g.select('.nv-barsWrap')
-          .datum(data.filter(function(d) { return !d.disabled }))
-
-      barsWrap.transition().call(discretebar);
-
-      //------------------------------------------------------------
-
-
-
-      defsEnter.append('clipPath')
-          .attr('id', 'nv-x-label-clip-' + discretebar.id())
-        .append('rect');
-
-      g.select('#nv-x-label-clip-' + discretebar.id() + ' rect')
-          .attr('width', x.rangeBand() * (staggerLabels ? 2 : 1))
-          .attr('height', 16)
-          .attr('x', -x.rangeBand() / (staggerLabels ? 1 : 2 ));
-
-
-      //------------------------------------------------------------
-      // Setup Axes
-
-      if (showXAxis) {
-          xAxis
-            .scale(x)
-            .ticks( availableWidth / 100 )
-            .tickSize(-availableHeight, 0);
-
-          g.select('.nv-x.nv-axis')
-              .attr('transform', 'translate(0,' + (y.range()[0] + ((discretebar.showValues() && y.domain()[0] < 0) ? 16 : 0)) + ')');
-          //d3.transition(g.select('.nv-x.nv-axis'))
-          g.select('.nv-x.nv-axis').transition()
-              .call(xAxis);
-
-
-          var xTicks = g.select('.nv-x.nv-axis').selectAll('g');
-
-          if (staggerLabels) {
-            xTicks
-                .selectAll('text')
-                .attr('transform', function(d,i,j) { return 'translate(0,' + (j % 2 == 0 ? '5' : '17') + ')' })
-          }
-      }
-
-      if (showYAxis) {
-          yAxis
-            .scale(y)
-            .ticks( availableHeight / 36 )
-            .tickSize( -availableWidth, 0);
-
-          g.select('.nv-y.nv-axis').transition()
-              .call(yAxis);
-      }
-
-      // Zero line
-      g.select(".nv-zeroLine line")
-        .attr("x1",0)
-        .attr("x2",availableWidth)
-        .attr("y1", y(0))
-        .attr("y2", y(0))
-        ;
-
-      //------------------------------------------------------------
-
-
-      //============================================================
-      // Event Handling/Dispatching (in chart's scope)
-      //------------------------------------------------------------
-
-      dispatch.on('tooltipShow', function(e) {
-        if (tooltips) showTooltip(e, that.parentNode);
-      });
-
-      //============================================================
-
-
-    });
-
-    return chart;
-  }
-
-  //============================================================
-  // Event Handling/Dispatching (out of chart's scope)
-  //------------------------------------------------------------
-
-  discretebar.dispatch.on('elementMouseover.tooltip', function(e) {
-    e.pos = [e.pos[0] +  margin.left, e.pos[1] + margin.top];
-    dispatch.tooltipShow(e);
-  });
-
-  discretebar.dispatch.on('elementMouseout.tooltip', function(e) {
-    dispatch.tooltipHide(e);
-  });
-
-  dispatch.on('tooltipHide', function() {
-    if (tooltips) nv.tooltip.cleanup();
-  });
-
-  //============================================================
-
-
-  //============================================================
-  // Expose Public Variables
-  //------------------------------------------------------------
-
-  // expose chart's sub-components
-  chart.dispatch = dispatch;
-  chart.discretebar = discretebar;
-  chart.xAxis = xAxis;
-  chart.yAxis = yAxis;
-
-  d3.rebind(chart, discretebar, 'x', 'y', 'xDomain', 'yDomain', 'xRange', 'yRange', 'forceX', 'forceY', 'id', 'showValues', 'valueFormat');
-
-  chart.options = nv.utils.optionsFunc.bind(chart);
-  
-  chart.margin = function(_) {
-    if (!arguments.length) return margin;
-    margin.top    = typeof _.top    != 'undefined' ? _.top    : margin.top;
-    margin.right  = typeof _.right  != 'undefined' ? _.right  : margin.right;
-    margin.bottom = typeof _.bottom != 'undefined' ? _.bottom : margin.bottom;
-    margin.left   = typeof _.left   != 'undefined' ? _.left   : margin.left;
-    return chart;
-  };
-
-  chart.width = function(_) {
-    if (!arguments.length) return width;
-    width = _;
-    return chart;
-  };
-
-  chart.height = function(_) {
-    if (!arguments.length) return height;
-    height = _;
-    return chart;
-  };
-
-  chart.color = function(_) {
-    if (!arguments.length) return color;
-    color = nv.utils.getColor(_);
-    discretebar.color(color);
-    return chart;
-  };
-
-  chart.showXAxis = function(_) {
-    if (!arguments.length) return showXAxis;
-    showXAxis = _;
-    return chart;
-  };
-
-  chart.showYAxis = function(_) {
-    if (!arguments.length) return showYAxis;
-    showYAxis = _;
-    return chart;
-  };
-
-  chart.rightAlignYAxis = function(_) {
-    if(!arguments.length) return rightAlignYAxis;
-    rightAlignYAxis = _;
-    yAxis.orient( (_) ? 'right' : 'left');
-    return chart;
-  };
-
-  chart.staggerLabels = function(_) {
-    if (!arguments.length) return staggerLabels;
-    staggerLabels = _;
-    return chart;
-  };
-
-  chart.tooltips = function(_) {
-    if (!arguments.length) return tooltips;
-    tooltips = _;
-    return chart;
-  };
-
-  chart.tooltipContent = function(_) {
-    if (!arguments.length) return tooltip;
-    tooltip = _;
-    return chart;
-  };
-
-  chart.noData = function(_) {
-    if (!arguments.length) return noData;
-    noData = _;
-    return chart;
-  };
-
-  chart.transitionDuration = function(_) {
-    if (!arguments.length) return transitionDuration;
-    transitionDuration = _;
-    return chart;
-  };
-
-  //============================================================
-
-
-  return chart;
-}
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/distribution.js b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/distribution.js
deleted file mode 100755
index 62a74655..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/distribution.js
+++ /dev/null
@@ -1,148 +0,0 @@
-
-nv.models.distribution = function() {
-  "use strict";
-  //============================================================
-  // Public Variables with Default Settings
-  //------------------------------------------------------------
-
-  var margin = {top: 0, right: 0, bottom: 0, left: 0}
-    , width = 400 //technically width or height depending on x or y....
-    , size = 8
-    , axis = 'x' // 'x' or 'y'... horizontal or vertical
-    , getData = function(d) { return d[axis] }  // defaults d.x or d.y
-    , color = nv.utils.defaultColor()
-    , scale = d3.scale.linear()
-    , domain
-    ;
-
-  //============================================================
-
-
-  //============================================================
-  // Private Variables
-  //------------------------------------------------------------
-
-  var scale0;
-
-  //============================================================
-
-
-  function chart(selection) {
-    selection.each(function(data) {
-      var availableLength = width - (axis === 'x' ? margin.left + margin.right : margin.top + margin.bottom),
-          naxis = axis == 'x' ? 'y' : 'x',
-          container = d3.select(this);
-
-
-      //------------------------------------------------------------
-      // Setup Scales
-
-      scale0 = scale0 || scale;
-
-      //------------------------------------------------------------
-
-
-      //------------------------------------------------------------
-      // Setup containers and skeleton of chart
-
-      var wrap = container.selectAll('g.nv-distribution').data([data]);
-      var wrapEnter = wrap.enter().append('g').attr('class', 'nvd3 nv-distribution');
-      var gEnter = wrapEnter.append('g');
-      var g = wrap.select('g');
-
-      wrap.attr('transform', 'translate(' + margin.left + ',' + margin.top + ')')
-
-      //------------------------------------------------------------
-
-
-      var distWrap = g.selectAll('g.nv-dist')
-          .data(function(d) { return d }, function(d) { return d.key });
-
-      distWrap.enter().append('g');
-      distWrap
-          .attr('class', function(d,i) { return 'nv-dist nv-series-' + i })
-          .style('stroke', function(d,i) { return color(d, i) });
-
-      var dist = distWrap.selectAll('line.nv-dist' + axis)
-          .data(function(d) { return d.values })
-      dist.enter().append('line')
-          .attr(axis + '1', function(d,i) { return scale0(getData(d,i)) })
-          .attr(axis + '2', function(d,i) { return scale0(getData(d,i)) })
-      distWrap.exit().selectAll('line.nv-dist' + axis)
-          .transition()
-          .attr(axis + '1', function(d,i) { return scale(getData(d,i)) })
-          .attr(axis + '2', function(d,i) { return scale(getData(d,i)) })
-          .style('stroke-opacity', 0)
-          .remove();
-      dist
-          .attr('class', function(d,i) { return 'nv-dist' + axis + ' nv-dist' + axis + '-' + i })
-          .attr(naxis + '1', 0)
-          .attr(naxis + '2', size);
-      dist
-          .transition()
-          .attr(axis + '1', function(d,i) { return scale(getData(d,i)) })
-          .attr(axis + '2', function(d,i) { return scale(getData(d,i)) })
-
-
-      scale0 = scale.copy();
-
-    });
-
-    return chart;
-  }
-
-
-  //============================================================
-  // Expose Public Variables
-  //------------------------------------------------------------
-  chart.options = nv.utils.optionsFunc.bind(chart);
-  
-  chart.margin = function(_) {
-    if (!arguments.length) return margin;
-    margin.top    = typeof _.top    != 'undefined' ? _.top    : margin.top;
-    margin.right  = typeof _.right  != 'undefined' ? _.right  : margin.right;
-    margin.bottom = typeof _.bottom != 'undefined' ? _.bottom : margin.bottom;
-    margin.left   = typeof _.left   != 'undefined' ? _.left   : margin.left;
-    return chart;
-  };
-
-  chart.width = function(_) {
-    if (!arguments.length) return width;
-    width = _;
-    return chart;
-  };
-
-  chart.axis = function(_) {
-    if (!arguments.length) return axis;
-    axis = _;
-    return chart;
-  };
-
-  chart.size = function(_) {
-    if (!arguments.length) return size;
-    size = _;
-    return chart;
-  };
-
-  chart.getData = function(_) {
-    if (!arguments.length) return getData;
-    getData = d3.functor(_);
-    return chart;
-  };
-
-  chart.scale = function(_) {
-    if (!arguments.length) return scale;
-    scale = _;
-    return chart;
-  };
-
-  chart.color = function(_) {
-    if (!arguments.length) return color;
-    color = nv.utils.getColor(_);
-    return chart;
-  };
-  //============================================================
-
-
-  return chart;
-}
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/historicalBar.js b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/historicalBar.js
deleted file mode 100755
index 2a6c644d..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/historicalBar.js
+++ /dev/null
@@ -1,331 +0,0 @@
-//TODO: consider deprecating and using multibar with single series for this
-nv.models.historicalBar = function() {
-  "use strict";
-  //============================================================
-  // Public Variables with Default Settings
-  //------------------------------------------------------------
-
-  var margin = {top: 0, right: 0, bottom: 0, left: 0}
-    , width = 960
-    , height = 500
-    , id = Math.floor(Math.random() * 10000) //Create semi-unique ID in case user doesn't select one
-    , x = d3.scale.linear()
-    , y = d3.scale.linear()
-    , getX = function(d) { return d.x }
-    , getY = function(d) { return d.y }
-    , forceX = []
-    , forceY = [0]
-    , padData = false
-    , clipEdge = true
-    , color = nv.utils.defaultColor()
-    , xDomain
-    , yDomain
-    , xRange
-    , yRange
-    , dispatch = d3.dispatch('chartClick', 'elementClick', 'elementDblClick', 'elementMouseover', 'elementMouseout')
-    , interactive = true
-    ;
-
-  //============================================================
-
-
-  function chart(selection) {
-    selection.each(function(data) {
-      var availableWidth = width - margin.left - margin.right,
-          availableHeight = height - margin.top - margin.bottom,
-          container = d3.select(this);
-
-
-      //------------------------------------------------------------
-      // Setup Scales
-
-      x   .domain(xDomain || d3.extent(data[0].values.map(getX).concat(forceX) ))
-
-      if (padData)
-        x.range(xRange || [availableWidth * .5 / data[0].values.length, availableWidth * (data[0].values.length - .5)  / data[0].values.length ]);
-      else
-        x.range(xRange || [0, availableWidth]);
-
-      y   .domain(yDomain || d3.extent(data[0].values.map(getY).concat(forceY) ))
-          .range(yRange || [availableHeight, 0]);
-
-      // If scale's domain don't have a range, slightly adjust to make one... so a chart can show a single data point
-
-      if (x.domain()[0] === x.domain()[1])
-        x.domain()[0] ?
-            x.domain([x.domain()[0] - x.domain()[0] * 0.01, x.domain()[1] + x.domain()[1] * 0.01])
-          : x.domain([-1,1]);
-
-      if (y.domain()[0] === y.domain()[1])
-        y.domain()[0] ?
-            y.domain([y.domain()[0] + y.domain()[0] * 0.01, y.domain()[1] - y.domain()[1] * 0.01])
-          : y.domain([-1,1]);
-
-      //------------------------------------------------------------
-
-
-      //------------------------------------------------------------
-      // Setup containers and skeleton of chart
-
-      var wrap = container.selectAll('g.nv-wrap.nv-historicalBar-' + id).data([data[0].values]);
-      var wrapEnter = wrap.enter().append('g').attr('class', 'nvd3 nv-wrap nv-historicalBar-' + id);
-      var defsEnter = wrapEnter.append('defs');
-      var gEnter = wrapEnter.append('g');
-      var g = wrap.select('g');
-
-      gEnter.append('g').attr('class', 'nv-bars');
-
-      wrap.attr('transform', 'translate(' + margin.left + ',' + margin.top + ')');
-
-      //------------------------------------------------------------
-
-
-      container
-          .on('click', function(d,i) {
-            dispatch.chartClick({
-                data: d,
-                index: i,
-                pos: d3.event,
-                id: id
-            });
-          });
-
-
-      defsEnter.append('clipPath')
-          .attr('id', 'nv-chart-clip-path-' + id)
-        .append('rect');
-
-      wrap.select('#nv-chart-clip-path-' + id + ' rect')
-          .attr('width', availableWidth)
-          .attr('height', availableHeight);
-
-      g   .attr('clip-path', clipEdge ? 'url(#nv-chart-clip-path-' + id + ')' : '');
-
-
-
-      var bars = wrap.select('.nv-bars').selectAll('.nv-bar')
-          .data(function(d) { return d }, function(d,i) {return getX(d,i)});
-
-      bars.exit().remove();
-
-
-      var barsEnter = bars.enter().append('rect')
-          //.attr('class', function(d,i,j) { return (getY(d,i) < 0 ? 'nv-bar negative' : 'nv-bar positive') + ' nv-bar-' + j + '-' + i })
-          .attr('x', 0 )
-          .attr('y', function(d,i) {  return nv.utils.NaNtoZero(y(Math.max(0, getY(d,i)))) })
-          .attr('height', function(d,i) { return nv.utils.NaNtoZero(Math.abs(y(getY(d,i)) - y(0))) })
-          .attr('transform', function(d,i) { return 'translate(' + (x(getX(d,i)) - availableWidth / data[0].values.length * .45) + ',0)'; }) 
-          .on('mouseover', function(d,i) {
-            if (!interactive) return;
-            d3.select(this).classed('hover', true);
-            dispatch.elementMouseover({
-                point: d,
-                series: data[0],
-                pos: [x(getX(d,i)), y(getY(d,i))],  // TODO: Figure out why the value appears to be shifted
-                pointIndex: i,
-                seriesIndex: 0,
-                e: d3.event
-            });
-
-          })
-          .on('mouseout', function(d,i) {
-                if (!interactive) return;
-                d3.select(this).classed('hover', false);
-                dispatch.elementMouseout({
-                    point: d,
-                    series: data[0],
-                    pointIndex: i,
-                    seriesIndex: 0,
-                    e: d3.event
-                });
-          })
-          .on('click', function(d,i) {
-                if (!interactive) return;
-                dispatch.elementClick({
-                    //label: d[label],
-                    value: getY(d,i),
-                    data: d,
-                    index: i,
-                    pos: [x(getX(d,i)), y(getY(d,i))],
-                    e: d3.event,
-                    id: id
-                });
-              d3.event.stopPropagation();
-          })
-          .on('dblclick', function(d,i) {
-              if (!interactive) return;
-              dispatch.elementDblClick({
-                  //label: d[label],
-                  value: getY(d,i),
-                  data: d,
-                  index: i,
-                  pos: [x(getX(d,i)), y(getY(d,i))],
-                  e: d3.event,
-                  id: id
-              });
-              d3.event.stopPropagation();
-          });
-
-      bars
-          .attr('fill', function(d,i) { return color(d, i); })
-          .attr('class', function(d,i,j) { return (getY(d,i) < 0 ? 'nv-bar negative' : 'nv-bar positive') + ' nv-bar-' + j + '-' + i })
-          .transition()
-          .attr('transform', function(d,i) { return 'translate(' + (x(getX(d,i)) - availableWidth / data[0].values.length * .45) + ',0)'; }) 
-           //TODO: better width calculations that don't assume always uniform data spacing;w
-          .attr('width', (availableWidth / data[0].values.length) * .9 );
-
-
-      bars.transition()
-          .attr('y', function(d,i) {
-            var rval = getY(d,i) < 0 ?
-                    y(0) :
-                    y(0) - y(getY(d,i)) < 1 ?
-                      y(0) - 1 :
-                      y(getY(d,i));
-            return nv.utils.NaNtoZero(rval);
-          })
-          .attr('height', function(d,i) { return nv.utils.NaNtoZero(Math.max(Math.abs(y(getY(d,i)) - y(0)),1)) });
-
-    });
-
-    return chart;
-  }
-
-  //Create methods to allow outside functions to highlight a specific bar.
-  chart.highlightPoint = function(pointIndex, isHoverOver) {
-      d3.select(".nv-historicalBar-" + id)
-        .select(".nv-bars .nv-bar-0-" + pointIndex)
-              .classed("hover", isHoverOver)
-               ;
-  };
-
-  chart.clearHighlights = function() {
-      d3.select(".nv-historicalBar-" + id)
-        .select(".nv-bars .nv-bar.hover")
-              .classed("hover", false)
-               ;
-  };
-  //============================================================
-  // Expose Public Variables
-  //------------------------------------------------------------
-
-  chart.dispatch = dispatch;
-
-  chart.options = nv.utils.optionsFunc.bind(chart);
-  
-  chart.x = function(_) {
-    if (!arguments.length) return getX;
-    getX = _;
-    return chart;
-  };
-
-  chart.y = function(_) {
-    if (!arguments.length) return getY;
-    getY = _;
-    return chart;
-  };
-
-  chart.margin = function(_) {
-    if (!arguments.length) return margin;
-    margin.top    = typeof _.top    != 'undefined' ? _.top    : margin.top;
-    margin.right  = typeof _.right  != 'undefined' ? _.right  : margin.right;
-    margin.bottom = typeof _.bottom != 'undefined' ? _.bottom : margin.bottom;
-    margin.left   = typeof _.left   != 'undefined' ? _.left   : margin.left;
-    return chart;
-  };
-
-  chart.width = function(_) {
-    if (!arguments.length) return width;
-    width = _;
-    return chart;
-  };
-
-  chart.height = function(_) {
-    if (!arguments.length) return height;
-    height = _;
-    return chart;
-  };
-
-  chart.xScale = function(_) {
-    if (!arguments.length) return x;
-    x = _;
-    return chart;
-  };
-
-  chart.yScale = function(_) {
-    if (!arguments.length) return y;
-    y = _;
-    return chart;
-  };
-
-  chart.xDomain = function(_) {
-    if (!arguments.length) return xDomain;
-    xDomain = _;
-    return chart;
-  };
-
-  chart.yDomain = function(_) {
-    if (!arguments.length) return yDomain;
-    yDomain = _;
-    return chart;
-  };
-
-  chart.xRange = function(_) {
-    if (!arguments.length) return xRange;
-    xRange = _;
-    return chart;
-  };
-
-  chart.yRange = function(_) {
-    if (!arguments.length) return yRange;
-    yRange = _;
-    return chart;
-  };
-
-  chart.forceX = function(_) {
-    if (!arguments.length) return forceX;
-    forceX = _;
-    return chart;
-  };
-
-  chart.forceY = function(_) {
-    if (!arguments.length) return forceY;
-    forceY = _;
-    return chart;
-  };
-
-  chart.padData = function(_) {
-    if (!arguments.length) return padData;
-    padData = _;
-    return chart;
-  };
-
-  chart.clipEdge = function(_) {
-    if (!arguments.length) return clipEdge;
-    clipEdge = _;
-    return chart;
-  };
-
-  chart.color = function(_) {
-    if (!arguments.length) return color;
-    color = nv.utils.getColor(_);
-    return chart;
-  };
-
-  chart.id = function(_) {
-    if (!arguments.length) return id;
-    id = _;
-    return chart;
-  };
-
-  chart.interactive = function(_) {
-    if(!arguments.length) return interactive;
-    interactive = false;
-    return chart;
-  };
-
-  //============================================================
-
-
-  return chart;
-}
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/historicalBarChart.js b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/historicalBarChart.js
deleted file mode 100755
index 07aab36f..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/historicalBarChart.js
+++ /dev/null
@@ -1,419 +0,0 @@
-
-nv.models.historicalBarChart = function() {
-  "use strict";
-  //============================================================
-  // Public Variables with Default Settings
-  //------------------------------------------------------------
-
-  var bars = nv.models.historicalBar()
-    , xAxis = nv.models.axis()
-    , yAxis = nv.models.axis()
-    , legend = nv.models.legend()
-    ;
-
-
-  var margin = {top: 30, right: 90, bottom: 50, left: 90}
-    , color = nv.utils.defaultColor()
-    , width = null
-    , height = null
-    , showLegend = false
-    , showXAxis = true
-    , showYAxis = true
-    , rightAlignYAxis = false
-    , tooltips = true
-    , tooltip = function(key, x, y, e, graph) {
-        return '<h3>' + key + '</h3>' +
-               '<p>' +  y + ' at ' + x + '</p>'
-      }
-    , x
-    , y
-    , state = {}
-    , defaultState = null
-    , noData = 'No Data Available.'
-    , dispatch = d3.dispatch('tooltipShow', 'tooltipHide', 'stateChange', 'changeState')
-    , transitionDuration = 250
-    ;
-
-  xAxis
-    .orient('bottom')
-    .tickPadding(7)
-    ;
-  yAxis
-    .orient( (rightAlignYAxis) ? 'right' : 'left')
-    ;
-
-  //============================================================
-
-
-  //============================================================
-  // Private Variables
-  //------------------------------------------------------------
-
-  var showTooltip = function(e, offsetElement) {
-
-    // New addition to calculate position if SVG is scaled with viewBox, may move TODO: consider implementing everywhere else
-    if (offsetElement) {
-      var svg = d3.select(offsetElement).select('svg');
-      var viewBox = (svg.node()) ? svg.attr('viewBox') : null;
-      if (viewBox) {
-        viewBox = viewBox.split(' ');
-        var ratio = parseInt(svg.style('width')) / viewBox[2];
-        e.pos[0] = e.pos[0] * ratio;
-        e.pos[1] = e.pos[1] * ratio;
-      }
-    }
-
-    var left = e.pos[0] + ( offsetElement.offsetLeft || 0 ),
-        top = e.pos[1] + ( offsetElement.offsetTop || 0),
-        x = xAxis.tickFormat()(bars.x()(e.point, e.pointIndex)),
-        y = yAxis.tickFormat()(bars.y()(e.point, e.pointIndex)),
-        content = tooltip(e.series.key, x, y, e, chart);
-
-    nv.tooltip.show([left, top], content, null, null, offsetElement);
-  };
-
-  //============================================================
-
-
-  function chart(selection) {
-    selection.each(function(data) {
-      var container = d3.select(this),
-          that = this;
-
-      var availableWidth = (width  || parseInt(container.style('width')) || 960)
-                             - margin.left - margin.right,
-          availableHeight = (height || parseInt(container.style('height')) || 400)
-                             - margin.top - margin.bottom;
-
-
-      chart.update = function() { container.transition().duration(transitionDuration).call(chart) };
-      chart.container = this;
-
-      //set state.disabled
-      state.disabled = data.map(function(d) { return !!d.disabled });
-
-      if (!defaultState) {
-        var key;
-        defaultState = {};
-        for (key in state) {
-          if (state[key] instanceof Array)
-            defaultState[key] = state[key].slice(0);
-          else
-            defaultState[key] = state[key];
-        }
-      }
-
-      //------------------------------------------------------------
-      // Display noData message if there's nothing to show.
-
-      if (!data || !data.length || !data.filter(function(d) { return d.values.length }).length) {
-        var noDataText = container.selectAll('.nv-noData').data([noData]);
-
-        noDataText.enter().append('text')
-          .attr('class', 'nvd3 nv-noData')
-          .attr('dy', '-.7em')
-          .style('text-anchor', 'middle');
-
-        noDataText
-          .attr('x', margin.left + availableWidth / 2)
-          .attr('y', margin.top + availableHeight / 2)
-          .text(function(d) { return d });
-
-        return chart;
-      } else {
-        container.selectAll('.nv-noData').remove();
-      }
-
-      //------------------------------------------------------------
-
-
-      //------------------------------------------------------------
-      // Setup Scales
-
-      x = bars.xScale();
-      y = bars.yScale();
-
-      //------------------------------------------------------------
-
-
-      //------------------------------------------------------------
-      // Setup containers and skeleton of chart
-
-      var wrap = container.selectAll('g.nv-wrap.nv-historicalBarChart').data([data]);
-      var gEnter = wrap.enter().append('g').attr('class', 'nvd3 nv-wrap nv-historicalBarChart').append('g');
-      var g = wrap.select('g');
-
-      gEnter.append('g').attr('class', 'nv-x nv-axis');
-      gEnter.append('g').attr('class', 'nv-y nv-axis');
-      gEnter.append('g').attr('class', 'nv-barsWrap');
-      gEnter.append('g').attr('class', 'nv-legendWrap');
-
-      //------------------------------------------------------------
-
-
-      //------------------------------------------------------------
-      // Legend
-
-      if (showLegend) {
-        legend.width(availableWidth);
-
-        g.select('.nv-legendWrap')
-            .datum(data)
-            .call(legend);
-
-        if ( margin.top != legend.height()) {
-          margin.top = legend.height();
-          availableHeight = (height || parseInt(container.style('height')) || 400)
-                             - margin.top - margin.bottom;
-        }
-
-        wrap.select('.nv-legendWrap')
-            .attr('transform', 'translate(0,' + (-margin.top) +')')
-      }
-
-      //------------------------------------------------------------
-
-      wrap.attr('transform', 'translate(' + margin.left + ',' + margin.top + ')');
-
-      if (rightAlignYAxis) {
-        g.select(".nv-y.nv-axis")
-            .attr("transform", "translate(" + availableWidth + ",0)");
-      }
-
-
-      //------------------------------------------------------------
-      // Main Chart Component(s)
-
-      bars
-        .width(availableWidth)
-        .height(availableHeight)
-        .color(data.map(function(d,i) {
-          return d.color || color(d, i);
-        }).filter(function(d,i) { return !data[i].disabled }));
-
-
-      var barsWrap = g.select('.nv-barsWrap')
-          .datum(data.filter(function(d) { return !d.disabled }))
-
-      barsWrap.transition().call(bars);
-
-      //------------------------------------------------------------
-
-
-      //------------------------------------------------------------
-      // Setup Axes
-
-      if (showXAxis) {
-        xAxis
-          .scale(x)
-          .tickSize(-availableHeight, 0);
-
-        g.select('.nv-x.nv-axis')
-            .attr('transform', 'translate(0,' + y.range()[0] + ')');
-        g.select('.nv-x.nv-axis')
-            .transition()
-            .call(xAxis);
-      }
-
-      if (showYAxis) {
-        yAxis
-          .scale(y)
-          .ticks( availableHeight / 36 )
-          .tickSize( -availableWidth, 0);
-
-        g.select('.nv-y.nv-axis')
-          .transition()
-            .call(yAxis);
-      }
-      //------------------------------------------------------------
-
-
-      //============================================================
-      // Event Handling/Dispatching (in chart's scope)
-      //------------------------------------------------------------
-
-      legend.dispatch.on('legendClick', function(d,i) {
-        d.disabled = !d.disabled;
-
-        if (!data.filter(function(d) { return !d.disabled }).length) {
-          data.map(function(d) {
-            d.disabled = false;
-            wrap.selectAll('.nv-series').classed('disabled', false);
-            return d;
-          });
-        }
-
-        state.disabled = data.map(function(d) { return !!d.disabled });
-        dispatch.stateChange(state);
-
-        selection.transition().call(chart);
-      });
-
-      legend.dispatch.on('legendDblclick', function(d) {
-          //Double clicking should always enable current series, and disabled all others.
-          data.forEach(function(d) {
-             d.disabled = true;
-          });
-          d.disabled = false;
-
-          state.disabled = data.map(function(d) { return !!d.disabled });
-          dispatch.stateChange(state);
-          chart.update();
-      });
-
-      dispatch.on('tooltipShow', function(e) {
-        if (tooltips) showTooltip(e, that.parentNode);
-      });
-
-
-      dispatch.on('changeState', function(e) {
-
-        if (typeof e.disabled !== 'undefined') {
-          data.forEach(function(series,i) {
-            series.disabled = e.disabled[i];
-          });
-
-          state.disabled = e.disabled;
-        }
-
-        chart.update();
-      });
-
-      //============================================================
-
-    });
-
-    return chart;
-  }
-
-
-  //============================================================
-  // Event Handling/Dispatching (out of chart's scope)
-  //------------------------------------------------------------
-
-  bars.dispatch.on('elementMouseover.tooltip', function(e) {
-    e.pos = [e.pos[0] +  margin.left, e.pos[1] + margin.top];
-    dispatch.tooltipShow(e);
-  });
-
-  bars.dispatch.on('elementMouseout.tooltip', function(e) {
-    dispatch.tooltipHide(e);
-  });
-
-  dispatch.on('tooltipHide', function() {
-    if (tooltips) nv.tooltip.cleanup();
-  });
-
-  //============================================================
-
-
-  //============================================================
-  // Expose Public Variables
-  //------------------------------------------------------------
-
-  // expose chart's sub-components
-  chart.dispatch = dispatch;
-  chart.bars = bars;
-  chart.legend = legend;
-  chart.xAxis = xAxis;
-  chart.yAxis = yAxis;
-
-  d3.rebind(chart, bars, 'defined', 'isArea', 'x', 'y', 'size', 'xScale', 'yScale',
-    'xDomain', 'yDomain', 'xRange', 'yRange', 'forceX', 'forceY', 'interactive', 'clipEdge', 'clipVoronoi', 'id', 'interpolate','highlightPoint','clearHighlights', 'interactive');
-
-  chart.options = nv.utils.optionsFunc.bind(chart);
-
-  chart.margin = function(_) {
-    if (!arguments.length) return margin;
-    margin.top    = typeof _.top    != 'undefined' ? _.top    : margin.top;
-    margin.right  = typeof _.right  != 'undefined' ? _.right  : margin.right;
-    margin.bottom = typeof _.bottom != 'undefined' ? _.bottom : margin.bottom;
-    margin.left   = typeof _.left   != 'undefined' ? _.left   : margin.left;
-    return chart;
-  };
-
-  chart.width = function(_) {
-    if (!arguments.length) return width;
-    width = _;
-    return chart;
-  };
-
-  chart.height = function(_) {
-    if (!arguments.length) return height;
-    height = _;
-    return chart;
-  };
-
-  chart.color = function(_) {
-    if (!arguments.length) return color;
-    color = nv.utils.getColor(_);
-    legend.color(color);
-    return chart;
-  };
-
-  chart.showLegend = function(_) {
-    if (!arguments.length) return showLegend;
-    showLegend = _;
-    return chart;
-  };
-
-  chart.showXAxis = function(_) {
-    if (!arguments.length) return showXAxis;
-    showXAxis = _;
-    return chart;
-  };
-
-  chart.showYAxis = function(_) {
-    if (!arguments.length) return showYAxis;
-    showYAxis = _;
-    return chart;
-  };
-
-  chart.rightAlignYAxis = function(_) {
-    if(!arguments.length) return rightAlignYAxis;
-    rightAlignYAxis = _;
-    yAxis.orient( (_) ? 'right' : 'left');
-    return chart;
-  };
-
-  chart.tooltips = function(_) {
-    if (!arguments.length) return tooltips;
-    tooltips = _;
-    return chart;
-  };
-
-  chart.tooltipContent = function(_) {
-    if (!arguments.length) return tooltip;
-    tooltip = _;
-    return chart;
-  };
-
-  chart.state = function(_) {
-    if (!arguments.length) return state;
-    state = _;
-    return chart;
-  };
-
-  chart.defaultState = function(_) {
-    if (!arguments.length) return defaultState;
-    defaultState = _;
-    return chart;
-  };
-
-  chart.noData = function(_) {
-    if (!arguments.length) return noData;
-    noData = _;
-    return chart;
-  };
-
-  chart.transitionDuration = function(_) {
-    if (!arguments.length) return transitionDuration;
-    transitionDuration = _;
-    return chart;
-  };
-
-  //============================================================
-
-
-  return chart;
-}
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/indentedTree.js b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/indentedTree.js
deleted file mode 100755
index 18c2700f..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/indentedTree.js
+++ /dev/null
@@ -1,337 +0,0 @@
-nv.models.indentedTree = function() {
-  "use strict";
-  //============================================================
-  // Public Variables with Default Settings
-  //------------------------------------------------------------
-
-  var margin = {top: 0, right: 0, bottom: 0, left: 0} //TODO: implement, maybe as margin on the containing div
-    , width = 960
-    , height = 500
-    , color = nv.utils.defaultColor()
-    , id = Math.floor(Math.random() * 10000)
-    , header = true
-    , filterZero = false
-    , noData = "No Data Available."
-    , childIndent = 20
-    , columns = [{key:'key', label: 'Name', type:'text'}] //TODO: consider functions like chart.addColumn, chart.removeColumn, instead of a block like this
-    , tableClass = null
-    , iconOpen = 'images/grey-plus.png' //TODO: consider removing this and replacing with a '+' or '-' unless user defines images
-    , iconClose = 'images/grey-minus.png'
-    , dispatch = d3.dispatch('elementClick', 'elementDblclick', 'elementMouseover', 'elementMouseout')
-    , getUrl = function(d) { return d.url }
-    ;
-
-  //============================================================
-
-  var idx = 0;
-
-  function chart(selection) {
-    selection.each(function(data) {
-      var depth = 1,
-          container = d3.select(this);
-
-      var tree = d3.layout.tree()
-          .children(function(d) { return d.values })
-          .size([height, childIndent]); //Not sure if this is needed now that the result is HTML
-
-      chart.update = function() { container.transition().duration(600).call(chart) };
-
-
-      //------------------------------------------------------------
-      // Display No Data message if there's nothing to show.
-      if (!data[0]) data[0] = {key: noData};
-
-      //------------------------------------------------------------
-
-
-      var nodes = tree.nodes(data[0]);
-
-      // nodes.map(function(d) {
-      //   d.id = i++;
-      // })
-
-      //------------------------------------------------------------
-      // Setup containers and skeleton of chart
-
-      var wrap = d3.select(this).selectAll('div').data([[nodes]]);
-      var wrapEnter = wrap.enter().append('div').attr('class', 'nvd3 nv-wrap nv-indentedtree');
-      var tableEnter = wrapEnter.append('table');
-      var table = wrap.select('table').attr('width', '100%').attr('class', tableClass);
-
-      //------------------------------------------------------------
-
-
-      if (header) {
-        var thead = tableEnter.append('thead');
-
-        var theadRow1 = thead.append('tr');
-
-        columns.forEach(function(column) {
-          theadRow1
-            .append('th')
-              .attr('width', column.width ? column.width : '10%')
-              .style('text-align', column.type == 'numeric' ? 'right' : 'left')
-            .append('span')
-              .text(column.label);
-        });
-      }
-
-
-      var tbody = table.selectAll('tbody')
-                    .data(function(d) { return d });
-      tbody.enter().append('tbody');
-
-
-
-      //compute max generations
-      depth = d3.max(nodes, function(node) { return node.depth });
-      tree.size([height, depth * childIndent]); //TODO: see if this is necessary at all
-
-
-      // Update the nodes…
-      var node = tbody.selectAll('tr')
-          // .data(function(d) { return d; }, function(d) { return d.id || (d.id == ++i)});
-          .data(function(d) { return d.filter(function(d) { return (filterZero && !d.children) ? filterZero(d) :  true; } )}, function(d,i) { return d.id || (d.id || ++idx)});
-          //.style('display', 'table-row'); //TODO: see if this does anything
-
-      node.exit().remove();
-
-      node.select('img.nv-treeicon')
-          .attr('src', icon)
-          .classed('folded', folded);
-
-      var nodeEnter = node.enter().append('tr');
-
-
-      columns.forEach(function(column, index) {
-
-        var nodeName = nodeEnter.append('td')
-            .style('padding-left', function(d) { return (index ? 0 : d.depth * childIndent + 12 + (icon(d) ? 0 : 16)) + 'px' }, 'important') //TODO: check why I did the ternary here
-            .style('text-align', column.type == 'numeric' ? 'right' : 'left');
-
-
-        if (index == 0) {
-          nodeName.append('img')
-              .classed('nv-treeicon', true)
-              .classed('nv-folded', folded)
-              .attr('src', icon)
-              .style('width', '14px')
-              .style('height', '14px')
-              .style('padding', '0 1px')
-              .style('display', function(d) { return icon(d) ? 'inline-block' : 'none'; })
-              .on('click', click);
-        }
-
-
-        nodeName.each(function(d) {
-          if (!index && getUrl(d))
-            d3.select(this)
-              .append('a')
-              .attr('href',getUrl)
-              .attr('class', d3.functor(column.classes))
-              .append('span')
-          else
-            d3.select(this)
-              .append('span')
-
-            d3.select(this).select('span')
-              .attr('class', d3.functor(column.classes) )
-              .text(function(d) { return column.format ? column.format(d) :
-                                        (d[column.key] || '-') });
-          });
-
-        if  (column.showCount) {
-          nodeName.append('span')
-              .attr('class', 'nv-childrenCount');
-
-          node.selectAll('span.nv-childrenCount').text(function(d) {
-                return ((d.values && d.values.length) || (d._values && d._values.length)) ?                                   //If this is a parent
-                    '(' + ((d.values && (d.values.filter(function(d) { return filterZero ? filterZero(d) :  true; }).length)) //If children are in values check its children and filter
-                    || (d._values && d._values.filter(function(d) { return filterZero ? filterZero(d) :  true; }).length)     //Otherwise, do the same, but with the other name, _values...
-                    || 0) + ')'                                                                                               //This is the catch-all in case there are no children after a filter
-                    : ''                                                                                                     //If this is not a parent, just give an empty string
-            });
-        }
-
-        // if (column.click)
-        //   nodeName.select('span').on('click', column.click);
-
-      });
-
-      node
-        .order()
-        .on('click', function(d) { 
-          dispatch.elementClick({
-            row: this, //TODO: decide whether or not this should be consistent with scatter/line events or should be an html link (a href)
-            data: d,
-            pos: [d.x, d.y]
-          });
-        })
-        .on('dblclick', function(d) { 
-          dispatch.elementDblclick({
-            row: this,
-            data: d,
-            pos: [d.x, d.y]
-          });
-        })
-        .on('mouseover', function(d) { 
-          dispatch.elementMouseover({
-            row: this,
-            data: d,
-            pos: [d.x, d.y]
-          });
-        })
-        .on('mouseout', function(d) { 
-          dispatch.elementMouseout({
-            row: this,
-            data: d,
-            pos: [d.x, d.y]
-          });
-        });
-
-
-
-
-      // Toggle children on click.
-      function click(d, _, unshift) {
-        d3.event.stopPropagation();
-
-        if(d3.event.shiftKey && !unshift) {
-          //If you shift-click, it'll toggle fold all the children, instead of itself
-          d3.event.shiftKey = false;
-          d.values && d.values.forEach(function(node){
-            if (node.values || node._values) {
-              click(node, 0, true);
-            }
-          });
-          return true;
-        }
-        if(!hasChildren(d)) {
-          //download file
-          //window.location.href = d.url;
-          return true;
-        }
-        if (d.values) {
-          d._values = d.values;
-          d.values = null;
-        } else {
-          d.values = d._values;
-          d._values = null;
-        }
-        chart.update();
-      }
-
-
-      function icon(d) {
-        return (d._values && d._values.length) ? iconOpen : (d.values && d.values.length) ? iconClose : '';
-      }
-
-      function folded(d) {
-        return (d._values && d._values.length);
-      }
-
-      function hasChildren(d) {
-        var values = d.values || d._values;
-
-        return (values && values.length);
-      }
-
-
-    });
-
-    return chart;
-  }
-
-
-  //============================================================
-  // Expose Public Variables
-  //------------------------------------------------------------
-  chart.options = nv.utils.optionsFunc.bind(chart);
-  
-  chart.margin = function(_) {
-    if (!arguments.length) return margin;
-    margin.top    = typeof _.top    != 'undefined' ? _.top    : margin.top;
-    margin.right  = typeof _.right  != 'undefined' ? _.right  : margin.right;
-    margin.bottom = typeof _.bottom != 'undefined' ? _.bottom : margin.bottom;
-    margin.left   = typeof _.left   != 'undefined' ? _.left   : margin.left;
-    return chart;
-  };
-
-  chart.width = function(_) {
-    if (!arguments.length) return width;
-    width = _;
-    return chart;
-  };
-
-  chart.height = function(_) {
-    if (!arguments.length) return height;
-    height = _;
-    return chart;
-  };
-
-  chart.color = function(_) {
-    if (!arguments.length) return color;
-    color = nv.utils.getColor(_);
-    scatter.color(color);
-    return chart;
-  };
-
-  chart.id = function(_) {
-    if (!arguments.length) return id;
-    id = _;
-    return chart;
-  };
-
-  chart.header = function(_) {
-    if (!arguments.length) return header;
-    header = _;
-    return chart;
-  };
-
-  chart.noData = function(_) {
-    if (!arguments.length) return noData;
-    noData = _;
-    return chart;
-  };
-
-  chart.filterZero = function(_) {
-    if (!arguments.length) return filterZero;
-    filterZero = _;
-    return chart;
-  };
-
-  chart.columns = function(_) {
-    if (!arguments.length) return columns;
-    columns = _;
-    return chart;
-  };
-
-  chart.tableClass = function(_) {
-    if (!arguments.length) return tableClass;
-    tableClass = _;
-    return chart;
-  };
-
-  chart.iconOpen = function(_){
-     if (!arguments.length) return iconOpen;
-    iconOpen = _;
-    return chart;
-  }
-
-  chart.iconClose = function(_){
-     if (!arguments.length) return iconClose;
-    iconClose = _;
-    return chart;
-  }
-
-  chart.getUrl = function(_){
-     if (!arguments.length) return getUrl;
-    getUrl = _;
-    return chart;
-  }
-
-  //============================================================
-
-
-  return chart;
-};
\ No newline at end of file
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/legend.js b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/legend.js
deleted file mode 100755
index 21f9f9a4..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/legend.js
+++ /dev/null
@@ -1,270 +0,0 @@
-nv.models.legend = function() {
-  "use strict";
-  //============================================================
-  // Public Variables with Default Settings
-  //------------------------------------------------------------
-
-  var margin = {top: 5, right: 0, bottom: 5, left: 0}
-    , width = 400
-    , height = 20
-    , getKey = function(d) { return d.key }
-    , color = nv.utils.defaultColor()
-    , align = true
-    , rightAlign = true
-    , updateState = true   //If true, legend will update data.disabled and trigger a 'stateChange' dispatch.
-    , radioButtonMode = false   //If true, clicking legend items will cause it to behave like a radio button. (only one can be selected at a time)
-    , dispatch = d3.dispatch('legendClick', 'legendDblclick', 'legendMouseover', 'legendMouseout', 'stateChange')
-    ;
-
-  //============================================================
-
-
-  function chart(selection) {
-    selection.each(function(data) {
-      var availableWidth = width - margin.left - margin.right,
-          container = d3.select(this);
-
-
-      //------------------------------------------------------------
-      // Setup containers and skeleton of chart
-
-      var wrap = container.selectAll('g.nv-legend').data([data]);
-      var gEnter = wrap.enter().append('g').attr('class', 'nvd3 nv-legend').append('g');
-      var g = wrap.select('g');
-
-      wrap.attr('transform', 'translate(' + margin.left + ',' + margin.top + ')');
-
-      //------------------------------------------------------------
-
-
-      var series = g.selectAll('.nv-series')
-          .data(function(d) { return d });
-      var seriesEnter = series.enter().append('g').attr('class', 'nv-series')
-          .on('mouseover', function(d,i) {
-            dispatch.legendMouseover(d,i);  //TODO: Make consistent with other event objects
-          })
-          .on('mouseout', function(d,i) {
-            dispatch.legendMouseout(d,i);
-          })
-          .on('click', function(d,i) {
-            dispatch.legendClick(d,i);
-            if (updateState) {
-               if (radioButtonMode) {
-                   //Radio button mode: set every series to disabled,
-                   //  and enable the clicked series.
-                   data.forEach(function(series) { series.disabled = true});
-                   d.disabled = false;
-               }
-               else {
-                   d.disabled = !d.disabled;
-                   if (data.every(function(series) { return series.disabled})) {
-                       //the default behavior of NVD3 legends is, if every single series
-                       // is disabled, turn all series' back on.
-                       data.forEach(function(series) { series.disabled = false});
-                   }
-               }
-               dispatch.stateChange({
-                  disabled: data.map(function(d) { return !!d.disabled })
-               });
-            }
-          })
-          .on('dblclick', function(d,i) {
-            dispatch.legendDblclick(d,i);
-            if (updateState) {
-                //the default behavior of NVD3 legends, when double clicking one,
-                // is to set all other series' to false, and make the double clicked series enabled.
-                data.forEach(function(series) {
-                   series.disabled = true;
-                });
-                d.disabled = false; 
-                dispatch.stateChange({
-                    disabled: data.map(function(d) { return !!d.disabled })
-                });
-            }
-          });
-      seriesEnter.append('circle')
-          .style('stroke-width', 2)
-          .attr('class','nv-legend-symbol')
-          .attr('r', 5);
-      seriesEnter.append('text')
-          .attr('text-anchor', 'start')
-          .attr('class','nv-legend-text')
-          .attr('dy', '.32em')
-          .attr('dx', '8');
-      series.classed('disabled', function(d) { return d.disabled });
-      series.exit().remove();
-      series.select('circle')
-          .style('fill', function(d,i) { return d.color || color(d,i)})
-          .style('stroke', function(d,i) { return d.color || color(d, i) });
-      series.select('text').text(getKey);
-
-
-      //TODO: implement fixed-width and max-width options (max-width is especially useful with the align option)
-
-      // NEW ALIGNING CODE, TODO: clean up
-      if (align) {
-
-        var seriesWidths = [];
-        series.each(function(d,i) {
-              var legendText = d3.select(this).select('text');
-              var nodeTextLength;
-              try {
-                nodeTextLength = legendText.node().getComputedTextLength();
-              }
-              catch(e) {
-                nodeTextLength = nv.utils.calcApproxTextWidth(legendText);
-              }
-             
-              seriesWidths.push(nodeTextLength + 28); // 28 is ~ the width of the circle plus some padding
-            });
-
-        var seriesPerRow = 0;
-        var legendWidth = 0;
-        var columnWidths = [];
-
-        while ( legendWidth < availableWidth && seriesPerRow < seriesWidths.length) {
-          columnWidths[seriesPerRow] = seriesWidths[seriesPerRow];
-          legendWidth += seriesWidths[seriesPerRow++];
-        }
-        if (seriesPerRow === 0) seriesPerRow = 1; //minimum of one series per row
-
-
-        while ( legendWidth > availableWidth && seriesPerRow > 1 ) {
-          columnWidths = [];
-          seriesPerRow--;
-
-          for (var k = 0; k < seriesWidths.length; k++) {
-            if (seriesWidths[k] > (columnWidths[k % seriesPerRow] || 0) )
-              columnWidths[k % seriesPerRow] = seriesWidths[k];
-          }
-
-          legendWidth = columnWidths.reduce(function(prev, cur, index, array) {
-                          return prev + cur;
-                        });
-        }
-
-        var xPositions = [];
-        for (var i = 0, curX = 0; i < seriesPerRow; i++) {
-            xPositions[i] = curX;
-            curX += columnWidths[i];
-        }
-
-        series
-            .attr('transform', function(d, i) {
-              return 'translate(' + xPositions[i % seriesPerRow] + ',' + (5 + Math.floor(i / seriesPerRow) * 20) + ')';
-            });
-
-        //position legend as far right as possible within the total width
-        if (rightAlign) {
-           g.attr('transform', 'translate(' + (width - margin.right - legendWidth) + ',' + margin.top + ')');
-        }
-        else {
-           g.attr('transform', 'translate(0' + ',' + margin.top + ')');
-        }
-
-        height = margin.top + margin.bottom + (Math.ceil(seriesWidths.length / seriesPerRow) * 20);
-
-      } else {
-
-        var ypos = 5,
-            newxpos = 5,
-            maxwidth = 0,
-            xpos;
-        series
-            .attr('transform', function(d, i) {
-              var length = d3.select(this).select('text').node().getComputedTextLength() + 28;
-              xpos = newxpos;
-
-              if (width < margin.left + margin.right + xpos + length) {
-                newxpos = xpos = 5;
-                ypos += 20;
-              }
-
-              newxpos += length;
-              if (newxpos > maxwidth) maxwidth = newxpos;
-
-              return 'translate(' + xpos + ',' + ypos + ')';
-            });
-
-        //position legend as far right as possible within the total width
-        g.attr('transform', 'translate(' + (width - margin.right - maxwidth) + ',' + margin.top + ')');
-
-        height = margin.top + margin.bottom + ypos + 15;
-
-      }
-
-    });
-
-    return chart;
-  }
-
-
-  //============================================================
-  // Expose Public Variables
-  //------------------------------------------------------------
-
-  chart.dispatch = dispatch;
-  chart.options = nv.utils.optionsFunc.bind(chart);
-  
-  chart.margin = function(_) {
-    if (!arguments.length) return margin;
-    margin.top    = typeof _.top    != 'undefined' ? _.top    : margin.top;
-    margin.right  = typeof _.right  != 'undefined' ? _.right  : margin.right;
-    margin.bottom = typeof _.bottom != 'undefined' ? _.bottom : margin.bottom;
-    margin.left   = typeof _.left   != 'undefined' ? _.left   : margin.left;
-    return chart;
-  };
-
-  chart.width = function(_) {
-    if (!arguments.length) return width;
-    width = _;
-    return chart;
-  };
-
-  chart.height = function(_) {
-    if (!arguments.length) return height;
-    height = _;
-    return chart;
-  };
-
-  chart.key = function(_) {
-    if (!arguments.length) return getKey;
-    getKey = _;
-    return chart;
-  };
-
-  chart.color = function(_) {
-    if (!arguments.length) return color;
-    color = nv.utils.getColor(_);
-    return chart;
-  };
-
-  chart.align = function(_) {
-    if (!arguments.length) return align;
-    align = _;
-    return chart;
-  };
-
-  chart.rightAlign = function(_) {
-    if (!arguments.length) return rightAlign;
-    rightAlign = _;
-    return chart;
-  };
-
-  chart.updateState = function(_) {
-    if (!arguments.length) return updateState;
-    updateState = _;
-    return chart;
-  };
-
-  chart.radioButtonMode = function(_) {
-    if (!arguments.length) return radioButtonMode;
-    radioButtonMode = _;
-    return chart;
-  };
-
-  //============================================================
-
-
-  return chart;
-}
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/line.js b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/line.js
deleted file mode 100755
index 7203d159..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/line.js
+++ /dev/null
@@ -1,274 +0,0 @@
-
-nv.models.line = function() {
-  "use strict";
-  //============================================================
-  // Public Variables with Default Settings
-  //------------------------------------------------------------
-
-  var  scatter = nv.models.scatter()
-    ;
-
-  var margin = {top: 0, right: 0, bottom: 0, left: 0}
-    , width = 960
-    , height = 500
-    , color = nv.utils.defaultColor() // a function that returns a color
-    , getX = function(d) { return d.x } // accessor to get the x value from a data point
-    , getY = function(d) { return d.y } // accessor to get the y value from a data point
-    , defined = function(d,i) { return !isNaN(getY(d,i)) && getY(d,i) !== null } // allows a line to be not continuous when it is not defined
-    , isArea = function(d) { return d.area } // decides if a line is an area or just a line
-    , clipEdge = false // if true, masks lines within x and y scale
-    , x //can be accessed via chart.xScale()
-    , y //can be accessed via chart.yScale()
-    , interpolate = "linear" // controls the line interpolation
-    ;
-
-  scatter
-    .size(16) // default size
-    .sizeDomain([16,256]) //set to speed up calculation, needs to be unset if there is a custom size accessor
-    ;
-
-  //============================================================
-
-
-  //============================================================
-  // Private Variables
-  //------------------------------------------------------------
-
-  var x0, y0 //used to store previous scales
-      ;
-
-  //============================================================
-
-
-  function chart(selection) {
-    selection.each(function(data) {
-      var availableWidth = width - margin.left - margin.right,
-          availableHeight = height - margin.top - margin.bottom,
-          container = d3.select(this);
-
-      //------------------------------------------------------------
-      // Setup Scales
-
-      x = scatter.xScale();
-      y = scatter.yScale();
-
-      x0 = x0 || x;
-      y0 = y0 || y;
-
-      //------------------------------------------------------------
-
-
-      //------------------------------------------------------------
-      // Setup containers and skeleton of chart
-
-      var wrap = container.selectAll('g.nv-wrap.nv-line').data([data]);
-      var wrapEnter = wrap.enter().append('g').attr('class', 'nvd3 nv-wrap nv-line');
-      var defsEnter = wrapEnter.append('defs');
-      var gEnter = wrapEnter.append('g');
-      var g = wrap.select('g')
-
-      gEnter.append('g').attr('class', 'nv-groups');
-      gEnter.append('g').attr('class', 'nv-scatterWrap');
-
-      wrap.attr('transform', 'translate(' + margin.left + ',' + margin.top + ')');
-
-      //------------------------------------------------------------
-
-
-
-
-      scatter
-        .width(availableWidth)
-        .height(availableHeight)
-
-      var scatterWrap = wrap.select('.nv-scatterWrap');
-          //.datum(data); // Data automatically trickles down from the wrap
-
-      scatterWrap.transition().call(scatter);
-
-
-
-      defsEnter.append('clipPath')
-          .attr('id', 'nv-edge-clip-' + scatter.id())
-        .append('rect');
-
-      wrap.select('#nv-edge-clip-' + scatter.id() + ' rect')
-          .attr('width', availableWidth)
-          .attr('height', availableHeight);
-
-      g   .attr('clip-path', clipEdge ? 'url(#nv-edge-clip-' + scatter.id() + ')' : '');
-      scatterWrap
-          .attr('clip-path', clipEdge ? 'url(#nv-edge-clip-' + scatter.id() + ')' : '');
-
-
-
-
-      var groups = wrap.select('.nv-groups').selectAll('.nv-group')
-          .data(function(d) { return d }, function(d) { return d.key });
-      groups.enter().append('g')
-          .style('stroke-opacity', 1e-6)
-          .style('fill-opacity', 1e-6);
-
-      groups.exit().remove();
-
-      groups
-          .attr('class', function(d,i) { return 'nv-group nv-series-' + i })
-          .classed('hover', function(d) { return d.hover })
-          .style('fill', function(d,i){ return color(d, i) })
-          .style('stroke', function(d,i){ return color(d, i)});
-      groups
-          .transition()
-          .style('stroke-opacity', 1)
-          .style('fill-opacity', .5);
-
-
-
-      var areaPaths = groups.selectAll('path.nv-area')
-          .data(function(d) { return isArea(d) ? [d] : [] }); // this is done differently than lines because I need to check if series is an area
-      areaPaths.enter().append('path')
-          .attr('class', 'nv-area')
-          .attr('d', function(d) {
-            return d3.svg.area()
-                .interpolate(interpolate)
-                .defined(defined)
-                .x(function(d,i) { return nv.utils.NaNtoZero(x0(getX(d,i))) })
-                .y0(function(d,i) { return nv.utils.NaNtoZero(y0(getY(d,i))) })
-                .y1(function(d,i) { return y0( y.domain()[0] <= 0 ? y.domain()[1] >= 0 ? 0 : y.domain()[1] : y.domain()[0] ) })
-                //.y1(function(d,i) { return y0(0) }) //assuming 0 is within y domain.. may need to tweak this
-                .apply(this, [d.values])
-          });
-      groups.exit().selectAll('path.nv-area')
-           .remove();
-
-      areaPaths
-          .transition()
-          .attr('d', function(d) {
-            return d3.svg.area()
-                .interpolate(interpolate)
-                .defined(defined)
-                .x(function(d,i) { return nv.utils.NaNtoZero(x(getX(d,i))) })
-                .y0(function(d,i) { return nv.utils.NaNtoZero(y(getY(d,i))) })
-                .y1(function(d,i) { return y( y.domain()[0] <= 0 ? y.domain()[1] >= 0 ? 0 : y.domain()[1] : y.domain()[0] ) })
-                //.y1(function(d,i) { return y0(0) }) //assuming 0 is within y domain.. may need to tweak this
-                .apply(this, [d.values])
-          });
-
-
-
-      var linePaths = groups.selectAll('path.nv-line')
-          .data(function(d) { return [d.values] });
-      linePaths.enter().append('path')
-          .attr('class', 'nv-line')
-          .attr('d',
-            d3.svg.line()
-              .interpolate(interpolate)
-              .defined(defined)
-              .x(function(d,i) { return nv.utils.NaNtoZero(x0(getX(d,i))) })
-              .y(function(d,i) { return nv.utils.NaNtoZero(y0(getY(d,i))) })
-          );
-
-      linePaths
-          .transition()
-          .attr('d',
-            d3.svg.line()
-              .interpolate(interpolate)
-              .defined(defined)
-              .x(function(d,i) { return nv.utils.NaNtoZero(x(getX(d,i))) })
-              .y(function(d,i) { return nv.utils.NaNtoZero(y(getY(d,i))) })
-          );
-
-
-
-      //store old scales for use in transitions on update
-      x0 = x.copy();
-      y0 = y.copy();
-
-    });
-
-    return chart;
-  }
-
-
-  //============================================================
-  // Expose Public Variables
-  //------------------------------------------------------------
-
-  chart.dispatch = scatter.dispatch;
-  chart.scatter = scatter;
-
-  d3.rebind(chart, scatter, 'id', 'interactive', 'size', 'xScale', 'yScale', 'zScale', 'xDomain', 'yDomain', 'xRange', 'yRange',
-    'sizeDomain', 'forceX', 'forceY', 'forceSize', 'clipVoronoi', 'useVoronoi', 'clipRadius', 'padData','highlightPoint','clearHighlights');
-
-  chart.options = nv.utils.optionsFunc.bind(chart);
-
-  chart.margin = function(_) {
-    if (!arguments.length) return margin;
-    margin.top    = typeof _.top    != 'undefined' ? _.top    : margin.top;
-    margin.right  = typeof _.right  != 'undefined' ? _.right  : margin.right;
-    margin.bottom = typeof _.bottom != 'undefined' ? _.bottom : margin.bottom;
-    margin.left   = typeof _.left   != 'undefined' ? _.left   : margin.left;
-    return chart;
-  };
-
-  chart.width = function(_) {
-    if (!arguments.length) return width;
-    width = _;
-    return chart;
-  };
-
-  chart.height = function(_) {
-    if (!arguments.length) return height;
-    height = _;
-    return chart;
-  };
-
-  chart.x = function(_) {
-    if (!arguments.length) return getX;
-    getX = _;
-    scatter.x(_);
-    return chart;
-  };
-
-  chart.y = function(_) {
-    if (!arguments.length) return getY;
-    getY = _;
-    scatter.y(_);
-    return chart;
-  };
-
-  chart.clipEdge = function(_) {
-    if (!arguments.length) return clipEdge;
-    clipEdge = _;
-    return chart;
-  };
-
-  chart.color = function(_) {
-    if (!arguments.length) return color;
-    color = nv.utils.getColor(_);
-    scatter.color(color);
-    return chart;
-  };
-
-  chart.interpolate = function(_) {
-    if (!arguments.length) return interpolate;
-    interpolate = _;
-    return chart;
-  };
-
-  chart.defined = function(_) {
-    if (!arguments.length) return defined;
-    defined = _;
-    return chart;
-  };
-
-  chart.isArea = function(_) {
-    if (!arguments.length) return isArea;
-    isArea = d3.functor(_);
-    return chart;
-  };
-
-  //============================================================
-
-
-  return chart;
-}
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/lineChart.js b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/lineChart.js
deleted file mode 100755
index a4ffcf6a..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/lineChart.js
+++ /dev/null
@@ -1,465 +0,0 @@
-
-nv.models.lineChart = function() {
-  "use strict";
-  //============================================================
-  // Public Variables with Default Settings
-  //------------------------------------------------------------
-
-  var lines = nv.models.line()
-    , xAxis = nv.models.axis()
-    , yAxis = nv.models.axis()
-    , legend = nv.models.legend()
-    , interactiveLayer = nv.interactiveGuideline()
-    ;
-
-  var margin = {top: 30, right: 20, bottom: 50, left: 60}
-    , color = nv.utils.defaultColor()
-    , width = null
-    , height = null
-    , showLegend = true
-    , showXAxis = true
-    , showYAxis = true
-    , rightAlignYAxis = false
-    , useInteractiveGuideline = false
-    , tooltips = true
-    , tooltip = function(key, x, y, e, graph) {
-        return '<h3>' + key + '</h3>' +
-               '<p>' +  y + ' at ' + x + '</p>'
-      }
-    , x
-    , y
-    , state = {}
-    , defaultState = null
-    , noData = 'No Data Available.'
-    , dispatch = d3.dispatch('tooltipShow', 'tooltipHide', 'stateChange', 'changeState')
-    , transitionDuration = 250
-    ;
-
-  xAxis
-    .orient('bottom')
-    .tickPadding(7)
-    ;
-  yAxis
-    .orient((rightAlignYAxis) ? 'right' : 'left')
-    ;
-
-  //============================================================
-
-
-  //============================================================
-  // Private Variables
-  //------------------------------------------------------------
-
-  var showTooltip = function(e, offsetElement) {
-    var left = e.pos[0] + ( offsetElement.offsetLeft || 0 ),
-        top = e.pos[1] + ( offsetElement.offsetTop || 0),
-        x = xAxis.tickFormat()(lines.x()(e.point, e.pointIndex)),
-        y = yAxis.tickFormat()(lines.y()(e.point, e.pointIndex)),
-        content = tooltip(e.series.key, x, y, e, chart);
-
-    nv.tooltip.show([left, top], content, null, null, offsetElement);
-  };
-
-  //============================================================
-
-
-  function chart(selection) {
-    selection.each(function(data) {
-      var container = d3.select(this),
-          that = this;
-
-      var availableWidth = (width  || parseInt(container.style('width')) || 960)
-                             - margin.left - margin.right,
-          availableHeight = (height || parseInt(container.style('height')) || 400)
-                             - margin.top - margin.bottom;
-
-
-      chart.update = function() { container.transition().duration(transitionDuration).call(chart) };
-      chart.container = this;
-
-      //set state.disabled
-      state.disabled = data.map(function(d) { return !!d.disabled });
-
-    
-      if (!defaultState) {
-        var key;
-        defaultState = {};
-        for (key in state) {
-          if (state[key] instanceof Array)
-            defaultState[key] = state[key].slice(0);
-          else
-            defaultState[key] = state[key];
-        }
-      }
-
-      //------------------------------------------------------------
-      // Display noData message if there's nothing to show.
-
-      if (!data || !data.length || !data.filter(function(d) { return d.values.length }).length) {
-        var noDataText = container.selectAll('.nv-noData').data([noData]);
-
-        noDataText.enter().append('text')
-          .attr('class', 'nvd3 nv-noData')
-          .attr('dy', '-.7em')
-          .style('text-anchor', 'middle');
-
-        noDataText
-          .attr('x', margin.left + availableWidth / 2)
-          .attr('y', margin.top + availableHeight / 2)
-          .text(function(d) { return d });
-
-        return chart;
-      } else {
-        container.selectAll('.nv-noData').remove();
-      }
-
-      //------------------------------------------------------------
-
-
-      //------------------------------------------------------------
-      // Setup Scales
-
-      x = lines.xScale();
-      y = lines.yScale();
-
-      //------------------------------------------------------------
-
-
-      //------------------------------------------------------------
-      // Setup containers and skeleton of chart
-
-      var wrap = container.selectAll('g.nv-wrap.nv-lineChart').data([data]);
-      var gEnter = wrap.enter().append('g').attr('class', 'nvd3 nv-wrap nv-lineChart').append('g');
-      var g = wrap.select('g');
-
-      gEnter.append("rect").style("opacity",0);
-      gEnter.append('g').attr('class', 'nv-x nv-axis');
-      gEnter.append('g').attr('class', 'nv-y nv-axis');
-      gEnter.append('g').attr('class', 'nv-linesWrap');
-      gEnter.append('g').attr('class', 'nv-legendWrap');
-      gEnter.append('g').attr('class', 'nv-interactive');
-
-      g.select("rect").attr("width",availableWidth).attr("height",availableHeight);
-      //------------------------------------------------------------
-      // Legend
-
-      if (showLegend) {
-        legend.width(availableWidth);
-
-        g.select('.nv-legendWrap')
-            .datum(data)
-            .call(legend);
-
-        if ( margin.top != legend.height()) {
-          margin.top = legend.height();
-          availableHeight = (height || parseInt(container.style('height')) || 400)
-                             - margin.top - margin.bottom;
-        }
-
-        wrap.select('.nv-legendWrap')
-            .attr('transform', 'translate(0,' + (-margin.top) +')')
-      }
-
-      //------------------------------------------------------------
-
-      wrap.attr('transform', 'translate(' + margin.left + ',' + margin.top + ')');
-
-      if (rightAlignYAxis) {
-          g.select(".nv-y.nv-axis")
-              .attr("transform", "translate(" + availableWidth + ",0)");
-      }
-
-      //------------------------------------------------------------
-      // Main Chart Component(s)
-
-      
-      //------------------------------------------------------------
-      //Set up interactive layer
-      if (useInteractiveGuideline) {
-        interactiveLayer
-           .width(availableWidth)
-           .height(availableHeight)
-           .margin({left:margin.left, top:margin.top})
-           .svgContainer(container)
-           .xScale(x);
-        wrap.select(".nv-interactive").call(interactiveLayer);
-      }
-
-
-      lines
-        .width(availableWidth)
-        .height(availableHeight)
-        .color(data.map(function(d,i) {
-          return d.color || color(d, i);
-        }).filter(function(d,i) { return !data[i].disabled }));
-
-
-      var linesWrap = g.select('.nv-linesWrap')
-          .datum(data.filter(function(d) { return !d.disabled }))
-
-      linesWrap.transition().call(lines);
-
-      //------------------------------------------------------------
-
-
-      //------------------------------------------------------------
-      // Setup Axes
-
-      if (showXAxis) {
-        xAxis
-          .scale(x)
-          .ticks( availableWidth / 100 )
-          .tickSize(-availableHeight, 0);
-
-        g.select('.nv-x.nv-axis')
-            .attr('transform', 'translate(0,' + y.range()[0] + ')');
-        g.select('.nv-x.nv-axis')
-            .transition()
-            .call(xAxis);
-      }
-
-      if (showYAxis) {
-        yAxis
-          .scale(y)
-          .ticks( availableHeight / 36 )
-          .tickSize( -availableWidth, 0);
-
-        g.select('.nv-y.nv-axis')
-            .transition()
-            .call(yAxis);
-      }
-      //------------------------------------------------------------
-
-
-      //============================================================
-      // Event Handling/Dispatching (in chart's scope)
-      //------------------------------------------------------------
-
-      legend.dispatch.on('stateChange', function(newState) {
-          state = newState;
-          dispatch.stateChange(state);
-          chart.update();
-      });
-
-      interactiveLayer.dispatch.on('elementMousemove', function(e) {
-          lines.clearHighlights();
-          var singlePoint, pointIndex, pointXLocation, allData = [];
-          data
-          .filter(function(series, i) { 
-            series.seriesIndex = i;
-            return !series.disabled; 
-          })
-          .forEach(function(series,i) {
-              pointIndex = nv.interactiveBisect(series.values, e.pointXValue, chart.x());
-              lines.highlightPoint(i, pointIndex, true);
-              var point = series.values[pointIndex];
-              if (typeof point === 'undefined') return;
-              if (typeof singlePoint === 'undefined') singlePoint = point;
-              if (typeof pointXLocation === 'undefined') pointXLocation = chart.xScale()(chart.x()(point,pointIndex));
-              allData.push({
-                  key: series.key,
-                  value: chart.y()(point, pointIndex),
-                  color: color(series,series.seriesIndex)
-              });
-          });
-          //Highlight the tooltip entry based on which point the mouse is closest to.
-          if (allData.length > 2) {
-            var yValue = chart.yScale().invert(e.mouseY);
-            var domainExtent = Math.abs(chart.yScale().domain()[0] - chart.yScale().domain()[1]);
-            var threshold = 0.03 * domainExtent;
-            var indexToHighlight = nv.nearestValueIndex(allData.map(function(d){return d.value}),yValue,threshold);
-            if (indexToHighlight !== null)
-              allData[indexToHighlight].highlight = true;
-          }
-
-          var xValue = xAxis.tickFormat()(chart.x()(singlePoint,pointIndex));
-          interactiveLayer.tooltip
-                  .position({left: pointXLocation + margin.left, top: e.mouseY + margin.top})
-                  .chartContainer(that.parentNode)
-                  .enabled(tooltips)
-                  .valueFormatter(function(d,i) {
-                     return yAxis.tickFormat()(d);
-                  })
-                  .data(
-                      {
-                        value: xValue,
-                        series: allData
-                      }
-                  )();
-
-          interactiveLayer.renderGuideLine(pointXLocation);
-
-      });
-
-      interactiveLayer.dispatch.on("elementMouseout",function(e) {
-          dispatch.tooltipHide();
-          lines.clearHighlights();
-      });
-
-      dispatch.on('tooltipShow', function(e) {
-        if (tooltips) showTooltip(e, that.parentNode);
-      });
-
-
-      dispatch.on('changeState', function(e) {
-
-        if (typeof e.disabled !== 'undefined') {
-          data.forEach(function(series,i) {
-            series.disabled = e.disabled[i];
-          });
-
-          state.disabled = e.disabled;
-        }
-
-        chart.update();
-      });
-
-      //============================================================
-
-    });
-
-    return chart;
-  }
-
-
-  //============================================================
-  // Event Handling/Dispatching (out of chart's scope)
-  //------------------------------------------------------------
-
-  lines.dispatch.on('elementMouseover.tooltip', function(e) {
-    e.pos = [e.pos[0] +  margin.left, e.pos[1] + margin.top];
-    dispatch.tooltipShow(e);
-  });
-
-  lines.dispatch.on('elementMouseout.tooltip', function(e) {
-    dispatch.tooltipHide(e);
-  });
-
-  dispatch.on('tooltipHide', function() {
-    if (tooltips) nv.tooltip.cleanup();
-  });
-
-  //============================================================
-
-
-  //============================================================
-  // Expose Public Variables
-  //------------------------------------------------------------
-
-  // expose chart's sub-components
-  chart.dispatch = dispatch;
-  chart.lines = lines;
-  chart.legend = legend;
-  chart.xAxis = xAxis;
-  chart.yAxis = yAxis;
-  chart.interactiveLayer = interactiveLayer;
-
-  d3.rebind(chart, lines, 'defined', 'isArea', 'x', 'y', 'size', 'xScale', 'yScale', 'xDomain', 'yDomain', 'xRange', 'yRange'
-    , 'forceX', 'forceY', 'interactive', 'clipEdge', 'clipVoronoi', 'useVoronoi','id', 'interpolate');
-
-  chart.options = nv.utils.optionsFunc.bind(chart);
-
-  chart.margin = function(_) {
-    if (!arguments.length) return margin;
-    margin.top    = typeof _.top    != 'undefined' ? _.top    : margin.top;
-    margin.right  = typeof _.right  != 'undefined' ? _.right  : margin.right;
-    margin.bottom = typeof _.bottom != 'undefined' ? _.bottom : margin.bottom;
-    margin.left   = typeof _.left   != 'undefined' ? _.left   : margin.left;
-    return chart;
-  };
-
-  chart.width = function(_) {
-    if (!arguments.length) return width;
-    width = _;
-    return chart;
-  };
-
-  chart.height = function(_) {
-    if (!arguments.length) return height;
-    height = _;
-    return chart;
-  };
-
-  chart.color = function(_) {
-    if (!arguments.length) return color;
-    color = nv.utils.getColor(_);
-    legend.color(color);
-    return chart;
-  };
-
-  chart.showLegend = function(_) {
-    if (!arguments.length) return showLegend;
-    showLegend = _;
-    return chart;
-  };
-
-  chart.showXAxis = function(_) {
-    if (!arguments.length) return showXAxis;
-    showXAxis = _;
-    return chart;
-  };
-
-  chart.showYAxis = function(_) {
-    if (!arguments.length) return showYAxis;
-    showYAxis = _;
-    return chart;
-  };
-
-  chart.rightAlignYAxis = function(_) {
-    if(!arguments.length) return rightAlignYAxis;
-    rightAlignYAxis = _;
-    yAxis.orient( (_) ? 'right' : 'left');
-    return chart;
-  };
-
-  chart.useInteractiveGuideline = function(_) {
-    if(!arguments.length) return useInteractiveGuideline;
-    useInteractiveGuideline = _;
-    if (_ === true) {
-       chart.interactive(false);
-       chart.useVoronoi(false);
-    }
-    return chart;
-  };
-
-  chart.tooltips = function(_) {
-    if (!arguments.length) return tooltips;
-    tooltips = _;
-    return chart;
-  };
-
-  chart.tooltipContent = function(_) {
-    if (!arguments.length) return tooltip;
-    tooltip = _;
-    return chart;
-  };
-
-  chart.state = function(_) {
-    if (!arguments.length) return state;
-    state = _;
-    return chart;
-  };
-
-  chart.defaultState = function(_) {
-    if (!arguments.length) return defaultState;
-    defaultState = _;
-    return chart;
-  };
-
-  chart.noData = function(_) {
-    if (!arguments.length) return noData;
-    noData = _;
-    return chart;
-  };
-
-  chart.transitionDuration = function(_) {
-    if (!arguments.length) return transitionDuration;
-    transitionDuration = _;
-    return chart;
-  };
-
-  //============================================================
-
-
-  return chart;
-}
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/linePlusBarChart.js b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/linePlusBarChart.js
deleted file mode 100755
index 77fcbab7..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/linePlusBarChart.js
+++ /dev/null
@@ -1,433 +0,0 @@
-
-nv.models.linePlusBarChart = function() {
-  "use strict";
-  //============================================================
-  // Public Variables with Default Settings
-  //------------------------------------------------------------
-
-  var lines = nv.models.line()
-    , bars = nv.models.historicalBar()
-    , xAxis = nv.models.axis()
-    , y1Axis = nv.models.axis()
-    , y2Axis = nv.models.axis()
-    , legend = nv.models.legend()
-    ;
-
-  var margin = {top: 30, right: 60, bottom: 50, left: 60}
-    , width = null
-    , height = null
-    , getX = function(d) { return d.x }
-    , getY = function(d) { return d.y }
-    , color = nv.utils.defaultColor()
-    , showLegend = true
-    , tooltips = true
-    , tooltip = function(key, x, y, e, graph) {
-        return '<h3>' + key + '</h3>' +
-               '<p>' +  y + ' at ' + x + '</p>';
-      }
-    , x
-    , y1
-    , y2
-    , state = {}
-    , defaultState = null
-    , noData = "No Data Available."
-    , dispatch = d3.dispatch('tooltipShow', 'tooltipHide', 'stateChange', 'changeState')
-    ;
-
-  bars
-    .padData(true)
-    ;
-  lines
-    .clipEdge(false)
-    .padData(true)
-    ;
-  xAxis
-    .orient('bottom')
-    .tickPadding(7)
-    .highlightZero(false)
-    ;
-  y1Axis
-    .orient('left')
-    ;
-  y2Axis
-    .orient('right')
-    ;
-
-  //============================================================
-
-
-  //============================================================
-  // Private Variables
-  //------------------------------------------------------------
-
-  var showTooltip = function(e, offsetElement) {
-      var left = e.pos[0] + ( offsetElement.offsetLeft || 0 ),
-          top = e.pos[1] + ( offsetElement.offsetTop || 0),
-          x = xAxis.tickFormat()(lines.x()(e.point, e.pointIndex)),
-          y = (e.series.bar ? y1Axis : y2Axis).tickFormat()(lines.y()(e.point, e.pointIndex)),
-          content = tooltip(e.series.key, x, y, e, chart);
-
-      nv.tooltip.show([left, top], content, e.value < 0 ? 'n' : 's', null, offsetElement);
-    }
-    ;
-
-  //------------------------------------------------------------
-
-
-
-  function chart(selection) {
-    selection.each(function(data) {
-      var container = d3.select(this),
-          that = this;
-
-      var availableWidth = (width  || parseInt(container.style('width')) || 960)
-                             - margin.left - margin.right,
-          availableHeight = (height || parseInt(container.style('height')) || 400)
-                             - margin.top - margin.bottom;
-
-      chart.update = function() { container.transition().call(chart); };
-      // chart.container = this;
-
-      //set state.disabled
-      state.disabled = data.map(function(d) { return !!d.disabled });
-
-      if (!defaultState) {
-        var key;
-        defaultState = {};
-        for (key in state) {
-          if (state[key] instanceof Array)
-            defaultState[key] = state[key].slice(0);
-          else
-            defaultState[key] = state[key];
-        }
-      }
-
-      //------------------------------------------------------------
-      // Display No Data message if there's nothing to show.
-
-      if (!data || !data.length || !data.filter(function(d) { return d.values.length }).length) {
-        var noDataText = container.selectAll('.nv-noData').data([noData]);
-
-        noDataText.enter().append('text')
-          .attr('class', 'nvd3 nv-noData')
-          .attr('dy', '-.7em')
-          .style('text-anchor', 'middle');
-
-        noDataText
-          .attr('x', margin.left + availableWidth / 2)
-          .attr('y', margin.top + availableHeight / 2)
-          .text(function(d) { return d });
-
-        return chart;
-      } else {
-        container.selectAll('.nv-noData').remove();
-      }
-
-      //------------------------------------------------------------
-
-
-      //------------------------------------------------------------
-      // Setup Scales
-
-      var dataBars = data.filter(function(d) { return !d.disabled && d.bar });
-      var dataLines = data.filter(function(d) { return !d.bar }); // removed the !d.disabled clause here to fix Issue #240
-
-      //x = xAxis.scale();
-       x = dataLines.filter(function(d) { return !d.disabled; }).length && dataLines.filter(function(d) { return !d.disabled; })[0].values.length ? lines.xScale() : bars.xScale();
-      //x = dataLines.filter(function(d) { return !d.disabled; }).length ? lines.xScale() : bars.xScale(); //old code before change above
-      y1 = bars.yScale();
-      y2 = lines.yScale();
-
-      //------------------------------------------------------------
-
-      //------------------------------------------------------------
-      // Setup containers and skeleton of chart
-
-      var wrap = d3.select(this).selectAll('g.nv-wrap.nv-linePlusBar').data([data]);
-      var gEnter = wrap.enter().append('g').attr('class', 'nvd3 nv-wrap nv-linePlusBar').append('g');
-      var g = wrap.select('g');
-
-      gEnter.append('g').attr('class', 'nv-x nv-axis');
-      gEnter.append('g').attr('class', 'nv-y1 nv-axis');
-      gEnter.append('g').attr('class', 'nv-y2 nv-axis');
-      gEnter.append('g').attr('class', 'nv-barsWrap');
-      gEnter.append('g').attr('class', 'nv-linesWrap');
-      gEnter.append('g').attr('class', 'nv-legendWrap');
-
-      //------------------------------------------------------------
-
-
-      //------------------------------------------------------------
-      // Legend
-
-      if (showLegend) {
-        legend.width( availableWidth / 2 );
-
-        g.select('.nv-legendWrap')
-            .datum(data.map(function(series) {
-              series.originalKey = series.originalKey === undefined ? series.key : series.originalKey;
-              series.key = series.originalKey + (series.bar ? ' (left axis)' : ' (right axis)');
-              return series;
-            }))
-          .call(legend);
-
-        if ( margin.top != legend.height()) {
-          margin.top = legend.height();
-          availableHeight = (height || parseInt(container.style('height')) || 400)
-                             - margin.top - margin.bottom;
-        }
-
-        g.select('.nv-legendWrap')
-            .attr('transform', 'translate(' + ( availableWidth / 2 ) + ',' + (-margin.top) +')');
-      }
-
-      //------------------------------------------------------------
-
-
-      wrap.attr('transform', 'translate(' + margin.left + ',' + margin.top + ')');
-
-
-      //------------------------------------------------------------
-      // Main Chart Component(s)
-
-
-      lines
-        .width(availableWidth)
-        .height(availableHeight)
-        .color(data.map(function(d,i) {
-          return d.color || color(d, i);
-        }).filter(function(d,i) { return !data[i].disabled && !data[i].bar }))
-
-      bars
-        .width(availableWidth)
-        .height(availableHeight)
-        .color(data.map(function(d,i) {
-          return d.color || color(d, i);
-        }).filter(function(d,i) { return !data[i].disabled && data[i].bar }))
-
-
-
-      var barsWrap = g.select('.nv-barsWrap')
-          .datum(dataBars.length ? dataBars : [{values:[]}])
-
-      var linesWrap = g.select('.nv-linesWrap')
-          .datum(dataLines[0] && !dataLines[0].disabled ? dataLines : [{values:[]}] );
-          //.datum(!dataLines[0].disabled ? dataLines : [{values:dataLines[0].values.map(function(d) { return [d[0], null] }) }] );
-
-      d3.transition(barsWrap).call(bars);
-      d3.transition(linesWrap).call(lines);
-
-      //------------------------------------------------------------
-
-
-      //------------------------------------------------------------
-      // Setup Axes
-
-      xAxis
-        .scale(x)
-        .ticks( availableWidth / 100 )
-        .tickSize(-availableHeight, 0);
-
-      g.select('.nv-x.nv-axis')
-          .attr('transform', 'translate(0,' + y1.range()[0] + ')');
-      d3.transition(g.select('.nv-x.nv-axis'))
-          .call(xAxis);
-
-
-      y1Axis
-        .scale(y1)
-        .ticks( availableHeight / 36 )
-        .tickSize(-availableWidth, 0);
-
-      d3.transition(g.select('.nv-y1.nv-axis'))
-          .style('opacity', dataBars.length ? 1 : 0)
-          .call(y1Axis);
-
-
-      y2Axis
-        .scale(y2)
-        .ticks( availableHeight / 36 )
-        .tickSize(dataBars.length ? 0 : -availableWidth, 0); // Show the y2 rules only if y1 has none
-
-      g.select('.nv-y2.nv-axis')
-          .style('opacity', dataLines.length ? 1 : 0)
-          .attr('transform', 'translate(' + availableWidth + ',0)');
-          //.attr('transform', 'translate(' + x.range()[1] + ',0)');
-
-      d3.transition(g.select('.nv-y2.nv-axis'))
-          .call(y2Axis);
-
-      //------------------------------------------------------------
-
-
-      //============================================================
-      // Event Handling/Dispatching (in chart's scope)
-      //------------------------------------------------------------
-
-      legend.dispatch.on('stateChange', function(newState) { 
-        state = newState;
-        dispatch.stateChange(state);
-        chart.update();
-      });
-
-      dispatch.on('tooltipShow', function(e) {
-        if (tooltips) showTooltip(e, that.parentNode);
-      });
-
-
-      // Update chart from a state object passed to event handler
-      dispatch.on('changeState', function(e) {
-
-        if (typeof e.disabled !== 'undefined') {
-          data.forEach(function(series,i) {
-            series.disabled = e.disabled[i];
-          });
-
-          state.disabled = e.disabled;
-        }
-
-        chart.update();
-      });
-
-      //============================================================
-
-
-    });
-
-    return chart;
-  }
-
-
-  //============================================================
-  // Event Handling/Dispatching (out of chart's scope)
-  //------------------------------------------------------------
-
-  lines.dispatch.on('elementMouseover.tooltip', function(e) {
-    e.pos = [e.pos[0] +  margin.left, e.pos[1] + margin.top];
-    dispatch.tooltipShow(e);
-  });
-
-  lines.dispatch.on('elementMouseout.tooltip', function(e) {
-    dispatch.tooltipHide(e);
-  });
-
-  bars.dispatch.on('elementMouseover.tooltip', function(e) {
-    e.pos = [e.pos[0] +  margin.left, e.pos[1] + margin.top];
-    dispatch.tooltipShow(e);
-  });
-
-  bars.dispatch.on('elementMouseout.tooltip', function(e) {
-    dispatch.tooltipHide(e);
-  });
-
-  dispatch.on('tooltipHide', function() {
-    if (tooltips) nv.tooltip.cleanup();
-  });
-
-  //============================================================
-
-
-  //============================================================
-  // Expose Public Variables
-  //------------------------------------------------------------
-
-  // expose chart's sub-components
-  chart.dispatch = dispatch;
-  chart.legend = legend;
-  chart.lines = lines;
-  chart.bars = bars;
-  chart.xAxis = xAxis;
-  chart.y1Axis = y1Axis;
-  chart.y2Axis = y2Axis;
-
-  d3.rebind(chart, lines, 'defined', 'size', 'clipVoronoi', 'interpolate');
-  //TODO: consider rebinding x, y and some other stuff, and simply do soemthign lile bars.x(lines.x()), etc.
-  //d3.rebind(chart, lines, 'x', 'y', 'size', 'xDomain', 'yDomain', 'xRange', 'yRange', 'forceX', 'forceY', 'interactive', 'clipEdge', 'clipVoronoi', 'id');
-
-  chart.options = nv.utils.optionsFunc.bind(chart);
-  
-  chart.x = function(_) {
-    if (!arguments.length) return getX;
-    getX = _;
-    lines.x(_);
-    bars.x(_);
-    return chart;
-  };
-
-  chart.y = function(_) {
-    if (!arguments.length) return getY;
-    getY = _;
-    lines.y(_);
-    bars.y(_);
-    return chart;
-  };
-
-  chart.margin = function(_) {
-    if (!arguments.length) return margin;
-    margin.top    = typeof _.top    != 'undefined' ? _.top    : margin.top;
-    margin.right  = typeof _.right  != 'undefined' ? _.right  : margin.right;
-    margin.bottom = typeof _.bottom != 'undefined' ? _.bottom : margin.bottom;
-    margin.left   = typeof _.left   != 'undefined' ? _.left   : margin.left;
-    return chart;
-  };
-
-  chart.width = function(_) {
-    if (!arguments.length) return width;
-    width = _;
-    return chart;
-  };
-
-  chart.height = function(_) {
-    if (!arguments.length) return height;
-    height = _;
-    return chart;
-  };
-
-  chart.color = function(_) {
-    if (!arguments.length) return color;
-    color = nv.utils.getColor(_);
-    legend.color(color);
-    return chart;
-  };
-
-  chart.showLegend = function(_) {
-    if (!arguments.length) return showLegend;
-    showLegend = _;
-    return chart;
-  };
-
-  chart.tooltips = function(_) {
-    if (!arguments.length) return tooltips;
-    tooltips = _;
-    return chart;
-  };
-
-  chart.tooltipContent = function(_) {
-    if (!arguments.length) return tooltip;
-    tooltip = _;
-    return chart;
-  };
-
-  chart.state = function(_) {
-    if (!arguments.length) return state;
-    state = _;
-    return chart;
-  };
-
-  chart.defaultState = function(_) {
-    if (!arguments.length) return defaultState;
-    defaultState = _;
-    return chart;
-  };
-
-  chart.noData = function(_) {
-    if (!arguments.length) return noData;
-    noData = _;
-    return chart;
-  };
-
-  //============================================================
-
-
-  return chart;
-}
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/linePlusBarWithFocusChart.js b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/linePlusBarWithFocusChart.js
deleted file mode 100755
index 2ef31137..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/linePlusBarWithFocusChart.js
+++ /dev/null
@@ -1,658 +0,0 @@
-
-nv.models.linePlusBarWithFocusChart = function() {
-  "use strict";
-  //============================================================
-  // Public Variables with Default Settings
-  //------------------------------------------------------------
-
-  var lines = nv.models.line()
-    , lines2 = nv.models.line()
-    , bars = nv.models.historicalBar()
-    , bars2 = nv.models.historicalBar()
-    , xAxis = nv.models.axis()
-    , x2Axis = nv.models.axis()
-    , y1Axis = nv.models.axis()
-    , y2Axis = nv.models.axis()
-    , y3Axis = nv.models.axis()
-    , y4Axis = nv.models.axis()
-    , legend = nv.models.legend()
-    , brush = d3.svg.brush()
-    ;
-
-  var margin = {top: 30, right: 30, bottom: 30, left: 60}
-    , margin2 = {top: 0, right: 30, bottom: 20, left: 60}
-    , width = null
-    , height = null
-    , height2 = 100
-    , getX = function(d) { return d.x }
-    , getY = function(d) { return d.y }
-    , color = nv.utils.defaultColor()
-    , showLegend = true
-    , extent
-    , brushExtent = null
-    , tooltips = true
-    , tooltip = function(key, x, y, e, graph) {
-        return '<h3>' + key + '</h3>' +
-               '<p>' +  y + ' at ' + x + '</p>';
-      }
-    , x
-    , x2
-    , y1
-    , y2
-    , y3
-    , y4
-    , noData = "No Data Available."
-    , dispatch = d3.dispatch('tooltipShow', 'tooltipHide', 'brush')
-    , transitionDuration = 0
-    ;
-
-  lines
-    .clipEdge(true)
-    ;
-  lines2
-    .interactive(false)
-    ;
-  xAxis
-    .orient('bottom')
-    .tickPadding(5)
-    ;
-  y1Axis
-    .orient('left')
-    ;
-  y2Axis
-    .orient('right')
-    ;
-  x2Axis
-    .orient('bottom')
-    .tickPadding(5)
-    ;
-  y3Axis
-    .orient('left')
-    ;
-  y4Axis
-    .orient('right')
-    ;
-
-  //============================================================
-
-
-  //============================================================
-  // Private Variables
-  //------------------------------------------------------------
-
-  var showTooltip = function(e, offsetElement) {
-    if (extent) {
-        e.pointIndex += Math.ceil(extent[0]);
-    }
-    var left = e.pos[0] + ( offsetElement.offsetLeft || 0 ),
-        top = e.pos[1] + ( offsetElement.offsetTop || 0),
-        x = xAxis.tickFormat()(lines.x()(e.point, e.pointIndex)),
-        y = (e.series.bar ? y1Axis : y2Axis).tickFormat()(lines.y()(e.point, e.pointIndex)),
-        content = tooltip(e.series.key, x, y, e, chart);
-
-    nv.tooltip.show([left, top], content, e.value < 0 ? 'n' : 's', null, offsetElement);
-  };
-
-  //------------------------------------------------------------
-
-
-
-  function chart(selection) {
-    selection.each(function(data) {
-      var container = d3.select(this),
-          that = this;
-
-      var availableWidth = (width  || parseInt(container.style('width')) || 960)
-                             - margin.left - margin.right,
-          availableHeight1 = (height || parseInt(container.style('height')) || 400)
-                             - margin.top - margin.bottom - height2,
-          availableHeight2 = height2 - margin2.top - margin2.bottom;
-
-      chart.update = function() { container.transition().duration(transitionDuration).call(chart); };
-      chart.container = this;
-
-
-      //------------------------------------------------------------
-      // Display No Data message if there's nothing to show.
-
-      if (!data || !data.length || !data.filter(function(d) { return d.values.length }).length) {
-        var noDataText = container.selectAll('.nv-noData').data([noData]);
-
-        noDataText.enter().append('text')
-          .attr('class', 'nvd3 nv-noData')
-          .attr('dy', '-.7em')
-          .style('text-anchor', 'middle');
-
-        noDataText
-          .attr('x', margin.left + availableWidth / 2)
-          .attr('y', margin.top + availableHeight1 / 2)
-          .text(function(d) { return d });
-
-        return chart;
-      } else {
-        container.selectAll('.nv-noData').remove();
-      }
-
-      //------------------------------------------------------------
-
-
-      //------------------------------------------------------------
-      // Setup Scales
-
-      var dataBars = data.filter(function(d) { return !d.disabled && d.bar });
-      var dataLines = data.filter(function(d) { return !d.bar }); // removed the !d.disabled clause here to fix Issue #240
-
-      x = bars.xScale();
-      x2 = x2Axis.scale();
-      y1 = bars.yScale();
-      y2 = lines.yScale();
-      y3 = bars2.yScale();
-      y4 = lines2.yScale();
-
-      var series1 = data
-        .filter(function(d) { return !d.disabled && d.bar })
-        .map(function(d) {
-          return d.values.map(function(d,i) {
-            return { x: getX(d,i), y: getY(d,i) }
-          })
-        });
-
-      var series2 = data
-        .filter(function(d) { return !d.disabled && !d.bar })
-        .map(function(d) {
-          return d.values.map(function(d,i) {
-            return { x: getX(d,i), y: getY(d,i) }
-          })
-        });
-
-      x   .range([0, availableWidth]);
-      
-      x2  .domain(d3.extent(d3.merge(series1.concat(series2)), function(d) { return d.x } ))
-          .range([0, availableWidth]);
-
-
-      //------------------------------------------------------------
-
-
-      //------------------------------------------------------------
-      // Setup containers and skeleton of chart
-
-      var wrap = container.selectAll('g.nv-wrap.nv-linePlusBar').data([data]);
-      var gEnter = wrap.enter().append('g').attr('class', 'nvd3 nv-wrap nv-linePlusBar').append('g');
-      var g = wrap.select('g');
-
-      gEnter.append('g').attr('class', 'nv-legendWrap');
-      
-      var focusEnter = gEnter.append('g').attr('class', 'nv-focus');
-      focusEnter.append('g').attr('class', 'nv-x nv-axis');
-      focusEnter.append('g').attr('class', 'nv-y1 nv-axis');
-      focusEnter.append('g').attr('class', 'nv-y2 nv-axis');
-      focusEnter.append('g').attr('class', 'nv-barsWrap');
-      focusEnter.append('g').attr('class', 'nv-linesWrap');
-
-      var contextEnter = gEnter.append('g').attr('class', 'nv-context');
-      contextEnter.append('g').attr('class', 'nv-x nv-axis');
-      contextEnter.append('g').attr('class', 'nv-y1 nv-axis');
-      contextEnter.append('g').attr('class', 'nv-y2 nv-axis');
-      contextEnter.append('g').attr('class', 'nv-barsWrap');
-      contextEnter.append('g').attr('class', 'nv-linesWrap');
-      contextEnter.append('g').attr('class', 'nv-brushBackground');
-      contextEnter.append('g').attr('class', 'nv-x nv-brush');
-
-
-      //------------------------------------------------------------
-
-
-      //------------------------------------------------------------
-      // Legend
-
-      if (showLegend) {
-        legend.width( availableWidth / 2 );
-
-        g.select('.nv-legendWrap')
-            .datum(data.map(function(series) {
-              series.originalKey = series.originalKey === undefined ? series.key : series.originalKey;
-              series.key = series.originalKey + (series.bar ? ' (left axis)' : ' (right axis)');
-              return series;
-            }))
-          .call(legend);
-
-        if ( margin.top != legend.height()) {
-          margin.top = legend.height();
-          availableHeight1 = (height || parseInt(container.style('height')) || 400)
-                             - margin.top - margin.bottom - height2;
-        }
-
-        g.select('.nv-legendWrap')
-            .attr('transform', 'translate(' + ( availableWidth / 2 ) + ',' + (-margin.top) +')');
-      }
-
-      //------------------------------------------------------------
-
-
-      wrap.attr('transform', 'translate(' + margin.left + ',' + margin.top + ')');
-
-
-      //------------------------------------------------------------
-      // Context Components
-
-      bars2
-        .width(availableWidth)
-        .height(availableHeight2)
-        .color(data.map(function(d,i) {
-          return d.color || color(d, i);
-        }).filter(function(d,i) { return !data[i].disabled && data[i].bar }));
-
-      lines2
-        .width(availableWidth)
-        .height(availableHeight2)
-        .color(data.map(function(d,i) {
-          return d.color || color(d, i);
-        }).filter(function(d,i) { return !data[i].disabled && !data[i].bar }));
-        
-      var bars2Wrap = g.select('.nv-context .nv-barsWrap')
-          .datum(dataBars.length ? dataBars : [{values:[]}]);
-
-      var lines2Wrap = g.select('.nv-context .nv-linesWrap')
-          .datum(!dataLines[0].disabled ? dataLines : [{values:[]}]);
-          
-      g.select('.nv-context')
-          .attr('transform', 'translate(0,' + ( availableHeight1 + margin.bottom + margin2.top) + ')')
-
-      bars2Wrap.transition().call(bars2);
-      lines2Wrap.transition().call(lines2);
-
-      //------------------------------------------------------------
-
-
-
-      //------------------------------------------------------------
-      // Setup Brush
-
-      brush
-        .x(x2)
-        .on('brush', onBrush);
-
-      if (brushExtent) brush.extent(brushExtent);
-
-      var brushBG = g.select('.nv-brushBackground').selectAll('g')
-          .data([brushExtent || brush.extent()])
-
-      var brushBGenter = brushBG.enter()
-          .append('g');
-
-      brushBGenter.append('rect')
-          .attr('class', 'left')
-          .attr('x', 0)
-          .attr('y', 0)
-          .attr('height', availableHeight2);
-
-      brushBGenter.append('rect')
-          .attr('class', 'right')
-          .attr('x', 0)
-          .attr('y', 0)
-          .attr('height', availableHeight2);
-
-      var gBrush = g.select('.nv-x.nv-brush')
-          .call(brush);
-      gBrush.selectAll('rect')
-          //.attr('y', -5)
-          .attr('height', availableHeight2);
-      gBrush.selectAll('.resize').append('path').attr('d', resizePath);
-
-      //------------------------------------------------------------
-
-      //------------------------------------------------------------
-      // Setup Secondary (Context) Axes
-
-      x2Axis
-        .ticks( availableWidth / 100 )
-        .tickSize(-availableHeight2, 0);
-
-      g.select('.nv-context .nv-x.nv-axis')
-          .attr('transform', 'translate(0,' + y3.range()[0] + ')');
-      g.select('.nv-context .nv-x.nv-axis').transition()
-          .call(x2Axis);
-
-
-      y3Axis
-        .scale(y3)
-        .ticks( availableHeight2 / 36 )
-        .tickSize( -availableWidth, 0);
-
-      g.select('.nv-context .nv-y1.nv-axis')
-          .style('opacity', dataBars.length ? 1 : 0)
-          .attr('transform', 'translate(0,' + x2.range()[0] + ')');
-          
-      g.select('.nv-context .nv-y1.nv-axis').transition()
-          .call(y3Axis);
-          
-
-      y4Axis
-        .scale(y4)
-        .ticks( availableHeight2 / 36 )
-        .tickSize(dataBars.length ? 0 : -availableWidth, 0); // Show the y2 rules only if y1 has none
-
-      g.select('.nv-context .nv-y2.nv-axis')
-          .style('opacity', dataLines.length ? 1 : 0)
-          .attr('transform', 'translate(' + x2.range()[1] + ',0)');
-
-      g.select('.nv-context .nv-y2.nv-axis').transition()
-          .call(y4Axis);
-          
-      //------------------------------------------------------------
-
-      //============================================================
-      // Event Handling/Dispatching (in chart's scope)
-      //------------------------------------------------------------
-
-      legend.dispatch.on('stateChange', function(newState) { 
-        chart.update();
-      });
-
-      dispatch.on('tooltipShow', function(e) {
-        if (tooltips) showTooltip(e, that.parentNode);
-      });
-
-      //============================================================
-
-
-      //============================================================
-      // Functions
-      //------------------------------------------------------------
-
-      // Taken from crossfilter (http://square.github.com/crossfilter/)
-      function resizePath(d) {
-        var e = +(d == 'e'),
-            x = e ? 1 : -1,
-            y = availableHeight2 / 3;
-        return 'M' + (.5 * x) + ',' + y
-            + 'A6,6 0 0 ' + e + ' ' + (6.5 * x) + ',' + (y + 6)
-            + 'V' + (2 * y - 6)
-            + 'A6,6 0 0 ' + e + ' ' + (.5 * x) + ',' + (2 * y)
-            + 'Z'
-            + 'M' + (2.5 * x) + ',' + (y + 8)
-            + 'V' + (2 * y - 8)
-            + 'M' + (4.5 * x) + ',' + (y + 8)
-            + 'V' + (2 * y - 8);
-      }
-
-
-      function updateBrushBG() {
-        if (!brush.empty()) brush.extent(brushExtent);
-        brushBG
-            .data([brush.empty() ? x2.domain() : brushExtent])
-            .each(function(d,i) {
-              var leftWidth = x2(d[0]) - x2.range()[0],
-                  rightWidth = x2.range()[1] - x2(d[1]);
-              d3.select(this).select('.left')
-                .attr('width',  leftWidth < 0 ? 0 : leftWidth);
-
-              d3.select(this).select('.right')
-                .attr('x', x2(d[1]))
-                .attr('width', rightWidth < 0 ? 0 : rightWidth);
-            });
-      }
-
-
-      function onBrush() {
-        brushExtent = brush.empty() ? null : brush.extent();
-        extent = brush.empty() ? x2.domain() : brush.extent();
-
-
-        dispatch.brush({extent: extent, brush: brush});
-
-        updateBrushBG();
-
-
-        //------------------------------------------------------------
-        // Prepare Main (Focus) Bars and Lines
-        
-        bars
-        .width(availableWidth)
-        .height(availableHeight1)
-        .color(data.map(function(d,i) {
-          return d.color || color(d, i);
-        }).filter(function(d,i) { return !data[i].disabled && data[i].bar }));
-
-
-        lines
-        .width(availableWidth)
-        .height(availableHeight1)
-        .color(data.map(function(d,i) {
-          return d.color || color(d, i);
-        }).filter(function(d,i) { return !data[i].disabled && !data[i].bar }));
-
-        var focusBarsWrap = g.select('.nv-focus .nv-barsWrap')
-            .datum(!dataBars.length ? [{values:[]}] :
-              dataBars
-                .map(function(d,i) {
-                  return {
-                    key: d.key,
-                    values: d.values.filter(function(d,i) {
-                      return bars.x()(d,i) >= extent[0] && bars.x()(d,i) <= extent[1];
-                    })
-                  }
-                })
-            );
-        
-        var focusLinesWrap = g.select('.nv-focus .nv-linesWrap')
-            .datum(dataLines[0].disabled ? [{values:[]}] :
-              dataLines
-                .map(function(d,i) {
-                  return {
-                    key: d.key,
-                    values: d.values.filter(function(d,i) {
-                      return lines.x()(d,i) >= extent[0] && lines.x()(d,i) <= extent[1];
-                    })
-                  }
-                })
-             );
-                 
-        //------------------------------------------------------------
-        
-        
-        //------------------------------------------------------------
-        // Update Main (Focus) X Axis
-
-        if (dataBars.length) {
-            x = bars.xScale();
-        } else {
-            x = lines.xScale();
-        }
-        
-        xAxis
-        .scale(x)
-        .ticks( availableWidth / 100 )
-        .tickSize(-availableHeight1, 0);
-
-        xAxis.domain([Math.ceil(extent[0]), Math.floor(extent[1])]);
-        
-        g.select('.nv-x.nv-axis').transition().duration(transitionDuration)
-          .call(xAxis);
-        //------------------------------------------------------------
-        
-        
-        //------------------------------------------------------------
-        // Update Main (Focus) Bars and Lines
-
-        focusBarsWrap.transition().duration(transitionDuration).call(bars);
-        focusLinesWrap.transition().duration(transitionDuration).call(lines);
-        
-        //------------------------------------------------------------
-        
-          
-        //------------------------------------------------------------
-        // Setup and Update Main (Focus) Y Axes
-        
-        g.select('.nv-focus .nv-x.nv-axis')
-          .attr('transform', 'translate(0,' + y1.range()[0] + ')');
-
-
-        y1Axis
-        .scale(y1)
-        .ticks( availableHeight1 / 36 )
-        .tickSize(-availableWidth, 0);
-
-        g.select('.nv-focus .nv-y1.nv-axis')
-          .style('opacity', dataBars.length ? 1 : 0);
-
-
-        y2Axis
-        .scale(y2)
-        .ticks( availableHeight1 / 36 )
-        .tickSize(dataBars.length ? 0 : -availableWidth, 0); // Show the y2 rules only if y1 has none
-
-        g.select('.nv-focus .nv-y2.nv-axis')
-          .style('opacity', dataLines.length ? 1 : 0)
-          .attr('transform', 'translate(' + x.range()[1] + ',0)');
-
-        g.select('.nv-focus .nv-y1.nv-axis').transition().duration(transitionDuration)
-            .call(y1Axis);
-        g.select('.nv-focus .nv-y2.nv-axis').transition().duration(transitionDuration)
-            .call(y2Axis);
-      }
-
-      //============================================================
-
-      onBrush();
-
-    });
-
-    return chart;
-  }
-
-
-  //============================================================
-  // Event Handling/Dispatching (out of chart's scope)
-  //------------------------------------------------------------
-
-  lines.dispatch.on('elementMouseover.tooltip', function(e) {
-    e.pos = [e.pos[0] +  margin.left, e.pos[1] + margin.top];
-    dispatch.tooltipShow(e);
-  });
-
-  lines.dispatch.on('elementMouseout.tooltip', function(e) {
-    dispatch.tooltipHide(e);
-  });
-
-  bars.dispatch.on('elementMouseover.tooltip', function(e) {
-    e.pos = [e.pos[0] +  margin.left, e.pos[1] + margin.top];
-    dispatch.tooltipShow(e);
-  });
-
-  bars.dispatch.on('elementMouseout.tooltip', function(e) {
-    dispatch.tooltipHide(e);
-  });
-
-  dispatch.on('tooltipHide', function() {
-    if (tooltips) nv.tooltip.cleanup();
-  });
-
-  //============================================================
-
-
-  //============================================================
-  // Expose Public Variables
-  //------------------------------------------------------------
-
-  // expose chart's sub-components
-  chart.dispatch = dispatch;
-  chart.legend = legend;
-  chart.lines = lines;
-  chart.lines2 = lines2;
-  chart.bars = bars;
-  chart.bars2 = bars2;
-  chart.xAxis = xAxis;
-  chart.x2Axis = x2Axis;
-  chart.y1Axis = y1Axis;
-  chart.y2Axis = y2Axis;
-  chart.y3Axis = y3Axis;
-  chart.y4Axis = y4Axis;
-
-  d3.rebind(chart, lines, 'defined', 'size', 'clipVoronoi', 'interpolate');
-  //TODO: consider rebinding x, y and some other stuff, and simply do soemthign lile bars.x(lines.x()), etc.
-  //d3.rebind(chart, lines, 'x', 'y', 'size', 'xDomain', 'yDomain', 'xRange', 'yRange', 'forceX', 'forceY', 'interactive', 'clipEdge', 'clipVoronoi', 'id');
-
-  chart.options = nv.utils.optionsFunc.bind(chart);
-  
-  chart.x = function(_) {
-    if (!arguments.length) return getX;
-    getX = _;
-    lines.x(_);
-    bars.x(_);
-    return chart;
-  };
-
-  chart.y = function(_) {
-    if (!arguments.length) return getY;
-    getY = _;
-    lines.y(_);
-    bars.y(_);
-    return chart;
-  };
-
-  chart.margin = function(_) {
-    if (!arguments.length) return margin;
-    margin.top    = typeof _.top    != 'undefined' ? _.top    : margin.top;
-    margin.right  = typeof _.right  != 'undefined' ? _.right  : margin.right;
-    margin.bottom = typeof _.bottom != 'undefined' ? _.bottom : margin.bottom;
-    margin.left   = typeof _.left   != 'undefined' ? _.left   : margin.left;
-    return chart;
-  };
-
-  chart.width = function(_) {
-    if (!arguments.length) return width;
-    width = _;
-    return chart;
-  };
-
-  chart.height = function(_) {
-    if (!arguments.length) return height;
-    height = _;
-    return chart;
-  };
-
-  chart.color = function(_) {
-    if (!arguments.length) return color;
-    color = nv.utils.getColor(_);
-    legend.color(color);
-    return chart;
-  };
-
-  chart.showLegend = function(_) {
-    if (!arguments.length) return showLegend;
-    showLegend = _;
-    return chart;
-  };
-
-  chart.tooltips = function(_) {
-    if (!arguments.length) return tooltips;
-    tooltips = _;
-    return chart;
-  };
-
-  chart.tooltipContent = function(_) {
-    if (!arguments.length) return tooltip;
-    tooltip = _;
-    return chart;
-  };
-
-  chart.noData = function(_) {
-    if (!arguments.length) return noData;
-    noData = _;
-    return chart;
-  };
-
-  chart.brushExtent = function(_) {
-    if (!arguments.length) return brushExtent;
-    brushExtent = _;
-    return chart;
-  };
-
-
-  //============================================================
-
-
-  return chart;
-}
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/lineWithFisheye.js b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/lineWithFisheye.js
deleted file mode 100755
index 2b411672..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/lineWithFisheye.js
+++ /dev/null
@@ -1,200 +0,0 @@
-
-nv.models.line = function() {
-  "use strict";
-  //Default Settings
-  var margin = {top: 0, right: 0, bottom: 0, left: 0},
-      width = 960,
-      height = 500,
-      color = nv.utils.defaultColor(), // function that returns colors
-      id = Math.floor(Math.random() * 10000), //Create semi-unique ID incase user doesn't select one
-      getX = function(d) { return d.x }, // accessor to get the x value from a data point
-      getY = function(d) { return d.y }, // accessor to get the y value from a data point
-      clipEdge = false, // if true, masks lines within x and y scale
-      interpolate = "linear"; // controls the line interpolation
-
-
-  var scatter = nv.models.scatter()
-                  .id(id)
-                  .size(16) // default size
-                  .sizeDomain([16,256]), //set to speed up calculation, needs to be unset if there is a custom size accessor
-      //x = scatter.xScale(),
-      //y = scatter.yScale(),
-      x, y,
-      x0, y0, timeoutID;
-
-
-  function chart(selection) {
-    selection.each(function(data) {
-      var availableWidth = width - margin.left - margin.right,
-          availableHeight = height - margin.top - margin.bottom;
-
-      //get the scales inscase scatter scale was set manually
-      x = x || scatter.xScale();
-      y = y || scatter.yScale();
-
-      //store old scales if they exist
-      x0 = x0 || x;
-      y0 = y0 || y;
-
-
-      var wrap = d3.select(this).selectAll('g.nv-wrap.nv-line').data([data]);
-      var wrapEnter = wrap.enter().append('g').attr('class', 'nvd3 nv-wrap nv-line');
-      var defsEnter = wrapEnter.append('defs');
-      var gEnter = wrapEnter.append('g');
-      var g = wrap.select('g')
-
-      wrapEnter.append('g').attr('class', 'nv-scatterWrap');
-      var scatterWrap = wrap.select('.nv-scatterWrap').datum(data);
-
-      gEnter.append('g').attr('class', 'nv-groups');
-
-
-      scatter
-        .width(availableWidth)
-        .height(availableHeight)
-
-      d3.transition(scatterWrap).call(scatter);
-
-
-      wrap.attr('transform', 'translate(' + margin.left + ',' + margin.top + ')');
-
-
-      defsEnter.append('clipPath')
-          .attr('id', 'nv-edge-clip-' + id)
-        .append('rect');
-
-      wrap.select('#nv-edge-clip-' + id + ' rect')
-          .attr('width', availableWidth)
-          .attr('height', availableHeight);
-
-      g   .attr('clip-path', clipEdge ? 'url(#nv-edge-clip-' + id + ')' : '');
-      scatterWrap
-          .attr('clip-path', clipEdge ? 'url(#nv-edge-clip-' + id + ')' : '');
-
-
-
-
-      var groups = wrap.select('.nv-groups').selectAll('.nv-group')
-          .data(function(d) { return d }, function(d) { return d.key });
-      groups.enter().append('g')
-          .style('stroke-opacity', 1e-6)
-          .style('fill-opacity', 1e-6);
-      d3.transition(groups.exit())
-          .style('stroke-opacity', 1e-6)
-          .style('fill-opacity', 1e-6)
-          .remove();
-      groups
-          .attr('class', function(d,i) { return 'nv-group nv-series-' + i })
-          .classed('hover', function(d) { return d.hover })
-          .style('fill', function(d,i){ return color(d, i) })
-          .style('stroke', function(d,i){ return color(d, i) })
-      d3.transition(groups)
-          .style('stroke-opacity', 1)
-          .style('fill-opacity', .5)
-
-
-      var paths = groups.selectAll('path')
-          .data(function(d, i) { return [d.values] });
-      paths.enter().append('path')
-          .attr('class', 'nv-line')
-          .attr('d', d3.svg.line()
-            .interpolate(interpolate)
-            .x(function(d,i) { return x0(getX(d,i)) })
-            .y(function(d,i) { return y0(getY(d,i)) })
-          );
-      d3.transition(groups.exit().selectAll('path'))
-          .attr('d', d3.svg.line()
-            .interpolate(interpolate)
-            .x(function(d,i) { return x(getX(d,i)) })
-            .y(function(d,i) { return y(getY(d,i)) })
-          )
-          .remove(); // redundant? line is already being removed
-      d3.transition(paths)
-          .attr('d', d3.svg.line()
-            .interpolate(interpolate)
-            .x(function(d,i) { return x(getX(d,i)) })
-            .y(function(d,i) { return y(getY(d,i)) })
-          );
-
-
-      //store old scales for use in transitions on update, to animate from old to new positions
-      x0 = x.copy();
-      y0 = y.copy();
-
-    });
-
-    return chart;
-  }
-
-
-  chart.dispatch = scatter.dispatch;
-
-  d3.rebind(chart, scatter, 'interactive', 'size', 'xScale', 'yScale', 'zScale', 'xDomain', 'yDomain', 'xRange', 'yRange', 'sizeDomain', 'forceX', 'forceY', 'forceSize', 'clipVoronoi', 'clipRadius');
-
-  chart.options = nv.utils.optionsFunc.bind(chart);
-  
-  chart.margin = function(_) {
-    if (!arguments.length) return margin;
-    margin = _;
-    return chart;
-  };
-
-  chart.width = function(_) {
-    if (!arguments.length) return width;
-    width = _;
-    return chart;
-  };
-
-  chart.height = function(_) {
-    if (!arguments.length) return height;
-    height = _;
-    return chart;
-  };
-
-  chart.x = function(_) {
-    if (!arguments.length) return getX;
-    getX = _;
-    scatter.x(_);
-    return chart;
-  };
-
-  chart.y = function(_) {
-    if (!arguments.length) return getY;
-    getY = _;
-    scatter.y(_);
-    return chart;
-  };
-
-  chart.clipEdge = function(_) {
-    if (!arguments.length) return clipEdge;
-    clipEdge = _;
-    return chart;
-  };
-
-  chart.color = function(_) {
-    if (!arguments.length) return color;
-    color = nv.utils.getColor(_);
-    scatter.color(color);
-    return chart;
-  };
-
-  chart.id = function(_) {
-    if (!arguments.length) return id;
-    id = _;
-    return chart;
-  };
-
-  chart.interpolate = function(_) {
-    if (!arguments.length) return interpolate;
-    interpolate = _;
-    return chart;
-  };
-
-  chart.defined = function(_) {
-    if (!arguments.length) return defined;
-    defined = _;
-    return chart;
-  };
-
-  return chart;
-}
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/lineWithFisheyeChart.js b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/lineWithFisheyeChart.js
deleted file mode 100755
index ad894190..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/lineWithFisheyeChart.js
+++ /dev/null
@@ -1,297 +0,0 @@
-
-nv.models.lineChart = function() {
-  "use strict";
-  var margin = {top: 30, right: 20, bottom: 50, left: 60},
-      color = nv.utils.defaultColor(),
-      width = null, 
-      height = null,
-      showLegend = true,
-      showControls = true,
-      fisheye = 0,
-      pauseFisheye = false,
-      tooltips = true,
-      tooltip = function(key, x, y, e, graph) { 
-        return '<h3>' + key + '</h3>' +
-               '<p>' +  y + ' at ' + x + '</p>'
-      },
-      noData = "No Data Available."
-      ;
-
-
-  var x = d3.fisheye.scale(d3.scale.linear).distortion(0);
-
-  var lines = nv.models.line().xScale(x),
-      //x = lines.xScale(),
-      y = lines.yScale(),
-      xAxis = nv.models.axis().scale(x).orient('bottom').tickPadding(5),
-      yAxis = nv.models.axis().scale(y).orient('left'),
-      legend = nv.models.legend().height(30),
-      controls = nv.models.legend().height(30).updateState(false),
-      dispatch = d3.dispatch('tooltipShow', 'tooltipHide');
-
-
-  var showTooltip = function(e, offsetElement) {
-    var left = e.pos[0] + ( offsetElement.offsetLeft || 0 ),
-        top = e.pos[1] + ( offsetElement.offsetTop || 0),
-        x = xAxis.tickFormat()(lines.x()(e.point, e.pointIndex)),
-        y = yAxis.tickFormat()(lines.y()(e.point, e.pointIndex)),
-        content = tooltip(e.series.key, x, y, e, chart);
-
-    nv.tooltip.show([left, top], content, null, null, offsetElement);
-  };
-
-
-  var controlsData = [
-    { key: 'Magnify', disabled: true }
-  ];
-
-
-  function chart(selection) {
-    selection.each(function(data) {
-      var container = d3.select(this),
-          that = this;
-
-      var availableWidth = (width  || parseInt(container.style('width')) || 960)
-                             - margin.left - margin.right,
-          availableHeight = (height || parseInt(container.style('height')) || 400)
-                             - margin.top - margin.bottom;
-
-    chart.update = function() { container.transition().call(chart) };
-    chart.container = this; // I need a reference to the container in order to have outside code check if the chart is visible or not
-      //------------------------------------------------------------
-      // Display No Data message if there's nothing to show.
-
-      if (!data || !data.length || !data.filter(function(d) { return d.values.length }).length) {
-        container.append('text')
-          .attr('class', 'nvd3 nv-noData')
-          .attr('x', availableWidth / 2)
-          .attr('y', availableHeight / 2)
-          .attr('dy', '-.7em')
-          .style('text-anchor', 'middle')
-          .text(noData);
-          return chart;
-      } else {
-        container.select('.nv-noData').remove();
-      }
-
-      //------------------------------------------------------------
-
-
-
-      var wrap = container.selectAll('g.nv-wrap.nv-lineChart').data([data]);
-      var gEnter = wrap.enter().append('g').attr('class', 'nvd3 nv-wrap nv-lineChart').append('g');
-
-
-      gEnter.append('rect')
-          .attr('class', 'nvd3 nv-background')
-          .attr('width', availableWidth)
-          .attr('height', availableHeight);
-
-
-      gEnter.append('g').attr('class', 'nv-x nv-axis');
-      gEnter.append('g').attr('class', 'nv-y nv-axis');
-      gEnter.append('g').attr('class', 'nv-linesWrap');
-      gEnter.append('g').attr('class', 'nv-legendWrap');
-      gEnter.append('g').attr('class', 'nv-controlsWrap');
-      gEnter.append('g').attr('class', 'nv-controlsWrap');
-
-
-      var g = wrap.select('g');
-
-
-
-
-      if (showLegend) {
-        legend.width(availableWidth);
-
-        g.select('.nv-legendWrap')
-            .datum(data)
-            .call(legend);
-
-        if ( margin.top != legend.height()) {
-          margin.top = legend.height();
-          availableHeight = (height || parseInt(container.style('height')) || 400)
-                             - margin.top - margin.bottom;
-        }
-
-        g.select('.nv-legendWrap')
-            .attr('transform', 'translate(0,' + (-margin.top) +')')
-      }
-
-      if (showControls) {
-        controls.width(180).color(['#444']);
-        g.select('.nv-controlsWrap')
-            .datum(controlsData)
-            .attr('transform', 'translate(0,' + (-margin.top) +')')
-            .call(controls);
-      }
-
-
-
-      lines
-        .width(availableWidth)
-        .height(availableHeight)
-        .color(data.map(function(d,i) {
-          return d.color || color(d, i);
-        }).filter(function(d,i) { return !data[i].disabled }));
-
-
-
-      g.attr('transform', 'translate(' + margin.left + ',' + margin.top + ')');
-
-
-      var linesWrap = g.select('.nv-linesWrap')
-          .datum(data.filter(function(d) { return !d.disabled }))
-
-      d3.transition(linesWrap).call(lines);
-
-
-
-      xAxis
-        //.scale(x)
-        .ticks( availableWidth / 100 )
-        .tickSize(-availableHeight, 0);
-
-      g.select('.nv-x.nv-axis')
-          .attr('transform', 'translate(0,' + y.range()[0] + ')');
-      d3.transition(g.select('.nv-x.nv-axis'))
-          .call(xAxis);
-
-
-      yAxis
-        //.scale(y)
-        .ticks( availableHeight / 36 )
-        .tickSize( -availableWidth, 0);
-
-      d3.transition(g.select('.nv-y.nv-axis'))
-          .call(yAxis);
-
-
-
-      g.select('.nv-background').on('mousemove', updateFisheye);
-      g.select('.nv-background').on('click', function() { pauseFisheye = !pauseFisheye; });
-      //g.select('.point-paths').on('mousemove', updateFisheye);
-
-
-      function updateFisheye() {
-        if (pauseFisheye) {
-          //g.select('.background') .style('pointer-events', 'none');
-          g.select('.nv-point-paths').style('pointer-events', 'all');
-          return false;
-        }
-
-        g.select('.nv-background') .style('pointer-events', 'all');
-        g.select('.nv-point-paths').style('pointer-events', 'none' );
-
-        var mouse = d3.mouse(this);
-        linesWrap.call(lines);
-        g.select('.nv-x.nv-axis').call(xAxis);
-        x.distortion(fisheye).focus(mouse[0]);
-      }
-
-
-      controls.dispatch.on('legendClick', function(d,i) { 
-        d.disabled = !d.disabled;
-
-        fisheye = d.disabled ? 0 : 5;
-        g.select('.nv-background') .style('pointer-events', d.disabled ? 'none' : 'all');
-        g.select('.nv-point-paths').style('pointer-events', d.disabled ? 'all' : 'none' );
-
-        //scatter.interactive(d.disabled);
-        //tooltips = d.disabled;
-
-        if (d.disabled) {
-          x.distortion(fisheye).focus(0);
-
-          linesWrap.call(lines);
-          g.select('.nv-x.nv-axis').call(xAxis);
-        } else {
-          pauseFisheye = false;
-        }
-
-        chart.update();
-      });
-
-
-      legend.dispatch.on('stateChange', function(newState) { 
-        chart.update();
-      });
-
-      lines.dispatch.on('elementMouseover.tooltip', function(e) {
-        e.pos = [e.pos[0] +  margin.left, e.pos[1] + margin.top];
-        dispatch.tooltipShow(e);
-      });
-      if (tooltips) dispatch.on('tooltipShow', function(e) { showTooltip(e, that.parentNode) } ); // TODO: maybe merge with above?
-
-      lines.dispatch.on('elementMouseout.tooltip', function(e) {
-        dispatch.tooltipHide(e);
-      });
-      if (tooltips) dispatch.on('tooltipHide', nv.tooltip.cleanup);
-
-    });
-
-    return chart;
-  }
-
-
-  chart.dispatch = dispatch;
-  chart.legend = legend;
-  chart.xAxis = xAxis;
-  chart.yAxis = yAxis;
-
-  d3.rebind(chart, lines, 'defined', 'x', 'y', 'size', 'xDomain', 'yDomain', 'xRange', 'yRange', 'forceX', 'forceY', 'interactive', 'clipEdge', 'clipVoronoi', 'id', 'interpolate');
-
-  chart.options = nv.utils.optionsFunc.bind(chart);
-  
-  chart.margin = function(_) {
-    if (!arguments.length) return margin;
-    margin = _;
-    return chart;
-  };
-
-  chart.width = function(_) {
-    if (!arguments.length) return width;
-    width = _;
-    return chart;
-  };
-
-  chart.height = function(_) {
-    if (!arguments.length) return height;
-    height = _;
-    return chart;
-  };
-
-  chart.color = function(_) {
-    if (!arguments.length) return color;
-    color = nv.utils.getColor(_);
-    legend.color(color);
-    return chart;
-  };
-
-  chart.showLegend = function(_) {
-    if (!arguments.length) return showLegend;
-    showLegend = _;
-    return chart;
-  };
-
-  chart.tooltips = function(_) {
-    if (!arguments.length) return tooltips;
-    tooltips = _;
-    return chart;
-  };
-
-  chart.tooltipContent = function(_) {
-    if (!arguments.length) return tooltip;
-    tooltip = _;
-    return chart;
-  };
-
-  chart.noData = function(_) {
-    if (!arguments.length) return noData;
-    noData = _;
-    return chart;
-  };
-
-
-  return chart;
-}
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/lineWithFocusChart.js b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/lineWithFocusChart.js
deleted file mode 100755
index 0afd28bd..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/lineWithFocusChart.js
+++ /dev/null
@@ -1,574 +0,0 @@
-nv.models.lineWithFocusChart = function() {
-  "use strict";
-  //============================================================
-  // Public Variables with Default Settings
-  //------------------------------------------------------------
-
-  var lines = nv.models.line()
-    , lines2 = nv.models.line()
-    , xAxis = nv.models.axis()
-    , yAxis = nv.models.axis()
-    , x2Axis = nv.models.axis()
-    , y2Axis = nv.models.axis()
-    , legend = nv.models.legend()
-    , brush = d3.svg.brush()
-    ;
-
-  var margin = {top: 30, right: 30, bottom: 30, left: 60}
-    , margin2 = {top: 0, right: 30, bottom: 20, left: 60}
-    , color = nv.utils.defaultColor()
-    , width = null
-    , height = null
-    , height2 = 100
-    , x
-    , y
-    , x2
-    , y2
-    , showLegend = true
-    , brushExtent = null
-    , tooltips = true
-    , tooltip = function(key, x, y, e, graph) {
-        return '<h3>' + key + '</h3>' +
-               '<p>' +  y + ' at ' + x + '</p>'
-      }
-    , noData = "No Data Available."
-    , dispatch = d3.dispatch('tooltipShow', 'tooltipHide', 'brush')
-    , transitionDuration = 250
-    ;
-
-  lines
-    .clipEdge(true)
-    ;
-  lines2
-    .interactive(false)
-    ;
-  xAxis
-    .orient('bottom')
-    .tickPadding(5)
-    ;
-  yAxis
-    .orient('left')
-    ;
-  x2Axis
-    .orient('bottom')
-    .tickPadding(5)
-    ;
-  y2Axis
-    .orient('left')
-    ;
-  //============================================================
-
-
-  //============================================================
-  // Private Variables
-  //------------------------------------------------------------
-
-  var showTooltip = function(e, offsetElement) {
-    var left = e.pos[0] + ( offsetElement.offsetLeft || 0 ),
-        top = e.pos[1] + ( offsetElement.offsetTop || 0),
-        x = xAxis.tickFormat()(lines.x()(e.point, e.pointIndex)),
-        y = yAxis.tickFormat()(lines.y()(e.point, e.pointIndex)),
-        content = tooltip(e.series.key, x, y, e, chart);
-
-    nv.tooltip.show([left, top], content, null, null, offsetElement);
-  };
-
-  //============================================================
-
-
-  function chart(selection) {
-    selection.each(function(data) {
-      var container = d3.select(this),
-          that = this;
-
-      var availableWidth = (width  || parseInt(container.style('width')) || 960)
-                             - margin.left - margin.right,
-          availableHeight1 = (height || parseInt(container.style('height')) || 400)
-                             - margin.top - margin.bottom - height2,
-          availableHeight2 = height2 - margin2.top - margin2.bottom;
-
-      chart.update = function() { container.transition().duration(transitionDuration).call(chart) };
-      chart.container = this;
-
-
-      //------------------------------------------------------------
-      // Display No Data message if there's nothing to show.
-
-      if (!data || !data.length || !data.filter(function(d) { return d.values.length }).length) {
-        var noDataText = container.selectAll('.nv-noData').data([noData]);
-
-        noDataText.enter().append('text')
-          .attr('class', 'nvd3 nv-noData')
-          .attr('dy', '-.7em')
-          .style('text-anchor', 'middle');
-
-        noDataText
-          .attr('x', margin.left + availableWidth / 2)
-          .attr('y', margin.top + availableHeight1 / 2)
-          .text(function(d) { return d });
-
-        return chart;
-      } else {
-        container.selectAll('.nv-noData').remove();
-      }
-
-      //------------------------------------------------------------
-
-
-      //------------------------------------------------------------
-      // Setup Scales
-
-      x = lines.xScale();
-      y = lines.yScale();
-      x2 = lines2.xScale();
-      y2 = lines2.yScale();
-
-      //------------------------------------------------------------
-
-
-      //------------------------------------------------------------
-      // Setup containers and skeleton of chart
-
-      var wrap = container.selectAll('g.nv-wrap.nv-lineWithFocusChart').data([data]);
-      var gEnter = wrap.enter().append('g').attr('class', 'nvd3 nv-wrap nv-lineWithFocusChart').append('g');
-      var g = wrap.select('g');
-
-      gEnter.append('g').attr('class', 'nv-legendWrap');
-
-      var focusEnter = gEnter.append('g').attr('class', 'nv-focus');
-      focusEnter.append('g').attr('class', 'nv-x nv-axis');
-      focusEnter.append('g').attr('class', 'nv-y nv-axis');
-      focusEnter.append('g').attr('class', 'nv-linesWrap');
-
-      var contextEnter = gEnter.append('g').attr('class', 'nv-context');
-      contextEnter.append('g').attr('class', 'nv-x nv-axis');
-      contextEnter.append('g').attr('class', 'nv-y nv-axis');
-      contextEnter.append('g').attr('class', 'nv-linesWrap');
-      contextEnter.append('g').attr('class', 'nv-brushBackground');
-      contextEnter.append('g').attr('class', 'nv-x nv-brush');
-
-      //------------------------------------------------------------
-
-
-      //------------------------------------------------------------
-      // Legend
-
-      if (showLegend) {
-        legend.width(availableWidth);
-
-        g.select('.nv-legendWrap')
-            .datum(data)
-            .call(legend);
-
-        if ( margin.top != legend.height()) {
-          margin.top = legend.height();
-          availableHeight1 = (height || parseInt(container.style('height')) || 400)
-                             - margin.top - margin.bottom - height2;
-        }
-
-        g.select('.nv-legendWrap')
-            .attr('transform', 'translate(0,' + (-margin.top) +')')
-      }
-
-      //------------------------------------------------------------
-
-
-      wrap.attr('transform', 'translate(' + margin.left + ',' + margin.top + ')');
-
-
-      //------------------------------------------------------------
-      // Main Chart Component(s)
-
-      lines
-        .width(availableWidth)
-        .height(availableHeight1)
-        .color(
-          data
-            .map(function(d,i) {
-              return d.color || color(d, i);
-            })
-            .filter(function(d,i) {
-              return !data[i].disabled;
-          })
-        );
-
-      lines2
-        .defined(lines.defined())
-        .width(availableWidth)
-        .height(availableHeight2)
-        .color(
-          data
-            .map(function(d,i) {
-              return d.color || color(d, i);
-            })
-            .filter(function(d,i) {
-              return !data[i].disabled;
-          })
-        );
-
-      g.select('.nv-context')
-          .attr('transform', 'translate(0,' + ( availableHeight1 + margin.bottom + margin2.top) + ')')
-
-      var contextLinesWrap = g.select('.nv-context .nv-linesWrap')
-          .datum(data.filter(function(d) { return !d.disabled }))
-
-      d3.transition(contextLinesWrap).call(lines2);
-
-      //------------------------------------------------------------
-
-
-      /*
-      var focusLinesWrap = g.select('.nv-focus .nv-linesWrap')
-          .datum(data.filter(function(d) { return !d.disabled }))
-
-      d3.transition(focusLinesWrap).call(lines);
-     */
-
-
-      //------------------------------------------------------------
-      // Setup Main (Focus) Axes
-
-      xAxis
-        .scale(x)
-        .ticks( availableWidth / 100 )
-        .tickSize(-availableHeight1, 0);
-
-      yAxis
-        .scale(y)
-        .ticks( availableHeight1 / 36 )
-        .tickSize( -availableWidth, 0);
-
-      g.select('.nv-focus .nv-x.nv-axis')
-          .attr('transform', 'translate(0,' + availableHeight1 + ')');
-
-      //------------------------------------------------------------
-
-
-      //------------------------------------------------------------
-      // Setup Brush
-
-      brush
-        .x(x2)
-        .on('brush', function() {
-            //When brushing, turn off transitions because chart needs to change immediately.
-            var oldTransition = chart.transitionDuration();
-            chart.transitionDuration(0); 
-            onBrush();
-            chart.transitionDuration(oldTransition);
-        });
-
-      if (brushExtent) brush.extent(brushExtent);
-
-      var brushBG = g.select('.nv-brushBackground').selectAll('g')
-          .data([brushExtent || brush.extent()])
-
-      var brushBGenter = brushBG.enter()
-          .append('g');
-
-      brushBGenter.append('rect')
-          .attr('class', 'left')
-          .attr('x', 0)
-          .attr('y', 0)
-          .attr('height', availableHeight2);
-
-      brushBGenter.append('rect')
-          .attr('class', 'right')
-          .attr('x', 0)
-          .attr('y', 0)
-          .attr('height', availableHeight2);
-
-      var gBrush = g.select('.nv-x.nv-brush')
-          .call(brush);
-      gBrush.selectAll('rect')
-          //.attr('y', -5)
-          .attr('height', availableHeight2);
-      gBrush.selectAll('.resize').append('path').attr('d', resizePath);
-
-      onBrush();
-
-      //------------------------------------------------------------
-
-
-      //------------------------------------------------------------
-      // Setup Secondary (Context) Axes
-
-      x2Axis
-        .scale(x2)
-        .ticks( availableWidth / 100 )
-        .tickSize(-availableHeight2, 0);
-
-      g.select('.nv-context .nv-x.nv-axis')
-          .attr('transform', 'translate(0,' + y2.range()[0] + ')');
-      d3.transition(g.select('.nv-context .nv-x.nv-axis'))
-          .call(x2Axis);
-
-
-      y2Axis
-        .scale(y2)
-        .ticks( availableHeight2 / 36 )
-        .tickSize( -availableWidth, 0);
-
-      d3.transition(g.select('.nv-context .nv-y.nv-axis'))
-          .call(y2Axis);
-
-      g.select('.nv-context .nv-x.nv-axis')
-          .attr('transform', 'translate(0,' + y2.range()[0] + ')');
-
-      //------------------------------------------------------------
-
-
-      //============================================================
-      // Event Handling/Dispatching (in chart's scope)
-      //------------------------------------------------------------
-
-      legend.dispatch.on('stateChange', function(newState) { 
-        chart.update();
-      });
-
-      dispatch.on('tooltipShow', function(e) {
-        if (tooltips) showTooltip(e, that.parentNode);
-      });
-
-      //============================================================
-
-
-      //============================================================
-      // Functions
-      //------------------------------------------------------------
-
-      // Taken from crossfilter (http://square.github.com/crossfilter/)
-      function resizePath(d) {
-        var e = +(d == 'e'),
-            x = e ? 1 : -1,
-            y = availableHeight2 / 3;
-        return 'M' + (.5 * x) + ',' + y
-            + 'A6,6 0 0 ' + e + ' ' + (6.5 * x) + ',' + (y + 6)
-            + 'V' + (2 * y - 6)
-            + 'A6,6 0 0 ' + e + ' ' + (.5 * x) + ',' + (2 * y)
-            + 'Z'
-            + 'M' + (2.5 * x) + ',' + (y + 8)
-            + 'V' + (2 * y - 8)
-            + 'M' + (4.5 * x) + ',' + (y + 8)
-            + 'V' + (2 * y - 8);
-      }
-
-
-      function updateBrushBG() {
-        if (!brush.empty()) brush.extent(brushExtent);
-        brushBG
-            .data([brush.empty() ? x2.domain() : brushExtent])
-            .each(function(d,i) {
-              var leftWidth = x2(d[0]) - x.range()[0],
-                  rightWidth = x.range()[1] - x2(d[1]);
-              d3.select(this).select('.left')
-                .attr('width',  leftWidth < 0 ? 0 : leftWidth);
-
-              d3.select(this).select('.right')
-                .attr('x', x2(d[1]))
-                .attr('width', rightWidth < 0 ? 0 : rightWidth);
-            });
-      }
-
-
-      function onBrush() {
-        brushExtent = brush.empty() ? null : brush.extent();
-        var extent = brush.empty() ? x2.domain() : brush.extent();
-
-        //The brush extent cannot be less than one.  If it is, don't update the line chart.
-        if (Math.abs(extent[0] - extent[1]) <= 1) {
-          return;
-        }
-
-        dispatch.brush({extent: extent, brush: brush});
-
-
-        updateBrushBG();
-
-        // Update Main (Focus)
-        var focusLinesWrap = g.select('.nv-focus .nv-linesWrap')
-            .datum(
-              data
-                .filter(function(d) { return !d.disabled })
-                .map(function(d,i) {
-                  return {
-                    key: d.key,
-                    values: d.values.filter(function(d,i) {
-                      return lines.x()(d,i) >= extent[0] && lines.x()(d,i) <= extent[1];
-                    })
-                  }
-                })
-            );
-        focusLinesWrap.transition().duration(transitionDuration).call(lines);
-
-
-        // Update Main (Focus) Axes
-        g.select('.nv-focus .nv-x.nv-axis').transition().duration(transitionDuration)
-            .call(xAxis);
-        g.select('.nv-focus .nv-y.nv-axis').transition().duration(transitionDuration)
-            .call(yAxis);
-      }
-
-      //============================================================
-
-
-    });
-
-    return chart;
-  }
-
-
-  //============================================================
-  // Event Handling/Dispatching (out of chart's scope)
-  //------------------------------------------------------------
-
-  lines.dispatch.on('elementMouseover.tooltip', function(e) {
-    e.pos = [e.pos[0] +  margin.left, e.pos[1] + margin.top];
-    dispatch.tooltipShow(e);
-  });
-
-  lines.dispatch.on('elementMouseout.tooltip', function(e) {
-    dispatch.tooltipHide(e);
-  });
-
-  dispatch.on('tooltipHide', function() {
-    if (tooltips) nv.tooltip.cleanup();
-  });
-
-  //============================================================
-
-
-  //============================================================
-  // Expose Public Variables
-  //------------------------------------------------------------
-
-  // expose chart's sub-components
-  chart.dispatch = dispatch;
-  chart.legend = legend;
-  chart.lines = lines;
-  chart.lines2 = lines2;
-  chart.xAxis = xAxis;
-  chart.yAxis = yAxis;
-  chart.x2Axis = x2Axis;
-  chart.y2Axis = y2Axis;
-
-  d3.rebind(chart, lines, 'defined', 'isArea', 'size', 'xDomain', 'yDomain', 'xRange', 'yRange', 'forceX', 'forceY', 'interactive', 'clipEdge', 'clipVoronoi', 'id');
-
-  chart.options = nv.utils.optionsFunc.bind(chart);
-  
-  chart.x = function(_) {
-    if (!arguments.length) return lines.x;
-    lines.x(_);
-    lines2.x(_);
-    return chart;
-  };
-
-  chart.y = function(_) {
-    if (!arguments.length) return lines.y;
-    lines.y(_);
-    lines2.y(_);
-    return chart;
-  };
-
-  chart.margin = function(_) {
-    if (!arguments.length) return margin;
-    margin.top    = typeof _.top    != 'undefined' ? _.top    : margin.top;
-    margin.right  = typeof _.right  != 'undefined' ? _.right  : margin.right;
-    margin.bottom = typeof _.bottom != 'undefined' ? _.bottom : margin.bottom;
-    margin.left   = typeof _.left   != 'undefined' ? _.left   : margin.left;
-    return chart;
-  };
-
-  chart.margin2 = function(_) {
-    if (!arguments.length) return margin2;
-    margin2 = _;
-    return chart;
-  };
-
-  chart.width = function(_) {
-    if (!arguments.length) return width;
-    width = _;
-    return chart;
-  };
-
-  chart.height = function(_) {
-    if (!arguments.length) return height;
-    height = _;
-    return chart;
-  };
-
-  chart.height2 = function(_) {
-    if (!arguments.length) return height2;
-    height2 = _;
-    return chart;
-  };
-
-  chart.color = function(_) {
-    if (!arguments.length) return color;
-    color =nv.utils.getColor(_);
-    legend.color(color);
-    return chart;
-  };
-
-  chart.showLegend = function(_) {
-    if (!arguments.length) return showLegend;
-    showLegend = _;
-    return chart;
-  };
-
-  chart.tooltips = function(_) {
-    if (!arguments.length) return tooltips;
-    tooltips = _;
-    return chart;
-  };
-
-  chart.tooltipContent = function(_) {
-    if (!arguments.length) return tooltip;
-    tooltip = _;
-    return chart;
-  };
-
-  chart.interpolate = function(_) {
-    if (!arguments.length) return lines.interpolate();
-    lines.interpolate(_);
-    lines2.interpolate(_);
-    return chart;
-  };
-
-  chart.noData = function(_) {
-    if (!arguments.length) return noData;
-    noData = _;
-    return chart;
-  };
-
-  // Chart has multiple similar Axes, to prevent code duplication, probably need to link all axis functions manually like below
-  chart.xTickFormat = function(_) {
-    if (!arguments.length) return xAxis.tickFormat();
-    xAxis.tickFormat(_);
-    x2Axis.tickFormat(_);
-    return chart;
-  };
-
-  chart.yTickFormat = function(_) {
-    if (!arguments.length) return yAxis.tickFormat();
-    yAxis.tickFormat(_);
-    y2Axis.tickFormat(_);
-    return chart;
-  };
-  
-  chart.brushExtent = function(_) {
-    if (!arguments.length) return brushExtent;
-    brushExtent = _;
-    return chart;
-  };
-
-  chart.transitionDuration = function(_) {
-    if (!arguments.length) return transitionDuration;
-    transitionDuration = _;
-    return chart;
-  };
-
-  //============================================================
-
-
-  return chart;
-}
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/multiBar.js b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/multiBar.js
deleted file mode 100755
index 1085919b..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/multiBar.js
+++ /dev/null
@@ -1,461 +0,0 @@
-
-nv.models.multiBar = function() {
-  "use strict";
-  //============================================================
-  // Public Variables with Default Settings
-  //------------------------------------------------------------
-
-  var margin = {top: 0, right: 0, bottom: 0, left: 0}
-    , width = 960
-    , height = 500
-    , x = d3.scale.ordinal()
-    , y = d3.scale.linear()
-    , id = Math.floor(Math.random() * 10000) //Create semi-unique ID in case user doesn't select one
-    , getX = function(d) { return d.x }
-    , getY = function(d) { return d.y }
-    , forceY = [0] // 0 is forced by default.. this makes sense for the majority of bar graphs... user can always do chart.forceY([]) to remove
-    , clipEdge = true
-    , stacked = false
-    , stackOffset = 'zero' // options include 'silhouette', 'wiggle', 'expand', 'zero', or a custom function
-    , color = nv.utils.defaultColor()
-    , hideable = false
-    , barColor = null // adding the ability to set the color for each rather than the whole group
-    , disabled // used in conjunction with barColor to communicate from multiBarHorizontalChart what series are disabled
-    , delay = 1200
-    , xDomain
-    , yDomain
-    , xRange
-    , yRange
-    , groupSpacing = 0.1
-    , dispatch = d3.dispatch('chartClick', 'elementClick', 'elementDblClick', 'elementMouseover', 'elementMouseout')
-    ;
-
-  //============================================================
-
-
-  //============================================================
-  // Private Variables
-  //------------------------------------------------------------
-
-  var x0, y0 //used to store previous scales
-      ;
-
-  //============================================================
-
-
-  function chart(selection) {
-    selection.each(function(data) {
-      var availableWidth = width - margin.left - margin.right,
-          availableHeight = height - margin.top - margin.bottom,
-          container = d3.select(this);
-
-      if(hideable && data.length) hideable = [{
-        values: data[0].values.map(function(d) {
-        return {
-          x: d.x,
-          y: 0,
-          series: d.series,
-          size: 0.01
-        };}
-      )}];
-
-      if (stacked)
-        data = d3.layout.stack()
-                 .offset(stackOffset)
-                 .values(function(d){ return d.values })
-                 .y(getY)
-                 (!data.length && hideable ? hideable : data);
-
-
-      //add series index to each data point for reference
-      data.forEach(function(series, i) {
-        series.values.forEach(function(point) {
-          point.series = i;
-        });
-      });
-
-
-      //------------------------------------------------------------
-      // HACK for negative value stacking
-      if (stacked)
-        data[0].values.map(function(d,i) {
-          var posBase = 0, negBase = 0;
-          data.map(function(d) {
-            var f = d.values[i]
-            f.size = Math.abs(f.y);
-            if (f.y<0)  {
-              f.y1 = negBase;
-              negBase = negBase - f.size;
-            } else
-            {
-              f.y1 = f.size + posBase;
-              posBase = posBase + f.size;
-            }
-          });
-        });
-
-      //------------------------------------------------------------
-      // Setup Scales
-
-      // remap and flatten the data for use in calculating the scales' domains
-      var seriesData = (xDomain && yDomain) ? [] : // if we know xDomain and yDomain, no need to calculate
-            data.map(function(d) {
-              return d.values.map(function(d,i) {
-                return { x: getX(d,i), y: getY(d,i), y0: d.y0, y1: d.y1 }
-              })
-            });
-
-      x   .domain(xDomain || d3.merge(seriesData).map(function(d) { return d.x }))
-          .rangeBands(xRange || [0, availableWidth], groupSpacing);
-
-      //y   .domain(yDomain || d3.extent(d3.merge(seriesData).map(function(d) { return d.y + (stacked ? d.y1 : 0) }).concat(forceY)))
-      y   .domain(yDomain || d3.extent(d3.merge(seriesData).map(function(d) { return stacked ? (d.y > 0 ? d.y1 : d.y1 + d.y ) : d.y }).concat(forceY)))
-          .range(yRange || [availableHeight, 0]);
-
-      // If scale's domain don't have a range, slightly adjust to make one... so a chart can show a single data point
-      if (x.domain()[0] === x.domain()[1])
-        x.domain()[0] ?
-            x.domain([x.domain()[0] - x.domain()[0] * 0.01, x.domain()[1] + x.domain()[1] * 0.01])
-          : x.domain([-1,1]);
-
-      if (y.domain()[0] === y.domain()[1])
-        y.domain()[0] ?
-            y.domain([y.domain()[0] + y.domain()[0] * 0.01, y.domain()[1] - y.domain()[1] * 0.01])
-          : y.domain([-1,1]);
-
-
-      x0 = x0 || x;
-      y0 = y0 || y;
-
-      //------------------------------------------------------------
-
-
-      //------------------------------------------------------------
-      // Setup containers and skeleton of chart
-
-      var wrap = container.selectAll('g.nv-wrap.nv-multibar').data([data]);
-      var wrapEnter = wrap.enter().append('g').attr('class', 'nvd3 nv-wrap nv-multibar');
-      var defsEnter = wrapEnter.append('defs');
-      var gEnter = wrapEnter.append('g');
-      var g = wrap.select('g')
-
-      gEnter.append('g').attr('class', 'nv-groups');
-
-      wrap.attr('transform', 'translate(' + margin.left + ',' + margin.top + ')');
-
-      //------------------------------------------------------------
-
-
-
-      defsEnter.append('clipPath')
-          .attr('id', 'nv-edge-clip-' + id)
-        .append('rect');
-      wrap.select('#nv-edge-clip-' + id + ' rect')
-          .attr('width', availableWidth)
-          .attr('height', availableHeight);
-
-      g   .attr('clip-path', clipEdge ? 'url(#nv-edge-clip-' + id + ')' : '');
-
-
-
-      var groups = wrap.select('.nv-groups').selectAll('.nv-group')
-          .data(function(d) { return d }, function(d,i) { return i });
-      groups.enter().append('g')
-          .style('stroke-opacity', 1e-6)
-          .style('fill-opacity', 1e-6);
-      groups.exit()
-        .transition()
-        .selectAll('rect.nv-bar')
-        .delay(function(d,i) {
-             return i * delay/ data[0].values.length;
-        })
-          .attr('y', function(d) { return stacked ? y0(d.y0) : y0(0) })
-          .attr('height', 0)
-          .remove();
-      groups
-          .attr('class', function(d,i) { return 'nv-group nv-series-' + i })
-          .classed('hover', function(d) { return d.hover })
-          .style('fill', function(d,i){ return color(d, i) })
-          .style('stroke', function(d,i){ return color(d, i) });
-      groups
-          .transition()
-          .style('stroke-opacity', 1)
-          .style('fill-opacity', .75);
-
-
-      var bars = groups.selectAll('rect.nv-bar')
-          .data(function(d) { return (hideable && !data.length) ? hideable.values : d.values });
-
-      bars.exit().remove();
-
-
-      var barsEnter = bars.enter().append('rect')
-          .attr('class', function(d,i) { return getY(d,i) < 0 ? 'nv-bar negative' : 'nv-bar positive'})
-          .attr('x', function(d,i,j) {
-              return stacked ? 0 : (j * x.rangeBand() / data.length )
-          })
-          .attr('y', function(d) { return y0(stacked ? d.y0 : 0) })
-          .attr('height', 0)
-          .attr('width', x.rangeBand() / (stacked ? 1 : data.length) )
-          .attr('transform', function(d,i) { return 'translate(' + x(getX(d,i)) + ',0)'; })
-          ;
-      bars
-          .style('fill', function(d,i,j){ return color(d, j, i);  })
-          .style('stroke', function(d,i,j){ return color(d, j, i); })
-          .on('mouseover', function(d,i) { //TODO: figure out why j works above, but not here
-            d3.select(this).classed('hover', true);
-            dispatch.elementMouseover({
-              value: getY(d,i),
-              point: d,
-              series: data[d.series],
-              pos: [x(getX(d,i)) + (x.rangeBand() * (stacked ? data.length / 2 : d.series + .5) / data.length), y(getY(d,i) + (stacked ? d.y0 : 0))],  // TODO: Figure out why the value appears to be shifted
-              pointIndex: i,
-              seriesIndex: d.series,
-              e: d3.event
-            });
-          })
-          .on('mouseout', function(d,i) {
-            d3.select(this).classed('hover', false);
-            dispatch.elementMouseout({
-              value: getY(d,i),
-              point: d,
-              series: data[d.series],
-              pointIndex: i,
-              seriesIndex: d.series,
-              e: d3.event
-            });
-          })
-          .on('click', function(d,i) {
-            dispatch.elementClick({
-              value: getY(d,i),
-              point: d,
-              series: data[d.series],
-              pos: [x(getX(d,i)) + (x.rangeBand() * (stacked ? data.length / 2 : d.series + .5) / data.length), y(getY(d,i) + (stacked ? d.y0 : 0))],  // TODO: Figure out why the value appears to be shifted
-              pointIndex: i,
-              seriesIndex: d.series,
-              e: d3.event
-            });
-            d3.event.stopPropagation();
-          })
-          .on('dblclick', function(d,i) {
-            dispatch.elementDblClick({
-              value: getY(d,i),
-              point: d,
-              series: data[d.series],
-              pos: [x(getX(d,i)) + (x.rangeBand() * (stacked ? data.length / 2 : d.series + .5) / data.length), y(getY(d,i) + (stacked ? d.y0 : 0))],  // TODO: Figure out why the value appears to be shifted
-              pointIndex: i,
-              seriesIndex: d.series,
-              e: d3.event
-            });
-            d3.event.stopPropagation();
-          });
-      bars
-          .attr('class', function(d,i) { return getY(d,i) < 0 ? 'nv-bar negative' : 'nv-bar positive'})
-          .transition()
-          .attr('transform', function(d,i) { return 'translate(' + x(getX(d,i)) + ',0)'; })
-
-      if (barColor) {
-        if (!disabled) disabled = data.map(function() { return true });
-        bars
-          .style('fill', function(d,i,j) { return d3.rgb(barColor(d,i)).darker(  disabled.map(function(d,i) { return i }).filter(function(d,i){ return !disabled[i]  })[j]   ).toString(); })
-          .style('stroke', function(d,i,j) { return d3.rgb(barColor(d,i)).darker(  disabled.map(function(d,i) { return i }).filter(function(d,i){ return !disabled[i]  })[j]   ).toString(); });
-      }
-
-
-      if (stacked)
-          bars.transition()
-            .delay(function(d,i) {
-
-                  return i * delay / data[0].values.length;
-            })
-            .attr('y', function(d,i) {
-
-              return y((stacked ? d.y1 : 0));
-            })
-            .attr('height', function(d,i) {
-              return Math.max(Math.abs(y(d.y + (stacked ? d.y0 : 0)) - y((stacked ? d.y0 : 0))),1);
-            })
-            .attr('x', function(d,i) {
-                  return stacked ? 0 : (d.series * x.rangeBand() / data.length )
-            })
-            .attr('width', x.rangeBand() / (stacked ? 1 : data.length) );
-      else
-          bars.transition()
-            .delay(function(d,i) {
-                return i * delay/ data[0].values.length;
-            })
-            .attr('x', function(d,i) {
-              return d.series * x.rangeBand() / data.length
-            })
-            .attr('width', x.rangeBand() / data.length)
-            .attr('y', function(d,i) {
-                return getY(d,i) < 0 ?
-                        y(0) :
-                        y(0) - y(getY(d,i)) < 1 ?
-                          y(0) - 1 :
-                        y(getY(d,i)) || 0;
-            })
-            .attr('height', function(d,i) {
-                return Math.max(Math.abs(y(getY(d,i)) - y(0)),1) || 0;
-            });
-
-
-
-      //store old scales for use in transitions on update
-      x0 = x.copy();
-      y0 = y.copy();
-
-    });
-
-    return chart;
-  }
-
-
-  //============================================================
-  // Expose Public Variables
-  //------------------------------------------------------------
-
-  chart.dispatch = dispatch;
-
-  chart.options = nv.utils.optionsFunc.bind(chart);
-
-  chart.x = function(_) {
-    if (!arguments.length) return getX;
-    getX = _;
-    return chart;
-  };
-
-  chart.y = function(_) {
-    if (!arguments.length) return getY;
-    getY = _;
-    return chart;
-  };
-
-  chart.margin = function(_) {
-    if (!arguments.length) return margin;
-    margin.top    = typeof _.top    != 'undefined' ? _.top    : margin.top;
-    margin.right  = typeof _.right  != 'undefined' ? _.right  : margin.right;
-    margin.bottom = typeof _.bottom != 'undefined' ? _.bottom : margin.bottom;
-    margin.left   = typeof _.left   != 'undefined' ? _.left   : margin.left;
-    return chart;
-  };
-
-  chart.width = function(_) {
-    if (!arguments.length) return width;
-    width = _;
-    return chart;
-  };
-
-  chart.height = function(_) {
-    if (!arguments.length) return height;
-    height = _;
-    return chart;
-  };
-
-  chart.xScale = function(_) {
-    if (!arguments.length) return x;
-    x = _;
-    return chart;
-  };
-
-  chart.yScale = function(_) {
-    if (!arguments.length) return y;
-    y = _;
-    return chart;
-  };
-
-  chart.xDomain = function(_) {
-    if (!arguments.length) return xDomain;
-    xDomain = _;
-    return chart;
-  };
-
-  chart.yDomain = function(_) {
-    if (!arguments.length) return yDomain;
-    yDomain = _;
-    return chart;
-  };
-
-  chart.xRange = function(_) {
-    if (!arguments.length) return xRange;
-    xRange = _;
-    return chart;
-  };
-
-  chart.yRange = function(_) {
-    if (!arguments.length) return yRange;
-    yRange = _;
-    return chart;
-  };
-
-  chart.forceY = function(_) {
-    if (!arguments.length) return forceY;
-    forceY = _;
-    return chart;
-  };
-
-  chart.stacked = function(_) {
-    if (!arguments.length) return stacked;
-    stacked = _;
-    return chart;
-  };
-
-  chart.stackOffset = function(_) {
-    if (!arguments.length) return stackOffset;
-    stackOffset = _;
-    return chart;
-  };
-
-  chart.clipEdge = function(_) {
-    if (!arguments.length) return clipEdge;
-    clipEdge = _;
-    return chart;
-  };
-
-  chart.color = function(_) {
-    if (!arguments.length) return color;
-    color = nv.utils.getColor(_);
-    return chart;
-  };
-
-  chart.barColor = function(_) {
-    if (!arguments.length) return barColor;
-    barColor = nv.utils.getColor(_);
-    return chart;
-  };
-
-  chart.disabled = function(_) {
-    if (!arguments.length) return disabled;
-    disabled = _;
-    return chart;
-  };
-
-  chart.id = function(_) {
-    if (!arguments.length) return id;
-    id = _;
-    return chart;
-  };
-
-  chart.hideable = function(_) {
-    if (!arguments.length) return hideable;
-    hideable = _;
-    return chart;
-  };
-
-  chart.delay = function(_) {
-    if (!arguments.length) return delay;
-    delay = _;
-    return chart;
-  };
-
-  chart.groupSpacing = function(_) {
-    if (!arguments.length) return groupSpacing;
-    groupSpacing = _;
-    return chart;
-  };
-
-  //============================================================
-
-
-  return chart;
-}
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/multiBarChart.js b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/multiBarChart.js
deleted file mode 100755
index 0323063f..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/multiBarChart.js
+++ /dev/null
@@ -1,524 +0,0 @@
-
-nv.models.multiBarChart = function() {
-  "use strict";
-  //============================================================
-  // Public Variables with Default Settings
-  //------------------------------------------------------------
-
-  var multibar = nv.models.multiBar()
-    , xAxis = nv.models.axis()
-    , yAxis = nv.models.axis()
-    , legend = nv.models.legend()
-    , controls = nv.models.legend()
-    ;
-
-  var margin = {top: 30, right: 20, bottom: 50, left: 60}
-    , width = null
-    , height = null
-    , color = nv.utils.defaultColor()
-    , showControls = true
-    , showLegend = true
-    , showXAxis = true
-    , showYAxis = true
-    , rightAlignYAxis = false
-    , reduceXTicks = true // if false a tick will show for every data point
-    , staggerLabels = false
-    , rotateLabels = 0
-    , tooltips = true
-    , tooltip = function(key, x, y, e, graph) {
-        return '<h3>' + key + '</h3>' +
-               '<p>' +  y + ' on ' + x + '</p>'
-      }
-    , x //can be accessed via chart.xScale()
-    , y //can be accessed via chart.yScale()
-    , state = { stacked: false }
-    , defaultState = null
-    , noData = "No Data Available."
-    , dispatch = d3.dispatch('tooltipShow', 'tooltipHide', 'stateChange', 'changeState')
-    , controlWidth = function() { return showControls ? 180 : 0 }
-    , transitionDuration = 250
-    ;
-
-  multibar
-    .stacked(false)
-    ;
-  xAxis
-    .orient('bottom')
-    .tickPadding(7)
-    .highlightZero(true)
-    .showMaxMin(false)
-    .tickFormat(function(d) { return d })
-    ;
-  yAxis
-    .orient((rightAlignYAxis) ? 'right' : 'left')
-    .tickFormat(d3.format(',.1f'))
-    ;
-
-  controls.updateState(false);
-  //============================================================
-
-
-  //============================================================
-  // Private Variables
-  //------------------------------------------------------------
-
-  var showTooltip = function(e, offsetElement) {
-    var left = e.pos[0] + ( offsetElement.offsetLeft || 0 ),
-        top = e.pos[1] + ( offsetElement.offsetTop || 0),
-        x = xAxis.tickFormat()(multibar.x()(e.point, e.pointIndex)),
-        y = yAxis.tickFormat()(multibar.y()(e.point, e.pointIndex)),
-        content = tooltip(e.series.key, x, y, e, chart);
-
-    nv.tooltip.show([left, top], content, e.value < 0 ? 'n' : 's', null, offsetElement);
-  };
-
-  //============================================================
-
-
-  function chart(selection) {
-    selection.each(function(data) {
-      var container = d3.select(this),
-          that = this;
-
-      var availableWidth = (width  || parseInt(container.style('width')) || 960)
-                             - margin.left - margin.right,
-          availableHeight = (height || parseInt(container.style('height')) || 400)
-                             - margin.top - margin.bottom;
-
-      chart.update = function() { container.transition().duration(transitionDuration).call(chart) };
-      chart.container = this;
-
-      //set state.disabled
-      state.disabled = data.map(function(d) { return !!d.disabled });
-
-      if (!defaultState) {
-        var key;
-        defaultState = {};
-        for (key in state) {
-          if (state[key] instanceof Array)
-            defaultState[key] = state[key].slice(0);
-          else
-            defaultState[key] = state[key];
-        }
-      }
-      //------------------------------------------------------------
-      // Display noData message if there's nothing to show.
-
-      if (!data || !data.length || !data.filter(function(d) { return d.values.length }).length) {
-        var noDataText = container.selectAll('.nv-noData').data([noData]);
-
-        noDataText.enter().append('text')
-          .attr('class', 'nvd3 nv-noData')
-          .attr('dy', '-.7em')
-          .style('text-anchor', 'middle');
-
-        noDataText
-          .attr('x', margin.left + availableWidth / 2)
-          .attr('y', margin.top + availableHeight / 2)
-          .text(function(d) { return d });
-
-        return chart;
-      } else {
-        container.selectAll('.nv-noData').remove();
-      }
-
-      //------------------------------------------------------------
-
-
-      //------------------------------------------------------------
-      // Setup Scales
-
-      x = multibar.xScale();
-      y = multibar.yScale();
-
-      //------------------------------------------------------------
-
-
-      //------------------------------------------------------------
-      // Setup containers and skeleton of chart
-
-      var wrap = container.selectAll('g.nv-wrap.nv-multiBarWithLegend').data([data]);
-      var gEnter = wrap.enter().append('g').attr('class', 'nvd3 nv-wrap nv-multiBarWithLegend').append('g');
-      var g = wrap.select('g');
-
-      gEnter.append('g').attr('class', 'nv-x nv-axis');
-      gEnter.append('g').attr('class', 'nv-y nv-axis');
-      gEnter.append('g').attr('class', 'nv-barsWrap');
-      gEnter.append('g').attr('class', 'nv-legendWrap');
-      gEnter.append('g').attr('class', 'nv-controlsWrap');
-
-      //------------------------------------------------------------
-
-
-      //------------------------------------------------------------
-      // Legend
-
-      if (showLegend) {
-        legend.width(availableWidth - controlWidth());
-
-        if (multibar.barColor())
-          data.forEach(function(series,i) {
-            series.color = d3.rgb('#ccc').darker(i * 1.5).toString();
-          })
-
-        g.select('.nv-legendWrap')
-            .datum(data)
-            .call(legend);
-
-        if ( margin.top != legend.height()) {
-          margin.top = legend.height();
-          availableHeight = (height || parseInt(container.style('height')) || 400)
-                             - margin.top - margin.bottom;
-        }
-
-        g.select('.nv-legendWrap')
-            .attr('transform', 'translate(' + controlWidth() + ',' + (-margin.top) +')');
-      }
-
-      //------------------------------------------------------------
-
-
-      //------------------------------------------------------------
-      // Controls
-
-      if (showControls) {
-        var controlsData = [
-          { key: 'Grouped', disabled: multibar.stacked() },
-          { key: 'Stacked', disabled: !multibar.stacked() }
-        ];
-
-        controls.width(controlWidth()).color(['#444', '#444', '#444']);
-        g.select('.nv-controlsWrap')
-            .datum(controlsData)
-            .attr('transform', 'translate(0,' + (-margin.top) +')')
-            .call(controls);
-      }
-
-      //------------------------------------------------------------
-
-
-      wrap.attr('transform', 'translate(' + margin.left + ',' + margin.top + ')');
-
-      if (rightAlignYAxis) {
-          g.select(".nv-y.nv-axis")
-              .attr("transform", "translate(" + availableWidth + ",0)");
-      }
-
-      //------------------------------------------------------------
-      // Main Chart Component(s)
-
-      multibar
-        .disabled(data.map(function(series) { return series.disabled }))
-        .width(availableWidth)
-        .height(availableHeight)
-        .color(data.map(function(d,i) {
-          return d.color || color(d, i);
-        }).filter(function(d,i) { return !data[i].disabled }))
-
-
-      var barsWrap = g.select('.nv-barsWrap')
-          .datum(data.filter(function(d) { return !d.disabled }))
-
-      barsWrap.transition().call(multibar);
-
-      //------------------------------------------------------------
-
-
-      //------------------------------------------------------------
-      // Setup Axes
-
-      if (showXAxis) {
-          xAxis
-            .scale(x)
-            .ticks( availableWidth / 100 )
-            .tickSize(-availableHeight, 0);
-
-          g.select('.nv-x.nv-axis')
-              .attr('transform', 'translate(0,' + y.range()[0] + ')');
-          g.select('.nv-x.nv-axis').transition()
-              .call(xAxis);
-
-          var xTicks = g.select('.nv-x.nv-axis > g').selectAll('g');
-
-          xTicks
-              .selectAll('line, text')
-              .style('opacity', 1)
-
-          if (staggerLabels) {
-              var getTranslate = function(x,y) {
-                  return "translate(" + x + "," + y + ")";
-              };
-
-              var staggerUp = 5, staggerDown = 17;  //pixels to stagger by
-              // Issue #140
-              xTicks
-                .selectAll("text")
-                .attr('transform', function(d,i,j) { 
-                    return  getTranslate(0, (j % 2 == 0 ? staggerUp : staggerDown));
-                  });
-
-              var totalInBetweenTicks = d3.selectAll(".nv-x.nv-axis .nv-wrap g g text")[0].length;
-              g.selectAll(".nv-x.nv-axis .nv-axisMaxMin text")
-                .attr("transform", function(d,i) {
-                    return getTranslate(0, (i === 0 || totalInBetweenTicks % 2 !== 0) ? staggerDown : staggerUp);
-                });
-          }
-
-          if (reduceXTicks)
-            xTicks
-              .filter(function(d,i) {
-                  return i % Math.ceil(data[0].values.length / (availableWidth / 100)) !== 0;
-                })
-              .selectAll('text, line')
-              .style('opacity', 0);
-
-          if(rotateLabels)
-            xTicks
-              .selectAll('.tick text')
-              .attr('transform', 'rotate(' + rotateLabels + ' 0,0)')
-              .style('text-anchor', rotateLabels > 0 ? 'start' : 'end');
-          
-          g.select('.nv-x.nv-axis').selectAll('g.nv-axisMaxMin text')
-              .style('opacity', 1);
-      }
-
-
-      if (showYAxis) {      
-          yAxis
-            .scale(y)
-            .ticks( availableHeight / 36 )
-            .tickSize( -availableWidth, 0);
-
-          g.select('.nv-y.nv-axis').transition()
-              .call(yAxis);
-      }
-
-
-      //------------------------------------------------------------
-
-
-
-      //============================================================
-      // Event Handling/Dispatching (in chart's scope)
-      //------------------------------------------------------------
-
-      legend.dispatch.on('stateChange', function(newState) { 
-        state = newState;
-        dispatch.stateChange(state);
-        chart.update();
-      });
-
-      controls.dispatch.on('legendClick', function(d,i) {
-        if (!d.disabled) return;
-        controlsData = controlsData.map(function(s) {
-          s.disabled = true;
-          return s;
-        });
-        d.disabled = false;
-
-        switch (d.key) {
-          case 'Grouped':
-            multibar.stacked(false);
-            break;
-          case 'Stacked':
-            multibar.stacked(true);
-            break;
-        }
-
-        state.stacked = multibar.stacked();
-        dispatch.stateChange(state);
-
-        chart.update();
-      });
-
-      dispatch.on('tooltipShow', function(e) {
-        if (tooltips) showTooltip(e, that.parentNode)
-      });
-
-      // Update chart from a state object passed to event handler
-      dispatch.on('changeState', function(e) {
-
-        if (typeof e.disabled !== 'undefined') {
-          data.forEach(function(series,i) {
-            series.disabled = e.disabled[i];
-          });
-
-          state.disabled = e.disabled;
-        }
-
-        if (typeof e.stacked !== 'undefined') {
-          multibar.stacked(e.stacked);
-          state.stacked = e.stacked;
-        }
-
-        chart.update();
-      });
-
-      //============================================================
-
-
-    });
-
-    return chart;
-  }
-
-
-  //============================================================
-  // Event Handling/Dispatching (out of chart's scope)
-  //------------------------------------------------------------
-
-  multibar.dispatch.on('elementMouseover.tooltip', function(e) {
-    e.pos = [e.pos[0] +  margin.left, e.pos[1] + margin.top];
-    dispatch.tooltipShow(e);
-  });
-
-  multibar.dispatch.on('elementMouseout.tooltip', function(e) {
-    dispatch.tooltipHide(e);
-  });
-  dispatch.on('tooltipHide', function() {
-    if (tooltips) nv.tooltip.cleanup();
-  });
-
-  //============================================================
-
-
-  //============================================================
-  // Expose Public Variables
-  //------------------------------------------------------------
-
-  // expose chart's sub-components
-  chart.dispatch = dispatch;
-  chart.multibar = multibar;
-  chart.legend = legend;
-  chart.xAxis = xAxis;
-  chart.yAxis = yAxis;
-
-  d3.rebind(chart, multibar, 'x', 'y', 'xDomain', 'yDomain', 'xRange', 'yRange', 'forceX', 'forceY', 'clipEdge',
-   'id', 'stacked', 'stackOffset', 'delay', 'barColor','groupSpacing');
-
-  chart.options = nv.utils.optionsFunc.bind(chart);
-  
-  chart.margin = function(_) {
-    if (!arguments.length) return margin;
-    margin.top    = typeof _.top    != 'undefined' ? _.top    : margin.top;
-    margin.right  = typeof _.right  != 'undefined' ? _.right  : margin.right;
-    margin.bottom = typeof _.bottom != 'undefined' ? _.bottom : margin.bottom;
-    margin.left   = typeof _.left   != 'undefined' ? _.left   : margin.left;
-    return chart;
-  };
-
-  chart.width = function(_) {
-    if (!arguments.length) return width;
-    width = _;
-    return chart;
-  };
-
-  chart.height = function(_) {
-    if (!arguments.length) return height;
-    height = _;
-    return chart;
-  };
-
-  chart.color = function(_) {
-    if (!arguments.length) return color;
-    color = nv.utils.getColor(_);
-    legend.color(color);
-    return chart;
-  };
-
-  chart.showControls = function(_) {
-    if (!arguments.length) return showControls;
-    showControls = _;
-    return chart;
-  };
-
-  chart.showLegend = function(_) {
-    if (!arguments.length) return showLegend;
-    showLegend = _;
-    return chart;
-  };
-
-  chart.showXAxis = function(_) {
-    if (!arguments.length) return showXAxis;
-    showXAxis = _;
-    return chart;
-  };
-
-  chart.showYAxis = function(_) {
-    if (!arguments.length) return showYAxis;
-    showYAxis = _;
-    return chart;
-  };
-
-  chart.rightAlignYAxis = function(_) {
-    if(!arguments.length) return rightAlignYAxis;
-    rightAlignYAxis = _;
-    yAxis.orient( (_) ? 'right' : 'left');
-    return chart;
-  };
-
-  chart.reduceXTicks= function(_) {
-    if (!arguments.length) return reduceXTicks;
-    reduceXTicks = _;
-    return chart;
-  };
-
-  chart.rotateLabels = function(_) {
-    if (!arguments.length) return rotateLabels;
-    rotateLabels = _;
-    return chart;
-  }
-
-  chart.staggerLabels = function(_) {
-    if (!arguments.length) return staggerLabels;
-    staggerLabels = _;
-    return chart;
-  };
-
-  chart.tooltip = function(_) {
-    if (!arguments.length) return tooltip;
-    tooltip = _;
-    return chart;
-  };
-
-  chart.tooltips = function(_) {
-    if (!arguments.length) return tooltips;
-    tooltips = _;
-    return chart;
-  };
-
-  chart.tooltipContent = function(_) {
-    if (!arguments.length) return tooltip;
-    tooltip = _;
-    return chart;
-  };
-
-  chart.state = function(_) {
-    if (!arguments.length) return state;
-    state = _;
-    return chart;
-  };
-
-  chart.defaultState = function(_) {
-    if (!arguments.length) return defaultState;
-    defaultState = _;
-    return chart;
-  };
-  
-  chart.noData = function(_) {
-    if (!arguments.length) return noData;
-    noData = _;
-    return chart;
-  };
-
-  chart.transitionDuration = function(_) {
-    if (!arguments.length) return transitionDuration;
-    transitionDuration = _;
-    return chart;
-  };
-
-  //============================================================
-
-
-  return chart;
-}
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/multiBarHorizontal.js b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/multiBarHorizontal.js
deleted file mode 100755
index d617ae1d..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/multiBarHorizontal.js
+++ /dev/null
@@ -1,447 +0,0 @@
-
-nv.models.multiBarHorizontal = function() {
-  "use strict";
-  //============================================================
-  // Public Variables with Default Settings
-  //------------------------------------------------------------
-
-  var margin = {top: 0, right: 0, bottom: 0, left: 0}
-    , width = 960
-    , height = 500
-    , id = Math.floor(Math.random() * 10000) //Create semi-unique ID in case user doesn't select one
-    , x = d3.scale.ordinal()
-    , y = d3.scale.linear()
-    , getX = function(d) { return d.x }
-    , getY = function(d) { return d.y }
-    , forceY = [0] // 0 is forced by default.. this makes sense for the majority of bar graphs... user can always do chart.forceY([]) to remove
-    , color = nv.utils.defaultColor()
-    , barColor = null // adding the ability to set the color for each rather than the whole group
-    , disabled // used in conjunction with barColor to communicate from multiBarHorizontalChart what series are disabled
-    , stacked = false
-    , showValues = false
-    , showBarLabels = false
-    , valuePadding = 60
-    , valueFormat = d3.format(',.2f')
-    , delay = 1200
-    , xDomain
-    , yDomain
-    , xRange
-    , yRange
-    , dispatch = d3.dispatch('chartClick', 'elementClick', 'elementDblClick', 'elementMouseover', 'elementMouseout')
-    ;
-
-  //============================================================
-
-
-  //============================================================
-  // Private Variables
-  //------------------------------------------------------------
-
-  var x0, y0 //used to store previous scales
-      ;
-
-  //============================================================
-
-
-  function chart(selection) {
-    selection.each(function(data) {
-      var availableWidth = width - margin.left - margin.right,
-          availableHeight = height - margin.top - margin.bottom,
-          container = d3.select(this);
-
-
-      if (stacked)
-        data = d3.layout.stack()
-                 .offset('zero')
-                 .values(function(d){ return d.values })
-                 .y(getY)
-                 (data);
-
-
-      //add series index to each data point for reference
-      data.forEach(function(series, i) {
-        series.values.forEach(function(point) {
-          point.series = i;
-        });
-      });
-
-
-
-      //------------------------------------------------------------
-      // HACK for negative value stacking
-      if (stacked)
-        data[0].values.map(function(d,i) {
-          var posBase = 0, negBase = 0;
-          data.map(function(d) {
-            var f = d.values[i]
-            f.size = Math.abs(f.y);
-            if (f.y<0)  {
-              f.y1 = negBase - f.size;
-              negBase = negBase - f.size;
-            } else
-            {
-              f.y1 = posBase;
-              posBase = posBase + f.size;
-            }
-          });
-        });
-
-
-
-      //------------------------------------------------------------
-      // Setup Scales
-
-      // remap and flatten the data for use in calculating the scales' domains
-      var seriesData = (xDomain && yDomain) ? [] : // if we know xDomain and yDomain, no need to calculate
-            data.map(function(d) {
-              return d.values.map(function(d,i) {
-                return { x: getX(d,i), y: getY(d,i), y0: d.y0, y1: d.y1 }
-              })
-            });
-
-      x   .domain(xDomain || d3.merge(seriesData).map(function(d) { return d.x }))
-          .rangeBands(xRange || [0, availableHeight], .1);
-
-      //y   .domain(yDomain || d3.extent(d3.merge(seriesData).map(function(d) { return d.y + (stacked ? d.y0 : 0) }).concat(forceY)))
-      y   .domain(yDomain || d3.extent(d3.merge(seriesData).map(function(d) { return stacked ? (d.y > 0 ? d.y1 + d.y : d.y1 ) : d.y }).concat(forceY)))
-
-      if (showValues && !stacked)
-        y.range(yRange || [(y.domain()[0] < 0 ? valuePadding : 0), availableWidth - (y.domain()[1] > 0 ? valuePadding : 0) ]);
-      else
-        y.range(yRange || [0, availableWidth]);
-
-      x0 = x0 || x;
-      y0 = y0 || d3.scale.linear().domain(y.domain()).range([y(0),y(0)]);
-
-      //------------------------------------------------------------
-
-
-      //------------------------------------------------------------
-      // Setup containers and skeleton of chart
-
-      var wrap = d3.select(this).selectAll('g.nv-wrap.nv-multibarHorizontal').data([data]);
-      var wrapEnter = wrap.enter().append('g').attr('class', 'nvd3 nv-wrap nv-multibarHorizontal');
-      var defsEnter = wrapEnter.append('defs');
-      var gEnter = wrapEnter.append('g');
-      var g = wrap.select('g');
-
-      gEnter.append('g').attr('class', 'nv-groups');
-
-      wrap.attr('transform', 'translate(' + margin.left + ',' + margin.top + ')');
-
-      //------------------------------------------------------------
-
-
-
-      var groups = wrap.select('.nv-groups').selectAll('.nv-group')
-          .data(function(d) { return d }, function(d,i) { return i });
-      groups.enter().append('g')
-          .style('stroke-opacity', 1e-6)
-          .style('fill-opacity', 1e-6);
-      groups.exit().transition()
-          .style('stroke-opacity', 1e-6)
-          .style('fill-opacity', 1e-6)
-          .remove();
-      groups
-          .attr('class', function(d,i) { return 'nv-group nv-series-' + i })
-          .classed('hover', function(d) { return d.hover })
-          .style('fill', function(d,i){ return color(d, i) })
-          .style('stroke', function(d,i){ return color(d, i) });
-      groups.transition()
-          .style('stroke-opacity', 1)
-          .style('fill-opacity', .75);
-
-
-      var bars = groups.selectAll('g.nv-bar')
-          .data(function(d) { return d.values });
-
-      bars.exit().remove();
-
-
-      var barsEnter = bars.enter().append('g')
-          .attr('transform', function(d,i,j) {
-              return 'translate(' + y0(stacked ? d.y0 : 0) + ',' + (stacked ? 0 : (j * x.rangeBand() / data.length ) + x(getX(d,i))) + ')'
-          });
-
-      barsEnter.append('rect')
-          .attr('width', 0)
-          .attr('height', x.rangeBand() / (stacked ? 1 : data.length) )
-
-      bars
-          .on('mouseover', function(d,i) { //TODO: figure out why j works above, but not here
-            d3.select(this).classed('hover', true);
-            dispatch.elementMouseover({
-              value: getY(d,i),
-              point: d,
-              series: data[d.series],
-              pos: [ y(getY(d,i) + (stacked ? d.y0 : 0)), x(getX(d,i)) + (x.rangeBand() * (stacked ? data.length / 2 : d.series + .5) / data.length) ],
-              pointIndex: i,
-              seriesIndex: d.series,
-              e: d3.event
-            });
-          })
-          .on('mouseout', function(d,i) {
-            d3.select(this).classed('hover', false);
-            dispatch.elementMouseout({
-              value: getY(d,i),
-              point: d,
-              series: data[d.series],
-              pointIndex: i,
-              seriesIndex: d.series,
-              e: d3.event
-            });
-          })
-          .on('click', function(d,i) {
-            dispatch.elementClick({
-              value: getY(d,i),
-              point: d,
-              series: data[d.series],
-              pos: [x(getX(d,i)) + (x.rangeBand() * (stacked ? data.length / 2 : d.series + .5) / data.length), y(getY(d,i) + (stacked ? d.y0 : 0))],  // TODO: Figure out why the value appears to be shifted
-              pointIndex: i,
-              seriesIndex: d.series,
-              e: d3.event
-            });
-            d3.event.stopPropagation();
-          })
-          .on('dblclick', function(d,i) {
-            dispatch.elementDblClick({
-              value: getY(d,i),
-              point: d,
-              series: data[d.series],
-              pos: [x(getX(d,i)) + (x.rangeBand() * (stacked ? data.length / 2 : d.series + .5) / data.length), y(getY(d,i) + (stacked ? d.y0 : 0))],  // TODO: Figure out why the value appears to be shifted
-              pointIndex: i,
-              seriesIndex: d.series,
-              e: d3.event
-            });
-            d3.event.stopPropagation();
-          });
-
-
-      barsEnter.append('text');
-
-      if (showValues && !stacked) {
-        bars.select('text')
-            .attr('text-anchor', function(d,i) { return getY(d,i) < 0 ? 'end' : 'start' })
-            .attr('y', x.rangeBand() / (data.length * 2))
-            .attr('dy', '.32em')
-            .text(function(d,i) { return valueFormat(getY(d,i)) })
-        bars.transition()
-          .select('text')
-            .attr('x', function(d,i) { return getY(d,i) < 0 ? -4 : y(getY(d,i)) - y(0) + 4 })
-      } else {
-        bars.selectAll('text').text('');
-      }
-
-      if (showBarLabels && !stacked) {
-        barsEnter.append('text').classed('nv-bar-label',true);
-        bars.select('text.nv-bar-label')
-            .attr('text-anchor', function(d,i) { return getY(d,i) < 0 ? 'start' : 'end' })
-            .attr('y', x.rangeBand() / (data.length * 2))
-            .attr('dy', '.32em')
-            .text(function(d,i) { return getX(d,i) });
-        bars.transition()
-          .select('text.nv-bar-label')
-            .attr('x', function(d,i) { return getY(d,i) < 0 ? y(0) - y(getY(d,i)) + 4 : -4 });
-      }
-      else {
-        bars.selectAll('text.nv-bar-label').text('');
-      }
-
-      bars
-          .attr('class', function(d,i) { return getY(d,i) < 0 ? 'nv-bar negative' : 'nv-bar positive'})
-
-      if (barColor) {
-        if (!disabled) disabled = data.map(function() { return true });
-        bars
-          .style('fill', function(d,i,j) { return d3.rgb(barColor(d,i)).darker(  disabled.map(function(d,i) { return i }).filter(function(d,i){ return !disabled[i]  })[j]   ).toString(); })
-          .style('stroke', function(d,i,j) { return d3.rgb(barColor(d,i)).darker(  disabled.map(function(d,i) { return i }).filter(function(d,i){ return !disabled[i]  })[j]   ).toString(); });
-      }
-
-      if (stacked)
-        bars.transition()
-            .attr('transform', function(d,i) {
-              return 'translate(' + y(d.y1) + ',' + x(getX(d,i)) + ')'
-            })
-          .select('rect')
-            .attr('width', function(d,i) {
-              return Math.abs(y(getY(d,i) + d.y0) - y(d.y0))
-            })
-            .attr('height', x.rangeBand() );
-      else
-        bars.transition()
-            .attr('transform', function(d,i) {
-              //TODO: stacked must be all positive or all negative, not both?
-              return 'translate(' +
-              (getY(d,i) < 0 ? y(getY(d,i)) : y(0))
-              + ',' +
-              (d.series * x.rangeBand() / data.length
-              +
-              x(getX(d,i)) )
-              + ')'
-            })
-          .select('rect')
-            .attr('height', x.rangeBand() / data.length )
-            .attr('width', function(d,i) {
-              return Math.max(Math.abs(y(getY(d,i)) - y(0)),1)
-            });
-
-
-      //store old scales for use in transitions on update
-      x0 = x.copy();
-      y0 = y.copy();
-
-    });
-
-    return chart;
-  }
-
-
-  //============================================================
-  // Expose Public Variables
-  //------------------------------------------------------------
-
-  chart.dispatch = dispatch;
-
-  chart.options = nv.utils.optionsFunc.bind(chart);
-
-  chart.x = function(_) {
-    if (!arguments.length) return getX;
-    getX = _;
-    return chart;
-  };
-
-  chart.y = function(_) {
-    if (!arguments.length) return getY;
-    getY = _;
-    return chart;
-  };
-
-  chart.margin = function(_) {
-    if (!arguments.length) return margin;
-    margin.top    = typeof _.top    != 'undefined' ? _.top    : margin.top;
-    margin.right  = typeof _.right  != 'undefined' ? _.right  : margin.right;
-    margin.bottom = typeof _.bottom != 'undefined' ? _.bottom : margin.bottom;
-    margin.left   = typeof _.left   != 'undefined' ? _.left   : margin.left;
-    return chart;
-  };
-
-  chart.width = function(_) {
-    if (!arguments.length) return width;
-    width = _;
-    return chart;
-  };
-
-  chart.height = function(_) {
-    if (!arguments.length) return height;
-    height = _;
-    return chart;
-  };
-
-  chart.xScale = function(_) {
-    if (!arguments.length) return x;
-    x = _;
-    return chart;
-  };
-
-  chart.yScale = function(_) {
-    if (!arguments.length) return y;
-    y = _;
-    return chart;
-  };
-
-  chart.xDomain = function(_) {
-    if (!arguments.length) return xDomain;
-    xDomain = _;
-    return chart;
-  };
-
-  chart.yDomain = function(_) {
-    if (!arguments.length) return yDomain;
-    yDomain = _;
-    return chart;
-  };
-
-  chart.xRange = function(_) {
-    if (!arguments.length) return xRange;
-    xRange = _;
-    return chart;
-  };
-
-  chart.yRange = function(_) {
-    if (!arguments.length) return yRange;
-    yRange = _;
-    return chart;
-  };
-
-  chart.forceY = function(_) {
-    if (!arguments.length) return forceY;
-    forceY = _;
-    return chart;
-  };
-
-  chart.stacked = function(_) {
-    if (!arguments.length) return stacked;
-    stacked = _;
-    return chart;
-  };
-
-  chart.color = function(_) {
-    if (!arguments.length) return color;
-    color = nv.utils.getColor(_);
-    return chart;
-  };
-
-  chart.barColor = function(_) {
-    if (!arguments.length) return barColor;
-    barColor = nv.utils.getColor(_);
-    return chart;
-  };
-
-  chart.disabled = function(_) {
-    if (!arguments.length) return disabled;
-    disabled = _;
-    return chart;
-  };
-
-  chart.id = function(_) {
-    if (!arguments.length) return id;
-    id = _;
-    return chart;
-  };
-
-  chart.delay = function(_) {
-    if (!arguments.length) return delay;
-    delay = _;
-    return chart;
-  };
-
-  chart.showValues = function(_) {
-    if (!arguments.length) return showValues;
-    showValues = _;
-    return chart;
-  };
-
-  chart.showBarLabels = function(_) {
-    if (!arguments.length) return showBarLabels;
-    showBarLabels = _;
-    return chart;
-  };
-
-
-  chart.valueFormat= function(_) {
-    if (!arguments.length) return valueFormat;
-    valueFormat = _;
-    return chart;
-  };
-
-  chart.valuePadding = function(_) {
-    if (!arguments.length) return valuePadding;
-    valuePadding = _;
-    return chart;
-  };
-
-  //============================================================
-
-
-  return chart;
-}
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/multiBarHorizontalChart.js b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/multiBarHorizontalChart.js
deleted file mode 100755
index 4b545596..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/multiBarHorizontalChart.js
+++ /dev/null
@@ -1,461 +0,0 @@
-
-nv.models.multiBarHorizontalChart = function() {
-  "use strict";
-  //============================================================
-  // Public Variables with Default Settings
-  //------------------------------------------------------------
-
-  var multibar = nv.models.multiBarHorizontal()
-    , xAxis = nv.models.axis()
-    , yAxis = nv.models.axis()
-    , legend = nv.models.legend().height(30)
-    , controls = nv.models.legend().height(30)
-    ;
-
-  var margin = {top: 30, right: 20, bottom: 50, left: 60}
-    , width = null
-    , height = null
-    , color = nv.utils.defaultColor()
-    , showControls = true
-    , showLegend = true
-    , showXAxis = true
-    , showYAxis = true
-    , stacked = false
-    , tooltips = true
-    , tooltip = function(key, x, y, e, graph) {
-        return '<h3>' + key + ' - ' + x + '</h3>' +
-               '<p>' +  y + '</p>'
-      }
-    , x //can be accessed via chart.xScale()
-    , y //can be accessed via chart.yScale()
-    , state = { stacked: stacked }
-    , defaultState = null
-    , noData = 'No Data Available.'
-    , dispatch = d3.dispatch('tooltipShow', 'tooltipHide', 'stateChange', 'changeState')
-    , controlWidth = function() { return showControls ? 180 : 0 }
-    , transitionDuration = 250
-    ;
-
-  multibar
-    .stacked(stacked)
-    ;
-  xAxis
-    .orient('left')
-    .tickPadding(5)
-    .highlightZero(false)
-    .showMaxMin(false)
-    .tickFormat(function(d) { return d })
-    ;
-  yAxis
-    .orient('bottom')
-    .tickFormat(d3.format(',.1f'))
-    ;
-
-  controls.updateState(false);
-  //============================================================
-
-
-  //============================================================
-  // Private Variables
-  //------------------------------------------------------------
-
-  var showTooltip = function(e, offsetElement) {
-    var left = e.pos[0] + ( offsetElement.offsetLeft || 0 ),
-        top = e.pos[1] + ( offsetElement.offsetTop || 0),
-        x = xAxis.tickFormat()(multibar.x()(e.point, e.pointIndex)),
-        y = yAxis.tickFormat()(multibar.y()(e.point, e.pointIndex)),
-        content = tooltip(e.series.key, x, y, e, chart);
-
-    nv.tooltip.show([left, top], content, e.value < 0 ? 'e' : 'w', null, offsetElement);
-  };
-
-  //============================================================
-
-
-  function chart(selection) {
-    selection.each(function(data) {
-      var container = d3.select(this),
-          that = this;
-
-      var availableWidth = (width  || parseInt(container.style('width')) || 960)
-                             - margin.left - margin.right,
-          availableHeight = (height || parseInt(container.style('height')) || 400)
-                             - margin.top - margin.bottom;
-
-      chart.update = function() { container.transition().duration(transitionDuration).call(chart) };
-      chart.container = this;
-
-      //set state.disabled
-      state.disabled = data.map(function(d) { return !!d.disabled });
-
-      if (!defaultState) {
-        var key;
-        defaultState = {};
-        for (key in state) {
-          if (state[key] instanceof Array)
-            defaultState[key] = state[key].slice(0);
-          else
-            defaultState[key] = state[key];
-        }
-      }
-
-      //------------------------------------------------------------
-      // Display No Data message if there's nothing to show.
-
-      if (!data || !data.length || !data.filter(function(d) { return d.values.length }).length) {
-        var noDataText = container.selectAll('.nv-noData').data([noData]);
-
-        noDataText.enter().append('text')
-          .attr('class', 'nvd3 nv-noData')
-          .attr('dy', '-.7em')
-          .style('text-anchor', 'middle');
-
-        noDataText
-          .attr('x', margin.left + availableWidth / 2)
-          .attr('y', margin.top + availableHeight / 2)
-          .text(function(d) { return d });
-
-        return chart;
-      } else {
-        container.selectAll('.nv-noData').remove();
-      }
-
-      //------------------------------------------------------------
-
-
-      //------------------------------------------------------------
-      // Setup Scales
-
-      x = multibar.xScale();
-      y = multibar.yScale();
-
-      //------------------------------------------------------------
-
-
-      //------------------------------------------------------------
-      // Setup containers and skeleton of chart
-
-      var wrap = container.selectAll('g.nv-wrap.nv-multiBarHorizontalChart').data([data]);
-      var gEnter = wrap.enter().append('g').attr('class', 'nvd3 nv-wrap nv-multiBarHorizontalChart').append('g');
-      var g = wrap.select('g');
-
-      gEnter.append('g').attr('class', 'nv-x nv-axis');
-      gEnter.append('g').attr('class', 'nv-y nv-axis')
-            .append('g').attr('class', 'nv-zeroLine')
-            .append('line');
-      gEnter.append('g').attr('class', 'nv-barsWrap');
-      gEnter.append('g').attr('class', 'nv-legendWrap');
-      gEnter.append('g').attr('class', 'nv-controlsWrap');
-
-      //------------------------------------------------------------
-
-
-      //------------------------------------------------------------
-      // Legend
-
-      if (showLegend) {
-        legend.width(availableWidth - controlWidth());
-
-        if (multibar.barColor())
-          data.forEach(function(series,i) {
-            series.color = d3.rgb('#ccc').darker(i * 1.5).toString();
-          })
-
-        g.select('.nv-legendWrap')
-            .datum(data)
-            .call(legend);
-
-        if ( margin.top != legend.height()) {
-          margin.top = legend.height();
-          availableHeight = (height || parseInt(container.style('height')) || 400)
-                             - margin.top - margin.bottom;
-        }
-
-        g.select('.nv-legendWrap')
-            .attr('transform', 'translate(' + controlWidth() + ',' + (-margin.top) +')');
-      }
-
-      //------------------------------------------------------------
-
-
-      //------------------------------------------------------------
-      // Controls
-
-      if (showControls) {
-        var controlsData = [
-          { key: 'Grouped', disabled: multibar.stacked() },
-          { key: 'Stacked', disabled: !multibar.stacked() }
-        ];
-
-        controls.width(controlWidth()).color(['#444', '#444', '#444']);
-        g.select('.nv-controlsWrap')
-            .datum(controlsData)
-            .attr('transform', 'translate(0,' + (-margin.top) +')')
-            .call(controls);
-      }
-
-      //------------------------------------------------------------
-
-
-      wrap.attr('transform', 'translate(' + margin.left + ',' + margin.top + ')');
-
-
-      //------------------------------------------------------------
-      // Main Chart Component(s)
-
-      multibar
-        .disabled(data.map(function(series) { return series.disabled }))
-        .width(availableWidth)
-        .height(availableHeight)
-        .color(data.map(function(d,i) {
-          return d.color || color(d, i);
-        }).filter(function(d,i) { return !data[i].disabled }))
-
-
-      var barsWrap = g.select('.nv-barsWrap')
-          .datum(data.filter(function(d) { return !d.disabled }))
-
-      barsWrap.transition().call(multibar);
-
-      //------------------------------------------------------------
-
-
-      //------------------------------------------------------------
-      // Setup Axes
-
-      if (showXAxis) {
-          xAxis
-            .scale(x)
-            .ticks( availableHeight / 24 )
-            .tickSize(-availableWidth, 0);
-
-          g.select('.nv-x.nv-axis').transition()
-              .call(xAxis);
-
-          var xTicks = g.select('.nv-x.nv-axis').selectAll('g');
-
-          xTicks
-              .selectAll('line, text');
-      }
-
-      if (showYAxis) {
-          yAxis
-            .scale(y)
-            .ticks( availableWidth / 100 )
-            .tickSize( -availableHeight, 0);
-
-          g.select('.nv-y.nv-axis')
-              .attr('transform', 'translate(0,' + availableHeight + ')');
-          g.select('.nv-y.nv-axis').transition()
-              .call(yAxis);
-      }
-
-      // Zero line
-      g.select(".nv-zeroLine line")
-        .attr("x1", y(0))
-        .attr("x2", y(0))
-        .attr("y1", 0)
-        .attr("y2", -availableHeight)
-        ;
-
-      //------------------------------------------------------------
-
-
-
-      //============================================================
-      // Event Handling/Dispatching (in chart's scope)
-      //------------------------------------------------------------
-
-      legend.dispatch.on('stateChange', function(newState) {
-        state = newState;
-        dispatch.stateChange(state);
-        chart.update();
-      });
-
-      controls.dispatch.on('legendClick', function(d,i) {
-        if (!d.disabled) return;
-        controlsData = controlsData.map(function(s) {
-          s.disabled = true;
-          return s;
-        });
-        d.disabled = false;
-
-        switch (d.key) {
-          case 'Grouped':
-            multibar.stacked(false);
-            break;
-          case 'Stacked':
-            multibar.stacked(true);
-            break;
-        }
-
-        state.stacked = multibar.stacked();
-        dispatch.stateChange(state);
-
-        chart.update();
-      });
-
-      dispatch.on('tooltipShow', function(e) {
-        if (tooltips) showTooltip(e, that.parentNode);
-      });
-
-      // Update chart from a state object passed to event handler
-      dispatch.on('changeState', function(e) {
-
-        if (typeof e.disabled !== 'undefined') {
-          data.forEach(function(series,i) {
-            series.disabled = e.disabled[i];
-          });
-
-          state.disabled = e.disabled;
-        }
-
-        if (typeof e.stacked !== 'undefined') {
-          multibar.stacked(e.stacked);
-          state.stacked = e.stacked;
-        }
-
-        chart.update();
-      });
-      //============================================================
-
-
-    });
-
-    return chart;
-  }
-
-
-  //============================================================
-  // Event Handling/Dispatching (out of chart's scope)
-  //------------------------------------------------------------
-
-  multibar.dispatch.on('elementMouseover.tooltip', function(e) {
-    e.pos = [e.pos[0] +  margin.left, e.pos[1] + margin.top];
-    dispatch.tooltipShow(e);
-  });
-
-  multibar.dispatch.on('elementMouseout.tooltip', function(e) {
-    dispatch.tooltipHide(e);
-  });
-  dispatch.on('tooltipHide', function() {
-    if (tooltips) nv.tooltip.cleanup();
-  });
-
-  //============================================================
-
-
-  //============================================================
-  // Expose Public Variables
-  //------------------------------------------------------------
-
-  // expose chart's sub-components
-  chart.dispatch = dispatch;
-  chart.multibar = multibar;
-  chart.legend = legend;
-  chart.xAxis = xAxis;
-  chart.yAxis = yAxis;
-
-  d3.rebind(chart, multibar, 'x', 'y', 'xDomain', 'yDomain', 'xRange', 'yRange', 'forceX', 'forceY',
-    'clipEdge', 'id', 'delay', 'showValues','showBarLabels', 'valueFormat', 'stacked', 'barColor');
-
-  chart.options = nv.utils.optionsFunc.bind(chart);
-
-  chart.margin = function(_) {
-    if (!arguments.length) return margin;
-    margin.top    = typeof _.top    != 'undefined' ? _.top    : margin.top;
-    margin.right  = typeof _.right  != 'undefined' ? _.right  : margin.right;
-    margin.bottom = typeof _.bottom != 'undefined' ? _.bottom : margin.bottom;
-    margin.left   = typeof _.left   != 'undefined' ? _.left   : margin.left;
-    return chart;
-  };
-
-  chart.width = function(_) {
-    if (!arguments.length) return width;
-    width = _;
-    return chart;
-  };
-
-  chart.height = function(_) {
-    if (!arguments.length) return height;
-    height = _;
-    return chart;
-  };
-
-  chart.color = function(_) {
-    if (!arguments.length) return color;
-    color = nv.utils.getColor(_);
-    legend.color(color);
-    return chart;
-  };
-
-  chart.showControls = function(_) {
-    if (!arguments.length) return showControls;
-    showControls = _;
-    return chart;
-  };
-
-  chart.showLegend = function(_) {
-    if (!arguments.length) return showLegend;
-    showLegend = _;
-    return chart;
-  };
-
-  chart.showXAxis = function(_) {
-    if (!arguments.length) return showXAxis;
-    showXAxis = _;
-    return chart;
-  };
-
-  chart.showYAxis = function(_) {
-    if (!arguments.length) return showYAxis;
-    showYAxis = _;
-    return chart;
-  };
-
-  chart.tooltip = function(_) {
-    if (!arguments.length) return tooltip;
-    tooltip = _;
-    return chart;
-  };
-
-  chart.tooltips = function(_) {
-    if (!arguments.length) return tooltips;
-    tooltips = _;
-    return chart;
-  };
-
-  chart.tooltipContent = function(_) {
-    if (!arguments.length) return tooltip;
-    tooltip = _;
-    return chart;
-  };
-
-  chart.state = function(_) {
-    if (!arguments.length) return state;
-    state = _;
-    return chart;
-  };
-
-  chart.defaultState = function(_) {
-    if (!arguments.length) return defaultState;
-    defaultState = _;
-    return chart;
-  };
-
-  chart.noData = function(_) {
-    if (!arguments.length) return noData;
-    noData = _;
-    return chart;
-  };
-
-  chart.transitionDuration = function(_) {
-    if (!arguments.length) return transitionDuration;
-    transitionDuration = _;
-    return chart;
-  };
-  //============================================================
-
-
-  return chart;
-}
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/multiBarTimeSeries.js b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/multiBarTimeSeries.js
deleted file mode 100755
index abc062c3..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/multiBarTimeSeries.js
+++ /dev/null
@@ -1,384 +0,0 @@
-nv.models.multiBarTimeSeries = function() {
-  "use strict";
-  //============================================================
-  // Public Variables with Default Settings
-  //------------------------------------------------------------
-
-  var margin = {top: 0, right: 0, bottom: 0, left: 0}
-    , width = 960
-    , height = 500
-    , x = d3.time.scale()
-    , y = d3.scale.linear()
-    , id = Math.floor(Math.random() * 10000) //Create semi-unique ID in case user doesn't select one
-    , getX = function(d) { return d.x }
-    , getY = function(d) { return d.y }
-    , forceY = [0] // 0 is forced by default.. this makes sense for the majority of bar graphs... user can always do chart.forceY([]) to remove
-    , clipEdge = true
-    , stacked = false
-    , color = nv.utils.defaultColor()
-    , delay = 1200
-    , xDomain
-    , yDomain
-    , xRange
-    , yRange
-    , dispatch = d3.dispatch('chartClick', 'elementClick', 'elementDblClick', 'elementMouseover', 'elementMouseout')
-    ;
-
-  //============================================================
-
-
-  //============================================================
-  // Private Variables
-  //------------------------------------------------------------
-
-  var x0, y0 //used to store previous scales
-      ;
-
-  //============================================================
-
-
-  function chart(selection) {
-    selection.each(function(data) {
-      var availableWidth = width - margin.left - margin.right,
-          availableHeight = height - margin.top - margin.bottom,
-          container = d3.select(this);
-
-      if (stacked)
-        data = d3.layout.stack()
-                 .offset('zero')
-                 .values(function(d){ return d.values })
-                 .y(getY)
-                 (data);
-
-
-      //add series index to each data point for reference
-      data.forEach(function(series, i) {
-        series.values.forEach(function(point) {
-          point.series = i;
-        });
-      });
-
-      //------------------------------------------------------------
-      // Setup Scales
-
-      // remap and flatten the data for use in calculating the scales' domains
-      var seriesData = (xDomain && yDomain) ? [] : // if we know xDomain and yDomain, no need to calculate
-            data.map(function(d) {
-              return d.values.map(function(d,i) {
-                return { x: getX(d,i), y: getY(d,i), y0: d.y0 }
-              })
-            });
-
-      x   .domain(xDomain || d3.extent(d3.merge(seriesData).map(function(d) { return d.x })))
-          .range(xRange || [0, availableWidth]);
-
-      y   .domain(yDomain || d3.extent(d3.merge(seriesData).map(function(d) { return d.y + (stacked ? d.y0 : 0) }).concat(forceY)))
-          .range(yRange || [availableHeight, 0]);
-
-
-      // If scale's domain don't have a range, slightly adjust to make one... so a chart can show a single data point
-      if (x.domain()[0] === x.domain()[1])
-        x.domain()[0] ?
-            x.domain([x.domain()[0] - x.domain()[0] * 0.01, x.domain()[1] + x.domain()[1] * 0.01])
-          : x.domain([-1,1]);
-
-      if (y.domain()[0] === y.domain()[1])
-        y.domain()[0] ?
-            y.domain([y.domain()[0] + y.domain()[0] * 0.01, y.domain()[1] - y.domain()[1] * 0.01])
-          : y.domain([-1,1]);
-
-
-      x0 = x0 || x;
-      y0 = y0 || y;
-
-      //------------------------------------------------------------
-
-
-      //------------------------------------------------------------
-      // Setup containers and skeleton of chart
-
-      var wrap = container.selectAll('g.nv-wrap.nv-multibar').data([data]);
-      var wrapEnter = wrap.enter().append('g').attr('class', 'nvd3 nv-wrap nv-multibar');
-      var defsEnter = wrapEnter.append('defs');
-      var gEnter = wrapEnter.append('g');
-      var g = wrap.select('g')
-
-      gEnter.append('g').attr('class', 'nv-groups');
-
-      wrap.attr('transform', 'translate(' + margin.left + ',' + margin.top + ')');
-
-      //------------------------------------------------------------
-
-
-
-      defsEnter.append('clipPath')
-          .attr('id', 'nv-edge-clip-' + id)
-        .append('rect');
-      wrap.select('#nv-edge-clip-' + id + ' rect')
-          .attr('width', availableWidth)
-          .attr('height', availableHeight);
-
-      g   .attr('clip-path', clipEdge ? 'url(#nv-edge-clip-' + id + ')' : '');
-
-
-
-      var groups = wrap.select('.nv-groups').selectAll('.nv-group')
-          .data(function(d) { return d }, function(d) { return d.key });
-      groups.enter().append('g')
-          .style('stroke-opacity', 1e-6)
-          .style('fill-opacity', 1e-6);
-      d3.transition(groups.exit())
-          //.style('stroke-opacity', 1e-6)
-          //.style('fill-opacity', 1e-6)
-        .selectAll('rect.nv-bar')
-        .delay(function(d,i) { return i * delay/ data[0].values.length })
-          .attr('y', function(d) { return stacked ? y0(d.y0) : y0(0) })
-          .attr('height', 0)
-          .remove();
-      groups
-          .attr('class', function(d,i) { return 'nv-group nv-series-' + i })
-          .classed('hover', function(d) { return d.hover })
-          .style('fill', function(d,i){ return color(d, i) })
-          .style('stroke', function(d,i){ return color(d, i) });
-      d3.transition(groups)
-          .style('stroke-opacity', 1)
-          .style('fill-opacity', .75);
-
-
-      var bars = groups.selectAll('rect.nv-bar')
-          .data(function(d) { return d.values });
-
-      bars.exit().remove();
-
-      var maxElements = 0;
-      for(var ei=0; ei<seriesData.length; ei+=1) {
-          maxElements = Math.max(seriesData[ei].length, maxElements);
-      }
-
-      var bandWidth = (availableWidth / maxElements)-0.1;
-      var barWidth = bandWidth / data.length;
-
-      var barsEnter = bars.enter().append('rect')
-          .attr('class', function(d,i) { return getY(d,i) < 0 ? 'nv-bar negative' : 'nv-bar positive'})
-          .attr('x', function(d,i,j) {
-              return stacked ? 0 : (i * bandWidth) + ( j * barWidth )
-          })
-          .attr('y', function(d) { return y0(stacked ? d.y0 : 0) })
-          .attr('height', 0)
-          .attr('width', stacked ? bandWidth : barWidth );
-      bars
-          .on('mouseover', function(d,i) { //TODO: figure out why j works above, but not here
-            d3.select(this).classed('hover', true);
-            dispatch.elementMouseover({
-              value: getY(d,i),
-              point: d,
-              series: data[d.series],
-              pos: [x(getX(d,i)) + (barWidth * (stacked ? data.length / 2 : d.series + .5) / data.length), y(getY(d,i) + (stacked ? d.y0 : 0))],  // TODO: Figure out why the value appears to be shifted
-              pointIndex: i,
-              seriesIndex: d.series,
-              e: d3.event
-            });
-          })
-          .on('mouseout', function(d,i) {
-            d3.select(this).classed('hover', false);
-            dispatch.elementMouseout({
-              value: getY(d,i),
-              point: d,
-              series: data[d.series],
-              pointIndex: i,
-              seriesIndex: d.series,
-              e: d3.event
-            });
-          })
-          .on('click', function(d,i) {
-            dispatch.elementClick({
-              value: getY(d,i),
-              point: d,
-              series: data[d.series],
-              pos: [x(getX(d,i)) + (barWidth * (stacked ? data.length / 2 : d.series + .5) / data.length), y(getY(d,i) + (stacked ? d.y0 : 0))],  // TODO: Figure out why the value appears to be shifted
-              pointIndex: i,
-              seriesIndex: d.series,
-              e: d3.event
-            });
-            d3.event.stopPropagation();
-          })
-          .on('dblclick', function(d,i) {
-            dispatch.elementDblClick({
-              value: getY(d,i),
-              point: d,
-              series: data[d.series],
-              pos: [x(getX(d,i)) + (barWidth * (stacked ? data.length / 2 : d.series + .5) / data.length), y(getY(d,i) + (stacked ? d.y0 : 0))],  // TODO: Figure out why the value appears to be shifted
-              pointIndex: i,
-              seriesIndex: d.series,
-              e: d3.event
-            });
-            d3.event.stopPropagation();
-          });
-      bars
-          .attr('class', function(d,i) { return getY(d,i) < 0 ? 'nv-bar negative' : 'nv-bar positive'})
-          .attr('transform', function(d,i) { return 'translate(' + x(getX(d,i)) + ',0)'; })
-      if (stacked)
-        d3.transition(bars)
-            .delay(function(d,i) { return i * delay / data[0].values.length })
-            .attr('y', function(d,i) {
-              return y(getY(d,i) + (stacked ? d.y0 : 0));
-            })
-            .attr('height', function(d,i) {
-              return Math.abs(y(d.y + (stacked ? d.y0 : 0)) - y((stacked ? d.y0 : 0)))
-            })
-            .each('end', function() {
-              d3.transition(d3.select(this))
-                .attr('x', function(d,i) {
-                  return stacked ? 0 : (i * bandWidth) + ( j * barWidth )
-                })
-                .attr('width', stacked ? bandWidth : barWidth );
-            })
-      else
-        d3.transition(bars)
-          .delay(function(d,i) { return i * delay/ data[0].values.length })
-            .attr('x', function(d,i) {
-              return d.series * barWidth
-            })
-            .attr('width', barWidth)
-            .each('end', function() {
-              d3.transition(d3.select(this))
-                .attr('y', function(d,i) {
-                  return getY(d,i) < 0 ?
-                    y(0) :
-                    y(getY(d,i))
-                })
-                .attr('height', function(d,i) {
-                  return Math.abs(y(getY(d,i)) - y(0))
-                });
-            })
-
-
-      //store old scales for use in transitions on update
-      x0 = x.copy();
-      y0 = y.copy();
-
-    });
-
-    return chart;
-  }
-
-
-  //============================================================
-  // Expose Public Variables
-  //------------------------------------------------------------
-
-  chart.dispatch = dispatch;
-
-  chart.options = nv.utils.optionsFunc.bind(chart);
-
-  chart.x = function(_) {
-    if (!arguments.length) return getX;
-    getX = _;
-    return chart;
-  };
-
-  chart.y = function(_) {
-    if (!arguments.length) return getY;
-    getY = _;
-    return chart;
-  };
-
-  chart.margin = function(_) {
-    if (!arguments.length) return margin;
-    margin.top    = typeof _.top    != 'undefined' ? _.top    : margin.top;
-    margin.right  = typeof _.right  != 'undefined' ? _.right  : margin.right;
-    margin.bottom = typeof _.bottom != 'undefined' ? _.bottom : margin.bottom;
-    margin.left   = typeof _.left   != 'undefined' ? _.left   : margin.left;
-    return chart;
-  };
-
-  chart.width = function(_) {
-    if (!arguments.length) return width;
-    width = _;
-    return chart;
-  };
-
-  chart.height = function(_) {
-    if (!arguments.length) return height;
-    height = _;
-    return chart;
-  };
-
-  chart.xScale = function(_) {
-    if (!arguments.length) return x;
-    x = _;
-    return chart;
-  };
-
-  chart.yScale = function(_) {
-    if (!arguments.length) return y;
-    y = _;
-    return chart;
-  };
-
-  chart.xDomain = function(_) {
-    if (!arguments.length) return xDomain;
-    xDomain = _;
-    return chart;
-  };
-
-  chart.yDomain = function(_) {
-    if (!arguments.length) return yDomain;
-    yDomain = _;
-    return chart;
-  };
-
-  chart.xRange = function(_) {
-    if (!arguments.length) return xRange;
-    xRange = _;
-    return chart;
-  };
-
-  chart.yRange = function(_) {
-    if (!arguments.length) return yRange;
-    yRange = _;
-    return chart;
-  };
-
-  chart.forceY = function(_) {
-    if (!arguments.length) return forceY;
-    forceY = _;
-    return chart;
-  };
-
-  chart.stacked = function(_) {
-    if (!arguments.length) return stacked;
-    stacked = _;
-    return chart;
-  };
-
-  chart.clipEdge = function(_) {
-    if (!arguments.length) return clipEdge;
-    clipEdge = _;
-    return chart;
-  };
-
-  chart.color = function(_) {
-    if (!arguments.length) return color;
-    color = nv.utils.getColor(_);
-    return chart;
-  };
-
-  chart.id = function(_) {
-    if (!arguments.length) return id;
-    id = _;
-    return chart;
-  };
-
-  chart.delay = function(_) {
-    if (!arguments.length) return delay;
-    delay = _;
-    return chart;
-  };
-
-  //============================================================
-
-
-  return chart;
-}
-
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/multiBarTimeSeriesChart.js b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/multiBarTimeSeriesChart.js
deleted file mode 100755
index 5aebafa7..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/multiBarTimeSeriesChart.js
+++ /dev/null
@@ -1,405 +0,0 @@
-nv.models.multiBarTimeSeriesChart = function() {
-  "use strict";
-  //============================================================
-  // Public Variables with Default Settings
-  //------------------------------------------------------------
-
-  var multibar = nv.models.multiBarTimeSeries()
-    , xAxis = nv.models.axis()
-    , yAxis = nv.models.axis()
-    , legend = nv.models.legend()
-    , controls = nv.models.legend()
-    ;
-
-  var margin = {top: 30, right: 20, bottom: 50, left: 60}
-    , width = null
-    , height = null
-    , color = nv.utils.defaultColor()
-    , showControls = true
-    , showLegend = true
-    , reduceXTicks = true // if false a tick will show for every data point
-    , rotateLabels = 0
-    , tooltips = true
-    , tooltip = function(key, x, y, e, graph) {
-        return '<h3>' + key + '</h3>' +
-               '<p>' +  y + ' on ' + x + '</p>'
-      }
-    , x //can be accessed via chart.xScale()
-    , y //can be accessed via chart.yScale()
-    , noData = "No Data Available."
-    , dispatch = d3.dispatch('tooltipShow', 'tooltipHide')
-    ;
-
-  multibar
-    .stacked(false)
-    ;
-  xAxis
-    .orient('bottom')
-    .tickPadding(7)
-    .highlightZero(false)
-    .showMaxMin(false)
-    ;
-  yAxis
-    .orient('left')
-    .tickFormat(d3.format(',.1f'))
-    ;
-
-  //============================================================
-
-
-  //============================================================
-  // Private Variables
-  //------------------------------------------------------------
-
-  var showTooltip = function(e, offsetElement) {
-    var left = e.pos[0] + ( offsetElement.offsetLeft || 0 ),
-        top = e.pos[1] + ( offsetElement.offsetTop || 0),
-        x = xAxis.tickFormat()(multibar.x()(e.point, e.pointIndex)),
-        y = yAxis.tickFormat()(multibar.y()(e.point, e.pointIndex)),
-        content = tooltip(e.series.key, x, y, e, chart);
-
-    nv.tooltip.show([left, top], content, e.value < 0 ? 'n' : 's', null, offsetElement);
-  };
-
-  //============================================================
-
-
-  function chart(selection) {
-    selection.each(function(data) {
-      var container = d3.select(this),
-          that = this;
-
-      var availableWidth = (width  || parseInt(container.style('width')) || 960)
-                             - margin.left - margin.right,
-          availableHeight = (height || parseInt(container.style('height')) || 400)
-                             - margin.top - margin.bottom;
-
-      chart.update = function() { selection.transition().call(chart) };
-      chart.container = this;
-
-
-      //------------------------------------------------------------
-      // Display noData message if there's nothing to show.
-
-      if (!data || !data.length || !data.filter(function(d) { return d.values.length }).length) {
-        var noDataText = container.selectAll('.nv-noData').data([noData]);
-
-        noDataText.enter().append('text')
-          .attr('class', 'nvd3 nv-noData')
-          .attr('dy', '-.7em')
-          .style('text-anchor', 'middle');
-
-        noDataText
-          .attr('x', margin.left + availableWidth / 2)
-          .attr('y', margin.top + availableHeight / 2)
-          .text(function(d) { return d });
-
-        return chart;
-      } else {
-        container.selectAll('.nv-noData').remove();
-      }
-
-      //------------------------------------------------------------
-
-
-      //------------------------------------------------------------
-      // Setup Scales
-
-      x = multibar.xScale();
-      y = multibar.yScale();
-
-      //------------------------------------------------------------
-
-
-      //------------------------------------------------------------
-      // Setup containers and skeleton of chart
-
-      var wrap = container.selectAll('g.nv-wrap.nv-multiBarWithLegend').data([data]);
-      var gEnter = wrap.enter().append('g').attr('class', 'nvd3 nv-wrap nv-multiBarWithLegend').append('g');
-      var g = wrap.select('g');
-
-      gEnter.append('g').attr('class', 'nv-x nv-axis');
-      gEnter.append('g').attr('class', 'nv-y nv-axis');
-      gEnter.append('g').attr('class', 'nv-barsWrap');
-      gEnter.append('g').attr('class', 'nv-legendWrap');
-      gEnter.append('g').attr('class', 'nv-controlsWrap');
-
-      //------------------------------------------------------------
-
-
-      //------------------------------------------------------------
-      // Legend
-
-      if (showLegend) {
-        legend.width(availableWidth / 2);
-
-        g.select('.nv-legendWrap')
-            .datum(data)
-            .call(legend);
-
-        if ( margin.top != legend.height()) {
-          margin.top = legend.height();
-          availableHeight = (height || parseInt(container.style('height')) || 400)
-                             - margin.top - margin.bottom;
-        }
-
-        g.select('.nv-legendWrap')
-            .attr('transform', 'translate(' + (availableWidth / 2) + ',' + (-margin.top) +')');
-      }
-
-      //------------------------------------------------------------
-
-
-      //------------------------------------------------------------
-      // Controls
-
-      if (showControls) {
-        var controlsData = [
-          { key: 'Grouped', disabled: multibar.stacked() },
-          { key: 'Stacked', disabled: !multibar.stacked() }
-        ];
-
-        controls.width(180).color(['#444', '#444', '#444']);
-        g.select('.nv-controlsWrap')
-            .datum(controlsData)
-            .attr('transform', 'translate(0,' + (-margin.top) +')')
-            .call(controls);
-      }
-
-      //------------------------------------------------------------
-
-
-      wrap.attr('transform', 'translate(' + margin.left + ',' + margin.top + ')');
-
-
-      //------------------------------------------------------------
-      // Main Chart Component(s)
-
-      multibar
-        .width(availableWidth)
-        .height(availableHeight)
-        .color(data.map(function(d,i) {
-          return d.color || color(d, i);
-        }).filter(function(d,i) { return !data[i].disabled }))
-
-
-      var barsWrap = g.select('.nv-barsWrap')
-          .datum(data.filter(function(d) { return !d.disabled }))
-
-      d3.transition(barsWrap).call(multibar);
-
-      //------------------------------------------------------------
-
-
-      //------------------------------------------------------------
-      // Setup Axes
-
-      xAxis
-        .scale(x)
-        .ticks(availableWidth / 100)        
-        .tickSize(-availableHeight, 0);
-
-      g.select('.nv-x.nv-axis')
-          .attr('transform', 'translate(0,' + y.range()[0] + ')');
-      d3.transition(g.select('.nv-x.nv-axis'))
-          .call(xAxis);
-
-      var xTicks = g.select('.nv-x.nv-axis > g').selectAll('g');
-
-      xTicks
-          .selectAll('line, text')
-          .style('opacity', 1)
-
-      if (reduceXTicks)
-        xTicks
-          .filter(function(d,i) {
-              return i % Math.ceil(data[0].values.length / (availableWidth / 100)) !== 0;
-            })
-          .selectAll('text, line')
-          .style('opacity', 0);
-
-      if(rotateLabels)
-        xTicks
-            .selectAll('text')
-            .attr('transform', function(d,i,j) { return 'rotate('+rotateLabels+' 0,0)' })
-            .attr('text-transform', rotateLabels > 0 ? 'start' : 'end');
-
-      yAxis
-        .scale(y)
-        .ticks( availableHeight / 36 )
-        .tickSize( -availableWidth, 0);
-
-      d3.transition(g.select('.nv-y.nv-axis'))
-          .call(yAxis);
-
-      //------------------------------------------------------------
-
-
-
-      //============================================================
-      // Event Handling/Dispatching (in chart's scope)
-      //------------------------------------------------------------
-
-      legend.dispatch.on('legendClick', function(d,i) {
-        d.disabled = !d.disabled;
-
-        if (!data.filter(function(d) { return !d.disabled }).length) {
-          data.map(function(d) {
-            d.disabled = false;
-            wrap.selectAll('.nv-series').classed('disabled', false);
-            return d;
-          });
-        }
-
-        selection.transition().call(chart);
-      });
-
-      controls.dispatch.on('legendClick', function(d,i) {
-        if (!d.disabled) return;
-        controlsData = controlsData.map(function(s) {
-          s.disabled = true;
-          return s;
-        });
-        d.disabled = false;
-
-        switch (d.key) {
-          case 'Grouped':
-            multibar.stacked(false);
-            break;
-          case 'Stacked':
-            multibar.stacked(true);
-            break;
-        }
-
-        selection.transition().call(chart);
-      });
-
-      dispatch.on('tooltipShow', function(e) {
-        if (tooltips) showTooltip(e, that.parentNode)
-      });
-
-      //============================================================
-
-
-    });
-
-    return chart;
-  }
-
-
-  //============================================================
-  // Event Handling/Dispatching (out of chart's scope)
-  //------------------------------------------------------------
-
-  multibar.dispatch.on('elementMouseover.tooltip', function(e) {
-    e.pos = [e.pos[0] +  margin.left, e.pos[1] + margin.top];
-    dispatch.tooltipShow(e);
-  });
-
-  multibar.dispatch.on('elementMouseout.tooltip', function(e) {
-    dispatch.tooltipHide(e);
-  });
-  dispatch.on('tooltipHide', function() {
-    if (tooltips) nv.tooltip.cleanup();
-  });
-
-  //============================================================
-
-
-  //============================================================
-  // Expose Public Variables
-  //------------------------------------------------------------
-
-  // expose chart's sub-components
-  chart.dispatch = dispatch;
-  chart.multibar = multibar;
-  chart.legend = legend;
-  chart.xAxis = xAxis;
-  chart.yAxis = yAxis;
-
-  d3.rebind(chart, multibar, 'x', 'y', 'xDomain', 'yDomain', 'xRange', 'yRange', 'forceX', 'forceY', 'clipEdge', 'id', 'stacked', 'delay');
-
-  chart.options = nv.utils.optionsFunc.bind(chart);
-  
-  chart.margin = function(_) {
-    if (!arguments.length) return margin;
-    margin.top    = typeof _.top    != 'undefined' ? _.top    : margin.top;
-    margin.right  = typeof _.right  != 'undefined' ? _.right  : margin.right;
-    margin.bottom = typeof _.bottom != 'undefined' ? _.bottom : margin.bottom;
-    margin.left   = typeof _.left   != 'undefined' ? _.left   : margin.left;
-    return chart;
-  };
-
-  chart.width = function(_) {
-    if (!arguments.length) return width;
-    width = _;
-    return chart;
-  };
-
-  chart.height = function(_) {
-    if (!arguments.length) return height;
-    height = _;
-    return chart;
-  };
-
-  chart.color = function(_) {
-    if (!arguments.length) return color;
-    color = nv.utils.getColor(_);
-    legend.color(color);
-    return chart;
-  };
-
-  chart.showControls = function(_) {
-    if (!arguments.length) return showControls;
-    showControls = _;
-    return chart;
-  };
-
-  chart.showLegend = function(_) {
-    if (!arguments.length) return showLegend;
-    showLegend = _;
-    return chart;
-  };
-
-  chart.reduceXTicks= function(_) {
-    if (!arguments.length) return reduceXTicks;
-    reduceXTicks = _;
-    return chart;
-  };
-
-  chart.rotateLabels = function(_) {
-    if (!arguments.length) return rotateLabels;
-    rotateLabels = _;
-    return chart;
-  }
-
-  chart.tooltip = function(_) {
-    if (!arguments.length) return tooltip;
-    tooltip = _;
-    return chart;
-  };
-
-  chart.tooltips = function(_) {
-    if (!arguments.length) return tooltips;
-    tooltips = _;
-    return chart;
-  };
-
-  chart.tooltipContent = function(_) {
-    if (!arguments.length) return tooltip;
-    tooltip = _;
-    return chart;
-  };
-
-  chart.noData = function(_) {
-    if (!arguments.length) return noData;
-    noData = _;
-    return chart;
-  };
-
-  //============================================================
-
-
-  return chart;
-}
-
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/multiChart.js b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/multiChart.js
deleted file mode 100755
index e3e2c5e8..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/multiChart.js
+++ /dev/null
@@ -1,452 +0,0 @@
-nv.models.multiChart = function() {
-  "use strict";
-  //============================================================
-  // Public Variables with Default Settings
-  //------------------------------------------------------------
-
-  var margin = {top: 30, right: 20, bottom: 50, left: 60},
-      color = d3.scale.category20().range(),
-      width = null, 
-      height = null,
-      showLegend = true,
-      tooltips = true,
-      tooltip = function(key, x, y, e, graph) {
-        return '<h3>' + key + '</h3>' +
-               '<p>' +  y + ' at ' + x + '</p>'
-      },
-      x,
-      y,
-      yDomain1,
-      yDomain2
-      ; //can be accessed via chart.lines.[x/y]Scale()
-
-  //============================================================
-  // Private Variables
-  //------------------------------------------------------------
-
-  var x = d3.scale.linear(),
-      yScale1 = d3.scale.linear(),
-      yScale2 = d3.scale.linear(),
-
-      lines1 = nv.models.line().yScale(yScale1),
-      lines2 = nv.models.line().yScale(yScale2),
-
-      bars1 = nv.models.multiBar().stacked(false).yScale(yScale1),
-      bars2 = nv.models.multiBar().stacked(false).yScale(yScale2),
-
-      stack1 = nv.models.stackedArea().yScale(yScale1),
-      stack2 = nv.models.stackedArea().yScale(yScale2),
-
-      xAxis = nv.models.axis().scale(x).orient('bottom').tickPadding(5),
-      yAxis1 = nv.models.axis().scale(yScale1).orient('left'),
-      yAxis2 = nv.models.axis().scale(yScale2).orient('right'),
-
-      legend = nv.models.legend().height(30),
-      dispatch = d3.dispatch('tooltipShow', 'tooltipHide');
-
-  var showTooltip = function(e, offsetElement) {
-    var left = e.pos[0] + ( offsetElement.offsetLeft || 0 ),
-        top = e.pos[1] + ( offsetElement.offsetTop || 0),
-        x = xAxis.tickFormat()(lines1.x()(e.point, e.pointIndex)),
-        y = ((e.series.yAxis == 2) ? yAxis2 : yAxis1).tickFormat()(lines1.y()(e.point, e.pointIndex)),
-        content = tooltip(e.series.key, x, y, e, chart);
-
-    nv.tooltip.show([left, top], content, undefined, undefined, offsetElement.offsetParent);
-  };
-
-  function chart(selection) {
-    selection.each(function(data) {
-      var container = d3.select(this),
-          that = this;
-
-      chart.update = function() { container.transition().call(chart); };
-      chart.container = this;
-
-      var availableWidth = (width  || parseInt(container.style('width')) || 960)
-                             - margin.left - margin.right,
-          availableHeight = (height || parseInt(container.style('height')) || 400)
-                             - margin.top - margin.bottom;
-
-      var dataLines1 = data.filter(function(d) {return !d.disabled && d.type == 'line' && d.yAxis == 1})
-      var dataLines2 = data.filter(function(d) {return !d.disabled && d.type == 'line' && d.yAxis == 2})
-      var dataBars1 = data.filter(function(d) {return !d.disabled && d.type == 'bar' && d.yAxis == 1})
-      var dataBars2 = data.filter(function(d) {return !d.disabled && d.type == 'bar' && d.yAxis == 2})
-      var dataStack1 = data.filter(function(d) {return !d.disabled && d.type == 'area' && d.yAxis == 1})
-      var dataStack2 = data.filter(function(d) {return !d.disabled && d.type == 'area' && d.yAxis == 2})
-
-      var series1 = data.filter(function(d) {return !d.disabled && d.yAxis == 1})
-            .map(function(d) {
-              return d.values.map(function(d,i) {
-                return { x: d.x, y: d.y }
-              })
-            })
-
-      var series2 = data.filter(function(d) {return !d.disabled && d.yAxis == 2})
-            .map(function(d) {
-              return d.values.map(function(d,i) {
-                return { x: d.x, y: d.y }
-              })
-            })
-
-      x   .domain(d3.extent(d3.merge(series1.concat(series2)), function(d) { return d.x } ))
-          .range([0, availableWidth]);
-
-      var wrap = container.selectAll('g.wrap.multiChart').data([data]);
-      var gEnter = wrap.enter().append('g').attr('class', 'wrap nvd3 multiChart').append('g');
-
-      gEnter.append('g').attr('class', 'x axis');
-      gEnter.append('g').attr('class', 'y1 axis');
-      gEnter.append('g').attr('class', 'y2 axis');
-      gEnter.append('g').attr('class', 'lines1Wrap');
-      gEnter.append('g').attr('class', 'lines2Wrap');
-      gEnter.append('g').attr('class', 'bars1Wrap');
-      gEnter.append('g').attr('class', 'bars2Wrap');
-      gEnter.append('g').attr('class', 'stack1Wrap');
-      gEnter.append('g').attr('class', 'stack2Wrap');
-      gEnter.append('g').attr('class', 'legendWrap');
-
-      var g = wrap.select('g');
-
-      if (showLegend) {
-        legend.width( availableWidth / 2 );
-
-        g.select('.legendWrap')
-            .datum(data.map(function(series) { 
-              series.originalKey = series.originalKey === undefined ? series.key : series.originalKey;
-              series.key = series.originalKey + (series.yAxis == 1 ? '' : ' (right axis)');
-              return series;
-            }))
-          .call(legend);
-
-        if ( margin.top != legend.height()) {
-          margin.top = legend.height();
-          availableHeight = (height || parseInt(container.style('height')) || 400)
-                             - margin.top - margin.bottom;
-        }
-
-        g.select('.legendWrap')
-            .attr('transform', 'translate(' + ( availableWidth / 2 ) + ',' + (-margin.top) +')');
-      }
-
-
-      lines1
-        .width(availableWidth)
-        .height(availableHeight)
-        .interpolate("monotone")
-        .color(data.map(function(d,i) {
-          return d.color || color[i % color.length];
-        }).filter(function(d,i) { return !data[i].disabled && data[i].yAxis == 1 && data[i].type == 'line'}));
-
-      lines2
-        .width(availableWidth)
-        .height(availableHeight)
-        .interpolate("monotone")
-        .color(data.map(function(d,i) {
-          return d.color || color[i % color.length];
-        }).filter(function(d,i) { return !data[i].disabled && data[i].yAxis == 2 && data[i].type == 'line'}));
-
-      bars1
-        .width(availableWidth)
-        .height(availableHeight)
-        .color(data.map(function(d,i) {
-          return d.color || color[i % color.length];
-        }).filter(function(d,i) { return !data[i].disabled && data[i].yAxis == 1 && data[i].type == 'bar'}));
-
-      bars2
-        .width(availableWidth)
-        .height(availableHeight)
-        .color(data.map(function(d,i) {
-          return d.color || color[i % color.length];
-        }).filter(function(d,i) { return !data[i].disabled && data[i].yAxis == 2 && data[i].type == 'bar'}));
-
-      stack1
-        .width(availableWidth)
-        .height(availableHeight)
-        .color(data.map(function(d,i) {
-          return d.color || color[i % color.length];
-        }).filter(function(d,i) { return !data[i].disabled && data[i].yAxis == 1 && data[i].type == 'area'}));
-
-      stack2
-        .width(availableWidth)
-        .height(availableHeight)
-        .color(data.map(function(d,i) {
-          return d.color || color[i % color.length];
-        }).filter(function(d,i) { return !data[i].disabled && data[i].yAxis == 2 && data[i].type == 'area'}));
-
-      g.attr('transform', 'translate(' + margin.left + ',' + margin.top + ')');
-
-
-      var lines1Wrap = g.select('.lines1Wrap')
-          .datum(dataLines1)
-      var bars1Wrap = g.select('.bars1Wrap')
-          .datum(dataBars1)
-      var stack1Wrap = g.select('.stack1Wrap')
-          .datum(dataStack1)
-
-      var lines2Wrap = g.select('.lines2Wrap')
-          .datum(dataLines2)
-      var bars2Wrap = g.select('.bars2Wrap')
-          .datum(dataBars2)
-      var stack2Wrap = g.select('.stack2Wrap')
-          .datum(dataStack2)
-
-      var extraValue1 = dataStack1.length ? dataStack1.map(function(a){return a.values}).reduce(function(a,b){
-        return a.map(function(aVal,i){return {x: aVal.x, y: aVal.y + b[i].y}})
-      }).concat([{x:0, y:0}]) : []
-      var extraValue2 = dataStack2.length ? dataStack2.map(function(a){return a.values}).reduce(function(a,b){
-        return a.map(function(aVal,i){return {x: aVal.x, y: aVal.y + b[i].y}})
-      }).concat([{x:0, y:0}]) : []
-
-      yScale1 .domain(yDomain1 || d3.extent(d3.merge(series1).concat(extraValue1), function(d) { return d.y } ))
-              .range([0, availableHeight])
-
-      yScale2 .domain(yDomain2 || d3.extent(d3.merge(series2).concat(extraValue2), function(d) { return d.y } ))
-              .range([0, availableHeight])
-
-      lines1.yDomain(yScale1.domain())
-      bars1.yDomain(yScale1.domain())
-      stack1.yDomain(yScale1.domain())
-
-      lines2.yDomain(yScale2.domain())
-      bars2.yDomain(yScale2.domain())
-      stack2.yDomain(yScale2.domain())
-
-      if(dataStack1.length){d3.transition(stack1Wrap).call(stack1);}
-      if(dataStack2.length){d3.transition(stack2Wrap).call(stack2);}
-
-      if(dataBars1.length){d3.transition(bars1Wrap).call(bars1);}
-      if(dataBars2.length){d3.transition(bars2Wrap).call(bars2);}
-
-      if(dataLines1.length){d3.transition(lines1Wrap).call(lines1);}
-      if(dataLines2.length){d3.transition(lines2Wrap).call(lines2);}
-      
-
-
-      xAxis
-        .ticks( availableWidth / 100 )
-        .tickSize(-availableHeight, 0);
-
-      g.select('.x.axis')
-          .attr('transform', 'translate(0,' + availableHeight + ')');
-      d3.transition(g.select('.x.axis'))
-          .call(xAxis);
-
-      yAxis1
-        .ticks( availableHeight / 36 )
-        .tickSize( -availableWidth, 0);
-
-
-      d3.transition(g.select('.y1.axis'))
-          .call(yAxis1);
-
-      yAxis2
-        .ticks( availableHeight / 36 )
-        .tickSize( -availableWidth, 0);
-
-      d3.transition(g.select('.y2.axis'))
-          .call(yAxis2);
-
-      g.select('.y2.axis')
-          .style('opacity', series2.length ? 1 : 0)
-          .attr('transform', 'translate(' + x.range()[1] + ',0)');
-
-      legend.dispatch.on('stateChange', function(newState) { 
-        chart.update();
-      });
-     
-      dispatch.on('tooltipShow', function(e) {
-        if (tooltips) showTooltip(e, that.parentNode);
-      });
-
-    });
-
-    return chart;
-  }
-
-
-  //============================================================
-  // Event Handling/Dispatching (out of chart's scope)
-  //------------------------------------------------------------
-
-  lines1.dispatch.on('elementMouseover.tooltip', function(e) {
-    e.pos = [e.pos[0] +  margin.left, e.pos[1] + margin.top];
-    dispatch.tooltipShow(e);
-  });
-
-  lines1.dispatch.on('elementMouseout.tooltip', function(e) {
-    dispatch.tooltipHide(e);
-  });
-
-  lines2.dispatch.on('elementMouseover.tooltip', function(e) {
-    e.pos = [e.pos[0] +  margin.left, e.pos[1] + margin.top];
-    dispatch.tooltipShow(e);
-  });
-
-  lines2.dispatch.on('elementMouseout.tooltip', function(e) {
-    dispatch.tooltipHide(e);
-  });
-
-  bars1.dispatch.on('elementMouseover.tooltip', function(e) {
-    e.pos = [e.pos[0] +  margin.left, e.pos[1] + margin.top];
-    dispatch.tooltipShow(e);
-  });
-
-  bars1.dispatch.on('elementMouseout.tooltip', function(e) {
-    dispatch.tooltipHide(e);
-  });
-
-  bars2.dispatch.on('elementMouseover.tooltip', function(e) {
-    e.pos = [e.pos[0] +  margin.left, e.pos[1] + margin.top];
-    dispatch.tooltipShow(e);
-  });
-
-  bars2.dispatch.on('elementMouseout.tooltip', function(e) {
-    dispatch.tooltipHide(e);
-  });
-
-  stack1.dispatch.on('tooltipShow', function(e) {
-    //disable tooltips when value ~= 0
-    //// TODO: consider removing points from voronoi that have 0 value instead of this hack
-    if (!Math.round(stack1.y()(e.point) * 100)) {  // 100 will not be good for very small numbers... will have to think about making this valu dynamic, based on data range
-      setTimeout(function() { d3.selectAll('.point.hover').classed('hover', false) }, 0);
-      return false;
-    }
-
-    e.pos = [e.pos[0] + margin.left, e.pos[1] + margin.top],
-    dispatch.tooltipShow(e);
-  });
-
-  stack1.dispatch.on('tooltipHide', function(e) {
-    dispatch.tooltipHide(e);
-  });
-
-  stack2.dispatch.on('tooltipShow', function(e) {
-    //disable tooltips when value ~= 0
-    //// TODO: consider removing points from voronoi that have 0 value instead of this hack
-    if (!Math.round(stack2.y()(e.point) * 100)) {  // 100 will not be good for very small numbers... will have to think about making this valu dynamic, based on data range
-      setTimeout(function() { d3.selectAll('.point.hover').classed('hover', false) }, 0);
-      return false;
-    }
-
-    e.pos = [e.pos[0] + margin.left, e.pos[1] + margin.top],
-    dispatch.tooltipShow(e);
-  });
-
-  stack2.dispatch.on('tooltipHide', function(e) {
-    dispatch.tooltipHide(e);
-  });
-
-    lines1.dispatch.on('elementMouseover.tooltip', function(e) {
-    e.pos = [e.pos[0] +  margin.left, e.pos[1] + margin.top];
-    dispatch.tooltipShow(e);
-  });
-
-  lines1.dispatch.on('elementMouseout.tooltip', function(e) {
-    dispatch.tooltipHide(e);
-  });
-
-  lines2.dispatch.on('elementMouseover.tooltip', function(e) {
-    e.pos = [e.pos[0] +  margin.left, e.pos[1] + margin.top];
-    dispatch.tooltipShow(e);
-  });
-
-  lines2.dispatch.on('elementMouseout.tooltip', function(e) {
-    dispatch.tooltipHide(e);
-  });
-
-  dispatch.on('tooltipHide', function() {
-    if (tooltips) nv.tooltip.cleanup();
-  });
-
-
-
-  //============================================================
-  // Global getters and setters
-  //------------------------------------------------------------
-
-  chart.dispatch = dispatch;
-  chart.lines1 = lines1;
-  chart.lines2 = lines2;
-  chart.bars1 = bars1;
-  chart.bars2 = bars2;
-  chart.stack1 = stack1;
-  chart.stack2 = stack2;
-  chart.xAxis = xAxis;
-  chart.yAxis1 = yAxis1;
-  chart.yAxis2 = yAxis2;
-  chart.options = nv.utils.optionsFunc.bind(chart);
-
-  chart.x = function(_) {
-    if (!arguments.length) return getX;
-    getX = _;
-    lines1.x(_);
-    bars1.x(_);
-    return chart;
-  };
-
-  chart.y = function(_) {
-    if (!arguments.length) return getY;
-    getY = _;
-    lines1.y(_);
-    bars1.y(_);
-    return chart;
-  };
-
-  chart.yDomain1 = function(_) {
-    if (!arguments.length) return yDomain1;
-    yDomain1 = _;
-    return chart;
-  };
-
-  chart.yDomain2 = function(_) {
-    if (!arguments.length) return yDomain2;
-    yDomain2 = _;
-    return chart;
-  };
-
-  chart.margin = function(_) {
-    if (!arguments.length) return margin;
-    margin = _;
-    return chart;
-  };
-
-  chart.width = function(_) {
-    if (!arguments.length) return width;
-    width = _;
-    return chart;
-  };
-
-  chart.height = function(_) {
-    if (!arguments.length) return height;
-    height = _;
-    return chart;
-  };
-
-  chart.color = function(_) {
-    if (!arguments.length) return color;
-    color = _;
-    legend.color(_);
-    return chart;
-  };
-
-  chart.showLegend = function(_) {
-    if (!arguments.length) return showLegend;
-    showLegend = _;
-    return chart;
-  };
-
-  chart.tooltips = function(_) {
-    if (!arguments.length) return tooltips;
-    tooltips = _;
-    return chart;
-  };
-
-  chart.tooltipContent = function(_) {
-    if (!arguments.length) return tooltip;
-    tooltip = _;
-    return chart;
-  };
-
-  return chart;
-}
-
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/ohlcBar.js b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/ohlcBar.js
deleted file mode 100755
index 46f2b60c..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/ohlcBar.js
+++ /dev/null
@@ -1,380 +0,0 @@
-
-nv.models.ohlcBar = function() {
-  "use strict";
-  //============================================================
-  // Public Variables with Default Settings
-  //------------------------------------------------------------
-
-  var margin = {top: 0, right: 0, bottom: 0, left: 0}
-    , width = 960
-    , height = 500
-    , id = Math.floor(Math.random() * 10000) //Create semi-unique ID in case user doesn't select one
-    , x = d3.scale.linear()
-    , y = d3.scale.linear()
-    , getX = function(d) { return d.x }
-    , getY = function(d) { return d.y }
-    , getOpen = function(d) { return d.open }
-    , getClose = function(d) { return d.close }
-    , getHigh = function(d) { return d.high }
-    , getLow = function(d) { return d.low }
-    , forceX = []
-    , forceY = []
-    , padData     = false // If true, adds half a data points width to front and back, for lining up a line chart with a bar chart
-    , clipEdge = true
-    , color = nv.utils.defaultColor()
-    , xDomain
-    , yDomain
-    , xRange
-    , yRange
-    , dispatch = d3.dispatch('chartClick', 'elementClick', 'elementDblClick', 'elementMouseover', 'elementMouseout')
-    ;
-
-  //============================================================
-
-  //============================================================
-  // Private Variables
-  //------------------------------------------------------------
-
-  //TODO: store old scales for transitions
-
-  //============================================================
-
-
-  function chart(selection) {
-    selection.each(function(data) {
-      var availableWidth = width - margin.left - margin.right,
-          availableHeight = height - margin.top - margin.bottom,
-          container = d3.select(this);
-
-
-      //------------------------------------------------------------
-      // Setup Scales
-
-      x   .domain(xDomain || d3.extent(data[0].values.map(getX).concat(forceX) ));
-
-      if (padData)
-        x.range(xRange || [availableWidth * .5 / data[0].values.length, availableWidth * (data[0].values.length - .5)  / data[0].values.length ]);
-      else
-        x.range(xRange || [0, availableWidth]);
-
-      y   .domain(yDomain || [
-            d3.min(data[0].values.map(getLow).concat(forceY)),
-            d3.max(data[0].values.map(getHigh).concat(forceY))
-          ])
-          .range(yRange || [availableHeight, 0]);
-
-      // If scale's domain don't have a range, slightly adjust to make one... so a chart can show a single data point
-      if (x.domain()[0] === x.domain()[1])
-        x.domain()[0] ?
-            x.domain([x.domain()[0] - x.domain()[0] * 0.01, x.domain()[1] + x.domain()[1] * 0.01])
-          : x.domain([-1,1]);
-
-      if (y.domain()[0] === y.domain()[1])
-        y.domain()[0] ?
-            y.domain([y.domain()[0] + y.domain()[0] * 0.01, y.domain()[1] - y.domain()[1] * 0.01])
-          : y.domain([-1,1]);
-
-      //------------------------------------------------------------
-
-
-      //------------------------------------------------------------
-      // Setup containers and skeleton of chart
-
-      var wrap = d3.select(this).selectAll('g.nv-wrap.nv-ohlcBar').data([data[0].values]);
-      var wrapEnter = wrap.enter().append('g').attr('class', 'nvd3 nv-wrap nv-ohlcBar');
-      var defsEnter = wrapEnter.append('defs');
-      var gEnter = wrapEnter.append('g');
-      var g = wrap.select('g');
-
-      gEnter.append('g').attr('class', 'nv-ticks');
-
-      wrap.attr('transform', 'translate(' + margin.left + ',' + margin.top + ')');
-
-      //------------------------------------------------------------
-
-
-      container
-          .on('click', function(d,i) {
-            dispatch.chartClick({
-                data: d,
-                index: i,
-                pos: d3.event,
-                id: id
-            });
-          });
-
-
-      defsEnter.append('clipPath')
-          .attr('id', 'nv-chart-clip-path-' + id)
-        .append('rect');
-
-      wrap.select('#nv-chart-clip-path-' + id + ' rect')
-          .attr('width', availableWidth)
-          .attr('height', availableHeight);
-
-      g   .attr('clip-path', clipEdge ? 'url(#nv-chart-clip-path-' + id + ')' : '');
-
-
-
-      var ticks = wrap.select('.nv-ticks').selectAll('.nv-tick')
-          .data(function(d) { return d });
-
-      ticks.exit().remove();
-
-
-      var ticksEnter = ticks.enter().append('path')
-          .attr('class', function(d,i,j) { return (getOpen(d,i) > getClose(d,i) ? 'nv-tick negative' : 'nv-tick positive') + ' nv-tick-' + j + '-' + i })
-          .attr('d', function(d,i) {
-            var w = (availableWidth / data[0].values.length) * .9;
-            return 'm0,0l0,'
-                 + (y(getOpen(d,i))
-                 - y(getHigh(d,i)))
-                 + 'l'
-                 + (-w/2)
-                 + ',0l'
-                 + (w/2)
-                 + ',0l0,'
-                 + (y(getLow(d,i)) - y(getOpen(d,i)))
-                 + 'l0,'
-                 + (y(getClose(d,i))
-                 - y(getLow(d,i)))
-                 + 'l'
-                 + (w/2)
-                 + ',0l'
-                 + (-w/2)
-                 + ',0z';
-          })
-          .attr('transform', function(d,i) { return 'translate(' + x(getX(d,i)) + ',' + y(getHigh(d,i)) + ')'; })
-          //.attr('fill', function(d,i) { return color[0]; })
-          //.attr('stroke', function(d,i) { return color[0]; })
-          //.attr('x', 0 )
-          //.attr('y', function(d,i) {  return y(Math.max(0, getY(d,i))) })
-          //.attr('height', function(d,i) { return Math.abs(y(getY(d,i)) - y(0)) })
-          .on('mouseover', function(d,i) {
-            d3.select(this).classed('hover', true);
-            dispatch.elementMouseover({
-                point: d,
-                series: data[0],
-                pos: [x(getX(d,i)), y(getY(d,i))],  // TODO: Figure out why the value appears to be shifted
-                pointIndex: i,
-                seriesIndex: 0,
-                e: d3.event
-            });
-
-          })
-          .on('mouseout', function(d,i) {
-                d3.select(this).classed('hover', false);
-                dispatch.elementMouseout({
-                    point: d,
-                    series: data[0],
-                    pointIndex: i,
-                    seriesIndex: 0,
-                    e: d3.event
-                });
-          })
-          .on('click', function(d,i) {
-                dispatch.elementClick({
-                    //label: d[label],
-                    value: getY(d,i),
-                    data: d,
-                    index: i,
-                    pos: [x(getX(d,i)), y(getY(d,i))],
-                    e: d3.event,
-                    id: id
-                });
-              d3.event.stopPropagation();
-          })
-          .on('dblclick', function(d,i) {
-              dispatch.elementDblClick({
-                  //label: d[label],
-                  value: getY(d,i),
-                  data: d,
-                  index: i,
-                  pos: [x(getX(d,i)), y(getY(d,i))],
-                  e: d3.event,
-                  id: id
-              });
-              d3.event.stopPropagation();
-          });
-
-      ticks
-          .attr('class', function(d,i,j) { return (getOpen(d,i) > getClose(d,i) ? 'nv-tick negative' : 'nv-tick positive') + ' nv-tick-' + j + '-' + i })
-      d3.transition(ticks)
-          .attr('transform', function(d,i) { return 'translate(' + x(getX(d,i)) + ',' + y(getHigh(d,i)) + ')'; })
-          .attr('d', function(d,i) {
-            var w = (availableWidth / data[0].values.length) * .9;
-            return 'm0,0l0,'
-                 + (y(getOpen(d,i))
-                 - y(getHigh(d,i)))
-                 + 'l'
-                 + (-w/2)
-                 + ',0l'
-                 + (w/2)
-                 + ',0l0,'
-                 + (y(getLow(d,i))
-                 - y(getOpen(d,i)))
-                 + 'l0,'
-                 + (y(getClose(d,i))
-                 - y(getLow(d,i)))
-                 + 'l'
-                 + (w/2)
-                 + ',0l'
-                 + (-w/2)
-                 + ',0z';
-          })
-          //.attr('width', (availableWidth / data[0].values.length) * .9 )
-
-
-      //d3.transition(ticks)
-          //.attr('y', function(d,i) {  return y(Math.max(0, getY(d,i))) })
-          //.attr('height', function(d,i) { return Math.abs(y(getY(d,i)) - y(0)) });
-          //.order();  // not sure if this makes any sense for this model
-
-    });
-
-    return chart;
-  }
-
-
-  //============================================================
-  // Expose Public Variables
-  //------------------------------------------------------------
-
-  chart.dispatch = dispatch;
-
-  chart.options = nv.utils.optionsFunc.bind(chart);
-
-  chart.x = function(_) {
-    if (!arguments.length) return getX;
-    getX = _;
-    return chart;
-  };
-
-  chart.y = function(_) {
-    if (!arguments.length) return getY;
-    getY = _;
-    return chart;
-  };
-
-  chart.open = function(_) {
-    if (!arguments.length) return getOpen;
-    getOpen = _;
-    return chart;
-  };
-
-  chart.close = function(_) {
-    if (!arguments.length) return getClose;
-    getClose = _;
-    return chart;
-  };
-
-  chart.high = function(_) {
-    if (!arguments.length) return getHigh;
-    getHigh = _;
-    return chart;
-  };
-
-  chart.low = function(_) {
-    if (!arguments.length) return getLow;
-    getLow = _;
-    return chart;
-  };
-
-  chart.margin = function(_) {
-    if (!arguments.length) return margin;
-    margin.top    = typeof _.top    != 'undefined' ? _.top    : margin.top;
-    margin.right  = typeof _.right  != 'undefined' ? _.right  : margin.right;
-    margin.bottom = typeof _.bottom != 'undefined' ? _.bottom : margin.bottom;
-    margin.left   = typeof _.left   != 'undefined' ? _.left   : margin.left;
-    return chart;
-  };
-
-  chart.width = function(_) {
-    if (!arguments.length) return width;
-    width = _;
-    return chart;
-  };
-
-  chart.height = function(_) {
-    if (!arguments.length) return height;
-    height = _;
-    return chart;
-  };
-
-  chart.xScale = function(_) {
-    if (!arguments.length) return x;
-    x = _;
-    return chart;
-  };
-
-  chart.yScale = function(_) {
-    if (!arguments.length) return y;
-    y = _;
-    return chart;
-  };
-
-  chart.xDomain = function(_) {
-    if (!arguments.length) return xDomain;
-    xDomain = _;
-    return chart;
-  };
-
-  chart.yDomain = function(_) {
-    if (!arguments.length) return yDomain;
-    yDomain = _;
-    return chart;
-  };
-
-  chart.xRange = function(_) {
-    if (!arguments.length) return xRange;
-    xRange = _;
-    return chart;
-  };
-
-  chart.yRange = function(_) {
-    if (!arguments.length) return yRange;
-    yRange = _;
-    return chart;
-  };
-
-  chart.forceX = function(_) {
-    if (!arguments.length) return forceX;
-    forceX = _;
-    return chart;
-  };
-
-  chart.forceY = function(_) {
-    if (!arguments.length) return forceY;
-    forceY = _;
-    return chart;
-  };
-
-  chart.padData = function(_) {
-    if (!arguments.length) return padData;
-    padData = _;
-    return chart;
-  };
-
-  chart.clipEdge = function(_) {
-    if (!arguments.length) return clipEdge;
-    clipEdge = _;
-    return chart;
-  };
-
-  chart.color = function(_) {
-    if (!arguments.length) return color;
-    color = nv.utils.getColor(_);
-    return chart;
-  };
-
-  chart.id = function(_) {
-    if (!arguments.length) return id;
-    id = _;
-    return chart;
-  };
-
-  //============================================================
-
-
-  return chart;
-}
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/parallelCoordinates.js b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/parallelCoordinates.js
deleted file mode 100755
index 107154f7..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/parallelCoordinates.js
+++ /dev/null
@@ -1,239 +0,0 @@
-
-//Code adapted from Jason Davies' "Parallel Coordinates"
-// http://bl.ocks.org/jasondavies/1341281
-
-nv.models.parallelCoordinates = function() {
-  "use strict";
-  //============================================================
-  // Public Variables with Default Settings
-  //------------------------------------------------------------
-
-
-  var margin = {top: 30, right: 10, bottom: 10, left: 10}
-    , width = 960
-    , height = 500
-    , x = d3.scale.ordinal()
-    , y = {}
-    , dimensions = []
-    , color = nv.utils.getColor(d3.scale.category20c().range())
-    , axisLabel = function(d) { return d; }
-    , filters = []
-    , active = []
-    , dispatch = d3.dispatch('brush')
-    ;
-
-  //============================================================
-
-
-  //============================================================
-  // Private Variables
-  //------------------------------------------------------------
-
-
-  //============================================================
-
-
-  function chart(selection) {
-    selection.each(function(data) {
-      var availableWidth = width - margin.left - margin.right,
-          availableHeight = height - margin.top - margin.bottom,
-          container = d3.select(this);
-
-      active = data; //set all active before first brush call
-
-      chart.update = function() { }; //This is a placeholder until this chart is made resizeable
-
-      //------------------------------------------------------------
-      // Setup Scales
-
-      x
-        .rangePoints([0, availableWidth], 1)
-        .domain(dimensions);
-
-      // Extract the list of dimensions and create a scale for each.
-      dimensions.forEach(function(d) {
-          y[d] = d3.scale.linear()
-              .domain(d3.extent(data, function(p) { return +p[d]; }))
-              .range([availableHeight, 0]);
-
-          y[d].brush = d3.svg.brush().y(y[d]).on('brush', brush);
-
-          return d != 'name';
-        })
-
-
-      //------------------------------------------------------------
-
-
-      //------------------------------------------------------------
-      // Setup containers and skeleton of chart
-
-      var wrap = container.selectAll('g.nv-wrap.nv-parallelCoordinates').data([data]);
-      var wrapEnter = wrap.enter().append('g').attr('class', 'nvd3 nv-wrap nv-parallelCoordinates');
-      var gEnter = wrapEnter.append('g');
-      var g = wrap.select('g')
-
-      gEnter.append('g').attr('class', 'nv-parallelCoordinatesWrap');
-
-      wrap.attr('transform', 'translate(' + margin.left + ',' + margin.top + ')');
-
-      //------------------------------------------------------------
-
-
-      var line = d3.svg.line(),
-          axis = d3.svg.axis().orient('left'),
-          background,
-          foreground;
-
-
-      // Add grey background lines for context.
-      background = gEnter.append('g')
-          .attr('class', 'background')
-        .selectAll('path')
-          .data(data)
-        .enter().append('path')
-          .attr('d', path)
-        ;
-
-      // Add blue foreground lines for focus.
-      foreground = gEnter.append('g')
-          .attr('class', 'foreground')
-        .selectAll('path')
-          .data(data)
-        .enter().append('path')
-          .attr('d', path)
-        ;
-
-      // Add a group element for each dimension.
-      var dimension = g.selectAll('.dimension')
-          .data(dimensions)
-        .enter().append('g')
-          .attr('class', 'dimension')
-          .attr('transform', function(d) { return 'translate(' + x(d) + ',0)'; });
-
-      // Add an axis and title.
-      dimension.append('g')
-          .attr('class', 'axis')
-          .each(function(d) { d3.select(this).call(axis.scale(y[d])); })
-        .append('text')
-          .attr('text-anchor', 'middle')
-          .attr('y', -9)
-          .text(String);
-
-      // Add and store a brush for each axis.
-      dimension.append('g')
-          .attr('class', 'brush')
-          .each(function(d) { d3.select(this).call(y[d].brush); })
-        .selectAll('rect')
-          .attr('x', -8)
-          .attr('width', 16);
-
-
-      // Returns the path for a given data point.
-      function path(d) {
-        return line(dimensions.map(function(p) { return [x(p), y[p](d[p])]; }));
-      }
-
-      // Handles a brush event, toggling the display of foreground lines.
-      function brush() {
-        var actives = dimensions.filter(function(p) { return !y[p].brush.empty(); }),
-            extents = actives.map(function(p) { return y[p].brush.extent(); });
-
-        filters = []; //erase current filters
-        actives.forEach(function(d,i) {
-          filters[i] = {
-            dimension: d,
-            extent: extents[i]
-          }
-        });
-
-        active = []; //erase current active list
-        foreground.style('display', function(d) {
-          var isActive = actives.every(function(p, i) {
-            return extents[i][0] <= d[p] && d[p] <= extents[i][1];
-          });
-          if (isActive) active.push(d);
-          return isActive ? null : 'none';
-        });
-
-        dispatch.brush({
-          filters: filters,
-          active: active
-        });
-
-      }
-
-
-
-    });
-
-    return chart;
-  }
-
-
-  //============================================================
-  // Expose Public Variables
-  //------------------------------------------------------------
-
-
-  chart.dispatch = dispatch;
-  chart.options = nv.utils.optionsFunc.bind(chart);
-  
-  chart.margin = function(_) {
-    if (!arguments.length) return margin;
-    margin.top    = typeof _.top    != 'undefined' ? _.top    : margin.top;
-    margin.right  = typeof _.right  != 'undefined' ? _.right  : margin.right;
-    margin.bottom = typeof _.bottom != 'undefined' ? _.bottom : margin.bottom;
-    margin.left   = typeof _.left   != 'undefined' ? _.left   : margin.left;
-    return chart;
-  };
-
-  chart.width = function(_) {
-    if (!arguments.length) return width;
-    width = _;
-    return chart;
-  };
-
-  chart.height = function(_) {
-    if (!arguments.length) return height;
-    height = _;
-    return chart;
-  };
-
-  chart.color = function(_) {
-    if (!arguments.length) return color;
-    color = nv.utils.getColor(_)
-    return chart;
-  };
-
-  chart.xScale = function(_) {
-    if (!arguments.length) return x;
-    x = _;
-    return chart;
-  };
-
-  chart.yScale = function(_) {
-    if (!arguments.length) return y;
-    y = _;
-    return chart;
-  };
-
-  chart.dimensions = function(_) {
-    if (!arguments.length) return dimensions;
-    dimensions = _;
-    return chart;
-  };
-
-  chart.filters = function() {
-    return filters;
-  };
-
-  chart.active = function() {
-    return active;
-  };
-
-  //============================================================
-
-
-  return chart;
-}
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/pie.js b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/pie.js
deleted file mode 100755
index fa2d4364..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/pie.js
+++ /dev/null
@@ -1,409 +0,0 @@
-nv.models.pie = function() {
-  "use strict";
-  //============================================================
-  // Public Variables with Default Settings
-  //------------------------------------------------------------
-
-  var margin = {top: 0, right: 0, bottom: 0, left: 0}
-    , width = 500
-    , height = 500
-    , getX = function(d) { return d.x }
-    , getY = function(d) { return d.y }
-    , getDescription = function(d) { return d.description }
-    , id = Math.floor(Math.random() * 10000) //Create semi-unique ID in case user doesn't select one
-    , color = nv.utils.defaultColor()
-    , valueFormat = d3.format(',.2f')
-    , showLabels = true
-    , pieLabelsOutside = true
-    , donutLabelsOutside = false
-    , labelType = "key"
-    , labelThreshold = .02 //if slice percentage is under this, don't show label
-    , donut = false
-    , labelSunbeamLayout = false
-    , startAngle = false
-    , endAngle = false
-    , donutRatio = 0.5
-    , dispatch = d3.dispatch('chartClick', 'elementClick', 'elementDblClick', 'elementMouseover', 'elementMouseout')
-    ;
-
-  //============================================================
-
-
-  function chart(selection) {
-    selection.each(function(data) {
-      var availableWidth = width - margin.left - margin.right,
-          availableHeight = height - margin.top - margin.bottom,
-          radius = Math.min(availableWidth, availableHeight) / 2,
-          arcRadius = radius-(radius / 5),
-          container = d3.select(this);
-
-
-      //------------------------------------------------------------
-      // Setup containers and skeleton of chart
-
-      //var wrap = container.selectAll('.nv-wrap.nv-pie').data([data]);
-      var wrap = container.selectAll('.nv-wrap.nv-pie').data(data);
-      var wrapEnter = wrap.enter().append('g').attr('class','nvd3 nv-wrap nv-pie nv-chart-' + id);
-      var gEnter = wrapEnter.append('g');
-      var g = wrap.select('g');
-
-      gEnter.append('g').attr('class', 'nv-pie');
-      gEnter.append('g').attr('class', 'nv-pieLabels');
-
-      wrap.attr('transform', 'translate(' + margin.left + ',' + margin.top + ')');
-      g.select('.nv-pie').attr('transform', 'translate(' + availableWidth / 2 + ',' + availableHeight / 2 + ')');
-      g.select('.nv-pieLabels').attr('transform', 'translate(' + availableWidth / 2 + ',' + availableHeight / 2 + ')');
-
-      //------------------------------------------------------------
-
-
-      container
-          .on('click', function(d,i) {
-              dispatch.chartClick({
-                  data: d,
-                  index: i,
-                  pos: d3.event,
-                  id: id
-              });
-          });
-
-
-      var arc = d3.svg.arc()
-                  .outerRadius(arcRadius);
-
-      if (startAngle) arc.startAngle(startAngle)
-      if (endAngle) arc.endAngle(endAngle);
-      if (donut) arc.innerRadius(radius * donutRatio);
-
-      // Setup the Pie chart and choose the data element
-      var pie = d3.layout.pie()
-          .sort(null)
-          .value(function(d) { return d.disabled ? 0 : getY(d) });
-
-      var slices = wrap.select('.nv-pie').selectAll('.nv-slice')
-          .data(pie);
-
-      var pieLabels = wrap.select('.nv-pieLabels').selectAll('.nv-label')
-          .data(pie);
-
-      slices.exit().remove();
-      pieLabels.exit().remove();
-
-      var ae = slices.enter().append('g')
-              .attr('class', 'nv-slice')
-              .on('mouseover', function(d,i){
-                d3.select(this).classed('hover', true);
-                dispatch.elementMouseover({
-                    label: getX(d.data),
-                    value: getY(d.data),
-                    point: d.data,
-                    pointIndex: i,
-                    pos: [d3.event.pageX, d3.event.pageY],
-                    id: id
-                });
-              })
-              .on('mouseout', function(d,i){
-                d3.select(this).classed('hover', false);
-                dispatch.elementMouseout({
-                    label: getX(d.data),
-                    value: getY(d.data),
-                    point: d.data,
-                    index: i,
-                    id: id
-                });
-              })
-              .on('click', function(d,i) {
-                dispatch.elementClick({
-                    label: getX(d.data),
-                    value: getY(d.data),
-                    point: d.data,
-                    index: i,
-                    pos: d3.event,
-                    id: id
-                });
-                d3.event.stopPropagation();
-              })
-              .on('dblclick', function(d,i) {
-                dispatch.elementDblClick({
-                    label: getX(d.data),
-                    value: getY(d.data),
-                    point: d.data,
-                    index: i,
-                    pos: d3.event,
-                    id: id
-                });
-                d3.event.stopPropagation();
-              });
-
-        slices
-            .attr('fill', function(d,i) { return color(d, i); })
-            .attr('stroke', function(d,i) { return color(d, i); });
-
-        var paths = ae.append('path')
-            .each(function(d) { this._current = d; });
-            //.attr('d', arc);
-
-        slices.select('path')
-          .transition()
-            .attr('d', arc)
-            .attrTween('d', arcTween);
-
-        if (showLabels) {
-          // This does the normal label
-          var labelsArc = d3.svg.arc().innerRadius(0);
-
-          if (pieLabelsOutside){ labelsArc = arc; }
-
-          if (donutLabelsOutside) { labelsArc = d3.svg.arc().outerRadius(arc.outerRadius()); }
-
-          pieLabels.enter().append("g").classed("nv-label",true)
-            .each(function(d,i) {
-                var group = d3.select(this);
-
-                group
-                  .attr('transform', function(d) {
-                       if (labelSunbeamLayout) {
-                         d.outerRadius = arcRadius + 10; // Set Outer Coordinate
-                         d.innerRadius = arcRadius + 15; // Set Inner Coordinate
-                         var rotateAngle = (d.startAngle + d.endAngle) / 2 * (180 / Math.PI);
-                         if ((d.startAngle+d.endAngle)/2 < Math.PI) {
-                           rotateAngle -= 90;
-                         } else {
-                           rotateAngle += 90;
-                         }
-                         return 'translate(' + labelsArc.centroid(d) + ') rotate(' + rotateAngle + ')';
-                       } else {
-                         d.outerRadius = radius + 10; // Set Outer Coordinate
-                         d.innerRadius = radius + 15; // Set Inner Coordinate
-                         return 'translate(' + labelsArc.centroid(d) + ')'
-                       }
-                  });
-
-                group.append('rect')
-                    .style('stroke', '#fff')
-                    .style('fill', '#fff')
-                    .attr("rx", 3)
-                    .attr("ry", 3);
-
-                group.append('text')
-                    .style('text-anchor', labelSunbeamLayout ? ((d.startAngle + d.endAngle) / 2 < Math.PI ? 'start' : 'end') : 'middle') //center the text on it's origin or begin/end if orthogonal aligned
-                    .style('fill', '#000')
-
-            });
-
-          var labelLocationHash = {};
-          var avgHeight = 14;
-          var avgWidth = 140;
-          var createHashKey = function(coordinates) {
-
-              return Math.floor(coordinates[0]/avgWidth) * avgWidth + ',' + Math.floor(coordinates[1]/avgHeight) * avgHeight;
-          };
-          pieLabels.transition()
-                .attr('transform', function(d) {
-                  if (labelSunbeamLayout) {
-                      d.outerRadius = arcRadius + 10; // Set Outer Coordinate
-                      d.innerRadius = arcRadius + 15; // Set Inner Coordinate
-                      var rotateAngle = (d.startAngle + d.endAngle) / 2 * (180 / Math.PI);
-                      if ((d.startAngle+d.endAngle)/2 < Math.PI) {
-                        rotateAngle -= 90;
-                      } else {
-                        rotateAngle += 90;
-                      }
-                      return 'translate(' + labelsArc.centroid(d) + ') rotate(' + rotateAngle + ')';
-                    } else {
-                      d.outerRadius = radius + 10; // Set Outer Coordinate
-                      d.innerRadius = radius + 15; // Set Inner Coordinate
-
-                      /*
-                      Overlapping pie labels are not good. What this attempts to do is, prevent overlapping.
-                      Each label location is hashed, and if a hash collision occurs, we assume an overlap.
-                      Adjust the label's y-position to remove the overlap.
-                      */
-                      var center = labelsArc.centroid(d);
-                      var hashKey = createHashKey(center);
-                      if (labelLocationHash[hashKey]) {
-                        center[1] -= avgHeight;
-                      }
-                      labelLocationHash[createHashKey(center)] = true;
-                      return 'translate(' + center + ')'
-                    }
-                });
-          pieLabels.select(".nv-label text")
-                .style('text-anchor', labelSunbeamLayout ? ((d.startAngle + d.endAngle) / 2 < Math.PI ? 'start' : 'end') : 'middle') //center the text on it's origin or begin/end if orthogonal aligned
-                .text(function(d, i) {
-                  var percent = (d.endAngle - d.startAngle) / (2 * Math.PI);
-                  var labelTypes = {
-                    "key" : getX(d.data),
-                    "value": getY(d.data),
-                    "percent": d3.format('%')(percent)
-                  };
-                  return (d.value && percent > labelThreshold) ? labelTypes[labelType] : '';
-                });
-        }
-
-
-        // Computes the angle of an arc, converting from radians to degrees.
-        function angle(d) {
-          var a = (d.startAngle + d.endAngle) * 90 / Math.PI - 90;
-          return a > 90 ? a - 180 : a;
-        }
-
-        function arcTween(a) {
-          a.endAngle = isNaN(a.endAngle) ? 0 : a.endAngle;
-          a.startAngle = isNaN(a.startAngle) ? 0 : a.startAngle;
-          if (!donut) a.innerRadius = 0;
-          var i = d3.interpolate(this._current, a);
-          this._current = i(0);
-          return function(t) {
-            return arc(i(t));
-          };
-        }
-
-        function tweenPie(b) {
-          b.innerRadius = 0;
-          var i = d3.interpolate({startAngle: 0, endAngle: 0}, b);
-          return function(t) {
-              return arc(i(t));
-          };
-        }
-
-    });
-
-    return chart;
-  }
-
-
-  //============================================================
-  // Expose Public Variables
-  //------------------------------------------------------------
-
-  chart.dispatch = dispatch;
-  chart.options = nv.utils.optionsFunc.bind(chart);
-
-  chart.margin = function(_) {
-    if (!arguments.length) return margin;
-    margin.top    = typeof _.top    != 'undefined' ? _.top    : margin.top;
-    margin.right  = typeof _.right  != 'undefined' ? _.right  : margin.right;
-    margin.bottom = typeof _.bottom != 'undefined' ? _.bottom : margin.bottom;
-    margin.left   = typeof _.left   != 'undefined' ? _.left   : margin.left;
-    return chart;
-  };
-
-  chart.width = function(_) {
-    if (!arguments.length) return width;
-    width = _;
-    return chart;
-  };
-
-  chart.height = function(_) {
-    if (!arguments.length) return height;
-    height = _;
-    return chart;
-  };
-
-  chart.values = function(_) {
-    nv.log("pie.values() is no longer supported.");
-    return chart;
-  };
-
-  chart.x = function(_) {
-    if (!arguments.length) return getX;
-    getX = _;
-    return chart;
-  };
-
-  chart.y = function(_) {
-    if (!arguments.length) return getY;
-    getY = d3.functor(_);
-    return chart;
-  };
-
-  chart.description = function(_) {
-    if (!arguments.length) return getDescription;
-    getDescription = _;
-    return chart;
-  };
-
-  chart.showLabels = function(_) {
-    if (!arguments.length) return showLabels;
-    showLabels = _;
-    return chart;
-  };
-
-  chart.labelSunbeamLayout = function(_) {
-    if (!arguments.length) return labelSunbeamLayout;
-    labelSunbeamLayout = _;
-    return chart;
-  };
-
-  chart.donutLabelsOutside = function(_) {
-    if (!arguments.length) return donutLabelsOutside;
-    donutLabelsOutside = _;
-    return chart;
-  };
-
-  chart.pieLabelsOutside = function(_) {
-    if (!arguments.length) return pieLabelsOutside;
-    pieLabelsOutside = _;
-    return chart;
-  };
-
-  chart.labelType = function(_) {
-    if (!arguments.length) return labelType;
-    labelType = _;
-    labelType = labelType || "key";
-    return chart;
-  };
-
-  chart.donut = function(_) {
-    if (!arguments.length) return donut;
-    donut = _;
-    return chart;
-  };
-
-  chart.donutRatio = function(_) {
-    if (!arguments.length) return donutRatio;
-    donutRatio = _;
-    return chart;
-  };
-
-  chart.startAngle = function(_) {
-    if (!arguments.length) return startAngle;
-    startAngle = _;
-    return chart;
-  };
-
-  chart.endAngle = function(_) {
-    if (!arguments.length) return endAngle;
-    endAngle = _;
-    return chart;
-  };
-
-  chart.id = function(_) {
-    if (!arguments.length) return id;
-    id = _;
-    return chart;
-  };
-
-  chart.color = function(_) {
-    if (!arguments.length) return color;
-    color = nv.utils.getColor(_);
-    return chart;
-  };
-
-  chart.valueFormat = function(_) {
-    if (!arguments.length) return valueFormat;
-    valueFormat = _;
-    return chart;
-  };
-
-  chart.labelThreshold = function(_) {
-    if (!arguments.length) return labelThreshold;
-    labelThreshold = _;
-    return chart;
-  };
-  //============================================================
-
-
-  return chart;
-}
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/pieChart.js b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/pieChart.js
deleted file mode 100755
index b7346d3f..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/pieChart.js
+++ /dev/null
@@ -1,292 +0,0 @@
-nv.models.pieChart = function() {
-  "use strict";
-  //============================================================
-  // Public Variables with Default Settings
-  //------------------------------------------------------------
-
-  var pie = nv.models.pie()
-    , legend = nv.models.legend()
-    ;
-
-  var margin = {top: 30, right: 20, bottom: 20, left: 20}
-    , width = null
-    , height = null
-    , showLegend = true
-    , color = nv.utils.defaultColor()
-    , tooltips = true
-    , tooltip = function(key, y, e, graph) {
-        return '<h3>' + key + '</h3>' +
-               '<p>' +  y + '</p>'
-      }
-    , state = {}
-    , defaultState = null
-    , noData = "No Data Available."
-    , dispatch = d3.dispatch('tooltipShow', 'tooltipHide', 'stateChange', 'changeState')
-    ;
-
-  //============================================================
-
-
-  //============================================================
-  // Private Variables
-  //------------------------------------------------------------
-
-  var showTooltip = function(e, offsetElement) {
-    var tooltipLabel = pie.description()(e.point) || pie.x()(e.point)
-    var left = e.pos[0] + ( (offsetElement && offsetElement.offsetLeft) || 0 ),
-        top = e.pos[1] + ( (offsetElement && offsetElement.offsetTop) || 0),
-        y = pie.valueFormat()(pie.y()(e.point)),
-        content = tooltip(tooltipLabel, y, e, chart);
-
-    nv.tooltip.show([left, top], content, e.value < 0 ? 'n' : 's', null, offsetElement);
-  };
-
-  //============================================================
-
-
-  function chart(selection) {
-    selection.each(function(data) {
-      var container = d3.select(this),
-          that = this;
-
-      var availableWidth = (width || parseInt(container.style('width')) || 960)
-                             - margin.left - margin.right,
-          availableHeight = (height || parseInt(container.style('height')) || 400)
-                             - margin.top - margin.bottom;
-
-      chart.update = function() { container.transition().call(chart); };
-      chart.container = this;
-
-      //set state.disabled
-      state.disabled = data.map(function(d) { return !!d.disabled });
-
-      if (!defaultState) {
-        var key;
-        defaultState = {};
-        for (key in state) {
-          if (state[key] instanceof Array)
-            defaultState[key] = state[key].slice(0);
-          else
-            defaultState[key] = state[key];
-        }
-      }
-
-      //------------------------------------------------------------
-      // Display No Data message if there's nothing to show.
-
-      if (!data || !data.length) {
-        var noDataText = container.selectAll('.nv-noData').data([noData]);
-
-        noDataText.enter().append('text')
-          .attr('class', 'nvd3 nv-noData')
-          .attr('dy', '-.7em')
-          .style('text-anchor', 'middle');
-
-        noDataText
-          .attr('x', margin.left + availableWidth / 2)
-          .attr('y', margin.top + availableHeight / 2)
-          .text(function(d) { return d });
-
-        return chart;
-      } else {
-        container.selectAll('.nv-noData').remove();
-      }
-
-      //------------------------------------------------------------
-
-
-      //------------------------------------------------------------
-      // Setup containers and skeleton of chart
-
-      var wrap = container.selectAll('g.nv-wrap.nv-pieChart').data([data]);
-      var gEnter = wrap.enter().append('g').attr('class', 'nvd3 nv-wrap nv-pieChart').append('g');
-      var g = wrap.select('g');
-
-      gEnter.append('g').attr('class', 'nv-pieWrap');
-      gEnter.append('g').attr('class', 'nv-legendWrap');
-
-      //------------------------------------------------------------
-
-
-      //------------------------------------------------------------
-      // Legend
-
-      if (showLegend) {
-        legend
-          .width( availableWidth )
-          .key(pie.x());
-
-        wrap.select('.nv-legendWrap')
-            .datum(data)
-            .call(legend);
-
-        if ( margin.top != legend.height()) {
-          margin.top = legend.height();
-          availableHeight = (height || parseInt(container.style('height')) || 400)
-                             - margin.top - margin.bottom;
-        }
-
-        wrap.select('.nv-legendWrap')
-            .attr('transform', 'translate(0,' + (-margin.top) +')');
-      }
-
-      //------------------------------------------------------------
-
-
-      wrap.attr('transform', 'translate(' + margin.left + ',' + margin.top + ')');
-
-
-      //------------------------------------------------------------
-      // Main Chart Component(s)
-
-      pie
-        .width(availableWidth)
-        .height(availableHeight);
-
-
-      var pieWrap = g.select('.nv-pieWrap')
-          .datum([data]);
-
-      d3.transition(pieWrap).call(pie);
-
-      //------------------------------------------------------------
-
-
-      //============================================================
-      // Event Handling/Dispatching (in chart's scope)
-      //------------------------------------------------------------
-
-      legend.dispatch.on('stateChange', function(newState) {
-        state = newState;
-        dispatch.stateChange(state);
-        chart.update();
-      });
-
-      pie.dispatch.on('elementMouseout.tooltip', function(e) {
-        dispatch.tooltipHide(e);
-      });
-
-      // Update chart from a state object passed to event handler
-      dispatch.on('changeState', function(e) {
-
-        if (typeof e.disabled !== 'undefined') {
-          data.forEach(function(series,i) {
-            series.disabled = e.disabled[i];
-          });
-
-          state.disabled = e.disabled;
-        }
-
-        chart.update();
-      });
-
-      //============================================================
-
-
-    });
-
-    return chart;
-  }
-
-  //============================================================
-  // Event Handling/Dispatching (out of chart's scope)
-  //------------------------------------------------------------
-
-  pie.dispatch.on('elementMouseover.tooltip', function(e) {
-    e.pos = [e.pos[0] +  margin.left, e.pos[1] + margin.top];
-    dispatch.tooltipShow(e);
-  });
-
-  dispatch.on('tooltipShow', function(e) {
-    if (tooltips) showTooltip(e);
-  });
-
-  dispatch.on('tooltipHide', function() {
-    if (tooltips) nv.tooltip.cleanup();
-  });
-
-  //============================================================
-
-
-  //============================================================
-  // Expose Public Variables
-  //------------------------------------------------------------
-
-  // expose chart's sub-components
-  chart.legend = legend;
-  chart.dispatch = dispatch;
-  chart.pie = pie;
-
-  d3.rebind(chart, pie, 'valueFormat', 'values', 'x', 'y', 'description', 'id', 'showLabels', 'donutLabelsOutside', 'pieLabelsOutside', 'labelType', 'donut', 'donutRatio', 'labelThreshold');
-  chart.options = nv.utils.optionsFunc.bind(chart);
-  
-  chart.margin = function(_) {
-    if (!arguments.length) return margin;
-    margin.top    = typeof _.top    != 'undefined' ? _.top    : margin.top;
-    margin.right  = typeof _.right  != 'undefined' ? _.right  : margin.right;
-    margin.bottom = typeof _.bottom != 'undefined' ? _.bottom : margin.bottom;
-    margin.left   = typeof _.left   != 'undefined' ? _.left   : margin.left;
-    return chart;
-  };
-
-  chart.width = function(_) {
-    if (!arguments.length) return width;
-    width = _;
-    return chart;
-  };
-
-  chart.height = function(_) {
-    if (!arguments.length) return height;
-    height = _;
-    return chart;
-  };
-
-  chart.color = function(_) {
-    if (!arguments.length) return color;
-    color = nv.utils.getColor(_);
-    legend.color(color);
-    pie.color(color);
-    return chart;
-  };
-
-  chart.showLegend = function(_) {
-    if (!arguments.length) return showLegend;
-    showLegend = _;
-    return chart;
-  };
-
-  chart.tooltips = function(_) {
-    if (!arguments.length) return tooltips;
-    tooltips = _;
-    return chart;
-  };
-
-  chart.tooltipContent = function(_) {
-    if (!arguments.length) return tooltip;
-    tooltip = _;
-    return chart;
-  };
-
-  chart.state = function(_) {
-    if (!arguments.length) return state;
-    state = _;
-    return chart;
-  };
-
-  chart.defaultState = function(_) {
-    if (!arguments.length) return defaultState;
-    defaultState = _;
-    return chart;
-  };
-
-  chart.noData = function(_) {
-    if (!arguments.length) return noData;
-    noData = _;
-    return chart;
-  };
-
-  //============================================================
-
-
-  return chart;
-}
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/scatter.js b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/scatter.js
deleted file mode 100755
index 16cbee65..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/scatter.js
+++ /dev/null
@@ -1,674 +0,0 @@
-
-nv.models.scatter = function() {
-  "use strict";
-  //============================================================
-  // Public Variables with Default Settings
-  //------------------------------------------------------------
-
-  var margin       = {top: 0, right: 0, bottom: 0, left: 0}
-    , width        = 960
-    , height       = 500
-    , color        = nv.utils.defaultColor() // chooses color
-    , id           = Math.floor(Math.random() * 100000) //Create semi-unique ID incase user doesn't select one
-    , x            = d3.scale.linear()
-    , y            = d3.scale.linear()
-    , z            = d3.scale.linear() //linear because d3.svg.shape.size is treated as area
-    , getX         = function(d) { return d.x } // accessor to get the x value
-    , getY         = function(d) { return d.y } // accessor to get the y value
-    , getSize      = function(d) { return d.size || 1} // accessor to get the point size
-    , getShape     = function(d) { return d.shape || 'circle' } // accessor to get point shape
-    , onlyCircles  = true // Set to false to use shapes
-    , forceX       = [] // List of numbers to Force into the X scale (ie. 0, or a max / min, etc.)
-    , forceY       = [] // List of numbers to Force into the Y scale
-    , forceSize    = [] // List of numbers to Force into the Size scale
-    , interactive  = true // If true, plots a voronoi overlay for advanced point intersection
-    , pointKey     = null
-    , pointActive  = function(d) { return !d.notActive } // any points that return false will be filtered out
-    , padData      = false // If true, adds half a data points width to front and back, for lining up a line chart with a bar chart
-    , padDataOuter = .1 //outerPadding to imitate ordinal scale outer padding
-    , clipEdge     = false // if true, masks points within x and y scale
-    , clipVoronoi  = true // if true, masks each point with a circle... can turn off to slightly increase performance
-    , clipRadius   = function() { return 25 } // function to get the radius for voronoi point clips
-    , xDomain      = null // Override x domain (skips the calculation from data)
-    , yDomain      = null // Override y domain
-    , xRange       = null // Override x range
-    , yRange       = null // Override y range
-    , sizeDomain   = null // Override point size domain
-    , sizeRange    = null
-    , singlePoint  = false
-    , dispatch     = d3.dispatch('elementClick', 'elementMouseover', 'elementMouseout')
-    , useVoronoi   = true
-    ;
-
-  //============================================================
-
-
-  //============================================================
-  // Private Variables
-  //------------------------------------------------------------
-
-  var x0, y0, z0 // used to store previous scales
-    , timeoutID
-    , needsUpdate = false // Flag for when the points are visually updating, but the interactive layer is behind, to disable tooltips
-    ;
-
-  //============================================================
-
-
-  function chart(selection) {
-    selection.each(function(data) {
-      var availableWidth = width - margin.left - margin.right,
-          availableHeight = height - margin.top - margin.bottom,
-          container = d3.select(this);
-
-      //add series index to each data point for reference
-      data.forEach(function(series, i) {
-        series.values.forEach(function(point) {
-          point.series = i;
-        });
-      });
-
-      //------------------------------------------------------------
-      // Setup Scales
-
-      // remap and flatten the data for use in calculating the scales' domains
-      var seriesData = (xDomain && yDomain && sizeDomain) ? [] : // if we know xDomain and yDomain and sizeDomain, no need to calculate.... if Size is constant remember to set sizeDomain to speed up performance
-            d3.merge(
-              data.map(function(d) {
-                return d.values.map(function(d,i) {
-                  return { x: getX(d,i), y: getY(d,i), size: getSize(d,i) }
-                })
-              })
-            );
-
-      x   .domain(xDomain || d3.extent(seriesData.map(function(d) { return d.x; }).concat(forceX)))
-
-      if (padData && data[0])
-        x.range(xRange || [(availableWidth * padDataOuter +  availableWidth) / (2 *data[0].values.length), availableWidth - availableWidth * (1 + padDataOuter) / (2 * data[0].values.length)  ]);
-        //x.range([availableWidth * .5 / data[0].values.length, availableWidth * (data[0].values.length - .5)  / data[0].values.length ]);
-      else
-        x.range(xRange || [0, availableWidth]);
-
-      y   .domain(yDomain || d3.extent(seriesData.map(function(d) { return d.y }).concat(forceY)))
-          .range(yRange || [availableHeight, 0]);
-
-      z   .domain(sizeDomain || d3.extent(seriesData.map(function(d) { return d.size }).concat(forceSize)))
-          .range(sizeRange || [16, 256]);
-
-      // If scale's domain don't have a range, slightly adjust to make one... so a chart can show a single data point
-      if (x.domain()[0] === x.domain()[1] || y.domain()[0] === y.domain()[1]) singlePoint = true;
-      if (x.domain()[0] === x.domain()[1])
-        x.domain()[0] ?
-            x.domain([x.domain()[0] - x.domain()[0] * 0.01, x.domain()[1] + x.domain()[1] * 0.01])
-          : x.domain([-1,1]);
-
-      if (y.domain()[0] === y.domain()[1])
-        y.domain()[0] ?
-            y.domain([y.domain()[0] - y.domain()[0] * 0.01, y.domain()[1] + y.domain()[1] * 0.01])
-          : y.domain([-1,1]);
-
-      if ( isNaN(x.domain()[0])) {
-          x.domain([-1,1]);
-      }
-
-      if ( isNaN(y.domain()[0])) {
-          y.domain([-1,1]);
-      }
-
-
-      x0 = x0 || x;
-      y0 = y0 || y;
-      z0 = z0 || z;
-
-      //------------------------------------------------------------
-
-
-      //------------------------------------------------------------
-      // Setup containers and skeleton of chart
-
-      var wrap = container.selectAll('g.nv-wrap.nv-scatter').data([data]);
-      var wrapEnter = wrap.enter().append('g').attr('class', 'nvd3 nv-wrap nv-scatter nv-chart-' + id + (singlePoint ? ' nv-single-point' : ''));
-      var defsEnter = wrapEnter.append('defs');
-      var gEnter = wrapEnter.append('g');
-      var g = wrap.select('g');
-
-      gEnter.append('g').attr('class', 'nv-groups');
-      gEnter.append('g').attr('class', 'nv-point-paths');
-
-      wrap.attr('transform', 'translate(' + margin.left + ',' + margin.top + ')');
-
-      //------------------------------------------------------------
-
-
-      defsEnter.append('clipPath')
-          .attr('id', 'nv-edge-clip-' + id)
-        .append('rect');
-
-      wrap.select('#nv-edge-clip-' + id + ' rect')
-          .attr('width', availableWidth)
-          .attr('height', availableHeight);
-
-      g   .attr('clip-path', clipEdge ? 'url(#nv-edge-clip-' + id + ')' : '');
-
-
-      function updateInteractiveLayer() {
-
-        if (!interactive) return false;
-
-        var eventElements;
-
-        var vertices = d3.merge(data.map(function(group, groupIndex) {
-            return group.values
-              .map(function(point, pointIndex) {
-                // *Adding noise to make duplicates very unlikely
-                // *Injecting series and point index for reference
-                /* *Adding a 'jitter' to the points, because there's an issue in d3.geom.voronoi.
-                */
-                var pX = getX(point,pointIndex);
-                var pY = getY(point,pointIndex);
-
-                return [x(pX)+ Math.random() * 1e-7,
-                        y(pY)+ Math.random() * 1e-7,
-                        groupIndex,
-                        pointIndex, point]; //temp hack to add noise untill I think of a better way so there are no duplicates
-              })
-              .filter(function(pointArray, pointIndex) {
-                return pointActive(pointArray[4], pointIndex); // Issue #237.. move filter to after map, so pointIndex is correct!
-              })
-          })
-        );
-
-
-
-        //inject series and point index for reference into voronoi
-        if (useVoronoi === true) {
-
-          if (clipVoronoi) {
-            var pointClipsEnter = wrap.select('defs').selectAll('.nv-point-clips')
-                .data([id])
-              .enter();
-
-            pointClipsEnter.append('clipPath')
-                  .attr('class', 'nv-point-clips')
-                  .attr('id', 'nv-points-clip-' + id);
-
-            var pointClips = wrap.select('#nv-points-clip-' + id).selectAll('circle')
-                .data(vertices);
-            pointClips.enter().append('circle')
-                .attr('r', clipRadius);
-            pointClips.exit().remove();
-            pointClips
-                .attr('cx', function(d) { return d[0] })
-                .attr('cy', function(d) { return d[1] });
-
-            wrap.select('.nv-point-paths')
-                .attr('clip-path', 'url(#nv-points-clip-' + id + ')');
-          }
-
-
-          if(vertices.length) {
-            // Issue #283 - Adding 2 dummy points to the voronoi b/c voronoi requires min 3 points to work
-            vertices.push([x.range()[0] - 20, y.range()[0] - 20, null, null]);
-            vertices.push([x.range()[1] + 20, y.range()[1] + 20, null, null]);
-            vertices.push([x.range()[0] - 20, y.range()[0] + 20, null, null]);
-            vertices.push([x.range()[1] + 20, y.range()[1] - 20, null, null]);
-          }
-
-          var bounds = d3.geom.polygon([
-              [-10,-10],
-              [-10,height + 10],
-              [width + 10,height + 10],
-              [width + 10,-10]
-          ]);
-
-          var voronoi = d3.geom.voronoi(vertices).map(function(d, i) {
-              return {
-                'data': bounds.clip(d),
-                'series': vertices[i][2],
-                'point': vertices[i][3]
-              }
-            });
-
-
-          var pointPaths = wrap.select('.nv-point-paths').selectAll('path')
-              .data(voronoi);
-          pointPaths.enter().append('path')
-              .attr('class', function(d,i) { return 'nv-path-'+i; });
-          pointPaths.exit().remove();
-          pointPaths
-              .attr('d', function(d) {
-                if (d.data.length === 0)
-                    return 'M 0 0'
-                else
-                    return 'M' + d.data.join('L') + 'Z';
-              });
-
-          var mouseEventCallback = function(d,mDispatch) {
-                if (needsUpdate) return 0;
-                var series = data[d.series];
-                if (typeof series === 'undefined') return;
-
-                var point  = series.values[d.point];
-
-                mDispatch({
-                  point: point,
-                  series: series,
-                  pos: [x(getX(point, d.point)) + margin.left, y(getY(point, d.point)) + margin.top],
-                  seriesIndex: d.series,
-                  pointIndex: d.point
-                });
-          };
-
-          pointPaths
-              .on('click', function(d) {
-                mouseEventCallback(d, dispatch.elementClick);
-              })
-              .on('mouseover', function(d) {
-                mouseEventCallback(d, dispatch.elementMouseover);
-              })
-              .on('mouseout', function(d, i) {
-                mouseEventCallback(d, dispatch.elementMouseout);
-              });
-
-
-        } else {
-          /*
-          // bring data in form needed for click handlers
-          var dataWithPoints = vertices.map(function(d, i) {
-              return {
-                'data': d,
-                'series': vertices[i][2],
-                'point': vertices[i][3]
-              }
-            });
-           */
-
-          // add event handlers to points instead voronoi paths
-          wrap.select('.nv-groups').selectAll('.nv-group')
-            .selectAll('.nv-point')
-              //.data(dataWithPoints)
-              //.style('pointer-events', 'auto') // recativate events, disabled by css
-              .on('click', function(d,i) {
-                //nv.log('test', d, i);
-                if (needsUpdate || !data[d.series]) return 0; //check if this is a dummy point
-                var series = data[d.series],
-                    point  = series.values[i];
-
-                dispatch.elementClick({
-                  point: point,
-                  series: series,
-                  pos: [x(getX(point, i)) + margin.left, y(getY(point, i)) + margin.top],
-                  seriesIndex: d.series,
-                  pointIndex: i
-                });
-              })
-              .on('mouseover', function(d,i) {
-                if (needsUpdate || !data[d.series]) return 0; //check if this is a dummy point
-                var series = data[d.series],
-                    point  = series.values[i];
-
-                dispatch.elementMouseover({
-                  point: point,
-                  series: series,
-                  pos: [x(getX(point, i)) + margin.left, y(getY(point, i)) + margin.top],
-                  seriesIndex: d.series,
-                  pointIndex: i
-                });
-              })
-              .on('mouseout', function(d,i) {
-                if (needsUpdate || !data[d.series]) return 0; //check if this is a dummy point
-                var series = data[d.series],
-                    point  = series.values[i];
-
-                dispatch.elementMouseout({
-                  point: point,
-                  series: series,
-                  seriesIndex: d.series,
-                  pointIndex: i
-                });
-              });
-          }
-
-          needsUpdate = false;
-      }
-
-      needsUpdate = true;
-
-      var groups = wrap.select('.nv-groups').selectAll('.nv-group')
-          .data(function(d) { return d }, function(d) { return d.key });
-      groups.enter().append('g')
-          .style('stroke-opacity', 1e-6)
-          .style('fill-opacity', 1e-6);
-      groups.exit()
-          .remove();
-      groups
-          .attr('class', function(d,i) { return 'nv-group nv-series-' + i })
-          .classed('hover', function(d) { return d.hover });
-      groups
-          .transition()
-          .style('fill', function(d,i) { return color(d, i) })
-          .style('stroke', function(d,i) { return color(d, i) })
-          .style('stroke-opacity', 1)
-          .style('fill-opacity', .5);
-
-
-      if (onlyCircles) {
-
-        var points = groups.selectAll('circle.nv-point')
-            .data(function(d) { return d.values }, pointKey);
-        points.enter().append('circle')
-            .style('fill', function (d,i) { return d.color })
-            .style('stroke', function (d,i) { return d.color })
-            .attr('cx', function(d,i) { return nv.utils.NaNtoZero(x0(getX(d,i))) })
-            .attr('cy', function(d,i) { return nv.utils.NaNtoZero(y0(getY(d,i))) })
-            .attr('r', function(d,i) { return Math.sqrt(z(getSize(d,i))/Math.PI) });
-        points.exit().remove();
-        groups.exit().selectAll('path.nv-point').transition()
-            .attr('cx', function(d,i) { return nv.utils.NaNtoZero(x(getX(d,i))) })
-            .attr('cy', function(d,i) { return nv.utils.NaNtoZero(y(getY(d,i))) })
-            .remove();
-        points.each(function(d,i) {
-          d3.select(this)
-            .classed('nv-point', true)
-            .classed('nv-point-' + i, true)
-            .classed('hover',false)
-            ;
-        });
-        points.transition()
-            .attr('cx', function(d,i) { return nv.utils.NaNtoZero(x(getX(d,i))) })
-            .attr('cy', function(d,i) { return nv.utils.NaNtoZero(y(getY(d,i))) })
-            .attr('r', function(d,i) { return Math.sqrt(z(getSize(d,i))/Math.PI) });
-
-      } else {
-
-        var points = groups.selectAll('path.nv-point')
-            .data(function(d) { return d.values });
-        points.enter().append('path')
-            .style('fill', function (d,i) { return d.color })
-            .style('stroke', function (d,i) { return d.color })
-            .attr('transform', function(d,i) {
-              return 'translate(' + x0(getX(d,i)) + ',' + y0(getY(d,i)) + ')'
-            })
-            .attr('d',
-              d3.svg.symbol()
-                .type(getShape)
-                .size(function(d,i) { return z(getSize(d,i)) })
-            );
-        points.exit().remove();
-        groups.exit().selectAll('path.nv-point')
-            .transition()
-            .attr('transform', function(d,i) {
-              return 'translate(' + x(getX(d,i)) + ',' + y(getY(d,i)) + ')'
-            })
-            .remove();
-        points.each(function(d,i) {
-          d3.select(this)
-            .classed('nv-point', true)
-            .classed('nv-point-' + i, true)
-            .classed('hover',false)
-            ;
-        });
-        points.transition()
-            .attr('transform', function(d,i) {
-              //nv.log(d,i,getX(d,i), x(getX(d,i)));
-              return 'translate(' + x(getX(d,i)) + ',' + y(getY(d,i)) + ')'
-            })
-            .attr('d',
-              d3.svg.symbol()
-                .type(getShape)
-                .size(function(d,i) { return z(getSize(d,i)) })
-            );
-      }
-
-
-      // Delay updating the invisible interactive layer for smoother animation
-      clearTimeout(timeoutID); // stop repeat calls to updateInteractiveLayer
-      timeoutID = setTimeout(updateInteractiveLayer, 300);
-      //updateInteractiveLayer();
-
-      //store old scales for use in transitions on update
-      x0 = x.copy();
-      y0 = y.copy();
-      z0 = z.copy();
-
-    });
-
-    return chart;
-  }
-
-
-  //============================================================
-  // Event Handling/Dispatching (out of chart's scope)
-  //------------------------------------------------------------
-  chart.clearHighlights = function() {
-      //Remove the 'hover' class from all highlighted points.
-      d3.selectAll(".nv-chart-" + id + " .nv-point.hover").classed("hover",false);
-  };
-
-  chart.highlightPoint = function(seriesIndex,pointIndex,isHoverOver) {
-      d3.select(".nv-chart-" + id + " .nv-series-" + seriesIndex + " .nv-point-" + pointIndex)
-          .classed("hover",isHoverOver);
-  };
-
-
-  dispatch.on('elementMouseover.point', function(d) {
-     if (interactive) chart.highlightPoint(d.seriesIndex,d.pointIndex,true);
-  });
-
-  dispatch.on('elementMouseout.point', function(d) {
-     if (interactive) chart.highlightPoint(d.seriesIndex,d.pointIndex,false);
-  });
-
-  //============================================================
-
-
-  //============================================================
-  // Expose Public Variables
-  //------------------------------------------------------------
-
-  chart.dispatch = dispatch;
-  chart.options = nv.utils.optionsFunc.bind(chart);
-
-  chart.x = function(_) {
-    if (!arguments.length) return getX;
-    getX = d3.functor(_);
-    return chart;
-  };
-
-  chart.y = function(_) {
-    if (!arguments.length) return getY;
-    getY = d3.functor(_);
-    return chart;
-  };
-
-  chart.size = function(_) {
-    if (!arguments.length) return getSize;
-    getSize = d3.functor(_);
-    return chart;
-  };
-
-  chart.margin = function(_) {
-    if (!arguments.length) return margin;
-    margin.top    = typeof _.top    != 'undefined' ? _.top    : margin.top;
-    margin.right  = typeof _.right  != 'undefined' ? _.right  : margin.right;
-    margin.bottom = typeof _.bottom != 'undefined' ? _.bottom : margin.bottom;
-    margin.left   = typeof _.left   != 'undefined' ? _.left   : margin.left;
-    return chart;
-  };
-
-  chart.width = function(_) {
-    if (!arguments.length) return width;
-    width = _;
-    return chart;
-  };
-
-  chart.height = function(_) {
-    if (!arguments.length) return height;
-    height = _;
-    return chart;
-  };
-
-  chart.xScale = function(_) {
-    if (!arguments.length) return x;
-    x = _;
-    return chart;
-  };
-
-  chart.yScale = function(_) {
-    if (!arguments.length) return y;
-    y = _;
-    return chart;
-  };
-
-  chart.zScale = function(_) {
-    if (!arguments.length) return z;
-    z = _;
-    return chart;
-  };
-
-  chart.xDomain = function(_) {
-    if (!arguments.length) return xDomain;
-    xDomain = _;
-    return chart;
-  };
-
-  chart.yDomain = function(_) {
-    if (!arguments.length) return yDomain;
-    yDomain = _;
-    return chart;
-  };
-
-  chart.sizeDomain = function(_) {
-    if (!arguments.length) return sizeDomain;
-    sizeDomain = _;
-    return chart;
-  };
-
-  chart.xRange = function(_) {
-    if (!arguments.length) return xRange;
-    xRange = _;
-    return chart;
-  };
-
-  chart.yRange = function(_) {
-    if (!arguments.length) return yRange;
-    yRange = _;
-    return chart;
-  };
-
-  chart.sizeRange = function(_) {
-    if (!arguments.length) return sizeRange;
-    sizeRange = _;
-    return chart;
-  };
-
-  chart.forceX = function(_) {
-    if (!arguments.length) return forceX;
-    forceX = _;
-    return chart;
-  };
-
-  chart.forceY = function(_) {
-    if (!arguments.length) return forceY;
-    forceY = _;
-    return chart;
-  };
-
-  chart.forceSize = function(_) {
-    if (!arguments.length) return forceSize;
-    forceSize = _;
-    return chart;
-  };
-
-  chart.interactive = function(_) {
-    if (!arguments.length) return interactive;
-    interactive = _;
-    return chart;
-  };
-
-  chart.pointKey = function(_) {
-    if (!arguments.length) return pointKey;
-    pointKey = _;
-    return chart;
-  };
-
-  chart.pointActive = function(_) {
-    if (!arguments.length) return pointActive;
-    pointActive = _;
-    return chart;
-  };
-
-  chart.padData = function(_) {
-    if (!arguments.length) return padData;
-    padData = _;
-    return chart;
-  };
-
-  chart.padDataOuter = function(_) {
-    if (!arguments.length) return padDataOuter;
-    padDataOuter = _;
-    return chart;
-  };
-
-  chart.clipEdge = function(_) {
-    if (!arguments.length) return clipEdge;
-    clipEdge = _;
-    return chart;
-  };
-
-  chart.clipVoronoi= function(_) {
-    if (!arguments.length) return clipVoronoi;
-    clipVoronoi = _;
-    return chart;
-  };
-
-  chart.useVoronoi= function(_) {
-    if (!arguments.length) return useVoronoi;
-    useVoronoi = _;
-    if (useVoronoi === false) {
-        clipVoronoi = false;
-    }
-    return chart;
-  };
-
-  chart.clipRadius = function(_) {
-    if (!arguments.length) return clipRadius;
-    clipRadius = _;
-    return chart;
-  };
-
-  chart.color = function(_) {
-    if (!arguments.length) return color;
-    color = nv.utils.getColor(_);
-    return chart;
-  };
-
-  chart.shape = function(_) {
-    if (!arguments.length) return getShape;
-    getShape = _;
-    return chart;
-  };
-
-  chart.onlyCircles = function(_) {
-    if (!arguments.length) return onlyCircles;
-    onlyCircles = _;
-    return chart;
-  };
-
-  chart.id = function(_) {
-    if (!arguments.length) return id;
-    id = _;
-    return chart;
-  };
-
-  chart.singlePoint = function(_) {
-    if (!arguments.length) return singlePoint;
-    singlePoint = _;
-    return chart;
-  };
-
-  //============================================================
-
-
-  return chart;
-}
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/scatterChart.js b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/scatterChart.js
deleted file mode 100755
index 65b6e387..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/scatterChart.js
+++ /dev/null
@@ -1,628 +0,0 @@
-nv.models.scatterChart = function() {
-  "use strict";
-  //============================================================
-  // Public Variables with Default Settings
-  //------------------------------------------------------------
-
-  var scatter      = nv.models.scatter()
-    , xAxis        = nv.models.axis()
-    , yAxis        = nv.models.axis()
-    , legend       = nv.models.legend()
-    , controls     = nv.models.legend()
-    , distX        = nv.models.distribution()
-    , distY        = nv.models.distribution()
-    ;
-
-  var margin       = {top: 30, right: 20, bottom: 50, left: 75}
-    , width        = null
-    , height       = null
-    , color        = nv.utils.defaultColor()
-    , x            = d3.fisheye ? d3.fisheye.scale(d3.scale.linear).distortion(0) : scatter.xScale()
-    , y            = d3.fisheye ? d3.fisheye.scale(d3.scale.linear).distortion(0) : scatter.yScale()
-    , xPadding     = 0
-    , yPadding     = 0
-    , showDistX    = false
-    , showDistY    = false
-    , showLegend   = true
-    , showXAxis    = true
-    , showYAxis    = true
-    , rightAlignYAxis = false
-    , showControls = !!d3.fisheye
-    , fisheye      = 0
-    , pauseFisheye = false
-    , tooltips     = true
-    , tooltipX     = function(key, x, y) { return '<strong>' + x + '</strong>' }
-    , tooltipY     = function(key, x, y) { return '<strong>' + y + '</strong>' }
-    , tooltip      = null
-    , state = {}
-    , defaultState = null
-    , dispatch     = d3.dispatch('tooltipShow', 'tooltipHide', 'stateChange', 'changeState')
-    , noData       = "No Data Available."
-    , transitionDuration = 250
-    ;
-
-  scatter
-    .xScale(x)
-    .yScale(y)
-    ;
-  xAxis
-    .orient('bottom')
-    .tickPadding(10)
-    ;
-  yAxis
-    .orient((rightAlignYAxis) ? 'right' : 'left')
-    .tickPadding(10)
-    ;
-  distX
-    .axis('x')
-    ;
-  distY
-    .axis('y')
-    ;
-
-  controls.updateState(false);
-
-  //============================================================
-
-
-  //============================================================
-  // Private Variables
-  //------------------------------------------------------------
-
-  var x0, y0;
-
-  var showTooltip = function(e, offsetElement) {
-    //TODO: make tooltip style an option between single or dual on axes (maybe on all charts with axes?)
-
-    var left = e.pos[0] + ( offsetElement.offsetLeft || 0 ),
-        top = e.pos[1] + ( offsetElement.offsetTop || 0),
-        leftX = e.pos[0] + ( offsetElement.offsetLeft || 0 ),
-        topX = y.range()[0] + margin.top + ( offsetElement.offsetTop || 0),
-        leftY = x.range()[0] + margin.left + ( offsetElement.offsetLeft || 0 ),
-        topY = e.pos[1] + ( offsetElement.offsetTop || 0),
-        xVal = xAxis.tickFormat()(scatter.x()(e.point, e.pointIndex)),
-        yVal = yAxis.tickFormat()(scatter.y()(e.point, e.pointIndex));
-
-      if( tooltipX != null )
-          nv.tooltip.show([leftX, topX], tooltipX(e.series.key, xVal, yVal, e, chart), 'n', 1, offsetElement, 'x-nvtooltip');
-      if( tooltipY != null )
-          nv.tooltip.show([leftY, topY], tooltipY(e.series.key, xVal, yVal, e, chart), 'e', 1, offsetElement, 'y-nvtooltip');
-      if( tooltip != null )
-          nv.tooltip.show([left, top], tooltip(e.series.key, xVal, yVal, e, chart), e.value < 0 ? 'n' : 's', null, offsetElement);
-  };
-
-  var controlsData = [
-    { key: 'Magnify', disabled: true }
-  ];
-
-  //============================================================
-
-
-  function chart(selection) {
-    selection.each(function(data) {
-      var container = d3.select(this),
-          that = this;
-
-      var availableWidth = (width  || parseInt(container.style('width')) || 960)
-                             - margin.left - margin.right,
-          availableHeight = (height || parseInt(container.style('height')) || 400)
-                             - margin.top - margin.bottom;
-
-      chart.update = function() { container.transition().duration(transitionDuration).call(chart); };
-      chart.container = this;
-
-      //set state.disabled
-      state.disabled = data.map(function(d) { return !!d.disabled });
-
-      if (!defaultState) {
-        var key;
-        defaultState = {};
-        for (key in state) {
-          if (state[key] instanceof Array)
-            defaultState[key] = state[key].slice(0);
-          else
-            defaultState[key] = state[key];
-        }
-      }
-
-      //------------------------------------------------------------
-      // Display noData message if there's nothing to show.
-
-      if (!data || !data.length || !data.filter(function(d) { return d.values.length }).length) {
-        var noDataText = container.selectAll('.nv-noData').data([noData]);
-
-        noDataText.enter().append('text')
-          .attr('class', 'nvd3 nv-noData')
-          .attr('dy', '-.7em')
-          .style('text-anchor', 'middle');
-
-        noDataText
-          .attr('x', margin.left + availableWidth / 2)
-          .attr('y', margin.top + availableHeight / 2)
-          .text(function(d) { return d });
-
-        return chart;
-      } else {
-        container.selectAll('.nv-noData').remove();
-      }
-
-      //------------------------------------------------------------
-
-
-      //------------------------------------------------------------
-      // Setup Scales
-
-      x0 = x0 || x;
-      y0 = y0 || y;
-
-      //------------------------------------------------------------
-
-
-      //------------------------------------------------------------
-      // Setup containers and skeleton of chart
-
-      var wrap = container.selectAll('g.nv-wrap.nv-scatterChart').data([data]);
-      var wrapEnter = wrap.enter().append('g').attr('class', 'nvd3 nv-wrap nv-scatterChart nv-chart-' + scatter.id());
-      var gEnter = wrapEnter.append('g');
-      var g = wrap.select('g');
-
-      // background for pointer events
-      gEnter.append('rect').attr('class', 'nvd3 nv-background');
-
-      gEnter.append('g').attr('class', 'nv-x nv-axis');
-      gEnter.append('g').attr('class', 'nv-y nv-axis');
-      gEnter.append('g').attr('class', 'nv-scatterWrap');
-      gEnter.append('g').attr('class', 'nv-distWrap');
-      gEnter.append('g').attr('class', 'nv-legendWrap');
-      gEnter.append('g').attr('class', 'nv-controlsWrap');
-
-      //------------------------------------------------------------
-
-
-      //------------------------------------------------------------
-      // Legend
-
-      if (showLegend) {
-        var legendWidth = (showControls) ? availableWidth / 2 : availableWidth;
-        legend.width(legendWidth);
-
-        wrap.select('.nv-legendWrap')
-            .datum(data)
-            .call(legend);
-
-        if ( margin.top != legend.height()) {
-          margin.top = legend.height();
-          availableHeight = (height || parseInt(container.style('height')) || 400)
-                             - margin.top - margin.bottom;
-        }
-
-        wrap.select('.nv-legendWrap')
-            .attr('transform', 'translate(' + (availableWidth - legendWidth) + ',' + (-margin.top) +')');
-      }
-
-      //------------------------------------------------------------
-
-
-      //------------------------------------------------------------
-      // Controls
-
-      if (showControls) {
-        controls.width(180).color(['#444']);
-        g.select('.nv-controlsWrap')
-            .datum(controlsData)
-            .attr('transform', 'translate(0,' + (-margin.top) +')')
-            .call(controls);
-      }
-
-      //------------------------------------------------------------
-
-
-      wrap.attr('transform', 'translate(' + margin.left + ',' + margin.top + ')');
-
-      if (rightAlignYAxis) {
-          g.select(".nv-y.nv-axis")
-              .attr("transform", "translate(" + availableWidth + ",0)");
-      }
-
-      //------------------------------------------------------------
-      // Main Chart Component(s)
-
-      scatter
-          .width(availableWidth)
-          .height(availableHeight)
-          .color(data.map(function(d,i) {
-            return d.color || color(d, i);
-          }).filter(function(d,i) { return !data[i].disabled }));
-
-      if (xPadding !== 0)
-        scatter.xDomain(null);
-
-      if (yPadding !== 0)
-        scatter.yDomain(null);
-
-      wrap.select('.nv-scatterWrap')
-          .datum(data.filter(function(d) { return !d.disabled }))
-          .call(scatter);
-
-      //Adjust for x and y padding
-      if (xPadding !== 0) {
-        var xRange = x.domain()[1] - x.domain()[0];
-        scatter.xDomain([x.domain()[0] - (xPadding * xRange), x.domain()[1] + (xPadding * xRange)]);
-      }
-
-      if (yPadding !== 0) {
-        var yRange = y.domain()[1] - y.domain()[0];
-        scatter.yDomain([y.domain()[0] - (yPadding * yRange), y.domain()[1] + (yPadding * yRange)]);
-      }
-
-      //Only need to update the scatter again if x/yPadding changed the domain.
-      if (yPadding !== 0 || xPadding !== 0) {
-        wrap.select('.nv-scatterWrap')
-            .datum(data.filter(function(d) { return !d.disabled }))
-            .call(scatter);
-      }
-
-      //------------------------------------------------------------
-
-
-      //------------------------------------------------------------
-      // Setup Axes
-      if (showXAxis) {
-        xAxis
-            .scale(x)
-            .ticks( xAxis.ticks() && xAxis.ticks().length ? xAxis.ticks() : availableWidth / 100 )
-            .tickSize( -availableHeight , 0);
-
-        g.select('.nv-x.nv-axis')
-            .attr('transform', 'translate(0,' + y.range()[0] + ')')
-            .call(xAxis);
-
-      }
-
-      if (showYAxis) {
-        yAxis
-            .scale(y)
-            .ticks( yAxis.ticks() && yAxis.ticks().length ? yAxis.ticks() : availableHeight / 36 )
-            .tickSize( -availableWidth, 0);
-
-        g.select('.nv-y.nv-axis')
-            .call(yAxis);
-      }
-
-
-      if (showDistX) {
-        distX
-            .getData(scatter.x())
-            .scale(x)
-            .width(availableWidth)
-            .color(data.map(function(d,i) {
-              return d.color || color(d, i);
-            }).filter(function(d,i) { return !data[i].disabled }));
-        gEnter.select('.nv-distWrap').append('g')
-            .attr('class', 'nv-distributionX');
-        g.select('.nv-distributionX')
-            .attr('transform', 'translate(0,' + y.range()[0] + ')')
-            .datum(data.filter(function(d) { return !d.disabled }))
-            .call(distX);
-      }
-
-      if (showDistY) {
-        distY
-            .getData(scatter.y())
-            .scale(y)
-            .width(availableHeight)
-            .color(data.map(function(d,i) {
-              return d.color || color(d, i);
-            }).filter(function(d,i) { return !data[i].disabled }));
-        gEnter.select('.nv-distWrap').append('g')
-            .attr('class', 'nv-distributionY');
-        g.select('.nv-distributionY')
-            .attr('transform', 
-              'translate(' + (rightAlignYAxis ? availableWidth : -distY.size() ) + ',0)')
-            .datum(data.filter(function(d) { return !d.disabled }))
-            .call(distY);
-      }
-
-      //------------------------------------------------------------
-
-
-
-
-      if (d3.fisheye) {
-        g.select('.nv-background')
-            .attr('width', availableWidth)
-            .attr('height', availableHeight);
-
-        g.select('.nv-background').on('mousemove', updateFisheye);
-        g.select('.nv-background').on('click', function() { pauseFisheye = !pauseFisheye;});
-        scatter.dispatch.on('elementClick.freezeFisheye', function() {
-          pauseFisheye = !pauseFisheye;
-        });
-      }
-
-
-      function updateFisheye() {
-        if (pauseFisheye) {
-          g.select('.nv-point-paths').style('pointer-events', 'all');
-          return false;
-        }
-
-        g.select('.nv-point-paths').style('pointer-events', 'none' );
-
-        var mouse = d3.mouse(this);
-        x.distortion(fisheye).focus(mouse[0]);
-        y.distortion(fisheye).focus(mouse[1]);
-
-        g.select('.nv-scatterWrap')
-            .call(scatter);
-
-        if (showXAxis)
-          g.select('.nv-x.nv-axis').call(xAxis);
-        
-        if (showYAxis)
-          g.select('.nv-y.nv-axis').call(yAxis);
-        
-        g.select('.nv-distributionX')
-            .datum(data.filter(function(d) { return !d.disabled }))
-            .call(distX);
-        g.select('.nv-distributionY')
-            .datum(data.filter(function(d) { return !d.disabled }))
-            .call(distY);
-      }
-
-
-
-      //============================================================
-      // Event Handling/Dispatching (in chart's scope)
-      //------------------------------------------------------------
-
-      controls.dispatch.on('legendClick', function(d,i) {
-        d.disabled = !d.disabled;
-
-        fisheye = d.disabled ? 0 : 2.5;
-        g.select('.nv-background') .style('pointer-events', d.disabled ? 'none' : 'all');
-        g.select('.nv-point-paths').style('pointer-events', d.disabled ? 'all' : 'none' );
-
-        if (d.disabled) {
-          x.distortion(fisheye).focus(0);
-          y.distortion(fisheye).focus(0);
-
-          g.select('.nv-scatterWrap').call(scatter);
-          g.select('.nv-x.nv-axis').call(xAxis);
-          g.select('.nv-y.nv-axis').call(yAxis);
-        } else {
-          pauseFisheye = false;
-        }
-
-        chart.update();
-      });
-
-      legend.dispatch.on('stateChange', function(newState) {
-        state.disabled = newState.disabled;
-        dispatch.stateChange(state);
-        chart.update();
-      });
-
-      scatter.dispatch.on('elementMouseover.tooltip', function(e) {
-        d3.select('.nv-chart-' + scatter.id() + ' .nv-series-' + e.seriesIndex + ' .nv-distx-' + e.pointIndex)
-            .attr('y1', function(d,i) { return e.pos[1] - availableHeight;});
-        d3.select('.nv-chart-' + scatter.id() + ' .nv-series-' + e.seriesIndex + ' .nv-disty-' + e.pointIndex)
-            .attr('x2', e.pos[0] + distX.size());
-
-        e.pos = [e.pos[0] + margin.left, e.pos[1] + margin.top];
-        dispatch.tooltipShow(e);
-      });
-
-      dispatch.on('tooltipShow', function(e) {
-        if (tooltips) showTooltip(e, that.parentNode);
-      });
-
-      // Update chart from a state object passed to event handler
-      dispatch.on('changeState', function(e) {
-
-        if (typeof e.disabled !== 'undefined') {
-          data.forEach(function(series,i) {
-            series.disabled = e.disabled[i];
-          });
-
-          state.disabled = e.disabled;
-        }
-
-        chart.update();
-      });
-
-      //============================================================
-
-
-      //store old scales for use in transitions on update
-      x0 = x.copy();
-      y0 = y.copy();
-
-
-    });
-
-    return chart;
-  }
-
-
-  //============================================================
-  // Event Handling/Dispatching (out of chart's scope)
-  //------------------------------------------------------------
-
-  scatter.dispatch.on('elementMouseout.tooltip', function(e) {
-    dispatch.tooltipHide(e);
-
-    d3.select('.nv-chart-' + scatter.id() + ' .nv-series-' + e.seriesIndex + ' .nv-distx-' + e.pointIndex)
-        .attr('y1', 0);
-    d3.select('.nv-chart-' + scatter.id() + ' .nv-series-' + e.seriesIndex + ' .nv-disty-' + e.pointIndex)
-        .attr('x2', distY.size());
-  });
-  dispatch.on('tooltipHide', function() {
-    if (tooltips) nv.tooltip.cleanup();
-  });
-
-  //============================================================
-
-
-  //============================================================
-  // Expose Public Variables
-  //------------------------------------------------------------
-
-  // expose chart's sub-components
-  chart.dispatch = dispatch;
-  chart.scatter = scatter;
-  chart.legend = legend;
-  chart.controls = controls;
-  chart.xAxis = xAxis;
-  chart.yAxis = yAxis;
-  chart.distX = distX;
-  chart.distY = distY;
-
-  d3.rebind(chart, scatter, 'id', 'interactive', 'pointActive', 'x', 'y', 'shape', 'size', 'xScale', 'yScale', 'zScale', 'xDomain', 'yDomain', 'xRange', 'yRange', 'sizeDomain', 'sizeRange', 'forceX', 'forceY', 'forceSize', 'clipVoronoi', 'clipRadius', 'useVoronoi');
-  chart.options = nv.utils.optionsFunc.bind(chart);
-  
-  chart.margin = function(_) {
-    if (!arguments.length) return margin;
-    margin.top    = typeof _.top    != 'undefined' ? _.top    : margin.top;
-    margin.right  = typeof _.right  != 'undefined' ? _.right  : margin.right;
-    margin.bottom = typeof _.bottom != 'undefined' ? _.bottom : margin.bottom;
-    margin.left   = typeof _.left   != 'undefined' ? _.left   : margin.left;
-    return chart;
-  };
-
-  chart.width = function(_) {
-    if (!arguments.length) return width;
-    width = _;
-    return chart;
-  };
-
-  chart.height = function(_) {
-    if (!arguments.length) return height;
-    height = _;
-    return chart;
-  };
-
-  chart.color = function(_) {
-    if (!arguments.length) return color;
-    color = nv.utils.getColor(_);
-    legend.color(color);
-    distX.color(color);
-    distY.color(color);
-    return chart;
-  };
-
-  chart.showDistX = function(_) {
-    if (!arguments.length) return showDistX;
-    showDistX = _;
-    return chart;
-  };
-
-  chart.showDistY = function(_) {
-    if (!arguments.length) return showDistY;
-    showDistY = _;
-    return chart;
-  };
-
-  chart.showControls = function(_) {
-    if (!arguments.length) return showControls;
-    showControls = _;
-    return chart;
-  };
-
-  chart.showLegend = function(_) {
-    if (!arguments.length) return showLegend;
-    showLegend = _;
-    return chart;
-  };
-
-  chart.showXAxis = function(_) {
-    if (!arguments.length) return showXAxis;
-    showXAxis = _;
-    return chart;
-  };
-
-  chart.showYAxis = function(_) {
-    if (!arguments.length) return showYAxis;
-    showYAxis = _;
-    return chart;
-  };
-
-  chart.rightAlignYAxis = function(_) {
-    if(!arguments.length) return rightAlignYAxis;
-    rightAlignYAxis = _;
-    yAxis.orient( (_) ? 'right' : 'left');
-    return chart;
-  };
-
-
-  chart.fisheye = function(_) {
-    if (!arguments.length) return fisheye;
-    fisheye = _;
-    return chart;
-  };
-
-  chart.xPadding = function(_) {
-    if (!arguments.length) return xPadding;
-    xPadding = _;
-    return chart;
-  };
-
-  chart.yPadding = function(_) {
-    if (!arguments.length) return yPadding;
-    yPadding = _;
-    return chart;
-  };
-
-  chart.tooltips = function(_) {
-    if (!arguments.length) return tooltips;
-    tooltips = _;
-    return chart;
-  };
-
-  chart.tooltipContent = function(_) {
-    if (!arguments.length) return tooltip;
-    tooltip = _;
-    return chart;
-  };
-
-  chart.tooltipXContent = function(_) {
-    if (!arguments.length) return tooltipX;
-    tooltipX = _;
-    return chart;
-  };
-
-  chart.tooltipYContent = function(_) {
-    if (!arguments.length) return tooltipY;
-    tooltipY = _;
-    return chart;
-  };
-
-  chart.state = function(_) {
-    if (!arguments.length) return state;
-    state = _;
-    return chart;
-  };
-
-  chart.defaultState = function(_) {
-    if (!arguments.length) return defaultState;
-    defaultState = _;
-    return chart;
-  };
-  
-  chart.noData = function(_) {
-    if (!arguments.length) return noData;
-    noData = _;
-    return chart;
-  };
-
-  chart.transitionDuration = function(_) {
-    if (!arguments.length) return transitionDuration;
-    transitionDuration = _;
-    return chart;
-  };
-
-  //============================================================
-
-
-  return chart;
-}
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/scatterPlusLineChart.js b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/scatterPlusLineChart.js
deleted file mode 100755
index 23c87853..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/scatterPlusLineChart.js
+++ /dev/null
@@ -1,620 +0,0 @@
-
-nv.models.scatterPlusLineChart = function() {
-  "use strict";
-  //============================================================
-  // Public Variables with Default Settings
-  //------------------------------------------------------------
-
-  var scatter      = nv.models.scatter()
-    , xAxis        = nv.models.axis()
-    , yAxis        = nv.models.axis()
-    , legend       = nv.models.legend()
-    , controls     = nv.models.legend()
-    , distX        = nv.models.distribution()
-    , distY        = nv.models.distribution()
-    ;
-
-  var margin       = {top: 30, right: 20, bottom: 50, left: 75}
-    , width        = null
-    , height       = null
-    , color        = nv.utils.defaultColor()
-    , x            = d3.fisheye ? d3.fisheye.scale(d3.scale.linear).distortion(0) : scatter.xScale()
-    , y            = d3.fisheye ? d3.fisheye.scale(d3.scale.linear).distortion(0) : scatter.yScale()
-    , showDistX    = false
-    , showDistY    = false
-    , showLegend   = true
-    , showXAxis    = true
-    , showYAxis    = true
-    , rightAlignYAxis = false
-    , showControls = !!d3.fisheye
-    , fisheye      = 0
-    , pauseFisheye = false
-    , tooltips     = true
-    , tooltipX     = function(key, x, y) { return '<strong>' + x + '</strong>' }
-    , tooltipY     = function(key, x, y) { return '<strong>' + y + '</strong>' }
-    , tooltip      = function(key, x, y, date) { return '<h3>' + key + '</h3>' 
-                                                      + '<p>' + date + '</p>' }
-    , state = {}
-    , defaultState = null
-    , dispatch = d3.dispatch('tooltipShow', 'tooltipHide', 'stateChange', 'changeState')
-    , noData       = "No Data Available."
-    , transitionDuration = 250
-    ;
-
-  scatter
-    .xScale(x)
-    .yScale(y)
-    ;
-  xAxis
-    .orient('bottom')
-    .tickPadding(10)
-    ;
-  yAxis
-    .orient((rightAlignYAxis) ? 'right' : 'left')
-    .tickPadding(10)
-    ;
-  distX
-    .axis('x')
-    ;
-  distY
-    .axis('y')
-    ;
-  
-  controls.updateState(false);
-  //============================================================
-
-
-  //============================================================
-  // Private Variables
-  //------------------------------------------------------------
-
-  var x0, y0;
-
-  var showTooltip = function(e, offsetElement) {
-    //TODO: make tooltip style an option between single or dual on axes (maybe on all charts with axes?)
-
-    var left = e.pos[0] + ( offsetElement.offsetLeft || 0 ),
-        top = e.pos[1] + ( offsetElement.offsetTop || 0),
-        leftX = e.pos[0] + ( offsetElement.offsetLeft || 0 ),
-        topX = y.range()[0] + margin.top + ( offsetElement.offsetTop || 0),
-        leftY = x.range()[0] + margin.left + ( offsetElement.offsetLeft || 0 ),
-        topY = e.pos[1] + ( offsetElement.offsetTop || 0),
-        xVal = xAxis.tickFormat()(scatter.x()(e.point, e.pointIndex)),
-        yVal = yAxis.tickFormat()(scatter.y()(e.point, e.pointIndex));
-
-      if( tooltipX != null )
-          nv.tooltip.show([leftX, topX], tooltipX(e.series.key, xVal, yVal, e, chart), 'n', 1, offsetElement, 'x-nvtooltip');
-      if( tooltipY != null )
-          nv.tooltip.show([leftY, topY], tooltipY(e.series.key, xVal, yVal, e, chart), 'e', 1, offsetElement, 'y-nvtooltip');
-      if( tooltip != null )
-          nv.tooltip.show([left, top], tooltip(e.series.key, xVal, yVal, e.point.tooltip, e, chart), e.value < 0 ? 'n' : 's', null, offsetElement);
-  };
-
-  var controlsData = [
-    { key: 'Magnify', disabled: true }
-  ];
-
-  //============================================================
-
-
-  function chart(selection) {
-    selection.each(function(data) {
-      var container = d3.select(this),
-          that = this;
-
-      var availableWidth = (width  || parseInt(container.style('width')) || 960)
-                             - margin.left - margin.right,
-          availableHeight = (height || parseInt(container.style('height')) || 400)
-                             - margin.top - margin.bottom;
-
-      chart.update = function() { container.transition().duration(transitionDuration).call(chart); };
-      chart.container = this;
-
-      //set state.disabled
-      state.disabled = data.map(function(d) { return !!d.disabled });
-
-      if (!defaultState) {
-        var key;
-        defaultState = {};
-        for (key in state) {
-          if (state[key] instanceof Array)
-            defaultState[key] = state[key].slice(0);
-          else
-            defaultState[key] = state[key];
-        }
-      }
-
-      //------------------------------------------------------------
-      // Display noData message if there's nothing to show.
-
-      if (!data || !data.length || !data.filter(function(d) { return d.values.length }).length) {
-        var noDataText = container.selectAll('.nv-noData').data([noData]);
-
-        noDataText.enter().append('text')
-          .attr('class', 'nvd3 nv-noData')
-          .attr('dy', '-.7em')
-          .style('text-anchor', 'middle');
-
-        noDataText
-          .attr('x', margin.left + availableWidth / 2)
-          .attr('y', margin.top + availableHeight / 2)
-          .text(function(d) { return d });
-
-        return chart;
-      } else {
-        container.selectAll('.nv-noData').remove();
-      }
-
-      //------------------------------------------------------------
-
-
-      //------------------------------------------------------------
-      // Setup Scales
-
-      x = scatter.xScale();
-      y = scatter.yScale();
-
-      x0 = x0 || x;
-      y0 = y0 || y;
-
-      //------------------------------------------------------------
-
-
-      //------------------------------------------------------------
-      // Setup containers and skeleton of chart
-
-      var wrap = container.selectAll('g.nv-wrap.nv-scatterChart').data([data]);
-      var wrapEnter = wrap.enter().append('g').attr('class', 'nvd3 nv-wrap nv-scatterChart nv-chart-' + scatter.id());
-      var gEnter = wrapEnter.append('g');
-      var g = wrap.select('g')
-
-      // background for pointer events
-      gEnter.append('rect').attr('class', 'nvd3 nv-background').style("pointer-events","none");
-
-      gEnter.append('g').attr('class', 'nv-x nv-axis');
-      gEnter.append('g').attr('class', 'nv-y nv-axis');
-      gEnter.append('g').attr('class', 'nv-scatterWrap');
-      gEnter.append('g').attr('class', 'nv-regressionLinesWrap');
-      gEnter.append('g').attr('class', 'nv-distWrap');
-      gEnter.append('g').attr('class', 'nv-legendWrap');
-      gEnter.append('g').attr('class', 'nv-controlsWrap');
-
-      wrap.attr('transform', 'translate(' + margin.left + ',' + margin.top + ')');
-
-      if (rightAlignYAxis) {
-          g.select(".nv-y.nv-axis")
-              .attr("transform", "translate(" + availableWidth + ",0)");
-      }
-
-      //------------------------------------------------------------
-
-
-      //------------------------------------------------------------
-      // Legend
-
-      if (showLegend) {
-        legend.width( availableWidth / 2 );
-
-        wrap.select('.nv-legendWrap')
-            .datum(data)
-            .call(legend);
-
-        if ( margin.top != legend.height()) {
-          margin.top = legend.height();
-          availableHeight = (height || parseInt(container.style('height')) || 400)
-                             - margin.top - margin.bottom;
-        }
-
-        wrap.select('.nv-legendWrap')
-            .attr('transform', 'translate(' + (availableWidth / 2) + ',' + (-margin.top) +')');
-      }
-
-      //------------------------------------------------------------
-
-
-      //------------------------------------------------------------
-      // Controls
-
-      if (showControls) {
-        controls.width(180).color(['#444']);
-        g.select('.nv-controlsWrap')
-            .datum(controlsData)
-            .attr('transform', 'translate(0,' + (-margin.top) +')')
-            .call(controls);
-      }
-
-      //------------------------------------------------------------
-
-
-      //------------------------------------------------------------
-      // Main Chart Component(s)
-
-      scatter
-          .width(availableWidth)
-          .height(availableHeight)
-          .color(data.map(function(d,i) {
-            return d.color || color(d, i);
-          }).filter(function(d,i) { return !data[i].disabled }))
-
-      wrap.select('.nv-scatterWrap')
-          .datum(data.filter(function(d) { return !d.disabled }))
-          .call(scatter);
-
-      wrap.select('.nv-regressionLinesWrap')
-          .attr('clip-path', 'url(#nv-edge-clip-' + scatter.id() + ')');
-
-      var regWrap = wrap.select('.nv-regressionLinesWrap').selectAll('.nv-regLines')
-                      .data(function(d) {return d });
-      
-      regWrap.enter().append('g').attr('class', 'nv-regLines');
-
-      var regLine = regWrap.selectAll('.nv-regLine').data(function(d){return [d]});
-      var regLineEnter = regLine.enter()
-                       .append('line').attr('class', 'nv-regLine')
-                       .style('stroke-opacity', 0);
-
-      regLine
-          .transition()
-          .attr('x1', x.range()[0])
-          .attr('x2', x.range()[1])
-          .attr('y1', function(d,i) {return y(x.domain()[0] * d.slope + d.intercept) })
-          .attr('y2', function(d,i) { return y(x.domain()[1] * d.slope + d.intercept) })
-          .style('stroke', function(d,i,j) { return color(d,j) })
-          .style('stroke-opacity', function(d,i) {
-            return (d.disabled || typeof d.slope === 'undefined' || typeof d.intercept === 'undefined') ? 0 : 1 
-          });
-
-      //------------------------------------------------------------
-
-
-      //------------------------------------------------------------
-      // Setup Axes
-
-      if (showXAxis) {
-        xAxis
-            .scale(x)
-            .ticks( xAxis.ticks() ? xAxis.ticks() : availableWidth / 100 )
-            .tickSize( -availableHeight , 0);
-
-        g.select('.nv-x.nv-axis')
-            .attr('transform', 'translate(0,' + y.range()[0] + ')')
-            .call(xAxis);
-      }
-
-      if (showYAxis) {
-        yAxis
-            .scale(y)
-            .ticks( yAxis.ticks() ? yAxis.ticks() : availableHeight / 36 )
-            .tickSize( -availableWidth, 0);
-
-        g.select('.nv-y.nv-axis')
-            .call(yAxis);
-      }
-
-
-      if (showDistX) {
-        distX
-            .getData(scatter.x())
-            .scale(x)
-            .width(availableWidth)
-            .color(data.map(function(d,i) {
-              return d.color || color(d, i);
-            }).filter(function(d,i) { return !data[i].disabled }));
-        gEnter.select('.nv-distWrap').append('g')
-            .attr('class', 'nv-distributionX');
-        g.select('.nv-distributionX')
-            .attr('transform', 'translate(0,' + y.range()[0] + ')')
-            .datum(data.filter(function(d) { return !d.disabled }))
-            .call(distX);
-      }
-
-      if (showDistY) {
-        distY
-            .getData(scatter.y())
-            .scale(y)
-            .width(availableHeight)
-            .color(data.map(function(d,i) {
-              return d.color || color(d, i);
-            }).filter(function(d,i) { return !data[i].disabled }));
-        gEnter.select('.nv-distWrap').append('g')
-            .attr('class', 'nv-distributionY');
-        g.select('.nv-distributionY')
-            .attr('transform', 'translate(' + (rightAlignYAxis ? availableWidth : -distY.size() ) + ',0)')
-            .datum(data.filter(function(d) { return !d.disabled }))
-            .call(distY);
-      }
-
-      //------------------------------------------------------------
-
-
-
-
-      if (d3.fisheye) {
-        g.select('.nv-background')
-            .attr('width', availableWidth)
-            .attr('height', availableHeight)
-            ;
-
-        g.select('.nv-background').on('mousemove', updateFisheye);
-        g.select('.nv-background').on('click', function() { pauseFisheye = !pauseFisheye;});
-        scatter.dispatch.on('elementClick.freezeFisheye', function() {
-          pauseFisheye = !pauseFisheye;
-        });
-      }
-
-
-      function updateFisheye() {
-        if (pauseFisheye) {
-          g.select('.nv-point-paths').style('pointer-events', 'all');
-          return false;
-        }
-
-        g.select('.nv-point-paths').style('pointer-events', 'none' );
-
-        var mouse = d3.mouse(this);
-        x.distortion(fisheye).focus(mouse[0]);
-        y.distortion(fisheye).focus(mouse[1]);
-
-        g.select('.nv-scatterWrap')
-            .datum(data.filter(function(d) { return !d.disabled }))
-            .call(scatter);
-
-        if (showXAxis)
-          g.select('.nv-x.nv-axis').call(xAxis);
-
-        if (showYAxis)
-          g.select('.nv-y.nv-axis').call(yAxis);
-        
-        g.select('.nv-distributionX')
-            .datum(data.filter(function(d) { return !d.disabled }))
-            .call(distX);
-        g.select('.nv-distributionY')
-            .datum(data.filter(function(d) { return !d.disabled }))
-            .call(distY);
-      }
-
-
-
-      //============================================================
-      // Event Handling/Dispatching (in chart's scope)
-      //------------------------------------------------------------
-
-      controls.dispatch.on('legendClick', function(d,i) {
-        d.disabled = !d.disabled;
-
-        fisheye = d.disabled ? 0 : 2.5;
-        g.select('.nv-background') .style('pointer-events', d.disabled ? 'none' : 'all');
-        g.select('.nv-point-paths').style('pointer-events', d.disabled ? 'all' : 'none' );
-
-        if (d.disabled) {
-          x.distortion(fisheye).focus(0);
-          y.distortion(fisheye).focus(0);
-
-          g.select('.nv-scatterWrap').call(scatter);
-          g.select('.nv-x.nv-axis').call(xAxis);
-          g.select('.nv-y.nv-axis').call(yAxis);
-        } else {
-          pauseFisheye = false;
-        }
-
-        chart.update();
-      });
-
-      legend.dispatch.on('stateChange', function(newState) { 
-        state = newState;
-        dispatch.stateChange(state);
-        chart.update();
-      });
-
-
-      scatter.dispatch.on('elementMouseover.tooltip', function(e) {
-        d3.select('.nv-chart-' + scatter.id() + ' .nv-series-' + e.seriesIndex + ' .nv-distx-' + e.pointIndex)
-            .attr('y1', e.pos[1] - availableHeight);
-        d3.select('.nv-chart-' + scatter.id() + ' .nv-series-' + e.seriesIndex + ' .nv-disty-' + e.pointIndex)
-            .attr('x2', e.pos[0] + distX.size());
-
-        e.pos = [e.pos[0] + margin.left, e.pos[1] + margin.top];
-        dispatch.tooltipShow(e);
-      });
-
-      dispatch.on('tooltipShow', function(e) {
-        if (tooltips) showTooltip(e, that.parentNode);
-      });
-
-      // Update chart from a state object passed to event handler
-      dispatch.on('changeState', function(e) {
-
-        if (typeof e.disabled !== 'undefined') {
-          data.forEach(function(series,i) {
-            series.disabled = e.disabled[i];
-          });
-
-          state.disabled = e.disabled;
-        }
-
-        chart.update();
-      });
-
-      //============================================================
-
-
-      //store old scales for use in transitions on update
-      x0 = x.copy();
-      y0 = y.copy();
-
-
-    });
-
-    return chart;
-  }
-
-
-  //============================================================
-  // Event Handling/Dispatching (out of chart's scope)
-  //------------------------------------------------------------
-
-  scatter.dispatch.on('elementMouseout.tooltip', function(e) {
-    dispatch.tooltipHide(e);
-
-    d3.select('.nv-chart-' + scatter.id() + ' .nv-series-' + e.seriesIndex + ' .nv-distx-' + e.pointIndex)
-        .attr('y1', 0);
-    d3.select('.nv-chart-' + scatter.id() + ' .nv-series-' + e.seriesIndex + ' .nv-disty-' + e.pointIndex)
-        .attr('x2', distY.size());
-  });
-  dispatch.on('tooltipHide', function() {
-    if (tooltips) nv.tooltip.cleanup();
-  });
-
-  //============================================================
-
-
-  //============================================================
-  // Expose Public Variables
-  //------------------------------------------------------------
-
-  // expose chart's sub-components
-  chart.dispatch = dispatch;
-  chart.scatter = scatter;
-  chart.legend = legend;
-  chart.controls = controls;
-  chart.xAxis = xAxis;
-  chart.yAxis = yAxis;
-  chart.distX = distX;
-  chart.distY = distY;
-
-  d3.rebind(chart, scatter, 'id', 'interactive', 'pointActive', 'x', 'y', 'shape', 'size', 'xScale', 'yScale', 'zScale', 'xDomain', 'yDomain', 'xRange', 'yRange', 'sizeDomain', 'sizeRange', 'forceX', 'forceY', 'forceSize', 'clipVoronoi', 'clipRadius', 'useVoronoi');
-
-  chart.options = nv.utils.optionsFunc.bind(chart);
-  
-  chart.margin = function(_) {
-    if (!arguments.length) return margin;
-    margin.top    = typeof _.top    != 'undefined' ? _.top    : margin.top;
-    margin.right  = typeof _.right  != 'undefined' ? _.right  : margin.right;
-    margin.bottom = typeof _.bottom != 'undefined' ? _.bottom : margin.bottom;
-    margin.left   = typeof _.left   != 'undefined' ? _.left   : margin.left;
-    return chart;
-  };
-
-  chart.width = function(_) {
-    if (!arguments.length) return width;
-    width = _;
-    return chart;
-  };
-
-  chart.height = function(_) {
-    if (!arguments.length) return height;
-    height = _;
-    return chart;
-  };
-
-  chart.color = function(_) {
-    if (!arguments.length) return color;
-    color = nv.utils.getColor(_);
-    legend.color(color);
-    distX.color(color);
-    distY.color(color);
-    return chart;
-  };
-
-  chart.showDistX = function(_) {
-    if (!arguments.length) return showDistX;
-    showDistX = _;
-    return chart;
-  };
-
-  chart.showDistY = function(_) {
-    if (!arguments.length) return showDistY;
-    showDistY = _;
-    return chart;
-  };
-
-  chart.showControls = function(_) {
-    if (!arguments.length) return showControls;
-    showControls = _;
-    return chart;
-  };
-
-  chart.showLegend = function(_) {
-    if (!arguments.length) return showLegend;
-    showLegend = _;
-    return chart;
-  };
-
-  chart.showXAxis = function(_) {
-    if (!arguments.length) return showXAxis;
-    showXAxis = _;
-    return chart;
-  };
-
-  chart.showYAxis = function(_) {
-    if (!arguments.length) return showYAxis;
-    showYAxis = _;
-    return chart;
-  };
-
-  chart.rightAlignYAxis = function(_) {
-    if(!arguments.length) return rightAlignYAxis;
-    rightAlignYAxis = _;
-    yAxis.orient( (_) ? 'right' : 'left');
-    return chart;
-  };
-
-  chart.fisheye = function(_) {
-    if (!arguments.length) return fisheye;
-    fisheye = _;
-    return chart;
-  };
-
-  chart.tooltips = function(_) {
-    if (!arguments.length) return tooltips;
-    tooltips = _;
-    return chart;
-  };
-
-  chart.tooltipContent = function(_) {
-    if (!arguments.length) return tooltip;
-    tooltip = _;
-    return chart;
-  };
-
-  chart.tooltipXContent = function(_) {
-    if (!arguments.length) return tooltipX;
-    tooltipX = _;
-    return chart;
-  };
-
-  chart.tooltipYContent = function(_) {
-    if (!arguments.length) return tooltipY;
-    tooltipY = _;
-    return chart;
-  };
-
-  chart.state = function(_) {
-    if (!arguments.length) return state;
-    state = _;
-    return chart;
-  };
-
-  chart.defaultState = function(_) {
-    if (!arguments.length) return defaultState;
-    defaultState = _;
-    return chart;
-  };
-
-  chart.noData = function(_) {
-    if (!arguments.length) return noData;
-    noData = _;
-    return chart;
-  };
-
-  chart.transitionDuration = function(_) {
-    if (!arguments.length) return transitionDuration;
-    transitionDuration = _;
-    return chart;
-  };
-
-  //============================================================
-
-
-  return chart;
-}
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/sparkline.js b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/sparkline.js
deleted file mode 100755
index e4c2e87b..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/sparkline.js
+++ /dev/null
@@ -1,194 +0,0 @@
-
-nv.models.sparkline = function() {
-  "use strict";
-  //============================================================
-  // Public Variables with Default Settings
-  //------------------------------------------------------------
-
-  var margin = {top: 2, right: 0, bottom: 2, left: 0}
-    , width = 400
-    , height = 32
-    , animate = true
-    , x = d3.scale.linear()
-    , y = d3.scale.linear()
-    , getX = function(d) { return d.x }
-    , getY = function(d) { return d.y }
-    , color = nv.utils.getColor(['#000'])
-    , xDomain
-    , yDomain
-    , xRange
-    , yRange
-    ;
-
-  //============================================================
-
-
-  function chart(selection) {
-    selection.each(function(data) {
-      var availableWidth = width - margin.left - margin.right,
-          availableHeight = height - margin.top - margin.bottom,
-          container = d3.select(this);
-
-
-      //------------------------------------------------------------
-      // Setup Scales
-
-      x   .domain(xDomain || d3.extent(data, getX ))
-          .range(xRange || [0, availableWidth]);
-
-      y   .domain(yDomain || d3.extent(data, getY ))
-          .range(yRange || [availableHeight, 0]);
-
-      //------------------------------------------------------------
-
-
-      //------------------------------------------------------------
-      // Setup containers and skeleton of chart
-
-      var wrap = container.selectAll('g.nv-wrap.nv-sparkline').data([data]);
-      var wrapEnter = wrap.enter().append('g').attr('class', 'nvd3 nv-wrap nv-sparkline');
-      var gEnter = wrapEnter.append('g');
-      var g = wrap.select('g');
-
-      wrap.attr('transform', 'translate(' + margin.left + ',' + margin.top + ')')
-
-      //------------------------------------------------------------
-
-
-      var paths = wrap.selectAll('path')
-          .data(function(d) { return [d] });
-      paths.enter().append('path');
-      paths.exit().remove();
-      paths
-          .style('stroke', function(d,i) { return d.color || color(d, i) })
-          .attr('d', d3.svg.line()
-            .x(function(d,i) { return x(getX(d,i)) })
-            .y(function(d,i) { return y(getY(d,i)) })
-          );
-
-
-      // TODO: Add CURRENT data point (Need Min, Mac, Current / Most recent)
-      var points = wrap.selectAll('circle.nv-point')
-          .data(function(data) {
-              var yValues = data.map(function(d, i) { return getY(d,i); });
-              function pointIndex(index) {
-                  if (index != -1) {
-	              var result = data[index];
-                      result.pointIndex = index;
-                      return result;
-                  } else {
-                      return null;
-                  }
-              }
-              var maxPoint = pointIndex(yValues.lastIndexOf(y.domain()[1])),
-                  minPoint = pointIndex(yValues.indexOf(y.domain()[0])),
-                  currentPoint = pointIndex(yValues.length - 1);
-              return [minPoint, maxPoint, currentPoint].filter(function (d) {return d != null;});
-          });
-      points.enter().append('circle');
-      points.exit().remove();
-      points
-          .attr('cx', function(d,i) { return x(getX(d,d.pointIndex)) })
-          .attr('cy', function(d,i) { return y(getY(d,d.pointIndex)) })
-          .attr('r', 2)
-          .attr('class', function(d,i) {
-            return getX(d, d.pointIndex) == x.domain()[1] ? 'nv-point nv-currentValue' :
-                   getY(d, d.pointIndex) == y.domain()[0] ? 'nv-point nv-minValue' : 'nv-point nv-maxValue'
-          });
-    });
-
-    return chart;
-  }
-
-
-  //============================================================
-  // Expose Public Variables
-  //------------------------------------------------------------
-  chart.options = nv.utils.optionsFunc.bind(chart);
-  
-  chart.margin = function(_) {
-    if (!arguments.length) return margin;
-    margin.top    = typeof _.top    != 'undefined' ? _.top    : margin.top;
-    margin.right  = typeof _.right  != 'undefined' ? _.right  : margin.right;
-    margin.bottom = typeof _.bottom != 'undefined' ? _.bottom : margin.bottom;
-    margin.left   = typeof _.left   != 'undefined' ? _.left   : margin.left;
-    return chart;
-  };
-
-  chart.width = function(_) {
-    if (!arguments.length) return width;
-    width = _;
-    return chart;
-  };
-
-  chart.height = function(_) {
-    if (!arguments.length) return height;
-    height = _;
-    return chart;
-  };
-
-  chart.x = function(_) {
-    if (!arguments.length) return getX;
-    getX = d3.functor(_);
-    return chart;
-  };
-
-  chart.y = function(_) {
-    if (!arguments.length) return getY;
-    getY = d3.functor(_);
-    return chart;
-  };
-
-  chart.xScale = function(_) {
-    if (!arguments.length) return x;
-    x = _;
-    return chart;
-  };
-
-  chart.yScale = function(_) {
-    if (!arguments.length) return y;
-    y = _;
-    return chart;
-  };
-
-  chart.xDomain = function(_) {
-    if (!arguments.length) return xDomain;
-    xDomain = _;
-    return chart;
-  };
-
-  chart.yDomain = function(_) {
-    if (!arguments.length) return yDomain;
-    yDomain = _;
-    return chart;
-  };
-
-  chart.xRange = function(_) {
-    if (!arguments.length) return xRange;
-    xRange = _;
-    return chart;
-  };
-
-  chart.yRange = function(_) {
-    if (!arguments.length) return yRange;
-    yRange = _;
-    return chart;
-  };
-
-  chart.animate = function(_) {
-    if (!arguments.length) return animate;
-    animate = _;
-    return chart;
-  };
-
-  chart.color = function(_) {
-    if (!arguments.length) return color;
-    color = nv.utils.getColor(_);
-    return chart;
-  };
-
-  //============================================================
-
-
-  return chart;
-}
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/sparklinePlus.js b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/sparklinePlus.js
deleted file mode 100755
index 1535f8af..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/sparklinePlus.js
+++ /dev/null
@@ -1,295 +0,0 @@
-
-nv.models.sparklinePlus = function() {
-  "use strict";
-  //============================================================
-  // Public Variables with Default Settings
-  //------------------------------------------------------------
-
-  var sparkline = nv.models.sparkline();
-
-  var margin = {top: 15, right: 100, bottom: 10, left: 50}
-    , width = null
-    , height = null
-    , x
-    , y
-    , index = []
-    , paused = false
-    , xTickFormat = d3.format(',r')
-    , yTickFormat = d3.format(',.2f')
-    , showValue = true
-    , alignValue = true
-    , rightAlignValue = false
-    , noData = "No Data Available."
-    ;
-
-  //============================================================
-
-
-  function chart(selection) {
-    selection.each(function(data) {
-      var container = d3.select(this);
-
-      var availableWidth = (width  || parseInt(container.style('width')) || 960)
-                             - margin.left - margin.right,
-          availableHeight = (height || parseInt(container.style('height')) || 400)
-                             - margin.top - margin.bottom;
-
-      
-
-      chart.update = function() { chart(selection) };
-      chart.container = this;
-
-
-      //------------------------------------------------------------
-      // Display No Data message if there's nothing to show.
-
-      if (!data || !data.length) {
-        var noDataText = container.selectAll('.nv-noData').data([noData]);
-
-        noDataText.enter().append('text')
-          .attr('class', 'nvd3 nv-noData')
-          .attr('dy', '-.7em')
-          .style('text-anchor', 'middle');
-
-        noDataText
-          .attr('x', margin.left + availableWidth / 2)
-          .attr('y', margin.top + availableHeight / 2)
-          .text(function(d) { return d });
-
-        return chart;
-      } else {
-        container.selectAll('.nv-noData').remove();
-      }
-
-      var currentValue = sparkline.y()(data[data.length-1], data.length-1);
-
-      //------------------------------------------------------------
-
-
-
-      //------------------------------------------------------------
-      // Setup Scales
-
-      x = sparkline.xScale();
-      y = sparkline.yScale();
-
-      //------------------------------------------------------------
-
-
-      //------------------------------------------------------------
-      // Setup containers and skeleton of chart
-
-      var wrap = container.selectAll('g.nv-wrap.nv-sparklineplus').data([data]);
-      var wrapEnter = wrap.enter().append('g').attr('class', 'nvd3 nv-wrap nv-sparklineplus');
-      var gEnter = wrapEnter.append('g');
-      var g = wrap.select('g');
-
-      gEnter.append('g').attr('class', 'nv-sparklineWrap');
-      gEnter.append('g').attr('class', 'nv-valueWrap');
-      gEnter.append('g').attr('class', 'nv-hoverArea');
-
-      wrap.attr('transform', 'translate(' + margin.left + ',' + margin.top + ')');
-
-      //------------------------------------------------------------
-
-
-      //------------------------------------------------------------
-      // Main Chart Component(s)
-
-      var sparklineWrap = g.select('.nv-sparklineWrap');
-
-      sparkline
-        .width(availableWidth)
-        .height(availableHeight);
-
-      sparklineWrap
-          .call(sparkline);
-
-      //------------------------------------------------------------
-
-
-      var valueWrap = g.select('.nv-valueWrap');
-      
-      var value = valueWrap.selectAll('.nv-currentValue')
-          .data([currentValue]);
-
-      value.enter().append('text').attr('class', 'nv-currentValue')
-          .attr('dx', rightAlignValue ? -8 : 8)
-          .attr('dy', '.9em')
-          .style('text-anchor', rightAlignValue ? 'end' : 'start');
-
-      value
-          .attr('x', availableWidth + (rightAlignValue ? margin.right : 0))
-          .attr('y', alignValue ? function(d) { return y(d) } : 0)
-          .style('fill', sparkline.color()(data[data.length-1], data.length-1))
-          .text(yTickFormat(currentValue));
-
-
-
-      gEnter.select('.nv-hoverArea').append('rect')
-          .on('mousemove', sparklineHover)
-          .on('click', function() { paused = !paused })
-          .on('mouseout', function() { index = []; updateValueLine(); });
-          //.on('mouseout', function() { index = null; updateValueLine(); });
-
-      g.select('.nv-hoverArea rect')
-          .attr('transform', function(d) { return 'translate(' + -margin.left + ',' + -margin.top + ')' })
-          .attr('width', availableWidth + margin.left + margin.right)
-          .attr('height', availableHeight + margin.top);
-
-
-
-      function updateValueLine() { //index is currently global (within the chart), may or may not keep it that way
-        if (paused) return;
-
-        var hoverValue = g.selectAll('.nv-hoverValue').data(index)
-
-        var hoverEnter = hoverValue.enter()
-          .append('g').attr('class', 'nv-hoverValue')
-            .style('stroke-opacity', 0)
-            .style('fill-opacity', 0);
-
-        hoverValue.exit()
-          .transition().duration(250)
-            .style('stroke-opacity', 0)
-            .style('fill-opacity', 0)
-            .remove();
-
-        hoverValue
-            .attr('transform', function(d) { return 'translate(' + x(sparkline.x()(data[d],d)) + ',0)' })
-          .transition().duration(250)
-            .style('stroke-opacity', 1)
-            .style('fill-opacity', 1);
-
-        if (!index.length) return;
-
-        hoverEnter.append('line')
-            .attr('x1', 0)
-            .attr('y1', -margin.top)
-            .attr('x2', 0)
-            .attr('y2', availableHeight);
-
-
-        hoverEnter.append('text').attr('class', 'nv-xValue')
-            .attr('x', -6)
-            .attr('y', -margin.top)
-            .attr('text-anchor', 'end')
-            .attr('dy', '.9em')
-
-
-        g.select('.nv-hoverValue .nv-xValue')
-            .text(xTickFormat(sparkline.x()(data[index[0]], index[0])));
-
-        hoverEnter.append('text').attr('class', 'nv-yValue')
-            .attr('x', 6)
-            .attr('y', -margin.top)
-            .attr('text-anchor', 'start')
-            .attr('dy', '.9em')
-
-        g.select('.nv-hoverValue .nv-yValue')
-            .text(yTickFormat(sparkline.y()(data[index[0]], index[0])));
-
-      }
-
-
-      function sparklineHover() {
-        if (paused) return;
-
-        var pos = d3.mouse(this)[0] - margin.left;
-
-        function getClosestIndex(data, x) {
-          var distance = Math.abs(sparkline.x()(data[0], 0) - x);
-          var closestIndex = 0;
-          for (var i = 0; i < data.length; i++){
-            if (Math.abs(sparkline.x()(data[i], i) - x) < distance) {
-              distance = Math.abs(sparkline.x()(data[i], i) - x);
-              closestIndex = i;
-            }
-          }
-          return closestIndex;
-        }
-
-        index = [getClosestIndex(data, Math.round(x.invert(pos)))];
-
-        updateValueLine();
-      }
-
-    });
-
-    return chart;
-  }
-
-
-  //============================================================
-  // Expose Public Variables
-  //------------------------------------------------------------
-
-  // expose chart's sub-components
-  chart.sparkline = sparkline;
-
-  d3.rebind(chart, sparkline, 'x', 'y', 'xScale', 'yScale', 'color');
-
-  chart.options = nv.utils.optionsFunc.bind(chart);
-  
-  chart.margin = function(_) {
-    if (!arguments.length) return margin;
-    margin.top    = typeof _.top    != 'undefined' ? _.top    : margin.top;
-    margin.right  = typeof _.right  != 'undefined' ? _.right  : margin.right;
-    margin.bottom = typeof _.bottom != 'undefined' ? _.bottom : margin.bottom;
-    margin.left   = typeof _.left   != 'undefined' ? _.left   : margin.left;
-    return chart;
-  };
-
-  chart.width = function(_) {
-    if (!arguments.length) return width;
-    width = _;
-    return chart;
-  };
-
-  chart.height = function(_) {
-    if (!arguments.length) return height;
-    height = _;
-    return chart;
-  };
-
-  chart.xTickFormat = function(_) {
-    if (!arguments.length) return xTickFormat;
-    xTickFormat = _;
-    return chart;
-  };
-
-  chart.yTickFormat = function(_) {
-    if (!arguments.length) return yTickFormat;
-    yTickFormat = _;
-    return chart;
-  };
-
-  chart.showValue = function(_) {
-    if (!arguments.length) return showValue;
-    showValue = _;
-    return chart;
-  };
-
-  chart.alignValue = function(_) {
-    if (!arguments.length) return alignValue;
-    alignValue = _;
-    return chart;
-  };
-
-  chart.rightAlignValue = function(_) {
-    if (!arguments.length) return rightAlignValue;
-    rightAlignValue = _;
-    return chart;
-  };
-
-  chart.noData = function(_) {
-    if (!arguments.length) return noData;
-    noData = _;
-    return chart;
-  };
-
-  //============================================================
-
-
-  return chart;
-}
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/stackedArea.js b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/stackedArea.js
deleted file mode 100755
index 5c359992..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/stackedArea.js
+++ /dev/null
@@ -1,368 +0,0 @@
-
-nv.models.stackedArea = function() {
-  "use strict";
-  //============================================================
-  // Public Variables with Default Settings
-  //------------------------------------------------------------
-
-  var margin = {top: 0, right: 0, bottom: 0, left: 0}
-    , width = 960
-    , height = 500
-    , color = nv.utils.defaultColor() // a function that computes the color
-    , id = Math.floor(Math.random() * 100000) //Create semi-unique ID incase user doesn't selet one
-    , getX = function(d) { return d.x } // accessor to get the x value from a data point
-    , getY = function(d) { return d.y } // accessor to get the y value from a data point
-    , style = 'stack'
-    , offset = 'zero'
-    , order = 'default'
-    , interpolate = 'linear'  // controls the line interpolation
-    , clipEdge = false // if true, masks lines within x and y scale
-    , x //can be accessed via chart.xScale()
-    , y //can be accessed via chart.yScale()
-    , scatter = nv.models.scatter()
-    , dispatch =  d3.dispatch('tooltipShow', 'tooltipHide', 'areaClick', 'areaMouseover', 'areaMouseout')
-    ;
-
-  scatter
-    .size(2.2) // default size
-    .sizeDomain([2.2,2.2]) // all the same size by default
-    ;
-
-  /************************************
-   * offset:
-   *   'wiggle' (stream)
-   *   'zero' (stacked)
-   *   'expand' (normalize to 100%)
-   *   'silhouette' (simple centered)
-   *
-   * order:
-   *   'inside-out' (stream)
-   *   'default' (input order)
-   ************************************/
-
-  //============================================================
-
-
-  function chart(selection) {
-    selection.each(function(data) {
-      var availableWidth = width - margin.left - margin.right,
-          availableHeight = height - margin.top - margin.bottom,
-          container = d3.select(this);
-
-      //------------------------------------------------------------
-      // Setup Scales
-
-      x = scatter.xScale();
-      y = scatter.yScale();
-
-      //------------------------------------------------------------
-
-      var dataRaw = data;
-      // Injecting point index into each point because d3.layout.stack().out does not give index
-      data.forEach(function(aseries, i) {
-        aseries.seriesIndex = i;
-        aseries.values = aseries.values.map(function(d, j) {
-          d.index = j;
-          d.seriesIndex = i;
-          return d;
-        });
-      });
-
-      var dataFiltered = data.filter(function(series) {
-            return !series.disabled;
-      });
-
-      data = d3.layout.stack()
-               .order(order)
-               .offset(offset)
-               .values(function(d) { return d.values })  //TODO: make values customizeable in EVERY model in this fashion
-               .x(getX)
-               .y(getY)
-               .out(function(d, y0, y) {
-                    var yHeight = (getY(d) === 0) ? 0 : y;
-                    d.display = {
-                      y: yHeight,
-                     y0: y0
-                    };
-                })
-              (dataFiltered);
-
-
-      //------------------------------------------------------------
-      // Setup containers and skeleton of chart
-
-      var wrap = container.selectAll('g.nv-wrap.nv-stackedarea').data([data]);
-      var wrapEnter = wrap.enter().append('g').attr('class', 'nvd3 nv-wrap nv-stackedarea');
-      var defsEnter = wrapEnter.append('defs');
-      var gEnter = wrapEnter.append('g');
-      var g = wrap.select('g');
-
-      gEnter.append('g').attr('class', 'nv-areaWrap');
-      gEnter.append('g').attr('class', 'nv-scatterWrap');
-
-      wrap.attr('transform', 'translate(' + margin.left + ',' + margin.top + ')');
-
-      //------------------------------------------------------------
-
-
-      scatter
-        .width(availableWidth)
-        .height(availableHeight)
-        .x(getX)
-        .y(function(d) { return d.display.y + d.display.y0 })
-        .forceY([0])
-        .color(data.map(function(d,i) {
-          return d.color || color(d, d.seriesIndex);
-        }));
-
-
-      var scatterWrap = g.select('.nv-scatterWrap')
-          .datum(data);
-
-      scatterWrap.call(scatter);
-
-      defsEnter.append('clipPath')
-          .attr('id', 'nv-edge-clip-' + id)
-        .append('rect');
-
-      wrap.select('#nv-edge-clip-' + id + ' rect')
-          .attr('width', availableWidth)
-          .attr('height', availableHeight);
-
-      g   .attr('clip-path', clipEdge ? 'url(#nv-edge-clip-' + id + ')' : '');
-
-      var area = d3.svg.area()
-          .x(function(d,i)  { return x(getX(d,i)) })
-          .y0(function(d) {
-              return y(d.display.y0)
-          })
-          .y1(function(d) {
-              return y(d.display.y + d.display.y0)
-          })
-          .interpolate(interpolate);
-
-      var zeroArea = d3.svg.area()
-          .x(function(d,i)  { return x(getX(d,i)) })
-          .y0(function(d) { return y(d.display.y0) })
-          .y1(function(d) { return y(d.display.y0) });
-
-
-      var path = g.select('.nv-areaWrap').selectAll('path.nv-area')
-          .data(function(d) { return d });
-
-      path.enter().append('path').attr('class', function(d,i) { return 'nv-area nv-area-' + i })
-          .attr('d', function(d,i){
-            return zeroArea(d.values, d.seriesIndex);
-          })
-          .on('mouseover', function(d,i) {
-            d3.select(this).classed('hover', true);
-            dispatch.areaMouseover({
-              point: d,
-              series: d.key,
-              pos: [d3.event.pageX, d3.event.pageY],
-              seriesIndex: d.seriesIndex
-            });
-          })
-          .on('mouseout', function(d,i) {
-            d3.select(this).classed('hover', false);
-            dispatch.areaMouseout({
-              point: d,
-              series: d.key,
-              pos: [d3.event.pageX, d3.event.pageY],
-              seriesIndex: d.seriesIndex
-            });
-          })
-          .on('click', function(d,i) {
-            d3.select(this).classed('hover', false);
-            dispatch.areaClick({
-              point: d,
-              series: d.key,
-              pos: [d3.event.pageX, d3.event.pageY],
-              seriesIndex: d.seriesIndex
-            });
-          })
-
-      path.exit().remove();
-
-      path
-          .style('fill', function(d,i){
-            return d.color || color(d, d.seriesIndex)
-          })
-          .style('stroke', function(d,i){ return d.color || color(d, d.seriesIndex) });
-      path.transition()
-          .attr('d', function(d,i) {
-            return area(d.values,i)
-          });
-
-
-
-      //============================================================
-      // Event Handling/Dispatching (in chart's scope)
-      //------------------------------------------------------------
-
-      scatter.dispatch.on('elementMouseover.area', function(e) {
-        g.select('.nv-chart-' + id + ' .nv-area-' + e.seriesIndex).classed('hover', true);
-      });
-      scatter.dispatch.on('elementMouseout.area', function(e) {
-        g.select('.nv-chart-' + id + ' .nv-area-' + e.seriesIndex).classed('hover', false);
-      });
-
-      //============================================================
-      //Special offset functions
-      chart.d3_stackedOffset_stackPercent = function(stackData) {
-          var n = stackData.length,    //How many series
-          m = stackData[0].length,     //how many points per series
-          k = 1 / n,
-           i,
-           j,
-           o,
-           y0 = [];
-
-          for (j = 0; j < m; ++j) { //Looping through all points
-            for (i = 0, o = 0; i < dataRaw.length; i++)  //looping through series'
-                o += getY(dataRaw[i].values[j])   //total value of all points at a certian point in time.
-
-            if (o) for (i = 0; i < n; i++)
-               stackData[i][j][1] /= o;
-            else
-              for (i = 0; i < n; i++)
-               stackData[i][j][1] = k;
-          }
-          for (j = 0; j < m; ++j) y0[j] = 0;
-          return y0;
-      };
-
-    });
-
-
-    return chart;
-  }
-
-
-  //============================================================
-  // Event Handling/Dispatching (out of chart's scope)
-  //------------------------------------------------------------
-
-  scatter.dispatch.on('elementClick.area', function(e) {
-    dispatch.areaClick(e);
-  })
-  scatter.dispatch.on('elementMouseover.tooltip', function(e) {
-        e.pos = [e.pos[0] + margin.left, e.pos[1] + margin.top],
-        dispatch.tooltipShow(e);
-  });
-  scatter.dispatch.on('elementMouseout.tooltip', function(e) {
-        dispatch.tooltipHide(e);
-  });
-
-  //============================================================
-
-  //============================================================
-  // Global getters and setters
-  //------------------------------------------------------------
-
-  chart.dispatch = dispatch;
-  chart.scatter = scatter;
-
-  d3.rebind(chart, scatter, 'interactive', 'size', 'xScale', 'yScale', 'zScale', 'xDomain', 'yDomain', 'xRange', 'yRange',
-    'sizeDomain', 'forceX', 'forceY', 'forceSize', 'clipVoronoi', 'useVoronoi','clipRadius','highlightPoint','clearHighlights');
-
-  chart.options = nv.utils.optionsFunc.bind(chart);
-
-  chart.x = function(_) {
-    if (!arguments.length) return getX;
-    getX = d3.functor(_);
-    return chart;
-  };
-
-  chart.y = function(_) {
-    if (!arguments.length) return getY;
-    getY = d3.functor(_);
-    return chart;
-  }
-
-  chart.margin = function(_) {
-    if (!arguments.length) return margin;
-    margin.top    = typeof _.top    != 'undefined' ? _.top    : margin.top;
-    margin.right  = typeof _.right  != 'undefined' ? _.right  : margin.right;
-    margin.bottom = typeof _.bottom != 'undefined' ? _.bottom : margin.bottom;
-    margin.left   = typeof _.left   != 'undefined' ? _.left   : margin.left;
-    return chart;
-  };
-
-  chart.width = function(_) {
-    if (!arguments.length) return width;
-    width = _;
-    return chart;
-  };
-
-  chart.height = function(_) {
-    if (!arguments.length) return height;
-    height = _;
-    return chart;
-  };
-
-  chart.clipEdge = function(_) {
-    if (!arguments.length) return clipEdge;
-    clipEdge = _;
-    return chart;
-  };
-
-  chart.color = function(_) {
-    if (!arguments.length) return color;
-    color = nv.utils.getColor(_);
-    return chart;
-  };
-
-  chart.offset = function(_) {
-    if (!arguments.length) return offset;
-    offset = _;
-    return chart;
-  };
-
-  chart.order = function(_) {
-    if (!arguments.length) return order;
-    order = _;
-    return chart;
-  };
-
-  //shortcut for offset + order
-  chart.style = function(_) {
-    if (!arguments.length) return style;
-    style = _;
-
-    switch (style) {
-      case 'stack':
-        chart.offset('zero');
-        chart.order('default');
-        break;
-      case 'stream':
-        chart.offset('wiggle');
-        chart.order('inside-out');
-        break;
-      case 'stream-center':
-          chart.offset('silhouette');
-          chart.order('inside-out');
-          break;
-      case 'expand':
-        chart.offset('expand');
-        chart.order('default');
-        break;
-      case 'stack_percent':
-        chart.offset(chart.d3_stackedOffset_stackPercent);
-        chart.order('default');
-        break;
-    }
-
-    return chart;
-  };
-
-  chart.interpolate = function(_) {
-	    if (!arguments.length) return interpolate;
-	    interpolate = _;
-	    return chart;
-  };
-  //============================================================
-
-
-  return chart;
-}
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/stackedAreaChart.js b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/stackedAreaChart.js
deleted file mode 100755
index ff4c6c26..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/models/stackedAreaChart.js
+++ /dev/null
@@ -1,635 +0,0 @@
-
-nv.models.stackedAreaChart = function() {
-  "use strict";
-  //============================================================
-  // Public Variables with Default Settings
-  //------------------------------------------------------------
-
-  var stacked = nv.models.stackedArea()
-    , xAxis = nv.models.axis()
-    , yAxis = nv.models.axis()
-    , legend = nv.models.legend()
-    , controls = nv.models.legend()
-    , interactiveLayer = nv.interactiveGuideline()
-    ;
-
-  var margin = {top: 30, right: 25, bottom: 50, left: 60}
-    , width = null
-    , height = null
-    , color = nv.utils.defaultColor() // a function that takes in d, i and returns color
-    , showControls = true
-    , showLegend = true
-    , showXAxis = true
-    , showYAxis = true
-    , rightAlignYAxis = false
-    , useInteractiveGuideline = false
-    , tooltips = true
-    , tooltip = function(key, x, y, e, graph) {
-        return '<h3>' + key + '</h3>' +
-               '<p>' +  y + ' on ' + x + '</p>'
-      }
-    , x //can be accessed via chart.xScale()
-    , y //can be accessed via chart.yScale()
-    , yAxisTickFormat = d3.format(',.2f')
-    , state = { style: stacked.style() }
-    , defaultState = null
-    , noData = 'No Data Available.'
-    , dispatch = d3.dispatch('tooltipShow', 'tooltipHide', 'stateChange', 'changeState')
-    , controlWidth = 250
-    , cData = ['Stacked','Stream','Expanded']
-    , controlLabels = {}
-    , transitionDuration = 250
-    ;
-
-  xAxis
-    .orient('bottom')
-    .tickPadding(7)
-    ;
-  yAxis
-    .orient((rightAlignYAxis) ? 'right' : 'left')
-    ;
-
-  controls.updateState(false);
-  //============================================================
-
-
-  //============================================================
-  // Private Variables
-  //------------------------------------------------------------
-
-  var showTooltip = function(e, offsetElement) {
-    var left = e.pos[0] + ( offsetElement.offsetLeft || 0 ),
-        top = e.pos[1] + ( offsetElement.offsetTop || 0),
-        x = xAxis.tickFormat()(stacked.x()(e.point, e.pointIndex)),
-        y = yAxis.tickFormat()(stacked.y()(e.point, e.pointIndex)),
-        content = tooltip(e.series.key, x, y, e, chart);
-
-    nv.tooltip.show([left, top], content, e.value < 0 ? 'n' : 's', null, offsetElement);
-  };
-
-  //============================================================
-
-
-  function chart(selection) {
-    selection.each(function(data) {
-      var container = d3.select(this),
-          that = this;
-
-      var availableWidth = (width  || parseInt(container.style('width')) || 960)
-                             - margin.left - margin.right,
-          availableHeight = (height || parseInt(container.style('height')) || 400)
-                             - margin.top - margin.bottom;
-
-      chart.update = function() { container.transition().duration(transitionDuration).call(chart); };
-      chart.container = this;
-
-      //set state.disabled
-      state.disabled = data.map(function(d) { return !!d.disabled });
-
-      if (!defaultState) {
-        var key;
-        defaultState = {};
-        for (key in state) {
-          if (state[key] instanceof Array)
-            defaultState[key] = state[key].slice(0);
-          else
-            defaultState[key] = state[key];
-        }
-      }
-
-      //------------------------------------------------------------
-      // Display No Data message if there's nothing to show.
-
-      if (!data || !data.length || !data.filter(function(d) { return d.values.length }).length) {
-        var noDataText = container.selectAll('.nv-noData').data([noData]);
-
-        noDataText.enter().append('text')
-          .attr('class', 'nvd3 nv-noData')
-          .attr('dy', '-.7em')
-          .style('text-anchor', 'middle');
-
-        noDataText
-          .attr('x', margin.left + availableWidth / 2)
-          .attr('y', margin.top + availableHeight / 2)
-          .text(function(d) { return d });
-
-        return chart;
-      } else {
-        container.selectAll('.nv-noData').remove();
-      }
-
-      //------------------------------------------------------------
-
-
-      //------------------------------------------------------------
-      // Setup Scales
-
-      x = stacked.xScale();
-      y = stacked.yScale();
-
-      //------------------------------------------------------------
-
-
-      //------------------------------------------------------------
-      // Setup containers and skeleton of chart
-
-      var wrap = container.selectAll('g.nv-wrap.nv-stackedAreaChart').data([data]);
-      var gEnter = wrap.enter().append('g').attr('class', 'nvd3 nv-wrap nv-stackedAreaChart').append('g');
-      var g = wrap.select('g');
-
-      gEnter.append("rect").style("opacity",0);
-      gEnter.append('g').attr('class', 'nv-x nv-axis');
-      gEnter.append('g').attr('class', 'nv-y nv-axis');
-      gEnter.append('g').attr('class', 'nv-stackedWrap');
-      gEnter.append('g').attr('class', 'nv-legendWrap');
-      gEnter.append('g').attr('class', 'nv-controlsWrap');
-      gEnter.append('g').attr('class', 'nv-interactive');
-
-      g.select("rect").attr("width",availableWidth).attr("height",availableHeight);
-      //------------------------------------------------------------
-      // Legend
-
-      if (showLegend) {
-        var legendWidth = (showControls) ? availableWidth - controlWidth : availableWidth;
-        legend
-          .width(legendWidth);
-
-        g.select('.nv-legendWrap')
-            .datum(data)
-            .call(legend);
-
-        if ( margin.top != legend.height()) {
-          margin.top = legend.height();
-          availableHeight = (height || parseInt(container.style('height')) || 400)
-                             - margin.top - margin.bottom;
-        }
-
-        g.select('.nv-legendWrap')
-            .attr('transform', 'translate(' + (availableWidth-legendWidth) + ',' + (-margin.top) +')');
-      }
-
-      //------------------------------------------------------------
-
-
-      //------------------------------------------------------------
-      // Controls
-
-      if (showControls) {
-        var controlsData = [
-          {
-            key: controlLabels.stacked || 'Stacked',
-            metaKey: 'Stacked',
-            disabled: stacked.style() != 'stack',
-            style: 'stack'
-          },
-          {
-            key: controlLabels.stream || 'Stream',
-            metaKey: 'Stream',
-            disabled: stacked.style() != 'stream',
-            style: 'stream'
-          },
-          {
-            key: controlLabels.expanded || 'Expanded',
-            metaKey: 'Expanded',
-            disabled: stacked.style() != 'expand',
-            style: 'expand'
-          },
-          {
-            key: controlLabels.stack_percent || 'Stack %',
-            metaKey: 'Stack_Percent',
-            disabled: stacked.style() != 'stack_percent',
-            style: 'stack_percent'
-          }
-        ];
-
-        controlWidth = (cData.length/3) * 260;
-
-        controlsData = controlsData.filter(function(d) {
-          return cData.indexOf(d.metaKey) !== -1;
-        })
-
-        controls
-          .width( controlWidth )
-          .color(['#444', '#444', '#444']);
-
-        g.select('.nv-controlsWrap')
-            .datum(controlsData)
-            .call(controls);
-
-
-        if ( margin.top != Math.max(controls.height(), legend.height()) ) {
-          margin.top = Math.max(controls.height(), legend.height());
-          availableHeight = (height || parseInt(container.style('height')) || 400)
-                             - margin.top - margin.bottom;
-        }
-
-
-        g.select('.nv-controlsWrap')
-            .attr('transform', 'translate(0,' + (-margin.top) +')');
-      }
-
-      //------------------------------------------------------------
-
-
-      wrap.attr('transform', 'translate(' + margin.left + ',' + margin.top + ')');
-
-      if (rightAlignYAxis) {
-          g.select(".nv-y.nv-axis")
-              .attr("transform", "translate(" + availableWidth + ",0)");
-      }
-
-      //------------------------------------------------------------
-      // Main Chart Component(s)
-
-      //------------------------------------------------------------
-      //Set up interactive layer
-      if (useInteractiveGuideline) {
-        interactiveLayer
-           .width(availableWidth)
-           .height(availableHeight)
-           .margin({left: margin.left, top: margin.top})
-           .svgContainer(container)
-           .xScale(x);
-        wrap.select(".nv-interactive").call(interactiveLayer);
-      }
-
-      stacked
-        .width(availableWidth)
-        .height(availableHeight)
-
-      var stackedWrap = g.select('.nv-stackedWrap')
-          .datum(data);
-
-      stackedWrap.transition().call(stacked);
-
-      //------------------------------------------------------------
-
-
-      //------------------------------------------------------------
-      // Setup Axes
-
-      if (showXAxis) {
-        xAxis
-          .scale(x)
-          .ticks( availableWidth / 100 )
-          .tickSize( -availableHeight, 0);
-
-        g.select('.nv-x.nv-axis')
-            .attr('transform', 'translate(0,' + availableHeight + ')');
-
-        g.select('.nv-x.nv-axis')
-          .transition().duration(0)
-            .call(xAxis);
-      }
-
-      if (showYAxis) {
-        yAxis
-          .scale(y)
-          .ticks(stacked.offset() == 'wiggle' ? 0 : availableHeight / 36)
-          .tickSize(-availableWidth, 0)
-          .setTickFormat( (stacked.style() == 'expand' || stacked.style() == 'stack_percent')
-                ? d3.format('%') : yAxisTickFormat);
-
-        g.select('.nv-y.nv-axis')
-          .transition().duration(0)
-            .call(yAxis);
-      }
-
-      //------------------------------------------------------------
-
-
-      //============================================================
-      // Event Handling/Dispatching (in chart's scope)
-      //------------------------------------------------------------
-
-      stacked.dispatch.on('areaClick.toggle', function(e) {
-        if (data.filter(function(d) { return !d.disabled }).length === 1)
-          data.forEach(function(d) {
-            d.disabled = false;
-          });
-        else
-          data.forEach(function(d,i) {
-            d.disabled = (i != e.seriesIndex);
-          });
-
-        state.disabled = data.map(function(d) { return !!d.disabled });
-        dispatch.stateChange(state);
-
-        chart.update();
-      });
-
-      legend.dispatch.on('stateChange', function(newState) {
-        state.disabled = newState.disabled;
-        dispatch.stateChange(state);
-        chart.update();
-      });
-
-      controls.dispatch.on('legendClick', function(d,i) {
-        if (!d.disabled) return;
-
-        controlsData = controlsData.map(function(s) {
-          s.disabled = true;
-          return s;
-        });
-        d.disabled = false;
-
-        stacked.style(d.style);
-
-
-        state.style = stacked.style();
-        dispatch.stateChange(state);
-
-        chart.update();
-      });
-
-
-      interactiveLayer.dispatch.on('elementMousemove', function(e) {
-          stacked.clearHighlights();
-          var singlePoint, pointIndex, pointXLocation, allData = [];
-          data
-          .filter(function(series, i) {
-            series.seriesIndex = i;
-            return !series.disabled;
-          })
-          .forEach(function(series,i) {
-              pointIndex = nv.interactiveBisect(series.values, e.pointXValue, chart.x());
-              stacked.highlightPoint(i, pointIndex, true);
-              var point = series.values[pointIndex];
-              if (typeof point === 'undefined') return;
-              if (typeof singlePoint === 'undefined') singlePoint = point;
-              if (typeof pointXLocation === 'undefined') pointXLocation = chart.xScale()(chart.x()(point,pointIndex));
-
-              //If we are in 'expand' mode, use the stacked percent value instead of raw value.
-              var tooltipValue = (stacked.style() == 'expand') ? point.display.y : chart.y()(point,pointIndex);
-              allData.push({
-                  key: series.key,
-                  value: tooltipValue,
-                  color: color(series,series.seriesIndex),
-                  stackedValue: point.display
-              });
-          });
-
-          allData.reverse();
-
-          //Highlight the tooltip entry based on which stack the mouse is closest to.
-          if (allData.length > 2) {
-            var yValue = chart.yScale().invert(e.mouseY);
-            var yDistMax = Infinity, indexToHighlight = null;
-            allData.forEach(function(series,i) {
-
-               //To handle situation where the stacked area chart is negative, we need to use absolute values
-               //when checking if the mouse Y value is within the stack area.
-               yValue = Math.abs(yValue);
-               var stackedY0 = Math.abs(series.stackedValue.y0);
-               var stackedY = Math.abs(series.stackedValue.y);
-               if ( yValue >= stackedY0 && yValue <= (stackedY + stackedY0))
-               {
-                  indexToHighlight = i;
-                  return;
-               }
-            });
-            if (indexToHighlight != null)
-               allData[indexToHighlight].highlight = true;
-          }
-
-          var xValue = xAxis.tickFormat()(chart.x()(singlePoint,pointIndex));
-
-          //If we are in 'expand' mode, force the format to be a percentage.
-          var valueFormatter = (stacked.style() == 'expand') ?
-               function(d,i) {return d3.format(".1%")(d);} :
-               function(d,i) {return yAxis.tickFormat()(d); };
-          interactiveLayer.tooltip
-                  .position({left: pointXLocation + margin.left, top: e.mouseY + margin.top})
-                  .chartContainer(that.parentNode)
-                  .enabled(tooltips)
-                  .valueFormatter(valueFormatter)
-                  .data(
-                      {
-                        value: xValue,
-                        series: allData
-                      }
-                  )();
-
-          interactiveLayer.renderGuideLine(pointXLocation);
-
-      });
-
-      interactiveLayer.dispatch.on("elementMouseout",function(e) {
-          dispatch.tooltipHide();
-          stacked.clearHighlights();
-      });
-
-
-      dispatch.on('tooltipShow', function(e) {
-        if (tooltips) showTooltip(e, that.parentNode);
-      });
-
-      // Update chart from a state object passed to event handler
-      dispatch.on('changeState', function(e) {
-
-        if (typeof e.disabled !== 'undefined') {
-          data.forEach(function(series,i) {
-            series.disabled = e.disabled[i];
-          });
-
-          state.disabled = e.disabled;
-        }
-
-        if (typeof e.style !== 'undefined') {
-          stacked.style(e.style);
-        }
-
-        chart.update();
-      });
-
-    });
-
-
-    return chart;
-  }
-
-
-  //============================================================
-  // Event Handling/Dispatching (out of chart's scope)
-  //------------------------------------------------------------
-
-  stacked.dispatch.on('tooltipShow', function(e) {
-    //disable tooltips when value ~= 0
-    //// TODO: consider removing points from voronoi that have 0 value instead of this hack
-    /*
-    if (!Math.round(stacked.y()(e.point) * 100)) {  // 100 will not be good for very small numbers... will have to think about making this valu dynamic, based on data range
-      setTimeout(function() { d3.selectAll('.point.hover').classed('hover', false) }, 0);
-      return false;
-    }
-   */
-
-    e.pos = [e.pos[0] + margin.left, e.pos[1] + margin.top],
-    dispatch.tooltipShow(e);
-  });
-
-  stacked.dispatch.on('tooltipHide', function(e) {
-    dispatch.tooltipHide(e);
-  });
-
-  dispatch.on('tooltipHide', function() {
-    if (tooltips) nv.tooltip.cleanup();
-  });
-
-  //============================================================
-
-
-  //============================================================
-  // Expose Public Variables
-  //------------------------------------------------------------
-
-  // expose chart's sub-components
-  chart.dispatch = dispatch;
-  chart.stacked = stacked;
-  chart.legend = legend;
-  chart.controls = controls;
-  chart.xAxis = xAxis;
-  chart.yAxis = yAxis;
-  chart.interactiveLayer = interactiveLayer;
-
-  d3.rebind(chart, stacked, 'x', 'y', 'size', 'xScale', 'yScale', 'xDomain', 'yDomain', 'xRange', 'yRange', 'sizeDomain', 'interactive', 'useVoronoi', 'offset', 'order', 'style', 'clipEdge', 'forceX', 'forceY', 'forceSize', 'interpolate');
-
-  chart.options = nv.utils.optionsFunc.bind(chart);
-
-  chart.margin = function(_) {
-    if (!arguments.length) return margin;
-    margin.top    = typeof _.top    != 'undefined' ? _.top    : margin.top;
-    margin.right  = typeof _.right  != 'undefined' ? _.right  : margin.right;
-    margin.bottom = typeof _.bottom != 'undefined' ? _.bottom : margin.bottom;
-    margin.left   = typeof _.left   != 'undefined' ? _.left   : margin.left;
-    return chart;
-  };
-
-  chart.width = function(_) {
-    if (!arguments.length) return width;
-    width = _;
-    return chart;
-  };
-
-  chart.height = function(_) {
-    if (!arguments.length) return height;
-    height = _;
-    return chart;
-  };
-
-  chart.color = function(_) {
-    if (!arguments.length) return color;
-    color = nv.utils.getColor(_);
-    legend.color(color);
-    stacked.color(color);
-    return chart;
-  };
-
-  chart.showControls = function(_) {
-    if (!arguments.length) return showControls;
-    showControls = _;
-    return chart;
-  };
-
-  chart.showLegend = function(_) {
-    if (!arguments.length) return showLegend;
-    showLegend = _;
-    return chart;
-  };
-
-  chart.showXAxis = function(_) {
-    if (!arguments.length) return showXAxis;
-    showXAxis = _;
-    return chart;
-  };
-
-  chart.showYAxis = function(_) {
-    if (!arguments.length) return showYAxis;
-    showYAxis = _;
-    return chart;
-  };
-
-  chart.rightAlignYAxis = function(_) {
-    if(!arguments.length) return rightAlignYAxis;
-    rightAlignYAxis = _;
-    yAxis.orient( (_) ? 'right' : 'left');
-    return chart;
-  };
-
-  chart.useInteractiveGuideline = function(_) {
-    if(!arguments.length) return useInteractiveGuideline;
-    useInteractiveGuideline = _;
-    if (_ === true) {
-       chart.interactive(false);
-       chart.useVoronoi(false);
-    }
-    return chart;
-  };
-
-  chart.tooltip = function(_) {
-    if (!arguments.length) return tooltip;
-    tooltip = _;
-    return chart;
-  };
-
-  chart.tooltips = function(_) {
-    if (!arguments.length) return tooltips;
-    tooltips = _;
-    return chart;
-  };
-
-  chart.tooltipContent = function(_) {
-    if (!arguments.length) return tooltip;
-    tooltip = _;
-    return chart;
-  };
-
-  chart.state = function(_) {
-    if (!arguments.length) return state;
-    state = _;
-    return chart;
-  };
-
-  chart.defaultState = function(_) {
-    if (!arguments.length) return defaultState;
-    defaultState = _;
-    return chart;
-  };
-
-  chart.noData = function(_) {
-    if (!arguments.length) return noData;
-    noData = _;
-    return chart;
-  };
-
-  chart.transitionDuration = function(_) {
-    if (!arguments.length) return transitionDuration;
-    transitionDuration = _;
-    return chart;
-  };
-
-  chart.controlsData = function(_) {
-    if (!arguments.length) return cData;
-    cData = _;
-    return chart;
-  };
-
-  chart.controlLabels = function(_) {
-    if (!arguments.length) return controlLabels;
-    if (typeof _ !== 'object') return controlLabels;
-    controlLabels = _;
-    return chart;
-  };
-
-  yAxis.setTickFormat = yAxis.tickFormat;
-
-  yAxis.tickFormat = function(_) {
-    if (!arguments.length) return yAxisTickFormat;
-    yAxisTickFormat = _;
-    return yAxis;
-  };
-
-
-  //============================================================
-
-  return chart;
-}
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/nv.d3.css b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/nv.d3.css
deleted file mode 100755
index cae83482..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/nv.d3.css
+++ /dev/null
@@ -1,769 +0,0 @@
-
-/********************
- * HTML CSS
- */
-
-
-.chartWrap {
-  margin: 0;
-  padding: 0;
-  overflow: hidden;
-}
-
-/********************
-  Box shadow and border radius styling
-*/
-.nvtooltip.with-3d-shadow, .with-3d-shadow .nvtooltip {
-  -moz-box-shadow: 0 5px 10px rgba(0,0,0,.2);
-  -webkit-box-shadow: 0 5px 10px rgba(0,0,0,.2);
-  box-shadow: 0 5px 10px rgba(0,0,0,.2);
-
-  -webkit-border-radius: 6px;
-  -moz-border-radius: 6px;
-  border-radius: 6px;
-}
-
-/********************
- * TOOLTIP CSS
- */
-
-.nvtooltip {
-  position: absolute;
-  background-color: rgba(255,255,255,1.0);
-  padding: 1px;
-  border: 1px solid rgba(0,0,0,.2);
-  z-index: 10000;
-
-  font-family: Arial;
-  font-size: 13px;
-  text-align: left;
-  pointer-events: none;
-
-  white-space: nowrap;
-
-  -webkit-touch-callout: none;
-  -webkit-user-select: none;
-  -khtml-user-select: none;
-  -moz-user-select: none;
-  -ms-user-select: none;
-  user-select: none;
-}
-
-/*Give tooltips that old fade in transition by
-    putting a "with-transitions" class on the container div.
-*/
-.nvtooltip.with-transitions, .with-transitions .nvtooltip {
-  transition: opacity 250ms linear;
-  -moz-transition: opacity 250ms linear;
-  -webkit-transition: opacity 250ms linear;
-
-  transition-delay: 250ms;
-  -moz-transition-delay: 250ms;
-  -webkit-transition-delay: 250ms;
-}
-
-.nvtooltip.x-nvtooltip,
-.nvtooltip.y-nvtooltip {
-  padding: 8px;
-}
-
-.nvtooltip h3 {
-  margin: 0;
-  padding: 4px 14px;
-  line-height: 18px;
-  font-weight: normal;
-  background-color: rgba(247,247,247,0.75);
-  text-align: center;
-
-  border-bottom: 1px solid #ebebeb;
-
-  -webkit-border-radius: 5px 5px 0 0;
-  -moz-border-radius: 5px 5px 0 0;
-  border-radius: 5px 5px 0 0;
-}
-
-.nvtooltip p {
-  margin: 0;
-  padding: 5px 14px;
-  text-align: center;
-}
-
-.nvtooltip span {
-  display: inline-block;
-  margin: 2px 0;
-}
-
-.nvtooltip table {
-  margin: 6px;
-  border-spacing:0;
-}
-
-
-.nvtooltip table td {
-  padding: 2px 9px 2px 0;
-  vertical-align: middle;
-}
-
-.nvtooltip table td.key {
-  font-weight:normal;
-}
-.nvtooltip table td.value {
-  text-align: right;
-  font-weight: bold;
-}
-
-.nvtooltip table tr.highlight td {
-  padding: 1px 9px 1px 0;
-  border-bottom-style: solid;
-  border-bottom-width: 1px;
-  border-top-style: solid;
-  border-top-width: 1px;
-}
-
-.nvtooltip table td.legend-color-guide div {
-  width: 8px;
-  height: 8px;
-  vertical-align: middle;
-}
-
-.nvtooltip .footer {
-  padding: 3px;
-  text-align: center;
-}
-
-
-.nvtooltip-pending-removal {
-  position: absolute;
-  pointer-events: none;
-}
-
-
-/********************
- * SVG CSS
- */
-
-
-svg {
-  -webkit-touch-callout: none;
-  -webkit-user-select: none;
-  -khtml-user-select: none;
-  -moz-user-select: none;
-  -ms-user-select: none;
-  user-select: none;
-  /* Trying to get SVG to act like a greedy block in all browsers */
-  display: block;
-  width:100%;
-  height:100%;
-}
-
-
-svg text {
-  font: normal 12px Arial;
-}
-
-svg .title {
- font: bold 14px Arial;
-}
-
-.nvd3 .nv-background {
-  fill: white;
-  fill-opacity: 0;
-  /*
-  pointer-events: none;
-  */
-}
-
-.nvd3.nv-noData {
-  font-size: 18px;
-  font-weight: bold;
-}
-
-
-/**********
-*  Brush
-*/
-
-.nv-brush .extent {
-  fill-opacity: .125;
-  shape-rendering: crispEdges;
-}
-
-
-
-/**********
-*  Legend
-*/
-
-.nvd3 .nv-legend .nv-series {
-  cursor: pointer;
-}
-
-.nvd3 .nv-legend .disabled circle {
-  fill-opacity: 0;
-}
-
-
-
-/**********
-*  Axes
-*/
-.nvd3 .nv-axis {
-  pointer-events:none;
-}
-
-.nvd3 .nv-axis path {
-  fill: none;
-  stroke: #000;
-  stroke-opacity: .75;
-  shape-rendering: crispEdges;
-}
-
-.nvd3 .nv-axis path.domain {
-  stroke-opacity: .75;
-}
-
-.nvd3 .nv-axis.nv-x path.domain {
-  stroke-opacity: 0;
-}
-
-.nvd3 .nv-axis line {
-  fill: none;
-  stroke: #e5e5e5;
-  shape-rendering: crispEdges;
-}
-
-.nvd3 .nv-axis .zero line,
-/*this selector may not be necessary*/ .nvd3 .nv-axis line.zero {
-  stroke-opacity: .75;
-}
-
-.nvd3 .nv-axis .nv-axisMaxMin text {
-  font-weight: bold;
-}
-
-.nvd3 .x  .nv-axis .nv-axisMaxMin text,
-.nvd3 .x2 .nv-axis .nv-axisMaxMin text,
-.nvd3 .x3 .nv-axis .nv-axisMaxMin text {
-  text-anchor: middle
-}
-
-
-
-/**********
-*  Brush
-*/
-
-.nv-brush .resize path {
-  fill: #eee;
-  stroke: #666;
-}
-
-
-
-/**********
-*  Bars
-*/
-
-.nvd3 .nv-bars .negative rect {
-    zfill: brown;
-}
-
-.nvd3 .nv-bars rect {
-  zfill: steelblue;
-  fill-opacity: .75;
-
-  transition: fill-opacity 250ms linear;
-  -moz-transition: fill-opacity 250ms linear;
-  -webkit-transition: fill-opacity 250ms linear;
-}
-
-.nvd3 .nv-bars rect.hover {
-  fill-opacity: 1;
-}
-
-.nvd3 .nv-bars .hover rect {
-  fill: lightblue;
-}
-
-.nvd3 .nv-bars text {
-  fill: rgba(0,0,0,0);
-}
-
-.nvd3 .nv-bars .hover text {
-  fill: rgba(0,0,0,1);
-}
-
-
-/**********
-*  Bars
-*/
-
-.nvd3 .nv-multibar .nv-groups rect,
-.nvd3 .nv-multibarHorizontal .nv-groups rect,
-.nvd3 .nv-discretebar .nv-groups rect {
-  stroke-opacity: 0;
-
-  transition: fill-opacity 250ms linear;
-  -moz-transition: fill-opacity 250ms linear;
-  -webkit-transition: fill-opacity 250ms linear;
-}
-
-.nvd3 .nv-multibar .nv-groups rect:hover,
-.nvd3 .nv-multibarHorizontal .nv-groups rect:hover,
-.nvd3 .nv-discretebar .nv-groups rect:hover {
-  fill-opacity: 1;
-}
-
-.nvd3 .nv-discretebar .nv-groups text,
-.nvd3 .nv-multibarHorizontal .nv-groups text {
-  font-weight: bold;
-  fill: rgba(0,0,0,1);
-  stroke: rgba(0,0,0,0);
-}
-
-/***********
-*  Pie Chart
-*/
-
-.nvd3.nv-pie path {
-  stroke-opacity: 0;
-  transition: fill-opacity 250ms linear, stroke-width 250ms linear, stroke-opacity 250ms linear;
-  -moz-transition: fill-opacity 250ms linear, stroke-width 250ms linear, stroke-opacity 250ms linear;
-  -webkit-transition: fill-opacity 250ms linear, stroke-width 250ms linear, stroke-opacity 250ms linear;
-
-}
-
-.nvd3.nv-pie .nv-slice text {
-  stroke: #000;
-  stroke-width: 0;
-}
-
-.nvd3.nv-pie path {
-  stroke: #fff;
-  stroke-width: 1px;
-  stroke-opacity: 1;
-}
-
-.nvd3.nv-pie .hover path {
-  fill-opacity: .7;
-}
-.nvd3.nv-pie .nv-label {
-  pointer-events: none;
-}
-.nvd3.nv-pie .nv-label rect {
-  fill-opacity: 0;
-  stroke-opacity: 0;
-}
-
-/**********
-* Lines
-*/
-
-.nvd3 .nv-groups path.nv-line {
-  fill: none;
-  stroke-width: 1.5px;
-  /*
-  stroke-linecap: round;
-  shape-rendering: geometricPrecision;
-
-  transition: stroke-width 250ms linear;
-  -moz-transition: stroke-width 250ms linear;
-  -webkit-transition: stroke-width 250ms linear;
-
-  transition-delay: 250ms
-  -moz-transition-delay: 250ms;
-  -webkit-transition-delay: 250ms;
-  */
-}
-
-.nvd3 .nv-groups path.nv-line.nv-thin-line {
-  stroke-width: 1px;
-}
-
-
-.nvd3 .nv-groups path.nv-area {
-  stroke: none;
-  /*
-  stroke-linecap: round;
-  shape-rendering: geometricPrecision;
-
-  stroke-width: 2.5px;
-  transition: stroke-width 250ms linear;
-  -moz-transition: stroke-width 250ms linear;
-  -webkit-transition: stroke-width 250ms linear;
-
-  transition-delay: 250ms
-  -moz-transition-delay: 250ms;
-  -webkit-transition-delay: 250ms;
-  */
-}
-
-.nvd3 .nv-line.hover path {
-  stroke-width: 6px;
-}
-
-/*
-.nvd3.scatter .groups .point {
-  fill-opacity: 0.1;
-  stroke-opacity: 0.1;
-}
-  */
-
-.nvd3.nv-line .nvd3.nv-scatter .nv-groups .nv-point {
-  fill-opacity: 0;
-  stroke-opacity: 0;
-}
-
-.nvd3.nv-scatter.nv-single-point .nv-groups .nv-point {
-  fill-opacity: .5 !important;
-  stroke-opacity: .5 !important;
-}
-
-
-.with-transitions .nvd3 .nv-groups .nv-point {
-  transition: stroke-width 250ms linear, stroke-opacity 250ms linear;
-  -moz-transition: stroke-width 250ms linear, stroke-opacity 250ms linear;
-  -webkit-transition: stroke-width 250ms linear, stroke-opacity 250ms linear;
-
-}
-
-.nvd3.nv-scatter .nv-groups .nv-point.hover,
-.nvd3 .nv-groups .nv-point.hover {
-  stroke-width: 7px;
-  fill-opacity: .95 !important;
-  stroke-opacity: .95 !important;
-}
-
-
-.nvd3 .nv-point-paths path {
-  stroke: #aaa;
-  stroke-opacity: 0;
-  fill: #eee;
-  fill-opacity: 0;
-}
-
-
-
-.nvd3 .nv-indexLine {
-  cursor: ew-resize;
-}
-
-
-/**********
-* Distribution
-*/
-
-.nvd3 .nv-distribution {
-  pointer-events: none;
-}
-
-
-
-/**********
-*  Scatter
-*/
-
-/* **Attempting to remove this for useVoronoi(false), need to see if it's required anywhere
-.nvd3 .nv-groups .nv-point {
-  pointer-events: none;
-}
-*/
-
-.nvd3 .nv-groups .nv-point.hover {
-  stroke-width: 20px;
-  stroke-opacity: .5;
-}
-
-.nvd3 .nv-scatter .nv-point.hover {
-  fill-opacity: 1;
-}
-
-/*
-.nv-group.hover .nv-point {
-  fill-opacity: 1;
-}
-*/
-
-
-/**********
-*  Stacked Area
-*/
-
-.nvd3.nv-stackedarea path.nv-area {
-  fill-opacity: .7;
-  /*
-  stroke-opacity: .65;
-  fill-opacity: 1;
-  */
-  stroke-opacity: 0;
-
-  transition: fill-opacity 250ms linear, stroke-opacity 250ms linear;
-  -moz-transition: fill-opacity 250ms linear, stroke-opacity 250ms linear;
-  -webkit-transition: fill-opacity 250ms linear, stroke-opacity 250ms linear;
-
-  /*
-  transition-delay: 500ms;
-  -moz-transition-delay: 500ms;
-  -webkit-transition-delay: 500ms;
-  */
-
-}
-
-.nvd3.nv-stackedarea path.nv-area.hover {
-  fill-opacity: .9;
-  /*
-  stroke-opacity: .85;
-  */
-}
-/*
-.d3stackedarea .groups path {
-  stroke-opacity: 0;
-}
-  */
-
-
-
-.nvd3.nv-stackedarea .nv-groups .nv-point {
-  stroke-opacity: 0;
-  fill-opacity: 0;
-}
-
-/*
-.nvd3.nv-stackedarea .nv-groups .nv-point.hover {
-  stroke-width: 20px;
-  stroke-opacity: .75;
-  fill-opacity: 1;
-}*/
-
-
-
-/**********
-*  Line Plus Bar
-*/
-
-.nvd3.nv-linePlusBar .nv-bar rect {
-  fill-opacity: .75;
-}
-
-.nvd3.nv-linePlusBar .nv-bar rect:hover {
-  fill-opacity: 1;
-}
-
-
-/**********
-*  Bullet
-*/
-
-.nvd3.nv-bullet { font: 10px sans-serif; }
-.nvd3.nv-bullet .nv-measure { fill-opacity: .8; }
-.nvd3.nv-bullet .nv-measure:hover { fill-opacity: 1; }
-.nvd3.nv-bullet .nv-marker { stroke: #000; stroke-width: 2px; }
-.nvd3.nv-bullet .nv-markerTriangle { stroke: #000; fill: #fff; stroke-width: 1.5px; }
-.nvd3.nv-bullet .nv-tick line { stroke: #666; stroke-width: .5px; }
-.nvd3.nv-bullet .nv-range.nv-s0 { fill: #eee; }
-.nvd3.nv-bullet .nv-range.nv-s1 { fill: #ddd; }
-.nvd3.nv-bullet .nv-range.nv-s2 { fill: #ccc; }
-.nvd3.nv-bullet .nv-title { font-size: 14px; font-weight: bold; }
-.nvd3.nv-bullet .nv-subtitle { fill: #999; }
-
-
-.nvd3.nv-bullet .nv-range {
-  fill: #bababa;
-  fill-opacity: .4;
-}
-.nvd3.nv-bullet .nv-range:hover {
-  fill-opacity: .7;
-}
-
-
-
-/**********
-* Sparkline
-*/
-
-.nvd3.nv-sparkline path {
-  fill: none;
-}
-
-.nvd3.nv-sparklineplus g.nv-hoverValue {
-  pointer-events: none;
-}
-
-.nvd3.nv-sparklineplus .nv-hoverValue line {
-  stroke: #333;
-  stroke-width: 1.5px;
- }
-
-.nvd3.nv-sparklineplus,
-.nvd3.nv-sparklineplus g {
-  pointer-events: all;
-}
-
-.nvd3 .nv-hoverArea {
-  fill-opacity: 0;
-  stroke-opacity: 0;
-}
-
-.nvd3.nv-sparklineplus .nv-xValue,
-.nvd3.nv-sparklineplus .nv-yValue {
-  /*
-  stroke: #666;
-  */
-  stroke-width: 0;
-  font-size: .9em;
-  font-weight: normal;
-}
-
-.nvd3.nv-sparklineplus .nv-yValue {
-  stroke: #f66;
-}
-
-.nvd3.nv-sparklineplus .nv-maxValue {
-  stroke: #2ca02c;
-  fill: #2ca02c;
-}
-
-.nvd3.nv-sparklineplus .nv-minValue {
-  stroke: #d62728;
-  fill: #d62728;
-}
-
-.nvd3.nv-sparklineplus .nv-currentValue {
-  /*
-  stroke: #444;
-  fill: #000;
-  */
-  font-weight: bold;
-  font-size: 1.1em;
-}
-
-/**********
-* historical stock
-*/
-
-.nvd3.nv-ohlcBar .nv-ticks .nv-tick {
-  stroke-width: 2px;
-}
-
-.nvd3.nv-ohlcBar .nv-ticks .nv-tick.hover {
-  stroke-width: 4px;
-}
-
-.nvd3.nv-ohlcBar .nv-ticks .nv-tick.positive {
- stroke: #2ca02c;
-}
-
-.nvd3.nv-ohlcBar .nv-ticks .nv-tick.negative {
- stroke: #d62728;
-}
-
-.nvd3.nv-historicalStockChart .nv-axis .nv-axislabel {
-  font-weight: bold;
-}
-
-.nvd3.nv-historicalStockChart .nv-dragTarget {
-  fill-opacity: 0;
-  stroke: none;
-  cursor: move;
-}
-
-.nvd3 .nv-brush .extent {
-  /*
-  cursor: ew-resize !important;
-  */
-  fill-opacity: 0 !important;
-}
-
-.nvd3 .nv-brushBackground rect {
-  stroke: #000;
-  stroke-width: .4;
-  fill: #fff;
-  fill-opacity: .7;
-}
-
-
-
-/**********
-* Indented Tree
-*/
-
-
-/**
- * TODO: the following 3 selectors are based on classes used in the example.  I should either make them standard and leave them here, or move to a CSS file not included in the library
- */
-.nvd3.nv-indentedtree .name {
-  margin-left: 5px;
-}
-
-.nvd3.nv-indentedtree .clickable {
-  color: #08C;
-  cursor: pointer;
-}
-
-.nvd3.nv-indentedtree span.clickable:hover {
-  color: #005580;
-  text-decoration: underline;
-}
-
-
-.nvd3.nv-indentedtree .nv-childrenCount {
-  display: inline-block;
-  margin-left: 5px;
-}
-
-.nvd3.nv-indentedtree .nv-treeicon {
-  cursor: pointer;
-  /*
-  cursor: n-resize;
-  */
-}
-
-.nvd3.nv-indentedtree .nv-treeicon.nv-folded {
-  cursor: pointer;
-  /*
-  cursor: s-resize;
-  */
-}
-
-/**********
-* Parallel Coordinates
-*/
-
-.nvd3 .background path {
-  fill: none;
-  stroke: #ccc;
-  stroke-opacity: .4;
-  shape-rendering: crispEdges;
-}
-
-.nvd3 .foreground path {
-  fill: none;
-  stroke: steelblue;
-  stroke-opacity: .7;
-}
-
-.nvd3 .brush .extent {
-  fill-opacity: .3;
-  stroke: #fff;
-  shape-rendering: crispEdges;
-}
-
-.nvd3 .axis line, .axis path {
-  fill: none;
-  stroke: #000;
-  shape-rendering: crispEdges;
-}
-
-.nvd3 .axis text {
-  text-shadow: 0 1px 0 #fff;
-}
-
-/****
-Interactive Layer
-*/
-.nvd3 .nv-interactiveGuideLine {
-  pointer-events:none;
-}
-.nvd3 line.nv-guideline {
-  stroke: #ccc;
-}
\ No newline at end of file
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/outro.js b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/outro.js
deleted file mode 100755
index 158693a0..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/outro.js
+++ /dev/null
@@ -1 +0,0 @@
-})();
\ No newline at end of file
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/tooltip.js b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/tooltip.js
deleted file mode 100755
index 46e5a816..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/tooltip.js
+++ /dev/null
@@ -1,490 +0,0 @@
-/* Tooltip rendering model for nvd3 charts.
-window.nv.models.tooltip is the updated,new way to render tooltips.
-
-window.nv.tooltip.show is the old tooltip code.
-window.nv.tooltip.* also has various helper methods.
-*/
-(function() {
-  "use strict";
-  window.nv.tooltip = {};
-
-  /* Model which can be instantiated to handle tooltip rendering.
-    Example usage: 
-    var tip = nv.models.tooltip().gravity('w').distance(23)
-                .data(myDataObject);
-
-        tip();    //just invoke the returned function to render tooltip.
-  */
-  window.nv.models.tooltip = function() {
-        var content = null    //HTML contents of the tooltip.  If null, the content is generated via the data variable.
-        ,   data = null     /* Tooltip data. If data is given in the proper format, a consistent tooltip is generated.
-        Format of data:
-        {
-            key: "Date",
-            value: "August 2009", 
-            series: [
-                    {
-                        key: "Series 1",
-                        value: "Value 1",
-                        color: "#000"
-                    },
-                    {
-                        key: "Series 2",
-                        value: "Value 2",
-                        color: "#00f"
-                    }
-            ]
-
-        }
-
-        */
-        ,   gravity = 'w'   //Can be 'n','s','e','w'. Determines how tooltip is positioned.
-        ,   distance = 50   //Distance to offset tooltip from the mouse location.
-        ,   snapDistance = 25   //Tolerance allowed before tooltip is moved from its current position (creates 'snapping' effect)
-        ,   fixedTop = null //If not null, this fixes the top position of the tooltip.
-        ,   classes = null  //Attaches additional CSS classes to the tooltip DIV that is created.
-        ,   chartContainer = null   //Parent DIV, of the SVG Container that holds the chart.
-        ,   tooltipElem = null  //actual DOM element representing the tooltip.
-        ,   position = {left: null, top: null}      //Relative position of the tooltip inside chartContainer.
-        ,   enabled = true  //True -> tooltips are rendered. False -> don't render tooltips.
-        //Generates a unique id when you create a new tooltip() object
-        ,   id = "nvtooltip-" + Math.floor(Math.random() * 100000)
-        ;
-
-        //CSS class to specify whether element should not have mouse events.
-        var  nvPointerEventsClass = "nv-pointer-events-none";
-
-        //Format function for the tooltip values column
-        var valueFormatter = function(d,i) {
-            return d;
-        };
-
-        //Format function for the tooltip header value.
-        var headerFormatter = function(d) {
-            return d;
-        };
-
-        //By default, the tooltip model renders a beautiful table inside a DIV.
-        //You can override this function if a custom tooltip is desired.
-        var contentGenerator = function(d) {
-            if (content != null) return content;
-
-            if (d == null) return '';
-
-            var table = d3.select(document.createElement("table"));
-            var theadEnter = table.selectAll("thead")
-                .data([d])
-                .enter().append("thead");
-            theadEnter.append("tr")
-                .append("td")
-                .attr("colspan",3)
-                .append("strong")
-                    .classed("x-value",true)
-                    .html(headerFormatter(d.value));
-
-            var tbodyEnter = table.selectAll("tbody")
-                .data([d])
-                .enter().append("tbody");
-            var trowEnter = tbodyEnter.selectAll("tr")
-                .data(function(p) { return p.series})
-                .enter()
-                .append("tr")
-                .classed("highlight", function(p) { return p.highlight})
-                ;
-
-            trowEnter.append("td")
-                .classed("legend-color-guide",true)
-                .append("div")
-                    .style("background-color", function(p) { return p.color});
-            trowEnter.append("td")
-                .classed("key",true)
-                .html(function(p) {return p.key});
-            trowEnter.append("td")
-                .classed("value",true)
-                .html(function(p,i) { return valueFormatter(p.value,i) });
-
-
-            trowEnter.selectAll("td").each(function(p) {
-                if (p.highlight) {
-                    var opacityScale = d3.scale.linear().domain([0,1]).range(["#fff",p.color]);
-                    var opacity = 0.6;
-                    d3.select(this)
-                        .style("border-bottom-color", opacityScale(opacity))
-                        .style("border-top-color", opacityScale(opacity))
-                        ;
-                }
-            });
-
-            var html = table.node().outerHTML;
-            if (d.footer !== undefined)
-                html += "<div class='footer'>" + d.footer + "</div>";
-            return html;
-
-        };
-
-        var dataSeriesExists = function(d) {
-            if (d && d.series && d.series.length > 0) return true;
-
-            return false;
-        };
-
-        //In situations where the chart is in a 'viewBox', re-position the tooltip based on how far chart is zoomed.
-        function convertViewBoxRatio() {
-            if (chartContainer) {
-              var svg = d3.select(chartContainer);
-              if (svg.node().tagName !== "svg") {
-                 svg = svg.select("svg");
-              }
-              var viewBox = (svg.node()) ? svg.attr('viewBox') : null;
-              if (viewBox) {
-                viewBox = viewBox.split(' ');
-                var ratio = parseInt(svg.style('width')) / viewBox[2];
-                
-                position.left = position.left * ratio;
-                position.top  = position.top * ratio;
-              }
-            }
-        }
-
-        //Creates new tooltip container, or uses existing one on DOM.
-        function getTooltipContainer(newContent) {
-            var body;
-            if (chartContainer)
-                body = d3.select(chartContainer);
-            else
-                body = d3.select("body");
-
-            var container = body.select(".nvtooltip");
-            if (container.node() === null) {
-                //Create new tooltip div if it doesn't exist on DOM.
-                container = body.append("div")
-                    .attr("class", "nvtooltip " + (classes? classes: "xy-tooltip"))
-                    .attr("id",id)
-                    ;
-            }
-        
-
-            container.node().innerHTML = newContent;
-            container.style("top",0).style("left",0).style("opacity",0);
-            container.selectAll("div, table, td, tr").classed(nvPointerEventsClass,true)
-            container.classed(nvPointerEventsClass,true);
-            return container.node();
-        }
-
-        
-
-        //Draw the tooltip onto the DOM.
-        function nvtooltip() {
-            if (!enabled) return;
-            if (!dataSeriesExists(data)) return;
-
-            convertViewBoxRatio();
-
-            var left = position.left;
-            var top = (fixedTop != null) ? fixedTop : position.top;
-            var container = getTooltipContainer(contentGenerator(data));
-            tooltipElem = container;
-            if (chartContainer) {
-                var svgComp = chartContainer.getElementsByTagName("svg")[0];
-                var boundRect = (svgComp) ? svgComp.getBoundingClientRect() : chartContainer.getBoundingClientRect();
-                var svgOffset = {left:0,top:0};
-                if (svgComp) {
-                    var svgBound = svgComp.getBoundingClientRect();
-                    var chartBound = chartContainer.getBoundingClientRect();
-                    var svgBoundTop = svgBound.top;
-                    
-                    //Defensive code. Sometimes, svgBoundTop can be a really negative
-                    //  number, like -134254. That's a bug. 
-                    //  If such a number is found, use zero instead. FireFox bug only
-                    if (svgBoundTop < 0) {
-                        var containerBound = chartContainer.getBoundingClientRect();
-                        svgBoundTop = (Math.abs(svgBoundTop) > containerBound.height) ? 0 : svgBoundTop;
-                    } 
-                    svgOffset.top = Math.abs(svgBoundTop - chartBound.top);
-                    svgOffset.left = Math.abs(svgBound.left - chartBound.left);
-                }
-                //If the parent container is an overflow <div> with scrollbars, subtract the scroll offsets.
-                //You need to also add any offset between the <svg> element and its containing <div>
-                //Finally, add any offset of the containing <div> on the whole page.
-                left += chartContainer.offsetLeft + svgOffset.left - 2*chartContainer.scrollLeft;
-                top += chartContainer.offsetTop + svgOffset.top - 2*chartContainer.scrollTop;
-            }
-
-            if (snapDistance && snapDistance > 0) {
-                top = Math.floor(top/snapDistance) * snapDistance;
-            }
-
-            nv.tooltip.calcTooltipPosition([left,top], gravity, distance, container);
-            return nvtooltip;
-        };
-
-        nvtooltip.nvPointerEventsClass = nvPointerEventsClass;
-        
-        nvtooltip.content = function(_) {
-            if (!arguments.length) return content;
-            content = _;
-            return nvtooltip;
-        };
-
-        //Returns tooltipElem...not able to set it.
-        nvtooltip.tooltipElem = function() {
-            return tooltipElem;
-        };
-
-        nvtooltip.contentGenerator = function(_) {
-            if (!arguments.length) return contentGenerator;
-            if (typeof _ === 'function') {
-                contentGenerator = _;
-            }
-            return nvtooltip;
-        };
-
-        nvtooltip.data = function(_) {
-            if (!arguments.length) return data;
-            data = _;
-            return nvtooltip;
-        };
-
-        nvtooltip.gravity = function(_) {
-            if (!arguments.length) return gravity;
-            gravity = _;
-            return nvtooltip;
-        };
-
-        nvtooltip.distance = function(_) {
-            if (!arguments.length) return distance;
-            distance = _;
-            return nvtooltip;
-        };
-
-        nvtooltip.snapDistance = function(_) {
-            if (!arguments.length) return snapDistance;
-            snapDistance = _;
-            return nvtooltip;
-        };
-
-        nvtooltip.classes = function(_) {
-            if (!arguments.length) return classes;
-            classes = _;
-            return nvtooltip;
-        };
-
-        nvtooltip.chartContainer = function(_) {
-            if (!arguments.length) return chartContainer;
-            chartContainer = _;
-            return nvtooltip;
-        };
-
-        nvtooltip.position = function(_) {
-            if (!arguments.length) return position;
-            position.left = (typeof _.left !== 'undefined') ? _.left : position.left;
-            position.top = (typeof _.top !== 'undefined') ? _.top : position.top;
-            return nvtooltip;
-        };
-
-        nvtooltip.fixedTop = function(_) {
-            if (!arguments.length) return fixedTop;
-            fixedTop = _;
-            return nvtooltip;
-        };
-
-        nvtooltip.enabled = function(_) {
-            if (!arguments.length) return enabled;
-            enabled = _;
-            return nvtooltip;
-        };
-
-        nvtooltip.valueFormatter = function(_) {
-            if (!arguments.length) return valueFormatter;
-            if (typeof _ === 'function') {
-                valueFormatter = _;
-            }
-            return nvtooltip;
-        };
-
-        nvtooltip.headerFormatter = function(_) {
-            if (!arguments.length) return headerFormatter;
-            if (typeof _ === 'function') {
-                headerFormatter = _;
-            }
-            return nvtooltip;
-        };
-
-        //id() is a read-only function. You can't use it to set the id.
-        nvtooltip.id = function() {
-            return id;
-        };
-
-
-        return nvtooltip;
-  };
-
-
-  //Original tooltip.show function. Kept for backward compatibility.
-  // pos = [left,top]
-  nv.tooltip.show = function(pos, content, gravity, dist, parentContainer, classes) {
-      
-        //Create new tooltip div if it doesn't exist on DOM.
-        var   container = document.createElement('div');
-        container.className = 'nvtooltip ' + (classes ? classes : 'xy-tooltip');
-
-        var body = parentContainer;
-        if ( !parentContainer || parentContainer.tagName.match(/g|svg/i)) {
-            //If the parent element is an SVG element, place tooltip in the <body> element.
-            body = document.getElementsByTagName('body')[0];
-        }
-   
-        container.style.left = 0;
-        container.style.top = 0;
-        container.style.opacity = 0;
-        container.innerHTML = content;
-        body.appendChild(container);
-        
-        //If the parent container is an overflow <div> with scrollbars, subtract the scroll offsets.
-        if (parentContainer) {
-           pos[0] = pos[0] - parentContainer.scrollLeft;
-           pos[1] = pos[1] - parentContainer.scrollTop;
-        }
-        nv.tooltip.calcTooltipPosition(pos, gravity, dist, container);
-  };
-
-  //Looks up the ancestry of a DOM element, and returns the first NON-svg node.
-  nv.tooltip.findFirstNonSVGParent = function(Elem) {
-            while(Elem.tagName.match(/^g|svg$/i) !== null) {
-                Elem = Elem.parentNode;
-            }
-            return Elem;
-  };
-
-  //Finds the total offsetTop of a given DOM element.
-  //Looks up the entire ancestry of an element, up to the first relatively positioned element.
-  nv.tooltip.findTotalOffsetTop = function ( Elem, initialTop ) {
-                var offsetTop = initialTop;
-                
-                do {
-                    if( !isNaN( Elem.offsetTop ) ) {
-                        offsetTop += (Elem.offsetTop);
-                    }
-                } while( Elem = Elem.offsetParent );
-                return offsetTop;
-  };
-
-  //Finds the total offsetLeft of a given DOM element.
-  //Looks up the entire ancestry of an element, up to the first relatively positioned element.
-  nv.tooltip.findTotalOffsetLeft = function ( Elem, initialLeft) {
-                var offsetLeft = initialLeft;
-                
-                do {
-                    if( !isNaN( Elem.offsetLeft ) ) {
-                        offsetLeft += (Elem.offsetLeft);
-                    }
-                } while( Elem = Elem.offsetParent );
-                return offsetLeft;
-  };
-
-  //Global utility function to render a tooltip on the DOM.
-  //pos = [left,top] coordinates of where to place the tooltip, relative to the SVG chart container.
-  //gravity = how to orient the tooltip
-  //dist = how far away from the mouse to place tooltip
-  //container = tooltip DIV
-  nv.tooltip.calcTooltipPosition = function(pos, gravity, dist, container) {
-
-            var height = parseInt(container.offsetHeight),
-                width = parseInt(container.offsetWidth),
-                windowWidth = nv.utils.windowSize().width,
-                windowHeight = nv.utils.windowSize().height,
-                scrollTop = window.pageYOffset,
-                scrollLeft = window.pageXOffset,
-                left, top;
-
-            windowHeight = window.innerWidth >= document.body.scrollWidth ? windowHeight : windowHeight - 16;
-            windowWidth = window.innerHeight >= document.body.scrollHeight ? windowWidth : windowWidth - 16;
-
-            gravity = gravity || 's';
-            dist = dist || 20;
-
-            var tooltipTop = function ( Elem ) {
-                return nv.tooltip.findTotalOffsetTop(Elem, top);
-            };
-
-            var tooltipLeft = function ( Elem ) {
-                return nv.tooltip.findTotalOffsetLeft(Elem,left);
-            };
-
-            switch (gravity) {
-              case 'e':
-                left = pos[0] - width - dist;
-                top = pos[1] - (height / 2);
-                var tLeft = tooltipLeft(container);
-                var tTop = tooltipTop(container);
-                if (tLeft < scrollLeft) left = pos[0] + dist > scrollLeft ? pos[0] + dist : scrollLeft - tLeft + left;
-                if (tTop < scrollTop) top = scrollTop - tTop + top;
-                if (tTop + height > scrollTop + windowHeight) top = scrollTop + windowHeight - tTop + top - height;
-                break;
-              case 'w':
-                left = pos[0] + dist;
-                top = pos[1] - (height / 2);
-                var tLeft = tooltipLeft(container);
-                var tTop = tooltipTop(container);
-                if (tLeft + width > windowWidth) left = pos[0] - width - dist;
-                if (tTop < scrollTop) top = scrollTop + 5;
-                if (tTop + height > scrollTop + windowHeight) top = scrollTop + windowHeight - tTop + top - height;
-                break;
-              case 'n':
-                left = pos[0] - (width / 2) - 5;
-                top = pos[1] + dist;
-                var tLeft = tooltipLeft(container);
-                var tTop = tooltipTop(container);
-                if (tLeft < scrollLeft) left = scrollLeft + 5;
-                if (tLeft + width > windowWidth) left = left - width/2 + 5;
-                if (tTop + height > scrollTop + windowHeight) top = scrollTop + windowHeight - tTop + top - height;
-                break;
-              case 's':
-                left = pos[0] - (width / 2);
-                top = pos[1] - height - dist;
-                var tLeft = tooltipLeft(container);
-                var tTop = tooltipTop(container);
-                if (tLeft < scrollLeft) left = scrollLeft + 5;
-                if (tLeft + width > windowWidth) left = left - width/2 + 5;
-                if (scrollTop > tTop) top = scrollTop;
-                break;
-              case 'none':
-                left = pos[0];
-                top = pos[1] - dist;
-                var tLeft = tooltipLeft(container);
-                var tTop = tooltipTop(container);
-                break;
-            }
-
-
-            container.style.left = left+'px';
-            container.style.top = top+'px';
-            container.style.opacity = 1;
-            container.style.position = 'absolute'; 
-
-            return container;
-    };
-
-    //Global utility function to remove tooltips from the DOM.
-    nv.tooltip.cleanup = function() {
-
-              // Find the tooltips, mark them for removal by this class (so others cleanups won't find it)
-              var tooltips = document.getElementsByClassName('nvtooltip');
-              var purging = [];
-              while(tooltips.length) {
-                purging.push(tooltips[0]);
-                tooltips[0].style.transitionDelay = '0 !important';
-                tooltips[0].style.opacity = 0;
-                tooltips[0].className = 'nvtooltip-pending-removal';
-              }
-
-              setTimeout(function() {
-
-                  while (purging.length) {
-                     var removeMe = purging.pop();
-                      removeMe.parentNode.removeChild(removeMe);
-                  }
-            }, 500);
-    };
-
-})();
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/utils.js b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/utils.js
deleted file mode 100755
index 7b99e1da..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/src/utils.js
+++ /dev/null
@@ -1,152 +0,0 @@
-
-nv.utils.windowSize = function() {
-    // Sane defaults
-    var size = {width: 640, height: 480};
-
-    // Earlier IE uses Doc.body
-    if (document.body && document.body.offsetWidth) {
-        size.width = document.body.offsetWidth;
-        size.height = document.body.offsetHeight;
-    }
-
-    // IE can use depending on mode it is in
-    if (document.compatMode=='CSS1Compat' &&
-        document.documentElement &&
-        document.documentElement.offsetWidth ) {
-        size.width = document.documentElement.offsetWidth;
-        size.height = document.documentElement.offsetHeight;
-    }
-
-    // Most recent browsers use
-    if (window.innerWidth && window.innerHeight) {
-        size.width = window.innerWidth;
-        size.height = window.innerHeight;
-    }
-    return (size);
-};
-
-
-
-// Easy way to bind multiple functions to window.onresize
-// TODO: give a way to remove a function after its bound, other than removing all of them
-nv.utils.windowResize = function(fun){
-  if (fun === undefined) return;
-  var oldresize = window.onresize;
-
-  window.onresize = function(e) {
-    if (typeof oldresize == 'function') oldresize(e);
-    fun(e);
-  }
-}
-
-// Backwards compatible way to implement more d3-like coloring of graphs.
-// If passed an array, wrap it in a function which implements the old default
-// behavior
-nv.utils.getColor = function(color) {
-    if (!arguments.length) return nv.utils.defaultColor(); //if you pass in nothing, get default colors back
-
-    if( Object.prototype.toString.call( color ) === '[object Array]' )
-        return function(d, i) { return d.color || color[i % color.length]; };
-    else
-        return color;
-        //can't really help it if someone passes rubbish as color
-}
-
-// Default color chooser uses the index of an object as before.
-nv.utils.defaultColor = function() {
-    var colors = d3.scale.category20().range();
-    return function(d, i) { return d.color || colors[i % colors.length] };
-}
-
-
-// Returns a color function that takes the result of 'getKey' for each series and
-// looks for a corresponding color from the dictionary,
-nv.utils.customTheme = function(dictionary, getKey, defaultColors) {
-  getKey = getKey || function(series) { return series.key }; // use default series.key if getKey is undefined
-  defaultColors = defaultColors || d3.scale.category20().range(); //default color function
-
-  var defIndex = defaultColors.length; //current default color (going in reverse)
-
-  return function(series, index) {
-    var key = getKey(series);
-
-    if (!defIndex) defIndex = defaultColors.length; //used all the default colors, start over
-
-    if (typeof dictionary[key] !== "undefined")
-      return (typeof dictionary[key] === "function") ? dictionary[key]() : dictionary[key];
-    else
-      return defaultColors[--defIndex]; // no match in dictionary, use default color
-  }
-}
-
-
-
-// From the PJAX example on d3js.org, while this is not really directly needed
-// it's a very cool method for doing pjax, I may expand upon it a little bit,
-// open to suggestions on anything that may be useful
-nv.utils.pjax = function(links, content) {
-  d3.selectAll(links).on("click", function() {
-    history.pushState(this.href, this.textContent, this.href);
-    load(this.href);
-    d3.event.preventDefault();
-  });
-
-  function load(href) {
-    d3.html(href, function(fragment) {
-      var target = d3.select(content).node();
-      target.parentNode.replaceChild(d3.select(fragment).select(content).node(), target);
-      nv.utils.pjax(links, content);
-    });
-  }
-
-  d3.select(window).on("popstate", function() {
-    if (d3.event.state) load(d3.event.state);
-  });
-}
-
-/* For situations where we want to approximate the width in pixels for an SVG:text element.
-Most common instance is when the element is in a display:none; container. 
-Forumla is : text.length * font-size * constant_factor
-*/
-nv.utils.calcApproxTextWidth = function (svgTextElem) {
-    if (svgTextElem instanceof d3.selection) {
-        var fontSize = parseInt(svgTextElem.style("font-size").replace("px",""));
-        var textLength = svgTextElem.text().length;
-
-        return textLength * fontSize * 0.5; 
-    }
-    return 0;
-};
-
-/* Numbers that are undefined, null or NaN, convert them to zeros.
-*/
-nv.utils.NaNtoZero = function(n) {
-    if (typeof n !== 'number' 
-        || isNaN(n) 
-        || n === null
-        || n === Infinity) return 0;
-
-    return n;
-};
-
-/*
-Snippet of code you can insert into each nv.models.* to give you the ability to
-do things like:
-chart.options({
-  showXAxis: true,
-  tooltips: true
-});
-
-To enable in the chart:
-chart.options = nv.utils.optionsFunc.bind(chart);
-*/
-nv.utils.optionsFunc = function(args) {
-    if (args) {
-      d3.map(args).forEach((function(key,value) {
-        if (typeof this[key] === "function") {
-           this[key](value);
-        }
-      }).bind(this));
-    }
-    return this;
-};
\ No newline at end of file
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/test/ScatterChartTest.html b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/test/ScatterChartTest.html
deleted file mode 100755
index 464453d3..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/test/ScatterChartTest.html
+++ /dev/null
@@ -1,256 +0,0 @@
-<!DOCTYPE html>
-<meta charset="utf-8">
-
-<link href="../src/nv.d3.css" rel="stylesheet" type="text/css">
-<link href="teststyle.css" rel="stylesheet" type='text/css'>
-
-<body>
-<div style='position:relative;' class='with-transitions'>
-  <h3>Scatter chart tests</h3>
-  <div class='navigation'>
-          Tests:
-          <a href="lineChartTest.html">Line Chart</a>
-          <a href="stackedAreaChartTest.html">Stacked Area</a>
-          <a href="../examples/cumulativeLineChart.html">Cumulative Line</a>
-          <a href="ScatterChartTest.html">Scatter</a>
-          <a href="interactiveBisectTest.html">nv.interactiveBisect unit tests</a>
-  </div>
-  <div id="test1" class="chart third">
-    Normal - four series', all random (40 points)
-    <button>Select chart</button>
-    <svg></svg>
-  </div>
-  <div id="test2" class="chart third">
-    Normal - one series', all random (5 points), zero left margin
-    <button>Select chart</button>
-    <svg></svg>
-  </div>
-  <div id="test3" class="chart third">
-    Zero right margin, 200 points
-    <button>Select chart</button>
-    <svg></svg>
-  </div>
-  <div id="test4" class="chart third">
-    Bigger margins
-    <button>Select chart</button>
-    <svg></svg>
-  </div>
-  <div id="test5" class="chart third">
-    Zero data points
-    <button>Select chart</button>
-    <svg></svg>
-  </div>
-  <div id="test6" class="chart third">
-    One point.
-    <button>Select chart</button>
-    <svg></svg>
-  </div>
-  <div id="test7" class="chart third">
-    Two points
-    <button>Select chart</button>
-    <svg></svg>
-  </div>
-  <div id="test8" class="chart third">
-    Three series', one point each
-    <button>Select chart</button>
-    <svg></svg>
-  </div>
-  <div id="test9" class="chart third">
-    Three series', first one has zero points
-    <button>Select chart</button>
-    <svg></svg>
-  </div>
-  <div id="test10" class="chart third">
-    Lots of series
-    <button>Select chart</button>
-    <svg></svg>
-  </div>
-  <div id="test11" class="chart third">
-    Scatter plus line: y=2x + 0
-    <button>Select chart</button>
-    <svg></svg>
-  </div>
-  <div id="test12" class="chart third">
-    Scatter plus line: y=2x + 10;
-    <button>Select chart</button>
-    <svg></svg>
-  </div>
-  <div id="test13" class="chart third">
-    Scatter plus line: y=-0.5x + 1.0;
-    <button>Select chart</button>
-    <svg></svg>
-  </div>
-  <div id="test14" class="chart third">
-    Scatter chart: duplicate y values
-    <button>Select chart</button>
-    <svg></svg>
-  </div>
-  <div id="test15" class="chart third">
-    Scatter chart: duplicate x values
-    <button>Select chart</button>
-    <svg></svg>
-  </div>
-  <div id="test16" class="chart third">
-    Scatter chart: extremely small data points (1e-10)
-    <button>Select chart</button>
-    <svg></svg>
-  </div>
-
-
-</div>
-
-<script src="../lib/d3.v3.js"></script>
-<!--<script src="../lib/fisheye.js"></script>-->
-<script src="../nv.d3.js"></script>
-<script src="../src/tooltip.js"></script>
-<script src="../src/utils.js"></script>
-<script src="../src/models/legend.js"></script>
-<script src="../src/models/axis.js"></script>
-<script src="../src/models/distribution.js"></script>
-<script src="../src/models/scatter.js"></script>
-<script src="../src/models/scatterChart.js"></script>
-<script src="../src/models/scatterPlusLineChart.js"></script>
-<script src="testScript.js"></script>
-<script>
-
-defaultChartTest("test1", randomData(4,40));
-defaultChartTest("test2", randomData(1,5), {left:0});
-defaultChartTest("test3", randomData(2,200), {right: 0});
-defaultChartTest("test4", randomData(2, 8), {top:40, right: 90, bottom: 150, left: 150});
-defaultChartTest("test5", randomData(0,0));
-defaultChartTest("test6", randomData(1,1));
-defaultChartTest("test7", randomData(1,2));
-defaultChartTest("test8", randomData(3,1));
-defaultChartTest("test9", [
-  {key: "Group 0", values: []},
-  {key: "Group 1", values: [{x:1, y:1}]} 
-]);
-
-defaultChartTest("test10", randomData(30,2));
-
-scatterPlusLineTest("test11", randomDataSloped(2,0));
-scatterPlusLineTest("test12", randomDataSloped(2,10));
-scatterPlusLineTest("test13", randomDataSloped(-0.5,1));
-defaultChartTest("test14", [
-{key: "Duplicate Y",
-     values: [
-        {x: 0, y: 10}, {x:1, y:10},{x:2, y:10},{x:3, y:10}
-     ]
-    }
-]);
-
-defaultChartTest("test15",[
-   {key: "Duplicate X",
-      area: true,
-      values: [
-        {x: 4, y: 10},
-        {x: 4, y: 11},
-        {x: 4, y: 12},
-        {x: 4, y: 13}
-      ]
-    }
-]);
-
-defaultChartTest("test16",tinyPoints());
-
-function defaultChartTest(container, data, margin) {
-  nv.addGraph(function() {
-    var chart;
-    chart = nv.models.scatterChart()
-                  .showDistX(true).showDistY(true)
-                  ;
-    chart.xAxis.tickFormat(d3.format('.02f'));
-    chart.yAxis.tickFormat(d3.format('.02f'));
-    if (margin) {
-      chart.margin(margin);
-    }
-    chart.tooltipContent(function(key) {
-        return "<h3>" + key + "</h3>";
-    });
-    d3.select('#' + container + ' svg').datum(data).transition().duration(500).call(chart);
-    nv.utils.windowResize(chart.update);
-    return chart;
-  });
-}
-
-function scatterPlusLineTest(container, data) {
-  nv.addGraph(function() {
-    var chart;
-    chart = nv.models.scatterPlusLineChart()
-                  .showDistX(true).showDistY(true);
-    chart.xAxis.tickFormat(d3.format('.02f'));
-    chart.yAxis.tickFormat(d3.format('.02f'));
-    chart.tooltipContent(function(key) {
-        return "<h3>" + key + "</h3>";
-    });
-    d3.select('#' + container + ' svg').datum(data).transition().duration(500).call(chart);
-    nv.utils.windowResize(chart.update);
-    return chart;
-  });
-}
-
-
-function randomData(groups, points) { //# groups,# points per group
-  var data = [],
-      shapes = ['circle', 'cross', 'triangle-up', 'triangle-down', 'diamond', 'square'],
-      random = d3.random.normal();
-
-  for (i = 0; i < groups; i++) {
-    data.push({
-      key: 'Group ' + i,
-      values: []
-    });
-
-    for (j = 0; j < points; j++) {
-      data[i].values.push({
-        x: random(), 
-        y: random(), 
-        size: Math.random(), 
-        shape: shapes[j % 6]
-      });
-    }
-  }
-
-  return data;
-}
-
-
-function randomDataSloped(slope,intercept) { //# groups,# points per group
-  var data = [],
-      shapes = ['circle', 'cross', 'triangle-up', 'triangle-down', 'diamond', 'square'],
-      random = d3.random.normal();
-
-  var groups = 2, points = 10;
-  for (i = 0; i < groups; i++) {
-    data.push({
-      key: 'Group ' + i,
-      values: [],
-      slope: slope,
-      intercept: intercept
-    });
-
-    for (j = 0; j < points; j++) {
-      data[i].values.push({
-        x: random(), 
-        y: random(), 
-        size: Math.random(), 
-        shape: shapes[j % 6]
-      });
-    }
-  }
-
-  return data;
-}
-
-
-function tinyPoints() {
-  var rval = {key: "Tiny points", values: []};
-  for(var i =1; i < 20; i++) {
-    rval.values.push({
-       x: Math.random() * 1e-10,
-       y: Math.random() * 1e-10
-    });
-  }
-  return [rval];
-}
-</script>
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/test/interactiveBisectTest.html b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/test/interactiveBisectTest.html
deleted file mode 100755
index 9cbf5aa9..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/test/interactiveBisectTest.html
+++ /dev/null
@@ -1,158 +0,0 @@
-<!DOCTYPE html>
-<meta charset="utf-8">
-
-<link href="../src/nv.d3.css" rel="stylesheet" type="text/css">
-<link href="teststyle.css" rel="stylesheet" type='text/css'>
-
-<body>
-  <h3>Unit tests for nv.interactiveBisect - this function is important for rendering tooltips and the guideline on charts.</h3>
-  <div class='navigation'>
-      Tests:
-      <a href="lineChartTest.html">Line Chart</a>
-      <a href="stackedAreaChartTest.html">Stacked Area</a>
-      <a href="../examples/cumulativeLineChart.html">Cumulative Line</a>
-  </div>
-
-<script src="../lib/d3.v3.js"></script>
-<script src="../nv.d3.js"></script>
-<script src="../src/interactiveLayer.js"></script>
-
-<script>
-function runTest(description, dataArray, searchVal, expectedResult, xAccessor) {
-    var result = nv.interactiveBisect(dataArray, searchVal, xAccessor);
-    var content = "";
-    if (result === expectedResult) {
-        content = "PASSED: " + description;
-    }
-    else {
-        content = "FAILED: " + description;
-    }
-
-    var node = document.createElement("div");
-    node.innerHTML = content;
-    document.getElementsByTagName("body")[0].appendChild(node);
-}
-
-var x = function(d) {return d;};
-
-runTest("Basic test",
-      [0,1,2,3,4,5],
-      3,
-      3,
-      x
-  );
-
-runTest("Basic test - zero bound",
-      [0,1,2,3,4,5],
-      0,
-      0,
-      x
-  );
-
-runTest("Basic test - length bound",
-      [0,1,2,3,4,5],
-      5,
-      5,
-      x
-  );
-
-runTest("Basic test - negative number",
-      [0,1,2,3,4,5],
-      -4,
-      0,
-      x
-  );
-
-runTest("Basic test - past the end",
-      [0,1,2,3,4,5],
-      10,
-      5,
-      x
-  );
-
-runTest("Floating point number",
-      [0,1,2,3,4,5],
-      0.34,
-      0,
-      x
-  );
-
-runTest("Floating point number part 2",
-      [0,1,2,3,4,5],
-      1.50001,
-      2,
-      x
-  );
-
-runTest("Fibonacci - existing item search",
-      [0,1,1,2,3,5,8,13,21,34],
-      8,
-      6,
-      x
-  );
-
-runTest("Fibonacci - inbetween item (left)",
-      [0,1,1,2,3,5,8,13,21,34],
-      15,
-      7,
-      x
-  );
-
-runTest("Fibonacci - inbetween item (right)",
-      [0,1,1,2,3,5,8,13,21,34],
-      20,
-      8,
-      x
-  );
-
-x = function(d,i) { return i};
-
-runTest("xAccessor is index mode - existing item",
-      [0,1,1,2,3,5,8,13,21,34],
-      7,
-      7,
-      x
-  );
-
-runTest("xAccessor is index mode - inbetween item",
-      [0,1,1,2,3,5,8,13,21,34],
-      7.3,
-      7,
-      x
-  );
-
-runTest("xAccessor is index mode - inbetween item part 2",
-      [0,1,1,2,3,5,8,13,21,34],
-      7.500001,
-      8,
-      x
-  );
-
-runTest("Empty array",
-      [],
-      4,
-      0,
-      x
-  );
-
-runTest("Single element array",
-      [0],
-      0,
-      0,
-      x
-  );
-
-runTest("Single element array - negative bound",
-      [0],
-      -10,
-      0,
-      x
-  );
-
-runTest("Single element array - past the end",
-      [0],
-      1,
-      0,
-      x
-  );
-</script>
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/test/lineChartTest.html b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/test/lineChartTest.html
deleted file mode 100755
index 88de3764..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/test/lineChartTest.html
+++ /dev/null
@@ -1,475 +0,0 @@
-<!DOCTYPE html>
-<meta charset="utf-8">
-
-<link href="../src/nv.d3.css" rel="stylesheet" type="text/css">
-<link href="teststyle.css" rel="stylesheet" type='text/css'>
-<style>
-#chart13, #chart14 {
-  overflow: scroll;
-  width: 500px;
-  height: 300px;
-}
-
-#chart13 svg, #chart14 svg {
-  width: 700px;
-  height: 400px;
-}
-</style>
-<body>
-  <h3>Line chart test cases - feel free to add more tests</h3>
-  <div style='position:relative;'>
-      <div class='navigation'>
-          Tests:
-          <a href="lineChartTest.html">Line Chart</a>
-          <a href="stackedAreaChartTest.html">Stacked Area</a>
-          <a href="../examples/cumulativeLineChart.html">Cumulative Line</a>
-          <a href="ScatterChartTest.html">Scatter</a>
-          <a href="pieChartTest.html">Pie chart</a>
-          <a href="realTimeChartTest.html">Real time test</a>
-          <a href="polylinearTest.html">Polylinear test</a>
-          <a href="interactiveBisectTest.html">nv.interactiveBisect unit tests</a>
-      </div>
-      <div class='chart full' id='chart1'>
-        Example of chart with many series', and new interactive guideline plus tooltip. A chunk of data was purposely removed
-        to show how the chart handles it.
-        <button>Select chart</button>
-        <svg></svg>
-      </div>
-      <div class='chart half with-transitions' id='chart2'>
-        Chart with old tooltip style (with-transitions).
-        <button>Select chart</button>
-        <svg></svg>
-      </div>
-      <div class='chart half' id='chart3'>
-        Chart with three data points.
-        <button>Select chart</button>
-        <svg></svg>
-      </div>
-      <div class='chart third' id='chart4'>
-        Chart where two series have different number of points.
-        <button>Select chart</button>
-        <svg></svg>
-      </div>
-       <div class='chart third' id='chart5'>
-        Chart with one point.
-        <button>Select chart</button>
-        <svg></svg>
-      </div>
-       <div class='chart third' id='chart6'>
-        Chart with 1000 points.
-        <button>Select chart</button>
-        <svg></svg>
-      </div>
-
-      <div class='chart third' id='chart7'>
-        Chart with no data.
-        <button>Select chart</button>
-        <svg></svg>
-      </div>
-       <div class='chart third' id='chart8'>
-        All points random. No order.
-        <button>Select chart</button>
-        <svg></svg>
-      </div>
-       <div class='chart third' id='chart9'>
-        Points do not increase linearly.
-        <button>Select chart</button>
-        <svg></svg>
-      </div>
-
-      <div class='chart third' id='chart10'>
-        Chart with 15 series'
-        <button>Select chart</button>
-        <svg></svg>
-      </div>
-       <div class='chart third' id='chart11'>
-        Data points go backwards
-        <button>Select chart</button>
-        <svg></svg>
-      </div>
-       <div class='chart third' id='chart12'>
-        Duplicate X coordinate points.
-        <button>Select chart</button>
-        <svg></svg>
-      </div>
-
-      <div class='chart third' id='chart16'>
-        Duplicate Y coordinate points.
-        <button>Select chart</button>
-        <svg></svg>
-      </div>
-
-      <div class='chart third' id='chart13'>
-        Chart in a overflow div with scrolls (new tooltips)
-        <button>Select chart</button>
-        <svg></svg>
-      </div>
-
-      <div class='chart third' id='chart14'>
-        Chart in a overflow div with scrolls (old tooltips)
-        <button>Select chart</button>
-        <svg></svg>
-      </div>
-
-      <div style='clear:both;'></div>
-      <div class='chart third' id='chart15'>
-        What if there are null, Infinity and NaN values in points?
-        <button>Select chart</button>
-        <svg></svg>
-      </div>
-      <div class='chart third' id='chart17'>
-        Chart with very small, 1e-10, points (old tooltips)
-        <button>Select chart</button>
-        <svg></svg>
-      </div>
-    </div>
-
-<script src="../lib/d3.v3.js"></script>
-<script src="../nv.d3.js"></script>
-<script src="../src/tooltip.js"></script>
-<script src="../src/utils.js"></script>
-<script src="../src/interactiveLayer.js"></script>
-<script src="../src/models/legend.js"></script>
-<script src="../src/models/axis.js"></script>
-<script src="../src/models/scatter.js"></script>
-<script src="../src/models/line.js"></script>
-<script src="../src/models/lineChart.js"></script>
-<script src="testScript.js"></script>
-<script>
-
-d3.select("body").on("keydown",function() {
-  if (d3.event.ctrlKey && d3.event.which === 75) {
-     alert("keydowned");
-  }
-});
-//------------ CHART 1 
-defaultChartConfig("chart1", dummyStocks(),true, true, {forceY:false});
-
-//-------------- CHART 2  --- Chart without the interactive guideline.
-nv.addGraph(function() {
-  var chart;
-  chart = nv.models.lineChart().useInteractiveGuideline(false);
-
-  chart
-      .x(function(d,i) { return d.x });
-
-
-  chart.xAxis // chart sub-models (ie. xAxis, yAxis, etc) when accessed directly, return themselves, not the parent chart, so need to chain separately
-      .tickFormat(d3.format(',.1f'));
-
-  chart.yAxis
-      .axisLabel('Voltage (v)')
-      .tickFormat(d3.format(',.4f'));
-
-  chart.showXAxis(true).showYAxis(true).rightAlignYAxis(true).margin({right: 90});
-
-  d3.select('#chart2 svg')
-      //.datum([]) //for testing noData
-      .datum(dummyStocks(50))
-      .transition().duration(500)
-      .call(chart);
-
-  nv.utils.windowResize(chart.update);
-
-  return chart;
-});
-
-defaultChartConfig("chart3", smallDataSet(3));
-defaultChartConfig("chart4", badDataSet());
-defaultChartConfig("chart5", smallDataSet(1));
-defaultChartConfig("chart6", normalDist());
-
-defaultChartConfig("chart7", smallDataSet(0));
-defaultChartConfig("chart8", allRandom(),false);
-defaultChartConfig("chart9", fibonacci());
-
-defaultChartConfig("chart10", lotsofSeries());
-defaultChartConfig("chart11", backwards(),false);
-defaultChartConfig("chart12", duplicateX(),false);
-defaultChartConfig("chart13",hyperbole(), true, false, {width: 700, height: 400});
-defaultChartConfig("chart14",hyperbole(), false, false, {width: 700, height: 400});
-defaultChartConfig("chart15", withNaNs());
-defaultChartConfig("chart16", duplicateY(), false);
-defaultChartConfig("chart17", tinyPoints(), false);
-
-function defaultChartConfig(containerid, data, guideline, useDates, auxOptions) {
-  if (auxOptions === undefined) auxOptions = {};
-  if (guideline === undefined) guideline = true;
-  nv.addGraph(function() {
-    var chart;
-    chart = nv.models.lineChart().useInteractiveGuideline(guideline);
-
-    chart
-        .x(function(d,i) { 
-          return d.x;
-        });
-
-    if (auxOptions.width) 
-      chart.width(auxOptions.width);
-
-    if (auxOptions.height)
-      chart.height(auxOptions.height);
-
-    if (auxOptions.forceY) 
-      chart.forceY([0]);
-
-    var formatter;
-    if (useDates !== undefined) {
-        formatter = function(d,i) {
-                var now = (new Date()).getTime() - 86400 * 1000 * 365;
-                now = new Date(now + d * 86400 * 1000);
-                return d3.time.format('%b %d %Y')(now );
-        }
-    }
-    else {
-        formatter = d3.format(",.1f");
-    }
-    chart.margin({right: 40});
-    chart.xAxis // chart sub-models (ie. xAxis, yAxis, etc) when accessed directly, return themselves, not the parent chart, so need to chain separately
-        .tickFormat(
-            formatter
-          );
-
-    chart.yAxis
-        .axisLabel('Voltage (v)')
-        .tickFormat(d3.format(',.2f'));
-
-
-    d3.select('#' + containerid + ' svg')
-        .datum(data)
-      .transition().duration(500)
-        .call(chart);
-
-    nv.utils.windowResize(chart.update);
-
-    return chart;
-  });
-}
-
-function sinAndCos() {
-  var sin = [],
-      cos = [],
-      rand = [],
-      rand2 = []
-      ;
-
-  var now = (new Date()).getTime();
-  for (var i = 0; i < 100; i++) {
-    sin.push({x: i, y: i % 10 == 5 ? null : Math.sin(i/10) }); //the nulls are to show how defined works
-    cos.push({x: i, y: .5 * Math.cos(i/10)});
-    rand.push({x:i, y: Math.random() / 10});
-    rand2.push({x: i, y: Math.cos(i/10) + Math.random() / 10 })
-  }
-
-  return [
-    {
-      area: true,
-      values: sin,
-      key: "Sine Wave",
-      color: "#ff7f0e"
-    },
-    {
-      values: cos,
-      key: "Cosine Wave",
-      color: "#2ca02c"
-    },
-    {
-      values: rand,
-      key: "Random Points",
-      color: "#2222ff"
-    }
-    ,
-    {
-      values: rand2,
-      key: "Random Cosine",
-      color: "#667711"
-    }
-  ];
-}
-
-function hyperbole() {
-  var series1 = [], series2 = [], series3 = [];
-  for(var i = 1; i < 100; i++) {
-      series1.push({x: i, y: 1 / i});
-      series2.push({x: i, y: 5 / i});
-      series3.push({x: i, y: -8 / i});
-  }
-
-  return [
-    {values: series1, key: "Series 1"},
-    {values: series2, key: "Series 2"},
-    {values: series3, key: "Series 3"}
-  ];
-}
-
-function smallDataSet(n) {
-  var series = [];
-  for(var i = 0; i < n; i++) {
-      series.push({x: i, y: i * 0.3 + 2})
-  }
-  return [
-    {values: series, key: "Line 1"}
-  ];
-}
-
-function badDataSet() {
-  var series1 = [], series2 = [];
-  for(var i =0; i < 30; i++) {
-    series1.push({x:i, y: i*0.3 + 12});
-  }
-  for(i = 0; i < 30; i += 5) {
-    series2.push({x:i, y: i*0.7 + 8});
-  }
-  return [
-      {values: series1, key:"Series 1"},
-      {values: series2, key:"Series 2"}
-  ];
-}
-
-function normalDist() {
-  var series1 = [], series2 = [];
-  for(var i = -500; i < 500; i += 1) {
-     var x = i / 100;
-     var y = 0.3989 * Math.pow(2.71, -0.5*x*x);
-     series1.push({x:i, y:y});
-     series2.push({x:i, y:y*2});
-  }
-  return [
-  {values: series1, key:"Normal 1", area:true},
-  {values: series2, key:"Normal 2"}];
-}
-
-
-function allRandom() {
-  var series = [];
-  for(var i = 0; i < 20; i++) {
-    series.push({x: Math.floor(Math.random()*20), y: Math.floor(Math.random()*20) });
-  }
-  return [{values: series,area:true, key: "Total Chaos"}];
-}
-
-function fibonacci() {
-  var series = [
-      {x:1, y:1},
-      {x:2, y:2.5},
-      {x:3, y:4},
-      {x:5, y:6.7},
-      {x:8, y:10.1},
-      {x:13, y:20.1},
-      {x:21, y:35.1},
-      {x:34, y:60.0},
-      {x:55, y:70.9},
-      {x:89, y:100.3}
-  ];
-
-  return [{values: series,area:true,color: "#22fb88", key: "Fibonacci"}];
-}
-
-function lotsofSeries() {
-  var rval = [];
-  for(var n = 0; n < 15; n++) {
-      var values = [];
-      var slope = Math.random() * 5;
-      for(var i =0; i < 30; i++) {
-          values.push(
-              {x: i,
-              y: i * slope + Math.random()*5}
-            );
-      }
-      var isArea = (Math.random() > 0.5);
-      rval.push({key: "Series " + n, area: isArea, values: values});
-  }
-  return rval;
-}
-
-function backwards() {
-  var series = [];
-  for(var i = 30; i >= 1; i--) {
-      series.push({x: i, y: Math.sqrt(i) });
-  }
-  return [{values: series, key: "Backwards series", area:true}];
-}
-
-function duplicateX() {
-  return [
-    {key: "Duplicate X",
-      area: true,
-      values: [
-        {x: 4, y: 10},
-        {x: 4, y: 11},
-        {x: 4, y: 12},
-        {x: 4, y: 13}
-      ]
-    }
-  ];
-}
-
-function duplicateY() {
-  return [
-    {key: "Duplicate Y",
-     values: [
-        {x: 0, y: 10}, {x:1, y:10},{x:2, y:10},{x:3, y:10}
-     ]
-    }
-  ];
-}
-
-function withNaNs() {
-  return [
-      {key: "NaN Points",
-        values: [
-            {x: 1, y: NaN},
-            {x: 2, y: undefined},
-            {x: 3, y: false},
-            {x: 4, y: null},
-            {x: 5, y: "Hello"},
-            {x: NaN, y: NaN},
-            {x: null, y: null},
-            {x: undefined, y: undefined},
-            {x: "Hello", y: "World"},
-            {x: Infinity, y: Infinity}
-        ]
-      }
-  ]
-}
-
-function tinyPoints() {
-  var rval = {key: "Tiny points", values: []};
-  for(var i =1; i < 20; i++) {
-    rval.values.push({
-       x: i,
-       y: Math.random() * 1e-10
-    });
-  }
-  return [rval];
-}
-
-function dummyStocks(numPoints) {
-  numPoints = numPoints || 200;
-  function volatileChart(key,startPrice, volatility, isArea) {
-     var rval = {key: key, values: []};
-     if (isArea) rval.area = true;
-     for(var i = 1; i < numPoints; i++) {
-
-        rval.values.push({x: i, y: (i > 110 && i < 130) ? null : startPrice});
-        var rnd = Math.random();
-        var changePct = 2 * volatility * rnd;
-        if ( changePct > volatility) {
-           changePct -= (2*volatility);
-        }
-
-        startPrice = startPrice + startPrice * changePct;
-
-     }
-     return rval;
-  }
-
-  var stocks = [];
-  stocks.push(volatileChart("APPL",5.00, 0.02));
-  stocks.push(volatileChart("GOOG", 6.01,0.024));
-  stocks.push(volatileChart("MSFT", 2.01, 0.012));
-  stocks.push(volatileChart("IBM US", 2.5, 0.08, true));
-  return stocks;
-}
-
-</script>
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/test/multiBarChartTest.html b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/test/multiBarChartTest.html
deleted file mode 100755
index 6242ff84..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/test/multiBarChartTest.html
+++ /dev/null
@@ -1,148 +0,0 @@
-<!DOCTYPE html>
-<meta charset="utf-8">
-
-<link href="../src/nv.d3.css" rel="stylesheet" type="text/css">
-<link href="teststyle.css" rel="stylesheet" type='text/css'>
-<body class='with-3d-shadow with-transitions'>
-  <h3>Multibar chart test cases - feel free to add more tests</h3>
-  <div class='navigation'>
-    <a href="../examples/multiBar.html">Multibar Stream example</a>
-  </div>
-  <div class='chart half' id="chart1">
-    Normal chart, with transition delay, and bar color set.
-    <svg></svg>
-  </div>
-  <div class='chart half' id="chart2">
-    Normal chart, no transitionDuration or delay, no bar color set.
-    <svg></svg>
-  </div>
-  <div class='chart half' id="chart3">
-    Chart with single series, no group spacing.
-    <svg></svg>
-  </div>
-  <div class='chart half' id="chart4">
-    Chart with 18 series, 7 data points per series.
-    <svg></svg>
-  </div>
-  <div class='chart third' id="chart5">
-    Chart with 1 data point
-    <svg></svg>
-  </div>
-  <div class='chart third' id="chart6">
-    Chart with 2 data points
-    <svg></svg>
-  </div>
-  <div class='chart third' id="chart7">
-    Chart with 0 data points
-    <svg></svg>
-  </div>
-
-<script src="../lib/d3.v3.js"></script>
-<script src="../nv.d3.js"></script>
-<script src="../src/tooltip.js"></script>
-<script src="../src/utils.js"></script>
-<script src="../src/models/legend.js"></script>
-<script src="../src/models/axis.js"></script>
-<script src="../src/models/multiBar.js"></script>
-<script src="../src/models/multiBarChart.js"></script>
-<script>
-
-
-var negative_test_data = new d3.range(0,3).map(function(d,i) { return {
-  key: 'Stream ' + i,
-  values: new d3.range(0,11).map( function(f,j) {
-    return { 
-             y: 10 + Math.random()*100 * (Math.floor(Math.random()*100)%2 ? 1 : -1),
-             x: j
-           }
-  })
-  };  
-});
-
-function dataFactory(seriesNum, perSeries) {
-   return new d3.range(0,seriesNum).map(function(d,i) { return {
-    key: 'Stream ' + i,
-    values: new d3.range(0,perSeries).map( function(f,j) {
-      return { 
-               y: 10 + Math.random()*100,
-               x: j
-             }
-    })
-    };  
-  });
-
-}
-
-
-
-defaultChartConfig("chart1", negative_test_data, {
-  barColor: d3.scale.category20().range(),
-  delay: 1200,
-  groupSpacing: 0.1,
-  reduceXTicks: false,
-  staggerLabels: true
-});
-
-defaultChartConfig("chart2", dataFactory(3,11), {
-  delay: 0,
-  transitionDuration:0,
-  groupSpacing: 0.2
-});
-
-defaultChartConfig("chart3",dataFactory(1,15),{
-  groupSpacing: 0,
-  delay:0
-});
-
-defaultChartConfig("chart4",dataFactory(18,7),{
-  delay:800
-});
-
-defaultChartConfig("chart5",dataFactory(1,1),{
-  delay:0
-});
-
-defaultChartConfig("chart6",dataFactory(1,2),{
-  delay:0
-});
-
-defaultChartConfig("chart7",dataFactory(0,0),{
-  delay:0
-});
-
-function defaultChartConfig(containerId, data, chartOptions) {
-  nv.addGraph(function() {
-      var chart;
-      chart = nv.models.multiBarChart()
-        .margin({bottom: 100})
-        .transitionDuration(300)
-        ;
-
-      chart.options(chartOptions);
-      chart.multibar
-        .hideable(true);
-
-      chart.xAxis
-          .axisLabel("Current Index")
-          .showMaxMin(true)
-          .tickFormat(d3.format(',0f'));
-
-      chart.yAxis
-          .tickFormat(d3.format(',.1f'));
-
-      d3.select('#' + containerId + ' svg')
-          .datum(data)
-         .call(chart);
-
-      nv.utils.windowResize(chart.update);
-
-      chart.dispatch.on('stateChange', function(e) { nv.log('New State:', JSON.stringify(e)); });
-
-      return chart;
-  });
-}
-
-
-
-
-</script>
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/test/pieChartTest.html b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/test/pieChartTest.html
deleted file mode 100755
index 8fef1af7..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/test/pieChartTest.html
+++ /dev/null
@@ -1,177 +0,0 @@
-<!DOCTYPE html>
-<meta charset="utf-8">
-<link href="../src/nv.d3.css" rel="stylesheet" type="text/css">
-<link href="teststyle.css" rel="stylesheet" type='text/css'>
-<style>
-
-body {
-  overflow-y:scroll;
-  font-family: Arial;
-}
-
-text {
-  font: 12px sans-serif;
-}
-
-</style>
-<body class='with-transitions'>
-<div class='navigation'>
-          Tests:
-          <a href="lineChartTest.html">Line Chart</a>
-          <a href="stackedAreaChartTest.html">Stacked Area</a>
-          <a href="../examples/cumulativeLineChart.html">Cumulative Line</a>
-          <a href="ScatterChartTest.html">Scatter</a>
-          <a href="realTimeChartTest.html">Real time test</a>
-  </div>
-<div class='chart third' id="test1">
-  <h2>Standard Pie Chart</h2>
-  <svg></svg>
-</div>
-
-<div class='chart third' id="test2">
-  <h2>Donut pie chart</h2>
-  <svg></svg>
-</div>
-
-<div class='chart third' id="test3">
-  <h2>Pie chart with 30 series'</h2>
-  <svg></svg>
-</div>
-
-<div class='chart third' id='test7'>
-  <h2>Pie chart with percent label type</h2>
-  <svg></svg>
-</div>
-
-<div class='chart third' id="test4">
-  <h2>Empty array passed in</h2>
-  <svg></svg>
-</div>
-
-<div class='chart third' id="test5">
-  <h2>Series' have only zero values</h2>
-  <svg></svg>
-</div>
-
-<div class='chart third' id="test6">
-  <h2>NaN, null, undefined values passed in</h2>
-  <svg></svg>
-</div>
-
-<script src="../lib/d3.v3.js"></script>
-<script src="../nv.d3.js"></script>
-<script src="../src/tooltip.js"></script>
-<script src="../src/models/legend.js"></script>
-<script src="../src/models/pie.js"></script>
-<script src="../src/models/pieChart.js"></script>
-<script src="../src/utils.js"></script>
-<script>
-
-var testdata = [
-    {
-      key: "One",
-      y: 5
-    },
-    {
-      key: "Two",
-      y: 2
-    },
-    {
-      key: "Three",
-      y: 9
-    },
-    {
-      key: "Four",
-      y: 7
-    },
-    {
-      key: "Five",
-      y: 4
-    },
-    {
-      key: "Six",
-      y: 3
-    },
-    {
-      key: "Seven",
-      y: .5
-    }
-  ];
-
-function thirtySeries() {
-  var data = [];
-  for(var i =0; i < 30; i++) {
-    data.push({
-      key: "Series-" + i,
-      y: Math.floor(Math.random() * 100)
-    });
-  }
-  return data;
-}
-
-function defaultChart(containerId, data, labelType) {
-  nv.addGraph(function() {
-      var width = 500,
-          height = 500;
-
-      var chart = nv.models.pieChart()
-          .x(function(d) { return d.key })
-          .y(function(d) { return d.y })
-          .color(d3.scale.category10().range())
-          .width(width)
-          .height(height)
-          .labelType(labelType)
-          ;
-
-        d3.select("#" + containerId + " svg")
-            .datum(data)
-          .transition().duration(1200)
-            .attr('width', width)
-            .attr('height', height)
-            .call(chart);
-
-      nv.utils.windowResize(chart.update);
-      return chart;
-  });
-}
-
-//Adds donut pie chart.
-nv.addGraph(function() {
-
-    var width = 500,
-        height = 500;
-
-    var chart = nv.models.pieChart()
-        .x(function(d) { return d.key })
-        .color(d3.scale.category10().range())
-        .width(width)
-        .height(height)
-        .donut(true);
-
-    chart.pie
-        .startAngle(function(d) { return d.startAngle/2 -Math.PI/2 })
-        .endAngle(function(d) { return d.endAngle/2 -Math.PI/2 });
-
-      d3.select("#test2 svg")
-          .datum(testdata)
-        .transition().duration(1200)
-          .attr('width', width)
-          .attr('height', height)
-          .call(chart);
-    nv.utils.windowResize(chart.update);
-    return chart;
-});
-
-defaultChart("test1", testdata);
-defaultChart("test3", thirtySeries());
-defaultChart("test4",[]);
-defaultChart("test5",[{key: "Zero series", y: 0}, {key: "Zero series 2", y: 0}]);
-defaultChart("test6", [
-      {key: "Undefined", y: undefined},
-      {key: "Nan", y: NaN},
-      {key: "null", y: null},
-      {key: "zero", y: 0}
-  ])
-
-defaultChart("test7",testdata, "percent");
-</script>
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/test/polylinearTest.html b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/test/polylinearTest.html
deleted file mode 100755
index eef88b34..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/test/polylinearTest.html
+++ /dev/null
@@ -1,192 +0,0 @@
-<!DOCTYPE html>
-<meta charset="utf-8">
-
-<link href="../src/nv.d3.css" rel="stylesheet" type="text/css">
-<link href="teststyle.css" rel="stylesheet" type='text/css'>
-<style>
-
-</style>
-<body>
-  <h3>Test cases for Domain and Range overrides - Example of a polylinear scale</h3>
-  <div style='position:relative;'>
-      <div class='navigation'>
-          Tests:
-          <a href="lineChartTest.html">Line Chart</a>
-          <a href="stackedAreaChartTest.html">Stacked Area</a>
-          <a href="../examples/cumulativeLineChart.html">Cumulative Line</a>
-          <a href="ScatterChartTest.html">Scatter</a>
-          <a href="pieChartTest.html">Pie chart</a>
-      </div>
-      <div class='chart full' id='chart1'>
-        Line chart: yDomain = [0,2,200], yRange = [500,50,0]
-        <svg></svg>
-      </div>
-      <div class='chart half with-transitions' id='chart2'>
-        Historical bar chart: yDomain = [0,2,130], yRange = [500,50,0]
-        <svg></svg>
-      </div>
-
-      <div class='half'>
-        Notes:
-        The chart.yRange() and chart.xRange() properties are an advanced feature.  They are useful
-        in situations where your data has wild extremes: ie, you have lots of smaller numbers, and lots of really big numbers.<br/><br/>
-
-        Without a polylinear scale, those really big data points will overwhelm the small points.<br/><br/>
-
-        Please look at the examples to understand how polylinear scales work.  Comment/uncomment the lines that alter yDomain and yRange
-        to see the effect it has on the charts.
-      </div>
-  </div>
-
-<script src="../lib/d3.v3.js"></script>
-<script src="../nv.d3.js"></script>
-<script src="../src/tooltip.js"></script>
-<script src="../src/utils.js"></script>
-<script src="../src/interactiveLayer.js"></script>
-<script src="../src/models/legend.js"></script>
-<script src="../src/models/axis.js"></script>
-<script src="../src/models/scatter.js"></script>
-<script src="../src/models/line.js"></script>
-<script src="../src/models/lineChart.js"></script>
-<script src="../src/models/historicalBar.js"></script>
-<script src="../src/models/historicalBarChart.js"></script>
-<script>
-
-//------------ CHART 1 
-lineChartConfig("chart1", sinAndCos(),true, false);
-barChartConfig(dataWithSpikes());
-
-
-function lineChartConfig(containerid, data, guideline, useDates, auxOptions) {
-  if (auxOptions === undefined) auxOptions = {};
-  if (guideline === undefined) guideline = true;
-  nv.addGraph(function() {
-    var chart;
-    chart = nv.models.lineChart().useInteractiveGuideline(guideline);
-
-    var fullChartHeight = 500 - chart.margin().top - chart.margin().bottom;
-    chart
-        .x(function(d,i) { 
-          return d.x;
-        })
-       .yDomain([0,2,200])   //Using a polylinear scale
-        .yRange([fullChartHeight,50,0])
-        ;
-
-    if (auxOptions.width) 
-      chart.width(auxOptions.width);
-
-    if (auxOptions.height)
-      chart.height(auxOptions.height);
-
-    var formatter;
-    if (useDates) {
-        formatter = function(d,i) {
-                var now = (new Date()).getTime() - 86400 * 1000 * 365;
-                now = new Date(now + d * 86400 * 1000);
-                return d3.time.format('%b %d %Y')(now );
-        }
-    }
-    else {
-        formatter = d3.format(",.1f");
-    }
-
-    chart.xAxis // chart sub-models (ie. xAxis, yAxis, etc) when accessed directly, return themselves, not the parent chart, so need to chain separately
-        .tickFormat(
-            formatter
-          );
-
-    chart.yAxis
-        .axisLabel('Voltage (v)')
-        .tickFormat(d3.format(',.2f'));
-
-    d3.select('#' + containerid + ' svg')
-        .datum(data)
-      .transition().duration(500)
-        .call(chart);
-
-    nv.utils.windowResize(chart.update);
-
-    return chart;
-  });
-}
-
-function barChartConfig(data) {
-    nv.addGraph(function() {
-      var chart = nv.models.historicalBarChart();
-      var fullChartHeight = 500 - chart.margin().top - chart.margin().bottom;
-      chart.color(["#ff7f0e"])
-      .yDomain([0,2,130])
-      .yRange([fullChartHeight,50,0])
-      .transitionDuration(500)
-      ;
-
-      chart.xAxis 
-      .tickFormat(d3.format(',.1f'))
-      .axisLabel("Time")
-      ;
-
-       chart.yAxis
-      .axisLabel('Random Number')
-      .tickFormat(d3.format(',.4f'));
-      d3.select("#chart2 svg")
-        .datum(data)
-        .transition().duration(500)
-        .call(chart);
-
-      nv.utils.windowResize(chart.update);
-      return chart;
-    });
-}
-
-function sinAndCos() {
-  var sin = [],
-      cos = [],
-      higherOrder = []
-      ;
-
-  var now = (new Date()).getTime();
-  for (var i = 0; i < 100; i++) {
-    sin.push({x: i, y:  Math.abs(Math.sin(i/10)) }); //the nulls are to show how defined works
-    cos.push({x: i, y: Math.abs(.5 * Math.cos(i/10)) });
-
-    higherOrder.push({x: i, y: Math.cos(i) * 100 + 100});
-  }
-
-  return [
-    {
-      values: sin,
-      key: "Sine Wave",
-      color: "#ff7f0e"
-    },
-    {
-      values: cos,
-      key: "Cosine Wave",
-      color: "#2ca02c"
-    },
-    {
-      values: higherOrder,
-      key: "Higher Order",
-      color: "#fc34ff"
-    }
-  ];
-}
-
-function dataWithSpikes() {
-   var rval = [];
-   for(var i =0; i < 100; i++) {
-
-      var spike = (Math.random() > 0.9);
-      rval.push({
-        x: i,
-        y: (spike) ? Math.random() * 100 + 30 : Math.random()
-      });
-   }
-   return [
-      {key: "Series 1",
-      color : "orange",
-      values: rval}
-   ];
-}
-
-</script>
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/test/realTimeChartTest.html b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/test/realTimeChartTest.html
deleted file mode 100755
index d8a8029d..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/test/realTimeChartTest.html
+++ /dev/null
@@ -1,102 +0,0 @@
-<!DOCTYPE html>
-<meta charset="utf-8">
-
-<link href="../src/nv.d3.css" rel="stylesheet" type="text/css">
-<link href="teststyle.css" rel="stylesheet" type='text/css'>
-
-<body>
-	 <div class='navigation'>
-          Tests:
-          <a href="lineChartTest.html">Line Chart</a>
-          <a href="stackedAreaChartTest.html">Stacked Area</a>
-          <a href="../examples/cumulativeLineChart.html">Cumulative Line</a>
-          <a href="ScatterChartTest.html">Scatter</a>
-      </div>
-  <h3>Example showing real time chart updating</h3>
-  The chart below is a historical bar chart, which is ideal for visualizing time series data.<br/>
-  First, you need to update the data model for the chart. In the example, we append a random number
-  every half a second. Then, you call <strong>chart.update()</strong>.
-
-<div id='chart' class='chart half with-transitions'>
-	<svg></svg>
-	<button id='start-stop-button'>Start/Stop Stream</button>
-</div>
-
-
-<script src="../lib/d3.v3.js"></script>
-<script src="../nv.d3.js"></script>
-<script src="../src/tooltip.js"></script>
-<script src="../src/utils.js"></script>
-<script src="../src/interactiveLayer.js"></script>
-<script src="../src/models/legend.js"></script>
-<script src="../src/models/axis.js"></script>
-<script src="../src/models/scatter.js"></script>
-<script src="../src/models/line.js"></script>
-<script src="../src/models/lineChart.js"></script>
-<script src="../src/models/historicalBar.js"></script>
-<script src="../src/models/historicalBarChart.js"></script>
-
-<script>
-var chart;
-var data = [{
-	key: "Stream 1",
-	color: "orange",
-	values: [
-		{x: 1, y: 1}
-	]
-}];
-nv.addGraph(function() {
-  
-  chart = nv.models.historicalBarChart();
-
-  chart
-      .x(function(d,i) { return d.x });
-
-  chart.xAxis // chart sub-models (ie. xAxis, yAxis, etc) when accessed directly, return themselves, not the parent chart, so need to chain separately
-      .tickFormat(d3.format(',.1f'))
-      .axisLabel("Time")
-      ;
-
-  chart.yAxis
-      .axisLabel('Random Number')
-      .tickFormat(d3.format(',.4f'));
-
-  chart.showXAxis(true).showYAxis(true).rightAlignYAxis(true).margin({right: 90});
-
-  d3.select('#chart svg')
-      .datum(data)
-      .transition().duration(500)
-      .call(chart);
-
-  nv.utils.windowResize(chart.update);
-
-  return chart;
-});
-
-var x = 2;
-var run = true;
-setInterval(function(){
-	if (!run) return;
-	
-	var spike = (Math.random() > 0.95) ? 10: 1;
-	data[0].values.push({
-		x: x,
-		y: Math.random() * spike
-	});
-
-	if (data[0].values.length > 70) {
-		data[0].values.shift();
-	}
-	x++;
-
-	chart.update();
-}, 500);
-
-d3.select("#start-stop-button").on("click",function() {
-	run = !run;
-});
-
-</script>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/test/stackedAreaChartTest.html b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/test/stackedAreaChartTest.html
deleted file mode 100755
index 1bb0a9a3..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/test/stackedAreaChartTest.html
+++ /dev/null
@@ -1,322 +0,0 @@
-<!DOCTYPE html>
-<meta charset="utf-8">
-
-<link href="../src/nv.d3.css" rel="stylesheet" type="text/css">
-<link href="teststyle.css" rel="stylesheet" type='text/css'>
-<body>
-  <h3>Stacked area chart test cases - feel free to add more tests</h3>
-  <div class='navigation'>
-      Tests:
-      <a href="lineChartTest.html">Line Chart</a>
-      <a href="stackedAreaChartTest.html">Stacked Area</a>
-      <a href="../examples/cumulativeLineChart.html">Cumulative Line</a>
-  </div>
-  <div class='chart full' id='chart1'>Full chart example with new tooltip and guideline<button>Select chart</button><svg></svg></div>
-  <div class='chart half with-transitions' id='chart2'>Chart with old tooltips (with-transitions)<button>Select chart</button><svg></svg></div>
-  <div class='chart half' id='chart3'>Chart with single point<button>Select chart</button><svg></svg></div>
-  <div class='chart half' id='chart4'>Chart with two points<button>Select chart</button><svg></svg></div>
-  <div class='chart half' id='chart5'>Chart with 'holes'<button>Select chart</button><svg></svg></div>
-  <div class='chart half' id='chart6'>Total random points<button>Select chart</button><svg></svg></div>
-  <div class='chart half' id='chart7'>Less than four points, old tooltips<button>Select chart</button><svg></svg></div>
-  <div class='chart half' id='chart8'>No data<svg></svg></div>
-  <div class='chart half' id='chart9'>Data is all negative<svg></svg></div>
-
-<script src="../lib/d3.v3.js"></script>
-<script src="../nv.d3.js"></script>
-<script src="../src/utils.js"></script>
-<script src="../src/models/axis.js"></script>
-<script src="../src/tooltip.js"></script>
-<script src="../src/interactiveLayer.js"></script>
-<script src="../src/models/legend.js"></script>
-<script src="../src/models/axis.js"></script>
-<script src="../src/models/scatter.js"></script>
-<script src="../src/models/stackedArea.js"></script>
-<script src="../src/models/stackedAreaChart.js"></script>
-<script src="testScript.js"></script>
-<script>
-
-
-var histcatexplong = [
-  {
-    "key" : "Consumer Discretionary" ,
-    "values" : [ [ 1138683600000 , 27.38478809681] , [ 1141102800000 , 27.371377218208] , [ 1143781200000 , 26.309915460827] , [ 1146369600000 , 26.425199957521] , [ 1149048000000 , 26.823411519395] , [ 1151640000000 , 23.850443591584] , [ 1154318400000 , 23.158355444054] , [ 1156996800000 , 22.998689393694] , [ 1159588800000 , 27.977128511299] , [ 1162270800000 , 29.073672469721] , [ 1164862800000 , 28.587640408904] , [ 1167541200000 , 22.788453687638] , [ 1170219600000 , 22.429199073597] , [ 1172638800000 , 22.324103271051] , [ 1175313600000 , 17.558388444186] , [ 1177905600000 , 16.769518096208] , [ 1180584000000 , 16.214738201302] , [ 1183176000000 , 18.729632971228] , [ 1185854400000 , 18.814523318848] , [ 1188532800000 , 19.789986451358] , [ 1191124800000 , 17.070049054933] , [ 1193803200000 , 16.121349575715] , [ 1196398800000 , 15.141659430091] , [ 1199077200000 , 17.175388025298] , [ 1201755600000 , 17.286592443521] , [ 1204261200000 , 16.323141626569] , [ 1206936000000 , 19.231263773952] , [ 1209528000000 , 18.446256391094] , [ 1212206400000 , 17.822632399764] , [ 1214798400000 , 15.539366475979] , [ 1217476800000 , 15.255131790216] , [ 1220155200000 , 15.660963922593] , [ 1222747200000 , 13.254482273697] , [ 1225425600000 , 11.920796202299] , [ 1228021200000 , 12.122809090925] , [ 1230699600000 , 15.691026271393] , [ 1233378000000 , 14.720881635107] , [ 1235797200000 , 15.387939360044] , [ 1238472000000 , 13.765436672229] , [ 1241064000000 , 14.6314458648] , [ 1243742400000 , 14.292446536221] , [ 1246334400000 , 16.170071367016] , [ 1249012800000 , 15.948135554337] , [ 1251691200000 , 16.612872685134] , [ 1254283200000 , 18.778338719091] , [ 1256961600000 , 16.75602606542] , [ 1259557200000 , 19.385804443147] , [ 1262235600000 , 22.950590240168] , [ 1264914000000 , 23.61159018141] , [ 1267333200000 , 25.708586989581] , [ 1270008000000 , 26.883915999885] , [ 1272600000000 , 25.893486687065] , [ 1275278400000 , 24.678914263176] , [ 1277870400000 , 25.937275793023] , [ 1280548800000 , 29.46138169384] , [ 1283227200000 , 27.357322961862] , [ 1285819200000 , 29.057235285673] , [ 1288497600000 , 28.549434189386] , [ 1291093200000 , 28.506352379723] , [ 1293771600000 , 29.449241421597] , [ 1296450000000 , 25.796838168807] , [ 1298869200000 , 28.740145449189] , [ 1301544000000 , 22.091744141872] , [ 1304136000000 , 25.079662545409] , [ 1306814400000 , 23.674906973064] , [ 1309406400000 , 23.41800274293] , [ 1312084800000 , 23.243644138871] , [ 1314763200000 , 31.591854066817] , [ 1317355200000 , 31.497112374114] , [ 1320033600000 , 26.672380820431] , [ 1322629200000 , 27.297080015495] , [ 1325307600000 , 20.174315530051] , [ 1327986000000 , 19.631084213899] , [ 1330491600000 , 20.366462219462] , [ 1333166400000 , 17.429019937289] , [ 1335758400000 , 16.75543633539] , [ 1338436800000 , 16.182906906042]]
-  } ,
-  {
-    "key" : "Consumer Staples" ,
-    "values" : [ [ 1138683600000 , 7.2800122043237] , [ 1141102800000 , 7.1187787503354] , [ 1143781200000 , 8.351887016482] , [ 1146369600000 , 8.4156698763993] , [ 1149048000000 , 8.1673298604231] , [ 1151640000000 , 5.5132447126042] , [ 1154318400000 , 6.1152537710599] , [ 1156996800000 , 6.076765091942] , [ 1159588800000 , 4.6304473798646] , [ 1162270800000 , 4.6301068469402] , [ 1164862800000 , 4.3466656309389] , [ 1167541200000 , 6.830104897003] , [ 1170219600000 , 7.241633040029] , [ 1172638800000 , 7.1432372054153] , [ 1175313600000 , 10.608942063374] , [ 1177905600000 , 10.914964549494] , [ 1180584000000 , 10.933223880565] , [ 1183176000000 , 8.3457524851265] , [ 1185854400000 , 8.1078413081882] , [ 1188532800000 , 8.2697185922474] , [ 1191124800000 , 8.4742436475968] , [ 1193803200000 , 8.4994601179319] , [ 1196398800000 , 8.7387319683243] , [ 1199077200000 , 6.8829183612895] , [ 1201755600000 , 6.984133637885] , [ 1204261200000 , 7.0860136043287] , [ 1206936000000 , 4.3961787956053] , [ 1209528000000 , 3.8699674365231] , [ 1212206400000 , 3.6928925238305] , [ 1214798400000 , 6.7571718894253] , [ 1217476800000 , 6.4367313362344] , [ 1220155200000 , 6.4048441521454] , [ 1222747200000 , 5.4643833239669] , [ 1225425600000 , 5.3150786833374] , [ 1228021200000 , 5.3011272612576] , [ 1230699600000 , 4.1203601430809] , [ 1233378000000 , 4.0881783200525] , [ 1235797200000 , 4.1928665957189] , [ 1238472000000 , 7.0249415663205] , [ 1241064000000 , 7.006530880769] , [ 1243742400000 , 6.994835633224] , [ 1246334400000 , 6.1220222336254] , [ 1249012800000 , 6.1177436137653] , [ 1251691200000 , 6.1413396231981] , [ 1254283200000 , 4.8046006145874] , [ 1256961600000 , 4.6647600660544] , [ 1259557200000 , 4.544865006255] , [ 1262235600000 , 6.0488249316539] , [ 1264914000000 , 6.3188669540206] , [ 1267333200000 , 6.5873958262306] , [ 1270008000000 , 6.2281189839578] , [ 1272600000000 , 5.8948915746059] , [ 1275278400000 , 5.5967320482214] , [ 1277870400000 , 0.99784432084837] , [ 1280548800000 , 1.0950794175359] , [ 1283227200000 , 0.94479734407491] , [ 1285819200000 , 1.222093988688] , [ 1288497600000 , 1.335093106856] , [ 1291093200000 , 1.3302565104985] , [ 1293771600000 , 1.340824670897] , [ 1296450000000 , 0] , [ 1298869200000 , 0] , [ 1301544000000 , 0] , [ 1304136000000 , 0] , [ 1306814400000 , 0] , [ 1309406400000 , 0] , [ 1312084800000 , 0] , [ 1314763200000 , 0] , [ 1317355200000 , 4.4583692315] , [ 1320033600000 , 3.6493043348059] , [ 1322629200000 , 3.8610064091761] , [ 1325307600000 , 5.5144800685202] , [ 1327986000000 , 5.1750695220792] , [ 1330491600000 , 5.6710066952691] , [ 1333166400000 , 8.5658461590953] , [ 1335758400000 , 8.6135447714243] , [ 1338436800000 , 8.0231460925212]]
-  } ,
-  {
-    "key" : "Energy" ,
-    "values" : [ [ 1138683600000 , 1.544303464167] , [ 1141102800000 , 1.4387289432421] , [ 1143781200000 , 0] , [ 1146369600000 , 0] , [ 1149048000000 , 0] , [ 1151640000000 , 1.328626801128] , [ 1154318400000 , 1.2874050802627] , [ 1156996800000 , 1.0872743105593] , [ 1159588800000 , 0.96042562635813] , [ 1162270800000 , 0.93139372870616] , [ 1164862800000 , 0.94432167305385] , [ 1167541200000 , 1.277750166208] , [ 1170219600000 , 1.2204893886811] , [ 1172638800000 , 1.207489123122] , [ 1175313600000 , 1.2490651414113] , [ 1177905600000 , 1.2593129913052] , [ 1180584000000 , 1.373329808388] , [ 1183176000000 , 0] , [ 1185854400000 , 0] , [ 1188532800000 , 0] , [ 1191124800000 , 0] , [ 1193803200000 , 0] , [ 1196398800000 , 0] , [ 1199077200000 , 0] , [ 1201755600000 , 0] , [ 1204261200000 , 0] , [ 1206936000000 , 0] , [ 1209528000000 , 0] , [ 1212206400000 , 0] , [ 1214798400000 , 0] , [ 1217476800000 , 0] , [ 1220155200000 , 0] , [ 1222747200000 , 1.4516108933695] , [ 1225425600000 , 1.1856025268225] , [ 1228021200000 , 1.3430470355439] , [ 1230699600000 , 2.2752595354509] , [ 1233378000000 , 2.4031560010523] , [ 1235797200000 , 2.0822430731926] , [ 1238472000000 , 1.5640902826938] , [ 1241064000000 , 1.5812873972356] , [ 1243742400000 , 1.9462448548894] , [ 1246334400000 , 2.9464870223957] , [ 1249012800000 , 3.0744699383222] , [ 1251691200000 , 2.9422304628446] , [ 1254283200000 , 2.7503075599999] , [ 1256961600000 , 2.6506701800427] , [ 1259557200000 , 2.8005425319977] , [ 1262235600000 , 2.6816184971185] , [ 1264914000000 , 2.681206271327] , [ 1267333200000 , 2.8195488011259] , [ 1270008000000 , 0] , [ 1272600000000 , 0] , [ 1275278400000 , 0] , [ 1277870400000 , 1.0687057346382] , [ 1280548800000 , 1.2539400544134] , [ 1283227200000 , 1.1862969445955] , [ 1285819200000 , 0] , [ 1288497600000 , 0] , [ 1291093200000 , 0] , [ 1293771600000 , 0] , [ 1296450000000 , 1.941972859484] , [ 1298869200000 , 2.1142247697552] , [ 1301544000000 , 2.3788590206824] , [ 1304136000000 , 2.5337302877545] , [ 1306814400000 , 2.3163370395199] , [ 1309406400000 , 2.0645451843195] , [ 1312084800000 , 2.1004446672411] , [ 1314763200000 , 3.6301875804303] , [ 1317355200000 , 2.454204664652] , [ 1320033600000 , 2.196082370894] , [ 1322629200000 , 2.3358418255202] , [ 1325307600000 , 0] , [ 1327986000000 , 0] , [ 1330491600000 , 0] , [ 1333166400000 , 0.39001201038526] , [ 1335758400000 , 0.30945472725559] , [ 1338436800000 , 0.31062439305591]]
-  } ,
-  {
-    "key" : "Financials" ,
-    "values" : [ [ 1138683600000 , 13.356778764352] , [ 1141102800000 , 13.611196863271] , [ 1143781200000 , 6.895903006119] , [ 1146369600000 , 6.9939633271352] , [ 1149048000000 , 6.7241510257675] , [ 1151640000000 , 5.5611293669516] , [ 1154318400000 , 5.6086488714041] , [ 1156996800000 , 5.4962849907033] , [ 1159588800000 , 6.9193153169279] , [ 1162270800000 , 7.0016334389777] , [ 1164862800000 , 6.7865422443273] , [ 1167541200000 , 9.0006454225383] , [ 1170219600000 , 9.2233916171431] , [ 1172638800000 , 8.8929316009479] , [ 1175313600000 , 10.345937520404] , [ 1177905600000 , 10.075914677026] , [ 1180584000000 , 10.089006188111] , [ 1183176000000 , 10.598330295008] , [ 1185854400000 , 9.968954653301] , [ 1188532800000 , 9.7740580198146] , [ 1191124800000 , 10.558483060626] , [ 1193803200000 , 9.9314651823603] , [ 1196398800000 , 9.3997715873769] , [ 1199077200000 , 8.4086493387262] , [ 1201755600000 , 8.9698309085926] , [ 1204261200000 , 8.2778357995396] , [ 1206936000000 , 8.8585045600123] , [ 1209528000000 , 8.7013756413322] , [ 1212206400000 , 7.7933605469443] , [ 1214798400000 , 7.0236183483064] , [ 1217476800000 , 6.9873088186829] , [ 1220155200000 , 6.8031713070097] , [ 1222747200000 , 6.6869531315723] , [ 1225425600000 , 6.138256993963] , [ 1228021200000 , 5.6434994016354] , [ 1230699600000 , 5.495220262512] , [ 1233378000000 , 4.6885326869846] , [ 1235797200000 , 4.4524349883438] , [ 1238472000000 , 5.6766520778185] , [ 1241064000000 , 5.7675774480752] , [ 1243742400000 , 5.7882863168337] , [ 1246334400000 , 7.2666010034924] , [ 1249012800000 , 7.519182132226] , [ 1251691200000 , 7.849651451445] , [ 1254283200000 , 10.383992037985] , [ 1256961600000 , 9.0653691861818] , [ 1259557200000 , 9.6705248324159] , [ 1262235600000 , 10.856380561349] , [ 1264914000000 , 11.27452370892] , [ 1267333200000 , 11.754156529088] , [ 1270008000000 , 8.2870811422456] , [ 1272600000000 , 8.0210264360699] , [ 1275278400000 , 7.5375074474865] , [ 1277870400000 , 8.3419527338039] , [ 1280548800000 , 9.4197471818443] , [ 1283227200000 , 8.7321733185797] , [ 1285819200000 , 9.6627062648126] , [ 1288497600000 , 10.187962234549] , [ 1291093200000 , 9.8144201733476] , [ 1293771600000 , 10.275723361713] , [ 1296450000000 , 16.796066079353] , [ 1298869200000 , 17.543254984075] , [ 1301544000000 , 16.673660675084] , [ 1304136000000 , 17.963944353609] , [ 1306814400000 , 16.637740867211] , [ 1309406400000 , 15.84857094609] , [ 1312084800000 , 14.767303362182] , [ 1314763200000 , 24.778452182432] , [ 1317355200000 , 18.370353229999] , [ 1320033600000 , 15.2531374291] , [ 1322629200000 , 14.989600840649] , [ 1325307600000 , 16.052539160125] , [ 1327986000000 , 16.424390322793] , [ 1330491600000 , 17.884020741105] , [ 1333166400000 , 7.1424929577921] , [ 1335758400000 , 7.8076213051482] , [ 1338436800000 , 7.2462684949232]]
-  } ,
-  {
-    "key" : "Health Care" ,
-    "values" : [ [ 1138683600000 , 14.212410956029] , [ 1141102800000 , 13.973193618249] , [ 1143781200000 , 15.218233920665] , [ 1146369600000 , 14.38210972745] , [ 1149048000000 , 13.894310878491] , [ 1151640000000 , 15.593086090032] , [ 1154318400000 , 16.244839695188] , [ 1156996800000 , 16.017088850646] , [ 1159588800000 , 14.183951830055] , [ 1162270800000 , 14.148523245697] , [ 1164862800000 , 13.424326059972] , [ 1167541200000 , 12.974450435753] , [ 1170219600000 , 13.23247041802] , [ 1172638800000 , 13.318762655574] , [ 1175313600000 , 15.961407746104] , [ 1177905600000 , 16.287714639805] , [ 1180584000000 , 16.246590583889] , [ 1183176000000 , 17.564505594809] , [ 1185854400000 , 17.872725373165] , [ 1188532800000 , 18.018998508757] , [ 1191124800000 , 15.584518016603] , [ 1193803200000 , 15.480850647181] , [ 1196398800000 , 15.699120036984] , [ 1199077200000 , 19.184281817226] , [ 1201755600000 , 19.691226605207] , [ 1204261200000 , 18.982314051295] , [ 1206936000000 , 18.707820309008] , [ 1209528000000 , 17.459630929761] , [ 1212206400000 , 16.500616076782] , [ 1214798400000 , 18.086324003979] , [ 1217476800000 , 18.929464156258] , [ 1220155200000 , 18.233728682084] , [ 1222747200000 , 16.315776297325] , [ 1225425600000 , 14.63289219025] , [ 1228021200000 , 14.667835024478] , [ 1230699600000 , 13.946993947308] , [ 1233378000000 , 14.394304684397] , [ 1235797200000 , 13.724462792967] , [ 1238472000000 , 10.930879035806] , [ 1241064000000 , 9.8339915513708] , [ 1243742400000 , 10.053858541872] , [ 1246334400000 , 11.786998438287] , [ 1249012800000 , 11.780994901769] , [ 1251691200000 , 11.305889670276] , [ 1254283200000 , 10.918452290083] , [ 1256961600000 , 9.6811395055706] , [ 1259557200000 , 10.971529744038] , [ 1262235600000 , 13.330210480209] , [ 1264914000000 , 14.592637568961] , [ 1267333200000 , 14.605329141157] , [ 1270008000000 , 13.936853794037] , [ 1272600000000 , 12.189480759072] , [ 1275278400000 , 11.676151385046] , [ 1277870400000 , 13.058852800017] , [ 1280548800000 , 13.62891543203] , [ 1283227200000 , 13.811107569918] , [ 1285819200000 , 13.786494560787] , [ 1288497600000 , 14.04516285753] , [ 1291093200000 , 13.697412447288] , [ 1293771600000 , 13.677681376221] , [ 1296450000000 , 19.961511864531] , [ 1298869200000 , 21.049198298158] , [ 1301544000000 , 22.687631094008] , [ 1304136000000 , 25.469010617433] , [ 1306814400000 , 24.883799437121] , [ 1309406400000 , 24.203843814248] , [ 1312084800000 , 22.138760964038] , [ 1314763200000 , 16.034636966228] , [ 1317355200000 , 15.394958944556] , [ 1320033600000 , 12.625642461969] , [ 1322629200000 , 12.973735699739] , [ 1325307600000 , 15.786018336149] , [ 1327986000000 , 15.227368020134] , [ 1330491600000 , 15.899752650734] , [ 1333166400000 , 18.994731295388] , [ 1335758400000 , 18.450055817702] , [ 1338436800000 , 17.863719889669]]
-  } ,
-  {
-    "key" : "Industrials" ,
-    "values" : [ [ 1138683600000 , 7.1590087090398] , [ 1141102800000 , 7.1297210970108] , [ 1143781200000 , 5.5774588290586] , [ 1146369600000 , 5.4977254491156] , [ 1149048000000 , 5.5138153113634] , [ 1151640000000 , 4.3198084032122] , [ 1154318400000 , 3.9179295839125] , [ 1156996800000 , 3.8110093051479] , [ 1159588800000 , 5.5629020916939] , [ 1162270800000 , 5.7241673711336] , [ 1164862800000 , 5.4715049695004] , [ 1167541200000 , 4.9193763571618] , [ 1170219600000 , 5.136053947247] , [ 1172638800000 , 5.1327258759766] , [ 1175313600000 , 5.1888943925082] , [ 1177905600000 , 5.5191481293345] , [ 1180584000000 , 5.6093625614921] , [ 1183176000000 , 4.2706312987397] , [ 1185854400000 , 4.4453235132117] , [ 1188532800000 , 4.6228003109761] , [ 1191124800000 , 5.0645764756954] , [ 1193803200000 , 5.0723447230959] , [ 1196398800000 , 5.1457765818846] , [ 1199077200000 , 5.4067851597282] , [ 1201755600000 , 5.472241916816] , [ 1204261200000 , 5.3742740389688] , [ 1206936000000 , 6.251751933664] , [ 1209528000000 , 6.1406852153472] , [ 1212206400000 , 5.8164385627465] , [ 1214798400000 , 5.4255846656171] , [ 1217476800000 , 5.3738499417204] , [ 1220155200000 , 5.1815627753979] , [ 1222747200000 , 5.0305983235349] , [ 1225425600000 , 4.6823058607165] , [ 1228021200000 , 4.5941481589093] , [ 1230699600000 , 5.4669598474575] , [ 1233378000000 , 5.1249037357] , [ 1235797200000 , 4.3504421250742] , [ 1238472000000 , 4.6260881026002] , [ 1241064000000 , 5.0140402458946] , [ 1243742400000 , 4.7458462454774] , [ 1246334400000 , 6.0437019654564] , [ 1249012800000 , 6.4595216249754] , [ 1251691200000 , 6.6420468254155] , [ 1254283200000 , 5.8927271960913] , [ 1256961600000 , 5.4712108838003] , [ 1259557200000 , 6.1220254207747] , [ 1262235600000 , 5.5385935169255] , [ 1264914000000 , 5.7383377612639] , [ 1267333200000 , 6.1715976730415] , [ 1270008000000 , 4.0102262681174] , [ 1272600000000 , 3.769389679692] , [ 1275278400000 , 3.5301571031152] , [ 1277870400000 , 2.7660252652526] , [ 1280548800000 , 3.1409983385775] , [ 1283227200000 , 3.0528024863055] , [ 1285819200000 , 4.3126123157971] , [ 1288497600000 , 4.594654041683] , [ 1291093200000 , 4.5424126126793] , [ 1293771600000 , 4.7790043987302] , [ 1296450000000 , 7.4969154058289] , [ 1298869200000 , 7.9424751557821] , [ 1301544000000 , 7.1560736250547] , [ 1304136000000 , 7.9478117337855] , [ 1306814400000 , 7.4109214848895] , [ 1309406400000 , 7.5966457641101] , [ 1312084800000 , 7.165754444071] , [ 1314763200000 , 5.4816702524302] , [ 1317355200000 , 4.9893656089584] , [ 1320033600000 , 4.498385105327] , [ 1322629200000 , 4.6776090358151] , [ 1325307600000 , 8.1350814368063] , [ 1327986000000 , 8.0732769990652] , [ 1330491600000 , 8.5602340387277] , [ 1333166400000 , 5.1293714074325] , [ 1335758400000 , 5.2586794619016] , [ 1338436800000 , 5.1100853569977]]
-  } ,
-  {
-    "key" : "Information Technology" ,
-    "values" : [ [ 1138683600000 , 13.242301508051] , [ 1141102800000 , 12.863536342042] , [ 1143781200000 , 21.034044171629] , [ 1146369600000 , 21.419084618803] , [ 1149048000000 , 21.142678863691] , [ 1151640000000 , 26.568489677529] , [ 1154318400000 , 24.839144939905] , [ 1156996800000 , 25.456187462167] , [ 1159588800000 , 26.350164502826] , [ 1162270800000 , 26.47833320519] , [ 1164862800000 , 26.425979547847] , [ 1167541200000 , 28.191461582256] , [ 1170219600000 , 28.930307448808] , [ 1172638800000 , 29.521413891117] , [ 1175313600000 , 28.188285966466] , [ 1177905600000 , 27.704619625832] , [ 1180584000000 , 27.490862424829] , [ 1183176000000 , 28.770679721286] , [ 1185854400000 , 29.060480671449] , [ 1188532800000 , 28.240998844973] , [ 1191124800000 , 33.004893194127] , [ 1193803200000 , 34.075180359928] , [ 1196398800000 , 32.548560664833] , [ 1199077200000 , 30.629727432728] , [ 1201755600000 , 28.642858788159] , [ 1204261200000 , 27.973575227842] , [ 1206936000000 , 27.393351882726] , [ 1209528000000 , 28.476095288523] , [ 1212206400000 , 29.29667866426] , [ 1214798400000 , 29.222333802896] , [ 1217476800000 , 28.092966093843] , [ 1220155200000 , 28.107159262922] , [ 1222747200000 , 25.482974832098] , [ 1225425600000 , 21.208115993834] , [ 1228021200000 , 20.295043095268] , [ 1230699600000 , 15.925754618401] , [ 1233378000000 , 17.162864628346] , [ 1235797200000 , 17.084345773174] , [ 1238472000000 , 22.246007102281] , [ 1241064000000 , 24.530543998509] , [ 1243742400000 , 25.084184918242] , [ 1246334400000 , 16.606166527358] , [ 1249012800000 , 17.239620011628] , [ 1251691200000 , 17.336739127379] , [ 1254283200000 , 25.478492475753] , [ 1256961600000 , 23.017152085245] , [ 1259557200000 , 25.617745423683] , [ 1262235600000 , 24.061133998642] , [ 1264914000000 , 23.223933318644] , [ 1267333200000 , 24.425887263937] , [ 1270008000000 , 35.501471156693] , [ 1272600000000 , 33.775013878676] , [ 1275278400000 , 30.417993630285] , [ 1277870400000 , 30.023598978467] , [ 1280548800000 , 33.327519522436] , [ 1283227200000 , 31.963388450371] , [ 1285819200000 , 30.498967232092] , [ 1288497600000 , 32.403696817912] , [ 1291093200000 , 31.47736071922] , [ 1293771600000 , 31.53259666241] , [ 1296450000000 , 41.760282761548] , [ 1298869200000 , 45.605771243237] , [ 1301544000000 , 39.986557966215] , [ 1304136000000 , 43.846330510051] , [ 1306814400000 , 39.857316881857] , [ 1309406400000 , 37.675127768208] , [ 1312084800000 , 35.775077970313] , [ 1314763200000 , 48.631009702577] , [ 1317355200000 , 42.830831754505] , [ 1320033600000 , 35.611502589362] , [ 1322629200000 , 35.320136981738] , [ 1325307600000 , 31.564136901516] , [ 1327986000000 , 32.074407502433] , [ 1330491600000 , 35.053013769976] , [ 1333166400000 , 26.434568573937] , [ 1335758400000 , 25.305617871002] , [ 1338436800000 , 24.520919418236]]
-  } ,
-  {
-    "key" : "Materials" ,
-    "values" : [ [ 1138683600000 , 5.5806167415681] , [ 1141102800000 , 5.4539047069985] , [ 1143781200000 , 7.6728842432362] , [ 1146369600000 , 7.719946716654] , [ 1149048000000 , 8.0144619912942] , [ 1151640000000 , 7.942223133434] , [ 1154318400000 , 8.3998279827444] , [ 1156996800000 , 8.532324572605] , [ 1159588800000 , 4.7324285199763] , [ 1162270800000 , 4.7402397487697] , [ 1164862800000 , 4.9042069355168] , [ 1167541200000 , 5.9583963430882] , [ 1170219600000 , 6.3693899239171] , [ 1172638800000 , 6.261153903813] , [ 1175313600000 , 5.3443942184584] , [ 1177905600000 , 5.4932111235361] , [ 1180584000000 , 5.5747393101109] , [ 1183176000000 , 5.3833633060013] , [ 1185854400000 , 5.5125898831832] , [ 1188532800000 , 5.8116112661327] , [ 1191124800000 , 4.3962296939996] , [ 1193803200000 , 4.6967663605521] , [ 1196398800000 , 4.7963004350914] , [ 1199077200000 , 4.1817985183351] , [ 1201755600000 , 4.3797643870182] , [ 1204261200000 , 4.6966642197965] , [ 1206936000000 , 4.3609995132565] , [ 1209528000000 , 4.4736290996496] , [ 1212206400000 , 4.3749762738128] , [ 1214798400000 , 3.3274661194507] , [ 1217476800000 , 3.0316184691337] , [ 1220155200000 , 2.5718140204728] , [ 1222747200000 , 2.7034994044603] , [ 1225425600000 , 2.2033786591364] , [ 1228021200000 , 1.9850621240805] , [ 1230699600000 , 0] , [ 1233378000000 , 0] , [ 1235797200000 , 0] , [ 1238472000000 , 0] , [ 1241064000000 , 0] , [ 1243742400000 , 0] , [ 1246334400000 , 0] , [ 1249012800000 , 0] , [ 1251691200000 , 0] , [ 1254283200000 , 0.44495950017788] , [ 1256961600000 , 0.33945469262483] , [ 1259557200000 , 0.38348269455195] , [ 1262235600000 , 0] , [ 1264914000000 , 0] , [ 1267333200000 , 0] , [ 1270008000000 , 0] , [ 1272600000000 , 0] , [ 1275278400000 , 0] , [ 1277870400000 , 0] , [ 1280548800000 , 0] , [ 1283227200000 , 0] , [ 1285819200000 , 0] , [ 1288497600000 , 0] , [ 1291093200000 , 0] , [ 1293771600000 , 0] , [ 1296450000000 , 0.52216435716176] , [ 1298869200000 , 0.59275786698454] , [ 1301544000000 , 0] , [ 1304136000000 , 0] , [ 1306814400000 , 0] , [ 1309406400000 , 0] , [ 1312084800000 , 0] , [ 1314763200000 , 0] , [ 1317355200000 , 0] , [ 1320033600000 , 0] , [ 1322629200000 , 0] , [ 1325307600000 , 0] , [ 1327986000000 , 0] , [ 1330491600000 , 0] , [ 1333166400000 , 0] , [ 1335758400000 , 0] , [ 1338436800000 , 0]]
-  } ,
-  {
-    "key" : "Telecommunication Services" ,
-    "values" : [ [ 1138683600000 , 3.7056975170243] , [ 1141102800000 , 3.7561118692318] , [ 1143781200000 , 2.861913700854] , [ 1146369600000 , 2.9933744103381] , [ 1149048000000 , 2.7127537218463] , [ 1151640000000 , 3.1195497076283] , [ 1154318400000 , 3.4066964004508] , [ 1156996800000 , 3.3754571113569] , [ 1159588800000 , 2.2965579982924] , [ 1162270800000 , 2.4486818633018] , [ 1164862800000 , 2.4002308848517] , [ 1167541200000 , 1.9649579750349] , [ 1170219600000 , 1.9385263638056] , [ 1172638800000 , 1.9128975336387] , [ 1175313600000 , 2.3412869836298] , [ 1177905600000 , 2.4337870351445] , [ 1180584000000 , 2.62179703171] , [ 1183176000000 , 3.2642864957929] , [ 1185854400000 , 3.3200396223709] , [ 1188532800000 , 3.3934212707572] , [ 1191124800000 , 4.2822327088179] , [ 1193803200000 , 4.1474964228541] , [ 1196398800000 , 4.1477082879801] , [ 1199077200000 , 5.2947122916128] , [ 1201755600000 , 5.2919843508028] , [ 1204261200000 , 5.1989783050309] , [ 1206936000000 , 3.5603057673513] , [ 1209528000000 , 3.3009087690692] , [ 1212206400000 , 3.1784852603792] , [ 1214798400000 , 4.5889503538868] , [ 1217476800000 , 4.401779617494] , [ 1220155200000 , 4.2208301828278] , [ 1222747200000 , 3.89396671475] , [ 1225425600000 , 3.0423832241354] , [ 1228021200000 , 3.135520611578] , [ 1230699600000 , 1.9631418164089] , [ 1233378000000 , 1.8963543874958] , [ 1235797200000 , 1.8266636017025] , [ 1238472000000 , 0.93136635895188] , [ 1241064000000 , 0.92737801918888] , [ 1243742400000 , 0.97591889805002] , [ 1246334400000 , 2.6841193805515] , [ 1249012800000 , 2.5664341140531] , [ 1251691200000 , 2.3887523699873] , [ 1254283200000 , 1.1737801663681] , [ 1256961600000 , 1.0953582317281] , [ 1259557200000 , 1.2495674976653] , [ 1262235600000 , 0.36607452464754] , [ 1264914000000 , 0.3548719047291] , [ 1267333200000 , 0.36769242398939] , [ 1270008000000 , 0] , [ 1272600000000 , 0] , [ 1275278400000 , 0] , [ 1277870400000 , 0] , [ 1280548800000 , 0] , [ 1283227200000 , 0] , [ 1285819200000 , 0.85450741275337] , [ 1288497600000 , 0.91360317921637] , [ 1291093200000 , 0.89647678692269] , [ 1293771600000 , 0.87800687192639] , [ 1296450000000 , 0] , [ 1298869200000 , 0] , [ 1301544000000 , 0.43668720882994] , [ 1304136000000 , 0.4756523602692] , [ 1306814400000 , 0.46947368328469] , [ 1309406400000 , 0.45138896152316] , [ 1312084800000 , 0.43828726648117] , [ 1314763200000 , 2.0820861395316] , [ 1317355200000 , 0.9364411075395] , [ 1320033600000 , 0.60583907839773] , [ 1322629200000 , 0.61096950747437] , [ 1325307600000 , 0] , [ 1327986000000 , 0] , [ 1330491600000 , 0] , [ 1333166400000 , 0] , [ 1335758400000 , 0] , [ 1338436800000 , 0]]
-  } ,
-  {
-    "key" : "Utilities" ,
-    "values" : [ [ 1138683600000 , 0] , [ 1141102800000 , 0] , [ 1143781200000 , 0] , [ 1146369600000 , 0] , [ 1149048000000 , 0] , [ 1151640000000 , 0] , [ 1154318400000 , 0] , [ 1156996800000 , 0] , [ 1159588800000 , 0] , [ 1162270800000 , 0] , [ 1164862800000 , 0] , [ 1167541200000 , 0] , [ 1170219600000 , 0] , [ 1172638800000 , 0] , [ 1175313600000 , 0] , [ 1177905600000 , 0] , [ 1180584000000 , 0] , [ 1183176000000 , 0] , [ 1185854400000 , 0] , [ 1188532800000 , 0] , [ 1191124800000 , 0] , [ 1193803200000 , 0] , [ 1196398800000 , 0] , [ 1199077200000 , 0] , [ 1201755600000 , 0] , [ 1204261200000 , 0] , [ 1206936000000 , 0] , [ 1209528000000 , 0] , [ 1212206400000 , 0] , [ 1214798400000 , 0] , [ 1217476800000 , 0] , [ 1220155200000 , 0] , [ 1222747200000 , 0] , [ 1225425600000 , 0] , [ 1228021200000 , 0] , [ 1230699600000 , 0] , [ 1233378000000 , 0] , [ 1235797200000 , 0] , [ 1238472000000 , 0] , [ 1241064000000 , 0] , [ 1243742400000 , 0] , [ 1246334400000 , 0] , [ 1249012800000 , 0] , [ 1251691200000 , 0] , [ 1254283200000 , 0] , [ 1256961600000 , 0] , [ 1259557200000 , 0] , [ 1262235600000 , 0] , [ 1264914000000 , 0] , [ 1267333200000 , 0] , [ 1270008000000 , 0] , [ 1272600000000 , 0] , [ 1275278400000 , 0] , [ 1277870400000 , 0] , [ 1280548800000 , 0] , [ 1283227200000 , 0] , [ 1285819200000 , 0] , [ 1288497600000 , 0] , [ 1291093200000 , 0] , [ 1293771600000 , 0] , [ 1296450000000 , 0] , [ 1298869200000 , 0] , [ 1301544000000 , 0] , [ 1304136000000 , 0] , [ 1306814400000 , 0] , [ 1309406400000 , 0] , [ 1312084800000 , 0] , [ 1314763200000 , 0] , [ 1317355200000 , 0] , [ 1320033600000 , 0] , [ 1322629200000 , 0] , [ 1325307600000 , 0] , [ 1327986000000 , 0] , [ 1330491600000 , 0] , [ 1333166400000 , 0] , [ 1335758400000 , 0] , [ 1338436800000 , 0]]
-  }
-];
-
-
-// for testing single data point
-var histcatexplong_singledatapoint = [
-  {
-    "key" : "Consumer Discretionary" ,
-    "values" : [ [ 1138683600000 , 27.38478809681]]
-  } ,
-  {
-    "key" : "Consumer Staples" ,
-    "values" : [ [ 1138683600000 , 7.2800122043237]]
-  } ,
-  {
-    "key" : "Energy" ,
-    "values" : [ [ 1138683600000 , 1.544303464167]]
-  } ,
-  {
-    "key" : "Financials" ,
-    "values" : [ [ 1138683600000 , 13.356778764352]]
-  } ,
-  {
-    "key" : "Health Care" ,
-    "values" : [ [ 1138683600000 , 14.212410956029]]
-  } ,
-  {
-    "key" : "Industrials" ,
-    "values" : [ [ 1138683600000 , 7.1590087090398]]
-  } ,
-  {
-    "key" : "Information Technology" ,
-    "values" : [ [ 1138683600000 , 13.242301508051]]
-  } ,
-  {
-    "key" : "Materials" ,
-    "values" : [ [ 1138683600000 , 5.5806167415681]]
-  } ,
-  {
-    "key" : "Telecommunication Services" ,
-    "values" : [ [ 1138683600000 , 3.7056975170243]]
-  } ,
-  {
-    "key" : "Utilities" ,
-    "values" : [ [ 1138683600000 , 0]]
-  }
-];
-
-
-// for testing two data point s
-var histcatexplong_twodatapoint = [
-  {
-    "key" : "Consumer Discretionary" ,
-    "values" : [ [ 1138683600000 , 27.38478809681], [ 1141102800000 , 29.4] ]
-  } ,
-  {
-    "key" : "Consumer Staples" ,
-    "values" : [ [ 1138683600000 , 7.2800122043237], [ 1141102800000 , 6.7]]
-  } ,
-  {
-    "key" : "Energy" ,
-    "values" : [ [ 1138683600000 , 1.544303464167], [ 1141102800000 , 2.4]]
-  } ,
-  {
-    "key" : "Financials" ,
-    "values" : [ [ 1138683600000 , 13.356778764352], [ 1141102800000 , 19.2]]
-  } ,
-  {
-    "key" : "Health Care" ,
-    "values" : [ [ 1138683600000 , 14.212410956029], [ 1141102800000 , 15.4]]
-  } ,
-  {
-    "key" : "Industrials" ,
-    "values" : [ [ 1138683600000 , 7.1590087090398], [ 1141102800000 , 10.3]]
-  } ,
-  {
-    "key" : "Information Technology" ,
-    "values" : [ [ 1138683600000 , 13.242301508051], [ 1141102800000 , 14.3]]
-  } ,
-  {
-    "key" : "Materials" ,
-    "values" : [ [ 1138683600000 , 5.5806167415681], [ 1141102800000 , 3.2]]
-  } ,
-  {
-    "key" : "Telecommunication Services" ,
-    "values" : [ [ 1138683600000 , 3.7056975170243], [ 1141102800000 , 1.3]]
-  } ,
-  {
-    "key" : "Utilities" ,
-    "values" : [ [ 1138683600000 , 0], [ 1141102800000 , 2]]
-  }
-];
-
-var histcatexplong_withholes = [
-  {
-    "key" : "Consumer Discretionary" ,
-    "values" : [ [ 1138683600000 , 27.38478809681] , [ 1141102800000 , 27.371377218208] , [ 1143781200000 , 26.309915460827] , [ 1146369600000 , 26.425199957521] , [ 1149048000000 , 26.823411519395] , [ 1151640000000 , 23.850443591584] , [ 1154318400000 , 23.158355444054] , [ 1156996800000 , 22.998689393694] , [ 1159588800000 , 27.977128511299] , [ 1162270800000 , 29.073672469721] , [ 1164862800000 , 28.587640408904] , [ 1167541200000 , 22.788453687638] , [ 1170219600000 , 22.429199073597] , [ 1172638800000 , 22.324103271051] , [ 1175313600000 , 17.558388444186] , [ 1177905600000 , 16.769518096208] , [ 1180584000000 , 16.214738201302] , [ 1183176000000 , 18.729632971228] , [ 1185854400000 , 18.814523318848] , [ 1188532800000 , 19.789986451358] , [ 1191124800000 , 17.070049054933] , [ 1193803200000 , 16.121349575715] , [ 1196398800000 , 15.141659430091] , [ 1199077200000 , 0] , [ 1201755600000 , 0] , [ 1204261200000 , 0] , [ 1206936000000 , 19.231263773952] , [ 1209528000000 , 18.446256391094] , [ 1212206400000 , 17.822632399764] , [ 1214798400000 , 15.539366475979] , [ 1217476800000 , 15.255131790216] , [ 1220155200000 , 15.660963922593] , [ 1222747200000 , 13.254482273697] , [ 1225425600000 , 11.920796202299] , [ 1228021200000 , 12.122809090925] , [ 1230699600000 , 15.691026271393] , [ 1233378000000 , 14.720881635107] , [ 1235797200000 , 15.387939360044] , [ 1238472000000 , 13.765436672229] , [ 1241064000000 , 14.6314458648] , [ 1243742400000 , 14.292446536221] , [ 1246334400000 , 16.170071367016] , [ 1249012800000 , 15.948135554337] , [ 1251691200000 , 16.612872685134] , [ 1254283200000 , 18.778338719091] , [ 1256961600000 , 16.75602606542] , [ 1259557200000 , 19.385804443147] , [ 1262235600000 , 22.950590240168] , [ 1264914000000 , 23.61159018141] , [ 1267333200000 , 25.708586989581] , [ 1270008000000 , 26.883915999885] , [ 1272600000000 , 25.893486687065] , [ 1275278400000 , 24.678914263176] , [ 1277870400000 , 25.937275793023] , [ 1280548800000 , 0] , [ 1283227200000 , 0] , [ 1285819200000 , 29.057235285673] , [ 1288497600000 , 28.549434189386] , [ 1291093200000 , 28.506352379723] , [ 1293771600000 , 29.449241421597] , [ 1296450000000 , 25.796838168807] , [ 1298869200000 , 28.740145449189] , [ 1301544000000 , 22.091744141872] , [ 1304136000000 , 25.079662545409] , [ 1306814400000 , 23.674906973064] , [ 1309406400000 , 23.41800274293] , [ 1312084800000 , 23.243644138871] , [ 1314763200000 , 31.591854066817] , [ 1317355200000 , 31.497112374114] , [ 1320033600000 , 26.672380820431] , [ 1322629200000 , 27.297080015495] , [ 1325307600000 , 20.174315530051] , [ 1327986000000 , 19.631084213899] , [ 1330491600000 , 20.366462219462] , [ 1333166400000 , 17.429019937289] , [ 1335758400000 , 16.75543633539] , [ 1338436800000 , 16.182906906042]]
-  } ,
-  {
-    "key" : "Consumer Staples" ,
-    "values" : [ [ 1138683600000 , 7.2800122043237] , [ 1141102800000 , 7.1187787503354] , [ 1143781200000 , 8.351887016482] , [ 1146369600000 , 8.4156698763993] , [ 1149048000000 , 8.1673298604231] , [ 1151640000000 , 5.5132447126042] , [ 1154318400000 , 6.1152537710599] , [ 1156996800000 , 6.076765091942] , [ 1159588800000 , 4.6304473798646] , [ 1162270800000 , 4.6301068469402] , [ 1164862800000 , 4.3466656309389] , [ 1167541200000 , 6.830104897003] , [ 1170219600000 , 7.241633040029] , [ 1172638800000 , 7.1432372054153] , [ 1175313600000 , 10.608942063374] , [ 1177905600000 , 10.914964549494] , [ 1180584000000 , 10.933223880565] , [ 1183176000000 , 8.3457524851265] , [ 1185854400000 , 8.1078413081882] , [ 1188532800000 , 8.2697185922474] , [ 1191124800000 , 8.4742436475968] , [ 1193803200000 , 8.4994601179319] , [ 1196398800000 , 8.7387319683243] , [ 1199077200000 , 6.8829183612895] , [ 1201755600000 , 6.984133637885] , [ 1204261200000 , 7.0860136043287] , [ 1206936000000 , 4.3961787956053] , [ 1209528000000 , 3.8699674365231] , [ 1212206400000 , 3.6928925238305] , [ 1214798400000 , 6.7571718894253] , [ 1217476800000 , 6.4367313362344] , [ 1220155200000 , 6.4048441521454] , [ 1222747200000 , 5.4643833239669] , [ 1225425600000 , 5.3150786833374] , [ 1228021200000 , 5.3011272612576] , [ 1230699600000 , 4.1203601430809] , [ 1233378000000 , 4.0881783200525] , [ 1235797200000 , 4.1928665957189] , [ 1238472000000 , 7.0249415663205] , [ 1241064000000 , 7.006530880769] , [ 1243742400000 , 6.994835633224] , [ 1246334400000 , 6.1220222336254] , [ 1249012800000 , 6.1177436137653] , [ 1251691200000 , 6.1413396231981] , [ 1254283200000 , 4.8046006145874] , [ 1256961600000 , 4.6647600660544] , [ 1259557200000 , 4.544865006255] , [ 1262235600000 , 6.0488249316539] , [ 1264914000000 , 6.3188669540206] , [ 1267333200000 , 6.5873958262306] , [ 1270008000000 , 6.2281189839578] , [ 1272600000000 , 5.8948915746059] , [ 1275278400000 , 5.5967320482214] , [ 1277870400000 , 0.99784432084837] , [ 1280548800000 , 1.0950794175359] , [ 1283227200000 , 0.94479734407491] , [ 1285819200000 , 1.222093988688] , [ 1288497600000 , 1.335093106856] , [ 1291093200000 , 1.3302565104985] , [ 1293771600000 , 1.340824670897] , [ 1296450000000 , 0] , [ 1298869200000 , 0] , [ 1301544000000 , 0] , [ 1304136000000 , 0] , [ 1306814400000 , 0] , [ 1309406400000 , 0] , [ 1312084800000 , 0] , [ 1314763200000 , 0] , [ 1317355200000 , 4.4583692315] , [ 1320033600000 , 3.6493043348059] , [ 1322629200000 , 3.8610064091761] , [ 1325307600000 , 5.5144800685202] , [ 1327986000000 , 5.1750695220792] , [ 1330491600000 , 5.6710066952691] , [ 1333166400000 , 8.5658461590953] , [ 1335758400000 , 8.6135447714243] , [ 1338436800000 , 8.0231460925212]]
-  }];
-
-var histcatexpshort = [
-  {
-    "key" : "Consumer Staples" ,
-    "values" : [ [ 1138683600000 , 0] , [ 1141102800000 , 0] , [ 1143781200000 , 0] , [ 1146369600000 , 0] , [ 1149048000000 , 0] , [ 1151640000000 , 0] , [ 1154318400000 , 0] , [ 1156996800000 , 0] , [ 1159588800000 , 0] , [ 1162270800000 , 0] , [ 1164862800000 , 0] , [ 1167541200000 , -0.24102139376003] , [ 1170219600000 , -0.69960584365035] , [ 1172638800000 , -0.67365051426185] , [ 1175313600000 , 0] , [ 1177905600000 , 0] , [ 1180584000000 , 0] , [ 1183176000000 , -0.31429312464988] , [ 1185854400000 , -0.90018700397153] , [ 1188532800000 , -0.96926214328714] , [ 1191124800000 , -1.1343386468131] , [ 1193803200000 , -1.1335426595455] , [ 1196398800000 , -1.2327663032424] , [ 1199077200000 , -0.41027135492155] , [ 1201755600000 , -0.41779167524802] , [ 1204261200000 , -0.38133883625885] , [ 1206936000000 , 0] , [ 1209528000000 , -0.32550520320253] , [ 1212206400000 , -0.33185144615505] , [ 1214798400000 , -0.68609668877894] , [ 1217476800000 , -0.70001207744308] , [ 1220155200000 , -0.68378680840919] , [ 1222747200000 , -0.40908783182034] , [ 1225425600000 , -0.39074266525646] , [ 1228021200000 , -0.40358490474562] , [ 1230699600000 , -0.85752207262267] , [ 1233378000000 , -0.74395750438805] , [ 1235797200000 , -0.70718832429489] , [ 1238472000000 , -0.76244465406965] , [ 1241064000000 , -0.67618572591984] , [ 1243742400000 , -0.67649596761402] , [ 1246334400000 , -0.94618002703247] , [ 1249012800000 , -0.95408485581014] , [ 1251691200000 , -0.96272139504276] , [ 1254283200000 , 0] , [ 1256961600000 , 0] , [ 1259557200000 , 0] , [ 1262235600000 , 0] , [ 1264914000000 , 0] , [ 1267333200000 , 0] , [ 1270008000000 , -0.25516420149471] , [ 1272600000000 , -0.24106264576017] , [ 1275278400000 , -0.22802547751448] , [ 1277870400000 , -0.62187524046697] , [ 1280548800000 , -0.72155608677106] , [ 1283227200000 , -0.70221659944774] , [ 1285819200000 , -1.1117002584543] , [ 1288497600000 , -1.190911001336] , [ 1291093200000 , -1.1781082003972] , [ 1293771600000 , -1.2125860264875] , [ 1296450000000 , -1.7748010365657] , [ 1298869200000 , -1.8919594178596] , [ 1301544000000 , -1.7077946421533] , [ 1304136000000 , -2.024238803094] , [ 1306814400000 , -1.9769844081819] , [ 1309406400000 , -2.0730275464065] , [ 1312084800000 , -1.9690128240888] , [ 1314763200000 , -5.5557852269348] , [ 1317355200000 , -7.2527933190641] , [ 1320033600000 , -5.7367677053109] , [ 1322629200000 , -6.0409316206662] , [ 1325307600000 , -4.6511525539195] , [ 1327986000000 , -4.526116059083] , [ 1330491600000 , -4.846292325197] , [ 1333166400000 , -2.2663198779425] , [ 1335758400000 , -2.4172072568564] , [ 1338436800000 , -2.3204729601189]]
-  } ,
-  {
-    "key" : "Consumer Discretionary" ,
-    "values" : [ [ 1138683600000 , -0.62238434102863] , [ 1141102800000 , -0.61484565039024] , [ 1143781200000 , -1.0769367918668] , [ 1146369600000 , -1.2221156604129] , [ 1149048000000 , -1.2434858263377] , [ 1151640000000 , -0.58606435489597] , [ 1154318400000 , -0.61478911495141] , [ 1156996800000 , -0.61429362688591] , [ 1159588800000 , -1.1168614112788] , [ 1162270800000 , -1.1510268716612] , [ 1164862800000 , -1.1104724164222] , [ 1167541200000 , -1.2298338563471] , [ 1170219600000 , -1.5053664389104] , [ 1172638800000 , -1.5535266372193] , [ 1175313600000 , -3.1690472535854] , [ 1177905600000 , -3.1273013967041] , [ 1180584000000 , -3.155466271777] , [ 1183176000000 , -3.7158562579437] , [ 1185854400000 , -3.8244546635586] , [ 1188532800000 , -3.5524464859972] , [ 1191124800000 , -3.0472339109128] , [ 1193803200000 , -3.064978140815] , [ 1196398800000 , -3.0818130124986] , [ 1199077200000 , -2.9806791138312] , [ 1201755600000 , -3.7360958775824] , [ 1204261200000 , -3.4687841733263] , [ 1206936000000 , -3.3702018615806] , [ 1209528000000 , -3.1982756208679] , [ 1212206400000 , -3.0489433155104] , [ 1214798400000 , -3.7008275605963] , [ 1217476800000 , -3.8980507260892] , [ 1220155200000 , -3.7680083260241] , [ 1222747200000 , -3.2061890012391] , [ 1225425600000 , -2.6727551440484] , [ 1228021200000 , -2.4469327462935] , [ 1230699600000 , -3.0192419668784] , [ 1233378000000 , -2.892958553476] , [ 1235797200000 , -3.1153570053479] , [ 1238472000000 , -2.9927580570711] , [ 1241064000000 , -3.5061796706294] , [ 1243742400000 , -3.2944159516725] , [ 1246334400000 , -3.4154213240617] , [ 1249012800000 , -3.6492125438171] , [ 1251691200000 , -3.6674164998394] , [ 1254283200000 , -4.6271484977727] , [ 1256961600000 , -4.2433407292676] , [ 1259557200000 , -4.4742625247274] , [ 1262235600000 , -5.2078214612359] , [ 1264914000000 , -5.2209579214469] , [ 1267333200000 , -5.4596395756061] , [ 1270008000000 , -5.6906459276584] , [ 1272600000000 , -6.4981737808665] , [ 1275278400000 , -6.2563044048578] , [ 1277870400000 , -6.175479487959] , [ 1280548800000 , -6.6641002427295] , [ 1283227200000 , -6.3648667745556] , [ 1285819200000 , -5.0270168607884] , [ 1288497600000 , -5.1186072976233] , [ 1291093200000 , -5.1127601587872] , [ 1293771600000 , -5.3015262972641] , [ 1296450000000 , -4.4295728671596] , [ 1298869200000 , -4.5488139745696] , [ 1301544000000 , -2.9021260315957] , [ 1304136000000 , -3.1482096241139] , [ 1306814400000 , -2.8648831814763] , [ 1309406400000 , -2.8149423433441] , [ 1312084800000 , -2.6350669145713] , [ 1314763200000 , -5.9871754759038] , [ 1317355200000 , -8.6127555816399] , [ 1320033600000 , -7.0712887348892] , [ 1322629200000 , -7.3930257999857] , [ 1325307600000 , -6.5183071556304] , [ 1327986000000 , -7.4388913793503] , [ 1330491600000 , -8.2134465182649] , [ 1333166400000 , -7.7836036697105] , [ 1335758400000 , -8.0955053683936] , [ 1338436800000 , -8.0981845818893]]
-  } ,
-  {
-    "key" : "Energy" ,
-    "values" : [ [ 1138683600000 , -0.95707527558303] , [ 1141102800000 , -0.78324346694487] , [ 1143781200000 , -1.2905241058019] , [ 1146369600000 , -1.3880880486779] , [ 1149048000000 , -1.3337247185993] , [ 1151640000000 , -1.0342112071924] , [ 1154318400000 , -1.1264764100183] , [ 1156996800000 , -1.0001002640852] , [ 1159588800000 , -0.85341153093953] , [ 1162270800000 , -0.88452017844596] , [ 1164862800000 , -0.84305725300642] , [ 1167541200000 , -1.0874455682301] , [ 1170219600000 , -1.1714969043168] , [ 1172638800000 , -1.1445856467934] , [ 1175313600000 , -1.1928513334073] , [ 1177905600000 , -1.2365691634265] , [ 1180584000000 , -1.2690940962478] , [ 1183176000000 , -1.662233774695] , [ 1185854400000 , -1.745760538781] , [ 1188532800000 , -1.5209200931271] , [ 1191124800000 , -1.7874791820886] , [ 1193803200000 , -1.7755668105117] , [ 1196398800000 , -1.5456069064618] , [ 1199077200000 , -1.7077541586335] , [ 1201755600000 , -1.6462081650757] , [ 1204261200000 , -1.8624735339628] , [ 1206936000000 , -0.71073453533048] , [ 1209528000000 , -0.75380709640219] , [ 1212206400000 , -0.71020554911716] , [ 1214798400000 , -1.2077850914504] , [ 1217476800000 , -1.0505576787644] , [ 1220155200000 , -0.97804595164878] , [ 1222747200000 , -0.34591294663671] , [ 1225425600000 , -0.19958331514025] , [ 1228021200000 , -0.17599782216296] , [ 1230699600000 , -0.49577714121027] , [ 1233378000000 , -0.51644059173978] , [ 1235797200000 , -0.48576859637083] , [ 1238472000000 , -0.75596531126452] , [ 1241064000000 , -0.72073358315801] , [ 1243742400000 , -0.82125996732294] , [ 1246334400000 , -1.4933216860121] , [ 1249012800000 , -1.5003760525933] , [ 1251691200000 , -1.4744921420596] , [ 1254283200000 , -1.8197844060652] , [ 1256961600000 , -1.6558574419626] , [ 1259557200000 , -1.7256149254159] , [ 1262235600000 , -2.7667194124217] , [ 1264914000000 , -2.9113351806903] , [ 1267333200000 , -3.0172806042796] , [ 1270008000000 , -2.8607175559701] , [ 1272600000000 , -2.629226972169] , [ 1275278400000 , -2.1855196883832] , [ 1277870400000 , 0] , [ 1280548800000 , 0] , [ 1283227200000 , 0] , [ 1285819200000 , -1.3788733828844] , [ 1288497600000 , -1.4136792139765] , [ 1291093200000 , -1.5176522942901] , [ 1293771600000 , -1.5776651933208] , [ 1296450000000 , -1.7171675182182] , [ 1298869200000 , -1.8121885250566] , [ 1301544000000 , -1.2221934283206] , [ 1304136000000 , -1.2910715239439] , [ 1306814400000 , -1.1492301612576] , [ 1309406400000 , -1.0613891302841] , [ 1312084800000 , -0.99605193205308] , [ 1314763200000 , -1.7324212072278] , [ 1317355200000 , -1.5226856867477] , [ 1320033600000 , -1.3159138896549] , [ 1322629200000 , -1.3925952659299] , [ 1325307600000 , -1.59624913621] , [ 1327986000000 , -1.5235879880296] , [ 1330491600000 , -1.7315573519279] , [ 1333166400000 , -0.86883431220926] , [ 1335758400000 , -0.90144871282829] , [ 1338436800000 , -0.7010492182517]]
-  } ,
-  {
-    "key" : "Financials" ,
-    "values" : [ [ 1138683600000 , -0.56797103580254] , [ 1141102800000 , -0.57324319174933] , [ 1143781200000 , -1.1014818753272] , [ 1146369600000 , -1.1480256918118] , [ 1149048000000 , -1.0709335336775] , [ 1151640000000 , -0.84876993929658] , [ 1154318400000 , -0.88122638919979] , [ 1156996800000 , -0.86421146074279] , [ 1159588800000 , -0.95093689377974] , [ 1162270800000 , -0.96646862382248] , [ 1164862800000 , -0.96726919442167] , [ 1167541200000 , -0.99874655234936] , [ 1170219600000 , -1.0004843898938] , [ 1172638800000 , -0.9925349676815] , [ 1175313600000 , -1.1888941931287] , [ 1177905600000 , -1.9402228220929] , [ 1180584000000 , -2.03915987194] , [ 1183176000000 , -2.4620526931074] , [ 1185854400000 , -2.2423544651877] , [ 1188532800000 , -1.8790998536037] , [ 1191124800000 , -0.43246873489492] , [ 1193803200000 , -0.40142684216371] , [ 1196398800000 , -0.35646635110466] , [ 1199077200000 , -0.90385702817642] , [ 1201755600000 , -0.86997575249605] , [ 1204261200000 , -0.80101406775415] , [ 1206936000000 , 0] , [ 1209528000000 , 0] , [ 1212206400000 , 0] , [ 1214798400000 , -0.31816167663298] , [ 1217476800000 , -0.309250081849] , [ 1220155200000 , -0.27723698582762] , [ 1222747200000 , -0.32001379372079] , [ 1225425600000 , -0.1940212908561] , [ 1228021200000 , -0.051964569203423] , [ 1230699600000 , -0.68342686502452] , [ 1233378000000 , -0.57645644730726] , [ 1235797200000 , -0.50860972184555] , [ 1238472000000 , -0.44405217759605] , [ 1241064000000 , -0.45224333626901] , [ 1243742400000 , -0.41691818252313] , [ 1246334400000 , -2.4654561579904] , [ 1249012800000 , -2.5473566378551] , [ 1251691200000 , -2.8340604021307] , [ 1254283200000 , -1.8452445924041] , [ 1256961600000 , -1.5626544265386] , [ 1259557200000 , -1.707842764916] , [ 1262235600000 , -1.2237258567344] , [ 1264914000000 , -1.9756896168227] , [ 1267333200000 , -2.0920321696833] , [ 1270008000000 , -1.9782327706952] , [ 1272600000000 , -2.0416328165753] , [ 1275278400000 , -1.7816736134798] , [ 1277870400000 , -0.66092275437689] , [ 1280548800000 , -0.73608099025756] , [ 1283227200000 , -0.63686713461189] , [ 1285819200000 , -0.0024159482973197] , [ 1288497600000 , -0.0023052643588188] , [ 1291093200000 , -0.0023008251965446] , [ 1293771600000 , -0.002247807834351] , [ 1296450000000 , -0.62004345920743] , [ 1298869200000 , -0.69634926653235] , [ 1301544000000 , -0.76013525555354] , [ 1304136000000 , -1.505368495849] , [ 1306814400000 , -1.3456949237707] , [ 1309406400000 , -1.3013934898695] , [ 1312084800000 , -1.183199519395] , [ 1314763200000 , -0.0074317809719494] , [ 1317355200000 , -0.019430458325379] , [ 1320033600000 , -0.015777413509084] , [ 1322629200000 , -0.016463879837718] , [ 1325307600000 , -0.0031338919976225] , [ 1327986000000 , -0.0029770278967514] , [ 1330491600000 , -0.003048902987439] , [ 1333166400000 , -0.71171545945298] , [ 1335758400000 , -0.72003299240508] , [ 1338436800000 , -0.72961974845039]]
-  } ,
-  {
-    "key" : "Health Care" ,
-    "values" : [ [ 1138683600000 , 0] , [ 1141102800000 , 0] , [ 1143781200000 , 0] , [ 1146369600000 , 0] , [ 1149048000000 , 0] , [ 1151640000000 , 0] , [ 1154318400000 , 0] , [ 1156996800000 , 0] , [ 1159588800000 , 0] , [ 1162270800000 , 0] , [ 1164862800000 , 0] , [ 1167541200000 , 0] , [ 1170219600000 , 0] , [ 1172638800000 , 0] , [ 1175313600000 , 0] , [ 1177905600000 , 0] , [ 1180584000000 , 0] , [ 1183176000000 , -0.16816074963595] , [ 1185854400000 , -0.19318598121302] , [ 1188532800000 , -0.20130864403797] , [ 1191124800000 , 0] , [ 1193803200000 , 0] , [ 1196398800000 , 0] , [ 1199077200000 , 0] , [ 1201755600000 , 0] , [ 1204261200000 , 0] , [ 1206936000000 , 0] , [ 1209528000000 , 0] , [ 1212206400000 , 0] , [ 1214798400000 , -0.30476443991021] , [ 1217476800000 , -0.31836730824777] , [ 1220155200000 , -0.30797427879366] , [ 1222747200000 , -0.48318623977865] , [ 1225425600000 , -0.50834562674351] , [ 1228021200000 , -0.47936068182503] , [ 1230699600000 , -0.61753010081956] , [ 1233378000000 , -0.59493587396819] , [ 1235797200000 , -0.62664324339064] , [ 1238472000000 , 0] , [ 1241064000000 , 0] , [ 1243742400000 , 0] , [ 1246334400000 , 0] , [ 1249012800000 , 0] , [ 1251691200000 , 0] , [ 1254283200000 , -1.3076157801726] , [ 1256961600000 , -1.2306204787628] , [ 1259557200000 , -1.4728435992801] , [ 1262235600000 , -1.7729831226837] , [ 1264914000000 , -1.7711733839842] , [ 1267333200000 , -1.8233584472099] , [ 1270008000000 , -1.8505979461969] , [ 1272600000000 , -1.5989071613823] , [ 1275278400000 , -1.6636770720413] , [ 1277870400000 , -1.4523909758725] , [ 1280548800000 , -1.503771584105] , [ 1283227200000 , -1.5458561450475] , [ 1285819200000 , -1.457331837483] , [ 1288497600000 , -1.4217332434071] , [ 1291093200000 , -1.4687927303394] , [ 1293771600000 , -1.437223057967] , [ 1296450000000 , -0.72221871524334] , [ 1298869200000 , -0.7399575414588] , [ 1301544000000 , -1.9712239746745] , [ 1304136000000 , -2.2360949351942] , [ 1306814400000 , -2.2147572530541] , [ 1309406400000 , -2.0440932285023] , [ 1312084800000 , -1.9438209561938] , [ 1314763200000 , -4.9035620630386] , [ 1317355200000 , -4.9036674804213] , [ 1320033600000 , -4.1900706458801] , [ 1322629200000 , -4.5602615827955] , [ 1325307600000 , -1.9194421885814] , [ 1327986000000 , -1.8854470816382] , [ 1330491600000 , -1.9514785018245] , [ 1333166400000 , -0.65282205870454] , [ 1335758400000 , -0.57068368199209] , [ 1338436800000 , -0.55902563384907]]
-  } ,
-  {
-    "key" : "Industrials" ,
-    "values" : [ [ 1138683600000 , -0.390983707093] , [ 1141102800000 , -0.38471122730537] , [ 1143781200000 , -0.22897173467143] , [ 1146369600000 , -0.23798946472286] , [ 1149048000000 , -0.20721233428173] , [ 1151640000000 , -0.54577697700394] , [ 1154318400000 , -0.50300252995937] , [ 1156996800000 , -0.49609518628103] , [ 1159588800000 , -0.19582276889273] , [ 1162270800000 , -0.60399139945108] , [ 1164862800000 , -0.61477368082886] , [ 1167541200000 , -0.13665869881705] , [ 1170219600000 , -0.13147565243332] , [ 1172638800000 , -0.11819441593356] , [ 1175313600000 , -0.41610825689528] , [ 1177905600000 , -0.38815419659358] , [ 1180584000000 , -0.3703838943035] , [ 1183176000000 , -1.6193903804534] , [ 1185854400000 , -1.6502660417328] , [ 1188532800000 , -1.481875010149] , [ 1191124800000 , -0.96180099322536] , [ 1193803200000 , -0.97017301394967] , [ 1196398800000 , -0.97432971260093] , [ 1199077200000 , -0.36071934518387] , [ 1201755600000 , -0.42150070991777] , [ 1204261200000 , -0.41784042793202] , [ 1206936000000 , -0.70494708349169] , [ 1209528000000 , -0.73449590911984] , [ 1212206400000 , -0.7400163600788] , [ 1214798400000 , -0.52584502195668] , [ 1217476800000 , -0.56224806965368] , [ 1220155200000 , -0.50830855192741] , [ 1222747200000 , -0.79494637898049] , [ 1225425600000 , -0.70391433947286] , [ 1228021200000 , -0.61420660317009] , [ 1230699600000 , -0.41699636242004] , [ 1233378000000 , -0.3779041158185] , [ 1235797200000 , -0.34282498854047] , [ 1238472000000 , -0.83845630450592] , [ 1241064000000 , -0.85937944918912] , [ 1243742400000 , -0.85530287999615] , [ 1246334400000 , -1.2819866264007] , [ 1249012800000 , -1.4598491663715] , [ 1251691200000 , -1.5261472177779] , [ 1254283200000 , -1.2503948993549] , [ 1256961600000 , -1.1767079775724] , [ 1259557200000 , -1.2585538260386] , [ 1262235600000 , -3.420972598165] , [ 1264914000000 , -3.3381337072954] , [ 1267333200000 , -3.7043129330694] , [ 1270008000000 , -4.6924500756609] , [ 1272600000000 , -4.6880683704908] , [ 1275278400000 , -4.3335249071719] , [ 1277870400000 , -3.6545810416445] , [ 1280548800000 , -4.1639787701262] , [ 1283227200000 , -3.8249597612047] , [ 1285819200000 , -0.33221815335641] , [ 1288497600000 , -0.33346468179047] , [ 1291093200000 , -0.34546911228789] , [ 1293771600000 , -0.36609971997147] , [ 1296450000000 , -0.42502545672607] , [ 1298869200000 , -0.38192733348507] , [ 1301544000000 , -0.01991033447621] , [ 1304136000000 , -0.020319195299659] , [ 1306814400000 , -0.018147820835144] , [ 1309406400000 , -0.017923186209383] , [ 1312084800000 , -0.016133999253684] , [ 1314763200000 , -0.72058656278977] , [ 1317355200000 , -0.42812646564889] , [ 1320033600000 , -0.35896134792589] , [ 1322629200000 , -0.38637896444549] , [ 1325307600000 , -0.31794663984021] , [ 1327986000000 , -0.32220831831888] , [ 1330491600000 , -0.37107872672214] , [ 1333166400000 , -0.81968633933695] , [ 1335758400000 , -0.77148300885994] , [ 1338436800000 , -0.77392261735539]]
-  } ,
-  {
-    "key" : "Information Technology" ,
-    "values" : [ [ 1138683600000 , -0.86346955704548] , [ 1141102800000 , -0.88352373534584] , [ 1143781200000 , -1.2630802711685] , [ 1146369600000 , -1.2352593999242] , [ 1149048000000 , -1.2086379045093] , [ 1151640000000 , -1.0416778473647] , [ 1154318400000 , -0.99326278105154] , [ 1156996800000 , -1.0095045907007] , [ 1159588800000 , -2.0762515478576] , [ 1162270800000 , -2.13066829429] , [ 1164862800000 , -2.2458400474235] , [ 1167541200000 , -2.1315262677135] , [ 1170219600000 , -2.4063108252146] , [ 1172638800000 , -2.3753290631454] , [ 1175313600000 , -2.1119577565913] , [ 1177905600000 , -2.1546804750397] , [ 1180584000000 , -2.3768374034303] , [ 1183176000000 , -1.244878330098] , [ 1185854400000 , -1.2233210265236] , [ 1188532800000 , -1.1715073644317] , [ 1191124800000 , -1.0036136395928] , [ 1193803200000 , -0.9510676777939] , [ 1196398800000 , -0.97553526602196] , [ 1199077200000 , -1.9083849411912] , [ 1201755600000 , -1.855965027796] , [ 1204261200000 , -1.7343633512402] , [ 1206936000000 , -2.1847032903649] , [ 1209528000000 , -2.2095446284368] , [ 1212206400000 , -2.2060678671735] , [ 1214798400000 , -1.0941627910924] , [ 1217476800000 , -1.0004352405294] , [ 1220155200000 , -0.93563501378075] , [ 1222747200000 , 0] , [ 1225425600000 , -0.65155092645953] , [ 1228021200000 , -0.66021585164047] , [ 1230699600000 , 0] , [ 1233378000000 , 0] , [ 1235797200000 , 0] , [ 1238472000000 , 0] , [ 1241064000000 , 0] , [ 1243742400000 , 0] , [ 1246334400000 , 0] , [ 1249012800000 , 0] , [ 1251691200000 , 0] , [ 1254283200000 , -0.29297573068109] , [ 1256961600000 , -0.75043756379084] , [ 1259557200000 , -0.85690846482745] , [ 1262235600000 , -0.21937480770873] , [ 1264914000000 , -0.93232569935343] , [ 1267333200000 , -0.94180327525084] , [ 1270008000000 , 0] , [ 1272600000000 , 0] , [ 1275278400000 , 0] , [ 1277870400000 , 0] , [ 1280548800000 , 0] , [ 1283227200000 , 0] , [ 1285819200000 , -0.21253553193891] , [ 1288497600000 , -0.23178244747722] , [ 1291093200000 , -0.21481706129968] , [ 1293771600000 , -0.23306463011242] , [ 1296450000000 , -0.90244048159158] , [ 1298869200000 , -1.0410052083529] , [ 1301544000000 , -2.209350937089] , [ 1304136000000 , -2.6540796712932] , [ 1306814400000 , -3.2481210590957] , [ 1309406400000 , -3.0717986354635] , [ 1312084800000 , -2.7493296528921] , [ 1314763200000 , -2.1973991293256] , [ 1317355200000 , -0.86403111842659] , [ 1320033600000 , -0.87824756160219] , [ 1322629200000 , -0.80812571482871] , [ 1325307600000 , -1.6419820357151] , [ 1327986000000 , -1.6893790342619] , [ 1330491600000 , -1.8614499455474] , [ 1333166400000 , -1.814727017516] , [ 1335758400000 , -1.8744942128618] , [ 1338436800000 , -1.7880124850882]]
-  } ,
-  {
-    "key" : "Materials" ,
-    "values" : [ [ 1138683600000 , -0.26079769654951] , [ 1141102800000 , -0.23368425410881] , [ 1143781200000 , -0.46285283466193] , [ 1146369600000 , -0.4588429059205] , [ 1149048000000 , -0.43055120080853] , [ 1151640000000 , -0.26428963363642] , [ 1154318400000 , -0.26203611963364] , [ 1156996800000 , -0.26706156717825] , [ 1159588800000 , -0.024613610779192] , [ 1162270800000 , -0.024351047945929] , [ 1164862800000 , -0.031497065480344] , [ 1167541200000 , 0] , [ 1170219600000 , 0] , [ 1172638800000 , 0] , [ 1175313600000 , 0] , [ 1177905600000 , 0] , [ 1180584000000 , 0] , [ 1183176000000 , 0] , [ 1185854400000 , 0] , [ 1188532800000 , 0] , [ 1191124800000 , 0] , [ 1193803200000 , 0] , [ 1196398800000 , 0] , [ 1199077200000 , 0] , [ 1201755600000 , 0] , [ 1204261200000 , 0] , [ 1206936000000 , -0.83875613435932] , [ 1209528000000 , -0.84367445572656] , [ 1212206400000 , -0.78928126005463] , [ 1214798400000 , -1.1075954825404] , [ 1217476800000 , -1.2704836497926] , [ 1220155200000 , -1.307504052056] , [ 1222747200000 , -0.70440409992826] , [ 1225425600000 , -0.74122140007729] , [ 1228021200000 , -0.82224393045109] , [ 1230699600000 , -1.8719055314571] , [ 1233378000000 , -1.5200311233975] , [ 1235797200000 , -1.5552386899059] , [ 1238472000000 , -1.1576593040773] , [ 1241064000000 , -1.0757811060575] , [ 1243742400000 , -1.0250125722511] , [ 1246334400000 , -2.2747597224127] , [ 1249012800000 , -2.3125499227974] , [ 1251691200000 , -2.2784386530745] , [ 1254283200000 , -1.1518806233757] , [ 1256961600000 , -1.0075503399018] , [ 1259557200000 , -1.1400577929481] , [ 1262235600000 , -0.50677891891165] , [ 1264914000000 , -0.54332908490051] , [ 1267333200000 , -0.55473181189807] , [ 1270008000000 , -0.3633796157757] , [ 1272600000000 , -0.30361861470847] , [ 1275278400000 , -0.24614951229153] , [ 1277870400000 , -1.0959443687647] , [ 1280548800000 , -1.1881529264637] , [ 1283227200000 , -1.1835349242596] , [ 1285819200000 , -0.92507477884561] , [ 1288497600000 , -0.94531016133473] , [ 1291093200000 , -0.93519433603434] , [ 1293771600000 , -1.009221344252] , [ 1296450000000 , -2.3640716285835] , [ 1298869200000 , -2.4914494188556] , [ 1301544000000 , -1.7979456141716] , [ 1304136000000 , -2.1389760840247] , [ 1306814400000 , -1.9721362241269] , [ 1309406400000 , -1.9170229522382] , [ 1312084800000 , -1.8076246545605] , [ 1314763200000 , -2.1010686108381] , [ 1317355200000 , -2.2396373791195] , [ 1320033600000 , -1.8469012813015] , [ 1322629200000 , -2.0079125997321] , [ 1325307600000 , -1.9170007806182] , [ 1327986000000 , -1.9239118384243] , [ 1330491600000 , -2.0649464738798] , [ 1333166400000 , -0.88385747789351] , [ 1335758400000 , -0.91438087144161] , [ 1338436800000 , -0.96513752020965]]
-  } ,
-  {
-    "key" : "Telecommunication Services" ,
-    "values" : [ [ 1138683600000 , 0] , [ 1141102800000 , 0] , [ 1143781200000 , -0.077395192503573] , [ 1146369600000 , -0.079342784160835] , [ 1149048000000 , -0.07376956808809] , [ 1151640000000 , -0.041850521681201] , [ 1154318400000 , -0.037598545052499] , [ 1156996800000 , -0.040984079427717] , [ 1159588800000 , -0.19335817797448] , [ 1162270800000 , -0.18578493919925] , [ 1164862800000 , -0.1769473933101] , [ 1167541200000 , -0.57245352054975] , [ 1170219600000 , -0.61554187332911] , [ 1172638800000 , -0.63016714701151] , [ 1175313600000 , 0] , [ 1177905600000 , 0] , [ 1180584000000 , 0] , [ 1183176000000 , -0.12118014109021] , [ 1185854400000 , -0.11085831487208] , [ 1188532800000 , -0.10901265358445] , [ 1191124800000 , -0.17205583275088] , [ 1193803200000 , -0.16573676303991] , [ 1196398800000 , -0.17954841680392] , [ 1199077200000 , -0.82703336198161] , [ 1201755600000 , -0.76741763304227] , [ 1204261200000 , -0.79430844816827] , [ 1206936000000 , -1.0279404050708] , [ 1209528000000 , -1.0342425093761] , [ 1212206400000 , -1.0903083860383] , [ 1214798400000 , -1.0895432841007] , [ 1217476800000 , -1.1392703218146] , [ 1220155200000 , -0.98872086340391] , [ 1222747200000 , -1.227654651568] , [ 1225425600000 , -1.0527419580394] , [ 1228021200000 , -0.84338280322309] , [ 1230699600000 , -0.5982617279246] , [ 1233378000000 , -0.74123723862634] , [ 1235797200000 , -0.81665712408277] , [ 1238472000000 , -0.89868760705228] , [ 1241064000000 , -0.86338472153689] , [ 1243742400000 , -0.85040889603889] , [ 1246334400000 , -0.82872733882926] , [ 1249012800000 , -1.2797824676355] , [ 1251691200000 , -1.152043882336] , [ 1254283200000 , -0.70125890680538] , [ 1256961600000 , -0.69496338525418] , [ 1259557200000 , -0.81982038022784] , [ 1262235600000 , -0.42841700219624] , [ 1264914000000 , -0.43298861575253] , [ 1267333200000 , -0.46951194437705] , [ 1270008000000 , -0.46723980191721] , [ 1272600000000 , -0.43139262322841] , [ 1275278400000 , -0.4052075794202] , [ 1277870400000 , -0.45399431179247] , [ 1280548800000 , -0.50492374473014] , [ 1283227200000 , -0.49032976375464] , [ 1285819200000 , -0.95769381063728] , [ 1288497600000 , -0.92968381683254] , [ 1291093200000 , -0.90984207437415] , [ 1293771600000 , -0.91448295661871] , [ 1296450000000 , -1.3204103334172] , [ 1298869200000 , -1.3896989018] , [ 1301544000000 , -1.8536993972883] , [ 1304136000000 , -1.9901582471947] , [ 1306814400000 , -1.8731097808809] , [ 1309406400000 , -1.8109819859122] , [ 1312084800000 , -1.7946593386661] , [ 1314763200000 , -1.6002716669781] , [ 1317355200000 , -0.056479286204019] , [ 1320033600000 , -0.046232413998891] , [ 1322629200000 , -0.051182355563531] , [ 1325307600000 , -0.032858749040145] , [ 1327986000000 , -0.032326418106178] , [ 1330491600000 , -0.033980477379241] , [ 1333166400000 , -0.053069550536519] , [ 1335758400000 , -0.055741850564434] , [ 1338436800000 , -0.055851808568252]]
-  } ,
-  {
-    "key" : "Utilities" ,
-    "values" : [ [ 1138683600000 , 0] , [ 1141102800000 , 0] , [ 1143781200000 , -0.073769471773675] , [ 1146369600000 , -0.077824496315782] , [ 1149048000000 , -0.080696288096361] , [ 1151640000000 , 0] , [ 1154318400000 , 0] , [ 1156996800000 , 0] , [ 1159588800000 , 0] , [ 1162270800000 , 0] , [ 1164862800000 , 0] , [ 1167541200000 , 0] , [ 1170219600000 , 0] , [ 1172638800000 , 0] , [ 1175313600000 , 0] , [ 1177905600000 , 0] , [ 1180584000000 , 0] , [ 1183176000000 , -0.16073291656515] , [ 1185854400000 , -0.1646253606633] , [ 1188532800000 , -0.1655815581449] , [ 1191124800000 , -0.74417496631713] , [ 1193803200000 , -0.76230340423681] , [ 1196398800000 , -0.73882938190048] , [ 1199077200000 , -0.3820573391806] , [ 1201755600000 , -0.360757285179] , [ 1204261200000 , -0.38081058463615] , [ 1206936000000 , -0.92767439811083] , [ 1209528000000 , -0.92774728028789] , [ 1212206400000 , -0.85273481694714] , [ 1214798400000 , -1.69407085613] , [ 1217476800000 , -1.5179726219101] , [ 1220155200000 , -1.3576700600738] , [ 1222747200000 , -1.0404839864076] , [ 1225425600000 , -0.95251478838915] , [ 1228021200000 , -1.0610509118017] , [ 1230699600000 , -0.3316792294278] , [ 1233378000000 , -0.33745002288524] , [ 1235797200000 , -0.28806366796683] , [ 1238472000000 , 0] , [ 1241064000000 , 0] , [ 1243742400000 , 0] , [ 1246334400000 , -0.6338555382785] , [ 1249012800000 , -0.62797265130959] , [ 1251691200000 , -0.60264057253794] , [ 1254283200000 , -0.28687231077181] , [ 1256961600000 , -0.22215649778327] , [ 1259557200000 , -0.24027664555676] , [ 1262235600000 , 0] , [ 1264914000000 , 0] , [ 1267333200000 , 0] , [ 1270008000000 , 0] , [ 1272600000000 , 0] , [ 1275278400000 , 0] , [ 1277870400000 , 0] , [ 1280548800000 , 0] , [ 1283227200000 , 0] , [ 1285819200000 , 0] , [ 1288497600000 , 0] , [ 1291093200000 , 0] , [ 1293771600000 , 0] , [ 1296450000000 , 0] , [ 1298869200000 , 0] , [ 1301544000000 , 0] , [ 1304136000000 , 0] , [ 1306814400000 , 0] , [ 1309406400000 , 0] , [ 1312084800000 , 0] , [ 1314763200000 , 0] , [ 1317355200000 , 0] , [ 1320033600000 , 0] , [ 1322629200000 , 0] , [ 1325307600000 , 0] , [ 1327986000000 , 0] , [ 1330491600000 , 0] , [ 1333166400000 , 0] , [ 1335758400000 , 0] , [ 1338436800000 , 0]]
-  }
-];
-
-function totalRandom() {
-  var rval = [];
-  for(var n=1; n <= 2; n++) {
-      var series = [];
-      for(var i =0; i < 50; i++) {
-          series.push([
-              Math.floor(Math.random() * 100),
-              Math.random() * 6
-            ]);
-      }
-      rval.push({key: "Random " + n, values: series});
-  }
-  return rval;
-}
-
-function nPoints() {
-  var rval = [
-    {key: "Series 1",
-    values: [
-        [1,2],
-        [2,4],
-        [3,8]
-    ]}
-  ];
-  return rval;
-
-}
-
-//an example of harmonizing colors between visualizations
-//observe that Consumer Discretionary and Consumer Staples have
-//been flipped in the second chart
-var colors = d3.scale.category20();
-var keyColor = function(d, i) {return colors(d.key)};
-
-function defaultChartConfig(container, data, useGuideline) {
-  if (useGuideline === undefined) useGuideline = true;
-  nv.addGraph(function() {
-    var chart;
-    chart = nv.models.stackedAreaChart()
-                  .useInteractiveGuideline(useGuideline)
-                  .x(function(d) { return d[0] })
-                  .y(function(d) { return d[1] })
-                  .color(keyColor)
-                    ;
-
-    chart.xAxis
-        .tickFormat(function(d) { return d3.time.format('%x')(new Date(d)) });
-
-    chart.yAxis
-        .tickFormat(d3.format(',.2f'));
-
-    d3.select('#' + container + ' svg')
-          .datum(data)
-        .transition().duration(500).call(chart);
-
-    nv.utils.windowResize(chart.update);
-
-    return chart;
-  });
-}
-
-//Chart with old tooltip format.
-nv.addGraph(function() {
-  var chart = nv.models.stackedAreaChart()
-                .x(function(d) { return d[0] })
-                .y(function(d) { return d[1] })
-                .showControls(false)
-                .color(keyColor)
-                .margin({right:90})
-                .rightAlignYAxis(true)
-                ;
-
-  chart.xAxis
-      .tickFormat(function(d) { return d3.time.format('%x')(new Date(d)) });
-
-  chart.yAxis
-      .tickFormat(d3.format(',.2f'));
-
-  d3.select('#chart2 svg')
-    .datum(histcatexpshort)
-      .call(chart);
-
-
-
-  nv.utils.windowResize(chart.update);
-
-  return chart;
-});
-
-defaultChartConfig("chart1", histcatexplong);
-defaultChartConfig("chart3", histcatexplong_singledatapoint);
-defaultChartConfig("chart4", histcatexplong_twodatapoint);
-defaultChartConfig("chart5", histcatexplong_withholes);
-defaultChartConfig("chart6", totalRandom(), false);
-defaultChartConfig("chart7", nPoints(),false);
-defaultChartConfig("chart8", []);
-defaultChartConfig("chart9", histcatexpshort,true);
-</script>
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/test/testScript.js b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/test/testScript.js
deleted file mode 100755
index 2e7dc16e..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/test/testScript.js
+++ /dev/null
@@ -1,20 +0,0 @@
-//A little snippet of D3 code that creates a button that lets you toggle whether a chart is the only one visible on a page or not.
-d3.selectAll(".chart button").on("click",function() {
-   var thisId = this.parentElement.id;
-
-   var chartContainer = d3.select("#" + thisId);
-   if (chartContainer.attr("class").match("selected"))
-      chartContainer.classed("selected",false);
-   else
-      chartContainer.classed("selected",true);
-
-   d3.selectAll(".chart").style("display",function() {
-        if (thisId === this.id) return "block";
-
-        if (d3.select(this).style("display") === "none")
-          return "block";
-        else
-          return "none";
-   });
-   window.onresize();
-});
\ No newline at end of file
diff --git a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/test/teststyle.css b/wqflask/wqflask/static/packages/novus-nvd3-d51729c/test/teststyle.css
deleted file mode 100755
index db5bdd09..00000000
--- a/wqflask/wqflask/static/packages/novus-nvd3-d51729c/test/teststyle.css
+++ /dev/null
@@ -1,39 +0,0 @@
-body {
-  overflow-y:scroll;
-  font-family: arial;
-}
-
-text {
-  font: 12px sans-serif;
-}
-
-.chart {
-  float:left;
-  height: 500px;
-  text-align: center;
-  font-weight: bold;
-  margin-bottom: 2em;
-}
-.chart.full {
-  width: 100%;
-}
-
-.chart.half {
-  width: 50%;
-}
-
-.chart.third {
-  width: 33%;
-}
-
-.chart.selected {
-  width: 100% !important;
-}
-
-.navigation a{
-  margin-right: 1em;
-}
-
-.navigation {
-  margin-bottom: 1em;
-}
diff --git a/wqflask/wqflask/templates/all_results.html b/wqflask/wqflask/templates/all_results.html
deleted file mode 100755
index a42e42d8..00000000
--- a/wqflask/wqflask/templates/all_results.html
+++ /dev/null
@@ -1,134 +0,0 @@
-            <ul class="nav nav-tabs">

-                {% for species in species_groups %}

-                <li> <a href="#tab{{ loop.index }}" data-toggle="tab">{{ species }}</a></li>

-                {% endfor %}

-            </ul>

-            <div class="tab-content">

-                {% for species in species_groups %}

-                <div class="tab-pane active" id="tab{{ loop.index }}">

-                    <div class="tabbable tabs-left">

-                        <ul class="nav nav-tabs">

-                            {% if species_groups[species]['phenotype'] %}

-                            <li class="active"> <a href="#tab{{ loop.index }}_1" data-toggle="tab">Phenotype</a></li>

-                            {% endif %}

-                            {% if species_groups[species]['mrna_assay'] %}

-                            <li> <a href="#tab{{ loop.index }}_2" data-toggle="tab">mRNA Assay</a></li>

-                            {% endif %}

-                            {% if species_groups[species]['genotype'] %}

-                            <li> <a href="#tab{{ loop.index }}_3" data-toggle="tab">Genotype</a></li>

-                            {% endif %}

-                        </ul>

-                        <div class="tab-content">

-                            {% if species_groups[species]['phenotype'] %}

-                            <div class="tab-pane active" id="tab{{ loop.index }}_1">

-                                <table id="pheno_results" class="table table-hover table-striped table-bordered">

-                                    <thead>

-                                        <tr>

-                                        <th>Id</th>

-                                        <th>Species</th>

-                                        <th>Group</th>

-                                        <th>Description</th>

-                                        <th>LRS</th>

-                                        <th>Year</th>

-                                        <th>Authors</th>

-                                        </tr>

-                                    </thead>

-                                    <tbody>

-                                        {% for result in results.phenotype %}

-                                        {% if result.result_fields['species'] == species %}

-                                        <tr>

-                                            <td>{{ result.result_fields['phenotype_id'] }}</td>

-                                            <td>{{ result.result_fields['species'] }}</td>

-                                            <td>{{ result.result_fields['group_name'] }}</td>

-                                            <td>{{ result.result_fields['description'] }}</td>

-                                            <td>{{ result.result_fields['lrs'] }}</td>

-                                            <td>

-                                                <a href="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?cmd=Retrieve&db=PubMed&list_uids={{ result.result_fields['pubmed_id'] }}&dopt=Abstract">

-                                                    {{ result.result_fields['year'] }}

-                                                </a>

-                                            </td>

-                                            <td>{{ result.result_fields['authors'] }}</td>

-                                        </tr>

-                                        {% endif %}

-                                        {% endfor %}

-                                    </tbody>

-                                </table>

-                            </div>

-                            {% endif %}

-                            {% if species_groups[species]['mrna_assay'] %}

-                            <div class="tab-pane" id="tab{{ loop.index }}_2">

-                                <table id="mrna_assay_results" class="table table-hover table-striped table-bordered">

-                                    <thead>

-                                        <tr>

-                                        <th>Record ID</th>

-                                        <th>Species</th>

-                                        <th>Group</th>

-                                        <th>Data Set</th>

-                                        <th>Symbol</th>

-                                        <th>Description</th>

-                                        <th>Location</th>

-                                        <th>Mean Expr</th>

-                                        <th>Max LRS</th>

-                                        </tr>

-                                    </thead>

-                                    <tbody>

-                                        {% for result in results.mrna_assay %}

-                                        {% if result.result_fields['species'] == species %}

-                                        <tr>

-                                            <td>

-                                                <a href="http://gn2python.genenetwork.org/show_trait?trait_id={{ result.result_fields['name'] }}&dataset={{ result.result_fields['dataset'] }}"

-                                                   {{ result.result_fields['name'] }}

-                                                </a>

-                                            </td>

-                                            <td>{{ result.result_fields['species'] }}</td>

-                                            <td>{{ result.result_fields['group_name'] }}</td>

-                                            <td>{{ result.result_fields['dataset_name'] }}</td>

-                                            <td>{{ result.result_fields['symbol'] }}</td>

-                                            <td>{{ result.result_fields['description'] }}</td>

-                                            <td>{{ result.result_fields['chr'] }} : {{ result['mb'] }}</td>

-                                            <td>{{ result.result_fields['mean'] }}</td>

-                                            <td>{{ result.result_fields['lrs'] }}</td>

-                                        </tr>

-                                        {% endif %}

-                                        {% endfor %}

-                                    </tbody>

-                                </table>       

-                            </div>

-                            {% endif %}

-                            {% if species_groups[species]['genotype'] %}

-                            <div class="tab-pane" id="tab{{ loop.index }}_3">

-                                <table id="geno_results" class="table table-hover table-striped table-bordered">

-                                    <thead>

-                                        <tr>

-                                        <th>Marker</th>

-                                        <th>Species</th>

-                                        <th>Group</th>

-                                        <th>Data Set</th>

-                                        <th>Location</th>

-                                        </tr>

-                                    </thead>

-                                    <tbody>

-                                        {% for result in results.genotype %}

-                                        {% if result.result_fields['species'] == species %}

-                                        <tr>

-                                            <td>

-                                                <a href="http://gn2python.genenetwork.org/show_trait?trait_id={{ result.result_fields['marker_name'] }}&dataset={{ result.result_fields['dataset'] }}">

-                                                    {{ result.result_fields['marker_name'] }}

-                                                </a>

-                                            </td>

-                                            <td>{{ result.result_fields['species'] }}</td>

-                                            <td>{{ result.result_fields['group_name'] }}</td>

-                                            <td>{{ result.result_fields['dataset_name'] }}</td>

-                                            <td>{{ result.result_fields['chr'] }} : {{ result.result_fields['mb'] }}</td>

-                                        </tr>

-                                        {% endif %}

-                                        {% endfor %}

-                                    </tbody>

-                                </table>   

-                            </div>

-                            {% endif %}

-                        </div>

-                    </div>

-                </div>

-                {% endfor %}

-            </div>
\ No newline at end of file
diff --git a/wqflask/wqflask/templates/marker_regression_old.html b/wqflask/wqflask/templates/marker_regression_old.html
deleted file mode 100644
index defcd929..00000000
--- a/wqflask/wqflask/templates/marker_regression_old.html
+++ /dev/null
@@ -1,106 +0,0 @@
-{% extends "base.html" %}
-{% block title %}Marker Regression{% endblock %}
-{% block css %}
-    <link rel="stylesheet" type="text/css" href="/static/packages/jqplot/jquery.jqplot.min.css" />
-    <link rel="stylesheet" type="text/css" href="/static/new/css/marker_regression.css" />
-    <link rel="stylesheet" type="text/css" href="/static/new/packages/DataTables/css/jquery.dataTables.css" />
-    <link rel="stylesheet" type="text/css" href="/static/packages/DT_bootstrap/DT_bootstrap.css" />
-    <link rel="stylesheet" type="text/css" href="/static/packages/TableTools/media/css/TableTools.css" />
-{% endblock %}
-{% block content %} <!-- Start of body -->
-
-    {{ header("Marker Regression",
-        '{}: {}'.format(this_trait.name, this_trait.description_fmt)) }}
-
-    <div class="container">
-        <div>
-            <h2>
-                Manhattan Plot
-            </h2>
-        </div>
-        <div id="manhattan_plot_container" class="manhattan_plot_container">
-            <div id="manhattan_plot" class="manhattan_plots">
-                
-            </div>
-        </div>
-        <div>
-            <h2>
-                Genome Association Results
-            </h2>
-        </div>
-
-        <table cellpadding="0" cellspacing="0" border="0" id="qtl_results" class="table table-hover table-striped table-bordered">
-            <thead>
-                <tr>
-                    <td>Index</td>
-                    <td>LOD Score</td>
-                    <td>Chr</td>
-                    <td>Mb</td>
-                    <td>Locus</td>
-                </tr>
-            </thead>
-            <tbody>
-                {% for marker in filtered_markers %}
-                    {% if marker.lod_score > lod_cutoff %}
-                    <tr>
-                        <td>{{loop.index}}</td>
-                        <td>{{marker.lod_score}}</td>
-                        <td>{{marker.chr}}</td>
-                        <td>{{marker.Mb}}</td>
-                        <td>{{marker.name}}</td>
-                    </tr>
-                    {% endif %}
-                {% endfor %}
-            </tbody>
-        </table>
-    </div>
-
-    <!-- End of body -->
-
-{% endblock %}
-
-{% block js %}  
-    <script>
-        js_data = {{ js_data | safe }}
-    </script>
-
-    <!--[if lt IE 9]>
-<!--        <script language="javascript" type="text/javascript" src="/static/packages/jqplot/excanvas.js"></script>-->
-    <![endif]-->
-    <script language="javascript" type="text/javascript" src="http://d3js.org/d3.v3.min.js"></script>
-    <script language="javascript" type="text/javascript" src="/static/new/packages/DataTables/js/jquery.js"></script>
-    <script language="javascript" type="text/javascript" src="/static/new/packages/DataTables/js/jquery.dataTables.min.js"></script>
-    <script language="javascript" type="text/javascript" src="/static/packages/DT_bootstrap/DT_bootstrap.js"></script>
-    <script language="javascript" type="text/javascript" src="/static/packages/TableTools/media/js/TableTools.min.js"></script>
-    <script language="javascript" type="text/javascript" src="/static/packages/underscore/underscore-min.js"></script>
-    <script language="javascript" type="text/javascript" src="/static/new/javascript/chr_manhattan_plot.js"></script>
-    <script language="javascript" type="text/javascript" src="/static/new/javascript/marker_regression.js"></script>
-
-    
-    <script type="text/javascript" charset="utf-8">
-        $(document).ready( function () {
-            console.time("Creating table");
-            $('#qtl_results').dataTable( {
-                //"sDom": "<<'span3'l><'span3'T><'span4'f>'row-fluid'r>t<'row-fluid'<'span6'i><'span6'p>>",
-                "sDom": "lTftipr",
-                "oTableTools": {
-                    "aButtons": [
-                        "copy",
-                        "print",
-                        {
-                            "sExtends":    "collection",
-                            "sButtonText": 'Save <span class="caret" />',
-                            "aButtons":    [ "csv", "xls", "pdf" ]
-                        }
-                    ],
-                    "sSwfPath": "/static/packages/TableTools/media/swf/copy_csv_xls_pdf.swf"
-                },
-                "iDisplayLength": 50,
-                "bLengthChange": true,
-                "bDeferRender": true,
-                "bSortClasses": false
-            } );
-            console.timeEnd("Creating table");
-        });
-    </script>
-{% endblock %}
\ No newline at end of file
diff --git a/wqflask/wqflask/templates/quick_search.html b/wqflask/wqflask/templates/quick_search.html
deleted file mode 100755
index fe6f3f65..00000000
--- a/wqflask/wqflask/templates/quick_search.html
+++ /dev/null
@@ -1,300 +0,0 @@
-{% extends "base.html" %}
-{% block title %}QuickSearch Results{% endblock %}
-{% block content %}
-<!-- Start of body -->
-
-    {{ header("QuickSearch Results") }}
-
-    <div class="container">
-        <div class="page-header">
-            <h1>Your Search</h1>
-        </div>
-
-        <p>We searched across all data sets to find all records that match:</p>
-
-        <ul>
-            {% if search_terms %}
-            <li>
-                <strong>{{search_terms}}</strong> 
-            </li>
-            {% endif %}
-        </ul>
-
-
-        <div class="tabbable"> <!-- Only required for left/right tabs -->
-            {% if trait_type == 'all' %}
-                {% include 'all_results.html' %}
-            {% else %}
-            <ul class="nav nav-tabs">
-                {% for species in species_groups %}
-                <li> <a href="#tab{{ loop.index }}" data-toggle="tab">{{ species }}</a></li>
-                {% endfor %}
-            </ul>
-            <div class="tab-content">
-                {% for species in species_groups %}
-                <div class="tab-pane active" id="tab{{ loop.index }}">
-                    <div>
-                        {#
-                        <ul class="nav nav-tabs">
-                            {% if species_groups[species]['phenotype'] %}
-                            <li class="active"> <a href="#tab{{ loop.index }}_1" data-toggle="tab">Phenotype</a></li>
-                            {% endif %}
-                            {% if species_groups[species]['mrna_assay'] %}
-                            <li> <a href="#tab{{ loop.index }}_2" data-toggle="tab">mRNA Assay</a></li>
-                            {% endif %}
-                            {% if species_groups[species]['genotype'] %}
-                            <li> <a href="#tab{{ loop.index }}_3" data-toggle="tab">Genotype</a></li>
-                            {% endif %}
-                        </ul>
-                        #}
-                        <div>
-                            {% if trait_type == 'phenotype' and species_groups[species]['phenotype'] %}
-                                <table id="pheno_results" class="table table-hover table-striped table-bordered">
-                                    <thead>
-                                        <tr>
-                                        <th>Id</th>
-                                        <th>Species</th>
-                                        <th>Group</th>
-                                        <th>Description</th>
-                                        <th>LRS</th>
-                                        <th>Year</th>
-                                        <th>Authors</th>
-                                        </tr>
-                                    </thead>
-                                    <tbody>
-                                        {% for result in results.phenotype %}
-                                        {% if result.result_fields['species'] == species %}
-                                        <tr>
-                                            <td>{{ result.result_fields['phenotype_id'] }}</td>
-                                            <td>{{ result.result_fields['species'] }}</td>
-                                            <td>{{ result.result_fields['group_name'] }}</td>
-                                            <td>{{ result.result_fields['description'] }}</td>
-                                            <td>{{ result.result_fields['lrs'] }}</td>
-                                            <td>
-                                                <a href="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?cmd=Retrieve&db=PubMed&list_uids={{ result.result_fields['pubmed_id'] }}&dopt=Abstract">
-                                                    {{ result.result_fields['year'] }}
-                                                </a>
-                                            </td>
-                                            <td>{{ result.result_fields['authors'] }}</td>
-                                        </tr>
-                                        {% endif %}
-                                        {% endfor %}
-                                    </tbody>
-                                </table>
-                            {% endif %}
-                            {% if trait_type == 'mrna_assay' and species_groups[species]['mrna_assay'] %}
-                                <table id="mrna_assay_results" class="table table-hover table-striped table-bordered">
-                                    <thead>
-                                        <tr>
-                                        <th>Record ID</th>
-                                        <th>Species</th>
-                                        <th>Group</th>
-                                        <th>Data Set</th>
-                                        <th>Symbol</th>
-                                        <th>Description</th>
-                                        <th>Location</th>
-                                        <th>Mean Expr</th>
-                                        <th>Max LRS</th>
-                                        </tr>
-                                    </thead>
-                                    <tbody>
-                                        {% for result in results.mrna_assay %}
-                                        {% if result.result_fields['species'] == species %}
-                                        <tr>
-                                            <td>
-                                                <a href="http://gn2python.genenetwork.org/show_trait?trait_id={{ result.result_fields['name'] }}&dataset={{ result.result_fields['dataset'] }}"
-                                                   {{ result.result_fields['name'] }}
-                                                </a>
-                                            </td>
-                                            <td>{{ result.result_fields['species'] }}</td>
-                                            <td>{{ result.result_fields['group_name'] }}</td>
-                                            <td>{{ result.result_fields['dataset_name'] }}</td>
-                                            <td>{{ result.result_fields['symbol'] }}</td>
-                                            <td>{{ result.result_fields['description'] }}</td>
-                                            <td>{{ result.result_fields['chr'] }} : {{ result['mb'] }}</td>
-                                            <td>{{ result.result_fields['mean'] }}</td>
-                                            <td>{{ result.result_fields['lrs'] }}</td>
-                                        </tr>
-                                        {% endif %}
-                                        {% endfor %}
-                                    </tbody>
-                                </table>
-                            {% endif %}
-                            {% if trait_type == 'genotype' and species_groups[species]['genotype'] %}
-                                <table id="geno_results" class="table table-hover table-striped table-bordered">
-                                    <thead>
-                                        <tr>
-                                        <th>Marker</th>
-                                        <th>Species</th>
-                                        <th>Group</th>
-                                        <th>Data Set</th>
-                                        <th>Location</th>
-                                        </tr>
-                                    </thead>
-                                    <tbody>
-                                        {% for result in results.genotype %}
-                                        {% if result.result_fields['species'] == species %}
-                                        <tr>
-                                            <td>
-                                                <a href="http://gn2python.genenetwork.org/show_trait?trait_id={{ result.result_fields['marker_name'] }}&dataset={{ result.result_fields['dataset'] }}">
-                                                    {{ result.result_fields['marker_name'] }}
-                                                </a>
-                                            </td>
-                                            <td>{{ result.result_fields['species'] }}</td>
-                                            <td>{{ result.result_fields['group_name'] }}</td>
-                                            <td>{{ result.result_fields['dataset_name'] }}</td>
-                                            <td>{{ result.result_fields['chr'] }} : {{ result.result_fields['mb'] }}</td>
-                                        </tr>
-                                        {% endif %}
-                                        {% endfor %}
-                                    </tbody>
-                                </table>
-                            {% endif %}
-                        </div>
-                    </div>
-                </div>
-                {% endfor %}
-            </div>
-            {% endif %}
-        </div>
-    </div>
-
-<!-- End of body -->
-
-{% endblock %}
-
-                {#
-                    <table id="pheno_results" class="table table-hover table-striped table-bordered">
-                        <thead>
-                            <tr>
-                            <th>Id</th>
-                            <th>Species</th>
-                            <th>Group</th>
-                            <th>Description</th>
-                            <th>LRS</th>
-                            <th>Year</th>
-                            <th>Authors</th>
-                            </tr>
-                        </thead>
-                        <tbody>
-                            {% for result in results.phenotype %}
-                            <tr>
-                                <td>{{ result.result_fields['phenotype_id'] }}</td>
-                                <td>{{ result.result_fields['species'] }}</td>
-                                <td>{{ result.result_fields['group_name'] }}</td>
-                                <td>{{ result.result_fields['description'] }}</td>
-                                <td>{{ result.result_fields['lrs'] }}</td>
-                                <td>
-                                    <a href="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?cmd=Retrieve&db=PubMed&list_uids={{ result.result_fields['pubmed_id'] }}&dopt=Abstract">
-                                        {{ result.result_fields['year'] }}
-                                    </a>
-                                </td>
-                                <td>{{ result.result_fields['authors'] }}</td>
-                            </tr>
-                            {% endfor %}
-                        </tbody>
-                    </table>
-                </div>
-                <div class="tab-pane" id="tab2">
-                    <table id="mrna_assay_results" class="table table-hover table-striped table-bordered">
-                        <thead>
-                            <tr>
-                            <th>Record ID</th>
-                            <th>Species</th>
-                            <th>Group</th>
-                            <th>Data Set</th>
-                            <th>Symbol</th>
-                            <th>Description</th>
-                            <th>Location</th>
-                            <th>Mean Expr</th>
-                            <th>Max LRS</th>
-                            </tr>
-                        </thead>
-                        <tbody>
-                            {% for result in results.mrna_assay %}
-                            <tr>
-                                <td>
-                                    <a href="http://gn2python.genenetwork.org/show_trait?trait_id={{ result.result_fields['name'] }}&dataset={{ result.result_fields['dataset'] }}"
-                                       {{ result.result_fields['name'] }}
-                                    </a>
-                                </td>
-                                <td>{{ result.result_fields['species'] }}</td>
-                                <td>{{ result.result_fields['group_name'] }}</td>
-                                <td>{{ result.result_fields['dataset_name'] }}</td>
-                                <td>{{ result.result_fields['symbol'] }}</td>
-                                <td>{{ result.result_fields['description'] }}</td>
-                                <td>{{ result.result_fields['chr'] }} : {{ result['mb'] }}</td>
-                                <td>{{ result.result_fields['mean'] }}</td>
-                                <td>{{ result.result_fields['lrs'] }}</td>
-                            </tr>
-                            {% endfor %}
-                        </tbody>
-                    </table>                    
-                </div>
-                <div class="tab-pane" id="tab3">
-                    <table id="geno_results" class="table table-hover table-striped table-bordered">
-                        <thead>
-                            <tr>
-                            <th>Marker</th>
-                            <th>Species</th>
-                            <th>Group</th>
-                            <th>Data Set</th>
-                            <th>Location</th>
-                            </tr>
-                        </thead>
-                        <tbody>
-                            {% for result in results.genotype %}
-                            <tr>
-                                <td>
-                                    <a href="http://gn2python.genenetwork.org/show_trait?trait_id={{ result.result_fields['marker_name'] }}&dataset={{ result.result_fields['dataset'] }}">
-                                        {{ result.result_fields['marker_name'] }}
-                                    </a>
-                                </td>
-                                <td>{{ result.result_fields['species'] }}</td>
-                                <td>{{ result.result_fields['group_name'] }}</td>
-                                <td>{{ result.result_fields['dataset_name'] }}</td>
-                                <td>{{ result.result_fields['chr'] }} : {{ result.result_fields['mb'] }}</td>
-                            </tr>
-                            {% endfor %}
-                        </tbody>
-                    </table>                     
-                </div>
-                #}
-
-
-{% block js %}  
-    <script language="javascript" type="text/javascript" src="/static/new/packages/DataTables/js/jquery.js"></script>
-    <script language="javascript" type="text/javascript" src="/static/new/packages/DataTables/js/jquery.dataTables.min.js"></script>
-    <script language="javascript" type="text/javascript" src="/static/packages/DT_bootstrap/DT_bootstrap.js"></script>
-    <script language="javascript" type="text/javascript" src="/static/packages/TableTools/media/js/TableTools.min.js"></script>
-    <script language="javascript" type="text/javascript" src="/static/packages/underscore/underscore-min.js"></script>
-
-    
-    <script type="text/javascript" charset="utf-8">
-        $(document).ready( function () {
-            console.time("Creating table");
-            $('#pheno_results, #mrna_assay_results, #geno_results').dataTable( {
-                //"sDom": "<<'span3'l><'span3'T><'span4'f>'row-fluid'r>t<'row-fluid'<'span6'i><'span6'p>>",
-                //"sDom": "lTftipr",
-                "oTableTools": {
-                    "aButtons": [
-                        "copy",
-                        "print",
-                        {
-                            "sExtends":    "collection",
-                            "sButtonText": 'Save <span class="caret" />',
-                            "aButtons":    [ "csv", "xls", "pdf" ]
-                        }
-                    ],
-                    "sSwfPath": "/static/packages/TableTools/media/swf/copy_csv_xls_pdf.swf"
-                },
-                "iDisplayLength": 50,
-                "bLengthChange": true,
-                "bDeferRender": true,
-                "bSortClasses": false
-            } );
-            console.timeEnd("Creating table");
-        });
-    </script>
-{% endblock %}
-
diff --git a/wqflask/wqflask/templates/show_trait.html b/wqflask/wqflask/templates/show_trait.html
index c2b59c02..b4f5b6c2 100755
--- a/wqflask/wqflask/templates/show_trait.html
+++ b/wqflask/wqflask/templates/show_trait.html
@@ -1,12 +1,10 @@
 {% extends "base.html" %}
 {% block title %}Trait Data and Analysis{% endblock %}
 {% block css %}
-    <link rel="stylesheet" type="text/css" href="/static/new/css/marker_regression.css" />
     <link rel="stylesheet" type="text/css" href="/static/new/css/show_trait.css" />
     <link rel="stylesheet" type="text/css" href="/static/new/css/bar_chart.css" />
     <link rel="stylesheet" type="text/css" href="/static/new/css/box_plot.css" />
     <link rel="stylesheet" type="text/css" href="/static/new/css/prob_plot.css" />
-    <link rel="stylesheet" type="text/css" href="/static/new/css/panelutil.css" />
     <link rel="stylesheet" type="text/css" href="/static/new/css/scatter-matrix.css" />
     <link rel="stylesheet" type="text/css" href="/static/new/css/d3-tip.min.css" />
     <link rel="stylesheet" type="text/css" href="/static/new/packages/nvd3/nv.d3.min.css" />
@@ -50,7 +48,7 @@
                     </div>
                     <div id="collapseOne" class="panel-collapse collapse in">
                         <div class="panel-body">
-                            {% include 'show_trait_statistics_new.html' %}
+                            {% include 'show_trait_statistics.html' %}
                         </div>
                     </div>
                 </div>                
@@ -115,8 +113,6 @@
     <script type="text/javascript" src="/static/new/js_external/jstat.min.js"></script>
     <script type="text/javascript" src="/static/new/js_external/shapiro-wilk.js"></script>
     <script type="text/javascript" src="/static/new/javascript/colorbrewer.js"></script>
-    <script type="text/javascript" src="/static/new/packages/ValidationPlugin/dist/jquery.validate.min.js"></script>
-    <script type="text/javascript" src="/static/new/javascript/panelutil.js"></script>
 
     <script type="text/javascript" src="/static/new/javascript/stats.js"></script>
     <script type="text/javascript" src="/static/new/javascript/box.js"></script>
@@ -136,9 +132,6 @@
     <script language="javascript" type="text/javascript" src="/static/new/packages/jsPDF/libs/Blob.js/BlobBuilder.js"></script>
     <script language="javascript" type="text/javascript" src="/static/new/packages/jsPDF/jspdf.plugin.standard_fonts_metrics.js"></script>
     <script language="javascript" type="text/javascript" src="/static/new/packages/jsPDF/jspdf.plugin.from_html.js"></script>
-    <script language="javascript" type="text/javascript" src="/static/new/javascript/chr_lod_chart.js"></script>
-    <script language="javascript" type="text/javascript" src="/static/new/javascript/create_lodchart.js"></script>
-    <script language="javascript" type="text/javascript" src="/static/new/javascript/lod_chart.js"></script>
 
     <script language="javascript" type="text/javascript" src="/static/new/packages/DataTables/js/jquery.dataTables.js"></script>
     <script language="javascript" type="text/javascript" src="https://cdn.datatables.net/buttons/1.0.0/js/dataTables.buttons.min.js"></script>
diff --git a/wqflask/wqflask/templates/show_trait_mapping_tools.html b/wqflask/wqflask/templates/show_trait_mapping_tools.html
index 5b0c74c3..c23cb010 100755
--- a/wqflask/wqflask/templates/show_trait_mapping_tools.html
+++ b/wqflask/wqflask/templates/show_trait_mapping_tools.html
@@ -243,7 +243,7 @@
                         </div>
                         <div class="form-group">
                             <div style="padding-left:15px;" class="controls">
-                                <button id="interval_mapping_compute" class="btn submit_special btn-primary" data-url="/interval_mapping" title="Compute Interval Mapping">
+                                <button id="interval_mapping_compute" class="btn submit_special btn-primary" data-url="/marker_regression" title="Compute Interval Mapping">
                                     <i class="icon-ok-circle icon-white"></i> Compute
                                 </button>
                             </div>
diff --git a/wqflask/wqflask/templates/show_trait_statistics.html b/wqflask/wqflask/templates/show_trait_statistics.html
index eda5466e..34fa2216 100755
--- a/wqflask/wqflask/templates/show_trait_statistics.html
+++ b/wqflask/wqflask/templates/show_trait_statistics.html
@@ -1,433 +1,155 @@
-<br />
-
 <div>
-    <h2>Basic Statistics</h2>
-
+        <div class="tabbable"> <!-- Only required for left/right tabs -->
+            <ul class="nav nav-pills">
+                <li class="active">
+                    <a href="#stats_tab" data-toggle="tab">Basic Statistics</a>
+                </li>
+                <li>
+                    <a href="#histogram_tab" data-toggle="tab">Histogram</a>
+                </li>
+                <li>
+                    <a href="#bar_chart_tab" data-toggle="tab">Bar Chart</a>
+                </li>
+                <li>
+                    <a href="#probability_plot" data-toggle="tab">Probability Plot</a>
+                </li>
+                {% if g.user_session.user_ob %}
+                <li>
+                    <a href="#scatterplot_matrix" data-toggle="tab">Scatterplot Matrix</a>
+                </li>
+                {% endif %}
+                <!--<li>
+                    <a href="#box_plot_tab" data-toggle="tab">Box Plot</a>
+                </li>-->
+            </ul>
 
-    <p id="sectionbody2"></p>Include:
-                            <select name="corr_samples_group" size="1">
+            <div class="tab-content">
+                <div class="tab-pane active" id="stats_tab">
+                    <div style="padding: 20px" class="form-horizontal">
+                            <table id="stats_table" style="width: 300px; float: left;" class="table table-hover table-striped"></table>
+
+                    </div>
+                </div>   
+                <div class="tab-pane" id="histogram_tab">
+                    <div style="padding: 20px" class="form-horizontal">
+                        {% if sample_groups|length != 1 %}
+                        <select class="histogram_samples_group">
                             {% for group, pretty_group in sample_group_types.items() %}
-                                <option value="{{ group }}">
-                                    {{ pretty_group }}
-                                </option>
+                                <option value="{{ group }}">{{ pretty_group }}</option>
                             {% endfor %}
-                            </select><br>
-    <br>
-    <input type="button" name="Default_Name" class="btn update" value=" Update Figures "><br>
-    <br>
-
-          {% for sd in stats_data %}
-          <div class="ui-tabs" id="{{ 'stats_tabs%i' % loop.index0 }}">
-            <ul>
-              <li><a href="#statstabs-1" class="stats_tab">Basic Table</a></li>
-
-              <li><a href="#statstabs-5" class="stats_tab">Probability Plot</a></li>
-
-              <li><a href="#statstabs-3" class="stats_tab">Bar Graph (by name)</a></li>
-
-              <li><a href="#statstabs-4" class="stats_tab">Bar Graph (by rank)</a></li>
-
-              <li><a href="#statstabs-2" class="stats_tab">Box Plot</a></li>
-            </ul>
-
-            <div id="statstabs-1">
-              <table cellpadding="0" cellspacing="0" width="100%">
-                <tr>
-                  <td>
-                    <table cellpadding="20" cellspacing="0">
-                      <tr>
-                        <td class="fs14 fwb ffl b1 cw cbrb" align="left" width="180">Statistic</td>
-
-                        <td class="fs14 fwb ffl b1 cw cbrb" align="right" width="60">Value</td>
-                      </tr>
-
-                      <tr align="right">
-                        <td class="fs13 b1 cbw c222" align="left">N of Samples</td>
-
-                        <td class="fs13 b1 cbw c222" nowrap="yes" id="n_of_samples_value">{{ sd.N }}</td>
-                      </tr>
-
-                      <tr align="right">
-                        <td class="fs13 b1 cbw c222" nowrap="yes" align="left">Mean</td>
-
-                        <td class="fs13 b1 cbw c222" nowrap="yes" id="mean_value">{{ "%2.3f" % sd.traitmean }}</td>
-                      </tr>
-
-                      <tr align="right">
-                        <td class="fs13 b1 cbw c222" nowrap="yes" align="left">Median</td>
-
-                        <td class="fs13 b1 cbw c222" nowrap="yes" id="median_value">{{ "%2.3f" % sd.traitmedian }}</td>
-                      </tr>
-
-                      <tr align="right">
-                        <td class="fs13 b1 cbw c222" nowrap="yes" align="left">Standard Error (SE)</td>
-
-                        <td class="fs13 b1 cbw c222" nowrap="yes">{{ "%2.3f" % sd.traitsem }}</td>
-                      </tr>
-
-                      <tr align="right">
-                        <td class="fs13 b1 cbw c222" nowrap="yes" align="left">Standard Deviation (SD)</td>
-
-                        <td class="fs13 b1 cbw c222" nowrap="yes">{{ "%2.3f" % sd.traitstdev }}</td>
-                      </tr>
-
-                      <tr align="right">
-                        <td class="fs13 b1 cbw c222" nowrap="yes" align="left">Minimum</td>
-
-                        <td class="fs13 b1 cbw c222" nowrap="yes">{{ "%2.3f" % sd.min }}</td>
-                      </tr>
-
-                      <tr align="right">
-                        <td class="fs13 b1 cbw c222" nowrap="yes" align="left">Maximum</td>
-
-                        <td class="fs13 b1 cbw c222" nowrap="yes">{{ "%2.3f" % sd.max }}</td>
-                      </tr>
-
-                      <tr align="right">
-                        <td class="fs13 b1 cbw c222" nowrap="yes" align="left">Range (log2)</td>
-
-                        <td class="fs13 b1 cbw c222" nowrap="yes">{{ "%2.3f" % sd.range_log2 }}</td>
-                      </tr>
-
-                      <tr align="right">
-                        <td class="fs13 b1 cbw c222" nowrap="yes" align="left"><span>Range (fold)</span></td>
-
-                        <td class="fs13 b1 cbw c222" nowrap="yes">{{ "%2.3f" % sd.range_fold }}</td>
-                      </tr>
-
-                      <tr align="right">
-                        <td class="fs13 b1 cbw c222" nowrap="yes" align="left"><span><a href="/glossary.html#Interquartile" target="_blank" class=
-                        "non_bold">Interquartile Range</a></span></td>
-
-                        <td class="fs13 b1 cbw c222" nowrap="yes">{{ "%2.3f" % sd.interquartile }} </td>
-                      </tr>
-                    </table>
-                  </td>
-                </tr>
-              </table>
-            </div>
-
-            <div id="statstabs-5">
-              <table cellpadding="0" cellspacing="0" width="100%">
-                <tr>
-                  <td><img src="/image/nP_OE9u7BSx.gif" alt="nP_OE9u7BSx.gif" border="0"></td>
-                </tr>
-
-                <tr>
-                  <td><br>
-                  <br>
-                  This plot evaluates whether data are normally distributed. Different symbols represent different groups.<br>
-                  <br>
-                  More about <a href="http://en.wikipedia.org/wiki/Normal_probability_plot" target="_blank">Normal Probability Plots</a> and more
-                  about interpreting these plots from the <a href="/glossary.html#normal_probability" target="_blank">glossary</a></td>
-                </tr>
-              </table>
-            </div>
-
-            <div id="statstabs-2">
-              <table cellpadding="0" cellspacing="0" width="100%">
-                <tr>
-                  <td align="left">
-                    <img src="/image/Box_gUFtEOVI.gif" alt="Box_gUFtEOVI.gif" border="0">
-
-                    <p><span>More about <a href="http://davidmlane.com/hyperstat/A37797.html" target="_blank" class="fs13">Box Plots</a></span></p>
-                  </td>
-                </tr>
-              </table>
-            </div>
-
-            <div id="statstabs-3">
-              <table cellpadding="0" cellspacing="0" width="100%">
-                <tr>
-                  <td><img src="/image/Bar_y7L2rYlL.gif" alt="Bar_y7L2rYlL.gif" border="0"></td>
-                </tr>
-              </table>
-            </div>
-
-            <div id="statstabs-4">
-              <table cellpadding="0" cellspacing="0" width="100%">
-                <tr>
-                  <td><img src="/image/Bar_1Z4GjYFq.gif" alt="Bar_1Z4GjYFq.gif" border="0"></td>
-                </tr>
-              </table>
-            </div>
-          </div>
-          {% endfor %}
-        {# Not used now - Todo: Delete after we're sure this is right.
-          <div class="ui-tabs" id="stats_tabs1">
-            <ul>
-              <li><a href="#statstabs-1" class="stats_tab">Basic Table</a></li>
-
-              <li><a href="#statstabs-5" class="stats_tab">Probability Plot</a></li>
-
-              <li><a href="#statstabs-3" class="stats_tab">Bar Graph (by name)</a></li>
-
-              <li><a href="#statstabs-4" class="stats_tab">Bar Graph (by rank)</a></li>
-
-              <li><a href="#statstabs-2" class="stats_tab">Box Plot</a></li>
-            </ul>
-
-            <div id="statstabs-1">
-              <table cellpadding="0" cellspacing="0" width="100%">
-                <tr>
-                  <td>
-                    <table cellpadding="20" cellspacing="0">
-                      <tr>
-                        <td class="fs14 fwb ffl b1 cw cbrb" align="left" width="180">Statistic</td>
-
-                        <td class="fs14 fwb ffl b1 cw cbrb" align="right" width="60">Value</td>
-                      </tr>
-
-                      <tr align="right">
-                        <td class="fs13 b1 cbw c222" align="left">N of Samples</td>
-
-                        <td class="fs13 b1 cbw c222" nowrap="yes">71</td>
-                      </tr>
-
-                      <tr align="right">
-                        <td class="fs13 b1 cbw c222" nowrap="yes" align="left">Mean</td>
-
-                        <td class="fs13 b1 cbw c222" nowrap="yes">6.109</td>
-                      </tr>
-
-                      <tr align="right">
-                        <td class="fs13 b1 cbw c222" nowrap="yes" align="left">Median</td>
-
-                        <td class="fs13 b1 cbw c222" nowrap="yes">6.084</td>
-                      </tr>
-
-                      <tr align="right">
-                        <td class="fs13 b1 cbw c222" nowrap="yes" align="left">Standard Error (SE)</td>
-
-                        <td class="fs13 b1 cbw c222" nowrap="yes">0.022</td>
-                      </tr>
-
-                      <tr align="right">
-                        <td class="fs13 b1 cbw c222" nowrap="yes" align="left">Standard Deviation (SD)</td>
-
-                        <td class="fs13 b1 cbw c222" nowrap="yes">0.187</td>
-                      </tr>
-
-                      <tr align="right">
-                        <td class="fs13 b1 cbw c222" nowrap="yes" align="left">Minimum</td>
-
-                        <td class="fs13 b1 cbw c222" nowrap="yes">5.782</td>
-                      </tr>
-
-                      <tr align="right">
-                        <td class="fs13 b1 cbw c222" nowrap="yes" align="left">Maximum</td>
-
-                        <td class="fs13 b1 cbw c222" nowrap="yes">6.579</td>
-                      </tr>
-
-                      <tr align="right">
-                        <td class="fs13 b1 cbw c222" nowrap="yes" align="left">Range (log2)</td>
-
-                        <td class="fs13 b1 cbw c222" nowrap="yes">0.797</td>
-                      </tr>
-
-                      <tr align="right">
-                        <td class="fs13 b1 cbw c222" nowrap="yes" align="left"><span>Range (fold)</span></td>
-
-                        <td class="fs13 b1 cbw c222" nowrap="yes">1.74</td>
-                      </tr>
-
-                      <tr align="right">
-                        <td class="fs13 b1 cbw c222" nowrap="yes" align="left"><span><a href="/glossary.html#Interquartile" target="_blank" class=
-                        "non_bold">Interquartile Range</a></span></td>
-
-                        <td class="fs13 b1 cbw c222" nowrap="yes">1.13</td>
-                      </tr>
-                    </table>
-                  </td>
-                </tr>
-              </table>
-            </div>
-
-            <div id="statstabs-5">
-              <table cellpadding="0" cellspacing="0" width="100%">
-                <tr>
-                  <td><img src="/image/nP_eSYO7ZQg.gif" alt="nP_eSYO7ZQg.gif" border="0"></td>
-                </tr>
-
-                <tr>
-                  <td><br>
-                  <br>
-                  This plot evaluates whether data are normally distributed. Different symbols represent different groups.<br>
-                  <br>
-                  More about <a href="http://en.wikipedia.org/wiki/Normal_probability_plot" target="_blank">Normal Probability Plots</a> and more
-                  about interpreting these plots from the <a href="/glossary.html#normal_probability" target="_blank">glossary</a></td>
-                </tr>
-              </table>
-            </div>
-
-            <div id="statstabs-2">
-              <table cellpadding="0" cellspacing="0" width="100%">
-                <tr>
-                  <td align="left">
-                    <img src="/image/Box_PWNWQMfj.gif" alt="Box_PWNWQMfj.gif" border="0">
-
-                    <p><span>More about <a href="http://davidmlane.com/hyperstat/A37797.html" target="_blank" class="fs13">Box Plots</a></span></p>
-                  </td>
-                </tr>
-              </table>
-            </div>
-
-            <div id="statstabs-3">
-              <table cellpadding="0" cellspacing="0" width="100%">
-                <tr>
-                  <td><img src="/image/Bar_VuPqYbR6.gif" alt="Bar_VuPqYbR6.gif" border="0"></td>
-                </tr>
-              </table>
-            </div>
-
-            <div id="statstabs-4">
-              <table cellpadding="0" cellspacing="0" width="100%">
-                <tr>
-                  <td><img src="/image/Bar_9PbdvXZ9.gif" alt="Bar_9PbdvXZ9.gif" border="0"></td>
-                </tr>
-              </table>
-            </div>
-          </div>
-
-          <div class="ui-tabs" id="stats_tabs2">
-
-
-            <ul>
-              <li><a href="#statstabs-1" class="stats_tab">Basic Table</a></li>
-
-              <li><a href="#statstabs-5" class="stats_tab">Probability Plot</a></li>
-
-              <li><a href="#statstabs-3" class="stats_tab">Bar Graph (by name)</a></li>
-
-              <li><a href="#statstabs-4" class="stats_tab">Bar Graph (by rank)</a></li>
-
-              <li><a href="#statstabs-2" class="stats_tab">Box Plot</a></li>
-            </ul>
-
-            <div id="statstabs-1">
-              <table cellpadding="0" cellspacing="0" width="100%">
-                <tr>
-                  <td>
-                    <table cellpadding="20" cellspacing="0">
-                      <tr>
-                        <td class="fs14 fwb ffl b1 cw cbrb" align="left" width="180">Statistic</td>
-
-                        <td class="fs14 fwb ffl b1 cw cbrb" align="right" width="60">Value</td>
-                      </tr>
-
-                      <tr align="right">
-                        <td class="fs13 b1 cbw c222" align="left">N of Samples</td>
-
-                        <td class="fs13 b1 cbw c222" nowrap="yes">32</td>
-                      </tr>
-
-                      <tr align="right">
-                        <td class="fs13 b1 cbw c222" nowrap="yes" align="left">Mean</td>
-
-                        <td class="fs13 b1 cbw c222" nowrap="yes">6.176</td>
-                      </tr>
-
-                      <tr align="right">
-                        <td class="fs13 b1 cbw c222" nowrap="yes" align="left">Median</td>
-
-                        <td class="fs13 b1 cbw c222" nowrap="yes">6.170</td>
-                      </tr>
-
-                      <tr align="right">
-                        <td class="fs13 b1 cbw c222" nowrap="yes" align="left">Standard Error (SE)</td>
-
-                        <td class="fs13 b1 cbw c222" nowrap="yes">0.027</td>
-                      </tr>
-
-                      <tr align="right">
-                        <td class="fs13 b1 cbw c222" nowrap="yes" align="left">Standard Deviation (SD)</td>
-
-                        <td class="fs13 b1 cbw c222" nowrap="yes">0.150</td>
-                      </tr>
-
-                      <tr align="right">
-                        <td class="fs13 b1 cbw c222" nowrap="yes" align="left">Minimum</td>
-
-                        <td class="fs13 b1 cbw c222" nowrap="yes">5.906</td>
-                      </tr>
-
-                      <tr align="right">
-                        <td class="fs13 b1 cbw c222" nowrap="yes" align="left">Maximum</td>
-
-                        <td class="fs13 b1 cbw c222" nowrap="yes">6.485</td>
-                      </tr>
-
-                      <tr align="right">
-                        <td class="fs13 b1 cbw c222" nowrap="yes" align="left">Range (log2)</td>
-
-                        <td class="fs13 b1 cbw c222" nowrap="yes">0.579</td>
-                      </tr>
-
-                      <tr align="right">
-                        <td class="fs13 b1 cbw c222" nowrap="yes" align="left"><span>Range (fold)</span></td>
-
-                        <td class="fs13 b1 cbw c222" nowrap="yes">1.49</td>
-                      </tr>
-
-                      <tr align="right">
-                        <td class="fs13 b1 cbw c222" nowrap="yes" align="left"><span><a href="/glossary.html#Interquartile" target="_blank" class=
-                        "non_bold">Interquartile Range</a></span></td>
-
-                        <td class="fs13 b1 cbw c222" nowrap="yes">1.15</td>
-                      </tr>
-                    </table>
-                  </td>
-                </tr>
-              </table>
-            </div>
-
-            <div id="statstabs-5">
-              <table cellpadding="0" cellspacing="0" width="100%">
-                <tr>
-                  <td><img src="/image/nP_swDAFlJy.gif" alt="nP_swDAFlJy.gif" border="0"></td>
-                </tr>
-
-                <tr>
-                  <td><br>
-                  <br>
-                  This plot evaluates whether data are normally distributed. Different symbols represent different groups.<br>
-                  <br>
-                  More about <a href="http://en.wikipedia.org/wiki/Normal_probability_plot" target="_blank">Normal Probability Plots</a> and more
-                  about interpreting these plots from the <a href="/glossary.html#normal_probability" target="_blank">glossary</a></td>
-                </tr>
-              </table>
-            </div>
-
-            <div id="statstabs-2">
-              <table cellpadding="0" cellspacing="0" width="100%">
-                <tr>
-                  <td align="left">
-                    <img src="/image/Box_6sQJ8xhK.gif" alt="Box_6sQJ8xhK.gif" border="0">
-
-                    <p><span>More about <a href="http://davidmlane.com/hyperstat/A37797.html" target="_blank" class="fs13">Box Plots</a></span></p>
-                  </td>
-                </tr>
-              </table>
-            </div>
-
-            <div id="statstabs-3">
-              <table cellpadding="0" cellspacing="0" width="100%">
-                <tr>
-                  <td><img src="/image/Bar_QMWE2VEp.gif" alt="Bar_QMWE2VEp.gif" border="0"></td>
-                </tr>
-              </table>
-            </div>
-
-            <div id="statstabs-4">
-              <table cellpadding="0" cellspacing="0" width="100%">
-                <tr>
-                  <td><img src="/image/Bar_X07QmgsX.gif" alt="Bar_X07QmgsX.gif" border="0"></td>
-                </tr>
-              </table>
+                        </select>
+                        <br><br>
+                        {% endif %}
+                        <div id="histogram_container">
+                            <div id="histogram" class="barchart"></div>
+                        </div>
+                    </div>
+                </div>   
+                <div class="tab-pane" id="bar_chart_tab">
+                    <div style="padding: 20px" class="form-horizontal">
+                        {% if sample_groups|length != 1 %}
+                        <select class="bar_chart_samples_group">
+                            {% for group, pretty_group in sample_group_types.items() %}
+                                <option value="{{ group }}">{{ pretty_group }}</option>
+                            {% endfor %}
+                        </select>
+                        {% endif %}
+                        {% if sample_groups[0].attributes %}
+                        <div class="input-append">
+                            <select id="color_attribute" size="1">
+                                <option value="None">None</option>
+                                {% for attribute in sample_groups[0].attributes %}
+                                <option value="{{ sample_groups[0].attributes[attribute].name.replace(' ', '_') }}">
+                                    {{ sample_groups[0].attributes[attribute].name }}</option>
+                                {% endfor %}
+                            </select>
+                        </div>
+                        {% endif %}
+                        <div id="update_bar_chart" class="btn-group">
+                            <button type="button" class="btn btn-default sort_by_name" value="name">
+                            <i class="icon-resize-horizontal"></i> Sort By Name
+                            </button>
+                            <button type="button" class="btn btn-default sort_by_value" value="value">
+                            <i class="icon-signal"></i> Sort By Value
+                            </button>
+                        </div>
+                        {% if g.user_session.user_ob %}
+                        <div class="btn-group">
+                            <button type="button" class="btn btn-default" id="color_by_trait">
+                                <i class="icon-tint"></i> Color by Trait
+                            </button>
+                        </div>
+                        {% endif %}
+                    </div>
+                        <div class="row" style="position:relative">
+                          <div id="bar_chart_legend" style="margin-left: 150px; margin-top:20px; position: absolute;">
+                            <span id="legend-left"></span>
+                            <span id="legend-colors"></span>
+                            <span id="legend-right"></span>
+                          </div>
+                        </div>
+                        <div style="margin-left: 20px; margin-right: 20px;" class="row" id="bar_chart_container">
+                            <svg></svg>
+                        </div>
+                </div>
+                <div class="tab-pane" id="probability_plot">
+                    <div style="padding: 20px" class="form-horizontal">
+                        {% if sample_groups|length != 1 %}
+                        <select class="prob_plot_samples_group">
+                            {% for group, pretty_group in sample_group_types.items() %}
+                                <option value="{{ group }}">{{ pretty_group }}</option>
+                            {% endfor %}
+                        </select>
+                        <br><br>
+                        {% endif %}
+
+                        <div id="prob_plot_container">
+                            <div id="prob_plot_title"></div>
+                            <svg></svg>
+                        </div>
+
+                        <div>
+                            More about <a href="http://en.wikipedia.org/wiki/Normal_probability_plot" target="_blank">Normal Probability Plots</a> and more
+                            about interpreting these plots from the <a href="/glossary.html#normal_probability" target="_blank">glossary</a></td>
+                            </div>
+
+                    </div>
+
+                </div>
+<!--                <div class="tab-pane" id="box_plot_tab">
+                    {% if sample_groups|length > 1 %}
+                    <select class="box_plot_samples_group">
+                        {% for group, pretty_group in sample_group_types.items() %}
+                            <option value="{{ group }}">{{ pretty_group }}</option>
+                        {% endfor %}
+                    </select>
+                    <br><br>
+                    {% endif %}
+                    <div id="box_plot_container">
+                        <div id="box_plot"></div>
+                    </div>
+                </div>-->
+                {% if g.user_session.user_ob %}
+                <div class="tab-pane" id="scatterplot_matrix">
+                    
+                    <div style="margin-bottom:40px;" class="btn-group">
+                        <button type="button" class="btn btn-default" id="select_compare_trait">
+                            <i class="icon-th-large"></i> Select Traits
+                        </button>
+                        <button type="button" class="btn btn-default" id="clear_compare_trait">
+                            <i class="icon-trash"></i> Clear
+                        </button>
+                    </div>
+                    <div id="scatterplot_container">
+                        <div id="comparison_scatterplot" class="qtlcharts"></div>
+                    </div>
+                </div>
+                {% endif %}
             </div>
-          </div>
-        </td>
-      </tr>
-    </table>
-    #}
+        </div>
+    <!--</div>-->
+    <div id="collections_holder_wrapper" style="display:none;">
+        <div id="collections_holder"></div>
+    </div>
+   
+</div>
diff --git a/wqflask/wqflask/templates/show_trait_statistics_new.html b/wqflask/wqflask/templates/show_trait_statistics_new.html
deleted file mode 100755
index 34fa2216..00000000
--- a/wqflask/wqflask/templates/show_trait_statistics_new.html
+++ /dev/null
@@ -1,155 +0,0 @@
-<div>
-        <div class="tabbable"> <!-- Only required for left/right tabs -->
-            <ul class="nav nav-pills">
-                <li class="active">
-                    <a href="#stats_tab" data-toggle="tab">Basic Statistics</a>
-                </li>
-                <li>
-                    <a href="#histogram_tab" data-toggle="tab">Histogram</a>
-                </li>
-                <li>
-                    <a href="#bar_chart_tab" data-toggle="tab">Bar Chart</a>
-                </li>
-                <li>
-                    <a href="#probability_plot" data-toggle="tab">Probability Plot</a>
-                </li>
-                {% if g.user_session.user_ob %}
-                <li>
-                    <a href="#scatterplot_matrix" data-toggle="tab">Scatterplot Matrix</a>
-                </li>
-                {% endif %}
-                <!--<li>
-                    <a href="#box_plot_tab" data-toggle="tab">Box Plot</a>
-                </li>-->
-            </ul>
-
-            <div class="tab-content">
-                <div class="tab-pane active" id="stats_tab">
-                    <div style="padding: 20px" class="form-horizontal">
-                            <table id="stats_table" style="width: 300px; float: left;" class="table table-hover table-striped"></table>
-
-                    </div>
-                </div>   
-                <div class="tab-pane" id="histogram_tab">
-                    <div style="padding: 20px" class="form-horizontal">
-                        {% if sample_groups|length != 1 %}
-                        <select class="histogram_samples_group">
-                            {% for group, pretty_group in sample_group_types.items() %}
-                                <option value="{{ group }}">{{ pretty_group }}</option>
-                            {% endfor %}
-                        </select>
-                        <br><br>
-                        {% endif %}
-                        <div id="histogram_container">
-                            <div id="histogram" class="barchart"></div>
-                        </div>
-                    </div>
-                </div>   
-                <div class="tab-pane" id="bar_chart_tab">
-                    <div style="padding: 20px" class="form-horizontal">
-                        {% if sample_groups|length != 1 %}
-                        <select class="bar_chart_samples_group">
-                            {% for group, pretty_group in sample_group_types.items() %}
-                                <option value="{{ group }}">{{ pretty_group }}</option>
-                            {% endfor %}
-                        </select>
-                        {% endif %}
-                        {% if sample_groups[0].attributes %}
-                        <div class="input-append">
-                            <select id="color_attribute" size="1">
-                                <option value="None">None</option>
-                                {% for attribute in sample_groups[0].attributes %}
-                                <option value="{{ sample_groups[0].attributes[attribute].name.replace(' ', '_') }}">
-                                    {{ sample_groups[0].attributes[attribute].name }}</option>
-                                {% endfor %}
-                            </select>
-                        </div>
-                        {% endif %}
-                        <div id="update_bar_chart" class="btn-group">
-                            <button type="button" class="btn btn-default sort_by_name" value="name">
-                            <i class="icon-resize-horizontal"></i> Sort By Name
-                            </button>
-                            <button type="button" class="btn btn-default sort_by_value" value="value">
-                            <i class="icon-signal"></i> Sort By Value
-                            </button>
-                        </div>
-                        {% if g.user_session.user_ob %}
-                        <div class="btn-group">
-                            <button type="button" class="btn btn-default" id="color_by_trait">
-                                <i class="icon-tint"></i> Color by Trait
-                            </button>
-                        </div>
-                        {% endif %}
-                    </div>
-                        <div class="row" style="position:relative">
-                          <div id="bar_chart_legend" style="margin-left: 150px; margin-top:20px; position: absolute;">
-                            <span id="legend-left"></span>
-                            <span id="legend-colors"></span>
-                            <span id="legend-right"></span>
-                          </div>
-                        </div>
-                        <div style="margin-left: 20px; margin-right: 20px;" class="row" id="bar_chart_container">
-                            <svg></svg>
-                        </div>
-                </div>
-                <div class="tab-pane" id="probability_plot">
-                    <div style="padding: 20px" class="form-horizontal">
-                        {% if sample_groups|length != 1 %}
-                        <select class="prob_plot_samples_group">
-                            {% for group, pretty_group in sample_group_types.items() %}
-                                <option value="{{ group }}">{{ pretty_group }}</option>
-                            {% endfor %}
-                        </select>
-                        <br><br>
-                        {% endif %}
-
-                        <div id="prob_plot_container">
-                            <div id="prob_plot_title"></div>
-                            <svg></svg>
-                        </div>
-
-                        <div>
-                            More about <a href="http://en.wikipedia.org/wiki/Normal_probability_plot" target="_blank">Normal Probability Plots</a> and more
-                            about interpreting these plots from the <a href="/glossary.html#normal_probability" target="_blank">glossary</a></td>
-                            </div>
-
-                    </div>
-
-                </div>
-<!--                <div class="tab-pane" id="box_plot_tab">
-                    {% if sample_groups|length > 1 %}
-                    <select class="box_plot_samples_group">
-                        {% for group, pretty_group in sample_group_types.items() %}
-                            <option value="{{ group }}">{{ pretty_group }}</option>
-                        {% endfor %}
-                    </select>
-                    <br><br>
-                    {% endif %}
-                    <div id="box_plot_container">
-                        <div id="box_plot"></div>
-                    </div>
-                </div>-->
-                {% if g.user_session.user_ob %}
-                <div class="tab-pane" id="scatterplot_matrix">
-                    
-                    <div style="margin-bottom:40px;" class="btn-group">
-                        <button type="button" class="btn btn-default" id="select_compare_trait">
-                            <i class="icon-th-large"></i> Select Traits
-                        </button>
-                        <button type="button" class="btn btn-default" id="clear_compare_trait">
-                            <i class="icon-trash"></i> Clear
-                        </button>
-                    </div>
-                    <div id="scatterplot_container">
-                        <div id="comparison_scatterplot" class="qtlcharts"></div>
-                    </div>
-                </div>
-                {% endif %}
-            </div>
-        </div>
-    <!--</div>-->
-    <div id="collections_holder_wrapper" style="display:none;">
-        <div id="collections_holder"></div>
-    </div>
-   
-</div>
diff --git a/wqflask/wqflask/templates/whats_new.html b/wqflask/wqflask/templates/whats_new.html
deleted file mode 100755
index 753c0d7d..00000000
--- a/wqflask/wqflask/templates/whats_new.html
+++ /dev/null
@@ -1,18 +0,0 @@
-{% extends "base.html" %}
-{% block title %}GeneNetwork{% endblock %}
-{% block content %}
-<!-- Start of body -->
-
-                <!-- Body Start from Here -->
-                <P class="title">Latest Updates and News from Genenetwork </P>
-                {% for news_item in news_items %}
-                    <h4>{{ news_item.title }} ({{ news_item.date }})</h4>
-                    {{ news_item.details | safe }}
-                    <br /><br />
-                {% endfor %}
-
-
-
-
-<!-- End of body -->
-{% endblock %}
diff --git a/wqflask/wqflask/views.py b/wqflask/wqflask/views.py
index 73d9ddab..aa303e97 100755
--- a/wqflask/wqflask/views.py
+++ b/wqflask/wqflask/views.py
@@ -43,7 +43,6 @@ from wqflask.show_trait import export_trait_data
 from wqflask.heatmap import heatmap
 from wqflask.marker_regression import marker_regression
 from wqflask.marker_regression import marker_regression_gn1
-from wqflask.interval_mapping import interval_mapping
 from wqflask.correlation import show_corr_results
 from wqflask.correlation_matrix import show_corr_matrix
 from wqflask.correlation import corr_scatter_plot
@@ -411,59 +410,6 @@ def marker_regression_page():
 
     return rendered_template
 
-@app.route("/interval_mapping", methods=('POST',))
-def interval_mapping_page():
-    initial_start_vars = request.form
-    temp_uuid = initial_start_vars['temp_uuid']
-    wanted = (
-        'trait_id',
-        'dataset',
-        'mapping_method',
-        'chromosome',
-        'num_perm',
-        'manhattan_plot',
-        'do_bootstraps',
-        'display_additive',
-        'default_control_locus',
-        'control_locus'
-    )
-
-    start_vars = {}
-    for key, value in initial_start_vars.iteritems():
-        if key in wanted or key.startswith(('value:')):
-            start_vars[key] = value
-
-    version = "v1"
-    key = "interval_mapping:{}:".format(version) + json.dumps(start_vars, sort_keys=True)
-    print("key is:", pf(key))
-    with Bench("Loading cache"):
-        result = Redis.get(key)
-
-    if result:
-        print("Cache hit!!!")
-        with Bench("Loading results"):
-            result = pickle.loads(result)
-    else:
-        print("Cache miss!!!")
-        template_vars = interval_mapping.IntervalMapping(start_vars, temp_uuid)
-
-        template_vars.js_data = json.dumps(template_vars.js_data,
-                                           default=json_default_handler,
-                                           indent="   ")
-
-        result = template_vars.__dict__
-        
-        for item in template_vars.__dict__.keys():
-            print("  ---**--- {}: {}".format(type(template_vars.__dict__[item]), item))
-        
-        #causeerror
-        Redis.set(key, pickle.dumps(result, pickle.HIGHEST_PROTOCOL))
-        Redis.expire(key, 60*60)
-
-    with Bench("Rendering template"):
-        rendered_template = render_template("marker_regression.html", **result)
-
-    return rendered_template
 
 @app.route("/export", methods = ('POST',))
 def export():
@@ -518,10 +464,6 @@ def corr_scatter_plot_page():
                                        indent="   ")
     return render_template("corr_scatterplot.html", **template_vars.__dict__)
 
-#@app.route("/int_mapping", methods=('POST',))
-#def interval_mapping_page():
-#    template_vars = interval_mapping.IntervalMapping(request.args)
-#    return render_template("interval_mapping.html", **template_vars.__dict__)
 
 # Todo: Can we simplify this? -Sam
 def sharing_info_page():